diff --git a/doc/~$代码标注分工.docx b/doc/~$代码标注分工.docx
new file mode 100644
index 0000000..8b21c83
Binary files /dev/null and b/doc/~$代码标注分工.docx differ
diff --git a/doc/~$便签泛读报告.docx b/doc/~$便签泛读报告.docx
index 8ae359a..02c1e39 100644
Binary files a/doc/~$便签泛读报告.docx and b/doc/~$便签泛读报告.docx differ
diff --git a/doc/~$便签的代码标注.docx b/doc/~$便签的代码标注.docx
new file mode 100644
index 0000000..794205f
Binary files /dev/null and b/doc/~$便签的代码标注.docx differ
diff --git a/doc/~WRL0258.tmp b/doc/~WRL0258.tmp
new file mode 100644
index 0000000..c2515eb
Binary files /dev/null and b/doc/~WRL0258.tmp differ
diff --git a/doc/代码标注分工.docx b/doc/代码标注分工.docx
new file mode 100644
index 0000000..c87910f
Binary files /dev/null and b/doc/代码标注分工.docx differ
diff --git a/doc/小米便签泛读报告.docx b/doc/小米便签泛读报告.docx
index 9c1b7b9..b0d4bc9 100644
Binary files a/doc/小米便签泛读报告.docx and b/doc/小米便签泛读报告.docx differ
diff --git a/doc/小米便签的代码标注.docx b/doc/小米便签的代码标注.docx
new file mode 100644
index 0000000..9b86114
Binary files /dev/null and b/doc/小米便签的代码标注.docx differ
diff --git a/src/Notes/.gradle/8.0/executionHistory/executionHistory.bin b/src/Notes/.gradle/8.0/executionHistory/executionHistory.bin
index cfcf413..2bf5a2a 100644
Binary files a/src/Notes/.gradle/8.0/executionHistory/executionHistory.bin and b/src/Notes/.gradle/8.0/executionHistory/executionHistory.bin differ
diff --git a/src/Notes/.gradle/8.0/executionHistory/executionHistory.lock b/src/Notes/.gradle/8.0/executionHistory/executionHistory.lock
index 1b7a6b2..1a3b7a7 100644
Binary files a/src/Notes/.gradle/8.0/executionHistory/executionHistory.lock and b/src/Notes/.gradle/8.0/executionHistory/executionHistory.lock differ
diff --git a/src/Notes/.gradle/8.0/fileHashes/fileHashes.bin b/src/Notes/.gradle/8.0/fileHashes/fileHashes.bin
index 9039f81..80b8cc9 100644
Binary files a/src/Notes/.gradle/8.0/fileHashes/fileHashes.bin and b/src/Notes/.gradle/8.0/fileHashes/fileHashes.bin differ
diff --git a/src/Notes/.gradle/8.0/fileHashes/fileHashes.lock b/src/Notes/.gradle/8.0/fileHashes/fileHashes.lock
index 3b75c96..5dd3d4b 100644
Binary files a/src/Notes/.gradle/8.0/fileHashes/fileHashes.lock and b/src/Notes/.gradle/8.0/fileHashes/fileHashes.lock differ
diff --git a/src/Notes/.gradle/8.0/fileHashes/resourceHashesCache.bin b/src/Notes/.gradle/8.0/fileHashes/resourceHashesCache.bin
index 7df6906..e7cc245 100644
Binary files a/src/Notes/.gradle/8.0/fileHashes/resourceHashesCache.bin and b/src/Notes/.gradle/8.0/fileHashes/resourceHashesCache.bin differ
diff --git a/src/Notes/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/src/Notes/.gradle/buildOutputCleanup/buildOutputCleanup.lock
index 90d166b..805ca69 100644
Binary files a/src/Notes/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/src/Notes/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ
diff --git a/src/Notes/.gradle/buildOutputCleanup/outputFiles.bin b/src/Notes/.gradle/buildOutputCleanup/outputFiles.bin
index 908624b..45267e7 100644
Binary files a/src/Notes/.gradle/buildOutputCleanup/outputFiles.bin and b/src/Notes/.gradle/buildOutputCleanup/outputFiles.bin differ
diff --git a/src/Notes/.gradle/file-system.probe b/src/Notes/.gradle/file-system.probe
index c447823..6be6af5 100644
Binary files a/src/Notes/.gradle/file-system.probe and b/src/Notes/.gradle/file-system.probe differ
diff --git a/src/Notes/app/build/intermediates/apk/debug/app-debug.apk b/src/Notes/app/build/intermediates/apk/debug/app-debug.apk
index 744d756..2528a7f 100644
Binary files a/src/Notes/app/build/intermediates/apk/debug/app-debug.apk and b/src/Notes/app/build/intermediates/apk/debug/app-debug.apk differ
diff --git a/src/Notes/app/build/intermediates/apk_ide_redirect_file/debug/redirect.txt b/src/Notes/app/build/intermediates/apk_ide_redirect_file/debug/redirect.txt
index 66652a5..46dacc6 100644
--- a/src/Notes/app/build/intermediates/apk_ide_redirect_file/debug/redirect.txt
+++ b/src/Notes/app/build/intermediates/apk_ide_redirect_file/debug/redirect.txt
@@ -1,2 +1,2 @@
#- File Locator -
-listingFile=../../../outputs/apk/debug/output-metadata.json
+listingFile=../../apk/debug/output-metadata.json
diff --git a/src/Notes/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_0/graph.bin b/src/Notes/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_0/graph.bin
index 5459333..2a0a825 100644
Binary files a/src/Notes/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_0/graph.bin and b/src/Notes/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_0/graph.bin differ
diff --git a/src/Notes/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_3/graph.bin b/src/Notes/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_3/graph.bin
index 85a5b3b..8fb5bea 100644
Binary files a/src/Notes/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_3/graph.bin and b/src/Notes/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_3/graph.bin differ
diff --git a/src/Notes/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_5/graph.bin b/src/Notes/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_5/graph.bin
index 89a6f39..d847612 100644
Binary files a/src/Notes/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_5/graph.bin and b/src/Notes/app/build/intermediates/desugar_graph/debug/out/currentProject/dirs_bucket_5/graph.bin differ
diff --git a/src/Notes/app/build/intermediates/dex/debug/mergeDexDebug/classes.dex b/src/Notes/app/build/intermediates/dex/debug/mergeDexDebug/classes.dex
index 06bc5f8..8c2f914 100644
Binary files a/src/Notes/app/build/intermediates/dex/debug/mergeDexDebug/classes.dex and b/src/Notes/app/build/intermediates/dex/debug/mergeDexDebug/classes.dex differ
diff --git a/src/Notes/app/build/intermediates/incremental/debug/mergeDebugResources/compile-file-map.properties b/src/Notes/app/build/intermediates/incremental/debug/mergeDebugResources/compile-file-map.properties
index b631fe4..5865ad6 100644
--- a/src/Notes/app/build/intermediates/incremental/debug/mergeDebugResources/compile-file-map.properties
+++ b/src/Notes/app/build/intermediates/incremental/debug/mergeDebugResources/compile-file-map.properties
@@ -1,4 +1,4 @@
-#Sun Nov 26 21:16:44 CST 2023
+#Sat Dec 16 23:24:10 CST 2023
net.micode.notes.app-main-6\:/color/primary_text_dark.xml=D\:\\Study\\SE\\MiNotes\\src\\Notes\\app\\build\\intermediates\\merged_res\\debug\\color_primary_text_dark.xml.flat
net.micode.notes.app-main-6\:/color/secondary_text_dark.xml=D\:\\Study\\SE\\MiNotes\\src\\Notes\\app\\build\\intermediates\\merged_res\\debug\\color_secondary_text_dark.xml.flat
net.micode.notes.app-main-6\:/drawable-hdpi/bg_btn_set_color.png=D\:\\Study\\SE\\MiNotes\\src\\Notes\\app\\build\\intermediates\\merged_res\\debug\\drawable-hdpi_bg_btn_set_color.png.flat
diff --git a/src/Notes/app/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties b/src/Notes/app/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties
index bf80e98..17daa6e 100644
--- a/src/Notes/app/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties
+++ b/src/Notes/app/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties
@@ -1,4 +1,4 @@
-#Sun Nov 26 21:16:44 CST 2023
+#Sat Dec 16 23:24:11 CST 2023
net.micode.notes.app-main-5\:/color/primary_text_dark.xml=D\:\\Study\\SE\\MiNotes\\src\\Notes\\app\\build\\intermediates\\packaged_res\\debug\\color\\primary_text_dark.xml
net.micode.notes.app-main-5\:/color/secondary_text_dark.xml=D\:\\Study\\SE\\MiNotes\\src\\Notes\\app\\build\\intermediates\\packaged_res\\debug\\color\\secondary_text_dark.xml
net.micode.notes.app-main-5\:/drawable-hdpi/bg_btn_set_color.png=D\:\\Study\\SE\\MiNotes\\src\\Notes\\app\\build\\intermediates\\packaged_res\\debug\\drawable-hdpi-v4\\bg_btn_set_color.png
diff --git a/src/Notes/app/build/intermediates/incremental/packageDebug/tmp/debug/dex-renamer-state.txt b/src/Notes/app/build/intermediates/incremental/packageDebug/tmp/debug/dex-renamer-state.txt
index eacc80d..2825a6d 100644
--- a/src/Notes/app/build/intermediates/incremental/packageDebug/tmp/debug/dex-renamer-state.txt
+++ b/src/Notes/app/build/intermediates/incremental/packageDebug/tmp/debug/dex-renamer-state.txt
@@ -1,4 +1,4 @@
-#Sun Nov 26 21:19:33 CST 2023
+#Wed Dec 20 23:50:56 CST 2023
base.0=D\:\\Study\\SE\\MiNotes\\src\\Notes\\app\\build\\intermediates\\dex\\debug\\mergeDexDebug\\classes.dex
path.0=classes.dex
renamed.0=classes.dex
diff --git a/src/Notes/app/build/intermediates/incremental/packageDebug/tmp/debug/zip-cache/androidResources b/src/Notes/app/build/intermediates/incremental/packageDebug/tmp/debug/zip-cache/androidResources
index 1ec204b..26337d5 100644
Binary files a/src/Notes/app/build/intermediates/incremental/packageDebug/tmp/debug/zip-cache/androidResources and b/src/Notes/app/build/intermediates/incremental/packageDebug/tmp/debug/zip-cache/androidResources differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Contact.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Contact.class
index b46f52c..bac2d9e 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Contact.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Contact.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$CallNote.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$CallNote.class
index c7c17ff..3afa321 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$CallNote.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$CallNote.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$DataConstants.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$DataConstants.class
index 76ef96e..dc242b5 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$DataConstants.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$DataConstants.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$TextNote.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$TextNote.class
index c895fb0..009e6aa 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$TextNote.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes$TextNote.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes.class
index 413745e..65a3efc 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/data/Notes.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/data/NotesProvider.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/data/NotesProvider.class
index 1d3de0e..f99eef0 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/data/NotesProvider.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/data/NotesProvider.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/model/Note$NoteData.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/model/Note$NoteData.class
index c40e945..f1d00ac 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/model/Note$NoteData.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/model/Note$NoteData.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/model/Note.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/model/Note.class
index d2041cc..fc87525 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/model/Note.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/model/Note.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/model/WorkingNote.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/model/WorkingNote.class
index df71afc..ec6183a 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/model/WorkingNote.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/model/WorkingNote.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/AlarmAlertActivity.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/AlarmAlertActivity.class
index 98353eb..75ae652 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/AlarmAlertActivity.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/AlarmAlertActivity.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/AlarmInitReceiver.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/AlarmInitReceiver.class
index a1d202d..b964ed4 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/AlarmInitReceiver.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/AlarmInitReceiver.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/AlarmReceiver.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/AlarmReceiver.class
index a41b775..7118088 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/AlarmReceiver.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/AlarmReceiver.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$1.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$1.class
index 029286f..6409b67 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$1.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$1.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$2.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$2.class
index e65c35c..16704b5 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$2.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$2.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$3.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$3.class
index de51bad..e3d9c96 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$3.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$3.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$4.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$4.class
index d04cbe7..e286885 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$4.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$4.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker.class
index 400d289..a95f925 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePickerDialog$1.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePickerDialog$1.class
index 415e755..2191430 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePickerDialog$1.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePickerDialog$1.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePickerDialog.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePickerDialog.class
index 71e5215..7ef0abc 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePickerDialog.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePickerDialog.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DropdownMenu$1.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DropdownMenu$1.class
index ddd74fd..c926b67 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DropdownMenu$1.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DropdownMenu$1.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DropdownMenu.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DropdownMenu.class
index 54e7df6..71a0091 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DropdownMenu.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DropdownMenu.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/FoldersListAdapter$FolderListItem.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/FoldersListAdapter$FolderListItem.class
index fad3442..47a468c 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/FoldersListAdapter$FolderListItem.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/FoldersListAdapter$FolderListItem.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/FoldersListAdapter.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/FoldersListAdapter.class
index 023f716..4e56d58 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/FoldersListAdapter.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/FoldersListAdapter.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$1.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$1.class
index 5416cd3..06799d1 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$1.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$1.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$2.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$2.class
index bb9f786..dfffa21 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$2.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$2.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$3.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$3.class
index 961f2f4..7d42a84 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$3.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$3.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$HeadViewHolder.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$HeadViewHolder.class
index 8e1f0bf..8e3e9ce 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$HeadViewHolder.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$HeadViewHolder.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity.class
index 7d0a456..f6a7826 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditText$1.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditText$1.class
index 2040186..fbeff49 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditText$1.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditText$1.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditText.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditText.class
index 3a19d3b..e0eea60 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditText.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditText.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$1.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$1.class
index c6a45e6..05bc982 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$1.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$1.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$2.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$2.class
index f6fe0bb..fb92d6c 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$2.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$2.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$3.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$3.class
index 7ccb682..659c454 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$3.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$3.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$4.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$4.class
index c139b5d..324b349 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$4.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$4.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$5.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$5.class
index 0a039bb..a090d40 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$5.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$5.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$6.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$6.class
index 7f92ddc..de4e408 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$6.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$6.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$7.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$7.class
index db6e10f..93cbf94 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$7.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$7.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$8.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$8.class
index d481c3b..3fc279b 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$8.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$8.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$9.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$9.class
index 9a930e4..2312a28 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$9.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$9.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$BackgroundQueryHandler.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$BackgroundQueryHandler.class
index 24182b8..de48358 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$BackgroundQueryHandler.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$BackgroundQueryHandler.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ListEditState.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ListEditState.class
index 2edab7b..cb50f1d 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ListEditState.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ListEditState.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ModeCallback$1.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ModeCallback$1.class
index 3981f16..08950d5 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ModeCallback$1.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ModeCallback$1.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ModeCallback$2.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ModeCallback$2.class
index 99e161f..2cdacee 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ModeCallback$2.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ModeCallback$2.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ModeCallback.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ModeCallback.class
index f249e33..bde970e 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ModeCallback.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$ModeCallback.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$NewNoteOnTouchListener.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$NewNoteOnTouchListener.class
index 2606021..110a0b1 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$NewNoteOnTouchListener.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$NewNoteOnTouchListener.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$OnListItemClickListener.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$OnListItemClickListener.class
index c4efad0..ea940a9 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$OnListItemClickListener.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity$OnListItemClickListener.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity.class
index 3529a0d..79e06a7 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListActivity.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListAdapter$AppWidgetAttribute.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListAdapter$AppWidgetAttribute.class
index 2bdb58b..5c2072b 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListAdapter$AppWidgetAttribute.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListAdapter$AppWidgetAttribute.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListAdapter.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListAdapter.class
index 5e432e9..0dfa320 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListAdapter.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListAdapter.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListItem.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListItem.class
index 4596834..99150f6 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListItem.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListItem.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$1.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$1.class
index 362fa05..4d5c288 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$1.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$1.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$2.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$2.class
index 8523228..47c78ef 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$2.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$2.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$3.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$3.class
index d91bc85..baa7752 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$3.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$3.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$4.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$4.class
index 99c7a64..1cc346a 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$4.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$4.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$5.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$5.class
index 17e4d3b..320d722 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$5.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$5.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$6.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$6.class
index 7b80036..0f88f2b 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$6.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$6.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$7.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$7.class
index d9abeb9..4691731 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$7.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$7.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$8.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$8.class
index 39e534a..56f7e5c 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$8.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$8.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$GTaskReceiver.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$GTaskReceiver.class
index eb938cf..8329599 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$GTaskReceiver.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$GTaskReceiver.class differ
diff --git a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity.class b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity.class
index 0937be2..6c4e83e 100644
Binary files a/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity.class and b/src/Notes/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity.class differ
diff --git a/src/Notes/app/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt b/src/Notes/app/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt
index be0cf5f..4762f47 100644
--- a/src/Notes/app/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt
+++ b/src/Notes/app/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt
@@ -59,230 +59,231 @@
38 android:extractNativeLibs="true"
39 android:icon="@drawable/icon_app"
39-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:36:9-42
-40 android:label="@string/app_name" >
+40 android:label="@string/app_name"
40-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:37:9-41
-41 D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:38:9-52:20
-42 android:name="net.micode.notes.ui.NotesListActivity"
-42-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:39:13-49
-43 android:configChanges="keyboardHidden|orientation|screenSize"
-43-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:41:13-74
-44 android:exported="true"
-44-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:40:13-36
-45 android:label="@string/app_name"
-45-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:42:13-45
-46 android:launchMode="singleTop"
-46-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:43:13-43
-47 android:theme="@style/NoteTheme"
-47-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:44:13-45
-48 android:uiOptions="splitActionBarWhenNarrow"
-48-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:45:13-57
-49 android:windowSoftInputMode="adjustPan" >
-49-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:46:13-52
-50
-50-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:48:13-51:29
-51
-51-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:49:17-69
-51-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:49:25-66
-52
-53
-53-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:50:17-77
-53-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:50:27-74
-54
-55
-56 D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:54:9-83:20
-57 android:name="net.micode.notes.ui.NoteEditActivity"
-57-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:55:13-48
-58 android:configChanges="keyboardHidden|orientation|screenSize"
-58-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:56:13-74
-59 android:launchMode="singleTop"
-59-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:57:13-43
-60 android:theme="@style/NoteTheme" >
-60-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:58:13-45
-61
-61-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:60:13-65:29
-62
-62-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:61:17-69
-62-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:61:25-66
-63
-64
-64-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:62:17-76
-64-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:62:27-73
-65
-66 D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:63:17-167
-67 android:host="com.example.notes.provider"
-67-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:63:101-142
-68 android:mimeType="vnd.android.cursor.item/text_note"
-68-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:63:23-75
-69 android:path="/notes"
-69-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:63:143-164
-70 android:scheme="content" />
-70-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:63:76-100
-71 D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:63:17-167
-72 android:host="com.example.notes.provider"
-72-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:63:101-142
-73 android:mimeType="vnd.android.cursor.item/call_note"
-73-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:63:23-75
-74 android:path="/notes"
-74-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:63:143-164
-75 android:scheme="content" />
-75-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:63:76-100
-76
-77
-77-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:68:13-73:29
-78
-78-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:69:17-79
-78-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:69:25-76
-79
-80
-80-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:62:17-76
-80-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:62:27-73
-81
-82
-82-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:63:17-167
-82-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:63:23-75
-83
+41 android:testOnly="true" >
+42 D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:38:9-52:20
+43 android:name="net.micode.notes.ui.NotesListActivity"
+43-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:39:13-49
+44 android:configChanges="keyboardHidden|orientation|screenSize"
+44-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:41:13-74
+45 android:exported="true"
+45-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:40:13-36
+46 android:label="@string/app_name"
+46-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:42:13-45
+47 android:launchMode="singleTop"
+47-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:43:13-43
+48 android:theme="@style/NoteTheme"
+48-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:44:13-45
+49 android:uiOptions="splitActionBarWhenNarrow"
+49-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:45:13-57
+50 android:windowSoftInputMode="adjustPan" >
+50-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:46:13-52
+51
+51-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:48:13-51:29
+52
+52-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:49:17-69
+52-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:49:25-66
+53
+54
+54-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:50:17-77
+54-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:50:27-74
+55
+56
+57 D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:54:9-83:20
+58 android:name="net.micode.notes.ui.NoteEditActivity"
+58-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:55:13-48
+59 android:configChanges="keyboardHidden|orientation|screenSize"
+59-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:56:13-74
+60 android:launchMode="singleTop"
+60-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:57:13-43
+61 android:theme="@style/NoteTheme" >
+61-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:58:13-45
+62
+62-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:60:13-65:29
+63
+63-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:61:17-69
+63-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:61:25-66
+64
+65
+65-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:62:17-76
+65-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:62:27-73
+66
+67 D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:63:17-167
+68 android:host="com.example.notes.provider"
+68-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:63:101-142
+69 android:mimeType="vnd.android.cursor.item/text_note"
+69-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:63:23-75
+70 android:path="/notes"
+70-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:63:143-164
+71 android:scheme="content" />
+71-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:63:76-100
+72 D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:63:17-167
+73 android:host="com.example.notes.provider"
+73-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:63:101-142
+74 android:mimeType="vnd.android.cursor.item/call_note"
+74-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:63:23-75
+75 android:path="/notes"
+75-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:63:143-164
+76 android:scheme="content" />
+76-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:63:76-100
+77
+78
+78-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:68:13-73:29
+79
+79-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:69:17-79
+79-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:69:25-76
+80
+81
+81-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:62:17-76
+81-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:62:27-73
+82
+83
83-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:63:17-167
83-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:63:23-75
-84
-85
-85-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:75:13-78:29
-86
-86-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:76:17-71
-86-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:76:25-68
-87
-88
-88-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:62:17-76
-88-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:62:27-73
-89
-90
-91 D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:80:13-82:54
-92 android:name="android.app.searchable"
-92-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:81:17-54
-93 android:resource="@xml/searchable" />
-93-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:82:17-51
-94
-95
-96 D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:85:9-88:43
-97 android:name="net.micode.notes.data.NotesProvider"
-97-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:86:13-63
-98 android:authorities="micode_notes"
-98-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:87:13-47
-99 android:multiprocess="true" />
-99-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:88:13-40
-100
-101 D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:90:9-102:20
-102 android:name="net.micode.notes.widget.NoteWidgetProvider_2x"
-102-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:91:13-57
-103 android:label="@string/app_widget2x2" >
-103-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:92:13-50
-104
-104-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:93:13-97:29
-105
-105-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:94:17-84
-105-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:94:25-81
-106
-106-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:95:17-85
-106-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:95:25-82
-107
-107-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:96:17-85
-107-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:96:25-82
-108
-109
-110 D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:99:13-101:58
-111 android:name="android.appwidget.provider"
-111-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:100:17-58
-112 android:resource="@xml/widget_2x_info" />
-112-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:101:17-55
-113
-114 D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:103:9-116:20
-115 android:name="net.micode.notes.widget.NoteWidgetProvider_4x"
-115-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:104:13-57
-116 android:label="@string/app_widget4x4" >
-116-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:105:13-50
-117
-117-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:93:13-97:29
-118
-118-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:94:17-84
-118-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:94:25-81
-119
-119-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:95:17-85
-119-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:95:25-82
-120
-120-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:96:17-85
-120-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:96:25-82
-121
-122
-123 D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:99:13-101:58
-124 android:name="android.appwidget.provider"
-124-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:100:17-58
-125 android:resource="@xml/widget_4x_info" />
-125-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:101:17-55
-126
-127
-127-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:118:9-122:20
-127-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:118:19-55
-128
-128-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:119:13-121:29
-129
-129-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:120:17-79
-129-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:120:25-76
-130
-131
-132 D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:124:9-127:20
-133 android:name="net.micode.notes.ui.AlarmReceiver"
-133-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:125:13-61
-134 android:process=":remote" >
-134-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:126:13-38
-135
-136
-137 D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:129:9-134:20
-138 android:name="net.micode.notes.ui.AlarmAlertActivity"
-138-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:130:13-50
-139 android:label="@string/app_name"
-139-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:131:13-45
-140 android:launchMode="singleInstance"
-140-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:132:13-48
-141 android:theme="@android:style/Theme.Holo.Wallpaper.NoTitleBar" >
-141-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:133:13-75
-142
-143 D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:136:9-141:20
-144 android:name="net.micode.notes.ui.NotesPreferenceActivity"
-144-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:137:13-71
-145 android:label="@string/preferences_title"
-145-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:138:13-54
-146 android:launchMode="singleTop"
-146-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:139:13-43
-147 android:theme="@android:style/Theme.Holo.Light" >
-147-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:140:13-60
-148
-149
-150 D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:143:9-146:19
-151 android:name="net.micode.notes.gtask.remote.GTaskSyncService"
-151-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:144:13-74
-152 android:exported="false" >
-152-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:145:13-37
-153
-154
-155 D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:148:9-150:52
-156 android:name="android.app.default_searchable"
-156-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:149:13-58
-157 android:value=".ui.NoteEditActivity" />
-157-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:150:13-49
-158
-159
-160
+84
+84-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:63:17-167
+84-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:63:23-75
+85
+86
+86-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:75:13-78:29
+87
+87-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:76:17-71
+87-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:76:25-68
+88
+89
+89-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:62:17-76
+89-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:62:27-73
+90
+91
+92 D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:80:13-82:54
+93 android:name="android.app.searchable"
+93-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:81:17-54
+94 android:resource="@xml/searchable" />
+94-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:82:17-51
+95
+96
+97 D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:85:9-88:43
+98 android:name="net.micode.notes.data.NotesProvider"
+98-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:86:13-63
+99 android:authorities="micode_notes"
+99-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:87:13-47
+100 android:multiprocess="true" />
+100-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:88:13-40
+101
+102 D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:90:9-102:20
+103 android:name="net.micode.notes.widget.NoteWidgetProvider_2x"
+103-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:91:13-57
+104 android:label="@string/app_widget2x2" >
+104-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:92:13-50
+105
+105-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:93:13-97:29
+106
+106-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:94:17-84
+106-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:94:25-81
+107
+107-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:95:17-85
+107-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:95:25-82
+108
+108-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:96:17-85
+108-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:96:25-82
+109
+110
+111 D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:99:13-101:58
+112 android:name="android.appwidget.provider"
+112-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:100:17-58
+113 android:resource="@xml/widget_2x_info" />
+113-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:101:17-55
+114
+115 D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:103:9-116:20
+116 android:name="net.micode.notes.widget.NoteWidgetProvider_4x"
+116-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:104:13-57
+117 android:label="@string/app_widget4x4" >
+117-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:105:13-50
+118
+118-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:93:13-97:29
+119
+119-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:94:17-84
+119-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:94:25-81
+120
+120-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:95:17-85
+120-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:95:25-82
+121
+121-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:96:17-85
+121-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:96:25-82
+122
+123
+124 D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:99:13-101:58
+125 android:name="android.appwidget.provider"
+125-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:100:17-58
+126 android:resource="@xml/widget_4x_info" />
+126-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:101:17-55
+127
+128
+128-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:118:9-122:20
+128-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:118:19-55
+129
+129-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:119:13-121:29
+130
+130-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:120:17-79
+130-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:120:25-76
+131
+132
+133 D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:124:9-127:20
+134 android:name="net.micode.notes.ui.AlarmReceiver"
+134-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:125:13-61
+135 android:process=":remote" >
+135-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:126:13-38
+136
+137
+138 D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:129:9-134:20
+139 android:name="net.micode.notes.ui.AlarmAlertActivity"
+139-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:130:13-50
+140 android:label="@string/app_name"
+140-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:131:13-45
+141 android:launchMode="singleInstance"
+141-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:132:13-48
+142 android:theme="@android:style/Theme.Holo.Wallpaper.NoTitleBar" >
+142-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:133:13-75
+143
+144 D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:136:9-141:20
+145 android:name="net.micode.notes.ui.NotesPreferenceActivity"
+145-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:137:13-71
+146 android:label="@string/preferences_title"
+146-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:138:13-54
+147 android:launchMode="singleTop"
+147-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:139:13-43
+148 android:theme="@android:style/Theme.Holo.Light" >
+148-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:140:13-60
+149
+150
+151 D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:143:9-146:19
+152 android:name="net.micode.notes.gtask.remote.GTaskSyncService"
+152-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:144:13-74
+153 android:exported="false" >
+153-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:145:13-37
+154
+155
+156 D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:148:9-150:52
+157 android:name="android.app.default_searchable"
+157-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:149:13-58
+158 android:value=".ui.NoteEditActivity" />
+158-->D:\Study\SE\MiNotes\src\Notes\app\src\main\AndroidManifest.xml:150:13-49
+159
+160
+161
diff --git a/src/Notes/app/build/intermediates/merged_manifest/debug/AndroidManifest.xml b/src/Notes/app/build/intermediates/merged_manifest/debug/AndroidManifest.xml
index 344cc1e..bb2e737 100644
--- a/src/Notes/app/build/intermediates/merged_manifest/debug/AndroidManifest.xml
+++ b/src/Notes/app/build/intermediates/merged_manifest/debug/AndroidManifest.xml
@@ -37,7 +37,8 @@
android:debuggable="true"
android:extractNativeLibs="true"
android:icon="@drawable/icon_app"
- android:label="@string/app_name" >
+ android:label="@string/app_name"
+ android:testOnly="true" >
+ android:label="@string/app_name"
+ android:testOnly="true" >
+ android:label="@string/app_name"
+ android:testOnly="true" >
sContactCache;//创建一个HashMap类型的静态变量,作为缓存
+/**
+ * @Package: net.micode.notes.data
+ * @ClassName: Contact
+ * @Description:
+ * Contact类用于查询联系人信息并进行缓存。
+ * 该类包含一个静态的HashMap作为缓存,存储电话号码和对应的联系人名字。
+ * 通过调用getContact方法可以根据给定的电话号码查询联系人名字。
+ * 如果缓存中已经存在该电话号码对应的联系人名字,则直接返回缓存中的结果,否则通过查询数据库获取联系人名字并更新缓存。
+ * 该类还定义了一个私有的SQL筛选语句用于查询联系人信息。
+ * 注意:该类是线程不安全的,如果需要在多线程环境下使用,请做好同步控制
+ * @Author: YangYizhe
+ * @CreateDate: 12/17/2023 10:10 AM
+ * @Version: 1.0
+ */
+public class Contact {
+ /**
+ * 作为缓存,存储电话号码和对应的联系人名字
+ */
+ private static HashMap sContactCache;
private static final String TAG = "Contact";//设置日志TAG标签
//查询联系人的SQL筛选语句
diff --git a/src/Notes/app/src/main/java/net/micode/notes/model/Note.java b/src/Notes/app/src/main/java/net/micode/notes/model/Note.java
index 6706cf6..864da2c 100644
--- a/src/Notes/app/src/main/java/net/micode/notes/model/Note.java
+++ b/src/Notes/app/src/main/java/net/micode/notes/model/Note.java
@@ -33,16 +33,32 @@ import net.micode.notes.data.Notes.TextNote;
import java.util.ArrayList;
-
+/**
+ * @Package: net.micode.notes.model
+ * @ClassName: Note
+ * @Description: 笔记类,用于操作和管理笔记数据
+ * @Author: YangYizhe
+ * @CreateDate: 12/17/2023 10:06 AM
+ * @UpdateUser: none
+ * @UpdateDate: 12/17/2023 10:06 AM
+ * @UpdateRemark: none
+ * @Version: 1.0
+ */
public class Note {
private ContentValues mNoteDiffValues;
private NoteData mNoteData;
private static final String TAG = "Note";
/**
- * Create a new note id for adding a new note to databases
+ * @method getNewNoteId
+ * @description 获取新的笔记ID,用于向数据库中添加新的笔记
+ * @date: 12/20/2023 11:23 PM
+ * @author: YangYizhe
+ * @param folderId 文件夹Id
+ * @return noteId 新的笔记Id
*/
public static synchronized long getNewNoteId(Context context, long folderId) {
// Create a new note in the database
+ // 在数据库中创建一个新的笔记
ContentValues values = new ContentValues();
long createdTime = System.currentTimeMillis();
values.put(NoteColumns.CREATED_DATE, createdTime);
@@ -69,37 +85,90 @@ public class Note {
mNoteDiffValues = new ContentValues();
mNoteData = new NoteData();
}
-
+ /**
+ * @method setNoteValue
+ * @description 设置笔记的值
+ * @date: 12/20/2023 11:31 PM
+ * @author: YangYizhe
+ * @param key
+ * @param value
+ */
public void setNoteValue(String key, String value) {
mNoteDiffValues.put(key, value);
mNoteDiffValues.put(NoteColumns.LOCAL_MODIFIED, 1);
mNoteDiffValues.put(NoteColumns.MODIFIED_DATE, System.currentTimeMillis());
}
-
+ /**
+ * @method setTextData
+ * @description 设置文本数据
+ * @date: 12/20/2023 11:31 PM
+ * @author: YangYizhe
+ * @param key
+ * @param value
+ */
public void setTextData(String key, String value) {
mNoteData.setTextData(key, value);
}
-
+ /**
+ * @method setTextDataId
+ * @description 设置文本数据ID
+ * @date: 12/20/2023 11:33 PM
+ * @author: YangYizhe
+ * @param id
+ */
public void setTextDataId(long id) {
mNoteData.setTextDataId(id);
}
-
+ /**
+ * @method getTextDataId
+ * @description 获取文本数据Id
+ * @date: 12/20/2023 11:34 PM
+ * @author: YangYizhe
+ * @return mTextDataId 文本数据Id
+ */
public long getTextDataId() {
return mNoteData.mTextDataId;
}
-
+ /**
+ * @method setCallDataId
+ * @description 设置通话记录数据ID
+ * @date: 12/20/2023 11:35 PM
+ * @author: YangYizhe
+ * @param id 通话记录数据id
+ */
public void setCallDataId(long id) {
mNoteData.setCallDataId(id);
}
-
+ /**
+ * @method setCallData
+ * @description 设置通话记录数据
+ * @date: 12/20/2023 11:36 PM
+ * @author: YangYizhe
+ * @param key
+ * @param value
+ */
public void setCallData(String key, String value) {
mNoteData.setCallData(key, value);
}
-
+ /**
+ * @method isLocalModified
+ * @description 判断笔记是否有本地修改
+ * @date: 12/20/2023 11:38 PM
+ * @author: YangYizhe
+ * @return bool 是否有本地修改
+ */
public boolean isLocalModified() {
return mNoteDiffValues.size() > 0 || mNoteData.isLocalModified();
}
-
+ /**
+ * @method syncNote
+ * @description 同步笔记,将本地修改的数据同步到服务器
+ * @date: 12/20/2023 11:42 PM
+ * @author: YangYizhe
+ * @param context 上下文对象
+ * @param noteId 笔记ID
+ * @return bool 是否同步成功
+ */
public boolean syncNote(Context context, long noteId) {
if (noteId <= 0) {
throw new IllegalArgumentException("Wrong note id:" + noteId);
diff --git a/src/Notes/app/src/main/java/net/micode/notes/model/WorkingNote.java b/src/Notes/app/src/main/java/net/micode/notes/model/WorkingNote.java
index be081e4..31061f9 100644
--- a/src/Notes/app/src/main/java/net/micode/notes/model/WorkingNote.java
+++ b/src/Notes/app/src/main/java/net/micode/notes/model/WorkingNote.java
@@ -31,7 +31,17 @@ import net.micode.notes.data.Notes.NoteColumns;
import net.micode.notes.data.Notes.TextNote;
import net.micode.notes.tool.ResourceParser.NoteBgResources;
-
+/**
+ * @Package: net.micode.notes.model
+ * @ClassName: WorkingNote
+ * @Description:
+ * 工作笔记类,用于表示一条工作笔记的信息
+ * Note 类是一个基本的笔记类,包含了笔记的基本信息,如标题、内容等
+ * WorkingNote 类则是在 Note 类的基础上进行扩展,增加了一些与工作笔记相关的属性和方法,例如提醒日期、背景颜色、小部件等。
+ * @Author: YangYizhe
+ * @CreateDate: 12/20/2023 11:48 PM
+ * @Version: 1.0
+ */
public class WorkingNote {
// Note for the working note
private Note mNote;
@@ -59,7 +69,9 @@ public class WorkingNote {
private static final String TAG = "WorkingNote";
private boolean mIsDeleted;
-
+ /**
+ * 笔记设置状态变化监听器
+ */
private NoteSettingChangedListener mNoteSettingStatusListener;
public static final String[] DATA_PROJECTION = new String[] {
@@ -102,6 +114,14 @@ public class WorkingNote {
private static final int NOTE_MODIFIED_DATE_COLUMN = 5;
// New note construct
+ /**
+ * @method WorkingNote
+ * @description 构造方法,创建一个新的工作笔记
+ * @date: 12/20/2023 11:54 PM
+ * @author: YangYizhe
+ * @param context 上下文环境
+ * @param folderId 笔记所属的文件夹ID
+ */
private WorkingNote(Context context, long folderId) {
mContext = context;
mAlertDate = 0;
@@ -113,7 +133,15 @@ public class WorkingNote {
mMode = 0;
mWidgetType = Notes.TYPE_WIDGET_INVALIDE;
}
-
+ /**
+ * @method WorkingNote
+ * @description 构造方法,加载一个已存在的工作笔记
+ * @date: 12/20/2023 11:54 PM
+ * @author: YangYizhe
+ * @param context 上下文环境
+ * @param noteId 笔记的ID
+ * @param folderId 笔记所属的文件夹ID
+ */
// Existing note construct
private WorkingNote(Context context, long noteId, long folderId) {
mContext = context;
@@ -123,7 +151,12 @@ public class WorkingNote {
mNote = new Note();
loadNote();
}
-
+ /**
+ * @method loadNote
+ * @description 加载笔记的详细信息
+ * @date: 12/20/2023 11:55 PM
+ * @author: YangYizhe
+ */
private void loadNote() {
Cursor cursor = mContext.getContentResolver().query(
ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, mNoteId), NOTE_PROJECTION, null,
@@ -145,7 +178,12 @@ public class WorkingNote {
}
loadNoteData();
}
-
+ /**
+ * @method loadNoteData
+ * @description 加载笔记的Data
+ * @date: 12/20/2023 11:55 PM
+ * @author: YangYizhe
+ */
private void loadNoteData() {
Cursor cursor = mContext.getContentResolver().query(Notes.CONTENT_DATA_URI, DATA_PROJECTION,
DataColumns.NOTE_ID + "=?", new String[] {
@@ -173,7 +211,18 @@ public class WorkingNote {
throw new IllegalArgumentException("Unable to find note's data with id " + mNoteId);
}
}
-
+ /**
+ * @method createEmptyNote
+ * @description 创建一个空的工作笔记
+ * @date: 12/20/2023 11:56 PM
+ * @author: YangYizhe
+ * @param context 上下文环境
+ * @param folderId 笔记所属的文件夹ID
+ * @param widgetId 笔记的小部件ID
+ * @param widgetType 笔记的小部件类型
+ * @param defaultBgColorId 笔记的默认背景颜色ID
+ * @return note 创建的空的工作笔记对象
+ */
public static WorkingNote createEmptyNote(Context context, long folderId, int widgetId,
int widgetType, int defaultBgColorId) {
WorkingNote note = new WorkingNote(context, folderId);
diff --git a/src/Notes/app/src/main/java/net/micode/notes/ui/AlarmAlertActivity.java b/src/Notes/app/src/main/java/net/micode/notes/ui/AlarmAlertActivity.java
index 5bf372d..e6a9d73 100644
--- a/src/Notes/app/src/main/java/net/micode/notes/ui/AlarmAlertActivity.java
+++ b/src/Notes/app/src/main/java/net/micode/notes/ui/AlarmAlertActivity.java
@@ -22,69 +22,71 @@ import net.micode.notes.data.Notes;
import net.micode.notes.tool.DataUtils;
import java.io.IOException;
-
+/**
+ * @Package: net.micode.notes.ui
+ * @ClassName: AlarmAlertActivity
+ * @Description: 闹钟提醒界面
+ * @Author: YangYizhe
+ * @CreateDate: 12/21/2023 12:02 AM
+ * @Version: 1.0
+ */
public class AlarmAlertActivity extends Activity implements OnClickListener, OnDismissListener {
- private long mNoteId; //文本在数据库存储中的ID号
+ private long mNoteId; //文本在数据库存储中的ID号
private String mSnippet; //闹钟提示时出现的文本片段
private static final int SNIPPET_PREW_MAX_LEN = 60;
MediaPlayer mPlayer;
-
+ /**
+ * @method onCreate
+ * @description 当 Activity 创建时调用的生命周期方法
+ * @date: 12/21/2023 12:05 AM
+ * @author: YangYizhe
+ * @param savedInstanceState 保存 Activity 状态的 Bundle 对象
+ * @return null
+ */
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- //Bundle类型的数据与Map类型的数据相似,都是以key-value的形式存储数据的
- //onsaveInstanceState方法是用来保存Activity的状态的
- //能从onCreate的参数savedInsanceState中获得状态数据
+ // 设置界面显示——无标题
requestWindowFeature(Window.FEATURE_NO_TITLE);
- //界面显示——无标题
final Window win = getWindow();
+ // 设置窗体属性——在锁屏时显示
win.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
if (!isScreenOn()) {
+ // 设置窗体属性——保持点亮、点亮屏幕、允许点亮时解锁
win.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
- //保持窗体点亮
| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
- //将窗体点亮
| WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON
- //允许窗体点亮时锁屏
| WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR);
- }//在手机锁屏后如果到了闹钟提示时间,点亮屏幕
+ }
+ // 获取传递的 Intent
Intent intent = getIntent();
try {
+ // 从 Intent 中获取数据并处理——获取标签 ID
mNoteId = Long.valueOf(intent.getData().getPathSegments().get(1));
+ // 根据 ID 从数据库中获取标签内容
mSnippet = DataUtils.getSnippetById(this.getContentResolver(), mNoteId);
- //根据ID从数据库中获取标签的内容;
- //getContentResolver()是实现数据共享,实例存储。
+ // 判断标签片段是否达到符合长度
mSnippet = mSnippet.length() > SNIPPET_PREW_MAX_LEN ? mSnippet.substring(0,
SNIPPET_PREW_MAX_LEN) + getResources().getString(R.string.notelist_string_info)
: mSnippet;
- //判断标签片段是否达到符合长度
} catch (IllegalArgumentException e) {
e.printStackTrace();
return;
}
- /*
- try
- {
- // 代码区
- }
- catch(Exception e)
- {
- // 异常处理
- }
- 代码区如果有错误,就会返回所写异常的处理。*/
+
mPlayer = new MediaPlayer();
if (DataUtils.visibleInNoteDatabase(getContentResolver(), mNoteId, Notes.TYPE_NOTE)) {
+ // 显示对话框
showActionDialog();
- //弹出对话框
+ // 播放闹钟提示音
playAlarmSound();
- //闹钟提示音激发
} else {
+ // 结束当前 Activity
finish();
- //完成闹钟动作
}
}
@@ -135,10 +137,11 @@ public class AlarmAlertActivity extends Activity implements OnClickListener, OnD
private void showActionDialog() {
AlertDialog.Builder dialog = new AlertDialog.Builder(this);
- //AlertDialog的构造方法全部是Protected的
- //所以不能直接通过new一个AlertDialog来创建出一个AlertDialog。
- //要创建一个AlertDialog,就要用到AlertDialog.Builder中的create()方法
- //如这里的dialog就是新建了一个AlertDialog
+ /* AlertDialog的构造方法全部是Protected的
+ * 所以不能直接通过new一个AlertDialog来创建出一个AlertDialog。
+ * 要创建一个AlertDialog,就要用到AlertDialog.Builder中的create()方法
+ * 如这里的dialog就是新建了一个AlertDialog
+ */
dialog.setTitle(R.string.app_name);
//为对话框设置标题
dialog.setMessage(mSnippet);
diff --git a/src/Notes/app/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java b/src/Notes/app/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java
index 4163ccd..7be84dc 100644
--- a/src/Notes/app/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java
+++ b/src/Notes/app/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java
@@ -11,7 +11,16 @@ import android.database.Cursor;
import net.micode.notes.data.Notes;
import net.micode.notes.data.Notes.NoteColumns;
-
+/**
+ * @Package: net.micode.notes.ui
+ * @ClassName: AlarmInitReceiver
+ * @Description:
+ * AlarmInitReceiver 是一个广播接收器(BroadcastReceiver)的类
+ * 广播接收器是 Android 中常用的一种组件,用于接收并处理系统或应用发送的广播消息
+ * @Author: YangYizhe
+ * @CreateDate: 12/21/2023 12:09 AM
+ * @Version: 1.0
+ */
public class AlarmInitReceiver extends BroadcastReceiver {
private static final String [] PROJECTION = new String [] {
@@ -49,8 +58,5 @@ public class AlarmInitReceiver extends BroadcastReceiver {
}
c.close();
}
- //然而通过网上查找资料发现,对于闹钟机制的启动,通常需要上面的几个步骤
- //如新建Intent、PendingIntent以及AlarmManager等
- //这里就是根据数据库里的闹钟时间创建一个闹钟机制
}
}
\ No newline at end of file
diff --git a/src/Notes/app/src/main/java/net/micode/notes/ui/AlarmReceiver.java b/src/Notes/app/src/main/java/net/micode/notes/ui/AlarmReceiver.java
index 6e22aff..a4c7120 100644
--- a/src/Notes/app/src/main/java/net/micode/notes/ui/AlarmReceiver.java
+++ b/src/Notes/app/src/main/java/net/micode/notes/ui/AlarmReceiver.java
@@ -3,7 +3,17 @@ package net.micode.notes.ui;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
-
+/**
+ * @Package: net.micode.notes.ui
+ * @ClassName: AlarmReceiver
+ * @Description:
+ * @Author: YangYizhe
+ * @CreateDate: 12/17/2023 10:02 AM
+ * @UpdateUser: none
+ * @UpdateDate: 12/17/2023 10:02 AM
+ * @UpdateRemark: none
+ * @Version: 1.0
+ */
public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
diff --git a/src/Notes/app/src/main/java/net/micode/notes/ui/DateTimePicker.java b/src/Notes/app/src/main/java/net/micode/notes/ui/DateTimePicker.java
index 8d74062..bc0485b 100644
--- a/src/Notes/app/src/main/java/net/micode/notes/ui/DateTimePicker.java
+++ b/src/Notes/app/src/main/java/net/micode/notes/ui/DateTimePicker.java
@@ -11,10 +11,22 @@ import android.text.format.DateFormat;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.NumberPicker;
-
+/**
+ * @Package: net.micode.notes.ui
+ * @ClassName: DateTimePicker
+ * @Description: 继承自FrameLayout,实现了日期和时间的选择功能
+ * 提供一个用户界面,让用户可以方便地选择日期和时间,并且能够监听用户对日期和时间的改变
+ * 构造方法,包括默认构造方法和带参数的构造方法,用于初始化日期选择器的界面和属性;
+ * 一系列的回调方法,用于监听日期和时间的改变,包括日期选择、小时选择、分钟选择、上午/下午选择等;
+ * 一些公开的接口方法,用于设置当前日期、时间,设置24小时模式或12小时模式的切换等;
+ * 辅助方法,用于更新日期、小时、上午/下午选择器的界面显示和属性;
+ * 回调接口OnDateTimeChangedListener,用于监听日期和时间的改变事件。
+ * @Author: YangYizhe
+ * @CreateDate: 12/21/2023 12:18 AM
+ * @Version: 1.0
+ */
public class DateTimePicker extends FrameLayout {
//FrameLayout是布局模板之一
- //所有的子元素全部在屏幕的右上方
private static final boolean DEFAULT_ENABLE_STATE = true;
private static final int HOURS_IN_HALF_DAY = 12;
@@ -30,15 +42,17 @@ public class DateTimePicker extends FrameLayout {
private static final int MINUT_SPINNER_MAX_VAL = 59;
private static final int AMPM_SPINNER_MIN_VAL = 0;
private static final int AMPM_SPINNER_MAX_VAL = 1;
- //初始化控件
+ /**
+ * 初始化控件
+ * NumberPicker是数字选择器
+ * 这里定义的四个变量全部是在设置闹钟时需要选择的变量(如日期、时、分、上午或者下午)
+ */
private final NumberPicker mDateSpinner;
private final NumberPicker mHourSpinner;
private final NumberPicker mMinuteSpinner;
private final NumberPicker mAmPmSpinner;
- //NumberPicker是数字选择器
- //这里定义的四个变量全部是在设置闹钟时需要选择的变量(如日期、时、分、上午或者下午)
- private Calendar mDate;
//定义了Calendar类型的变量mDate,用于操作时间
+ private Calendar mDate;
private String[] mDateDisplayValues = new String[DAYS_IN_ALL_WEEK];
private boolean mIsAm;
@@ -59,7 +73,7 @@ public class DateTimePicker extends FrameLayout {
onDateTimeChanged();
}
};//OnValueChangeListener,这是时间改变监听器,这里主要是对日期的监听
- //将现在日期的值传递给mDate;updateDateControl是同步操作
+
private NumberPicker.OnValueChangeListener mOnHourChangedListener = new NumberPicker.OnValueChangeListener() {
//这里是对 小时(Hour) 的监听
@@ -162,14 +176,18 @@ public class DateTimePicker extends FrameLayout {
void onDateTimeChanged(DateTimePicker view, int year, int month,
int dayOfMonth, int hourOfDay, int minute);
}
-
+ /**
+ * 构造方法
+ */
public DateTimePicker(Context context) {
+ //通过对数据库的访问,获取当前的系统时间
this(context, System.currentTimeMillis());
- }//通过对数据库的访问,获取当前的系统时间
+ }
public DateTimePicker(Context context, long date) {
+ //上面函数的得到的是一个天文数字(1970至今的秒数),需要DateFormat将其变得有意义
this(context, date, DateFormat.is24HourFormat(context));
- }//上面函数的得到的是一个天文数字(1970至今的秒数),需要DateFormat将其变得有意义
+ }
public DateTimePicker(Context context, long date, boolean is24HourView) {
super(context);
@@ -217,6 +235,18 @@ public class DateTimePicker extends FrameLayout {
mInitialising = false;
}
+ /**
+ * @method setEnabled
+ * @description
+ * 用于设置是否启用日期选择器控件的功能
+ * 先通过传入的参数enabled判断是否需要改变控件的启用状态。
+ * 如果传入的参数和当前的启用状态相同,则直接返回,不进行任何操作
+ * 如果传入的参数和当前的启用状态不同,则调用父类的setEnabled方法,来设置整个日期选择器控件的启用状态
+ * 分别设置日期选择、分钟选择、小时选择、上午/下午选择这几个子控件的启用状态,即调用对应的setEnabled方法,并将enabled参数传入
+ * @date: 12/21/2023 12:27 AM
+ * @author: YangYizhe
+ * @param enabled
+ */
@Override
public void setEnabled(boolean enabled) {
if (mIsEnabled == enabled) {
@@ -229,9 +259,6 @@ public class DateTimePicker extends FrameLayout {
mAmPmSpinner.setEnabled(enabled);
mIsEnabled = enabled;
}
- //存在疑问!!!!!!!!!!!!!setEnabled的作用
- //下面的代码通过原程序的注释已经比较清晰,另外可以通过函数名来判断
- //下面的各函数主要是对上面代码引用到的各函数功能的实现
@Override
public boolean isEnabled() {
return mIsEnabled;
@@ -256,7 +283,7 @@ public class DateTimePicker extends FrameLayout {
cal.setTimeInMillis(date);
setCurrentDate(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH),
cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE));
- }//实现函数功能——设置当前的时间,参数是date
+ }
/**
* Set the current date
@@ -274,14 +301,13 @@ public class DateTimePicker extends FrameLayout {
setCurrentDay(dayOfMonth);
setCurrentHour(hourOfDay);
setCurrentMinute(minute);
- }//实现函数功能——设置当前的时间,参数是各详细的变量
+ }
/**
* Get current year
*
* @return The current year
*/
- //下面是得到year、month、day等值
public int getCurrentYear() {
return mDate.get(Calendar.YEAR);
}
@@ -439,7 +465,10 @@ public class DateTimePicker extends FrameLayout {
setCurrentHour(hour);
updateAmPmControl();
}
-
+ /**
+ * 几个辅助方法,用于更新日期、上午/下午选择和小时选择控件的显示和属性
+ * 这些方法的作用是在选择器控件显示之前或用户改变了日期、时间模式时,更新相应控件的显示和属性,以保持界面的正确性和一致性
+ */
private void updateDateControl() {
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(mDate.getTimeInMillis());
@@ -452,7 +481,7 @@ public class DateTimePicker extends FrameLayout {
mDateSpinner.setDisplayedValues(mDateDisplayValues);
mDateSpinner.setValue(DAYS_IN_ALL_WEEK / 2);
mDateSpinner.invalidate();
- }// 对于星期几的算法
+ }
private void updateAmPmControl() {
if (mIs24HourView) {
@@ -461,7 +490,7 @@ public class DateTimePicker extends FrameLayout {
int index = mIsAm ? Calendar.AM : Calendar.PM;
mAmPmSpinner.setValue(index);
mAmPmSpinner.setVisibility(View.VISIBLE);
- }// 对于上下午操作的算法
+ }
}
private void updateHourControl() {
@@ -471,7 +500,7 @@ public class DateTimePicker extends FrameLayout {
} else {
mHourSpinner.setMinValue(HOUR_SPINNER_MIN_VAL_12_HOUR_VIEW);
mHourSpinner.setMaxValue(HOUR_SPINNER_MAX_VAL_12_HOUR_VIEW);
- }// 对与小时的算法
+ }
}
/**
diff --git a/src/Notes/app/src/main/java/net/micode/notes/ui/DateTimePickerDialog.java b/src/Notes/app/src/main/java/net/micode/notes/ui/DateTimePickerDialog.java
index d6ad95e..c979aec 100644
--- a/src/Notes/app/src/main/java/net/micode/notes/ui/DateTimePickerDialog.java
+++ b/src/Notes/app/src/main/java/net/micode/notes/ui/DateTimePickerDialog.java
@@ -12,29 +12,45 @@ import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.text.format.DateFormat;
import android.text.format.DateUtils;
-
+/**
+ * @Package: net.micode.notes.ui
+ * @ClassName: DateTimePickerDialog
+ * @Description:
+ * DateTimePickerDialog是一个自定义对话框,允许用户选择日期和时间。
+ * 它继承自AlertDialog类,并实现OnClickListener接口。
+ * 对话框包含一个DateTimePicker控件,用于选择日期和时间。
+ * 通过OnDateTimeSetListener接口将选择的日期和时间传递给监听器。
+ * 对话框还提供了设置24小时制和使用选择的日期更新对话框标题的方法。
+ * onClick方法处理按钮点击事件,并在日期和时间设置完成时通知监听器。
+ * @Author: YangYizhe
+ * @CreateDate: 12/21/2023 12:32 AM
+ * @Version: 1.0
+ */
public class DateTimePickerDialog extends AlertDialog implements OnClickListener {
private Calendar mDate = Calendar.getInstance();
- //创建一个Calendar类型的变量 mDate,方便时间的操作
private boolean mIs24HourView;
private OnDateTimeSetListener mOnDateTimeSetListener;
- //声明一个时间日期滚动选择控件 mOnDateTimeSetListener
private DateTimePicker mDateTimePicker;
- //DateTimePicker控件,控件一般用于让用户可以从日期列表中选择单个值。
- //运行时,单击控件边上的下拉箭头,会显示为两个部分:一个下拉列表,一个用于选择日期的
+ /**
+ * 用于接收用户设置的日期和时间的接口。
+ */
public interface OnDateTimeSetListener {
void OnDateTimeSet(AlertDialog dialog, long date);
}
+ /**
+ * 构造一个新的DateTimePickerDialog。
+ *
+ * @param context 上下文环境。
+ * @param date 要在对话框中显示的初始日期。
+ */
public DateTimePickerDialog(Context context, long date) {
- //对该界面对话框的实例化
super(context);
- //对数据库的操作
mDateTimePicker = new DateTimePicker(context);
setView(mDateTimePicker);
- //添加一个子视图
+
mDateTimePicker.setOnDateTimeChangedListener(new OnDateTimeChangedListener() {
public void onDateTimeChanged(DateTimePicker view, int year, int month,
int dayOfMonth, int hourOfDay, int minute) {
@@ -43,45 +59,64 @@ public class DateTimePickerDialog extends AlertDialog implements OnClickListener
mDate.set(Calendar.DAY_OF_MONTH, dayOfMonth);
mDate.set(Calendar.HOUR_OF_DAY, hourOfDay);
mDate.set(Calendar.MINUTE, minute);
- //将视图中的各选项设置为系统当前时间
updateTitle(mDate.getTimeInMillis());
}
});
+
mDate.setTimeInMillis(date);
- //得到系统时间
mDate.set(Calendar.SECOND, 0);
- //将秒数设置为0
mDateTimePicker.setCurrentDate(mDate.getTimeInMillis());
+
setButton(context.getString(R.string.datetime_dialog_ok), this);
- setButton2(context.getString(R.string.datetime_dialog_cancel), (OnClickListener)null);
- //设置按钮
+ setButton2(context.getString(R.string.datetime_dialog_cancel), (OnClickListener) null);
+
set24HourView(DateFormat.is24HourFormat(this.getContext()));
- //时间标准化打印
updateTitle(mDate.getTimeInMillis());
}
+ /**
+ * 设置对话框是否为24小时制。
+ *
+ * @param is24HourView 如果对话框为24小时制,则为true;否则为false。
+ */
public void set24HourView(boolean is24HourView) {
mIs24HourView = is24HourView;
}
+ /**
+ * 设置日期和时间设置监听器。
+ *
+ * @param callBack 要通知的监听器。
+ */
public void setOnDateTimeSetListener(OnDateTimeSetListener callBack) {
mOnDateTimeSetListener = callBack;
- }//将时间日期滚动选择控件实例化
+ }
+ /**
+ * 使用指定的日期更新对话框标题。
+ *
+ * @param date 要显示在标题中的日期。
+ */
private void updateTitle(long date) {
int flag =
DateUtils.FORMAT_SHOW_YEAR |
DateUtils.FORMAT_SHOW_DATE |
DateUtils.FORMAT_SHOW_TIME;
flag |= mIs24HourView ? DateUtils.FORMAT_24HOUR : DateUtils.FORMAT_24HOUR;
+
setTitle(DateUtils.formatDateTime(this.getContext(), date, flag));
- }//android开发中常见日期管理工具类(API)——DateUtils:按照上下午显示时间
+ }
+ /**
+ * 处理按钮点击事件。
+ *
+ * @param arg0 接收到点击事件的对话框。
+ * @param arg1 被点击的按钮。
+ */
public void onClick(DialogInterface arg0, int arg1) {
if (mOnDateTimeSetListener != null) {
mOnDateTimeSetListener.OnDateTimeSet(this, mDate.getTimeInMillis());
}
- }//第一个参数arg0是接收到点击事件的对话框
- //第二个参数arg1是该对话框上的按钮
+ }
}
\ No newline at end of file
diff --git a/src/Notes/app/src/main/java/net/micode/notes/ui/DropdownMenu.java b/src/Notes/app/src/main/java/net/micode/notes/ui/DropdownMenu.java
index c831a9b..b437d41 100644
--- a/src/Notes/app/src/main/java/net/micode/notes/ui/DropdownMenu.java
+++ b/src/Notes/app/src/main/java/net/micode/notes/ui/DropdownMenu.java
@@ -10,7 +10,20 @@ import android.widget.PopupMenu;
import android.widget.PopupMenu.OnMenuItemClickListener;
import net.micode.notes.R;
-
+/**
+ * @Package: net.micode.notes.ui
+ * @ClassName: DropdownMenu
+ * @Description:
+ * DropdownMenu是一个自定义下拉菜单控件。
+ * 它使用Button作为触发器,通过PopupMenu显示菜单选项。
+ * 构造函数接收一个上下文环境、一个Button和菜单资源的ID。
+ * 通过setOnDropdownMenuItemClickListener方法设置菜单选项的点击监听器。
+ * 可以通过findItem方法查找特定的菜单选项。
+ * 通过setTitle方法设置下拉菜单的标题
+ * @Author: YangYizhe
+ * @CreateDate: 12/21/2023 12:36 AM
+ * @Version: 1.0
+ */
public class DropdownMenu {
private Button mButton;
private PopupMenu mPopupMenu;
@@ -36,7 +49,7 @@ public class DropdownMenu {
public void setOnDropdownMenuItemClickListener(OnMenuItemClickListener listener) {
if (mPopupMenu != null) {
mPopupMenu.setOnMenuItemClickListener(listener);
- }//设置菜单的监听
+ }
}
public MenuItem findItem(int id) {
diff --git a/src/Notes/app/src/main/java/net/micode/notes/ui/FoldersListAdapter.java b/src/Notes/app/src/main/java/net/micode/notes/ui/FoldersListAdapter.java
index b6867fb..8c3a217 100644
--- a/src/Notes/app/src/main/java/net/micode/notes/ui/FoldersListAdapter.java
+++ b/src/Notes/app/src/main/java/net/micode/notes/ui/FoldersListAdapter.java
@@ -12,7 +12,19 @@ import net.micode.notes.R;
import net.micode.notes.data.Notes;
import net.micode.notes.data.Notes.NoteColumns;
-
+/**
+ * @Package: net.micode.notes.ui
+ * @ClassName: FoldersListAdapter
+ * @Description:
+ * FoldersListAdapter是一个用于展示便签文件夹的列表适配器。
+ * 它继承了CursorAdapter类,主要负责便签数据库和用户界面的交互。
+ * 通过PROJECTION数组定义了需要从数据库中获取的数据列。
+ * 它通过newView方法创建文件夹视图,并通过bindView方法将布局文件和数据绑定在一起。
+ * getFolderName方法可以根据位置获取对应便签文件夹的名称
+ * @Author: YangYizhe
+ * @CreateDate: 12/21/2023 12:37 AM
+ * @Version: 1.0
+ */
public class FoldersListAdapter extends CursorAdapter {
//CursorAdapter是Cursor和ListView的接口
//FoldersListAdapter继承了CursorAdapter的类
diff --git a/src/Notes/app/src/main/java/net/micode/notes/ui/NoteEditActivity.java b/src/Notes/app/src/main/java/net/micode/notes/ui/NoteEditActivity.java
index e56bf44..eea7cbd 100644
--- a/src/Notes/app/src/main/java/net/micode/notes/ui/NoteEditActivity.java
+++ b/src/Notes/app/src/main/java/net/micode/notes/ui/NoteEditActivity.java
@@ -55,11 +55,21 @@ import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-
+/**
+ * @Package: net.micode.notes.ui
+ * @ClassName: NoteEditActivity
+ * @Description:
+ * 该类主要是针对标签的编辑
+ * 继承了系统内部许多和监听有关的类
+ * @Author: YangYizhe
+ * @CreateDate: 12/21/2023 12:47 AM
+ * @Version: 1.0
+ */
public class NoteEditActivity extends Activity implements OnClickListener,
NoteSettingChangedListener, OnTextViewChangeListener {
- //该类主要是针对标签的编辑
- //继承了系统内部许多和监听有关的类
+ /**
+ * 类属性的定义
+ */
private class HeadViewHolder {
public TextView tvModified;
@@ -69,7 +79,6 @@ public class NoteEditActivity extends Activity implements OnClickListener,
public ImageView ibSetBgColor;
}
- //使用Map实现数据存储
private static final Map sBgSelectorBtnsMap = new HashMap();
static {
sBgSelectorBtnsMap.put(R.id.iv_bg_yellow, ResourceParser.YELLOW);
@@ -105,26 +114,15 @@ public class NoteEditActivity extends Activity implements OnClickListener,
}
private static final String TAG = "NoteEditActivity";
-
private HeadViewHolder mNoteHeaderHolder;
-
private View mHeadViewPanel;
- //私有化一个界面操作mHeadViewPanel,对表头的操作
private View mNoteBgColorSelector;
- //私有化一个界面操作mNoteBgColorSelector,对背景颜色的操作
private View mFontSizeSelector;
- //私有化一个界面操作mFontSizeSelector,对标签字体的操作
private EditText mNoteEditor;
- //声明编辑控件,对文本操作
private View mNoteEditorPanel;
- //私有化一个界面操作mNoteEditorPanel,文本编辑的控制板
public WorkingNote mWorkingNote;
- //对模板WorkingNote的初始化
private SharedPreferences mSharedPrefs;
- //私有化SharedPreferences的数据存储方式
- //它的本质是基于XML文件存储key-value键值对数据
private int mFontSizeId;
- //用于操作字体的大小
private static final String PREFERENCE_FONT_SIZE = "pref_font_size";
@@ -137,12 +135,13 @@ public class NoteEditActivity extends Activity implements OnClickListener,
private String mUserQuery;
private Pattern mPattern;
-
+ /**
+ *在 Activity 创建时进行一些初始化工作,包括设置布局、初始化状态和资源等操作
+ */
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.note_edit);
- //对数据库的访问操作
if (savedInstanceState == null && !initActivityState(getIntent())) {
finish();
return;
@@ -165,7 +164,7 @@ public class NoteEditActivity extends Activity implements OnClickListener,
return;
}
Log.d(TAG, "Restoring from killed activity");
- }//为防止内存不足时程序的终止,在这里有一个保存现场的函数
+ }
}
@@ -178,7 +177,6 @@ public class NoteEditActivity extends Activity implements OnClickListener,
if (TextUtils.equals(Intent.ACTION_VIEW, intent.getAction())) {
long noteId = intent.getLongExtra(Intent.EXTRA_UID, 0);
mUserQuery = "";
- //如果用户实例化标签时,系统并未给出标签ID
/**
* Starting from the searched result
*/
@@ -206,14 +204,10 @@ public class NoteEditActivity extends Activity implements OnClickListener,
return false;
}
}
- //setSoftInputMode——软键盘输入模式
getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN
| WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
} else if(TextUtils.equals(Intent.ACTION_INSERT_OR_EDIT, intent.getAction())) {
- // intent.getAction()
- // 大多用于broadcast发送广播时给机制(intent)设置一个action,就是一个字符串
- // 用户可以通过receive(接受)intent,通过 getAction得到的字符串,来决定做什么
long folderId = intent.getLongExtra(Notes.INTENT_EXTRA_FOLDER_ID, 0);
int widgetId = intent.getIntExtra(Notes.INTENT_EXTRA_WIDGET_ID,
AppWidgetManager.INVALID_APPWIDGET_ID);
@@ -221,8 +215,6 @@ public class NoteEditActivity extends Activity implements OnClickListener,
Notes.TYPE_WIDGET_INVALIDE);
int bgResId = intent.getIntExtra(Notes.INTENT_EXTRA_BACKGROUND_ID,
ResourceParser.getDefaultBgId(this));
- // intent.getInt(Long、String)Extra是对各变量的语法分析
- // Parse call-record note
String phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
long callDate = intent.getLongExtra(Notes.INTENT_EXTRA_CALL_DATE, 0);
if (callDate != 0 && phoneNumber != null) {
@@ -238,17 +230,15 @@ public class NoteEditActivity extends Activity implements OnClickListener,
finish();
return false;
}
- //将电话号码与手机的号码簿相关
} else {
mWorkingNote = WorkingNote.createEmptyNote(this, folderId, widgetId,
widgetType, bgResId);
mWorkingNote.convertToCallNote(phoneNumber, callDate);
- //
}
} else {
mWorkingNote = WorkingNote.createEmptyNote(this, folderId, widgetId, widgetType,
bgResId);
- }//创建一个新的WorkingNote
+ }
getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE
@@ -271,10 +261,8 @@ public class NoteEditActivity extends Activity implements OnClickListener,
private void initNoteScreen() {
- //对界面的初始化操作
mNoteEditor.setTextAppearance(this, TextAppearanceResources
.getTexAppearanceResource(mFontSizeId));
- //设置外观
if (mWorkingNote.getCheckListMode() == TextNote.MODE_CHECK_LIST) {
switchToListMode(mWorkingNote.getContent());
} else {
@@ -299,21 +287,18 @@ public class NoteEditActivity extends Activity implements OnClickListener,
showAlertHeader();
}
- //设置闹钟的显示
private void showAlertHeader() {
if (mWorkingNote.hasClockAlert()) {
long time = System.currentTimeMillis();
if (time > mWorkingNote.getAlertDate()) {
mNoteHeaderHolder.tvAlertDate.setText(R.string.note_alert_expired);
}
- //如果系统时间大于了闹钟设置的时间,那么闹钟失效
else {
mNoteHeaderHolder.tvAlertDate.setText(DateUtils.getRelativeTimeSpanString(
mWorkingNote.getAlertDate(), time, DateUtils.MINUTE_IN_MILLIS));
}
mNoteHeaderHolder.tvAlertDate.setVisibility(View.VISIBLE);
mNoteHeaderHolder.ivAlertIcon.setVisibility(View.VISIBLE);
- //显示闹钟开启的图标
} else {
mNoteHeaderHolder.tvAlertDate.setVisibility(View.GONE);
mNoteHeaderHolder.ivAlertIcon.setVisibility(View.GONE);
@@ -337,8 +322,6 @@ public class NoteEditActivity extends Activity implements OnClickListener,
if (!mWorkingNote.existInDatabase()) {
saveNote();
}
- //在创建一个新的标签时,先在数据库中匹配
- //如果不存在,那么先在数据库中存储
outState.putLong(Intent.EXTRA_UID, mWorkingNote.getNoteId());
Log.d(TAG, "Save working note id: " + mWorkingNote.getNoteId() + " onSaveInstanceState");
}
@@ -348,16 +331,16 @@ public class NoteEditActivity extends Activity implements OnClickListener,
&& !inRangeOfView(mNoteBgColorSelector, ev)) {
mNoteBgColorSelector.setVisibility(View.GONE);
return true;
- }//颜色选择器在屏幕上可见
+ }
if (mFontSizeSelector.getVisibility() == View.VISIBLE
&& !inRangeOfView(mFontSizeSelector, ev)) {
mFontSizeSelector.setVisibility(View.GONE);
return true;
- }//字体大小选择器在屏幕上可见
+ }
return super.dispatchTouchEvent(ev);
}
- //对屏幕触控的坐标进行操作
+
private boolean inRangeOfView(View view, MotionEvent ev) {
int []location = new int[2];
view.getLocationOnScreen(location);
@@ -367,7 +350,6 @@ public class NoteEditActivity extends Activity implements OnClickListener,
|| ev.getX() > (x + view.getWidth())
|| ev.getY() < y
|| ev.getY() > (y + view.getHeight()))
- //如果触控的位置超出了给定的范围,返回false
{
return false;
}
@@ -416,7 +398,6 @@ public class NoteEditActivity extends Activity implements OnClickListener,
}
clearSettingState();
}
- //和桌面小工具的同步
private void updateWidget() {
Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
if (mWorkingNote.getWidgetType() == Notes.TYPE_WIDGET_2X) {
@@ -490,7 +471,6 @@ public class NoteEditActivity extends Activity implements OnClickListener,
mNoteEditorPanel.setBackgroundResource(mWorkingNote.getBgColorResId());
mHeadViewPanel.setBackgroundResource(mWorkingNote.getTitleBgResId());
}
- //对选择菜单的准备
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
if (isFinishing()) {
@@ -515,18 +495,12 @@ public class NoteEditActivity extends Activity implements OnClickListener,
}
return true;
}
- /*
- * 函数功能:动态改变菜单选项内容
- * 函数实现:如下注释
- */
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int itemId = item.getItemId();
- //创建便签
if (itemId == R.id.menu_new_note) {
createNewNote();
}
- //删除便签
else if (itemId == R.id.menu_delete) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(getString(R.string.alert_title_delete));
@@ -560,22 +534,15 @@ public class NoteEditActivity extends Activity implements OnClickListener,
return true;
}
- /*
- * 函数功能:建立事件提醒器
- * 函数实现:如下注释
- */
private void setReminder() {
DateTimePickerDialog d = new DateTimePickerDialog(this, System.currentTimeMillis());
- // 建立修改时间日期的对话框
d.setOnDateTimeSetListener(new OnDateTimeSetListener() {
public void OnDateTimeSet(AlertDialog dialog, long date) {
mWorkingNote.setAlertDate(date , true);
//选择提醒的日期
}
});
- //建立时间日期的监听器
d.show();
- //显示对话框
}
@@ -583,14 +550,12 @@ public class NoteEditActivity extends Activity implements OnClickListener,
* Share note to apps that support {@link Intent#ACTION_SEND} action
* and {@text/plain} type
*/
- //共享便签
private void sendTo(Context context, String info) {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_TEXT, info);
intent.setType("text/plain");
context.startActivity(intent);
}
- //创建便签
private void createNewNote() {
// Firstly, save current editing notes
saveNote();
@@ -602,7 +567,6 @@ public class NoteEditActivity extends Activity implements OnClickListener,
intent.putExtra(Notes.INTENT_EXTRA_FOLDER_ID, mWorkingNote.getFolderId());
startActivity(intent);
}
- //删除便签
private void deleteCurrentNote() {
if (mWorkingNote.existInDatabase()) {
HashSet ids = new HashSet();
@@ -624,11 +588,9 @@ public class NoteEditActivity extends Activity implements OnClickListener,
}
mWorkingNote.markDeleted(true);
}
- //判断是否同步
private boolean isSyncMode() {
return NotesPreferenceActivity.getSyncAccountName(this).trim().length() > 0;
}
- //设置提醒时间
public void onClockAlertChanged(long date, boolean set) {
/**
* User could set clock to an unsaved note, so before setting the
@@ -658,11 +620,9 @@ public class NoteEditActivity extends Activity implements OnClickListener,
showToast(R.string.error_note_empty_for_clock);
}
}
- //widget改变更新widget
public void onWidgetChanged() {
updateWidget();
}
- //删除编辑文本框触发的事件
public void onEditTextDelete(int index, String text) {
int childCount = mEditTextList.getChildCount();
if (childCount == 1) {
@@ -688,7 +648,6 @@ public class NoteEditActivity extends Activity implements OnClickListener,
edit.requestFocus();
edit.setSelection(length);
}
- //进入编辑文本框所触发的事件
public void onEditTextEnter(int index, String text) {
/**
* Should not happen, check for debug
@@ -707,9 +666,6 @@ public class NoteEditActivity extends Activity implements OnClickListener,
.setIndex(i);
}
}
- /*
- * 函数功能:切换至列表模式
- */
private void switchToListMode(String text) {
mEditTextList.removeAllViews();
String[] items = text.split("\n");
@@ -726,10 +682,6 @@ public class NoteEditActivity extends Activity implements OnClickListener,
mNoteEditor.setVisibility(View.GONE);
mEditTextList.setVisibility(View.VISIBLE);
}
- /*
- * 函数功能:获取高亮效果的反馈情况
- * 函数实现:如下注释
- */
private Spannable getHighlightQueryResult(String fullText, String userQuery) {
SpannableString spannable = new SpannableString(fullText == null ? "" : fullText);
if (!TextUtils.isEmpty(userQuery)) {
@@ -746,10 +698,6 @@ public class NoteEditActivity extends Activity implements OnClickListener,
}
return spannable;
}
- /*
- * 函数功能:获取列表项
- * 函数实现:如下注释
- */
private View getListItem(String item, int index) {
View view = LayoutInflater.from(this).inflate(R.layout.note_edit_list_item, null);
final NoteEditText edit = (NoteEditText) view.findViewById(R.id.et_edit_text);
@@ -780,10 +728,6 @@ public class NoteEditActivity extends Activity implements OnClickListener,
edit.setText(getHighlightQueryResult(item, mUserQuery));
return view;
}
- /*
- * 函数功能:便签内容发生改变所 触发的事件
- * 函数实现:如下注释
- */
public void onTextChange(int index, boolean hasText) {
if (index >= mEditTextList.getChildCount()) {
Log.e(TAG, "Wrong index, should not happen");
@@ -796,10 +740,6 @@ public class NoteEditActivity extends Activity implements OnClickListener,
}
}
- /*
- * 函数功能:检查模式和列表模式的切换
- * 函数实现:如下注释
- */
public void onCheckListModeChanged(int oldMode, int newMode) {
if (newMode == TextNote.MODE_CHECK_LIST) {
switchToListMode(mNoteEditor.getText().toString());
@@ -816,10 +756,6 @@ public class NoteEditActivity extends Activity implements OnClickListener,
//修改文本编辑器的内容和可见性
}
}
- /*
- * 函数功能:设置勾选选项表并返回是否勾选的标记
- * 函数实现:如下注释
- */
private boolean getWorkingText() {
boolean hasChecked = false;
//初始化check标记
@@ -874,10 +810,6 @@ public class NoteEditActivity extends Activity implements OnClickListener,
return saved;
}
- /*
- * 函数功能:将便签发送至桌面
- * 函数实现:如下注释
- */
private void sendToDesktop() {
/**
* Before send message to home, we should make sure that current
@@ -886,16 +818,12 @@ public class NoteEditActivity extends Activity implements OnClickListener,
*/
if (!mWorkingNote.existInDatabase()) {
saveNote();
- //若不存在数据也就是新的标签就保存起来先
}
if (mWorkingNote.getNoteId() > 0) {
- //若是有内容
Intent sender = new Intent();
Intent shortcutIntent = new Intent(this, NoteEditActivity.class);
- //建立发送到桌面的连接器
shortcutIntent.setAction(Intent.ACTION_VIEW);
- //链接为一个视图
shortcutIntent.putExtra(Intent.EXTRA_UID, mWorkingNote.getNoteId());
sender.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
sender.putExtra(Intent.EXTRA_SHORTCUT_NAME,
@@ -903,12 +831,9 @@ public class NoteEditActivity extends Activity implements OnClickListener,
sender.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
Intent.ShortcutIconResource.fromContext(this, R.drawable.icon_app));
sender.putExtra("duplicate", true);
- //将便签的相关信息都添加到要发送的文件里
sender.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
- //设置sneder的行为是发送
showToast(R.string.info_note_enter_desktop);
sendBroadcast(sender);
- //显示到桌面
} else {
/**
* There is the condition that user has input nothing (the note is
@@ -917,12 +842,8 @@ public class NoteEditActivity extends Activity implements OnClickListener,
*/
Log.e(TAG, "Send to desktop error");
showToast(R.string.error_note_empty_for_send_to_desktop);
- //空便签直接报错
}
}
- /*
- * 函数功能:编辑小图标的标题
- */
private String makeShortcutIconTitle(String content) {
content = content.replace(TAG_CHECKED, "");
content = content.replace(TAG_UNCHECKED, "");
@@ -930,15 +851,9 @@ public class NoteEditActivity extends Activity implements OnClickListener,
SHORTCUT_ICON_TITLE_MAX_LEN) : content;
//直接设置为content中的内容并返回,有勾选和未勾选2种
}
- /*
- * 函数功能:显示提示的视图
- */
private void showToast(int resId) {
showToast(resId, Toast.LENGTH_SHORT);
}
- /*
- * 函数功能:持续显示提示的视图
- */
private void showToast(int resId, int duration) {
Toast.makeText(this, resId, duration).show();
}
diff --git a/src/Notes/app/src/main/java/net/micode/notes/ui/NoteEditText.java b/src/Notes/app/src/main/java/net/micode/notes/ui/NoteEditText.java
index 8f5b468..c935358 100644
--- a/src/Notes/app/src/main/java/net/micode/notes/ui/NoteEditText.java
+++ b/src/Notes/app/src/main/java/net/micode/notes/ui/NoteEditText.java
@@ -37,21 +37,28 @@ import net.micode.notes.R;
import java.util.HashMap;
import java.util.Map;
-//类:便签编辑文本类,继承了Android控件EditText
+/**
+ * @Package: net.micode.notes.ui
+ * @ClassName: NoteEditText
+ * @Description:
+ * @Author: YangYizhe
+ * @CreateDate: 12/21/2023 12:38 AM
+ * @Version: 1.0
+ */
public class NoteEditText extends EditText {
- //语句:常量标识
+ //常量标识
private static final String TAG = "NoteEditText";
- //语句:声明整型变量,文本索引
+ //声明整型变量,文本索引
private int mIndex;
- //语句:声明整型变量
+ //声明整型变量
private int mSelectionStartBeforeDelete;
- //语句:声明字符串常量,标志电话、网址、邮件
+ //声明字符串常量,标志电话、网址、邮件
private static final String SCHEME_TEL = "tel:" ;
private static final String SCHEME_HTTP = "http:" ;
private static final String SCHEME_EMAIL = "mailto:" ;
- //语句块:设置映射,将文本内容(电话、网址、邮件)做链接处理
+ //设置映射,将文本内容(电话、网址、邮件)做链接处理
private static final Map sSchemaActionResMap = new HashMap();
static {
sSchemaActionResMap.put(SCHEME_TEL, R.string.note_link_tel);
@@ -61,60 +68,75 @@ public class NoteEditText extends EditText {
/**
* Call by the {@link NoteEditActivity} to delete or add edit text
- * 接口:该接口用于实现对TextView组件中的文字信息进行修改
+ * 该接口用于实现对TextView组件中的文字信息进行修改
*/
public interface OnTextViewChangeListener {
/**
* Delete current edit text when {@link KeyEvent#KEYCODE_DEL} happens
* and the text is null
- * 方法:当delete键按下时删除当前编辑的文字块
+ * 当delete键按下时删除当前编辑的文字块
*/
void onEditTextDelete(int index, String text);
/**
* Add edit text after current edit text when {@link KeyEvent#KEYCODE_ENTER}
* happen
- * 方法:当enter键按下时添加一个文字编辑块
+ * 当enter键按下时添加一个文字编辑块
*/
void onEditTextEnter(int index, String text);
/**
* Hide or show item option when text change
- * 方法:当文字发生变化时隐藏或者显示设置
+ * 当文字发生变化时隐藏或者显示设置
*/
void onTextChange(int index, boolean hasText);
}
- //语句:声明文本视图变化监听器
+ //声明文本视图变化监听器
private OnTextViewChangeListener mOnTextViewChangeListener;
- //方法:构造方法,实例化NoteEditText
+ /**
+ * 构造方法,实例化NoteEditText
+ */
public NoteEditText(Context context) {
super(context, null);
mIndex = 0;
}
- //方法:设置索引号
+ //设置索引号
public void setIndex(int index) {
mIndex = index;
}
- //方法:设置文本视图变化监听器
- public void setOnTextViewChangeListener(OnTextViewChangeListener listener) {
+ /**
+ * 设置文本视图变化监听器
+ */
+ public void setOnTextViewChangeListener(OnTextViewChangeListener listener) {
mOnTextViewChangeListener = listener;
}
- //方法:构造方法,是由参数集(文本编辑风格)实例化NoteEditText
- public NoteEditText(Context context, AttributeSet attrs) {
+ /**
+ * 构造方法,是由参数集(文本编辑风格)实例化NoteEditText
+ */
+ public NoteEditText(Context context, AttributeSet attrs) {
super(context, attrs, android.R.attr.editTextStyle);
}
- //方法:构造方法,是由参数集(文本编辑风格、定义风格)实例化NoteEditText
- public NoteEditText(Context context, AttributeSet attrs, int defStyle) {
+ /**
+ * 构造方法,是由参数集(文本编辑风格、定义风格)实例化NoteEditText
+ */
+ public NoteEditText(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
- //方法:监听触摸事件
+ /**
+ * @method onTouchEvent
+ * @description 处理触摸事件,根据触摸点的位置设置光标的位置
+ * @date: 12/21/2023 12:41 AM
+ * @author: YangYizhe
+ * @param
+ * @return
+ */
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
@@ -126,22 +148,19 @@ public class NoteEditText extends EditText {
y -= getTotalPaddingTop();
x += getScrollX();
y += getScrollY();
-
- //语句:获取布局
Layout layout = getLayout();
- //语句:获取纵向的行数
int line = layout.getLineForVertical(y);
- //语句:获取横向的偏移量
int off = layout.getOffsetForHorizontal(line, x);
Selection.setSelection(getText(), off);
break;
}
- //语句:继续调用父类的监听事件方法
return super.onTouchEvent(event);
}
-
/**
- * 方法:监听键盘按键按下
+ * @method onKeyDown
+ * @description 监听键盘按键按下
+ * @date: 12/21/2023 12:40 AM
+ * @author: YangYizhe
* @param keyCode 键盘按键的编码
* @param event 按键事件
* @return boolean
@@ -149,16 +168,12 @@ public class NoteEditText extends EditText {
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
- //语句块:按下回车键
case KeyEvent.KEYCODE_ENTER:
- //语句块:如果文本视图没有变化
if (mOnTextViewChangeListener != null) {
return false;
}
break;
- //语句块:按下删除键
case KeyEvent.KEYCODE_DEL:
- //语句:获取删除文本的开始位置
mSelectionStartBeforeDelete = getSelectionStart();
break;
default:
@@ -167,45 +182,34 @@ public class NoteEditText extends EditText {
return super.onKeyDown(keyCode, event);
}
-
/**
- * 方法:监听按键抬起
+ * @method onKeyUp
+ * @description 监听按键抬起
+ * @date: 12/21/2023 12:39 AM
+ * @author: YangYizhe
* @param keyCode
* @param event
- * @return
*/
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
switch(keyCode) {
- //语句块:抬起删除键
case KeyEvent.KEYCODE_DEL:
- //语句块:如果文本视图发生变化
if (mOnTextViewChangeListener != null) {
- //语句块:选择了删除的文字
if (0 == mSelectionStartBeforeDelete && mIndex != 0) {
- //语句:监听文本的删除
mOnTextViewChangeListener.onEditTextDelete(mIndex, getText().toString());
return true;
}
} else {
- //语句:报告文本视图变化监听器没有设置
Log.d(TAG, "OnTextViewChangeListener was not seted");
}
break;
- //语句块:抬起回车键
case KeyEvent.KEYCODE_ENTER:
- //语句块:如果文本视图发生变化
if (mOnTextViewChangeListener != null) {
- //语句:获取选择区域的起点位置
int selectionStart = getSelectionStart();
- //语句:获取选择区域后面的文本信息
String text = getText().subSequence(selectionStart, length()).toString();
- //语句:实现文本换行的功能
setText(getText().subSequence(0, selectionStart));
- //语句:将选择区域内的文字移到下一行
mOnTextViewChangeListener.onEditTextEnter(mIndex + 1, text);
} else {
- //语句:报告文本视图变化监听器没有设置
Log.d(TAG, "OnTextViewChangeListener was not seted");
}
break;
@@ -216,16 +220,17 @@ public class NoteEditText extends EditText {
}
/**
- * 处理当前视图下的焦点改变事件
+ * @method onFocusChanged
+ * @description 处理当前视图下的焦点改变事件
+ * @date: 12/21/2023 12:39 AM
+ * @author: YangYizhe
* @param focused 代表获得或失去焦点
* @param direction
* @param previouslyFocusedRect 上一个访问的焦点区域
*/
@Override
protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) {
- //语句块:如果文本视图发生变化
if (mOnTextViewChangeListener != null) {
- //语句块:当焦点存在或者当前文本不为空时,监听文本的变化
if (!focused && TextUtils.isEmpty(getText())) {
mOnTextViewChangeListener.onTextChange(mIndex, false);
} else {
@@ -236,12 +241,16 @@ public class NoteEditText extends EditText {
}
/**
- * 方法:创建环境菜单
+ * @method onCreateContextMenu
+ * @description
+ * @date: 12/21/2023 12:39 AM
+ * @author: YangYizhe
+ * @param
+ * @return
*/
@Override
protected void onCreateContextMenu(ContextMenu menu) {
if (getText() instanceof Spanned) {
- //语句块:获取高亮元素
int selStart = getSelectionStart();
int selEnd = getSelectionEnd();
@@ -249,7 +258,6 @@ public class NoteEditText extends EditText {
int max = Math.max(selStart, selEnd);
final URLSpan[] urls = ((Spanned) getText()).getSpans(min, max, URLSpan.class);
- //语句块:针对不同的高亮元素,使用不同的操作进行处理
if (urls.length == 1) {
int defaultResId = 0;
for(String schema: sSchemaActionResMap.keySet()) {
@@ -262,7 +270,6 @@ public class NoteEditText extends EditText {
if (defaultResId == 0) {
defaultResId = R.string.note_link_other;
}
- //语句块:添加环境菜单的点击事件
menu.add(0, 0, 0, defaultResId).setOnMenuItemClickListener(
new OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
diff --git a/src/Notes/app/src/main/java/net/micode/notes/ui/NotesListActivity.java b/src/Notes/app/src/main/java/net/micode/notes/ui/NotesListActivity.java
index 83d6548..b7cd7d7 100644
--- a/src/Notes/app/src/main/java/net/micode/notes/ui/NotesListActivity.java
+++ b/src/Notes/app/src/main/java/net/micode/notes/ui/NotesListActivity.java
@@ -124,7 +124,14 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
private final static int REQUEST_CODE_NEW_NODE = 103;
@Override
- // 创建类
+ /**
+ * @method onCreate
+ * @description
+ * @date: 9:58 AM
+ * @author: YangYizhe
+ * @param [savedInstanceState]
+ * @return void
+ */
protected void onCreate(final Bundle savedInstanceState) { //需要是final类型 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。
// final类不能被继承,没有子类,final类中的方法默认是final的。
//final方法不能被子类的方法覆盖,但可以被继承。