From 9693572af8dcc2beac36825bbadeddb0b67c418c Mon Sep 17 00:00:00 2001 From: "1148980035@qq.com" <1148980035@qq.com> Date: Fri, 13 Jun 2025 20:31:23 +0800 Subject: [PATCH] =?UTF-8?q?MetaData=20=E7=B1=BB=E6=98=AF=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E7=94=A8=E4=BA=8E=E7=AE=A1=E7=90=86=20Google=20=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E5=90=8C=E6=AD=A5=E5=85=83=E6=95=B0=E6=8D=AE=20?= =?UTF-8?q?=E7=9A=84=E6=95=B0=E6=8D=AE=E6=A8=A1=E5=9E=8B=E7=B1=BB=EF=BC=8C?= =?UTF-8?q?=E4=B8=BB=E8=A6=81=E8=B4=9F=E8=B4=A3=201.=E5=AD=98=E5=82=A8?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E5=85=B3=E8=81=94=E4=BF=A1=E6=81=AF=20?= =?UTF-8?q?=E3=80=82=E7=BB=B4=E6=8A=A4=E6=9C=AC=E5=9C=B0=E7=AC=94=E8=AE=B0?= =?UTF-8?q?=E4=B8=8E=20Google=20=E4=BB=BB=E5=8A=A1=E4=B9=8B=E9=97=B4?= =?UTF-8?q?=E7=9A=84=E6=98=A0=E5=B0=84=E5=85=B3=E7=B3=BB=EF=BC=88=E9=80=9A?= =?UTF-8?q?=E8=BF=87=20mRelatedGid=20=E5=AD=98=E5=82=A8=E5=85=B3=E8=81=94?= =?UTF-8?q?=E7=9A=84Google=20=E4=BB=BB=E5=8A=A1=20ID=EF=BC=89=20=E3=80=82?= =?UTF-8?q?=E4=BB=A5=20JSON=20=E6=A0=BC=E5=BC=8F=E5=B0=86=E5=85=83?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=AD=98=E5=82=A8=E5=9C=A8=E7=AC=94=E8=AE=B0?= =?UTF-8?q?=E5=86=85=E5=AE=B9=E4=B8=AD=202.=E5=85=83=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=A4=84=E7=90=86=20=E3=80=82=E5=B0=86=20Google=20=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=20ID=20=E5=B5=8C=E5=85=A5=E5=88=B0=E5=85=83=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=20JSON=20=E5=AF=B9=E8=B1=A1=E4=B8=AD=20=E3=80=82?= =?UTF-8?q?=E4=BB=8E=E7=AC=94=E8=AE=B0=E5=86=85=E5=AE=B9=E4=B8=AD=E8=A7=A3?= =?UTF-8?q?=E6=9E=90=E5=B9=B6=E6=8F=90=E5=8F=96=E5=85=B3=E8=81=94=E7=9A=84?= =?UTF-8?q?=20Google=20=E4=BB=BB=E5=8A=A1=20ID=20=E3=80=82=E6=8F=90?= =?UTF-8?q?=E4=BE=9B=E6=96=B9=E6=B3=95=E5=88=A4=E6=96=AD=E5=85=83=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=98=AF=E5=90=A6=E5=80=BC=E5=BE=97=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=EF=BC=88=E5=9F=BA=E4=BA=8E=E7=AC=94=E8=AE=B0=E5=86=85=E5=AE=B9?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E4=B8=BA=E7=A9=BA=EF=BC=89=203.=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E6=94=AF=E6=8C=81=20=E3=80=82=E5=A4=84=E7=90=86?= =?UTF-8?q?=E4=BB=8E=E8=BF=9C=E7=A8=8B=E6=9C=8D=E5=8A=A1=E5=99=A8=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E7=9A=84=E5=85=83=E6=95=B0=E6=8D=AE=EF=BC=88setConten?= =?UTF-8?q?tByRemoteJSON=EF=BC=89=20=E3=80=82=E9=98=BB=E6=AD=A2=E4=B8=8D?= =?UTF-8?q?=E9=80=82=E7=94=A8=E7=9A=84=E6=93=8D=E4=BD=9C=EF=BC=88=E5=A6=82?= =?UTF-8?q?=E6=9C=AC=E5=9C=B0=20JSON=20=E8=AE=BE=E7=BD=AE=E3=80=81?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E6=93=8D=E4=BD=9C=E8=8E=B7=E5=8F=96=EF=BC=89?= =?UTF-8?q?=20=E8=AF=A5=E7=B1=BB=E9=80=9A=E8=BF=87=E5=B0=81=E8=A3=85?= =?UTF-8?q?=E5=85=83=E6=95=B0=E6=8D=AE=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91?= =?UTF-8?q?=EF=BC=8C=E7=A1=AE=E4=BF=9D=E7=AC=94=E8=AE=B0=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E4=B8=8E=20Google=E4=BB=BB=E5=8A=A1=E6=9C=8D=E5=8A=A1=E4=B9=8B?= =?UTF-8?q?=E9=97=B4=E7=9A=84=E6=95=B0=E6=8D=AE=E4=B8=80=E8=87=B4=E6=80=A7?= =?UTF-8?q?=EF=BC=8C=E6=98=AF=E5=AE=9E=E7=8E=B0=E8=B7=A8=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E5=90=8C=E6=AD=A5=E7=9A=84=E5=85=B3=E9=94=AE?= =?UTF-8?q?=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../net/micode/notes/gtask/data/MetaData.java | 66 +++++++++++++++++-- 1 file changed, 62 insertions(+), 4 deletions(-) diff --git a/src/Notes-master/src/net/micode/notes/gtask/data/MetaData.java b/src/Notes-master/src/net/micode/notes/gtask/data/MetaData.java index 3a2050b..0243968 100644 --- a/src/Notes-master/src/net/micode/notes/gtask/data/MetaData.java +++ b/src/Notes-master/src/net/micode/notes/gtask/data/MetaData.java @@ -24,59 +24,117 @@ import net.micode.notes.tool.GTaskStringUtils; import org.json.JSONException; import org.json.JSONObject; - +/** + * MetaData 类继承自 Task 类,用于处理与 Google 任务相关的元数据。 + * 该类负责设置和获取元数据中的相关 Google 任务 ID,并提供了一些方法用于处理元数据的同步和存储。 + */ public class MetaData extends Task { + // 日志标签,用于在日志中标识该类的相关信息 private final static String TAG = MetaData.class.getSimpleName(); + // 存储相关的 Google 任务 ID private String mRelatedGid = null; + /** + * 设置元数据信息。 + * 将相关的 Google 任务 ID 放入元信息的 JSON 对象中,并将该 JSON 对象转换为字符串设置为笔记内容, + * 同时将笔记名称设置为预定义的元数据笔记名称。 + * + * @param gid 相关的 Google 任务 ID + * @param metaInfo 包含元信息的 JSON 对象 + */ public void setMeta(String gid, JSONObject metaInfo) { try { + // 将相关的 Google 任务 ID 放入元信息的 JSON 对象中 metaInfo.put(GTaskStringUtils.META_HEAD_GTASK_ID, gid); } catch (JSONException e) { + // 记录失败日志 Log.e(TAG, "failed to put related gid"); } + // 将包含相关 Google 任务 ID 的元信息 JSON 对象转换为字符串设置为笔记内容 setNotes(metaInfo.toString()); + // 将笔记名称设置为预定义的元数据笔记名称 setName(GTaskStringUtils.META_NOTE_NAME); } + /** + * 获取相关的 Google 任务 ID。 + * + * @return 相关的 Google 任务 ID,如果没有则返回 null + */ public String getRelatedGid() { return mRelatedGid; } + /** + * 判断该元数据是否值得保存。 + * 如果笔记内容不为空,则认为值得保存。 + * + * @return 如果笔记内容不为空返回 true,否则返回 false + */ @Override public boolean isWorthSaving() { return getNotes() != null; } + /** + * 根据远程 JSON 对象设置元数据内容。 + * 首先调用父类的方法设置内容,然后从笔记内容中解析出相关的 Google 任务 ID。 + * + * @param js 包含远程元数据的 JSON 对象 + */ @Override public void setContentByRemoteJSON(JSONObject js) { + // 调用父类方法设置内容 super.setContentByRemoteJSON(js); if (getNotes() != null) { try { + // 将笔记内容解析为 JSON 对象 JSONObject metaInfo = new JSONObject(getNotes().trim()); + // 从 JSON 对象中获取相关的 Google 任务 ID mRelatedGid = metaInfo.getString(GTaskStringUtils.META_HEAD_GTASK_ID); } catch (JSONException e) { + // 记录解析失败日志,并将相关的 Google 任务 ID 置为 null Log.w(TAG, "failed to get related gid"); mRelatedGid = null; } } } + /** + * 根据本地 JSON 对象设置元数据内容。 + * 该方法不应该被调用,因为元数据不应该通过本地 JSON 对象设置内容。 + * + * @param js 包含本地元数据的 JSON 对象 + * @throws IllegalAccessError 总是抛出该异常,表示该方法不应该被调用 + */ @Override public void setContentByLocalJSON(JSONObject js) { - // this function should not be called throw new IllegalAccessError("MetaData:setContentByLocalJSON should not be called"); } + /** + * 从元数据内容中获取本地 JSON 对象。 + * 该方法不应该被调用,因为元数据不应该提供从内容获取本地 JSON 对象的功能。 + * + * @return 不会返回,因为总是抛出异常 + * @throws IllegalAccessError 总是抛出该异常,表示该方法不应该被调用 + */ @Override public JSONObject getLocalJSONFromContent() { throw new IllegalAccessError("MetaData:getLocalJSONFromContent should not be called"); } + /** + * 获取同步操作。 + * 该方法不应该被调用,因为元数据不涉及同步操作。 + * + * @param c 数据库游标 + * @return 不会返回,因为总是抛出异常 + * @throws IllegalAccessError 总是抛出该异常,表示该方法不应该被调用 + */ @Override public int getSyncAction(Cursor c) { throw new IllegalAccessError("MetaData:getSyncAction should not be called"); } - -} +} \ No newline at end of file