rio 2 years ago
parent 32748860ea
commit cc6b969660

@ -16,19 +16,21 @@
package net.micode.notes.gtask.data;
import android.database.Cursor;
import android.util.Log;
import android.database.Cursor;//操作SQLite数据库的对象
import android.util.Log;//Log是Android中用于记录日志的工具类。
import net.micode.notes.tool.GTaskStringUtils;
import org.json.JSONException;
import org.json.JSONObject;
import net.micode.notes.tool.GTaskStringUtils;//GTasks中用于处理GoogleTask字符串的工具类。
import org.json.JSONException;//用于处理JSON解析异常的异常类。
import org.json.JSONObject;//org.json包中用于处理JSON对象的类。
//处理与任务相关的元数据
public class MetaData extends Task {
private final static String TAG = MetaData.class.getSimpleName();
private String mRelatedGid = null;
//用于设置元数据信息。它接收一个gid和一个包含元数据信息的JSONObject作为参数
// 并将gid添加到元数据信息中。然后将元数据信息转换为字符串并将其设置为任务的备注信息。最后将任务名称设置为"Meta Note Name"。
public void setMeta(String gid, JSONObject metaInfo) {
try {
@ -39,16 +41,19 @@ public class MetaData extends Task {
setNotes(metaInfo.toString());
setName(GTaskStringUtils.META_NOTE_NAME);
}
//用于获取相关的gid。
public String getRelatedGid() {
return mRelatedGid;
}
//用于判断是否值得保存。如果备注信息不为null则返回true否则返回false。
@Override
public boolean isWorthSaving() {
return getNotes() != null;
}
//从远程的JSON对象中设置任务的内容。它首先调用父类的方法设置任务的内容
// 然后从备注信息中提取相关的gid并将其赋值给mRelatedGid。
@Override
public void setContentByRemoteJSON(JSONObject js) {
super.setContentByRemoteJSON(js);
@ -63,20 +68,25 @@ public class MetaData extends Task {
}
}
//被标记为不应该被调用因此抛出了IllegalAccessError异常。
@Override
public void setContentByLocalJSON(JSONObject js) {
// this function should not be called
throw new IllegalAccessError("MetaData:setContentByLocalJSON should not be called");
}
//被标记为不应该被调用因此抛出了IllegalAccessError异常。
@Override
public JSONObject getLocalJSONFromContent() {
throw new IllegalAccessError("MetaData:getLocalJSONFromContent should not be called");
}
//被标记为不应该被调用因此抛出了IllegalAccessError异常。
@Override
public int getSyncAction(Cursor c) {
throw new IllegalAccessError("MetaData:getSyncAction should not be called");
}
}
//用于处理与任务相关的元数据例如与Google任务相关的gid值。
//封装了操作元数据的方法并提供了一些辅助方法来获取和设置相关的gid值。

@ -0,0 +1,546 @@
Node
1. Node
2. Node
3. NodemGidmNamemLastModifiedmDeleted
4. Node
5. NodegetCreateActiongetUpdateActionsetContentByRemoteJSONsetContentByLocalJSONgetLocalJSONFromContentgetSyncAction
6. setGidsetNamesetLastModifiedsetDeleted
7. getGidgetNamegetLastModifiedgetDeleted
Node访Node
1. android.database.CursorCursorAndroid
2. android.util.LogLogAndroid
3. net.micode.notes.tool.GTaskStringUtilsGTaskStringUtilsGTasks
4. org.json.JSONExceptionJSONExceptionJSON
5. org.json.JSONObjectJSONObjectJSONJSON
SqlData
1. SqlData
2. SqlData
3. SqlData
4. setContentJSONObject
5. getContentJSONObject
6. commit
7. getIdID
SqlData使getContent使setIdIDcommit
SQLNOTE
// 导入必要的Android和其他库
import android.appwidget.AppWidgetManager;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.util.Log;
import net.micode.notes.data.Notes;
import net.micode.notes.data.Notes.DataColumns;
import net.micode.notes.data.Notes.NoteColumns;
// SqlNote类的定义它在与GTask服务同步时代表一个便笺对象。
public class SqlNote {
// 定义静态常量和字段
// ...
// 上下文对象用于访问App的资源和数据库
private Context mContext;
// 用于与内容提供者通信的内容解析器
private ContentResolver mContentResolver;
// 用于标记便笺是否新创建的标志
private boolean mIsCreate;
// 便笺的各种属性ID、日期、背景颜色等
// ...
// 存放从便笺中不同数据内容的列表
private ArrayList<SqlData> mDataList;
// 构造函数,用于初始化上下文和内容解析器,设置默认值
// ...
// 另一个构造函数,通过游标初始化便笺对象
// ...
// 第三个构造函数通过便笺ID加载便笺
// ...
// loadFromCursor方法通过游标加载便笺的信息
// ...
// loadDataContent方法加载便笺的数据内容
// ...
// setContent方法根据JSON对象设置便笺内容
// ...
// getContent方法获取转换为JSON格式的便笺内容
// ...
// setParentId方法设置便笺的父ID
// ...
// setGtaskId方法设置同步时便笺关联的GTask ID
// ...
// setSyncId方法设置同步ID
// ...
// resetLocalModified方法重置本地修改标志
// ...
// Getter方法集用于获取便笺的各种属性
// ...
// commit方法将修改提交到数据库并处理版本验证
// ...
}
```
###
JavaAndroid`SqlNote``SqlNote`GTask便便ID便`loadFromCursor``loadDataContent`
`setContent``getContent`JSONJSON便ID`commit`便
Java `Task` `Node` Google Tasks GTask
TASK
// 导入必要的包和类
import android.database.Cursor;
import android.text.TextUtils;
import android.util.Log;
import net.micode.notes.data.Notes;
import net.micode.notes.data.Notes.DataColumns;
import net.micode.notes.data.Notes.DataConstants;
import net.micode.notes.data.Notes.NoteColumns;
import net.micode.notes.gtask.exception.ActionFailureException;
import net.micode.notes.tool.GTaskStringUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
// Task 类继承自 Node 类,表示一个任务
public class Task extends Node {
// 简化的日志标签
private static final String TAG = Task.class.getSimpleName();
// 任务完成状态
private boolean mCompleted;
// 任务的备注
private String mNotes;
// 包含任务元信息的 JSON 对象
private JSONObject mMetaInfo;
// 前一个兄弟任务(在列表中的序列前一个任务)
private Task mPriorSibling;
// 父任务列表
private TaskList mParent;
// 构造函数,初始化任务属性
public Task() {
super();
mCompleted = false;
mNotes = null;
mPriorSibling = null;
mParent = null;
mMetaInfo = null;
}
// 创建任务时生成的 JSON 对象
public JSONObject getCreateAction(int actionId) {
// ...
}
// 更新任务时生成的 JSON 对象
public JSONObject getUpdateAction(int actionId) {
// ...
}
// 通过从远程服务器获取的 JSON 设置任务内容
public void setContentByRemoteJSON(JSONObject js) {
// ...
}
// 通过本地 JSON 设置任务内容
public void setContentByLocalJSON(JSONObject js) {
// ...
}
// 从任务内容中获取本地 JSON 对象
public JSONObject getLocalJSONFromContent() {
// ...
}
// 设置任务的元信息
public void setMetaInfo(MetaData metaData) {
// ...
}
// 获取和同步相关的动作
public int getSyncAction(Cursor c) {
// ...
}
// 判断任务是否值得保存
public boolean isWorthSaving() {
// ...
}
// 设置完成状态
public void setCompleted(boolean completed) {
this.mCompleted = completed;
}
// 设置备注信息
public void setNotes(String notes) {
this.mNotes = notes;
}
// 设置前一个兄弟任务
public void setPriorSibling(Task priorSibling) {
this.mPriorSibling = priorSibling;
}
// 设置父任务列表
public void setParent(TaskList parent) {
this.mParent = parent;
}
// 获取完成状态
public boolean getCompleted() {
return this.mCompleted;
}
// 获取备注
public String getNotes() {
return this.mNotes;
}
// 获取前一个兄弟任务
public Task getPriorSibling() {
return this.mPriorSibling;
}
// 获取父任务列表
public TaskList getParent() {
return this.mParent;
}
}
```
###
Task Google Tasks API
JSON JSON
Task
JSON Task setter getter 访
Java `TaskList` `Node` Google Tasks GTask
TASKLIST
// 导入必要的包和类
import android.database.Cursor;
import android.util.Log;
import net.micode.notes.data.Notes;
import net.micode.notes.data.Notes.NoteColumns;
// ...
import java.util.ArrayList;
// TaskList类继承自Node类表示一个任务列表
public class TaskList extends Node {
// 日志标签
private static final String TAG = TaskList.class.getSimpleName();
// 用于GTask中的排序索引
private int mIndex;
// 任务列表中的子任务列表
private ArrayList<Task> mChildren;
// 构造函数,初始化子任务列表和索引
public TaskList() {
super();
mChildren = new ArrayList<Task>();
mIndex = 1;
}
// 生成任务列表创建时的JSON操作对象
public JSONObject getCreateAction(int actionId) {
// ...
}
// 生成任务列表更新时的JSON操作对象
public JSONObject getUpdateAction(int actionId) {
// ...
}
// 通过远程JSON对象设置任务列表内容
public void setContentByRemoteJSON(JSONObject js) {
// ...
}
// 通过本地JSON设置任务列表内容
public void setContentByLocalJSON(JSONObject js) {
// ...
}
// 从任务列表内容中获取本地JSON对象
public JSONObject getLocalJSONFromContent() {
// ...
}
// 获取和同步相关的动作
public int getSyncAction(Cursor c) {
// ...
}
// 获取子任务数量
public int getChildTaskCount() {
return mChildren.size();
}
// 添加子任务
public boolean addChildTask(Task task) {
// ...
}
// 在指定位置添加子任务
public boolean addChildTask(Task task, int index) {
// ...
}
// 移除子任务
public boolean removeChildTask(Task task) {
// ...
}
// 移动子任务到指定位置
public boolean moveChildTask(Task task, int index) {
// ...
}
// 通过GID查找子任务
public Task findChildTaskByGid(String gid) {
// ...
}
// 获取子任务在列表中的位置索引
public int getChildTaskIndex(Task task) {
// ...
}
// 通过位置索引获取子任务
public Task getChildTaskByIndex(int index) {
// ...
}
// 获取子任务列表
public ArrayList<Task> getChildTaskList() {
return this.mChildren;
}
// 设置索引
public void setIndex(int index) {
this.mIndex = index;
}
// 获取索引
public int getIndex() {
return this.mIndex;
}
}
```
###
`TaskList` Google Tasks API JSON
IDGid setter getter 访mIndex
TaskList `setContentByRemoteJSON` `setContentByLocalJSON` JSON JSON `getLocalJSONFromContent` `getSyncAction`
`ActionFailureException`
Java `ActionFailureException` `RuntimeException`
ACTFE
// 定义包名称
package net.micode.notes.gtask.exception;
// 自定义异常类的声明,用于处理操作失败的情况
public class ActionFailureException extends RuntimeException {
// serialVersionUID用于异常类的版本控制
private static final long serialVersionUID = 4425249765923293627L;
// 无参构造函数
public ActionFailureException() {
super();
}
// 带有详细信息的构造函数
public ActionFailureException(String paramString) {
super(paramString);
}
// 带有详细信息和原因的构造函数paramThrowable为原始异常
public ActionFailureException(String paramString, Throwable paramThrowable) {
super(paramString, paramThrowable);
}
}
```
###
`ActionFailureException` Google
Tasks API
使
NETFE
Java `NetworkFailureException` `Exception`
```java
// 定义包名称
package net.micode.notes.gtask.exception;
// 自定义异常类的声明,用于处理网络失败的情况
public class NetworkFailureException extends Exception {
// serialVersionUID用于异常类的版本控制
private static final long serialVersionUID = 2107610287180234136L;
// 无参构造函数
public NetworkFailureException() {
super();
}
// 带有详细信息的构造函数
public NetworkFailureException(String paramString) {
super(paramString);
}
// 带有详细信息和原因的构造函数paramThrowable为原始异常
public NetworkFailureException(String paramString, Throwable paramThrowable) {
super(paramString, paramThrowable);
}
}
```
###
`NetworkFailureException`
使
使
便便
GAT
Java `GTaskASyncTask` `AsyncTask` Google Tasks API
```java
// 包名
package net.micode.notes.gtask.remote;
// 导入 Android 和应用内部所需的类
import android.app.Notification;
import android.app.NotificationManager;
// ...
// 定义 GTaskASyncTask 类,该类继承了 AsyncTask
public class GTaskASyncTask extends AsyncTask<Void, String, Integer> {
// 同步通知ID
private static int GTASK_SYNC_NOTIFICATION_ID = 5234235;
// 定义一个内部接口,当同步完成时回调
public interface OnCompleteListener {
void onComplete();
}
private Context mContext;
private NotificationManager mNotifiManager;
private GTaskManager mTaskManager;
private OnCompleteListener mOnCompleteListener;
// 构造方法,初始化上下文、完成监听器、通知管理器和任务管理器
public GTaskASyncTask(Context context, OnCompleteListener listener) {
// ...
}
// 取消同步操作方法
public void cancelSync() {
// ...
}
// 发布进展的方法,用于显示同步进度信息
public void publishProgess(String message) {
// ...
}
// 显示通知的方法
private void showNotification(int tickerId, String content) {
// ...
}
// 后台执行同步任务的方法
@Override
protected Integer doInBackground(Void... unused) {
// ...
}
// 当同步进度更新时调用的方法
@Override
protected void onProgressUpdate(String... progress) {
// ...
}
// 当同步任务完成后执行的方法
@Override
protected void onPostExecute(Integer result) {
// ...
}
}
```
###
`GTaskASyncTask` 线 Google Tasks
`doInBackground`
`onProgressUpdate` `onPostExecute`
UI
`OnCompleteListener`
UI 线

@ -1,5 +1,5 @@
欢迎使用MIUI便签
MIUI便签启动
很好的介绍来自福元路1号
无论从软件中直接添加还是从桌面拖出widgetMIUI便签能让你快速建立和保存便签
除了调整文字大小、便签背景、文件夹等基础功能外你会发现MIUI便签也提供了清单模式、便签提醒、软件加密、导出到SD卡、同步google task的高级功能让你的生活记录更加美好和安全

Loading…
Cancel
Save