You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Notes-master/app/src/main/java/草稿.java

584 lines
22 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

MetaData
1. MetaDataTask
2. MetaData
3. setMetagidJSONObjectgid"Meta Note Name"
4. getRelatedGidgid
5. isWorthSavingnulltruefalse
6. setContentByRemoteJSONJSONgidmRelatedGid
7. setContentByLocalJSONIllegalAccessError
8. getLocalJSONFromContentIllegalAccessError
9. getSyncActionIllegalAccessError
MetaDataGooglegidgid
1. android.database.CursorCursorAndroidSQLite
2. android.util.LogLogAndroid
3. net.micode.notes.tool.GTaskStringUtilsGTasksStringUtilsGTasksGoogle Task
4. org.json.JSONExceptionJSONExceptionorg.jsonJSON
5. org.json.JSONObjectJSONObjectorg.jsonJSON
1. CursorSQLite
2. Log
3. GTasksStringUtilsGoogle Task
4. JSONExceptionJSON
5. JSONObjectJSONJSON
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 线