diff --git a/doc/report.docx b/doc/report.docx index e05d44b..85c8705 100644 Binary files a/doc/report.docx and b/doc/report.docx differ diff --git a/src/main/java/net/micode/notes/data/Contact.java b/src/main/java/net/micode/notes/data/Contact.java index d97ac5d..1e04184 100644 --- a/src/main/java/net/micode/notes/data/Contact.java +++ b/src/main/java/net/micode/notes/data/Contact.java @@ -25,24 +25,24 @@ import android.util.Log; import java.util.HashMap; -public class Contact { +public class Contact {//定义一个Contact类,类别标签为Contact,包含一个用于存储用户信息的HashMap private static HashMap sContactCache; private static final String TAG = "Contact"; - +//定义静态常量,用于查询指定联系人 private static final String CALLER_ID_SELECTION = "PHONE_NUMBERS_EQUAL(" + Phone.NUMBER + ",?) AND " + Data.MIMETYPE + "='" + Phone.CONTENT_ITEM_TYPE + "'" + " AND " + Data.RAW_CONTACT_ID + " IN " + "(SELECT raw_contact_id " + " FROM phone_lookup" + " WHERE min_match = '+')"; - +//定义一个静态方法getContact,可以通过Contact对象以及电话号码查询联系人。 public static String getContact(Context context, String phoneNumber) { - if(sContactCache == null) { + if(sContactCache == null) {//不存在这个联系人则新建一个存储信息 sContactCache = new HashMap(); } - if(sContactCache.containsKey(phoneNumber)) { - return sContactCache.get(phoneNumber); + if(sContactCache.containsKey(phoneNumber)) {//如果已经包含电话号码作为关键字对应的用户 + return sContactCache.get(phoneNumber);//直接返回用户的名字,get返回名字 } String selection = CALLER_ID_SELECTION.replace("+", diff --git a/src/main/java/net/micode/notes/data/Notes.java b/src/main/java/net/micode/notes/data/Notes.java index f240604..fddf75c 100644 --- a/src/main/java/net/micode/notes/data/Notes.java +++ b/src/main/java/net/micode/notes/data/Notes.java @@ -17,7 +17,7 @@ package net.micode.notes.data; import android.net.Uri; -public class Notes { +public class Notes {//定义Nodes类,初始化参数,都赋值成静态量 public static final String AUTHORITY = "micode_notes"; public static final String TAG = "Notes"; public static final int TYPE_NOTE = 0; @@ -54,14 +54,14 @@ public class Notes { /** * Uri to query all notes and folders */ - public static final Uri CONTENT_NOTE_URI = Uri.parse("content://" + AUTHORITY + "/note"); + public static final Uri CONTENT_NOTE_URI = Uri.parse("content://" + AUTHORITY + "/note");//指定笔记的路径 /** * Uri to query data */ - public static final Uri CONTENT_DATA_URI = Uri.parse("content://" + AUTHORITY + "/data"); + public static final Uri CONTENT_DATA_URI = Uri.parse("content://" + AUTHORITY + "/data");//用于指定数据的路径,类似上面 - public interface NoteColumns { + public interface NoteColumns {//定义笔记集ID、父集ID、创建日期,修改日期等等列名称以及类型,做初始化 /** * The unique ID for a row *

Type: INTEGER (long)

@@ -167,7 +167,7 @@ public class Notes { public static final String VERSION = "version"; } - public interface DataColumns { + public interface DataColumns {//定义接口,给每行数据ID,类型,所属笔记集ID,内容数据等等做定义 /** * The unique ID for a row *

Type: INTEGER (long)

@@ -241,20 +241,20 @@ public class Notes { public static final String DATA5 = "data5"; } - public static final class TextNote implements DataColumns { + public static final class TextNote implements DataColumns {//实现DataColumn接口,为数据库查询操作提供数据列名称 /** * Mode to indicate the text in check list mode or not *

Type: Integer 1:check list mode 0: normal mode

*/ public static final String MODE = DATA1; - public static final int MODE_CHECK_LIST = 1; + public static final int MODE_CHECK_LIST = 1;//表示当前文本是否还处于检查列清单的模式 public static final String CONTENT_TYPE = "vnd.android.cursor.dir/text_note"; public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/text_note"; - public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/text_note"); + public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/text_note");//指定路径 } public static final class CallNote implements DataColumns { diff --git a/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java b/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java index ffe5d57..042c2d9 100644 --- a/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java +++ b/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java @@ -27,7 +27,7 @@ import net.micode.notes.data.Notes.DataConstants; import net.micode.notes.data.Notes.NoteColumns; -public class NotesDatabaseHelper extends SQLiteOpenHelper { +public class NotesDatabaseHelper extends SQLiteOpenHelper { //定义数据库相关的名称以及标签 private static final String DB_NAME = "note.db"; private static final int DB_VERSION = 4; @@ -42,7 +42,7 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper { private static NotesDatabaseHelper mInstance; - private static final String CREATE_NOTE_TABLE_SQL = + private static final String CREATE_NOTE_TABLE_SQL =//规范定义数据库存储信息的格式以及组成部分 "CREATE TABLE " + TABLE.NOTE + "(" + NoteColumns.ID + " INTEGER PRIMARY KEY," + NoteColumns.PARENT_ID + " INTEGER NOT NULL DEFAULT 0," + @@ -85,7 +85,7 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper { /** * Increase folder's note count when move note to the folder */ - private static final String NOTE_INCREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER = + private static final String NOTE_INCREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER =//设置触发器,在笔记集更新的时候增加数量1 "CREATE TRIGGER increase_folder_count_on_update "+ " AFTER UPDATE OF " + NoteColumns.PARENT_ID + " ON " + TABLE.NOTE + " BEGIN " + @@ -97,7 +97,7 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper { /** * Decrease folder's note count when move note from folder */ - private static final String NOTE_DECREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER = + private static final String NOTE_DECREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER =//类似的设置触发器,在笔记集更新的时候减少数量1 "CREATE TRIGGER decrease_folder_count_on_update " + " AFTER UPDATE OF " + NoteColumns.PARENT_ID + " ON " + TABLE.NOTE + " BEGIN " + @@ -110,7 +110,7 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper { /** * Increase folder's note count when insert new note to the folder */ - private static final String NOTE_INCREASE_FOLDER_COUNT_ON_INSERT_TRIGGER = + private static final String NOTE_INCREASE_FOLDER_COUNT_ON_INSERT_TRIGGER =//设置触发器,在笔记集创建的时候增加数量1 "CREATE TRIGGER increase_folder_count_on_insert " + " AFTER INSERT ON " + TABLE.NOTE + " BEGIN " + @@ -122,7 +122,7 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper { /** * Decrease folder's note count when delete note from the folder */ - private static final String NOTE_DECREASE_FOLDER_COUNT_ON_DELETE_TRIGGER = + private static final String NOTE_DECREASE_FOLDER_COUNT_ON_DELETE_TRIGGER =//设置触发器,在笔记集删除文件的时候-1 "CREATE TRIGGER decrease_folder_count_on_delete " + " AFTER DELETE ON " + TABLE.NOTE + " BEGIN " + @@ -135,7 +135,7 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper { /** * Update note's content when insert data with type {@link DataConstants#NOTE} */ - private static final String DATA_UPDATE_NOTE_CONTENT_ON_INSERT_TRIGGER = + private static final String DATA_UPDATE_NOTE_CONTENT_ON_INSERT_TRIGGER =//设置触发器用于在笔记中数据更改时进行相应ID,字段等的更新 "CREATE TRIGGER update_note_content_on_insert " + " AFTER INSERT ON " + TABLE.DATA + " WHEN new." + DataColumns.MIME_TYPE + "='" + DataConstants.NOTE + "'" + @@ -210,14 +210,14 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper { super(context, DB_NAME, null, DB_VERSION); } - public void createNoteTable(SQLiteDatabase db) { + public void createNoteTable(SQLiteDatabase db) {//创建并管理日志信息表 db.execSQL(CREATE_NOTE_TABLE_SQL); reCreateNoteTableTriggers(db); createSystemFolder(db); Log.d(TAG, "note table has been created"); } - private void reCreateNoteTableTriggers(SQLiteDatabase db) { + private void reCreateNoteTableTriggers(SQLiteDatabase db) {//重置触发器 db.execSQL("DROP TRIGGER IF EXISTS increase_folder_count_on_update"); db.execSQL("DROP TRIGGER IF EXISTS decrease_folder_count_on_update"); db.execSQL("DROP TRIGGER IF EXISTS decrease_folder_count_on_delete"); @@ -301,7 +301,7 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper { } @Override - public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { + public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {//用于检查并进行数据库版本的更新,保障版本控制 boolean reCreateTriggers = false; boolean skipV2 = false; diff --git a/src/main/java/net/micode/notes/data/NotesProvider.java b/src/main/java/net/micode/notes/data/NotesProvider.java index edb0a60..b29c6fd 100644 --- a/src/main/java/net/micode/notes/data/NotesProvider.java +++ b/src/main/java/net/micode/notes/data/NotesProvider.java @@ -35,7 +35,7 @@ import net.micode.notes.data.Notes.NoteColumns; import net.micode.notes.data.NotesDatabaseHelper.TABLE; -public class NotesProvider extends ContentProvider { +public class NotesProvider extends ContentProvider {//定义URL以及匹配规则 private static final UriMatcher mMatcher; private NotesDatabaseHelper mHelper; @@ -86,12 +86,12 @@ public class NotesProvider extends ContentProvider { } @Override - public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, + public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,//执行数据库查询操作 String sortOrder) { Cursor c = null; SQLiteDatabase db = mHelper.getReadableDatabase(); String id = null; - switch (mMatcher.match(uri)) { + switch (mMatcher.match(uri)) {//匹配数据库查询关键字 case URI_NOTE: c = db.query(TABLE.NOTE, projection, selection, selectionArgs, null, null, sortOrder); @@ -148,7 +148,7 @@ public class NotesProvider extends ContentProvider { } @Override - public Uri insert(Uri uri, ContentValues values) { + public Uri insert(Uri uri, ContentValues values) {//insert向数据库中插入一条数据信息值 SQLiteDatabase db = mHelper.getWritableDatabase(); long dataId = 0, noteId = 0, insertedId = 0; switch (mMatcher.match(uri)) { @@ -182,7 +182,8 @@ public class NotesProvider extends ContentProvider { } @Override - public int delete(Uri uri, String selection, String[] selectionArgs) { + public int delete(Uri uri, String selection, String[] selectionArgs) {//实现删除操作 + /*这两个参数通常在一起使用,以定义一个特定的删除操作。selection 定义了哪些数据应该被删除,而 selectionArgs 为 selection 中的占位符提供了具体的值。*/ int count = 0; String id = null; SQLiteDatabase db = mHelper.getWritableDatabase(); @@ -228,7 +229,7 @@ public class NotesProvider extends ContentProvider { } @Override - public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { + public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {//更新 int count = 0; String id = null; SQLiteDatabase db = mHelper.getWritableDatabase(); diff --git a/src/main/java/net/micode/notes/gtask/data/MetaData.java b/src/main/java/net/micode/notes/gtask/data/MetaData.java index 3a2050b..e7f8fb7 100644 --- a/src/main/java/net/micode/notes/gtask/data/MetaData.java +++ b/src/main/java/net/micode/notes/gtask/data/MetaData.java @@ -50,7 +50,7 @@ public class MetaData extends Task { } @Override - public void setContentByRemoteJSON(JSONObject js) { + public void setContentByRemoteJSON(JSONObject js) {//用远程的json super.setContentByRemoteJSON(js); if (getNotes() != null) { try { @@ -64,7 +64,7 @@ public class MetaData extends Task { } @Override - public void setContentByLocalJSON(JSONObject js) { + public void setContentByLocalJSON(JSONObject js) {//这几个函数都是通过一部分已知的项推算其他未知的 // this function should not be called throw new IllegalAccessError("MetaData:setContentByLocalJSON should not be called"); } diff --git a/src/main/java/net/micode/notes/gtask/data/Node.java b/src/main/java/net/micode/notes/gtask/data/Node.java index 63950e0..3a11067 100644 --- a/src/main/java/net/micode/notes/gtask/data/Node.java +++ b/src/main/java/net/micode/notes/gtask/data/Node.java @@ -64,9 +64,9 @@ public abstract class Node { public abstract JSONObject getLocalJSONFromContent(); - public abstract int getSyncAction(Cursor c); + public abstract int getSyncAction(Cursor c);//根据当前指针刷新缓冲区 - public void setGid(String gid) { + public void setGid(String gid) {//定义各项简单查询操作的返回值 this.mGid = gid; } @@ -82,7 +82,7 @@ public abstract class Node { this.mDeleted = deleted; } - public String getGid() { + public String getGid() {//this保证指向的还是当前的对象 return this.mGid; } diff --git a/src/main/java/net/micode/notes/gtask/exception/ActionFailureException.java b/src/main/java/net/micode/notes/gtask/exception/ActionFailureException.java index 15504be..83424dc 100644 --- a/src/main/java/net/micode/notes/gtask/exception/ActionFailureException.java +++ b/src/main/java/net/micode/notes/gtask/exception/ActionFailureException.java @@ -16,7 +16,7 @@ package net.micode.notes.gtask.exception; -public class ActionFailureException extends RuntimeException { +public class ActionFailureException extends RuntimeException {//异常处理程序,定义了全部可能参数下抛出错误 private static final long serialVersionUID = 4425249765923293627L; public ActionFailureException() { diff --git a/src/main/java/net/micode/notes/gtask/exception/NetworkFailureException.java b/src/main/java/net/micode/notes/gtask/exception/NetworkFailureException.java index b08cfb1..66d6749 100644 --- a/src/main/java/net/micode/notes/gtask/exception/NetworkFailureException.java +++ b/src/main/java/net/micode/notes/gtask/exception/NetworkFailureException.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package net.micode.notes.gtask.exception; +package net.micode.notes.gtask.exception;//调用完成异常处理 public class NetworkFailureException extends Exception { private static final long serialVersionUID = 2107610287180234136L;