From 073ee339485644962b341efadf0b89ed1dec4c48 Mon Sep 17 00:00:00 2001 From: abandon <2758180753@qq,com> Date: Sun, 15 Jun 2025 21:04:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../net/micode/notes/gtask/data/MetaData.java | 74 +++++++++++++++---- 1 file changed, 61 insertions(+), 13 deletions(-) diff --git a/Notes-master/src/net/micode/notes/gtask/data/MetaData.java b/Notes-master/src/net/micode/notes/gtask/data/MetaData.java index 3a2050b..ef312c9 100644 --- a/Notes-master/src/net/micode/notes/gtask/data/MetaData.java +++ b/Notes-master/src/net/micode/notes/gtask/data/MetaData.java @@ -2,16 +2,11 @@ * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) * * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at + * 您可以在遵守License的前提下使用本文件 + * 具体License内容可查阅:http://www.apache.org/licenses/LICENSE-2.0 * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * 软件按"原样"分发,不提供任何形式的明示或暗示的保证 + * 详见License中关于权限和限制的具体条款 */ package net.micode.notes.gtask.data; @@ -24,37 +19,70 @@ import net.micode.notes.tool.GTaskStringUtils; import org.json.JSONException; import org.json.JSONObject; - +/** + * Google Tasks元数据类 + * 用于存储和管理Google Tasks相关的元信息 + * 继承自Task类,扩展了Google Tasks特定的元数据处理功能 + */ public class MetaData extends Task { private final static String TAG = MetaData.class.getSimpleName(); + // 关联的Google Task ID private String mRelatedGid = null; + /** + * 设置元数据信息 + * + * @param gid Google Task的唯一标识 + * @param metaInfo 包含元数据的JSON对象 + */ public void setMeta(String gid, JSONObject metaInfo) { try { + // 将Google Task ID添加到元数据JSON中 metaInfo.put(GTaskStringUtils.META_HEAD_GTASK_ID, gid); } catch (JSONException e) { Log.e(TAG, "failed to put related gid"); } + // 设置笔记内容为元数据JSON的字符串表示 setNotes(metaInfo.toString()); + // 设置笔记名称为元数据固定名称 setName(GTaskStringUtils.META_NOTE_NAME); } + /** + * 获取关联的Google Task ID + * + * @return 关联的Google Task ID,获取失败时返回null + */ public String getRelatedGid() { return mRelatedGid; } + /** + * 判断元数据是否值得保存 + * 当笔记内容不为空时认为值得保存 + * + * @return true如果笔记内容不为空,否则false + */ @Override public boolean isWorthSaving() { return getNotes() != null; } + /** + * 从远程JSON数据设置内容 + * 解析远程JSON数据并提取关联的Google Task ID + * + * @param js 包含远程数据的JSON对象 + */ @Override public void setContentByRemoteJSON(JSONObject js) { super.setContentByRemoteJSON(js); if (getNotes() != null) { try { + // 解析笔记内容为JSON对象 JSONObject metaInfo = new JSONObject(getNotes().trim()); + // 提取关联的Google Task ID mRelatedGid = metaInfo.getString(GTaskStringUtils.META_HEAD_GTASK_ID); } catch (JSONException e) { Log.w(TAG, "failed to get related gid"); @@ -63,20 +91,40 @@ public class MetaData extends Task { } } + /** + * 从本地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数据 + * 该方法不应该被调用,调用时抛出异常 + * + * @return 本地JSON数据(永远不会返回) + * @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