MetaData 类是一个用于管理 Google 任务同步元数据 的数据模型类,主要负责

1.存储任务关联信息
。维护本地笔记与 Google 任务之间的映射关系(通过 mRelatedGid 存储关联的Google 任务 ID)
。以 JSON 格式将元数据存储在笔记内容中
2.元数据处理
。将 Google 任务 ID 嵌入到元信息 JSON 对象中
。从笔记内容中解析并提取关联的 Google 任务 ID
。提供方法判断元数据是否值得保存(基于笔记内容是否为空)
3.同步支持
。处理从远程服务器获取的元数据(setContentByRemoteJSON)
。阻止不适用的操作(如本地 JSON 设置、同步操作获取)
该类通过封装元数据处理逻辑,确保笔记应用与 Google任务服务之间的数据一致性,是实现跨平台任务同步的关键组件
main
1148980035@qq.com 9 months ago
parent 93900774b1
commit 9693572af8

@ -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");
}
}
}
Loading…
Cancel
Save