From eab43a783b1ef512f8b43033e689444c82cbe267 Mon Sep 17 00:00:00 2001 From: YAN <2597267256@qq.com> Date: Tue, 10 Jun 2025 00:24:45 +0800 Subject: [PATCH] =?UTF-8?q?1=E5=8E=BB1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...代码阅读-精读报告_闫冠廷.docx | Bin 2333754 -> 2363158 bytes src/221340262 闫冠廷 精读注释.docx | Bin 82893 -> 0 bytes src/230140164_耿曼淳.docx | Bin 100680 -> 0 bytes src/230340082 李葱.docx | 1344 ---------------- src/新建 文本文档 (2).txt | 0 src/石云帆 230340179.docx | 1390 ----------------- 6 files changed, 2734 deletions(-) delete mode 100644 src/221340262 闫冠廷 精读注释.docx delete mode 100644 src/230140164_耿曼淳.docx delete mode 100644 src/230340082 李葱.docx delete mode 100644 src/新建 文本文档 (2).txt delete mode 100644 src/石云帆 230340179.docx diff --git a/doc/小米便签开源代码阅读-精读报告_闫冠廷.docx b/doc/小米便签开源代码阅读-精读报告_闫冠廷.docx index 772e7eed36499c316e12b8f52b37b55667407c92..31cb42ee07691711cce9f2f2ee29ab2dac2fb450 100644 GIT binary patch delta 64543 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 diff --git a/src/221340262 闫冠廷 精读注释.docx b/src/221340262 闫冠廷 精读注释.docx deleted file mode 100644 index 8b7ef35dec2c6d1a37f038e1ca34e6a0404e4853..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 82893 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

adJ8)dwP?%rAE$MS zic{!)<{c++<2%{}&9Cl&i~+=KDxPzs)8nSok!&t>c?0G;Fn-0Hacth!zEA(KgpXyY z{EhyzxMlwZ{dY6@Prm=T0{AO0c;^3ElKU-Rw%ix8;aS^Say zP0fcj`vdynbpOsoMtDl3-N#t=`*6Ge7XFh7ijNHb1Jkv!`8}-viB{ul+R^<$dwigg z{-yFy^x((U|Dg4)?f#fG{}V2a)Q;!*Avp5^|Gjwno&JQYei-Dx;D4;W{?h;7yXuEA z`d9j053rAqf0+IMi>Ked;m`CNlE($~cTe$mrvB+Gegpq3?AYIdALahL=lEx}Ny|1B z0cbz~wo|Zwu-5qDrT-}P|IFi`@PDpO{wl~XmVedYZ)=r*;_c#G@k&1U&Hv~oe{Zzs zk4E@Iy}hA>gQ=CV{a>8_WncPIm}U#%0RT8_007~)?vL~*50wAr+}^>}!tj59|9gY| zo&8yif9ZBGF|;)NU;PvvnMvyVhc)8D0RYhcRQfNiFMkLA0smt~Dkll{hxz(ALJxrT MQM63nkFEyzf33I(-~a#s diff --git a/src/230140164_耿曼淳.docx b/src/230140164_耿曼淳.docx deleted file mode 100644 index a740aacf269adfdeb78804ba1067cabf3d685ee6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 100680 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¬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 diff --git a/src/230340082 李葱.docx b/src/230340082 李葱.docx deleted file mode 100644 index a35ed8c..0000000 --- a/src/230340082 李葱.docx +++ /dev/null @@ -1,1344 +0,0 @@ -package net.micode.notes.data; - -import android.content.Context; - -import android.database.Cursor; -import android.provider.ContactsContract.CommonDataKinds.Phone; -import android.provider.ContactsContract.Data; -import android.telephony.PhoneNumberUtils; -import android.util.Log; - -import java.util.HashMap; -//change -public class Contact { //联系人 - private static HashMap sContactCache; - private static final String TAG = "Contact"; - - // 定义字符串CALLER_ID_SELECTION - 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 = '+')"; - - // 获取联系人 - public static String getContact(Context context, String phoneNumber) { - if(sContactCache == null) { - sContactCache = new HashMap(); - } - - // 查找HashMap中是否已有phoneNumber信息 - if(sContactCache.containsKey(phoneNumber)) { - return sContactCache.get(phoneNumber); - } - - String selection = CALLER_ID_SELECTION.replace("+", - PhoneNumberUtils.toCallerIDMinMatch(phoneNumber)); - // 查找数据库中phoneNumber的信息 - Cursor cursor = context.getContentResolver().query( - Data.CONTENT_URI, - new String [] { Phone.DISPLAY_NAME }, - selection, - new String[] { phoneNumber }, - null); - - // 判定查询结果 - // moveToFirst()返回第一条 - if (cursor != null && cursor.moveToFirst()) { - try { - // 找到相关信息 - String name = cursor.getString(0); - sContactCache.put(phoneNumber, name); - return name; - // 异常 - } catch (IndexOutOfBoundsException e) { - Log.e(TAG, " Cursor get string error " + e.toString()); - return null; - } finally { - cursor.close(); - } - // 未找到相关信息 - } else { - Log.d(TAG, "No contact matched with number:" + phoneNumber); - return null; - } - } -} -package net.micode.notes.data; - -import android.content.ContentUris; -import android.net.Uri; -// Notes 类中定义了很多常量,这些常量大多是int型和string型 -public class Notes { - public static final String AUTHORITY = "micode_notes"; - public static final String TAG = "Notes"; - - //以下三个常量对NoteColumns.TYPE的值进行设置时会用到 - public static final int TYPE_NOTE = 0; - public static final int TYPE_FOLDER = 1; - public static final int TYPE_SYSTEM = 2; - - /** - * Following IDs are system folders' identifiers - * {@link Notes#ID_ROOT_FOLDER } is default folder - * {@link Notes#ID_TEMPARAY_FOLDER } is for notes belonging no folder - * {@link Notes#ID_CALL_RECORD_FOLDER} is to store call records - */ - public static final int ID_ROOT_FOLDER = 0; - public static final int ID_TEMPARAY_FOLDER = -1; - public static final int ID_CALL_RECORD_FOLDER = -2; - public static final int ID_TRASH_FOLER = -3; - - public static final String INTENT_EXTRA_ALERT_DATE = - -"net.micode.notes.alert_date"; - public static final String INTENT_EXTRA_BACKGROUND_ID = - -"net.micode.notes.background_color_id"; - public static final String INTENT_EXTRA_WIDGET_ID = - -"net.micode.notes.widget_id"; - public static final String INTENT_EXTRA_WIDGET_TYPE = - -"net.micode.notes.widget_type"; - public static final String INTENT_EXTRA_FOLDER_ID = - -"net.micode.notes.folder_id"; - public static final String INTENT_EXTRA_CALL_DATE = - -"net.micode.notes.call_date"; - - public static final int TYPE_WIDGET_INVALIDE = -1; - public static final int TYPE_WIDGET_2X = 0; - public static final int TYPE_WIDGET_4X = 1; - - public static class DataConstants { - public static final String NOTE = TextNote.CONTENT_ITEM_TYPE; - public static final String CALL_NOTE = CallNote.CONTENT_ITEM_TYPE; - } - - /** - * Uri to query all notes and folders - */ - public static final Uri CONTENT_NOTE_URI = Uri.parse("content://" + - -AUTHORITY + "/note");//定义查询便签和文件夹的指针。 - -// public static final Uri my_URI = ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI , 10); - - /** - * Uri to query data - */ - public static final Uri CONTENT_DATA_URI = Uri.parse("content://" + - -AUTHORITY + "/data");//定义查找数据的指针。 - - // 定义NoteColumns的常量,用于后面创建数据库的表头 - public interface NoteColumns { - /** - * The unique ID for a row - *

Type: INTEGER (long)

- */ - public static final String ID = "_id"; - - /** - * The parent's id for note or folder - *

Type: INTEGER (long)

- */ - public static final String PARENT_ID = "parent_id";//为什么会有parent_id - - /** - * Created data for note or folder - *

Type: INTEGER (long)

- */ - public static final String CREATED_DATE = "created_date"; - - /** - * Latest modified date - *

Type: INTEGER (long)

- */ - public static final String MODIFIED_DATE = "modified_date"; - - - /** - * Alert date - *

Type: INTEGER (long)

- */ - public static final String ALERTED_DATE = "alert_date"; - - /** - * Folder's name or text content of note - *

Type: TEXT

- */ - public static final String SNIPPET = "snippet"; - - /** - * Note's widget id - *

Type: INTEGER (long)

- */ - public static final String WIDGET_ID = "widget_id"; - - /** - * Note's widget type - *

Type: INTEGER (long)

- */ - public static final String WIDGET_TYPE = "widget_type"; - - /** - * Note's background color's id - *

Type: INTEGER (long)

- */ - public static final String BG_COLOR_ID = "bg_color_id"; - - /** - * For text note, it doesn't has attachment, for multi-media - * note, it has at least one attachment - *

Type: INTEGER

- */ - public static final String HAS_ATTACHMENT = "has_attachment"; - - /** - * Folder's count of notes - *

Type: INTEGER (long)

- */ - public static final String NOTES_COUNT = "notes_count"; - - /** - * The file type: folder or note - *

Type: INTEGER

- */ - public static final String TYPE = "type"; - - /** - * The last sync id - *

Type: INTEGER (long)

- */ - public static final String SYNC_ID = "sync_id";//同步 - - /** - * Sign to indicate local modified or not - *

Type: INTEGER

- */ - public static final String LOCAL_MODIFIED = "local_modified"; - - /** - * Original parent id before moving into temporary folder - *

Type : INTEGER

- */ - public static final String ORIGIN_PARENT_ID = "origin_parent_id"; - - /** - * The gtask id - *

Type : TEXT

- */ - public static final String GTASK_ID = "gtask_id"; - - /** - * The version code - *

Type : INTEGER (long)

- */ - public static final String VERSION = "version"; - }//这些常量主要是定义便签的属性的。 - - // 定义DataColumns的常量,用于后面创建数据库的表头 - public interface DataColumns { - /** - * The unique ID for a row - *

Type: INTEGER (long)

- */ - public static final String ID = "_id"; - - /** - * The MIME type of the item represented by this row. - *

Type: Text

- */ - public static final String MIME_TYPE = "mime_type"; - - /** - * The reference id to note that this data belongs to - *

Type: INTEGER (long)

- */ - public static final String NOTE_ID = "note_id"; - - /** - * Created data for note or folder - *

Type: INTEGER (long)

- */ - public static final String CREATED_DATE = "created_date"; - - /** - * Latest modified date - *

Type: INTEGER (long)

- */ - public static final String MODIFIED_DATE = "modified_date"; - - /** - * Data's content - *

Type: TEXT

- */ - public static final String CONTENT = "content"; - - - /** - * Generic data column, the meaning is {@link #MIMETYPE} specific, -used for - * integer data type - *

Type: INTEGER

- */ - public static final String DATA1 = "data1"; - - /** - * Generic data column, the meaning is {@link #MIMETYPE} specific, -used for - * integer data type - *

Type: INTEGER

- */ - public static final String DATA2 = "data2"; - - /** - * Generic data column, the meaning is {@link #MIMETYPE} specific, -used for - * TEXT data type - *

Type: TEXT

- */ - public static final String DATA3 = "data3"; - - /** - * Generic data column, the meaning is {@link #MIMETYPE} specific, -used for - * TEXT data type - *

Type: TEXT

- */ - public static final String DATA4 = "data4"; - - /** - * Generic data column, the meaning is {@link #MIMETYPE} specific, -used for - * TEXT data type - *

Type: TEXT

- */ - public static final String DATA5 = "data5"; - }//主要是定义存储便签内容数据的 - public static final class TextNote implements DataColumns { - /** - * 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 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 class CallNote implements DataColumns { - /** - * Call date for this record - *

Type: INTEGER (long)

- */ - public static final String CALL_DATE = DATA1; - - /** - * Phone number for this record - *

Type: TEXT

- */ - public static final String PHONE_NUMBER = DATA3; - - public static final String CONTENT_TYPE = - -"vnd.android.cursor.dir/call_note"; - - public static final String CONTENT_ITEM_TYPE = - -"vnd.android.cursor.item/call_note"; - - public static final Uri CONTENT_URI = Uri.parse("content://" + - -AUTHORITY + "/call_note"); - }//电话内容的数据结构 -} -package net.micode.notes.data; - -import android.content.ContentUris; -import android.net.Uri; -// Notes 类中定义了很多常量,这些常量大多是int型和string型 -public class Notes { - public static final String AUTHORITY = "micode_notes"; - public static final String TAG = "Notes"; - - //以下三个常量对NoteColumns.TYPE的值进行设置时会用到 - public static final int TYPE_NOTE = 0; - public static final int TYPE_FOLDER = 1; - public static final int TYPE_SYSTEM = 2; - - /** - * Following IDs are system folders' identifiers - * {@link Notes#ID_ROOT_FOLDER } is default folder - * {@link Notes#ID_TEMPARAY_FOLDER } is for notes belonging no folder - * {@link Notes#ID_CALL_RECORD_FOLDER} is to store call records - */ - public static final int ID_ROOT_FOLDER = 0; - public static final int ID_TEMPARAY_FOLDER = -1; - public static final int ID_CALL_RECORD_FOLDER = -2; - public static final int ID_TRASH_FOLER = -3; - - public static final String INTENT_EXTRA_ALERT_DATE = - -"net.micode.notes.alert_date"; - public static final String INTENT_EXTRA_BACKGROUND_ID = - -"net.micode.notes.background_color_id"; - public static final String INTENT_EXTRA_WIDGET_ID = - -"net.micode.notes.widget_id"; - public static final String INTENT_EXTRA_WIDGET_TYPE = - -"net.micode.notes.widget_type"; - public static final String INTENT_EXTRA_FOLDER_ID = - -"net.micode.notes.folder_id"; - public static final String INTENT_EXTRA_CALL_DATE = - -"net.micode.notes.call_date"; - - public static final int TYPE_WIDGET_INVALIDE = -1; - public static final int TYPE_WIDGET_2X = 0; - public static final int TYPE_WIDGET_4X = 1; - - public static class DataConstants { - public static final String NOTE = TextNote.CONTENT_ITEM_TYPE; - public static final String CALL_NOTE = CallNote.CONTENT_ITEM_TYPE; - } - - /** - * Uri to query all notes and folders - */ - public static final Uri CONTENT_NOTE_URI = Uri.parse("content://" + - -AUTHORITY + "/note");//定义查询便签和文件夹的指针。 - -// public static final Uri my_URI = ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI , 10); - - /** - * Uri to query data - */ - public static final Uri CONTENT_DATA_URI = Uri.parse("content://" + - -AUTHORITY + "/data");//定义查找数据的指针。 - - // 定义NoteColumns的常量,用于后面创建数据库的表头 - public interface NoteColumns { - /** - * The unique ID for a row - *

Type: INTEGER (long)

- */ - public static final String ID = "_id"; - - /** - * The parent's id for note or folder - *

Type: INTEGER (long)

- */ - public static final String PARENT_ID = "parent_id";//为什么会有parent_id - - /** - * Created data for note or folder - *

Type: INTEGER (long)

- */ - public static final String CREATED_DATE = "created_date"; - - /** - * Latest modified date - *

Type: INTEGER (long)

- */ - public static final String MODIFIED_DATE = "modified_date"; - - - /** - * Alert date - *

Type: INTEGER (long)

- */ - public static final String ALERTED_DATE = "alert_date"; - - /** - * Folder's name or text content of note - *

Type: TEXT

- */ - public static final String SNIPPET = "snippet"; - - /** - * Note's widget id - *

Type: INTEGER (long)

- */ - public static final String WIDGET_ID = "widget_id"; - - /** - * Note's widget type - *

Type: INTEGER (long)

- */ - public static final String WIDGET_TYPE = "widget_type"; - - /** - * Note's background color's id - *

Type: INTEGER (long)

- */ - public static final String BG_COLOR_ID = "bg_color_id"; - - /** - * For text note, it doesn't has attachment, for multi-media - * note, it has at least one attachment - *

Type: INTEGER

- */ - public static final String HAS_ATTACHMENT = "has_attachment"; - - /** - * Folder's count of notes - *

Type: INTEGER (long)

- */ - public static final String NOTES_COUNT = "notes_count"; - - /** - * The file type: folder or note - *

Type: INTEGER

- */ - public static final String TYPE = "type"; - - /** - * The last sync id - *

Type: INTEGER (long)

- */ - public static final String SYNC_ID = "sync_id";//同步 - - /** - * Sign to indicate local modified or not - *

Type: INTEGER

- */ - public static final String LOCAL_MODIFIED = "local_modified"; - - /** - * Original parent id before moving into temporary folder - *

Type : INTEGER

- */ - public static final String ORIGIN_PARENT_ID = "origin_parent_id"; - - /** - * The gtask id - *

Type : TEXT

- */ - public static final String GTASK_ID = "gtask_id"; - - /** - * The version code - *

Type : INTEGER (long)

- */ - public static final String VERSION = "version"; - }//这些常量主要是定义便签的属性的。 - - // 定义DataColumns的常量,用于后面创建数据库的表头 - public interface DataColumns { - /** - * The unique ID for a row - *

