From bb9c926d3139764e88f09e8ee137b97c8d9c719c Mon Sep 17 00:00:00 2001 From: denovochen Date: Thu, 7 Nov 2024 23:24:58 +0800 Subject: [PATCH] v2.0 --- doc/{241101_1.png => 241101.png} | Bin ...便签开源代码的泛读报告v2.0.docx | Bin 0 -> 87542 bytes .../executionHistory/executionHistory.bin | Bin 188980 -> 188980 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .../.gradle/7.3.3/fileHashes/fileHashes.bin | Bin 42747 -> 42747 bytes .../.gradle/7.3.3/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../7.3.3/fileHashes/resourceHashesCache.bin | Bin 20673 -> 21421 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes src/Notes-master/.gradle/file-system.probe | Bin 8 -> 8 bytes .../intermediates/apk/debug/app-debug.apk | Bin 1042503 -> 1042591 bytes .../dex/debug/mergeDexDebug/classes.dex | Bin 191772 -> 191824 bytes .../tmp/debug/dex-renamer-state.txt | 2 +- .../micode/notes/model/Note$NoteData.class | Bin 6048 -> 6048 bytes .../classes/net/micode/notes/model/Note.class | Bin 4471 -> 4471 bytes .../net/micode/notes/model/WorkingNote.class | Bin 9127 -> 9127 bytes .../notes/tool/BackupUtils$TextExport.class | Bin 6349 -> 6349 bytes .../net/micode/notes/tool/BackupUtils.class | Bin 3373 -> 3373 bytes .../net/micode/notes/tool/DataUtils.class | Bin 9650 -> 9650 bytes .../micode/notes/tool/GTaskStringUtils.class | Bin 2866 -> 2866 bytes .../tool/ResourceParser$NoteBgResources.class | Bin 1010 -> 1010 bytes .../ResourceParser$NoteItemBgResources.class | Bin 1384 -> 1384 bytes ...sourceParser$TextAppearanceResources.class | Bin 890 -> 890 bytes .../ResourceParser$WidgetBgResources.class | Bin 947 -> 947 bytes .../micode/notes/tool/ResourceParser.class | Bin 1644 -> 1644 bytes .../micode/notes/ui/AlarmAlertActivity.class | Bin 6140 -> 6140 bytes .../micode/notes/ui/AlarmInitReceiver.class | Bin 2564 -> 2564 bytes .../net/micode/notes/ui/AlarmReceiver.class | Bin 876 -> 876 bytes .../micode/notes/ui/DateTimePicker$1.class | Bin 1077 -> 1077 bytes .../micode/notes/ui/DateTimePicker$2.class | Bin 2197 -> 2197 bytes .../micode/notes/ui/DateTimePicker$3.class | Bin 1805 -> 1805 bytes .../micode/notes/ui/DateTimePicker$4.class | Bin 1318 -> 1318 bytes .../net/micode/notes/ui/DateTimePicker.class | Bin 8989 -> 8989 bytes .../notes/ui/DateTimePickerDialog$1.class | Bin 1383 -> 1383 bytes .../notes/ui/DateTimePickerDialog.class | Bin 3419 -> 3419 bytes .../net/micode/notes/ui/DropdownMenu$1.class | Bin 948 -> 948 bytes .../net/micode/notes/ui/DropdownMenu.class | Bin 2281 -> 2281 bytes .../FoldersListAdapter$FolderListItem.class | Bin 1246 -> 1246 bytes .../micode/notes/ui/FoldersListAdapter.class | Bin 2138 -> 2138 bytes .../micode/notes/ui/NoteEditActivity$1.class | Bin 969 -> 969 bytes .../micode/notes/ui/NoteEditActivity$2.class | Bin 1076 -> 1076 bytes .../micode/notes/ui/NoteEditActivity$3.class | Bin 1242 -> 1242 bytes .../ui/NoteEditActivity$HeadViewHolder.class | Bin 976 -> 976 bytes .../micode/notes/ui/NoteEditActivity.class | Bin 27072 -> 27072 bytes .../net/micode/notes/ui/NoteEditText$1.class | Bin 1031 -> 1031 bytes .../net/micode/notes/ui/NoteEditText.class | Bin 6251 -> 6251 bytes .../net/micode/notes/ui/NoteItemData.class | Bin 5763 -> 5705 bytes .../NotesListAdapter$AppWidgetAttribute.class | Bin 489 -> 489 bytes .../micode/notes/ui/NotesListAdapter.class | Bin 5959 -> 5959 bytes .../net/micode/notes/ui/NotesListItem.class | Bin 4178 -> 4178 bytes .../notes/ui/NotesPreferenceActivity$1.class | Bin 1555 -> 1555 bytes .../notes/ui/NotesPreferenceActivity$2.class | Bin 944 -> 944 bytes .../notes/ui/NotesPreferenceActivity$3.class | Bin 940 -> 940 bytes .../notes/ui/NotesPreferenceActivity$4.class | Bin 1320 -> 1320 bytes .../notes/ui/NotesPreferenceActivity$5.class | Bin 1482 -> 1482 bytes .../notes/ui/NotesPreferenceActivity$6.class | Bin 1080 -> 1080 bytes .../notes/ui/NotesPreferenceActivity$7.class | Bin 1451 -> 1451 bytes .../notes/ui/NotesPreferenceActivity$8.class | Bin 1430 -> 1430 bytes ...otesPreferenceActivity$GTaskReceiver.class | Bin 1727 -> 1727 bytes .../notes/ui/NotesPreferenceActivity.class | Bin 12400 -> 12400 bytes .../notes/widget/NoteWidgetProvider.class | Bin 5451 -> 5451 bytes .../notes/widget/NoteWidgetProvider_2x.class | Bin 1232 -> 1232 bytes .../net/micode/notes/model/Note$NoteData.dex | Bin 5304 -> 5304 bytes .../debug/out/net/micode/notes/model/Note.dex | Bin 4152 -> 4156 bytes .../net/micode/notes/model/WorkingNote.dex | Bin 7904 -> 7908 bytes .../notes/tool/BackupUtils$TextExport.dex | Bin 5724 -> 5724 bytes .../out/net/micode/notes/tool/BackupUtils.dex | Bin 3168 -> 3168 bytes .../out/net/micode/notes/tool/DataUtils.dex | Bin 7992 -> 7992 bytes .../micode/notes/tool/GTaskStringUtils.dex | Bin 3060 -> 3060 bytes .../tool/ResourceParser$NoteBgResources.dex | Bin 1340 -> 1340 bytes .../ResourceParser$NoteItemBgResources.dex | Bin 1636 -> 1640 bytes ...ResourceParser$TextAppearanceResources.dex | Bin 1236 -> 1236 bytes .../tool/ResourceParser$WidgetBgResources.dex | Bin 1276 -> 1276 bytes .../net/micode/notes/tool/ResourceParser.dex | Bin 1864 -> 1864 bytes .../micode/notes/ui/AlarmAlertActivity.dex | Bin 5028 -> 5024 bytes .../net/micode/notes/ui/AlarmInitReceiver.dex | Bin 2432 -> 2432 bytes .../out/net/micode/notes/ui/AlarmReceiver.dex | Bin 1004 -> 1004 bytes .../net/micode/notes/ui/DateTimePicker$1.dex | Bin 1320 -> 1320 bytes .../net/micode/notes/ui/DateTimePicker$2.dex | Bin 2308 -> 2308 bytes .../net/micode/notes/ui/DateTimePicker$3.dex | Bin 1944 -> 1948 bytes .../net/micode/notes/ui/DateTimePicker$4.dex | Bin 1500 -> 1500 bytes .../net/micode/notes/ui/DateTimePicker.dex | Bin 7408 -> 7408 bytes .../notes/ui/DateTimePickerDialog$1.dex | Bin 1628 -> 1628 bytes .../micode/notes/ui/DateTimePickerDialog.dex | Bin 3052 -> 3052 bytes .../net/micode/notes/ui/DropdownMenu$1.dex | Bin 1248 -> 1248 bytes .../out/net/micode/notes/ui/DropdownMenu.dex | Bin 1996 -> 1996 bytes .../ui/FoldersListAdapter$FolderListItem.dex | Bin 1456 -> 1456 bytes .../micode/notes/ui/FoldersListAdapter.dex | Bin 1928 -> 1928 bytes .../micode/notes/ui/NoteEditActivity$1.dex | Bin 1268 -> 1268 bytes .../micode/notes/ui/NoteEditActivity$2.dex | Bin 1308 -> 1308 bytes .../micode/notes/ui/NoteEditActivity$3.dex | Bin 1452 -> 1452 bytes .../ui/NoteEditActivity$HeadViewHolder.dex | Bin 1232 -> 1232 bytes .../net/micode/notes/ui/NoteEditActivity.dex | Bin 22608 -> 22608 bytes .../net/micode/notes/ui/NoteEditText$1.dex | Bin 1356 -> 1356 bytes .../out/net/micode/notes/ui/NoteEditText.dex | Bin 5760 -> 5760 bytes .../out/net/micode/notes/ui/NoteItemData.dex | Bin 5016 -> 5016 bytes .../NotesListAdapter$AppWidgetAttribute.dex | Bin 920 -> 920 bytes .../net/micode/notes/ui/NotesListAdapter.dex | Bin 5200 -> 5204 bytes .../out/net/micode/notes/ui/NotesListItem.dex | Bin 3820 -> 3828 bytes .../notes/ui/NotesPreferenceActivity$1.dex | Bin 1748 -> 1748 bytes .../notes/ui/NotesPreferenceActivity$2.dex | Bin 1232 -> 1232 bytes .../notes/ui/NotesPreferenceActivity$3.dex | Bin 1228 -> 1228 bytes .../notes/ui/NotesPreferenceActivity$4.dex | Bin 1468 -> 1468 bytes .../notes/ui/NotesPreferenceActivity$5.dex | Bin 1672 -> 1672 bytes .../notes/ui/NotesPreferenceActivity$6.dex | Bin 1288 -> 1288 bytes .../notes/ui/NotesPreferenceActivity$7.dex | Bin 1664 -> 1664 bytes .../notes/ui/NotesPreferenceActivity$8.dex | Bin 1644 -> 1648 bytes .../NotesPreferenceActivity$GTaskReceiver.dex | Bin 1780 -> 1780 bytes .../notes/ui/NotesPreferenceActivity.dex | Bin 9620 -> 9620 bytes .../notes/widget/NoteWidgetProvider.dex | Bin 4624 -> 4624 bytes .../notes/widget/NoteWidgetProvider_2x.dex | Bin 1196 -> 1196 bytes .../previous-compilation-data.bin | Bin 13219 -> 13220 bytes .../java/net/micode/notes/model/Note.java | 116 ++++++++-- .../net/micode/notes/model/WorkingNote.java | 199 ++++++++++++++--- .../net/micode/notes/tool/BackupUtils.java | 110 ++++++--- .../java/net/micode/notes/tool/DataUtils.java | 87 +++++++- .../micode/notes/tool/GTaskStringUtils.java | 54 +++++ .../net/micode/notes/tool/ResourceParser.java | 208 ++++++++++++------ .../micode/notes/ui/AlarmAlertActivity.java | 51 ++++- .../micode/notes/ui/AlarmInitReceiver.java | 38 +++- .../net/micode/notes/ui/AlarmReceiver.java | 14 ++ .../net/micode/notes/ui/DateTimePicker.java | 178 +++++++++------ .../micode/notes/ui/DateTimePickerDialog.java | 45 ++++ .../net/micode/notes/ui/DropdownMenu.java | 32 +++ .../micode/notes/ui/FoldersListAdapter.java | 60 ++++- .../net/micode/notes/ui/NoteEditActivity.java | 185 +++++++++++----- .../net/micode/notes/ui/NoteEditText.java | 63 +++++- .../net/micode/notes/ui/NoteItemData.java | 191 +++++++++++----- .../net/micode/notes/ui/NotesListAdapter.java | 81 ++++++- .../net/micode/notes/ui/NotesListItem.java | 54 ++++- .../notes/ui/NotesPreferenceActivity.java | 126 +++++++++-- .../notes/widget/NoteWidgetProvider.java | 66 +++++- .../notes/widget/NoteWidgetProvider_2x.java | 26 ++- 132 files changed, 1594 insertions(+), 392 deletions(-) rename doc/{241101_1.png => 241101.png} (100%) create mode 100644 doc/小米便签开源代码的泛读报告v2.0.docx diff --git a/doc/241101_1.png b/doc/241101.png similarity index 100% rename from doc/241101_1.png rename to doc/241101.png diff --git a/doc/小米便签开源代码的泛读报告v2.0.docx b/doc/小米便签开源代码的泛读报告v2.0.docx new file mode 100644 index 0000000000000000000000000000000000000000..1b0648bcbf2b48798140d1ed53707c1db34e72db GIT binary patch literal 87542 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ϙ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 literal 0 HcmV?d00001 diff --git a/src/Notes-master/.gradle/7.3.3/executionHistory/executionHistory.bin b/src/Notes-master/.gradle/7.3.3/executionHistory/executionHistory.bin index 51c74658a3acdaf911be2a9293b22bd3fb82898c..401e26bb7abb20e72a1070f6581e5fb09a30e2b6 100644 GIT binary patch delta 8632 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 delta 5562 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 literal 17 UcmZR6q9fk(B+5>Y0Sp*T0W3uWmjD0& diff --git a/src/Notes-master/.gradle/7.3.3/fileHashes/fileHashes.bin b/src/Notes-master/.gradle/7.3.3/fileHashes/fileHashes.bin index ac4c449a4a5e7a43db44ac1ac1edc12ffd83da90..6ed698edcf8d14741d15a2f96996eef625a1ffdc 100644 GIT binary patch delta 5339 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 delta 5371 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 E0LxH?od5s; delta 92 zcmV-i0Hgn{rvbsC0kAX}0YH;A7+{m#81R$j8F-U*8c37X8jzEH8>o|292k>@959p3 y92m3x93TOcWgak-tsY2|4IdekJ|AC`%^w((6(BkS1`)9#_!qG-2okeFNPq~9?;&ge diff --git a/src/Notes-master/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/src/Notes-master/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 2468f0eee2a880486d11fcb307aa3e36c535aeb9..d5b557b83f88ae4fef8a718162c08056e634187d 100644 GIT binary patch literal 17 VcmZR6>mcK3{z)W_0Sp)?001eI1Hu3R literal 17 UcmZR6>mcK3{z)W_0Sp*x0V#k3uK)l5 diff --git a/src/Notes-master/.gradle/file-system.probe b/src/Notes-master/.gradle/file-system.probe index 7debc763b0a7645197f379a7be49fcd670aa3473..d9d79c5870aa2b738d4adfcecad2329067128ef8 100644 GIT binary patch literal 8 PcmZQzV4Tb{yZ;RU2G|0x literal 8 PcmZQzV4U=4iQ+Q=3G4$q diff --git a/src/Notes-master/app/build/intermediates/apk/debug/app-debug.apk b/src/Notes-master/app/build/intermediates/apk/debug/app-debug.apk index f9142901781f4200ac170467de7f1e6b23fe0542..f0a0f1ca131e7ef857c82c63de3ba8add0be162c 100644 GIT binary patch delta 92648 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 S0RT{!5$F#v1_a3u00015l&sGH delta 92572 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 delta 29519 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 bGHP!Tt4Y+8^p3eO`p9O3@~jbb%O diff --git a/src/Notes-master/app/build/intermediates/incremental/packageDebug/tmp/debug/dex-renamer-state.txt b/src/Notes-master/app/build/intermediates/incremental/packageDebug/tmp/debug/dex-renamer-state.txt index 92ed983..f50029c 100644 --- a/src/Notes-master/app/build/intermediates/incremental/packageDebug/tmp/debug/dex-renamer-state.txt +++ b/src/Notes-master/app/build/intermediates/incremental/packageDebug/tmp/debug/dex-renamer-state.txt @@ -1,4 +1,4 @@ -#Tue Nov 05 22:04:33 CST 2024 +#Thu Nov 07 11:14:00 CST 2024 base.0=D\:\\Android\\Notes-master1\\app\\build\\intermediates\\dex\\debug\\mergeDexDebug\\classes.dex renamed.0=classes.dex path.0=classes.dex diff --git a/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/model/Note$NoteData.class b/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/model/Note$NoteData.class index 30318fc9e67004d82873a0ddf9b02152bffe0cc6..e208b561d7775c69c385f231ee0b67832148bd3f 100644 GIT binary patch delta 323 zcmWN}O(?^00LJm>tE?t}{$?{o^Rj8fOe7NKEhjIL12>$MyPGKOpUR^4nD+P6}h;E#eJ;|*TDw(w&8B<$39#;rH=^R5bgs7aqr&J%IAjb@Gh82vT+cbxMq`%w-aR>m~sZ#z+z zr}8Xo%~LT?ky`SwO}WhP^!fDa`~3vHL9ZD%>|>NLPALH#D5{yj#iU9aZ8D{5tX-CA zikZP+4m&|LYVEenYYAyt)DqU>RF$?COGNK1Q^5*uR#m~~QX#FT)^)8>t+80a)>|~h zhW_8AiY;o1<6)b6c4%Z5AA5ANPag*ibIJ&Z_&H*hV-`3e%o!2R^}>a|Oz4&*#U*L3 z$Z$=L8-ZIfxDzK&;^tmFq@{@m@$o3FJWE46FVe%S^z$YIyvraN@$(@8K4pn7S<`9q eEm3|XK~|FFBt>4b{7Rm`n4_#t#IKsmJN^L>XJi=w diff --git a/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/model/Note.class b/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/model/Note.class index bbbea2e552d7fc5aa6e4552efd2d13ebc9f5067b..3ff55944dc4e7fc917b4bf171097cd2cb9c5442e 100644 GIT binary patch delta 229 zcmWNLJxfAy9EG0?-7xTf?{x{mDI+wY!LS#5ApO=uIpTvXzvSfKKQzb8DeH1Vh>~>7wW+W`l|?RC;Zi*3+`iSNCUvK5Kk8>g#!lXP z662=qXYDU?<`(Q%W!{uom5IA&HO1!*;-Ad(#S$%|d=sP1IzQ^xR+kQWx|HZ~L!Uba PJTQ_!@5+iuCXko`vW+qN delta 229 zcmWNL%}N4c7=@pKMhyIBrcDH`QUnwFv6Lu(2P-ivG!$AW7(|-rQW2yCcR{-sZy{(A z)it#2K3a4GZhd#>93D8&BD@HHy@&i=g6v_~XM+S04%p$4Ba--}xYktTm=0NboX{uD z3mIO?F(=PAzWj$i%_%FK;d0IRB$`q_{lr)=Gd zaSL`+drNNIirrS`PMK}_bu-qz1ig<$mjI7!>356)afa$RQjeh;jwv&t$`fs#d01uOGBumY%HMGu=bwvC=499n($uUVr<5quqyn)hC@m~?@kNTn4w zZCJFEO`HfPiPAw4ovfvc61vSHEAH=6`mECDls-=e7w~eCJT9?}-jP`=S<3q~x{QZD zd|V@d(dasBxWNW)vW;8R(N80{Y38n8cTed7o-oKW?vIpsie*ber#`|aL72xZ)v$=C ztYe6c3RN>qJtG|Exi%lAhnL*p6%QC!`ZbfhVTK9wBCB`N2h#Y+Vm^_@l$Mz`JG^oE zV%~X2Bi~5oyO#YyuJRT9WD~!r;g3%KtCMH-KmM74>|JvNV+U=M?%U~>6ugp3fy`&Q zEHEv;*gUaFl1wx1Yt0m!R0-ggAhv{wNG>ZSVm9Y=yQNU675JoxJXvMl=fpFmm=r0& zCF{wMQv6a*R4PoZ|Fl)9NsNWERoyDWQq5}FZf5*Vt~yP2>zR5@_LyngW7_Q+SEIW7 z)jgo@L3NL~nn{zRq{}gNS{$w+u-Db0OeY@c(r(@6ZD60A(Wk|v*IW%-=2S3Wt~hE; zRllQVgHahY!BCkzboOnbs0``eGQ**K8FRefswNy&7|xeTM>VOMQdK6ObzNey%qSP?B3 zBr3Fxj3`=63w&rXs2~XGrH6`oXrQ76$_QHMiV;@e9-WrfZ8j?0gs159#Em)b&e0ElNB2 zO%8vs@mHGshhITlW$6|E-G+r6l})~~3Y$wrji*9Q&>4TymM-LOmLA=~SS> z<`mW?tXo*GuBqa3JMc8b2Loroh zqPv1-nP@B&S95hJT&1ebxh))5wK5y}Ryd{>o7`7HbtWp0#MDv~B?UDKs!~mI7wUJB Nc1sQA)a&Nry8qD^nHT^7 diff --git a/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/BackupUtils$TextExport.class b/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/BackupUtils$TextExport.class index bfb671cc04c7e316f48536a5ac989ac55e37759e..2ff09d9c76a819a9699d8c2a4500ce9dc3a457f1 100644 GIT binary patch delta 426 zcmWO0Pe{{o7{~GV$5P5nf1{Sm4RlJ9V&pnxxtW?w2jMiG|FSZWAP77}gq}PUUP3(l zs!N3b4;=z&2O-o-Ohpt%mr`+|VL_2(h8ap#?x(TwFB#(Fac~2SB1Wm4ChGss{#w>T3r-Oy)OGmG6e>CKi zA)gId;T)?3STiI}m@hQ3Zpa4r`9=@l=`;H&KX}1UUbDqpew$<4#Q4J|yQbM=hrddc zbcp{-7IG>f`uy0cx^gp@_2ytFHayE?@^ z<+6!=_(njCtDHDssW#xC{{BSYNJvuROuR5)JnCk6V?stbd!i~+5Yq=dSJ)W S17;p|btQJ<=8^r_b$K5oFk>75 delta 426 zcmWNMO-Pgh5Qd*OTM6ClGhKHx5BU=%rR%O9B0Z#{36VjF>B&PBLEu5WbV}QdKt$nl z0~M194_?e%l?pNp$_{QwU_S^Zl!6CCVG~KL=JL)k%rg%Y55+?ht&XpQgLIP4J+g?9 z!+rATawATi9=Z$8L{Xp3qMYCng$z*6AQu>-#`-G^)5K$17~vLAXys{aEWJlJ#ta!Z z9rbV&W^pc&3C-vJs+57(Q=Iie({k6pXA|- z4zZ*ZKFi0~*igo@?y^EM-$`Q?hadR($uXmHStp+j&aq|gZF486<2Q}$aGhOl^M^L} z%)f8`zxLceMkGef@=B@9%FDdc_@*PQ$SzyIsiW*DgMDQxSy}Qbpd?4xv0dK*Rp#PV zK8^|q=p@-XMV?L*R3Raq;k?dLtx{@L#6=ZzNkJ~FgnEUzsxS>IbIbkxYH}C-6_$qs OcRbA;=cd~osQM2k{b?xx diff --git a/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/BackupUtils.class b/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/BackupUtils.class index ed4ac8e4b5c4e5427480eb0c09d004f0d6226484..a005b5071658d9304d04f80595f4f691759bc0f7 100644 GIT binary patch delta 157 zcmWN^F%H3C9ES1tO++I_vFc(%z56GYM}@hWwhm?jPg*x2sVrq^pIombb~WVbdL*p=LYiAAG1V>K5VYw zaE&ShG#SF>2A#a!{QKO(Fv5g8Oc`U&J$xnzctpq(B3=;lj001oyh_Eou_iC8p8K^1 EfA@DJivR!s delta 157 zcmWN^K?(t39ES1ttx3LV7GtNmz-)|^Qpy-H7^5*hv9PkVQnFEE;SB!+$W~2R+PHvw zIEM0Veos%~72fl%RDcrdsGuParBw_IL%0};Wv84-ZU@ZdVn@{SHm>Ane{=_BhH%-1 z#|S=qXtIwM2WXpy=3~at9AnJ{8>ZNDiXAiTIm3ZDj$GixInLC$aw%2kMqge|&G>ba EKhzZ<3IG5A diff --git a/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/DataUtils.class b/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/DataUtils.class index fc1d9a2623d6761bc4895be2a395bbbbdfe325e6..f9bdaf3ba2eb3e7978c88407453c878afb7aee81 100644 GIT binary patch delta 679 zcmWNOTTISz9L7K2t<55&df$3=RHL{eG39aJhyqSAF1Q}J-wZJYf6+?D>vlJHSPKIIfpO(8YxqLyMBDd9M!bWz5Dwil`3HhY+&l6&msK2^MAKd;!w zYbn2Tz&{b;HrEjXsh33qaXOMhlZ=}E^PUc?=~9XlO3|$py@b=JO#NC9D8Zm^o}!K+ zS~*QSXXs&=5zaEnIqqx}TS<-kyI#0>snX@+L zx@V4HnTPU5%mp=kE6;cGd+&6{hC7QfL!L!3K8W#Aj89^G7UPQ;-^3XA{3MKD%DTjQ zerxjwFMst)%T7exQlSM9X)A~mCfZ7pY!xXMM24*<*McdrbyQmjhb@#=bJK2NbeM~N z3uo9oj98?*|L$I{6c7Fim_wwXrFZMIeVbb5sSmf_59_`1=2 zk`_tkBiTwwvr@9Gi~=i{w1Rr8o&;-9;6}Ds6WP{+&sr(8 dHs^WbsH>X*J4vAR5Ny4;tdA%gbn3hZ{{sq+i?;v( delta 679 zcmWNOSxA&|6vcnHBoZV=of*e%M#oVsS}oDSC2f%`TfhWuvB<219j66^z^{mi zqTPqU%pszeG+L#g1==hk$OyzjDG(B>^Yrok@44rmrMtYlyz7tKGQ(r;LaWOrg2_ZN zg-J}s#WYfwj*nSnkwYo7S;8DvkxM0cRFls}=CYl6G*Q5A3OPyyxyCkKZQwCG=##c*G%`q2_(W2R6*S{!F9DimXdl_^ zm(2sBKP2g`k{XiK!<2DE#H}IW{1O(BuxvV5VwVB_ueI* zd(zrNBE6d2C&&Y(^vFr@|1OcQB%W)jPsd-#%1e!2sh!tq;f+#$tB&3&tM|&~qcZuR zJo;t&69@S$Ghf0LX*rh5fKGfD&wzLaWnf5c4y(N(CH+H<{ZzlhY+*$E!%BKY9KW19 z>0dJ$)#{kmMy2_${Qo1*jQKW>QX5aLO`zT;I=zAZU=(hPCds1kSu6pIBg^8MVJ`B` hLy;v=Vu?;q#xYka5#}S({KQxqE=wobf=*4a>OZDNm5u-a diff --git a/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/GTaskStringUtils.class b/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/GTaskStringUtils.class index d4500ff4824cb8b8ff3db97867938d861328ee80..e4bcbfbc62ac056028e3a0158d0de81b7ecc1fa5 100644 GIT binary patch delta 37 ocmdlawn=P*D7UOQLmC4E0}lfukYr^@XUG83j0~ATl8GS;0CUI$vH$=8 delta 37 ocmdlawn=P*D7UOILmC4E0}lfukYr^@XUG83j0~ATl8GS;0CQ9Xt^fc4 diff --git a/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/ResourceParser$NoteBgResources.class b/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/ResourceParser$NoteBgResources.class index f1053bc01205f5b026a320f53386def9a348523a..bb46d8bf0ae061a9348102e1bbb618966e4b1844 100644 GIT binary patch delta 41 vcmeyw{)v6VIwnT5$?KVH8T}`}1(FeywVADfBI(R2tQHLN433j8Fe?E7B3ukC delta 41 vcmeyw{)v6VIwnS~$?KVH8Eq!N1(FVvwVADfBI(R2tlA9n491f$Fe?E78)ys8 diff --git a/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/ResourceParser$NoteItemBgResources.class b/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/ResourceParser$NoteItemBgResources.class index 34b5c021c949b91b0dcc81389d2c30a5ae0c5d23..a2e8914dd61ef8793b64babd751bdedcb2426172 100644 GIT binary patch delta 73 zcmaFC^@3|dGBabr

IG#+j2JFpEy!&aA<>0LZdsTn^?NvuH4`1G5TQR2jEUp3bs} Ww}?TWp_;*tp@kuqp?9(ys}caPeivu} delta 73 zcmaFC^@3|dGBcy^

IG#{9_-m_;XVXVzdW2C{4!%fWnO77fN~FsqP7m9c*Ebe2WD Vehl&qVGMQ*aSX8xX_MVpl>mEn6~6!g diff --git a/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/ResourceParser$TextAppearanceResources.class b/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/ResourceParser$TextAppearanceResources.class index 1714fc2df40e460b9423c66d0789359891d3438e..58e43d39b79340ef420a389207062a0d4adbf9a7 100644 GIT binary patch delta 40 wcmeyx_KR&p0~6!p$&F0zoZlEY7``)bG5nl-k;#RLkzukpvjgMP$q~#-04sY91poj5 delta 40 wcmeyx_KR&p0~6!i$&F0zoU0i)7}hXwF|3<>k;#RLVbf%BW(UT3lOvdw02Q1JNB{r; diff --git a/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/ResourceParser$WidgetBgResources.class b/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/tool/ResourceParser$WidgetBgResources.class index 595f36d648a9c81ebe48939b345f21893780eae0..4ba76111a155ced22144e933802135e9da362535 100644 GIT binary patch delta 35 qcmdnYzL|Z)OeV&?lV>s6GM=7%14!PUEXG{Mx}QOw;r!%@%t`?4Obl57 delta 35 qcmdnYzL|Z)OeV(W$+MVj8G9$+0FpB&i!qn6wlK&uOqe{8SqT8y>AM$}lT!^X!?awWOq!nGmT7MJbBRTYFeyiJegnNMXaqv(&F4@^+%U z6>{L^KtqoBk5=3#_jPi2eXe{UA2@ee>XgOxXN0iQj-3u1bfMFYj~=S%qlN)G8I(K3 z1YzQm3z7+j*P-JS{Y@J)_F>ZD^2?eFH*=7PL?TW zMT}KyS)-A4+Sm|1K`*ArN&49o*%WO{v~AH$3{oPbrP*Xg7R1*Ki5=qLy%jVxucZ_mD6W!&lK=NF|Vq@6LID!;)7B? Naq~q5-|Ea``~ywbMT7tV delta 310 zcmWNM+be?s7>A#gVU%pXeKWO|l+-TfIHwyqA9BoC+Na22j?v^(jv*P+>NPne{0EXd z7jn;kwBo(`y*Iz-_deNhHvHmogv8WK%9xfT+nqJcMk)fYk26<(OH-`COgipr!VqC0}cjqJp#KbUuqH%JS`pR zlyj)xA5qOQO`J&3O!?0+I44MoN-n5Tg9uk@o0e}g;SzGVA)k!Y`r__8^0=pn2fRE| J#*;kztbZMjKKK9t diff --git a/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/AlarmInitReceiver.class b/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/AlarmInitReceiver.class index 124eb6a50ba7072020b07da2613ef79bf76747ec..12b8d5cff3d191a3f774674d347f99046548db71 100644 GIT binary patch delta 85 zcmZn>X%X3A%fYBL*^c9otu+G+gB^o7gCm0skXB@HVNhdmWiVjyV6bBFW^iNhVTfYz mXGmcPVn}BQX2@prxXB^HV|z9 delta 85 zcmZn>X%X3A%fTo=*^c9otu_M-gARi@gFb@{kXB?cVo+l+W-wqdWw2r}V{l_IXNY33 mU`S!GWJm{!mb(Ww delta 31 ncmaFE_J(c4BPK@i$&ZLP7^E5a8Dtnl7-T2gFdF~>lqLrK diff --git a/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$1.class b/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$1.class index c3ee8d8b1ad20e6f886e3e5c8994026a4b0f613f..b1855928013fae86100680e9dbcd334989a1f1e9 100644 GIT binary patch delta 31 mcmdnWv6W*(4l`rG-Vg?UhEN7EhA;+MhVaQZnPUKju?M{X delta 31 mcmdnWv6W*(4l|?kUN;7Q26qNA1`h^V2G7YinPUKg9tU^; diff --git a/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$2.class b/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$2.class index 4812c99de189fad671131a9c824b4e779343ec3e..c49feba33664e6dbcaf10f98928fd123825acf2f 100644 GIT binary patch delta 146 zcmWN@I}1Sp0EXfBOQ&N!Hj|ObVlc8Oi$6dqO76<7+|Pn?U3501S<0dmqtRrs_yiD*sh!P@_$q6-{=u*wf)emm59q p^m#Dg#gI26KG=L2%gaQ5rV27sh`FLHlwheOYkWW)6E;ut`~yU8BR>ED delta 146 zcmWN^D-S^d0EXfBo1Go?Xp%@$1d(DBnEQQf?&f}(>=#IOnkbu1vDt{Cq$vJ@Xw!Jw zV_UX$xEP8Zuf|rZ1P+ooN#P=mj|@Swgvb#gPlW<~ip(jo{BKQ_9X0mUInm%olRGUQ nw0Y6tO_vWnz6|7MC@&-V87sg>*d>E%E~x(vKi|K-x&-%3^N%d7-lg@Gt6aBXPC#J%P^n8l3@XZ4Z{)!M~0;g y{tU|)5*U^n?LXc{sA delta 95 zcmeC>>*d>E%F0+a*^KprZzTf{LluJrLp6gmLk)vELoI_YLmh)9Lp_5HLnDJDLlc8P xLo-7HLkmMXLn}i8LmNXmLpwtQLkB|_5Kd<3W|+m$$FQ8CpJ5%tgvrHhvj88d7i9nd diff --git a/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$4.class b/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker$4.class index dc60fe035e4e945806ed4531a85c23731f7d808e..ab1e92c73a2c8e8cbd529be2318396cc5a30c93b 100644 GIT binary patch delta 42 zcmV+_0M-Ad3Z@FM{{sQMk_3<$zW^5izyKit!2mJWngBomoB&4vod8Y%o|CBreGw20 A7ytkO diff --git a/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker.class b/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePicker.class index ff95cab164c58e2d69fbff2e2e2ecde44357fb6f..13b520833f247fddef7a2590016eddbf4550c747 100644 GIT binary patch delta 787 zcmX|;SxD4T6vn^rkK@)jZvAJRadez9HA~B-C}GrGnxaCjq%g=(O!1+YXb-eE!$hb{ z6qOkjE%s6rm}vP@5EWUrk>wPnEofFkrJ>nj61fleEWh({?sr=}EuO2dA`CAOh?mM6 zvBuDkV0f=DjBI5601U{72_8hE1P+vAK8|7ux=?^YtineW;}a_I8MPR~E)1g%U(tXO z9KjE?ViaxoiFW)#H-6(D#?Xs#^kV{FFe%l)a;E4{FqEW?evGAoE~z9kkSQhxF`dE8 z;wk0q0EKOWr${;x@6hT6{^*$tF)*>y-0e+2;*8< zxehU04<}1ih|QwTM7g=i$BhbCAzYq<1%>yHlCEJQ%GV9Qg|8}Y{gQZ zMK;eNkLOXyi&)9aC}A5)c}3lb-pFgpXfM}qibjWMbRvpfaPgLycU#rli+M*pt93pQ zgCB}dkHp{}IQSTI_(Z(wMJk^nozGNR%-z&Jar3n(y^;O;h4RWKZ{-W#$p&5&@I8w7 z0UJ1g%^Xy#W1ICMdDSo?If6KT6TR<9m-LH>HXI!-Yi0>1K=cK%7O4T_${+a;> z&0pPjR7Yq=1ZW`$*G!0$J3$Lm`EkqTpL3nMYKcplj{0UIi}QcYJ>5C%OqQtA>6y+g OE??g@)A!{auBv~DIk;f} delta 787 zcmX|;OGwmF6vn?#98=TLl>f{)j*c^_qvW#|DUC*HLzJkL6+&5>C2o!EMGDaaB80jW zJrHYCqLr`momy#{hL&Pcsj0cBO;C##J*2}VZtgwje7|$}?zz>jYFFd?Al*H9qgKrX zW$EhSi~B8!!53NC03Fstk2C}$16E{V4a%jWBx}SrG$9AgC`1cN@mQ2rRGYSMf+wM;sXNasoD;K?7WF+-cps89Nv+gmD=jy z&3gFo0rY$bD;p5WM#QiQ@oYviTU377Kzu7a*(Q_P#b1X|o#Lbm3G5aJoycGhve}E> z?881jRola>w0?Qj0D?J)2oA}-mq_A>`WAjl8x>_tX1$iZk7G3_Y!45mPq8G|E(IYSVG#pJgvRRGtM2?_uJ diff --git a/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePickerDialog.class b/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DateTimePickerDialog.class index 81d6513391e9558536c442eb514d53e3fce0e66f..60edb3ee3967c1de8b8aecf3ca02c42480b404cf 100644 GIT binary patch delta 129 zcmcaDbz5q~3@$@k237`j1|9}`1_=fS1_cIZ27QJg26KjB21kYv27iWdhA4&zh75*i zhGK>ohB}7W$tSr2SyOce&d+ cn;6&`nt^7wPR`|tWK@}aoW~YOvhs!j0EMa>A^-pY delta 129 zcmcaDbz5q~3@$?*237_o1|9}o1_=f|1_cIvAhcpIXRu~)WUyiIXRu|6Vz6V#V6bN> zW^iDrV{n{&k}Hta1*pq)vOKpts|S$f31o>+ZsPXi^jEWNBs}RyzhR2K&i5%pL$oXa!UN delta 23 ecmdnOzJ+~*6f>jdWNBs}R&53@2A#<{%pL$mK?NHC diff --git a/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DropdownMenu.class b/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/DropdownMenu.class index 86cabc19a7c9e2edfd0d6c7bcac3f65ce4880148..c6ec51112fa8fdef750b7ddd80c6c984000d1671 100644 GIT binary patch delta 77 zcmaDU_)>6#9=ogo0}F!@11EzCgAjumgA#)UgD!&=gAEXRGdNE6W>4kxU|?tPWZ-A; fp1hMilreZRKZh46#9=ohE0}F!+11EzjgAjungA#)}gD!&xgAIcwgExcTWN-FVPD2KE1|tT3 h29wD<*+Uu4C-ZZ7v05{5FxX6v<8Wh?o4l061pw|>4PF2M diff --git a/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/FoldersListAdapter$FolderListItem.class b/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/FoldersListAdapter$FolderListItem.class index 5012ef98622bd6587e3e43e22ef6635022534061..75eea9665cc04a6d5b46e46ac79b76d64fa95ea9 100644 GIT binary patch delta 39 ucmcb|d5?301&d%F11m#50~bR9gAhX@gFHjgWKR|^)=CBrhN{UkSlj@(l?dAa delta 39 ucmcb|d5?301&g3711p0Y0~dokgAjuUgFJ)hWKR|^Rv!iq2H(juSlj@kv?oWNo%kMwiKrY%PNR4D1Yn48jaS45|#l40;Tqlf~F4^Tsi7 YGQ=~8G9&;+<0o%puVhr8Y`~!f014g>HUIzs delta 69 zcmca5a7$o=8XKz?0~>?RWNo%kMuW+XY%PMO4D1YM48jcN45|zk40;S!lf~F4^V%|S YGT1SQGS~w}?Iv$yuVhr5Y`~!f0OMc`_W%F@ diff --git a/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$1.class b/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$1.class index 4064ac04bcf531f905d1d7c22012fca8bfc3edb7..fa58ca95312efbd9e0598baac85872bbe469c5d6 100644 GIT binary patch delta 27 icmX@fev*BIEHk6WWI5&lPA>*_CT|8lCZEaW%s~KPu?8Rj delta 27 icmX@fev*BIEHfj=WI5&lPA&#^CT<2kCZ5UV%s~KEF$Ew1 diff --git a/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$2.class b/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$2.class index 19383ea8d1c28a47592f7f99d56fc1cbaf59fd69..3b08620e4c91dfba1567d8bf57f3499d7946c724 100644 GIT binary patch delta 23 ecmdnOv4vwpA2Vb5xVo+jwGP#Z=1^}o#3Ag|N diff --git a/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$HeadViewHolder.class b/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NoteEditActivity$HeadViewHolder.class index 432dd4e75e5297f5b09622af18774f317a192ca2..30ba1127f29b358fa6bd434d03ee1962720fe13f 100644 GIT binary patch delta 19 Zcmcb>et~_1Co^NnWG`l0Albp}0RTW%1=s)p delta 19 Zcmcb>et~_1Co`k(WG`l0Albp}0RTVc1z~$vl?2Jdq~+B+dC*dhk?w z3DQSQvL!?cq>2m?9aE(}OC+9Bd4aW($nT{Sd!;iUdOYF`j!AORy6^G$ zzEqP`YDt9b;IF@{JPM^h=Gmy8dZr>$r@nc6aix-ylx$5z?QF4^Luw{k$Xaa6YRo$TPI?BoaefP3;sFUfAV{D9PzKS_*yByn;u zSlfSR_z@@cvCBJ38#zXTd=lhll*ga++<$Y4e|LJPXepnQD5vQvXWaBJNt1JAcpNC_ zozDgGj;% zO=ArwP9tckkwMLYFW1r-nrK7XY9o@gaZon!vkn^TK+Oo%Ur~<6 z=&5bV(e{kd1g7ZoysC+;(2f;lg9gZ4P4e|$(pS5at|<)Go{Z356l-ta+lSw228;D2 zN_7Bl=pf2;FncwN13HAiYAz=|p3*!{Yd+_6IG1$j_0XP zl085Z%zxG-cjp1Yn5=m?-nc|LKjkB7tu%;2gTX*>%UHj zu5g)wOMHtMT}cal+nrbySk9jK^?s(@&uk!C-*JyN(poo>sGHrVE%ec?4AN~B=ypo< z4@}iv!L^+EQV~oXaAxn>utDjJ)$C;ofn53UG zQ@>!Yo(ab0E)MyUN_sB1pL?vwd9UULujWNB#MjRK8!y7QB>1?K{)_HLn+H_ahpzFlv-uy*^a<_tCpzfQuH-5G4GK&s@^Oh- z(0JI7309dZR)sLDO1Op6(yEbQ)#+|ENbz~9g^^>m8D|kpwK~kU$RI8MYFm4T2&+eZ zt4~vlrj^Ce)*8^s8q&=g(a#!_?c-c)N})BY$RA!L$reWqYe7A0$#d3+gXNNbt!%X&uIGwMU>CJ4GD6=Js g-*{h{Ckg(f_F}#aVS$Wiq5PIIf3a5w-;X`>e^E2l6aWAK delta 1969 zcmWNSd3cXk7RNv5Tt7q-k&uwY7Rw{CgoNlA5luo?TaZK~L1eMl5)@-5lwvF`-l`0x z)s42c5lU^?R8Bl z3}1(j_4u=a2sYB3H)+8pTJyHIIpxn$AKL0igs_#SY$Jy4#Ib_}cG8_)B(b|DC-s3; z9k9<163ijOIcxw&iRKvb94C0}78#7GyqNgO?`CQDcPNjLH(f#K4f3VF^@dw6X!NBH%^CrS8AZ*N)V;?Puk%QO{P zG?IQqNq_pv0Iyxv>ZrjqkRgQ0P+CZ?tqdbh3V2S2^Sl(2BE{afS=DVz%-3jhQ))WO zXej0Obp@Se48NDLWXd?QWkSu`?02MOvdNu7W0^`jnPxzhq|0=ZID^qLlgaWTvtH64)Y0;ax4!?j;MFF` zGkdSmNnR&j)_Mg4HpZRH9FkBuEUo2; zbd=Aev(EEG;+@p`&H#iWwku1sU9-O`t*PFQOHmsTOC8S79-V1h1O=O)?uF3XNd-}LL0DBL#Wn< z?9oQ-(=h&~jX7=gtTy3mjo_k2@^5X*Rc+1R>wRP!cqcM9n8%hcQG8DbXUv>nNsaiFZAJp_F-( zhJD^+qV1hTkWMz#DMag3dg?U#Y9%>3om`zkfzG5(?QdgG|sLQFZubTFibkH+fm# zV!3YeejWa}(`Nj2i+TLW)NG}VZljBCr@QVjCp+n{e>E4oD6{ABy4!0}^dw&QQb+fh zflmn5{j}EuMtaZ)4;kTpGW7`g`WfT&sF5CHjvn{2im%4%3CruG={!Z0o~DC-X=$D@ zt!GKnbM(`%$g}4HJ#XH>sVN>&CMkN!PU~Act?y{7mxSM}2zFhKEWtZmdOJ6XdagG?cI8L9R9d?} z#JavDxHM8-I{jRRVP{fkb)?H;jLT-c)fZepUUdDbasyc82C~cz;uV+2T9?m8SKvJ> zn;%?c$i*~rBWUMF675EKtIBhIrPOw1-mUU%-x&PdSg&WrARC;^D-tEU=48bQDbA-J z1vIna)`db+DI$+z#@V2&WHgH?w_lmekA`xiC&rbF!r@7mC73*|XJL_y!jeH-yPD z*(L`!BB7KJAQTCgqFY!JgVtWm^pQqC84QraAO#FzXP7cZsbGvM#;IX~CcGlv7|?vA zGD|vhWHOJH1#B#dTVvR@BFUO0>(a3yznfIDMKwEk2vEx&jqKCI0V5pZ<48J!EON{; zC&H+$YG<| delta 330 zcmWNLO(?^09ETr=zxT4g`L~4}=H-B8GghXR3v&`yWXft$%4=Q@E+SE+WIvL;b5KI7 zA!K<^RxU1+tK+Wjd~ct6`aC^JN751bHf6MtN;_Hj)sM-ib)eCys&tmi+>itBzYL>j%ymK(G8V`YFM1}R~P3Wlj>ggQoPV2mclX<>pcCJ8a6vdve`!XCf|pW|2s|v5hi+Et<{K*bRvNppB}%XK zvh7HPNP%<+7NmnBd&*mMC`bqjx>+9dw0H?2?D-FKcs~4iW}cZ@JoCBfL!u&ig=1W! zl3r@)qn>`^B)PzKE-^q4gA6mo3?n>dl$VUL$~bFGu+AhOnc^$c{E&{{++d%Z9FXFW zw1SK(<&Mc$4A-<#A`6xp8Vl4aHmLIzQ<(P3+}(QwxsSsGJRZ`-BU*VvCr|0(8QnaW z>t*E%FJwfH+bl89E9rWTVMRtltsLLQMaj>j{Xxt!C)HPqG)i{)U4elz^pQ|YEhA&A znG3b4cSbp`*$R0oZ}l(and9MzIalSWf=zCTwyf4gpR9^ip4oIFrun3&zT0G6^vmkK zXvgZ0XwNDZ_EgcTPxRMnMRa8KGki*`fUsSw6E?Z*Na9##eMT+6_>5Tw-MCh#O^16` itGHQq6Iz`$yY50XCjaope<*L+mKu~lXrY>Kf%5-Ak8%kB delta 520 zcmZwBPe@cz6vy%JeKRr8Vtn)G&5#SxXnf=(+RBCFLRtg^jaoTbDb7sl!f3#M`L9r% zMKD3gTo7teFhxOzwCE4DC`b@=A<{x5vQ-PIrLEf3d3Vz$9^CV}zsou2ZJsJMzf1@7 zUHIvyh8}7;Pl5}ya*;Fik|E0#E-^wM<6Nf9RaWSy$^dH&@`@ZE$+Jy?J+AScA$~H< zA*1}}x`G?(2t~ab9BC@zlMkLWCEro6xKF_U48QL+4PJ8mU!s#Wm4z|FvhoBIv@uDF zDLR>^iy8T)Sy??tk$FjOQQ|gtSzwtZ8Cv2occcUAWnGqYEJ~;4EtVNKrFxo`ekJ{o z=4d8>^+#w)4ahLB##Q%!Qq`kR+GkZ+kJ%}8Pfka#+pem3s)Ss%VxkVw1EV?7L!-B% zs?jgeQ=`*iS3Nf>iq?!)!>;~e$Mk_DZ%mSixaz%8LG;1sQKZr0li^p78-~ZC!Y$ny nZP)vuxYpkFvw7Kxwp#3J%jviHqH|8#;+uZqEU7x(607|SNUwXy diff --git a/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListAdapter$AppWidgetAttribute.class b/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListAdapter$AppWidgetAttribute.class index 5d8717b61d68b0026e5cb36edd83cc3ede1f6ae3..422df081a5555a1607f5e7878152e90d59557a63 100644 GIT binary patch delta 13 UcmaFK{E~UY9!5rk$$J@f04L=H^Z)<= delta 13 UcmaFK{E~UY9!5sZ$$J@f04Kr(?EnA( diff --git a/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListAdapter.class b/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesListAdapter.class index b58eac37c45dd28d42848cb19228d87f87c97231..a7c35e5fc2c81da51591d5f254835b446349b466 100644 GIT binary patch delta 358 zcmWNNNhri|7>1uI+rJny%zrXbW|Aeza>CeBB(h71IUxt+U@r+{7dia0Glv<)(M~y1 zPBcg4f}6D{M|`KRx9@r1-tW6gy-MBl8qH3E$iYl5R`Q4@UmY6D48`i#II33=OeGOi z5lc0RGLxxQDtuUL#6%MoT*_vuHZ-etQ<2s#bO)hys#8;!t%pE*38xPm{n!~GL39d3 zD&OpPxCvpLBqne&NeNTbFpY~@T9~Jeg~PN6yCHi?uw}tk1X~qsjdIqhXM0*mP zJdEJQjgL9D#k|8JyJ{x#!LcXqeZn}98b@;8F;Sf0;FJu`$mCp2T0DUlQuID}73 za5wS_zw+sI+ARUxNy5GQ(+jmnp`OrqR;AXl_!m*HLcdAkJ289^$0zB0k;OOJvMb<6 IeOep-0UqsGDF6Tf delta 358 zcmWO2Su4b06vy%Jl=Hj>@B}SpF zHOfnH>jiiZ-T}_l)35V+PUoCY@2B@IX10}(L@74Pa8gbd6%seMn0)eU-f>iuObzMO zl0zMZ`W6uov1}RjSZTmcqqwY{re>M7)*EfA+exKEKCB^EH;DwX(1VL!a_OT$b1?%_ zYx{B!k-{(@MyO(xCdTMuoIxg;V45jr;w9<1CjXqWkg|DY3(6L0C9Lh16fSFJg*8^$ zW}Q7YIA)VmO;L6vlJV`{*WU-Eaj0WNbiE@o)wns)Wl!-Dl>_@#qUfM!;&FtHb9EPb zic7h51dVGFxX}(V`Evw}J5~1>JV>*1H~&%7lj>*f_(C?XNgXqjyhCV`aNo0b&{MVNvnE<#F_A&C+GhKQD+ zJ%W}#K||2u5UzcIR_89ya4(kw_dEm7!1Ly^Cg&I<#02xWS-?kxFpDe`Wu2w>ko6_4 z7~`zsB+e9T_(?F!hC(UD(t6p{Y*A&KOP$y3aL+DJWO-qaSN8cJ$0rATbI1=z{F3L7 zV@8|^oQjR2OjD8|XA;&uLRnU*NQ$atT%1dunv|$ZorYX-Asw2gZyyHQYJY=8N9}L% c(q)F8cDN&^5=o3cf1tplF^+;fn~@{;4<2+hB>(^b delta 249 zcmWNMF-w907=)j95ClJU2podQL9x=XOv@~yEG;Z^(1J`&6cO4YbZC^mv9UdZ zmVSXl(BcrS{eV{I-s$e(fx8=dN8UG&F*S#cAWlL|GEaa7OcvQB%mI=2CF4`>O&lyU z!3xu?GDA$kHFa^t*4br)90}T*9#s1z8Ial{6phFeJm5(%mNcm}3CB@(7Rs delta 39 ucmdnNv4dknGBcy#80#3M80#6d85<@ivw8pk#%BqX delta 35 rcmZ3@y_$Q&6Bb6J$xm5w1x*+@7)==j7|j@@7|j{987(F!vw8pktcM5W diff --git a/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$8.class b/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$8.class index bcc1f6d29384f024ab4c62c97489cf216fd4b2d3..4fc6e67d02de226b1068cab0d7bf316d8568a44b 100644 GIT binary patch delta 35 rcmbQnJ&k+Ac^1Z*lP|F33eINWV4TAsz&Mvdig6x;Hsk!seykn<$2AG% delta 35 rcmbQnJ&k+Ac@{?B$ro611^pQ~7y}pt7y}uk7=swJ8G|SLv3dXitK|qC diff --git a/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$GTaskReceiver.class b/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity$GTaskReceiver.class index 50533378302d4b3cd31c541fc8cc67add2fefe6c..33d53193dcf03ed615423aa59cebeb72cda8daa7 100644 GIT binary patch delta 49 zcmdnbyPtQ%1XjjVlP9t!NSe3 delta 49 zcmdnbyPtQ%1XjlE$rD)gK`7>gNHfwTr=*<>!Z6rh@Xwg3P* CeG7j8 diff --git a/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity.class b/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/ui/NotesPreferenceActivity.class index f6e1ed89ed0e8fb6f8865f8cb83a96b99c44b926..d1c5a8e805f3fe6c890bc87e3374d856c9de3c1b 100644 GIT binary patch delta 702 zcmXYvSxD4j6vclRoZN6rr(DW3$8wt)Lb5b$RckUc$!JrWw9pJ|k}*LlGc~cowEvI< zNeW4rwkoCMi}h3y)swxnXbLTaR!`YWx9H`&_a4qU_k4WcjC00$cYCa)8-=kQ)?!RJ z380iv4iG~bR?1nNTYf* zsmEE>HmL3#)tp!61!dLKjG>dq$cP&bxQaKO1aVFGc3rZZUU)-+UbVc5nLZZLPa?NS zW0W;KHaace9Z&J&8DYF2l9yO`MJi)t@&*U*DPn>WCN=n!hW*5GK68REwD6U7tsQ*R zWz+QV!x)Qi^ZljQn8kWJ(R|rB?4#PoXs66n!?WWzwXc&BpHJ zNAa!r$VGyrP1WthiGfW#tdPr^*+6kgV_jVpN_blj9V6RH|$KSZ_>{MM>G#|OQ&yh zo;$`=;(+g6wQ&z0?vJ>WQl*;*`0_~A9}~k9Qh2KB&&c5g`MjivS9+S)dWtvH@K!gy zQ={+I;s-VLk==Y!JD)kmG-vptTfTBl`!T-pkQt_!Rn`whe`@^A72q&|%8%hWlZ-^B z42fe7zT!ogn23?NSi~Ev<_z&6M|>#|KT2dCl@dU$1kx%&xFv*ciKb8H8^0_bQ!FNl zGul!wWts7pL_#HrC`nem6w)M>Oi9NfcJgE~Ws-$cvT?}@8ZrSy)k67RxX02mT0NdnR>%)Z8kM2 z+F}e?+rrz4kPgK=NtG__dhR<==$tm7kv#Rl_ivceW|?W*o1J8EdO z{AmKXERa@N)1BJWzt{gXhjLS3hJ8#9nB$NzN7x**%n56pvdtM8&dE{K#|1SmX>!FA z*St~UoiYO|jJV~CJHDy%!#%&$`Qw2Jk1|a|{4`~jX9@BmA#E5XaoUowc$Hl`;?fn5 Qg5>G-CxMvAl8OeMe-0WmJpcdz delta 230 zcmW-XKT84u96;Z1NU|aB6e%!4=}5SxCf>%ns zamfc)d{W_yYi3mW#^#4xez{{#O+4I-mj_vN-eEVzkBZ(Gim;v3Qm;d9mq^ M=YCB@b0Pu#57)~ri~s-t diff --git a/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/widget/NoteWidgetProvider_2x.class b/src/Notes-master/app/build/intermediates/javac/debug/classes/net/micode/notes/widget/NoteWidgetProvider_2x.class index e33d1c04a056dd7171f341355a871751e9c40b6a..3a45c2dc0f35a1890d48402cabb3a4a8bdfae019 100644 GIT binary patch delta 41 xcmcb>d4Y37Eid4Y37Eiq;?vLlV5Qc{TR}c1H8bKEitJX{N?$rYXsjn}of%7?>Cs7+QeVbWOf0yjT*%Vo+dU SU<6Vi%UPl99>B3?+{%us)z{)yBn1SKM z=BuoXtV}x@C*R7>Hm~Mhz|Lqf*+*E9!`wX4*x1-IadM-u7bg<~14Ap&n(oP0g%?YLSPTjb S42(buWH~F8ePZ%N5p@7VY%)Ip diff --git a/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/model/Note.dex b/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/model/Note.dex index f34ea1093b879f2aa1c2ad84ad6bc5f0506f7136..24a89cd855a140b397fee74a800ee5eae153572b 100644 GIT binary patch delta 1009 zcmYk(TSyd99LMqhnRRboR?$jC%2kO{+SIg*;1&r%37Op<|NWoYnR7<{WB&Y(a5TBJ ze6tMR*=se1)@H7s+G;lOkx^;5hmo}Z<<;v36jk|I*&6q)miEWnj4l8aR+ zL@@#=!zNTBi0#;c8tlPI#PJ00@f8cm=J`P!!fEv50bb%mip1n6L8XdhVFQ|R7BO7L zRXoEe#xRaaOk)OLFps}TP7}#Q4hm3$AnH($Hnigm`fxohCNf00k72yR8+^n!%;67G zeIm<{hb;)A22JS1DO|uMXxzeGJj5`bV;pZWgIPF))z&{$ckCkTp2Wx;*UTPpSBa5` z$Ib)P-F6-#bBbm6@a2j5k0|o8iTS2~F+U~qhl%Og`m;MvHS6E*a&=e-Jh>{OcX2(g!=8E-)h|4` z6)~P}7B!S%$+6OW@jHC7Mz#3lieh1ID63+puPeGb(%I9~axYS1b*_{O?ef-^bo29W z@l{2m(xgx7AcTE5h;kf7H*R7aAMgds$VjCh^|*kmxR00klqykKB>aVUok$^0pa*@p zjvIK2XPCew-e3l^n8y-+!<8mtVk5Ra0|m2!2^sTj!C@3Eau=4CT#ssm!j8L_asJoyG?d+R*4Z$ zw(}76WIKd4=FO)#Pzy=H9sNqz(jq5%x4i+Twaqomx;c?dj|TfP1{ZS zBHhF;Ug%9buC9(3>AR55;4S z5#6PIuASwm@?*aL!8cRyjS)xY}y)4uRs)?zsa_5fBrTCe~9Z5~9zAe;T@O4rsOramb_@YoX4JQ*#H) z1WF2eG8th}Q!!&pJ8;xivouDQ{aLY?Eo*4>*H*gNa@2bNQXj5zasMR*Y{VA{L{MPQhQd43bg0vMcSr| ztc@3WCt2hSKEVb20bh#9Tr5He>rscT*p8jpjYjN63tG{R{piGNIEHih4O0RlbC8dc zfJ9^?VK2Hdi1YXz3DZO}VPhS-@BywNz(reFjVf$G6T0yh&fp{bh{RNG1Syz-naDym z=BGwPatZk;L@~g?FK`|gF^(xSMA9(_*|;5fSc2tPg$GfI znh0e(^m{8_LNDIKSzN%cxQYpQ(?l|G2MSS!N<504Xh8?Ma2O}?A%^fNMlgme_!p7* zbdh9aA_uuBLNQA42p-3iXu*qk6+JkK)A$U-_!d9G$lx2momhqt%29<{)Zqy{ogo!+ zfN%r@7{t#QN9;^43|Ux!rC5#-%21AK>_HDs;9U%17(X~cPrY|G+c;4sk9p4fp45o$ z_-H8PlKs3JlM{sPBC%LZpDieHSnba7lJ$`Uo%K4ruIExWo1E*+J{O(K$$A}qu0M;d z8+ZL=gR?$n@=_KvL|e8nT`6JvqWyq6d8?{#c%YeYN!9E2h>)_ zn^>e8oi&LiYG3qVVun&jqHlXQEA_FH<10|ZPPK298g*XxtyGtt%hbP}1^!e+lAU|~ z3sr)%+n=XWoD=@rrZpIRX$>AqGf5@;uFRK<&Y%83oTCraa}&wWki=|UD|XR z(xpR}Q@Wf}v87dSs^e;%S>ciARKT`v`9>L~+f44$G`uQc%4Vaq%CxOetrfOx%a%sv zDQ#1_Wm$IEmT|+l<$zja_JvQ&vr5dvn|66*ZJbpb*2j)zcA84}Nsn_VY3_Z!hH6%( z^<_|AHjIi+W!75#p`Z*HYMU9dLcx9+G}JT7426PLzw9?uy=lpJlcW9em7$I?#>g** zI;zYjYllSBlK+|-e^~}q9f*j}e^@G*F1Kkgh{{xOS|AYVl delta 1579 zcmYk+4@{JG9LMqR?>UZv!gB|n{1K0&VGHG15CNKZIfcd6#lr2H1UYKS98RZ115EAA zLS^NUehpYkOKC}N`G*rXt@($PnXNXhF>_5VwLh*u3zuWHTJIk`Z9co#_dd_}_uKDz z?w;S>&G7Yb-pa=IX+l>SQuTM^>+ZNTAyE;31SKWB|$dc>bc{7y1yR;##VHo6Fbq39=wYW@ELxBCm@oG zVnhNGlLo?8?7;}ea2wv4BH37g<>v|$roMGtmkKMvs&jN%K7;Tp!_$r8yxF7ogo9zq$ysKC>x z#d9%AGd7|Vy%@v^jN%G@#P66ua<)h&=AjhTs6`W6(Sf(ohrJlW8Jxuhe2wq%8~#Ep zVU~!EY|KR=7GWtOScMl6LkHeMKL#*_Q}`Sg@eOX`Uu5Kn%tr`Sh@u{iSdDgU%aJ;eD zdGf4YkuY^D3mBp;YZzYWX0ybjZhnaza6 zAGtzA-$_WDYu2o!Z$A2a(Cs}eu?hlGwjW0`j!J``V@bu+solZ?z ztX|R8DNm`+cz;TcQUmehsq2(FuM2$T>XLrmSEa7$4}BHtw*HlRR~P#;t$)(=6aI%) zqTcK;QGR{IKY!+B#g}%#qI^qI>AvxKa!UW<55!KI<_S|qO&Kxek||@R95iLflrK#= zX37Oq;>ugoa7Z0i^>&>{x>O((3dzUHs%f!h30DYYNt0F6V27MYlhf{moRGA7YIZ5p zahy)RbzGjBF**qApo3D~R>}xY;f}H5~%>y+1 J-SqwB{{UKS`BDG? diff --git a/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/BackupUtils$TextExport.dex b/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/BackupUtils$TextExport.dex index 705f56a3f28d2780da6ea9fe455c13548ba80a49..422d4678976a987b5576423d4787fa0c1e7e729b 100644 GIT binary patch delta 127 zcmV-_0D%A8EZi(0WMy~?Ff%s*Y78a$k0yD=jf=?WnekwbCM$&%QZ}Hiu^>qc0*L~X zYYRmI&6BYUE+2LQg#iu#tpNdN4gh!n4gw6|0H6T@OAb84ElVu`x0C)09Rbpl91JoG hh)V+mN)~DQ1q3CtSqzm32r)BbWivD}GPCv+W&zfMC?)^^ delta 127 zcmV-_0D%A8EZi(0WMy~?Ff%s*TMDRrq+BWQx7PsI(2p5hHv&%=AABLTu^>qc0^R|W zYYRmIp_8!-E+1F{g#iu#hyej-4ggsI4gw9}0Du7jOAb84ElVu`kdyuk9RaD691JoG hhf4zlN)~DR1q39sSqzm32xKrcW@IohF|+m*W&s|3CJX=o diff --git a/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/BackupUtils.dex b/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/BackupUtils.dex index d9823b21808570ac0c1968d2f4e4168bc05d4e49..c7def1d9e0b74204137f2198545c21ac3f863922 100644 GIT binary patch delta 105 zcmaDL@jyZ$CAEUfz}TE2L1^x&-4+qsgzjxvT))j%Xph#iO||d8KHI49iB&|CfsY{q zh!cQVliAJPgOB0OWHmNp;R2vQ1`wMvYFT?%y0J1b_;1c(Tg}2@nr3cplxC8$S)SXG F5dd^0A2t90 delta 105 zcmaDL@jyZ$CAEUfz}TE&4*$Ij^&CsVuW{#&$MNsjDyMuw_pi^@nvDvdSVhzs_!vBa z*cXV^ncdty_!#y~R%0_34h0GX0N?(E>7oZ?{%=&+z{9v^@Y$gVw$!&bc7#%13^6zI%n9M66&X_V;RUn?xbaJaeAY=aI>jHjm z?--eS8SD5M1%;UzB01%l853o6Gv#d=Zh^#O`97hF9s`LsGolNxpPVfy#Waa=a+{zk z(^96%YXy}JKQb{+WaQKJ&SYjNWweQ5Wnj3)1kt>$qz7cGt}ZiBg>a^ijXWzOLkrVn zMj?B%{Y=cgj9rYOeA{35f)!;&0o|0q&nP3v%4o}=!NA85&(h0SJc%)$FN&FA9wYm- bX-k)GE*H|{=15L9F)}ttG26UWwwnYkoxfP2iuemgP>iTr!C0wtT>MB>7 diff --git a/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/GTaskStringUtils.dex b/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/GTaskStringUtils.dex index 5888fc6876d7480b676fd60b11aa2605b1d4240a..06eeba436b8a796d349b408fd219ed7193304aca 100644 GIT binary patch delta 62 zcmV-E0KxzC7xWh(WMy~?Ff%s*-+RJ#KH|vOExQt7>WlhbSKQtTe~`@;u^_Mm0T;8; U1F{APF=R71Ib<|5vx^F80a_9nI{*Lx delta 62 zcmV-E0KxzC7xWh(WMy~?Ff%s*{(A$^Ms56uPnI#9e+5dOmdj9mzrdRVKnl>t^FbVlHit;f; ifCw`NJ_ZX0zW&W&OeYyR3{%b1($Y-LHmkFUG6Ddq)fwLa delta 79 zcmdnPwTDX~CAEUfz}TE&`VBox6AQsP=Qq@I?>)hnylgLPnZyg*7aJ8+n1pN?Mfn&U hK!g?pAA>dnU*G01rjv{uCKicimZ^#6o7GuF83FAA7FhrQ diff --git a/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/ResourceParser$NoteItemBgResources.dex b/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/ResourceParser$NoteItemBgResources.dex index ef2fe6c94b5a130de1180491b16c0ce41f61b956..dcda433ec7fe82d3b5517e13bab64eb1494e5a67 100644 GIT binary patch delta 410 zcmXZYKS)AR6bA6`Jbk8RufnCUNI~cyL_QS>+NvcIT%Dv+2wJR3gve;fr9Y1=giAC? zO$8P~&=fT^w$&0XK|w*2LlDt-r3b&m$9?yn!@aNmcYipSFSbv_k~r@;XeOfZyO)R3 z@!0rpc6BA2YMiDT%T72Tbte(qxOW3b0*tzVI89NSmZ(TOv`q!0R{CjF2HfR}uL^EM(8)gxPG)dVuCCPO0XMuO6&o>@E9w*&_Q9LV2T zgbOo(bTJ#GzdjW;u9G3|U}qG%^_qoCVX2AqTD+aEXRUhDs%x*lt)|Uc-y8>}siGWndp^RxMhFP9t9~Lkv!1MXftfFd46}=Kb*?ab{@3-5@V{PX F{sXEDL$&|_ delta 406 zcmXZYy-UMT6b10}lBTq!w2BU56jBt$EhSX5I0*F%qKg#7Mbva~Qm9x(B!dM}L>e9r zibEV+1Sg$z5Wzn{P)9eR0Vg-zJP#W9T@LT#Uh?AXSGM3+cQUp!hO5-V`cm)Z?8ihr ze)CXvuU~8BMc*{aNUXPgn0l_9e A$p8QV diff --git a/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/ResourceParser$TextAppearanceResources.dex b/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/ResourceParser$TextAppearanceResources.dex index a49e5878e1c16b8b623031570891e0544caeccfe..dd23cc96fd150e3ade4904544b2272583f424bc0 100644 GIT binary patch delta 80 zcmcb@d4*FUCAEUfz}TE&?`8h`Vy?zq7ixn4Zc5udZL#4gx29RXXErLFU=(g(V&G%= k#>gnd7p2GWlo7~zy!kid5k?NPWb;JB6a(|k$C-H<0lP*U+yDRo delta 80 zcmcb@d4*FUCAEUfz}TE&;pIXVt8IR(^fr7oPc+(p)@Y5`(^EUv`EFD=!6>|mk%5n4 kH6x=CUz8rhJP>E@=HHA*7&%NWQ_T%c%o8^sXXa%D0JixXO8@`> diff --git a/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/ResourceParser$WidgetBgResources.dex b/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/ResourceParser$WidgetBgResources.dex index 296ff56e5608e7f9669215b4b5a0517d8bc006f1..64ae5cdcf0554bed0a010f7fd56bf64c0e74b046 100644 GIT binary patch delta 82 zcmeyv`G->>CAEUfz}TGO*CkHA7x#GA9cA^%S)?el@x}&cAHiy;l^Yd4Fp8dLWEAFO kxD6)vGcxco3A8cn-K@&AkCDUN)I2H4(#UM{Yi2=40KUE&QUCw| delta 82 zcmeyv`G->>CAEUfz}TGO#pSmjw0c2S(9eMn+*i khM8cpg^_`eiKmUBd9y0hK1PmI!xT%y6eE+(ubBlI0cGzT_5c6? diff --git a/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/ResourceParser.dex b/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/tool/ResourceParser.dex index 602aad6f543b669b1a89ddc3991916c72d3591a1..41690608daa3f94cc9f6360b8cd86fa35bde96dd 100644 GIT binary patch delta 69 zcmV-L0J{Ik4#*B5WMy~?Ff%s*9$dWAGb-yJ*2NB9kaj!O#=uqWH2%^IAk)j6$Uc_su&pe delta 69 zcmV-L0J{Ik4#*B5WMy~?Ff%s*?pn$volDwHJ`!hci>!qezKEL|l!&Xpu^^ZN2t@%T b4%5>B8MD9wO#=uyWj8o9IAJui6$Uc_kI)zP diff --git a/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/AlarmAlertActivity.dex b/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/AlarmAlertActivity.dex index 88ac5a92b0900a608df3549907b23d5f00c249cb..728daffbfcba24f4a7306ed13ab8112011678a70 100644 GIT binary patch delta 1083 zcmYk*Ye*DP7{>AU%fe#+cZ7=!1c~H_i4>y_$Iy%x zw4wuN(1mljh(3&B4xg}UwMa55(2FrV!2+DzV>5Q496nseaJcwon(zt>uq=@b>_sIy z(2EgF;w>C5k*&zbJ`|x02T_T`ID%RiG#j^K1=6W`?l%cq${f!#bchVub}fnpmQC0)_!kp^y|)TjFPZO zP7mbYE3!U)xhHrTu6$)Nvs}IDk6C_OGcHE(`uDT(?K2l*+L@9%&b= z%2X|`Nz-UhC5=^HudhY7#O!y9-p4A_DQiiox$(;}*PYKnxvIqSnv&!2c^iF=o$`=z ziN~8K6E{N>f`c<^YHI4UYwPWqsIe?PKO>P9%l!1WEo41kJy&NSFOr27s_RSS|A+*p AJpcdz delta 1087 zcmYk*TSydf6vy%NpK;AgJDV3+rPQoUuvpF2F1EglmKN$j7_+)>o?*jxFuZoK%zRP)-&Zxb1z&;4EL3F=2zzBd%*6uA~DQXDH%fd(|< zD4NlNlL(;=XK?}DxQ&cf zYq1I2QIDetq7CP98GRVQASUnz)A)+tFylmGkbq_IU=7Mqi>BRtoW@05#Z5fKINsw6 zzQGYMl7uvPkcSP}f-3Am15V)#&e?^=4Ry<>h1cW4LR=#bAgW9nMeeI5XQhMu-1T z_>xz4xw%xmwU3$ZWZmbvkYwl;^jSKO+1E{XhVIOxT8L?~UP0%X@Z=)$m_2DO4e3b_ zRXS$LIpO?sPLAO8|1O+!k6QPA zgIy8dRa_q}rDr&val>W@dm~2;)o#~E*Qp-+MRaCpmslO9?2MBYVoAF)3XWT4K~qX% z{Xt*4gVj}y=2!jl<5$o)sv!&h5w4b*8@Il&(F`z>U>XT4uXIM0%W KCsp@oC}geGvr$2c#af+#k3k8D zt(o*p`Fxof^qIDm)G{;aaOr0IGBay3RWP$!b6)XfX0v3G>ttrvV76gpW@Tk%V`b0Y WT*_j?!eMHdVqk7+W;A&t$9VvqSRCU3 delta 119 zcmZn=ZV*;TNv+^AFg9m6wDppS-poTD-wwn7inqWHf^Q{dPhc_xnu~;iI@G-~( zu{M*QDW5kpgFe%?l3Hda9WLE0Z)RpqrV3_OYtBpF%xsn{a_!9Q8q7AV%&e@eY^>~A Xn@d?tSU3_BO;VH0jZ!CXY7tUMNv+^AFg9mkDt^_)^zi$g=RXv~PCIn0wh!6+W1+N#-A09ZEJksR#(WHk z%(~iId~(bT>O8*8j7l6I4_~s;1!9Gcr8${EruQWqB}P$xW+qL>X)&8Wuy8VSq!}6* OS*9i$Y-Z$OW&{9!SR-fv delta 111 zcmZn>Y7tUMNv+^AFg9lpENUw7+%`#m&)a-m-^K^aq;(ano;Yq^vr%Cli;)kbF&~3J zv#z!lpByuTI*&IqqY}r5!3zvYfl-v7nMspzTGZwbES$_7iAhPO NDamO@n;AKn83EG0A_D*b diff --git a/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker$3.dex b/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker$3.dex index 2d3dad9e552f6da5a86a6ce76bedaf6fe3ff95ad..b449ecae7a9d07bd0774e375ddd42f7090ac112a 100644 GIT binary patch delta 532 zcmXxhKS%;$9LDkAdv~5Fcosq=NSyt#EG+8`hYG@KNNtIhB!toi-CD$^B8s*^jzq$6 z2wU8$A;<`#z(sI0C}@(FAjq+x=auW=!+r0)yZ7FgE7*&6cXB&x^=m&g+W+{EEJ&%4QPRa_W}@v z8JLGf2*V1jLLAbNfde>!Gq{8+cra0jo)9n4f^YZ*vrJ@z9_RxPjKdr(K^WFx0}{HI zEo?UU@`(sLq5sCsPTO#{06!Gq-Nf^Dquu0Jc4712=#2>l&ilszpi1||KRNN%xV?@`F zVqGv#Z3VQ+q^9R(kL4V*UO-iUmXD+STY^e7f$w#G4w~2@uUGvs zCoW&7w1Yo+(^TAGkp>K7%Mc?eS*{6s0qwUsI zp{v4*;#-BSOYWNWK<&Ck>qqRZ8V<;s9vX}WidycfqE-=gM_cz)Dw!Hdowm~%?HN$R znZ?WtuP2v2IoCDo#{As86Q4`C`*zf~$BqS*-Ou*c6Z0OcUu2YbnLoxuo0FNRgf=sj UXw9gm%e38DH?x@|nDsjS7pPTNVE_OC diff --git a/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker$4.dex b/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker$4.dex index 288c6fd3521005d5ff02156982bcc3eac1c7afca..6e66a739f49d6b5dd7138003fecaad44ca02f08d 100644 GIT binary patch delta 68 zcmcb^eTQ2iCAEUfz}TE&(s$Fq+XgD^{HE-Wl2t@a?4}ETmB}`h->8tp#J-1-QGt(P Y|K?66Hzp3_q{JkH#MHFS*I8H@0pFAqi2wiq delta 68 zcmV-K0K5O(3)~AJWMy~?Ff%s*3;Oq+;2Zjc{2PlobmMs0w=NuzIs$KAu^?gs2a^E- aAPxYQvxx#m0thuQH8VCiHDa^Z1O)+*>KBXv diff --git a/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker.dex b/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePicker.dex index 6d2a0a4bd64e8e550b390f2bd108eec60e7d99e0..5aba17726b38ef434da3a4c9daf1370677db6e12 100644 GIT binary patch delta 482 zcmXYtPe@cz7{$MH-w4`_SB1dJg@Q!5c<3OcgLiTz({M-BsLh+F!eHVUE<#~mi0LMr zz(0#Cxz=b?Z3bUb&_)PaL_v#OC@Q0FB%&!sD6r^z;pTVl`Oe2Zms^UJVof7=y$fya z9dz-mSnm0I`*VJxa=sj0>91dZIX7_7e^h813*(k~9M(viFX28+n5&Ui%$PfoVJw(e zk#4M-)5tVlnETZUY??RK-Pkg}nIBC|_FdksC9;SpjVmNsLj)46hh|MC@Y9?~18HVz z60^-%grsJ%h$Yr{7Oy`QjBf$v+3K{m_#PdnxgabA*a^b-0iFlg29naFJ&2@cJ%*Lk z87cN3b`ACjnG+p3aV;lWa#_20&sW;@U0*ql`@}+i7MFabl&e%+DbJ>b5I5>Sz4XCC zM(Re}|KH9l^j1_XV=CoNN_OlE0$OsKs8OY@6qN;1@>ye+lT`~YA3d#=eM8x;aYxZ> z3zIx^JVix;sq@WGQGsQg8za!mmHafvvFT9=H>FKqgD=Q)%@CaN3ZfnJqqd>yS1`@y Yvkx}v>kg|bqp{5O&e4(14K#emKUi9X761SM delta 504 zcmXX=J!q3r6usv?1J-CWS+`^EUmW!1>;ciV|15tXrr6!R7W3FfwIsRBCgi*g9urJh19 zg9a33L<5V=Ey?!JV0bAQ+6<;_B;PSPTKA(x?^yNS4G-VFcLgY_nC?Op4f85w(NvYF z*N%=KyDSdPihaJK@WWK1O*yfNwzj-1QOB-YqP4DQog2!{ht%fd#{3zkI}%l8GGX#R zn=N!rq?(v1Ri+gy*1rLxcw6Yvo#!QbBT!PeG7)cn2voR@jnUzd4*PRf(~`tA&upye zvB1oxvn4Rv#HM%;409yEW^G985+_thFZ@GwjyVlGl_GlNwGUmk5g^4WX!9(e5^-ed ewckbcXpU%Y=Z=qETMthRo|zn&$gW}UH~a&!g@$AR diff --git a/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePickerDialog$1.dex b/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePickerDialog$1.dex index ac6117ecbfa4ac8880752cf70711381bc97a7a4d..ba3b36be7b56e94293e0c83f07eeef40a5134135 100644 GIT binary patch delta 80 zcmV-W0I&bt4BQMLWMy~?Ff%s*2Om_(7$_I#;>Jqc5|q~F&(?lQq){1qA_{78^nU delta 80 zcmV-W0I&bt4BQMLWMy~?Ff%s*M1c diff --git a/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePickerDialog.dex b/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DateTimePickerDialog.dex index 1fb01825d8b316106ab53d8da3d02289829c1655..d8354284316acd82f805bc2d858ced50dc99beee 100644 GIT binary patch delta 164 zcmaDO{zhCOCAEUfz}TGOiOPcTziV!I8dX3Qp> diff --git a/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DropdownMenu$1.dex b/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DropdownMenu$1.dex index 1cbdbb2e7326cb31b1e5575ee62546fc7dada3b7..3924d656c5823e172f9f0752e523b1e8f1321c99 100644 GIT binary patch delta 67 zcmV-J0KEU;3E&AJWMy~?Ff%s*8q^z&weKqbqF#>G!i|W?R}cfO($bWmu^_ww20Q^5 Z4gfy0;sNmi2st!kGc{#mWwYA@1p%p58S4N5 delta 67 zcmV-J0KEU;3E&AJWMy~?Ff%s*XVJ37)Rf5?^K0pC3o}!s%*Ja)X&^K?u^_ww1}Om- Z4gf2&;sNmi2sSe?WMVlmVzb)=1p$eB7*PNK diff --git a/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DropdownMenu.dex b/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/DropdownMenu.dex index 6c5293d3a4313504920ee7572c238263ec9eabc0..d4de43a0f362795f03c623c7d34ebe98d74a9083 100644 GIT binary patch delta 92 zcmV-i0HgoR56llBWMy~?Ff%s*aa{gZR^)a|YoGh<_u2M5JSsmT9!905Jg~4of`%JF~z8KLZG1GiEqtH83)h2M5JCtQzM4 diff --git a/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/FoldersListAdapter$FolderListItem.dex b/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/FoldersListAdapter$FolderListItem.dex index f2219ba2fd3a38718f39888f51fe590d9d2b3b67..23f2838ad0500d168a02ec171f53e1df5f3a90b4 100644 GIT binary patch delta 72 zcmV-O0Js0J3$P0yWMy~?Ff%s*BL+VHJ6it~R_m^Yj%1e->Wy@IEu^=}sw diff --git a/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/FoldersListAdapter.dex b/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/FoldersListAdapter.dex index c64b75d1ded47525b3b48d88093118626bb80d5a..ea1e0a6ac118e272a778629a82577f6bf1a249f7 100644 GIT binary patch delta 99 zcmeC+@8DNRNv+^AFg9n%G<9!wxT0yb$LL%vTSwU2#^f3C!G_;vZB+1MR&!xiP}JaK zh+|UF5Lq4zch_(ZCNKja zAt(+2Jpv#p4rv1bAq2G003iSl04f3?9}YbLH3KXlAr4EklmpQM2s1QeIAJp}WwUJt F8v$^#8F~N! diff --git a/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$1.dex b/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$1.dex index d76f231f4bb3a3cdeb73a513d43a4954f54c9a69..ff2557738bee510836f5ed444fc8ff9598797767 100644 GIT binary patch delta 66 zcmV-I0KNb83G@jdWMy~?Ff%s*>fNgCY$K4ElH~nBz=k9fq0X8VGD*X{u^_Sm2gn2g Y7!Cl+v)KU;0tR6>W-?@9v+e^10kbt3=l}o! delta 66 zcmV-I0KNb83G@jdWMy~?Ff%s*8tkv``}!_u^_?$2d)GG a8V&%kv*`gQ0th)UIA%0rV=}WB1O)*n#~XD3 diff --git a/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$3.dex b/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity$3.dex index 33ac2d5850bd250fcc8f3295a16742d922f99852..4c8a93735e71ea937dba4a9d5c8b960316005e23 100644 GIT binary patch delta 70 zcmV-M0J;CH3#GMv7&m$sh3k&@rf;p(LT~0pu^^BE22=q6 Z4ggfMwgCkK2r)G{F=AyfG_%744FS1P82kVL delta 67 zcmV-J0KEUu3D5~3WMy~?Ff%s*J>yli9B9*f@qug^XTX;LH}Udpp2QI0u^^BE22B9~ Z4ggKFwgCkK2s1Y|Vlpx|W3$5p4FP1>7f}EJ diff --git a/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity.dex b/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditActivity.dex index f5b5de2885c2b8b216e0897fccb1a871a2b5770f..7e84fc49767d4ca6faf2d7dd625c58a56aa44014 100644 GIT binary patch delta 702 zcmX9*O-NKx6h7zNc{5RQ-&km6&Ac&27ehZX{?ydf3WAUcYY~yJs6`1~T}2>oAkszn z$gq$XFL7ug;|%?hIZqcA7Aa{MAyX2%N*B_iKo?20sjHsFz2~0$anARBXL=B)2QhM` z+1glHbpYn}{tZtxU(R&3Ha+kAbbV#0chj}f&EJl{jF@qH;CF7s%juEd$;4wjyM4et zGi;j%ED?T2UXW&4R;uT`^CNzgI++uzGK@*YG;s@ybjj!g`A*q(SJq;XBV9-lajsU~ zY|m@J;f)XbiBnl#xcdcN*du6r$Uam@sgQ{~bSe&6bS`8v$YUTYv#+F}l8^?X95Ox} zRTB&$#&S7tIOh)M;Ex};kPLp(nd+19G=QVXZ8^US8Zpl}Tm+t4Qt>;LRZ;$A^;$b< z%YY4yip@Pmsa`0aY0^zkz(dXHst&hj2zavLh?`S-X0SwO*h6tF)-{ZHBeJbSKraLC z+FqehuspXHOV=PwX&<1N&`_g@tBQV1GJ3|M>lK-n`#k7ShRTQ#kX8wXgPsRp{4_!1 z#KnTdXb~30b*lyD89rt_$)JZ=i-|^X0YgFDs$1jAr+hu50ZR1@R< zh`&^q)-e$gFzfWxRN{*BzNX^p9Ib9g&3vb53yHgf0*2PXYDwx(x1=yq8bY5^u5jN8 zXNe!P>pYC=FyW{BbeFho8Rqgb%qY_Y+|uYRx@sfq=9vPz1J3E%io}Z2QT7|rz7E$zqLMZV12gI9*Y!N+F z3iZWXI4j8+v67T|QY0BPV!06+TO{Pdepm~mY}KY8*YPawJ@?#?bH4L^E7Q0#jj^lO z?7c0iEDSZbnWcT{1JC~)?a$AwM%wc0_uelyw9mw>B)!$#o5@C6)7*#2#E}XE?psmE zGN3}ZjJzVPSV5}ii2E&hf;Pxaqzq#YF;Cpaur3)bQs9i^^cQRfMbd>7hTD_6)%Q67 z9R4yKBTn@t;WZ2DJ|?I(;vDaw8xac+>lBLEbU9)%C}B-O7G6j};fMwz4qq6~s|kh> zm<$3JlED_8OP_`hL7YeK$c=h1vBWrB0G|7);#aPqqH$v9svcA~?trP- zloh2;p?Ky=w|oK10e2uB?HeNCW><$-RQs&rL7m|+C9zi5FzV0B>$e5`PzcZQE0v1v zdmh$RAx!N)P6?r*M#fGth$f>aEMBcdWnMP>u%rZ)F(F`GB^V9)KHLe?8(JVPK1z&- zF`U%xUYKGy$+*d2n3%NC2yI{_g!^^7taSRPh~XjK6GgMD^Ac4n6A4UAGy7ZQX zAz;8A&a~i!`#RIq^OAPlQ8P!>Od+u$B;e65Sec~$bX%E}(+~#LUJ6$xTqAzc>F_bG z!*7iq(0$^LZCKmea92|pmN&Ev9+40mxE71+$3(o*C1`u5^@`!Y3|e3IF6RywO%pyWU}dGHkIuzwV$u0|Gikr AegFUf diff --git a/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditText$1.dex b/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditText$1.dex index 6f0d01c4d0dbf86a45d57c37c82f86742a6b3a29..f521fc7b283f69852bfa5dafa1a0636b8eec987b 100644 GIT binary patch delta 69 zcmV-L0J{Io3d{;1WMy~?Ff%s*xbfRR2<-FiGL}v$DtzAS0NMEhQU`#ju^`X^2>1a3 b6b_{T^|SZ^MFI$8GdVFgFgP-^MFa-{*~}Sy delta 69 zcmV-L0J{Io3d{;1WMy~?Ff%s*1o2x|xmGEMyhbWzY%6)=s8U?$F|A;Nu^`X^2+;un b6b_{T&a?OdMFI$AIW{sgVK6tdMFa-{bzv8) diff --git a/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditText.dex b/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NoteEditText.dex index 5b91144c87eda2cb252ebb17a9d3db2d40d361b8..a84fc127d4a94910e9ef98a5379c291505a245ca 100644 GIT binary patch delta 357 zcmZqBZO~OnNv+^AFg9oCgl#L1%?2JB>XR=>s zESOx#F`IG0WM0m6#ubxGIprDGPoBytFS(7Ifq{jAfuX>Gk3qnQkAa7QiGdZ!-#7Uz z=X*xh$$Pn?>xFn27?^=#k&G-1d_bBB2thysDjv zQx=;yGjk45jHQgJnw3EVq@IlJ3`NXdo<4jw z40k5);}+xbWo9m7I?T+{A%`2n|xhW!~<2ABz~tTqg%8JPq8>iK*QPw%v0NM=mt f(`CqF%;nSFEX(tqgTpc{*)Yl6*l@FqXbK|$CB{;< delta 342 zcmZqBZO~OnNv+^AFg9nH%l+`BsG(5p!@reN>sH=frD9-m=C?x0zKseM?2O)%XR=>s z%%5DyF`IGzWM0m6#^sYsIprDGO`ggrFS(VQfq{jAfuX>Gk3qnQkAa7QiGdZ!-#hs% z=X*w$$$Pn?BLsOE7?^=#k&G-1d_bBB2thy`Djv#JUP%-2oA8 zAnrL3>lKLj0V0%uIGV}Wl+U&T2$ojpR#bE_3JA2fcj~qu&TQB9_tv*zXk`RilbLx* mSHInxnIWGsv%R9-R==W)b+Z=tCpNakG>asYw9QIFWsCq7s5y`T delta 232 zcmbQCK0{q0CAEUfz}TFDJ<2)A!shmcEgK5I?fd=eUZg6g$SSe@%o`QrxazMlGVn31 z0};1C#4Hdo2}JaPh%OK@4@7JO5%(AwP5Bu1ftbfY#5oXg3Pel;5tl&3G7zx}L>vMU zi$KIC5U~qH$N{lGld&nEO$87vt0`SqRU3NVyj5Xu^W-OJ8!n>*QzGTQ^2*<~}`$gb-?xLY0=)BMSwYq`i2=4y2P znc5TC{1PFNggm)5MU4k63W-KzGG+Obf2kEk$or@Bz^T{ye$MaryXW7xb03#IEt`_q zkn&fCYNT^t>!I$V+mYQ(*3T~U8MDC*> z0~o{*hB1O~_<>)L(IPf-kc$9G6? zBB;j_tiWolMGLl}9UVA=)3}UYJi;)(;t#xIMf`A3fKt>ThK4k|CaggVwjqUs=)y@{ z#5LT+Lk!?0MqrPl8yJs?n1*UZQIDlqh4t8so!AeHE_$I8o*gBP^fZeDv#lhX3H9%Y z9=kcAe|v&Uw=m0l6F*X9Qz?>QXDUsWeFPts9{$_R8k5Z$GjDPy*;J!TC#_ie1S2y! zD!^HCm76b-XSq4^-x_nzA$R-+dA6I)UDc2$z-)71vblP#o6Xhp$tjq+Tcl@(J*0dq z10r8|JGDLe*?mf7^q}{F8rBzbLh6$q%!#Pqy2!U)73uxHVpXEgv7fGQ`Qj>~bNwL| z*9-i?xlt<`+v-T45+`m+M9DgF@OGTPaI5sbn%ar!GrLv!}Jr=?}{$wb5xV=SdfjTIJ1|S+!x-y2_ereRW*tf?gik z^!uJ$pSkrdwUJk1<~%SPe-%>CSSdA3Eu${fdjsvuO-DSF`7RhS|0XusCY!Sh*__3^ b+$=ZO@@tFl!>lo9%67+16NGWIzJvT1s`9r6 delta 1252 zcmYk+VMtYH9LMqhbI-l%z2?z*b2gTlwMYcbx;pQ+i%ZR}a*13K-7d3C9d)B6HCc{| zYtX=&1oDJM1Qlg(5{e9TFPm%-!HQcAeNk+^h$65S492R__aEm)2R`TjJI{H}InRBb zd(OSeJCzl^-wcFmBMnk^Xnxu`mi=yR&&=mjWeXpV<`2C-_v*y+j**J6862sPWTLLf zf*g@w@>`}RIBwt%JVP-9>&5^s;5udyE)@9!UD$`CIF1pF;xx`;4CA^h4W+F^UVAz|XjeEM_nVDHh2?F-oxntI&ite1$F8h8@_8LvXk>7q-{ezpR7x z3~-=ZlB_4pyCZJy6nDS^MaD%}2;u z)v!%F@yrQYR&uleXUMC(e34w|krKD3jYHWOom0CGCTDXB{|c^T(Pscx6Ge*EH7f7+S$Ao^U9V5d(6l7aIoAgwddJa z*&D%xX|e^Oh-tS?q0(f7(;DC7iZ$XU9BDDqF0Pz1rq7+Okt4LG{qlWLd38;~Z@R+E z7dgJQCY^1RPH|Iy7U~o8VWH#eoA+YcagqgNLyZAnz$uq+?X^(t!WE{~O$=1WB !RXwpWzcV+lXM0_5?Wc9UcB*)&X_8sczre3vz3bJ#s2$9bp7TLBz8=y>+j44@ zT1j1P4~GvVb&-6FMGnxS9~eK`Pu9B&S?{9r9q@8JSL>^&ee_N_Uc0V~zNXrLko*>V CdbZO5 diff --git a/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListItem.dex b/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesListItem.dex index f8c2de323b9eca0e9220479e042f52419d769640..5050cf580b4e3f9624380f882dac71ccb2b029ff 100644 GIT binary patch delta 757 zcmYk)OK1~89LMqhY!kChn;0KhFR3YFn^K_-eTb5XD1|m6Dh&u*sRmND8(#;7)*b?i z4LNuyi&4Q=L4p#&2dQ9-pduc8oFrI-7Y`Ldf}lhcz4+Z2!GX{6o1Op8&dhGvU-7pj zM#tS<-J2vkQ=DAr|9$uBJvBIxkCv_PJzKI@-1C*`mQ^Y?-P@fCyG0&4M7Gz9M6nBd z5yL(V;~)|^g5$^_kH;vX0w42qB8mhiZ~?dQ3a$o`4(ve!hmmZMl$;=(!X#2Si%YnM z9PVHN&+r0^_=s=N8bzAWj1Gjc8*!XQ2A7e;6THSEKHxLHG!BXUAc#jqM*w};h5-y= z1YhOd?B)c=EcShltD4JX7n$RcpJcm+UCELa z*P1rimCNYa%d;P$Tg`ec^D5D;8EyTbUFoN{5F)ZhmYWMD}lZY~lX8P?p?aY+snVJwO ryw`U)_0g{Qq0N1XUaQqR8?<+(u{=Ig^$)d|YM*Gx%fgoWez1!xQ{Qph{#n;y8?>Rg#fj!bzOQ8Jxoq zt{{t>n7~6!VH$7o1q<+cL~0R01iNqmeHg$nvY5nEOydnc;IpSw~9p>=edZ1F#S+|ItK^1g!f^8Oko$V^+Ph=OFt&wkJUBilG z*6Ok?TdgY>(bH3#Cv%jteq3i>C1Pc5ftarJ(^(8RcbAv5kG!Is>&X9VR{fXPkyn;$ zBDo6tEv3TNJx5SovSu8X8qM`NQ#SS7nsMFUmli|Ts*ur|$m=E%M<^UzW8}?be7&mi znx?6idR1+8^hVws8+?^8lPU9HLe==LPi;%;?x8}f^s2DYZkMP^6cU54FPtAboBQbA o;dF24ZfB>(^b diff --git a/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$1.dex b/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$1.dex index 38842613b1d91791afac4d0bc70f04e26269dc7f..d270bf8ce16c93be481032900d9a2a0f0532183c 100644 GIT binary patch delta 74 zcmV-Q0JZPo}6DsVBs5Y}0mcu^@Z`4X*(K gAP#AWYiy=H0IjpB0v!VgG%+v;Y7A diff --git a/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$2.dex b/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$2.dex index b125b7f4b32a83714eb5881fd535878484c2107b..3d519943b1ecd947028085c33039fd17dfc36693 100644 GIT binary patch delta 68 zcmV-K0K5Ot3D5~3WMy~?Ff%s*n(1UikLiS4Ghf;jnM{$1!JQk7*1f{Ku^@;62hafl a6Al2+J8R9pOxH#e(yHLQZoHh0xOK?*Du^@;62c!W3 a6Al2Tv#$Xb0thxaFl073I5@M-0|NngFBg;m diff --git a/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$3.dex b/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$3.dex index ea4d3bb90d38fb8bff55b8847de67785d94a82f6..cbb5f45a6d11510088e90ee0ee38a1d17688fd0a 100644 GIT binary patch delta 68 zcmV-K0K5Op3Csx~WMy~?Ff%s*edwQ*L;8=0hTppXF)MvWdFyhjs_pW+u^@;62iO4t a6Al2{v#$XX0thrXHZnFiH!-ux0|No{4H|s_ delta 68 zcmV-K0K5Op3Csx~WMy~?Ff%s*&F0q3TY(r-Nbu4tI4}5Epq%r%fm-anu^@;62de=A a6Al2av#$XX0thiUIAdfnHaWA&0|Nobwi${5 diff --git a/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$4.dex b/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$4.dex index 303cd9ef2c4e2a18d04bc19347427c4323e3c043..a169a62d1c2864641f278d42050b9d52a10951b1 100644 GIT binary patch delta 69 zcmV-L0J{IY3%m;;WMy~?Ff%s*+zREW3`;!WnYC~RZ7e8TTljpXX+S2iu^ delta 69 zcmV-L0J{IY3%m;;WMy~?Ff%s*kqo?9hC6#AsX%J0Tvb7HS(f~gfAf0(t@mW;kLqF=b@4wgd(NLp&CK diff --git a/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$5.dex b/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$5.dex index 55eeca33622ead406fc6409b1899c5b72191bac1..1f31e58545415de2f8e0dcf27588b859b1d8fcdc 100644 GIT binary patch delta 70 zcmV-M0J;B&4TudOWMy~?Ff%s*STcQ-S|}YpE4G_v;;0ru^?mu39kYI cA^;8mu>!M=0_*|^V`euwG%+(dvw;N%0hYuUx?XV`4L+j*~tc!U;ECvMz N21X#&J2{d~9RL6YAH4to delta 111 zcmZqRZQxZ%Nv+^AFg9nf(O~1BXT+Lu*y7U>foIDmrBolkVziWjYoo#+M#i4WvP_li zo0u3C`53lrp35|!iP2%QEvq@ZnT3H_lBwn78deo91||juhB{UThL*`ISr_wySPTjb N42(dkXL2N)Isjsq9i;#O diff --git a/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$8.dex b/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$8.dex index 1b88930c4427bf4d97ec2c96d1bf0a5660f8785e..fd50fb9eb26f6beb1a8a93cf45cfab75fa4cafc3 100644 GIT binary patch delta 169 zcmaFE^MOY(CAEUfz}TE&hVHeCk=)Cby{7n2__b>4qH_~_?HYWlRu@cE6lPpA(bSkR zVq@lFM%Fp33=B1s1(_;2W->D>@-fV2-aLtECKIFMWF1y>4%0Lpl#1kgZWSwsU;xQ;NFfanC8X%h)s0_rO0A#a4#X)v3K*iSp*#OuYCQASS delta 165 zcmeys^M*$;CAEUfz}TFjS=Vieu}gxu!_=yerst2d7l^oPJh}Ptbk0OYVa62`O^q2t zHfAnnWSzmvz)(F|kg1a6EEA(5AH#X3&6AjBGBG+#)?qbgPc}0r40V7#J9VR5g&zEC6Bm0NHF%agg~8Q1KN&HUPlfC1n5r diff --git a/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$GTaskReceiver.dex b/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity$GTaskReceiver.dex index aae067fb35ef35614c7b31321b111a1c07fbe8cd..bd73d620abfd85ec37cc2e8d73c708f1634517b2 100644 GIT binary patch delta 89 zcmV-f0H*)+4fG8lWMy~?Ff%s*6i~BO$AP@Zik(%~%t^F#>8*y}A{X6Du^@~B9m)d% v01g1k0|F-~4gk&r0va9;T9&i}03-$;XFjvZ0viJdGG$>fGdE_l>jen`-k=?$ delta 89 zcmV-f0H*)+4fG8lWMy~?Ff%s*=uWF5TUWLx*rY<}OiSNkfXEmw_nPKEu^@~B9qR%C v01g1_0sjen`w{jg0 diff --git a/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity.dex b/src/Notes-master/app/build/intermediates/project_dex_archive/debug/out/net/micode/notes/ui/NotesPreferenceActivity.dex index b66222fe0d50034b63ddebe66be0fd0354fc3a79..ab2647307667bec8d0cfeee0f8e3a494a6d739cc 100644 GIT binary patch delta 502 zcmYjNO-~b16utM|c|a+B1KNdy8DvpoNF-uP(=^V^!ku}=oi3(B(L@Z0NC;7e5^XfG zV-r6xgAGPpk)axl5nDI90Wm>WZb)3Y(UrkJpf2=nH12NBIrrq8vnUs3@3~RGeIT8M zXOD+wUlyMfuRZEJ`Sn!r;LVGDpK_($& z>-aIe-?@vw8dtjxVfhOKAqff^{CuC%4__g*96 zNNO1w%v0;dRKF7*Ob!?c1dWmSQ zV9r3n=#>yC=ul6G;!qM7CvBC8gNqKjxG9L6=+dd5L&5Fw|3BXQ{Wk0kd+f@rKQL() zV0!a=;liixTIKi1#PL7lfAvOBjC?&8+Znqma4Kww5Nn~KAH}uM(wDIv?&t-45&qPl z{5P8* zz{H+P?;r@zC72$z39n_Nh^6W-JXUFo;0+#W6E@M9k2a(A&%W>2#2+A=54KioPKk4v z!a9oLeK!i!jpaet%XNwFVcLhP!m}ilL7cG_=S)8ENh{GP@f&79@iIlD86H2IbJ>c) zHO|@4X$}(Jsn1fvuCh}Wid$hVB?Bw4irW&tF;>~de@5lQN?AT-=!)oYoh>D8$19e$ zt>C<4ao`N@s%sv>Vqcf=Ev8$<_Rx?k&jQk3qY+uM)p|+P#*OTsS~qvolLfd2bd&& A8vp}-<-s`g`FeS)WpohI4y0moZu$_xBN28 delta 201 zcmbQBGC@TlCAEUfz}TGOWBRWslf=`r_HFSyz30xTWW+OD-(k&vzvoGpErXS3y_ZGV`O7y z21N2yY3so?)g>gnzOwVLycj0cYV3gvwk&p6TnzbcH*X|NCMuyxI!YE|L$j`@M g$iTafrVw#O%DF6Tf delta 78 zcmZ3(xrS3ACAEUfz}TGO^rhLy#V)$1x*8W%7xY}O^V~ma+1E)*vKtkyFbZif^7An$ gGw?C!0Z;}-`bEq{W1~veKG7yTpG1e?%e#kSC=;!vNGGvog0U>5r z-U4ud`iLgy7kVvRY=qc8BnCeKf-?}!QOO!F*h1~B86qu;_hXAdBnCkMf;12~a0%2> z#ykG8(r9ap!VGspBtt<&P##49igIOUWpZV1V`VfZ5T`i|&2SokJIgi?-5Eq;f|J|< zF%Xmv)&aEOA2iR~$MhTMN@9~80#G_Hc2D9^2co;H?2di{3JrF|3f5e&30-D(QsXN$9Nzjvt11t~*ON=kh`<+;?1XlEfj7BDt#RDHE$E9$A z=^=%V>0lS12gxt@f&or`FAycc5dT$rMLxx!NdW%#S9_BR1m087>~UTcJ1q-#SO5vm z<@gev0YshwPM-lJf&mdPR}hk}Td>3|IzMeTuTe*^QpDKw4YgN+@Kk!R#gQ79aDHqrV4N&5jz`~gP&0VHt|rU4-B0T6O1TZZLPP+o@yUSUH^Zmq>0wE`rH z0wxfe9xf^X z000uf2sFgFMMk_Brr3>?mgk7<0-3o0Df+EQu|rEmv!}55*U<_^w2*I;6rCb}on6!@ zH=?_l77yv^QKn5=0t{{X>MebWlZ&5|$0RTaOFMAXvRu;&lm8?iEFUEihn-@tzEX40 zd|=Jk7`U!Gpx&WbL7vY!dDEBHvj+t1s>kCw@SWsN2m{_y3d@gi>7^qnv*wE{ZXDUtpL_L~3;x_b43U>R>8PZAs000Z+ zTN;d|rB`%zlT|RFuy#fFL00U4^RM@l_PfC&=ydAUcCdvvTj|2e$iUI%txdj0MFaQ96 z1_1##005H#0R+|ow*r^~q5_lIF<1lwssc)rG%`67N&y3t0k#1!005i>0RoKyiUN~= NGJyl#0XLHaGoV!W;_?6h delta 1718 zcmV;n21)s(XQOA3xF|QWcOo6aCoonD^6Ar?>Bc1_1||T4F%S;85s`BAM*p&WWaGj} zIX{u$O(?8R!nwOyM}8B8*OAo8I4U(H1~veKG7t>GzRVxB49KX3Jq+=EyBm{L0U>6> zKU*0cCJ@0DfR-jw@$n!&BnCeKf-?|Neqp>QC1Uw)PI0@i68AGeBnCkMf;13WUwlQ7 zeDTHcqBRJrLr{gcJc%fh^U{P39MuX=0O!11u05rxCpBL?IewN0JKQ_i1dC#RDHEZ{F+0 zkr&uS{Ojk?l@l0af&or`FAxyfzWh*18f~?BGebh4nB|iS1m05yv^jsC06=0gP#p?o zbndX70YshwPM-lJf&mdPR}iN4Avu&sfq*Qf>*La1jGaReflw*WT?&)6i@2x9VTgdo z1`uhh$?>Gl9N_`_VPX*~9P*Pp1tt(|ZKl_1nw${1Hl1tW^cuC3aRnSA1qLsEsoYNR z>ghoFuil^5N)R72-SsDT`TE|`SfUsQ$PAOO1sV`a$iJxH7pp(4sXHLy+ zp9Fr^j$sDeEAz8R2NnSk5`~o2=8!l6^uZaI!WnOJlWqt+5Qg8|!2qAQ;r<%OS#zV- z0+YH3DKx7Q7A-5=?1d5F&+w`Xu$%e;N&5jz`~gP&0VHt|rU4-B0T49(Y_a-IjO8kqV_+>%Oi6Btt(C$?v*M^{$U+u$vEEAkWBA zuL2}PmI4rmnnDHn2O+3`N~Acuzj02m0whDD0ubt90sYNX&=GH-#pFY>0*$c(Btw(} z5Dq{iRyur&c|&DCL_|K)ma+m;vjRf20#`{RPEQaD)FRYDBshkGUYBufZ12&dwE`rH z0wxe2VD;+3%09t*jDOluf9(#o0wk;fCJ?mgk57Df+GK0-3o*v!}2~u|rGv*U<_^w2*Iqon6$E6rCa{ zH=?_l77yv^QKn6blZ&7F>Mea*0t{`F$0RTavRu;&OFMAXlm8?iEK+mOe4S#iz8@tK zhj!iN#GcPNdETK}LE0L{N4Ty#p!JVj2KF}pWnj(N7?VmRDt}HeMXIU3(P+{E00007 zb`BJTj;m1%pxzQJyueYetK#Vu3}@ya2i>EBHvj+t1s=`Pg93I8K@SWsN2m{_y3e5hF;*e-N|82io{(waQtHa#j${zUXk3U<)zjb};#000Z+ zTN;d|r z#W`VGB`%zlT|RFuy#fFL00U4^RM?UpydAU{PfD}xCdvvTxdj0MFaQ9L1OWkx0ssJ$ z0RaTo0k;B}0-^!{0DuMo0XLJ`F<1iussfWWGC2~Q1OWn#0g3_u07?M^lL58?Fq42X Mfde<)0h0tXph 0 || mNoteData.isLocalModified(); } + /** + * 同步笔记到数据库 + * @param context 上下文 + * @param noteId 笔记ID + * @return 同步是否成功 + */ public boolean syncNote(Context context, long noteId) { if (noteId <= 0) { throw new IllegalArgumentException("Wrong note id:" + noteId); @@ -110,15 +156,15 @@ public class Note { } /** - * In theory, once data changed, the note should be updated on {@link NoteColumns#LOCAL_MODIFIED} and - * {@link NoteColumns#MODIFIED_DATE}. For data safety, though update note fails, we also update the - * note data info + * 理论上,一旦数据改变,笔记应该在{@link NoteColumns#LOCAL_MODIFIED}和 + * {@link NoteColumns#MODIFIED_DATE}上更新。为了数据安全,即使更新笔记失败, + * 我们也会更新笔记数据信息 */ if (context.getContentResolver().update( ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId), mNoteDiffValues, null, null) == 0) { Log.e(TAG, "Update note error, should not happen"); - // Do not return, fall through + // 不返回,继续执行 } mNoteDiffValues.clear(); @@ -130,17 +176,19 @@ public class Note { return true; } + /** + * 笔记数据内部类,用于管理笔记的具体内容 + */ private class NoteData { - private long mTextDataId; - - private ContentValues mTextDataValues; - - private long mCallDataId; - - private ContentValues mCallDataValues; - - private static final String TAG = "NoteData"; + private long mTextDataId; // 文本数据ID + private ContentValues mTextDataValues; // 文本数据值 + private long mCallDataId; // 通话数据ID + private ContentValues mCallDataValues; // 通话数据值 + private static final String TAG = "NoteData"; // 日志标签 + /** + * 构造函数 + */ public NoteData() { mTextDataValues = new ContentValues(); mCallDataValues = new ContentValues(); @@ -148,10 +196,18 @@ public class Note { mCallDataId = 0; } + /** + * 检查数据是否在本地被修改 + * @return 是否被修改 + */ boolean isLocalModified() { return mTextDataValues.size() > 0 || mCallDataValues.size() > 0; } + /** + * 设置文本数据ID + * @param id 文本数据ID + */ void setTextDataId(long id) { if(id <= 0) { throw new IllegalArgumentException("Text data id should larger than 0"); @@ -159,6 +215,10 @@ public class Note { mTextDataId = id; } + /** + * 设置通话数据ID + * @param id 通话数据ID + */ void setCallDataId(long id) { if (id <= 0) { throw new IllegalArgumentException("Call data id should larger than 0"); @@ -166,21 +226,37 @@ public class Note { mCallDataId = id; } + /** + * 设置通话数据 + * @param key 键 + * @param value 值 + */ void setCallData(String key, String value) { mCallDataValues.put(key, value); mNoteDiffValues.put(NoteColumns.LOCAL_MODIFIED, 1); mNoteDiffValues.put(NoteColumns.MODIFIED_DATE, System.currentTimeMillis()); } + /** + * 设置文本数据 + * @param key 键 + * @param value 值 + */ void setTextData(String key, String value) { mTextDataValues.put(key, value); mNoteDiffValues.put(NoteColumns.LOCAL_MODIFIED, 1); mNoteDiffValues.put(NoteColumns.MODIFIED_DATE, System.currentTimeMillis()); } + /** + * 将数据推送到ContentResolver + * @param context 上下文 + * @param noteId 笔记ID + * @return 操作结果URI + */ Uri pushIntoContentResolver(Context context, long noteId) { /** - * Check for safety + * 安全检查 */ if (noteId <= 0) { throw new IllegalArgumentException("Wrong note id:" + noteId); diff --git a/src/Notes-master/app/src/main/java/net/micode/notes/model/WorkingNote.java b/src/Notes-master/app/src/main/java/net/micode/notes/model/WorkingNote.java index be081e4..3f1c33a 100644 --- a/src/Notes-master/app/src/main/java/net/micode/notes/model/WorkingNote.java +++ b/src/Notes-master/app/src/main/java/net/micode/notes/model/WorkingNote.java @@ -31,37 +31,42 @@ import net.micode.notes.data.Notes.NoteColumns; import net.micode.notes.data.Notes.TextNote; import net.micode.notes.tool.ResourceParser.NoteBgResources; - +/** + * 工作笔记类,用于管理正在编辑的笔记 + */ public class WorkingNote { - // Note for the working note + // 笔记对象 private Note mNote; - // Note Id + // 笔记ID private long mNoteId; - // Note content + // 笔记内容 private String mContent; - // Note mode + // 笔记模式(普通模式或清单模式) private int mMode; - + // 提醒时间 private long mAlertDate; - + // 修改时间 private long mModifiedDate; - + // 背景颜色ID private int mBgColorId; - + // 小部件ID private int mWidgetId; - + // 小部件类型 private int mWidgetType; - + // 文件夹ID private long mFolderId; - + // 上下文对象 private Context mContext; - + // 日志标签 private static final String TAG = "WorkingNote"; - + // 是否已删除标记 private boolean mIsDeleted; - + // 笔记设置变更监听器 private NoteSettingChangedListener mNoteSettingStatusListener; + /** + * 数据表查询的列定义 + */ public static final String[] DATA_PROJECTION = new String[] { DataColumns.ID, DataColumns.CONTENT, @@ -72,6 +77,9 @@ public class WorkingNote { DataColumns.DATA4, }; + /** + * 笔记表查询的列定义 + */ public static final String[] NOTE_PROJECTION = new String[] { NoteColumns.PARENT_ID, NoteColumns.ALERTED_DATE, @@ -81,27 +89,25 @@ public class WorkingNote { NoteColumns.MODIFIED_DATE }; + // 数据表列索引常量 private static final int DATA_ID_COLUMN = 0; - private static final int DATA_CONTENT_COLUMN = 1; - private static final int DATA_MIME_TYPE_COLUMN = 2; - private static final int DATA_MODE_COLUMN = 3; + // 笔记表列索引常量 private static final int NOTE_PARENT_ID_COLUMN = 0; - private static final int NOTE_ALERTED_DATE_COLUMN = 1; - private static final int NOTE_BG_COLOR_ID_COLUMN = 2; - private static final int NOTE_WIDGET_ID_COLUMN = 3; - private static final int NOTE_WIDGET_TYPE_COLUMN = 4; - private static final int NOTE_MODIFIED_DATE_COLUMN = 5; - // New note construct + /** + * 创建新笔记的构造函数 + * @param context 上下文对象 + * @param folderId 文件夹ID + */ private WorkingNote(Context context, long folderId) { mContext = context; mAlertDate = 0; @@ -114,7 +120,12 @@ public class WorkingNote { mWidgetType = Notes.TYPE_WIDGET_INVALIDE; } - // Existing note construct + /** + * 加载已有笔记的构造函数 + * @param context 上下文对象 + * @param noteId 笔记ID + * @param folderId 文件夹ID + */ private WorkingNote(Context context, long noteId, long folderId) { mContext = context; mNoteId = noteId; @@ -124,6 +135,9 @@ public class WorkingNote { loadNote(); } + /** + * 从数据库加载笔记基本信息 + */ private void loadNote() { Cursor cursor = mContext.getContentResolver().query( ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, mNoteId), NOTE_PROJECTION, null, @@ -146,6 +160,9 @@ public class WorkingNote { loadNoteData(); } + /** + * 从数据库加载笔记内容数据 + */ private void loadNoteData() { Cursor cursor = mContext.getContentResolver().query(Notes.CONTENT_DATA_URI, DATA_PROJECTION, DataColumns.NOTE_ID + "=?", new String[] { @@ -174,6 +191,15 @@ public class WorkingNote { } } + /** + * 创建空白笔记 + * @param context 上下文对象 + * @param folderId 文件夹ID + * @param widgetId 小部件ID + * @param widgetType 小部件类型 + * @param defaultBgColorId 默认背景色ID + * @return 新创建的工作笔记对象 + */ public static WorkingNote createEmptyNote(Context context, long folderId, int widgetId, int widgetType, int defaultBgColorId) { WorkingNote note = new WorkingNote(context, folderId); @@ -183,10 +209,20 @@ public class WorkingNote { return note; } + /** + * 加载已有笔记 + * @param context 上下文对象 + * @param id 笔记ID + * @return 加载的工作笔记对象 + */ public static WorkingNote load(Context context, long id) { return new WorkingNote(context, id, 0); } + /** + * 保存笔记 + * @return 是否保存成功 + */ public synchronized boolean saveNote() { if (isWorthSaving()) { if (!existInDatabase()) { @@ -199,7 +235,7 @@ public class WorkingNote { mNote.syncNote(mContext, mNoteId); /** - * Update widget content if there exist any widget of this note + * 如果笔记有关联的小部件,更新小部件内容 */ if (mWidgetId != AppWidgetManager.INVALID_APPWIDGET_ID && mWidgetType != Notes.TYPE_WIDGET_INVALIDE @@ -212,10 +248,18 @@ public class WorkingNote { } } + /** + * 判断笔记是否已存在于数据库 + * @return 是否存在 + */ public boolean existInDatabase() { return mNoteId > 0; } + /** + * 判断笔记是否值得保存 + * @return 是否值得保存 + */ private boolean isWorthSaving() { if (mIsDeleted || (!existInDatabase() && TextUtils.isEmpty(mContent)) || (existInDatabase() && !mNote.isLocalModified())) { @@ -225,10 +269,19 @@ public class WorkingNote { } } + /** + * 设置笔记设置变更监听器 + * @param l 监听器对象 + */ public void setOnSettingStatusChangedListener(NoteSettingChangedListener l) { mNoteSettingStatusListener = l; } + /** + * 设置提醒时间 + * @param date 提醒时间 + * @param set 是否设置提醒 + */ public void setAlertDate(long date, boolean set) { if (date != mAlertDate) { mAlertDate = date; @@ -239,6 +292,10 @@ public class WorkingNote { } } + /** + * 标记笔记是否删除 + * @param mark 是否删除 + */ public void markDeleted(boolean mark) { mIsDeleted = mark; if (mWidgetId != AppWidgetManager.INVALID_APPWIDGET_ID @@ -247,6 +304,10 @@ public class WorkingNote { } } + /** + * 设置背景颜色ID + * @param id 颜色ID + */ public void setBgColorId(int id) { if (id != mBgColorId) { mBgColorId = id; @@ -257,6 +318,10 @@ public class WorkingNote { } } + /** + * 设置清单模式 + * @param mode 模式值 + */ public void setCheckListMode(int mode) { if (mMode != mode) { if (mNoteSettingStatusListener != null) { @@ -267,6 +332,10 @@ public class WorkingNote { } } + /** + * 设置小部件类型 + * @param type 小部件类型 + */ public void setWidgetType(int type) { if (type != mWidgetType) { mWidgetType = type; @@ -274,6 +343,10 @@ public class WorkingNote { } } + /** + * 设置小部件ID + * @param id 小部件ID + */ public void setWidgetId(int id) { if (id != mWidgetId) { mWidgetId = id; @@ -281,6 +354,10 @@ public class WorkingNote { } } + /** + * 设置笔记文本内容 + * @param text 文本内容 + */ public void setWorkingText(String text) { if (!TextUtils.equals(mContent, text)) { mContent = text; @@ -288,80 +365,138 @@ public class WorkingNote { } } + /** + * 将笔记转换为通话记录笔记 + * @param phoneNumber 电话号码 + * @param callDate 通话时间 + */ public void convertToCallNote(String phoneNumber, long callDate) { mNote.setCallData(CallNote.CALL_DATE, String.valueOf(callDate)); mNote.setCallData(CallNote.PHONE_NUMBER, phoneNumber); mNote.setNoteValue(NoteColumns.PARENT_ID, String.valueOf(Notes.ID_CALL_RECORD_FOLDER)); } + /** + * 判断是否设置了闹钟提醒 + * @return 是否有提醒 + */ public boolean hasClockAlert() { return (mAlertDate > 0 ? true : false); } + /** + * 获取笔记内容 + * @return 笔记内容 + */ public String getContent() { return mContent; } + /** + * 获取提醒时间 + * @return 提醒时间 + */ public long getAlertDate() { return mAlertDate; } + /** + * 获取修改时间 + * @return 修改时间 + */ public long getModifiedDate() { return mModifiedDate; } + /** + * 获取背景颜色资源ID + * @return 背景颜色资源ID + */ public int getBgColorResId() { return NoteBgResources.getNoteBgResource(mBgColorId); } + /** + * 获取背景颜色ID + * @return 背景颜色ID + */ public int getBgColorId() { return mBgColorId; } + /** + * 获取标题背景资源ID + * @return 标题背景资源ID + */ public int getTitleBgResId() { return NoteBgResources.getNoteTitleBgResource(mBgColorId); } + /** + * 获取清单模式 + * @return 清单模式值 + */ public int getCheckListMode() { return mMode; } + /** + * 获取笔记ID + * @return 笔记ID + */ public long getNoteId() { return mNoteId; } + /** + * 获取文件夹ID + * @return 文件夹ID + */ public long getFolderId() { return mFolderId; } + /** + * 获取小部件ID + * @return 小部件ID + */ public int getWidgetId() { return mWidgetId; } + /** + * 获取小部件类型 + * @return 小部件类型 + */ public int getWidgetType() { return mWidgetType; } + /** + * 笔记设置变更监听器接口 + */ public interface NoteSettingChangedListener { /** - * Called when the background color of current note has just changed + * 当笔记背景颜色改变时调用 */ void onBackgroundColorChanged(); /** - * Called when user set clock + * 当设置闹钟提醒时调用 + * @param date 提醒时间 + * @param set 是否设置提醒 */ void onClockAlertChanged(long date, boolean set); /** - * Call when user create note from widget + * 当小部件改变时调用 */ void onWidgetChanged(); /** - * Call when switch between check list mode and normal mode - * @param oldMode is previous mode before change - * @param newMode is new mode + * 当在清单模式和普通模式间切换时调用 + * @param oldMode 切换前的模式 + * @param newMode 切换后的模式 */ void onCheckListModeChanged(int oldMode, int newMode); } diff --git a/src/Notes-master/app/src/main/java/net/micode/notes/tool/BackupUtils.java b/src/Notes-master/app/src/main/java/net/micode/notes/tool/BackupUtils.java index 39f6ec4..f70c033 100644 --- a/src/Notes-master/app/src/main/java/net/micode/notes/tool/BackupUtils.java +++ b/src/Notes-master/app/src/main/java/net/micode/notes/tool/BackupUtils.java @@ -35,12 +35,20 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintStream; - +/** + * 备份工具类,用于将笔记导出为文本文件 + */ public class BackupUtils { private static final String TAG = "BackupUtils"; - // Singleton stuff + + // 单例模式相关变量 private static BackupUtils sInstance; + /** + * 获取BackupUtils单例实例 + * @param context 上下文对象 + * @return BackupUtils实例 + */ public static synchronized BackupUtils getInstance(Context context) { if (sInstance == null) { sInstance = new BackupUtils(context); @@ -49,43 +57,66 @@ public class BackupUtils { } /** - * Following states are signs to represents backup or restore - * status + * 以下状态常量用于表示备份或恢复的状态 */ - // Currently, the sdcard is not mounted + // SD卡未挂载 public static final int STATE_SD_CARD_UNMOUONTED = 0; - // The backup file not exist + // 备份文件不存在 public static final int STATE_BACKUP_FILE_NOT_EXIST = 1; - // The data is not well formated, may be changed by other programs + // 数据已损坏,可能被其他程序修改 public static final int STATE_DATA_DESTROIED = 2; - // Some run-time exception which causes restore or backup fails + // 系统运行时错误导致备份或恢复失败 public static final int STATE_SYSTEM_ERROR = 3; - // Backup or restore success + // 备份或恢复成功 public static final int STATE_SUCCESS = 4; private TextExport mTextExport; + /** + * 私有构造方法 + * @param context 上下文对象 + */ private BackupUtils(Context context) { mTextExport = new TextExport(context); } + /** + * 检查外部存储是否可用 + * @return 外部存储是否可用 + */ private static boolean externalStorageAvailable() { return Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()); } + /** + * 导出笔记到文本文件 + * @return 导出状态码 + */ public int exportToText() { return mTextExport.exportToText(); } + /** + * 获取导出的文本文件名 + * @return 文件名 + */ public String getExportedTextFileName() { return mTextExport.mFileName; } + /** + * 获取导出的文本文件目录 + * @return 文件目录 + */ public String getExportedTextFileDir() { return mTextExport.mFileDirectory; } + /** + * 文本导出内部类,处理具体的导出逻辑 + */ private static class TextExport { + // 笔记查询的列投影 private static final String[] NOTE_PROJECTION = { NoteColumns.ID, NoteColumns.MODIFIED_DATE, @@ -94,11 +125,10 @@ public class BackupUtils { }; private static final int NOTE_COLUMN_ID = 0; - private static final int NOTE_COLUMN_MODIFIED_DATE = 1; - private static final int NOTE_COLUMN_SNIPPET = 2; + // 数据查询的列投影 private static final String[] DATA_PROJECTION = { DataColumns.CONTENT, DataColumns.MIME_TYPE, @@ -109,13 +139,11 @@ public class BackupUtils { }; private static final int DATA_COLUMN_CONTENT = 0; - private static final int DATA_COLUMN_MIME_TYPE = 1; - private static final int DATA_COLUMN_CALL_DATE = 2; - private static final int DATA_COLUMN_PHONE_NUMBER = 4; + // 文本格式化相关常量 private final String [] TEXT_FORMAT; private static final int FORMAT_FOLDER_NAME = 0; private static final int FORMAT_NOTE_DATE = 1; @@ -125,6 +153,10 @@ public class BackupUtils { private String mFileName; private String mFileDirectory; + /** + * 构造方法 + * @param context 上下文对象 + */ public TextExport(Context context) { TEXT_FORMAT = context.getResources().getStringArray(R.array.format_for_exported_note); mContext = context; @@ -132,15 +164,22 @@ public class BackupUtils { mFileDirectory = ""; } + /** + * 获取格式化字符串 + * @param id 格式ID + * @return 格式化字符串 + */ private String getFormat(int id) { return TEXT_FORMAT[id]; } /** - * Export the folder identified by folder id to text + * 导出指定文件夹下的笔记到文本 + * @param folderId 文件夹ID + * @param ps 输出流 */ private void exportFolderToText(String folderId, PrintStream ps) { - // Query notes belong to this folder + // 查询属于该文件夹的笔记 Cursor notesCursor = mContext.getContentResolver().query(Notes.CONTENT_NOTE_URI, NOTE_PROJECTION, NoteColumns.PARENT_ID + "=?", new String[] { folderId @@ -149,11 +188,11 @@ public class BackupUtils { if (notesCursor != null) { if (notesCursor.moveToFirst()) { do { - // Print note's last modified date + // 打印笔记的最后修改日期 ps.println(String.format(getFormat(FORMAT_NOTE_DATE), DateFormat.format( mContext.getString(R.string.format_datetime_mdhm), notesCursor.getLong(NOTE_COLUMN_MODIFIED_DATE)))); - // Query data belong to this note + // 查询该笔记的数据并导出 String noteId = notesCursor.getString(NOTE_COLUMN_ID); exportNoteToText(noteId, ps); } while (notesCursor.moveToNext()); @@ -163,7 +202,9 @@ public class BackupUtils { } /** - * Export note identified by id to a print stream + * 导出指定ID的笔记到输出流 + * @param noteId 笔记ID + * @param ps 输出流 */ private void exportNoteToText(String noteId, PrintStream ps) { Cursor dataCursor = mContext.getContentResolver().query(Notes.CONTENT_DATA_URI, @@ -176,7 +217,7 @@ public class BackupUtils { do { String mimeType = dataCursor.getString(DATA_COLUMN_MIME_TYPE); if (DataConstants.CALL_NOTE.equals(mimeType)) { - // Print phone number + // 导出通话记录类型的笔记 String phoneNumber = dataCursor.getString(DATA_COLUMN_PHONE_NUMBER); long callDate = dataCursor.getLong(DATA_COLUMN_CALL_DATE); String location = dataCursor.getString(DATA_COLUMN_CONTENT); @@ -185,16 +226,17 @@ public class BackupUtils { ps.println(String.format(getFormat(FORMAT_NOTE_CONTENT), phoneNumber)); } - // Print call date + // 打印通话日期 ps.println(String.format(getFormat(FORMAT_NOTE_CONTENT), DateFormat .format(mContext.getString(R.string.format_datetime_mdhm), callDate))); - // Print call attachment location + // 打印通话位置 if (!TextUtils.isEmpty(location)) { ps.println(String.format(getFormat(FORMAT_NOTE_CONTENT), location)); } } else if (DataConstants.NOTE.equals(mimeType)) { + // 导出普通文本笔记 String content = dataCursor.getString(DATA_COLUMN_CONTENT); if (!TextUtils.isEmpty(content)) { ps.println(String.format(getFormat(FORMAT_NOTE_CONTENT), @@ -205,7 +247,7 @@ public class BackupUtils { } dataCursor.close(); } - // print a line separator between note + // 在笔记之间打印分隔符 try { ps.write(new byte[] { Character.LINE_SEPARATOR, Character.LETTER_NUMBER @@ -216,7 +258,8 @@ public class BackupUtils { } /** - * Note will be exported as text which is user readable + * 将笔记导出为用户可读的文本格式 + * @return 导出状态码 */ public int exportToText() { if (!externalStorageAvailable()) { @@ -229,7 +272,7 @@ public class BackupUtils { Log.e(TAG, "get print stream error"); return STATE_SYSTEM_ERROR; } - // First export folder and its notes + // 首先导出文件夹及其笔记 Cursor folderCursor = mContext.getContentResolver().query( Notes.CONTENT_NOTE_URI, NOTE_PROJECTION, @@ -240,7 +283,7 @@ public class BackupUtils { if (folderCursor != null) { if (folderCursor.moveToFirst()) { do { - // Print folder's name + // 打印文件夹名称 String folderName = ""; if(folderCursor.getLong(NOTE_COLUMN_ID) == Notes.ID_CALL_RECORD_FOLDER) { folderName = mContext.getString(R.string.call_record_folder_name); @@ -257,7 +300,7 @@ public class BackupUtils { folderCursor.close(); } - // Export notes in root's folder + // 导出根目录下的笔记 Cursor noteCursor = mContext.getContentResolver().query( Notes.CONTENT_NOTE_URI, NOTE_PROJECTION, @@ -270,7 +313,7 @@ public class BackupUtils { ps.println(String.format(getFormat(FORMAT_NOTE_DATE), DateFormat.format( mContext.getString(R.string.format_datetime_mdhm), noteCursor.getLong(NOTE_COLUMN_MODIFIED_DATE)))); - // Query data belong to this note + // 查询并导出笔记数据 String noteId = noteCursor.getString(NOTE_COLUMN_ID); exportNoteToText(noteId, ps); } while (noteCursor.moveToNext()); @@ -283,7 +326,8 @@ public class BackupUtils { } /** - * Get a print stream pointed to the file {@generateExportedTextFile} + * 获取指向导出文本文件的打印流 + * @return PrintStream对象 */ private PrintStream getExportToTextPrintStream() { File file = generateFileMountedOnSDcard(mContext, R.string.file_path, @@ -310,7 +354,11 @@ public class BackupUtils { } /** - * Generate the text file to store imported data + * 在SD卡上生成用于存储导出数据的文本文件 + * @param context 上下文对象 + * @param filePathResId 文件路径资源ID + * @param fileNameFormatResId 文件名格式资源ID + * @return 生成的文件对象,失败返回null */ private static File generateFileMountedOnSDcard(Context context, int filePathResId, int fileNameFormatResId) { StringBuilder sb = new StringBuilder(); @@ -340,5 +388,3 @@ public class BackupUtils { return null; } } - - diff --git a/src/Notes-master/app/src/main/java/net/micode/notes/tool/DataUtils.java b/src/Notes-master/app/src/main/java/net/micode/notes/tool/DataUtils.java index 2a14982..13d257e 100644 --- a/src/Notes-master/app/src/main/java/net/micode/notes/tool/DataUtils.java +++ b/src/Notes-master/app/src/main/java/net/micode/notes/tool/DataUtils.java @@ -34,9 +34,21 @@ import net.micode.notes.ui.NotesListAdapter.AppWidgetAttribute; import java.util.ArrayList; import java.util.HashSet; - +/** + * 数据工具类,提供对笔记数据的各种操作方法 + */ public class DataUtils { + /** + * 日志标签 + */ public static final String TAG = "DataUtils"; + + /** + * 批量删除笔记 + * @param resolver ContentResolver对象 + * @param ids 要删除的笔记ID集合 + * @return 删除是否成功 + */ public static boolean batchDeleteNotes(ContentResolver resolver, HashSet ids) { if (ids == null) { Log.d(TAG, "the ids is null"); @@ -72,6 +84,13 @@ public class DataUtils { return false; } + /** + * 将笔记移动到指定文件夹 + * @param resolver ContentResolver对象 + * @param id 笔记ID + * @param srcFolderId 源文件夹ID + * @param desFolderId 目标文件夹ID + */ public static void moveNoteToFoler(ContentResolver resolver, long id, long srcFolderId, long desFolderId) { ContentValues values = new ContentValues(); values.put(NoteColumns.PARENT_ID, desFolderId); @@ -80,6 +99,13 @@ public class DataUtils { resolver.update(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, id), values, null, null); } + /** + * 批量移动笔记到指定文件夹 + * @param resolver ContentResolver对象 + * @param ids 要移动的笔记ID集合 + * @param folderId 目标文件夹ID + * @return 移动是否成功 + */ public static boolean batchMoveToFolder(ContentResolver resolver, HashSet ids, long folderId) { if (ids == null) { @@ -112,7 +138,9 @@ public class DataUtils { } /** - * Get the all folder count except system folders {@link Notes#TYPE_SYSTEM}} + * 获取用户文件夹数量(不包括系统文件夹) + * @param resolver ContentResolver对象 + * @return 用户文件夹数量 */ public static int getUserFolderCount(ContentResolver resolver) { Cursor cursor =resolver.query(Notes.CONTENT_NOTE_URI, @@ -136,6 +164,13 @@ public class DataUtils { return count; } + /** + * 检查指定ID和类型的笔记是否可见(不在回收站中) + * @param resolver ContentResolver对象 + * @param noteId 笔记ID + * @param type 笔记类型 + * @return 笔记是否可见 + */ public static boolean visibleInNoteDatabase(ContentResolver resolver, long noteId, int type) { Cursor cursor = resolver.query(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId), null, @@ -153,6 +188,12 @@ public class DataUtils { return exist; } + /** + * 检查指定ID的笔记是否存在于数据库中 + * @param resolver ContentResolver对象 + * @param noteId 笔记ID + * @return 笔记是否存在 + */ public static boolean existInNoteDatabase(ContentResolver resolver, long noteId) { Cursor cursor = resolver.query(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId), null, null, null, null); @@ -167,6 +208,12 @@ public class DataUtils { return exist; } + /** + * 检查指定ID的数据是否存在于数据库中 + * @param resolver ContentResolver对象 + * @param dataId 数据ID + * @return 数据是否存在 + */ public static boolean existInDataDatabase(ContentResolver resolver, long dataId) { Cursor cursor = resolver.query(ContentUris.withAppendedId(Notes.CONTENT_DATA_URI, dataId), null, null, null, null); @@ -181,6 +228,12 @@ public class DataUtils { return exist; } + /** + * 检查指定名称的可见文件夹是否存在 + * @param resolver ContentResolver对象 + * @param name 文件夹名称 + * @return 文件夹是否存在 + */ public static boolean checkVisibleFolderName(ContentResolver resolver, String name) { Cursor cursor = resolver.query(Notes.CONTENT_NOTE_URI, null, NoteColumns.TYPE + "=" + Notes.TYPE_FOLDER + @@ -197,6 +250,12 @@ public class DataUtils { return exist; } + /** + * 获取指定文件夹下所有笔记的小部件属性 + * @param resolver ContentResolver对象 + * @param folderId 文件夹ID + * @return 小部件属性集合 + */ public static HashSet getFolderNoteWidget(ContentResolver resolver, long folderId) { Cursor c = resolver.query(Notes.CONTENT_NOTE_URI, new String[] { NoteColumns.WIDGET_ID, NoteColumns.WIDGET_TYPE }, @@ -224,6 +283,12 @@ public class DataUtils { return set; } + /** + * 根据笔记ID获取通话号码 + * @param resolver ContentResolver对象 + * @param noteId 笔记ID + * @return 通话号码 + */ public static String getCallNumberByNoteId(ContentResolver resolver, long noteId) { Cursor cursor = resolver.query(Notes.CONTENT_DATA_URI, new String [] { CallNote.PHONE_NUMBER }, @@ -243,6 +308,13 @@ public class DataUtils { return ""; } + /** + * 根据电话号码和通话日期获取笔记ID + * @param resolver ContentResolver对象 + * @param phoneNumber 电话号码 + * @param callDate 通话日期 + * @return 笔记ID + */ public static long getNoteIdByPhoneNumberAndCallDate(ContentResolver resolver, String phoneNumber, long callDate) { Cursor cursor = resolver.query(Notes.CONTENT_DATA_URI, new String [] { CallNote.NOTE_ID }, @@ -264,6 +336,12 @@ public class DataUtils { return 0; } + /** + * 根据笔记ID获取笔记摘要 + * @param resolver ContentResolver对象 + * @param noteId 笔记ID + * @return 笔记摘要 + */ public static String getSnippetById(ContentResolver resolver, long noteId) { Cursor cursor = resolver.query(Notes.CONTENT_NOTE_URI, new String [] { NoteColumns.SNIPPET }, @@ -282,6 +360,11 @@ public class DataUtils { throw new IllegalArgumentException("Note is not found with id: " + noteId); } + /** + * 格式化笔记摘要,去除首尾空格并截取第一行 + * @param snippet 原始摘要 + * @return 格式化后的摘要 + */ public static String getFormattedSnippet(String snippet) { if (snippet != null) { snippet = snippet.trim(); diff --git a/src/Notes-master/app/src/main/java/net/micode/notes/tool/GTaskStringUtils.java b/src/Notes-master/app/src/main/java/net/micode/notes/tool/GTaskStringUtils.java index 666b729..cf5ae7b 100644 --- a/src/Notes-master/app/src/main/java/net/micode/notes/tool/GTaskStringUtils.java +++ b/src/Notes-master/app/src/main/java/net/micode/notes/tool/GTaskStringUtils.java @@ -16,98 +16,152 @@ package net.micode.notes.tool; +/** + * Google Tasks同步功能相关的字符串常量工具类 + * 包含了与Google Tasks API交互时使用的JSON字段名称常量 + */ public class GTaskStringUtils { + // 操作相关的JSON字段 + /** 操作ID */ public final static String GTASK_JSON_ACTION_ID = "action_id"; + /** 操作列表 */ public final static String GTASK_JSON_ACTION_LIST = "action_list"; + /** 操作类型 */ public final static String GTASK_JSON_ACTION_TYPE = "action_type"; + /** 创建操作类型 */ public final static String GTASK_JSON_ACTION_TYPE_CREATE = "create"; + /** 获取所有数据操作类型 */ public final static String GTASK_JSON_ACTION_TYPE_GETALL = "get_all"; + /** 移动操作类型 */ public final static String GTASK_JSON_ACTION_TYPE_MOVE = "move"; + /** 更新操作类型 */ public final static String GTASK_JSON_ACTION_TYPE_UPDATE = "update"; + // 任务实体相关的JSON字段 + /** 创建者ID */ public final static String GTASK_JSON_CREATOR_ID = "creator_id"; + /** 子实体 */ public final static String GTASK_JSON_CHILD_ENTITY = "child_entity"; + /** 客户端版本 */ public final static String GTASK_JSON_CLIENT_VERSION = "client_version"; + /** 是否完成 */ public final static String GTASK_JSON_COMPLETED = "completed"; + /** 当前列表ID */ public final static String GTASK_JSON_CURRENT_LIST_ID = "current_list_id"; + /** 默认列表ID */ public final static String GTASK_JSON_DEFAULT_LIST_ID = "default_list_id"; + /** 是否已删除 */ public final static String GTASK_JSON_DELETED = "deleted"; + /** 目标列表 */ public final static String GTASK_JSON_DEST_LIST = "dest_list"; + /** 目标父节点 */ public final static String GTASK_JSON_DEST_PARENT = "dest_parent"; + /** 目标父节点类型 */ public final static String GTASK_JSON_DEST_PARENT_TYPE = "dest_parent_type"; + /** 实体变更 */ public final static String GTASK_JSON_ENTITY_DELTA = "entity_delta"; + /** 实体类型 */ public final static String GTASK_JSON_ENTITY_TYPE = "entity_type"; + /** 是否获取已删除项 */ public final static String GTASK_JSON_GET_DELETED = "get_deleted"; + /** ID字段 */ public final static String GTASK_JSON_ID = "id"; + /** 索引 */ public final static String GTASK_JSON_INDEX = "index"; + /** 最后修改时间 */ public final static String GTASK_JSON_LAST_MODIFIED = "last_modified"; + /** 最新同步点 */ public final static String GTASK_JSON_LATEST_SYNC_POINT = "latest_sync_point"; + /** 列表ID */ public final static String GTASK_JSON_LIST_ID = "list_id"; + /** 列表集合 */ public final static String GTASK_JSON_LISTS = "lists"; + /** 名称 */ public final static String GTASK_JSON_NAME = "name"; + /** 新ID */ public final static String GTASK_JSON_NEW_ID = "new_id"; + /** 笔记集合 */ public final static String GTASK_JSON_NOTES = "notes"; + /** 父ID */ public final static String GTASK_JSON_PARENT_ID = "parent_id"; + /** 前一个兄弟节点ID */ public final static String GTASK_JSON_PRIOR_SIBLING_ID = "prior_sibling_id"; + /** 结果集 */ public final static String GTASK_JSON_RESULTS = "results"; + /** 源列表 */ public final static String GTASK_JSON_SOURCE_LIST = "source_list"; + /** 任务集合 */ public final static String GTASK_JSON_TASKS = "tasks"; + /** 类型 */ public final static String GTASK_JSON_TYPE = "type"; + /** 组类型 */ public final static String GTASK_JSON_TYPE_GROUP = "GROUP"; + /** 任务类型 */ public final static String GTASK_JSON_TYPE_TASK = "TASK"; + /** 用户 */ public final static String GTASK_JSON_USER = "user"; + // MIUI笔记相关的常量 + /** MIUI笔记文件夹前缀 */ public final static String MIUI_FOLDER_PREFFIX = "[MIUI_Notes]"; + /** 默认文件夹名称 */ public final static String FOLDER_DEFAULT = "Default"; + /** 通话记录文件夹名称 */ public final static String FOLDER_CALL_NOTE = "Call_Note"; + /** 元数据文件夹名称 */ public final static String FOLDER_META = "METADATA"; + // 元数据相关的常量 + /** 元数据Google Task ID标识 */ public final static String META_HEAD_GTASK_ID = "meta_gid"; + /** 元数据笔记标识 */ public final static String META_HEAD_NOTE = "meta_note"; + /** 元数据内容标识 */ public final static String META_HEAD_DATA = "meta_data"; + /** 元数据笔记名称 */ public final static String META_NOTE_NAME = "[META INFO] DON'T UPDATE AND DELETE"; } diff --git a/src/Notes-master/app/src/main/java/net/micode/notes/tool/ResourceParser.java b/src/Notes-master/app/src/main/java/net/micode/notes/tool/ResourceParser.java index 1ad3ad6..aa58739 100644 --- a/src/Notes-master/app/src/main/java/net/micode/notes/tool/ResourceParser.java +++ b/src/Notes-master/app/src/main/java/net/micode/notes/tool/ResourceParser.java @@ -22,49 +22,80 @@ import android.preference.PreferenceManager; import net.micode.notes.R; import net.micode.notes.ui.NotesPreferenceActivity; +/** + * 资源解析工具类 + * 用于管理笔记应用中的各种资源,包括背景颜色、字体大小等 + */ public class ResourceParser { - public static final int YELLOW = 0; - public static final int BLUE = 1; - public static final int WHITE = 2; - public static final int GREEN = 3; - public static final int RED = 4; + // 笔记背景颜色的常量定义 + public static final int YELLOW = 0; // 黄色 + public static final int BLUE = 1; // 蓝色 + public static final int WHITE = 2; // 白色 + public static final int GREEN = 3; // 绿色 + public static final int RED = 4; // 红色 + // 默认背景颜色为黄色 public static final int BG_DEFAULT_COLOR = YELLOW; - public static final int TEXT_SMALL = 0; - public static final int TEXT_MEDIUM = 1; - public static final int TEXT_LARGE = 2; - public static final int TEXT_SUPER = 3; + // 字体大小的常量定义 + public static final int TEXT_SMALL = 0; // 小号字体 + public static final int TEXT_MEDIUM = 1; // 中号字体 + public static final int TEXT_LARGE = 2; // 大号字体 + public static final int TEXT_SUPER = 3; // 特大号字体 + // 默认字体大小为中号 public static final int BG_DEFAULT_FONT_SIZE = TEXT_MEDIUM; + /** + * 笔记背景资源管理内部类 + * 管理编辑界面和标题栏的背景资源 + */ public static class NoteBgResources { - private final static int [] BG_EDIT_RESOURCES = new int [] { - R.drawable.edit_yellow, - R.drawable.edit_blue, - R.drawable.edit_white, - R.drawable.edit_green, - R.drawable.edit_red + // 编辑界面的背景资源数组 + private final static int[] BG_EDIT_RESOURCES = new int[]{ + R.drawable.edit_yellow, + R.drawable.edit_blue, + R.drawable.edit_white, + R.drawable.edit_green, + R.drawable.edit_red }; - private final static int [] BG_EDIT_TITLE_RESOURCES = new int [] { - R.drawable.edit_title_yellow, - R.drawable.edit_title_blue, - R.drawable.edit_title_white, - R.drawable.edit_title_green, - R.drawable.edit_title_red + // 标题栏的背景资源数组 + private final static int[] BG_EDIT_TITLE_RESOURCES = new int[]{ + R.drawable.edit_title_yellow, + R.drawable.edit_title_blue, + R.drawable.edit_title_white, + R.drawable.edit_title_green, + R.drawable.edit_title_red }; + /** + * 获取笔记编辑界面的背景资源 + * @param id 背景颜色ID + * @return 对应的背景资源ID + */ public static int getNoteBgResource(int id) { return BG_EDIT_RESOURCES[id]; } + /** + * 获取笔记标题栏的背景资源 + * @param id 背景颜色ID + * @return 对应的标题栏背景资源ID + */ public static int getNoteTitleBgResource(int id) { return BG_EDIT_TITLE_RESOURCES[id]; } } + /** + * 获取默认的背景颜色ID + * 如果用户设置了随机背景色,则随机返回一个颜色ID + * 否则返回默认的黄色 + * @param context 上下文对象 + * @return 背景颜色ID + */ public static int getDefaultBgId(Context context) { if (PreferenceManager.getDefaultSharedPreferences(context).getBoolean( NotesPreferenceActivity.PREFERENCE_SET_BG_COLOR_KEY, false)) { @@ -74,99 +105,143 @@ public class ResourceParser { } } + /** + * 笔记列表项背景资源管理内部类 + * 管理列表中笔记项的各种背景资源 + */ public static class NoteItemBgResources { - private final static int [] BG_FIRST_RESOURCES = new int [] { - R.drawable.list_yellow_up, - R.drawable.list_blue_up, - R.drawable.list_white_up, - R.drawable.list_green_up, - R.drawable.list_red_up + // 列表第一项的背景资源 + private final static int[] BG_FIRST_RESOURCES = new int[]{ + R.drawable.list_yellow_up, + R.drawable.list_blue_up, + R.drawable.list_white_up, + R.drawable.list_green_up, + R.drawable.list_red_up }; - private final static int [] BG_NORMAL_RESOURCES = new int [] { - R.drawable.list_yellow_middle, - R.drawable.list_blue_middle, - R.drawable.list_white_middle, - R.drawable.list_green_middle, - R.drawable.list_red_middle + // 列表中间项的背景资源 + private final static int[] BG_NORMAL_RESOURCES = new int[]{ + R.drawable.list_yellow_middle, + R.drawable.list_blue_middle, + R.drawable.list_white_middle, + R.drawable.list_green_middle, + R.drawable.list_red_middle }; - private final static int [] BG_LAST_RESOURCES = new int [] { - R.drawable.list_yellow_down, - R.drawable.list_blue_down, - R.drawable.list_white_down, - R.drawable.list_green_down, - R.drawable.list_red_down, + // 列表最后一项的背景资源 + private final static int[] BG_LAST_RESOURCES = new int[]{ + R.drawable.list_yellow_down, + R.drawable.list_blue_down, + R.drawable.list_white_down, + R.drawable.list_green_down, + R.drawable.list_red_down, }; - private final static int [] BG_SINGLE_RESOURCES = new int [] { - R.drawable.list_yellow_single, - R.drawable.list_blue_single, - R.drawable.list_white_single, - R.drawable.list_green_single, - R.drawable.list_red_single + // 列表单个项的背景资源 + private final static int[] BG_SINGLE_RESOURCES = new int[]{ + R.drawable.list_yellow_single, + R.drawable.list_blue_single, + R.drawable.list_white_single, + R.drawable.list_green_single, + R.drawable.list_red_single }; + /** + * 获取列表第一项的背景资源 + */ public static int getNoteBgFirstRes(int id) { return BG_FIRST_RESOURCES[id]; } + /** + * 获取列表最后一项的背景资源 + */ public static int getNoteBgLastRes(int id) { return BG_LAST_RESOURCES[id]; } + /** + * 获取列表单个项的背景资源 + */ public static int getNoteBgSingleRes(int id) { return BG_SINGLE_RESOURCES[id]; } + /** + * 获取列表中间项的背景资源 + */ public static int getNoteBgNormalRes(int id) { return BG_NORMAL_RESOURCES[id]; } + /** + * 获取文件夹的背景资源 + */ public static int getFolderBgRes() { return R.drawable.list_folder; } } + /** + * Widget小部件背景资源管理内部类 + * 管理2x和4x大小Widget的背景资源 + */ public static class WidgetBgResources { - private final static int [] BG_2X_RESOURCES = new int [] { - R.drawable.widget_2x_yellow, - R.drawable.widget_2x_blue, - R.drawable.widget_2x_white, - R.drawable.widget_2x_green, - R.drawable.widget_2x_red, + // 2x大小Widget的背景资源 + private final static int[] BG_2X_RESOURCES = new int[]{ + R.drawable.widget_2x_yellow, + R.drawable.widget_2x_blue, + R.drawable.widget_2x_white, + R.drawable.widget_2x_green, + R.drawable.widget_2x_red, }; + /** + * 获取2x大小Widget的背景资源 + */ public static int getWidget2xBgResource(int id) { return BG_2X_RESOURCES[id]; } - private final static int [] BG_4X_RESOURCES = new int [] { - R.drawable.widget_4x_yellow, - R.drawable.widget_4x_blue, - R.drawable.widget_4x_white, - R.drawable.widget_4x_green, - R.drawable.widget_4x_red + // 4x大小Widget的背景资源 + private final static int[] BG_4X_RESOURCES = new int[]{ + R.drawable.widget_4x_yellow, + R.drawable.widget_4x_blue, + R.drawable.widget_4x_white, + R.drawable.widget_4x_green, + R.drawable.widget_4x_red }; + /** + * 获取4x大小Widget的背景资源 + */ public static int getWidget4xBgResource(int id) { return BG_4X_RESOURCES[id]; } } + /** + * 文本外观资源管理内部类 + * 管理不同大小的文本样式资源 + */ public static class TextAppearanceResources { - private final static int [] TEXTAPPEARANCE_RESOURCES = new int [] { - R.style.TextAppearanceNormal, - R.style.TextAppearanceMedium, - R.style.TextAppearanceLarge, - R.style.TextAppearanceSuper + // 文本外观资源数组 + private final static int[] TEXTAPPEARANCE_RESOURCES = new int[]{ + R.style.TextAppearanceNormal, + R.style.TextAppearanceMedium, + R.style.TextAppearanceLarge, + R.style.TextAppearanceSuper }; + /** + * 获取文本外观资源 + * @param id 字体大小ID + * @return 对应的文本样式资源ID + */ public static int getTexAppearanceResource(int id) { /** - * HACKME: Fix bug of store the resource id in shared preference. - * The id may larger than the length of resources, in this case, - * return the {@link ResourceParser#BG_DEFAULT_FONT_SIZE} + * HACKME: 修复在SharedPreference中存储资源ID的bug + * 如果ID大于等于资源数组长度,返回默认字体大小 */ if (id >= TEXTAPPEARANCE_RESOURCES.length) { return BG_DEFAULT_FONT_SIZE; @@ -174,6 +249,9 @@ public class ResourceParser { return TEXTAPPEARANCE_RESOURCES[id]; } + /** + * 获取文本外观资源的总数 + */ public static int getResourcesSize() { return TEXTAPPEARANCE_RESOURCES.length; } diff --git a/src/Notes-master/app/src/main/java/net/micode/notes/ui/AlarmAlertActivity.java b/src/Notes-master/app/src/main/java/net/micode/notes/ui/AlarmAlertActivity.java index 85723be..68c208f 100644 --- a/src/Notes-master/app/src/main/java/net/micode/notes/ui/AlarmAlertActivity.java +++ b/src/Notes-master/app/src/main/java/net/micode/notes/ui/AlarmAlertActivity.java @@ -39,21 +39,34 @@ import net.micode.notes.tool.DataUtils; import java.io.IOException; - +/** + * 闹钟提醒活动类 + * 负责处理笔记的闹钟提醒功能,包括显示提醒对话框和播放提醒音乐 + */ public class AlarmAlertActivity extends Activity implements OnClickListener, OnDismissListener { + // 笔记ID private long mNoteId; + // 笔记摘要内容 private String mSnippet; + // 摘要预览最大长度 private static final int SNIPPET_PREW_MAX_LEN = 60; + // 媒体播放器 MediaPlayer mPlayer; + /** + * 活动创建时的回调方法 + * 初始化窗口参数、获取笔记信息并显示提醒 + */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); 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 @@ -64,8 +77,10 @@ public class AlarmAlertActivity extends Activity implements OnClickListener, OnD Intent intent = getIntent(); try { + // 获取笔记ID和内容摘要 mNoteId = Long.valueOf(intent.getData().getPathSegments().get(1)); mSnippet = DataUtils.getSnippetById(this.getContentResolver(), mNoteId); + // 如果摘要过长则截取 mSnippet = mSnippet.length() > SNIPPET_PREW_MAX_LEN ? mSnippet.substring(0, SNIPPET_PREW_MAX_LEN) + getResources().getString(R.string.notelist_string_info) : mSnippet; @@ -75,6 +90,7 @@ public class AlarmAlertActivity extends Activity implements OnClickListener, OnD } mPlayer = new MediaPlayer(); + // 检查笔记是否可见,如果可见则显示提醒 if (DataUtils.visibleInNoteDatabase(getContentResolver(), mNoteId, Notes.TYPE_NOTE)) { showActionDialog(); playAlarmSound(); @@ -83,17 +99,27 @@ public class AlarmAlertActivity extends Activity implements OnClickListener, OnD } } + /** + * 检查屏幕是否点亮 + * @return 屏幕是否处于点亮状态 + */ private boolean isScreenOn() { PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); return pm.isScreenOn(); } + /** + * 播放闹钟提醒音乐 + * 获取系统默认闹钟铃声并循环播放 + */ private void playAlarmSound() { Uri url = RingtoneManager.getActualDefaultRingtoneUri(this, RingtoneManager.TYPE_ALARM); + // 获取静音模式影响的音频流 int silentModeStreams = Settings.System.getInt(getContentResolver(), Settings.System.MODE_RINGER_STREAMS_AFFECTED, 0); + // 设置音频流类型 if ((silentModeStreams & (1 << AudioManager.STREAM_ALARM)) != 0) { mPlayer.setAudioStreamType(silentModeStreams); } else { @@ -105,34 +131,41 @@ public class AlarmAlertActivity extends Activity implements OnClickListener, OnD mPlayer.setLooping(true); mPlayer.start(); } catch (IllegalArgumentException e) { - // TODO Auto-generated catch block e.printStackTrace(); } catch (SecurityException e) { - // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalStateException e) { - // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { - // TODO Auto-generated catch block e.printStackTrace(); } } + /** + * 显示提醒对话框 + * 包含笔记摘要内容和操作按钮 + */ private void showActionDialog() { AlertDialog.Builder dialog = new AlertDialog.Builder(this); dialog.setTitle(R.string.app_name); dialog.setMessage(mSnippet); dialog.setPositiveButton(R.string.notealert_ok, this); + // 屏幕点亮时显示进入按钮 if (isScreenOn()) { dialog.setNegativeButton(R.string.notealert_enter, this); } dialog.show().setOnDismissListener(this); } + /** + * 对话框按钮点击事件处理 + * @param dialog 对话框 + * @param which 按钮类型 + */ public void onClick(DialogInterface dialog, int which) { switch (which) { case DialogInterface.BUTTON_NEGATIVE: + // 点击进入按钮,打开笔记编辑界面 Intent intent = new Intent(this, NoteEditActivity.class); intent.setAction(Intent.ACTION_VIEW); intent.putExtra(Intent.EXTRA_UID, mNoteId); @@ -143,11 +176,19 @@ public class AlarmAlertActivity extends Activity implements OnClickListener, OnD } } + /** + * 对话框关闭事件处理 + * 停止闹钟音乐并结束活动 + */ public void onDismiss(DialogInterface dialog) { stopAlarmSound(); finish(); } + /** + * 停止闹钟提醒音乐 + * 释放媒体播放器资源 + */ private void stopAlarmSound() { if (mPlayer != null) { mPlayer.stop(); diff --git a/src/Notes-master/app/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java b/src/Notes-master/app/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java index f221202..7426f28 100644 --- a/src/Notes-master/app/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java +++ b/src/Notes-master/app/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java @@ -27,20 +27,38 @@ import android.database.Cursor; import net.micode.notes.data.Notes; import net.micode.notes.data.Notes.NoteColumns; - +/** + * 闹钟初始化广播接收器 + * 用于在系统启动或应用安装时初始化所有待提醒的笔记闹钟 + */ public class AlarmInitReceiver extends BroadcastReceiver { + /** + * 查询笔记时需要的数据列 + */ private static final String [] PROJECTION = new String [] { - NoteColumns.ID, - NoteColumns.ALERTED_DATE + NoteColumns.ID, // 笔记ID + NoteColumns.ALERTED_DATE // 提醒时间 }; - private static final int COLUMN_ID = 0; - private static final int COLUMN_ALERTED_DATE = 1; + /** + * 查询结果列的索引常量 + */ + private static final int COLUMN_ID = 0; // ID列索引 + private static final int COLUMN_ALERTED_DATE = 1; // 提醒时间列索引 + /** + * 接收广播时的回调方法 + * 查询所有未到期的提醒笔记,并设置对应的闹钟 + * @param context 上下文对象 + * @param intent 接收到的Intent + */ @Override public void onReceive(Context context, Intent intent) { + // 获取当前系统时间 long currentDate = System.currentTimeMillis(); + + // 查询所有未到期的提醒笔记 Cursor c = context.getContentResolver().query(Notes.CONTENT_NOTE_URI, PROJECTION, NoteColumns.ALERTED_DATE + ">? AND " + NoteColumns.TYPE + "=" + Notes.TYPE_NOTE, @@ -50,15 +68,25 @@ public class AlarmInitReceiver extends BroadcastReceiver { if (c != null) { if (c.moveToFirst()) { do { + // 获取提醒时间 long alertDate = c.getLong(COLUMN_ALERTED_DATE); + + // 创建闹钟广播的Intent Intent sender = new Intent(context, AlarmReceiver.class); sender.setData(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, c.getLong(COLUMN_ID))); + + // 创建PendingIntent PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, sender, 0); + + // 获取闹钟管理器服务 AlarmManager alermManager = (AlarmManager) context .getSystemService(Context.ALARM_SERVICE); + + // 设置闹钟 alermManager.set(AlarmManager.RTC_WAKEUP, alertDate, pendingIntent); } while (c.moveToNext()); } + // 关闭游标 c.close(); } } diff --git a/src/Notes-master/app/src/main/java/net/micode/notes/ui/AlarmReceiver.java b/src/Notes-master/app/src/main/java/net/micode/notes/ui/AlarmReceiver.java index 54e503b..dcad7d1 100644 --- a/src/Notes-master/app/src/main/java/net/micode/notes/ui/AlarmReceiver.java +++ b/src/Notes-master/app/src/main/java/net/micode/notes/ui/AlarmReceiver.java @@ -20,11 +20,25 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; +/** + * 闹钟广播接收器 + * 用于接收闹钟提醒广播,启动闹钟提醒界面 + */ public class AlarmReceiver extends BroadcastReceiver { + + /** + * 接收闹钟广播时的回调方法 + * 启动闹钟提醒活动(AlarmAlertActivity) + * @param context 上下文对象 + * @param intent 接收到的Intent,包含笔记ID等信息 + */ @Override public void onReceive(Context context, Intent intent) { + // 设置要启动的Activity类为AlarmAlertActivity intent.setClass(context, AlarmAlertActivity.class); + // 添加NEW_TASK标志,因为广播接收器运行在非Activity环境 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + // 启动闹钟提醒界面 context.startActivity(intent); } } diff --git a/src/Notes-master/app/src/main/java/net/micode/notes/ui/DateTimePicker.java b/src/Notes-master/app/src/main/java/net/micode/notes/ui/DateTimePicker.java index 496b0cd..89791cb 100644 --- a/src/Notes-master/app/src/main/java/net/micode/notes/ui/DateTimePicker.java +++ b/src/Notes-master/app/src/main/java/net/micode/notes/ui/DateTimePicker.java @@ -28,13 +28,21 @@ import android.view.View; import android.widget.FrameLayout; import android.widget.NumberPicker; +/** + * 日期时间选择器组件 + * 提供日期和时间的选择功能,支持12小时制和24小时制 + */ public class DateTimePicker extends FrameLayout { + // 默认启用状态 private static final boolean DEFAULT_ENABLE_STATE = true; - private static final int HOURS_IN_HALF_DAY = 12; - private static final int HOURS_IN_ALL_DAY = 24; - private static final int DAYS_IN_ALL_WEEK = 7; + // 时间常量定义 + private static final int HOURS_IN_HALF_DAY = 12; // 12小时制 + private static final int HOURS_IN_ALL_DAY = 24; // 24小时制 + private static final int DAYS_IN_ALL_WEEK = 7; // 一周7天 + + // 各选择器的最大最小值 private static final int DATE_SPINNER_MIN_VAL = 0; private static final int DATE_SPINNER_MAX_VAL = DAYS_IN_ALL_WEEK - 1; private static final int HOUR_SPINNER_MIN_VAL_24_HOUR_VIEW = 0; @@ -46,39 +54,52 @@ public class DateTimePicker extends FrameLayout { private static final int AMPM_SPINNER_MIN_VAL = 0; private static final int AMPM_SPINNER_MAX_VAL = 1; - private final NumberPicker mDateSpinner; - private final NumberPicker mHourSpinner; - private final NumberPicker mMinuteSpinner; - private final NumberPicker mAmPmSpinner; - private Calendar mDate; + // 各选择器控件 + private final NumberPicker mDateSpinner; // 日期选择器 + private final NumberPicker mHourSpinner; // 小时选择器 + private final NumberPicker mMinuteSpinner; // 分钟选择器 + private final NumberPicker mAmPmSpinner; // 上午/下午选择器 + + private Calendar mDate; // 当前选择的日期时间 + // 日期显示值数组 private String[] mDateDisplayValues = new String[DAYS_IN_ALL_WEEK]; - private boolean mIsAm; - - private boolean mIs24HourView; - - private boolean mIsEnabled = DEFAULT_ENABLE_STATE; - - private boolean mInitialising; + private boolean mIsAm; // 是否为上午 + private boolean mIs24HourView; // 是否为24小时制 + private boolean mIsEnabled = DEFAULT_ENABLE_STATE; // 控件是否可用 + private boolean mInitialising; // 是否正在初始化 + // 日期时间改变监听器 private OnDateTimeChangedListener mOnDateTimeChangedListener; + /** + * 日期改变监听器 + * 处理日期选择器值变化 + */ private NumberPicker.OnValueChangeListener mOnDateChangedListener = new NumberPicker.OnValueChangeListener() { @Override public void onValueChange(NumberPicker picker, int oldVal, int newVal) { + // 根据选择器值的变化调整日期 mDate.add(Calendar.DAY_OF_YEAR, newVal - oldVal); updateDateControl(); onDateTimeChanged(); } }; + /** + * 小时改变监听器 + * 处理小时选择器值变化 + */ private NumberPicker.OnValueChangeListener mOnHourChangedListener = new NumberPicker.OnValueChangeListener() { @Override public void onValueChange(NumberPicker picker, int oldVal, int newVal) { boolean isDateChanged = false; Calendar cal = Calendar.getInstance(); + + // 12小时制时的处理 if (!mIs24HourView) { + // 处理跨天的情况 if (!mIsAm && oldVal == HOURS_IN_HALF_DAY - 1 && newVal == HOURS_IN_HALF_DAY) { cal.setTimeInMillis(mDate.getTimeInMillis()); cal.add(Calendar.DAY_OF_YEAR, 1); @@ -88,12 +109,14 @@ public class DateTimePicker extends FrameLayout { cal.add(Calendar.DAY_OF_YEAR, -1); isDateChanged = true; } + // 处理上午/下午切换 if (oldVal == HOURS_IN_HALF_DAY - 1 && newVal == HOURS_IN_HALF_DAY || oldVal == HOURS_IN_HALF_DAY && newVal == HOURS_IN_HALF_DAY - 1) { mIsAm = !mIsAm; updateAmPmControl(); } } else { + // 24小时制时的处理 if (oldVal == HOURS_IN_ALL_DAY - 1 && newVal == 0) { cal.setTimeInMillis(mDate.getTimeInMillis()); cal.add(Calendar.DAY_OF_YEAR, 1); @@ -104,9 +127,13 @@ public class DateTimePicker extends FrameLayout { isDateChanged = true; } } + + // 更新小时值 int newHour = mHourSpinner.getValue() % HOURS_IN_HALF_DAY + (mIsAm ? 0 : HOURS_IN_HALF_DAY); mDate.set(Calendar.HOUR_OF_DAY, newHour); onDateTimeChanged(); + + // 如果日期发生变化,更新年月日 if (isDateChanged) { setCurrentYear(cal.get(Calendar.YEAR)); setCurrentMonth(cal.get(Calendar.MONTH)); @@ -115,17 +142,25 @@ public class DateTimePicker extends FrameLayout { } }; + /** + * 分钟改变监听器 + * 处理分钟选择器值变化 + */ private NumberPicker.OnValueChangeListener mOnMinuteChangedListener = new NumberPicker.OnValueChangeListener() { @Override public void onValueChange(NumberPicker picker, int oldVal, int newVal) { int minValue = mMinuteSpinner.getMinValue(); int maxValue = mMinuteSpinner.getMaxValue(); int offset = 0; + + // 处理分钟跨小时的情况 if (oldVal == maxValue && newVal == minValue) { offset += 1; } else if (oldVal == minValue && newVal == maxValue) { offset -= 1; } + + // 如果小时数变化,更新相关控件 if (offset != 0) { mDate.add(Calendar.HOUR_OF_DAY, offset); mHourSpinner.setValue(getCurrentHour()); @@ -139,11 +174,17 @@ public class DateTimePicker extends FrameLayout { updateAmPmControl(); } } + + // 更新分钟值 mDate.set(Calendar.MINUTE, newVal); onDateTimeChanged(); } }; + /** + * 上午/下午改变监听器 + * 处理AM/PM选择器值变化 + */ private NumberPicker.OnValueChangeListener mOnAmPmChangedListener = new NumberPicker.OnValueChangeListener() { @Override public void onValueChange(NumberPicker picker, int oldVal, int newVal) { @@ -158,19 +199,31 @@ public class DateTimePicker extends FrameLayout { } }; + /** + * 日期时间改变监听器接口 + */ public interface OnDateTimeChangedListener { 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) { this(context, date, DateFormat.is24HourFormat(context)); } + /** + * 构造函数,使用指定时间和时间制式初始化 + */ public DateTimePicker(Context context, long date, boolean is24HourView) { super(context); mDate = Calendar.getInstance(); @@ -178,19 +231,24 @@ public class DateTimePicker extends FrameLayout { mIsAm = getCurrentHourOfDay() >= HOURS_IN_HALF_DAY; inflate(context, R.layout.datetime_picker, this); + // 初始化日期选择器 mDateSpinner = (NumberPicker) findViewById(R.id.date); mDateSpinner.setMinValue(DATE_SPINNER_MIN_VAL); mDateSpinner.setMaxValue(DATE_SPINNER_MAX_VAL); mDateSpinner.setOnValueChangedListener(mOnDateChangedListener); + // 初始化小时选择器 mHourSpinner = (NumberPicker) findViewById(R.id.hour); mHourSpinner.setOnValueChangedListener(mOnHourChangedListener); + + // 初始化分钟选择器 mMinuteSpinner = (NumberPicker) findViewById(R.id.minute); mMinuteSpinner.setMinValue(MINUT_SPINNER_MIN_VAL); mMinuteSpinner.setMaxValue(MINUT_SPINNER_MAX_VAL); mMinuteSpinner.setOnLongPressUpdateInterval(100); mMinuteSpinner.setOnValueChangedListener(mOnMinuteChangedListener); + // 初始化AM/PM选择器 String[] stringsForAmPm = new DateFormatSymbols().getAmPmStrings(); mAmPmSpinner = (NumberPicker) findViewById(R.id.amPm); mAmPmSpinner.setMinValue(AMPM_SPINNER_MIN_VAL); @@ -198,22 +256,20 @@ public class DateTimePicker extends FrameLayout { mAmPmSpinner.setDisplayedValues(stringsForAmPm); mAmPmSpinner.setOnValueChangedListener(mOnAmPmChangedListener); - // update controls to initial state + // 更新控件初始状态 updateDateControl(); updateHourControl(); updateAmPmControl(); set24HourView(is24HourView); - - // set to current time setCurrentDate(date); - setEnabled(isEnabled()); - - // set the content descriptions mInitialising = false; } + /** + * 设置控件是否可用 + */ @Override public void setEnabled(boolean enabled) { if (mIsEnabled == enabled) { @@ -227,24 +283,23 @@ public class DateTimePicker extends FrameLayout { mIsEnabled = enabled; } + /** + * 获取控件是否可用 + */ @Override public boolean isEnabled() { return mIsEnabled; } /** - * Get the current date in millis - * - * @return the current date in millis + * 获取当前选择的时间戳 */ public long getCurrentDateInTimeMillis() { return mDate.getTimeInMillis(); } /** - * Set the current date - * - * @param date The current date in millis + * 设置当前日期时间 */ public void setCurrentDate(long date) { Calendar cal = Calendar.getInstance(); @@ -254,13 +309,7 @@ public class DateTimePicker extends FrameLayout { } /** - * Set the current date - * - * @param year The current year - * @param month The current month - * @param dayOfMonth The current dayOfMonth - * @param hourOfDay The current hourOfDay - * @param minute The current minute + * 设置当前日期时间 */ public void setCurrentDate(int year, int month, int dayOfMonth, int hourOfDay, int minute) { @@ -272,18 +321,14 @@ public class DateTimePicker extends FrameLayout { } /** - * Get current year - * - * @return The current year + * 获取当前年份 */ public int getCurrentYear() { return mDate.get(Calendar.YEAR); } /** - * Set current year - * - * @param year The current year + * 设置当前年份 */ public void setCurrentYear(int year) { if (!mInitialising && year == getCurrentYear()) { @@ -295,18 +340,14 @@ public class DateTimePicker extends FrameLayout { } /** - * Get current month in the year - * - * @return The current month in the year + * 获取当前月份 */ public int getCurrentMonth() { return mDate.get(Calendar.MONTH); } /** - * Set current month in the year - * - * @param month The month in the year + * 设置当前月份 */ public void setCurrentMonth(int month) { if (!mInitialising && month == getCurrentMonth()) { @@ -318,18 +359,14 @@ public class DateTimePicker extends FrameLayout { } /** - * Get current day of the month - * - * @return The day of the month + * 获取当前日期 */ public int getCurrentDay() { return mDate.get(Calendar.DAY_OF_MONTH); } /** - * Set current day of the month - * - * @param dayOfMonth The day of the month + * 设置当前日期 */ public void setCurrentDay(int dayOfMonth) { if (!mInitialising && dayOfMonth == getCurrentDay()) { @@ -341,13 +378,15 @@ public class DateTimePicker extends FrameLayout { } /** - * Get current hour in 24 hour mode, in the range (0~23) - * @return The current hour in 24 hour mode + * 获取当前小时(24小时制) */ public int getCurrentHourOfDay() { return mDate.get(Calendar.HOUR_OF_DAY); } + /** + * 获取当前小时 + */ private int getCurrentHour() { if (mIs24HourView){ return getCurrentHourOfDay(); @@ -362,9 +401,7 @@ public class DateTimePicker extends FrameLayout { } /** - * Set current hour in 24 hour mode, in the range (0~23) - * - * @param hourOfDay + * 设置当前小时 */ public void setCurrentHour(int hourOfDay) { if (!mInitialising && hourOfDay == getCurrentHourOfDay()) { @@ -390,16 +427,14 @@ public class DateTimePicker extends FrameLayout { } /** - * Get currentMinute - * - * @return The Current Minute + * 获取当前分钟 */ public int getCurrentMinute() { return mDate.get(Calendar.MINUTE); } /** - * Set current minute + * 设置当前分钟 */ public void setCurrentMinute(int minute) { if (!mInitialising && minute == getCurrentMinute()) { @@ -411,16 +446,14 @@ public class DateTimePicker extends FrameLayout { } /** - * @return true if this is in 24 hour view else false. + * 判断是否为24小时制 */ public boolean is24HourView () { return mIs24HourView; } /** - * Set whether in 24 hour or AM/PM mode. - * - * @param is24HourView True for 24 hour mode. False for AM/PM mode. + * 设置时间显示格式(12/24小时制) */ public void set24HourView(boolean is24HourView) { if (mIs24HourView == is24HourView) { @@ -434,6 +467,9 @@ public class DateTimePicker extends FrameLayout { updateAmPmControl(); } + /** + * 更新日期显示 + */ private void updateDateControl() { Calendar cal = Calendar.getInstance(); cal.setTimeInMillis(mDate.getTimeInMillis()); @@ -448,6 +484,9 @@ public class DateTimePicker extends FrameLayout { mDateSpinner.invalidate(); } + /** + * 更新AM/PM显示 + */ private void updateAmPmControl() { if (mIs24HourView) { mAmPmSpinner.setVisibility(View.GONE); @@ -458,6 +497,9 @@ public class DateTimePicker extends FrameLayout { } } + /** + * 更新小时显示 + */ private void updateHourControl() { if (mIs24HourView) { mHourSpinner.setMinValue(HOUR_SPINNER_MIN_VAL_24_HOUR_VIEW); @@ -469,13 +511,15 @@ public class DateTimePicker extends FrameLayout { } /** - * Set the callback that indicates the 'Set' button has been pressed. - * @param callback the callback, if null will do nothing + * 设置日期时间改变监听器 */ public void setOnDateTimeChangedListener(OnDateTimeChangedListener callback) { mOnDateTimeChangedListener = callback; } + /** + * 触发日期时间改变事件 + */ private void onDateTimeChanged() { if (mOnDateTimeChangedListener != null) { mOnDateTimeChangedListener.onDateTimeChanged(this, getCurrentYear(), diff --git a/src/Notes-master/app/src/main/java/net/micode/notes/ui/DateTimePickerDialog.java b/src/Notes-master/app/src/main/java/net/micode/notes/ui/DateTimePickerDialog.java index 2c47ba4..91ab139 100644 --- a/src/Notes-master/app/src/main/java/net/micode/notes/ui/DateTimePickerDialog.java +++ b/src/Notes-master/app/src/main/java/net/micode/notes/ui/DateTimePickerDialog.java @@ -29,49 +29,90 @@ import android.content.DialogInterface.OnClickListener; import android.text.format.DateFormat; import android.text.format.DateUtils; +/** + * 日期时间选择对话框 + * 提供日期和时间的选择界面,继承自AlertDialog + */ public class DateTimePickerDialog extends AlertDialog implements OnClickListener { + // 日期时间对象,保存当前选择的日期时间 private Calendar mDate = Calendar.getInstance(); + // 是否使用24小时制 private boolean mIs24HourView; + // 日期时间设置监听器 private OnDateTimeSetListener mOnDateTimeSetListener; + // 日期时间选择器控件 private DateTimePicker mDateTimePicker; + /** + * 日期时间设置监听器接口 + * 用于回调通知日期时间设置完成 + */ public interface OnDateTimeSetListener { void OnDateTimeSet(AlertDialog dialog, long date); } + /** + * 构造函数 + * @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) { + // 更新日期时间对象 mDate.set(Calendar.YEAR, year); mDate.set(Calendar.MONTH, month); 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); mDateTimePicker.setCurrentDate(mDate.getTimeInMillis()); + + // 设置对话框按钮 setButton(context.getString(R.string.datetime_dialog_ok), this); setButton2(context.getString(R.string.datetime_dialog_cancel), (OnClickListener)null); + + // 设置时间显示格式 set24HourView(DateFormat.is24HourFormat(this.getContext())); updateTitle(mDate.getTimeInMillis()); } + /** + * 设置是否使用24小时制 + * @param is24HourView true表示使用24小时制,false表示使用12小时制 + */ 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 | @@ -81,6 +122,10 @@ public class DateTimePickerDialog extends AlertDialog implements OnClickListener setTitle(DateUtils.formatDateTime(this.getContext(), date, flag)); } + /** + * 确定按钮点击事件处理 + * 通知监听器日期时间已设置 + */ public void onClick(DialogInterface arg0, int arg1) { if (mOnDateTimeSetListener != null) { mOnDateTimeSetListener.OnDateTimeSet(this, mDate.getTimeInMillis()); diff --git a/src/Notes-master/app/src/main/java/net/micode/notes/ui/DropdownMenu.java b/src/Notes-master/app/src/main/java/net/micode/notes/ui/DropdownMenu.java index 613dc74..fa329fd 100644 --- a/src/Notes-master/app/src/main/java/net/micode/notes/ui/DropdownMenu.java +++ b/src/Notes-master/app/src/main/java/net/micode/notes/ui/DropdownMenu.java @@ -27,17 +27,36 @@ import android.widget.PopupMenu.OnMenuItemClickListener; import net.micode.notes.R; +/** + * 下拉菜单组件类 + * 封装了一个带下拉菜单的按钮控件 + */ public class DropdownMenu { + // 下拉菜单按钮 private Button mButton; + // 弹出式菜单控件 private PopupMenu mPopupMenu; + // 菜单对象 private Menu mMenu; + /** + * 构造函数 + * @param context 上下文对象 + * @param button 要绑定的按钮控件 + * @param menuId 菜单资源ID + */ public DropdownMenu(Context context, Button button, int menuId) { + // 保存按钮引用 mButton = button; + // 设置下拉图标背景 mButton.setBackgroundResource(R.drawable.dropdown_icon); + // 创建弹出菜单并关联按钮 mPopupMenu = new PopupMenu(context, mButton); + // 获取菜单对象 mMenu = mPopupMenu.getMenu(); + // 加载菜单资源 mPopupMenu.getMenuInflater().inflate(menuId, mMenu); + // 设置按钮点击监听器,显示菜单 mButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { mPopupMenu.show(); @@ -45,16 +64,29 @@ public class DropdownMenu { }); } + /** + * 设置菜单项点击监听器 + * @param listener 菜单项点击监听器 + */ public void setOnDropdownMenuItemClickListener(OnMenuItemClickListener listener) { if (mPopupMenu != null) { mPopupMenu.setOnMenuItemClickListener(listener); } } + /** + * 查找指定ID的菜单项 + * @param id 菜单项ID + * @return 菜单项对象 + */ public MenuItem findItem(int id) { return mMenu.findItem(id); } + /** + * 设置按钮文本 + * @param title 要显示的文本 + */ public void setTitle(CharSequence title) { mButton.setText(title); } diff --git a/src/Notes-master/app/src/main/java/net/micode/notes/ui/FoldersListAdapter.java b/src/Notes-master/app/src/main/java/net/micode/notes/ui/FoldersListAdapter.java index 96b77da..a7d9039 100644 --- a/src/Notes-master/app/src/main/java/net/micode/notes/ui/FoldersListAdapter.java +++ b/src/Notes-master/app/src/main/java/net/micode/notes/ui/FoldersListAdapter.java @@ -28,53 +28,97 @@ import net.micode.notes.R; import net.micode.notes.data.Notes; import net.micode.notes.data.Notes.NoteColumns; - +/** + * 文件夹列表适配器类 + * 用于显示笔记文件夹列表,继承自CursorAdapter + */ public class FoldersListAdapter extends CursorAdapter { + /** + * 数据库查询的列定义 + */ public static final String [] PROJECTION = { - NoteColumns.ID, - NoteColumns.SNIPPET + NoteColumns.ID, // 文件夹ID + NoteColumns.SNIPPET // 文件夹名称 }; - public static final int ID_COLUMN = 0; - public static final int NAME_COLUMN = 1; + /** + * 查询结果列的索引常量 + */ + public static final int ID_COLUMN = 0; // ID列索引 + public static final int NAME_COLUMN = 1; // 名称列索引 + /** + * 构造函数 + * @param context 上下文对象 + * @param c 数据库游标 + */ public FoldersListAdapter(Context context, Cursor c) { super(context, c); - // TODO Auto-generated constructor stub } + /** + * 创建新的列表项视图 + * @param context 上下文对象 + * @param cursor 数据库游标 + * @param parent 父视图 + * @return 新创建的FolderListItem视图 + */ @Override public View newView(Context context, Cursor cursor, ViewGroup parent) { return new FolderListItem(context); } + /** + * 绑定数据到视图 + * @param view 要绑定的视图 + * @param context 上下文对象 + * @param cursor 数据库游标 + */ @Override public void bindView(View view, Context context, Cursor cursor) { if (view instanceof FolderListItem) { + // 获取文件夹名称,如果是根文件夹则显示"移动到父文件夹" String folderName = (cursor.getLong(ID_COLUMN) == Notes.ID_ROOT_FOLDER) ? context .getString(R.string.menu_move_parent_folder) : cursor.getString(NAME_COLUMN); ((FolderListItem) view).bind(folderName); } } + /** + * 获取指定位置的文件夹名称 + * @param context 上下文对象 + * @param position 列表位置 + * @return 文件夹名称 + */ public String getFolderName(Context context, int position) { Cursor cursor = (Cursor) getItem(position); return (cursor.getLong(ID_COLUMN) == Notes.ID_ROOT_FOLDER) ? context .getString(R.string.menu_move_parent_folder) : cursor.getString(NAME_COLUMN); } + /** + * 文件夹列表项视图类 + * 用于显示单个文件夹项 + */ private class FolderListItem extends LinearLayout { - private TextView mName; + private TextView mName; // 文件夹名称文本视图 + /** + * 构造函数 + * @param context 上下文对象 + */ public FolderListItem(Context context) { super(context); inflate(context, R.layout.folder_list_item, this); mName = (TextView) findViewById(R.id.tv_folder_name); } + /** + * 绑定文件夹名称到视图 + * @param name 文件夹名称 + */ public void bind(String name) { mName.setText(name); } } - } diff --git a/src/Notes-master/app/src/main/java/net/micode/notes/ui/NoteEditActivity.java b/src/Notes-master/app/src/main/java/net/micode/notes/ui/NoteEditActivity.java index 96a9ff8..7ac6c31 100644 --- a/src/Notes-master/app/src/main/java/net/micode/notes/ui/NoteEditActivity.java +++ b/src/Notes-master/app/src/main/java/net/micode/notes/ui/NoteEditActivity.java @@ -71,19 +71,26 @@ import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; - +/** + * 笔记编辑界面的Activity类 + * 提供笔记的编辑、保存、分享等功能 + */ public class NoteEditActivity extends Activity implements OnClickListener, NoteSettingChangedListener, OnTextViewChangeListener { + + /** + * 头部视图控件的持有者类 + */ private class HeadViewHolder { - public TextView tvModified; - - public ImageView ivAlertIcon; - - public TextView tvAlertDate; - - public ImageView ibSetBgColor; + public TextView tvModified; // 修改时间文本 + public ImageView ivAlertIcon; // 提醒图标 + public TextView tvAlertDate; // 提醒日期文本 + public ImageView ibSetBgColor; // 设置背景颜色按钮 } + /** + * 背景颜色选择器按钮ID与颜色值的映射 + */ private static final Map sBgSelectorBtnsMap = new HashMap(); static { sBgSelectorBtnsMap.put(R.id.iv_bg_yellow, ResourceParser.YELLOW); @@ -93,6 +100,9 @@ public class NoteEditActivity extends Activity implements OnClickListener, sBgSelectorBtnsMap.put(R.id.iv_bg_white, ResourceParser.WHITE); } + /** + * 背景颜色ID与选择器选中状态的映射 + */ private static final Map sBgSelectorSelectionMap = new HashMap(); static { sBgSelectorSelectionMap.put(ResourceParser.YELLOW, R.id.iv_bg_yellow_select); @@ -102,6 +112,9 @@ public class NoteEditActivity extends Activity implements OnClickListener, sBgSelectorSelectionMap.put(ResourceParser.WHITE, R.id.iv_bg_white_select); } + /** + * 字体大小选择器按钮ID与字体大小值的映射 + */ private static final Map sFontSizeBtnsMap = new HashMap(); static { sFontSizeBtnsMap.put(R.id.ll_font_large, ResourceParser.TEXT_LARGE); @@ -110,6 +123,9 @@ public class NoteEditActivity extends Activity implements OnClickListener, sFontSizeBtnsMap.put(R.id.ll_font_super, ResourceParser.TEXT_SUPER); } + /** + * 字体大小ID与选择器选中状态的映射 + */ private static final Map sFontSelectorSelectionMap = new HashMap(); static { sFontSelectorSelectionMap.put(ResourceParser.TEXT_LARGE, R.id.iv_large_select); @@ -120,50 +136,42 @@ public class NoteEditActivity extends Activity implements OnClickListener, private static final String TAG = "NoteEditActivity"; - private HeadViewHolder mNoteHeaderHolder; - - private View mHeadViewPanel; - - private View mNoteBgColorSelector; - - private View mFontSizeSelector; - - private EditText mNoteEditor; - - private View mNoteEditorPanel; - - private WorkingNote mWorkingNote; - - private SharedPreferences mSharedPrefs; - private int mFontSizeId; - - private static final String PREFERENCE_FONT_SIZE = "pref_font_size"; - - private static final int SHORTCUT_ICON_TITLE_MAX_LEN = 10; + private HeadViewHolder mNoteHeaderHolder; // 头部视图持有者 + private View mHeadViewPanel; // 头部面板 + private View mNoteBgColorSelector; // 背景颜色选择器 + private View mFontSizeSelector; // 字体大小选择器 + private EditText mNoteEditor; // 笔记编辑器 + private View mNoteEditorPanel; // 编辑器面板 + private WorkingNote mWorkingNote; // 工作笔记对象 + private SharedPreferences mSharedPrefs; // 共享首选项 + private int mFontSizeId; // 字体大小ID - public static final String TAG_CHECKED = String.valueOf('\u221A'); - public static final String TAG_UNCHECKED = String.valueOf('\u25A1'); + private static final String PREFERENCE_FONT_SIZE = "pref_font_size"; // 字体大小配置键 + private static final int SHORTCUT_ICON_TITLE_MAX_LEN = 10; // 快捷方式图标标题最大长度 - private LinearLayout mEditTextList; + public static final String TAG_CHECKED = String.valueOf('\u221A'); // 已选中标记 + public static final String TAG_UNCHECKED = String.valueOf('\u25A1'); // 未选中标记 - private String mUserQuery; - private Pattern mPattern; + private LinearLayout mEditTextList; // 编辑文本列表 + private String mUserQuery; // 用户搜索关键词 + private Pattern mPattern; // 搜索模式 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.note_edit); + // 初始化Activity状态,如果失败则结束Activity if (savedInstanceState == null && !initActivityState(getIntent())) { finish(); return; } + // 初始化资源 initResources(); } /** - * Current activity may be killed when the memory is low. Once it is killed, for another time - * user load this activity, we should restore the former state + * 当Activity被系统杀死时恢复状态 */ @Override protected void onRestoreInstanceState(Bundle savedInstanceState) { @@ -179,10 +187,15 @@ public class NoteEditActivity extends Activity implements OnClickListener, } } + /** + * 初始化Activity状态 + * @param intent Intent对象 + * @return 初始化是否成功 + */ private boolean initActivityState(Intent intent) { /** - * If the user specified the {@link Intent#ACTION_VIEW} but not provided with id, - * then jump to the NotesListActivity + * 如果用户指定了ACTION_VIEW但没有提供id, + * 则跳转到笔记列表Activity */ mWorkingNote = null; if (TextUtils.equals(Intent.ACTION_VIEW, intent.getAction())) { @@ -190,13 +203,14 @@ public class NoteEditActivity extends Activity implements OnClickListener, mUserQuery = ""; /** - * Starting from the searched result + * 从搜索结果启动 */ if (intent.hasExtra(SearchManager.EXTRA_DATA_KEY)) { noteId = Long.parseLong(intent.getStringExtra(SearchManager.EXTRA_DATA_KEY)); mUserQuery = intent.getStringExtra(SearchManager.USER_QUERY); } + // 检查笔记是否存在 if (!DataUtils.visibleInNoteDatabase(getContentResolver(), noteId, Notes.TYPE_NOTE)) { Intent jump = new Intent(this, NotesListActivity.class); startActivity(jump); @@ -204,6 +218,7 @@ public class NoteEditActivity extends Activity implements OnClickListener, finish(); return false; } else { + // 加载笔记 mWorkingNote = WorkingNote.load(this, noteId); if (mWorkingNote == null) { Log.e(TAG, "load note failed with note id" + noteId); @@ -215,7 +230,7 @@ public class NoteEditActivity extends Activity implements OnClickListener, WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); } else if(TextUtils.equals(Intent.ACTION_INSERT_OR_EDIT, intent.getAction())) { - // New note + // 新建笔记 long folderId = intent.getLongExtra(Notes.INTENT_EXTRA_FOLDER_ID, 0); int widgetId = intent.getIntExtra(Notes.INTENT_EXTRA_WIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); @@ -224,7 +239,7 @@ public class NoteEditActivity extends Activity implements OnClickListener, int bgResId = intent.getIntExtra(Notes.INTENT_EXTRA_BACKGROUND_ID, ResourceParser.getDefaultBgId(this)); - // 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) { @@ -268,33 +283,47 @@ public class NoteEditActivity extends Activity implements OnClickListener, initNoteScreen(); } + /** + * 初始化笔记界面 + */ private void initNoteScreen() { + // 设置字体样式 mNoteEditor.setTextAppearance(this, TextAppearanceResources .getTexAppearanceResource(mFontSizeId)); + + // 根据模式切换显示 if (mWorkingNote.getCheckListMode() == TextNote.MODE_CHECK_LIST) { switchToListMode(mWorkingNote.getContent()); } else { mNoteEditor.setText(getHighlightQueryResult(mWorkingNote.getContent(), mUserQuery)); mNoteEditor.setSelection(mNoteEditor.getText().length()); } + + // 隐藏所有背景选择器 for (Integer id : sBgSelectorSelectionMap.keySet()) { findViewById(sBgSelectorSelectionMap.get(id)).setVisibility(View.GONE); } + + // 设置背景颜色 mHeadViewPanel.setBackgroundResource(mWorkingNote.getTitleBgResId()); mNoteEditorPanel.setBackgroundResource(mWorkingNote.getBgColorResId()); + // 设置修改时间 mNoteHeaderHolder.tvModified.setText(DateUtils.formatDateTime(this, mWorkingNote.getModifiedDate(), DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_NUMERIC_DATE | DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_SHOW_YEAR)); /** - * TODO: Add the menu for setting alert. Currently disable it because the DateTimePicker - * is not ready + * TODO: 添加设置提醒的菜单。目前禁用它因为DateTimePicker + * 还没有准备好 */ showAlertHeader(); } + /** + * 显示提醒头部信息 + */ private void showAlertHeader() { if (mWorkingNote.hasClockAlert()) { long time = System.currentTimeMillis(); @@ -322,9 +351,9 @@ public class NoteEditActivity extends Activity implements OnClickListener, protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); /** - * For new note without note id, we should firstly save it to - * generate a id. If the editing note is not worth saving, there - * is no id which is equivalent to create new note + * 对于没有笔记id的新笔记,我们应该首先保存它以 + * 生成一个id。如果正在编辑的笔记不值得保存,就 + * 没有id,这相当于创建新笔记 */ if (!mWorkingNote.existInDatabase()) { saveNote(); @@ -335,12 +364,14 @@ public class NoteEditActivity extends Activity implements OnClickListener, @Override public boolean dispatchTouchEvent(MotionEvent ev) { + // 点击背景颜色选择器外部时隐藏 if (mNoteBgColorSelector.getVisibility() == View.VISIBLE && !inRangeOfView(mNoteBgColorSelector, ev)) { mNoteBgColorSelector.setVisibility(View.GONE); return true; } + // 点击字体大小选择器外部时隐藏 if (mFontSizeSelector.getVisibility() == View.VISIBLE && !inRangeOfView(mFontSizeSelector, ev)) { mFontSizeSelector.setVisibility(View.GONE); @@ -349,6 +380,12 @@ public class NoteEditActivity extends Activity implements OnClickListener, return super.dispatchTouchEvent(ev); } + /** + * 判断触摸事件是否在视图范围内 + * @param view 视图 + * @param ev 触摸事件 + * @return 是否在范围内 + */ private boolean inRangeOfView(View view, MotionEvent ev) { int []location = new int[2]; view.getLocationOnScreen(location); @@ -363,7 +400,11 @@ public class NoteEditActivity extends Activity implements OnClickListener, return true; } + /** + * 初始化资源 + */ private void initResources() { + // 初始化各个视图 mHeadViewPanel = findViewById(R.id.note_title); mNoteHeaderHolder = new HeadViewHolder(); mNoteHeaderHolder.tvModified = (TextView) findViewById(R.id.tv_modified_date); @@ -374,22 +415,27 @@ public class NoteEditActivity extends Activity implements OnClickListener, mNoteEditor = (EditText) findViewById(R.id.note_edit_view); mNoteEditorPanel = findViewById(R.id.sv_note_edit); mNoteBgColorSelector = findViewById(R.id.note_bg_color_selector); + + // 设置背景颜色选择器点击监听 for (int id : sBgSelectorBtnsMap.keySet()) { ImageView iv = (ImageView) findViewById(id); iv.setOnClickListener(this); } + // 设置字体大小选择器点击监听 mFontSizeSelector = findViewById(R.id.font_size_selector); for (int id : sFontSizeBtnsMap.keySet()) { View view = findViewById(id); view.setOnClickListener(this); }; + + // 获取字体大小配置 mSharedPrefs = PreferenceManager.getDefaultSharedPreferences(this); mFontSizeId = mSharedPrefs.getInt(PREFERENCE_FONT_SIZE, ResourceParser.BG_DEFAULT_FONT_SIZE); /** - * HACKME: Fix bug of store the resource id in shared preference. - * The id may larger than the length of resources, in this case, - * return the {@link ResourceParser#BG_DEFAULT_FONT_SIZE} + * HACKME: 修复在共享首选项中存储资源id的bug。 + * id可能大于资源长度,在这种情况下, + * 返回{@link ResourceParser#BG_DEFAULT_FONT_SIZE} */ if(mFontSizeId >= TextAppearanceResources.getResourcesSize()) { mFontSizeId = ResourceParser.BG_DEFAULT_FONT_SIZE; @@ -406,6 +452,9 @@ 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) { @@ -425,18 +474,24 @@ public class NoteEditActivity extends Activity implements OnClickListener, setResult(RESULT_OK, intent); } + /** + * 处理点击事件 + */ public void onClick(View v) { int id = v.getId(); if (id == R.id.btn_set_bg_color) { + // 显示背景颜色选择器 mNoteBgColorSelector.setVisibility(View.VISIBLE); findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility( - - View.VISIBLE); + View.VISIBLE); } else if (sBgSelectorBtnsMap.containsKey(id)) { + // 选择背景颜色 findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility( View.GONE); mWorkingNote.setBgColorId(sBgSelectorBtnsMap.get(id)); mNoteBgColorSelector.setVisibility(View.GONE); } else if (sFontSizeBtnsMap.containsKey(id)) { + // 选择字体大小 findViewById(sFontSelectorSelectionMap.get(mFontSizeId)).setVisibility(View.GONE); mFontSizeId = sFontSizeBtnsMap.get(id); mSharedPrefs.edit().putInt(PREFERENCE_FONT_SIZE, mFontSizeId).commit(); @@ -462,6 +517,10 @@ public class NoteEditActivity extends Activity implements OnClickListener, super.onBackPressed(); } + /** + * 清除设置状态 + * @return 是否清除了状态 + */ private boolean clearSettingState() { if (mNoteBgColorSelector.getVisibility() == View.VISIBLE) { mNoteBgColorSelector.setVisibility(View.GONE); @@ -473,6 +532,9 @@ public class NoteEditActivity extends Activity implements OnClickListener, return false; } + /** + * 背景颜色改变时的回调 + */ public void onBackgroundColorChanged() { findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility( View.VISIBLE); @@ -509,9 +571,11 @@ public class NoteEditActivity extends Activity implements OnClickListener, public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menu_new_note: + // 创建新笔记 createNewNote(); break; case R.id.menu_delete: + // 删除笔记 AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle(getString(R.string.alert_title_delete)); builder.setIcon(android.R.drawable.ic_dialog_alert); @@ -527,24 +591,30 @@ public class NoteEditActivity extends Activity implements OnClickListener, builder.show(); break; case R.id.menu_font_size: + // 显示字体大小选择器 mFontSizeSelector.setVisibility(View.VISIBLE); findViewById(sFontSelectorSelectionMap.get(mFontSizeId)).setVisibility(View.VISIBLE); break; case R.id.menu_list_mode: + // 切换列表模式 mWorkingNote.setCheckListMode(mWorkingNote.getCheckListMode() == 0 ? TextNote.MODE_CHECK_LIST : 0); break; case R.id.menu_share: + // 分享笔记 getWorkingText(); sendTo(this, mWorkingNote.getContent()); break; case R.id.menu_send_to_desktop: + // 发送到桌面 sendToDesktop(); break; case R.id.menu_alert: + // 设置提醒 setReminder(); break; case R.id.menu_delete_remind: + // 删除提醒 mWorkingNote.setAlertDate(0, false); break; default: @@ -553,6 +623,9 @@ public class NoteEditActivity extends Activity implements OnClickListener, return true; } + /** + * 设置提醒 + */ private void setReminder() { DateTimePickerDialog d = new DateTimePickerDialog(this, System.currentTimeMillis()); d.setOnDateTimeSetListener(new OnDateTimeSetListener() { @@ -564,8 +637,8 @@ public class NoteEditActivity extends Activity implements OnClickListener, } /** - * Share note to apps that support {@link Intent#ACTION_SEND} action - * and {@text/plain} type + * 分享笔记到支持{@link Intent#ACTION_SEND}动作 + * 和{text/plain}类型的应用 */ private void sendTo(Context context, String info) { Intent intent = new Intent(Intent.ACTION_SEND); @@ -574,11 +647,14 @@ public class NoteEditActivity extends Activity implements OnClickListener, context.startActivity(intent); } + /** + * 创建新笔记 + */ private void createNewNote() { - // Firstly, save current editing notes + // 首先保存当前编辑的笔记 saveNote(); - // For safety, start a new NoteEditActivity + // 为安全起见,启动一个新的NoteEditActivity finish(); Intent intent = new Intent(this, NoteEditActivity.class); intent.setAction(Intent.ACTION_INSERT_OR_EDIT); @@ -586,6 +662,9 @@ public class NoteEditActivity extends Activity implements OnClickListener, startActivity(intent); } + /** + * 删除当前笔记 + */ private void deleteCurrentNote() { if (mWorkingNote.existInDatabase()) { HashSet ids = new HashSet(); diff --git a/src/Notes-master/app/src/main/java/net/micode/notes/ui/NoteEditText.java b/src/Notes-master/app/src/main/java/net/micode/notes/ui/NoteEditText.java index 2afe2a8..a5c42c1 100644 --- a/src/Notes-master/app/src/main/java/net/micode/notes/ui/NoteEditText.java +++ b/src/Notes-master/app/src/main/java/net/micode/notes/ui/NoteEditText.java @@ -37,15 +37,23 @@ import net.micode.notes.R; import java.util.HashMap; import java.util.Map; +/** + * 笔记编辑文本框类 + * 继承自EditText,实现了笔记编辑的核心功能 + */ 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 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); @@ -54,38 +62,46 @@ public class NoteEditText extends EditText { } /** - * Call by the {@link NoteEditActivity} to delete or add edit text + * 文本变化监听器接口 + * 由NoteEditActivity实现,用于处理文本编辑事件 */ public interface OnTextViewChangeListener { /** - * Delete current edit text when {@link KeyEvent#KEYCODE_DEL} happens - * and the text is null + * 当按下删除键且文本为空时删除当前编辑框 */ void onEditTextDelete(int index, String text); /** - * Add edit text after current edit text when {@link KeyEvent#KEYCODE_ENTER} - * happen + * 当按下回车键时在当前编辑框后添加新的编辑框 */ void onEditTextEnter(int index, String text); /** - * Hide or show item option when text change + * 根据文本是否为空显示或隐藏选项 */ void onTextChange(int index, boolean hasText); } private OnTextViewChangeListener mOnTextViewChangeListener; + /** + * 构造函数 + */ public NoteEditText(Context context) { super(context, null); mIndex = 0; } + /** + * 设置编辑框索引 + */ public void setIndex(int index) { mIndex = index; } + /** + * 设置文本变化监听器 + */ public void setOnTextViewChangeListener(OnTextViewChangeListener listener) { mOnTextViewChangeListener = listener; } @@ -96,14 +112,16 @@ public class NoteEditText extends EditText { public NoteEditText(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); - // TODO Auto-generated constructor stub } + /** + * 处理触摸事件,实现光标的准确定位 + */ @Override public boolean onTouchEvent(MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: - + // 计算触摸点相对于文本的坐标 int x = (int) event.getX(); int y = (int) event.getY(); x -= getTotalPaddingLeft(); @@ -111,6 +129,7 @@ public class NoteEditText extends EditText { x += getScrollX(); y += getScrollY(); + // 根据坐标获取对应的文本偏移量并设置光标 Layout layout = getLayout(); int line = layout.getLineForVertical(y); int off = layout.getOffsetForHorizontal(line, x); @@ -121,6 +140,9 @@ public class NoteEditText extends EditText { return super.onTouchEvent(event); } + /** + * 处理按键按下事件 + */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { switch (keyCode) { @@ -130,6 +152,7 @@ public class NoteEditText extends EditText { } break; case KeyEvent.KEYCODE_DEL: + // 记录删除前光标位置 mSelectionStartBeforeDelete = getSelectionStart(); break; default: @@ -138,11 +161,15 @@ public class NoteEditText extends EditText { return super.onKeyDown(keyCode, event); } + /** + * 处理按键弹起事件 + */ @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; @@ -153,6 +180,7 @@ public class NoteEditText extends EditText { break; case KeyEvent.KEYCODE_ENTER: if (mOnTextViewChangeListener != null) { + // 按下回车时分割文本并创建新编辑框 int selectionStart = getSelectionStart(); String text = getText().subSequence(selectionStart, length()).toString(); setText(getText().subSequence(0, selectionStart)); @@ -167,9 +195,13 @@ public class NoteEditText extends EditText { return super.onKeyUp(keyCode, event); } + /** + * 处理焦点变化事件 + */ @Override protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) { if (mOnTextViewChangeListener != null) { + // 根据是否有文本通知监听器更新UI if (!focused && TextUtils.isEmpty(getText())) { mOnTextViewChangeListener.onTextChange(mIndex, false); } else { @@ -179,6 +211,10 @@ public class NoteEditText extends EditText { super.onFocusChanged(focused, direction, previouslyFocusedRect); } + /** + * 创建上下文菜单 + * 为文本中的链接创建点击操作菜单 + */ @Override protected void onCreateContextMenu(ContextMenu menu) { if (getText() instanceof Spanned) { @@ -188,8 +224,10 @@ public class NoteEditText extends EditText { int min = Math.min(selStart, selEnd); int max = Math.max(selStart, selEnd); + // 获取选中文本中的URL final URLSpan[] urls = ((Spanned) getText()).getSpans(min, max, URLSpan.class); if (urls.length == 1) { + // 根据URL类型设置对应的操作文本 int defaultResId = 0; for(String schema: sSchemaActionResMap.keySet()) { if(urls[0].getURL().indexOf(schema) >= 0) { @@ -202,10 +240,11 @@ public class NoteEditText extends EditText { defaultResId = R.string.note_link_other; } + // 添加菜单项并设置点击监听 menu.add(0, 0, 0, defaultResId).setOnMenuItemClickListener( new OnMenuItemClickListener() { public boolean onMenuItemClick(MenuItem item) { - // goto a new intent + // 处理URL点击 urls[0].onClick(NoteEditText.this); return true; } diff --git a/src/Notes-master/app/src/main/java/net/micode/notes/ui/NoteItemData.java b/src/Notes-master/app/src/main/java/net/micode/notes/ui/NoteItemData.java index 0f5a878..cf79a21 100644 --- a/src/Notes-master/app/src/main/java/net/micode/notes/ui/NoteItemData.java +++ b/src/Notes-master/app/src/main/java/net/micode/notes/ui/NoteItemData.java @@ -25,73 +25,88 @@ import net.micode.notes.data.Notes; import net.micode.notes.data.Notes.NoteColumns; import net.micode.notes.tool.DataUtils; - +/** + * 笔记项数据类 + * 用于存储和管理单个笔记项的所有相关数据 + */ public class NoteItemData { + // 数据库查询的列定义 static final String [] PROJECTION = new String [] { - NoteColumns.ID, - NoteColumns.ALERTED_DATE, - NoteColumns.BG_COLOR_ID, - NoteColumns.CREATED_DATE, - NoteColumns.HAS_ATTACHMENT, - NoteColumns.MODIFIED_DATE, - NoteColumns.NOTES_COUNT, - NoteColumns.PARENT_ID, - NoteColumns.SNIPPET, - NoteColumns.TYPE, - NoteColumns.WIDGET_ID, - NoteColumns.WIDGET_TYPE, + NoteColumns.ID, // 笔记ID + NoteColumns.ALERTED_DATE, // 提醒日期 + NoteColumns.BG_COLOR_ID, // 背景颜色ID + NoteColumns.CREATED_DATE, // 创建日期 + NoteColumns.HAS_ATTACHMENT, // 是否有附件 + NoteColumns.MODIFIED_DATE, // 修改日期 + NoteColumns.NOTES_COUNT, // 笔记数量 + NoteColumns.PARENT_ID, // 父文件夹ID + NoteColumns.SNIPPET, // 笔记摘要 + NoteColumns.TYPE, // 笔记类型 + NoteColumns.WIDGET_ID, // 小部件ID + NoteColumns.WIDGET_TYPE, // 小部件类型 }; - private static final int ID_COLUMN = 0; - private static final int ALERTED_DATE_COLUMN = 1; - private static final int BG_COLOR_ID_COLUMN = 2; - private static final int CREATED_DATE_COLUMN = 3; - private static final int HAS_ATTACHMENT_COLUMN = 4; - private static final int MODIFIED_DATE_COLUMN = 5; - private static final int NOTES_COUNT_COLUMN = 6; - private static final int PARENT_ID_COLUMN = 7; - private static final int SNIPPET_COLUMN = 8; - private static final int TYPE_COLUMN = 9; - private static final int WIDGET_ID_COLUMN = 10; - private static final int WIDGET_TYPE_COLUMN = 11; - - private long mId; - private long mAlertDate; - private int mBgColorId; - private long mCreatedDate; - private boolean mHasAttachment; - private long mModifiedDate; - private int mNotesCount; - private long mParentId; - private String mSnippet; - private int mType; - private int mWidgetId; - private int mWidgetType; - private String mName; - private String mPhoneNumber; - - private boolean mIsLastItem; - private boolean mIsFirstItem; - private boolean mIsOnlyOneItem; - private boolean mIsOneNoteFollowingFolder; - private boolean mIsMultiNotesFollowingFolder; - + // 查询结果列的索引常量 + private static final int ID_COLUMN = 0; + private static final int ALERTED_DATE_COLUMN = 1; + private static final int BG_COLOR_ID_COLUMN = 2; + private static final int CREATED_DATE_COLUMN = 3; + private static final int HAS_ATTACHMENT_COLUMN = 4; + private static final int MODIFIED_DATE_COLUMN = 5; + private static final int NOTES_COUNT_COLUMN = 6; + private static final int PARENT_ID_COLUMN = 7; + private static final int SNIPPET_COLUMN = 8; + private static final int TYPE_COLUMN = 9; + private static final int WIDGET_ID_COLUMN = 10; + private static final int WIDGET_TYPE_COLUMN = 11; + + // 笔记基本属性 + private long mId; // 笔记ID + private long mAlertDate; // 提醒时间 + private int mBgColorId; // 背景颜色 + private long mCreatedDate; // 创建时间 + private boolean mHasAttachment; // 是否有附件 + private long mModifiedDate; // 修改时间 + private int mNotesCount; // 笔记数量 + private long mParentId; // 父文件夹ID + private String mSnippet; // 笔记摘要 + private int mType; // 笔记类型 + private int mWidgetId; // 小部件ID + private int mWidgetType; // 小部件类型 + private String mName; // 联系人姓名(通话记录用) + private String mPhoneNumber; // 电话号码(通话记录用) + + // 笔记在列表中的位置状态 + private boolean mIsLastItem; // 是否为最后一项 + private boolean mIsFirstItem; // 是否为第一项 + private boolean mIsOnlyOneItem; // 是否为唯一项 + private boolean mIsOneNoteFollowingFolder; // 是否为文件夹后的单个笔记 + private boolean mIsMultiNotesFollowingFolder; // 是否为文件夹后的多个笔记之一 + + /** + * 构造函数 + * @param context 上下文对象 + * @param cursor 数据库游标 + */ public NoteItemData(Context context, Cursor cursor) { + // 从游标中读取笔记数据 mId = cursor.getLong(ID_COLUMN); mAlertDate = cursor.getLong(ALERTED_DATE_COLUMN); mBgColorId = cursor.getInt(BG_COLOR_ID_COLUMN); mCreatedDate = cursor.getLong(CREATED_DATE_COLUMN); - mHasAttachment = (cursor.getInt(HAS_ATTACHMENT_COLUMN) > 0) ? true : false; + mHasAttachment = (cursor.getInt(HAS_ATTACHMENT_COLUMN) > 0); mModifiedDate = cursor.getLong(MODIFIED_DATE_COLUMN); mNotesCount = cursor.getInt(NOTES_COUNT_COLUMN); mParentId = cursor.getLong(PARENT_ID_COLUMN); mSnippet = cursor.getString(SNIPPET_COLUMN); + // 移除笔记内容中的复选框标记 mSnippet = mSnippet.replace(NoteEditActivity.TAG_CHECKED, "").replace( NoteEditActivity.TAG_UNCHECKED, ""); mType = cursor.getInt(TYPE_COLUMN); mWidgetId = cursor.getInt(WIDGET_ID_COLUMN); mWidgetType = cursor.getInt(WIDGET_TYPE_COLUMN); + // 处理通话记录相关信息 mPhoneNumber = ""; if (mParentId == Notes.ID_CALL_RECORD_FOLDER) { mPhoneNumber = DataUtils.getCallNumberByNoteId(context.getContentResolver(), mId); @@ -106,16 +121,22 @@ public class NoteItemData { if (mName == null) { mName = ""; } + // 检查笔记在列表中的位置 checkPostion(cursor); } + /** + * 检查笔记在列表中的位置状态 + * @param cursor 数据库游标 + */ private void checkPostion(Cursor cursor) { - mIsLastItem = cursor.isLast() ? true : false; - mIsFirstItem = cursor.isFirst() ? true : false; + mIsLastItem = cursor.isLast(); + mIsFirstItem = cursor.isFirst(); mIsOnlyOneItem = (cursor.getCount() == 1); mIsMultiNotesFollowingFolder = false; mIsOneNoteFollowingFolder = false; + // 检查是否为文件夹后的笔记 if (mType == Notes.TYPE_NOTE && !mIsFirstItem) { int position = cursor.getPosition(); if (cursor.moveToPrevious()) { @@ -134,90 +155,160 @@ public class NoteItemData { } } + // 以下是各种getter方法 + + /** + * 判断是否为文件夹后的单个笔记 + */ public boolean isOneFollowingFolder() { return mIsOneNoteFollowingFolder; } + /** + * 判断是否为文件夹后的多个笔记之一 + */ public boolean isMultiFollowingFolder() { return mIsMultiNotesFollowingFolder; } + /** + * 判断是否为最后一项 + */ public boolean isLast() { return mIsLastItem; } + /** + * 获取通话记录联系人名称 + */ public String getCallName() { return mName; } + /** + * 判断是否为第一项 + */ public boolean isFirst() { return mIsFirstItem; } + /** + * 判断是否为唯一项 + */ public boolean isSingle() { return mIsOnlyOneItem; } + /** + * 获取笔记ID + */ public long getId() { return mId; } + /** + * 获取提醒时间 + */ public long getAlertDate() { return mAlertDate; } + /** + * 获取创建时间 + */ public long getCreatedDate() { return mCreatedDate; } + /** + * 判断是否有附件 + */ public boolean hasAttachment() { return mHasAttachment; } + /** + * 获取修改时间 + */ public long getModifiedDate() { return mModifiedDate; } + /** + * 获取背景颜色ID + */ public int getBgColorId() { return mBgColorId; } + /** + * 获取父文件夹ID + */ public long getParentId() { return mParentId; } + /** + * 获取笔记数量 + */ public int getNotesCount() { return mNotesCount; } + /** + * 获取文件夹ID + */ public long getFolderId () { return mParentId; } + /** + * 获取笔记类型 + */ public int getType() { return mType; } + /** + * 获取小部件类型 + */ public int getWidgetType() { return mWidgetType; } + /** + * 获取小部件ID + */ public int getWidgetId() { return mWidgetId; } + /** + * 获取笔记摘要 + */ public String getSnippet() { return mSnippet; } + /** + * 判断是否设置了提醒 + */ public boolean hasAlert() { return (mAlertDate > 0); } + /** + * 判断是否为通话记录 + */ public boolean isCallRecord() { return (mParentId == Notes.ID_CALL_RECORD_FOLDER && !TextUtils.isEmpty(mPhoneNumber)); } + /** + * 获取笔记类型的静态方法 + * @param cursor 数据库游标 + * @return 笔记类型 + */ public static int getNoteType(Cursor cursor) { return cursor.getInt(TYPE_COLUMN); } diff --git a/src/Notes-master/app/src/main/java/net/micode/notes/ui/NotesListAdapter.java b/src/Notes-master/app/src/main/java/net/micode/notes/ui/NotesListAdapter.java index 51c9cb9..a0d2d5a 100644 --- a/src/Notes-master/app/src/main/java/net/micode/notes/ui/NotesListAdapter.java +++ b/src/Notes-master/app/src/main/java/net/micode/notes/ui/NotesListAdapter.java @@ -30,19 +30,30 @@ import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; - +/** + * 笔记列表适配器类 + * 用于管理笔记列表的数据显示和选择状态 + */ public class NotesListAdapter extends CursorAdapter { private static final String TAG = "NotesListAdapter"; - private Context mContext; - private HashMap mSelectedIndex; - private int mNotesCount; - private boolean mChoiceMode; - + private Context mContext; // 上下文对象 + private HashMap mSelectedIndex; // 记录列表项选择状态的Map + private int mNotesCount; // 笔记总数 + private boolean mChoiceMode; // 是否处于多选模式 + + /** + * 小部件属性内部类 + * 用于存储小部件的ID和类型信息 + */ public static class AppWidgetAttribute { - public int widgetId; - public int widgetType; + public int widgetId; // 小部件ID + public int widgetType; // 小部件类型 }; + /** + * 构造函数 + * @param context 上下文对象 + */ public NotesListAdapter(Context context) { super(context, null); mSelectedIndex = new HashMap(); @@ -50,11 +61,17 @@ public class NotesListAdapter extends CursorAdapter { mNotesCount = 0; } + /** + * 创建新的列表项视图 + */ @Override public View newView(Context context, Cursor cursor, ViewGroup parent) { return new NotesListItem(context); } + /** + * 绑定数据到视图 + */ @Override public void bindView(View view, Context context, Cursor cursor) { if (view instanceof NotesListItem) { @@ -64,20 +81,36 @@ public class NotesListAdapter extends CursorAdapter { } } + /** + * 设置列表项的选中状态 + * @param position 位置 + * @param checked 是否选中 + */ public void setCheckedItem(final int position, final boolean checked) { mSelectedIndex.put(position, checked); notifyDataSetChanged(); } + /** + * 判断是否处于多选模式 + */ public boolean isInChoiceMode() { return mChoiceMode; } + /** + * 设置多选模式 + * @param mode 是否开启多选 + */ public void setChoiceMode(boolean mode) { mSelectedIndex.clear(); mChoiceMode = mode; } + /** + * 全选/取消全选 + * @param checked 是否选中 + */ public void selectAll(boolean checked) { Cursor cursor = getCursor(); for (int i = 0; i < getCount(); i++) { @@ -89,6 +122,10 @@ public class NotesListAdapter extends CursorAdapter { } } + /** + * 获取所有选中项的ID集合 + * @return 选中项ID的HashSet + */ public HashSet getSelectedItemIds() { HashSet itemSet = new HashSet(); for (Integer position : mSelectedIndex.keySet()) { @@ -101,10 +138,13 @@ public class NotesListAdapter extends CursorAdapter { } } } - return itemSet; } + /** + * 获取所有选中的小部件属性 + * @return 小部件属性的HashSet + */ public HashSet getSelectedWidget() { HashSet itemSet = new HashSet(); for (Integer position : mSelectedIndex.keySet()) { @@ -128,6 +168,10 @@ public class NotesListAdapter extends CursorAdapter { return itemSet; } + /** + * 获取选中项的数量 + * @return 选中的数量 + */ public int getSelectedCount() { Collection values = mSelectedIndex.values(); if (null == values) { @@ -143,11 +187,20 @@ public class NotesListAdapter extends CursorAdapter { return count; } + /** + * 判断是否全部选中 + * @return 是否全选 + */ public boolean isAllSelected() { int checkedCount = getSelectedCount(); return (checkedCount != 0 && checkedCount == mNotesCount); } + /** + * 判断指定位置的项是否被选中 + * @param position 位置 + * @return 是否选中 + */ public boolean isSelectedItem(final int position) { if (null == mSelectedIndex.get(position)) { return false; @@ -155,18 +208,28 @@ public class NotesListAdapter extends CursorAdapter { return mSelectedIndex.get(position); } + /** + * 内容改变时的回调 + */ @Override protected void onContentChanged() { super.onContentChanged(); calcNotesCount(); } + /** + * 更换数据源时的回调 + */ @Override public void changeCursor(Cursor cursor) { super.changeCursor(cursor); calcNotesCount(); } + /** + * 计算笔记总数 + * 仅计算类型为NOTE的项目 + */ private void calcNotesCount() { mNotesCount = 0; for (int i = 0; i < getCount(); i++) { diff --git a/src/Notes-master/app/src/main/java/net/micode/notes/ui/NotesListItem.java b/src/Notes-master/app/src/main/java/net/micode/notes/ui/NotesListItem.java index 1221e80..1d75c7f 100644 --- a/src/Notes-master/app/src/main/java/net/micode/notes/ui/NotesListItem.java +++ b/src/Notes-master/app/src/main/java/net/micode/notes/ui/NotesListItem.java @@ -29,18 +29,27 @@ import net.micode.notes.data.Notes; import net.micode.notes.tool.DataUtils; import net.micode.notes.tool.ResourceParser.NoteItemBgResources; - +/** + * 笔记列表项视图类 + * 用于显示单个笔记项的自定义视图 + */ public class NotesListItem extends LinearLayout { - private ImageView mAlert; - private TextView mTitle; - private TextView mTime; - private TextView mCallName; - private NoteItemData mItemData; - private CheckBox mCheckBox; + private ImageView mAlert; // 提醒图标 + private TextView mTitle; // 标题文本 + private TextView mTime; // 时间文本 + private TextView mCallName; // 通话名称文本 + private NoteItemData mItemData;// 笔记项数据 + private CheckBox mCheckBox; // 选择框 + /** + * 构造函数 + * @param context 上下文对象 + */ public NotesListItem(Context context) { super(context); + // 加载note_item布局 inflate(context, R.layout.note_item, this); + // 初始化各个视图组件 mAlert = (ImageView) findViewById(R.id.iv_alert_icon); mTitle = (TextView) findViewById(R.id.tv_title); mTime = (TextView) findViewById(R.id.tv_time); @@ -48,7 +57,15 @@ public class NotesListItem extends LinearLayout { mCheckBox = (CheckBox) findViewById(android.R.id.checkbox); } + /** + * 绑定数据到视图 + * @param context 上下文对象 + * @param data 笔记项数据 + * @param choiceMode 是否处于选择模式 + * @param checked 是否被选中 + */ public void bind(Context context, NoteItemData data, boolean choiceMode, boolean checked) { + // 处理选择框的显示状态 if (choiceMode && data.getType() == Notes.TYPE_NOTE) { mCheckBox.setVisibility(View.VISIBLE); mCheckBox.setChecked(checked); @@ -57,7 +74,10 @@ public class NotesListItem extends LinearLayout { } mItemData = data; + + // 根据不同类型的笔记显示不同的界面 if (data.getId() == Notes.ID_CALL_RECORD_FOLDER) { + // 通话记录文件夹的显示 mCallName.setVisibility(View.GONE); mAlert.setVisibility(View.VISIBLE); mTitle.setTextAppearance(context, R.style.TextAppearancePrimaryItem); @@ -65,6 +85,7 @@ public class NotesListItem extends LinearLayout { + context.getString(R.string.format_folder_files_count, data.getNotesCount())); mAlert.setImageResource(R.drawable.call_record); } else if (data.getParentId() == Notes.ID_CALL_RECORD_FOLDER) { + // 通话记录子项的显示 mCallName.setVisibility(View.VISIBLE); mCallName.setText(data.getCallName()); mTitle.setTextAppearance(context,R.style.TextAppearanceSecondaryItem); @@ -76,15 +97,18 @@ public class NotesListItem extends LinearLayout { mAlert.setVisibility(View.GONE); } } else { + // 普通笔记项的显示 mCallName.setVisibility(View.GONE); mTitle.setTextAppearance(context, R.style.TextAppearancePrimaryItem); if (data.getType() == Notes.TYPE_FOLDER) { + // 文件夹类型 mTitle.setText(data.getSnippet() + context.getString(R.string.format_folder_files_count, data.getNotesCount())); mAlert.setVisibility(View.GONE); } else { + // 笔记类型 mTitle.setText(DataUtils.getFormattedSnippet(data.getSnippet())); if (data.hasAlert()) { mAlert.setImageResource(R.drawable.clock); @@ -94,28 +118,44 @@ public class NotesListItem extends LinearLayout { } } } + // 设置修改时间 mTime.setText(DateUtils.getRelativeTimeSpanString(data.getModifiedDate())); + // 设置背景 setBackground(data); } + /** + * 设置列表项背景 + * @param data 笔记项数据 + */ private void setBackground(NoteItemData data) { int id = data.getBgColorId(); if (data.getType() == Notes.TYPE_NOTE) { + // 根据笔记在列表中的位置设置不同的背景 if (data.isSingle() || data.isOneFollowingFolder()) { + // 单个笔记或紧跟文件夹的笔记 setBackgroundResource(NoteItemBgResources.getNoteBgSingleRes(id)); } else if (data.isLast()) { + // 最后一个笔记 setBackgroundResource(NoteItemBgResources.getNoteBgLastRes(id)); } else if (data.isFirst() || data.isMultiFollowingFolder()) { + // 第一个笔记或多个紧跟文件夹的笔记 setBackgroundResource(NoteItemBgResources.getNoteBgFirstRes(id)); } else { + // 普通笔记 setBackgroundResource(NoteItemBgResources.getNoteBgNormalRes(id)); } } else { + // 文件夹背景 setBackgroundResource(NoteItemBgResources.getFolderBgRes()); } } + /** + * 获取笔记项数据 + * @return 笔记项数据对象 + */ public NoteItemData getItemData() { return mItemData; } diff --git a/src/Notes-master/app/src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java b/src/Notes-master/app/src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java index 07c5f7e..402ff11 100644 --- a/src/Notes-master/app/src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java +++ b/src/Notes-master/app/src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java @@ -47,56 +47,85 @@ import net.micode.notes.data.Notes; import net.micode.notes.data.Notes.NoteColumns; import net.micode.notes.gtask.remote.GTaskSyncService; - +/** + * 笔记应用的设置界面Activity + * 主要功能包括: + * 1. 账户同步设置 + * 2. 同步状态显示 + * 3. 背景颜色设置等 + */ public class NotesPreferenceActivity extends PreferenceActivity { + // 偏好设置的文件名 public static final String PREFERENCE_NAME = "notes_preferences"; + // 同步账户名称的键值 public static final String PREFERENCE_SYNC_ACCOUNT_NAME = "pref_key_account_name"; + // 最后同步时间的键值 public static final String PREFERENCE_LAST_SYNC_TIME = "pref_last_sync_time"; + // 背景颜色设置的键值 public static final String PREFERENCE_SET_BG_COLOR_KEY = "pref_key_bg_random_appear"; + // 同步账户设置的键值 private static final String PREFERENCE_SYNC_ACCOUNT_KEY = "pref_sync_account_key"; + // 账户权限过滤的键值 private static final String AUTHORITIES_FILTER_KEY = "authorities"; + // 账户设置分类 private PreferenceCategory mAccountCategory; + // 广播接收器,用于接收同步服务的状态更新 private GTaskReceiver mReceiver; + // 原始账户列表 private Account[] mOriAccounts; + // 是否已添加新账户的标志 private boolean mHasAddedAccount; + /** + * Activity创建时的回调 + */ @Override protected void onCreate(Bundle icicle) { super.onCreate(icicle); - /* using the app icon for navigation */ + /* 设置应用图标可以用于导航 */ getActionBar().setDisplayHomeAsUpEnabled(true); + // 加载偏好设置的XML布局 addPreferencesFromResource(R.xml.preferences); mAccountCategory = (PreferenceCategory) findPreference(PREFERENCE_SYNC_ACCOUNT_KEY); + + // 初始化并注册广播接收器 mReceiver = new GTaskReceiver(); IntentFilter filter = new IntentFilter(); filter.addAction(GTaskSyncService.GTASK_SERVICE_BROADCAST_NAME); registerReceiver(mReceiver, filter); + // 初始化账户相关变量 mOriAccounts = null; + + // 添加设置页面的头部视图 View header = LayoutInflater.from(this).inflate(R.layout.settings_header, null); getListView().addHeaderView(header, null, true); } + /** + * Activity恢复时的回调 + * 主要处理账户添加后的自动设置 + */ @Override protected void onResume() { super.onResume(); - // need to set sync account automatically if user has added a new - // account + // 如果添加了新账户,需要自动设置为同步账户 if (mHasAddedAccount) { Account[] accounts = getGoogleAccounts(); if (mOriAccounts != null && accounts.length > mOriAccounts.length) { + // 遍历查找新添加的账户 for (Account accountNew : accounts) { boolean found = false; for (Account accountOld : mOriAccounts) { @@ -105,6 +134,7 @@ public class NotesPreferenceActivity extends PreferenceActivity { break; } } + // 找到新账户后设置为同步账户 if (!found) { setSyncAccount(accountNew.name); break; @@ -113,9 +143,14 @@ public class NotesPreferenceActivity extends PreferenceActivity { } } + // 刷新界面 refreshUI(); } + /** + * Activity销毁时的回调 + * 注销广播接收器 + */ @Override protected void onDestroy() { if (mReceiver != null) { @@ -124,6 +159,10 @@ public class NotesPreferenceActivity extends PreferenceActivity { super.onDestroy(); } + /** + * 加载账户偏好设置 + * 设置账户选项的标题、摘要和点击事件 + */ private void loadAccountPreference() { mAccountCategory.removeAll(); @@ -135,14 +174,14 @@ public class NotesPreferenceActivity extends PreferenceActivity { public boolean onPreferenceClick(Preference preference) { if (!GTaskSyncService.isSyncing()) { if (TextUtils.isEmpty(defaultAccount)) { - // the first time to set account + // 首次设置账户 showSelectAccountAlertDialog(); } else { - // if the account has already been set, we need to promp - // user about the risk + // 已有账户,显示更改账户的确认对话框 showChangeAccountConfirmAlertDialog(); } } else { + // 同步过程中不能更改账户 Toast.makeText(NotesPreferenceActivity.this, R.string.preferences_toast_cannot_change_account, Toast.LENGTH_SHORT) .show(); @@ -154,12 +193,17 @@ public class NotesPreferenceActivity extends PreferenceActivity { mAccountCategory.addPreference(accountPref); } + /** + * 加载同步按钮 + * 设置按钮状态和最后同步时间 + */ private void loadSyncButton() { Button syncButton = (Button) findViewById(R.id.preference_sync_button); TextView lastSyncTimeView = (TextView) findViewById(R.id.prefenerece_sync_status_textview); - // set button state + // 根据同步状态设置按钮 if (GTaskSyncService.isSyncing()) { + // 同步中显示取消按钮 syncButton.setText(getString(R.string.preferences_button_sync_cancel)); syncButton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { @@ -167,6 +211,7 @@ public class NotesPreferenceActivity extends PreferenceActivity { } }); } else { + // 非同步状态显示立即同步按钮 syncButton.setText(getString(R.string.preferences_button_sync_immediately)); syncButton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { @@ -174,13 +219,16 @@ public class NotesPreferenceActivity extends PreferenceActivity { } }); } + // 未设置账户时禁用同步按钮 syncButton.setEnabled(!TextUtils.isEmpty(getSyncAccountName(this))); - // set last sync time + // 设置最后同步时间显示 if (GTaskSyncService.isSyncing()) { + // 同步中显示进度 lastSyncTimeView.setText(GTaskSyncService.getProgressString()); lastSyncTimeView.setVisibility(View.VISIBLE); } else { + // 显示上次同步时间 long lastSyncTime = getLastSyncTime(this); if (lastSyncTime != 0) { lastSyncTimeView.setText(getString(R.string.preferences_last_sync_time, @@ -193,14 +241,22 @@ public class NotesPreferenceActivity extends PreferenceActivity { } } + /** + * 刷新界面 + * 重新加载账户设置和同步按钮 + */ private void refreshUI() { loadAccountPreference(); loadSyncButton(); } + /** + * 显示选择账户的对话框 + */ private void showSelectAccountAlertDialog() { AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this); + // 设置对话框标题视图 View titleView = LayoutInflater.from(this).inflate(R.layout.account_dialog_title, null); TextView titleTextView = (TextView) titleView.findViewById(R.id.account_dialog_title); titleTextView.setText(getString(R.string.preferences_dialog_select_account_title)); @@ -210,12 +266,14 @@ public class NotesPreferenceActivity extends PreferenceActivity { dialogBuilder.setCustomTitle(titleView); dialogBuilder.setPositiveButton(null, null); + // 获取Google账户列表 Account[] accounts = getGoogleAccounts(); String defAccount = getSyncAccountName(this); mOriAccounts = accounts; mHasAddedAccount = false; + // 设置账户列表选项 if (accounts.length > 0) { CharSequence[] items = new CharSequence[accounts.length]; final CharSequence[] itemMapping = items; @@ -237,6 +295,7 @@ public class NotesPreferenceActivity extends PreferenceActivity { }); } + // 添加"添加账户"选项 View addAccountView = LayoutInflater.from(this).inflate(R.layout.add_account_text, null); dialogBuilder.setView(addAccountView); @@ -254,9 +313,13 @@ public class NotesPreferenceActivity extends PreferenceActivity { }); } + /** + * 显示更改账户的确认对话框 + */ private void showChangeAccountConfirmAlertDialog() { AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this); + // 设置对话框标题 View titleView = LayoutInflater.from(this).inflate(R.layout.account_dialog_title, null); TextView titleTextView = (TextView) titleView.findViewById(R.id.account_dialog_title); titleTextView.setText(getString(R.string.preferences_dialog_change_account_title, @@ -265,6 +328,7 @@ public class NotesPreferenceActivity extends PreferenceActivity { subtitleTextView.setText(getString(R.string.preferences_dialog_change_account_warn_msg)); dialogBuilder.setCustomTitle(titleView); + // 设置选项菜单 CharSequence[] menuItemArray = new CharSequence[] { getString(R.string.preferences_menu_change_account), getString(R.string.preferences_menu_remove_account), @@ -283,13 +347,21 @@ public class NotesPreferenceActivity extends PreferenceActivity { dialogBuilder.show(); } + /** + * 获取设备上的Google账户列表 + */ private Account[] getGoogleAccounts() { AccountManager accountManager = AccountManager.get(this); return accountManager.getAccountsByType("com.google"); } + /** + * 设置同步账户 + * @param account 账户名称 + */ private void setSyncAccount(String account) { if (!getSyncAccountName(this).equals(account)) { + // 保存新账户设置 SharedPreferences settings = getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE); SharedPreferences.Editor editor = settings.edit(); if (account != null) { @@ -299,10 +371,10 @@ public class NotesPreferenceActivity extends PreferenceActivity { } editor.commit(); - // clean up last sync time + // 清除上次同步时间 setLastSyncTime(this, 0); - // clean up local gtask related info + // 清除本地Google任务相关信息 new Thread(new Runnable() { public void run() { ContentValues values = new ContentValues(); @@ -318,6 +390,10 @@ public class NotesPreferenceActivity extends PreferenceActivity { } } + /** + * 移除同步账户 + * 清除账户设置和同步信息 + */ private void removeSyncAccount() { SharedPreferences settings = getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE); SharedPreferences.Editor editor = settings.edit(); @@ -329,7 +405,7 @@ public class NotesPreferenceActivity extends PreferenceActivity { } editor.commit(); - // clean up local gtask related info + // 清除本地Google任务相关信息 new Thread(new Runnable() { public void run() { ContentValues values = new ContentValues(); @@ -340,12 +416,22 @@ public class NotesPreferenceActivity extends PreferenceActivity { }).start(); } + /** + * 获取同步账户名称 + * @param context 上下文 + * @return 账户名称 + */ public static String getSyncAccountName(Context context) { SharedPreferences settings = context.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE); return settings.getString(PREFERENCE_SYNC_ACCOUNT_NAME, ""); } + /** + * 设置最后同步时间 + * @param context 上下文 + * @param time 同步时间 + */ public static void setLastSyncTime(Context context, long time) { SharedPreferences settings = context.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE); @@ -354,12 +440,21 @@ public class NotesPreferenceActivity extends PreferenceActivity { editor.commit(); } + /** + * 获取最后同步时间 + * @param context 上下文 + * @return 同步时间 + */ public static long getLastSyncTime(Context context) { SharedPreferences settings = context.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE); return settings.getLong(PREFERENCE_LAST_SYNC_TIME, 0); } + /** + * Google任务同步服务的广播接收器 + * 用于接收同步状态更新并刷新UI + */ private class GTaskReceiver extends BroadcastReceiver { @Override @@ -370,13 +465,18 @@ public class NotesPreferenceActivity extends PreferenceActivity { syncStatus.setText(intent .getStringExtra(GTaskSyncService.GTASK_SERVICE_BROADCAST_PROGRESS_MSG)); } - } } + /** + * 处理菜单项选择事件 + * @param item 选中的菜单项 + * @return 是否处理了选择事件 + */ public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: + // 返回笔记列表界面 Intent intent = new Intent(this, NotesListActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); diff --git a/src/Notes-master/app/src/main/java/net/micode/notes/widget/NoteWidgetProvider.java b/src/Notes-master/app/src/main/java/net/micode/notes/widget/NoteWidgetProvider.java index ec6f819..0c853e5 100644 --- a/src/Notes-master/app/src/main/java/net/micode/notes/widget/NoteWidgetProvider.java +++ b/src/Notes-master/app/src/main/java/net/micode/notes/widget/NoteWidgetProvider.java @@ -32,19 +32,33 @@ import net.micode.notes.tool.ResourceParser; import net.micode.notes.ui.NoteEditActivity; import net.micode.notes.ui.NotesListActivity; +/** + * 笔记小部件的抽象基类 + * 提供了小部件的基本功能实现,具体的布局和样式由子类实现 + */ public abstract class NoteWidgetProvider extends AppWidgetProvider { + /** + * 查询笔记信息时使用的数据库列 + */ public static final String [] PROJECTION = new String [] { - NoteColumns.ID, - NoteColumns.BG_COLOR_ID, - NoteColumns.SNIPPET + NoteColumns.ID, // 笔记ID + NoteColumns.BG_COLOR_ID, // 背景颜色ID + NoteColumns.SNIPPET // 笔记摘要 }; - public static final int COLUMN_ID = 0; - public static final int COLUMN_BG_COLOR_ID = 1; - public static final int COLUMN_SNIPPET = 2; + /** + * 查询结果列的索引常量 + */ + public static final int COLUMN_ID = 0; // ID列索引 + public static final int COLUMN_BG_COLOR_ID = 1; // 背景色ID列索引 + public static final int COLUMN_SNIPPET = 2; // 摘要列索引 private static final String TAG = "NoteWidgetProvider"; + /** + * 当小部件被删除时调用 + * 将对应笔记的widget_id设置为无效值 + */ @Override public void onDeleted(Context context, int[] appWidgetIds) { ContentValues values = new ContentValues(); @@ -57,6 +71,12 @@ public abstract class NoteWidgetProvider extends AppWidgetProvider { } } + /** + * 获取指定widget_id对应的笔记信息 + * @param context 上下文 + * @param widgetId 小部件ID + * @return 包含笔记信息的Cursor对象 + */ private Cursor getNoteWidgetInfo(Context context, int widgetId) { return context.getContentResolver().query(Notes.CONTENT_NOTE_URI, PROJECTION, @@ -65,14 +85,26 @@ public abstract class NoteWidgetProvider extends AppWidgetProvider { null); } + /** + * 更新小部件 + * 调用私有update方法,默认非隐私模式 + */ protected void update(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { update(context, appWidgetManager, appWidgetIds, false); } + /** + * 更新小部件的具体实现 + * @param context 上下文 + * @param appWidgetManager 小部件管理器 + * @param appWidgetIds 要更新的小部件ID数组 + * @param privacyMode 是否为隐私模式 + */ private void update(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds, boolean privacyMode) { for (int i = 0; i < appWidgetIds.length; i++) { if (appWidgetIds[i] != AppWidgetManager.INVALID_APPWIDGET_ID) { + // 初始化默认值 int bgId = ResourceParser.getDefaultBgId(context); String snippet = ""; Intent intent = new Intent(context, NoteEditActivity.class); @@ -80,6 +112,7 @@ public abstract class NoteWidgetProvider extends AppWidgetProvider { intent.putExtra(Notes.INTENT_EXTRA_WIDGET_ID, appWidgetIds[i]); intent.putExtra(Notes.INTENT_EXTRA_WIDGET_TYPE, getWidgetType()); + // 查询笔记信息 Cursor c = getNoteWidgetInfo(context, appWidgetIds[i]); if (c != null && c.moveToFirst()) { if (c.getCount() > 1) { @@ -100,19 +133,21 @@ public abstract class NoteWidgetProvider extends AppWidgetProvider { c.close(); } + // 创建和更新RemoteViews RemoteViews rv = new RemoteViews(context.getPackageName(), getLayoutId()); rv.setImageViewResource(R.id.widget_bg_image, getBgResourceId(bgId)); intent.putExtra(Notes.INTENT_EXTRA_BACKGROUND_ID, bgId); - /** - * Generate the pending intent to start host for the widget - */ + + // 创建PendingIntent PendingIntent pendingIntent = null; if (privacyMode) { + // 隐私模式下显示提示文本,点击打开笔记列表 rv.setTextViewText(R.id.widget_text, context.getString(R.string.widget_under_visit_mode)); pendingIntent = PendingIntent.getActivity(context, appWidgetIds[i], new Intent( context, NotesListActivity.class), PendingIntent.FLAG_UPDATE_CURRENT); } else { + // 正常模式下显示笔记内容,点击打开笔记编辑 rv.setTextViewText(R.id.widget_text, snippet); pendingIntent = PendingIntent.getActivity(context, appWidgetIds[i], intent, PendingIntent.FLAG_UPDATE_CURRENT); @@ -124,9 +159,22 @@ public abstract class NoteWidgetProvider extends AppWidgetProvider { } } + /** + * 获取小部件背景资源ID + * @param bgId 背景ID + * @return 对应的背景资源ID + */ protected abstract int getBgResourceId(int bgId); + /** + * 获取小部件布局资源ID + * @return 布局资源ID + */ protected abstract int getLayoutId(); + /** + * 获取小部件类型 + * @return 小部件类型 + */ protected abstract int getWidgetType(); } diff --git a/src/Notes-master/app/src/main/java/net/micode/notes/widget/NoteWidgetProvider_2x.java b/src/Notes-master/app/src/main/java/net/micode/notes/widget/NoteWidgetProvider_2x.java index adcb2f7..ba173df 100644 --- a/src/Notes-master/app/src/main/java/net/micode/notes/widget/NoteWidgetProvider_2x.java +++ b/src/Notes-master/app/src/main/java/net/micode/notes/widget/NoteWidgetProvider_2x.java @@ -23,23 +23,45 @@ import net.micode.notes.R; import net.micode.notes.data.Notes; import net.micode.notes.tool.ResourceParser; - +/** + * 2x大小的笔记桌面小部件提供者类 + * 继承自NoteWidgetProvider基类,实现2x大小小部件的具体功能 + */ public class NoteWidgetProvider_2x extends NoteWidgetProvider { + /** + * 当小部件更新时调用 + * 调用父类的update方法执行实际的更新操作 + * @param context 上下文对象 + * @param appWidgetManager 小部件管理器 + * @param appWidgetIds 需要更新的小部件ID数组 + */ @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { super.update(context, appWidgetManager, appWidgetIds); } + /** + * 获取小部件布局资源ID + * @return 返回2x大小小部件的布局资源ID + */ @Override protected int getLayoutId() { return R.layout.widget_2x; } - @Override + /** + * 获取小部件背景资源ID + * @param bgId 背景ID + * @return 返回对应的2x大小小部件背景资源ID + */ protected int getBgResourceId(int bgId) { return ResourceParser.WidgetBgResources.getWidget2xBgResource(bgId); } + /** + * 获取小部件类型 + * @return 返回2x大小小部件的类型标识 + */ @Override protected int getWidgetType() { return Notes.TYPE_WIDGET_2X;