diff --git a/src/Notes-master/Notes-master/app/build.gradle b/src/Notes-master/Notes-master/app/build.gradle new file mode 100644 index 0000000..1e82cd8 --- /dev/null +++ b/src/Notes-master/Notes-master/app/build.gradle @@ -0,0 +1,21 @@ +apply plugin: 'com.android.application' + +android { + compileSdk 30 + buildToolsVersion "31.0.0" + useLibrary'org.apache.http.legacy' + + defaultConfig { + applicationId "net.micode.notes" + minSdkVersion 14 + targetSdkVersion 29 + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' + } + } +} + diff --git a/src/XiaoMiText/Notes-master/AndroidManifest.xml b/src/Notes-master/Notes-master/app/src/main/AndroidManifest.xml similarity index 96% rename from src/XiaoMiText/Notes-master/AndroidManifest.xml rename to src/Notes-master/Notes-master/app/src/main/AndroidManifest.xml index 742f3c6..7b2ece1 100644 --- a/src/XiaoMiText/Notes-master/AndroidManifest.xml +++ b/src/Notes-master/Notes-master/app/src/main/AndroidManifest.xml @@ -16,6 +16,7 @@ --> @@ -36,6 +37,9 @@ android:icon="@drawable/icon_app" android:label="@string/app_name" > + - + diff --git a/src/XiaoMiText/Notes-master/src/net/micode/notes/data/Contact.java b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/data/Contact.java similarity index 100% rename from src/XiaoMiText/Notes-master/src/net/micode/notes/data/Contact.java rename to src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/data/Contact.java diff --git a/src/XiaoMiText/Notes-master/src/net/micode/notes/data/Notes.java b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/data/Notes.java similarity index 97% rename from src/XiaoMiText/Notes-master/src/net/micode/notes/data/Notes.java rename to src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/data/Notes.java index f240604..ae6862f 100644 --- a/src/XiaoMiText/Notes-master/src/net/micode/notes/data/Notes.java +++ b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/data/Notes.java @@ -18,6 +18,10 @@ package net.micode.notes.data; import android.net.Uri; public class Notes { + + /** + * 首先对会出现的notes进行分类,有文件夹,便签和system? + */ public static final String AUTHORITY = "micode_notes"; public static final String TAG = "Notes"; public static final int TYPE_NOTE = 0; @@ -25,11 +29,13 @@ public class Notes { public static final int TYPE_SYSTEM = 2; /** + * 下面均为系统文件夹的id * 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; @@ -241,6 +247,11 @@ public class Notes { public static final String DATA5 = "data5"; } + + /** + * 有TextNote和CallNote两种便签 + * TextNote是文本便签,CallNote是电话便签 + */ public static final class TextNote implements DataColumns { /** * Mode to indicate the text in check list mode or not diff --git a/src/XiaoMiText/Notes-master/src/net/micode/notes/data/NotesDatabaseHelper.java b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java similarity index 96% rename from src/XiaoMiText/Notes-master/src/net/micode/notes/data/NotesDatabaseHelper.java rename to src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java index ffe5d57..5d9c9e4 100644 --- a/src/XiaoMiText/Notes-master/src/net/micode/notes/data/NotesDatabaseHelper.java +++ b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java @@ -42,6 +42,10 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper { private static NotesDatabaseHelper mInstance; + /** + * sql建表语句 + * 建立便签表 + */ private static final String CREATE_NOTE_TABLE_SQL = "CREATE TABLE " + TABLE.NOTE + "(" + NoteColumns.ID + " INTEGER PRIMARY KEY," + @@ -84,6 +88,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 = "CREATE TRIGGER increase_folder_count_on_update "+ @@ -96,6 +101,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 = "CREATE TRIGGER decrease_folder_count_on_update " + @@ -109,6 +115,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 = "CREATE TRIGGER increase_folder_count_on_insert " + @@ -121,6 +128,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 = "CREATE TRIGGER decrease_folder_count_on_delete " + @@ -134,6 +142,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 = "CREATE TRIGGER update_note_content_on_insert " + @@ -147,6 +156,7 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper { /** * 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 " + @@ -160,6 +170,7 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper { /** * 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 " + @@ -173,6 +184,7 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper { /** * 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 " + @@ -184,6 +196,7 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper { /** * 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 " + @@ -195,6 +208,7 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper { /** * 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 " + @@ -210,6 +224,9 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper { super(context, DB_NAME, null, DB_VERSION); } + /** + * 建表,同时创建上述的触发器 + */ public void createNoteTable(SQLiteDatabase db) { db.execSQL(CREATE_NOTE_TABLE_SQL); reCreateNoteTableTriggers(db); @@ -300,6 +317,10 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper { createDataTable(db); } + + /** + * 对不同版本进行数据库更新 + */ @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { boolean reCreateTriggers = false; diff --git a/src/XiaoMiText/Notes-master/src/net/micode/notes/data/NotesProvider.java b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/data/NotesProvider.java similarity index 99% rename from src/XiaoMiText/Notes-master/src/net/micode/notes/data/NotesProvider.java rename to src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/data/NotesProvider.java index edb0a60..f099f43 100644 --- a/src/XiaoMiText/Notes-master/src/net/micode/notes/data/NotesProvider.java +++ b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/data/NotesProvider.java @@ -35,6 +35,9 @@ import net.micode.notes.data.Notes.NoteColumns; import net.micode.notes.data.NotesDatabaseHelper.TABLE; +/** + * 没精读,看方法名大致时从数据库中读取访问便签 + */ public class NotesProvider extends ContentProvider { private static final UriMatcher mMatcher; diff --git a/src/XiaoMiText/Notes-master/src/net/micode/notes/gtask/data/MetaData.java b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/gtask/data/MetaData.java similarity index 100% rename from src/XiaoMiText/Notes-master/src/net/micode/notes/gtask/data/MetaData.java rename to src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/gtask/data/MetaData.java diff --git a/src/XiaoMiText/Notes-master/src/net/micode/notes/gtask/data/Node.java b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/gtask/data/Node.java similarity index 99% rename from src/XiaoMiText/Notes-master/src/net/micode/notes/gtask/data/Node.java rename to src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/gtask/data/Node.java index 63950e0..301ddec 100644 --- a/src/XiaoMiText/Notes-master/src/net/micode/notes/gtask/data/Node.java +++ b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/gtask/data/Node.java @@ -20,6 +20,10 @@ import android.database.Cursor; import org.json.JSONObject; +/** + * 抽象类 + */ + public abstract class Node { public static final int SYNC_ACTION_NONE = 0; diff --git a/src/XiaoMiText/Notes-master/src/net/micode/notes/gtask/data/SqlData.java b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/gtask/data/SqlData.java similarity index 100% rename from src/XiaoMiText/Notes-master/src/net/micode/notes/gtask/data/SqlData.java rename to src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/gtask/data/SqlData.java diff --git a/src/XiaoMiText/Notes-master/src/net/micode/notes/gtask/data/SqlNote.java b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/gtask/data/SqlNote.java similarity index 100% rename from src/XiaoMiText/Notes-master/src/net/micode/notes/gtask/data/SqlNote.java rename to src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/gtask/data/SqlNote.java diff --git a/src/XiaoMiText/Notes-master/src/net/micode/notes/gtask/data/Task.java b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/gtask/data/Task.java similarity index 100% rename from src/XiaoMiText/Notes-master/src/net/micode/notes/gtask/data/Task.java rename to src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/gtask/data/Task.java diff --git a/src/XiaoMiText/Notes-master/src/net/micode/notes/gtask/data/TaskList.java b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/gtask/data/TaskList.java similarity index 100% rename from src/XiaoMiText/Notes-master/src/net/micode/notes/gtask/data/TaskList.java rename to src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/gtask/data/TaskList.java diff --git a/src/XiaoMiText/Notes-master/src/net/micode/notes/gtask/exception/ActionFailureException.java b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/gtask/exception/ActionFailureException.java similarity index 100% rename from src/XiaoMiText/Notes-master/src/net/micode/notes/gtask/exception/ActionFailureException.java rename to src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/gtask/exception/ActionFailureException.java diff --git a/src/XiaoMiText/Notes-master/src/net/micode/notes/gtask/exception/NetworkFailureException.java b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/gtask/exception/NetworkFailureException.java similarity index 100% rename from src/XiaoMiText/Notes-master/src/net/micode/notes/gtask/exception/NetworkFailureException.java rename to src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/gtask/exception/NetworkFailureException.java diff --git a/src/XiaoMiText/Notes-master/src/net/micode/notes/gtask/remote/GTaskASyncTask.java b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java similarity index 90% rename from src/XiaoMiText/Notes-master/src/net/micode/notes/gtask/remote/GTaskASyncTask.java rename to src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java index b3b61e7..6f37907 100644 --- a/src/XiaoMiText/Notes-master/src/net/micode/notes/gtask/remote/GTaskASyncTask.java +++ b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java @@ -64,10 +64,6 @@ public class GTaskASyncTask extends AsyncTask { } private void showNotification(int tickerId, String content) { - Notification notification = new Notification(R.drawable.notification, mContext - .getString(tickerId), System.currentTimeMillis()); - notification.defaults = Notification.DEFAULT_LIGHTS; - notification.flags = Notification.FLAG_AUTO_CANCEL; PendingIntent pendingIntent; if (tickerId != R.string.ticker_success) { pendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(mContext, @@ -77,8 +73,16 @@ public class GTaskASyncTask extends AsyncTask { pendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(mContext, NotesListActivity.class), 0); } - notification.setLatestEventInfo(mContext, mContext.getString(R.string.app_name), content, - pendingIntent); + + + Notification.Builder builder = new Notification.Builder(mContext) + .setAutoCancel(true) + .setContentTitle(mContext.getString(R.string.app_name)) + .setContentText(content) + .setContentIntent(pendingIntent) + .setWhen(System.currentTimeMillis()) + .setOngoing(true); + Notification notification=builder.getNotification(); mNotifiManager.notify(GTASK_SYNC_NOTIFICATION_ID, notification); } @@ -120,4 +124,6 @@ public class GTaskASyncTask extends AsyncTask { }).start(); } } + + } diff --git a/src/XiaoMiText/Notes-master/src/net/micode/notes/gtask/remote/GTaskClient.java b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/gtask/remote/GTaskClient.java similarity index 100% rename from src/XiaoMiText/Notes-master/src/net/micode/notes/gtask/remote/GTaskClient.java rename to src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/gtask/remote/GTaskClient.java diff --git a/src/XiaoMiText/Notes-master/src/net/micode/notes/gtask/remote/GTaskManager.java b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/gtask/remote/GTaskManager.java similarity index 100% rename from src/XiaoMiText/Notes-master/src/net/micode/notes/gtask/remote/GTaskManager.java rename to src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/gtask/remote/GTaskManager.java diff --git a/src/XiaoMiText/Notes-master/src/net/micode/notes/gtask/remote/GTaskSyncService.java b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/gtask/remote/GTaskSyncService.java similarity index 100% rename from src/XiaoMiText/Notes-master/src/net/micode/notes/gtask/remote/GTaskSyncService.java rename to src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/gtask/remote/GTaskSyncService.java diff --git a/src/XiaoMiText/Notes-master/src/net/micode/notes/model/Note.java b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/model/Note.java similarity index 88% rename from src/XiaoMiText/Notes-master/src/net/micode/notes/model/Note.java rename to src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/model/Note.java index 6706cf6..c955d44 100644 --- a/src/XiaoMiText/Notes-master/src/net/micode/notes/model/Note.java +++ b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/model/Note.java @@ -40,6 +40,7 @@ public class Note { private static final String TAG = "Note"; /** * Create a new note id for adding a new note to databases + * 创建一个新的标签id给新加入数据库的标签 */ public static synchronized long getNewNoteId(Context context, long folderId) { // Create a new note in the database @@ -65,17 +66,29 @@ public class Note { return noteId; } + + /** + * 构造函数 + */ public Note() { mNoteDiffValues = new ContentValues(); mNoteData = new NoteData(); } + /** + * 修改便签内容 + * 记录本地修改过 + * 记录修改时间 + */ public void setNoteValue(String key, String value) { mNoteDiffValues.put(key, value); mNoteDiffValues.put(NoteColumns.LOCAL_MODIFIED, 1); mNoteDiffValues.put(NoteColumns.MODIFIED_DATE, System.currentTimeMillis()); } + /** + * 以下是对一个便签存在的数据的修改 + */ public void setTextData(String key, String value) { mNoteData.setTextData(key, value); } @@ -96,15 +109,22 @@ public class Note { mNoteData.setCallData(key, value); } + /** + * 是否有修改内容 + */ public boolean isLocalModified() { return mNoteDiffValues.size() > 0 || mNoteData.isLocalModified(); } + /** + * 检验是否是最新的内容 + */ public boolean syncNote(Context context, long noteId) { if (noteId <= 0) { throw new IllegalArgumentException("Wrong note id:" + noteId); } + if (!isLocalModified()) { return true; } @@ -114,6 +134,8 @@ public class Note { * {@link NoteColumns#MODIFIED_DATE}. For data safety, though update note fails, we also update the * note data info */ + + //更新mNoteDiffValues if (context.getContentResolver().update( ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId), mNoteDiffValues, null, null) == 0) { @@ -122,6 +144,7 @@ public class Note { } mNoteDiffValues.clear(); + //更新mNoteData if (mNoteData.isLocalModified() && (mNoteData.pushIntoContentResolver(context, noteId) == null)) { return false; @@ -141,6 +164,11 @@ public class Note { private static final String TAG = "NoteData"; + + /** + * NoteData构造函数 + * 有文本数据和电话数据存储 + */ public NoteData() { mTextDataValues = new ContentValues(); mCallDataValues = new ContentValues(); @@ -148,10 +176,17 @@ public class Note { mCallDataId = 0; } + /** + * 如果 + * 两个数据中有修改的内容,说明是有本地修改的 + */ boolean isLocalModified() { return mTextDataValues.size() > 0 || mCallDataValues.size() > 0; } + /** + * 设置该文本数据的id + */ void setTextDataId(long id) { if(id <= 0) { throw new IllegalArgumentException("Text data id should larger than 0"); @@ -159,6 +194,10 @@ public class Note { mTextDataId = id; } + /** + * 设置该电话数据的id + * @param id + */ void setCallDataId(long id) { if (id <= 0) { throw new IllegalArgumentException("Call data id should larger than 0"); @@ -166,12 +205,19 @@ public class Note { mCallDataId = id; } + /** + * 设置数据内容 + */ void setCallData(String key, String value) { mCallDataValues.put(key, value); mNoteDiffValues.put(NoteColumns.LOCAL_MODIFIED, 1); mNoteDiffValues.put(NoteColumns.MODIFIED_DATE, System.currentTimeMillis()); } + + /** + * 设置数据内容 + */ void setTextData(String key, String value) { mTextDataValues.put(key, value); mNoteDiffValues.put(NoteColumns.LOCAL_MODIFIED, 1); @@ -181,6 +227,7 @@ public class Note { Uri pushIntoContentResolver(Context context, long noteId) { /** * Check for safety + * 安全检查 */ if (noteId <= 0) { throw new IllegalArgumentException("Wrong note id:" + noteId); @@ -189,6 +236,10 @@ public class Note { ArrayList operationList = new ArrayList(); ContentProviderOperation.Builder builder = null; + + /** + * 如果文本、电话数据存在需要修改的值,则将修改操作加入array并在之后进行清空 + */ if(mTextDataValues.size() > 0) { mTextDataValues.put(DataColumns.NOTE_ID, noteId); if (mTextDataId == 0) { @@ -233,6 +284,9 @@ public class Note { mCallDataValues.clear(); } + /** + * 查看是否有操作,如果操作成功则正常返回id,否则返回空值。 + */ if (operationList.size() > 0) { try { ContentProviderResult[] results = context.getContentResolver().applyBatch( diff --git a/src/XiaoMiText/Notes-master/src/net/micode/notes/model/WorkingNote.java b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/model/WorkingNote.java similarity index 93% rename from src/XiaoMiText/Notes-master/src/net/micode/notes/model/WorkingNote.java rename to src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/model/WorkingNote.java index be081e4..e8fad6c 100644 --- a/src/XiaoMiText/Notes-master/src/net/micode/notes/model/WorkingNote.java +++ b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/model/WorkingNote.java @@ -124,6 +124,9 @@ public class WorkingNote { loadNote(); } + /** + * 数据库中访问working便签 + */ private void loadNote() { Cursor cursor = mContext.getContentResolver().query( ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, mNoteId), NOTE_PROJECTION, null, @@ -174,6 +177,10 @@ public class WorkingNote { } } + /** + * 创建新便签,workingNote + * 其颜色、大小等设置好 + */ public static WorkingNote createEmptyNote(Context context, long folderId, int widgetId, int widgetType, int defaultBgColorId) { WorkingNote note = new WorkingNote(context, folderId); @@ -216,6 +223,10 @@ public class WorkingNote { return mNoteId > 0; } + /** + * 查看是否值得保存 + * 被删除、或者不存在于数据库的空内容、或者暂未本地修改过,是不值得动用数据库保存的 + */ private boolean isWorthSaving() { if (mIsDeleted || (!existInDatabase() && TextUtils.isEmpty(mContent)) || (existInDatabase() && !mNote.isLocalModified())) { @@ -229,6 +240,10 @@ public class WorkingNote { mNoteSettingStatusListener = l; } + /** + * 设置提醒日期 + * 便签的提醒功能 + */ public void setAlertDate(long date, boolean set) { if (date != mAlertDate) { mAlertDate = date; @@ -239,6 +254,9 @@ public class WorkingNote { } } + /** + * 标记便签 + */ public void markDeleted(boolean mark) { mIsDeleted = mark; if (mWidgetId != AppWidgetManager.INVALID_APPWIDGET_ID @@ -247,6 +265,9 @@ public class WorkingNote { } } + /** + * 根据颜色id设置背景颜色 + */ public void setBgColorId(int id) { if (id != mBgColorId) { mBgColorId = id; @@ -257,6 +278,9 @@ public class WorkingNote { } } + /** + * 设置选择模式 + */ public void setCheckListMode(int mode) { if (mMode != mode) { if (mNoteSettingStatusListener != null) { @@ -281,6 +305,9 @@ public class WorkingNote { } } + /** + * 设置文本内容为text + */ public void setWorkingText(String text) { if (!TextUtils.equals(mContent, text)) { mContent = text; @@ -294,6 +321,9 @@ public class WorkingNote { mNote.setNoteValue(NoteColumns.PARENT_ID, String.valueOf(Notes.ID_CALL_RECORD_FOLDER)); } + /** + * 判断是否有日期提醒 + */ public boolean hasClockAlert() { return (mAlertDate > 0 ? true : false); } @@ -342,6 +372,15 @@ public class WorkingNote { return mWidgetType; } + /** + * 接口 + * 便签内容改变时触发的监听器 + * 背景颜色 + * 提醒日期 + * 组件 + * 模式切换 + * 四种监听器 + */ public interface NoteSettingChangedListener { /** * Called when the background color of current note has just changed diff --git a/src/XiaoMiText/Notes-master/src/net/micode/notes/tool/BackupUtils.java b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/tool/BackupUtils.java similarity index 100% rename from src/XiaoMiText/Notes-master/src/net/micode/notes/tool/BackupUtils.java rename to src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/tool/BackupUtils.java diff --git a/src/XiaoMiText/Notes-master/src/net/micode/notes/tool/DataUtils.java b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/tool/DataUtils.java similarity index 100% rename from src/XiaoMiText/Notes-master/src/net/micode/notes/tool/DataUtils.java rename to src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/tool/DataUtils.java diff --git a/src/XiaoMiText/Notes-master/src/net/micode/notes/tool/GTaskStringUtils.java b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/tool/GTaskStringUtils.java similarity index 100% rename from src/XiaoMiText/Notes-master/src/net/micode/notes/tool/GTaskStringUtils.java rename to src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/tool/GTaskStringUtils.java diff --git a/src/XiaoMiText/Notes-master/src/net/micode/notes/tool/ResourceParser.java b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/tool/ResourceParser.java similarity index 100% rename from src/XiaoMiText/Notes-master/src/net/micode/notes/tool/ResourceParser.java rename to src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/tool/ResourceParser.java diff --git a/src/XiaoMiText/Notes-master/src/net/micode/notes/ui/AlarmAlertActivity.java b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/ui/AlarmAlertActivity.java similarity index 100% rename from src/XiaoMiText/Notes-master/src/net/micode/notes/ui/AlarmAlertActivity.java rename to src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/ui/AlarmAlertActivity.java diff --git a/src/XiaoMiText/Notes-master/src/net/micode/notes/ui/AlarmInitReceiver.java b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java similarity index 100% rename from src/XiaoMiText/Notes-master/src/net/micode/notes/ui/AlarmInitReceiver.java rename to src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java diff --git a/src/XiaoMiText/Notes-master/src/net/micode/notes/ui/AlarmReceiver.java b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/ui/AlarmReceiver.java similarity index 100% rename from src/XiaoMiText/Notes-master/src/net/micode/notes/ui/AlarmReceiver.java rename to src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/ui/AlarmReceiver.java diff --git a/src/XiaoMiText/Notes-master/src/net/micode/notes/ui/DateTimePicker.java b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/ui/DateTimePicker.java similarity index 100% rename from src/XiaoMiText/Notes-master/src/net/micode/notes/ui/DateTimePicker.java rename to src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/ui/DateTimePicker.java diff --git a/src/XiaoMiText/Notes-master/src/net/micode/notes/ui/DateTimePickerDialog.java b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/ui/DateTimePickerDialog.java similarity index 100% rename from src/XiaoMiText/Notes-master/src/net/micode/notes/ui/DateTimePickerDialog.java rename to src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/ui/DateTimePickerDialog.java diff --git a/src/XiaoMiText/Notes-master/src/net/micode/notes/ui/DropdownMenu.java b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/ui/DropdownMenu.java similarity index 100% rename from src/XiaoMiText/Notes-master/src/net/micode/notes/ui/DropdownMenu.java rename to src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/ui/DropdownMenu.java diff --git a/src/XiaoMiText/Notes-master/src/net/micode/notes/ui/FoldersListAdapter.java b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/ui/FoldersListAdapter.java similarity index 100% rename from src/XiaoMiText/Notes-master/src/net/micode/notes/ui/FoldersListAdapter.java rename to src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/ui/FoldersListAdapter.java diff --git a/src/XiaoMiText/Notes-master/src/net/micode/notes/ui/NoteEditActivity.java b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/ui/NoteEditActivity.java similarity index 99% rename from src/XiaoMiText/Notes-master/src/net/micode/notes/ui/NoteEditActivity.java rename to src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/ui/NoteEditActivity.java index 96a9ff8..276da37 100644 --- a/src/XiaoMiText/Notes-master/src/net/micode/notes/ui/NoteEditActivity.java +++ b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/ui/NoteEditActivity.java @@ -430,7 +430,7 @@ public class NoteEditActivity extends Activity implements OnClickListener, if (id == R.id.btn_set_bg_color) { mNoteBgColorSelector.setVisibility(View.VISIBLE); findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility( - - View.VISIBLE); + View.VISIBLE); } else if (sBgSelectorBtnsMap.containsKey(id)) { findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility( View.GONE); @@ -856,6 +856,9 @@ public class NoteEditActivity extends Activity implements OnClickListener, } } + /** + * + */ private String makeShortcutIconTitle(String content) { content = content.replace(TAG_CHECKED, ""); content = content.replace(TAG_UNCHECKED, ""); diff --git a/src/XiaoMiText/Notes-master/src/net/micode/notes/ui/NoteEditText.java b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/ui/NoteEditText.java similarity index 100% rename from src/XiaoMiText/Notes-master/src/net/micode/notes/ui/NoteEditText.java rename to src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/ui/NoteEditText.java diff --git a/src/XiaoMiText/Notes-master/src/net/micode/notes/ui/NoteItemData.java b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/ui/NoteItemData.java similarity index 86% rename from src/XiaoMiText/Notes-master/src/net/micode/notes/ui/NoteItemData.java rename to src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/ui/NoteItemData.java index 0f5a878..04b02c8 100644 --- a/src/XiaoMiText/Notes-master/src/net/micode/notes/ui/NoteItemData.java +++ b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/ui/NoteItemData.java @@ -27,19 +27,23 @@ import net.micode.notes.tool.DataUtils; public class NoteItemData { + + /** + * 便签属性元祖 + */ static final String [] PROJECTION = new String [] { - NoteColumns.ID, - NoteColumns.ALERTED_DATE, - NoteColumns.BG_COLOR_ID, - NoteColumns.CREATED_DATE, - NoteColumns.HAS_ATTACHMENT, - NoteColumns.MODIFIED_DATE, - NoteColumns.NOTES_COUNT, - NoteColumns.PARENT_ID, - NoteColumns.SNIPPET, - NoteColumns.TYPE, - NoteColumns.WIDGET_ID, - NoteColumns.WIDGET_TYPE, + NoteColumns.ID, //id + NoteColumns.ALERTED_DATE, //闹钟日期 + NoteColumns.BG_COLOR_ID, //背景颜色id + NoteColumns.CREATED_DATE, //创建日期 + NoteColumns.HAS_ATTACHMENT, //有附加内容 + NoteColumns.MODIFIED_DATE, //上次修改日期 + NoteColumns.NOTES_COUNT, //便签数量 + NoteColumns.PARENT_ID, //上级id + NoteColumns.SNIPPET, // + NoteColumns.TYPE, //类型 + NoteColumns.WIDGET_ID, //组件 + NoteColumns.WIDGET_TYPE, //组件类型 }; private static final int ID_COLUMN = 0; @@ -76,6 +80,10 @@ public class NoteItemData { private boolean mIsOneNoteFollowingFolder; private boolean mIsMultiNotesFollowingFolder; + /** + * 构造初始化 + * cursor是游标,从数据库里获取该note属性 + */ public NoteItemData(Context context, Cursor cursor) { mId = cursor.getLong(ID_COLUMN); mAlertDate = cursor.getLong(ALERTED_DATE_COLUMN); @@ -93,6 +101,11 @@ public class NoteItemData { mWidgetType = cursor.getInt(WIDGET_TYPE_COLUMN); mPhoneNumber = ""; + + /** + * 如果上级是电话记录文件夹 + * 会获取名字,名字为空则默认获取电话号码 + */ if (mParentId == Notes.ID_CALL_RECORD_FOLDER) { mPhoneNumber = DataUtils.getCallNumberByNoteId(context.getContentResolver(), mId); if (!TextUtils.isEmpty(mPhoneNumber)) { @@ -116,6 +129,11 @@ public class NoteItemData { mIsMultiNotesFollowingFolder = false; mIsOneNoteFollowingFolder = false; + /** + * 判断当前是一个便签跟着一个文件夹 + * 或者 + * 多个便签跟着一个文件夹 + */ if (mType == Notes.TYPE_NOTE && !mIsFirstItem) { int position = cursor.getPosition(); if (cursor.moveToPrevious()) { diff --git a/src/XiaoMiText/Notes-master/src/net/micode/notes/ui/NotesListActivity.java b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/ui/NotesListActivity.java similarity index 96% rename from src/XiaoMiText/Notes-master/src/net/micode/notes/ui/NotesListActivity.java rename to src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/ui/NotesListActivity.java index e843aec..84b5746 100644 --- a/src/XiaoMiText/Notes-master/src/net/micode/notes/ui/NotesListActivity.java +++ b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/ui/NotesListActivity.java @@ -138,11 +138,15 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + /** + * 首先显示node_list视图,初始化获取各个组件 + */ setContentView(R.layout.note_list); initResources(); /** * Insert an introduction when user firstly use this application + * 当用户第一次使用app时插入一个介绍(介绍应用使用) */ setAppInfoFromRawRes(); } @@ -159,7 +163,14 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt private void setAppInfoFromRawRes() { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this); + /** + * 如果没有添加过介绍的标签,则添加一次 + */ if (!sp.getBoolean(PREFERENCE_ADD_INTRODUCTION, false)) { + + /** + * 读取字符流,储存为sb + */ StringBuilder sb = new StringBuilder(); InputStream in = null; try { @@ -190,10 +201,18 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt } } + /** + * 创造一个标签note类,内容为介绍 + */ + WorkingNote note = WorkingNote.createEmptyNote(this, Notes.ID_ROOT_FOLDER, AppWidgetManager.INVALID_APPWIDGET_ID, Notes.TYPE_WIDGET_INVALIDE, ResourceParser.RED); note.setWorkingText(sb.toString()); + + /** + * 进行保存是否成功的判断 + */ if (note.saveNote()) { sp.edit().putBoolean(PREFERENCE_ADD_INTRODUCTION, true).commit(); } else { @@ -312,13 +331,24 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt updateMenu(); } + /** + * + */ public boolean onMenuItemClick(MenuItem item) { + + /** + * 不存在选中的元素时,任何操作都视为非法操作 + */ if (mNotesListAdapter.getSelectedCount() == 0) { Toast.makeText(NotesListActivity.this, getString(R.string.menu_select_none), Toast.LENGTH_SHORT).show(); return true; } + /** + * 根据点击的控件类型进行不同的操作 + * 删除:弹出确认窗口,确认后进行删除。 + */ switch (item.getItemId()) { case R.id.delete: AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity.this); @@ -462,6 +492,9 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt builder.show(); } + /** + * + */ private void createNewNote() { Intent intent = new Intent(this, NoteEditActivity.class); intent.setAction(Intent.ACTION_INSERT_OR_EDIT); @@ -557,6 +590,9 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt mTitleBar.setVisibility(View.VISIBLE); } + /** + * 如果点击了新建便签按钮,则创建一个新的便签 + */ public void onClick(View v) { switch (v.getId()) { case R.id.btn_new_note: @@ -876,11 +912,19 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt from.startActivityIfNeeded(intent, -1); } + /** + * 监听器,在note_list的便签被点击后触发 + */ private class OnListItemClickListener implements OnItemClickListener { public void onItemClick(AdapterView parent, View view, int position, long id) { + if (view instanceof NotesListItem) { NoteItemData item = ((NotesListItem) view).getItemData(); + + /** + * 在选择模式下,当点击了便签后,将便签设置为选中状态 + */ if (mNotesListAdapter.isInChoiceMode()) { if (item.getType() == Notes.TYPE_NOTE) { position = position - mNotesListView.getHeaderViewsCount(); @@ -890,6 +934,12 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt return; } + /** + * 其他状态下: + * 文件夹:打开文件夹 + * 标签:打开标签 + * 子文件夹:打开 + */ switch (mState) { case NOTE_LIST: if (item.getType() == Notes.TYPE_FOLDER @@ -935,9 +985,17 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt NoteColumns.MODIFIED_DATE + " DESC"); } + + /** + * 长按监听器 + */ public boolean onItemLongClick(AdapterView parent, View view, int position, long id) { if (view instanceof NotesListItem) { mFocusNoteDataItem = ((NotesListItem) view).getItemData(); + + /** + * 长按便签,如果不是选择模式则进入选择模式并将当前便签设置为选中 + */ if (mFocusNoteDataItem.getType() == Notes.TYPE_NOTE && !mNotesListAdapter.isInChoiceMode()) { if (mNotesListView.startActionMode(mModeCallBack) != null) { mModeCallBack.onItemCheckedStateChanged(null, position, id, true); diff --git a/src/XiaoMiText/Notes-master/src/net/micode/notes/ui/NotesListAdapter.java b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/ui/NotesListAdapter.java similarity index 89% rename from src/XiaoMiText/Notes-master/src/net/micode/notes/ui/NotesListAdapter.java rename to src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/ui/NotesListAdapter.java index 51c9cb9..b8b4b45 100644 --- a/src/XiaoMiText/Notes-master/src/net/micode/notes/ui/NotesListAdapter.java +++ b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/ui/NotesListAdapter.java @@ -30,7 +30,9 @@ import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; - +/** + * 显示便签list的适配器 + */ public class NotesListAdapter extends CursorAdapter { private static final String TAG = "NotesListAdapter"; private Context mContext; @@ -64,20 +66,33 @@ public class NotesListAdapter extends CursorAdapter { } } + /** + * 被选中的Item会被加入选中的hash里 + */ public void setCheckedItem(final int position, final boolean checked) { mSelectedIndex.put(position, checked); notifyDataSetChanged(); } + /** + * 查看当前是否属于选择模式 + */ public boolean isInChoiceMode() { return mChoiceMode; } + /** + * 改为选择模式的时候,清空选择集合 + * 更新模式 + */ public void setChoiceMode(boolean mode) { mSelectedIndex.clear(); mChoiceMode = mode; } + /** + * 全选,获取游标后全部便签类型设置为选中 + */ public void selectAll(boolean checked) { Cursor cursor = getCursor(); for (int i = 0; i < getCount(); i++) { @@ -89,6 +104,9 @@ public class NotesListAdapter extends CursorAdapter { } } + /** + * 对于选中集合,全部查询他们的Id并置入新集合里返回 + */ public HashSet getSelectedItemIds() { HashSet itemSet = new HashSet(); for (Integer position : mSelectedIndex.keySet()) { @@ -105,6 +123,9 @@ public class NotesListAdapter extends CursorAdapter { return itemSet; } + /** + * 获取选中note的组件,注意游标只能由适配器关闭 + */ public HashSet getSelectedWidget() { HashSet itemSet = new HashSet(); for (Integer position : mSelectedIndex.keySet()) { @@ -128,6 +149,9 @@ public class NotesListAdapter extends CursorAdapter { return itemSet; } + /** + * 返回选中数量 + */ public int getSelectedCount() { Collection values = mSelectedIndex.values(); if (null == values) { @@ -143,11 +167,17 @@ public class NotesListAdapter extends CursorAdapter { return count; } + /** + * 判断是否全部被选中 + */ public boolean isAllSelected() { int checkedCount = getSelectedCount(); return (checkedCount != 0 && checkedCount == mNotesCount); } + /** + * 判断一个位置是否被选中 + */ public boolean isSelectedItem(final int position) { if (null == mSelectedIndex.get(position)) { return false; diff --git a/src/XiaoMiText/Notes-master/src/net/micode/notes/ui/NotesListItem.java b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/ui/NotesListItem.java similarity index 100% rename from src/XiaoMiText/Notes-master/src/net/micode/notes/ui/NotesListItem.java rename to src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/ui/NotesListItem.java diff --git a/src/XiaoMiText/Notes-master/src/net/micode/notes/ui/NotesPreferenceActivity.java b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java similarity index 100% rename from src/XiaoMiText/Notes-master/src/net/micode/notes/ui/NotesPreferenceActivity.java rename to src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java diff --git a/src/XiaoMiText/Notes-master/src/net/micode/notes/widget/NoteWidgetProvider.java b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/widget/NoteWidgetProvider.java similarity index 100% rename from src/XiaoMiText/Notes-master/src/net/micode/notes/widget/NoteWidgetProvider.java rename to src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/widget/NoteWidgetProvider.java diff --git a/src/XiaoMiText/Notes-master/src/net/micode/notes/widget/NoteWidgetProvider_2x.java b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/widget/NoteWidgetProvider_2x.java similarity index 100% rename from src/XiaoMiText/Notes-master/src/net/micode/notes/widget/NoteWidgetProvider_2x.java rename to src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/widget/NoteWidgetProvider_2x.java diff --git a/src/XiaoMiText/Notes-master/src/net/micode/notes/widget/NoteWidgetProvider_4x.java b/src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/widget/NoteWidgetProvider_4x.java similarity index 100% rename from src/XiaoMiText/Notes-master/src/net/micode/notes/widget/NoteWidgetProvider_4x.java rename to src/Notes-master/Notes-master/app/src/main/java/net/micode/notes/widget/NoteWidgetProvider_4x.java diff --git a/src/XiaoMiText/Notes-master/res/color/primary_text_dark.xml b/src/Notes-master/Notes-master/app/src/main/res/color/primary_text_dark.xml similarity index 94% rename from src/XiaoMiText/Notes-master/res/color/primary_text_dark.xml rename to src/Notes-master/Notes-master/app/src/main/res/color/primary_text_dark.xml index 7c85459..8ad98e3 100644 --- a/src/XiaoMiText/Notes-master/res/color/primary_text_dark.xml +++ b/src/Notes-master/Notes-master/app/src/main/res/color/primary_text_dark.xml @@ -1,4 +1,4 @@ - +