Type: INTEGER (long)

- */ - public static final String ID = "_id"; - - /** - * The MIME type of the item represented by this row. - *

Type: Text

- */ - public static final String MIME_TYPE = "mime_type"; - - /** - * The reference id to note that this data belongs to - *

Type: INTEGER (long)

- */ - public static final String NOTE_ID = "note_id"; - - /** - * Created data for note or folder - *

Type: INTEGER (long)

- */ - public static final String CREATED_DATE = "created_date"; - - /** - * Latest modified date - *

Type: INTEGER (long)

- */ - public static final String MODIFIED_DATE = "modified_date"; - - /** - * Data's content - *

Type: TEXT

- */ - public static final String CONTENT = "content"; - - - /** - * Generic data column, the meaning is {@link #MIMETYPE} specific, -used for - * integer data type - *

Type: INTEGER

- */ - public static final String DATA1 = "data1"; - - /** - * Generic data column, the meaning is {@link #MIMETYPE} specific, -used for - * integer data type - *

Type: INTEGER

- */ - public static final String DATA2 = "data2"; - - /** - * Generic data column, the meaning is {@link #MIMETYPE} specific, -used for - * TEXT data type - *

Type: TEXT

- */ - public static final String DATA3 = "data3"; - - /** - * Generic data column, the meaning is {@link #MIMETYPE} specific, -used for - * TEXT data type - *

Type: TEXT

- */ - public static final String DATA4 = "data4"; - - /** - * Generic data column, the meaning is {@link #MIMETYPE} specific, -used for - * TEXT data type - *

Type: TEXT

- */ - public static final String DATA5 = "data5"; - }//主要是定义存储便签内容数据的 - public static final class TextNote implements DataColumns { - /** - * 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 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 class CallNote implements DataColumns { - /** - * Call date for this record - *

Type: INTEGER (long)

- */ - public static final String CALL_DATE = DATA1; - - /** - * Phone number for this record - *

Type: TEXT

- */ - public static final String PHONE_NUMBER = DATA3; - - public static final String CONTENT_TYPE = - -"vnd.android.cursor.dir/call_note"; - - public static final String CONTENT_ITEM_TYPE = - -"vnd.android.cursor.item/call_note"; - - public static final Uri CONTENT_URI = Uri.parse("content://" + - -AUTHORITY + "/call_note"); - }//电话内容的数据结构 -} -package net.micode.notes.data; - -import android.content.ContentValues;//就是用于保存一些数据(string boolean byte double float int long short ...)信息,这些信息可以被数据库操作时使用。 -import android.content.Context;//加载和访问资源。(android中主要是这两个功能,但是这里具体不清楚) -import android.database.sqlite.SQLiteDatabase;//主要提供了对应于添加、删除、更新、查询的操作方法: insert()、delete()、update()和query()。配合content.values -import android.database.sqlite.SQLiteOpenHelper;//用来管理数据的创建和版本更新 -import android.util.Log; - -import net.micode.notes.data.Notes.DataColumns; -import net.micode.notes.data.Notes.DataConstants; -import net.micode.notes.data.Notes.NoteColumns; -//数据库操作,用SQLOpenhelper,对一些note和文件进行数据库的操作,比如删除文件后,将文件里的note也相应删除 - -public class NotesDatabaseHelper extends SQLiteOpenHelper { - private static final String DB_NAME = "note.db"; - - private static final int DB_VERSION = 4; - - public interface TABLE { //接口,分成note和data,在后面的程序里分别使用过 - public static final String NOTE = "note"; - - public static final String DATA = "data"; - } - - private static final String TAG = "NotesDatabaseHelper"; - - private static NotesDatabaseHelper mInstance; - - 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," + - NoteColumns.ALERTED_DATE + " INTEGER NOT NULL DEFAULT 0," + - NoteColumns.BG_COLOR_ID + " INTEGER NOT NULL DEFAULT 0," + - NoteColumns.CREATED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," + - NoteColumns.HAS_ATTACHMENT + " INTEGER NOT NULL DEFAULT 0," + - NoteColumns.MODIFIED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," + - NoteColumns.NOTES_COUNT + " INTEGER NOT NULL DEFAULT 0," + - NoteColumns.SNIPPET + " TEXT NOT NULL DEFAULT ''," + - NoteColumns.TYPE + " INTEGER NOT NULL DEFAULT 0," + - NoteColumns.WIDGET_ID + " INTEGER NOT NULL DEFAULT 0," + - NoteColumns.WIDGET_TYPE + " INTEGER NOT NULL DEFAULT -1," + - NoteColumns.SYNC_ID + " INTEGER NOT NULL DEFAULT 0," + - NoteColumns.LOCAL_MODIFIED + " INTEGER NOT NULL DEFAULT 0," + - NoteColumns.ORIGIN_PARENT_ID + " INTEGER NOT NULL DEFAULT 0," + - NoteColumns.GTASK_ID + " TEXT NOT NULL DEFAULT ''," + - NoteColumns.VERSION + " INTEGER NOT NULL DEFAULT 0" + - ")";//数据库中需要存储的项目的名称,就相当于创建一个表格的表头的内容。 - - private static final String CREATE_DATA_TABLE_SQL = - "CREATE TABLE " + TABLE.DATA + "(" + - DataColumns.ID + " INTEGER PRIMARY KEY," + - DataColumns.MIME_TYPE + " TEXT NOT NULL," + - DataColumns.NOTE_ID + " INTEGER NOT NULL DEFAULT 0," + - NoteColumns.CREATED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," + - NoteColumns.MODIFIED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," + - DataColumns.CONTENT + " TEXT NOT NULL DEFAULT ''," + - DataColumns.DATA1 + " INTEGER," + - DataColumns.DATA2 + " INTEGER," + - DataColumns.DATA3 + " TEXT NOT NULL DEFAULT ''," + - DataColumns.DATA4 + " TEXT NOT NULL DEFAULT ''," + - DataColumns.DATA5 + " TEXT NOT NULL DEFAULT ''" + - ")";//和上面的功能一样,主要是存储的项目不同 - - private static final String CREATE_DATA_NOTE_ID_INDEX_SQL = - "CREATE INDEX IF NOT EXISTS note_id_index ON " + - TABLE.DATA + "(" + DataColumns.NOTE_ID + ");";//存储便签编号的一个数据表格 - - /** - * Increase folder's note count when move note to the folder - */ - private static final String NOTE_INCREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER = - "CREATE TRIGGER increase_folder_count_on_update "+ - " AFTER UPDATE OF " + NoteColumns.PARENT_ID + " ON " + TABLE.NOTE + - " BEGIN " + - " UPDATE " + TABLE.NOTE + - " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + " + 1" + - " WHERE " + NoteColumns.ID + "=new." + NoteColumns.PARENT_ID + ";" + - " END";//在文件夹中移入一个Note之后需要更改的数据的表格。 - - /** - * Decrease folder's note count when move note from folder - */ - private static final String NOTE_DECREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER = - "CREATE TRIGGER decrease_folder_count_on_update " + - " AFTER UPDATE OF " + NoteColumns.PARENT_ID + " ON " + TABLE.NOTE + - " BEGIN " + - " UPDATE " + TABLE.NOTE + - " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + "-1" + - " WHERE " + NoteColumns.ID + "=old." + NoteColumns.PARENT_ID + - " AND " + NoteColumns.NOTES_COUNT + ">0" + ";" + - " END";//在文件夹中移出一个Note之后需要更改的数据的表格。 - - /** - * Increase folder's note count when insert new note to the folder - */ - private static final String NOTE_INCREASE_FOLDER_COUNT_ON_INSERT_TRIGGER = - "CREATE TRIGGER increase_folder_count_on_insert " + - " AFTER INSERT ON " + TABLE.NOTE + - " BEGIN " + - " UPDATE " + TABLE.NOTE + - " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + " + 1" + - " WHERE " + NoteColumns.ID + "=new." + NoteColumns.PARENT_ID + ";" + - " END";//在文件夹中插入一个Note之后需要更改的数据的表格。 - - /** - * Decrease folder's note count when delete note from the folder - */ - private static final String NOTE_DECREASE_FOLDER_COUNT_ON_DELETE_TRIGGER = - "CREATE TRIGGER decrease_folder_count_on_delete " + - " AFTER DELETE ON " + TABLE.NOTE + - " BEGIN " + - " UPDATE " + TABLE.NOTE + - " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + "-1" + - " WHERE " + NoteColumns.ID + "=old." + NoteColumns.PARENT_ID + - " AND " + NoteColumns.NOTES_COUNT + ">0;" + - " END";//在文件夹中删除一个Note之后需要更改的数据的表格。 - - /** - * Update note's content when insert data with type {@link DataConstants#NOTE} - */ - private static final String DATA_UPDATE_NOTE_CONTENT_ON_INSERT_TRIGGER = - "CREATE TRIGGER update_note_content_on_insert " + - " AFTER INSERT ON " + TABLE.DATA + - " WHEN new." + DataColumns.MIME_TYPE + "='" + DataConstants.NOTE + "'" + - " BEGIN" + - " UPDATE " + TABLE.NOTE + - " SET " + NoteColumns.SNIPPET + "=new." + DataColumns.CONTENT + - " WHERE " + NoteColumns.ID + "=new." + DataColumns.NOTE_ID + ";" + - " END";//在文件夹中对一个Note导入新的数据之后需要更改的数据的表格。 - - /** - * Update note's content when data with {@link DataConstants#NOTE} type has changed - */ - private static final String DATA_UPDATE_NOTE_CONTENT_ON_UPDATE_TRIGGER = - "CREATE TRIGGER update_note_content_on_update " + - " AFTER UPDATE ON " + TABLE.DATA + - " WHEN old." + DataColumns.MIME_TYPE + "='" + DataConstants.NOTE + "'" + - " BEGIN" + - " UPDATE " + TABLE.NOTE + - " SET " + NoteColumns.SNIPPET + "=new." + DataColumns.CONTENT + - " WHERE " + NoteColumns.ID + "=new." + DataColumns.NOTE_ID + ";" + - " END";//Note数据被修改后需要更改的数据的表格。 - - /** - * Update note's content when data with {@link DataConstants#NOTE} type has deleted - */ - private static final String DATA_UPDATE_NOTE_CONTENT_ON_DELETE_TRIGGER = - "CREATE TRIGGER update_note_content_on_delete " + - " AFTER delete ON " + TABLE.DATA + - " WHEN old." + DataColumns.MIME_TYPE + "='" + DataConstants.NOTE + "'" + - " BEGIN" + - " UPDATE " + TABLE.NOTE + - " SET " + NoteColumns.SNIPPET + "=''" + - " WHERE " + NoteColumns.ID + "=old." + DataColumns.NOTE_ID + ";" + - " END";//Note数据被删除后需要更改的数据的表格。 - - /** - * Delete datas belong to note which has been deleted - */ - private static final String NOTE_DELETE_DATA_ON_DELETE_TRIGGER = - "CREATE TRIGGER delete_data_on_delete " + - " AFTER DELETE ON " + TABLE.NOTE + - " BEGIN" + - " DELETE FROM " + TABLE.DATA + - " WHERE " + DataColumns.NOTE_ID + "=old." + NoteColumns.ID + ";" + - " END";//删除已删除的便签的数据后需要更改的数据的表格。 - - /** - * Delete notes belong to folder which has been deleted - */ - private static final String FOLDER_DELETE_NOTES_ON_DELETE_TRIGGER = - "CREATE TRIGGER folder_delete_notes_on_delete " + - " AFTER DELETE ON " + TABLE.NOTE + - " BEGIN" + - " DELETE FROM " + TABLE.NOTE + - " WHERE " + NoteColumns.PARENT_ID + "=old." + NoteColumns.ID + ";" + - " END";//删除已删除的文件夹的便签后需要更改的数据的表格。 - - /** - * Move notes belong to folder which has been moved to trash folder - */ - private static final String FOLDER_MOVE_NOTES_ON_TRASH_TRIGGER = - "CREATE TRIGGER folder_move_notes_on_trash " + - " AFTER UPDATE ON " + TABLE.NOTE + - " WHEN new." + NoteColumns.PARENT_ID + "=" + Notes.ID_TRASH_FOLER + - " BEGIN" + - " UPDATE " + TABLE.NOTE + - " SET " + NoteColumns.PARENT_ID + "=" + Notes.ID_TRASH_FOLER + - " WHERE " + NoteColumns.PARENT_ID + "=old." + NoteColumns.ID + ";" + - " END";//还原垃圾桶中便签后需要更改的数据的表格。 - - public NotesDatabaseHelper(Context context) { - super(context, DB_NAME, null, DB_VERSION); - }//构造函数,传入数据库的名称和版本 - - 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) { - 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"); - db.execSQL("DROP TRIGGER IF EXISTS delete_data_on_delete"); - db.execSQL("DROP TRIGGER IF EXISTS increase_folder_count_on_insert"); - db.execSQL("DROP TRIGGER IF EXISTS folder_delete_notes_on_delete"); - db.execSQL("DROP TRIGGER IF EXISTS folder_move_notes_on_trash"); - - db.execSQL(NOTE_INCREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER); - db.execSQL(NOTE_DECREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER); - db.execSQL(NOTE_DECREASE_FOLDER_COUNT_ON_DELETE_TRIGGER); - db.execSQL(NOTE_DELETE_DATA_ON_DELETE_TRIGGER); - db.execSQL(NOTE_INCREASE_FOLDER_COUNT_ON_INSERT_TRIGGER); - db.execSQL(FOLDER_DELETE_NOTES_ON_DELETE_TRIGGER); - db.execSQL(FOLDER_MOVE_NOTES_ON_TRASH_TRIGGER); - }//execSQL是数据库操作的API,主要是更改行为的SQL语句。 - //在这里主要是用来重新创建上述定义的表格用的,先删除原来有的数据库的触发器再重新创建新的数据库 - - private void createSystemFolder(SQLiteDatabase db) { - ContentValues values = new ContentValues(); - - /** - * call record foler for call notes - */ - values.put(NoteColumns.ID, Notes.ID_CALL_RECORD_FOLDER); - values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); - db.insert(TABLE.NOTE, null, values); - - /** - * root folder which is default folder - */ - values.clear(); - values.put(NoteColumns.ID, Notes.ID_ROOT_FOLDER); - values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); - db.insert(TABLE.NOTE, null, values); - - /** - * temporary folder which is used for moving note - */ - values.clear(); - values.put(NoteColumns.ID, Notes.ID_TEMPARAY_FOLDER); - values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); - db.insert(TABLE.NOTE, null, values); - - /** - * create trash folder - */ - values.clear(); - values.put(NoteColumns.ID, Notes.ID_TRASH_FOLER); - values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); - db.insert(TABLE.NOTE, null, values); - }//创建几个系统文件夹 - - public void createDataTable(SQLiteDatabase db) { - db.execSQL(CREATE_DATA_TABLE_SQL); - reCreateDataTableTriggers(db); - db.execSQL(CREATE_DATA_NOTE_ID_INDEX_SQL); - Log.d(TAG, "data table has been created"); - }//创建表格(用来存储标签内容) - - private void reCreateDataTableTriggers(SQLiteDatabase db) { - db.execSQL("DROP TRIGGER IF EXISTS update_note_content_on_insert"); - db.execSQL("DROP TRIGGER IF EXISTS update_note_content_on_update"); - db.execSQL("DROP TRIGGER IF EXISTS update_note_content_on_delete"); - - db.execSQL(DATA_UPDATE_NOTE_CONTENT_ON_INSERT_TRIGGER); - db.execSQL(DATA_UPDATE_NOTE_CONTENT_ON_UPDATE_TRIGGER); - db.execSQL(DATA_UPDATE_NOTE_CONTENT_ON_DELETE_TRIGGER); - }//同上面的execSQL - - static synchronized NotesDatabaseHelper getInstance(Context context) { - if (mInstance == null) { - mInstance = new NotesDatabaseHelper(context); - } - return mInstance; - }//上网查是为解决同一时刻只能有一个线程执行. - //在写程序库代码时,有时有一个类需要被所有的其它类使用, - //但又要求这个类只能被实例化一次,是个服务类,定义一次,其它类使用同一个这个类的实例 - - @Override - public void onCreate(SQLiteDatabase db) { - createNoteTable(db); - createDataTable(db); - }//实现两个表格(上面创建的两个表格) - - @Override - public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { - boolean reCreateTriggers = false; - boolean skipV2 = false; - - if (oldVersion == 1) { - upgradeToV2(db); - skipV2 = true; // this upgrade including the upgrade from v2 to v3 - oldVersion++; - } - - if (oldVersion == 2 && !skipV2) { - upgradeToV3(db); - reCreateTriggers = true; - oldVersion++; - } - - if (oldVersion == 3) { - upgradeToV4(db); - oldVersion++; - } - - if (reCreateTriggers) { - reCreateNoteTableTriggers(db); - reCreateDataTableTriggers(db); - } - - if (oldVersion != newVersion) { - throw new IllegalStateException("Upgrade notes database to version " + newVersion - + "fails"); - } - }//数据库版本的更新(数据库内容的更改) - - private void upgradeToV2(SQLiteDatabase db) { - db.execSQL("DROP TABLE IF EXISTS " + TABLE.NOTE); - db.execSQL("DROP TABLE IF EXISTS " + TABLE.DATA); - createNoteTable(db); - createDataTable(db); - }//更新到V2版本 - - private void upgradeToV3(SQLiteDatabase db) { - // drop unused triggers - db.execSQL("DROP TRIGGER IF EXISTS update_note_modified_date_on_insert"); - db.execSQL("DROP TRIGGER IF EXISTS update_note_modified_date_on_delete"); - db.execSQL("DROP TRIGGER IF EXISTS update_note_modified_date_on_update"); - // add a column for gtask id - db.execSQL("ALTER TABLE " + TABLE.NOTE + " ADD COLUMN " + NoteColumns.GTASK_ID - + " TEXT NOT NULL DEFAULT ''"); - // add a trash system folder - ContentValues values = new ContentValues(); - values.put(NoteColumns.ID, Notes.ID_TRASH_FOLER); - values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); - db.insert(TABLE.NOTE, null, values); - }//更新到V3版本 - - private void upgradeToV4(SQLiteDatabase db) { - db.execSQL("ALTER TABLE " + TABLE.NOTE + " ADD COLUMN " + NoteColumns.VERSION - + " INTEGER NOT NULL DEFAULT 0"); - }//更新到V4版本,但是不知道V2、V3、V4是什么意思 -} -package net.micode.notes.data; - -import android.app.SearchManager; -import android.content.ContentProvider; -import android.content.ContentUris; -import android.content.ContentValues; -import android.content.Intent; -import android.content.UriMatcher; -import android.database.Cursor; -import android.database.sqlite.SQLiteDatabase; -import android.net.Uri; -import android.text.TextUtils; -import android.util.Log; - -import net.micode.notes.R; -import net.micode.notes.data.Notes.DataColumns; -import net.micode.notes.data.Notes.NoteColumns; -import net.micode.notes.data.NotesDatabaseHelper.TABLE; -//为存储和获取数据提供接口。可以在不同的应用程序之间共享数据 -//ContentProvider提供的方法 -//query:查询 -//insert:插入 -//update:更新 -//delete:删除 -//getType:得到数据类型 -public class NotesProvider extends ContentProvider { - // UriMatcher用于匹配Uri - private static final UriMatcher mMatcher; - - private NotesDatabaseHelper mHelper; - - private static final String TAG = "NotesProvider"; - - private static final int URI_NOTE = 1; - private static final int URI_NOTE_ITEM = 2; - private static final int URI_DATA = 3; - private static final int URI_DATA_ITEM = 4; - - private static final int URI_SEARCH = 5; - private static final int URI_SEARCH_SUGGEST = 6; - - static { - // 创建UriMatcher时,调用UriMatcher(UriMatcher.NO_MATCH)表示不匹配任何路径的返回码 - mMatcher = new UriMatcher(UriMatcher.NO_MATCH); - // 把需要匹配Uri路径全部给注册上 - mMatcher.addURI(Notes.AUTHORITY, "note", URI_NOTE); - mMatcher.addURI(Notes.AUTHORITY, "note/#", URI_NOTE_ITEM); - mMatcher.addURI(Notes.AUTHORITY, "data", URI_DATA); - mMatcher.addURI(Notes.AUTHORITY, "data/#", URI_DATA_ITEM); - mMatcher.addURI(Notes.AUTHORITY, "search", URI_SEARCH); - mMatcher.addURI(Notes.AUTHORITY, SearchManager.SUGGEST_URI_PATH_QUERY, URI_SEARCH_SUGGEST); - mMatcher.addURI(Notes.AUTHORITY, SearchManager.SUGGEST_URI_PATH_QUERY + "/*", URI_SEARCH_SUGGEST); - } - - /** - * x'0A' represents the '\n' character in sqlite. For title and content in the search result, - * we will trim '\n' and white space in order to show more information. - */ - // 声明 NOTES_SEARCH_PROJECTION - private static final String NOTES_SEARCH_PROJECTION = NoteColumns.ID + "," - + NoteColumns.ID + " AS " + SearchManager.SUGGEST_COLUMN_INTENT_EXTRA_DATA + "," - + "TRIM(REPLACE(" + NoteColumns.SNIPPET + ", x'0A','')) AS " + SearchManager.SUGGEST_COLUMN_TEXT_1 + "," - + "TRIM(REPLACE(" + NoteColumns.SNIPPET + ", x'0A','')) AS " + SearchManager.SUGGEST_COLUMN_TEXT_2 + "," - + R.drawable.search_result + " AS " + SearchManager.SUGGEST_COLUMN_ICON_1 + "," - + "'" + Intent.ACTION_VIEW + "' AS " + SearchManager.SUGGEST_COLUMN_INTENT_ACTION + "," - + "'" + Notes.TextNote.CONTENT_TYPE + "' AS " + SearchManager.SUGGEST_COLUMN_INTENT_DATA; - // 声明NOTES_SNIPPET_SEARCH_QUERY - private static String NOTES_SNIPPET_SEARCH_QUERY = "SELECT " + NOTES_SEARCH_PROJECTION - + " FROM " + TABLE.NOTE - + " WHERE " + NoteColumns.SNIPPET + " LIKE ?" - + " AND " + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLER - + " AND " + NoteColumns.TYPE + "=" + Notes.TYPE_NOTE; - - @Override - // Context只有在onCreate()中才被初始化 - // 对mHelper进行实例化 - public boolean onCreate() { - mHelper = NotesDatabaseHelper.getInstance(getContext()); - return true; - } - - @Override - // 查询uri在数据库中对应的位置 - public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, - String sortOrder) { - Cursor c = null; - // 获取可读数据库 - SQLiteDatabase db = mHelper.getReadableDatabase(); - String id = null; - // 匹配查找uri - switch (mMatcher.match(uri)) { - // 对于不同的匹配值,在数据库中查找相应的条目 - case URI_NOTE: - c = db.query(TABLE.NOTE, projection, selection, selectionArgs, null, null, - sortOrder); - break; - case URI_NOTE_ITEM: - id = uri.getPathSegments().get(1); - c = db.query(TABLE.NOTE, projection, NoteColumns.ID + "=" + id - + parseSelection(selection), selectionArgs, null, null, sortOrder); - break; - case URI_DATA: - c = db.query(TABLE.DATA, projection, selection, selectionArgs, null, null, - sortOrder); - break; - case URI_DATA_ITEM: - id = uri.getPathSegments().get(1); - c = db.query(TABLE.DATA, projection, DataColumns.ID + "=" + id - + parseSelection(selection), selectionArgs, null, null, sortOrder); - break; - case URI_SEARCH: - case URI_SEARCH_SUGGEST: - if (sortOrder != null || projection != null) { - // 不合法的参数异常 - throw new IllegalArgumentException( - "do not specify sortOrder, selection, selectionArgs, or projection" + "with this query"); - } - - String searchString = null; - if (mMatcher.match(uri) == URI_SEARCH_SUGGEST) { - if (uri.getPathSegments().size() > 1) { - // getPathSegments()方法得到一个String的List, - // 在uri.getPathSegments().get(1)为第2个元素 - searchString = uri.getPathSegments().get(1); - } - } else { - searchString = uri.getQueryParameter("pattern"); - } - - if (TextUtils.isEmpty(searchString)) { - return null; - } - - try { - searchString = String.format("%%%s%%", searchString); - c = db.rawQuery(NOTES_SNIPPET_SEARCH_QUERY, - new String[] { searchString }); - } catch (IllegalStateException ex) { - Log.e(TAG, "got exception: " + ex.toString()); - } - break; - default: - // 抛出异常 - throw new IllegalArgumentException("Unknown URI " + uri); - } - if (c != null) { - c.setNotificationUri(getContext().getContentResolver(), uri); - } - return c; - } - - @Override - // 插入一个uri - public Uri insert(Uri uri, ContentValues values) { - // 获得可写的数据库 - SQLiteDatabase db = mHelper.getWritableDatabase(); - long dataId = 0, noteId = 0, insertedId = 0; - switch (mMatcher.match(uri)) { - // 新增一个条目 - case URI_NOTE: - insertedId = noteId = db.insert(TABLE.NOTE, null, values); - break; - // 如果存在,查找NOTE_ID - case URI_DATA: - if (values.containsKey(DataColumns.NOTE_ID)) { - noteId = values.getAsLong(DataColumns.NOTE_ID); - } else { - Log.d(TAG, "Wrong data format without note id:" + values.toString()); - } - insertedId = dataId = db.insert(TABLE.DATA, null, values); - break; - default: - throw new IllegalArgumentException("Unknown URI " + uri); - } - // Notify the note uri - // notifyChange获得一个ContextResolver对象并且更新里面的内容 - if (noteId > 0) { - getContext().getContentResolver().notifyChange( - ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId), null); - } - - // Notify the data uri - if (dataId > 0) { - getContext().getContentResolver().notifyChange( - ContentUris.withAppendedId(Notes.CONTENT_DATA_URI, dataId), null); - } - - // 返回插入的uri的路径 - return ContentUris.withAppendedId(uri, insertedId); - } - - @Override - // 删除一个uri - public int delete(Uri uri, String selection, String[] selectionArgs) { - //Uri代表要操作的数据,Android上可用的每种资源 -包括 图像、视频片段、音频资源等都可以用Uri来表示。 - int count = 0; - String id = null; - // 获得可写的数据库 - SQLiteDatabase db = mHelper.getWritableDatabase(); - boolean deleteData = false; - switch (mMatcher.match(uri)) { - case URI_NOTE: - selection = "(" + selection + ") AND " + NoteColumns.ID + ">0 "; - count = db.delete(TABLE.NOTE, selection, selectionArgs); - break; - case URI_NOTE_ITEM: - id = uri.getPathSegments().get(1); - /** - * ID that smaller than 0 is system folder which is not allowed to - * trash - */ - long noteId = Long.valueOf(id); - if (noteId <= 0) { - break; - } - count = db.delete(TABLE.NOTE, - NoteColumns.ID + "=" + id + parseSelection(selection), selectionArgs); - break; - case URI_DATA: - count = db.delete(TABLE.DATA, selection, selectionArgs); - deleteData = true; - break; - case URI_DATA_ITEM: - id = uri.getPathSegments().get(1); - count = db.delete(TABLE.DATA, - DataColumns.ID + "=" + id + parseSelection(selection), selectionArgs); - deleteData = true; - break; - default: - throw new IllegalArgumentException("Unknown URI " + uri); - } - if (count > 0) { - if (deleteData) { - getContext().getContentResolver().notifyChange(Notes.CONTENT_NOTE_URI, null); - } - getContext().getContentResolver().notifyChange(uri, null); - } - return count; - } - - @Override - // 更新一个uri - public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { - int count = 0; - String id = null; - SQLiteDatabase db = mHelper.getWritableDatabase(); - boolean updateData = false; - switch (mMatcher.match(uri)) { - case URI_NOTE: - increaseNoteVersion(-1, selection, selectionArgs); - count = db.update(TABLE.NOTE, values, selection, selectionArgs); - break; - case URI_NOTE_ITEM: - id = uri.getPathSegments().get(1); - increaseNoteVersion(Long.valueOf(id), selection, selectionArgs); - count = db.update(TABLE.NOTE, values, NoteColumns.ID + "=" + id - + parseSelection(selection), selectionArgs); - break; - case URI_DATA: - count = db.update(TABLE.DATA, values, selection, selectionArgs); - updateData = true; - break; - case URI_DATA_ITEM: - id = uri.getPathSegments().get(1); - count = db.update(TABLE.DATA, values, DataColumns.ID + "=" + id - + parseSelection(selection), selectionArgs); - updateData = true; - break; - default: - throw new IllegalArgumentException("Unknown URI " + uri); - } - - if (count > 0) { - if (updateData) { - getContext().getContentResolver().notifyChange(Notes.CONTENT_NOTE_URI, null); - } - getContext().getContentResolver().notifyChange(uri, null); - } - return count; - } - - // 将字符串解析成规定格式 - private String parseSelection(String selection) { - return (!TextUtils.isEmpty(selection) ? " AND (" + selection + ')' : ""); - } - - //增加一个noteVersion - private void increaseNoteVersion(long id, String selection, String[] selectionArgs) { - StringBuilder sql = new StringBuilder(120); - sql.append("UPDATE "); - sql.append(TABLE.NOTE); - sql.append(" SET "); - sql.append(NoteColumns.VERSION); - sql.append("=" + NoteColumns.VERSION + "+1 "); - - if (id > 0 || !TextUtils.isEmpty(selection)) { - sql.append(" WHERE "); - } - if (id > 0) { - sql.append(NoteColumns.ID + "=" + String.valueOf(id)); - } - if (!TextUtils.isEmpty(selection)) { - String selectString = id > 0 ? parseSelection(selection) : selection; - for (String args : selectionArgs) { - selectString = selectString.replaceFirst("\\?", args); - } - sql.append(selectString); - } - - // execSQL()方法可以执行insert、delete、update和CREATE TABLE之类有更改行为的SQL语句 - mHelper.getWritableDatabase().execSQL(sql.toString()); - } - - @Override - public String getType(Uri uri) { - // TODO Auto-generated method stub - return null; - } - -} diff --git a/src/新建 文本文档 (2).txt b/src/新建 文本文档 (2).txt deleted file mode 100644 index e69de29..0000000 diff --git a/src/石云帆 230340179.docx b/src/石云帆 230340179.docx deleted file mode 100644 index 37e5757..0000000 --- a/src/石云帆 230340179.docx +++ /dev/null @@ -1,1390 +0,0 @@ -package net.micode.notes.gtask.data; - -/** - * 元数据类,继承自Task,用于存储与任务相关的元信息 - */ -public class MetaData extends Task { - // 日志标签,使用类简名 - private final static String TAG = MetaData.class.getSimpleName(); - - // 关联的GTask ID - private String mRelatedGid = null; - - /** - * 设置元数据信息 - * @param gid 关联的GTask ID - * @param metaInfo 需要存储的元信息JSON对象 - */ - public void setMeta(String gid, JSONObject metaInfo) { - try { - // 将GID存入元信息中 - metaInfo.put(GTaskStringUtils.META_HEAD_GTASK_ID, gid); - } catch (JSONException e) { - Log.e(TAG, "无法存入关联GID"); - } - // 将JSON字符串存入笔记内容 - setNotes(metaInfo.toString()); - // 设置固定名称标识元数据 - setName(GTaskStringUtils.META_NOTE_NAME); - } - - /** - * 获取关联的GID - */ - public String getRelatedGid() { - return mRelatedGid; - } - - /** - * 判断是否需要保存(当笔记内容不为空时需要保存) - */ - @Override - public boolean isWorthSaving() { - return getNotes() != null; - } - - /** - * 从远程JSON数据更新元数据内容 - */ - @Override - public void setContentByRemoteJSON(JSONObject js) { - super.setContentByRemoteJSON(js); - if (getNotes() != null) { - try { - // 解析笔记中的JSON获取关联GID - JSONObject metaInfo = new JSONObject(getNotes().trim()); - mRelatedGid = metaInfo.getString(GTaskStringUtils.META_HEAD_GTASK_ID); - } catch (JSONException e) { - Log.w(TAG, "获取关联GID失败"); - mRelatedGid = null; - } - } - } - - // 以下方法禁止本地操作,直接抛出异常 - @Override - public void setContentByLocalJSON(JSONObject js) { - throw new IllegalAccessError("元数据不应通过本地JSON设置"); - } - - @Override - public JSONObject getLocalJSONFromContent() { - throw new IllegalAccessError("元数据不应生成本地JSON"); - } - - @Override - public int getSyncAction(Cursor c) { - throw new IllegalAccessError("元数据不应获取同步动作"); - } -} -package net.micode.notes.gtask.data; - -/** - * 抽象节点类,定义同步任务的基本结构和操作 - */ -public abstract class Node { - // 同步动作常量定义 - public static final int SYNC_ACTION_NONE = 0; // 无需同步 - public static final int SYNC_ACTION_ADD_REMOTE = 1; // 需添加到远程 - public static final int SYNC_ACTION_ADD_LOCAL = 2; // 需添加到本地 - // ...其他同步动作常量 - - // 节点基础属性 - private String mGid; // 全局唯一标识 - private String mName; // 节点名称 - private long mLastModified; // 最后修改时间戳 - private boolean mDeleted; // 删除标记 - - public Node() { - mGid = null; - mName = ""; - mLastModified = 0; - mDeleted = false; - } - - /** - * 抽象方法:创建动作的JSON表示 - */ - public abstract JSONObject getCreateAction(int actionId); - - /** - * 抽象方法:更新动作的JSON表示 - */ - public abstract JSONObject getUpdateAction(int actionId); - - // 属性访问方法 - public void setGid(String gid) { this.mGid = gid; } - public String getGid() { return this.mGid; } - // ...其他属性getter/setter -} -package net.micode.notes.gtask.data; - -/** - * 数据库操作类,处理与SQLite的交互 - */ -public class SqlData { - private static final String TAG = SqlData.class.getSimpleName(); - private static final int INVALID_ID = -99999; // 无效ID标识 - - // 数据库列定义 - public static final String[] PROJECTION_DATA = { - DataColumns.ID, - DataColumns.MIME_TYPE, - DataColumns.CONTENT, - DataColumns.DATA1, - DataColumns.DATA3 - }; - - // 数据库字段索引 - public static final int DATA_ID_COLUMN = 0; - // ...其他字段索引 - - // 数据字段 - private ContentResolver mContentResolver; // 内容解析器 - private boolean mIsCreate; // 新建标记 - private long mDataId; // 数据ID - // ...其他字段 - - /** - * 构造方法(新建模式) - */ - public SqlData(Context context) { - mContentResolver = context.getContentResolver(); - mIsCreate = true; - mDataId = INVALID_ID; - // 初始化默认值... - } - - /** - * 从游标加载数据 - */ - private void loadFromCursor(Cursor c) { - mDataId = c.getLong(DATA_ID_COLUMN); - // 从游标读取各字段值... - } - - /** - * 提交数据到数据库 - */ - public void commit(long noteId, boolean validateVersion, long version) { - if (mIsCreate) { - // 新建数据插入逻辑... - Uri uri = mContentResolver.insert(Notes.CONTENT_DATA_URI, mDiffDataValues); - } else { - // 现有数据更新逻辑... - int result = mContentResolver.update(...); - } - // 清除修改记录 - mDiffDataValues.clear(); - mIsCreate = false; - } -} -package net.micode.notes.gtask.exception; - -/** - * 操作失败异常类 - */ -public class ActionFailureException extends RuntimeException { - private static final long serialVersionUID = 4425249765923293627L; - - public ActionFailureException(String message) { - super(message); - } - - // 其他构造方法... -} - -/** - * 网络异常类 - */ -public class NetworkFailureException extends Exception { - private static final long serialVersionUID = 2107610287180234136L; - - public NetworkFailureException(String message) { - super(message); - } - - // 其他构造方法... -} -package net.micode.notes.gtask.remote; - -/** - * 异步任务处理类,管理后台同步操作 - */ -public class GTaskASyncTask extends AsyncTask { - // 通知ID常量 - private static int GTASK_SYNC_NOTIFICATION_ID = 5234235; - - /** - * 显示同步状态通知 - */ - private void showNotification(int tickerId, String content) { - Notification notification = new Notification(...); - // 设置通知图标、提示信息等... - mNotifiManager.notify(GTASK_SYNC_NOTIFICATION_ID, notification); - } - - /** - * 后台执行同步操作 - */ - @Override - protected Integer doInBackground(Void... unused) { - publishProgress("开始登录..."); - return mTaskManager.sync(mContext, this); - } - - /** - * 同步结果处理 - */ - @Override - protected void onPostExecute(Integer result) { - switch (result) { - case GTaskManager.STATE_SUCCESS: - showNotification(R.string.ticker_success, "同步成功"); - break; - case GTaskManager.STATE_NETWORK_ERROR: - showNotification(R.string.ticker_fail, "网络错误"); - break; - // 其他状态处理... - } - } -} - -/** - * GTask客户端管理类 - */ -public class GTaskClient { - /** - * 登录Google账户 - */ - private String loginGoogleAccount(Activity activity, boolean invalidateToken) { - AccountManager accountManager = AccountManager.get(activity); - // 获取账户列表并验证... - return authToken; - } - - /** - * 创建新任务 - */ - public void createTask(Task task) throws NetworkFailureException { - JSONObject jsPost = new JSONObject(); - // 构建任务创建JSON... - JSONObject jsResponse = postRequest(jsPost); - // 处理响应结果... - } - - /** - * 提交批量更新 - */ - public void commitUpdate() throws NetworkFailureException { - if (mUpdateArray != null) { - JSONObject jsPost = new JSONObject(); - // 构建批量更新JSON... - postRequest(jsPost); - mUpdateArray = null; - } - } -} -public void deleteNode(Node node) throws NetworkFailureException { - commitUpdate(); - try { - JSONObject jsPost = new JSONObject(); - JSONArray actionList = new JSONArray(); - - // action_list - node.setDeleted(true); - actionList.put(node.getUpdateAction(getActionId())); -//这里会获取到删除操作的ID,加入到actionLiast中 - jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, actionList); - - // client_version - jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion); - - postRequest(jsPost); - mUpdateArray = null; - } catch (JSONException e) { - Log.e(TAG, e.toString()); - e.printStackTrace(); - throw new ActionFailureException("delete node: handing jsonobject failed"); - } - } - - /* - * 获取任务列表 - * 首先通过GetURI使用getResponseContent从网上获取数据 - * 然后筛选出"_setup("到)}的部分,并且从中获取GTASK_JSON_LISTS的内容返回 - */ - public JSONArray getTaskLists() throws NetworkFailureException { - if (!mLoggedin) { - Log.e(TAG, "please login first"); - throw new ActionFailureException("not logged in"); - } - - try { - HttpGet httpGet = new HttpGet(mGetUrl); - HttpResponse response = null; - response = mHttpClient.execute(httpGet); - - // get the task list - //筛选工作,把筛选出的字符串放入jsString - String resString = getResponseContent(response.getEntity()); - String jsBegin = "_setup("; - String jsEnd = ")}"; - int begin = resString.indexOf(jsBegin); - int end = resString.lastIndexOf(jsEnd); - String jsString = null; - if (begin != -1 && end != -1 && begin < end) { - jsString = resString.substring(begin + jsBegin.length(), end); - } - JSONObject js = new JSONObject(jsString); - //获取GTASK_JSON_LISTS - return js.getJSONObject("t").getJSONArray(GTaskStringUtils.GTASK_JSON_LISTS); - } catch (ClientProtocolException e) { - Log.e(TAG, e.toString()); - e.printStackTrace(); - throw new NetworkFailureException("gettasklists: httpget failed"); - } catch (IOException e) { - Log.e(TAG, e.toString()); - e.printStackTrace(); - throw new NetworkFailureException("gettasklists: httpget failed"); - } catch (JSONException e) { - Log.e(TAG, e.toString()); - e.printStackTrace(); - throw new ActionFailureException("get task lists: handing jasonobject failed"); - } - } - - /* - * 通过传入的TASKList的gid,从网络上获取相应属于这个任务列表的任务 - */ - public JSONArray getTaskList(String listGid) throws NetworkFailureException { - commitUpdate(); - try { - JSONObject jsPost = new JSONObject(); - JSONArray actionList = new JSONArray(); - JSONObject action = new JSONObject(); - - // action_list - action.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE, - GTaskStringUtils.GTASK_JSON_ACTION_TYPE_GETALL); - action.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, getActionId()); - action.put(GTaskStringUtils.GTASK_JSON_LIST_ID, listGid); -//这里设置为传入的listGid - action.put(GTaskStringUtils.GTASK_JSON_GET_DELETED, false); - actionList.put(action); - jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, actionList); - - // client_version - jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion); - - JSONObject jsResponse = postRequest(jsPost); - return jsResponse.getJSONArray(GTaskStringUtils.GTASK_JSON_TASKS); - } catch (JSONException e) { - Log.e(TAG, e.toString()); - e.printStackTrace(); - throw new ActionFailureException("get task list: handing jsonobject failed"); - } - } - - public Account getSyncAccount() { - return mAccount; - } - - //重置更新的内容 - public void resetUpdateArray() { - mUpdateArray = null; - } -} -4、GTaskManager.java -package net.micode.notes.gtask.remote; - -public class GTaskManager { - private static final String TAG = GTaskManager.class.getSimpleName(); - public static final int STATE_SUCCESS = 0; - public static final int STATE_NETWORK_ERROR = 1; - public static final int STATE_INTERNAL_ERROR = 2; - public static final int STATE_SYNC_IN_PROGRESS = 3; - public static final int STATE_SYNC_CANCELLED = 4; - private static GTaskManager mInstance = null; - - private Activity mActivity; - private Context mContext; - private ContentResolver mContentResolver; - private boolean mSyncing; - private boolean mCancelled; - private HashMap mGTaskListHashMap; - private HashMap mGTaskHashMap; - private HashMap mMetaHashMap; - private TaskList mMetaList; - private HashSet mLocalDeleteIdMap; - private HashMap mGidToNid; - private HashMap mNidToGid; - -private GTaskManager() { - //对象初始化函数 - mSyncing = false; - //正在同步,flase代表未执行 - mCancelled = false; - //全局标识,flase代表可以执行 - mGTaskListHashMap = new HashMap(); - //<>代表Java的泛型,就是创建一个用类型作为参数的类。 - mGTaskHashMap = new HashMap(); - mMetaHashMap = new HashMap(); - mMetaList = null; - mLocalDeleteIdMap = new HashSet(); - mGidToNid = new HashMap(); //GoogleID to NodeID?? - mNidToGid = new HashMap(); //NodeID to GoogleID???通过hashmap散列表建立映射 - } - - /** - * 包含关键字synchronized,语言级同步,指明该函数可能运行在多线程的环境下。 - * 功能:类初始化函数 - * @author TTS - * @return GtaskManger - */ -public static synchronized GTaskManager getInstance() { - //可能运行在多线程环境下,使用语言级同步--synchronized - if (mInstance == null) { - mInstance = new GTaskManager(); - } - return mInstance; - } - - /** - * 包含关键字synchronized,语言级同步,指明该函数可能运行在多线程的环境下。 - * @author TTS - * @param activity - */ - public synchronized void setActivityContext(Activity activity) { - // used for getting auth token - mActivity = activity; - } - - /** - * 核心函数 - * 功能:实现了本地同步操作和远端同步操作 - * @author TTS - * @param context-----获取上下文 - * @param asyncTask-------用于同步的异步操作类 - * @return int - */ -public int sync(Context context, GTaskASyncTask asyncTask) { - //核心函数 - if (mSyncing) { - Log.d(TAG, "Sync is in progress"); - //创建日志文件(调试信息),debug - return STATE_SYNC_IN_PROGRESS; - } - mContext = context; - mContentResolver = mContext.getContentResolver(); - mSyncing = true; - mCancelled = false; - mGTaskListHashMap.clear(); - mGTaskHashMap.clear(); - mMetaHashMap.clear(); - mLocalDeleteIdMap.clear(); - mGidToNid.clear(); - mNidToGid.clear(); - - try { - GTaskClient client = GTaskClient.getInstance(); //getInstance即为创建一个实例,client--客户机 - client.resetUpdateArray(); -//JSONArray类型,reset即置为NULL - - // login google task - if (!mCancelled) { - if (!client.login(mActivity)) { - throw new NetworkFailureException("login google task failed"); - } - } - - // get the task list from google - asyncTask.publishProgess(mContext.getString(R.string.sync_progress_init_list)); - initGTaskList(); - //获取Google上的JSONtasklist转为本地TaskList - - // do content sync work - asyncTask.publishProgess(mContext.getString(R.string.sync_progress_syncing)); - syncContent(); - } catch (NetworkFailureException e) { - //分为两种异常,此类异常为网络异常 - Log.e(TAG, e.toString()); - //创建日志文件(调试信息),error - return STATE_NETWORK_ERROR; - } catch (ActionFailureException e) { - //此类异常为操作异常 - Log.e(TAG, e.toString()); - return STATE_INTERNAL_ERROR; - } catch (Exception e) { - Log.e(TAG, e.toString()); - e.printStackTrace(); - return STATE_INTERNAL_ERROR; - } finally { - mGTaskListHashMap.clear(); - mGTaskHashMap.clear(); - mMetaHashMap.clear(); - mLocalDeleteIdMap.clear(); - mGidToNid.clear(); - mNidToGid.clear(); - mSyncing = false; - } - - return mCancelled ? STATE_SYNC_CANCELLED : STATE_SUCCESS; - } - - /** - *功能:初始化GtaskList,获取Google上的JSONtasklist转为本地TaskList。 - *获得的数据存储在mMetaList,mGTaskListHashMap,mGTaskHashMap - *@author TTS - *@exception NetworkFailureException - *@return void - */ - private void initGTaskList() throws NetworkFailureException { - if (mCancelled) - return; - GTaskClient client = GTaskClient.getInstance(); -//getInstance即为创建一个实例,client应指远端客户机 - try { - //Json对象是Name Value对(即子元素)的无序集合,相当于一个Map对象。JsonObject类是bantouyan-json库对Json对象的抽象,提供操纵Json对象的各种方法。 - //其格式为{"key1":value1,"key2",value2....};key 必须是字符串。 - //因为ajax请求不刷新页面,但配合js可以实现局部刷新,因此json常常被用来作为异步请求的返回对象使用。 - JSONArray jsTaskLists = client.getTaskLists(); //原注释为get task list------lists - - // init meta list first - mMetaList = null; //TaskList类型 - for (int i = 0; i < jsTaskLists.length(); i++) { - JSONObject object = jsTaskLists.getJSONObject(i); //JSONObject与JSONArray一个为对象,一个为数组。此处取出单个JASONObject - -String gid = object.getString(GTaskStringUtils.GTASK_JSON_ID); - -String name = object.getString(GTaskStringUtils.GTASK_JSON_NAME); - - if (name.equals(GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_META)) -{ - mMetaList = new TaskList(); //MetaList意为元表,Tasklist类型,此处为初始化 - mMetaList.setContentByRemoteJSON(object); - //将JSON中部分数据复制到自己定义的对象中相对应的数据:name->mname... - - // load meta data - JSONArray jsMetas = client.getTaskList(gid); - //原注释为get action_list------list - for (int j = 0; j < jsMetas.length(); j++) { - object = (JSONObject) jsMetas.getJSONObject(j); - MetaData metaData = new MetaData(); //继承自Node - metaData.setContentByRemoteJSON(object); - if (metaData.isWorthSaving()) { - //if not worth to save,metadata将不加入mMetaList - mMetaList.addChildTask(metaData); - if (metaData.getGid() != null) { - mMetaHashMap.put(metaData.getRelatedGid(), metaData); - } - } - } - } - } - - // create meta list if not existed - if (mMetaList == null) { - mMetaList = new TaskList(); - mMetaList.setName(GTaskStringUtils.MIUI_FOLDER_PREFFIX - + GTaskStringUtils.FOLDER_META); - GTaskClient.getInstance().createTaskList(mMetaList); - } - - // init task list - for (int i = 0; i < jsTaskLists.length(); i++) { - JSONObject object = jsTaskLists.getJSONObject(i); - String gid = object.getString(GTaskStringUtils.GTASK_JSON_ID); -//通过getString函数传入本地某个标志数据的名称,获取其在远端的名称。 - String name = object.getString(GTaskStringUtils.GTASK_JSON_NAME); - - if (name.startsWith(GTaskStringUtils.MIUI_FOLDER_PREFFIX) - && !name.equals(GTaskStringUtils.MIUI_FOLDER_PREFFIX - + GTaskStringUtils.FOLDER_META)) { - TaskList tasklist = new TaskList(); //继承自Node - tasklist.setContentByRemoteJSON(object); - mGTaskListHashMap.put(gid, tasklist); - mGTaskHashMap.put(gid, tasklist); - //加两遍 - - // load tasks - JSONArray jsTasks = client.getTaskList(gid); - for (int j = 0; j < jsTasks.length(); j++) { - object = (JSONObject) jsTasks.getJSONObject(j); - gid = object.getString(GTaskStringUtils.GTASK_JSON_ID); - Task task = new Task(); - task.setContentByRemoteJSON(object); - if (task.isWorthSaving()) { - task.setMetaInfo(mMetaHashMap.get(gid)); - tasklist.addChildTask(task); - mGTaskHashMap.put(gid, task); - } - } - } - } - } catch (JSONException e) { - Log.e(TAG, e.toString()); - e.printStackTrace(); - throw new ActionFailureException("initGTaskList: handing JSONObject failed"); - } - } - - /** - * 功能:本地内容同步操作 - * @throws NetworkFailureException - * @return 无返回值 - */ -private void syncContent() throws NetworkFailureException { - //本地内容同步操作 - int syncType; - Cursor c = null; - //数据库指针 - String gid; //GoogleID - Node node; //Node包含Sync_Action的不同类型 - - mLocalDeleteIdMap.clear(); //HashSet类型 - - if (mCancelled) { - return; - } - - // for local deleted note - try { - c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE, - "(type<>? AND parent_id=?)", new String[] { - String.valueOf(Notes.TYPE_SYSTEM), String.valueOf(Notes.ID_TRASH_FOLER) - }, null); - if (c != null) { - while (c.moveToNext()) { - gid = c.getString(SqlNote.GTASK_ID_COLUMN); - node = mGTaskHashMap.get(gid); - if (node != null) { - mGTaskHashMap.remove(gid); - doContentSync(Node.SYNC_ACTION_DEL_REMOTE, node, c); - } - - mLocalDeleteIdMap.add(c.getLong(SqlNote.ID_COLUMN)); - } - } else { - Log.w(TAG, "failed to query trash folder"); - } - } finally { - if (c != null) { - c.close(); - c = null; - } - } - - // sync folder first - syncFolder(); - - // for note existing in database - try { - c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE, - "(type=? AND parent_id<>?)", new String[] { - String.valueOf(Notes.TYPE_NOTE), String.valueOf(Notes.ID_TRASH_FOLER) - }, NoteColumns.TYPE + " DESC"); - if (c != null) { - while (c.moveToNext()) { - gid = c.getString(SqlNote.GTASK_ID_COLUMN); - node = mGTaskHashMap.get(gid); - if (node != null) { - mGTaskHashMap.remove(gid); - mGidToNid.put(gid, c.getLong(SqlNote.ID_COLUMN)); //通过hashmap建立联系 - mNidToGid.put(c.getLong(SqlNote.ID_COLUMN), gid); //通过hashmap建立联系 - syncType = node.getSyncAction(c); - } else { - if (c.getString(SqlNote.GTASK_ID_COLUMN).trim().length() == 0) { - // local add - syncType = Node.SYNC_ACTION_ADD_REMOTE; - } else { - // remote delete - syncType = Node.SYNC_ACTION_DEL_LOCAL; - } - } - doContentSync(syncType, node, c); - } - } else { - Log.w(TAG, "failed to query existing note in database"); - } - - } finally { - if (c != null) { - c.close(); - c = null; - } - } - - // go through remaining items - Iterator> iter = mGTaskHashMap.entrySet().iterator(); //Iterator迭代器 - while (iter.hasNext()) { - Map.Entry entry = iter.next(); - node = entry.getValue(); - doContentSync(Node.SYNC_ACTION_ADD_LOCAL, node, null); - } - - // mCancelled can be set by another thread, so we neet to check one by //thread----线程 - // one - // clear local delete table - if (!mCancelled) { - if (!DataUtils.batchDeleteNotes(mContentResolver, mLocalDeleteIdMap)) { - throw new ActionFailureException("failed to batch-delete local deleted notes"); - } - } - - // refresh local sync id - if (!mCancelled) { - GTaskClient.getInstance().commitUpdate(); - refreshLocalSyncId(); - } - - } - - /** - * 功能: - * @author TTS - * @throws NetworkFailureException - */ - private void syncFolder() throws NetworkFailureException { - Cursor c = null; - String gid; - Node node; - int syncType; - - if (mCancelled) { - return; - } - - // for root folder - try { - c = mContentResolver.query(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, - Notes.ID_ROOT_FOLDER), SqlNote.PROJECTION_NOTE, null, null, null); - if (c != null) { - c.moveToNext(); - gid = c.getString(SqlNote.GTASK_ID_COLUMN); - node = mGTaskHashMap.get(gid); - if (node != null) { - mGTaskHashMap.remove(gid); - mGidToNid.put(gid, (long) Notes.ID_ROOT_FOLDER); - mNidToGid.put((long) Notes.ID_ROOT_FOLDER, gid); - // for system folder, only update remote name if necessary - if (!node.getName().equals( - GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_DEFAULT)) - doContentSync(Node.SYNC_ACTION_UPDATE_REMOTE, node, c); - } else { - doContentSync(Node.SYNC_ACTION_ADD_REMOTE, node, c); - } - } else { - Log.w(TAG, "failed to query root folder"); - } - } finally { - if (c != null) { - c.close(); - c = null; - } - } - - // for call-note folder - try { - c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE, "(_id=?)", - new String[] { - String.valueOf(Notes.ID_CALL_RECORD_FOLDER) - }, null); - if (c != null) { - if (c.moveToNext()) { - gid = c.getString(SqlNote.GTASK_ID_COLUMN); - node = mGTaskHashMap.get(gid); - if (node != null) { - mGTaskHashMap.remove(gid); - mGidToNid.put(gid, (long) Notes.ID_CALL_RECORD_FOLDER); - mNidToGid.put((long) Notes.ID_CALL_RECORD_FOLDER, gid); - // for system folder, only update remote name if - // necessary - if (!node.getName().equals( - GTaskStringUtils.MIUI_FOLDER_PREFFIX - + GTaskStringUtils.FOLDER_CALL_NOTE)) - doContentSync(Node.SYNC_ACTION_UPDATE_REMOTE, node, c); - } else { - doContentSync(Node.SYNC_ACTION_ADD_REMOTE, node, c); - } - } - } else { - Log.w(TAG, "failed to query call note folder"); - } - } finally { - if (c != null) { - c.close(); - c = null; - } - } - - // for local existing folders - try { - c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE, - "(type=? AND parent_id<>?)", new String[] { - String.valueOf(Notes.TYPE_FOLDER), String.valueOf(Notes.ID_TRASH_FOLER) - }, NoteColumns.TYPE + " DESC"); - if (c != null) { - while (c.moveToNext()) { - gid = c.getString(SqlNote.GTASK_ID_COLUMN); - node = mGTaskHashMap.get(gid); - if (node != null) { - mGTaskHashMap.remove(gid); - mGidToNid.put(gid, c.getLong(SqlNote.ID_COLUMN)); - mNidToGid.put(c.getLong(SqlNote.ID_COLUMN), gid); - syncType = node.getSyncAction(c); - } else { - if (c.getString(SqlNote.GTASK_ID_COLUMN).trim().length() == 0) { - // local add - syncType = Node.SYNC_ACTION_ADD_REMOTE; - } else { - // remote delete - syncType = Node.SYNC_ACTION_DEL_LOCAL; - } - } - doContentSync(syncType, node, c); - } - } else { - Log.w(TAG, "failed to query existing folder"); - } - } finally { - if (c != null) { - c.close(); - c = null; - } - } - - // for remote add folders - Iterator> iter = mGTaskListHashMap.entrySet().iterator(); - while (iter.hasNext()) { - Map.Entry entry = iter.next(); - gid = entry.getKey(); - node = entry.getValue(); - if (mGTaskHashMap.containsKey(gid)) { - mGTaskHashMap.remove(gid); - doContentSync(Node.SYNC_ACTION_ADD_LOCAL, node, null); - } - } - - if (!mCancelled) - GTaskClient.getInstance().commitUpdate(); - } - - /** - * 功能:syncType分类,addLocalNode,addRemoteNode,deleteNode,updateLocalNode,updateRemoteNode - * @author TTS - * @param syncType - * @param node - * @param c - * @throws NetworkFailureException - */ - private void doContentSync(int syncType, Node node, Cursor c) throws NetworkFailureException { - if (mCancelled) { - return; - } - - MetaData meta; - switch (syncType) { - case Node.SYNC_ACTION_ADD_LOCAL: - addLocalNode(node); - break; - case Node.SYNC_ACTION_ADD_REMOTE: - addRemoteNode(node, c); - break; - case Node.SYNC_ACTION_DEL_LOCAL: - meta = mMetaHashMap.get(c.getString(SqlNote.GTASK_ID_COLUMN)); - if (meta != null) { - GTaskClient.getInstance().deleteNode(meta); - } - mLocalDeleteIdMap.add(c.getLong(SqlNote.ID_COLUMN)); - break; - case Node.SYNC_ACTION_DEL_REMOTE: - meta = mMetaHashMap.get(node.getGid()); - if (meta != null) { - GTaskClient.getInstance().deleteNode(meta); - } - GTaskClient.getInstance().deleteNode(node); - break; - case Node.SYNC_ACTION_UPDATE_LOCAL: - updateLocalNode(node, c); - break; - case Node.SYNC_ACTION_UPDATE_REMOTE: - updateRemoteNode(node, c); - break; - case Node.SYNC_ACTION_UPDATE_CONFLICT: - // merging both modifications maybe a good idea - // right now just use local update simply - updateRemoteNode(node, c); - break; - case Node.SYNC_ACTION_NONE: - break; - case Node.SYNC_ACTION_ERROR: - default: - throw new ActionFailureException("unkown sync action type"); - } - } - - /** - * 功能:本地增加Node - * @author TTS - * @param node - * @throws NetworkFailureException - */ - private void addLocalNode(Node node) throws NetworkFailureException { - if (mCancelled) { - return; - } - - SqlNote sqlNote; - if (node instanceof TaskList) { - if (node.getName().equals( - GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_DEFAULT)) { - sqlNote = new SqlNote(mContext, Notes.ID_ROOT_FOLDER); - } else if (node.getName().equals( - GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_CALL_NOTE)) { - sqlNote = new SqlNote(mContext, Notes.ID_CALL_RECORD_FOLDER); - } else { - sqlNote = new SqlNote(mContext); - sqlNote.setContent(node.getLocalJSONFromContent()); - sqlNote.setParentId(Notes.ID_ROOT_FOLDER); - } - } else { - sqlNote = new SqlNote(mContext); - JSONObject js = node.getLocalJSONFromContent(); - try { - if (js.has(GTaskStringUtils.META_HEAD_NOTE)) { - JSONObject note = js.getJSONObject(GTaskStringUtils.META_HEAD_NOTE); - if (note.has(NoteColumns.ID)) { - long id = note.getLong(NoteColumns.ID); - if (DataUtils.existInNoteDatabase(mContentResolver, id)) { - // the id is not available, have to create a new one - note.remove(NoteColumns.ID); - } - } - } - - if (js.has(GTaskStringUtils.META_HEAD_DATA)) { - JSONArray dataArray = js.getJSONArray(GTaskStringUtils.META_HEAD_DATA); - for (int i = 0; i < dataArray.length(); i++) { - JSONObject data = dataArray.getJSONObject(i); - if (data.has(DataColumns.ID)) { - long dataId = data.getLong(DataColumns.ID); - if (DataUtils.existInDataDatabase(mContentResolver, dataId)) { - // the data id is not available, have to create - // a new one - data.remove(DataColumns.ID); - } - } - } - - } - } catch (JSONException e) { - Log.w(TAG, e.toString()); - e.printStackTrace(); - } - sqlNote.setContent(js); - - Long parentId = mGidToNid.get(((Task) node).getParent().getGid()); - if (parentId == null) { - Log.e(TAG, "cannot find task's parent id locally"); - throw new ActionFailureException("cannot add local node"); - } - sqlNote.setParentId(parentId.longValue()); - } - - // create the local node - sqlNote.setGtaskId(node.getGid()); - sqlNote.commit(false); - - // update gid-nid mapping - mGidToNid.put(node.getGid(), sqlNote.getId()); - mNidToGid.put(sqlNote.getId(), node.getGid()); - - // update meta - updateRemoteMeta(node.getGid(), sqlNote); - } - - /** - * 功能:update本地node - * @author TTS - * @param node - * ----同步操作的基础数据类型 - * @param c - * ----Cursor - * @throws NetworkFailureException - */ - private void updateLocalNode(Node node, Cursor c) throws NetworkFailureException { - if (mCancelled) { - return; - } - - SqlNote sqlNote; - // update the note locally - sqlNote = new SqlNote(mContext, c); - sqlNote.setContent(node.getLocalJSONFromContent()); - - Long parentId = (node instanceof Task) ? mGidToNid.get(((Task) node).getParent().getGid()) - : new Long(Notes.ID_ROOT_FOLDER); - if (parentId == null) { - Log.e(TAG, "cannot find task's parent id locally"); - throw new ActionFailureException("cannot update local node"); - } - sqlNote.setParentId(parentId.longValue()); - sqlNote.commit(true); - - // update meta info - updateRemoteMeta(node.getGid(), sqlNote); - } - - /** - * 功能:远程增加Node - * 需要updateRemoteMeta - * @author TTS - * @param node - * ----同步操作的基础数据类型 - * @param c - * --Cursor - * @throws NetworkFailureException - */ - private void addRemoteNode(Node node, Cursor c) throws NetworkFailureException { - if (mCancelled) { - return; - } - - SqlNote sqlNote = new SqlNote(mContext, c); //从本地mContext中获取内容 - Node n; - - // update remotely - if (sqlNote.isNoteType()) { - Task task = new Task(); - task.setContentByLocalJSON(sqlNote.getContent()); - - String parentGid = mNidToGid.get(sqlNote.getParentId()); - if (parentGid == null) { - Log.e(TAG, "cannot find task's parent tasklist"); //调试信息 - throw new ActionFailureException("cannot add remote task"); - } - mGTaskListHashMap.get(parentGid).addChildTask(task); //在本地生成的GTaskList中增加子结点 - - //登录远程服务器,创建Task - GTaskClient.getInstance().createTask(task); - n = (Node) task; - - // add meta - updateRemoteMeta(task.getGid(), sqlNote); - } else { - TaskList tasklist = null; - - // we need to skip folder if it has already existed - String folderName = GTaskStringUtils.MIUI_FOLDER_PREFFIX; - if (sqlNote.getId() == Notes.ID_ROOT_FOLDER) - folderName += GTaskStringUtils.FOLDER_DEFAULT; - else if (sqlNote.getId() == Notes.ID_CALL_RECORD_FOLDER) - folderName += GTaskStringUtils.FOLDER_CALL_NOTE; - else - folderName += sqlNote.getSnippet(); - - //iterator迭代器,通过统一的接口迭代所有的map元素 - Iterator> iter = mGTaskListHashMap.entrySet().iterator(); - while (iter.hasNext()) { - Map.Entry entry = iter.next(); - String gid = entry.getKey(); - TaskList list = entry.getValue(); - - if (list.getName().equals(folderName)) { - tasklist = list; - if (mGTaskHashMap.containsKey(gid)) { - mGTaskHashMap.remove(gid); - } - break; - } - } - - // no match we can add now - if (tasklist == null) { - tasklist = new TaskList(); - tasklist.setContentByLocalJSON(sqlNote.getContent()); - GTaskClient.getInstance().createTaskList(tasklist); - mGTaskListHashMap.put(tasklist.getGid(), tasklist); - } - n = (Node) tasklist; - } - - // update local note - sqlNote.setGtaskId(n.getGid()); - sqlNote.commit(false); - sqlNote.resetLocalModified(); - sqlNote.commit(true); - - // gid-id mapping //创建id间的映射 - mGidToNid.put(n.getGid(), sqlNote.getId()); - mNidToGid.put(sqlNote.getId(), n.getGid()); - } - - /** - * 功能:更新远端的Node,包含meta更新(updateRemoteMeta) - * @author TTS - * @param node - * ----同步操作的基础数据类型 - * @param c - * --Cursor - * @throws NetworkFailureException - */ - private void updateRemoteNode(Node node, Cursor c) throws NetworkFailureException { - if (mCancelled) { - return; - } - - SqlNote sqlNote = new SqlNote(mContext, c); - - // update remotely - node.setContentByLocalJSON(sqlNote.getContent()); - GTaskClient.getInstance().addUpdateNode(node); //GTaskClient用途为从本地登陆远端服务器 - - // update meta - updateRemoteMeta(node.getGid(), sqlNote); - - // move task if necessary - if (sqlNote.isNoteType()) { - Task task = (Task) node; - TaskList preParentList = task.getParent(); - //preParentList为通过node获取的父节点列表 - - String curParentGid = mNidToGid.get(sqlNote.getParentId()); - //curParentGid为通过光标在数据库中找到sqlNote的mParentId,再通过mNidToGid由long类型转为String类型的Gid - - if (curParentGid == null) { - Log.e(TAG, "cannot find task's parent tasklist"); - throw new ActionFailureException("cannot update remote task"); - } - TaskList curParentList = mGTaskListHashMap.get(curParentGid); - //通过HashMap找到对应Gid的TaskList - - if (preParentList != curParentList) -{ - preParentList.removeChildTask(task); - curParentList.addChildTask(task); - GTaskClient.getInstance().moveTask(task, preParentList, curParentList); - } - } - - // clear local modified flag - sqlNote.resetLocalModified(); - //commit到本地数据库 - sqlNote.commit(true); - } - - /** - * 功能:升级远程meta。 meta---元数据----计算机文件系统管理数据---管理数据的数据。 - * @author TTS - * @param gid - * ---GoogleID为String类型 - * @param sqlNote - * ---同步前的数据库操作,故使用类SqlNote - * @throws NetworkFailureException - */ - private void updateRemoteMeta(String gid, SqlNote sqlNote) throws NetworkFailureException { - if (sqlNote != null && sqlNote.isNoteType()) { - MetaData metaData = mMetaHashMap.get(gid); - if (metaData != null) { - metaData.setMeta(gid, sqlNote.getContent()); - GTaskClient.getInstance().addUpdateNode(metaData); - } else { - metaData = new MetaData(); - metaData.setMeta(gid, sqlNote.getContent()); - mMetaList.addChildTask(metaData); - mMetaHashMap.put(gid, metaData); - GTaskClient.getInstance().createTask(metaData); - } - } - } - - /** - * 功能:刷新本地,给sync的ID对应上最后更改过的对象 - * @author TTS - * @return void - * @throws NetworkFailureException - */ - private void refreshLocalSyncId() throws NetworkFailureException { - if (mCancelled) { - return; - } - - // get the latest gtask list //获取最近的(最晚的) -gtask list - mGTaskHashMap.clear(); - mGTaskListHashMap.clear(); - mMetaHashMap.clear(); - initGTaskList(); - - Cursor c = null; - try { - c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE, - "(type<>? AND parent_id<>?)", new String[] { - String.valueOf(Notes.TYPE_SYSTEM), String.valueOf(Notes.ID_TRASH_FOLER) - }, NoteColumns.TYPE + " DESC"); //query语句:五个参数,NoteColumns.TYPE + " DESC"-----为按类型递减顺序返回查询结果。new String[] {String.valueOf(Notes.TYPE_SYSTEM), String.valueOf(Notes.ID_TRASH_FOLER)}------为选择参数。"(type<>? AND parent_id<>?)"-------指明返回行过滤器。SqlNote.PROJECTION_NOTE--------应返回的数据列的名字。Notes.CONTENT_NOTE_URI--------contentProvider包含所有数据集所对应的uri - if (c != null) { - while (c.moveToNext()) { - String gid = c.getString(SqlNote.GTASK_ID_COLUMN); - Node node = mGTaskHashMap.get(gid); - if (node != null) { - mGTaskHashMap.remove(gid); - ContentValues values = new ContentValues(); //在ContentValues中创建键值对。准备通过contentResolver写入数据 - values.put(NoteColumns.SYNC_ID, node.getLastModified()); - mContentResolver.update(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, //进行批量更改,选择参数为NULL,应该可以用insert替换,参数分别为表名和需要更新的value对象。 - c.getLong(SqlNote.ID_COLUMN)), values, null, null); - } else { - Log.e(TAG, "something is missed"); - throw new ActionFailureException( - "some local items don't have gid after sync"); - } - } - } else { - Log.w(TAG, "failed to query local note to refresh sync id"); - } - } finally { - if (c != null) { - c.close(); - c = null; - } - } - } - - /** - * 功能:获取同步账号,mAccount.name - * @author TTS - * @return String - */ - public String getSyncAccount() { - return GTaskClient.getInstance().getSyncAccount().name; - } - - /** - * 功能:取消同步,置mCancelled为true - * @author TTS - */ - public void cancelSync() { - mCancelled = true; - } -} -5、GTaskSyncService.java -package net.micode.notes.gtask.remote; - -/* - * Service是在一段不定的时间运行在后台,不和用户交互的应用组件 - * 主要方法: - * private void startSync() 启动一个同步工作 - * private void cancelSync() 取消同步 - * public void onCreate() - * public int onStartCommand(Intent intent, int flags, int startId) service生命周期的组成部分,相当于重启service(比如在被暂停之后),而不是创建一个新的service - * public void onLowMemory() 在没有内存的情况下如果存在service则结束掉这的service - * public IBinder onBind() - * public void sendBroadcast(String msg) 发送同步的相关通知 - * public static void startSync(Activity activity) - * public static void cancelSync(Context context) - * public static boolean isSyncing() 判读是否在进行同步 - * public static String getProgressString() 获取当前进度的信息 - */ - -public class GTaskSyncService extends Service { - public final static String ACTION_STRING_NAME = "sync_action_type"; - - public final static int ACTION_START_SYNC = 0; - - public final static int ACTION_CANCEL_SYNC = 1; - - public final static int ACTION_INVALID = 2; - - public final static String GTASK_SERVICE_BROADCAST_NAME = "net.micode.notes.gtask.remote.gtask_sync_service"; - - public final static String GTASK_SERVICE_BROADCAST_IS_SYNCING = "isSyncing"; - - public final static String GTASK_SERVICE_BROADCAST_PROGRESS_MSG = "progressMsg"; - - private static GTaskASyncTask mSyncTask = null; - - private static String mSyncProgress = ""; - - //开始一个同步的工作 - private void startSync() { - if (mSyncTask == null) { - mSyncTask = new GTaskASyncTask(this, new GTaskASyncTask.OnCompleteListener() { - public void onComplete() { - mSyncTask = null; - sendBroadcast(""); - stopSelf(); - } - }); - sendBroadcast(""); - mSyncTask.execute(); //这个函数让任务是以单线程队列方式或线程池队列方式运行 - } - } - - - private void cancelSync() { - if (mSyncTask != null) { - mSyncTask.cancelSync(); - } - } - - @Override - public void onCreate() { //初始化一个service - mSyncTask = null; - } - - @Override - public int onStartCommand(Intent intent, int flags, int startId) { - Bundle bundle = intent.getExtras(); - if (bundle != null && bundle.containsKey(ACTION_STRING_NAME)) { - switch (bundle.getInt(ACTION_STRING_NAME, ACTION_INVALID)) { - //两种情况,开始同步或者取消同步 - case ACTION_START_SYNC: - startSync(); - break; - case ACTION_CANCEL_SYNC: - cancelSync(); - break; - default: - break; - } - return START_STICKY; //等待新的intent来是这个service继续运行 - } - return super.onStartCommand(intent, flags, startId); - } - - @Override - public void onLowMemory() { - if (mSyncTask != null) { - mSyncTask.cancelSync(); - } - } - - public IBinder onBind(Intent intent) { //不知道干吗用的 - return null; - } - - public void sendBroadcast(String msg) { - mSyncProgress = msg; - Intent intent = new Intent(GTASK_SERVICE_BROADCAST_NAME); //创建一个新的Intent - intent.putExtra(GTASK_SERVICE_BROADCAST_IS_SYNCING, mSyncTask != null); //附加INTENT中的相应参数的值 - intent.putExtra(GTASK_SERVICE_BROADCAST_PROGRESS_MSG, msg); - sendBroadcast(intent); //发送这个通知 - } - - public static void startSync(Activity activity) {//执行一个service,service的内容里的同步动作就是开始同步 - GTaskManager.getInstance().setActivityContext(activity); - Intent intent = new Intent(activity, GTaskSyncService.class); - intent.putExtra(GTaskSyncService.ACTION_STRING_NAME, GTaskSyncService.ACTION_START_SYNC); - activity.startService(intent); - } - - public static void cancelSync(Context context) {//执行一个service,service的内容里的同步动作就是取消同步 - Intent intent = new Intent(context, GTaskSyncService.class); - intent.putExtra(GTaskSyncService.ACTION_STRING_NAME, GTaskSyncService.ACTION_CANCEL_SYNC); - context.startService(intent); - } - - public static boolean isSyncing() { - return mSyncTask != null; - } -