From 92cbdd2a0a0884e977cee46d7d0013448b2720ca Mon Sep 17 00:00:00 2001 From: tb202302116011 Date: Sun, 16 Nov 2025 12:13:44 +0800 Subject: [PATCH 01/30] =?UTF-8?q?=E5=B0=8F=E7=B1=B3=E4=BE=BF=E7=AD=BE?= =?UTF-8?q?=E5=BC=80=E6=BA=90=E4=BB=A3=E7=A0=81=E7=9A=84=E6=B3=9B=E8=AF=BB?= =?UTF-8?q?=E6=8A=A5=E5=91=8A-=E5=88=97=E5=87=BA=E5=B0=8F=E7=B1=B3?= =?UTF-8?q?=E4=BE=BF=E7=AD=BE=E7=9A=84=E5=9F=BA=E6=9C=AC=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...告-列出小米便签的基本功能.docx | Bin 0 -> 152158 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 doc/小米便签开源代码的泛读报告-列出小米便签的基本功能.docx diff --git a/doc/小米便签开源代码的泛读报告-列出小米便签的基本功能.docx b/doc/小米便签开源代码的泛读报告-列出小米便签的基本功能.docx new file mode 100644 index 0000000000000000000000000000000000000000..df441e8afbadc04d1adcffd5acd3e206289484b0 GIT binary patch literal 152158 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�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 z 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ĦdD=0n-(gV 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 literal 0 HcmV?d00001 -- 2.34.1 From e7667314a88c2c3f3c6534e346b77b0706bb385c Mon Sep 17 00:00:00 2001 From: tb202302116011 Date: Sun, 16 Nov 2025 12:49:18 +0800 Subject: [PATCH 02/30] 1 --- doc/6.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/doc/6.txt b/doc/6.txt index 3cacc0b..e69de29 100644 --- a/doc/6.txt +++ b/doc/6.txt @@ -1 +0,0 @@ -12 \ No newline at end of file -- 2.34.1 From 08c8110e47b4b698a0c3969b88df5e2b75b63163 Mon Sep 17 00:00:00 2001 From: p7fulywfa <1271741232@qq.com> Date: Sun, 16 Nov 2025 13:08:24 +0800 Subject: [PATCH 03/30] =?UTF-8?q?Delete=20'doc/=E5=B0=8F=E7=B1=B3=E4=BE=BF?= =?UTF-8?q?=E7=AD=BE=E5=BC=80=E6=BA=90=E4=BB=A3=E7=A0=81=E7=9A=84=E6=B3=9B?= =?UTF-8?q?=E8=AF=BB=E6=8A=A5=E5=91=8A-=E5=88=97=E5=87=BA=E5=B0=8F?= =?UTF-8?q?=E7=B1=B3=E4=BE=BF=E7=AD=BE=E7=9A=84=E5=9F=BA=E6=9C=AC=E5=8A=9F?= =?UTF-8?q?=E8=83=BD.docx'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...告-列出小米便签的基本功能.docx | Bin 152158 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 doc/小米便签开源代码的泛读报告-列出小米便签的基本功能.docx diff --git a/doc/小米便签开源代码的泛读报告-列出小米便签的基本功能.docx b/doc/小米便签开源代码的泛读报告-列出小米便签的基本功能.docx deleted file mode 100644 index df441e8afbadc04d1adcffd5acd3e206289484b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 152158 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�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 z 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ĦdD=0n-(gV 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 -- 2.34.1 From 8f8ba4d8b4106c2b88f9e4c3848242f653f0e424 Mon Sep 17 00:00:00 2001 From: tb202302116011 <1271741232@qq.com> Date: Sun, 16 Nov 2025 13:14:27 +0800 Subject: [PATCH 04/30] =?UTF-8?q?=E5=B0=8F=E7=B1=B3=E4=BE=BF=E7=AD=BE?= =?UTF-8?q?=E5=BC=80=E6=BA=90=E4=BB=A3=E7=A0=81=E7=9A=84=E6=B3=9B=E8=AF=BB?= =?UTF-8?q?=E6=8A=A5=E5=91=8A-=E5=88=97=E5=87=BA=E5=B0=8F=E7=B1=B3?= =?UTF-8?q?=E4=BE=BF=E7=AD=BE=E7=9A=84=E5=9F=BA=E6=9C=AC=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/6.txt | 1 + ...告-列出小米便签的基本功能.docx | Bin 0 -> 152106 bytes 2 files changed, 1 insertion(+) create mode 100644 doc/小米便签开源代码的泛读报告-列出小米便签的基本功能.docx diff --git a/doc/6.txt b/doc/6.txt index e69de29..bb3597d 100644 --- a/doc/6.txt +++ b/doc/6.txt @@ -0,0 +1 @@ +唐博的分支 \ No newline at end of file diff --git a/doc/小米便签开源代码的泛读报告-列出小米便签的基本功能.docx b/doc/小米便签开源代码的泛读报告-列出小米便签的基本功能.docx new file mode 100644 index 0000000000000000000000000000000000000000..f6c1b3c5781f18a2e994921b2692b251fb167f73 GIT binary patch literal 152106 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

-U~Fu~OyXw)p($UvG>;af5S#g^(Juab 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ΜMe~g<1SZn*!jutdOB~Tn%)d)eT@3M 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%0ASAZj9-*_kex2Bkp8N@ zN_|1mR`5lz>AY*23iMNQem_sR#*qoAmyUQC${A(>v1T;)dj~r45Q1gFkyhXbuBfVi zzE-os8$)l*ciG`U+)guD&l|r+7-#zcX_~Uf4G`~jv2HD90I5NYEbiZ5+c4+YQb4ZaNMuDJbhBW_a*>!0pxz2Y-rMNL_p(b#IcvG=D!=W=!Me|VAs9B z6nkbcBr&igggjl$TO@c5&MMUQX!ZO6qixfCQSpIB?yqvE2kPx8X7MebkKF@dbD2JPjE3n&xifU0@}{T^54~hJ*?(( zb(4wa=%c}-=)21}taUtE8rE@$9b(>7^hN9s@YfK&)s2->c29ShvjfAnKaI9>u@PiM#F=yM?<>O@15DXRE%)9GQ=6Vz0#xx^E&nnA zH682-x))#QpbPS~=O3VgC^kj_d}}G-BCb%0q7YQ)*(Q(*Czld2f{u{cztOTCCRQHjBkXQx%gA4IO`BnJ?lYtqmTI~e(r2- z9k)_kS;=QTK$=#QMPDcsVPdTNN0kdd`I^Q#$T)zqq=Kr<*21|y zJ|P)!NS^;v)lpBopqrAAJxkUC9BBD}eA0-8q@=4@3#MV%n_PRdM+%4E%Us6)lhSS) zm+^2{GXtx6x(a7cVI}d+aMyqC?n4ieb^Rn*#YofW==#=itC1qrPjnnu;6z=8HN530%)nip)AGjPLOJ55&Oy zDeW|LjdA0ZKGUI;I>c%}mMtkT_$Ahed8l^Pin{qQ?*jlx3YpR!Y?6_{c|-4B(VmsnJu* zhr&1w1nHRU$+ssox%NtOE_l|LswZY7Tiowd#8+!i&^A9Emu#a932lxjkGx4B=tLMt zf_l2fKFMm=6^P12-}h})9obJDSsvMRos>o!S(&s41Mjp5sM&E~!9)%NoM zTQp!Af`!_!JeHs8F%0B<`!zqoI0@i{`cD>whFgF*A(k;bPJ2#ni?FDi41^*(sSDw?&9XP$YTdy6#64M#o9dd5URq zQ{(bPZ%PKY{>(By*ghcNShH^Yj`!H63w%8{JmgVKWJIq$uwGk-ddU%zRX;%au2Xwh zPh`)Bt5%)TSdsygtEOgVtdZMa{;j8Rz|N$+0hw`?R3{_yWgS}%z3!m_34;W-?rTqiSE#J@TfKdQ(v#Is)*|NB zT@rkbsC=G&Hx=l!s| zy1dU$0Ce5J<6bc_vZPRoEWf~yKfakqh9m(NzK~nC3Q4jb1*iAQ#9n)a$MbTNvd%&? z?Z-s=G4NthZ0hBJZ z(8Su6&U8Q+sItGkyL4$Od^%87iH7T$>9>c|tk*;2rD^$wf1teeqW|)>*6-BdnwQFu zyluaAOfe(&?Mr7;>63Hg6;nzaAI@um)(F4@B^zPdTi0M79_g;NlS#PeMBBga7uXei z4}m~#i$=v__plSSP3i_`!0Cv~VnjVk?ZdR3`(-Q)FG;v>tXCYbJ)Dlf^tt${)L~P} z2XbXx%tC z-S<_76!XS8{@k|TJh|untLwR$C*j?SEcA$_DRmuDmwR|-oEX**cA_J(W0vU=1>^fS zHaOjQhi4mTdh}v?IGHZ8k;;=sul|~9$B>8Jy~0^kHTeZp^><;{FxHLRQauwJ4>_u?k_A~M+~s}O-Q)4VMG9lFE(=qAl+B-(#~_#W?HLYroQaHwf1v> zfbx(l^DZq=$SBi+Gl||Kp@Us*jA!bPtaxm@Y&vAhhsN7<)?yPLO&Oc4+uFV%39Ri} zh76>Q76Q8A%|Ob|VB064aro#b@aDioEp~mUeGP%g$J;sR)s8zr+#Go*cbUu-v`7M$~Rmg38IJklHx z$As1LJL3u_qhUySuJtqu#nV@;bE{96dA&srWiY-?TX~iLWu~u7H9NA#>U9{NyV9 zNu3CfG_z;8>*jvAgoB(Dwm%xi8A|Hpv;GL(>9iE>zs`V91~x7d$iPkYqq)3sG!>14 zNN?$ur1_J9T;^Ihf^>q@xeZRPB!M6ez4BQ(YjQY#GCcxdY))qPK24HuBLA6Ehx(+9DLpse~kTG!(?W7cyDgl%_1t z3J;kS(U{!y`5P72Y{H{2lLFBD79;fT8XAPzF5!Wl%~UQcASRh-d4gwwFuC^H%?2C9 zTT+pq3gzxS*4tugI4IVq@qQS4!?d{mxT+a7w7=HNq`a^KYW&Dg+ht>@=gEBQz4ZAd z`=GtWkk4mVpbVW~!}v!z$rYtM_$sPW$cebY}K2I#sel--fnD{9U(>IpW9Lj7q5R z$F8ya7N0~Gjcc4uBD2!cwj$LXu%G3pBX*aZRG&O0kI~6bu>1Cr%zSQ1zZzBh+CbbM zF;h#Wc%wm8#ogn_#o~#$w-J)TyQUTlUi}_u9I299;I-Z~M2T)o(vb&->yADbeax$! zA@sX>CVt}RcewzTsRu)QZa;^Q#cThb_=AIEu4PKTiPz@HCje$Nu;V}t0aWtfCWT|$ z8cIqn1;98+>?PlbU5I}?GC{u3KOI`ahFhloohnEz_-~FB@7Pp{|5Wyd#eQ6;CfOPX8i-0Xkf4Nyi9O-&hsf?-cgl8Ar>^Qf@&X{Y4Ap*hP7 ziHm{^Y2c~>-OZJ9t%!N(5x_H7oWE~^%}IVB;?9BIv_H8y)%4G|ka5usc|_Y!?pjzB z)QbaC*q}ENl*E}S0s}>wWBeFZ8ew_gwtTw+Y;nlQQZj@pB`i4qwBNm}dnOL-r%EI4 zriSQsl6;=&M(vv)uCpj7a>#~()g-Gy0(a|kMuYp!5l-$4dMYN!a*2|7ThSL$?Jckd zVth3Z4{)%6DOMo=@5N_tMd-(kID?w=G~hj`ct^x?$I$K$Gh|<;BWHKu=jgE`V4XLX zis?7dWkyC&Vy|TegRpb7H3!!X2nmTdjc-V!Q@7rOD;e|7q8+{y{o(Q^4twUHe_&!7a$4ra>|( z#B57J$h!Cyz>E_iV2K1ar<_y6UqbFqLn2F92aSjR#X#$xo0r^*bbjsR3-E|+U_?TY z2q}1KD@l!rA{Z!LVE?3u$AQV9Ho99EWxZv1SWpkrz*crIJ3!7~F*Omun$q1yZh(H=M(@o31hsFn~T4htPVs_8cMV`Zy8hM zwlX&cVhYmSqPCrI`!pUFaI%L0U%Wm@dgHL{R(=BN6HoCd;Gz#47l8Ht0ja&3q6X=l zeof3E0sza(WA)UY-^EQ!nTgT*$o4i{4GAsb+zs%rH~oI%-EN+V$%0zxTK^?JmKGXj@JjTNA z0@?(de)TvTzv2DaxQGD=IgkcIH5qsf;K}@!C2Q^5*Pd(YSJW`9&xMuJE8K^+w}5Ci z%0cSE1|Di-FjZmwC%gxGJ-(Qcy;2WSi9W|*-W+*95ej}J>)Hj6bkrm5zWX7%;ECS* zw^E576=5b%gwBV9N%(IhiFMgbp#j2Bo46kWy*Z+w8950~DOv=4UiPnhB%maW+C99zh57=_;i}Ml>zcLN% zg$bl}q^9|f2;ks?oDf!j9R?ezmG27SX3WzOmbn%)GBaYZl-z-48MF;d(PLzbnf0Gv zd}o21TVPM&^vgK7h#CT@3*qf(^`%CO@jD_$ke6oOso3uX%e4j>+yn*@iDkA-?Mu2; z@|y{!<)jF$iQW*~FIWUgvz=!+t-imhkVvpngNbHv$yHKDExrnc;TppH^<~ z^qG5bGov|$51ni(y@@(iyScxaCnv0xOARK#njHC&kF+OJAf$Cre|S|3R>-!xD@yhY z0}vMk=-7<#txx#f1rqhBY*%5`SEUXCZ1e(Fw8w_R@g}uV?gCQpct>vv*Z7H6Zc<5G z2l1Njsut|!J!`9c6^8o=NK_0|&gbNn5cre2ZAjbV9pf(rgyhy|i=4AGV@Q5tGl8mV ziA(1)Z1DG%6vRW!)}rx}L#Z|Z5lvR#R)s6E2y-Eexj0XUK~_X}3f-&EYyF2WU3IZP zS>pSD!|PXz%!!yG#nW$)yup^bjPJ0G=q~MUS-&oGo8l|&>u`zgyrsy`&8~#6PAn}D{5k&wC z0}Rz>7^L`D%Xhagh(2pGqaXmllD!i~0x!7b=VmeFIG|Po2vO?@mKO8bCJ`H%pM39b z(_!#<;@Oh&r;if{_VeXFrqv!$=X!Dc*hCZ%pV-ciK<2DHZck7CyW5zPirrC5nU3@4vpY`0>Lf~!0U9Dr; zy+v1%=f-7gpV7f;j76@-wF|0WM5gmi*iFfFg+PY~Lj37@JvP(n9X?ZpYDY=QbxO`~ zO2j?yj;a1M;nFXcp%cQsvpV7hH(zGe(3XXUEmh-^EuXW~zZzIiZ8+&Fp!F0kcfKdh zB4zyS)Qy?*gsw3OB>6T+)ZV=2(*dgfkTt%4r}fcW{(Hyi=zddD)Tt8>!|t<8=O}5+ z+{xk&1pzVA@H5V=0HC@ik*dr3$A`eAbEXy7wf6(C-dB6d2HN(p5QirBjgypMCBnn? z#b-)1t%q#%5_X)VO55>-ccD4i-As4b z|DFGcSB;3c+xInk$*0_MVUkF7Bk2n)l;)dS-|4En#!p>6arGkneaP{yNN1)+{mC=m z)Y1N&Y>7cMjsg$+&-nhvITfcS2q4H-!{9V^x(k^LNzQIQHLTuL!~7>Xa+3#QAY50_ z-r>{LBZYei|B=n2BeRfSI-;c#@`FmPf$g+uwPvE1)piW>ZWH9G7%GzUSlX7e))lv( z(;i=%c%*&UQk5+^yBf2CuCmfIDWW>K+(89*ACmhkDidV`JG z-GE;Yw#BjLh#xB=vQL-zY-CdY2sxNd* zWW|!(zY^)67n?#GG~nh09oL)W`8T4= zb>#BOj(+O=Le7GwX4C!d1NJ|cbr%Nf55uNFuLQbb#ba5>{kHR0e^zNPY;f>z+;!#G za`xmam;Xg6y4>(v#~V!*|4k%?FSp6gYL17EwqP;oyzc1bSzQE$4IW0c3NyVe7}@hW z&gZs^LDN!;lIPDleGbu0{;cV8pKDqzT{VgT-Sha$l8biBqOQ1>3t#uOZZ9t>m7a?@ z8@BG0A}(3s@y6XDK2SuV_2;*xt#^-jNBf_c==Z#Qy>;+=)Z8PJ6HpEcXkp+1uY_-l z?Uj<(g5&aP$T8b-_Uq_qXG#!7*9OpPg=hs-fhCE!EaMvc4`5p_fw*+CIwckrNeHOx zd9D)uGU^%ErH?>Z?fPkDCkqmOcIjMDs}3?y{LE({q_ZpHyYj( zezsAogk~=yupDq*uj(EcZpJsYMcrsmhwm%N7tXEup(;GB8)sOojrP+BVs@ zdBuXgwyiI`?aSB3Oy0#LgEBlN3_6#;pWu8-C#2-0>G-^Kv`yRJMtSo_rQ`OhJ@xqt zrm`Vd*q2FsRE*f3)`T|l=?N-p$Pm)NhkQH6@b!x~!z*>%Z-AAZ;QPdlue6X4P>s?& zN{gQFcI0*?+lFH}2E& zQpK;lb40LA*)+N{M7gN?V31d@fRY<$*0Q)%@$UK4co;bY(tnImHl{Gdi^GC(-;-mc zK5h-_q|5en!V}y%Bh8QZ3tV&QF@1pOkOFcc0n0@P=UiG$r7OU74F3F@Xy05#Y%!)-xWZ(c+YCwsSw_je0cu&exj? z6tB6KEhy_1R@ypQ&#bR~vBnj`typs4=QqprYriLrSd7Vu>EGA?Mtn=0>6`2$M%)RB{`99 zup>bjcPmKbVzD&A!PsjETF}`yyb(hBo!2EK792Z$6o8CBb65WK6YGMM)Ks$2P zkXMPxr(>@J%fmVZcCy5hndyOpzq0sN6yCL#|G8p8wn}|~3Ls2@DhDwxs6?sMQQ4K{ zF1Xb1CR-kTWK7~xmWX-|9oW{|(G&^lm`L%15O-ow{ ze6aD2pV&7bF7-Q~ZSCAm9A>Upf3Ph|Gna>d4aY^hq`ecdRW@3< zLOh7~)&f(K#mB;~r&Rkdi92Kl#zTW7fHmv>oq_rfCE^RCEskCj?_)SHL@X{YD^^yh z78!{w&=ycpsCtv?>5eIF%)clZp4?!~KFBG}SrX$bP5VQbD#Pv`dhX!e`t7UR{$%!J z#TTB_q7K|+SKqiUSc-XO^=Ek0KyY2_pt`zv~8HM!4xi@0Tof?+$R= z3feBejQ^9o&CyZxKQQqBMr9uv4TBTyAeITvm;VP#I7h`)zWbl8 z0NB{FkI5ltEtgel&BFd?uX4An*@#jsa12uY9}7N@1-`f*$1x)@z#W21g8-_4(jiDwAgn#MgoHo1&`TG zZ&|qzK~h_$k^+1wLbb23OPh|9y!Rbwq;tsU>@_T4eiQ?kdMk@T6TAZKyoASe@&IUo zYDPsASi$hZ<1iO8qk~4iH^4?W%L1t3=6tA*IE48DD6Rc3FqI=<;TE9bkg!5$ph_l4 zFf9OevLk`2uzg{oXKgUI4#Me-Jut!mKA%;m_Rt&;*x0>(bw|70Ah)5Jo~kGgi~=ZI z6g>q{I>1q=od?)O0T!}vVO4vkD|MH8yrL906BY_>-Vxmd-Yisb(W3+~nEYY#v#D(U_&H7icBVc!=M;|dpH zNho-|WHIdnjA7WzcSj`qfnW|)GQ9tm07SN0_#3WPb6;0P_HhL0CtwX zm&@Aq8Vv3#{pQyK**+)`l;0Et@aL2rhX;?Nt$09K%i0UswcJAicfQHB3oaNb{cWdV z5^H7D4t@(Ew_%}=Rf{6-tlb8`zXnh^Ag;s<$p-V}WDJI%uYNqz{SKgDZ;PdM(qhi*gk@$hgmKj8;{y{zI z)Ihp+`*{L}zm$hW^e(bD3_H_-Z!s2PLp$&ID&Vxg<~j1(aQ^ka10Xh`;Qe6IVXQ|j z>FeMGI>(4Ym(2nwjrJYjwjuw|?YvFq9kW5O)VIliB!gAsi)`w{8hi#wWa9wRUapJv ze><3{@s?y4v- zcBx5uYFG#eY-7x&M6TgfASgYJU5~i$vNC$Jfq{Ssys`pFoy4!n2HLkOY~bZiHUiNW zVnM?QXOJ3$Uo*d_3y6>y?5QPa5kS#XFu=sHfQ@DNvcxJv#<`m^%S^bck!r6w;6uo2 zFu~n=s4mWph3Vp#0^T@71+>Pl4D{V{a=zrTjE^6O9ZjK7&cy^rl8r~Zuty|*9drY^8{=r zZYb}}g6*BN4z?pqwa*C_``T-gMPGj1kgkRg0T>xlk*aX+P01zZ!t^8^DG@EB{2`!6>_0@5oR z?o900(ZO>4gzrtLGmHlIZUZ82_G>MDHx3})kk zO~H>wK)2Bz(EPD+sggjgt~-o^P)xYtJ~=K=^0Hs|Bvyn(afaO^A*IJ4Vzu*ls%!dO z9&<&x-$M5W1g9APeJc{*xtLU5@=cohk0XC)eyQR=dk!j&>W05&NrGm^+!UfMWY%#K zN&?loJ@D<7*$gY0_P!81?5bPq9Vjl$9j3Z_e3>h2+rXf0iu}cR}isrj0~L6yzY6(ca{k?EJzx4?^;nM6BeNkOe#j$q;4rGWdU#bgcYkYSkUL1Tkj* z5E07L>mD*CJ^>m|c$GKK*`+B=5lJ*LP961adKa&*cD$%-pW$IXMw#u5T_>2hIoWZG z0iVL+*E1Jm%ZD69>ke|0*_J;1vqmBuPu!u>fNK^k^rmZ%K&?_iAGYFdiQM2(Ll%11 zGgW5u7X%hoKIe>Isxb2f^Ok~EzgspowCSTtmIQtXUA2nE$ubf#x&JhfK{HJIxhKXt zy=`5Q`I7k!X_n8c?FR>$v=9DrJQ8`PwSQZ1cjRT`H!WmILC02kdTsr%y^oSOuaEf~ zUj+*!T6lc3YorBIYPN@5u-eCc>+Jf~D2Sy$M@f$7j*)O6`_|k(R{ta$YIiqF{Ps+7 z##lsJ2k({cT*XgKe**&uOe-mDA8GYsSNBDjVn$n25NJ`wOejGy-m{=&?e_y6i$X@S z^H?aCqek>1gDN5&y{EIbXquBc{#k|3fANlGYovz0bzojvEw9rN8J`kvqq&sw`(im_ zy3Y2ob+3cBG+*oki86P`U58cr<04n`pSP&^Y$8td4}Yus4cU}!o-F)0H_!RArvf7K zfe=koEopsTcdRcB{GEUbg(5vldDv}N7h)zbGk&9(bgY{kpj{PmUZ)DiDgxfT16RDt zdalajZaXzk)73H8h$v9AgKhc-1{F%R(6!({xhkqgM^0of(Vwl-DNvL`|9F{|WBtpS zgGi`Yp*fjySij2?VX(YeNS(mm3rzFsaES}lO%Jin4?bF`Yt2zCGrb(;YE&E`P%Z0O z^@FcQS#r9w#B$L8T4V$q62ep!-vwl>Qo|0Qc3@i#kO*Jyh)&mnSSp7^OoljZvsOxv z;Js2x%UL~91Kj23uHQASMp19(qrYo%;^_`c4mQ=FdS>@zC=T~(SnYmbXz|sy)cvqr zmF(mZB{s<5Ptimg+8TY`&kLUKGS>79oN%fOB0iLT^md4IG7)&seI0T zrm!e8y)P&Hp&AE2bZ^pF_JOe5C1VRd;_OPR*=X$Kw7__;mrA#{zqrN)i*Qs1X#YM$vT1~fXi1YZaLp#;oI9F*CSnJOzfYTZ z){?pB>4Ze`IbFE~voV9<=PE zAvyLdR$Op|%^yxn5dkH*{udy|!(N^%pl#?{p59sLSMI@|+C}LFd}}P>50)3IU&Dwd zsbnz!t7v+{xSdgpgMl$3=UjVsRt>z=t@?`B-79OCB`gEluJJmy475)ug9I z6xyd8JX0*gtg#n<`wTb+%2j#joQe zfO4ndPi}CsdH;mx<<3qTJ64eSH}!T;=D61(Z~u}q7Mc;RV6U5e`*E;O)Iz36`0LE; z^s-9AQ1m`-pEuJ|S>Yew&zDV>JKnD!D}vlA7(^mOXtG(oOSDeW1p7Z+yNzW?QR!(c zRq&*rZw&5juhvHF;>3U_(HvrDPECV)P05so3+K5i?hXamRR>R>lk!u#&)_^Jdw4f? zmXbI&ezLeqEG49)h4nihC0g9uNQ#8Jyi8(fxKrtQ-MHWMokUV?VA(4%@ z{0wY6d?>D(Mh33Tb?NUT!{UTcVj7=_VbM3)$jKXQuIHQQ$GEoie)!bPNS2ERJnf_>R&B)UR7cvrGwy{}JE4fw^A6YaGryP8F-8 zF7wh|;n96RUT1EURyF3~jJPQ?g==vrtqEuyzri6!ES`A}pVcORU=k2ExnxH;hS#Tu z38hPfFjZnBV%l5j`xvc~>Ez`@JGPt!oy9tM5AZcvVr6CHU|W+Ak+1w?p~rPb+YH2E zj}_Of47UJ7&h}y<#=IMpOLo|IB~duk_f5u^?!Nah;`ER&5A}i3{WeAeA8s>lJgphI zT;4B?rm2-3`*<0s0ac=0_we_`EUcXvJ}U9kzVq`Y>)P)g7r{0^v2lsn`Y1JAYCi2T zgWvpitxTg-Jk!YJ>~|vF9O185hfcUX6WxoExmnF^i;ocHs9D>od*=oAITg)ijD!iO zuvLpD`MdU?0a>Sf;OYOaj=$SHxSg=EaADBwa)&yvVV-k-U_OA^4m-(HctK>1orYOIY4b&tUae*P|k>X#v^wyXY$t%yuOJqw7P+(NsDRZ0ypn6=8pay#$&c0NsRB> zYYSgqtSuKq@wPcvknfe5Y%39Vd?+F*JMICibG|2MiYXLTz(o+j1gw{?-7WwqfU?gz zBJW4P80y6LF=^8;)IJfs8W6#JBaCBAXAv38^$EmK<7L8^CnnZQgg(FQt#>4r#Jngn zz|()U5U#g9B;=}x_CXm_kiWiMfP1Eg=c?UvRr_Rx>J^#gb$1A$kl^Q|bM|yB!3A5-4O2>^*?E!~?k&vhu@;=H2y1&M=K+5ZZ1p0Mo|I zG&ZOdQ@7#Av(8n4+W8JT!_ojpZWISD#n3Mz)Vwz@y2O|HrIt@0`3pGLDEG`6X&nqu zKP6T6%fvX^3Z|X-{n~N{4ISm^X*ZEd`f$k>!hdxS+HR^JQH z-ZHzj^v9H^aA#lGZ~}6ww*H!nW)DrER*>4+s0_~jcxiXi?lLK^g0*YN3F2jRMiOGY zydpfCv?npem@VjFmx`gAd(s+BStlwvYdG{rmB?X54MW;JPJ;GQG#}?tMOk)Yru9y| z&XzOAZZ1WE7p|A@asPz!boO{R%Z>Zan27H#W}(Kx}=0r+SR1m zDGRz2IFNSu+FEOHQfew*D^2=lyC(J`xg`sEG9AM{$Dll3!2QJ^M#B?texCPLq3Ut= z#5877hDHLKPDGtQ{?aIFo1t87+8kw@3t3;ckHWCj_IxP$Zz}UucKW{^IppW5=F?|; zTN`3rl+mAedi?Qx1J|k)nD%+se82%zFg}=&P?&TU{z?(zEMb6Z7!2HZ<(aIt81v}5 zlo6I7$As>~Ghj|+*QJ0OxVj-4fIs?M8s|vk{td}!+6cWSg0|aedE8z!k?X`0Pr+GK zpSeh+*I%dI(|PUqRAF=kaWOv%*p2i`49T}shrh4Vv=(U#6%C10eje#`dH2KE!T65P z+#>%xalg~k88KP6S5uBywzxklUp5;d#JpRlW}}IB3)E5ENVI9TcUmufL z{-7f?>E^up2@1z0cWeZ;%ztFHz#M=}l2YC$b{}SP+Vnc@F6-{?K@d~R%@>PI>yt-N zY)zV42mDU!krhr2DF3LR@by1(K;nAsc6cO}M2BqNN_YchK~9*rfV@sy^J`)7h<7B%?Dv(W#El)A+p=MX;<_d@pk;KgbY$?o&^v-oUXwmlz%s>`BmR zK4QOrd=e&K8&~Xb@@(i_-)UKy-sIS}OZZn!d%&p|D5?F^a(tt~kWI4ac6gDzDdu19 zz1BI?6b9c}(hIiALXNRn-=SC5zXX{7C6Y$O>?UhxpU#kVZn=qGqG+!7Kqpyj&j9$` z$+H4^DpImKE$y<{WE==)zQ0VX_riXDRD6#b)aiC6?dDbt-I|`57J4dq(JLbCs1Ump zYV>RkdyxQk8Mj}G%P)XD8M};I+)ud|C9rcU`e{2Tl`eV+WyLkCrce;=?-wHcPaLLg z>{{+6k?!y^TZ=E!Y_SzN4}25HX3`=yUKtaJ*mSrN5o7!{){!fd!nWZ+9(L+Oy>GX( z>?C-4aI?yJ>gQ2>BF^Hbxxo|NFM=A~x&xhC!UPUg(xS6jT4b@)%4FC8>q9bOv-y(I4(R4~H z&ro}@jN;^5xT%4P`2;6m=fRHG1Blp}!*gf*#@?|XmjT8FT*=oS>l|MO)EFQy!UTu1 z=!&c@b3Et@r1HI!m)9FZ*4sAgf>gl7=5Ccbon8 zorN?)BmG38s*TKFm+5=vs9Z^Hd_6Lf>N>&}7%4NXWUD0*7f)GBjXo95=5wP+u zB3ch$NiTR>O3Z8fB2 zlSGvZ}Vqxd0m9kslj{Xp^)M zS_0lw*fT^D^2Z1Q7~^{WC22tEek+ME-7y`4QwSdx+x@{MJqn|P6LO7{Plq9Ho5&3io(Y3K@t6t%G8xf-@_p~;1fXRv@2yly z>~s8gwjFGhBH#z({1BAI_{7m`kQ#6*f7}O9X)RQ&f|O_x)PI%%Pv^42F_?s)!mm)I z!~%qN6HILY9AYcc4hTyygF2lY?$M3Ho~BM0s6M5$BS^gk)#y4v=1!w_&3y_G?HJsJ zz|+UF|HCv^Q`hob#(1T4*LLw6fX;VX&YnR2<8m5hGP{fv08|S=4iE|>p#V2D&YXdf z5u0!=fQ0s@H+sb3aW~86eCtR!;_;xa#6k7J8=$WFRyqS}D(}BA&Y>V+IXOXO;RNX_ zK}y&#g}OPe@xMsXs`ymJ)U3JkibkphfFG*C31QrfmAPh{MygQKcJ}YNsxLl+cc1`v zcs>t%NNKj}1rMQsGN^*{Ll7aW!2?6q#kJLz=(``NQ4pUztcdmG{_2AMKvypVOjk}I zDO6rusoPzL@Mh>rV1mO%W}#od-v``Sb2xSi1}P3E=z^ca5)vdWnV$;9*}x@o10HFu z0zggp0_YZNFf|s??39o#u>7%kEm;BMARXr3f-k&-BW-5ENoKE|)?iXRc>gL$_yMvt zLq8Y3ZvkWJKuUUG_EPV40P({C7^odl5J;bZdl>K%#7m&-zbBXGA69nOo?hQwXub`S z0-?(p4Q_(1@xKQ2|KBY&2oR}@Qa!;2!7->i3E$xX&_K6hGeyGZ;G?j- zsgVE*$)?|MDvZ~Ij$ea2uIXsP2CWY8IY;<&h4e-ygAm^b`j;5;U)hNo1d9#6RDX;f zL2(%9LRJn{BLRhmWvaAFI&Gj}0dy&JK*84n%EBJ;{~`f!!=eG@$o>k2C*V6Ia7!pv#qAAEa1ixI5Qi1IsNo_exs?AS zTyH_9Ex3BsVC_-J!1j=Y0eTi(&cyH>SU;#AO#ALsq3@Rx984)lN!*$VXh9w?T`^WSux!@DAQ!K0X}GKfD0UE754 z_~@xVw(={5Dz244p{+~7Ln~WNVVf;rwSNOUQ1CY zBkd8>8rkbgwt6%uSELBIPJ!G5P32PMQ__sg1sTt&>nIeQMx90a(RY|HF-h^q*x8_9 zB@=Q)QaC_~lD@ntTry>4N0kMP0-aYXviL@Dh(isWILn=w8W&zx1oD#S#d7YTJ2W-o zc-V-hNbKGAEy&PAeT>~Pwj5IhQhC2Cb}10jd83tdSQyWKT~y`ld9UZmRPHSR@dGvj zk;3rkq@PpuVjCM2D0#b;v$+b6xsW|_#O&2MBQjh_$NjxAaXJ5rMlq5p)CtPnL_PGBX%+S#ng|}S$>)H`_Vb8f3Y_tCrA_C)wbK_&& zR}S@`_BgFUI4WS5RG_JPuZYL!yr5B=n|$`lQ&bZoV=7vozlgfg8J6uFD&O%35S?o_NC!Y=WBCx3WVPST4NXhtJ0blv?M)f=UBNrq}Fz3 zHz)(~$wC~hc%gZLwRQpCu1^is=bOL~HSls(coV;<4bAs6C`fQ&{L6Lfp$&oP1BxyZ z(>*GN2=&`tIW73rn437sVKvv<#i$?626I90C5VYM_3njRMx&@nS9=1}N$CH2 zI?2)$S$@RSPW+BEP{9xpgjU#e%9tEg+SA-vp$lMK6vUfyUIr4fl%AzW2 z>r&kVJR$T*cx5`9!RvifI$uF;9}_NpJ#)ceQ2$p;BsyZFt&oqtm<7}$F21j!^fB2F z+i9a?l=RUXurxN7k?LGQsQZeden0{ga&dBy`P(A_h3v$2qTrSmux7jx0xd3huJN|< zzs(?_gAl}I$Nv(%=!eSIOVSZgwuaHGyjY8XvVkm1 zW3akQ{$|n&j|IaEwZcO;Ty&5aE+Fs4z6Y^oOp)3tF2wgL$jyln(Rzj@@oAw3k{Qqk z4*EvIxURdw%cUL>x}hC<;m zq(=r?AXP<){+3j)&0`VNR{%k#_@Q?ggH&wOD|p`w`+GEfkN(E)JV*q+qy+W(!NPFO z^O~n7SmZ1VDBZ6INkAJpe;^1V++;4k9|cnABFLYO7sp;7(yJyabJcb>2b(Is!9&7I z6f=jc$aVRl4k?_Vt9Shm!TV&L=YydQl~(b?kkneJ5|pCwJo{{#5MF3X!^e&>Pcu;@ zV|Tx58Fw8uTb5b(vaY@YVR*l+0$`rL6hkCqKlo|D*pJx^=?D}k^n{stv5+QW*2w~wzat= zP}_6T%a#N;!#NbB&!D7-Pk-AWNn=2&F8npN%jmJsD+q8dn8K+22q|Pcf(x7}0YV6X zktQ|Kryw>(V(>3m2Q&ka45X5!)wsVHkaSk2zAyq2w4e)F*INxJ(d@$mA|6+5cx-^4 z_eB~|D!}xHMAitxwxKH)E)$>Y<-7}RcmJ$6GYjO9CKan;fsF+;1Gqp)#mJTqxHjwc zk6>{8f4|^~xP2*oqqZT+LNy}@Dk9qna~ujXGiIx$U~5YJKYNbG>VM#p+}T^NNn`u5 zB@hU`76H_uo;YX^A_DZM~VI;iQPil>GP)v(i)B?rZ(IK!bwX<;T(0gAADiW?treE<x{u1Y_$V zvZ(i~&!DRXnQ-3)5XpH-6`8=UrAW3rMFTmEwRyFHkS_oTp#5{8=Nc;Tq8dlMNcHcI zJ@6+joAdw00=SjEKM2&mGA?+v=7EZS;6StxK*_FzHWyIW6CO>RyPu$NeX6_IQ(13K#gdKs6 zLo<4CoM{y*5A;(#-F4CTYHV%hKp#xyi30h z>g{<9J3`8L8yz-TuCL6`7)a^#fpQ*?<3LgH$&y;Y6b3B>!%_ju>$oH!84_5 zEx#)F7~TYX{QulftAf~#almqi zD6Bkjl~_vX8xtW))j9AUUkR{Tkr1-NzEPzR^5bdz^u>dKB$e>4uIWBF{QzWb0S_8t z`hZU$U6jC&_uizEZ{$Ohu^euU-it5XoM5krK@+q zk*-g@-I0FS3@6;7lfbI1yd+*A^wif=$-p@Ov)*6OJ>bN21v+b$Amnd&mx~+xPNX9O z-U&Eq*rgRoya}kaaMmY0Mj}N2Ub)HZFyp$mW-uc_I79dIGPs1X9Yi7GlmoO>7d6=X zWSm@G@?Km6%w^1bYY1p+8=mXg&4{l(2F)&PNsPR!c4jIFxH$jAH+GW->E=MKz~`fb z#434jN4(58S>gXqk!8;ouft(loJKhTER-!x|Fv@0&<0-b4MyUo-{^^Kr?(WgxUL%1 zCCi%kpWISFtpWhmLt+^5QF%p}%ylGhxPhp{wRnighJ!aKF6tD{T6aghJpzHQ?EzuZRs2XGFs0`EBVS~^sSmp z{H$5;;*#Mj z3V%RAH$l^lS)!jT^yI77)cr5aiOPu!9-yIc1_f25kD`3dUR&9}GxTEC+7yuCdHv&wVMdP5IWVf1dN46j5SEN>PdP?@CudyrS6*** zf3>z+$i+70fxkmys(T_h>??YdX~J(TX}C)|L%e9}CT!_U%pQ~q!{F^JGNWxw-NNjZ+^N3>-j%t7Vi-?aoMguP`0dKli+&y$h-l|E zUVFGx%HJ-f?e>8$Uh5ks^Z5>&z{M12G6k>V$kj>xW{1>6>j{~p^|W>=k!tq^4s%ZV zzxEa3!K^d7&a>;xKmR0nxz6Y{{pvHO5!+bSP0HS|e|L1DjBkU1zqQ0R_xn#J3FUH5 z8#V%Q8F51z45DgVo-T)omr~-3vy7ez=hbKDqzJ>^qu$7F!teW?Xd+>FpBxT|xZjKW z=hMz?@M$(rKTI|vdF67`+ ziBDZk{Kac0@%p6y>E5Rr-!|>nvz*~3_Qja}hpvaUd2!3urgPR#GWa9Q&vr?NKJm-H z&ataYGxxRQfcXYlSbrXxEa;vXL{U55{I#d7`*`l_FkLM^ZtJCU+Twu zyRSIoIFIwVuK5gj@(P}1ic%$%tK`m4iff0kE%6#TlK9IbclR`VUswn$Ze19d4iSYM zdzTZ9Kv-fIIuD{khy*+*uFWM;zjz9ArXg+ zWupVOD-zC(hHInlBPW#?a;LiFQqDx-MCB1Dku$X4f+AptevY0MX*%`wq*$vYrzT#x z6~2HCH%8*Ez2PgRxME-pW8;u~bbvHJ-L=y3tRpm7Aj{ouZ?(QAGPrH`zJv=3%a z+pg zO6))*3zZm-tQDGy=|1xa(+gA^N4T3sHD1|mZ5OUFPWqd%zuVXJk%&MPk$M9mu$lQ= z1#UCC9Npv1i78)*PGpoaZ_|$yk7nxIy5IfhEDhN|KI;7OI;6#L6eSM4p+$=5+??E4 zZ+`_E#Rr+o|7&LFpYn!_lc~Nc?C<04@Q@6B(+)i@>v(L;7`>fbX6zLDV-)Wxafci7 z;Sh6Lz+07>T3R;~`N%7ORFT9S262zN5{LOxO?$h{AiM5Y{U8wD((lxue{|K)r^t!??W+?ei6y(2|>=apCEW0h8}0GP7CNKY@ydI&;E0jE3CO*qCwKD zBdla6r!f@F6nPeJXg*YTf0L$J!n>i`CPe0a@|4zvdlBN`uNDRhfh?f$S^NE?ED=K3 zMMHO){huC4!*``wajnAp-4pSQv!sQ6q-sWsM7HEbyZpqm#FggI3*`4@Gc_@r`ybDv zh>F^S4v)X6!$J*HBV5l(ovac+hQ_2SbSZRsQ*UMPi`oTz6)%@!sz<3n4}PrwQi(gC z7Tm}eojM%9KP1YveiSRZ>CqsB80OHy8X`6?wl3N(NFk78(aX3rqtg>b6xz`3lBsfI zLDvIy(VFgFagj5!6DpP`Xf&f-l+Jd9phP(CpSm!L&BzR*n^FV}sq*{aG==$Ln>3?- zA(08fC0rV+QP0ElbMGGTZ+dI~WScsV>?>BSbUUS`5);?37?-gVr5(a3SsefLpK=;8 z$3BNZ243RqNAGg0{-3Vk+JHN|POH}$n|^1GSm#F+KBDr#bO0N`kZq&}L~p!#-C!{P zJtanS<$%^EIlY&jlcSknAT~3+R#E6?cXD|0mP%a4M2_W_p{a(Ow3HOFP+jQImqJ^X zy*V@g=npIh=dd`DJ>uE(AWAor<_99y{!U1}R7N%@Hj_DKDbJIy@TW7W(_epDBI{_o zk68^l(T)C2yeyX>DNY;-eQh^UvS7S5eNAQ3Yhz81WbF@w)Q;Osabf+(@DnB~=R04S zo*pZb8i5o>^V~3TO*A{)+e3%xsm+LpS{mbu<@C~dq+`1dZNjAFsau$VE0jv8uvwTz z-aWcl)xt{#W|f%fX}dk}+puVqiO2m-kz=Dh)^}Q92_O)$U|cGYZ>cKJ zpY3EaT_iVQM~iz5zkC^4OfR&!OJy;Cz2#;NNVGiWKlbMKhSBT@5Ew4LiU8zXbM;Gc zbJp`a>}+Zq(bx*xOACy0vob*|J-6k+Gn=3B%kYT#O>1H?pMiW>atZsDUAoN4`KfGN zY@x!%mgqOXlZcbuI|Vc zl`&wz{r~*;et2JJ&GEW8yCtN-*Am0oQ{V5%bsYk!A;iz=@gwoZ)cut+*T~gR{geyV zX3Cc#kjr=fy*r41k*F@uchBGy90`KhO8Nryb>}}^c&YJY2f|q3MZ&zymjDv^4?h>? zV`+z%ZUD|`T5_WrE&j82dZ z3Py(}H<@ZTYnceu3h&r_QH?tXdRc% zl`_lOGe|heG@*TYz#{DOQw*jONMf=MfG(?Etb`y%OAg&t$nj-X+$?_*(ZyxLn`y%t z^rLqF(+Qz9n!lVvnLsBrNVwm2|Nb(C@IX^$pH~e3^w4gGgz^VJ@J{BMVGW|Ef<%Pm z2k5(C2Z``&IT7}o3vs3^k|8bDNx1NLc~*FWqI$kA>s6#7n6>>=j=X!sRY}4I909~u z1I}O%c=&^4Z)4*C~WcS|k4hrW1V+KPIhRrK0FB zGgwkR&8#7B50m-J3-@>gn9bj$m^M3<9F6Sh(SwIQuK#;D==&Z2nNNv(2K(rxC>SI< zNoeLKVs^GnGrmoOI?vCyF#E;3$txiL^y2f+_10D6&KXHU-uka}+?-+&scn%go$jC@ zYkLKrarpPlqrohnXW>3~%oJBYDIdLfZ$(Vt`}oO-lWUm?EdVv-xLFO{l2Ev0v=MD6 zYhr?XZ)l@0P{@UmIjlVdo~ePeVqV{cWGC)U^1fu~hIn&T!Ic_EIR#R`(9|m&mZK~^ zzbn;AgufCOj1PVQ^Rblxe)E#YY_KfzOL6^}3zyg_Nsq9Pd^Rse*O+EzgSAHohBHb# zI~vEst2IsNYKmZu$$H+zwYbo?6nLck(K|%$5~vFykS4qz zeY`hxbe$#VtT~V?LA)3q&dYi!PEDWnQh#&(G{tZX@T}vT_+0v}QAJjEbsl^)&Hz_Z z)>Li2!p!<|1l%qu0B=5K#XqI8u8?Ki84JFJlh0v+e5}6Sq&Kvl;1a~A`SC+goKjwk zzufkh%S`>Uo(0TWSv4xWXBIbaTl~C(C2Z>kDWbjhNI<0({auKrpjTV%=$-P1*C9ra zArPP9NB_P9n;~zK4u{{1OgPT=yy^4weG#ELhx45{w1M;yZliec8ZFLSwcAnMm~)$e6EkMpx42z>ge!X=32~>VvkY_t%t(`UJV|-19;L=nXhXB!BG_R(-Q?H618|LfgG9E8f z^o#9~HER-dB@X;~bP#D_c<|6>j*g?Y+Sii`c-RwMJlwt93Wcc;XhdRL^x&^Z9}PrU zAl_|7cLhx!jo)t$3GZu6U9n9pDIQ}5AEkZaGO^!4w_~s+`1&TwqktqB2YdsQYR7n? z7wpH*xH!;o8^0KjE8GP@?cxoJt2jA*VTxpL=W1@0y8e1dLYF8Fwo;U-4P(|;vBtao zwSm=gmFY?LrqDa+qO(Tm&14pPuInNX<~SSn?L4!sWVr=i>#j}vv(3y_fC%D3f(xPx zjD6?hnu+>nrn0JUs*5bpr|&`b32FJ4eHfgN-c7IkMsY+fby!C;xfeV?@3(0dSWTE@skDHZM(?G^5x4kq#_yLp_YN2?hk^6fUJQ z0nCh#F4xLNPR>W`ot1jjhJUOEGm4J7%hurx#pMxx72f=pt0K#N>Cpg##pXM!9Rn*v zk`JXy)&)a9Tz(5;I6(#o!exNn$El(=&pSJkp>z&c2L!h+r8N4M_S13MsM7NO&1`pr z>5Yc|v{RxTYmMcb`$!0U6#{Nr0v|KEX6kr4-$k_pwKB+DuuNxnhwvuUUiy}OoiSTR zk(c#W`~CYK>23PNPF)=)%UWzB+545*Xrdxz^ zXRATgchz|ia0L&ZWTV6!0+QVd^6nHA)(xN|p?ihUhWc*sGf>#Nx4H-as2O@3 z{iCrWvOk}sqWx-JPGjGiXZh`g7U=k>;lDE-Kfe1P>jJ)mOk_8z{>bHGcD7RxppvM{ zm(fQja)lQGYDSSfa`WCV&5=w`x)>{)R0n5;<=}eB-UZh1gj#L;s3`9=$!aqgA%7DH zd@gtKd;0cGSTg0(P;t5AB0)AlPwg@7uap3EqF9O&gQ4H4^*~WjxK2Pkl4B;lW0-#I z3DOic6}I{8U6Sfp7h4vu8g-JlWD%mC*>X_uwzo&(^8`^|qjPD6b(@p-z#tg$2Jsv~ zG?pBF>ZMs49f+AAraAf#ZLlT6hGwEkW$ckGJ*{$9J(Y4GpmRtNDHv^g+kky@(=7h; z)mM#h>g=DHw&n+8Ya=@&j}@p+GWcniuv=icb#a+&!C%7dBA=UcHHLeD83zwg$e*jL zjHpT)8c`1Paytpj-`YxB>hS8z6Y%6L$JFWAW`BJyOQ4Jmhjz>8?pe%`h61j`PL=y!<(>YoISrsH-6j?@x+x(wNE-%X#Lc-hshan zp_}s9A5PFWkX3ImK+unZ9*>Je@VYlu(S{2jZWaG{@|78t_bfManXvwqN@CmFkhiQt z<;}`tXes+^0l)7KsSH*-s?>Pi2iTn-pVrdLp06BHb0mr|$yyv_yAsu>7kiTXxc#b! zm2mS1_!Mo|FTd4csNJEn0?4$qA1X-FoO*4X5s2luw7y3&E~|Bge(3mp=+xwqKml+MJFkFHX+ zc=f;Qp!FN=1-R!b72ajFc46bJIqjsK?t>S;06bT+@oC(M+o4>(0Lj1@(CA#jE zOYbjBq|C{cH}iG2CKf&KoDm0OP{#4g5H4~HBElfClRstGQ=C>GKAUh1j==!*2OqzG>v~(rkVXRK^ES>Xg;3v3)vyHn#GTE7+{`vgO05u7V+NTjg zv+fY{KXw?V1imhaYXGzm=rMC>cr_0WogBb3s)AP84pCwt$6LM7AkuW+I({FyvfLe8 zk)vqz(3y^3&*i;DdO#i66Jgw*c>Ii==TIIrM9ac;Lg})4lH+W^44(ckL<2Ri85~1! z6Kbuz*!=)gu}pkLmzX*QRP{um!4GkEV-SGL_{aa1cn9%yO3_~wo7{e>F$!blhaUTb zWIv_i4GPLrqp2;{MS#-%a5D$xbv8-kK;HtAgMO8G^I>!SI6!GT~OoK4W*bu=OHcf#cE8656; z^$0`Q9DLz{-JDVN|}7e!@Xc)*w)}X0m(C0exK}ci`LAwI0S&MOiEcPa4#ri0fF}@?$CPH zFv@ztkGDqh((3v>8fuyr-|eN|l5cr~dkWlv3E;U{r^la~b7-)V1qaVIR#?)3RE^eB=)x& zdML;<=@w$R-~DB|W%UbRbFweu3Pyy6D{fY7_*uO&@&tK-e-Vy}vD?FDO;$sm`F~Cd zr5W$^s1U4x1_P#`rHmLn&V_$ms`Zuq*%|-RXeHBV*{!S39V*{l!~9s95)3EP78`ck zbOBom@e#)(K^gzs&uDor%$hkLkn4_perZxncIdcV^Ar@n?8%E}xVpy~@0vL!bD{-Z z!Qv->nywMPL0Pn(&WUT)Jnx_&kdppXK>=(Q&j5R9eELpv1^LWCUql=*UY~!dRi?NW zt(07ff{Bcy^rMJ=0w(9*`*G!IOMuYD`C4bqy04Ps;*3y_@EtQ?52%)ss`R$iP6iP8 zEoVu<#7OWHGfEZ3YP?E(40c0KZh7hibms0TZ=p%1uC&JixFTB@+{pmK=SzI}T+$)l zHVy7?wk(Xgd^zO&;+6Y5t;Di~8P*V43(Jp}|L=7ZdUB&Vz*2_U8CIh(A z{VFfc@y=fMq(*A^6>W=T-Xv#7ynM*qdoe~q;9MsM$SdoHaYyVs;Qq!mQ*2rPN?knL z=R;3O?Gmjc*v256DKwwA?o9$>s8_!pHw6u)Q7(~{kd+TNzXPBaCdcFO^Mv3-G=WZq z1!I?wNC^5s*I8@qlDDb2B1khD3!sosFz={(V7tMteo`4|Kv%p)! zx9>Lkr1rxhD_kZf!dMh`0*thWhOk>xg#yPw6iTFMkbJaFP6ek|24~O*+w$bwT@{gT zA5P^mNhhEdt5eNyoV!E|8x=8f+j@%G3D*GiUgr2byXiOBz-N}A{Iw4ffX({?jHLN{QZG2~+t6AC>xLdXC(dh9es?}Q6gAds{a?Nj1Vi=dl?mGf zd5!%R$|+oD#xnG;&ZGdZ-o-QzuUS(>jd8B@$Wj=$@$bSo$1~@tlObkUNkPIuR#);^ z)sBLizjpUow*!1Vrc5*WEkfnuFTQ(gQSht8*pVJ)V+v}smS((_$#6a(MI4GY5BZmy zGRj&ToHe%D)OR%9-ep6T^n-FxY0+PRcV zK+E@X+tAxWI&MXJtVOy39hHeT(aq=~GKJCoTe8-5%qYY32dE`-H(TR8;ads=IhO`E z)#svR7gYpU^7Lcc+G$tr*Xr^*{PM`uX)0ZOS|C=SExKI}cAOl)<9{YQ*c_3~Rd3*J z7lqYR>;@o$9g~9gvHU|V59an7-DfYjQ@d&XKuXLRaBP_1$|Go=ONY+&R`hFX#AOCQ zA?`TbGBeD5>^9+eR6hm?i;ZqpES4rO68-yeufmU~FXB_CEpw|J^u{H*e-Ll1%iT^c zc{_=^9e6;)>vi8lq>=wQ3?6*0@^)@%wOKPW-M`x7Q$?dDwe;6HP)=nR7=4|FKF|ZsQrBXHX z>XpyW;S!55cX|b^Pus?~!8%Nbb{fdEX$`#1vYRI!0p8 zu6zQ589foF{AFd=wW*;5y~q!VWww&Eey{a8WC6}lep8Gj0@(L^yr}c}ku(Z}V`cM1 z4fLYI^KlKR9TW@;&mC>=+=!&(TK6@@YGAFmp>q~QP${F* z-SSJ#E6P zu?_)b)u{#Vi$l^z)VB?IOR+hnNV;KthAb`C5HAWUJmFtaD&wbLeeGG6Mo)BhVv3la zI!BFYt9?`$59{X|s-nRd#B1vFuGU`da4X=wrM4!LZL$Ag*g>g+A@`s^Ajh3eRzE;% zJp1kFG6e~m)hjvoPx}0C?e~Tt%YVd2%G@!MQ0~sP`KeSq-Z4}GlOvrGki8amrfCYb zdU&hhs$7}k#*Byv?Bm5v)*4%QUm^HS!nvOwdV)DHc^n@)VDDFVto+ra_tQ2g-0+w(I_Jyh+QM)uR#>Uh$|JHmmk3w;} zyj5!CP|!Lzj2j((R6BIkeNJLg*=g}RP$)2e(eYC!JSncCD6Z&N<@v3B4=Yd={7-In zXl#b|x%SJ$bp&bZ{%*sFEXF&Vdh>x`ZgcAk`N}E#Y*U8QaL-PdCE9F7)ZR>wQ9D~5 z?%7RvbNf=Ez%~EXuTLI{dS$^6n<*_ zO6Fc`4eBjtJ5*WruDhwvC(4iiC7>H|>p&dcz7c57xDtP*jgZ9~bL+O!TeYo*>WXFX z6Quf^@L_FrF)?&0JV3Ot0Uusx+-Vny#&1}k_7g-l)W5Mq?bs1Sgqn z--*(bU%UQa=z~koZCWLUXMIx}-(P-86T#56O=5}K=4?bK->j@|srZESiQ@8*Ec)fb zcnf`JK_i=2emcoZ3(>rpb_2_;&t14h-3_BS{Sp#^P$&M#N43oa&mte zuBN(XDMIaV>TSE8YlLQTMMqNo*n0FKm?o1Edz2tuA(GN@pTKP3K3n9e#*s{}<g_9;+qAXKbGU=%8ZkH;-)d%Hw%87ro3h4w)QyQZDt28L&xU3nDG$o@ z@Hz}4<90*=Djmf`?SB8+BU_@{4JLTT&5jOXOdxu;(aEVbNSFtEt!HM`k_@rQ7sN4Y zX+}r-YLQPwKCs=`TXmQ~k|0iPcgCn0vKnV4!&DJ}3YDX2{dx{TtINfnXCMI^ezZn^=bL)Li z73z}uJtse3{eIMk#G%-Y=KAGFskL890Nyb6h|QH4m}~jjKxQU9i}_*@vh#Qi=`W|_ zERl$GRpjc;$@=`?Y%LgZJZ5I`-R%&W7aMo7C*=(X{zD{A)$fXhBsWXNMuoR1ns_JLIdeqi<`{uso$XG$0-IOOj}l@9=7vDENEP3Ibx3XJK|IR5_zjUTWbJ-E7{G zZSu3ZaX1Ua98mFg2!!r0-m%vJAHa9E}4}@LsoLjlBa?r zr}-X~eKZD<8E)G@J|i&1CfWQY>}U?7nr+ySBHkY|{2O*qc~-)5@5Ondq8yPet)>u= zbx`38@=JgBnY;_hj8fql@aE+2h(v6uZEc2}n0Ok<#S}Xn#_pRq8**Q0eBtjGy{XuC zu!96YN~Z&L`u$9RiCf_5jlf`K1Pckp&gY*e8hM&Z&63VaS~-nHW+5&p4r?!`h%|kI z!|ub2y6ubXN-ysyz0uiO@;MpftPs_ih)TKGNtwk~)ioow!_DW2@^>B;8D=T zrQ0)+e$;cSe;dFQE_jSaLn+BCTVw3WCrPx-b<3P`E zAOh#_gm*wiIl9@(-HDkrDMm=71_U*7eg z!c~$%*(9UZzQ|!U`6}imL>_^g$nBVH#$i^;#$D<>C(O2kv5YM3=*dTn4hbyp_+36H zm0j_MOBtJf{Md&#vrBw6`56n$A#Y;RC%o<6taXo%7tcI_(P!2m*u>O>RHH!^wIrm* zAS-1byBfUq_GD*N<5+)`Z(7aThX~@6Z1%rRMF`e0HAibc?7XtO%z;5RbP-#$TU)+0 z9hU%nhFvD8)?vUIU`EwB9`AvZigvijR^yrYy$ALV&X_Uj#kV>iXlQK)>mu*o0TBSF zKJB)*hq-+)G1KPWLCfiPi&e?E^V^J^Hd1zrGszN5&GYD&e+<^J%2?CAqAx^HVZQO0 z!&|(3f5Nt&b5r15!P7q!`7y#|$dzVMN#9lZZz53^uM-vR>my3fpm7zf^2P?IZ^~_} z&po8oBKYHW*Q$B*<#-|;IgsZmV_n6gt+Ar4*$&latKU!L_-q@^?2e8-fx0~&zqiji z2!_FRIg#j&N>?!zBj<~F6D2j)snY48(wI-63j-oSu57tF93}@}uE`8&i#~5{DpbMg zH^dlaaUzT_kDuW3bkt@mPQ^00R&8Hpw#v1}c9f9e#7%X!&>rVun;=|WZd)MTdLy%` zQ7(TBIq>81Xg#HD;}r?hJoxqg0ZeKCMk0B@uOUMQtdGITwy}<<)~1+o;l&GaIfPf;M zV(WB4I~S#k9D1pc%npmng}%dB&_>opU|~^?*5t69F6ZT)q~fk|Ilus@H48i4ccPt3 z^Zb!M(oe^n1fa<8o3N)B*BIySo9GsNFFLwUwt4>9A>y7b5%8s#zPQTijt^%|;Nf|V zOmKRqk*9lZFWhu{nkuo;ZTGa<^PP5ptq7l8l-)=TOCF(R9vyq{?@_>yQ9A%cfY*lL zWGOGwaZLQB9RDY8t;xhVu0=-^l5UG~wX$BK-IID{>i~ ziLq>8mZrQ9MKD&4`jdslHZ^Vh+Ah+j7H6pzYi7e)i|8Kx%K$kZ_NLf%x=S5=4>D?U zA7J-r-Eq7qq>ajA`0TXv5CVB=jFag;Y|$6o86pXLkqPM3N3sBsN?RKk z#SAM#&r|fn#hmZ&O*ik5<{r0l5AQ3nJC7SCJ~HBn#I67~zw;N03Ys@67S& zT6Q^>d%cy3+*dAh0>7d}H(pL(G+_3m{m<}fZnfo_D5l~sdE^bFxp)!;3Qb@>-#z&J zqmuPlyR&FI^^2?4E0-2s3Ma(n!O^Jx%9@>ax!4j3^WprW&4Z4>#HjbTcQ0zyf~x5% ztt*7XPeN5uUg^}=#WG%r+f790uk+hSUDr2FE=>Lc9m{z)NtJsyE)p;kDu9uXs!hok zW<8Em#Px?DA$~Z4pwE}7N|ov81bxO4hGu@98aV8oZ`ks|U~D)g7Lp z^weF4>v4KoP9pM7%*tsj9Hgkj!X%OD{d8kf6-RfF`T}ptKlbG<#%8@znU|%?FmF!Y zHfr2-C|yips0`jV50EKU7+8)^y;Y{6*c>wJHazhy zwDuyuoQr+je@GRBa^nsVTHRewyJna^$W<^}V92<+@(mn?u!0|=`zzH{=MhB}$l~&I zIV#Hhi6+v1W=2oeZNq2XyyW>RH&OD*Pt7CDIh{VhQPa(RZ6-G;d&A`6dKzo}9$<=I zIYLf{zm961nl|9ZZ7#RV<^v}DB!o5S=(#}IKg6Y^GlpmbG~db&b$Qv@P6+oRaE6wS zrT+j=UBcYcty-KqJ-v0El7mUa%~>kV;zj1(UYfpt(04UId8YS^W2CKL z@Uoa6ihu(4&zhX;xumOAKK!Uzr)j&S?sj}u{Y6KUnR6yGj@Li{dUC~_0w{&74Rulm zbP-;qsX+h4n)prBTol%Tqw8^fP#-rOE{AADkR}XtB5S*G2rsoaH% zI*G%Tm$*YZ?n^V`S|LL`Q_Y93M9;ca^o8sSo&Id-YHOG=H!JPNhB0)Fk}Al2W!viw za9kCYx<)qttvlMZ(;&*st37HZ^l~5bW10j3ftV| zd)Z>xLtA^z2KqfP(g`oVB;KQKG%I zD~%^5Hr}V#tzYm@A5(U(jik)0!Tux$w+mx~0u?XBF;S<0r~^x-sukmTZP%hu`mA0@ z;WQGbttrMS7a^O=XQ)|W>}oyh$uu`cH4!*#ZvHrXm6Cwg=sSc%BPxiY(Rf}fvGv>3 z^A1T0sGU-(XPqK4kKfD^EP8z{T-}}A zXk)MVa49)TJ_Po2BBQRmI^7#ttWrEz5RJZ&^|ea$W864CEu|`Zs6=vZ67Ug?a;!FV zy|#Gq&3kA|1Ysw#D6V?AAOVd`?n)ox5w7FY?q{DUSQ;12h=%r#=_4<<@B~C#Zf0}{ z+a0hsp3U$c6>ij9UmV@8N`sgWtFOPl>qT&IQOO$ zBg!O*jCN{czbh+83gd)gY+!}%pjp^a?& z7$z|MB|~jzeX+H9@S@3kXl|w5#CBh|=*7dCN!y06GS#JAnp_C)N)O%XJn=Avxz-1b z$CwY+7j3CcJceU8laOy;9HqkPUEdaaE-LpM_73f2g^u;A(6znAH6n$oR|yFbQys^8 z-SMn?==nP3U0=`NcOFotMzvqZ^@O+NK}Irrcu~v_l*F=;AN0Q%cS6C<%zo649)q?K z9s?RehNmI?{oc~_WOJE6Yk}f1(uQI;=VNbz2HMn$3jA%p7H8^(hAinQqMAW*khS|tEUgHIiy>UlVVwsJ530|%WNuf!?#`6Y6%fU^U$4W(B-=_8#i3?pUYKl%UB03j` zzEt+^4XTP0;>wZP$yijjc!jOyz1!yq8nBX1Y!^7?J&KW~=D93K&u@*^ib+4P)sPT; zznoX7i$gSc50pw#m7V*&_5EfeE!jt{&d6_L0+y&eQ&_av2#*?_+EB0xRrO|#4d^O? zJ8`EbtA#^GGnV5-WDrQ*ua+oF_lPQI|E$?L71ndrE^+t+SZ3QceTk)mFEVbQ$@+v{ zLBzmavpo7m_MZM$eBS=yfo<&ccvGQl3>%@ZZ9zMUlPg(z@lK%I>}E?ycF_;p3@zbQBsuhs6d-ORUH&0@nM55ieD*a#3wju5R;eNV zS#Qm?WSLfL$M)^?qXAKY3Fr&^iY7VhA~R#xA`AUB!@^cpBwa*?W;+2(j&Fb>cO@ZU z1L}b|(_H^klE$tQ+m$Y07DC}P!z)g(c|v3Exyzn8%hy=! zE9r^`&-0pX`=PPXwwq4+GU;W-damS4OLTRR@pT;H_HO93X>rAnS)K;322J!ifk6;_M4-wIB$IAuj)?_Dk2eJKx{

r0@LljO48}xr8Hk&An+PcEjTfTrw**E0jW_;h?v=Ti8i0$-BI^{*da zBu+JKi`+i#H?Nyq9E#=P#1sXsnhkg6D4wnM&NFZP)Q>wtEN*J*MnzYv^`E)bh7v1| zM6vK)^+S5b)v5N+sYxzq`8J@F2S*}@D#XR}U){zKwF~%mQr?#1bU(gS8K-yj-zUj4 zWd$BMPE^L)PV_&jwMoF9`E25ETSD*a*JWi>j_Z+v3d>-HT40ef}J5GYs z?we}QwZBcwrw*!3w+qtb2-%yAWC2noWx(wWru_8U0_qOPC_X+%M>GZw(6P6oA2fjD zYs19UJ0bd_T93eMRTy0sXIzb&(gJbkq@!acegeW048x=WME4fF{NR%;7^2qYj05uk z4t?82-M(zvDjE)_nW1#qJOZ`~8qJeg6strnbwo@URkD6;n+oVb_~_sm1s{1%t6va( z)F+cG-{`BG`t6MAKNLf5gC^5rPaOZ&Z6Kbbd4f_0&B3A88gPFB?o2Xd0Z+1;k%d0G zg5!4f6yL1t;#zGZ42Zqm9&Gya7)w^L6j7{gDa25UrNDrD*R0G3MO=Ip^X z*(ZcsUj4j^Az~aX0Wl@z`c;rHQYOJw0XaZ1O7SR_fs|cWa_JtI=C0gmvzYa&sO#^x zSGCwC?f`F6nNY^u0d*-eq??u47jUcq!iJB91%Op0CA9z;WxkBOH=6+wv7dC}oB2o< zP}~;iP5Sr>7FifL0I8w=;g-CEeMlAq@Sf#o8r1gWU?M)I|AwI9=eOF)NcwpMSTC*< z*W;xpjB8fycE_=Pwgz9d(u!m(pyB0#-iccAF8-eE$U?uiyxEYey8B$0^pQ*mSlc`z zuhR|Fi(xU`@ub{J!e%|3pFYm<4aQbVEe2l3T)|< zbs1A&GeeTr;~W}6yFDBS(W>AN4UhHzR5&PRPN*VRJlJGedrveAJ41L;x&G?le;78} z!c0l`hdGJ(Y2`s^CUpG2CnwEY^$e+5J#sh zRiS&XXsca;69GO1Xb1Ls?K38DnipxQcLN%<8Yt_e(lKx_NyS79eA^eGKYca`)Ek*S zcv&dk^bPW}Qc5JGq>SD$p_^5Wv`qh}!DmcihHHJ%ND}0XE_W~0&7}Z^Ax@?~C+RgL z#fTMrs*l;YDb<5ka`|B!!ZUuC|x${ zJatg=l?njYn&MRA9|Mbi8E??Ll)#@^MUD!AQZ{FK;BKv$e6?+>R1V=)MpqcKnI@q6 zh-PQMNqUhLf`cwpmMB(S>i{Piv;en$KrZ8rdRLp&xjQoPbc`ap4og~j6Q}~d*K5lR zj6x}m4d0WTgOhF)8edSxon;y{*I$zwnKzZ)6wXm2zu2mT+mVuzt$R33Ue~;1Yh0K1w_RUWI?V)@SMz-~q;+`*)a6VWg>SY6x#p#h}DJ zH&4kg?|~?18PUk})yzh^fUH0}uXTKCe3rGX$-)S5?~C#qdt|@?7;s~YOlhg;16t4U z_wQ$SJZ<4i@w}OdL9E!KH%jx7#f>*R&ClxUV0V<`{V_J1EwdHD3-+@77Kh(0^_V|;e_;LdfB7eYxv%zv+q))3Ds9CLI=1_4PE1#c*3E1`B6p>~Mi2%c z+2||noY}_yWl6w6UEHMym(JNyVSlP-PFA~p zHcqy#RMHSGlgx(}7M$m1Zr+7JMsUZ^aD(+CF#@L?i;iMS&#D4T!ld6S4X|VGi>oJY z>&EMv*P$+)T^&frqb(yVzz?2hW*r?@3cGv?yJs6M+&iIF$+{n&N%bUGjXIP8953a@ zajcL9@;_aHK_qm!`$$<}rkO^vd#S+|?XP*opi{)w7UY?V@C3tTW$Er)=WeZZCh?LI zFy*y)n(m9|@`?u)44y~+sw>La`1EZyU_^BP^Obosl4kD3ir~cOwc0S|XmD-Nz#4TF z%|Mk&P{qVW!E{mhsx`PHVjtW?W7p`q|F|Z>o=p9Pl)bDyP?N+tbZ@X1ld(rOD_Cste~Wz+ z0+p!u&2d6Pw zRd8A}kww1U$C`#Bk=`;V4p@mySvhwvy%jyIh$EUuBw}Z7XR2B;DD0dT_VQ4Po@T@Tz%fV^xrfFW4$R5&{N;Km|12wNvsw!!r z`MFz6bIVgDCh_pJCvDp|Z9I7~T=WQEQIu)=$NBeDnsK?egXX?lwg}!X+G2Vl3x*f* zUPpWF0bTapC7P)U`~0$5wW4!yMNW3m)A{MHdrtv=I{g=t4OziaUBC-y%~`&03Mv7K z3cww9MAO3lL@u~c=#5(DJJZ_+H4^>eM!up>ns!9;)ZEugN2_;9i6RkqehJ_D%^v{N0y*+%0=aI{-KGbIry zyzkxu(IE#2t(Uwcc2?CpS7CDJePZ(v>-T(49`vvr7iSZer2}?<8MMmUOeB>Tmi5Sc zk3-?V5Y>Q(*$HcH59az(&p_NC@L;j)QVq%3mx(I24nsrXtLAI+=_9Y0D$F&iq~CrE zm)y{q!MsXLsFsmO!mxQKBD@X*!>U8zsEy8Ecuhpzu43;DUH;uG<(1Y@CJq;e-0RSj zN)XaKRlw0K2&CD__U(IdCp}%#)DzA&Tv>7y`;}3uyXQ;`Beu8OP_78veI#p^Zj8O3 z&RVBZHDA29%&YQ=9JePX$3cYUU}^tJQ+yI#-lCGNiqo5#wrRd)A6xQ}*n80J!FSM) zb*iM9G1MV3L;8EiWt|m@qgB;P%*g748{o8t8N)x9phijK8ZHmO#b(@4kKO;cQ4D}j zu^*YJ^n@0sra7;tcsYpjKGi<>(mAsZ*9jRt@ZKx2nZ$^ML}XCcscVwp6jl3t+V;Wj z+B@ta(Cn~P%R}2L=K7JQz4tE#m8YWH+Zsd3k_zze|w1PcUr zcM>#6a0n2b;4Z-(0t5{b65QS0-Q5Z9u0eyl+th{h*ZubU&6+hcKWA7Sy0}&6RGoA8 z*=O7HRJBU40_%(SgPEpB0axNYnAtPPr?S3D&%YRJf(uD_nphg^y1HK2nx!iqL~#Z- z0F+w$we!zZ?=Dd!Rlj`TO)QlqG)v5`nP+FQ1=u`hq{RWUgwCg}MXOW^@k<^}!H-5i zK)|P}1q76uz#B&}B2HedrD5((K;?D1b#QWqEl_i8CT)>bRj6Fd@)q6JHR5V6<5qz_ z>9%CjeO+e0;VllT%DaWFMa)wZ7tBQUixPq_jU;3r#>yyx9S`b;S)&h0rFk-a^yO@Y zRjgDMP8y|%s6^(KxY}9CKEZK`rdaT(cl2kYfea%bEiQ41`y1%M?>~pPx9;pOP9w$h zd2RrN=L9&B2lDvqp(VkXj`)32AZjCx&!YKR|%Ouz7DFzBv6eG5`o1pnySZpq64FH=)Xj3D6vfY*rtdgK_{Ea+b8C zqU>8`RKzdNN~?gu_4{7w1l_rtD)4dwrBmbJS565ThQ7(%oO6WzB#VOzW#_z2_DY>o zjq4#mGPALpj=GS4^{)Eb{xzG#)b(=&`{Pyv@rFCx!Us#^4=%`W*W|kLuEcMqC|PTZ zeUtl^M|*-t*J~PsIX~iw0iMCxV-y|K9PY5Atv3%?^ng{C=l#w8`Sq@jo<_Scuu!!g zGZvsr{F_kSo7by#EVQz$7pQ>8{X}r^2qXb5JM0FE@6rU}PWb@%b%17zWf1{@3V{Pt z&3|sOnyWfIZI;th7XJ`4}a@mjELUY|pmDcXRol69Y!$ zA?DLkcI+eBqCA zck~$FG|4I)94hgEirQ#00Hf#qXmh#c|K+f80g!Dn)*c>kCry4}AQtFQ?cA@#FOT1r za#fDz3eff*e|A!4->(=DI`RMw8Zb+yPg6R@%}N7QI2~f)0b=qLU;|yU+E%7qaR9hL zZZN$8;LM{K{keMg0!7j2FaiOXnf@1I01V7BAeRWxBu}_Q05&2|sW)MD3ryG(nh?}-5F3mYPYb=* z9sC?zsX_FlEtkrb;N!SnDJf|HdgcMRxOA*VfUfIURVO zmgJ{fX)8?iC|Ba~15TxFcT1p5>tCUb@r=F(gai#IKlr0J7sN%%7^nP59I8ooT1@2$}bpMp` zSD-3Dl&~-fdk+(7+H3(sV&auS^ekqacwN*5P}x@ezSsajWjS&^JxN3yCw5=^YrUJ- z`Uh)r=S2pp4K7V04_!EDpXj!77aMmj`dzq|Zr6cZ4E+zX5~#)f2rR6}x_kfyEE|$r zUrGkfsRGf#FfJLhdhVIB{Y3R%h=H(+2V;yTe-T!pj5#5c$e%=afU!L<1bOu{(N2CVu9NC>bRf|Ob;^a`{F zDwL!A_-lh-JpcjOwIV7o0vI4Ri2P(cXSpvwD#`#*iRDMc@~o8{+9)vGz&i>^IY!&$b^yi~Q4-vXMT@;C6B z5kRiNRxByj>3ENFl|@&cPV&^@v=0YB(PjBD%iJ{6C@^7CD^X!#^W#kCWj~5!6KgL| zbmp`C&%fVaa1M@i0-|3m49<*#Aj4|?hJm$Q8%#1ac{F{qPOUc~Ztl3Lw|CQV{%BKX z(hl8+ZqIWo0?z8bTUVapKc|Zi9_(jh5_0RRFf$*V{Lt%~`0lE&66p-9^@VJ*2`EB< zB6^a}j5-#Y(2S@oz^AgYajozJR$9uJM}5Ti0?7B%>F5HGwZ1xc+wHacXX0}Yxl(S7 z)La_IH^?=~b_Tf+w%v*6T7Uv#VUCLco|}jW*p{A37bIW2?;j9DiDpg8+T(}haVfOTH&H^wpY@5n9Mk4N>}cALtQNpB|F#{}`s30Z9`5R_`} zWTWJ!-sNibKfE8bno|W(I%mHH%m*%|%8DyV0l01p?jKz=Q5jx3FDVHOlFUK)mx^VB z|Dk&5F5(A4q4jWzRX?P-e#=QSf>HtgOReG%A}>^ zkaqH!q`#t+{_O&=G`g+4Ti~J6?1>+X+$-CM0D%^t;u#S6MTr6HMI;So+m5RXxcP92 zv9J-;)HjC^wJ?M7y_30qvdEIk05RpWf(vBvF!93TB1Yy&3bEEnr%k0?)jJ{g1-3PQ za?5vFC0yC2J@NIGC!M)|&#U+M4o}{ymY?XEyS?W3A`LPgYlCHNaCaY2FB6P~o&*vI zEnHTxk1`nrFcUrIY361woToIr0ot{zNQyg$7z*y{59Rx(C~&IasNS{dzUcWC*1%$& zlwMIJS@viWVXi3KhJ+2(b<$QGt6qUFDgHU~N7{!&T-8d)TsC}bari0kiF($2!v$Ud z^%+O-q=r-<)sSSMIL#j_wzWX~z@bE$Pnwv*TBcfubT`F)6%($AwdysT7r2?N8j=QI z-*QDXbmg`p2Y&o;^?V1$nqVPKiA`K@BT&vz%?Hp7Mw*YZ4QI3=)deo928xoWtChj@ z$J(=ItB%%xaSH?5YMB|#5(-o!4$S9d05np4ag<5>Bn7$8-T(`|`q3N!&2P`zbpQe5 zb!F?$P_VE)k{1DbKrvaW>(j;t84$De2KJv8!#|q`w5a0eMXJ7@!V~LXelX-1fWeh( zH38EH!2dy7eBjiUhX-JojVv>CoTmfup#_ai4t^OaN^Zhh2B8dW(9&NhHO=SIN7fgbxb#bpGnP$Pz?p*y}XSCDIUBh(Ql zCw2fEwtwB%&{APEgtQGXz4E=ieQ4zYUDg5P3MAcHG9OJ}4-ZVhI+-WUfl);5#Yd}J zs_Qz|00s!g(*w{DDj=*5#2NUtfk8BgBV?B!dV-OoAUGD@nEe-Ke+r-gW;Jl#@Mi-* zVCXZ^R;V;VHtZEU0G-=m0K5Qj`7#M^`1pLJEHpubz+Aq*b{?&pH7x02H`K{RMgnFl+r~?|@>4!Hu8z8$d1IBIJOkd_)_9KokIl z7tqVM$6lCHWr55J9LwWSJzfC(e1OG9Oa!zAnE_N@z~eq5*+JTZ>A=)J(Mf9<-0LdVLiJm-opM;j1iJj&xFspq)_0ba?94Nd68>FuA zz<3#-23VN_ev&^HmIo{lU;sZ;i`LWG38p1MWgyUC0PG|!T2C`H!2~3ZfPm|x^#}bZ zk}`qIKjHKqEye$7x%`hw^1!(q;sMkM;oFo7QWcw-=CKAsym8GOh2I6@l~3d_ zAP_5Xx1nBIXk-N^B$rr9Y9P8+To+XZgcpOj_OyV$<5d0@RK85Gf8zNU%yd^RPNk`e zXHiS+X7}WU-3|Aii*W>JOx8bluGfq5l3d$VfXy=xhaG%Ym3(^zd(f!zp9o$*N+tam`;U$0`U zfz&UM(VDGhVFrj?9t51ujRiGm;kan(EHQoRmmZnG+cIZw%L8$En*E~+qFzb63Cf-* z{!R+;nYHRaKe`R??T_TN+bf{WSHMOZ**!bTGrIxg_K%K|fgQ{c2C~ECPJ6FcpGx`X zvUlhgYYb&zMhyiYwitz>E6wv2p>Ff&^qb!F+;1 zf#1z5#;Fj}F2DkBbDh2D;}IX{mJbiJD@-ntIhd=?uYwnl6@~+OV8WM40|Nx*&~TKM z;S~YVAr6b(DfJmnCxz|#9s82Ye>m z6fpe~D2EiN?EK@HE{)P1I}A;&nl_h6D;+KLd|1!-O5@Tp*2+uU@#>3kT(t;%=p+bq za`0Ih?XAaBBH;bZ&Sb5^tCX(z3!c4N1W;9)j|3V(ua-QY)J^%6uM?#R`jniaFpCBk z(iGIBrp|x}$nDj7?*peqU6p@DqX}P3X+}0hVYzDwjP+w~?A$~MD3zIiR5%`-G=FG= zE*|Us`{pdiY^n8nidl>kSw6W`RApwE9$)Xp%?~t5%k4imsNPDGD%?fD7!c)#_SUP^ zA3{7U*{lA!kea=(MFk69zM4P4<;*~#AW#!f0_6$p2y{D|*#O@=dGlz7y$XO>EBiE* zkfyRwe%hO_7NKFX5Pfy-5=dZ^EW&H92B;&q;HSml3jnuqS4RQfmpG-j08%)KAWd}A zfZAeTP1VLS0)1YXG$|o(@a8^cZBHePY_pVJJdTNPb<g7pj~Et8u%Bu$24ZTH5mU4Y$^af^=2r5Oqq5SU)+meQ4ALq#x@Pw zmyf_A%mlE5#w#5_!2j-~^1`oFwd5Y)Zl>e+s`pWA%K!Y76e`%7c`a>y9t@1V7|hrK zEDgawTTBC(#Ll2mWu0L7+OTVDiIPE1q=Slwvnklsm&{l9Q$s-qSGnEVclkuh!ifhK zDy)K#%+ovA2*t6JE3x$%Uf^qQfB}=80Y$*aRiDULenesheXAl*cRoW9kZCEN1r!V-x^Ee+2rrvceabGMpM}1rxoFoK|9E(w~5>h zX(f$$H|g{~7$t^fEoJjt3j!43eYdpg=u=aa_5yO*NYQiAz^q_C`rjZNB5-MmFgPg> zz^!)G80dZXLW*}hstWrfBJv~whv~p?!rKYZ72DafwbyT7G*#J{I!+PCRqpD!9`CD? zOJS$EjU|m$B(W0U6v=Mv2!d(tR%`dBb|MNngqNld4}d*Y()UTgVZa&*@GyE@cfo{; z=kxUe#~z991T=I=i|6Y+O5C)J{_L3_j7jg+*M z3_BUq$;h(1m6#XIz%a6&)1{Z@K%@e+7;G!Mw*R770`=0N_p-G z|9l+@-iwqJ4jz{XV5u{CYe(e%8E_NdJZ)n?9s$(7=)l_y${16>0(*`srwEwFsT==M z(q87)gqHx{g~$omgtQcVbc(IOt@2nXr!JMowZN8pHn7tRKL!YZi$IWAPo^9&|DY#B z2>1|+>G6iZ5s}A}?E)M^JY`*hBRK8H=>?AXKu^{Ya0vMnjs=cTTAqx#|My)^Kfqp+ z`s`A@Tz3Kb1&Iku2^9%wd&)>WgF*+vfWTUY7{m$PkNpey(g%q^APnFW2TL1$Mmr+| zbAzYfuNfT8&30APOmRig-55`K>28XCSLOTvz{`k4XD@yEl9t*DuUMpBZ(#p>Y$!e| zB(W2Xj{q^flTpfPCUPdrFrVPf@Pk~mH_IJrVr*mu*C?HoF0MeSc|onqW8chmi^jJ6g-&ax$mIzJ}Ud-v@bqIQhA*!7tzPah$$WB&=!R7Ww zt?+i~XXEQbdYf#9?%$8u?x8{Q63f39H5GL^O~Pv>#FI3Yy{%I`SAkXp)LDh$^**QZ zEeHxCz!tIrhnDY@lFRg#i;s%s?AF0 zL-1ZK^H`{1F)>i6eipl%?i}dr%tYCETZUcRbRF9_0R3&%FD$+FUT)Z0J$q7fTM5)Z zW!?Ctcru^+k~u_)QHy~0i}mgA>ecSxV8XjM zTFx342p#;2`+LD!4>!B1XG6tH&929R*h6KG=B6SXQ%0^gw`cyF#Yt{w8`+dFj`5y% zbS@qwKMQaVf7S_;l=8PjS|v9ncMw5Q(T)T?gV7~2K>SUB%z7G#-O}Q*!?zIRkn{5u z#qz|~R}n|X4EZ3$mK~i82nV=Ue1SmcI)qH)}*P;?g_26FUI-rj3)_J*zV_{qGFqCnEuqEH{-Ker;3aC+`xy8o9 z!MmGQ&D81vgp|1lZG!mJgD@==ktn908sM|=ghaZC+EmuqmQ#PMEe2f2wPIr?ArVn1 zTEby7_snN72kzSwjYf^^aXG%)dfz)T?L80UtskoK=3D?pG9W<~?^9`VX(^nn_8yuA z8UN`^lAAVUqCxu$d?;3jWS1&Se-?ctl()>8S)>p@+z1REp;E-0;zd;b%;oh1f(BWJ z1)OmO5QAD!1a{61DY#>e*rdg@5QG(HJSpbXpM5Flbwk9iP%ziCqSICVx!>xsb~qDT zNS1{Cos{o{WeIDCcx*0vg(+?Y<3^7@l7t4iFt$VTmGMpAL>(?9eSv;*?5e#8>qBE7 z_RBZ0ghbDl)I`Y69jXRE+U8$bv|&Ihb6Iw@LM#{AB*z@orMa>e8HBUrFFGURCSa@e1DYl z?)vjj$O`m{eh8Og+3Yi}@qnDDqWYCgO0e&vO%g?&j{(W1gwJFu5JQzPULsqa&@yJ^ zix@s)<8-7T4+lyL@^3SJ&5*~E6fn8HwOXI~WddPbZxR}U`sN+k8~-h`JQ%dI&gJK1 zbZ zN}H0s`IQy^(_4p%A$Z~!^SM2qcuTOl$bs_`?B(Zis(xJM~&1j*zhPG zw51p!<~TUl51(i}ylMauW zAqwLSb)w@*md)Uk`ZeZ)(T3tuak&eVB2xw%jYWFvYXo9JdW{e16xg^qndzLB%ye*X z`sf9j4}v&$=CoN&)}c#tXg^x+RkF?SqJ%DCOl+guX65)<(xW^2V}^-Q$fW!4+61e~ z`>CGah0T3#@Y}%6)qtXY)Ls*-|s*sZYJJrmk0yeHnf%4gX%mj;US)(tN zQmJYu+Y4?}wzvcL&*nH4w6itN5>$(2b0T?)m&e7!+|pHYxFW^pa;tH9vhTDlOiNEX zH`^NgrZ(Jx9q-}c8R$RvM4`pc)QfWDWU4M|M==33h4)a?@yjgM}6YdL|An6&7{#JLezk1}@ zz;$uw+wJ+8pd`e*+`s5yaOX3Vgp{bJPk zYDbD}AY0Mn!*W4x^zp4dmjmeT1?y0JI?a_NHY#Z8(g-VlXnQ2INi)18RQz){Sm!BG z76t8n=TG*#SBLgct=Rk#E8SDp9ju~+biq#V&pDHRw+P0yT#w8pye0XWrz8vYY}5BX zeIU3-KdbE4-flnWdiE7{1gX={_kA^~#d?UrSmvIxNsENGD^t+sjzsgA1NgnR)v9H) z0_^(qAtkKoQd=a6>Xz7;Mv|@g@Ar`O4Z9t)AABSx-TTpaacYCi8>eL&J%+Ue#GF?e ze(zF{zoKq1&GBuT+B4ODp(z-uekiR@9*NSRJA)xYbVJ;*qCUaYAlxK|F1I`+6cr;U zuPN_`TGJeF22GQ~#QCGN=Md(j!a}Njn&WeEWVkeRm`cG|J}#mw`H)>dgyW7_0Tyam zc!BI)=XU1x<`Nk)9wmH{N}5n|;hS%^Bhw72(z}U1C+*u@vxLU5id+MseAM2Vi*872 za8ij;`|yx{lhJ;ed2cFbX4hli+bFE~yzpyq8KRU!*rw_kY=`1)^Z6A(Wu#2r0}s_n ze)z3x$PKsCqUZU$y`x}#sPY;{Y)UFgSeIMzOiIdlPgWS1DVBZgX=w&lR zjA_la)W)S_#2va~C?}`VVHo>QleuGcsJ>)g>g`>vLVMIufw|t?zo`4(wNb+{%?f>~ zhvl^eF*lwV<|sPcpcONDQnh_QHDzOVs7lLdAeYhWVC_p0zbhN~`N<2~j4#Dvp)H)) z^WZ~*`LCOgHv->WVGWF4J$pZM>edyx(mB!8Pdxc>K(UZ+x`^H17)uTP)T>VQAYNAl%SOq{2!uYRA$0mtDtu?ykU#y06mr=J$A~kK;)i^ zU>sX@)8O?;GmV{X39ZIFr%z=}x-LE3_Wbq|zH4FWs|)5fyrwQD?q7Ojxsyn{XLLje zLR;`jvCsPX5ymD{<>Oczg>~l+Cvnm~!rxu4ew7%KQNDdXCSyF3$d^g4D%I&5P=cj1 zYznqL+#6 zeV4q`z-a-^3$v_(>L86uHrCa)A4OdiHcq`M?v>;1x(^-G+wvhqUxGDYFZ% zaXB-HlT}2aZAfUt;S4Z5aU8)Ng7w$@J#e>Zh9l)XLP8+Ojs<(9eQ0@Cu;3o6eh=Ss2w`SJ`mrBx$nU%@j-{`B!p8N?#6Ag$J#Qdl!kS5Qv^)4k?!+Lxv%b^a zlDumj_C?l_8G35l&Qp+G)%jQZ!08ZjJ}paPM(oQXd|vpYfz#*NV^hU$_gm{aul7Bi z6G9Lup-4X%`c5~-T9nfzQHyU|STAQxechyx#W624WrvS2DnC*$z)RCFG@_B2$>#W> zo{$A)_{-awGVztwz8-sp{R-ZD19&5<{YkMmx0eAB-uxdr6=hz&-+>U~9_M>0j`__K zzA_I&{}hr$ku{{>?LGZqtJ{0kmp$9Q8SJ4lycr@K&;y`gUA(Y1$p|PZktPac@nteX zha(J#pv32?yid;z%AN+!=ts1cl->pGzy7FqRV2^eR^dDr8o zDw@q43alkddsSpL}wJ+0}I$`TR9mZBP`-#CI|S3q}q;*5kLS9FYn$L>kP={xbp7ufvsmGZVoWPg_ z*YB^2ylvuBGhb+7l&V4nb~t0p?ML&**1pFFJ>&mjgh#vqu_0=~nk4&yP9#nR;vKZ8 zITkPCPEIq$2!or*$+y%-CxS9$1)k^H82I;&DB`}@CvH0(`eexSGx5Gm;t9^l%0hJq z-lr|kO(Cw6q2BP61Yd?GW*^DBOkbY1e_>A*Tsg&%{W|CxM;;X4I0qdbZfW^miNqw# zV+id7nZAJZhNpE?kCjcl_9khgcbYeK)=pBwPWxdvh-_) z;?(=gn8ZQGKF?`O*u#s87E<5iPyI2+x*=M^9lJC+QbnaZ&{7bI`)u)LL;+>=`1TTO z$ofIFeNApxH_(^Y>&bbC?A3I~M-=JV7@w2ygJZ5K0#lF!TbRsV&fo-#e4ey4L{;6! zi#-u`e|6x{6db!GS@iCqJ9Uf6-(5O}$NT$=a%Bqxky-!B_fr@Nc?88igvO9-Y3pOT zV}l)UWV-kf9Vh#*N$9>GfmbXV@YwT={#xRNz6c%48+@KhN!h@ZK2mB8XDw{!LPMV) zpi^TYpDZV;W)p?_S^#~3VC=vvH$a3atOGt+OmW_~SGYogJK@9PuXfbrvvNVPi7v{s zolSSql#kCaq|GbJR^C8djjkBnN0k+^ zpJ=mInK-q=D`MZFqkmR`${$#uzGT`|vbjSPi5i{otGsu1xsZHWGiaj6!NnwRZg#aw$`WJTc7-l zRIWvv3ly(K;}YubiJX2VzAj#%{sW)p%ewfk%F`c_w52xWQH$3s&r?sL9ns!YM{Vnt z_R^zC3)p2W7Sfq&vPxn=zIl!v;*FRkMS=fjD@4rq1E>BdaX3<}-Omg`4>|Dv(rrii zVbzW@R`&;+SYL@)$OaeQW`nw4GYL#uPh@sV!|c!2NH#kdzmtOhl{N3JtDQdbOTA_! zz^C%fW{P%s_iA4Fwd<^zHxHLr9K9vXZpIAvS%PJ-s75y-FX!?a{UF@UUXyY2_v>#a zCz=D*pPgAzogcnKQkt<>+xttd@R$wFAymv3jP_`|2DEHd32t;KE8`Y(VaGo(n0Om8 z`K0qdV=Z0m(YDR7GFr%JLxvq#yBM&gvG=z6UDdtTpONNKUIf2;*lOEcZ zY99~Fi)WXw=KC@MCKn1b2}aV{8W!{1+@j!;g~Kd$dxPBvVc3!Fbu&Wx>u#+jRmSuDy79HOHMov_SS z0Xn}Nlo%?RaLChvLJcjI=dLj!sy--%RJq}~m^#!<9got;ZIN!F2?4dIP+}y>dp{y- z&kVS*rvrG0coHi86-w?eu4JyIn`VuA#drFYFYu>dc~H4uJEw(<%j;N|mq14}B4r`L zzjz68?LaWLqCNUH)0nE_1qM!?MKY`b^30$|nU(|#-;YqXVM$i^hOBEcnCqat2%VgWutPBY8=jqDnQDT$r-km65e1w#r#uh{DDe2>!`V5R89aJ$yBb55t6dmPn7<$RevcEdRne(LVOm4Z znL1!D*e6t0zYYEw+R54@D`sN8sh$D{U*TJ2By$>aE^|6en4K0~;V#K;{NO*xD4s#+ zyMjCTrBMu3pI+95(D%T3Dc-4_`0Czw%6hFa&G=QBe({vMW%=evharEA`tF%#0wFKf zMFSnB7#~U0aO2{OfiHw^hYJS{?q^JWmLzdbctkw}UH6)nQJW{exVW*r>92bh^=#t~ z3A5<}#Ri+RFmYdtF=C#;zVqKCL#EV0-(bg8i;quF`X)A)QnJNzx<$Ids2jI7>PDK0 zDylEWhOnvf_45SGo?m7wx52xCH*TZW8Hc)P6cRD_D4@>N<}|EEbm{ zl2?qNO9G!wLxMPF+9-MZ?j_fx>a~jItP2W^j-?>pX;{|t zhbxRmA?+V$uQF4T#>8LY&j76VX`iFDlf=1&}K-aHTCO9Lx+1If?5O?|_;h5Mj z6z6!~MagEfUz&v;4tXVpW^ngi1(%R;l|@Ad zeba)nH&C;41IIOgrs0Xde@)PWL7CR`(xmG7(oQT!}^3b~}`4*%1jszPFFkOVmu4GgCfpv?H70*&MzRI>oretD_Env%wx8 zX1X}2pamr&PBHjC4+?)53L!L3xb2ur>YYUvk%V>MY@NvkCCCmgWg%31Z~GOB4l>1y zS-v(q#usECE_%TSh~f#gHlZT6Yt(@oKXq^hLYEX=>W<@q57>bZEO83!mj>Ip!>F6M zw|`eB*K-BL)GUwG;v4=FCfStcBHel`e-M$eMnZlPOPQ6jqtmw;z%vMeV9{WU={k$n zGf|`Y?R$(pQn;{#ui~)!57Qr;?=>a3MIqHz?4zfd-+g%XtfJduJGQ)&tQezE$b@{B z8I6A2qpE)P{UT4BA|waWSbr?ywhq3~;Sa1qcuo!drjNAs>}Ea_8j98BVPhM{?_mqk zl|&aZes#0k#vPaKmNAdM_9yu){LJCIp;NCyK_q!IIkhqQRl4IlQWYxGOn9N2q9$dU zUp%BIgOqkSp-k58b0c0c-l3ZoP)C=yGx7%s1H!S?c&jjn9_w%Y6Lq#@TMk?WD3=_@ zT3j`uDA|JsKQE1(hCp#4;@iD}{{bBoa>>N}L4eXVr{jjWF_tL|#$s4XKJQiV+BoV8 z_K!`I;a_}e+>Dw>x2xJLWJhj7qcZ&nwP+KyFH1%%bgE(+GTbf{9NM@knFR^yZQedm z`PPlj;;Uci2tXIzpzxRV)Wf1SBS}?3PTlF#S`|s1Gm)sg!eLBRU9II@fE+rz`pkIG zLg25=sUftFrwrme(T4cl??b2BA+~WGK%Uh8GRm=NXiDejdu~{H8?*yhV=N9*LC;!U z0ngere$Uz!KF_!0DL3$mXv!A`oa80@ruOJD>BM}``#&bU-Mh!vSf~D4>&N_jgJzH{ zCZ8i*yJ*Gi@MroMH6c{}j;?q}k!}&xR#Cc`4bG5?_$aPuh$w0!5fa6Fj9KH}td%N^ zs2t&WB%)3{`!%bQ!e#Z)Tj0Gxrg1GcGYqiIX=Hv_wk*|E+g2F{_ItCO%uYihn-mEm z9ofvUpjlWG!e^qU`V4JXc8tGR)fP`wY>pl3MmZanuba7Jf2ydRETfvH{j`Iuym=yP z9WS0Z!;ItYUt>ho5Ua~#WJyO_r^~Hw*?=RaKv%7%+NKvYsa7P?gVC256?GW18Wkm% zjnPNJ!%ebfU{18l(m7Pt#SFD1C67)YXo@_C{$8T54rSihFU?P(!F35!34w@fk43M_ zl9HgDM@0A&dO$)yRiVAXHzTxZ+iMzh9xe*w-c@=fX^#d**pb3Fo81Um8+){v3A0P% zXWqyOVF6z%IlRs>i)d83cDpCHx)4V=4`PT_DT$bc@;~Uah-Q*8i|@?qe=|zV=tuc& z2JH-`UgddSV+OrvUWOr5+M|ds0`cklWIF^ilxhwNB>gxNDKs;bcuvc_cn%6Qy#n0V zS2W&y2pC8$Rsuff9H~GGB~<_&{I5cW_^HWX*G$-$S+Z24(FpM)U`r;C|l716^$AbbXYt|Er&{ z(7#ST-Xu2npC^Hv{MQpCS%(j|lBNvmhHWI(Z+7xf%+OIT5K3K=h#7aKDX|>RCvD4* zt5~Ri)O05=S$BSRb^rDv))Df{*5^z<9tg!}z4*yiWF$-4T_o7=r6Y2Py83#f{0SCY#-?1ktnDjO5JubfnT;?TeY2*N zIc?+R3k+hlF1V4{9vXqFN#UR3u_n!a3`T~06n~+PqB5;s+0Tt} zi;bC%6mRHI=*~F@X*$wUjlv<|!*(qMEroyP+yPej8^^>qwT-m*^#d7>@e_XCCo&D> zPR$%O7=e1Eft(X+Bgz3@`w)R4blA!GFLyLX%1tvwxkmkx7H&RBzfNEpF1O&mjrx6J zn82&Wt3JfbB-6zmP!TRxYlTac+xT!IHwscwxDaf4fwEfh zUi^(1vP+#hHmnIc)C3iaBYpH<<68Rj^oF{=bLKnke0SUa$@dq?$|CQP%|>wyeTpQ4y`+lBUU*oDQ2i zKdvtZH-u-e?Ye)D;TK4sjrTSlZs8WC;^1+zaoPpg=SXQ;QWH1uVD95+)cD({o<}%i zE{=&eyQO_=@lV{=c~)tmpf=S%in97MMcL?UoVUt=;bNWgmcIkE`X&O}R(DiiVSXnC ziP*7+++Z#26r&O)N&H31VHde%G=XNIMAX-mn{=Cl+^Sl6jIWrCm3bj?BweyD)@2vA zSne0&SmSVvvB60n004>%n|gx}B{&N=Dg;h-o>+qI(W% z_9%|I$7hD_CBvlq)S+s zY{IR#L?P}I&}_9@UC;QNzhBC~=AwRgc!)w1ts5#;nb5DQ>F3-oiY8kygt#%sPrl@5 zNn<3Ah8?VLx)#ZQCb>V#O5QwSOhxdv+Uq!f$o+m|^P#MNAl&||<3WeXPxY^|1^Jsu zD{@NK(2$XJ6x&#{xGEpgeuwlgT*3r&`ehn^-U@^a{_&Ao9675&@ke5Ak8LOGeq83W zkFfiMfkdz%MUy5v8&t6@%Nx@P>0t`C5X7hYFcHh3PJ%zRbh zzjFB9t^{ZA+*G9ABwjF78iMuV?ry31e!&oUbDYMm&PMxIEUthRJS9_hfHB%^XNr?? zTRpaS+D;uNF&rl95!UUHw3~lWYwqjzrU4?eIy&xmYnn9ozIS_=4~}>1jNkO6Z|knJ zsr3gmewOg!5N_=jT~V}3ELLrjM2)ZH*`#2R=6wFv6RuDoBC*nU;=`d=_A~a40%?|U z%%@uAVM;0Tm!`5Atv1XTel#3>>WZ5z9o|kKm=C-)orY9CtVt$!CcqREJzST&Kb%DC z#wT>=EX)lpe`={MqP-S$lfop^%5ZTwlDv;85u$j9h1Qw9>-7K>s{VJXgktgfy(Msl z9;nqr|10L=V4y4ikJNd>*n&kH5jtr3hTPfrn{y^7tArk_%B$!FI*BSCP+KlJWHyAl zy){fJ~pFI$G zDh&Gv8}^Fr*UuV|-RsDxx(wnrGfta&sq7n|2If&{nRLqd@?()T>Qm!p_KI+<#xYK8 z=p#>IIi<$1jj^5mJ%x$ia+59@Gd1;OzfwRMsgYCM&zPt-VpWw@SzA_D4ptPEW;Pz| zH?n~??xE+TyJe!wD$Ge0xTZ2EDZKYE=GAtA?&sLO!459u7yL98nwHGW#U*E#@PIJ} z(NTo?+KpoZH9lssG~qC9w>xq0dzbo#N{_k|^{c#Oj;-&2vw!#lU9UBgZTl-Z<)^nYufNpbRFM&>?-C2?bt%8Q}V^~F_WV%Tty1@1i z)CEgRngYI>+{c}a|7%c8);6vT2<(8e0pQ^OaLc*sXC)OYvt0XWv1tn5?{AhT!`i4I$Y8-7PhmS+NlJ zni%EBXifJy=1pH|xjRRCuDy>BS;7l5%c)BGegOhhHtgwQ1`)2W=3+j|-g1M7ElGOD zgaq8KWxRXc3Dm~??i4pHc+)@RRFI&7>1a8s~a$A@Ku9RnHm zuUg(t9E5zk+kDvtjg!siSx`Y#O80EC`Oxij0R5=HqcW-tCA$tZiPRfuDtUt_3rZZ? zipi!(BJLtTPuYfV-CaORNXlof+x+}%(b~Bx9rxRFG&EC@kzvNR*J)&lO0uogy28RD z3NZ>tv}E6t1ZBy4plEE~e*P*?@EP?;TTnIVlGa?cFLc<-bN#!L>9Zj_cnDe&2Dr{q z&UX2oOzbO8Qcl}C3xp39zm8MKH7z^1w=Mz`+G6g;Mt)EJL?LNRv2D=RKVTr;C|0tn zVt=z%OQdW>iEDP+(vnn~W?q3ilfvDmn-~<+Z&lIg|9MBc#_@#~?A^x*T*cnr5$((r z^&@wq)Oi<2=aa4cBM&)ym{OAt${5MT5aFQW41ZYvZl8#wJln#IlpCtBpi}PKRn?{n z&tEz0c=&fTJv)oxjOH~s8xq7lU-&70%$7Lblj1J%Hr<@B-_=FDr99<+;6m%_hde)3 z6Lv!h$lGF9Tw|3#T|GJbBs|1aD=|W#jx0NFhro8zxk^6b`mNWK`w~DD{kNi0#Z;IdNMYaRaLE+MqRvYUmHLEs8{@US*aj{CkAr_A^0$q>Y%&tW-6qJ2KclJ3Y z@aH;ID3K7s`zTvtrI)8QF;{wP*b?N~#tb^1NZP|JwGH26{gjJ-X>P(-U}$rThEeF6 zcur2{!RfV6hRD9;@U>fcGlgAQG(lTHH8+g0tcew51rudsLe22C$>jU*?`sA8d4*E6 zAVVy#i>1j$rwx!TGrv*x$Uo-U2Y*BvCGHG>xmm>d20>E;@yf3jP0)geT2P(vMm?vV4|Gf=Du7sA?rBCBI%1yV80VhN#7_>XSs@01kY&fNG*Pqc;;_`-8p3JJJPNypXN9kjb@XP)nj~_KTkd>k4gJrllN#=6GU@x+K-xoYphs$D6gC6{zV9Ux|ajC=%Ja zTgATRw0!x`55{kIHor;+g9=MUuW;-*4`?Y>ES1_!T! z2NwXUK=J-=3mg>!@2q=l{&e$ycJjYIh~|oh%q;NqpZ=I!e|JU%0I(l>`ebQoXJKjg zl$iYYK+4_F24;Zv+CY17E$ZJtG{k?}8(8T7t2qFwef%K?)!1RqgkC{_!2iJTj=z82 zko{?HZlG_h!)R=-V`%W2!OFt$-%s#wgvj4roZ~}2jo{ySk$-pb?}FODyMQPE)5Sl_ zYyaK+-z8XoH^-#?)BHaQvi{xv-?`ww+Yi3^>-PVX8UA*jQHx>~3)A(O5&cA#3 zx7Gc3539m|diW0;{NL^W(^~nvH3+ox9uo9lw#&bp|L4x}&*n)I|7iYaACZxO1{Mf7 QXO0YN2iBM@c Date: Sun, 16 Nov 2025 13:15:53 +0800 Subject: [PATCH 05/30] =?UTF-8?q?=E5=B0=8F=E7=B1=B3=E4=BE=BF=E7=AD=BE?= =?UTF-8?q?=E5=BC=80=E6=BA=90=E4=BB=A3=E7=A0=81=E7=9A=84=E6=B3=9B=E8=AF=BB?= =?UTF-8?q?=E6=8A=A5=E5=91=8A-=E5=88=97=E5=87=BA=E5=B0=8F=E7=B1=B3?= =?UTF-8?q?=E4=BE=BF=E7=AD=BE=E7=9A=84=E5=9F=BA=E6=9C=AC=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/6.txt | 2 +- ...告-列出小米便签的基本功能.docx | Bin 152106 -> 152099 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/6.txt b/doc/6.txt index bb3597d..0b2316e 100644 --- a/doc/6.txt +++ b/doc/6.txt @@ -1 +1 @@ -唐博的分支 \ No newline at end of file +唐博的分支 \ No newline at end of file diff --git a/doc/小米便签开源代码的泛读报告-列出小米便签的基本功能.docx b/doc/小米便签开源代码的泛读报告-列出小米便签的基本功能.docx index f6c1b3c5781f18a2e994921b2692b251fb167f73..7fabf55e913586daba9a7dfe941511e976aa340a 100644 GIT binary patch delta 9191 zcmY+KV{j$F^7c>cWMkX5ZES37v&o6E!3j@nI~#1Yv2EMl*v7`zyZ8U$)_dpERQ1!< zGgZH?>St=o3K0ql5o*q05!Wm?ewAPW04$S9_pq{%ebPxHa3tVFJcuT0_R>iFd)Mld z#ZE8Za-HhGABWYv61`ovHcTYp!L0Z5CK~U)Hp{rzaD9|%FQ3;1M~t=ItT|Vq@0+Gn z6~?FCr9-cuUeBVRdzoiJAK{Kng`t?f@lt#uAmP*Y1<{{!QgCpvyIpGB`!Qf*#3%Cv zkOkj$BP#|$I5HRw&gZn}UT#9PN0lq&SAK1{O3d)iqlM$sPu@+(#M_M;nMu-H(-`UnLRqfkrid%3Ie$>rmmi1{@sgn;%8~Y&$!z{MZqZ*n7$j=6hv}}13l{wO zcU+Ux_mYW<3kFDvsd8fH*qsrHaj)bwQTo&R6Ld#1{YAmwD51z5&x>o1b>f{CGU1V7 z0s{t=+4NUXvl(9UOLbKK3K+Tfs#F_GmoqSov6##3Ho7&MC?;STn2nq;00Ao`OHol8g$$%x)i2q{`nmUjVk@d zJG%v@^XWyA>14n3a6)!w2}rR}`#W6vMFNv<(d+|G11_)kq}!|XSAJIHc7D3TT#9ax zRI|W2F%nH|cdL3zu&pz7=;vE}3x4o9vhl41|MwR-)!onMF$9rtSexj=A-RZjS`6g@ zGg!xUT>nnv)lP%;?l_SGuRR1Sq3ud#Lbp)x9(RTel$mb3i?+lHE`p5tfr|Q*XfiiM zyK>5G``7mpGhniJPsNB>2#n?pD9F_~X6J0&l(V4QH!cxle~{K{TXB(@gy@tI?pJ-= z(Z;5?d?lO7x^GeS<{atgIyXvnrwNZsyV3g9>I9OLM^PvQmpS3FsB}JE^V*_G!6zS> zmbOiIETT(m7R)p`lc*|hQ+YZup`=Cp^$961WMob3O24Mh>R`j;!$m)%Um*ara2BKs zv4vLprI=h|2HAn|l1(!s#iSPy$f;fO)*=u(Ga#56?qky^u;7j+QT3rUH5Pt=g|8J= z=oXLov9NA-&)x}LgeYZ=X#}4F57GzEX#2r&s>EFTB0>IjnkP}yPS%I8!jm!0wqx!= z;-Y4h96wiYKLN^V0Z=ifyw=v{ z^Po%nEfQ5Z^_b+a8R2vUHB<)-^Z=urs*=cK;r(R&HiTe_P05ZCB1Z%foe?YwBv5uM z323e32@=|rpe?&DyUbkZOJJ;(vuG*WQ3R9uMEAXrSDf9#?M9F$Scm;GOewx(R4HM9 zxpwuPA$*9DF)tZ}UfOd488$pi+`~CZBIbW}29f#fsq`#KM+pLnL-)Ya5!ku(r|k$} zIidkibL$?%{{Ax7y!ejgv2)4F^{udI>4?B=4ox260^s1WLIoQC3dne0F95gYqpOA& z8U}*FN|<|5R`KU??xo|Ot{BgP0*GIKNh)Ryv& zKV5N|jr3OR<&q5kq&uH{vRd8RpEMHEu*@WLDYfhB8}tq#Kloj_tm%AiDR@7GJ+owH}>N@0)WL-&rVRKCtMIFPyNH!5}0Wu!ImcUyW6j%xgEdv=qA z^Qsiqum!7e;k}?tkjCOj4QdGAO|x}7{6?Fa6z8BCUTYFstLd6LCl~f*PO!kb9TiP% zj(j%qWjFG=DR(Q59=}kx2xuhZn#{`!@X5;j9K0UvVE!d$S0ks$7ueDwi5Uy!g)T{tC{6UTPTr= zOz;kR`I*B;dS76;@>TlkWWIL3YT;zuV5od;`y&6NBlmaWszT%l`Av_d%j!Jt%UA_{ zMiM4jd%=b;u%iQJ7FCfoXd|$x!AO6#k7P5XPVh;ZT@>zceh8%Roy@6z`LUkKa`Ayo zY6_-*H$p5f6l((%(W>p4HUuBS992*ZEsK-YwJD5XoxM zSRUCL`0}53%mDF&wOYzT-)$7{O|D~0s?ty25z=fz3noJPXC>NTVsp5pPXr?543|jk zB#aixq6=$n%!HMfq`!5l{?-TTnNy?fm4daHxe*K9kCQQ3$x4ic@H#u8irmG`YPq^L zTVYS1D_-9OTjw~LjA4`FDuUD8e5>CDp9|^7+)S#iPc%=AQoQHjwGD|2o10CRPA(4muD6=mKYk@-0>wUJHiZXwq~Go`3Os-PO?CygrHv7xf4-{WR^s^ zu0Agi4`dTczXY9=`fT?F_I5B6+l@P?PrNNa`6Q(n9sW6 zckf-{hr5o!@)FWzWgcmNebzYhBA8jLrXi^aWL$T!kgD-@jJ+AIC|=WsvHKSQ$t~%a z)e*H}@=Req!&K$!2>JC}f`50h=Yo3us)G3V1TI>t_s?0<^-f`&qoszBtW+7Z)72;F z^f%Rs=?AXi&yDDI7U-DC(Nk=?K=MJKJS#psA)Pk?XUf^HESZbKHEHCqrC{!)`QDqv zp!`{VD(ySOIP*KH(x=gt@|hiMeyo^(DAzja zfRiNGPB^UDz|C3wMnXR7ULBA*qC9nQ+s~TT*5!s&){6GlqdGXgp%?|KEJQB`ooBIW z{BV2EcWMDm@Q=aplK2ac^EGPt<+L8NcGlCZG6V|MH)NV zQ^$zB#YzX6=#LPz^0U>VZqhVb$v-{NK_bY)1f1{feq?oJEov8sBP3~HV1f6Fa6ysk zM0|&3Vfi}-O>ebVH}3j=;csi=;^8LY#9Sp&AzTv79m%%&hM8vf6nmP`MGm_&mcU%e z07u3eOV%;>aMFFn{O@pc1_*_s@{ArP-6k}Qs8YXmRmlP=+OgC8eUKODd8A$1VO~0L zzh3})a%yaAz46EJmvtqQ>cBy-PDPZkT#91 zDk25`8w2PA(ausIrLM|^Q97sSE|}-lo0Fy8d6FxLsEcq~OeBuy3@i+W`Q&b*Rdr-x zwY5D~<*BJxsz_Dm_&xbyITW^Idm`%8_7z(&5_2^O|mFH%X9 z$9~7mb01!YJK&W)$9qyI@fYAn)anaCR+YXgE%IfqMd{`ut6W3L%+cS|X6A{U8n)u% zhE|iPXNks=fM>zO3~MM-kKPG}k#6XExDgJ$%mvag|Ep^uR zUdF#xmJ*x2HWV+&p|Bqb&NVJ}0zNtbMLJ*Oa?U~|*9V(--kMsF22Ep#f+4jLXXqL& zH?JuA>s>nkM1PZ3J{(w0Qo!zu*@Xf^3i9IG=qeHo1|{X++` zrj=G7F_Q;VIi~!L3$n^&zUtr=V)Bmb9c%Ms(DVxh__F_EIy6a3bys-I$*);EfC3J_ zw>Bde%?<(8u^)Br9@}63YPf1*Mec3%UVnz8j$Gii(jHHN0TLZ9{IDzZ zHT5Wer+bHFWMDoh-m+?&Vs}SS)5H$VqLiS8XQ7ytPmd8kdWJomIC3k6F0PGz=H}n@ z8qU<1I!6k)%YV2T2w-heGamW(G#PEFxeJ4@wfk{dmgNbd_ls$xLU?ho;HhisDCq1e zATRrk<#me-(VQ z?$1suzK-bBF0{JAer~Rlwru9V4rhe)s=70{O9}P-uTg$hm|cqw2P4`^#ycH@)wgGq!uSN?CjO!s_BiHIMEJ+mE3SbDzkvVY?2226?wg4G-q<78SR5;zf&r3K6>Mcmpsg@#)2=ue9{T(3(9TQ>h8{`10YD%}_9N4{KVNJZD%m;K@1wf%_V zH+Qu&E(3@6Vwd~j&kKB(Sr+V=ir<;-K37J$y0DSpcGi(iR0@&{!!9XLi`e@bI>mk- zGm!v<+g96HM4uvV*;n0U)Ok9q{cCO5j^*Z#%%D`MQAv8BgW+#JVDq-cMl9!Kt36|p zY$cwrS*LD`WbAS&k44Yh^h_kbfFM2+#dSx*pv;fo&Q@B4(|Pl}S4$!4F1SYWEeRYR z%~gNFz#n?wP8-!g8tbA`TYb-r2GR^BTuXB^Z?&*-T(kl(;-i8aGS)$f9w1ht zQZaakf8YROw7iR(_=%w=O2pdwRAB{+?=2RBuNh!yhVCmD3j{rX2nL7yISqr{2qBpS zZu4ALjR-NN;fk*u;EbAw%qe#=u*L_)BwnffQRh{x_G&vkzbUPOEXAG0Zdd3LhJ_TP z`}l$jn1gsoRzbQUVWhpc^!Dy(iXwA4)Q!c*Jysa-Ww_d3k>WQTIK*~=ob{)V!l zK#?Wz2vuhSIJ+~tW`5ffU2qk5W^*_&1NSax2}~FFuYj?#H{0q!qgtVre%U#&W1!*c z&45a-lpck&`;Lx>%CP#Ef z*Ckmjh$^9TL}9Bhdw(Xt=$M0z(?t$>s^%=I(P%k91I^Y}@k90wJ_}v7-13by^pDbp z_taII1B>RAp8%vh&4i;YmV}1G5wsGVKmQ)o8l(`?F`t;iE9A!M#(_UW{$aV;&8A+m7%nO~b_EZPJ zn4)5c-^jVMTHZbZY3PiQSoQ6MKOj;0l;g)%AOQeNWB>pIkmj!fiIt>BjskYNBpbbv z#}wS7QKI$8DDnja#t%yQ!^WdIn#{B&WF{nMzDSsEf4b`}r#M_rF}cM`F)%#gfOuJ) z;D;&l-)dmG!NOBZJ!%Bk@V^6-m|MQU{B<|!UeD>%g`W(e8DmGT>eC2qCYu#NBG=?2 zM=m9lsl`$lc!5QNl_t_q+y={!z`s--;dCk@DkgKlUZRUqz%USrpcP1CWJfPULWN^e zaq~ALJ91e-@H%b4J!6VlhIRdsos=y|o$*?Pf=Ln^DkrgKk8%C}W89jmTSZ@qa`LtC zo=g2wp!Nd>7k|f+11FK({$mWvLayszWx}7c@PtvRvb_m-XN(&At!ZdU=y)K3DL#r9E*dEWftYCy4uy;2=B~I7oE*8Qb&$Bn} z4B)=%K}@~pbdN7yE=@o!$1Sgcu@?}MO9M-6?%Aszkm+Ta zVPQCfgL2g;V3kfRl2#&GI8vV~BP#1{^YvlWPdLU@3t@{{;uQR2s)LG-GbL;1>ZB(` zs=D-gq_FxM#|*u4kI1BSlhQ2pk@@=OuQJTyCd`9a<_Ob2&xo$dd0iHvC32xua}to8 z7Pr=i*hriO$P$8&7O=SDHLWI0I=OhW%#(}T zL~rfF9=6i947(M$o|x<@%MaC@DktWGT_|bfPCE19dp4LWaC)`Bkxt5#Q6B{E>N&pH z0BYE!JdHc*jW^-?J29e6Yp+R<{(cfgm3zO?v1E(dJf?kNgv5r1VnSI;5+WxBZ@3hY zVGUn;SZ?)Ri%2WwN6Z%{@vLQUx~*=&<%TDe`a|I*HJe;<8q^av@@68D_k4Pw!cEPt zwPPw(QsN{!HPvnq4mYt$3Q?Tb)Pg^~vMTMqGK^59yM*#S;D3E}czs{9M>oe|uc~R_ z3LLE&nHf?}9+Lo2DX@jygkn&ETlQ<)#IqnthM~<=ozNksowMuG5MpbRS2v+7Wa%yl z!j$`g3H~8Cgxiq0(1;-_#Qnr5dV$=!_u`w-@tb)^4{EowbfkFIUb%x*@egIP`pT3> zD_Np3`}gv_Tyq`&A^pAz^TNa_$E=9<8w;K0OEn(=anL(wl8Y}WvICruTvBf-;1?7S z+^KRUSFR74En9#9kt@`9B4k77^X(`wq|tBbH0I3gcXg(Az`U7dV=H$LZHmGoa4>#Z z>qc0Xe^4<+4GOYYAU10>*uvf|SHs$i!|59ll4*mzZolxEjtVbwq$RS0`-=5uhKnF>WEa)HOW)(KDVn*(SsQBsH zD8&NU{p3cb8~+$D;KcQ(BMrGaj3F&zzd=fk)=ZA>=eB~5#$iYoTcJ^sj)ubt3~gy4 z)5c{wD5VFk{au`()6Q;K54zW( z*(U6PFVs`J?1gjM68PBP?a?u|UC$O%k|{ftyzmvXuK`c8)ICv*(9Ti36W*2J7Ram4 zT8fiA?KS)-h;vO{)C-R`3`F(@<>0#668LRaLT4^ubp{p&e(h3Qwdms|Ox%5mtN+5f z^5-WLNFO_$zW$quDWZrI%@1{jVeO6-l%Dkjp|{g7XfSSG23y{}&dr7v-ce~S#V88B z8cfuNs^Zx}!Q6ylv|y>%&S}%jm+(-;3E$}oRAJJtSTa8HaP_w*f!LPA z%nMIBOkGj0Oinmxy?cg8)9tqzaKkf1+Jt6mckI-Ln#mePhzr#tzBNAYom=z{M1d09 z*!-)c@>^Rj%42YQeygPCsrFZGgX5nSFc?ji3-m^XN#%k=FkpQRCph(XsFfA=%@goW z;yr2oK%7j~Hv?84O;)lyT-CW8K30J>`3PymOM=t9OSe}7-Jn0JRJd=LI`Y)e)w=Ex z=p%lJ)qFbKSvx3YC2i7YQr8$fATg(1wvtiKfTk;DQTRk77x5fEjc^)j1@Yr#Uq?{> z8!t{|VR2c130RxDt`PXgiG^T|df_d*-pNnbSN4_jqQ|C~AA>H0a%pYa45_zteh%AM z4B|z-R#U5JO21tQQ$ALqqeeUd_wq@~Mx2;>#WQ_d7G7j3Jn&E>u|iCh4$=|$cHXRJ zM@tCL8x#&k4>Q@0VL=t%`unbU{uFD^KCUd1b4~P>7(AJfcj4qkO)df&9Bj7DWDKWB z-G!Erxwb3LjnTAie^KU0Su3B(aE+OT%E`MkRtJr0Z1|(-&Kd-Sx4JX3t&R_4thy#9 z#k@pfb74c}o&QoOv+cX0rtxTPGjD#$&?Sk`8MkfNOR3|vF;uoQ2&-q;H1$q+)%NY@ zJZ?8-0FR85cJY*O)+=W(#qd$#?-TH#(%8t70~M+F5mfXZ(3QpgXKCivgr8EN(oeEQ zB@bFRQa~Z-Qs_h3TlE>O_1M%0C;?vNRl2a)N6q#!JcLZ9P=Q!o0ko3PTR-{MC?47$ zLXclk$5fx-;_FV{qZtRI#*H#0D?YcB+GPK9fH~96I5iOOb{U0EI?H%TqTfIc!i&Hl zPyyYIrG0oea;LbFd|Uz<(V(~>MqH8Fa%6N+Z8K03))*^zUV8xT&G}3ui0uxyoQLYJ z0JIVt9k{~fAS*NPPIc4yT(`)3wL-e&@rev^)UkvoHEt$kAJYp&0G=^Nr}nS-tb`7L zB^|Mw|6-!`pH$onUDIX78Fa>46_jrMBp02|c0P}@R}m0DOy~yQn|2_-X>EwdC7f{l z^sF4Q*^k>5&%Sg^#l?L0mTV?ypZi^>p&P}|uoRd(74soI_lLmNS(I{O#}@e;wun@s z%|(y#G-RDva@F>%Ko3y^nKri>LE(@2n_eC1cGiRH<=NnJvAh9-9XyXllsM zcs|l!PKvHP6>CzpVeAlUrZ(kPUcTM3EHW?ru|(|Rcw)8{S@IB%fq_M0vJ_DTm!To8 z-sdO4D7)wKI@O6&B4sn#SxC|n^3;utQZSF_g&-&_3omFlFWjIMCp$X3uWZv&5JJ!A zRp}~}BTEKa2&L#SsjGAw67SmB+l0nZ8pT*2+@y^j%db21{ag|{d=?sRb_kVDtllGO)GroJ1SJZpd5=hO@j`T@#-ZRXPlQDPg zP9n=^Ev9o4>(7&_5)ajTb{xkX1xd5s9r`))pcHok(c|)(qk}+fPtATye?>J|KA@Wa z&F{y=&>U^7OwI3dkem=;w{@O3DR~Bn(?|t5tbk>F@713)vESR3yy2;EDq2h~1Cko( z(T!>{uf1=--<*RQMmZf(R>LJ|!tWsW11w;0U2<}ZPnNqSa%weQeqv)_G{6MOoILAI zXbvEvptY&yRs#0;6S>ee5cGA+DWXvf#FUk$`3o_vLZ(XHDs#SprB@QCARdFZA&*Sy zi&J+IkIPfTALOR=3-wPbV4XtAgNO>b)9>I#yqJ&IvxrJkOr{K%D+803f|lEOWg3R+ zn7j{io7&zH{4&->m%2}p^u7-QezRL8VDkiV4Gqs}S>8XOPVfxd@7WXutV$HO$2mGa z-s_!()iYdB+l@gt7Tr( zyx6KI=fdiZ$a1&p*jtI%v02No3nI6%!u8~*zd^2aRamo3=+7lM8^NpGK?$d>XqKJ6em zyf(yY)^z`mV$?f^|67S|}du2^MU zPZaI^3Vw!wG5J!wn3&a{xXG!S8J~~R8!Rck6bKBwVt&qifE~usR>w0`hwi|kp{Q{L zq*mSbC6W;`V)#U{cDeBS5|~hm_6BjAxY_6!%iXA^cK#Bj*F}$v)W#Ez2CUD55sJF~ zE$xGBz=yoERxKnXbgWiMfnC!x4|vQXT|^%c0Kn%b6hQSW1SB&63jhm%2LJ$RCd!aL z|KCrSv;$>G73c;+03d0ckSI-41@a5w|C-!?N&j86Xg zm>Q%w#70`6+P_-==~|zES2_4s?|+jI()!dOsR;iMu784=e}XUnbC~or2z5wGSOw*O H5y1Zgv`}Zp delta 9201 zcmY+KRZtwj60Tu!*Tp5c2X_+OVQ~o%+}#}(4ekj`fFO$n4IA8LaVKbi;1b;3Zq9kQ z=iYvrs`+PXYO1^D`=`377^9*XqxKLLb4@x;t&kW2;r&>~HL4;2Ad~SPjRs7Zh_IZV zrQ4qv*t&3aVA|0+S83n}zFeRzG+z@GB*ByGg*@#4D1Uh`c$9F5w2`Lz{CYQi`DJm9 zRKp)0>c&H;&wah7yY&q2c*=i0AHS9c_X(3|!{gp7(Nod3(_DW%pjBstMj|13tbM1r z80f-935F?2@a5hukz(M;eFDcIz4uuUWZb1SXU*=_m^SPy8`wGv`Y9YdPI)RkeD7*l zw3`y}1Ku0^MtGg_dVugCNtVKUS?&(eK}td;RuqM9h)$N4slQQOg-ohJOeR(wNM~5d z@cC{=%dt1tT})+6OC@y)?3kpvn+*QCL3%+5g>v73{3w!%L-O zfbO-l_Ue-kS0QS32uUc2Leq^g;#{u8c}!(FZPQf;wysYZTQ0qroaP=ZfM4wxGv!d; z11SR1FC;sKITe~Sf!D5CT|B-wXuG)n!ihny)?GVl(@dRx@{bp=DHJA%bHw1#`~GTM z!c5276GQu6Z)R5Dt&7&ZE;^4QI{N!LdP80NSmq?ewT-_D-T;yqy=dHhpd5?)Vr{)V z^`hZd3cw4jQHjU7gyt_EyQwV4iN>AcGK0Z>5u)yV&RKHc7I;otmKE1n7a16Df+J6F z-V^(yViI4yp+jM-64~vO;{%VFXJhz-3nw4RyJ8X%%7#;1y&E5Ei3aIWs2H-=+H$mYgWLY@JexIB4@zY+LH33z#e(t zxnd3&bDXQsqBw~fRfty!GseQE3ij(god-YqZ}RrtXwQ)=yn?>hOFhD1e4JS_<)k!1 zUJb_FSUC1-GdDs|N4r;3y&r9e!u0^rgnzejj?e)%c<_)f3AMM@_e)jOPj14*KKA_L zGccA$^yd*ib za4Tu&GuhVRmto{lQ-7&u)>0z*(&9v68q{UI?bq78(Xdate&S7yWZx$=4UU)7a&4;Y z0=;^GK_G9~XQGhGidVzzLZ-rO@Ae9Q{w7@?&JAt}5_&hJ9;Y7m{5ik1dkzO6ZY9d5 z)(<>OlwiqXncPq4()`UX?Ql&SeJ~0V`h;QO!`1xxra_C1Bhy=2m=mg0p(?cdl35(tL`oAQI%2jna3}D%NWNs6}+O zkk#^A7?uDNM+~0^MI9YX;oxx1yj(cLvG_$(P2+Q)6q$06CiSOTQTh&exS_=PySK60 z$wZ5^NOXd$x5C$fYja9Nlr^WusX67R%giky=S9Ow9Rq^wfXw7J?nz#vqm_W zP``|0dC3`fyUEE0hUv5uLxj)O-GNP@k_DYqr}&Zg+>*lvwC(=YnK@2@Mp?3H9m(p1 zm6OV$tz!IbHuQIdeD~;b?a=w+%%5uITRtx^qg#_D9TzrZOGeBz5#456?WA6pS!foA6Msb! zmp9a?^1f4ie%LGIHb#l%%g&me0R?XTyM7b%Hz20ov&jLL_rkZTM<15xSMiCFzgJy( zSENVzI%;>O+=a#)tia38-V)}UiqNM7!Wk;~X`)SZ zkKtQg;Q1f(sh&YZtDUe#ttPI~;bJJFnI$JG+Jx|#1CLQPNw64y!&w6dBJC#mbC~*c z#f+wt-p>NS_w(e>8L>EQD2}G)tuYymIGkXT6d8tnV?n|LS-e`$THNN!_Jz)roQ861 z-bz{aFxrh*5k>W``4?sxc~mZ%UvseFs#cv9%sqFgg;CLof4oN!Sze`%pPjJSq#jzR zrPEKH<33dUQ(dGZM%e?eg+0TmdV3yk^9FTEI@ru|uG`P{&22V6cyL|0Y|Cn1c@vm5 z8~d4g7f%rjx>-*BV3*}aQ-(J&Zo$JixZEhQT-!Nu#48cP1%o%HJ~0GT>Ml-`^6jv6 z8Tn~9ue_BfF~pLYp`gef8f>{|pfVeKJj3WKwVm}Q5a*iPH~af42Gz<@8r!oa1&SC5 zh5`9$wA{0vTORNHquzfI_O@rqsRX|_cbqo-IOA3Muu=@fq33m7n*O`Hy%MjOj%*#1 zhahgIP#tTs*DTtF{ys#^cj=2*h{KG(4`utuseIA~Z*5}`k*FNau(N5$AWRanCFxdox&*eH9VSZDhDiA(T+9!@;{m5E3lCPOL?edXz^aj*_|c{h;qC z*rk#?<{K#mS7a@w!Cb9bQuzzVD#093r$cf>yW0J8i@S)?7*%8ui@H`Th@KGAfJUil zAc#?EUt?sLlHoIL$UXa=#0Z>eI1Kkc&{O>eD5n+s(uaj!L5io~<`y}N%lh{7;DXqK z)VqA2d@u_n=u`iw`9<0n_sW{n1~5y0ywNS({W9jUC`bL5>S0rfeDw#*-`PXJkYBEIDw1 zSAmNu#CQTZC_>V1kv0MO>D_oyX5MsWf{|}ceb?;FzxVOv7$(wIF}~M;jk!EOz|y@P zqis=ICi-%!zv4q@@2oaoBSnDC28@3Px43NCT!^ELGxhvkbp($1!^x{u{WTXi6GBCt zG=Jep{WhMydq2&DI;U~?zPuI3NA)%**Nfcc86}(Gn7PL!&z{i5LN;go3#Ok+f7?Tj z#FA;|cvwr@m$9$EdNMAyY|frwY0GGnIy?R2Drv=OOS9=eI3KW?6bem5u9_60$W3>t z68B~lQI_aei0HxCHkxar(ge()lTUxFx4F&(h*JCmEJ;f7KPd2$-T{Nde4PU>@;dY0 z0!?KJP`{$R38EZn5d2VzjK=-TQ??uB*pew_TbeRXBXy@yU*6@ziPnet-OOus*0PjQ zW!4Ecp7TzLeEy3%b4#3db;rr{vttWn!emT9%V0^zhY&V!S#@zNhP~FknEfq#; zJl$`BL7$m;^~+LH|9EXGk==?I=thdmJ;TP%as3nieN$uveiy#Dy(T1{Jj%$QZ9%R@ z2!0?xP>!w!?<*Xil8OPW>06AOem=&R9QrCZid)=7s02>eKj{qZQq!l3Re=>qAb4eB&Q`2=^skrk@lt?{88%IQ?l>FrRqN-P zpqsNN70O{}#>(Vs=ez=9Ileo+vnSx<5RLFqYbdyyI3SykXld-Uy7_28aE8sYs&sF4l>Wxk9+_UEV9@nu z8VZ)lZ>wBu&nFJH_}4#@*Cqvdw&wP57hL>u)RsM`6*WZ4~2Ad*?zdf zv3Gyc1vI3~EH`_SyEuaKSAV591^!Vxrb7bWQXJ_VZ*;!2qnGNBq~sm;Bdzo|Z9FyB zBlVkqp^5@zCQPw5*sh+@!|ObY780%GLEzoK2L{FCe%j@Ndn~_cYzmRrHgi-Q+#q@j zZ4%&~!#hUvyrmaOJRy>m%!JJ@de@8$=* zL4kv@#-th}mn9B`g?(6MNoSSA7uP0bBQl%bXsn4mTslUbm2FuW|mX`F4KT zkz&XWNi$^n_9TKunL{W$gESYqSnCyI7f>d5bD3*C)+n@ckn>w;MNEs}n`^F~Nusr% zV!*ZR{qT>HUV#>EokyFmQQ%ETd`5|k_Grj=pt|Mn4N6hr?gyyQb+-}--=exx=KQIv zixap?7twHwv>{%T)FC0juF{s0R_Pa*q|`-jEc_0KxiJ<33kI9DMNR-kKtw!HIGg)7 z==0JE8X;HwZ^08u-e0FG(E*zNajwLyV`1e%)*iS1Sd}@*Kib_3z&5|k4+t)l%i^cf zkEmBc5}PfR0)2lzriREW1atdnss3;$^_}jZ(Z+r!=wFZbVQY@KPY%86W_@4Dc1mx1 z*gIfu6Gqm)UHDDFZKt%i)GK5D97o;x2#Z2+u6^f&Jk(k`^UyfY!hY$vbedd?r9M~| z8p1wc=cf!F*5So;0M|#C?bfo4?pbKkG|9DCGg_40ZeH)MzaZ1kJ7JaI?2~oO4nvZj zT4A>Rq<5|8z-_qr$CNfVuiLwRtPqwbNJ$M$MO+0VYt zQyp7riK!LkrVSc@IJ2C*aK$wuWWp;cXz@teEcg?V;UhjFu-90fMblt;b>Ed$LY z@gyVmz-%tIq-yVfKTA*wTrLnXl(^cbrNMjXdIL5QnpH0)_rIAO+qC{l?XivD@Z-URqq4&7(5p z{qm8fY}28AD&aQvr;g@<#>h{CNd<``3Z_Ar9yluTs9T6SN5kyzDF0p6#s{8;XxFoV zTYOt2KW6D0YBrfhBl@bKu$m$k5(>JA2r`|z<|DUpPBImOfDLCmnZ;&50*}en zxJ8SKzs?eyl*m{lx}Um-F`1Nb3I?ZgBh#wnB$o^P2#T_Y_Fd6ucn}C3;Fql!JkL4% zSm2KmPzQpUBxvc-ec!+vM>@h$BEGt%spgT|832)oH8fC8=83QBb*rd$WSuqlCSNgz_HE z5WOT`V$VCSSWq!ks-ZcwJinAlr8~FVPTE>tyX5cCtN*kgVH#@{5mTDZIe?)EgV@nh zp_eI!K2DA?3W)=jGS%LYOX{(!HFs!W;UY)#QB+ujDvohVL%G*)JSmasOrwq{IPHxi z;*8J+SsvpfL#LY+;%rh}j@BK($E*Fm_2T~+(Mj1tuG}(<79RfU28sT-e{(XXy{A+Rjc^P1+XBS6bJCCC8J|5aY&qjl zl@O$8vWxtVz|vZGy}ceiW=o8oGO>qJ!PnU(Z2YkZtLyM(qKSG_TP=uH!G&^FZnfr` zeZ2k1c~OZ4r-821qs85FY*uIDn~KF!(eOQsdL?KEf$=(E6Ioe(f(uTG^Pv~V9yA7^mhcKAAtq^jH%}pibf!YkH1ZLlD2P^D;y4nDHXcdgSitf&ph z@D-1n1%zP_H%a7>yMGc00hh4Nk;1(rDI!_HIqPX!g2+NC3Pk#;ak0gh-%De;hM4d; zo~x#f7vS1vf=Lm@@G%N6N~H-gz1H~=IvB@JP`H;u^IIq?ld?J$iUG!W_Ca^)uQ6+F z*<@Oj^`T#Zf7mWjOP9J-mOCXrk%;s?9~>DP1-|f3d!gl)$_vEPf!{v4)ZIjVrCg!N zBhCi7cZBzsq29fd3LEZ*$d4NuV8<>WHByQ3R6BwK*fV99y91G&)`RTC!dPje&-NN< z8(|l?s`6qg0~-hY5&8)NDyfd?rHlheSkmey-myCY8Tu?}-BeD6%4 zFRApCMikFf$K_nV!7Pv00ug#l!Ap6!I)cg_` z>p2O`nlB%+HC_9V*+PD>0^I$uD&=eE78UE#9FM?mzl0 zLr+^q(ZJ8NgPR9=@8ebXQkI?(Gw5iD$?8H0$A1G55X`X=5C{+u5d7Rct+{PntusJ0 zB;dcR(&>}gi{yLjpc6jzM+9Vxgg6A8H?*sr3CXV8wv0Qao%m$OuQ1M|_~kYtja($X zY-O0|Gv%bu_cwf&mR+9U*QI2Vnj#z$0#I=Q$E{jJP}9rH@eP?a0fxhOUj#aDf3@L} zq$Fk8D1kV(!G}-$(Be#SFIh%K&nBxVD7Z+M08?UZG^jj1$`R-Cow-N%5|_vJY!V4u zFft4UgdYdvyPD;BT1{m$g3418V8Q!j+_R z1ZWi~nv@ePiswBxkCEQ$u&?ic*pqRd^n&_efs?-o!gQP$DOIyXk!EuA$j15}!3Zf* zdPH~szRR;1-ZEq-7RA#WxR%Np9w;`fw$hM1{456w>T7U=S#eAUfZJyu5O5{RkCMyRc;{a9mS_@O?882;aNj1gMDOJj zh5UfK8p&1v-RxcS($8}j=^5{f1j~34m~>g4mm^4H@i5eH4MHtBRZ!{GeT{Jsv-E*w zi@;F}b@S(B!LuTM(lFM;X!L(|I}RA@z_lnkv2x?u1nEOE&)xUQl7W z7vcNUXx%$5#FRH7)I(A%Ylx3gkeMh1TF#?V- z*>kXxqrL(?Q_gvgfC5PYE)f9&FjRWFOO<~!r~3|@z`}Pp^ds6 ze-wWQ+symc&{xvrBDEsdJ0T7QwZdH8ny5 zc1)_YVqn9)BOgcnfk2yS16q z&vgeq^U|^8kZ`uU?yqCYY}Cf*`a%d^iWg^fvJ%9z`^UkjD1(1I(x^F2H}iy8Q8Zwm z-K9}{a0%y~sq(-C)Hk7MK?{lky5=WAwmwJqXFkY1@ar!-ra{(SQBK1qI9B4PW?5HO@P+Fba<3Oj|&B|0ma4t%?jx_^@vxK(a$9rVQa3`TEQaFKK(ZnH*!+2y?PI|(lM^J-JpNjYqaV- zc#Kezq9xg-V^OmsY|2bVIcT%}?-4T-30u3<_n6LwV<&SQQ`t0=GYu1_FZk`2zkv#G z9_iXQP3CyoN3#NuGXXQ+C*e+qq|{unBF=ul$R z2HCGt;&1N3I;ltTSQmX?Wdzu?FlEY)g5dl+UA3Bw?+mCF8rajAgo#))qao@CL+ zI$#~1fFn!xMsFmt+8Z(rVywscoD>pLg)FTzrpYzmSj67SS8 z9{X9BVkc3it>|TG-v%{Rj>R+eI6ofPC56V8h=iwVNi1{NznfdC>C8~uxncLd`D1<+ zX2;qAAvS&06?Q?=zXH9ntoehPcyj@Zn$O#|F6y*INg9%3eQZlV_{0+&JuGCfa0HU% z8f7>KI|fAFv}@leB#p*VqpUk)0~bxV3p>^>un#$ZAO{4%rcixs=gVhW31S!{P2dAP za>s1QN##)z8*HQRd)d%=mgEB4&?LPO_&YA`zU%uv68_+cVC{{)auVYAYlIfJGih4& z362)1JpUXYvW-M>mMU=l)0;sTajKTX8&C07~TBq zDf6Eqr&aQ?j<0Mef#<-yE9p5(JcUq+raZ@b>2@vRfI6W*vrnr9HN|C0_{p0E)NzV4 ztj_WSJ&VTmbV%Hoy$&3kXfMq^`O;($33`--4_fWciV8i>6isw#r{j=nnlQVU+RhC- zFnaTPL!N*U?v}%$vZAV#vDG^xT)RsfNhW)pC4X5sPlfDzfB4KUg_fqYkNt zk=*k4QgsgSNNiX!me1oJU30#{lH1431Aj#tlg65vFVx8v?2xxyKAWe2>R~?LZH22& zY8pOa%xF4Hf0HWVG6MC-B-WByOnG3kK<30e^sxsz7|<0eC-Hjw$}uKgp#|t!o8ZW7 z7;4>Wlbj?tu{c{L;%%!&fZNOPfMf~%bOX{F^k+SjeaAI-tFG`nvmCa&k#*8a@V%j1 zBn1{WiQ!mqfi5jc{h>SqR_>9K+q!k60*Tm%#i36iA!qBf40)qW*%<;J^;KCxZ&j`} zca?iwI|H0h=AY6$?{>0F>PL7Ol?HSI#;>Z_ahyx5nvy>@2nlZW#?=hedj^aYfE#Av zmalz_67hDOf5}CeQoDyc4TWX5KZ*yvRbi~pB-~Z+kA}bSWYPAP&p16-zNxD7gHg!M zOb_+S@|UsCguLPE+#JVN&YjERr#6}a7l1>r0l$}Tfp(}U zzXcxVgpr2j)+*&RSppP2KGeqNk?2XHE9iUZ9O=)octjP;33?7^Oy$JoUwXEW52$1F zgX&w3rQu5^ENiD`tG9cKCHWI0^}_C~p5qQlIY-_T13f%kpMCrcy~NQbzG++SooGV< zch`l_eP-p}PK$9D?-;j6rt8mnR|2`#^RSpI7$n#{VMIQ2}n*BToh`q=ydxM7efuDGO<;R0Z%Lf~$!h5DKda z9HT|f(ka%Rf9Le|!nl^-Jlr~?N4;^~t{2~;o&;f&o_-r%<&ir+V&>kH&nx@_a#(i0 z7(8(F&9vjisEqO;5xz&X3hhZrS*H_8p>s$iS6*x$UjFHipY%u9p_MwmuMVPzd*SLS2-PsfdkSx{Gr(efG^NXMcf=8n4e$dN6r;Ck+ii}L z%6L)L!d;c%%qT0iI}~BDbplH@!nsQ6jOqQu$nk?fr$T6ChG4#rV5`!&cr5CHQ3w8B7EK>!WJ zYRFp+05|1-t?fVPxBUnGg#V!bfAI$5uK{2}{*Nnw6lwrS5ZNKk8i4nRe2`lWfDGad zL`)OFO8I~J>7Qfxk7@W{U_wGP|H(-q?V12d#0kigCO`sF1|q5jkVf2s1Ze@7DF0K0 w!H5V5JO2*w|1Um-v}pktDgT=*{{&P21o;2k`rjz;U!MYi0aXk1ZwBH20AJ0V%K!iX -- 2.34.1 From a21383278fedf1494d6e4476a06ce82013c58894 Mon Sep 17 00:00:00 2001 From: tb202302116011 <1271741232@qq.com> Date: Sun, 16 Nov 2025 13:16:54 +0800 Subject: [PATCH 06/30] =?UTF-8?q?=E5=B0=8F=E7=B1=B3=E4=BE=BF=E7=AD=BE?= =?UTF-8?q?=E5=BC=80=E6=BA=90=E4=BB=A3=E7=A0=81=E7=9A=84=E6=B3=9B=E8=AF=BB?= =?UTF-8?q?=E6=8A=A5=E5=91=8A-=E5=88=97=E5=87=BA=E5=B0=8F=E7=B1=B3?= =?UTF-8?q?=E4=BE=BF=E7=AD=BE=E7=9A=84=E5=9F=BA=E6=9C=AC=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...告-列出小米便签的基本功能.docx | Bin 152099 -> 152267 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/小米便签开源代码的泛读报告-列出小米便签的基本功能.docx b/doc/小米便签开源代码的泛读报告-列出小米便签的基本功能.docx index 7fabf55e913586daba9a7dfe941511e976aa340a..4308d6a1b77e4f3ce1f1c7dbe2b845a3c9252a88 100644 GIT binary patch delta 9603 zcmZXaWl$W-7Oi0hhu{vu-3b!h-7UBb?(RVbCj{5Q2@b*CJ-E9&!GpWLoO7$*z4c!I z>Z-k~YybFG)mq)1Uw}ATh**6B2R_nkT_weVg1T9Pg2I4;g7S29F=I7zGVacCcrzL&y0s;ABRt zS3%xiH#^(d@uOe|C|op-f~oR`dx$Q(3*S^FBhXM$sDSw{zj9urkLk_mtC9Fs)twU&ANWo9@>=_aNQUQ33oIs{>m<_xYmKQN z5haZM`iR0D)G&fg;Z|*qR2eA4L>GPpijX^1d)KDmvzmV|(kJEeLtkuqOR^m@_NfZ3 z!h+k&kmD&$I;J@tLe;w04eL)@5fMWb=N-r!o>pnM`$%C~28ORs zd1hb5)@-G{nJ5Nv1#I0p?-|eL;O+XI$~gZsMuf`;e#H`h%Tj8LlAb|Up+qZ&5cw5O zA!@)JB0yiH@rX%|(<^d7WXsEql8-#2@23R(JyISPA1;&iEZhQjQILpJIW;D>ferjq z@K3ENIk@C4E89IeKhA*TC!F^ZVI30A)SYTYah1Fw4V7O=xZoJrkvo*>Bt0xbJsK}Y zwdwH7`0EdI=U6p059|$7k0q~8cD0UV7jpn++ioqw+`UIaSNl2A@Du?|{1;;?LivaA z-fBswhr1q(CCfXgCp?BvPo{<=pT}Jagctgq@C{%FpWmLr0=b!+U05@ z`8!1&juz&Aj_pVVo0;WBE9o))yl?>0JF5xGAzaSUSR0P(sefqLDA%5V2P32dw0!I@6;eEsU_Iq_*W6^b= z%BuB+oR=B)phcl_{FV+>+;;A3%(aYC6R7AVzB^@1gx-_e8?9yGf$KaxMn+B+|<9IcPtP-5(_0V_-Nl2#!q9$lrn)ln3-_(DO)R=DC$$Yo~IB z;^-Rr4bFWnD-k=1oxjmgM3Ibd4F7E`lhw1rPb^23OgjF(q#&*L4g34haA()>=cmd6 ziZ?6w&7e~|_ss=wzBmCL{Z(6qEJKb_rTJl`VP9D|LOMrArnG%Gd##Mgpf!g=mXvkf zOYk(z4er((v8J4M9;*UjRnB{haPhun&q!{{Fut^&jd871azmm05Kd)bg|bc8SvSMh z{73D=mh&S!>xA{OHPTZ4=q2&7cueuBB~}j-SF0dPT~4dm9YkJw+RD*a$aDJTXdAvN znNPTp8puFHeRFmDh5Mp5FVcj1X4UAoIT$gg+ZB5_Z+|%;K1l=-hQj$&rGnx*6j!DE zGJ!_x&SH#~+U@7+Pp>XXX2Q0FZ~b9qFqZwo+vdcLXpeWDAiC0*kRRpVzv+!$wL8Un z4?p)|1;1H=I8#J0cdc?pe_zKfeBj0Z1Ur05GWPbr%||IHI3G@~@5^@4bh1hNayhNi4GFl9hk6O7#Gw`*00`5{Z@+U$#5#|06Jklf zPGc-*MTxVFJaj!iPd+aosTp?doP&wvGf~R2lo&{m=u8oLoH~QGf-ha_w&q((C98}O zVbLcK;jtz2mBeQl1cMmJwzEovu~GZ|a-HyNqAQ;Ud`u4r9Mqe$=8(B1B7Gj#Nh3`8o0VC z0hJ)o-L3O24@}SIXpIbMYe00cJzLud_;s*gK7EE#)71$$CjWPG3CS+aw*k3O_zK>F zQPY;vmc(|_NL@k(n7WD3Rz1PhCV`THXtI4f)sA>yP4^7QA|HYHK=kEf;S?W%=JEezX^y{K^Z{ zx9<6Pb{*bpY;=R<4wsy;t=&wV9a1+BL4PLBG(KT;OyjQ$!_gLJTq7^>lA>`->d>HBgycpl-4YDd`5xn6xN;jb$p z4ZECTE#-o1L5)9^Fu(ZCiaoE@hjacB3$-Sf48-+Ks#>YnAc#B8RcAOAEne|)xS3!{ zT>*v`?mS361Lh)iU|+Os8f>-OQD{h4Wh+k~44<`*t;Javy*rA=3nTCA@bixyEqh+z zcdcL*+UM>`!Gz)W<*CGQC1_0}0h+6NpFM=S!^v&9YW222rOoLx8|yXjJOr%6K00|8 zrQzu7QA3YEv8eQ-?)m8IPgJZZ%VqD07siTxkZnyGqsJIhjcQH5NTBt|sYQPwU$2*U zYl%rTodA8YtDu-yY->z#E1Rj5_g#=}6SB2v01C5CfJxJ_i2rOSwKf3_PkS-6uKYC- zhyIv+MtCi#5rQwGz4i22*@-cH08KutGL3t+i;efrI`iGDsbz^g1$D-%tsksd)#Yh8ZF|w zt`M&jfODgj1BPR5{2R-7-zKHj+<(k2rI+gm_6kXi+y#J zs`|- zmZx`>;hr5ix>|8qTc9$nF$xM4lL#^k>A=E*_YG z5SxZznA?lZ_=#oY{?S$9BhDETP8eSasaY=4E}7@}hN>^#V7s$KI}baWd^JmcCh|3I zdjL-(kGIjLLfPYImC&9w@wgV??MgNaR%YaH*&3Sdpqr^6<%?WXpwjg36ivyG24`vp z3t(K$TlZi6CJVlBSgzoWthL94=Y`ntt}+cx?L1I$>Jf9wmUpx%9z+^i1hW-gXYB!*U|_lk=e&CmzbRx zSFDxO^XTT&UpO}?Nbin9@Q(s3t&clgFN;fQA{{NYc@_CUhMqH2Ddv6+-Hg}bWM-?g zZKk(In}SVG_u~A*?ia($Ch7IrBW|#9VFtu&SYOH0#2oK;mJgg6-ztI9#hQIh!V65Q z(G2&(w%dFdZ>}~TIZ^|%aHhx=ruR0oFlz59QV6eL;rM&eK63I;INUQ`S{2_FAcrj% zaKfXz6<8P#hP6P$fYYlIdhhqJYrXdR>(BCVEh10asz-f_iz{Fd)|PG6rNAC#T2Dk~ z2lYp=eiqX5>kj*JZN?1C-@26kaPi1BNQXZ~0#Xebh5U2zV#pHv=dyNwwYS16-tq~x zB9-HA{hHpu4*5-=f@@2;iZaeY(Wga9aK^OApBU4{*1>%Q#mFegeZ+?K#o46n18^tL zH(`(5#soh~1{pBQi(GFsG68ne)+U-{Du0D4>J?SCQ0NdnDr&RV4~lJirgU$601*pp z+U!iW0jf%#mAj9_++&RV;rPFD<)~ddejjb?f1aF@ibxj!run{R1U-8wE|u&O^q!}# zNitRjU-lF(=yy)Qw}$qoeTmD{j+~FI$#yS0&ym=8=Xb34c85V5{}#AM0Gk_tvrn{r z5_S6_>CvYin$ov{2(?9jx``2>`d=tFi7m*|1Jj{`zX6kad-Ij=Iy*6PO8p_gQrEA}A~-wwTX% z=R9gn{BrMcGtNoJbR0=!B}(^P=I@ETG4F72vES{m-9B71@1)zPsj%LJ*s8rUsM5e) zXFm1CTCok*EoFq2pLWSnSnm=izJofQso4WUFxnHMb6hY?9n_@l={@}v> zP0FC;&HGhlYj7y+E*ZRNXzM#n=vPbb>N~y1Dh>{i3A{8xBpPZ%+aXn|MM}VqfkTWn z-pQhi@K%&VqQP#DI_0b3IBU=g|%EkOZLEHCP*Inc{-)Q@&r$AMYeJ<_eR3ln&dlZk1<1Mj&s+Z(GpZNK5!1d(r< zbei(nc``F6)YC^{#WI~mQ@oQ$k>UGY``${AoGT96&I-AI5;GBUw8#V~W~%F?Ioe#E zz;HMxjbK>w1AW>9{bGweCn3msi}+h@{3<8+sYHoE(jJY0+aH}Iib*d)joX$6W)nPG zv32r^LUY^nVdLf?%ITGGYPWBRrA|+6f)^*{kL$-e7ssePUQjdFJP;hoLek$+%bpjq zNnNd}^I9ZtzgW zIZ1`DM8ZV`%Ab7Is|28xF!0Cg46`&&=agK#>kq9Aog~*QFMgmQ$$cn0A2eRw3w;3v4c^fk`YJFg#)sengbHqFi%%v zX)W89U6M(2`>%b1e9{;VX)S!DvF=KyWsaY;W2su#ijd0{M6j%Sm^GR1cw(lVqkdm< zIIj-vHzeEhRF%0!c{u}Yvm5UaPc5gYoWKY9omc3jf!|Wt$FMMRi8u|F39Dv7CiANo6b- zUtemk%+y!f3pE+@kokHbuSFnWQLD0?c~MsEqJ0EwZ=(qZ;;FBk3Z?p%3o2VrPJxS& zoW9l@YBRD34fLUWj5Yo$ziTD8nfm2AgY3Diu|4<;mXO7s%Mg|YZubkeKc<4>@rllA z&S-(`aNjdefoaUFYo;Ni(&VzhhK1B&ra;jq{_5(=EG56n@~*3V=L%Y4t&pLctJ>|O zbIhQtKsEtke>iqZ5=xFd2$nmiV-BokIj(+n&~tiCYs7Bni80kN`oU>|Cbm%LPZX`Cb%0@s; zDF;J4$0PXNOg{-ki?`wYwIg*tWKuvvXxuG8dv(lv9VYd$7zf#4gS{?mzX9y2KJZ7< z{spKD{A)u=CND2IEST#nwbM`2NY$4CExfB(!ZBNt@x>V0uEalfq4b;sDmV1*iOwzH zn>+t{wb3cleBLn4-mPD{h_3DS35yYUhO!tfLNt6X@0&auBu0_B*~JXDSU8-xFt;2 zc~?zX7751E1yIGCz3-g3L;3z&`drn-d5K1>+fp)2N(v{*By5&C+|1-VW@KtavPBen zWV)I6^|tCVX_B$67p@<9)NzuBwovZaUq|A50O(+o=%onl0vQfEs?}km~QNcVHqp33gpCkt+ZeE*A!U zC6SMW0erY2nh-nvYl2E?eb}JbnlymSj2+_#^j_bp=X6VaMtpL{lNf00-9u+7`Rq(t zz#Ub?nx=o{)=^+FH)!Zv#OuoItLWJ-PXqAF}`npyW&vMGw$|`gq)wIW;-_?aETzHH znh7!eVPeXz%&d?#SIk_SQaiZETnbiUK+V~1t7?TZW?nB_5h~NT&roM%j39L*ZvaHI z0haQD`5D$-JUt&mz4IyWi1R1C%b$I@kYxXv!-^B*(yDYR(OF}Qo;Bt?+C&?5+xfVq z!FZ032}S zr62b)0166(@;?s=<_=~Kj&A0z|2!m&rHs3*lA#ZtXC3idxp~H!je2m_aKt3Kxr}oD z0iuU6(*QUFUM}wpZjPiXr8QY@MgQ`@YHqC6+9rH4x2#&2hK;<~b*UeYL}5zPhSug4JIk|IEQR@t^c89Fd_dik4hF2b4Q@l9Ko&=5=VphTYJ+xkr11C&I|sff?7u;(&bYuC!bvK1tWUeqvGpk* zK=b)O0-%VQm(GsNU;g3$;r~m{U;d^4fBwb)<$t{p3ViCNTeWKGKdJGoW$nWhn+tpA+{MSAosw-t z^JEx1TmMaJdN8!hej(ebxu;@VG?y2#addoY(C1)lc znll#kp3{559G!^3@%1Av(dwJ6VjFy=8~F2D%9kHSJ# z!OM!Untj`~UJhs7MT-MAfz8X@u6u(XeG9+d1p9R5$dqH343ns^@zP({y(yL2d?Ft4 z4VS0dyhP%F`mCQM)04l1Do^EbViR{=EB3t{k@}boMS%6}Gv`aW5i++m9US#AEW|gz zemKODn`&@8whoI%Mg-EU$?6QLK1SK@hnJ)sqkea3g8DzyWH17ni)%HSD!bK z4Lv6%o$I|Kd{%y73Jj|CLMPAh%4oMaKSUii-}5iEc}t4J?sr;h7H3OWQ6gkx{Nn8d zf0SNvLg~3m3dgS6jffQ}_)t#THJ*kQl;@8l$>!pJNNVrjOO5>H)KL0h!m7kRUW}hA zmcW|e^NoAdHex=-uWjaY64cwp`*Tv|P}Z742y)A6PPw7nqw zz83`EVJHjT;$mcB11zI$;~e}9+-A8_EQ$kwX=;0u(yzej>QUXVuV#!Yh@sQ6QHp_| zONx%+DmeNXRa(W-3)!rQ8DLg`!#P3Nc=~bh6WDn=p)Tlr=9`h(^zWge6pya+bPgI3 z<#c@YnUM<~h<-a;Oqrybo6~PH{M9RusEA48+Ub7|szbNttdAQvgOXH=|L zqA#O<@iGPnQ%r7NN6ZD$$klp&?zwjYHIpF`YD#{`6m>>yA9~g5`7Ps7!r5 zZZPnp4P9BzpIY_|o&K1e`=Y7V{HnfQ|3Q0}DDWGY*MpI5W%L!M91P*!$Q#d*YU&@H$ccMTYb*yHYxoYaMqY2*=+aIQu1T(30n#{*v6%6P$-zV-Ma8*8LvMcZ!ZtTXIxSaaOONM z4soQ&Db4El;{WOSA?xCe!GTkw-xoZAW5w9*6+@-?YYxAn{0qiFSOr-=jT7q8FUd*{ z8-p^4HdwW>NWQy+jd&Y{>GzzPKEQ7teHvp}Cs>0hOA~5>tspM29xgFpYr$63a{pAM z@WsWV_Y5bqA^X=r2S*+|t|SKb>&WpP?Sr|;yY}l(RmEh^Ao4q8D}9FL7}AupXd zoUXss;O!)GU1U?`JcmYIWPdI7=3B8{se{C!Sy@VkAeIN+VVI2-2x2rNaaG@8t7Xw3 z8$`^Kd2WwcDLs-}#i!e&E(?>u3=(Kv)9@?i!}crly6pF0|HjKbmsA~5tycC#a?f5NQ->c-d!z3F`j<-^Y5S delta 9457 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 Date: Tue, 18 Nov 2025 21:25:05 +0800 Subject: [PATCH 07/30] =?UTF-8?q?=E5=88=A0=E9=99=A46.txt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/6.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 doc/6.txt diff --git a/doc/6.txt b/doc/6.txt deleted file mode 100644 index 0b2316e..0000000 --- a/doc/6.txt +++ /dev/null @@ -1 +0,0 @@ -唐博的分支 \ No newline at end of file -- 2.34.1 From dd9a3d0c8fcc97306555ac6c176120303c591727 Mon Sep 17 00:00:00 2001 From: tb202302116011 <1271741232@qq.com> Date: Sat, 22 Nov 2025 12:49:01 +0800 Subject: [PATCH 08/30] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...告-列出小米便签的基本功能.docx | Bin 152267 -> 0 bytes ...米便签开源代码的泛读报告.docx | Bin 0 -> 330381 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 doc/小米便签开源代码的泛读报告-列出小米便签的基本功能.docx create mode 100644 doc/小米便签开源代码的泛读报告.docx diff --git a/doc/小米便签开源代码的泛读报告-列出小米便签的基本功能.docx b/doc/小米便签开源代码的泛读报告-列出小米便签的基本功能.docx deleted file mode 100644 index 4308d6a1b77e4f3ce1f1c7dbe2b845a3c9252a88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 152267 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�xlE%u)SwBBchciM`T1Ug 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�UEjAJMMOxioTfp2LYGnxPM9U%U@) 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 a|Lh~O641Z`0q4wLgMI*O>=eB8K>r70COCWm diff --git a/doc/小米便签开源代码的泛读报告.docx b/doc/小米便签开源代码的泛读报告.docx new file mode 100644 index 0000000000000000000000000000000000000000..a587ef09392e7864fa5dd78b1d8d07c69a43a02f GIT binary patch literal 330381 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%0DlO zgbllHkU*<69}J8ilDK7c6 zPF2zCzaPqHv{HX1a;V%lⅅ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 z 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
*trH0 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

8RCU&9T8 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 AV*mgE literal 0 HcmV?d00001 -- 2.34.1 From 43dab1397126b7eb2027258670b56f6f9a31f8b5 Mon Sep 17 00:00:00 2001 From: tb202302116011 <1271741232@qq.com> Date: Sat, 22 Nov 2025 13:26:38 +0800 Subject: [PATCH 09/30] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...米便签开源代码的泛读报告.docx | Bin 330381 -> 336412 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/小米便签开源代码的泛读报告.docx b/doc/小米便签开源代码的泛读报告.docx index a587ef09392e7864fa5dd78b1d8d07c69a43a02f..136282e1e13a95dc8263a88850067a7da4d90a56 100644 GIT binary patch delta 25170 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 G_WuB27H$*( delta 19161 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 Q6ye}k2!WhH0MOHa0hsMth5!Hn -- 2.34.1 From 2a98b19e02868311ce913a8b4aa79c850bdd04a0 Mon Sep 17 00:00:00 2001 From: tb202302116011 <1271741232@qq.com> Date: Sun, 23 Nov 2025 16:53:25 +0800 Subject: [PATCH 10/30] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...读报告(一)软件功能介绍.docx | Bin 20087 -> 0 bytes ...告-列出小米便签的基本功能.docx | Bin 152267 -> 0 bytes ...米便签开源代码的泛读报告.docx | Bin 0 -> 336412 bytes 3 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 doc/小米代码泛读报告(一)软件功能介绍.docx delete mode 100644 doc/小米便签开源代码的泛读报告-列出小米便签的基本功能.docx create mode 100644 doc/小米便签开源代码的泛读报告.docx diff --git a/doc/小米代码泛读报告(一)软件功能介绍.docx b/doc/小米代码泛读报告(一)软件功能介绍.docx deleted file mode 100644 index f4ae9bbe31052aac316e6ebaa00224b02c68c426..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20087 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 DyGHf= diff --git a/doc/小米便签开源代码的泛读报告-列出小米便签的基本功能.docx b/doc/小米便签开源代码的泛读报告-列出小米便签的基本功能.docx deleted file mode 100644 index 4308d6a1b77e4f3ce1f1c7dbe2b845a3c9252a88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 152267 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�xlE%u)SwBBchciM`T1Ug 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�UEjAJMMOxioTfp2LYGnxPM9U%U@) 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 a|Lh~O641Z`0q4wLgMI*O>=eB8K>r70COCWm diff --git a/doc/小米便签开源代码的泛读报告.docx b/doc/小米便签开源代码的泛读报告.docx new file mode 100644 index 0000000000000000000000000000000000000000..136282e1e13a95dc8263a88850067a7da4d90a56 GIT binary patch literal 336412 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%0AL|%k=Fw1~~a5}e6_2kqo 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%0AZ72V$j3ozd9IFAF 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≪?#Vu2R zW*7bY&0{2%zNoO@5IjI#IUf%y4(hg^IKY1z1K%-YScl?pV@ZhA1!0}Q>A!|X=Qvph456A>5Exr zvY@VGS;f+?`M%s5jh`G6@W>hQthKGFr2PpqOS8ZKFC}r#(xOvW&znnTv72Q7HV-Fj zi|!G2$)0NlMmME1_7+-c^q$+Yx>UHr$48($-+GOc*kYCPo7ZQm7>yjLnaO_QaeI9A z#x-iI+#lb}A5>2Ha5Mj6MD8^ngKWG0cJB6D`7Ym@>Tidw{xIX1u4q(<=&af1tGtz$ zq+SZXp5J@){XVha!h19Q)K9TzJM7$NvK)&#e%~%J@kRZ2 zt4Qg*BabqF^wgiUmlj>v(3_KXrSVyN{AHO(nTHMD3_1VezqUkJvSN$WNsH$(3mY!< z8oSPE6z;Zgh(VgGpibJ;O(8sEhF>C$6GRVShEM4uli1c zt@LoRCy-Cr@~gKs@8m##kN0(>%(0$}v$EelwtmaH*K0<)m;a{)LD8O0Ghew*9A9#M z&Z1glA@3Qck1V(Rh}*~A|7FgB-(MXQxnAq(&$-BY?&SG`Rp)Q~P88t%8Ytj!Vbtf7 zL4KB9dRReH__`9~$*<=vnypy4|KwXqwxr7QKI2q7FHt+k@q}TdNb92J`KnJws}`B~ zS6l83dD(UA#)j83+3N*QEcK8Pxc;P@@$}7)^?S7p1-D)jY20ryX#Ln=w`-UDa3QkE zr+jW>KP2RH=cw4Kf%VsJ*Ayz;@bqtaedYT8S64Of`AL~YaUENAUb=EP_pyu89FJ|k zM(uB=D@(llc)e~~zJ=-a1+{aYtd=ytxkh@>L`qY2@ka;2EP=ZjyX*~Grz8coXDcP# z>M9=^REr3mm=WfZUzfUOo!wCLm4z%^Z4oo__V0C!KHs*Qq5d*ZGkbV2z(}|BiD~zl zruq%uJG17d3YS{uueKfhk~XcmQ%;-f%`_-PyYv3IOP0h8_KmDbJ8;a7?V&-cZ?Ju9 zy~}oCg&Q1RLsvdoKYqG&Kr{T=vhY7z?zf|w>^IL^YPZfT_ukm;!j_d616DjW-tCe1 z*+J~1$DDyn$L?okJIvyV92I-7CmL8?8?l~6_xYXEeU1(dg_$oJgbl;Lcd3a>$7gJq zS~IAoeE4#jfV6_Zisbx5%6IR@UR5f8+mz{;bMvaxzT~h$zNzCyim~@MXml(P_OpLr zJF4qg`Ji3vwS8pPw|j<%>_;N$Ggm%3}VAg$g`gW-EOAy7?=Q zC@y(^@wn9jo*0Ex-9uJ8m%X@jF@5xzv7E-ll?t^-HWhPs$}Z@4KN!TeG-(?DyJJs9 zAG)gueD}Di8S5awV58_uE$J1`e&)CJlg|(GoAWx}>^XX2S6Wy^RCIQoXX=pn>-0DI zUi~}RdBV5y^l?3!s&!h^o@F(E%a;3W-zu6U!d|Y_DUbaz_EXE^;G^*APlde1zsuI$ zZnI}NEqm&nY}--(uHPi|N$OSyb(u1rpc8SMxA#A5uk=5Awos2TxBl$m*0QW9hvIt` zv2tq~CblO;abA}FywQa9Mc9{!l>B)YH`Sd#87H^8!gYmM+!5F9AG!jcru28usK^P| zcH3j1Q=mC_7iXhZ_v~NQtZ(hstb1BJ30C;zlp_zBDX`W|t$_5VETeen<=IC9RZNHM4C@7S^FM6Y>^?o6v zxR%eMAsb^w4h8B&Yz^(S-|**G{kF*-M|o@e+BYfRrz_qr&Q#tn)R7X~maKb=;qdsr zj8?2Fi%#HL&3Syq#f$^r9S^DBijL9>7Ej)C`s{{Ny2eRM4~6cRej3uPw9i{iO6yQ; zjh~rethR30ko)e1eXE^k1x2YyUzMmeZ2s_r+al`y@z5{D!m-1;Ct2e5tUBv{)+2+T zZ^+VfU|K=FwxH|RVYWWGYc-mlRx4gU;^$lN;r(Uf!F?YucgZ|*anCheoWK!d#G_YY zBy?db$4YkBNx9`+hWYb1`?s35ceHrSlC6H7s5llPwP$Ksag5>tm*?T5<%xXnPL)X; z$-u_nPiuzs^z=(=vGYsat6I@a0zqHZR|PPt#S_Wc}!r zvhn@=O(uM0O6#{}tQ8FplD#|avFp@NPGx$P`i4!SSAeWkuU-M8(;jOR;_>1zGry{6C5_SSxJ zv^4XX!-JvLP48Yz?Mv~ZpUa=5p3^tWP($xq?$Y|X!SJH*T!3pX>%4q;7= zwbc@Io+44?kZ}6jsw%PTUn<2cE8orlhcE6+=t51~+LjyMZbMfFzY6B87wNFJSlOS^ zJi3CnCQnZ9#Y2aAr8`-l^~bA~KQND&c$6IM;G%8laB*wl$>%<$U*c+>zx5pyl)QF* zd5L!PPS&M=epf*$+huHJlEkN8?{|z(^YZ8!CC-iPi*BULocYvcd*(>BL{fK+WV!zt zulWKCFZTB>84I0~-nr5JQjN`vm=~YtX3kzv6o0Uy@!p5z5&p|QGUjG;H#Of`Tcj;& zxqZh>t(K`8f*Zc14D}tj<`!t^kr1D-TqSkEs^GerTD97F*A22}8cp(9**b=pp9~y( zw$Et(wN{(iOSP&MPO)}64<(KaZp~2`jd?HOwXI7s$E_sZ+q-^^Z~MR(@tldSZVB&> zQT6Wl)TKI0D^h>lcXgRuqc?8joL+hU3G0fl{l|KiN56~8PvU;4ykh?TpC6|g>!yh6 zFHXFAdsN@)(z>0OvWgzAeB(9k8b2@V36IrNCmwrP%daZo(0G65fk)Y^J#2f;6s4{# zl6W_9(D~AV*RGnZ-%{+)@V=Ja6D#QVOD-zj^R2{w-5e&>=quf!S9G#n#XxACGKx~*p>8)l0QX-Ni5ysJY~+x6n>IKQ^mRuI7Eyj|n_KV6;K-?)LF~{oiZ- z6vcj@QM7Fj)3*B^dA)&KX#b)|+IGQ;i?e2w+`VkBu+*V`g^OXgWi zZ(evTG_bSwjdiWJ$F4K;1nj1ltWHz^*f%VpD0%8)cc1X?tmfrsy@6KfTd z6_0!N<&h z@f$v2Y*SrBo6|jb*+-=krD8mNX5U&BcAb4)jfpb%fr9Jj-pZ}|c{ylyhupK$T}9!_ z+*NOu)ZLu@W~cno8}m!q7B-$?Eb4HX(ONdMa@Fj0J;mmE}dCwjLR+l z9B&Sqcn-hvT-DH-P`QC? z0#|2$j(PvX#57UY@2kBWi`wH}{WoWa*?vf7+>O*dw8!~NeBV4XtA(~h^7B>H27WeQ zW?1P*7rPv?{5hq5g%&GEfX%#%N92#{RzEP$Q?`~a$}7|oNtVAPZ8p+g((fks(p=uU zGW~~;YTM6sU7uU~i^8}Tp7`?I?bfsMcS8dkGr7kewjBSoK(PO6bjPvm#LQKZw=#pH z0{mjHsy|zwI)1%%LA}ZIf*%(K_%zFSmN<4Vowb7J` z_+ou@Y!|M8fD*&WxmnBQ-fG-4%f@f6Bax4bN%V}Z&u!) z86^JnLHGKCZ|iNH#u{CJ`sG~69wi|5zbFtx^Ssc3dcx;u5v5&>_q+4~h^&g^L zZ(4bEd0BlA{m!YPu`NLS>XMVy$84RJRwfGb+~O-;m9vYN*Y(dpf!X<+8-RmNlmO zXICg4vpo1*@{|^bqR;f6BVPoZj^A9dVo$Na<8*<>ee7|nb3X`t`Fv7W=eH?O?744h zHznSRPu_1BymM@%e0)StrXAsO%cVretCjVG{ei3}|{EH-huG*U0%&8mv$I&fPDDFpi_BrXg zYiGYb-FSarlUmWmM>mv3*f-4ZzNIVsV9vb&-V=svf0rkfUGJ!Eo*dei5B;|+$R4&<5!olyBOIlS!QURa&mL6+u5AVsy~AZWY&}jru{D3*tB>( z=h6*tHovUi-M-HE&BI*ro$pVrb{p(n)pBaaCALeucDlG8Ov?06^|lVbEn#3Bv9531UVnP2FOe0TsM)!2PM0S?hJDj8@ z9hb>zj!z+>+YXTRvuTpOM0KarAh~*YuI`$W{mTqCK;?%R=XQbKcqFZ?$uwfp%qa zqj&n_otd|5@5I*5V&!EuG?uatZ`o>~*q(RxlgW%690->@uG|(ES{?Ffi(=@7ky^>g zpDfxfQ#ct(Rnsf@{?xy@SEsqXKFd+;NtL#;)J_p)v&7IF?59_mDb9H&oWh||s;xXn z%P%siYQOTc*c;B959|=}{&nSZDyPQW!17ySDI8_5jwnxS?HBO2y!bq)S=U48w$-f8 z1^?5f3T(>nDJUd^GfIT zFLhx)KXmjqZh5NYt`_tyI&H`Bu3eYQ@_yC#iC;PwKcu&5?dqC9!Hdt1-O`*p?zi#9 zp6VSRBWD)BQ|{8WFDb8(y|P}f?6k)2^`(#PHI3RAt(mFzUb*32U`eI6-28pluKFAe zRcfDV8S(bPyM!BTA$Gz%*-PB-zHHudOAy~J8J z&P!6JQ$qc|KABcN+{E+wq14d8>>oG1b@nY?DZM=X*Y|nZ?><_J8*P7c{&}#8jL{>( zU8!HrPnpJ{Z7yl_d*8Jg8Goj3SiXeuectp`t`!^qTv|4F;Ln>gil12c-Yq>Zy?p-m z#NZ>pJmwnR{XQwTZbA7B&+V4K{5EVZ`MUXX^L)Pz+!lV#^Y;jcDunFt;i(Cka2c|5|(z}-jR%Dv3sZGxot1l_#-N<(1ZWo>mk#{&)x{V zFH!Ify!YGlm8lrxx995M&zl}@7i>OyRo(v6E`z=~9A28=IE1w2IJQnv6V|w@9-`5{ zZ}`d_h3Ma&heSiSK3w_d>HpE*SNK)Yyl)?n?rtQcM7rUCq;wy;ySqa~x>LHlLsD7< z1Oe&p?rssm_n>|s9)0`|-rqT&``+2zxvrU=bI+ccow;Xgm@~PmMw5@>NBnVQM%OVr zhR?74InRB1sML*RuA$DwjQU~Q6l`D$ntBVh(m`Z^ zyJ;6UI)k}MTC14J^5ronL>6zGa}o-A974kIwXo){eDd4BSXE_u1U!xUgAFj%_zf!`g|w4E=iS%~4(@TmJq;3v zE(YIf6g^u}(EBfV^X~6P2NyiA9YSO8ud8y3Oz0dd`cUkcyK;>*FOH^=THOjU&r7CK zc$m(s(op)T51Y4b!3R%HF+cRjvIKrrz-{mfmXYlsr$!p~os*&VJviR@@?b^G<>#)M zkI3SA`tEaKn(2p5nU@1ji~f?k2tiTZiaHPHhN#b7{6|?mhlToCg0p*$Q2#5y=Rt*O z8Aes~(U;dC#yH ztDdQMAUCv{h|x^0`l;~h@U^GD(ZzudePdK#Rr)XmI3++rU<2%A_1&w z(KuL#sQT0|SwrF_J}heWMH%Yy8>se0<$^cH32)yeoUUz8MX4oH?w99(M8yOi z2ye+GNhSM|?Sy)fw6y##gAJZE9SK(DNaERAlorMQS$nz>>(a*$CF3I>KM)A)uIe=} zy>YRBODy~&DBx`WHvK*bTzd1W)Bdec)P)yHH%+#%1VhyHf`4554p&q`xrLB%KFifm z^Kd}s_XSbh62AWNFhpXPvRM`jspMrWrNgc7+pCUd*k@LN2^`THwSo$Wuaz7Eu#+M~ zF!El>>|@1|5To^Pg-gp!9~ITxS%!oVYt--&3e*|vNlEVyBOK2FN*HP9^bLY01TSnxUO@TMEv7LwmoyJX5L?{LHhFnt9br>6VsxpeX$j_ zAM~UM52F^WY4@G;P^k26>PSmCunV+{{O(-X45+#{UGq_3$Sl}{YGnfE0tM5_0Ry(C zc1>qlBYRJHeY??09}O#=k>=i+!M*nM@|RlQt&g319jZk>HF(9R4c27NAzHvCNtb(l zP&vfEDsLNFk$Geb8TVW)tb83F1&+a2uQWw|N%C+ttL#Gxk%-Sc zs+$dZoqEi{^RCq=epKpS!O(&h!+GJzb8f)_CaLls165zq5MjEqBwR=g$f$(Oae&`o;wGsCTpNv$1m95`i~JgzYyI?dftLM7$fPI-0P=YG#u!aY{?#}nM}e9$(10@iWO7PgUw%r8 z($G~%6#8dz)td2DXG$4G%FI#;V>DKzE{LWr^k~WJa3%c)nYTjSya|*XmROQlEXEie zUdf+eyHL5dKuSuKN+wPvexZQCVLx@z8WZ`jhH0u|c{K&?GC4ed5s@L@XDUzYW-4Bi zc(w(TxVKdVpmR!E*FM{Z=xgTJL+BK8fH>x^ib#0D#kWqiSNd6*vUa2zjYR1!YLbw; zvP*ocN;QfAX<0icrL?+YAOSi#hz3PG0a%5vieG-3HZ3}K`jle$i8vWHZ9WG9uF><% zdY?+HQYBxLGjb>l7&wqX>8P4ScnVvB-Ow}nab;!YaWgGAc~p0Q#Q+<@i7&Cly+xJ~ z*$|vs6Gi1|2!s)ckf_X}kILGW*|Civ#GNViw3=TRR;y1KC0R3%!$8WJ(J9T8N$S=Z z2NU4yJqCo6P8ek=m5I)+g2>h!>E!K^YW*xPlj*}>UU>htTV7pp^wAI8Ew2p+0PbfI z{~Tv0xMkHUH$ojVET@ zFE3;*tvH7U1?wY3=;~X$WvF=?l=gS}xR;v43l;;l-^K}ARj9LRP(n=EJoug8doNU8 z9IeSMQP>}+m~gM{jOd+@*r5%xt)olXM#3;wWb$(1LAeW#26yr1i}?XlP@jW`CYP?i zTD3$zC|6(=g%9b7$a5 z@1kTRqtiAN#RN#IC7q-Vg++;&I)!0L21f<%f-r0Wo?Pt=0BPZ`Fg;wu;lyO-4r=~u z(o;k@_(boz@m`w+2<=Cfx_shSoY&h>K&Q8B=o1AhCSVx}p1w%uin8wt5u_ug+gy3} zM#5flPV>>jn5>P{~H9 z6_NSNkv10BQ`_whx8?JDI<_xz(9G9LKI^Qi@_1A2i{zFHeY0c3>k|%%V9d}l2{$Dd zCPqd05n=QFG%xz>c-Tc)vH}4WUw5^dfPBQJj zG|E>p667deWY7kUSE1G@6H8rgZ4s9cVi6&f2-*8NLI{hZ~;gj+XvMRcsjW$_J>ZkBa8FXlr@xlxWzHxfOs^gsXoaa>ZfdmDa)RIH*xERU*+%H< z`O0<8MsCYy{$OSaa zIgVlgJHoEuJ6C?8oHpAl80_f7at5P1tYdd3Q_j-x%~nF$u_?AqDS~Jk4Bn{raGcW5 zIq10G2e#8p*pQ3ms4rn7)Fu6#;y+9F?0?jVCA6hW5zUxTMQ^2eT_^lTxhh()gO|%$ zs3ZK!mVkQkw39XAYAW6zin^4mAVUrJm6mkX*C_~uvG+*wNq5SxJI)y)ky5V}V+!0y z;|kmrlfYZeoy@lL0`rVta(m%25UQ5%<~Yf`+qUgO;OM@Za*@n@#=oOMoLD9@@;^0uwp0^ zdg|rVe(7R7{&q|qEZ&pu@zPgIH?f0lM} z)p73l!q`Va=QiCEIM>L!-8o5qQ|vO=G2m?CWU4`F>y%#0v`c6yHcM$cO~+~<755oUBr;0+F& z`f0e4YesaGp@%RpT}DD}fB4WwIT$-SaeGr$J-sd=XU6M{JD)YjDEdvCdCL-F zxi;s=n&wQ}6=IhO>SY7$;2U*@^SoPM;lGJya3dP|EQk6+!mExVI}?$|2IqxcomwU< z(*--RO?;W;P0IA;BMx=bra5vK*(ddqC4n8DPYc!#JC+$jcZ`~kO$HU-%d~he;uhF*3d3)H`EI$Y-!SKs><9lh>7(2g`@!`9Pgz}7ZrI~!XvehbQt( z(V2*4jo}lq*zF+ot&QTxxk{Kuuf`5~NMnMdpFsm5iHp#DP{tpF;DM0XMFR6r<;kFb z98wAvfTc~#UV+5!TLVio6m4DuSh5~rlMnkKpl=HVz&T|JLGj2FQ-4>nFBAyC`ngL6 zX0$k*ej=aE%OIcKB9$c+3Kj$&`TG;#q<-*<+|$VWAatceVkumZ@lJf^RisF-zjM*tFT4yL`SocVhue0M823%j%;7FT2EvRCxraY*hCnOwt=36 z(AU#Pdhja$if7lnsZ9wRZFYWybbk)s+6LZQIo}WuPdmbd+NmxheRv|=1+p(g1!?iE z3)XChOI&KPev-b-!Q&zq$jR~OWh0B%_MGe@+^GaP^U}zePr%1sv)6e#)MKVeBQqTq z1k#v-gu$Q{`9OAd3OyNQcs0-!QFJ+;EBJ6tFnM#$91!Zxq7Zq5^nb6l0i-iY*nO05rsA3!}X*1c>muf>Ac45;&yLWo56VD_QaeYhT1rj^no9SHE zw6ISYQ!Bz+iut3-SmB3tz7VSK2jb^s%=JvIS$N|O$RT&+oGXlqPnT3}62q)x@Mkv6%@oUUDv^f4c~ zE2yyeJW2DmX{g#~gz%tb^$JALvz0fW%6QP+?ZiN={f&p9q!4rA#!Kb7{}gRzF-sr9 zbTMbax7kCa4NLd)3oj1kPI%c1wxJA-?oC`sF^AjJGDWY5nUB(xBB)}QRIY@I{;nn0 z@4je47%eDukH>B~1TT)Mf1DPZv2E@D;8uj7Yfe4T52|k2+!axY&zAgTQbO-l#H?yn z-C0BijGNQK1ey=-!+qStAjx-Ic)uZ`MAb>l6PNa~GU(Ou!CbE3H5N-udhz9=yh?3q z+_SoTW|Co-uUtoS9;Q=UL$7bwyTAG+X-dyf$G9MpY)rdzTgyJpFl%^BJ{H00-x^_odZUG+?u+03o!y=%&8c%iSU!Gi%xx0WP+ z{Mg2P&&-Kyesp@I!t5|XyZdHhe6gwDsL7STooBuM#&~OUVvD{~c*)Al1F>m7s`s6r zs(0Ev(e(W12%tN%1npdm34Iznd>gv8W ze_o&yzJNH!sT*&0uTaSCQ6m;@b`ZufwNT+rWUP$A9xX0TE*y{oTzFHLTA!=QCZ+_kT4^$7_5)3PNO=?X=H)zD_bS}!wpcYhFw4#EH>!%f^k&fn$=9X?Zbl=~a zA75m?x~Sy8%bu~A;KpzaEKbDR2gT2l3(R?Z4${gvWWCuda|92?Io%zRe1|D_(%s$E2dGkKPh`!z#z_x=F3vhfB zdy6V_BrkvReyx*#*0(hsxlJwR@S$7 zb%ZJ8i9Vj4IfweUi)*H&o|v<7yOQ=`x{81>)&9BE7x5|vw`46n{M!DZ_QfXZT5h@p z{#+_>G7D&u`p1SSDxfG(Gg->)K?M=hFy(~@;E8%(R=A6KebA?e6ja!JZ zSM6UQlbEZHOh0S->6uK$v}CdZxno_^zS9>xI@V@1c)x0N<38W$BTx3Qn&Bid*_Ur;v^5qC0B~)NbPRFBjsEoI-glu63QeoX} zdeKM`uG2!P)ln|$w$NXsUcYju(ie^Q-Mzg)r(WN;Ve|(70{@-jFg3)YP6l>8%trw{ zOmQ%=wQ*9?H?T6kpW?8duw;|Ugw=gSeL#$MMei+yLBL)z7o`H@IxUi6CahF7c6H1zdEQyMGKZ>D1wh=gGUu#JOXqzSOQ7t4 z0#VefN3s@$;}?o|JjqnYI;nAQ!)8f&B2hp=>0sVi&&MQ%-xh)pW{9zhOP2;plUP_< z<$`{Z5aPd{qo`?>Q?JL{$BkHp#$=j;nf%N)U}Q_b{oWzAqY`R@fa6JZqXP*0_B|}^)6jVWP4Qb`D$V9 zj^>2N6p=fj?0w=zM~3M;m~$w!RTKtk`a(m~J~0)qZUtkq2jxgc<12msI1ZD3$`ls- zh;Y=R%er=_TvVuhtx_~igAn{0UVzzaE=nxKH9W>}PLFkK5v5I}{m0SA%MRJ=b(kZz zU!BRtm`tu{;0}YONmAve`A=ZHMdS8^t^Np#;NgMIH|pypn1Y(6-#rHe&GoVy z2>Nf=2e~0HwR;my5kBvI>;UMr_}veUcu+R zRRBg_u5U-?ilcg~%_*W%3EGZ&k0KlBzBvuwb7GvgS0HVocWP_z>L%>$>=J$Dy+w1DenwqX9Fm0T&X$?;DF$kX zdCusDzU2l3?|bnc8hCL5Er;E&J;mN4on(~j*)sJt?;-k>eZPl1nnKmWD7bqaYnRvn zL!rI8a1{IPuaooP_~i4wz(zL;K8yBmyVSR{yT8rL1QpX7Y6i`-5U?w*yT5qq)pTeRh#qKyN2hJMwL^ULc~`WPMTF&^O9Jq|6@bzW$AztRvQ1+i;xBMU?O0vj1<} zq(L$xhyiS}=wOq@{I|&(Iy*YqTK}KbKKy~?#SBSxGGX-``F06$z!5*Ghi-ATnNc$yw04bRcd9- z5TB0pZN;d}1R*`hEe@xmdarc-6`LQCHZ}b*oHeMy)kclnXs=Z%9@(qRYcxecc`$Je zCAt2w5!0sLtYKp{!>cs_(rT&ZbRDw4XbB)x_tDk<3?< z=#&w%hT7M(=JG8)SPGCM1>aUQdFt|BvY~!S> z0JOBrCsyz5_>J0b45KZv;KyBy}B(tsEH{?)9I*_X-Jen{ogEmmbs) zm#GKrC3uyI9~~ud1H#!Foc!O?RU4{iF#~7Z0v-S$dccB1h^oKfKNJ5q$zLc5ywY;B!vY@L1%vi^A?5QkC9_xN2f{>M92{vpWM`h_>PG5Q0J z@GBA-K!*Q|QG)^`;9l;Xdmlb=y1(Go#zyA)jONz*rpC++b~dIzbMQbhd80X383O>^ z%kLE4Rggc6@?R7zf1^+b4ic^mf`3M^{7#`S{OCUvtbe0W*`2iV>;^ag!16nVGX~Uu zDA@i+aUEeW<5vy<+{^D2PiFp0!TvXj!?MpK&NTqQz5Grw6A1mETyXr2BKkm0TV@>q zxR>84e0X5~L&5ns3Q9w7|7lVPz`guV0YL)$9}2F&QFO(c)Pm?B0Qd4c1(E>Ve<-*g zC>|>JpMK*HrWI=i|C8cRFY-T)`%lNl2MRWaUljj#bNmzjryIco9NP02{5Pk9Kk Date: Wed, 3 Dec 2025 23:13:52 +0800 Subject: [PATCH 15/30] =?UTF-8?q?=E7=A8=8D=E5=BE=AE=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...泛读、标注和维护报告文档 .docx | Bin 634141 -> 634057 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/小米便签泛读、标注和维护报告文档 .docx b/doc/小米便签泛读、标注和维护报告文档 .docx index 78bbb9e0602601ef1bce93bd44b9f8ea56a4bff9..ee4e986df3ca5e5f71a0a46f3c7dd3d70447e0c5 100644 GIT binary patch delta 25252 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 delta 25318 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�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 -- 2.34.1 From 54bd5dece9904061776f1823f6daf7a63cb3c73e Mon Sep 17 00:00:00 2001 From: tb202302116011 <1271741232@qq.com> Date: Thu, 4 Dec 2025 08:03:08 +0800 Subject: [PATCH 16/30] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...泛读、标注和维护报告文档 .docx | Bin 634057 -> 634488 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/小米便签泛读、标注和维护报告文档 .docx b/doc/小米便签泛读、标注和维护报告文档 .docx index ee4e986df3ca5e5f71a0a46f3c7dd3d70447e0c5..4c2b80117c5bdfac8dec150d31c492a721bc32fd 100644 GIT binary patch delta 25812 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 delta 25377 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 Date: Tue, 23 Dec 2025 15:42:54 +0800 Subject: [PATCH 17/30] =?UTF-8?q?=E4=B8=BAui=E5=8C=85=E3=80=81model?= =?UTF-8?q?=E5=8C=85=E3=80=81widget=E5=8C=85=E4=BB=A5=E5=8F=8AMainActivity?= =?UTF-8?q?.java=E6=B7=BB=E5=8A=A0=E4=BB=A3=E7=A0=81=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/net/micode/notes/MainActivity.java | 17 + .../java/net/micode/notes/model/Note.java | 183 ++++++- .../net/micode/notes/model/WorkingNote.java | 381 ++++++++++++++- .../micode/notes/ui/AlarmAlertActivity.java | 97 ++++ .../micode/notes/ui/AlarmInitReceiver.java | 34 +- .../net/micode/notes/ui/AlarmReceiver.java | 14 + .../net/micode/notes/ui/DateTimePicker.java | 187 +++++++- .../micode/notes/ui/DateTimePickerDialog.java | 64 ++- .../net/micode/notes/ui/DropdownMenu.java | 36 ++ .../micode/notes/ui/FoldersListAdapter.java | 60 +++ .../net/micode/notes/ui/NoteEditActivity.java | 319 ++++++++++++- .../net/micode/notes/ui/NoteEditText.java | 114 ++++- .../net/micode/notes/ui/NoteItemData.java | 235 +++++++++ .../micode/notes/ui/NotesListActivity.java | 451 +++++++++++++++++- .../net/micode/notes/ui/NotesListAdapter.java | 120 +++++ .../net/micode/notes/ui/NotesListItem.java | 48 ++ .../notes/ui/NotesPreferenceActivity.java | 166 +++++++ .../notes/widget/NoteWidgetProvider.java | 92 ++++ .../notes/widget/NoteWidgetProvider_2x.java | 38 ++ .../notes/widget/NoteWidgetProvider_4x.java | 39 ++ 20 files changed, 2642 insertions(+), 53 deletions(-) diff --git a/src/main/java/net/micode/notes/MainActivity.java b/src/main/java/net/micode/notes/MainActivity.java index 8091753..105fc40 100644 --- a/src/main/java/net/micode/notes/MainActivity.java +++ b/src/main/java/net/micode/notes/MainActivity.java @@ -1,5 +1,13 @@ + package net.micode.notes; +/** + * 笔记应用的主活动类,作为应用的入口点。 + *

+ * 该类是小米笔记应用的主活动,负责初始化应用界面和处理窗口边距设置。 + *

+ */ + import android.os.Bundle; import androidx.activity.EdgeToEdge; @@ -10,6 +18,15 @@ import androidx.core.view.WindowInsetsCompat; public class MainActivity extends AppCompatActivity { + /** + * 活动创建时调用的方法,初始化应用界面和窗口设置。 + *

+ * 该方法启用了边缘到边缘显示模式,设置了活动布局,并处理了系统栏 + * 的边距问题,确保内容不会被系统UI遮挡。 + *

+ * + * @param savedInstanceState 保存的实例状态,用于恢复活动状态 + */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); diff --git a/src/main/java/net/micode/notes/model/Note.java b/src/main/java/net/micode/notes/model/Note.java index 6706cf6..4c7931d 100644 --- a/src/main/java/net/micode/notes/model/Note.java +++ b/src/main/java/net/micode/notes/model/Note.java @@ -34,12 +34,38 @@ import net.micode.notes.data.Notes.TextNote; import java.util.ArrayList; +/** + * 笔记核心数据模型类,负责笔记的创建、更新和同步操作。 + *

+ * 该类是笔记应用的核心数据模型,提供了笔记的创建、更新和同步功能, + * 支持文本笔记和通话笔记两种类型,并通过ContentResolver与数据库进行交互。 + *

+ */ public class Note { + /** + * 用于存储笔记基本属性的变更值 + */ private ContentValues mNoteDiffValues; + + /** + * 用于存储笔记具体数据(文本或通话数据) + */ private NoteData mNoteData; - private static final String TAG = "Note"; + + /** + * 日志标签 + */ + private static final String TAG = Note.class.getSimpleName(); /** - * Create a new note id for adding a new note to databases + * 创建新笔记并返回其ID + *

+ * 在数据库中创建一个新的笔记记录,并返回生成的笔记ID。 + * 新笔记将包含默认的创建时间、修改时间、类型等信息。 + *

+ * + * @param context 应用上下文,用于获取ContentResolver + * @param folderId 笔记所属文件夹ID + * @return 新创建的笔记ID */ public static synchronized long getNewNoteId(Context context, long folderId) { // Create a new note in the database @@ -65,41 +91,114 @@ public class Note { return noteId; } + /** + * 构造方法,初始化笔记数据模型 + */ public Note() { mNoteDiffValues = new ContentValues(); mNoteData = new NoteData(); } + /** + * 设置笔记的基本属性值 + *

+ * 更新笔记的基本属性,并标记为本地修改状态,同时更新修改时间。 + *

+ * + * @param key 属性键名,对应NoteColumns中的字段名 + * @param value 属性值 + */ public void setNoteValue(String key, String value) { mNoteDiffValues.put(key, value); mNoteDiffValues.put(NoteColumns.LOCAL_MODIFIED, 1); mNoteDiffValues.put(NoteColumns.MODIFIED_DATE, System.currentTimeMillis()); } + /** + * 设置笔记文本数据 + *

+ * 更新笔记的文本内容数据,并标记为本地修改状态。 + *

+ * + * @param key 文本数据键名,对应TextNote中的字段名 + * @param value 文本数据值 + */ public void setTextData(String key, String value) { mNoteData.setTextData(key, value); } + /** + * 设置文本数据ID + *

+ * 设置与当前笔记关联的文本数据记录ID。 + *

+ * + * @param id 文本数据ID + */ public void setTextDataId(long id) { mNoteData.setTextDataId(id); } + /** + * 获取文本数据ID + *

+ * 获取与当前笔记关联的文本数据记录ID。 + *

+ * + * @return 文本数据ID + */ public long getTextDataId() { return mNoteData.mTextDataId; } + /** + * 设置通话数据ID + *

+ * 设置与当前笔记关联的通话数据记录ID。 + *

+ * + * @param id 通话数据ID + */ public void setCallDataId(long id) { mNoteData.setCallDataId(id); } + /** + * 设置通话数据 + *

+ * 更新笔记的通话内容数据,并标记为本地修改状态。 + *

+ * + * @param key 通话数据键名,对应CallNote中的字段名 + * @param value 通话数据值 + */ public void setCallData(String key, String value) { mNoteData.setCallData(key, value); } + /** + * 检查笔记是否在本地被修改 + *

+ * 检查笔记的基本属性或具体数据是否在本地被修改过。 + *

+ * + * @return 如果有本地修改则返回true,否则返回false + */ public boolean isLocalModified() { return mNoteDiffValues.size() > 0 || mNoteData.isLocalModified(); } + /** + * 执行笔记同步操作,将本地修改提交到数据库 + *

+ * 将本地对笔记的修改同步到数据库中,包括基本属性和具体数据的更新。 + * 如果同步失败,会记录错误日志但仍尝试完成数据更新。 + *

+ * + * @param context 应用上下文,用于获取ContentResolver + * @param noteId 笔记ID + * @return 同步成功返回true,失败返回false + */ public boolean syncNote(Context context, long noteId) { if (noteId <= 0) { throw new IllegalArgumentException("Wrong note id:" + noteId); @@ -130,17 +229,42 @@ public class Note { return true; } + /** + * 笔记数据内部类,负责管理笔记的文本和通话数据。 + *

+ * 该内部类封装了笔记的具体内容数据,包括文本笔记和通话笔记, + * 并提供了数据的设置和持久化方法。 + *

+ */ private class NoteData { + /** + * 文本数据ID + */ private long mTextDataId; + /** + * 文本数据内容 + */ private ContentValues mTextDataValues; + /** + * 通话数据ID + */ private long mCallDataId; + /** + * 通话数据内容 + */ private ContentValues mCallDataValues; - private static final String TAG = "NoteData"; + /** + * 日志标签 + */ + private static final String TAG = NoteData.class.getSimpleName(); + /** + * 构造方法,初始化笔记数据 + */ public NoteData() { mTextDataValues = new ContentValues(); mCallDataValues = new ContentValues(); @@ -148,10 +272,26 @@ public class Note { mCallDataId = 0; } + /** + * 检查笔记数据是否在本地被修改 + *

+ * 检查文本数据或通话数据是否在本地被修改过。 + *

+ * + * @return 如果有本地修改则返回true,否则返回false + */ boolean isLocalModified() { return mTextDataValues.size() > 0 || mCallDataValues.size() > 0; } + /** + * 设置文本数据ID + *

+ * 设置与当前笔记关联的文本数据记录ID。 + *

+ * + * @param id 文本数据ID + */ void setTextDataId(long id) { if(id <= 0) { throw new IllegalArgumentException("Text data id should larger than 0"); @@ -159,6 +299,14 @@ public class Note { mTextDataId = id; } + /** + * 设置通话数据ID + *

+ * 设置与当前笔记关联的通话数据记录ID。 + *

+ * + * @param id 通话数据ID + */ void setCallDataId(long id) { if (id <= 0) { throw new IllegalArgumentException("Call data id should larger than 0"); @@ -166,18 +314,47 @@ public class Note { mCallDataId = id; } + /** + * 设置通话数据 + *

+ * 更新笔记的通话内容数据,并标记为本地修改状态。 + *

+ * + * @param key 通话数据键名,对应CallNote中的字段名 + * @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 文本数据键名,对应TextNote中的字段名 + * @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进行持久化 + *

+ * 将本地修改的文本数据或通话数据持久化到数据库中。 + * 如果数据ID为0,则执行插入操作;否则执行更新操作。 + *

+ * + * @param context 应用上下文,用于获取ContentResolver + * @param noteId 笔记ID + * @return 成功返回笔记URI,失败返回null + */ Uri pushIntoContentResolver(Context context, long noteId) { /** * Check for safety diff --git a/src/main/java/net/micode/notes/model/WorkingNote.java b/src/main/java/net/micode/notes/model/WorkingNote.java index be081e4..36003cc 100644 --- a/src/main/java/net/micode/notes/model/WorkingNote.java +++ b/src/main/java/net/micode/notes/model/WorkingNote.java @@ -32,36 +32,87 @@ import net.micode.notes.data.Notes.TextNote; import net.micode.notes.tool.ResourceParser.NoteBgResources; +/** + * 工作笔记类,负责管理笔记的业务逻辑和UI状态。 + *

+ * 该类是笔记应用的业务逻辑封装类,提供了笔记的创建、加载、保存等功能, + * 负责管理笔记的UI状态和业务逻辑,是UI层与数据层之间的桥梁。 + *

+ */ 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 static final String TAG = WorkingNote.class.getSimpleName(); + /** + * 删除标记 + */ private boolean mIsDeleted; + /** + * 笔记设置变更监听器 + */ private NoteSettingChangedListener mNoteSettingStatusListener; + /** + * 数据查询投影,用于从ContentResolver获取笔记数据 + */ public static final String[] DATA_PROJECTION = new String[] { DataColumns.ID, DataColumns.CONTENT, @@ -72,6 +123,9 @@ public class WorkingNote { DataColumns.DATA4, }; + /** + * 笔记查询投影,用于从ContentResolver获取笔记基本信息 + */ public static final String[] NOTE_PROJECTION = new String[] { NoteColumns.PARENT_ID, NoteColumns.ALERTED_DATE, @@ -81,27 +135,66 @@ public class WorkingNote { NoteColumns.MODIFIED_DATE }; + /** + * 数据查询结果列索引:数据ID + */ 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; + /** + * 笔记查询结果列索引:父文件夹ID + */ private static final int NOTE_PARENT_ID_COLUMN = 0; + /** + * 笔记查询结果列索引:提醒日期 + */ private static final int NOTE_ALERTED_DATE_COLUMN = 1; + /** + * 笔记查询结果列索引:背景颜色ID + */ private static final int NOTE_BG_COLOR_ID_COLUMN = 2; + /** + * 笔记查询结果列索引:小部件ID + */ 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; @@ -115,6 +208,16 @@ public class WorkingNote { } // Existing note construct + /** + * 构造现有笔记的私有构造方法 + *

+ * 根据笔记ID初始化一个工作笔记对象,并从数据库加载笔记数据。 + *

+ * + * @param context 应用上下文 + * @param noteId 笔记ID + * @param folderId 笔记所属文件夹ID + */ private WorkingNote(Context context, long noteId, long folderId) { mContext = context; mNoteId = noteId; @@ -124,6 +227,13 @@ public class WorkingNote { loadNote(); } + /** + * 从数据库加载笔记基本信息 + *

+ * 从ContentResolver中查询并加载笔记的基本信息,包括文件夹ID、背景颜色、 + * 小部件信息、提醒日期和修改日期等。 + *

+ */ private void loadNote() { Cursor cursor = mContext.getContentResolver().query( ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, mNoteId), NOTE_PROJECTION, null, @@ -146,6 +256,12 @@ public class WorkingNote { loadNoteData(); } + /** + * 从数据库加载笔记详细数据 + *

+ * 从ContentResolver中查询并加载笔记的详细数据,包括文本内容和模式等。 + *

+ */ private void loadNoteData() { Cursor cursor = mContext.getContentResolver().query(Notes.CONTENT_DATA_URI, DATA_PROJECTION, DataColumns.NOTE_ID + "=?", new String[] { @@ -174,6 +290,19 @@ 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 +312,29 @@ public class WorkingNote { return note; } + /** + * 加载现有笔记的静态工厂方法 + *

+ * 根据笔记ID加载一个现有的工作笔记对象。 + *

+ * + * @param context 应用上下文 + * @param id 笔记ID + * @return 加载的工作笔记 + */ public static WorkingNote load(Context context, long id) { return new WorkingNote(context, id, 0); } + /** + * 保存笔记到数据库 + *

+ * 将当前工作笔记保存到数据库中。如果笔记不存在,则创建新笔记; + * 如果笔记已存在,则更新现有笔记。 + *

+ * + * @return 保存成功返回true,否则返回false + */ public synchronized boolean saveNote() { if (isWorthSaving()) { if (!existInDatabase()) { @@ -212,10 +360,27 @@ public class WorkingNote { } } + /** + * 检查笔记是否存在于数据库 + *

+ * 检查当前工作笔记是否已存在于数据库中。 + *

+ * + * @return 存在返回true,否则返回false + */ public boolean existInDatabase() { return mNoteId > 0; } + /** + * 检查笔记是否值得保存 + *

+ * 检查当前工作笔记是否值得保存到数据库中。如果笔记已删除、 + * 内容为空且不存在于数据库中,或者存在于数据库但未修改,则不值得保存。 + *

+ * + * @return 值得保存返回true,否则返回false + */ private boolean isWorthSaving() { if (mIsDeleted || (!existInDatabase() && TextUtils.isEmpty(mContent)) || (existInDatabase() && !mNote.isLocalModified())) { @@ -225,10 +390,28 @@ 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 +422,14 @@ public class WorkingNote { } } + /** + * 标记笔记是否删除 + *

+ * 标记笔记是否已删除,并通知监听器。 + *

+ * + * @param mark 删除标记 + */ public void markDeleted(boolean mark) { mIsDeleted = mark; if (mWidgetId != AppWidgetManager.INVALID_APPWIDGET_ID @@ -247,6 +438,14 @@ public class WorkingNote { } } + /** + * 设置笔记背景颜色ID + *

+ * 设置笔记的背景颜色ID,并通知监听器。 + *

+ * + * @param id 背景颜色ID + */ public void setBgColorId(int id) { if (id != mBgColorId) { mBgColorId = id; @@ -257,6 +456,14 @@ public class WorkingNote { } } + /** + * 设置笔记的清单模式 + *

+ * 设置笔记的模式(普通模式或清单模式),并通知监听器。 + *

+ * + * @param mode 清单模式 + */ public void setCheckListMode(int mode) { if (mMode != mode) { if (mNoteSettingStatusListener != null) { @@ -267,6 +474,14 @@ public class WorkingNote { } } + /** + * 设置小部件类型 + *

+ * 设置与当前笔记关联的小部件类型。 + *

+ * + * @param type 小部件类型 + */ public void setWidgetType(int type) { if (type != mWidgetType) { mWidgetType = type; @@ -274,6 +489,14 @@ public class WorkingNote { } } + /** + * 设置小部件ID + *

+ * 设置与当前笔记关联的小部件ID。 + *

+ * + * @param id 小部件ID + */ public void setWidgetId(int id) { if (id != mWidgetId) { mWidgetId = id; @@ -281,6 +504,14 @@ public class WorkingNote { } } + /** + * 设置笔记内容 + *

+ * 设置笔记的文本内容。 + *

+ * + * @param text 笔记内容 + */ public void setWorkingText(String text) { if (!TextUtils.equals(mContent, text)) { mContent = text; @@ -288,80 +519,208 @@ 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 有提醒返回true,否则返回false + */ 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 + *

+ * 根据背景颜色ID获取对应的背景颜色资源ID。 + *

+ * + * @return 背景颜色资源ID + */ public int getBgColorResId() { return NoteBgResources.getNoteBgResource(mBgColorId); } + /** + * 获取背景颜色ID + *

+ * 获取当前笔记的背景颜色ID。 + *

+ * + * @return 背景颜色ID + */ public int getBgColorId() { return mBgColorId; } + /** + * 获取标题背景资源ID + *

+ * 根据背景颜色ID获取对应的标题背景资源ID。 + *

+ * + * @return 标题背景资源ID + */ public int getTitleBgResId() { return NoteBgResources.getNoteTitleBgResource(mBgColorId); } + /** + * 获取清单模式 + *

+ * 获取当前笔记的模式(普通模式或清单模式)。 + *

+ * + * @return 清单模式 + */ public int getCheckListMode() { return mMode; } + /** + * 获取笔记ID + *

+ * 获取当前笔记的ID。 + *

+ * + * @return 笔记ID + */ public long getNoteId() { return mNoteId; } + /** + * 获取文件夹ID + *

+ * 获取当前笔记所属的文件夹ID。 + *

+ * + * @return 文件夹ID + */ public long getFolderId() { return mFolderId; } + /** + * 获取小部件ID + *

+ * 获取与当前笔记关联的小部件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/main/java/net/micode/notes/ui/AlarmAlertActivity.java b/src/main/java/net/micode/notes/ui/AlarmAlertActivity.java index 85723be..fd4c758 100644 --- a/src/main/java/net/micode/notes/ui/AlarmAlertActivity.java +++ b/src/main/java/net/micode/notes/ui/AlarmAlertActivity.java @@ -40,12 +40,48 @@ 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; + /** + * 活动创建时的初始化方法 + *

+ * 该方法完成以下初始化工作: + * 1. 设置窗口特性,隐藏标题栏 + * 2. 配置窗口标志,确保在锁屏状态下也能显示 + * 3. 如果屏幕未开启,则添加额外标志以唤醒屏幕并保持点亮 + * 4. 从Intent中获取笔记ID和摘要信息 + * 5. 创建MediaPlayer实例用于播放提醒铃声 + * 6. 检查笔记是否存在于数据库中 + * 7. 如果笔记存在,则显示提醒对话框并播放提醒铃声 + *

+ * @param savedInstanceState 保存的实例状态 + */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -83,11 +119,31 @@ public class AlarmAlertActivity extends Activity implements OnClickListener, OnD } } + /** + * 检查屏幕是否处于开启状态 + *

+ * 该方法通过PowerManager系统服务获取当前屏幕状态 + *

+ * @return 如果屏幕处于开启状态则返回true,否则返回false + */ private boolean isScreenOn() { PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); return pm.isScreenOn(); } + /** + * 播放提醒铃声 + *

+ * 该方法完成以下工作: + * 1. 获取系统默认的闹钟铃声URI + * 2. 检查系统的静音模式设置,确定应该使用的音频流类型 + * 3. 根据静音模式设置选择合适的音频流类型 + * 4. 设置MediaPlayer的数据源为获取到的铃声URI + * 5. 准备MediaPlayer并设置为循环播放模式 + * 6. 开始播放提醒铃声 + * 7. 处理可能出现的各种异常 + *

+ */ private void playAlarmSound() { Uri url = RingtoneManager.getActualDefaultRingtoneUri(this, RingtoneManager.TYPE_ALARM); @@ -119,6 +175,17 @@ public class AlarmAlertActivity extends Activity implements OnClickListener, OnD } } + /** + * 显示提醒对话框 + *

+ * 该方法创建并显示一个提醒对话框,包含以下内容: + * 1. 设置对话框标题为应用名称 + * 2. 设置对话框消息为笔记的摘要内容 + * 3. 添加确定按钮,点击后关闭对话框 + * 4. 如果屏幕处于开启状态,添加进入按钮,点击后进入笔记编辑界面 + * 5. 设置对话框关闭监听器,用于在对话框关闭时停止提醒铃声并结束活动 + *

+ */ private void showActionDialog() { AlertDialog.Builder dialog = new AlertDialog.Builder(this); dialog.setTitle(R.string.app_name); @@ -130,6 +197,18 @@ public class AlarmAlertActivity extends Activity implements OnClickListener, OnD dialog.show().setOnDismissListener(this); } + /** + * 处理提醒对话框中的按钮点击事件 + *

+ * 该方法实现了OnClickListener接口,根据点击的按钮执行不同的操作: + * 1. 如果点击的是负按钮(进入按钮),则创建Intent跳转到NoteEditActivity + * 2. 设置Intent的Action为ACTION_VIEW,并将笔记ID作为额外数据传递 + * 3. 启动NoteEditActivity让用户查看或编辑对应的笔记 + * 4. 如果点击的是其他按钮(如确定按钮),则不执行任何额外操作 + *

+ * @param dialog 触发点击事件的对话框 + * @param which 点击的按钮ID,对应DialogInterface中的按钮常量 + */ public void onClick(DialogInterface dialog, int which) { switch (which) { case DialogInterface.BUTTON_NEGATIVE: @@ -143,11 +222,29 @@ public class AlarmAlertActivity extends Activity implements OnClickListener, OnD } } + /** + * 处理提醒对话框关闭事件 + *

+ * 该方法实现了OnDismissListener接口,当提醒对话框被关闭时(无论点击了哪个按钮或通过其他方式关闭), + * 会停止提醒铃声并结束当前活动 + *

+ * @param dialog 被关闭的对话框 + */ public void onDismiss(DialogInterface dialog) { stopAlarmSound(); finish(); } + /** + * 停止提醒铃声并释放媒体播放器资源 + *

+ * 该方法完成以下工作: + * 1. 检查媒体播放器是否存在 + * 2. 如果存在,则停止播放铃声 + * 3. 释放媒体播放器占用的资源 + * 4. 将媒体播放器引用置为null,防止内存泄漏 + *

+ */ private void stopAlarmSound() { if (mPlayer != null) { mPlayer.stop(); diff --git a/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java b/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java index f221202..4de50d9 100644 --- a/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java +++ b/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java @@ -28,16 +28,44 @@ import net.micode.notes.data.Notes; import net.micode.notes.data.Notes.NoteColumns; +/** + * 闹钟初始化广播接收器 + *

+ * 该广播接收器负责在系统启动时重新注册所有未触发的笔记闹钟。 + * 当系统重启后,之前设置的闹钟会丢失,需要通过该接收器重新初始化 + *

+ */ public class AlarmInitReceiver extends BroadcastReceiver { - + /** + * 闹钟数据查询的投影列数组 + *

+ * 定义了从数据库查询笔记闹钟数据时需要获取的列,包括笔记ID和闹钟触发日期 + *

+ */ private static final String [] PROJECTION = new String [] { NoteColumns.ID, NoteColumns.ALERTED_DATE }; + /** + * 查询结果中笔记ID列的索引 + */ private static final int COLUMN_ID = 0; + + /** + * 查询结果中闹钟触发日期列的索引 + */ private static final int COLUMN_ALERTED_DATE = 1; + /** + * 接收广播时调用的方法 + *

+ * 当系统发送广播时(通常是系统启动完成),该方法会查询所有设置了未来闹钟的笔记, + * 并使用AlarmManager重新注册这些闹钟 + *

+ * @param context 上下文对象 + * @param intent 接收到的广播意图 + */ @Override public void onReceive(Context context, Intent intent) { long currentDate = System.currentTimeMillis(); @@ -54,8 +82,8 @@ public class AlarmInitReceiver extends BroadcastReceiver { Intent sender = new Intent(context, AlarmReceiver.class); sender.setData(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, c.getLong(COLUMN_ID))); PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, sender, 0); - AlarmManager alermManager = (AlarmManager) context - .getSystemService(Context.ALARM_SERVICE); + AlarmManager alermManager = (AlarmManager) + context.getSystemService(Context.ALARM_SERVICE); alermManager.set(AlarmManager.RTC_WAKEUP, alertDate, pendingIntent); } while (c.moveToNext()); } diff --git a/src/main/java/net/micode/notes/ui/AlarmReceiver.java b/src/main/java/net/micode/notes/ui/AlarmReceiver.java index 54e503b..610716c 100644 --- a/src/main/java/net/micode/notes/ui/AlarmReceiver.java +++ b/src/main/java/net/micode/notes/ui/AlarmReceiver.java @@ -20,7 +20,21 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; +/** + * 闹钟触发广播接收器 + *

+ * 该广播接收器负责处理闹钟触发事件,当闹钟时间到达时,它会启动闹钟提醒活动 + *

+ */ public class AlarmReceiver extends BroadcastReceiver { + /** + * 接收闹钟触发广播时调用的方法 + *

+ * 当闹钟时间到达时,该方法会启动AlarmAlertActivity来显示闹钟提醒 + *

+ * @param context 上下文对象 + * @param intent 接收到的广播意图,包含闹钟相关的笔记信息 + */ @Override public void onReceive(Context context, Intent intent) { intent.setClass(context, AlarmAlertActivity.class); diff --git a/src/main/java/net/micode/notes/ui/DateTimePicker.java b/src/main/java/net/micode/notes/ui/DateTimePicker.java index 496b0cd..c805b60 100644 --- a/src/main/java/net/micode/notes/ui/DateTimePicker.java +++ b/src/main/java/net/micode/notes/ui/DateTimePicker.java @@ -28,40 +28,139 @@ import android.view.View; import android.widget.FrameLayout; import android.widget.NumberPicker; +/** + * 日期时间选择组件 + *

+ * 该类是一个自定义的日期时间选择组件,继承自FrameLayout,用于在小米便签应用中 + * 提供直观的日期时间选择界面。它支持12/24小时制切换,并通过NumberPicker组件 + * 实现日期、小时、分钟和AM/PM的选择 + *

+ */ public class DateTimePicker extends FrameLayout { + /** + * 默认启用状态 + */ private static final boolean DEFAULT_ENABLE_STATE = true; + /** + * 半天的小时数(12小时) + */ private static final int HOURS_IN_HALF_DAY = 12; + + /** + * 全天的小时数(24小时) + */ private static final int HOURS_IN_ALL_DAY = 24; + + /** + * 一周的天数(7天) + */ private static final int DAYS_IN_ALL_WEEK = 7; + + /** + * 日期选择器的最小值 + */ private static final int DATE_SPINNER_MIN_VAL = 0; + + /** + * 日期选择器的最大值 + */ private static final int DATE_SPINNER_MAX_VAL = DAYS_IN_ALL_WEEK - 1; + + /** + * 24小时制下小时选择器的最小值 + */ private static final int HOUR_SPINNER_MIN_VAL_24_HOUR_VIEW = 0; + + /** + * 24小时制下小时选择器的最大值 + */ private static final int HOUR_SPINNER_MAX_VAL_24_HOUR_VIEW = 23; + + /** + * 12小时制下小时选择器的最小值 + */ private static final int HOUR_SPINNER_MIN_VAL_12_HOUR_VIEW = 1; + + /** + * 12小时制下小时选择器的最大值 + */ private static final int HOUR_SPINNER_MAX_VAL_12_HOUR_VIEW = 12; + + /** + * 分钟选择器的最小值 + */ private static final int MINUT_SPINNER_MIN_VAL = 0; + + /** + * 分钟选择器的最大值 + */ private static final int MINUT_SPINNER_MAX_VAL = 59; + + /** + * AM/PM选择器的最小值 + */ private static final int AMPM_SPINNER_MIN_VAL = 0; + + /** + * AM/PM选择器的最大值 + */ private static final int AMPM_SPINNER_MAX_VAL = 1; + /** + * 日期选择器组件 + */ private final NumberPicker mDateSpinner; + + /** + * 小时选择器组件 + */ private final NumberPicker mHourSpinner; + + /** + * 分钟选择器组件 + */ private final NumberPicker mMinuteSpinner; + + /** + * AM/PM选择器组件 + */ private final NumberPicker mAmPmSpinner; + + /** + * 当前选择的日期和时间 + */ private Calendar mDate; + /** + * 日期选择器显示的日期值数组 + */ private String[] mDateDisplayValues = new String[DAYS_IN_ALL_WEEK]; + /** + * 是否为上午 + */ private boolean mIsAm; + /** + * 是否为24小时制视图 + */ private boolean mIs24HourView; + /** + * 组件是否启用 + */ private boolean mIsEnabled = DEFAULT_ENABLE_STATE; + /** + * 是否正在初始化 + */ private boolean mInitialising; + /** + * 日期时间变化监听器 + */ private OnDateTimeChangedListener mOnDateTimeChangedListener; private NumberPicker.OnValueChangeListener mOnDateChangedListener = new NumberPicker.OnValueChangeListener() { @@ -158,19 +257,49 @@ public class DateTimePicker extends FrameLayout { } }; + /** + * 日期时间变化监听器接口 + *

+ * 当日期时间选择器的值发生变化时,会通过此接口通知外部 + *

+ */ public interface OnDateTimeChangedListener { + /** + * 日期时间变化时调用的方法 + * @param view 日期时间选择器实例 + * @param year 选择的年份 + * @param month 选择的月份(0-11) + * @param dayOfMonth 选择的日(1-31) + * @param hourOfDay 选择的小时(0-23) + * @param minute 选择的分钟(0-59) + */ void onDateTimeChanged(DateTimePicker view, int year, int month, int dayOfMonth, int hourOfDay, int minute); } + /** + * 构造函数,使用当前时间初始化日期时间选择器 + * @param context 上下文对象 + */ public DateTimePicker(Context context) { this(context, System.currentTimeMillis()); } + /** + * 构造函数,使用指定时间初始化日期时间选择器,根据系统设置决定是否使用24小时制 + * @param context 上下文对象 + * @param date 初始日期时间,以毫秒为单位 + */ public DateTimePicker(Context context, long date) { this(context, date, DateFormat.is24HourFormat(context)); } + /** + * 构造函数,使用指定时间和时间格式初始化日期时间选择器 + * @param context 上下文对象 + * @param date 初始日期时间,以毫秒为单位 + * @param is24HourView 是否使用24小时制 + */ public DateTimePicker(Context context, long date, boolean is24HourView) { super(context); mDate = Calendar.getInstance(); @@ -348,6 +477,15 @@ public class DateTimePicker extends FrameLayout { return mDate.get(Calendar.HOUR_OF_DAY); } + /** + * 获取当前小时 + *

+ * 根据当前视图模式返回正确的小时值: + * - 24小时制:直接返回当前小时(0-23) + * - 12小时制:返回1-12之间的小时值 + *

+ * @return 当前小时值 + */ private int getCurrentHour() { if (mIs24HourView){ return getCurrentHourOfDay(); @@ -362,9 +500,8 @@ public class DateTimePicker extends FrameLayout { } /** - * Set current hour in 24 hour mode, in the range (0~23) - * - * @param hourOfDay + * 设置当前小时(24小时制,范围0-23) + * @param hourOfDay 当前小时值(24小时制) */ public void setCurrentHour(int hourOfDay) { if (!mInitialising && hourOfDay == getCurrentHourOfDay()) { @@ -390,16 +527,16 @@ public class DateTimePicker extends FrameLayout { } /** - * Get currentMinute - * - * @return The Current Minute + * 获取当前分钟 + * @return 当前分钟值(0-59) */ public int getCurrentMinute() { return mDate.get(Calendar.MINUTE); } /** - * Set current minute + * 设置当前分钟 + * @param minute 当前分钟值(0-59) */ public void setCurrentMinute(int minute) { if (!mInitialising && minute == getCurrentMinute()) { @@ -411,16 +548,16 @@ public class DateTimePicker extends FrameLayout { } /** - * @return true if this is in 24 hour view else false. + * 获取当前是否为24小时制视图 + * @return true表示为24小时制视图,false表示为12小时制视图 */ 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. + * 设置是否使用24小时制或AM/PM模式 + * @param is24HourView true表示使用24小时制,false表示使用AM/PM模式 */ public void set24HourView(boolean is24HourView) { if (mIs24HourView == is24HourView) { @@ -434,6 +571,12 @@ public class DateTimePicker extends FrameLayout { updateAmPmControl(); } + /** + * 更新日期控件 + *

+ * 该方法负责更新日期选择器的显示值,显示当前日期前后几天的日期 + *

+ */ private void updateDateControl() { Calendar cal = Calendar.getInstance(); cal.setTimeInMillis(mDate.getTimeInMillis()); @@ -448,6 +591,12 @@ public class DateTimePicker extends FrameLayout { mDateSpinner.invalidate(); } + /** + * 更新AM/PM控件 + *

+ * 该方法负责根据当前时间和视图模式更新AM/PM选择器的显示 + *

+ */ private void updateAmPmControl() { if (mIs24HourView) { mAmPmSpinner.setVisibility(View.GONE); @@ -458,6 +607,12 @@ public class DateTimePicker extends FrameLayout { } } + /** + * 更新小时控件 + *

+ * 该方法负责根据当前视图模式更新小时选择器的最小值和最大值 + *

+ */ private void updateHourControl() { if (mIs24HourView) { mHourSpinner.setMinValue(HOUR_SPINNER_MIN_VAL_24_HOUR_VIEW); @@ -469,13 +624,19 @@ 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 + * 设置日期时间变化监听器 + * @param callback 日期时间变化时的回调函数,若为null则不执行任何操作 */ public void setOnDateTimeChangedListener(OnDateTimeChangedListener callback) { mOnDateTimeChangedListener = callback; } + /** + * 日期时间变化时调用的方法 + *

+ * 当日期或时间发生变化时,该方法会通知注册的监听器 + *

+ */ private void onDateTimeChanged() { if (mOnDateTimeChangedListener != null) { mOnDateTimeChangedListener.onDateTimeChanged(this, getCurrentYear(), diff --git a/src/main/java/net/micode/notes/ui/DateTimePickerDialog.java b/src/main/java/net/micode/notes/ui/DateTimePickerDialog.java index 2c47ba4..b9986ac 100644 --- a/src/main/java/net/micode/notes/ui/DateTimePickerDialog.java +++ b/src/main/java/net/micode/notes/ui/DateTimePickerDialog.java @@ -29,17 +29,55 @@ import android.content.DialogInterface.OnClickListener; import android.text.format.DateFormat; import android.text.format.DateUtils; +/** + * 日期时间选择对话框 + *

+ * 该类是一个封装了DateTimePicker组件的对话框,用于在小米便签应用中 + * 提供一个完整的日期时间选择界面。用户可以通过该对话框选择日期和时间, + * 并在确认后将选择结果返回给调用者 + *

+ */ 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 { + /** + * 日期时间设置完成时调用的方法 + * @param dialog 对话框实例 + * @param date 选择的日期时间,以毫秒为单位 + */ void OnDateTimeSet(AlertDialog dialog, long date); } + /** + * 构造函数,使用指定日期初始化日期时间选择对话框 + * @param context 上下文对象 + * @param date 初始日期时间,以毫秒为单位 + */ public DateTimePickerDialog(Context context, long date) { super(context); mDateTimePicker = new DateTimePicker(context); @@ -64,14 +102,29 @@ public class DateTimePickerDialog extends AlertDialog implements OnClickListener 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 +134,15 @@ public class DateTimePickerDialog extends AlertDialog implements OnClickListener setTitle(DateUtils.formatDateTime(this.getContext(), date, flag)); } + /** + * 点击对话框按钮时调用的方法 + *

+ * 当用户点击对话框的确定按钮时,会调用该方法,通知注册的监听器 + *

+ * @param arg0 对话框实例 + * @param arg1 点击的按钮ID + */ + @Override public void onClick(DialogInterface arg0, int arg1) { if (mOnDateTimeSetListener != null) { mOnDateTimeSetListener.OnDateTimeSet(this, mDate.getTimeInMillis()); diff --git a/src/main/java/net/micode/notes/ui/DropdownMenu.java b/src/main/java/net/micode/notes/ui/DropdownMenu.java index 613dc74..4e58bbb 100644 --- a/src/main/java/net/micode/notes/ui/DropdownMenu.java +++ b/src/main/java/net/micode/notes/ui/DropdownMenu.java @@ -27,11 +27,34 @@ import android.widget.PopupMenu.OnMenuItemClickListener; import net.micode.notes.R; +/** + * 下拉菜单封装类 + *

+ * 该类封装了Android的PopupMenu,提供了一个简单的接口来创建和管理下拉菜单 + *

+ */ 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); @@ -45,16 +68,29 @@ public class DropdownMenu { }); } + /** + * 设置下拉菜单项点击监听器 + * @param listener 菜单项点击监听器 + */ public void setOnDropdownMenuItemClickListener(OnMenuItemClickListener listener) { if (mPopupMenu != null) { mPopupMenu.setOnMenuItemClickListener(listener); } } + /** + * 查找指定ID的菜单项 + * @param id 菜单项ID + * @return 指定ID的菜单项,若不存在则返回null + */ public MenuItem findItem(int id) { return mMenu.findItem(id); } + /** + * 设置下拉菜单按钮的标题 + * @param title 按钮标题 + */ public void setTitle(CharSequence title) { mButton.setText(title); } diff --git a/src/main/java/net/micode/notes/ui/FoldersListAdapter.java b/src/main/java/net/micode/notes/ui/FoldersListAdapter.java index 96b77da..7e05bf2 100644 --- a/src/main/java/net/micode/notes/ui/FoldersListAdapter.java +++ b/src/main/java/net/micode/notes/ui/FoldersListAdapter.java @@ -29,25 +29,62 @@ import net.micode.notes.data.Notes; import net.micode.notes.data.Notes.NoteColumns; +/** + * 文件夹列表适配器 + *

+ * 该类继承自CursorAdapter,用于在小米便签应用中显示文件夹列表 + *

+ */ public class FoldersListAdapter extends CursorAdapter { + /** + * 文件夹数据查询的投影列数组 + *

+ * 定义了从数据库查询文件夹数据时需要获取的列,包括文件夹ID和名称 + *

+ */ public static final String [] PROJECTION = { NoteColumns.ID, NoteColumns.SNIPPET }; + /** + * 查询结果中文件夹ID列的索引 + */ public static final int ID_COLUMN = 0; + + /** + * 查询结果中文件夹名称列的索引 + */ 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 新创建的列表项视图 + */ @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) { @@ -57,21 +94,44 @@ public class FoldersListAdapter extends CursorAdapter { } } + /** + * 获取指定位置的文件夹名称 + * @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; + /** + * 构造函数,创建文件夹列表项视图 + * @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/main/java/net/micode/notes/ui/NoteEditActivity.java b/src/main/java/net/micode/notes/ui/NoteEditActivity.java index 96a9ff8..088dac7 100644 --- a/src/main/java/net/micode/notes/ui/NoteEditActivity.java +++ b/src/main/java/net/micode/notes/ui/NoteEditActivity.java @@ -72,8 +72,18 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +/** + * 笔记编辑活动类,负责处理笔记的创建、编辑和保存操作。 + *

+ * 该类实现了笔记编辑界面的所有功能,包括文本编辑、背景颜色设置、字体大小调整、 + * 提醒设置、分享等功能,同时支持普通文本模式和清单模式的切换。 + *

+ */ public class NoteEditActivity extends Activity implements OnClickListener, NoteSettingChangedListener, OnTextViewChangeListener { + /** + * 头部视图持有者类,用于缓存头部视图的控件引用 + */ private class HeadViewHolder { public TextView tvModified; @@ -84,6 +94,7 @@ public class NoteEditActivity extends Activity implements OnClickListener, public ImageView ibSetBgColor; } + /** 背景颜色选择按钮映射表,将按钮ID映射到颜色ID */ private static final Map sBgSelectorBtnsMap = new HashMap(); static { sBgSelectorBtnsMap.put(R.id.iv_bg_yellow, ResourceParser.YELLOW); @@ -93,6 +104,7 @@ public class NoteEditActivity extends Activity implements OnClickListener, sBgSelectorBtnsMap.put(R.id.iv_bg_white, ResourceParser.WHITE); } + /** 背景颜色选择高亮映射表,将颜色ID映射到高亮视图ID */ private static final Map sBgSelectorSelectionMap = new HashMap(); static { sBgSelectorSelectionMap.put(ResourceParser.YELLOW, R.id.iv_bg_yellow_select); @@ -102,6 +114,7 @@ public class NoteEditActivity extends Activity implements OnClickListener, sBgSelectorSelectionMap.put(ResourceParser.WHITE, R.id.iv_bg_white_select); } + /** 字体大小按钮映射表,将按钮ID映射到字体大小ID */ private static final Map sFontSizeBtnsMap = new HashMap(); static { sFontSizeBtnsMap.put(R.id.ll_font_large, ResourceParser.TEXT_LARGE); @@ -110,6 +123,7 @@ public class NoteEditActivity extends Activity implements OnClickListener, sFontSizeBtnsMap.put(R.id.ll_font_super, ResourceParser.TEXT_SUPER); } + /** 字体大小选择高亮映射表,将字体大小ID映射到高亮视图ID */ private static final Map sFontSelectorSelectionMap = new HashMap(); static { sFontSelectorSelectionMap.put(ResourceParser.TEXT_LARGE, R.id.iv_large_select); @@ -118,37 +132,59 @@ public class NoteEditActivity extends Activity implements OnClickListener, sFontSelectorSelectionMap.put(ResourceParser.TEXT_SUPER, R.id.iv_super_select); } + /** 日志标签 */ 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; + /** 字体大小ID */ private int mFontSizeId; + /** 字体大小偏好设置键 */ private static final String PREFERENCE_FONT_SIZE = "pref_font_size"; + /** 快捷图标标题最大长度 */ private static final int SHORTCUT_ICON_TITLE_MAX_LEN = 10; + /** 已选中标记 */ public static final String TAG_CHECKED = String.valueOf('\u221A'); + /** 未选中标记 */ public static final String TAG_UNCHECKED = String.valueOf('\u25A1'); + /** 清单模式下的编辑文本列表 */ private LinearLayout mEditTextList; + /** 用户查询字符串 */ private String mUserQuery; + /** 查询正则表达式模式 */ private Pattern mPattern; + /** + * 活动创建时调用,初始化界面和状态 + * + * @param savedInstanceState 保存的实例状态 + */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -179,6 +215,12 @@ public class NoteEditActivity extends Activity implements OnClickListener, } } + /** + * 初始化活动状态,根据传入的Intent处理不同的操作 + * + * @param intent 包含操作信息的Intent + * @return 初始化是否成功 + */ private boolean initActivityState(Intent intent) { /** * If the user specified the {@link Intent#ACTION_VIEW} but not provided with id, @@ -262,12 +304,18 @@ public class NoteEditActivity extends Activity implements OnClickListener, return true; } + /** + * 活动恢复时调用,初始化笔记屏幕 + */ @Override protected void onResume() { super.onResume(); initNoteScreen(); } + /** + * 初始化笔记屏幕显示,包括字体样式、显示模式、背景颜色等 + */ private void initNoteScreen() { mNoteEditor.setTextAppearance(this, TextAppearanceResources .getTexAppearanceResource(mFontSizeId)); @@ -295,6 +343,9 @@ public class NoteEditActivity extends Activity implements OnClickListener, showAlertHeader(); } + /** + * 显示提醒头部信息,包括提醒图标和提醒时间 + */ private void showAlertHeader() { if (mWorkingNote.hasClockAlert()) { long time = System.currentTimeMillis(); @@ -312,12 +363,22 @@ public class NoteEditActivity extends Activity implements OnClickListener, }; } + /** + * 处理活动收到的新Intent + * + * @param intent 新的Intent对象 + */ @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); initActivityState(intent); } + /** + * 保存活动状态,当活动可能被销毁时调用 + * + * @param outState 用于保存状态的Bundle对象 + */ @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); @@ -333,6 +394,12 @@ public class NoteEditActivity extends Activity implements OnClickListener, Log.d(TAG, "Save working note id: " + mWorkingNote.getNoteId() + " onSaveInstanceState"); } + /** + * 分发触摸事件,当点击外部区域时关闭颜色选择器和字体大小选择器 + * + * @param ev 触摸事件对象 + * @return 事件是否被消费 + */ @Override public boolean dispatchTouchEvent(MotionEvent ev) { if (mNoteBgColorSelector.getVisibility() == View.VISIBLE @@ -349,6 +416,13 @@ 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,6 +437,9 @@ public class NoteEditActivity extends Activity implements OnClickListener, return true; } + /** + * 初始化资源,包括视图、事件监听器等 + */ private void initResources() { mHeadViewPanel = findViewById(R.id.note_title); mNoteHeaderHolder = new HeadViewHolder(); @@ -397,6 +474,9 @@ public class NoteEditActivity extends Activity implements OnClickListener, mEditTextList = (LinearLayout) findViewById(R.id.note_edit_list); } + /** + * 活动暂停时调用,保存笔记并清除设置状态 + */ @Override protected void onPause() { super.onPause(); @@ -406,6 +486,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,6 +508,11 @@ public class NoteEditActivity extends Activity implements OnClickListener, setResult(RESULT_OK, intent); } + /** + * 处理视图的点击事件 + * + * @param v 被点击的视图对象 + */ public void onClick(View v) { int id = v.getId(); if (id == R.id.btn_set_bg_color) { @@ -452,6 +540,12 @@ public class NoteEditActivity extends Activity implements OnClickListener, } } + /** + * 处理返回按钮点击事件 + *

+ * 先尝试清除设置状态,如果成功则不执行返回操作,否则保存笔记并执行返回 + *

+ */ @Override public void onBackPressed() { if(clearSettingState()) { @@ -462,6 +556,11 @@ public class NoteEditActivity extends Activity implements OnClickListener, super.onBackPressed(); } + /** + * 清除设置状态,隐藏所有设置选择器 + * + * @return 如果有设置选择器被隐藏,则返回true;否则返回false + */ private boolean clearSettingState() { if (mNoteBgColorSelector.getVisibility() == View.VISIBLE) { mNoteBgColorSelector.setVisibility(View.GONE); @@ -473,6 +572,12 @@ public class NoteEditActivity extends Activity implements OnClickListener, return false; } + /** + * 背景颜色改变时调用的回调方法 + *

+ * 显示当前选中的背景颜色,并更新头部面板和编辑面板的背景资源 + *

+ */ public void onBackgroundColorChanged() { findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility( View.VISIBLE); @@ -480,6 +585,16 @@ public class NoteEditActivity extends Activity implements OnClickListener, mHeadViewPanel.setBackgroundResource(mWorkingNote.getTitleBgResId()); } + /** + * 准备选项菜单,在菜单显示前调用 + *

+ * 根据笔记类型和当前状态动态配置菜单项,包括加载不同的菜单资源、 + * 设置菜单标题和控制菜单项的可见性 + *

+ * + * @param menu 要准备的菜单对象 + * @return 是否成功准备菜单 + */ @Override public boolean onPrepareOptionsMenu(Menu menu) { if (isFinishing()) { @@ -505,6 +620,15 @@ public class NoteEditActivity extends Activity implements OnClickListener, return true; } + /** + * 处理菜单选项选择事件 + *

+ * 该方法处理各种菜单选项的点击事件,包括创建新笔记、删除笔记、设置字体大小、 + * 切换列表模式、分享笔记、发送到桌面、设置提醒等功能 + *

+ * @param item 被选择的菜单项 + * @return 总是返回true,表示事件已被处理 + */ @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { @@ -553,6 +677,13 @@ 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 +695,12 @@ 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}类型的应用 + *

+ * 该方法创建一个分享意图,将笔记内容发送给其他支持文本分享的应用程序 + *

+ * @param context 上下文对象 + * @param info 要分享的笔记内容 */ private void sendTo(Context context, String info) { Intent intent = new Intent(Intent.ACTION_SEND); @@ -574,6 +709,13 @@ public class NoteEditActivity extends Activity implements OnClickListener, context.startActivity(intent); } + /** + * 创建新笔记 + *

+ * 该方法先保存当前编辑的笔记,然后结束当前活动并启动一个新的NoteEditActivity + * 来创建新笔记,确保笔记保存在同一文件夹中 + *

+ */ private void createNewNote() { // Firstly, save current editing notes saveNote(); @@ -586,6 +728,15 @@ public class NoteEditActivity extends Activity implements OnClickListener, startActivity(intent); } + /** + * 删除当前编辑的笔记 + *

+ * 该方法根据笔记是否存在于数据库中进行处理: + * 1. 如果笔记存在,将其ID添加到待删除列表 + * 2. 如果不是同步模式,直接删除笔记 + * 3. 如果是同步模式,将笔记移动到垃圾桶 + *

+ */ private void deleteCurrentNote() { if (mWorkingNote.existInDatabase()) { HashSet ids = new HashSet(); @@ -608,15 +759,28 @@ public class NoteEditActivity extends Activity implements OnClickListener, mWorkingNote.markDeleted(true); } + /** + * 检查是否启用了同步模式 + *

+ * 该方法通过检查同步账户名称是否存在来判断是否启用了同步模式 + *

+ * @return 如果启用了同步模式返回true,否则返回false + */ private boolean isSyncMode() { return NotesPreferenceActivity.getSyncAccountName(this).trim().length() > 0; } + /** + * 处理时钟提醒的变化 + *

+ * 该方法用于设置或取消笔记的时钟提醒, + * 如果笔记未保存,会先保存笔记,然后根据参数设置或取消闹钟 + *

+ * @param date 提醒时间的时间戳 + * @param set 如果为true则设置提醒,为false则取消提醒 + */ public void onClockAlertChanged(long date, boolean set) { - /** - * User could set clock to an unsaved note, so before setting the - * alert clock, we should save the note first - */ + // 用户可能会为未保存的笔记设置时钟,所以在设置提醒时钟之前,我们应该先保存笔记 if (!mWorkingNote.existInDatabase()) { saveNote(); } @@ -642,10 +806,29 @@ public class NoteEditActivity extends Activity implements OnClickListener, } } + /** + * 更新小部件 + *

+ * 该方法调用updateWidget()方法来更新桌面小部件的内容 + *

+ */ public void onWidgetChanged() { updateWidget(); } + /** + * 处理编辑文本的删除操作 + *

+ * 该方法处理用户在编辑文本时按下删除键的操作,特别是在列表模式下: + * 1. 检查是否只有一个编辑文本项,如果是则直接返回 + * 2. 将索引大于当前删除项的所有编辑文本项的索引减1 + * 3. 从列表中移除指定索引的视图 + * 4. 将被删除的文本追加到前一个或第一个编辑文本项中 + * 5. 设置焦点并将光标移动到追加文本的开始位置 + *

+ * @param index 要删除的编辑文本项的索引 + * @param text 被删除的文本内容 + */ public void onEditTextDelete(int index, String text) { int childCount = mEditTextList.getChildCount(); if (childCount == 1) { @@ -672,10 +855,16 @@ public class NoteEditActivity extends Activity implements OnClickListener, edit.setSelection(length); } + /** + * 处理编辑文本的回车操作 + *

+ * 该方法处理用户在编辑文本时按下回车键的操作,在指定索引位置插入新的编辑文本项 + *

+ * @param index 插入新编辑文本项的索引位置 + * @param text 新编辑文本项的内容 + */ public void onEditTextEnter(int index, String text) { - /** - * Should not happen, check for debug - */ + // 不应该发生的情况,用于调试检查 if(index > mEditTextList.getChildCount()) { Log.e(TAG, "Index out of mEditTextList boundrary, should not happen"); } @@ -691,6 +880,14 @@ public class NoteEditActivity extends Activity implements OnClickListener, } } + /** + * 切换到列表模式 + *

+ * 该方法将笔记从普通文本模式切换到列表模式, + * 将文本内容按行分割并创建对应的列表项,最后添加一个空的列表项用于继续输入 + *

+ * @param text 当前笔记的文本内容 + */ private void switchToListMode(String text) { mEditTextList.removeAllViews(); String[] items = text.split("\n"); @@ -708,6 +905,15 @@ public class NoteEditActivity extends Activity implements OnClickListener, mEditTextList.setVisibility(View.VISIBLE); } + /** + * 获取带有高亮查询结果的文本 + *

+ * 该方法在完整文本中查找用户查询的内容,并为匹配项添加背景高亮效果 + *

+ * @param fullText 完整的文本内容 + * @param userQuery 用户查询的内容 + * @return 带有高亮查询结果的Spannable对象 + */ private Spannable getHighlightQueryResult(String fullText, String userQuery) { SpannableString spannable = new SpannableString(fullText == null ? "" : fullText); if (!TextUtils.isEmpty(userQuery)) { @@ -725,6 +931,21 @@ public class NoteEditActivity extends Activity implements OnClickListener, return spannable; } + /** + * 获取列表模式下的列表项视图 + *

+ * 该方法创建并配置列表模式下的列表项视图,包括: + * 1. 加载列表项布局 + * 2. 设置编辑文本的字体大小 + * 3. 配置复选框的选中状态变化监听器 + * 4. 根据项目文本的标签设置初始选中状态和文本样式 + * 5. 设置文本变化监听器和索引 + * 6. 应用查询高亮效果 + *

+ * @param item 列表项的文本内容 + * @param index 列表项的索引 + * @return 配置好的列表项视图 + */ private View getListItem(String item, int index) { View view = LayoutInflater.from(this).inflate(R.layout.note_edit_list_item, null); final NoteEditText edit = (NoteEditText) view.findViewById(R.id.et_edit_text); @@ -756,6 +977,15 @@ public class NoteEditActivity extends Activity implements OnClickListener, return view; } + /** + * 处理文本变化事件 + *

+ * 该方法在列表模式下处理编辑文本的内容变化事件, + * 根据文本是否为空来控制对应列表项中复选框的显示或隐藏 + *

+ * @param index 编辑文本项的索引 + * @param hasText 编辑文本是否包含内容 + */ public void onTextChange(int index, boolean hasText) { if (index >= mEditTextList.getChildCount()) { Log.e(TAG, "Wrong index, should not happen"); @@ -768,6 +998,15 @@ public class NoteEditActivity extends Activity implements OnClickListener, } } + /** + * 处理检查列表模式的变化 + *

+ * 该方法在笔记的普通文本模式和检查列表模式之间切换时被调用, + * 根据新的模式执行相应的视图切换和数据处理操作 + *

+ * @param oldMode 旧的模式 + * @param newMode 新的模式 + */ public void onCheckListModeChanged(int oldMode, int newMode) { if (newMode == TextNote.MODE_CHECK_LIST) { switchToListMode(mNoteEditor.getText().toString()); @@ -782,6 +1021,15 @@ public class NoteEditActivity extends Activity implements OnClickListener, } } + /** + * 获取当前工作笔记的文本内容 + *

+ * 该方法根据当前笔记的模式(普通文本或检查列表)获取相应的文本内容: + * 1. 如果是检查列表模式,遍历所有列表项,收集文本内容并添加相应的标签(已完成或未完成) + * 2. 如果是普通文本模式,直接获取编辑框的文本内容 + *

+ * @return 是否包含已完成的列表项 + */ private boolean getWorkingText() { boolean hasChecked = false; if (mWorkingNote.getCheckListMode() == TextNote.MODE_CHECK_LIST) { @@ -805,6 +1053,14 @@ public class NoteEditActivity extends Activity implements OnClickListener, return hasChecked; } + /** + * 保存当前工作笔记 + *

+ * 该方法首先获取当前工作笔记的最新文本内容,然后调用mWorkingNote的saveNote方法将其保存到数据库中。 + * 如果保存成功,会设置返回结果为RESULT_OK,用于标识创建/编辑状态,以便在返回列表视图时正确定位。 + *

+ * @return 保存是否成功 + */ private boolean saveNote() { getWorkingText(); boolean saved = mWorkingNote.saveNote(); @@ -821,12 +1077,19 @@ public class NoteEditActivity extends Activity implements OnClickListener, return saved; } + /** + * 将当前编辑的笔记发送到桌面创建快捷方式 + *

+ * 该方法执行以下操作: + * 1. 在发送前确保当前编辑的笔记已保存在数据库中,如果是新笔记则先保存 + * 2. 创建一个快捷方式Intent,包含打开该笔记的相关信息 + * 3. 设置快捷方式的名称、图标等属性 + * 4. 发送广播来创建桌面快捷方式 + * 5. 如果笔记为空或保存失败,显示错误提示 + *

+ */ private void sendToDesktop() { - /** - * Before send message to home, we should make sure that current - * editing note is exists in databases. So, for new note, firstly - * save it - */ + // 在发送到桌面之前,确保当前编辑的笔记已存在于数据库中。对于新笔记,首先保存它 if (!mWorkingNote.existInDatabase()) { saveNote(); } @@ -837,7 +1100,7 @@ public class NoteEditActivity extends Activity implements OnClickListener, shortcutIntent.setAction(Intent.ACTION_VIEW); shortcutIntent.putExtra(Intent.EXTRA_UID, mWorkingNote.getNoteId()); sender.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); - sender.putExtra(Intent.EXTRA_SHORTCUT_NAME, + sender.putExtra(Intent.EXTRA_SHORTCUT_NAME, makeShortcutIconTitle(mWorkingNote.getContent())); sender.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(this, R.drawable.icon_app)); @@ -856,6 +1119,16 @@ public class NoteEditActivity extends Activity implements OnClickListener, } } + /** + * 生成快捷方式图标的标题 + *

+ * 该方法将笔记内容转换为适合作为快捷方式标题的格式: + * 1. 移除检查列表模式下的状态标签(已完成和未完成标签) + * 2. 如果内容长度超过最大限制,则截断为指定长度 + *

+ * @param content 笔记的原始内容 + * @return 处理后的快捷方式标题 + */ private String makeShortcutIconTitle(String content) { content = content.replace(TAG_CHECKED, ""); content = content.replace(TAG_UNCHECKED, ""); @@ -863,10 +1136,26 @@ public class NoteEditActivity extends Activity implements OnClickListener, SHORTCUT_ICON_TITLE_MAX_LEN) : content; } + /** + * 显示短时长的Toast提示信息 + *

+ * 该方法是showToast(int resId, int duration)的便捷重载版本, + * 默认使用Toast.LENGTH_SHORT作为显示时长 + *

+ * @param resId 提示信息的字符串资源ID + */ private void showToast(int resId) { showToast(resId, Toast.LENGTH_SHORT); } + /** + * 显示Toast提示信息 + *

+ * 该方法使用Android系统的Toast机制显示指定的提示信息 + *

+ * @param resId 提示信息的字符串资源ID + * @param duration 显示时长,可以是Toast.LENGTH_SHORT或Toast.LENGTH_LONG + */ private void showToast(int resId, int duration) { Toast.makeText(this, resId, duration).show(); } diff --git a/src/main/java/net/micode/notes/ui/NoteEditText.java b/src/main/java/net/micode/notes/ui/NoteEditText.java index 2afe2a8..ae5b78b 100644 --- a/src/main/java/net/micode/notes/ui/NoteEditText.java +++ b/src/main/java/net/micode/notes/ui/NoteEditText.java @@ -37,15 +37,47 @@ 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:" ; + + /** + * HTTP链接协议 + */ private static final String SCHEME_HTTP = "http:" ; + + /** + * 邮件链接协议 + */ private static final String SCHEME_EMAIL = "mailto:" ; + /** + * 链接协议与资源ID的映射表 + */ private static final Map sSchemaActionResMap = new HashMap(); static { sSchemaActionResMap.put(SCHEME_TEL, R.string.note_link_tel); @@ -54,51 +86,86 @@ public class NoteEditText extends EditText { } /** - * Call by the {@link NoteEditActivity} to delete or add edit text + * 文本视图变化监听器接口 + *

+ * 由{@link NoteEditActivity}调用,用于处理编辑框的删除或添加 + *

*/ public interface OnTextViewChangeListener { /** - * Delete current edit text when {@link KeyEvent#KEYCODE_DEL} happens - * and the text is null + * 当按下{@link KeyEvent#KEYCODE_DEL}且文本为空时,删除当前编辑框 */ void onEditTextDelete(int index, String text); /** - * Add edit text after current edit text when {@link KeyEvent#KEYCODE_ENTER} - * happen + * 当按下{@link KeyEvent#KEYCODE_ENTER}时,在当前编辑框后添加新的编辑框 */ void onEditTextEnter(int index, String text); /** - * Hide or show item option when text change + * 当文本变化时,隐藏或显示项目选项 */ void onTextChange(int index, boolean hasText); } + /** + * 文本视图变化监听器实例 + */ private OnTextViewChangeListener mOnTextViewChangeListener; + /** + * 构造函数,创建笔记编辑文本框 + * @param context 上下文对象 + */ public NoteEditText(Context context) { super(context, null); mIndex = 0; } + /** + * 设置编辑框索引 + * @param index 编辑框索引 + */ public void setIndex(int index) { mIndex = index; } + /** + * 设置文本视图变化监听器 + * @param listener 文本视图变化监听器 + */ public void setOnTextViewChangeListener(OnTextViewChangeListener listener) { mOnTextViewChangeListener = listener; } + /** + * 构造函数,创建笔记编辑文本框 + * @param context 上下文对象 + * @param attrs 属性集合 + */ public NoteEditText(Context context, AttributeSet attrs) { super(context, attrs, android.R.attr.editTextStyle); } + /** + * 构造函数,创建笔记编辑文本框 + * @param context 上下文对象 + * @param attrs 属性集合 + * @param defStyle 默认样式 + */ public NoteEditText(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); // TODO Auto-generated constructor stub } + /** + * 处理触摸事件 + *

+ * 当用户点击编辑框时,将光标定位到点击位置 + *

+ * @param event 触摸事件 + * @return 事件是否被处理 + */ @Override public boolean onTouchEvent(MotionEvent event) { switch (event.getAction()) { @@ -121,6 +188,15 @@ public class NoteEditText extends EditText { return super.onTouchEvent(event); } + /** + * 处理按键按下事件 + *

+ * 监听回车键和删除键的按下事件 + *

+ * @param keyCode 按键代码 + * @param event 按键事件 + * @return 事件是否被处理 + */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { switch (keyCode) { @@ -138,6 +214,15 @@ public class NoteEditText extends EditText { return super.onKeyDown(keyCode, event); } + /** + * 处理按键释放事件 + *

+ * 监听删除键和回车键的释放事件,实现编辑框的删除和添加功能 + *

+ * @param keyCode 按键代码 + * @param event 按键事件 + * @return 事件是否被处理 + */ @Override public boolean onKeyUp(int keyCode, KeyEvent event) { switch(keyCode) { @@ -167,6 +252,16 @@ public class NoteEditText extends EditText { return super.onKeyUp(keyCode, event); } + /** + * 处理焦点变化事件 + *

+ * 当编辑框失去焦点且文本为空时,通知监听器隐藏项目选项 + * 当编辑框获得焦点或文本不为空时,通知监听器显示项目选项 + *

+ * @param focused 是否获得焦点 + * @param direction 焦点变化方向 + * @param previouslyFocusedRect 之前焦点所在的矩形区域 + */ @Override protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) { if (mOnTextViewChangeListener != null) { @@ -179,6 +274,13 @@ public class NoteEditText extends EditText { super.onFocusChanged(focused, direction, previouslyFocusedRect); } + /** + * 创建上下文菜单 + *

+ * 当选中的文本包含链接时,创建相应的链接操作菜单 + *

+ * @param menu 上下文菜单 + */ @Override protected void onCreateContextMenu(ContextMenu menu) { if (getText() instanceof Spanned) { diff --git a/src/main/java/net/micode/notes/ui/NoteItemData.java b/src/main/java/net/micode/notes/ui/NoteItemData.java index 0f5a878..2ffa01d 100644 --- a/src/main/java/net/micode/notes/ui/NoteItemData.java +++ b/src/main/java/net/micode/notes/ui/NoteItemData.java @@ -26,7 +26,20 @@ 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, @@ -42,40 +55,166 @@ public class NoteItemData { NoteColumns.WIDGET_TYPE, }; + /** + * 查询结果中笔记ID列的索引 + */ private static final int ID_COLUMN = 0; + + /** + * 查询结果中提醒日期列的索引 + */ private static final int ALERTED_DATE_COLUMN = 1; + + /** + * 查询结果中背景颜色ID列的索引 + */ 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; + + /** + * 查询结果中父文件夹ID列的索引 + */ private static final int PARENT_ID_COLUMN = 7; + + /** + * 查询结果中笔记摘要列的索引 + */ private static final int SNIPPET_COLUMN = 8; + + /** + * 查询结果中笔记类型列的索引 + */ private static final int TYPE_COLUMN = 9; + + /** + * 查询结果中小组件ID列的索引 + */ private static final int WIDGET_ID_COLUMN = 10; + + /** + * 查询结果中小组件类型列的索引 + */ private static final int WIDGET_TYPE_COLUMN = 11; + /** + * 笔记ID + */ private long mId; + + /** + * 提醒日期 + */ private long mAlertDate; + + /** + * 背景颜色ID + */ private int mBgColorId; + + /** + * 创建日期 + */ private long mCreatedDate; + + /** + * 是否有附件 + */ private boolean mHasAttachment; + + /** + * 修改日期 + */ private long mModifiedDate; + + /** + * 笔记数量(用于文件夹) + */ private int mNotesCount; + + /** + * 父文件夹ID + */ private long mParentId; + + /** + * 笔记摘要 + */ private String mSnippet; + + /** + * 笔记类型 + */ private int mType; + + /** + * 小组件ID + */ 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; + /** + * 构造函数,从游标中初始化笔记列表项数据 + * @param context 上下文对象 + * @param cursor 包含笔记数据的游标 + */ public NoteItemData(Context context, Cursor cursor) { mId = cursor.getLong(ID_COLUMN); mAlertDate = cursor.getLong(ALERTED_DATE_COLUMN); @@ -109,6 +248,13 @@ public class NoteItemData { checkPostion(cursor); } + /** + * 检查当前项在列表中的位置 + *

+ * 该方法用于判断当前项是否为第一项、最后一项、唯一一项,以及是否为文件夹后的笔记 + *

+ * @param cursor 包含笔记数据的游标 + */ private void checkPostion(Cursor cursor) { mIsLastItem = cursor.isLast() ? true : false; mIsFirstItem = cursor.isFirst() ? true : false; @@ -134,90 +280,179 @@ public class NoteItemData { } } + /** + * 判断是否为文件夹后的唯一笔记 + * @return 是否为文件夹后的唯一笔记 + */ public boolean isOneFollowingFolder() { return mIsOneNoteFollowingFolder; } + /** + * 判断是否为文件夹后的多个笔记 + * @return 是否为文件夹后的多个笔记 + */ public boolean isMultiFollowingFolder() { return mIsMultiNotesFollowingFolder; } + /** + * 判断是否为最后一项 + * @return 是否为最后一项 + */ public boolean isLast() { return mIsLastItem; } + /** + * 获取通话记录联系人名称 + * @return 通话记录联系人名称 + */ public String getCallName() { return mName; } + /** + * 判断是否为第一项 + * @return 是否为第一项 + */ public boolean isFirst() { return mIsFirstItem; } + /** + * 判断是否为唯一一项 + * @return 是否为唯一一项 + */ public boolean isSingle() { return mIsOnlyOneItem; } + /** + * 获取笔记ID + * @return 笔记ID + */ public long getId() { return mId; } + /** + * 获取提醒日期 + * @return 提醒日期,以毫秒为单位 + */ public long getAlertDate() { return mAlertDate; } + /** + * 获取创建日期 + * @return 创建日期,以毫秒为单位 + */ public long getCreatedDate() { return mCreatedDate; } + /** + * 判断是否有附件 + * @return 是否有附件 + */ public boolean hasAttachment() { return mHasAttachment; } + /** + * 获取修改日期 + * @return 修改日期,以毫秒为单位 + */ public long getModifiedDate() { return mModifiedDate; } + /** + * 获取背景颜色ID + * @return 背景颜色ID + */ public int getBgColorId() { return mBgColorId; } + /** + * 获取父文件夹ID + * @return 父文件夹ID + */ public long getParentId() { return mParentId; } + /** + * 获取笔记数量(用于文件夹) + * @return 笔记数量 + */ public int getNotesCount() { return mNotesCount; } + /** + * 获取文件夹ID + * @return 文件夹ID + */ public long getFolderId () { return mParentId; } + /** + * 获取笔记类型 + * @return 笔记类型 + */ public int getType() { return mType; } + /** + * 获取小组件类型 + * @return 小组件类型 + */ public int getWidgetType() { return mWidgetType; } + /** + * 获取小组件ID + * @return 小组件ID + */ public int getWidgetId() { return mWidgetId; } + /** + * 获取笔记摘要 + * @return 笔记摘要 + */ public String getSnippet() { return mSnippet; } + /** + * 判断是否有提醒 + * @return 是否有提醒 + */ public boolean hasAlert() { return (mAlertDate > 0); } + /** + * 判断是否为通话记录 + * @return 是否为通话记录 + */ 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/main/java/net/micode/notes/ui/NotesListActivity.java b/src/main/java/net/micode/notes/ui/NotesListActivity.java index e843aec..b72aba0 100644 --- a/src/main/java/net/micode/notes/ui/NotesListActivity.java +++ b/src/main/java/net/micode/notes/ui/NotesListActivity.java @@ -78,63 +78,114 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.util.HashSet; +/** + * 笔记列表活动类 + *

+ * 该类是应用的主界面,负责显示笔记列表,处理笔记的创建、编辑、删除等操作, + * 支持文件夹管理、笔记同步、导入导出等功能,并提供了多选模式、上下文菜单等交互方式 + *

+ */ public class NotesListActivity extends Activity implements OnClickListener, OnItemLongClickListener { + /** 文件夹笔记列表查询令牌 */ private static final int FOLDER_NOTE_LIST_QUERY_TOKEN = 0; + /** 文件夹列表查询令牌 */ private static final int FOLDER_LIST_QUERY_TOKEN = 1; + /** 文件夹删除菜单ID */ private static final int MENU_FOLDER_DELETE = 0; + /** 文件夹查看菜单ID */ private static final int MENU_FOLDER_VIEW = 1; + /** 文件夹重命名菜单ID */ private static final int MENU_FOLDER_CHANGE_NAME = 2; + /** 偏好设置:是否添加了介绍笔记 */ private static final String PREFERENCE_ADD_INTRODUCTION = "net.micode.notes.introduction"; + /** + * 列表编辑状态枚举 + *

+ * 定义了笔记列表的三种状态: + * 1. NOTE_LIST:根目录下的笔记列表 + * 2. SUB_FOLDER:子文件夹中的笔记列表 + * 3. CALL_RECORD_FOLDER:通话记录文件夹 + *

+ */ private enum ListEditState { NOTE_LIST, SUB_FOLDER, CALL_RECORD_FOLDER }; + /** 当前列表编辑状态 */ private ListEditState mState; + /** 后台查询处理器 */ private BackgroundQueryHandler mBackgroundQueryHandler; + /** 笔记列表适配器 */ private NotesListAdapter mNotesListAdapter; + /** 笔记列表视图 */ private ListView mNotesListView; + /** 新建笔记按钮 */ private Button mAddNewNote; + /** 是否分发触摸事件 */ private boolean mDispatch; + /** 原始Y坐标 */ private int mOriginY; + /** 分发Y坐标 */ private int mDispatchY; + /** 标题栏文本视图 */ private TextView mTitleBar; + /** 当前文件夹ID */ private long mCurrentFolderId; + /** 内容解析器 */ private ContentResolver mContentResolver; + /** 模式回调 */ private ModeCallback mModeCallBack; + /** 日志标签 */ private static final String TAG = "NotesListActivity"; + /** 笔记列表视图滚动速率 */ public static final int NOTES_LISTVIEW_SCROLL_RATE = 30; + /** 当前焦点的笔记数据项 */ private NoteItemData mFocusNoteDataItem; + /** 普通文件夹选择条件 */ private static final String NORMAL_SELECTION = NoteColumns.PARENT_ID + "=?"; + /** 根文件夹选择条件 */ private static final String ROOT_FOLDER_SELECTION = "(" + NoteColumns.TYPE + "<>" - + Notes.TYPE_SYSTEM + " AND " + NoteColumns.PARENT_ID + "=?)" + " OR (" + + Notes.TYPE_SYSTEM + " AND " + NoteColumns.PARENT_ID + "=?)") + " OR (" + NoteColumns.ID + "=" + Notes.ID_CALL_RECORD_FOLDER + " AND " + NoteColumns.NOTES_COUNT + ">0)"; + /** 打开笔记请求码 */ private final static int REQUEST_CODE_OPEN_NODE = 102; + /** 新建笔记请求码 */ private final static int REQUEST_CODE_NEW_NODE = 103; + /** + * 活动创建时调用 + *

+ * 该方法完成以下工作: + * 1. 设置布局文件 + * 2. 初始化资源 + * 3. 如果是首次使用,添加介绍笔记 + *

+ * @param savedInstanceState 保存的实例状态 + */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -147,6 +198,15 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt setAppInfoFromRawRes(); } + /** + * 处理活动返回结果 + *

+ * 该方法在其他活动返回结果时调用,主要用于处理笔记编辑活动返回的结果 + *

+ * @param requestCode 请求码 + * @param resultCode 结果码 + * @param data 返回的数据 + */ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK @@ -203,12 +263,32 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt } } + /** + * 活动开始时调用 + *

+ * 该方法在活动开始时调用,主要用于启动异步笔记列表查询 + *

+ */ @Override protected void onStart() { super.onStart(); startAsyncNotesListQuery(); } + /** + * 初始化资源 + *

+ * 该方法完成以下工作: + * 1. 初始化内容解析器和后台查询处理器 + * 2. 设置当前文件夹ID为根文件夹ID + * 3. 初始化笔记列表视图,添加页脚,设置点击和长按监听器 + * 4. 初始化笔记列表适配器并设置给列表视图 + * 5. 初始化新建笔记按钮,设置点击和触摸监听器 + * 6. 初始化触摸事件相关变量 + * 7. 初始化标题栏和状态 + * 8. 初始化模式回调 + *

+ */ private void initResources() { mContentResolver = this.getContentResolver(); mBackgroundQueryHandler = new BackgroundQueryHandler(this.getContentResolver()); @@ -231,11 +311,40 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt mModeCallBack = new ModeCallback(); } + /** + * 多选模式回调类 + *

+ * 该类实现了ListView.MultiChoiceModeListener和OnMenuItemClickListener接口, + * 用于处理多选模式下的操作,包括创建模式、更新菜单、处理菜单点击事件等 + *

+ */ private class ModeCallback implements ListView.MultiChoiceModeListener, OnMenuItemClickListener { + /** 下拉菜单 */ private DropdownMenu mDropDownMenu; + /** 动作模式 */ private ActionMode mActionMode; + /** 移动菜单 */ private MenuItem mMoveMenu; + /** + * 创建动作模式 + *

+ * 该方法完成以下工作: + * 1. 加载菜单资源 + * 2. 设置删除菜单的点击监听器 + * 3. 根据当前文件夹ID和用户文件夹数量设置移动菜单的可见性 + * 4. 保存动作模式实例 + * 5. 设置列表适配器为选择模式 + * 6. 禁用列表的长按功能 + * 7. 隐藏新建笔记按钮 + * 8. 设置自定义视图 + * 9. 创建下拉菜单 + * 10. 设置下拉菜单的点击监听器 + *

+ * @param mode 动作模式 + * @param menu 菜单 + * @return 是否创建成功,返回true表示成功 + */ public boolean onCreateActionMode(ActionMode mode, Menu menu) { getMenuInflater().inflate(R.menu.note_list_options, menu); menu.findItem(R.id.delete).setOnMenuItemClickListener(this); @@ -269,6 +378,15 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt return true; } + /** + * 更新菜单 + *

+ * 该方法完成以下工作: + * 1. 获取选中的笔记数量 + * 2. 更新下拉菜单的标题,显示选中数量 + * 3. 更新全选/取消全选菜单项的状态和标题 + *

+ */ private void updateMenu() { int selectedCount = mNotesListAdapter.getSelectedCount(); // Update dropdown menu @@ -286,32 +404,90 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt } } + /** + * 准备动作模式 + *

+ * 该方法未实现具体功能,返回false + *

+ * @param mode 动作模式 + * @param menu 菜单 + * @return 是否准备成功,返回false + */ public boolean onPrepareActionMode(ActionMode mode, Menu menu) { // TODO Auto-generated method stub return false; } + /** + * 处理动作模式菜单项点击事件 + *

+ * 该方法未实现具体功能,返回false + *

+ * @param mode 动作模式 + * @param item 菜单项 + * @return 是否处理成功,返回false + */ public boolean onActionItemClicked(ActionMode mode, MenuItem item) { // TODO Auto-generated method stub return false; } + /** + * 销毁动作模式 + *

+ * 该方法完成以下工作: + * 1. 设置列表适配器为非选择模式 + * 2. 启用列表的长按功能 + * 3. 显示新建笔记按钮 + *

+ * @param mode 动作模式 + */ public void onDestroyActionMode(ActionMode mode) { mNotesListAdapter.setChoiceMode(false); mNotesListView.setLongClickable(true); mAddNewNote.setVisibility(View.VISIBLE); } + /** + * 结束动作模式 + *

+ * 该方法调用动作模式的finish方法来结束多选模式 + *

+ */ public void finishActionMode() { mActionMode.finish(); } + /** + * 列表项选中状态变化时调用 + *

+ * 该方法完成以下工作: + * 1. 设置列表项的选中状态 + * 2. 更新菜单 + *

+ * @param mode 动作模式 + * @param position 列表项位置 + * @param id 列表项ID + * @param checked 是否选中 + */ public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) { mNotesListAdapter.setCheckedItem(position, checked); updateMenu(); } + /** + * 处理菜单项点击事件 + *

+ * 该方法完成以下工作: + * 1. 检查是否有选中的笔记,如果没有则显示提示 + * 2. 根据菜单项ID处理不同的操作: + * - 删除:显示删除确认对话框,点击确定后调用batchDelete方法 + * - 移动:调用startQueryDestinationFolders方法查询目标文件夹 + *

+ * @param item 菜单项 + * @return 是否处理成功,返回true表示成功 + */ public boolean onMenuItemClick(MenuItem item) { if (mNotesListAdapter.getSelectedCount() == 0) { Toast.makeText(NotesListActivity.this, getString(R.string.menu_select_none), @@ -346,8 +522,34 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt } } + /** + * 新建笔记按钮触摸监听器 + *

+ * 该类实现了OnTouchListener接口,用于处理新建笔记按钮的触摸事件, + * 特别是处理按钮透明部分的触摸事件,将其分发给下方的列表视图 + *

+ */ private class NewNoteOnTouchListener implements OnTouchListener { + /** + * 处理触摸事件 + *

+ * 该方法完成以下工作: + * 1. 处理ACTION_DOWN事件: + * - 获取屏幕高度和新建笔记按钮高度 + * - 计算触摸事件的Y坐标 + * - 如果当前状态是SUB_FOLDER,减去标题栏高度 + * - 检查触摸点是否在按钮的透明部分(根据公式y=-0.12x+94判断) + * - 如果是,将触摸事件分发给下方的列表视图 + * 2. 处理ACTION_MOVE事件: + * - 如果已经开始分发事件,更新事件坐标并继续分发给列表视图 + * 3. 处理其他事件: + * - 如果已经开始分发事件,结束分发并将事件分发给列表视图 + *

+ * @param v 被触摸的视图 + * @param event 触摸事件 + * @return 是否消费了该事件,返回true表示已消费 + */ public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: { @@ -408,6 +610,12 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt }; + /** + * 启动异步笔记列表查询 + *

+ * 该方法根据当前文件夹ID选择合适的查询条件,然后启动异步查询,查询结果将通过BackgroundQueryHandler返回 + *

+ */ private void startAsyncNotesListQuery() { String selection = (mCurrentFolderId == Notes.ID_ROOT_FOLDER) ? ROOT_FOLDER_SELECTION : NORMAL_SELECTION; @@ -417,11 +625,35 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt }, NoteColumns.TYPE + " DESC," + NoteColumns.MODIFIED_DATE + " DESC"); } + /** + * 后台查询处理器类 + *

+ * 该类继承自AsyncQueryHandler,用于处理异步查询操作, + * 主要处理两种查询: + * 1. 文件夹笔记列表查询 + * 2. 文件夹列表查询 + *

+ */ private final class BackgroundQueryHandler extends AsyncQueryHandler { + /** + * 构造函数 + * @param contentResolver 内容解析器 + */ public BackgroundQueryHandler(ContentResolver contentResolver) { super(contentResolver); } + /** + * 查询完成时调用 + *

+ * 该方法根据查询令牌处理查询结果: + * 1. 如果是文件夹笔记列表查询,将结果游标设置给列表适配器 + * 2. 如果是文件夹列表查询,显示文件夹列表菜单 + *

+ * @param token 查询令牌,用于标识查询类型 + * @param cookie 查询时传递的附加数据,此处未使用 + * @param cursor 查询结果游标 + */ @Override protected void onQueryComplete(int token, Object cookie, Cursor cursor) { switch (token) { @@ -462,6 +694,12 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt builder.show(); } + /** + * 创建新笔记 + *

+ * 该方法通过启动NoteEditActivity来创建新笔记,并传递当前文件夹ID作为额外参数 + *

+ */ private void createNewNote() { Intent intent = new Intent(this, NoteEditActivity.class); intent.setAction(Intent.ACTION_INSERT_OR_EDIT); @@ -469,6 +707,17 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt this.startActivityForResult(intent, REQUEST_CODE_NEW_NODE); } + /** + * 批量删除笔记 + *

+ * 该方法在异步任务中完成以下工作: + * 1. 获取选中的部件属性 + * 2. 如果不在同步模式,直接删除选中的笔记 + * 3. 如果在同步模式,将选中的笔记移动到回收站 + * 4. 更新相关部件 + * 5. 结束多选模式 + *

+ */ private void batchDelete() { new AsyncTask>() { protected HashSet doInBackground(Void... unused) { @@ -506,6 +755,18 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt }.execute(); } + /** + * 删除文件夹 + *

+ * 该方法完成以下工作: + * 1. 检查文件夹ID是否为根文件夹ID,如果是则返回错误 + * 2. 获取文件夹的部件属性 + * 3. 如果不在同步模式,直接删除文件夹 + * 4. 如果在同步模式,将文件夹移动到回收站 + * 5. 更新相关部件 + *

+ * @param folderId 要删除的文件夹ID + */ private void deleteFolder(long folderId) { if (folderId == Notes.ID_ROOT_FOLDER) { Log.e(TAG, "Wrong folder id, should not happen " + folderId); @@ -533,6 +794,13 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt } } + /** + * 打开笔记 + *

+ * 该方法通过启动NoteEditActivity来打开指定的笔记,传递笔记ID作为额外参数 + *

+ * @param data 要打开的笔记数据项 + */ private void openNode(NoteItemData data) { Intent intent = new Intent(this, NoteEditActivity.class); intent.setAction(Intent.ACTION_VIEW); @@ -540,6 +808,19 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt this.startActivityForResult(intent, REQUEST_CODE_OPEN_NODE); } + /** + * 打开文件夹 + *

+ * 该方法完成以下工作: + * 1. 设置当前文件夹ID + * 2. 启动异步笔记列表查询 + * 3. 根据文件夹类型设置列表状态: + * - 如果是通话记录文件夹,设置为CALL_RECORD_FOLDER状态并隐藏新建笔记按钮 + * - 否则设置为SUB_FOLDER状态 + * 4. 设置标题栏文本和可见性 + *

+ * @param data 要打开的文件夹数据项 + */ private void openFolder(NoteItemData data) { mCurrentFolderId = data.getId(); startAsyncNotesListQuery(); @@ -557,6 +838,13 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt mTitleBar.setVisibility(View.VISIBLE); } + /** + * 处理点击事件 + *

+ * 该方法处理视图的点击事件,目前只处理新建笔记按钮的点击事件 + *

+ * @param v 被点击的视图 + */ public void onClick(View v) { switch (v.getId()) { case R.id.btn_new_note: @@ -567,6 +855,12 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt } } + /** + * 显示软键盘 + *

+ * 该方法通过InputMethodManager显示软键盘 + *

+ */ private void showSoftInput() { InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); if (inputMethodManager != null) { @@ -574,11 +868,35 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt } } + /** + * 隐藏软键盘 + *

+ * 该方法通过InputMethodManager隐藏软键盘 + *

+ * @param view 用于获取窗口令牌的视图 + */ private void hideSoftInput(View view) { InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0); } + /** + * 显示创建或修改文件夹对话框 + *

+ * 该方法完成以下工作: + * 1. 创建对话框构建器 + * 2. 加载布局文件 + * 3. 显示软键盘 + * 4. 根据create参数设置对话框标题和编辑框内容: + * - 如果是修改文件夹,设置标题为"修改文件夹名称",并显示当前文件夹名称 + * - 如果是创建文件夹,设置标题为"创建文件夹",并清空编辑框 + * 5. 设置对话框按钮和点击事件 + * 6. 显示对话框 + * 7. 为确定按钮设置点击事件,处理文件夹的创建或修改 + * 8. 为编辑框添加文本变化监听器,当文本为空时禁用确定按钮 + *

+ * @param create 是否是创建文件夹,true表示创建,false表示修改 + */ private void showCreateOrModifyFolderDialog(final boolean create) { final AlertDialog.Builder builder = new AlertDialog.Builder(this); View view = LayoutInflater.from(this).inflate(R.layout.dialog_edit_text, null); @@ -664,6 +982,15 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt }); } + /** + * 处理返回按钮点击事件 + *

+ * 该方法根据当前状态处理返回按钮点击事件: + * 1. 如果在子文件夹中,返回根文件夹 + * 2. 如果在通话记录文件夹中,返回根文件夹并显示新建笔记按钮 + * 3. 如果在根文件夹中,调用默认的返回处理 + *

+ */ @Override public void onBackPressed() { switch (mState) { @@ -688,6 +1015,22 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt } } + /** + * 更新部件 + *

+ * 该方法完成以下工作: + * 1. 创建广播意图 + * 2. 根据部件类型设置广播接收者: + * - 如果是2x2部件,设置接收者为NoteWidgetProvider_2x + * - 如果是4x4部件,设置接收者为NoteWidgetProvider_4x + * - 否则记录错误并返回 + * 3. 添加部件ID到意图中 + * 4. 发送广播 + * 5. 设置结果 + *

+ * @param appWidgetId 部件ID + * @param appWidgetType 部件类型 + */ private void updateWidget(int appWidgetId, int appWidgetType) { Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_UPDATE); if (appWidgetType == Notes.TYPE_WIDGET_2X) { @@ -778,6 +1121,22 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt return true; } + /** + * 处理选项菜单点击事件 + *

+ * 该方法处理以下菜单项的点击事件: + * 1. 新建文件夹:显示创建文件夹对话框 + * 2. 导出文本:调用exportNoteToText方法导出笔记 + * 3. 同步: + * - 如果在同步模式下,根据当前标题判断是开始同步还是取消同步 + * - 否则跳转到设置页面 + * 4. 设置:跳转到设置页面 + * 5. 新建笔记:调用createNewNote方法创建新笔记 + * 6. 搜索:调用onSearchRequested方法启动搜索 + *

+ * @param item 被点击的菜单项 + * @return 是否处理了该事件,返回true表示已处理 + */ @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { @@ -818,12 +1177,31 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt return true; } + /** + * 处理搜索请求 + *

+ * 该方法启动搜索活动 + *

+ * @return 是否处理了搜索请求,返回true表示已处理 + */ @Override public boolean onSearchRequested() { startSearch(null, false, null /* appData */, false); return true; } + /** + * 导出笔记到文本文件 + *

+ * 该方法在异步任务中完成以下工作: + * 1. 获取BackupUtils实例 + * 2. 在后台调用exportToText方法导出笔记 + * 3. 根据导出结果显示不同的对话框: + * - 如果SD卡未挂载,显示失败对话框 + * - 如果导出成功,显示成功对话框并显示导出文件的位置 + * - 如果系统错误,显示失败对话框 + *

+ */ private void exportNoteToText() { final BackupUtils backup = BackupUtils.getInstance(NotesListActivity.this); new AsyncTask() { @@ -866,18 +1244,62 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt }.execute(); } + /** + * 检查是否处于同步模式 + *

+ * 该方法通过获取同步账户名来检查是否处于同步模式,如果同步账户名不为空则处于同步模式 + *

+ * @return 是否处于同步模式,true表示处于同步模式,false表示不处于同步模式 + */ private boolean isSyncMode() { return NotesPreferenceActivity.getSyncAccountName(this).trim().length() > 0; } + /** + * 启动偏好设置活动 + *

+ * 该方法完成以下工作: + * 1. 获取当前活动或父活动 + * 2. 创建意图,跳转到NotesPreferenceActivity + * 3. 启动活动 + *

+ */ private void startPreferenceActivity() { Activity from = getParent() != null ? getParent() : this; Intent intent = new Intent(from, NotesPreferenceActivity.class); from.startActivityIfNeeded(intent, -1); } + /** + * 列表项点击监听器类 + *

+ * 该类实现了OnItemClickListener接口,用于处理列表项的点击事件, + * 根据当前状态和点击的列表项类型执行不同的操作 + *

+ */ private class OnListItemClickListener implements OnItemClickListener { + /** + * 处理列表项点击事件 + *

+ * 该方法完成以下工作: + * 1. 检查被点击的视图是否是NotesListItem + * 2. 获取被点击的笔记数据项 + * 3. 如果在选择模式下: + * - 如果是笔记类型,切换选中状态 + * - 返回 + * 4. 根据当前状态和笔记类型执行不同的操作: + * - NOTE_LIST状态: + * - 如果是文件夹或系统类型,调用openFolder方法打开文件夹 + * - 如果是笔记类型,调用openNode方法打开笔记 + * - SUB_FOLDER或CALL_RECORD_FOLDER状态: + * - 如果是笔记类型,调用openNode方法打开笔记 + *

+ * @param parent 父视图 + * @param view 被点击的视图 + * @param position 被点击的位置 + * @param id 被点击的ID + */ public void onItemClick(AdapterView parent, View view, int position, long id) { if (view instanceof NotesListItem) { NoteItemData item = ((NotesListItem) view).getItemData(); @@ -917,6 +1339,16 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt } + /** + * 启动查询目标文件夹 + *

+ * 该方法完成以下工作: + * 1. 构建查询条件: + * - 基本条件:类型为文件夹,父ID不等于回收站ID,ID不等于当前文件夹ID + * - 如果当前状态不是NOTE_LIST,添加根文件夹ID到条件中 + * 2. 启动异步查询,查询结果将通过BackgroundQueryHandler返回 + *

+ */ private void startQueryDestinationFolders() { String selection = NoteColumns.TYPE + "=? AND " + NoteColumns.PARENT_ID + "<>? AND " + NoteColumns.ID + "<>?"; selection = (mState == ListEditState.NOTE_LIST) ? selection: @@ -935,6 +1367,23 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt NoteColumns.MODIFIED_DATE + " DESC"); } + /** + * 处理列表项长按事件 + *

+ * 该方法完成以下工作: + * 1. 检查被长按的视图是否是NotesListItem + * 2. 获取被长按的笔记数据项 + * 3. 根据笔记类型处理长按事件: + * - 如果是笔记类型且不在选择模式下,启动多选模式并选中当前项 + * - 如果是文件夹类型,设置上下文菜单监听器 + * 4. 返回false表示事件未被完全处理 + *

+ * @param parent 父视图 + * @param view 被长按的视图 + * @param position 被长按的位置 + * @param id 被长按的ID + * @return 是否处理了该事件,返回false表示事件未被完全处理 + */ public boolean onItemLongClick(AdapterView parent, View view, int position, long id) { if (view instanceof NotesListItem) { mFocusNoteDataItem = ((NotesListItem) view).getItemData(); diff --git a/src/main/java/net/micode/notes/ui/NotesListAdapter.java b/src/main/java/net/micode/notes/ui/NotesListAdapter.java index 51c9cb9..e9f5a8a 100644 --- a/src/main/java/net/micode/notes/ui/NotesListAdapter.java +++ b/src/main/java/net/micode/notes/ui/NotesListAdapter.java @@ -31,18 +31,46 @@ import java.util.HashSet; import java.util.Iterator; +/** + * 笔记列表适配器类 + *

+ * 该类是CursorAdapter的子类,用于将数据库中的笔记数据绑定到列表视图上, + * 支持普通浏览模式和选择模式,能够管理选中的项目,并提供了各种方法来处理 + * 列表项的选择状态、获取选中项目ID等功能。 + *

+ */ public class NotesListAdapter extends CursorAdapter { + /** 日志标签 */ private static final String TAG = "NotesListAdapter"; + /** 上下文对象 */ private Context mContext; + /** 保存选中项目的位置和状态 */ private HashMap mSelectedIndex; + /** 笔记数量 */ private int mNotesCount; + /** 是否处于选择模式 */ private boolean mChoiceMode; + /** + * 应用桌面组件属性类 + *

+ * 该类用于存储桌面组件的相关属性,包括组件ID和组件类型 + *

+ */ public static class AppWidgetAttribute { + /** 桌面组件ID */ public int widgetId; + /** 桌面组件类型 */ public int widgetType; }; + /** + * 构造函数 + *

+ * 初始化NotesListAdapter,创建选中项目的映射表,并设置初始上下文和笔记数量 + *

+ * @param context 上下文对象 + */ public NotesListAdapter(Context context) { super(context, null); mSelectedIndex = new HashMap(); @@ -50,11 +78,31 @@ public class NotesListAdapter extends CursorAdapter { mNotesCount = 0; } + /** + * 创建新的列表项视图 + *

+ * 该方法在需要为新的数据项创建视图时调用,返回一个新的NotesListItem实例 + *

+ * @param context 上下文对象 + * @param cursor 数据游标 + * @param parent 父视图组 + * @return 新创建的列表项视图 + */ @Override public View newView(Context context, Cursor cursor, ViewGroup parent) { return new NotesListItem(context); } + /** + * 将数据绑定到列表项视图 + *

+ * 该方法在需要将数据绑定到现有视图时调用,将游标中的数据转换为NoteItemData对象, + * 并调用NotesListItem的bind方法将数据绑定到视图上 + *

+ * @param view 要绑定数据的视图 + * @param context 上下文对象 + * @param cursor 数据游标 + */ @Override public void bindView(View view, Context context, Cursor cursor) { if (view instanceof NotesListItem) { @@ -64,20 +112,46 @@ public class NotesListAdapter extends CursorAdapter { } } + /** + * 设置指定位置的项是否被选中 + *

+ * 该方法用于在选择模式下设置指定位置的项的选中状态,并通知数据集变化 + *

+ * @param position 项的位置 + * @param checked 是否被选中 + */ public void setCheckedItem(final int position, final boolean checked) { mSelectedIndex.put(position, checked); notifyDataSetChanged(); } + /** + * 检查是否处于选择模式 + * @return 是否处于选择模式 + */ 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 +163,13 @@ public class NotesListAdapter extends CursorAdapter { } } + /** + * 获取所有选中项的ID + *

+ * 该方法用于获取选择模式下所有选中项的ID集合,排除根文件夹ID + *

+ * @return 选中项的ID集合 + */ public HashSet getSelectedItemIds() { HashSet itemSet = new HashSet(); for (Integer position : mSelectedIndex.keySet()) { @@ -105,6 +186,13 @@ public class NotesListAdapter extends CursorAdapter { return itemSet; } + /** + * 获取所有选中的桌面组件属性 + *

+ * 该方法用于获取选择模式下所有选中的桌面组件的属性集合 + *

+ * @return 选中的桌面组件属性集合,若获取失败则返回null + */ public HashSet getSelectedWidget() { HashSet itemSet = new HashSet(); for (Integer position : mSelectedIndex.keySet()) { @@ -128,6 +216,10 @@ public class NotesListAdapter extends CursorAdapter { return itemSet; } + /** + * 获取选中项的数量 + * @return 选中项的数量 + */ public int getSelectedCount() { Collection values = mSelectedIndex.values(); if (null == values) { @@ -143,11 +235,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 +256,37 @@ public class NotesListAdapter extends CursorAdapter { return mSelectedIndex.get(position); } + /** + * 当数据内容变化时调用 + *

+ * 该方法在数据内容发生变化时被调用,会重新计算笔记数量 + *

+ */ @Override protected void onContentChanged() { super.onContentChanged(); calcNotesCount(); } + /** + * 更换数据游标 + *

+ * 该方法在更换数据游标时被调用,会重新计算笔记数量 + *

+ * @param cursor 新的数据游标 + */ @Override public void changeCursor(Cursor cursor) { super.changeCursor(cursor); calcNotesCount(); } + /** + * 计算笔记数量 + *

+ * 该方法用于统计当前数据集中的普通笔记数量,并更新mNotesCount成员变量 + *

+ */ private void calcNotesCount() { mNotesCount = 0; for (int i = 0; i < getCount(); i++) { diff --git a/src/main/java/net/micode/notes/ui/NotesListItem.java b/src/main/java/net/micode/notes/ui/NotesListItem.java index 1221e80..b6222fd 100644 --- a/src/main/java/net/micode/notes/ui/NotesListItem.java +++ b/src/main/java/net/micode/notes/ui/NotesListItem.java @@ -30,14 +30,35 @@ import net.micode.notes.tool.DataUtils; import net.micode.notes.tool.ResourceParser.NoteItemBgResources; +/** + * 笔记列表项视图类 + *

+ * 该类用于显示笔记列表中的单个条目,包含笔记的标题、时间、提醒图标等UI元素, + * 并能根据不同的笔记类型(普通笔记、文件夹、通话记录)和状态(选择模式、是否有提醒) + * 进行动态展示和样式调整 + *

+ */ public class NotesListItem extends LinearLayout { + /** 提醒图标,用于显示笔记是否设置了提醒 */ private ImageView mAlert; + /** 笔记标题文本视图 */ private TextView mTitle; + /** 笔记时间文本视图 */ private TextView mTime; + /** 通话记录名称文本视图 */ private TextView mCallName; + /** 列表项数据对象,存储笔记的相关信息 */ private NoteItemData mItemData; + /** 选择框,用于选择模式下选择笔记 */ private CheckBox mCheckBox; + /** + * 构造函数 + *

+ * 初始化NotesListItem视图,加载布局文件并获取各个UI组件的引用 + *

+ * @param context 上下文对象 + */ public NotesListItem(Context context) { super(context); inflate(context, R.layout.note_item, this); @@ -48,6 +69,20 @@ public class NotesListItem extends LinearLayout { mCheckBox = (CheckBox) findViewById(android.R.id.checkbox); } + /** + * 将笔记数据绑定到列表项视图 + *

+ * 该方法根据笔记数据的类型和状态,动态调整列表项的UI显示,包括: + * 1. 根据选择模式和笔记类型决定是否显示复选框 + * 2. 根据笔记类型(通话记录文件夹、普通通话记录、普通笔记、文件夹)设置不同的UI样式 + * 3. 设置标题、时间、提醒图标等内容 + * 4. 调用setBackground方法设置背景样式 + *

+ * @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); @@ -99,6 +134,15 @@ public class NotesListItem extends LinearLayout { setBackground(data); } + /** + * 设置列表项的背景样式 + *

+ * 该方法根据笔记数据的类型和状态,选择并设置合适的背景资源: + * 1. 对于普通笔记,根据其在列表中的位置(单个、第一个、最后一个、中间)选择不同的背景 + * 2. 对于文件夹或其他类型,使用默认的文件夹背景 + *

+ * @param data 笔记列表项数据,包含背景颜色ID、类型和位置信息 + */ private void setBackground(NoteItemData data) { int id = data.getBgColorId(); if (data.getType() == Notes.TYPE_NOTE) { @@ -116,6 +160,10 @@ public class NotesListItem extends LinearLayout { } } + /** + * 获取列表项的数据对象 + * @return 笔记列表项数据对象 + */ public NoteItemData getItemData() { return mItemData; } diff --git a/src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java b/src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java index 07c5f7e..69984ff 100644 --- a/src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java +++ b/src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java @@ -48,27 +48,56 @@ import net.micode.notes.data.Notes.NoteColumns; import net.micode.notes.gtask.remote.GTaskSyncService; +/** + * 笔记偏好设置活动类 + *

+ * 该类用于处理笔记应用的设置,包括同步账户管理、背景颜色设置等功能, + * 提供了UI界面让用户进行偏好设置,并与GTaskSyncService进行交互实现同步功能 + *

+ */ 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; + /** GTask同步服务广播接收器 */ private GTaskReceiver mReceiver; + /** 原始账户列表 */ private Account[] mOriAccounts; + /** 是否添加了新账户 */ private boolean mHasAddedAccount; + /** + * 活动创建时调用 + *

+ * 该方法完成以下工作: + * 1. 设置导航栏显示应用图标 + * 2. 加载偏好设置资源 + * 3. 初始化账户偏好设置分类 + * 4. 注册GTask同步服务广播接收器 + * 5. 为列表视图添加头部 + *

+ * @param icicle 保存的实例状态 + */ @Override protected void onCreate(Bundle icicle) { super.onCreate(icicle); @@ -88,6 +117,14 @@ public class NotesPreferenceActivity extends PreferenceActivity { getListView().addHeaderView(header, null, true); } + /** + * 活动恢复时调用 + *

+ * 该方法完成以下工作: + * 1. 如果添加了新账户,自动设置同步账户 + * 2. 刷新UI界面 + *

+ */ @Override protected void onResume() { super.onResume(); @@ -116,6 +153,13 @@ public class NotesPreferenceActivity extends PreferenceActivity { refreshUI(); } + /** + * 活动销毁时调用 + *

+ * 该方法完成以下工作: + * 1. 注销GTask同步服务广播接收器 + *

+ */ @Override protected void onDestroy() { if (mReceiver != null) { @@ -124,6 +168,17 @@ public class NotesPreferenceActivity extends PreferenceActivity { super.onDestroy(); } + /** + * 加载账户偏好设置 + *

+ * 该方法完成以下工作: + * 1. 清空账户偏好设置分类中的所有偏好项 + * 2. 创建新的账户偏好项 + * 3. 设置账户偏好项的标题、摘要和点击监听器 + * 4. 根据当前同步状态和账户设置情况,决定点击时显示的对话框 + * 5. 将账户偏好项添加到分类中 + *

+ */ private void loadAccountPreference() { mAccountCategory.removeAll(); @@ -154,6 +209,16 @@ public class NotesPreferenceActivity extends PreferenceActivity { mAccountCategory.addPreference(accountPref); } + /** + * 加载同步按钮和状态 + *

+ * 该方法完成以下工作: + * 1. 获取同步按钮和最后同步时间视图 + * 2. 根据同步状态设置按钮文本和点击事件 + * 3. 根据是否有同步账户设置按钮可用性 + * 4. 设置最后同步时间或同步进度 + *

+ */ private void loadSyncButton() { Button syncButton = (Button) findViewById(R.id.preference_sync_button); TextView lastSyncTimeView = (TextView) findViewById(R.id.prefenerece_sync_status_textview); @@ -193,11 +258,28 @@ public class NotesPreferenceActivity extends PreferenceActivity { } } + /** + * 刷新UI界面 + *

+ * 该方法调用loadAccountPreference和loadSyncButton方法来刷新UI界面 + *

+ */ private void refreshUI() { loadAccountPreference(); loadSyncButton(); } + /** + * 显示选择账户对话框 + *

+ * 该方法完成以下工作: + * 1. 创建对话框构建器并设置自定义标题 + * 2. 获取Google账户列表 + * 3. 如果有账户,显示单选列表供用户选择 + * 4. 添加添加新账户的选项 + * 5. 处理用户选择事件 + *

+ */ private void showSelectAccountAlertDialog() { AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this); @@ -254,6 +336,15 @@ public class NotesPreferenceActivity extends PreferenceActivity { }); } + /** + * 显示更改账户确认对话框 + *

+ * 该方法完成以下工作: + * 1. 创建对话框构建器并设置自定义标题 + * 2. 添加选项:更改账户、移除账户、取消 + * 3. 处理用户选择事件 + *

+ */ private void showChangeAccountConfirmAlertDialog() { AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this); @@ -283,11 +374,29 @@ public class NotesPreferenceActivity extends PreferenceActivity { dialogBuilder.show(); } + /** + * 获取Google账户列表 + *

+ * 该方法通过AccountManager获取设备上的所有Google账户 + *

+ * @return Google账户数组 + */ private Account[] getGoogleAccounts() { AccountManager accountManager = AccountManager.get(this); return accountManager.getAccountsByType("com.google"); } + /** + * 设置同步账户 + *

+ * 该方法完成以下工作: + * 1. 更新同步账户偏好设置 + * 2. 清除最后同步时间 + * 3. 清除本地GTask相关信息 + * 4. 显示成功提示 + *

+ * @param account 要设置的同步账户名 + */ private void setSyncAccount(String account) { if (!getSyncAccountName(this).equals(account)) { SharedPreferences settings = getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE); @@ -318,6 +427,15 @@ public class NotesPreferenceActivity extends PreferenceActivity { } } + /** + * 移除同步账户 + *

+ * 该方法完成以下工作: + * 1. 移除同步账户偏好设置 + * 2. 移除最后同步时间偏好设置 + * 3. 清除本地GTask相关信息 + *

+ */ private void removeSyncAccount() { SharedPreferences settings = getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE); SharedPreferences.Editor editor = settings.edit(); @@ -340,12 +458,28 @@ 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,14 +488,38 @@ public class NotesPreferenceActivity extends PreferenceActivity { editor.commit(); } + /** + * 获取最后同步时间 + *

+ * 该方法从偏好设置中获取最后同步时间 + *

+ * @param context 上下文对象 + * @return 最后同步时间(毫秒),如果未设置则返回0 + */ public static long getLastSyncTime(Context context) { SharedPreferences settings = context.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE); return settings.getLong(PREFERENCE_LAST_SYNC_TIME, 0); } + /** + * GTask同步服务广播接收器 + *

+ * 该类用于接收GTaskSyncService发送的广播,更新UI界面和同步状态 + *

+ */ private class GTaskReceiver extends BroadcastReceiver { + /** + * 接收广播时调用 + *

+ * 该方法完成以下工作: + * 1. 刷新UI界面 + * 2. 如果正在同步,更新同步状态文本 + *

+ * @param context 上下文对象 + * @param intent 广播意图,包含同步状态和进度信息 + */ @Override public void onReceive(Context context, Intent intent) { refreshUI(); @@ -374,6 +532,14 @@ public class NotesPreferenceActivity extends PreferenceActivity { } } + /** + * 处理选项菜单点击事件 + *

+ * 该方法处理选项菜单的点击事件,目前只处理了返回按钮的点击事件 + *

+ * @param item 被点击的菜单项 + * @return 是否处理了该事件 + */ public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: diff --git a/src/main/java/net/micode/notes/widget/NoteWidgetProvider.java b/src/main/java/net/micode/notes/widget/NoteWidgetProvider.java index ec6f819..8fffe80 100644 --- a/src/main/java/net/micode/notes/widget/NoteWidgetProvider.java +++ b/src/main/java/net/micode/notes/widget/NoteWidgetProvider.java @@ -32,19 +32,56 @@ import net.micode.notes.tool.ResourceParser; import net.micode.notes.ui.NoteEditActivity; import net.micode.notes.ui.NotesListActivity; +/** + * 笔记小组件基类 + *

+ * 该抽象类为所有笔记小组件提供核心功能,包括小组件数据管理、UI更新、点击事件处理 + * 和小组件删除管理。它支持不同的小组件类型和布局,通过抽象方法让子类实现特定的 + * 布局和资源配置 + *

+ */ public abstract class NoteWidgetProvider extends AppWidgetProvider { + /** + * 小组件数据查询的投影列数组 + *

+ * 定义了从数据库查询笔记数据时需要获取的列,包括笔记ID、背景颜色ID和摘要内容 + *

+ */ public static final String [] PROJECTION = new String [] { NoteColumns.ID, NoteColumns.BG_COLOR_ID, NoteColumns.SNIPPET }; + /** + * 查询结果中ID列的索引 + */ public static final int COLUMN_ID = 0; + + /** + * 查询结果中背景颜色ID列的索引 + */ public static final int COLUMN_BG_COLOR_ID = 1; + + /** + * 查询结果中摘要内容列的索引 + */ public static final int COLUMN_SNIPPET = 2; + /** + * 日志标签,用于小组件相关的日志输出 + */ private static final String TAG = "NoteWidgetProvider"; + /** + * 当小组件被删除时调用的方法 + *

+ * 该方法将数据库中与被删除小组件关联的笔记的WIDGET_ID字段更新为无效值, + * 解除笔记与已删除小组件的关联关系 + *

+ * @param context 上下文对象 + * @param appWidgetIds 被删除的小组件ID数组 + */ @Override public void onDeleted(Context context, int[] appWidgetIds) { ContentValues values = new ContentValues(); @@ -57,6 +94,15 @@ public abstract class NoteWidgetProvider extends AppWidgetProvider { } } + /** + * 查询与特定小组件ID关联的笔记信息 + *

+ * 该方法从数据库中查询与给定小组件ID关联的笔记数据,并排除已删除到回收站的笔记 + *

+ * @param context 上下文对象 + * @param widgetId 要查询的小组件ID + * @return 返回包含笔记信息的Cursor对象,使用PROJECTION中定义的列 + */ private Cursor getNoteWidgetInfo(Context context, int widgetId) { return context.getContentResolver().query(Notes.CONTENT_NOTE_URI, PROJECTION, @@ -65,10 +111,34 @@ public abstract class NoteWidgetProvider extends AppWidgetProvider { null); } + /** + * 更新小组件的UI和数据 + *

+ * 该方法是update方法的公共保护接口,默认使用非隐私模式更新小组件 + *

+ * @param context 上下文对象 + * @param appWidgetManager 小组件管理器 + * @param appWidgetIds 要更新的小组件ID数组 + */ protected void update(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { update(context, appWidgetManager, appWidgetIds, false); } + /** + * 更新小组件的UI和数据(私有实现) + *

+ * 该方法负责实际更新小组件的内容,支持隐私模式和正常模式: + * 1. 查询与小组件关联的笔记信息 + * 2. 根据查询结果设置小组件显示的文本和背景 + * 3. 创建点击小组件时的PendingIntent + * 4. 在隐私模式下显示特定提示文本并跳转到笔记列表 + * 5. 在正常模式下显示笔记内容并支持查看或创建笔记 + *

+ * @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++) { @@ -124,9 +194,31 @@ public abstract class NoteWidgetProvider extends AppWidgetProvider { } } + /** + * 根据背景颜色ID获取对应的背景资源ID + *

+ * 该方法由子类实现,用于将数据库中的背景颜色ID转换为实际的资源ID + *

+ * @param bgId 数据库中的背景颜色ID + * @return 对应的背景资源ID + */ protected abstract int getBgResourceId(int bgId); + /** + * 获取小组件的布局ID + *

+ * 该方法由子类实现,返回特定小组件类型的布局资源ID + *

+ * @return 小组件布局资源ID + */ protected abstract int getLayoutId(); + /** + * 获取小组件类型 + *

+ * 该方法由子类实现,返回特定小组件的类型标识 + *

+ * @return 小组件类型标识 + */ protected abstract int getWidgetType(); } diff --git a/src/main/java/net/micode/notes/widget/NoteWidgetProvider_2x.java b/src/main/java/net/micode/notes/widget/NoteWidgetProvider_2x.java index adcb2f7..02bd7f1 100644 --- a/src/main/java/net/micode/notes/widget/NoteWidgetProvider_2x.java +++ b/src/main/java/net/micode/notes/widget/NoteWidgetProvider_2x.java @@ -24,22 +24,60 @@ import net.micode.notes.data.Notes; import net.micode.notes.tool.ResourceParser; +/** + * 2x尺寸的笔记小组件实现类 + *

+ * 该类继承自NoteWidgetProvider抽象类,实现了2x尺寸笔记小组件的具体功能 + * 包括布局设置、背景资源获取和小组件类型定义 + *

+ */ public class NoteWidgetProvider_2x extends NoteWidgetProvider { + /** + * 更新小组件的UI和数据 + *

+ * 该方法重写了AppWidgetProvider的onUpdate方法,调用父类的update方法来更新2x尺寸小组件 + *

+ * @param context 上下文对象 + * @param appWidgetManager 小组件管理器 + * @param appWidgetIds 要更新的小组件ID数组 + */ @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { super.update(context, appWidgetManager, appWidgetIds); } + /** + * 获取2x尺寸小组件的布局ID + *

+ * 返回2x尺寸小组件的布局资源ID + *

+ * @return 2x小组件布局资源ID + */ @Override protected int getLayoutId() { return R.layout.widget_2x; } + /** + * 根据背景颜色ID获取2x小组件对应的背景资源ID + *

+ * 通过ResourceParser获取2x尺寸小组件的背景资源ID + *

+ * @param bgId 数据库中的背景颜色ID + * @return 2x小组件对应的背景资源ID + */ @Override protected int getBgResourceId(int bgId) { return ResourceParser.WidgetBgResources.getWidget2xBgResource(bgId); } + /** + * 获取2x小组件类型 + *

+ * 返回2x尺寸小组件的类型标识 + *

+ * @return 2x小组件类型标识 + */ @Override protected int getWidgetType() { return Notes.TYPE_WIDGET_2X; diff --git a/src/main/java/net/micode/notes/widget/NoteWidgetProvider_4x.java b/src/main/java/net/micode/notes/widget/NoteWidgetProvider_4x.java index c12a02e..6e4a984 100644 --- a/src/main/java/net/micode/notes/widget/NoteWidgetProvider_4x.java +++ b/src/main/java/net/micode/notes/widget/NoteWidgetProvider_4x.java @@ -24,21 +24,60 @@ import net.micode.notes.data.Notes; import net.micode.notes.tool.ResourceParser; +/** + * 4x尺寸的笔记小组件实现类 + *

+ * 该类继承自NoteWidgetProvider抽象类,实现了4x尺寸笔记小组件的具体功能 + * 包括布局设置、背景资源获取和小组件类型定义 + *

+ */ public class NoteWidgetProvider_4x extends NoteWidgetProvider { + /** + * 更新小组件的UI和数据 + *

+ * 该方法重写了AppWidgetProvider的onUpdate方法,调用父类的update方法来更新4x尺寸小组件 + *

+ * @param context 上下文对象 + * @param appWidgetManager 小组件管理器 + * @param appWidgetIds 要更新的小组件ID数组 + */ @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { super.update(context, appWidgetManager, appWidgetIds); } + /** + * 获取4x尺寸小组件的布局ID + *

+ * 返回4x尺寸小组件的布局资源ID + *

+ * @return 4x小组件布局资源ID + */ + @Override protected int getLayoutId() { return R.layout.widget_4x; } + /** + * 根据背景颜色ID获取4x小组件对应的背景资源ID + *

+ * 通过ResourceParser获取4x尺寸小组件的背景资源ID + *

+ * @param bgId 数据库中的背景颜色ID + * @return 4x小组件对应的背景资源ID + */ @Override protected int getBgResourceId(int bgId) { return ResourceParser.WidgetBgResources.getWidget4xBgResource(bgId); } + /** + * 获取4x小组件类型 + *

+ * 返回4x尺寸小组件的类型标识 + *

+ * @return 4x小组件类型标识 + */ @Override protected int getWidgetType() { return Notes.TYPE_WIDGET_4X; -- 2.34.1 From de42c9b4a444cafb51974495ca40a61d7eb6497f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=B6=E4=BF=8A=E5=AE=87?= <2643473564@qq.com> Date: Tue, 23 Dec 2025 18:36:51 +0800 Subject: [PATCH 18/30] =?UTF-8?q?=E5=88=A0=E9=99=A4=E4=B8=8D=E8=A7=84?= =?UTF-8?q?=E8=8C=83=E7=9A=84=E6=8A=A5=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...米便签开源代码的泛读报告.docx | Bin 337353 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 doc/小米便签开源代码的泛读报告.docx diff --git a/doc/小米便签开源代码的泛读报告.docx b/doc/小米便签开源代码的泛读报告.docx deleted file mode 100644 index d886111b1d94f20e2a9552e4af785e84f804fb59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 337353 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
$;lT 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�(8d5|z|1;Yc}fv;H4o~%9Q$8V}~uyPxF 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%0ARb!J|epm_+ z$`&R%8(Ts0{u=;f#WsMncXC`19K%sCb=7+FtViAV>ERVlcIT>Ug1L{v^42ExzM^}6 zNp?f}O91yVJamO0*PuR-kV9eY{#{3$@pIcNmy7c?p!gw4bQZC-?|!eb)gJ#KllZ+B zaQEOKYvwTIh9z~1r;_~zkbt(E{@7>tT?)T8zQX7tqx>N-hw@F1tW3v4P*{3!fJGRz zevVEn!&Wain<@5|-D=(^p>ton-gp_AvL0ML$5KC+e5li+f@SV7jbOi6qG%p!CisLv zw^AI&`k`a7ARgySpcuejW9Gxv!J>M#1R-0P>Hh0+$@3C`?4=kpQLOGs`##WPv4bKy zA|kE0#-KBw3JEa9P+LhYNgjL~T#w08K01QkYdk5w%5NML&*1f5ym{6NV^$2m{fFFg0Ce}B0PIn`_oq`!qxa@=_66WDfY!3nThH#CShq7a-|ERPenv7Pv} z=kdu4)#?DwhTEVAyueSJSL&;V{s?g6Q#dE1eIh)Ax~`66kZ z^TvqAl*^=Hj#tyA%SDIrxqnl&EzKhmKG}QH@lu!j;Xo&0xoU?1&hvoGveQGQK~g^j z1$>n>cZGu8#Db# z-%3KzX}mxn<42&uL3>SJY+pT28c%>v*~v&P|5e#;wJ+GGyNlf43$ICW|M-<4?&X$} z@^7jm(~MH9PV9_D`(We_HSbLhV1Bic5&>TzFe6P}^^?HFYF|!d9$l(ei0x1yk2!*m zpe3rNIh%z&6^o3@0r*;WLTS(~H(GMN4GlfF_qzaC7IR0(UzdIcax3{N0Zdq#j0nC7 zb;k@@D;3U$1D6p%K&}LwQNn&M2n?G%gU4qFf|d$)U`hj*SSp|61OmrkAY0JHGpr*x zR2GLX>xKo6$~7M{98l<=36KEM`wbvZ75k&|{_mdJlxi|GOVEGN5T!v$)LmYyvRm|_ z{pIyzDBLDTJus_oC~XHhZY7bR5i_ui+ozIObfH;v&{M_F&OmB1q3p4vUbUmRypLm^ zD{w~1KJ&Rpl0NR*OX_vEwR4mkA=$al%U4X9Ce_AGZf$}7#En~#&HTCTT0VDR%`-XA z`O<2Y)_{An!IPJ4ljt`y-=e|^`L?nej#+1pGxyzb_`%dZAyKxiZx~2bTK}mvx!W}k zI?Akg(5We;hj#Dn?z{q88 znnH01Rd)XY=D25aJZn!_V7-&ZUO;HTuSuUE40)Dz%A37e#lVLcRhv?E5((}lFs*(WYrXp>vK}W0oXG^x#RB+YB zyhbm8ytZ<5C#K(=UpqW7Lf{Xj@!U*~Q8u7Gqm)P-^W?u82b{@6;Pm+d{SP*y&hlEoY1O3cR|WC3mGd-2Z!HM3{tECE)D&5fP$O$Z#QEaUroCFwHqQvLMlljlat zC9smfxBV8cU#zf74Rcq|rqkHhe8(;ttm?^Qn6&}RgKSkqZ!bU4ISU@YUKpMNbPRw< zcXHs|{|UUIoZJ_^_ylZk^ZKHdB@VXBokVDzxQuMD8M**C5bwi#yXFhmzm|i@skt8K zNBuEpo)^U@3&Q01ahX$1W;WuPxO|m2EWboU!Rvqqd3+t7q~az8czn2_>JnLfeJVTFR!_D2IrhJHZa5=6whFOW zX;kx341nC!E;cH}H0_g^R&6a(`eTUuZoXT;f0H57nB7LZ!b`|L^h z*v|<0crDA-#_$SbSD61u%*bl={_EykoQgtQ>-RtB`hSf4{^z9R-(GdZuuxRiUr21E z#1?XGWy*lXZSwi+G&~Hz+dP`nu4TABbd0j9Ojc!6{->ui-XoI3`ggwQdVJzb$uz!u zS|u~Q3-ycbFa76_dKRd_uk$2t^epUv9>xtBWE}vi0F-a-7q#VGwxfdR!jC)BGQvdK zdX2b?zo+5|m6SsWy($YQWLb;{GT4oU$ivJ|k|o3(QJKfv^M%(ZjqMAPD*y)Z-g3WY zfC>-GFrjT)X8;qhr!~un4zIQ;a8e1zSX+?+DBhCFaX|VTF!Nq#^HsKgTO|uRovC&_ z)gY4dWy1(i^s8y{X8ROCpP%_kf3j=Xmje){E51uaM@<*U1@`KytmBm_`8E}({g_Zl zm}O~E1sGeeM_7m&ZXOMArD@Oz*?|=uOMxY6MkjRR>0h%rBRYqpt-|t|x6XW(5X64I zfOp&!odAc5`hi&|9&Th&^$n+?VQt?wRI8-VBX{eUu{L@g)+a{}jH4ZqFoPVoj zJ9cwg9g?jH=$`B+2;4sLzZ4O01{95ZU*=!(0_4b&NZBO@f$DWt@-(Z^@Rn1BxB9PQuhgT`Hy~(6fTf83;=pzndr{~(yN0h zyv&I-IQJ=T%f}ie-L%&5-2|n;m;jnM(+BT~{-|b{5}tcg5dT1hVnl@YHhY!HqxU`7 zmsP4MGA|DaxdlLY(RFoSsO@m>-(TMXiO`zgwfofE(;v;`;^IOD$H`=$pEQ;voTduy zc-*zrL40y@AB7hQj2Uuk6Kh6YOr>0W1MFD7xm`6Sox&-rO2CfUPgMBv0e}K?(gJjH z!}9b`vmCITdUMDI2_*$shJ#!%`?6!;R@ zsucqgFc~OS@l`$oh0Cgi?F3w&XG~F#C}=U=i(tCIG+)&N2K57Pti?&*&mN)hxe7n- zeeJw!2nBHe(yHe(X@=`@ao@&V`=?}*#LdU z?~ia4cJe<9zyv-7{CU_%1yCb~maYe}kp0C2Vq#V5!1w#Z{~O#O{~?pc`IX4)bLS>^ zpLFc={ywRT9~sQF@*xfm_V@3Rx(NP#QWrb}fX3y)Z&DY*jAwzs*Z-GET^=g^3#p67 z*h%Bwe(WRRgx9@+pt$U1mMXrTFfUF*yCssGY@2Y=r{fBtt#p2=X|YeJM}7=l%Q`x# z%n}`ABD4+zOIxaZiK{4>_$1H2qEIK0SWdU>U+T)q11j!4{e%iQFy- zi*%B>^L514{p+{JJw@;Nw#Mp1n(H+V7z#nD%EZkOxJywMN1@%e zx!~bg0nlC#r@URm8nyb{g57Ruyh;ANm@$X9vBYbGURtYvFJ#p9XpBNqKMPqTt5;obG(VrhSP)i4FfLvSJ}JtB6^}XrRaxTrgf)Jm z;G2OjJ)ZWutbpsMXJ*ECpJg%X8v+Co!gj;=ffQeKp&@F3W8_08|FG%6`Ww~Kr}vlv zsO*N6*YdUO61`*(jjiMp_QZAY&_KNm|H%{H%}I)`74<{h=ZX zQmnBknbN96^NTh|O*|`I*EZk1;U)c6U@6bIWm~*brR(&{c_&D0H`L>{TP+Hd^=m_^ z@W(_dTpmcB6)dx4hA{;RGpMP3=|AqPXvvZ9tBd61Hwy;>rd2Bfwe()HUCnDSvY0hY zG`X}v(0^W;+kx3rkA2$w>04AtP6b+lh6!=%D!PI?%3B#K=J)03fz)aBB&G<};$6if5 zIZQ5RNYc)*&tt#J_57KqCS%|$MR8GYUJY_;_NXW(9pzhZuM4kYCaEixMkW!JK8{Y! zrAC3@IHvScUo^K(d5%{o#p`CG?9Do*?97XZwUxBsoACtUc7UQdpMCy;Q~6t1&0U%J zXqH%}o}yy&AB7or`F9XeKw;}lX0rC6F}p3e}#b9z_N_= zspA-{D*KbzpJ%1a9i$+-@9WG>Dp~y%w{JTKNZfNJBi_hJeht<5P!4+&d2yV!1Qbap z%hIt1#^&P{>%HmLaZb;@uOTNj_6fpH2>B*{Po3kdC!@Jeu;M$FZ_$E45cSqyqFm6 zG_?eNiB{9^HS#-lcfCW`ZDuk6k`&hBBFOHVr3lkIE8d}QPZ3MMIc|}?4wC3tNnZQa z!$8TUA#1q%O|x7{3y~D@bM=65$;J@Suq>Q-ljBSli0DU(xZ{oVQp87_sGb8QXGd@C zZ9I&C8Bf?byeQACyM*lRS#3IJ34w$8s{EznSVl}*GSFWt9M_8AWt=B|s|XhMk{s}Z z971(5T(>L^UfC*Jwo}ZH>&A+RGfa15z#@fPo>R$M4LHY8%BE7=YihSg^F?~*fZop8 z@SX34oT+D<1mu1AIDCqCYQ8+Od=XeRSgnYHo9__YijJi}@6#)A2ry2T=&gL4z*;7{ zxeLRc5n|%z(pJp(OvzY^Yu@80t#2h3fadYp2jjtm$dbCKyJNECUFBQ{PM{Q49aVaj z?Y_RIHPV-z)X}TlS{udkbw6+6;DiX`O*%0Bh`!o(jP~PJ+&s*)TO*!}ovJ30K5GEf zOfh6pCMPJ_>xJ3Aki4oxevM}_3dHPk20mzi-0vcn()O(g6T~qN(=EaeU%OSS4n@Hl zJ<()^(bnr`UyQl}BL|YK`o~vlzn-%p$b`*|5t7N@%(12T#7938NG9 zyKMO1mb!`T5iK)wx#MF(oS$-CxBh#}@jqI%gs_YMj9vrzjO+Fg`e3cnc1wHf4&QSS zC{kQibsDUf4|q4W0E=Grsw0G79 zROefcyj4R1FTV>V4$jZI{gE{3d?{C(K75K`EIr46W@`MScl(F7$^Tbw_))P7l=`yX z*R%Q4)S5gH6a-T3Cl)l_5dZs#Z<0Qq z_PmL=jKrK3j=I9~{u;yp`H&W~ySE6AmM<_!YwPmcxN@19ncdMzg$-uC1=2OQfqP3M zQeuVK&mMlTPV|On%6vD`Kzn#7si|ozDFq$fG3mSZ=|wFmgEk-KSliZQZ*-Ea#I;CT z34F>V6TaN4Dj|>f_!Y#!1n`+YDHZfukz>hK3+~0p@^Dq5J~B~aM(h?PwgHVOC&iI) z4$i{1xc1v%=oV1CFUe3DY$J3QFv4-IhxwN z8`!cU|1;i-XVNmM?NLBm8ZrQHLer&YvS-mDcd5c3L5`D`x8Y)nDe95?+a(%nHmaOuJOAiw^hZ2%p_4kYLzJ? zoLl^Y!whT|RpGu&e(xF^DAv=3@$e?WN0qclgM9FK;8&MxEul>8vh1+Kl=GD1xQy^6 z>N_>r99~Vt6F28>`=jf=c510y7JQX`Zt-hdM3Dzv2{KB#F8pbnKYG_eM8LjW z9=0+iUR*tK@Q3g?y%l`4XnrjPE-Rark3Raj*Ml1pEycbbE5I+C62$FRk!yECz>NrM zaxEvfY}*y9Z1>QWGr|lD>e3mF+vpW}d>fubWk67!q86zo=e$Lry0)}KLXPo~DdBrF z`koA*j96?n{o5XONxN*WZ+@+=1NUY$x6S&~fCUwdiHr|(H;1!^Q=Sd9om~`FhPx81 zTPiE*+F~l`OE{@U?Y4FT~40o0P5$v znrRcjn~aLiEbzZxRymP-S>V!_&YAk9U)jaj(SK9jO$J|Ehc0IeqUoIyvrB)G^b+?( zY!1^xK7K6er*OII2@w}D-kNQ*GQ(M_leV0K&EHz5+tMg5c^S*3s=nDM^V`I}sr^>j z<#gskCpSTiw!x*?d zb(;Us?e0|{@AnhNRO>r5tH0$DHTU3v1hA3=`{_4|UenoxNcwrzt0lQBUC(>vAq35B z%2~vx{5H@8^{BCor42*oH~!eWF=ZEcnbDgQ9~y17Q_)j-^hf-ljB))uBgdd}q?p7s zs?D>b{;PI%j+SkCu*=W(yl&B)uv{+v5q~j{0p0N3`)4lx6SiTW3uEWZ@LRQQ>@82C zI7bYNmTU^GXqYD_7{!p*(E7co+eNC8D^Nqw_C+XN{?!@>Iy(EDK_=YRe)3!ACyu6G zmYysp_4;XH^UlQkf(4S)T5bGU`SlO83Pn>RxrY~)`xNQCfh`LfQeMhJtq>V~WuRVc zqwP_3*5ubLsh9mDh2>W{YekkO!hI!G?fAUWJIDEa122nY|D^Twk%Oukk=g@qe)&ZT z>v6ufsYJP#IY-33S*R4dSZnRW3;U0%#~#d{uhc)-5a({Tzwg<3bR7^h3}= zdY4jJf8WSv1D7Jbpa7|pp`D1&;p;|UCoV3t*e(A;o+&S1sRTpa@W#|ePTP?zj`3=} z0UDu{%@pfs)bXZ&SJ|6Av==iIyY0TK?bVk|s03<6j+N|#b&#^2M(W3Q0th|z8{ven z>fD8})wNA{wLT&9j06u-nK2`Ddx;#3?CdAwRv^xoj_k}0 z07rf0^yV1hHO3CDGE9d0QF+Yik&j^pJ;`EJYi};iUXS~lUC^PXNRM7N$ad-<+$7$f?n(a9mP#}`;yqZK!o=PqLnpm_bmS7fZZs2v6e)cxEP___e5Zs*qVemC*;{3e(tg>2uLe^y}Cq@}I8*yYmA*pxT zz~oOr(m=^@ttf9GChI(4n^+vmYTtnVHK4I#Xp%3Xmhtt?mi_^*39OEJ72-Jn|3W3o z;UOYll}&K*)I5fxpWY)nKpIz3x2($}l3CF&GVV2Z=nw|g0A^IriK^uA3u&9ERM6fP zCXV82-W1{;H?UyJ%^c(ftHR$T7^h!7nekK$fgcWsOa7t4eRO_OS*Ds3takkxPq&9( z#8WWI#_z(&l8ouzz%&ahV-b@nj@@7aia&TdoUMS_uW6K=rjp8 zZpLkBUBYfL%k!d{vsQE0HyAyar)E#>MNDta$unLpleX`q6Z`QA8G@~i>4%;bMHEG`JBhMxx%=Zes9}chZnj?66Mo$?W$%_J3MD^UFdt+W%<~|b#Z7W4)-k*oh69olI|NNNA zgp>q7_8J|8*w;ezoDh}bs#>3_yvw!blP_M^VfSF0X?t?yV-&npr?@mdmTFT>9)4DH z7TL{x+uf}gM5TYe)onJFHk?jynS?5g%s0bG(BkGw9qZF~JLgVKHmZVW=mc0)b`({_ zawM=zv`Z)Z0m|pLOA+%lYJz&_&uHf(Zo+(QKNy(05b-@xy{^sx*336{2`{9%ASasS zsB=z7x`cbjN)!9bp)LZ}GmM?tr6414{lg*pVmt}!yjEO~6Y#zXplLSr)LU;K;!b zAr{^p(V8^qPokMAE_!u;_50b|k099v-WdKT1rt90b;WB0X@?ka4Y0wb67{sQ@STNU z`zG3<6uIK(Xt>~kf0nMQ8;5&jKL{cm{dR7?6 zl=X?CM6uRn?3Mn4bzcno>V{Hm{Rp0Rf9}S2_mt{7~BURB}#%Eqrc5VnXvxUmw=G15O3rLmG&Kgxi`1CHv zaKwE=NL6Mr!?c|nhs6#^Y@`HQdr`If$CG*;-m7$j>(H%Gzzg**W$eQb$xuZzJz%3; zUFptUweutGU~O;<9Zx-FV|wOmFVk?eCc%rPOW#dFwW5#3$&es{NX<;!uO+jvqG( zKAmYR1{zFFdAeVCZvCq9*cf^=&hRX|ER+U-UA>~Ce}diNg5s})kBF7aT>Kw|7&ebT z&}RDy?cFu_z|fLA)0+IRWy>Rpbvr{NL`r(=xY$*Xto6N`8@g7DjM0y( zw)xhSoG?>-c|2p^3w-&!xKCa6v2l_bat)bx-oq+r+Ib7uJQ95Tp4tS_dJJ`~qBm-u z$G*mOo(Tus_nFUjYoy&~9Rn(9t1kzh?X4$0Pc<*P|ll>X=;%BSO29ZHR^8p=Dm7z=QR+|x~+Ak9G>s8~`C8kkuZF>q;S$X8^ zb28_~35MKJ&d^50%VRFuG&Wx^;sj{v_qk7Jj25@%Z)6vmQgSE3g4puh+xIyXd za2k*s`@Ndi1zc<;K(X>lU??CZR?(Fqib2V^A&q}c6g_%jtVhJ@$m$|C!G2;*>dFH< z5wV5Uf0v?iNz$$KthCDpME-YOo;|-SFT6<;yUdo3&YU<*hjxHp)7btr&jU$4 zPCsb#Q=IlE)5-kP2Oj`c_bOG2aK-kxdoA2jVDbHVzmdnlb<^9oI2{HU?K6x^#}`w0 z8~uhk?aS3KNzbBjABGJdCk`i*hR`w?(S0H<4*TB+@$}c`)_n#ei5E*pA&V0PaMEf5 z)6-v8DysYODh=@jd8F0Zk2Z1cs5c}(nf-l85OU|QxF$3tYUPbJ5hcads-m$So*WK6lluZVm^{h1 zvw$msc_nH;BqhcY%doe=YpkDuIzVC7hzn(;j=X$;koa+&mX;Ra+0s6SHoca(*1{)n zu?YoqCE(N2pQ*B|ydBO73SK2LAWzO_xp2SowWi{;O5a0#@5VaBB)#K$TU*$G2dyt2 zZLxZneQFU50}#Rzh7InT6j#3p0obwE#4D3NZ@USuIZ^8vNnz_4mm8CJ0VU-mal!lS z89-eB=+E%&H(~>>cz{aw??r9@$_e}HqS ze&q7zlPC@j_V@4M9EAP>&LJ8=HiZ4gIdtZpz6QSjzl?JbrTiPt!BHdOBxw($UNn;* zz~Y?rK%%LuVybld&JWtou`MFE_4G#fRw2n(_wnjoTUFON$UYX=?khUfSkq3pgy_F! zjb*YeA%dGG-izdF@A=Lg*zkyx+I-xx{IrIuv^`qgM>~0|u%eeFFeyWY=!BH%D?Jm} z`E#zH7xAx_&YQy98J`>b9G?3QW^A#rva$l>ffM(unG(yW{2u)n41gF~1YR-&M=Ff} zjf47uJ`2B;D~2oSD-`e5Yg&TU3fCRI!VA)??;=15D~1o0hElM|nRluUX=_PD?AFR7 z&CEJq;oy{f=2pn9pdiNzkq*IY_eLWRdAS=vuX9P?yvMjBKB2*fmpg?pdJ!WhysyGc*LrY4kWW2wY5IS-1QyN(F8NodxM4zJALyI^7+ zqFBP#;L_>~x)psu0o&6_5}K~g-$zS&$bBT1RWgD%DF;6>{r}!*6^<%xpML}Q52Pp&DCmIUIx_AIuwH)w3*dvX0dv_F~>ki zv1wimA|)YypPb_K_hZMgk9BHN4&Qa+WD4HKgu~w@7*>sI9#yCy=Vl6)<>?SnD_d`) z-ZAADU9TerM2So;w*hZ&Fj0(K(O-4iIL4Aoy?j<1PPY)vlrpW>Ues;y2L{_aW}gwF z9?0E&fVmYBWF{D6nz`l2S*8qoY45(0L~s1(MYf+2wV&~b4ZdcoOxY<3Yg?3>PiJ2` zzVbF#U3obR$iVX;M(}_cS8ASVh>)2~@rT54|C-;ekk3t2)~m}7<31y!sk$?uelJs@FZe4d!hU$H!GJn;%UYec}J>>W$@#o z#9YLm4Ybl$LGJ?1EK(6< ztnBfHDu?lXAHti?K+qhA-3AaWxYBO%S6QIS3ApZw@^1mM8t%*L;zoF7>L<-Oy&0|% z9|T*!dtv8Z&t- zq*a-S7*K0OI&JLF)kjAr*>d4Onf>%h%=xtBZ!`NTAo#7?=Mld}Up^O@MDH#CoCk9M z(*xJJm6erDM?PJ7v1dmyy;%W3-ELqr3ba8^PHt>;243d1tLdTptrV+wO0E+{w|L*d zY7Ji%e?&8;zIha5RP0C@H`>2&p51i5cbVh}#9R$bjn9@Sj*|AgyF?PnKxr^W?A-0` zA`zZVJ(dm#X;akws$t2?g+)YT7rqji^MYn$87#I+W0Zn8n$Nn$w z-a9U;txFrkfL>8VB?%Hla?Uv^h*0EEMNWd`oHK|DTrw0CIY@>gNsa|5N)8eVB!f^u z6`@E)4s*D-yJz~HetY`sp84aOKllNs&Z&LQ-s|kW_VcV~E%)vAE3ajq_w0?A>?R{R zZF{5vTXrV=Npbl~$z14$_KR|k*JFKW2~D0<@RR=rN7T#b zpTB;61uR(axH-mU1qHiQG;ikcfq+y5SH-sgUBq5>bz)#L9tVE>`vY~AXrRR|zTb@v zxgVZCEOS=dyjJ!UPlwTH9&$E3?Vrq;Qg1R-9S<+d;W%HG7D~b!&{92CSy^2CT=hu= z&`~fv?g%EWC@WJAe)%#lFRyE~`iq$i>esIn65}zvj*OmtmPZdLmHu2#P?L&h0Aj?= z?{yH67#1Sje*E?3anSr{%RA5As|_4mPe0^qUVwhq8sbK!I9v*!JB&nPq^P~!x=j8- zDI>d*9jggxT85cZ?zs>`BD?outqdtPWR&xo0e+pduTzlS0a4-Wp?Xw*OpGok$xi3AZGrUn=$^4K#Nqx5$EQ9U zg*mCtVTr$Nz+OiB!aJo^qq~9v{%>T}U@W^9rTgPNV(^h29WPkb!~CqDQ(Q<=l44i2 zWJCI|Xq%p0HyRvu@pz$CLhQW~?);@&=@4g=ybNXpL8zbgdM?n!8;1aiuaAcpzcj1* zlAe$2>b|t`fd`xJr?uEUaT?!!JorULR!^`ec$ zA@9x$AcfL}gLvWE2t`xGeU}bMt4InR+NA6#g-L@m3*E$;+d$+W;uP;~@=g+JU z_Ui81xwIddH_i?ZnT-$V)zsDwro7A8TmI&Zv~cUU$`R+c>GH)mEnLjtbPBAXtjv&f z)~G0n*f?74X~S(YO@*wOH%;71^>9bTMj7N%1zlZ6kUUmaO^SrOrT6|RvYH@nX)C!W zoOLWJDK$#YFG-ymLBw>H(YUFl<4{pu?Fu;^7yvz=H#uZs=rzV=Ljp@ZR;wziS=?ls zC_Uc{zJ4uzg>_Sn_OQ=H5}PIe`sAn5sCGMO349T-)ScO`=P~?@R@U7q?IcYSK}Ckx zWL}Toui{*4tI|ksXkc95r#rbjZI&eTwEan7yQm!Z$TYkpJ5I|W`p9WLHM^g(SESMg z7AuNM#p!?gAyaH9Ba>4?c7j8qt3t-gr`=8Rrj3t!gmI78MpM+XCJn$oeh9<(Dwdq1 znc5%5@Y9&$l1Sc#agwtocIgpWY~6Y=)~h$!QpXMJ#-?XCYnH`zcSTGcJ{T*85+hfw zGcQ8cm4ZDGfy)z0Sq*t$xfn7W;fVmwT9zQDamBwD>`)YKaO=MHY^z<6GyosGj69vcFTKs1Z8!|Z1jkIp`n26__ccZ~ z=)h69v86U%u7zH0$ovA6)4(!;&2g%x1Kc56Z~9AFbkn%5#F^mWzHcNOF{e|<2YN6U zJ~18s0v5Vu%Gbp%VreF-)OW^CIRn2ffyhTkutNhq~9u8{DtWKR9| za-)l^^^(s_Fstv5QvD}1NQh|BO;oriES)eBnolDte%^NyX-Q3l9cC>8!gE*VCkvKJ zed)fy&qI2~XXDcDGxk6E%WXE1;?#9*Tc`zOSy;JTb4cPQ(Ch#ee4y4zj(VE?LM zr=}e~^OOG#(wNK%<`Ju(O{3unHj%{Xf82!nbGPITxyNj)ybx#zFZ|;?16k(Gof_$ z2zj6RL=N{MW$)t4Sl=#&v#h{OG2%-=BYiykm`w|5nn&$YeU8;jle&Y%h=u<4bL zO{l}XX)m|v3rA}8Re|gYbaw4h)N+3}K~KmY_C@j)`W6YW2Gv#nfqYG^VtU?zW?FsN`J~OLZ?LvU1d^JZ_o0 zu&^W`czsJ6yuMI)X#tANiWmkP>wTo$jv`+Kq)36jrEKEt;)Jbj&hi&+=jM-y`Ref|Z^VxvxjI_3L` zLl4|boBFuy)@z#&?U9A&nu2Xj>Pq&TY;A))2?7CN*Bh$unkzjgo}F-4reV^SlXF!y zOzaYjM$vf=m~bjs<{!P%2g0W_uRwPDi8TXU@s=%fbbe_of&MiFwg%(;D_U{&r%m+W zLbm0p1=$PRg?i(h95RQ1SyE#){vQhl<++?y$$bi&^!Qu~nr-&`4?@}|GcjV!di`wR z44X18uAoKw<)2S1HRe0JkynYbp8bEGJ{&Kt6%qC~d%}z{b(xEM9Jps3A?8|NXt;G> zRM5vqm(wC09Pn8!tA`TJ{$(Cn5u8WJ)^wuPBu)wOkq>sgDt?KqQFRUH1Ck?!8PK6h zbM0eZQv9eEQbUQ)2p;s)d0<(Sx2km{iGazByq_hwj5U5au++UmKH6eQJv*UP7}XPtT}YG?RJl^%Xm6I-#v^6Sju$2qRyUvwR+rOy-791~=i zLrJqbpfWU~M@^(q6;cPM;W9bJ5tLpq2DpwMVp)xsWewEAMP&B%)Ra6UVQ1SId^+Y%E zs7Ir2!6~6KPm_r1uj!l>eW%x7bo^+faX6+fw6`Q#ggFc_vp~X1~tXwk5T{je^x1c|kE> z#S3Xibr2x`wH~YmK|_asocN{e^zDZ-pau_?M4)=`ou(>X3w9PA*_pW0>@P~mbC_ol zXZ5%5N2xcx{?v7`CsCusiB(Dx-xomMWC);}{SveU72mVrO}?O%nkXJU)BhcskbxDe zHHMz;+6vM<%OWUuhjo*9I7wI)%NS6O&o~*c1K6UqwkGc3m>TJMJsf2Pfqo_^XUss4J@w4uW1p zDHt}~f{N7lCp%>k=-w9qnWUZG_atoWlzg7QDB3XH)(-MObVW1T=nlzeV*C~=cZ;29 zD4!9v`zUAcv!tR7NPR0h>1LXMm7hY|gQK`j66gBxm?WxgKRm8$*l+xFeB59TCwEe# zw%W*QWm~^STGTwR<``|oc6=}jl!k1&(@GE%-F>dS+$<{p1A0C@Zil_MFz_U!Kd>oC zw{qe>6g6aq8t%(8(NT?O@aR2(9;H>hrIOO*Ub|O$&KvadRdm=DnP$+Ttxw}W+g3U#UZbYoNSmyxwlme`93xMRHaBX@+OXE%JrM8ud}^6D(P6q%+y?> z8WKqHd4mzgcOhpREw}Ls=P&L0c28tNbbRiaUzguHf($mlmf>*)&99|Gdb-_+lrR!(ofZ{t3OOA7YZvEq>*;S)eDmAK1Yuapub)N#v&5LxzkjMaCm- zFtD|k9j>pZRN@iwJ1k2(+#CV6;nn11l>L)0723!*z|GvRh<$EU` zAyZ@kX)fR#avLnfJ(Cf;$Wj^H_JpZrbMSdB)HrNR>=tjRsyaFS3PZP%jR{x$G-m)N zEacU)tHqFhf+*Ky-h#$l_>?r`*=0^~KY?6ZSdK6QpA}Kc6Su2)8sastC+K0`8Rkt7 zsP;^viEhPoH&tKkDQfT}?Mt)nU1Gyn@AE<5fVHKzsfNgtIl~h#Q^zy*gDsCbOrS&9 z-tSfp|M^yWdS9~zDF-$-P2@)+;8_f}>K)RKH~H&m#olo+hS0;5WSZ?8$oi|=4P=>f zZxs}B&Fzl62rje)o{mzZHzH8pn8x{l-K&X)JmF}l-b96$i8xF577#8`Q`W2Df_z0? z*<_}aIJ)=EE>*@A3y+cX<7?5DkKI<^ZSJw)o+y21Rdgq?RYg>I$X+Pkkr;Se3J`*z=VzWyvNE0~Jd8rTA2aI8q74U?X#Jd`A5YZJsY zwNDpj%&?D-PgHs>-%$i9>g*=m!uU6eV619y&w|VLWI)wDX_)q5%&yO$4DPt5r zq*`oIItvvuz@=5&nHqoJ1unbVenlwaRV*T2?YTeQQ<~a5A6I>gQPr=j-y?( z#YEqG=89F0>iPnvUYuQ0v$Yj&y#GRVO?&7Har6akI^Y@vi}Rn`&UwCzUO}kX1})G1 zN?;Gh2Y?wtvXejfC$w&Me9(n)8N|!p&FmHwpu+XqZ!h~gs)cN7FxTMS5C5Cc_;>8a zKmSJ?pm=m9$AKgx(i4E#z=`8VBLQvDd6jm#enB>kq%FtS=cDZH=P2%t`zFU9svekz zq@<+$WX|@_t+cYl^d^y+pQQ1hO)ao#A-qvYpTTdI|t$@x~{xS^+%{GINR! zg58#d3)N-XfY-%QR;(d?uJ{>camyLlnv6?OMs!;MFVqSkQZ<01+eRkr_#;r7%zL0hd^u@E$Lonz_}H`-cx| z*0?0;>v~MWXQCe)dM-}V*;#k(7y#V6XX+ zDxfmly+|9GQ8+`_lW1mfp-B<49|%&?zMh_+HRa`9PaX_qNtPB$`u!UYnUwqbf@$8n z+C02#Ir=RKKup&G479eSSOG#LWzAvYRyR{`^SfqvJa9d(Dv<;*bC(}>pLV+vO(mvy z2YDaj-RIP34;RkbOnDO3{p^j#KPRX7Fgr*}PhU+R1~**-zu zzJpJ_wJDHf`UnlXy0kOV@&%Gh0d{)4lAyNI?i{R6F|0`dGd!o#)ipeq@B#jK-*^lV z#(2&a{}b}!d+xog+0wo(qdk?^gvRbRm3gX0Yq?z{&?ALRHljvB8bRB`L%c66GRC3+ zWMRS6yv(pJyX&hxJ2PCgcB3R*JzQ>o$tPAq*7$@=jxcZ~*{X-LlDnSbOxn4he^KkX z?fB-_4O5Lz=X-=cE0@pz;c|2{5EKYnHm#0v_r!1}E2*@2u>;W%x~i<)?(Wu$nO^Q? zrTx0!%+lg&*}|({FZad_3dYE}ILU!3PX{Ot0F zn}U)OkPsDNe2sbYJsEm_o%+m)gY!Q7>g&v^D&7kmQQ&hB;1{roiyKgAm%8xd>F^xy zXO|W=BqzA9mK-5RNj^A|u4fg$i8|LT#!yEmlq>|?I zN9x$p%05XEYhdd60I)e0y5+vbg>NV*D7yHdKhH3wd%lRj8Ka~U;A7M~tJ2LZKh0*Z z3CEej@L?&fvmDtjO-*fZ@xkA-Wd08K(~fh1Ap&HbJwUEhfN|taihue1(NE&R!7*uR zJa+l#kK(>fE$5_BqVlaRUx1lx?Cq6j>Ya2{J%!};@Q7b5DQGGRcLNe#ph9R&RB>xr z6wkx5m+`j@fV=Xo2U05mmM4pf(9=3O?0C;mQdSoA@?J_DV0zupo{|1>Ti_dsqvj>f zo0g}!Uj7YS9Z9Azo$6!CBCD8uj!87n94sAQ7(fkcOXNN~@RUdAnL`RAi zQE?xbPY;gBqj6vU;%!LJa2GT(EO>Zs&%s0-DMHSoC&=b8ej_P^6TxmV?vRi+$&p#_~y$N%4 z(ipZ`b|b#eH9stEmnW2rEGh8P{ffV_|6cS{AIf@w8QaUX(|W!FX#CwF%H@%VyptAg{RpM#@1X0AG0Or36$E))nPUrl8iLhf9+#LX8Xfj)o(sUX;{(CWWe+2vF9!!7M4IFh-VUWc}ZLGYlcZe^YNx)BBQq+J{5=LG72pj z6K@lLH4%Z(`cR#uLypd=&faa_Izsk~CNA;@<)%p0POYG8oYt#w2n|tbiX$g^9 zO=KQ{=7)cl7@o9oyBxnAk$5zV?xAxAk zY<;R0%kqndh{@c+L&Z8(Y*45~QBhwUkb2@nCb^nM z6N#GGDRr23^()XfmZrXxjOzEQhQN**dY@hJQ@fQ^HG*-}8UcX=%)=X;aDR!R^h03h z-c<7vHr%-KES-|T=%5d&Q8{SAd9M(=Rwb=)?^B<}V6M|;w?7Da_Aw}iVz{;R)t1u( zbd)e3%vG`5YsMm8&4Kv^cD0->h>ovZDt{H&T$N5y3nHZeCUfKtN^Z_??{7PdM7(kR zk9mx$KJQzm===BxjE{e129)C{sV9pDBC${)@6}X5ScjoX@lnn2UH;5A0njDL+&1Sg zDNhnNU^LPF6@|n_mZx1iGnjd7+~5;LdH&-fOtw_HdYX|6fUH-}w)Rt@>`{0hrOlh-mc5Q{B3O7O$p=K3&ioE=y!b?QAqM-!S zYV$zZZc7S|@!x5#%j^R#L}oWT<^V|vLi5{TU&5l<`C6` z9@wI_*)V@OWp4%K?Ag+Vn1>-@2y_V7bMbY+^J_2-E(&xg2^?iQKikV1nc)`fcd6MW zCxfn`6-9@qz-?EJs&awtR`c3N^qzV{qL85Pk48J8bF}$)WKeuogS8Z4`GSnLzN2(! zVx=7M9YElY=#eOxj`bke>9A$sM0fK{O|bo$4$C>$3{+}NnNvG`6LJ@&D_z6-C9%ni zRGFKumy-ozUa5x0C&UB}&=9A!I*EDcqkJpO!}cbJz@w9}Vw+f5sM5B{>##N=($j{L zAidF1tJ637g?oLJCzfudGRA)C%SAg? z_2mu_qHKTJh&*=vi;?U*DP0>kOv*dx!A?R;TGN;W=a^3X9*iBm?cFBQyp`h`LXhdz zf1-;zm`=K8Nl@TEo7o*U&cll$5~Vi9`l&>Jx+)OhLs4JF{ zQiA>5+J2yf(eUtgcsDS4OUuage6&cTp$e@=`=$Ry10|M29T!XkM1K<-J{c@p3XV(E z&izf;MQ;Y3Ky3^=!UWc}4$cRVRi(%E>#|=W(s;wu9*atIOyYx%w2R+4Y)keFvH{wv6+&|jI+AM~eNz)9t60iIw-?1r^JK_5YP~TrTpij) zZPWA4VeWbAPjX96yUF$SVoITbC_tmslf~3TyHNIFnhf{ggd_veuQl|rR1JC*mTo0I zU#4Pv9zvHd5AqC(qx=KbZ@42Y1&Z)#p!BVjEBJx5^_k;G)LYP9cMeVD9*tDRWf4`i z!5d(1G%onj)YrF=i$G))e?*y|Zknq#c-ntiKiG%C{R3$>u2xMErAD{ppMhQXi(I_~ z;CnGQQI{IQaH~ub;?ZM#P*5U;_?-AwY4xl%mBBmnKp#fb+S9@&@-f@=JuDpgb#flL z8@6xOjs-a5naEm?WUY$$p0o-4`u~^^QS#4ym?SBKsurpUdg`tO-JFWIac=j`a_?h~ z+-!-pW2q*y{5tW>c<$otL%ZO^9|~7}$x*VbT`y)b32nWyM<^y;sAu(Zabo2aMg`NS z%OO4^_?lf938d5eb*uWsOrXvnv!M+)e)+P^5W1_B5pCN z!+{b_xdTvrG8ef%CHJNx~PH+p-4c@v*cHo@`e~+lhI6{ zG-Hjn38oeXBR=ISW15KtcV)z`kVUxz+atshlsViZkV06c+|K>V)pOF|4_c!Gb_Uif zZtCg<62HxZ2J`)UZJ_FZU@9WpqBI+aTkc-bsb+V(0>KcWGOw~{sXf>b+^*k$=A0L| znSsW}WlnN-#>7byoj$9;et2L~rv^IMX3EJxG@@6L2A86gYpvTsDlvPLioP`(xUeu( ztoymT`aJmt^0+YH1693X-#906XfV_UaF6Z z!Qkh7R@+`PFpHVBnAeu@;2T+n*>2*Pj3d44+IVoZ!=MKLrL%{bwAz!)1=GH!Z|8qM zq%BF_|0L|WWyK;Au%|q*IXdl6TA7X6hs7TCv@8-mE%~6{q%49>*E`NI_@alrYY4=b zo`|>L4D~F>lSHe7hM9V~*N%i$=a?E^rrQ~y^bp1yYr5~UbPU;n(pQnlX_6W|=~J_1 zz@8wYu2jxFg>kcLPRPR9oq$!cV)tx=9DoPdc4J{4vhab<(Apfoba&Vo@0Ix&&8GW# zt02xlUeHvOzhRKGLTeH~a+Bz)$Zc?~lyxmgs!I-dBg`^FuwK@O}Q|=cdt5{ck z9$$$v;H%aax7jBMz43i{{9r%nRd0Ry3!uU+x&fOa#)~qHrR=xN@_N=!*~wf%H6F8` z;61tz@h_5V-qc>E)*{CYal(__7_>-_$cOE{kO1DAuNC8=#s3FWuDKgaN@1%z;)2EfW1V8B#r1H>zZVZ|G~OAp(AYaNE-H&e-dR^tSM zTE@C|LWXO;1)POB+8C9yT^_AZ6(~a_<~aQH73Os)A^Jd&#E#D9kF_c=upyw1ESmx# z_=z&dBUTS>)YBNKUSh*Vu^25^R@>`Pi$P!5=H~d%@a*;BWy4@=eb4e{pf0dnu*2#f z9US}ZLH(h3JlZ|gV`kjmMN>uVI%r)Q5n}w8y*DFeYx57++`beVo|)Lj%v}kTx;lET zFWO<@7Zp=>-S1IfbI;G7)f$hY$(scvGBY^(W_%2tu9xkSHLEP!1#6v7qm!`!*?&Xn zpQ*jpgOxyw7AAI!sMv<;L+#?X?pkIy=DL$gyBH20RS-!7L>-x^`_6Y4!MVp5g)^UO zB?L2`YOW1ELCJFk@gvmEAT%BzI#3^n-DF39Xj_%~MB;jrP8y_&4r4{UEzd1|>aaYa z!&qsF5o_g-g(#XN({AI$6RqrL?D~;`)dqu*AANe}9A-`b1s)8;mxN~+;>XT*jpQ#ud0}8JLgA4MV z^Z$qF@^r*WN|&VcaquPjBM}(o3`DM0$b^lRJgaCo=BARe=lHrD#7E5F^`z=?%QgX-$qqLNiQbFr=X1>H2bPbSIv&Zk;VG(Dwi+ zE_f&27}(Yy;0BZ>r$)`F+E)L7flfC7K=|ua&8aa^wE}?SsnDC_II0rmKDCzSgPP00 zfTGVY7tU9Oue;&eNp$zKPAG8VEz9r!Jplb*6fWf{ zN(2|k3Zv7(lYKVCnInL8LPRd7?G%-i#ui$4J^(naLgo2kLwkApb+&bYO1VxGwePin zq&@#iyB;<;cuj{KLS_C}fOMNHAP>9=Ak@3g?Ht93r?XU2l&yWL(+=+(mUaS6v;7c< z*7a&=J1Yu;O9L`mfutK{kFGY4Hefo&8jg+?m++jgfN28O_M6z_eaH`H3`4Bi_>JdM ze`$Cc`Tnz@Y?1&F}d@DM=y)l~0NsX+*<*D-?TuUaYn|^z9O|jy?fZgTJnV4YF=z-_*#n zbRxowe6f=3)I)!C_a86!KNKdL{FDy?MKMyUdD>UFa1cnHiTn5;9`Pj>FMNNd=E*VQ z-O9@W0!}o2)B5JAlk&Z;1nM!WWxOvxpWxEH0g#>bD{#hh{J#OPJwhw^NA-^u^DJr3ZU(0pL7h(ZAfdd3AO2vOMv&zd&| zFiaL8PW~DVRlzfS#qbosKQ{njN3;dQBhd~1(IAGAkMBueJo=-DTB;a#ygkP%-fw=m zi6tdvyA}NYPSB+r?%?pc`JC1=Ws9R(bE+=V+c$4Wj?4~>D4OD5Gf)60&-#o-uDDe! zJMh$IAm|1I_H?6C_~F|usfzi7ao}z!*Mr7Fk5ByWd$U4*W#6fIp<$X#pgTD2)7Cf1$MtkRv;%lbS2<8<+add1wQaLZY{I-Yd~F2|dP z4{pn5Y}kEPm0eB{*?piYLh*$7fxu*k0M{otqapLpKE@JO=O3S9Bs}CFyj_tidFoZs zI9M(cS-0Ys!bUtcNBri9sJFhhJlY{pt_wSZ6qB+rV?0@5TUz2i$Ix$dbI z=hCL@u>sOh1HvUhXY~R|PI;|JGQIv~8s2gJtK&)V^*QeuZvtk3ho^KKNH+)h}IH$0A+VD=-ABTr*G_l0j?H7Il-3|Ty+spyG&XXL>YwW!%CpVNqcYROFZ#jIg z+x;)y(|`M6R609MS@!0{2Hl3nMl;`1tnS?=^sG!8LnpeyOg^r@0B*oJAtf{zC<~t~ zqsWqTnS3iEr5`wo_eQz1V-b4Pt4Ru1FHrME@g-mPSrl;Y*TQPSGY_-HPluJP34?}h zHVh<^zX}Lrb>RE?P1ld4JRtDk!I&KQvPh_S!y0_g?OGX{^8DZT_MQ+=)NH+bU=b=a z>WO?>_Y_l3hn6akEwp@_261BJtpp!zV$7)XNK*PpfT((9N6R*8Sfr)8W(bq6)!w>G zuV~2UWWNN>(alyH#6?1klTK6JBqQq%VV})pp+jeN)9A#pCjHC()l7NDp*twQLRHxI zflD&XZg+VLBg*etJ<{Xh#+AT5w`!0zKMb5aRneaz2;68Kqth)}jV2u$kQll8aaj`^ zDD+!S);Mi>J?}RH>O_XvR+QW-yw2-F-@v${d98&+gg+%v`(w^m{u?J*`ehcw_y_F! zQkJqB9+D^coW)K$Y9_Bg%9dCz`@ar$D6RY4Y_xPVAf8GQv1thBmiVH-vi5P$#lk|@$aHEbn0Uz7$m zXTzo6_(*+Uwj5A`+8+tnPA(Ax$@diys)+IcH9u0UqxQyjvCr^>d-z!fWrXriG=r6J z3nKZ%@dtjdRnc3M1}lg~t+~m7=Gm6-&6BoM{TF;)t=;#if9cYPJ;1fMDwoT@k*AD+ zdlkfbWn;!1aFsSE z22k5dSu3~}2Ode)akv&cziAffWIB_?O^?hm9i0?ÐDNB;E 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%0A>*>D3VrqrpFdc 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 Date: Tue, 23 Dec 2025 18:38:12 +0800 Subject: [PATCH 19/30] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86=E6=8A=A5?= =?UTF-8?q?=E5=91=8A=E7=9A=84=E4=BB=A3=E7=A0=81=E6=A0=87=E6=B3=A8=E9=83=A8?= =?UTF-8?q?=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...泛读、标注和维护报告文档 .docx | Bin 634488 -> 639172 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/小米便签泛读、标注和维护报告文档 .docx b/doc/小米便签泛读、标注和维护报告文档 .docx index 4c2b80117c5bdfac8dec150d31c492a721bc32fd..e8c2d5d39f506c91b0bab6482acd3a3a7248beb9 100644 GIT binary patch delta 30536 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 z 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

|C|Q+bLNH5BiU8Uiu+r_G3- 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 delta 25807 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 -- 2.34.1 From ba8a8bc9440bfa7f09316434878a6fdbba7b7162 Mon Sep 17 00:00:00 2001 From: tb202302116011 <1271741232@qq.com> Date: Tue, 23 Dec 2025 19:03:10 +0800 Subject: [PATCH 20/30] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86tangbo=5Fbranc?= =?UTF-8?q?h=E4=B8=AD=E7=BC=BA=E5=B0=91=E7=9A=84src=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=A4=B9=EF=BC=8C=E5=B9=B6=E6=B7=BB=E5=8A=A0=E4=BA=86data?= =?UTF-8?q?=E3=80=81gtask=E3=80=81tool=E5=8C=85=E4=B8=AD=E7=9A=84=E6=B3=A8?= =?UTF-8?q?=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/net/micode/notes/MainActivity.java | 41 + .../java/net/micode/notes/data/Contact.java | 97 ++ .../java/net/micode/notes/data/Notes.java | 357 +++++ .../notes/data/NotesDatabaseHelper.java | 432 +++++ .../net/micode/notes/data/NotesProvider.java | 420 +++++ .../net/micode/notes/gtask/data/MetaData.java | 157 ++ .../net/micode/notes/gtask/data/Node.java | 223 +++ .../net/micode/notes/gtask/data/SqlData.java | 337 ++++ .../net/micode/notes/gtask/data/SqlNote.java | 714 +++++++++ .../net/micode/notes/gtask/data/Task.java | 483 ++++++ .../net/micode/notes/gtask/data/TaskList.java | 486 ++++++ .../exception/ActionFailureException.java | 39 + .../exception/NetworkFailureException.java | 39 + .../notes/gtask/remote/GTaskASyncTask.java | 209 +++ .../notes/gtask/remote/GTaskClient.java | 782 +++++++++ .../notes/gtask/remote/GTaskManager.java | 944 +++++++++++ .../notes/gtask/remote/GTaskSyncService.java | 191 +++ .../java/net/micode/notes/model/Note.java | 430 +++++ .../net/micode/notes/model/WorkingNote.java | 727 +++++++++ .../net/micode/notes/tool/BackupUtils.java | 490 ++++++ .../java/net/micode/notes/tool/DataUtils.java | 437 +++++ .../micode/notes/tool/GTaskStringUtils.java | 166 ++ .../net/micode/notes/tool/ResourceParser.java | 296 ++++ .../micode/notes/ui/AlarmAlertActivity.java | 255 +++ .../micode/notes/ui/AlarmInitReceiver.java | 93 ++ .../net/micode/notes/ui/AlarmReceiver.java | 44 + .../net/micode/notes/ui/DateTimePicker.java | 646 ++++++++ .../micode/notes/ui/DateTimePickerDialog.java | 152 ++ .../net/micode/notes/ui/DropdownMenu.java | 97 ++ .../micode/notes/ui/FoldersListAdapter.java | 140 ++ .../net/micode/notes/ui/NoteEditActivity.java | 1162 ++++++++++++++ .../net/micode/notes/ui/NoteEditText.java | 319 ++++ .../net/micode/notes/ui/NoteItemData.java | 459 ++++++ .../micode/notes/ui/NotesListActivity.java | 1403 +++++++++++++++++ .../net/micode/notes/ui/NotesListAdapter.java | 304 ++++ .../net/micode/notes/ui/NotesListItem.java | 170 ++ .../notes/ui/NotesPreferenceActivity.java | 554 +++++++ .../notes/widget/NoteWidgetProvider.java | 224 +++ .../notes/widget/NoteWidgetProvider_2x.java | 85 + .../notes/widget/NoteWidgetProvider_4x.java | 85 + 40 files changed, 14689 insertions(+) create mode 100644 src/main/java/net/micode/notes/MainActivity.java create mode 100644 src/main/java/net/micode/notes/data/Contact.java create mode 100644 src/main/java/net/micode/notes/data/Notes.java create mode 100644 src/main/java/net/micode/notes/data/NotesDatabaseHelper.java create mode 100644 src/main/java/net/micode/notes/data/NotesProvider.java create mode 100644 src/main/java/net/micode/notes/gtask/data/MetaData.java create mode 100644 src/main/java/net/micode/notes/gtask/data/Node.java create mode 100644 src/main/java/net/micode/notes/gtask/data/SqlData.java create mode 100644 src/main/java/net/micode/notes/gtask/data/SqlNote.java create mode 100644 src/main/java/net/micode/notes/gtask/data/Task.java create mode 100644 src/main/java/net/micode/notes/gtask/data/TaskList.java create mode 100644 src/main/java/net/micode/notes/gtask/exception/ActionFailureException.java create mode 100644 src/main/java/net/micode/notes/gtask/exception/NetworkFailureException.java create mode 100644 src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java create mode 100644 src/main/java/net/micode/notes/gtask/remote/GTaskClient.java create mode 100644 src/main/java/net/micode/notes/gtask/remote/GTaskManager.java create mode 100644 src/main/java/net/micode/notes/gtask/remote/GTaskSyncService.java create mode 100644 src/main/java/net/micode/notes/model/Note.java create mode 100644 src/main/java/net/micode/notes/model/WorkingNote.java create mode 100644 src/main/java/net/micode/notes/tool/BackupUtils.java create mode 100644 src/main/java/net/micode/notes/tool/DataUtils.java create mode 100644 src/main/java/net/micode/notes/tool/GTaskStringUtils.java create mode 100644 src/main/java/net/micode/notes/tool/ResourceParser.java create mode 100644 src/main/java/net/micode/notes/ui/AlarmAlertActivity.java create mode 100644 src/main/java/net/micode/notes/ui/AlarmInitReceiver.java create mode 100644 src/main/java/net/micode/notes/ui/AlarmReceiver.java create mode 100644 src/main/java/net/micode/notes/ui/DateTimePicker.java create mode 100644 src/main/java/net/micode/notes/ui/DateTimePickerDialog.java create mode 100644 src/main/java/net/micode/notes/ui/DropdownMenu.java create mode 100644 src/main/java/net/micode/notes/ui/FoldersListAdapter.java create mode 100644 src/main/java/net/micode/notes/ui/NoteEditActivity.java create mode 100644 src/main/java/net/micode/notes/ui/NoteEditText.java create mode 100644 src/main/java/net/micode/notes/ui/NoteItemData.java create mode 100644 src/main/java/net/micode/notes/ui/NotesListActivity.java create mode 100644 src/main/java/net/micode/notes/ui/NotesListAdapter.java create mode 100644 src/main/java/net/micode/notes/ui/NotesListItem.java create mode 100644 src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java create mode 100644 src/main/java/net/micode/notes/widget/NoteWidgetProvider.java create mode 100644 src/main/java/net/micode/notes/widget/NoteWidgetProvider_2x.java create mode 100644 src/main/java/net/micode/notes/widget/NoteWidgetProvider_4x.java diff --git a/src/main/java/net/micode/notes/MainActivity.java b/src/main/java/net/micode/notes/MainActivity.java new file mode 100644 index 0000000..105fc40 --- /dev/null +++ b/src/main/java/net/micode/notes/MainActivity.java @@ -0,0 +1,41 @@ + +package net.micode.notes; + +/** + * 笔记应用的主活动类,作为应用的入口点。 + *

+ * 该类是小米笔记应用的主活动,负责初始化应用界面和处理窗口边距设置。 + *

+ */ + +import android.os.Bundle; + +import androidx.activity.EdgeToEdge; +import androidx.appcompat.app.AppCompatActivity; +import androidx.core.graphics.Insets; +import androidx.core.view.ViewCompat; +import androidx.core.view.WindowInsetsCompat; + +public class MainActivity extends AppCompatActivity { + + /** + * 活动创建时调用的方法,初始化应用界面和窗口设置。 + *

+ * 该方法启用了边缘到边缘显示模式,设置了活动布局,并处理了系统栏 + * 的边距问题,确保内容不会被系统UI遮挡。 + *

+ * + * @param savedInstanceState 保存的实例状态,用于恢复活动状态 + */ + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + EdgeToEdge.enable(this); + setContentView(R.layout.activity_main); + ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> { + Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()); + v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); + return insets; + }); + } +} \ No newline at end of file diff --git a/src/main/java/net/micode/notes/data/Contact.java b/src/main/java/net/micode/notes/data/Contact.java new file mode 100644 index 0000000..6a4f1d5 --- /dev/null +++ b/src/main/java/net/micode/notes/data/Contact.java @@ -0,0 +1,97 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.data; + +import android.content.Context; +import android.database.Cursor; +import android.provider.ContactsContract.CommonDataKinds.Phone; +import android.provider.ContactsContract.Data; +import android.telephony.PhoneNumberUtils; +import android.util.Log; + +import java.util.HashMap; + +/** + * 联系人工具类,用于根据电话号码获取联系人姓名 + *

+ * 该类提供了获取联系人信息的静态方法,并使用缓存机制提高查询效率 + *

+ */ +public class Contact { + /** + * 联系人缓存,用于存储已查询过的电话号码和对应联系人姓名 + */ + private static HashMap sContactCache; + /** + * 日志标签 + */ + private static final String TAG = "Contact"; + + /** + * 用于查询联系人的选择条件,根据电话号码匹配联系人 + */ + private static final String CALLER_ID_SELECTION = "PHONE_NUMBERS_EQUAL(" + Phone.NUMBER + + ",?) AND " + Data.MIMETYPE + "='" + Phone.CONTENT_ITEM_TYPE + "'" + + " AND " + Data.RAW_CONTACT_ID + " IN " + + "(SELECT raw_contact_id " + + " FROM phone_lookup" + + " WHERE min_match = '+')"; + + /** + * 根据电话号码获取联系人姓名 + *

+ * 该方法会先检查缓存,如果缓存中存在则直接返回,否则查询联系人数据库 + *

+ * @param context 上下文对象 + * @param phoneNumber 电话号码 + * @return 联系人姓名,若未找到则返回null + */ + public static String getContact(Context context, String phoneNumber) { + if(sContactCache == null) { + sContactCache = new HashMap(); + } + + if(sContactCache.containsKey(phoneNumber)) { + return sContactCache.get(phoneNumber); + } + + String selection = CALLER_ID_SELECTION.replace("+", + PhoneNumberUtils.toCallerIDMinMatch(phoneNumber)); + Cursor cursor = context.getContentResolver().query( + Data.CONTENT_URI, + new String [] { Phone.DISPLAY_NAME }, + selection, + new String[] { phoneNumber }, + null); + + if (cursor != null && cursor.moveToFirst()) { + try { + String name = cursor.getString(0); + sContactCache.put(phoneNumber, name); + return name; + } catch (IndexOutOfBoundsException e) { + Log.e(TAG, " Cursor get string error " + e.toString()); + return null; + } finally { + cursor.close(); + } + } else { + Log.d(TAG, "No contact matched with number:" + phoneNumber); + return null; + } + } +} diff --git a/src/main/java/net/micode/notes/data/Notes.java b/src/main/java/net/micode/notes/data/Notes.java new file mode 100644 index 0000000..5d83908 --- /dev/null +++ b/src/main/java/net/micode/notes/data/Notes.java @@ -0,0 +1,357 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.data; + +import android.net.Uri; + +/** + * 便签应用的核心数据模型类,定义了便签系统的常量、URI和数据结构 + *

+ * 该类包含了便签应用的核心数据定义,包括便签类型、系统文件夹ID、意图额外参数、 + * 组件类型、以及各种URI定义。同时还定义了便签表和数据表的列名,以及文本便签和 + * 通话便签的具体数据结构。 + *

+ */ +public class Notes { + /** + * 内容提供者的授权名称,用于构建内容URI + */ + public static final String AUTHORITY = "micode_notes"; + /** + * 日志标签,用于日志输出 + */ + public static final String TAG = "Notes"; + /** + * 便签类型:普通便签 + */ + public static final int TYPE_NOTE = 0; + /** + * 便签类型:文件夹 + */ + public static final int TYPE_FOLDER = 1; + /** + * 便签类型:系统便签 + */ + public static final int TYPE_SYSTEM = 2; + + /** + * 以下是系统文件夹的标识符 + * {@link Notes#ID_ROOT_FOLDER } 是默认文件夹 + * {@link Notes#ID_TEMPARAY_FOLDER } 用于存放不属于任何文件夹的便签 + * {@link Notes#ID_CALL_RECORD_FOLDER} 用于存储通话记录便签 + */ + public static final int ID_ROOT_FOLDER = 0; + public static final int ID_TEMPARAY_FOLDER = -1; + public static final int ID_CALL_RECORD_FOLDER = -2; + /** + * 回收站文件夹ID,用于存储被删除的便签和文件夹 + */ + public static final int ID_TRASH_FOLER = -3; + + /** + * 意图额外参数:提醒日期 + */ + public static final String INTENT_EXTRA_ALERT_DATE = "net.micode.notes.alert_date"; + /** + * 意图额外参数:背景颜色ID + */ + public static final String INTENT_EXTRA_BACKGROUND_ID = "net.micode.notes.background_color_id"; + /** + * 意图额外参数:组件ID + */ + public static final String INTENT_EXTRA_WIDGET_ID = "net.micode.notes.widget_id"; + /** + * 意图额外参数:组件类型 + */ + public static final String INTENT_EXTRA_WIDGET_TYPE = "net.micode.notes.widget_type"; + /** + * 意图额外参数:文件夹ID + */ + public static final String INTENT_EXTRA_FOLDER_ID = "net.micode.notes.folder_id"; + /** + * 意图额外参数:通话日期 + */ + public static final String INTENT_EXTRA_CALL_DATE = "net.micode.notes.call_date"; + + /** + * 组件类型:无效组件 + */ + public static final int TYPE_WIDGET_INVALIDE = -1; + /** + * 组件类型:2x2大小的便签组件 + */ + public static final int TYPE_WIDGET_2X = 0; + /** + * 组件类型:4x4大小的便签组件 + */ + public static final int TYPE_WIDGET_4X = 1; + + /** + * 数据类型常量类,定义了不同类型便签的数据项类型 + */ + public static class DataConstants { + /** + * 文本便签的数据项类型 + */ + public static final String NOTE = TextNote.CONTENT_ITEM_TYPE; + /** + * 通话便签的数据项类型 + */ + public static final String CALL_NOTE = CallNote.CONTENT_ITEM_TYPE; + } + + /** + * 用于查询所有便签和文件夹的Uri + */ + public static final Uri CONTENT_NOTE_URI = Uri.parse("content://" + AUTHORITY + "/note"); + + /** + * 用于查询数据的Uri + */ + public static final Uri CONTENT_DATA_URI = Uri.parse("content://" + AUTHORITY + "/data"); + + public interface NoteColumns { + /** + * 行的唯一ID + *

类型: INTEGER (long)

+ */ + public static final String ID = "_id"; + + /** + * 便签或文件夹的父ID + *

类型: INTEGER (long)

+ */ + public static final String PARENT_ID = "parent_id"; + + /** + * 便签或文件夹的创建日期 + *

类型: INTEGER (long)

+ */ + public static final String CREATED_DATE = "created_date"; + + /** + * 最近修改日期 + *

类型: INTEGER (long)

+ */ + public static final String MODIFIED_DATE = "modified_date"; + + + /** + * 提醒日期 + *

类型: INTEGER (long)

+ */ + public static final String ALERTED_DATE = "alert_date"; + + /** + * 文件夹名称或便签的文本内容 + *

类型: TEXT

+ */ + public static final String SNIPPET = "snippet"; + + /** + * 便签的组件ID + *

类型: INTEGER (long)

+ */ + public static final String WIDGET_ID = "widget_id"; + + /** + * 便签的组件类型 + *

类型: INTEGER (long)

+ */ + public static final String WIDGET_TYPE = "widget_type"; + + /** + * 便签的背景颜色ID + *

类型: INTEGER (long)

+ */ + public static final String BG_COLOR_ID = "bg_color_id"; + + /** + * 对于文本便签,没有附件;对于多媒体便签,至少有一个附件 + *

类型: INTEGER

+ */ + public static final String HAS_ATTACHMENT = "has_attachment"; + + /** + * 文件夹中的便签数量 + *

类型: INTEGER (long)

+ */ + public static final String NOTES_COUNT = "notes_count"; + + /** + * 文件类型:文件夹或便签 + *

类型: INTEGER

+ */ + public static final String TYPE = "type"; + + /** + * 最后同步ID + *

类型: INTEGER (long)

+ */ + public static final String SYNC_ID = "sync_id"; + + /** + * 表示本地是否修改的标志 + *

类型: INTEGER

+ */ + public static final String LOCAL_MODIFIED = "local_modified"; + + /** + * 移动到临时文件夹之前的原始父ID + *

类型: INTEGER

+ */ + public static final String ORIGIN_PARENT_ID = "origin_parent_id"; + + /** + * GTask ID + *

类型: TEXT

+ */ + public static final String GTASK_ID = "gtask_id"; + + /** + * 版本号 + *

类型: INTEGER (long)

+ */ + public static final String VERSION = "version"; + } + + public interface DataColumns { + /** + * 行的唯一ID + *

类型: INTEGER (long)

+ */ + public static final String ID = "_id"; + + /** + * 该行表示的项目的MIME类型 + *

类型: Text

+ */ + public static final String MIME_TYPE = "mime_type"; + + /** + * 该数据所属便签的引用ID + *

类型: INTEGER (long)

+ */ + public static final String NOTE_ID = "note_id"; + + /** + * 便签或文件夹的创建日期 + *

类型: INTEGER (long)

+ */ + public static final String CREATED_DATE = "created_date"; + + /** + * 最近修改日期 + *

类型: INTEGER (long)

+ */ + public static final String MODIFIED_DATE = "modified_date"; + + /** + * 数据内容 + *

类型: TEXT

+ */ + public static final String CONTENT = "content"; + + + /** + * 通用数据列,含义由{@link # MIMETYPE}决定,用于整数数据类型 + *

类型: INTEGER

+ */ + public static final String DATA1 = "data1"; + + /** + * 通用数据列,含义由{@link # MIMETYPE}决定,用于整数数据类型 + *

类型: INTEGER

+ */ + public static final String DATA2 = "data2"; + + /** + * 通用数据列,含义由{@link # MIMETYPE}决定,用于文本数据类型 + *

类型: TEXT

+ */ + public static final String DATA3 = "data3"; + + /** + * 通用数据列,含义由{@link # MIMETYPE}决定,用于文本数据类型 + *

类型: TEXT

+ */ + public static final String DATA4 = "data4"; + + /** + * 通用数据列,含义由{@link # MIMETYPE}决定,用于文本数据类型 + *

类型: TEXT

+ */ + public static final String DATA5 = "data5"; + } + + public static final class TextNote implements DataColumns { + /** + * 指示文本是否处于清单模式 + *

类型: Integer 1:清单模式 0:普通模式

+ */ + public static final String MODE = DATA1; + + /** + * 清单模式 + */ + public static final int MODE_CHECK_LIST = 1; + + /** + * 文本便签的目录MIME类型 + */ + public static final String CONTENT_TYPE = "vnd.android.cursor.dir/text_note"; + + /** + * 文本便签的单项MIME类型 + */ + public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/text_note"; + + /** + * 文本便签的内容URI + */ + public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/text_note"); + } + + public static final class CallNote implements DataColumns { + /** + * 此记录的通话日期 + *

类型: INTEGER (long)

+ */ + public static final String CALL_DATE = DATA1; + + /** + * 此记录的电话号码 + *

类型: TEXT

+ */ + public static final String PHONE_NUMBER = DATA3; + + /** + * 通话便签的目录MIME类型 + */ + public static final String CONTENT_TYPE = "vnd.android.cursor.dir/call_note"; + + /** + * 通话便签的单项MIME类型 + */ + public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/call_note"; + + /** + * 通话便签的内容URI + */ + public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/call_note"); + } +} diff --git a/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java b/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java new file mode 100644 index 0000000..f6b9c37 --- /dev/null +++ b/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java @@ -0,0 +1,432 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.data; + +import android.content.ContentValues; +import android.content.Context; +import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteOpenHelper; +import android.util.Log; + +import net.micode.notes.data.Notes.DataColumns; +import net.micode.notes.data.Notes.DataConstants; +import net.micode.notes.data.Notes.NoteColumns; + + +/** + * 笔记数据库帮助类,负责数据库的创建、升级及触发器管理 + * 采用单例模式确保数据库连接的唯一性,封装了表结构定义、系统文件夹初始化等核心操作 + */ +public class NotesDatabaseHelper extends SQLiteOpenHelper { + // 数据库文件名 + private static final String DB_NAME = "note.db"; + // 数据库版本号,用于升级控制 + private static final int DB_VERSION = 4; + + /** + * 数据库表名常量定义 + */ + public interface TABLE { + // 笔记表,存储笔记和文件夹的元数据 + public static final String NOTE = "note"; + // 数据表,存储笔记的具体内容(如文本、通话记录等) + public static final String DATA = "data"; + } + + // 日志标签 + private static final String TAG = "NotesDatabaseHelper"; + // 单例实例 + private static NotesDatabaseHelper mInstance; + + /** + * 笔记表创建SQL语句 + * 包含笔记/文件夹的基本属性:ID、父文件夹ID、提醒时间、背景色、创建/修改时间等 + */ + private static final String CREATE_NOTE_TABLE_SQL = + "CREATE TABLE " + TABLE.NOTE + "(" + + NoteColumns.ID + " INTEGER PRIMARY KEY," + + NoteColumns.PARENT_ID + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.ALERTED_DATE + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.BG_COLOR_ID + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.CREATED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," + + NoteColumns.HAS_ATTACHMENT + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.MODIFIED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," + + NoteColumns.NOTES_COUNT + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.SNIPPET + " TEXT NOT NULL DEFAULT ''," + + NoteColumns.TYPE + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.WIDGET_ID + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.WIDGET_TYPE + " INTEGER NOT NULL DEFAULT -1," + + NoteColumns.SYNC_ID + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.LOCAL_MODIFIED + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.ORIGIN_PARENT_ID + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.GTASK_ID + " TEXT NOT NULL DEFAULT ''," + + NoteColumns.VERSION + " INTEGER NOT NULL DEFAULT 0" + + ")"; + + /** + * 数据表创建SQL语句 + * 存储笔记的具体内容,支持多种类型(文本、通话记录等),通过MIME_TYPE区分 + */ + private static final String CREATE_DATA_TABLE_SQL = + "CREATE TABLE " + TABLE.DATA + "(" + + DataColumns.ID + " INTEGER PRIMARY KEY," + + DataColumns.MIME_TYPE + " TEXT NOT NULL," + + DataColumns.NOTE_ID + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.CREATED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," + + NoteColumns.MODIFIED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," + + DataColumns.CONTENT + " TEXT NOT NULL DEFAULT ''," + + DataColumns.DATA1 + " INTEGER," + + DataColumns.DATA2 + " INTEGER," + + DataColumns.DATA3 + " TEXT NOT NULL DEFAULT ''," + + DataColumns.DATA4 + " TEXT NOT NULL DEFAULT ''," + + DataColumns.DATA5 + " TEXT NOT NULL DEFAULT ''" + + ")"; + + /** + * 为数据表的NOTE_ID字段创建索引 + * 优化根据笔记ID查询数据的性能 + */ + private static final String CREATE_DATA_NOTE_ID_INDEX_SQL = + "CREATE INDEX IF NOT EXISTS note_id_index ON " + + TABLE.DATA + "(" + DataColumns.NOTE_ID + ");"; + + /** + * 触发器:更新笔记父文件夹时,增加新父文件夹的笔记计数 + */ + private static final String NOTE_INCREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER = + "CREATE TRIGGER increase_folder_count_on_update "+ + " AFTER UPDATE OF " + NoteColumns.PARENT_ID + " ON " + TABLE.NOTE + + " BEGIN " + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + " + 1" + + " WHERE " + NoteColumns.ID + "=new." + NoteColumns.PARENT_ID + ";" + + " END"; + + /** + * 触发器:更新笔记父文件夹时,减少旧父文件夹的笔记计数 + */ + private static final String NOTE_DECREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER = + "CREATE TRIGGER decrease_folder_count_on_update " + + " AFTER UPDATE OF " + NoteColumns.PARENT_ID + " ON " + TABLE.NOTE + + " BEGIN " + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + "-1" + + " WHERE " + NoteColumns.ID + "=old." + NoteColumns.PARENT_ID + + " AND " + NoteColumns.NOTES_COUNT + ">0" + ";" + + " END"; + + /** + * 触发器:插入新笔记时,增加其父文件夹的笔记计数 + */ + private static final String NOTE_INCREASE_FOLDER_COUNT_ON_INSERT_TRIGGER = + "CREATE TRIGGER increase_folder_count_on_insert " + + " AFTER INSERT ON " + TABLE.NOTE + + " BEGIN " + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + " + 1" + + " WHERE " + NoteColumns.ID + "=new." + NoteColumns.PARENT_ID + ";" + + " END"; + + /** + * 触发器:删除笔记时,减少其父文件夹的笔记计数 + */ + private static final String NOTE_DECREASE_FOLDER_COUNT_ON_DELETE_TRIGGER = + "CREATE TRIGGER decrease_folder_count_on_delete " + + " AFTER DELETE ON " + TABLE.NOTE + + " BEGIN " + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + "-1" + + " WHERE " + NoteColumns.ID + "=old." + NoteColumns.PARENT_ID + + " AND " + NoteColumns.NOTES_COUNT + ">0;" + + " END"; + + /** + * 触发器:插入文本笔记数据时,更新对应笔记的摘要内容 + */ + private static final String DATA_UPDATE_NOTE_CONTENT_ON_INSERT_TRIGGER = + "CREATE TRIGGER update_note_content_on_insert " + + " AFTER INSERT ON " + TABLE.DATA + + " WHEN new." + DataColumns.MIME_TYPE + "='" + DataConstants.NOTE + "'" + + " BEGIN" + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.SNIPPET + "=new." + DataColumns.CONTENT + + " WHERE " + NoteColumns.ID + "=new." + DataColumns.NOTE_ID + ";" + + " END"; + + /** + * 触发器:更新文本笔记数据时,同步更新对应笔记的摘要内容 + */ + private static final String DATA_UPDATE_NOTE_CONTENT_ON_UPDATE_TRIGGER = + "CREATE TRIGGER update_note_content_on_update " + + " AFTER UPDATE ON " + TABLE.DATA + + " WHEN old." + DataColumns.MIME_TYPE + "='" + DataConstants.NOTE + "'" + + " BEGIN" + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.SNIPPET + "=new." + DataColumns.CONTENT + + " WHERE " + NoteColumns.ID + "=new." + DataColumns.NOTE_ID + ";" + + " END"; + + /** + * 触发器:删除文本笔记数据时,清空对应笔记的摘要内容 + */ + private static final String DATA_UPDATE_NOTE_CONTENT_ON_DELETE_TRIGGER = + "CREATE TRIGGER update_note_content_on_delete " + + " AFTER delete ON " + TABLE.DATA + + " WHEN old." + DataColumns.MIME_TYPE + "='" + DataConstants.NOTE + "'" + + " BEGIN" + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.SNIPPET + "=''" + + " WHERE " + NoteColumns.ID + "=old." + DataColumns.NOTE_ID + ";" + + " END"; + + /** + * 触发器:删除笔记时,级联删除其关联的数据记录 + */ + private static final String NOTE_DELETE_DATA_ON_DELETE_TRIGGER = + "CREATE TRIGGER delete_data_on_delete " + + " AFTER DELETE ON " + TABLE.NOTE + + " BEGIN" + + " DELETE FROM " + TABLE.DATA + + " WHERE " + DataColumns.NOTE_ID + "=old." + NoteColumns.ID + ";" + + " END"; + + /** + * 触发器:删除文件夹时,级联删除其包含的所有笔记 + */ + private static final String FOLDER_DELETE_NOTES_ON_DELETE_TRIGGER = + "CREATE TRIGGER folder_delete_notes_on_delete " + + " AFTER DELETE ON " + TABLE.NOTE + + " BEGIN" + + " DELETE FROM " + TABLE.NOTE + + " WHERE " + NoteColumns.PARENT_ID + "=old." + NoteColumns.ID + ";" + + " END"; + + /** + * 触发器:当文件夹被移到回收站时,其包含的所有笔记也自动移到回收站 + */ + private static final String FOLDER_MOVE_NOTES_ON_TRASH_TRIGGER = + "CREATE TRIGGER folder_move_notes_on_trash " + + " AFTER UPDATE ON " + TABLE.NOTE + + " WHEN new." + NoteColumns.PARENT_ID + "=" + Notes.ID_TRASH_FOLER + + " BEGIN" + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.PARENT_ID + "=" + Notes.ID_TRASH_FOLER + + " WHERE " + NoteColumns.PARENT_ID + "=old." + NoteColumns.ID + ";" + + " END"; + + /** + * 私有构造方法,防止外部实例化 + * @param context 上下文对象 + */ + public NotesDatabaseHelper(Context context) { + super(context, DB_NAME, null, DB_VERSION); + } + + /** + * 创建笔记表并初始化相关触发器和系统文件夹 + * @param db 数据库实例 + */ + public void createNoteTable(SQLiteDatabase db) { + db.execSQL(CREATE_NOTE_TABLE_SQL); + reCreateNoteTableTriggers(db); + createSystemFolder(db); + Log.d(TAG, "note table has been created"); + } + + /** + * 重新创建笔记表的所有触发器(先删除旧触发器再创建新的) + * @param db 数据库实例 + */ + private void reCreateNoteTableTriggers(SQLiteDatabase db) { + db.execSQL("DROP TRIGGER IF EXISTS increase_folder_count_on_update"); + db.execSQL("DROP TRIGGER IF EXISTS decrease_folder_count_on_update"); + db.execSQL("DROP TRIGGER IF EXISTS decrease_folder_count_on_delete"); + db.execSQL("DROP TRIGGER IF EXISTS delete_data_on_delete"); + db.execSQL("DROP TRIGGER IF EXISTS increase_folder_count_on_insert"); + db.execSQL("DROP TRIGGER IF EXISTS folder_delete_notes_on_delete"); + db.execSQL("DROP TRIGGER IF EXISTS folder_move_notes_on_trash"); + + db.execSQL(NOTE_INCREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER); + db.execSQL(NOTE_DECREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER); + db.execSQL(NOTE_DECREASE_FOLDER_COUNT_ON_DELETE_TRIGGER); + db.execSQL(NOTE_DELETE_DATA_ON_DELETE_TRIGGER); + db.execSQL(NOTE_INCREASE_FOLDER_COUNT_ON_INSERT_TRIGGER); + db.execSQL(FOLDER_DELETE_NOTES_ON_DELETE_TRIGGER); + db.execSQL(FOLDER_MOVE_NOTES_ON_TRASH_TRIGGER); + } + + /** + * 初始化系统文件夹(通话记录文件夹、根目录、临时文件夹、回收站) + * @param db 数据库实例 + */ + private void createSystemFolder(SQLiteDatabase db) { + ContentValues values = new ContentValues(); + + // 通话记录文件夹:存储通话笔记 + values.put(NoteColumns.ID, Notes.ID_CALL_RECORD_FOLDER); + values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); + db.insert(TABLE.NOTE, null, values); + + // 根目录:默认文件夹 + values.clear(); + values.put(NoteColumns.ID, Notes.ID_ROOT_FOLDER); + values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); + db.insert(TABLE.NOTE, null, values); + + // 临时文件夹:用于移动笔记的中间存储 + values.clear(); + values.put(NoteColumns.ID, Notes.ID_TEMPARAY_FOLDER); + values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); + db.insert(TABLE.NOTE, null, values); + + // 回收站:存储被删除的笔记和文件夹 + values.clear(); + values.put(NoteColumns.ID, Notes.ID_TRASH_FOLER); + values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); + db.insert(TABLE.NOTE, null, values); + } + + /** + * 创建数据表并初始化相关触发器和索引 + * @param db 数据库实例 + */ + public void createDataTable(SQLiteDatabase db) { + db.execSQL(CREATE_DATA_TABLE_SQL); + reCreateDataTableTriggers(db); + db.execSQL(CREATE_DATA_NOTE_ID_INDEX_SQL); + Log.d(TAG, "data table has been created"); + } + + /** + * 重新创建数据表的所有触发器(先删除旧触发器再创建新的) + * @param db 数据库实例 + */ + private void reCreateDataTableTriggers(SQLiteDatabase db) { + db.execSQL("DROP TRIGGER IF EXISTS update_note_content_on_insert"); + db.execSQL("DROP TRIGGER IF EXISTS update_note_content_on_update"); + db.execSQL("DROP TRIGGER IF EXISTS update_note_content_on_delete"); + + db.execSQL(DATA_UPDATE_NOTE_CONTENT_ON_INSERT_TRIGGER); + db.execSQL(DATA_UPDATE_NOTE_CONTENT_ON_UPDATE_TRIGGER); + db.execSQL(DATA_UPDATE_NOTE_CONTENT_ON_DELETE_TRIGGER); + } + + /** + * 获取单例实例 + * @param context 上下文对象 + * @return 数据库帮助类实例 + */ + static synchronized NotesDatabaseHelper getInstance(Context context) { + if (mInstance == null) { + mInstance = new NotesDatabaseHelper(context); + } + return mInstance; + } + + /** + * 数据库首次创建时调用,初始化表结构 + * @param db 数据库实例 + */ + @Override + public void onCreate(SQLiteDatabase db) { + createNoteTable(db); + createDataTable(db); + } + + /** + * 数据库版本升级时调用 + * @param db 数据库实例 + * @param oldVersion 旧版本号 + * @param newVersion 新版本号 + */ + @Override + public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { + boolean reCreateTriggers = false; + boolean skipV2 = false; + + // 版本1升级到版本2 + if (oldVersion == 1) { + upgradeToV2(db); + skipV2 = true; // 此升级包含了从v2到v3的升级 + oldVersion++; + } + + // 版本2升级到版本3(跳过已包含在v1->v2中的情况) + if (oldVersion == 2 && !skipV2) { + upgradeToV3(db); + reCreateTriggers = true; + oldVersion++; + } + + // 版本3升级到版本4 + if (oldVersion == 3) { + upgradeToV4(db); + oldVersion++; + } + + // 如果需要,重新创建触发器 + if (reCreateTriggers) { + reCreateNoteTableTriggers(db); + reCreateDataTableTriggers(db); + } + + // 验证升级是否完成 + if (oldVersion != newVersion) { + throw new IllegalStateException("Upgrade notes database to version " + newVersion + + "fails"); + } + } + + /** + * 升级到版本2:删除旧表并重新创建(结构调整) + * @param db 数据库实例 + */ + private void upgradeToV2(SQLiteDatabase db) { + db.execSQL("DROP TABLE IF EXISTS " + TABLE.NOTE); + db.execSQL("DROP TABLE IF EXISTS " + TABLE.DATA); + createNoteTable(db); + createDataTable(db); + } + + /** + * 升级到版本3:添加GTask ID字段和回收站文件夹 + * @param db 数据库实例 + */ + private void upgradeToV3(SQLiteDatabase db) { + // 删除未使用的触发器 + db.execSQL("DROP TRIGGER IF EXISTS update_note_modified_date_on_insert"); + db.execSQL("DROP TRIGGER IF EXISTS update_note_modified_date_on_delete"); + db.execSQL("DROP TRIGGER IF EXISTS update_note_modified_date_on_update"); + // 添加GTask ID字段,用于同步 + db.execSQL("ALTER TABLE " + TABLE.NOTE + " ADD COLUMN " + NoteColumns.GTASK_ID + + " TEXT NOT NULL DEFAULT ''"); + // 添加回收站系统文件夹 + ContentValues values = new ContentValues(); + values.put(NoteColumns.ID, Notes.ID_TRASH_FOLER); + values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); + db.insert(TABLE.NOTE, null, values); + } + + /** + * 升级到版本4:添加版本号字段,用于数据同步控制 + * @param db 数据库实例 + */ + private void upgradeToV4(SQLiteDatabase db) { + db.execSQL("ALTER TABLE " + TABLE.NOTE + " ADD COLUMN " + NoteColumns.VERSION + + " INTEGER NOT NULL DEFAULT 0"); + } +} \ No newline at end of file diff --git a/src/main/java/net/micode/notes/data/NotesProvider.java b/src/main/java/net/micode/notes/data/NotesProvider.java new file mode 100644 index 0000000..678534f --- /dev/null +++ b/src/main/java/net/micode/notes/data/NotesProvider.java @@ -0,0 +1,420 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.data; + +import android.app.SearchManager; +import android.content.ContentProvider; +import android.content.ContentUris; +import android.content.ContentValues; +import android.content.Intent; +import android.content.UriMatcher; +import android.database.Cursor; +import android.database.sqlite.SQLiteDatabase; +import android.net.Uri; +import android.text.TextUtils; +import android.util.Log; + +import net.micode.notes.R; +import net.micode.notes.data.Notes.DataColumns; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.data.NotesDatabaseHelper.TABLE; + +/** + * 便签应用的内容提供者(ContentProvider) + * 负责管理便签数据的CRUD操作,包括搜索功能 + */ +public class NotesProvider extends ContentProvider { + /** + * URI匹配器,用于匹配不同的URI请求,根据URI类型执行相应的操作 + */ + private static final UriMatcher mMatcher; + + /** + * 数据库帮助类实例,用于获取数据库连接 + */ + private NotesDatabaseHelper mHelper; + + /** + * 日志标签,用于日志输出 + */ + private static final String TAG = "NotesProvider"; + + /** + * URI匹配类型常量定义,用于区分不同的URI请求类型 + */ + private static final int URI_NOTE = 1; // 操作便签表(所有记录) + private static final int URI_NOTE_ITEM = 2; // 操作便签表(单条记录) + private static final int URI_DATA = 3; // 操作数据表(所有记录) + private static final int URI_DATA_ITEM = 4; // 操作数据表(单条记录) + private static final int URI_SEARCH = 5; // 搜索操作 + private static final int URI_SEARCH_SUGGEST = 6; // 搜索建议操作 + + /** + * 静态初始化块,配置URI匹配规则 + * 为不同类型的URI请求配置对应的匹配类型 + */ + static { + mMatcher = new UriMatcher(UriMatcher.NO_MATCH); + // 匹配便签表的URI + mMatcher.addURI(Notes.AUTHORITY, "note", URI_NOTE); + mMatcher.addURI(Notes.AUTHORITY, "note/#", URI_NOTE_ITEM); + // 匹配数据表的URI + mMatcher.addURI(Notes.AUTHORITY, "data", URI_DATA); + mMatcher.addURI(Notes.AUTHORITY, "data/#", URI_DATA_ITEM); + // 匹配搜索相关的URI + mMatcher.addURI(Notes.AUTHORITY, "search", URI_SEARCH); + mMatcher.addURI(Notes.AUTHORITY, SearchManager.SUGGEST_URI_PATH_QUERY, URI_SEARCH_SUGGEST); + mMatcher.addURI(Notes.AUTHORITY, SearchManager.SUGGEST_URI_PATH_QUERY + "/*", URI_SEARCH_SUGGEST); + } + + /** + * 搜索查询的投影(列)定义 + * x'0A' 在SQLite中代表 '\n' 字符 + * 对于搜索结果中的标题和内容,我们将修剪 '\n' 和空白字符以显示更多信息 + */ + private static final String NOTES_SEARCH_PROJECTION = NoteColumns.ID + "," + + NoteColumns.ID + " AS " + SearchManager.SUGGEST_COLUMN_INTENT_EXTRA_DATA + "," + + "TRIM(REPLACE(" + NoteColumns.SNIPPET + ", x'0A','')) AS " + SearchManager.SUGGEST_COLUMN_TEXT_1 + "," + + "TRIM(REPLACE(" + NoteColumns.SNIPPET + ", x'0A','')) AS " + SearchManager.SUGGEST_COLUMN_TEXT_2 + "," + + R.drawable.search_result + " AS " + SearchManager.SUGGEST_COLUMN_ICON_1 + "," + + "'" + Intent.ACTION_VIEW + "' AS " + SearchManager.SUGGEST_COLUMN_INTENT_ACTION + "," + + "'" + Notes.TextNote.CONTENT_TYPE + "' AS " + SearchManager.SUGGEST_COLUMN_INTENT_DATA; + + /** + * 便签片段搜索查询的SQL语句 + * 搜索条件:便签片段包含关键词,且不在回收站中,类型为普通便签 + */ + private static String NOTES_SNIPPET_SEARCH_QUERY = "SELECT " + NOTES_SEARCH_PROJECTION + + " FROM " + TABLE.NOTE + + " WHERE " + NoteColumns.SNIPPET + " LIKE ?" + + " AND " + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLER + + " AND " + NoteColumns.TYPE + "=" + Notes.TYPE_NOTE; + + /** + * 初始化内容提供者 + * @return 如果初始化成功返回true,否则返回false + */ + @Override + public boolean onCreate() { + mHelper = NotesDatabaseHelper.getInstance(getContext()); + return true; + } + + /** + * 查询数据 + * @param uri 要查询的URI + * @param projection 要返回的列,null表示所有列 + * @param selection 查询条件,null表示无条件 + * @param selectionArgs 查询条件参数 + * @param sortOrder 排序方式,null表示默认排序 + * @return 包含查询结果的Cursor对象 + */ + @Override + public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, + String sortOrder) { + Cursor c = null; + SQLiteDatabase db = mHelper.getReadableDatabase(); + String id = null; + + // 根据URI类型执行不同的查询操作 + switch (mMatcher.match(uri)) { + case URI_NOTE: + // 查询所有便签 + c = db.query(TABLE.NOTE, projection, selection, selectionArgs, null, null, + sortOrder); + break; + case URI_NOTE_ITEM: + // 查询单条便签记录 + id = uri.getPathSegments().get(1); + c = db.query(TABLE.NOTE, projection, NoteColumns.ID + "=" + id + + parseSelection(selection), selectionArgs, null, null, sortOrder); + break; + case URI_DATA: + // 查询所有数据记录 + c = db.query(TABLE.DATA, projection, selection, selectionArgs, null, null, + sortOrder); + break; + case URI_DATA_ITEM: + // 查询单条数据记录 + id = uri.getPathSegments().get(1); + c = db.query(TABLE.DATA, projection, DataColumns.ID + "=" + id + + parseSelection(selection), selectionArgs, null, null, sortOrder); + break; + case URI_SEARCH: + case URI_SEARCH_SUGGEST: + // 处理搜索和搜索建议请求 + if (sortOrder != null || projection != null) { + throw new IllegalArgumentException( + "do not specify sortOrder, selection, selectionArgs, or projection" + "with this query"); + } + + String searchString = null; + // 根据URI类型获取搜索关键词 + if (mMatcher.match(uri) == URI_SEARCH_SUGGEST) { + if (uri.getPathSegments().size() > 1) { + searchString = uri.getPathSegments().get(1); + } + } else { + searchString = uri.getQueryParameter("pattern"); + } + + // 如果搜索关键词为空,返回null + if (TextUtils.isEmpty(searchString)) { + return null; + } + + try { + // 构造模糊查询字符串 + searchString = String.format("%%%s%%", searchString); + c = db.rawQuery(NOTES_SNIPPET_SEARCH_QUERY, + new String[] { searchString }); + } catch (IllegalStateException ex) { + Log.e(TAG, "got exception: " + ex.toString()); + } + break; + default: + throw new IllegalArgumentException("Unknown URI " + uri); + } + + // 设置内容观察者,以便在数据变化时通知相关组件 + if (c != null) { + c.setNotificationUri(getContext().getContentResolver(), uri); + } + return c; + } + + /** + * 插入数据 + * @param uri 要插入数据的URI + * @param values 要插入的数据值 + * @return 新插入数据的URI + */ + @Override + public Uri insert(Uri uri, ContentValues values) { + SQLiteDatabase db = mHelper.getWritableDatabase(); + long dataId = 0, noteId = 0, insertedId = 0; + + // 根据URI类型执行不同的插入操作 + switch (mMatcher.match(uri)) { + case URI_NOTE: + // 插入便签数据 + insertedId = noteId = db.insert(TABLE.NOTE, null, values); + break; + case URI_DATA: + // 插入数据表记录 + if (values.containsKey(DataColumns.NOTE_ID)) { + noteId = values.getAsLong(DataColumns.NOTE_ID); + } else { + Log.d(TAG, "Wrong data format without note id:" + values.toString()); + } + insertedId = dataId = db.insert(TABLE.DATA, null, values); + break; + default: + throw new IllegalArgumentException("Unknown URI " + uri); + } + + // 通知便签URI的数据变化 + if (noteId > 0) { + getContext().getContentResolver().notifyChange( + ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId), null); + } + + // 通知数据URI的数据变化 + if (dataId > 0) { + getContext().getContentResolver().notifyChange( + ContentUris.withAppendedId(Notes.CONTENT_DATA_URI, dataId), null); + } + + // 返回新插入数据的URI + return ContentUris.withAppendedId(uri, insertedId); + } + + /** + * 删除数据 + * @param uri 要删除数据的URI + * @param selection 删除条件,null表示无条件 + * @param selectionArgs 删除条件参数 + * @return 被删除的行数 + */ + @Override + public int delete(Uri uri, String selection, String[] selectionArgs) { + int count = 0; + String id = null; + SQLiteDatabase db = mHelper.getWritableDatabase(); + boolean deleteData = false; + + // 根据URI类型执行不同的删除操作 + switch (mMatcher.match(uri)) { + case URI_NOTE: + // 删除便签记录(不删除ID小于0的系统文件夹) + selection = "(" + selection + ") AND " + NoteColumns.ID + ">0 "; + count = db.delete(TABLE.NOTE, selection, selectionArgs); + break; + case URI_NOTE_ITEM: + // 删除单条便签记录 + id = uri.getPathSegments().get(1); + /** + * ID小于0的是系统文件夹,不允许删除(移动到回收站) + */ + long noteId = Long.valueOf(id); + if (noteId <= 0) { + break; + } + count = db.delete(TABLE.NOTE, + NoteColumns.ID + "=" + id + parseSelection(selection), selectionArgs); + break; + case URI_DATA: + // 删除数据记录 + count = db.delete(TABLE.DATA, selection, selectionArgs); + deleteData = true; + break; + case URI_DATA_ITEM: + // 删除单条数据记录 + id = uri.getPathSegments().get(1); + count = db.delete(TABLE.DATA, + DataColumns.ID + "=" + id + parseSelection(selection), selectionArgs); + deleteData = true; + break; + default: + throw new IllegalArgumentException("Unknown URI " + uri); + } + + // 如果成功删除数据,发送数据变化通知 + if (count > 0) { + if (deleteData) { + // 如果删除的是数据表记录,通知便签URI数据变化 + getContext().getContentResolver().notifyChange(Notes.CONTENT_NOTE_URI, null); + } + // 通知当前URI数据变化 + getContext().getContentResolver().notifyChange(uri, null); + } + return count; + } + + /** + * 更新数据 + * @param uri 要更新数据的URI + * @param values 更新的数据值 + * @param selection 更新条件,null表示无条件 + * @param selectionArgs 更新条件参数 + * @return 被更新的行数 + */ + @Override + public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { + int count = 0; + String id = null; + SQLiteDatabase db = mHelper.getWritableDatabase(); + boolean updateData = false; + + // 根据URI类型执行不同的更新操作 + switch (mMatcher.match(uri)) { + case URI_NOTE: + // 更新便签记录,增加版本号 + increaseNoteVersion(-1, selection, selectionArgs); + count = db.update(TABLE.NOTE, values, selection, selectionArgs); + break; + case URI_NOTE_ITEM: + // 更新单条便签记录,增加版本号 + id = uri.getPathSegments().get(1); + increaseNoteVersion(Long.valueOf(id), selection, selectionArgs); + count = db.update(TABLE.NOTE, values, NoteColumns.ID + "=" + id + + parseSelection(selection), selectionArgs); + break; + case URI_DATA: + // 更新数据记录 + count = db.update(TABLE.DATA, values, selection, selectionArgs); + updateData = true; + break; + case URI_DATA_ITEM: + // 更新单条数据记录 + id = uri.getPathSegments().get(1); + count = db.update(TABLE.DATA, values, DataColumns.ID + "=" + id + + parseSelection(selection), selectionArgs); + updateData = true; + break; + default: + throw new IllegalArgumentException("Unknown URI " + uri); + } + + // 如果成功更新数据,发送数据变化通知 + if (count > 0) { + if (updateData) { + // 如果更新的是数据表记录,通知便签URI数据变化 + getContext().getContentResolver().notifyChange(Notes.CONTENT_NOTE_URI, null); + } + // 通知当前URI数据变化 + getContext().getContentResolver().notifyChange(uri, null); + } + return count; + } + + /** + * 解析查询/更新条件 + * 将原始条件转换为SQL语句中的AND条件 + * @param selection 原始条件字符串 + * @return 格式化后的条件字符串 + */ + private String parseSelection(String selection) { + return (!TextUtils.isEmpty(selection) ? " AND (" + selection + ')' : ""); + } + + /** + * 增加便签版本号 + * 当便签被修改时,调用此方法增加版本号 + * @param id 便签ID,如果id>0则更新指定便签,否则更新所有匹配条件的便签 + * @param selection 更新条件 + * @param selectionArgs 更新条件参数 + */ + private void increaseNoteVersion(long id, String selection, String[] selectionArgs) { + StringBuilder sql = new StringBuilder(120); + sql.append("UPDATE "); + sql.append(TABLE.NOTE); + sql.append(" SET "); + sql.append(NoteColumns.VERSION); + sql.append("=" + NoteColumns.VERSION + "+1 "); + + // 构造WHERE子句 + if (id > 0 || !TextUtils.isEmpty(selection)) { + sql.append(" WHERE "); + } + if (id > 0) { + sql.append(NoteColumns.ID + "=" + String.valueOf(id)); + } + if (!TextUtils.isEmpty(selection)) { + String selectString = id > 0 ? parseSelection(selection) : selection; + // 替换预编译语句中的占位符 + for (String args : selectionArgs) { + selectString = selectString.replaceFirst("\\?", args); + } + sql.append(selectString); + } + + // 执行SQL语句更新版本号 + mHelper.getWritableDatabase().execSQL(sql.toString()); + } + + /** + * 返回指定URI的MIME类型 + * @param uri 要获取MIME类型的URI + * @return MIME类型字符串 + */ + @Override + public String getType(Uri uri) { + // TODO: 实现此方法,返回合适的MIME类型 + return null; + } +} \ No newline at end of file diff --git a/src/main/java/net/micode/notes/gtask/data/MetaData.java b/src/main/java/net/micode/notes/gtask/data/MetaData.java new file mode 100644 index 0000000..2a39a68 --- /dev/null +++ b/src/main/java/net/micode/notes/gtask/data/MetaData.java @@ -0,0 +1,157 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.data; + +import android.database.Cursor; +import android.util.Log; + +import net.micode.notes.tool.GTaskStringUtils; + +import org.json.JSONException; +import org.json.JSONObject; + +/** + * MetaData类是Task的子类,用于存储与Google Tasks同步相关的元数据信息。 + *

+ * 该类主要用于在GTask同步过程中存储任务的关联信息,将元数据以JSON格式存储在 + * Task的notes字段中,并提供了相应的解析和访问方法。 + *

+ */ +public class MetaData extends Task { + private final static String TAG = MetaData.class.getSimpleName(); + + /** + * 与当前元数据相关联的Google Task ID + */ + private String mRelatedGid = null; + + /** + * 设置元数据信息 + *

+ * 将Google Task ID添加到元数据JSON对象中,并将其存储在Task的notes字段中。 + * 同时设置任务名称为元数据标识名称。 + *

+ * + * @param gid 与元数据关联的Google Task ID + * @param metaInfo 包含元数据信息的JSON对象 + */ + public void setMeta(String gid, JSONObject metaInfo) { + try { + // 将关联的Google Task ID添加到元数据中 + metaInfo.put(GTaskStringUtils.META_HEAD_GTASK_ID, gid); + } catch (JSONException e) { + Log.e(TAG, "failed to put related gid"); + } + // 将元数据JSON对象转换为字符串并存储在notes字段中 + setNotes(metaInfo.toString()); + // 设置任务名称为元数据标识名称 + setName(GTaskStringUtils.META_NOTE_NAME); + } + + /** + * 获取与当前元数据相关联的Google Task ID + * + * @return 关联的Google Task ID,如果没有则返回null + */ + public String getRelatedGid() { + return mRelatedGid; + } + + /** + * 判断当前元数据是否值得保存 + *

+ * 只有当notes字段不为null时,元数据才值得保存 + *

+ * + * @return 如果notes字段不为null则返回true,否则返回false + */ + @Override + public boolean isWorthSaving() { + return getNotes() != null; + } + + /** + * 从远程JSON数据设置内容 + *

+ * 从远程获取的JSON数据中解析元信息,并提取关联的Google Task ID + *

+ * + * @param js 包含远程数据的JSON对象 + */ + @Override + public void setContentByRemoteJSON(JSONObject js) { + // 调用父类方法设置基本内容 + super.setContentByRemoteJSON(js); + // 如果notes字段不为null,则解析元数据 + if (getNotes() != null) { + try { + // 解析notes字段中的JSON元数据 + JSONObject metaInfo = new JSONObject(getNotes().trim()); + // 提取关联的Google Task ID + mRelatedGid = metaInfo.getString(GTaskStringUtils.META_HEAD_GTASK_ID); + } catch (JSONException e) { + Log.w(TAG, "failed to get related gid"); + mRelatedGid = null; + } + } + } + + /** + * 从本地JSON数据设置内容(不支持) + *

+ * 该方法不应该被调用,因为MetaData主要用于处理远程同步数据 + *

+ * + * @param js 本地JSON对象 + * @throws IllegalAccessError 总是抛出此异常,表示该方法不应该被调用 + */ + @Override + public void setContentByLocalJSON(JSONObject js) { + // 此方法不应该被调用 + throw new IllegalAccessError("MetaData:setContentByLocalJSON should not be called"); + } + + /** + * 从内容获取本地JSON数据(不支持) + *

+ * 该方法不应该被调用,因为MetaData主要用于处理远程同步数据 + *

+ * + * @return 本地JSON对象 + * @throws IllegalAccessError 总是抛出此异常,表示该方法不应该被调用 + */ + @Override + public JSONObject getLocalJSONFromContent() { + throw new IllegalAccessError("MetaData:getLocalJSONFromContent should not be called"); + } + + /** + * 获取同步操作(不支持) + *

+ * 该方法不应该被调用,因为MetaData主要用于处理远程同步数据 + *

+ * + * @param c 本地数据库游标 + * @return 同步操作类型 + * @throws IllegalAccessError 总是抛出此异常,表示该方法不应该被调用 + */ + @Override + public int getSyncAction(Cursor c) { + throw new IllegalAccessError("MetaData:getSyncAction should not be called"); + } + +} diff --git a/src/main/java/net/micode/notes/gtask/data/Node.java b/src/main/java/net/micode/notes/gtask/data/Node.java new file mode 100644 index 0000000..dea45d5 --- /dev/null +++ b/src/main/java/net/micode/notes/gtask/data/Node.java @@ -0,0 +1,223 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.data; + +import android.database.Cursor; + +import org.json.JSONObject; + +/** + * Node类是GTask同步系统中的抽象基类,定义了同步节点的基本属性和操作接口。 + *

+ * 该类为所有参与GTask同步的实体(如Task、TaskList等)提供了统一的接口和基础属性, + * 包括唯一标识符、名称、最后修改时间、删除状态等,并定义了同步操作所需的抽象方法。 + *

+ */ +public abstract class Node { + /** + * 同步操作:无操作 + */ + public static final int SYNC_ACTION_NONE = 0; + + /** + * 同步操作:向远程添加节点 + */ + public static final int SYNC_ACTION_ADD_REMOTE = 1; + + /** + * 同步操作:向本地添加节点 + */ + public static final int SYNC_ACTION_ADD_LOCAL = 2; + + /** + * 同步操作:从远程删除节点 + */ + public static final int SYNC_ACTION_DEL_REMOTE = 3; + + /** + * 同步操作:从本地删除节点 + */ + public static final int SYNC_ACTION_DEL_LOCAL = 4; + + /** + * 同步操作:更新远程节点 + */ + public static final int SYNC_ACTION_UPDATE_REMOTE = 5; + + /** + * 同步操作:更新本地节点 + */ + public static final int SYNC_ACTION_UPDATE_LOCAL = 6; + + /** + * 同步操作:更新冲突(本地和远程都有修改) + */ + public static final int SYNC_ACTION_UPDATE_CONFLICT = 7; + + /** + * 同步操作:同步错误 + */ + public static final int SYNC_ACTION_ERROR = 8; + + /** + * 节点的唯一标识符(Google Task ID) + */ + private String mGid; + + /** + * 节点的名称 + */ + private String mName; + + /** + * 节点的最后修改时间戳 + */ + private long mLastModified; + + /** + * 节点的删除状态 + */ + private boolean mDeleted; + + /** + * 构造函数,初始化节点的默认值 + */ + public Node() { + mGid = null; + mName = ""; + mLastModified = 0; + mDeleted = false; + } + + /** + * 获取创建节点的同步操作JSON对象 + * + * @param actionId 操作ID + * @return 创建操作的JSON对象 + */ + public abstract JSONObject getCreateAction(int actionId); + + /** + * 获取更新节点的同步操作JSON对象 + * + * @param actionId 操作ID + * @return 更新操作的JSON对象 + */ + public abstract JSONObject getUpdateAction(int actionId); + + /** + * 从远程JSON数据设置节点内容 + * + * @param js 包含远程数据的JSON对象 + */ + public abstract void setContentByRemoteJSON(JSONObject js); + + /** + * 从本地JSON数据设置节点内容 + * + * @param js 包含本地数据的JSON对象 + */ + public abstract void setContentByLocalJSON(JSONObject js); + + /** + * 从节点内容获取本地JSON数据 + * + * @return 包含本地数据的JSON对象 + */ + public abstract JSONObject getLocalJSONFromContent(); + + /** + * 根据本地数据库游标获取同步操作类型 + * + * @param c 本地数据库游标 + * @return 同步操作类型(参考SYNC_ACTION_*常量) + */ + public abstract int getSyncAction(Cursor c); + + /** + * 设置节点的唯一标识符 + * + * @param gid 节点的唯一标识符(Google Task ID) + */ + public void setGid(String gid) { + this.mGid = gid; + } + + /** + * 设置节点的名称 + * + * @param name 节点的名称 + */ + public void setName(String name) { + this.mName = name; + } + + /** + * 设置节点的最后修改时间戳 + * + * @param lastModified 最后修改时间戳 + */ + public void setLastModified(long lastModified) { + this.mLastModified = lastModified; + } + + /** + * 设置节点的删除状态 + * + * @param deleted 是否删除 + */ + public void setDeleted(boolean deleted) { + this.mDeleted = deleted; + } + + /** + * 获取节点的唯一标识符 + * + * @return 节点的唯一标识符(Google Task ID) + */ + public String getGid() { + return this.mGid; + } + + /** + * 获取节点的名称 + * + * @return 节点的名称 + */ + public String getName() { + return this.mName; + } + + /** + * 获取节点的最后修改时间戳 + * + * @return 最后修改时间戳 + */ + public long getLastModified() { + return this.mLastModified; + } + + /** + * 获取节点的删除状态 + * + * @return 是否删除 + */ + public boolean getDeleted() { + return this.mDeleted; + } + +} diff --git a/src/main/java/net/micode/notes/gtask/data/SqlData.java b/src/main/java/net/micode/notes/gtask/data/SqlData.java new file mode 100644 index 0000000..3d537ca --- /dev/null +++ b/src/main/java/net/micode/notes/gtask/data/SqlData.java @@ -0,0 +1,337 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.data; + +import android.content.ContentResolver; +import android.content.ContentUris; +import android.content.ContentValues; +import android.content.Context; +import android.database.Cursor; +import android.net.Uri; +import android.util.Log; + +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.DataColumns; +import net.micode.notes.data.Notes.DataConstants; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.data.NotesDatabaseHelper.TABLE; +import net.micode.notes.gtask.exception.ActionFailureException; + +import org.json.JSONException; +import org.json.JSONObject; + + +/** + * SqlData类是小米笔记应用中GTask同步模块的核心数据处理类,负责本地SQL数据的CRUD操作。CRUD 是数据库操作的四种基本功能缩写: + +- C(Create):创建新笔记数据 +- R(Read):读取现有笔记数据 +- U(Update):更新笔记数据 +- D(Delete):删除笔记数据 + *

+ * 在Notes与Google Tasks的同步过程中,该类扮演着桥梁角色: + * 1. 接收并解析来自GTask的JSON格式数据 + * 2. 将数据转换为本地数据库可存储的格式 + * 3. 通过ContentResolver与本地ContentProvider交互,执行数据的插入、更新和删除操作 + * 4. 支持数据差异跟踪,仅提交修改的字段以优化性能 + * 5. 提供版本验证机制,避免同步冲突 + *

+ *

+ * 该类是同步流程中的关键组件,确保本地笔记数据与Google Tasks之间的数据一致性和完整性。 + *

+ */ +public class SqlData { + private static final String TAG = SqlData.class.getSimpleName(); + + /** + * 无效ID常量,用于标记未初始化或无效的数据ID + * 在同步过程中用于区分新创建的数据和已存在的数据 + */ + private static final int INVALID_ID = -99999; + + /** + * 数据库查询投影列,定义了从数据库中获取的数据字段 + * 包含数据ID、MIME类型、内容以及扩展字段DATA1和DATA3 + */ + public static final String[] PROJECTION_DATA = new String[] { + DataColumns.ID, DataColumns.MIME_TYPE, DataColumns.CONTENT, DataColumns.DATA1, + DataColumns.DATA3 + }; + + /** + * 数据ID列在投影中的索引位置 + */ + public static final int DATA_ID_COLUMN = 0; + + /** + * 数据MIME类型列在投影中的索引位置 + * 用于区分不同类型的数据(如文本笔记、通话记录等) + */ + public static final int DATA_MIME_TYPE_COLUMN = 1; + + /** + * 数据内容列在投影中的索引位置 + * 存储笔记的主要内容 + */ + public static final int DATA_CONTENT_COLUMN = 2; + + /** + * 数据内容DATA1字段在投影中的索引位置 + * 用于存储整数类型的扩展数据(如笔记模式、通话日期等) + */ + public static final int DATA_CONTENT_DATA_1_COLUMN = 3; + + /** + * 数据内容DATA3字段在投影中的索引位置 + * 用于存储字符串类型的扩展数据(如电话号码等) + */ + public static final int DATA_CONTENT_DATA_3_COLUMN = 4; + + /** + * 用于访问ContentProvider的ContentResolver实例 + * 是与本地数据库交互的核心接口 + */ + private ContentResolver mContentResolver; + + /** + * 标记是否为新建数据 + * true表示该数据需要插入数据库,false表示需要更新数据库 + */ + private boolean mIsCreate; + + /** + * 数据ID + * 唯一标识数据库中的数据记录 + */ + private long mDataId; + + /** + * 数据MIME类型 + * 定义数据的类型,如文本笔记(DataConstants.NOTE)或通话记录 + */ + private String mDataMimeType; + + /** + * 数据内容 + * 存储笔记的主要文本内容 + */ + private String mDataContent; + + /** + * 数据内容的DATA1字段 + * 根据MIME类型不同存储不同的整数数据,如: + * - 对于文本笔记:存储笔记模式(普通模式或 checklist 模式) + * - 对于通话记录:存储通话日期 + */ + private long mDataContentData1; + + /** + * 数据内容的DATA3字段 + * 根据MIME类型不同存储不同的字符串数据,如: + * - 对于通话记录:存储电话号码 + */ + private String mDataContentData3; + + /** + * 用于跟踪数据变化的ContentValues对象 + * 只包含已修改的字段,用于优化数据库更新操作 + */ + private ContentValues mDiffDataValues; + + /** + * 构造函数,用于创建新的SqlData实例(用于插入新数据) + *

+ * 初始化所有字段为默认值,并将mIsCreate标记设置为true + *

+ * + * @param context 上下文对象,用于获取ContentResolver实例 + */ + public SqlData(Context context) { + mContentResolver = context.getContentResolver(); + mIsCreate = true; + mDataId = INVALID_ID; + mDataMimeType = DataConstants.NOTE; + mDataContent = ""; + mDataContentData1 = 0; + mDataContentData3 = ""; + mDiffDataValues = new ContentValues(); + } + + /** + * 构造函数,用于从数据库Cursor加载SqlData实例(用于更新现有数据) + *

+ * 从Cursor中读取数据并初始化所有字段,将mIsCreate标记设置为false + *

+ * + * @param context 上下文对象,用于获取ContentResolver实例 + * @param c 数据库Cursor对象,包含要加载的数据记录 + */ + public SqlData(Context context, Cursor c) { + mContentResolver = context.getContentResolver(); + mIsCreate = false; + loadFromCursor(c); + mDiffDataValues = new ContentValues(); + } + + /** + * 从数据库Cursor中加载数据到当前SqlData实例 + *

+ * 根据PROJECTION_DATA中定义的列顺序,从Cursor中读取对应字段的值 + *

+ * + * @param c 包含数据的Cursor对象,必须指向有效的数据行 + */ + private void loadFromCursor(Cursor c) { + mDataId = c.getLong(DATA_ID_COLUMN); + mDataMimeType = c.getString(DATA_MIME_TYPE_COLUMN); + mDataContent = c.getString(DATA_CONTENT_COLUMN); + mDataContentData1 = c.getLong(DATA_CONTENT_DATA_1_COLUMN); + mDataContentData3 = c.getString(DATA_CONTENT_DATA_3_COLUMN); + } + + /** + * 从JSON对象设置数据内容,并跟踪数据变化 + *

+ * 该方法是同步过程中的关键方法,用于将从GTask获取的JSON数据转换为本地数据格式 + * 同时会跟踪数据变化,仅将修改的字段记录到mDiffDataValues中 + *

+ * + * @param js 包含GTask数据的JSON对象 + * @throws JSONException 如果JSON解析失败 + */ + public void setContent(JSONObject js) throws JSONException { + long dataId = js.has(DataColumns.ID) ? js.getLong(DataColumns.ID) : INVALID_ID; + if (mIsCreate || mDataId != dataId) { + mDiffDataValues.put(DataColumns.ID, dataId); + } + mDataId = dataId; + + String dataMimeType = js.has(DataColumns.MIME_TYPE) ? js.getString(DataColumns.MIME_TYPE) + : DataConstants.NOTE; + if (mIsCreate || !mDataMimeType.equals(dataMimeType)) { + mDiffDataValues.put(DataColumns.MIME_TYPE, dataMimeType); + } + mDataMimeType = dataMimeType; + + String dataContent = js.has(DataColumns.CONTENT) ? js.getString(DataColumns.CONTENT) : ""; + if (mIsCreate || !mDataContent.equals(dataContent)) { + mDiffDataValues.put(DataColumns.CONTENT, dataContent); + } + mDataContent = dataContent; + + long dataContentData1 = js.has(DataColumns.DATA1) ? js.getLong(DataColumns.DATA1) : 0; + if (mIsCreate || mDataContentData1 != dataContentData1) { + mDiffDataValues.put(DataColumns.DATA1, dataContentData1); + } + mDataContentData1 = dataContentData1; + + String dataContentData3 = js.has(DataColumns.DATA3) ? js.getString(DataColumns.DATA3) : ""; + if (mIsCreate || !mDataContentData3.equals(dataContentData3)) { + mDiffDataValues.put(DataColumns.DATA3, dataContentData3); + } + mDataContentData3 = dataContentData3; + } + + /** + * 获取当前数据的JSON表示 + *

+ * 将本地数据转换为JSON格式,用于与GTask进行数据交换 + * 注意:只有已提交到数据库的数据才能获取JSON表示 + *

+ * + * @return 包含当前数据的JSON对象,如果数据未提交到数据库则返回null + * @throws JSONException 如果JSON构建失败 + */ + public JSONObject getContent() throws JSONException { + if (mIsCreate) { + Log.e(TAG, "it seems that we haven't created this in database yet"); + return null; + } + JSONObject js = new JSONObject(); + js.put(DataColumns.ID, mDataId); + js.put(DataColumns.MIME_TYPE, mDataMimeType); + js.put(DataColumns.CONTENT, mDataContent); + js.put(DataColumns.DATA1, mDataContentData1); + js.put(DataColumns.DATA3, mDataContentData3); + return js; + } + + /** + * 将数据提交到本地数据库 + *

+ * 这是SqlData类的核心方法,根据mIsCreate标记执行插入或更新操作: + * 1. 如果是新数据(mIsCreate=true),执行插入操作 + * 2. 如果是现有数据(mIsCreate=false),仅当有数据变化时执行更新操作 + * 3. 支持版本验证机制,避免在同步过程中出现数据冲突 + *

+ * + * @param noteId 所属的Note ID,用于关联到具体的笔记 + * @param validateVersion 是否验证版本,true表示需要进行版本检查 + * @param version 版本号,用于版本验证 + * @throws ActionFailureException 如果数据提交失败 + */ + public void commit(long noteId, boolean validateVersion, long version) { + + if (mIsCreate) { + if (mDataId == INVALID_ID && mDiffDataValues.containsKey(DataColumns.ID)) { + mDiffDataValues.remove(DataColumns.ID); + } + + mDiffDataValues.put(DataColumns.NOTE_ID, noteId); + Uri uri = mContentResolver.insert(Notes.CONTENT_DATA_URI, mDiffDataValues); + try { + mDataId = Long.valueOf(uri.getPathSegments().get(1)); + } catch (NumberFormatException e) { + Log.e(TAG, "Get note id error :" + e.toString()); + throw new ActionFailureException("create note failed"); + } + } else { + if (mDiffDataValues.size() > 0) { + int result = 0; + if (!validateVersion) { + result = mContentResolver.update(ContentUris.withAppendedId( + Notes.CONTENT_DATA_URI, mDataId), mDiffDataValues, null, null); + } else { + result = mContentResolver.update(ContentUris.withAppendedId( + Notes.CONTENT_DATA_URI, mDataId), mDiffDataValues, + " ? in (SELECT " + NoteColumns.ID + " FROM " + TABLE.NOTE + + " WHERE " + NoteColumns.VERSION + "=?)", new String[] { + String.valueOf(noteId), String.valueOf(version) + }); + } + if (result == 0) { + Log.w(TAG, "there is no update. maybe user updates note when syncing"); + } + } + } + + mDiffDataValues.clear(); + mIsCreate = false; + } + + /** + * 获取数据ID + *

+ * 返回当前数据的唯一标识符,用于在数据库中定位该记录 + *

+ * + * @return 数据ID,如果数据未提交到数据库则返回INVALID_ID + */ + public long getId() { + return mDataId; + } +} diff --git a/src/main/java/net/micode/notes/gtask/data/SqlNote.java b/src/main/java/net/micode/notes/gtask/data/SqlNote.java new file mode 100644 index 0000000..ad39ff5 --- /dev/null +++ b/src/main/java/net/micode/notes/gtask/data/SqlNote.java @@ -0,0 +1,714 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.data; + +import android.appwidget.AppWidgetManager; +import android.content.ContentResolver; +import android.content.ContentValues; +import android.content.Context; +import android.database.Cursor; +import android.net.Uri; +import android.util.Log; + +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.DataColumns; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.gtask.exception.ActionFailureException; +import net.micode.notes.tool.GTaskStringUtils; +import net.micode.notes.tool.ResourceParser; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.ArrayList; + + +/** + * SqlNote类是小米笔记应用中GTask同步模块的核心类,负责本地笔记数据的CRUD操作。 + *

+ * 在Notes与Google Tasks的同步过程中,该类扮演着重要角色: + * 1. 封装本地笔记数据模型,支持笔记和文件夹两种类型 + * 2. 通过ContentResolver与本地ContentProvider交互,执行数据的插入、更新和删除操作 + * 3. 支持将JSON格式的GTask数据转换为本地数据模型 + * 4. 支持将本地数据模型转换为JSON格式以便与GTask同步 + * 5. 实现数据差异跟踪,仅提交修改的字段以优化性能 + * 6. 提供版本验证机制,避免同步冲突 + *

+ */ +public class SqlNote { + private static final String TAG = SqlNote.class.getSimpleName(); + + /** + * 无效的ID值,用于初始化和错误检查 + */ + private static final int INVALID_ID = -99999; + +/** + * 查询笔记时使用的投影列,包含笔记的所有核心字段 + */ + public static final String[] PROJECTION_NOTE = 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.SYNC_ID, + NoteColumns.LOCAL_MODIFIED, NoteColumns.ORIGIN_PARENT_ID, NoteColumns.GTASK_ID, + NoteColumns.VERSION + }; + +/** + * 投影列索引:笔记ID + */ + public static final int ID_COLUMN = 0; + + /** + * 投影列索引:提醒日期 + */ + public static final int ALERTED_DATE_COLUMN = 1; + + /** + * 投影列索引:背景颜色ID + */ + public static final int BG_COLOR_ID_COLUMN = 2; + + /** + * 投影列索引:创建日期 + */ + public static final int CREATED_DATE_COLUMN = 3; + + /** + * 投影列索引:是否有附件 + */ + public static final int HAS_ATTACHMENT_COLUMN = 4; + + /** + * 投影列索引:修改日期 + */ + public static final int MODIFIED_DATE_COLUMN = 5; + + /** + * 投影列索引:笔记数量 + */ + public static final int NOTES_COUNT_COLUMN = 6; + + /** + * 投影列索引:父文件夹ID + */ + public static final int PARENT_ID_COLUMN = 7; + + /** + * 投影列索引:笔记摘要 + */ + public static final int SNIPPET_COLUMN = 8; + + /** + * 投影列索引:笔记类型(笔记或文件夹) + */ + public static final int TYPE_COLUMN = 9; + + /** + * 投影列索引:小部件ID + */ + public static final int WIDGET_ID_COLUMN = 10; + + /** + * 投影列索引:小部件类型 + */ + public static final int WIDGET_TYPE_COLUMN = 11; + + /** + * 投影列索引:同步ID + */ + public static final int SYNC_ID_COLUMN = 12; + + /** + * 投影列索引:本地修改标记 + */ + public static final int LOCAL_MODIFIED_COLUMN = 13; + + /** + * 投影列索引:原始父文件夹ID + */ + public static final int ORIGIN_PARENT_ID_COLUMN = 14; + + /** + * 投影列索引:Google Task ID + */ + public static final int GTASK_ID_COLUMN = 15; + + /** + * 投影列索引:版本号 + */ + public static final int VERSION_COLUMN = 16; + + /** + * 上下文对象,用于访问系统服务 + */ + private Context mContext; + + /** + * ContentResolver对象,用于与ContentProvider交互 + */ + private ContentResolver mContentResolver; + + /** + * 标记是否为新创建的笔记 + */ + private boolean mIsCreate; + + /** + * 笔记ID + */ + private long mId; + + /** + * 提醒日期 + */ + private long mAlertDate; + + /** + * 背景颜色ID + */ + private int mBgColorId; + + /** + * 创建日期 + */ + private long mCreatedDate; + + /** + * 是否有附件(0:无,1:有) + */ + private int mHasAttachment; + + /** + * 修改日期 + */ + private long mModifiedDate; + + /** + * 父文件夹ID + */ + private long mParentId; + + /** + * 笔记摘要 + */ + private String mSnippet; + + /** + * 笔记类型(笔记或文件夹) + */ + private int mType; + + /** + * 小部件ID + */ + private int mWidgetId; + + /** + * 小部件类型 + */ + private int mWidgetType; + + /** + * 原始父文件夹ID + */ + private long mOriginParent; + + /** + * 版本号,用于避免同步冲突 + */ + private long mVersion; + + /** + * 记录笔记数据的变更,仅提交修改的字段以优化性能 + */ + private ContentValues mDiffNoteValues; + + /** + * 笔记内容列表,每个SqlData对象代表笔记的一个内容部分 + */ + private ArrayList mDataList; + +/** + * 构造函数,创建一个新的SqlNote对象 + * + * @param context 上下文对象 + */ + public SqlNote(Context context) { + mContext = context; + mContentResolver = context.getContentResolver(); + mIsCreate = true; + mId = INVALID_ID; + mAlertDate = 0; + mBgColorId = ResourceParser.getDefaultBgId(context); + mCreatedDate = System.currentTimeMillis(); + mHasAttachment = 0; + mModifiedDate = System.currentTimeMillis(); + mParentId = 0; + mSnippet = ""; + mType = Notes.TYPE_NOTE; + mWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID; + mWidgetType = Notes.TYPE_WIDGET_INVALIDE; + mOriginParent = 0; + mVersion = 0; + mDiffNoteValues = new ContentValues(); + mDataList = new ArrayList(); + } + +/** + * 构造函数,从Cursor对象创建SqlNote对象 + * + * @param context 上下文对象 + * @param c Cursor对象,包含笔记数据 + */ + public SqlNote(Context context, Cursor c) { + mContext = context; + mContentResolver = context.getContentResolver(); + mIsCreate = false; + loadFromCursor(c); + mDataList = new ArrayList(); + if (mType == Notes.TYPE_NOTE) + loadDataContent(); + mDiffNoteValues = new ContentValues(); + } + +/** + * 构造函数,根据ID从数据库加载SqlNote对象 + * + * @param context 上下文对象 + * @param id 笔记ID + */ + public SqlNote(Context context, long id) { + mContext = context; + mContentResolver = context.getContentResolver(); + mIsCreate = false; + loadFromCursor(id); + mDataList = new ArrayList(); + if (mType == Notes.TYPE_NOTE) + loadDataContent(); + mDiffNoteValues = new ContentValues(); + + } + +/** + * 根据ID从数据库加载笔记数据 + * + * @param id 笔记ID + */ + private void loadFromCursor(long id) { + Cursor c = null; + try { + c = mContentResolver.query(Notes.CONTENT_NOTE_URI, PROJECTION_NOTE, "(_id=?)", + new String[] { + String.valueOf(id) + }, null); + if (c != null) { + c.moveToNext(); + loadFromCursor(c); + } else { + Log.w(TAG, "loadFromCursor: cursor = null"); + } + } finally { + if (c != null) + c.close(); + } + } + +/** + * 从Cursor对象加载笔记数据 + * + * @param c Cursor对象,包含笔记数据 + */ + private void loadFromCursor(Cursor c) { + mId = c.getLong(ID_COLUMN); + mAlertDate = c.getLong(ALERTED_DATE_COLUMN); + mBgColorId = c.getInt(BG_COLOR_ID_COLUMN); + mCreatedDate = c.getLong(CREATED_DATE_COLUMN); + mHasAttachment = c.getInt(HAS_ATTACHMENT_COLUMN); + mModifiedDate = c.getLong(MODIFIED_DATE_COLUMN); + mParentId = c.getLong(PARENT_ID_COLUMN); + mSnippet = c.getString(SNIPPET_COLUMN); + mType = c.getInt(TYPE_COLUMN); + mWidgetId = c.getInt(WIDGET_ID_COLUMN); + mWidgetType = c.getInt(WIDGET_TYPE_COLUMN); + mVersion = c.getLong(VERSION_COLUMN); + } + +/** + * 加载笔记的内容数据 + */ + private void loadDataContent() { + Cursor c = null; + mDataList.clear(); + try { + c = mContentResolver.query(Notes.CONTENT_DATA_URI, SqlData.PROJECTION_DATA, + "(note_id=?)", new String[] { + String.valueOf(mId) + }, null); + if (c != null) { + if (c.getCount() == 0) { + Log.w(TAG, "it seems that the note has not data"); + return; + } + while (c.moveToNext()) { + SqlData data = new SqlData(mContext, c); + mDataList.add(data); + } + } else { + Log.w(TAG, "loadDataContent: cursor = null"); + } + } finally { + if (c != null) + c.close(); + } + } + +/** + * 从JSON对象设置笔记内容 + * + * @param js JSON对象,包含GTask格式的笔记数据 + * @return 设置成功返回true,否则返回false + */ + public boolean setContent(JSONObject js) { + try { + JSONObject note = js.getJSONObject(GTaskStringUtils.META_HEAD_NOTE); + if (note.getInt(NoteColumns.TYPE) == Notes.TYPE_SYSTEM) { + Log.w(TAG, "cannot set system folder"); + } else if (note.getInt(NoteColumns.TYPE) == Notes.TYPE_FOLDER) { + // for folder we can only update the snnipet and type + String snippet = note.has(NoteColumns.SNIPPET) ? note + .getString(NoteColumns.SNIPPET) : ""; + if (mIsCreate || !mSnippet.equals(snippet)) { + mDiffNoteValues.put(NoteColumns.SNIPPET, snippet); + } + mSnippet = snippet; + + int type = note.has(NoteColumns.TYPE) ? note.getInt(NoteColumns.TYPE) + : Notes.TYPE_NOTE; + if (mIsCreate || mType != type) { + mDiffNoteValues.put(NoteColumns.TYPE, type); + } + mType = type; + } else if (note.getInt(NoteColumns.TYPE) == Notes.TYPE_NOTE) { + JSONArray dataArray = js.getJSONArray(GTaskStringUtils.META_HEAD_DATA); + long id = note.has(NoteColumns.ID) ? note.getLong(NoteColumns.ID) : INVALID_ID; + if (mIsCreate || mId != id) { + mDiffNoteValues.put(NoteColumns.ID, id); + } + mId = id; + + long alertDate = note.has(NoteColumns.ALERTED_DATE) ? note + .getLong(NoteColumns.ALERTED_DATE) : 0; + if (mIsCreate || mAlertDate != alertDate) { + mDiffNoteValues.put(NoteColumns.ALERTED_DATE, alertDate); + } + mAlertDate = alertDate; + + int bgColorId = note.has(NoteColumns.BG_COLOR_ID) ? note + .getInt(NoteColumns.BG_COLOR_ID) : ResourceParser.getDefaultBgId(mContext); + if (mIsCreate || mBgColorId != bgColorId) { + mDiffNoteValues.put(NoteColumns.BG_COLOR_ID, bgColorId); + } + mBgColorId = bgColorId; + + long createDate = note.has(NoteColumns.CREATED_DATE) ? note + .getLong(NoteColumns.CREATED_DATE) : System.currentTimeMillis(); + if (mIsCreate || mCreatedDate != createDate) { + mDiffNoteValues.put(NoteColumns.CREATED_DATE, createDate); + } + mCreatedDate = createDate; + + int hasAttachment = note.has(NoteColumns.HAS_ATTACHMENT) ? note + .getInt(NoteColumns.HAS_ATTACHMENT) : 0; + if (mIsCreate || mHasAttachment != hasAttachment) { + mDiffNoteValues.put(NoteColumns.HAS_ATTACHMENT, hasAttachment); + } + mHasAttachment = hasAttachment; + + long modifiedDate = note.has(NoteColumns.MODIFIED_DATE) ? note + .getLong(NoteColumns.MODIFIED_DATE) : System.currentTimeMillis(); + if (mIsCreate || mModifiedDate != modifiedDate) { + mDiffNoteValues.put(NoteColumns.MODIFIED_DATE, modifiedDate); + } + mModifiedDate = modifiedDate; + + long parentId = note.has(NoteColumns.PARENT_ID) ? note + .getLong(NoteColumns.PARENT_ID) : 0; + if (mIsCreate || mParentId != parentId) { + mDiffNoteValues.put(NoteColumns.PARENT_ID, parentId); + } + mParentId = parentId; + + String snippet = note.has(NoteColumns.SNIPPET) ? note + .getString(NoteColumns.SNIPPET) : ""; + if (mIsCreate || !mSnippet.equals(snippet)) { + mDiffNoteValues.put(NoteColumns.SNIPPET, snippet); + } + mSnippet = snippet; + + int type = note.has(NoteColumns.TYPE) ? note.getInt(NoteColumns.TYPE) + : Notes.TYPE_NOTE; + if (mIsCreate || mType != type) { + mDiffNoteValues.put(NoteColumns.TYPE, type); + } + mType = type; + + int widgetId = note.has(NoteColumns.WIDGET_ID) ? note.getInt(NoteColumns.WIDGET_ID) + : AppWidgetManager.INVALID_APPWIDGET_ID; + if (mIsCreate || mWidgetId != widgetId) { + mDiffNoteValues.put(NoteColumns.WIDGET_ID, widgetId); + } + mWidgetId = widgetId; + + int widgetType = note.has(NoteColumns.WIDGET_TYPE) ? note + .getInt(NoteColumns.WIDGET_TYPE) : Notes.TYPE_WIDGET_INVALIDE; + if (mIsCreate || mWidgetType != widgetType) { + mDiffNoteValues.put(NoteColumns.WIDGET_TYPE, widgetType); + } + mWidgetType = widgetType; + + long originParent = note.has(NoteColumns.ORIGIN_PARENT_ID) ? note + .getLong(NoteColumns.ORIGIN_PARENT_ID) : 0; + if (mIsCreate || mOriginParent != originParent) { + mDiffNoteValues.put(NoteColumns.ORIGIN_PARENT_ID, originParent); + } + mOriginParent = originParent; + + for (int i = 0; i < dataArray.length(); i++) { + JSONObject data = dataArray.getJSONObject(i); + SqlData sqlData = null; + if (data.has(DataColumns.ID)) { + long dataId = data.getLong(DataColumns.ID); + for (SqlData temp : mDataList) { + if (dataId == temp.getId()) { + sqlData = temp; + } + } + } + + if (sqlData == null) { + sqlData = new SqlData(mContext); + mDataList.add(sqlData); + } + + sqlData.setContent(data); + } + } + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + return false; + } + return true; + } + +/** + * 获取笔记内容的JSON表示 + * + * @return 包含笔记数据的JSON对象,如果获取失败返回null + */ + public JSONObject getContent() { + try { + JSONObject js = new JSONObject(); + + if (mIsCreate) { + Log.e(TAG, "it seems that we haven't created this in database yet"); + return null; + } + + JSONObject note = new JSONObject(); + if (mType == Notes.TYPE_NOTE) { + note.put(NoteColumns.ID, mId); + note.put(NoteColumns.ALERTED_DATE, mAlertDate); + note.put(NoteColumns.BG_COLOR_ID, mBgColorId); + note.put(NoteColumns.CREATED_DATE, mCreatedDate); + note.put(NoteColumns.HAS_ATTACHMENT, mHasAttachment); + note.put(NoteColumns.MODIFIED_DATE, mModifiedDate); + note.put(NoteColumns.PARENT_ID, mParentId); + note.put(NoteColumns.SNIPPET, mSnippet); + note.put(NoteColumns.TYPE, mType); + note.put(NoteColumns.WIDGET_ID, mWidgetId); + note.put(NoteColumns.WIDGET_TYPE, mWidgetType); + note.put(NoteColumns.ORIGIN_PARENT_ID, mOriginParent); + js.put(GTaskStringUtils.META_HEAD_NOTE, note); + + JSONArray dataArray = new JSONArray(); + for (SqlData sqlData : mDataList) { + JSONObject data = sqlData.getContent(); + if (data != null) { + dataArray.put(data); + } + } + js.put(GTaskStringUtils.META_HEAD_DATA, dataArray); + } else if (mType == Notes.TYPE_FOLDER || mType == Notes.TYPE_SYSTEM) { + note.put(NoteColumns.ID, mId); + note.put(NoteColumns.TYPE, mType); + note.put(NoteColumns.SNIPPET, mSnippet); + js.put(GTaskStringUtils.META_HEAD_NOTE, note); + } + + return js; + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + } + return null; + } + +/** + * 设置笔记的父文件夹ID + * + * @param id 父文件夹ID + */ + public void setParentId(long id) { + mParentId = id; + mDiffNoteValues.put(NoteColumns.PARENT_ID, id); + } + +/** + * 设置笔记的Google Task ID + * + * @param gid Google Task ID + */ + public void setGtaskId(String gid) { + mDiffNoteValues.put(NoteColumns.GTASK_ID, gid); + } + +/** + * 设置笔记的同步ID + * + * @param syncId 同步ID + */ + public void setSyncId(long syncId) { + mDiffNoteValues.put(NoteColumns.SYNC_ID, syncId); + } + +/** + * 重置本地修改标记 + */ + public void resetLocalModified() { + mDiffNoteValues.put(NoteColumns.LOCAL_MODIFIED, 0); + } + +/** + * 获取笔记ID + * + * @return 笔记ID + */ + public long getId() { + return mId; + } + +/** + * 获取父文件夹ID + * + * @return 父文件夹ID + */ + public long getParentId() { + return mParentId; + } + +/** + * 获取笔记摘要 + * + * @return 笔记摘要 + */ + public String getSnippet() { + return mSnippet; + } + +/** + * 判断是否为笔记类型(非文件夹类型) + * + * @return 是笔记类型返回true,否则返回false + */ + public boolean isNoteType() { + return mType == Notes.TYPE_NOTE; + } + +/** + * 将笔记数据提交到本地数据库 + * + * @param validateVersion 是否验证版本,true表示需要进行版本检查以避免冲突 + * @throws ActionFailureException 如果创建笔记失败 + * @throws IllegalStateException 如果更新笔记时ID无效 + */ + public void commit(boolean validateVersion) { + if (mIsCreate) { + if (mId == INVALID_ID && mDiffNoteValues.containsKey(NoteColumns.ID)) { + mDiffNoteValues.remove(NoteColumns.ID); + } + + Uri uri = mContentResolver.insert(Notes.CONTENT_NOTE_URI, mDiffNoteValues); + try { + mId = Long.valueOf(uri.getPathSegments().get(1)); + } catch (NumberFormatException e) { + Log.e(TAG, "Get note id error :" + e.toString()); + throw new ActionFailureException("create note failed"); + } + if (mId == 0) { + throw new IllegalStateException("Create thread id failed"); + } + + if (mType == Notes.TYPE_NOTE) { + for (SqlData sqlData : mDataList) { + sqlData.commit(mId, false, -1); + } + } + } else { + if (mId <= 0 && mId != Notes.ID_ROOT_FOLDER && mId != Notes.ID_CALL_RECORD_FOLDER) { + Log.e(TAG, "No such note"); + throw new IllegalStateException("Try to update note with invalid id"); + } + if (mDiffNoteValues.size() > 0) { + mVersion ++; + int result = 0; + if (!validateVersion) { + result = mContentResolver.update(Notes.CONTENT_NOTE_URI, mDiffNoteValues, "(" + + NoteColumns.ID + "=?)", new String[] { + String.valueOf(mId) + }); + } else { + result = mContentResolver.update(Notes.CONTENT_NOTE_URI, mDiffNoteValues, "(" + + NoteColumns.ID + "=?) AND (" + NoteColumns.VERSION + "<=?)", + new String[] { + String.valueOf(mId), String.valueOf(mVersion) + }); + } + if (result == 0) { + Log.w(TAG, "there is no update. maybe user updates note when syncing"); + } + } + + if (mType == Notes.TYPE_NOTE) { + for (SqlData sqlData : mDataList) { + sqlData.commit(mId, validateVersion, mVersion); + } + } + } + + // refresh local info + loadFromCursor(mId); + if (mType == Notes.TYPE_NOTE) + loadDataContent(); + + mDiffNoteValues.clear(); + mIsCreate = false; + } +} diff --git a/src/main/java/net/micode/notes/gtask/data/Task.java b/src/main/java/net/micode/notes/gtask/data/Task.java new file mode 100644 index 0000000..a9d2764 --- /dev/null +++ b/src/main/java/net/micode/notes/gtask/data/Task.java @@ -0,0 +1,483 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.data; + +import android.database.Cursor; +import android.text.TextUtils; +import android.util.Log; + +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.DataColumns; +import net.micode.notes.data.Notes.DataConstants; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.gtask.exception.ActionFailureException; +import net.micode.notes.tool.GTaskStringUtils; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + + +/** + * Task类是Node类的子类,用于表示Google Tasks中的任务项。 + *

+ * 在小米笔记与Google Tasks的同步过程中,该类负责: + * 1. 封装Google Tasks任务的数据模型 + * 2. 实现任务的创建、更新等同步操作 + * 3. 处理本地数据与Google Tasks数据之间的转换 + * 4. 管理任务的层次结构和关系 + *

+ */ +public class Task extends Node { + private static final String TAG = Task.class.getSimpleName(); + + /** + * 任务是否已完成 + */ + private boolean mCompleted; + + /** + * 任务的备注信息 + */ + private String mNotes; + + /** + * 任务的元信息,包含与本地笔记的关联数据 + */ + private JSONObject mMetaInfo; + + /** + * 任务的前一个兄弟节点(在同一父任务列表中的前一个任务) + */ + private Task mPriorSibling; + + /** + * 任务的父任务列表 + */ + private TaskList mParent; + +/** + * 构造函数,创建一个新的Task对象 + */ + public Task() { + super(); + mCompleted = false; + mNotes = null; + mPriorSibling = null; + mParent = null; + mMetaInfo = null; + } + +/** + * 获取创建任务的JSON动作 + *

+ * 该方法生成用于向Google Tasks服务器发送创建任务请求的JSON数据 + *

+ * + * @param actionId 动作ID,用于标识当前操作 + * @return 包含创建任务信息的JSON对象 + * @throws ActionFailureException 如果生成JSON对象失败 + */ + public JSONObject getCreateAction(int actionId) { + JSONObject js = new JSONObject(); + + try { + // action_type + js.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE, + GTaskStringUtils.GTASK_JSON_ACTION_TYPE_CREATE); + + // action_id + js.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, actionId); + + // index + js.put(GTaskStringUtils.GTASK_JSON_INDEX, mParent.getChildTaskIndex(this)); + + // entity_delta + JSONObject entity = new JSONObject(); + entity.put(GTaskStringUtils.GTASK_JSON_NAME, getName()); + entity.put(GTaskStringUtils.GTASK_JSON_CREATOR_ID, "null"); + entity.put(GTaskStringUtils.GTASK_JSON_ENTITY_TYPE, + GTaskStringUtils.GTASK_JSON_TYPE_TASK); + if (getNotes() != null) { + entity.put(GTaskStringUtils.GTASK_JSON_NOTES, getNotes()); + } + js.put(GTaskStringUtils.GTASK_JSON_ENTITY_DELTA, entity); + + // parent_id + js.put(GTaskStringUtils.GTASK_JSON_PARENT_ID, mParent.getGid()); + + // dest_parent_type + js.put(GTaskStringUtils.GTASK_JSON_DEST_PARENT_TYPE, + GTaskStringUtils.GTASK_JSON_TYPE_GROUP); + + // list_id + js.put(GTaskStringUtils.GTASK_JSON_LIST_ID, mParent.getGid()); + + // prior_sibling_id + if (mPriorSibling != null) { + js.put(GTaskStringUtils.GTASK_JSON_PRIOR_SIBLING_ID, mPriorSibling.getGid()); + } + + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("fail to generate task-create jsonobject"); + } + + return js; + } + +/** + * 获取更新任务的JSON动作 + *

+ * 该方法生成用于向Google Tasks服务器发送更新任务请求的JSON数据 + *

+ * + * @param actionId 动作ID,用于标识当前操作 + * @return 包含更新任务信息的JSON对象 + * @throws ActionFailureException 如果生成JSON对象失败 + */ + public JSONObject getUpdateAction(int actionId) { + JSONObject js = new JSONObject(); + + try { + // action_type + js.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE, + GTaskStringUtils.GTASK_JSON_ACTION_TYPE_UPDATE); + + // action_id + js.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, actionId); + + // id + js.put(GTaskStringUtils.GTASK_JSON_ID, getGid()); + + // entity_delta + JSONObject entity = new JSONObject(); + entity.put(GTaskStringUtils.GTASK_JSON_NAME, getName()); + if (getNotes() != null) { + entity.put(GTaskStringUtils.GTASK_JSON_NOTES, getNotes()); + } + entity.put(GTaskStringUtils.GTASK_JSON_DELETED, getDeleted()); + js.put(GTaskStringUtils.GTASK_JSON_ENTITY_DELTA, entity); + + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("fail to generate task-update jsonobject"); + } + + return js; + } + +/** + * 从Google Tasks服务器返回的JSON数据设置任务内容 + * + * @param js 包含Google Tasks任务数据的JSON对象 + * @throws ActionFailureException 如果解析JSON数据失败 + */ + public void setContentByRemoteJSON(JSONObject js) { + if (js != null) { + try { + // id + if (js.has(GTaskStringUtils.GTASK_JSON_ID)) { + setGid(js.getString(GTaskStringUtils.GTASK_JSON_ID)); + } + + // last_modified + if (js.has(GTaskStringUtils.GTASK_JSON_LAST_MODIFIED)) { + setLastModified(js.getLong(GTaskStringUtils.GTASK_JSON_LAST_MODIFIED)); + } + + // name + if (js.has(GTaskStringUtils.GTASK_JSON_NAME)) { + setName(js.getString(GTaskStringUtils.GTASK_JSON_NAME)); + } + + // notes + if (js.has(GTaskStringUtils.GTASK_JSON_NOTES)) { + setNotes(js.getString(GTaskStringUtils.GTASK_JSON_NOTES)); + } + + // deleted + if (js.has(GTaskStringUtils.GTASK_JSON_DELETED)) { + setDeleted(js.getBoolean(GTaskStringUtils.GTASK_JSON_DELETED)); + } + + // completed + if (js.has(GTaskStringUtils.GTASK_JSON_COMPLETED)) { + setCompleted(js.getBoolean(GTaskStringUtils.GTASK_JSON_COMPLETED)); + } + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("fail to get task content from jsonobject"); + } + } + } + +/** + * 从本地JSON数据设置任务内容 + * + * @param js 包含本地笔记数据的JSON对象 + */ + public void setContentByLocalJSON(JSONObject js) { + if (js == null || !js.has(GTaskStringUtils.META_HEAD_NOTE) + || !js.has(GTaskStringUtils.META_HEAD_DATA)) { + Log.w(TAG, "setContentByLocalJSON: nothing is avaiable"); + } + + try { + JSONObject note = js.getJSONObject(GTaskStringUtils.META_HEAD_NOTE); + JSONArray dataArray = js.getJSONArray(GTaskStringUtils.META_HEAD_DATA); + + if (note.getInt(NoteColumns.TYPE) != Notes.TYPE_NOTE) { + Log.e(TAG, "invalid type"); + return; + } + + for (int i = 0; i < dataArray.length(); i++) { + JSONObject data = dataArray.getJSONObject(i); + if (TextUtils.equals(data.getString(DataColumns.MIME_TYPE), DataConstants.NOTE)) { + setName(data.getString(DataColumns.CONTENT)); + break; + } + } + + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + } + } + +/** + * 获取任务内容的本地JSON表示 + *

+ * 该方法将任务数据转换为本地笔记系统使用的JSON格式 + *

+ * + * @return 包含任务数据的本地JSON对象,如果转换失败返回null + */ + public JSONObject getLocalJSONFromContent() { + String name = getName(); + try { + if (mMetaInfo == null) { + // new task created from web + if (name == null) { + Log.w(TAG, "the note seems to be an empty one"); + return null; + } + + JSONObject js = new JSONObject(); + JSONObject note = new JSONObject(); + JSONArray dataArray = new JSONArray(); + JSONObject data = new JSONObject(); + data.put(DataColumns.CONTENT, name); + dataArray.put(data); + js.put(GTaskStringUtils.META_HEAD_DATA, dataArray); + note.put(NoteColumns.TYPE, Notes.TYPE_NOTE); + js.put(GTaskStringUtils.META_HEAD_NOTE, note); + return js; + } else { + // synced task + JSONObject note = mMetaInfo.getJSONObject(GTaskStringUtils.META_HEAD_NOTE); + JSONArray dataArray = mMetaInfo.getJSONArray(GTaskStringUtils.META_HEAD_DATA); + + for (int i = 0; i < dataArray.length(); i++) { + JSONObject data = dataArray.getJSONObject(i); + if (TextUtils.equals(data.getString(DataColumns.MIME_TYPE), DataConstants.NOTE)) { + data.put(DataColumns.CONTENT, getName()); + break; + } + } + + note.put(NoteColumns.TYPE, Notes.TYPE_NOTE); + return mMetaInfo; + } + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + return null; + } + } + +/** + * 设置任务的元信息 + *

+ * 元信息包含任务与本地笔记的关联数据 + *

+ * + * @param metaData 包含元信息的MetaData对象 + */ + public void setMetaInfo(MetaData metaData) { + if (metaData != null && metaData.getNotes() != null) { + try { + mMetaInfo = new JSONObject(metaData.getNotes()); + } catch (JSONException e) { + Log.w(TAG, e.toString()); + mMetaInfo = null; + } + } + } + +/** + * 获取任务的同步动作类型 + *

+ * 该方法根据本地数据和远程数据的状态,确定需要执行的同步操作类型 + *

+ * + * @param c 包含本地笔记数据的Cursor对象 + * @return 同步动作类型,取值为SYNC_ACTION_*常量之一 + */ + public int getSyncAction(Cursor c) { + try { + JSONObject noteInfo = null; + if (mMetaInfo != null && mMetaInfo.has(GTaskStringUtils.META_HEAD_NOTE)) { + noteInfo = mMetaInfo.getJSONObject(GTaskStringUtils.META_HEAD_NOTE); + } + + if (noteInfo == null) { + Log.w(TAG, "it seems that note meta has been deleted"); + return SYNC_ACTION_UPDATE_REMOTE; + } + + if (!noteInfo.has(NoteColumns.ID)) { + Log.w(TAG, "remote note id seems to be deleted"); + return SYNC_ACTION_UPDATE_LOCAL; + } + + // validate the note id now + if (c.getLong(SqlNote.ID_COLUMN) != noteInfo.getLong(NoteColumns.ID)) { + Log.w(TAG, "note id doesn't match"); + return SYNC_ACTION_UPDATE_LOCAL; + } + + if (c.getInt(SqlNote.LOCAL_MODIFIED_COLUMN) == 0) { + // there is no local update + if (c.getLong(SqlNote.SYNC_ID_COLUMN) == getLastModified()) { + // no update both side + return SYNC_ACTION_NONE; + } else { + // apply remote to local + return SYNC_ACTION_UPDATE_LOCAL; + } + } else { + // validate gtask id + if (!c.getString(SqlNote.GTASK_ID_COLUMN).equals(getGid())) { + Log.e(TAG, "gtask id doesn't match"); + return SYNC_ACTION_ERROR; + } + if (c.getLong(SqlNote.SYNC_ID_COLUMN) == getLastModified()) { + // local modification only + return SYNC_ACTION_UPDATE_REMOTE; + } else { + return SYNC_ACTION_UPDATE_CONFLICT; + } + } + } catch (Exception e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + } + + return SYNC_ACTION_ERROR; + } + +/** + * 判断任务是否值得保存 + *

+ * 如果任务有元信息、名称或备注,则认为值得保存 + *

+ * + * @return 任务值得保存返回true,否则返回false + */ + public boolean isWorthSaving() { + return mMetaInfo != null || (getName() != null && getName().trim().length() > 0) + || (getNotes() != null && getNotes().trim().length() > 0); + } + +/** + * 设置任务的完成状态 + * + * @param completed 任务是否已完成 + */ + public void setCompleted(boolean completed) { + this.mCompleted = completed; + } + +/** + * 设置任务的备注信息 + * + * @param notes 任务的备注信息 + */ + public void setNotes(String notes) { + this.mNotes = notes; + } + +/** + * 设置任务的前一个兄弟节点 + * + * @param priorSibling 前一个兄弟任务 + */ + public void setPriorSibling(Task priorSibling) { + this.mPriorSibling = priorSibling; + } + +/** + * 设置任务的父任务列表 + * + * @param parent 父任务列表 + */ + public void setParent(TaskList parent) { + this.mParent = parent; + } + +/** + * 获取任务的完成状态 + * + * @return 任务是否已完成 + */ + public boolean getCompleted() { + return this.mCompleted; + } + +/** + * 获取任务的备注信息 + * + * @return 任务的备注信息 + */ + public String getNotes() { + return this.mNotes; + } + +/** + * 获取任务的前一个兄弟节点 + * + * @return 前一个兄弟任务 + */ + public Task getPriorSibling() { + return this.mPriorSibling; + } + +/** + * 获取任务的父任务列表 + * + * @return 父任务列表 + */ + public TaskList getParent() { + return this.mParent; + } + +} diff --git a/src/main/java/net/micode/notes/gtask/data/TaskList.java b/src/main/java/net/micode/notes/gtask/data/TaskList.java new file mode 100644 index 0000000..1cfab78 --- /dev/null +++ b/src/main/java/net/micode/notes/gtask/data/TaskList.java @@ -0,0 +1,486 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.data; + +import android.database.Cursor; +import android.util.Log; + +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.gtask.exception.ActionFailureException; +import net.micode.notes.tool.GTaskStringUtils; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.ArrayList; + + +/** + * TaskList类是Node类的子类,用于表示Google Tasks中的任务列表。 + *

+ * 在小米笔记与Google Tasks的同步过程中,该类负责: + * 1. 封装Google Tasks任务列表的数据模型 + * 2. 管理任务列表中的子任务(Task对象) + * 3. 实现任务列表的创建、更新等同步操作 + * 4. 处理本地文件夹与Google Tasks列表之间的转换 + *

+ */ +public class TaskList extends Node { + private static final String TAG = TaskList.class.getSimpleName(); + + /** + * 任务列表的索引位置 + */ + private int mIndex; + + /** + * 任务列表中的子任务列表 + */ + private ArrayList mChildren; + +/** + * 构造函数,创建一个新的TaskList对象 + */ + public TaskList() { + super(); + mChildren = new ArrayList(); + mIndex = 1; + } + +/** + * 获取创建任务列表的JSON动作 + *

+ * 该方法生成用于向Google Tasks服务器发送创建任务列表请求的JSON数据 + *

+ * + * @param actionId 动作ID,用于标识当前操作 + * @return 包含创建任务列表信息的JSON对象 + * @throws ActionFailureException 如果生成JSON对象失败 + */ + public JSONObject getCreateAction(int actionId) { + JSONObject js = new JSONObject(); + + try { + // action_type + js.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE, + GTaskStringUtils.GTASK_JSON_ACTION_TYPE_CREATE); + + // action_id + js.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, actionId); + + // index + js.put(GTaskStringUtils.GTASK_JSON_INDEX, mIndex); + + // entity_delta + JSONObject entity = new JSONObject(); + entity.put(GTaskStringUtils.GTASK_JSON_NAME, getName()); + entity.put(GTaskStringUtils.GTASK_JSON_CREATOR_ID, "null"); + entity.put(GTaskStringUtils.GTASK_JSON_ENTITY_TYPE, + GTaskStringUtils.GTASK_JSON_TYPE_GROUP); + js.put(GTaskStringUtils.GTASK_JSON_ENTITY_DELTA, entity); + + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("fail to generate tasklist-create jsonobject"); + } + + return js; + } + +/** + * 获取更新任务列表的JSON动作 + *

+ * 该方法生成用于向Google Tasks服务器发送更新任务列表请求的JSON数据 + *

+ * + * @param actionId 动作ID,用于标识当前操作 + * @return 包含更新任务列表信息的JSON对象 + * @throws ActionFailureException 如果生成JSON对象失败 + */ + public JSONObject getUpdateAction(int actionId) { + JSONObject js = new JSONObject(); + + try { + // action_type + js.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE, + GTaskStringUtils.GTASK_JSON_ACTION_TYPE_UPDATE); + + // action_id + js.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, actionId); + + // id + js.put(GTaskStringUtils.GTASK_JSON_ID, getGid()); + + // entity_delta + JSONObject entity = new JSONObject(); + entity.put(GTaskStringUtils.GTASK_JSON_NAME, getName()); + entity.put(GTaskStringUtils.GTASK_JSON_DELETED, getDeleted()); + js.put(GTaskStringUtils.GTASK_JSON_ENTITY_DELTA, entity); + + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("fail to generate tasklist-update jsonobject"); + } + + return js; + } + +/** + * 从Google Tasks服务器返回的JSON数据设置任务列表内容 + * + * @param js 包含Google Tasks任务列表数据的JSON对象 + * @throws ActionFailureException 如果解析JSON数据失败 + */ + public void setContentByRemoteJSON(JSONObject js) { + if (js != null) { + try { + // id + if (js.has(GTaskStringUtils.GTASK_JSON_ID)) { + setGid(js.getString(GTaskStringUtils.GTASK_JSON_ID)); + } + + // last_modified + if (js.has(GTaskStringUtils.GTASK_JSON_LAST_MODIFIED)) { + setLastModified(js.getLong(GTaskStringUtils.GTASK_JSON_LAST_MODIFIED)); + } + + // name + if (js.has(GTaskStringUtils.GTASK_JSON_NAME)) { + setName(js.getString(GTaskStringUtils.GTASK_JSON_NAME)); + } + + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("fail to get tasklist content from jsonobject"); + } + } + } + +/** + * 从本地JSON数据设置任务列表内容 + *

+ * 根据本地文件夹类型设置任务列表名称,支持普通文件夹、系统文件夹等 + *

+ * + * @param js 包含本地文件夹数据的JSON对象 + */ + public void setContentByLocalJSON(JSONObject js) { + if (js == null || !js.has(GTaskStringUtils.META_HEAD_NOTE)) { + Log.w(TAG, "setContentByLocalJSON: nothing is avaiable"); + } + + try { + JSONObject folder = js.getJSONObject(GTaskStringUtils.META_HEAD_NOTE); + + if (folder.getInt(NoteColumns.TYPE) == Notes.TYPE_FOLDER) { + String name = folder.getString(NoteColumns.SNIPPET); + setName(GTaskStringUtils.MIUI_FOLDER_PREFFIX + name); + } else if (folder.getInt(NoteColumns.TYPE) == Notes.TYPE_SYSTEM) { + if (folder.getLong(NoteColumns.ID) == Notes.ID_ROOT_FOLDER) + setName(GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_DEFAULT); + else if (folder.getLong(NoteColumns.ID) == Notes.ID_CALL_RECORD_FOLDER) + setName(GTaskStringUtils.MIUI_FOLDER_PREFFIX + + GTaskStringUtils.FOLDER_CALL_NOTE); + else + Log.e(TAG, "invalid system folder"); + } else { + Log.e(TAG, "error type"); + } + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + } + } + +/** + * 获取任务列表内容的本地JSON表示 + *

+ * 该方法将任务列表数据转换为本地文件夹系统使用的JSON格式 + *

+ * + * @return 包含任务列表数据的本地JSON对象,如果转换失败返回null + */ + public JSONObject getLocalJSONFromContent() { + try { + JSONObject js = new JSONObject(); + JSONObject folder = new JSONObject(); + + String folderName = getName(); + if (getName().startsWith(GTaskStringUtils.MIUI_FOLDER_PREFFIX)) + folderName = folderName.substring(GTaskStringUtils.MIUI_FOLDER_PREFFIX.length(), + folderName.length()); + folder.put(NoteColumns.SNIPPET, folderName); + if (folderName.equals(GTaskStringUtils.FOLDER_DEFAULT) + || folderName.equals(GTaskStringUtils.FOLDER_CALL_NOTE)) + folder.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); + else + folder.put(NoteColumns.TYPE, Notes.TYPE_FOLDER); + + js.put(GTaskStringUtils.META_HEAD_NOTE, folder); + + return js; + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + return null; + } + } + +/** + * 获取任务列表的同步动作类型 + *

+ * 该方法根据本地数据和远程数据的状态,确定需要执行的同步操作类型 + *

+ * + * @param c 包含本地文件夹数据的Cursor对象 + * @return 同步动作类型,取值为SYNC_ACTION_*常量之一 + */ + public int getSyncAction(Cursor c) { + try { + if (c.getInt(SqlNote.LOCAL_MODIFIED_COLUMN) == 0) { + // there is no local update + if (c.getLong(SqlNote.SYNC_ID_COLUMN) == getLastModified()) { + // no update both side + return SYNC_ACTION_NONE; + } else { + // apply remote to local + return SYNC_ACTION_UPDATE_LOCAL; + } + } else { + // validate gtask id + if (!c.getString(SqlNote.GTASK_ID_COLUMN).equals(getGid())) { + Log.e(TAG, "gtask id doesn't match"); + return SYNC_ACTION_ERROR; + } + if (c.getLong(SqlNote.SYNC_ID_COLUMN) == getLastModified()) { + // local modification only + return SYNC_ACTION_UPDATE_REMOTE; + } else { + // for folder conflicts, just apply local modification + return SYNC_ACTION_UPDATE_REMOTE; + } + } + } catch (Exception e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + } + + return SYNC_ACTION_ERROR; + } + +/** + * 获取任务列表中的子任务数量 + * + * @return 子任务数量 + */ + public int getChildTaskCount() { + return mChildren.size(); + } + +/** + * 向任务列表中添加子任务 + * + * @param task 要添加的子任务 + * @return 添加成功返回true,否则返回false + */ + public boolean addChildTask(Task task) { + boolean ret = false; + if (task != null && !mChildren.contains(task)) { + ret = mChildren.add(task); + if (ret) { + // need to set prior sibling and parent + task.setPriorSibling(mChildren.isEmpty() ? null : mChildren + .get(mChildren.size() - 1)); + task.setParent(this); + } + } + return ret; + } + +/** + * 在指定位置向任务列表中添加子任务 + * + * @param task 要添加的子任务 + * @param index 要添加的位置索引 + * @return 添加成功返回true,否则返回false + */ + public boolean addChildTask(Task task, int index) { + if (index < 0 || index > mChildren.size()) { + Log.e(TAG, "add child task: invalid index"); + return false; + } + + int pos = mChildren.indexOf(task); + if (task != null && pos == -1) { + mChildren.add(index, task); + + // update the task list + Task preTask = null; + Task afterTask = null; + if (index != 0) + preTask = mChildren.get(index - 1); + if (index != mChildren.size() - 1) + afterTask = mChildren.get(index + 1); + + task.setPriorSibling(preTask); + if (afterTask != null) + afterTask.setPriorSibling(task); + } + + return true; + } + +/** + * 从任务列表中移除子任务 + * + * @param task 要移除的子任务 + * @return 移除成功返回true,否则返回false + */ + public boolean removeChildTask(Task task) { + boolean ret = false; + int index = mChildren.indexOf(task); + if (index != -1) { + ret = mChildren.remove(task); + + if (ret) { + // reset prior sibling and parent + task.setPriorSibling(null); + task.setParent(null); + + // update the task list + if (index != mChildren.size()) { + mChildren.get(index).setPriorSibling( + index == 0 ? null : mChildren.get(index - 1)); + } + } + } + return ret; + } + +/** + * 移动任务列表中的子任务到指定位置 + * + * @param task 要移动的子任务 + * @param index 目标位置索引 + * @return 移动成功返回true,否则返回false + */ + public boolean moveChildTask(Task task, int index) { + + if (index < 0 || index >= mChildren.size()) { + Log.e(TAG, "move child task: invalid index"); + return false; + } + + int pos = mChildren.indexOf(task); + if (pos == -1) { + Log.e(TAG, "move child task: the task should in the list"); + return false; + } + + if (pos == index) + return true; + return (removeChildTask(task) && addChildTask(task, index)); + } + +/** + * 根据Google Task ID查找子任务 + * + * @param gid Google Task ID + * @return 找到的子任务,如果找不到返回null + */ + public Task findChildTaskByGid(String gid) { + for (int i = 0; i < mChildren.size(); i++) { + Task t = mChildren.get(i); + if (t.getGid().equals(gid)) { + return t; + } + } + return null; + } + +/** + * 获取子任务在任务列表中的索引位置 + * + * @param task 要查找的子任务 + * @return 子任务的索引位置,如果不存在返回-1 + */ + public int getChildTaskIndex(Task task) { + return mChildren.indexOf(task); + } + +/** + * 根据索引位置获取子任务 + * + * @param index 要获取的子任务的索引位置 + * @return 索引位置对应的子任务,如果索引无效返回null + */ + public Task getChildTaskByIndex(int index) { + if (index < 0 || index >= mChildren.size()) { + Log.e(TAG, "getTaskByIndex: invalid index"); + return null; + } + return mChildren.get(index); + } + +/** + * 根据Google Task ID获取子任务 + *

+ * 注意:该方法与findChildTaskByGid功能相同,名称可能存在拼写错误("ChilTask"应为"ChildTask") + *

+ * + * @param gid Google Task ID + * @return 找到的子任务,如果找不到返回null + */ + public Task getChilTaskByGid(String gid) { + for (Task task : mChildren) { + if (task.getGid().equals(gid)) + return task; + } + return null; + } + +/** + * 获取任务列表中的所有子任务 + * + * @return 包含所有子任务的ArrayList + */ + public ArrayList getChildTaskList() { + return this.mChildren; + } + +/** + * 设置任务列表的索引位置 + * + * @param index 新的索引位置 + */ + public void setIndex(int index) { + this.mIndex = index; + } + +/** + * 获取任务列表的索引位置 + * + * @return 任务列表的索引位置 + */ + public int getIndex() { + return this.mIndex; + } +} diff --git a/src/main/java/net/micode/notes/gtask/exception/ActionFailureException.java b/src/main/java/net/micode/notes/gtask/exception/ActionFailureException.java new file mode 100644 index 0000000..7d7892c --- /dev/null +++ b/src/main/java/net/micode/notes/gtask/exception/ActionFailureException.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.exception; + +/** + * ActionFailureException是GTask同步过程中用于表示操作失败的自定义异常类 + *

+ * 当GTask同步操作(如创建、更新、删除任务或任务列表)执行失败时抛出此异常 + *

+ */ +public class ActionFailureException extends RuntimeException { + private static final long serialVersionUID = 4425249765923293627L; + + public ActionFailureException() { + super(); + } + + public ActionFailureException(String paramString) { + super(paramString); + } + + public ActionFailureException(String paramString, Throwable paramThrowable) { + super(paramString, paramThrowable); + } +} diff --git a/src/main/java/net/micode/notes/gtask/exception/NetworkFailureException.java b/src/main/java/net/micode/notes/gtask/exception/NetworkFailureException.java new file mode 100644 index 0000000..b9f564d --- /dev/null +++ b/src/main/java/net/micode/notes/gtask/exception/NetworkFailureException.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.exception; + +/** + * NetworkFailureException是GTask同步过程中用于表示网络操作失败的自定义检查型异常 + *

+ * 当GTask同步操作(如网络请求、数据传输)因网络问题(如网络连接中断、超时等)失败时抛出此异常 + *

+ */ +public class NetworkFailureException extends Exception { + private static final long serialVersionUID = 2107610287180234136L; + + public NetworkFailureException() { + super(); + } + + public NetworkFailureException(String paramString) { + super(paramString); + } + + public NetworkFailureException(String paramString, Throwable paramThrowable) { + super(paramString, paramThrowable); + } +} diff --git a/src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java b/src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java new file mode 100644 index 0000000..9e52a69 --- /dev/null +++ b/src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java @@ -0,0 +1,209 @@ + +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.remote; + +import android.app.Notification; +import android.app.NotificationManager; +import android.app.PendingIntent; +import android.content.Context; +import android.content.Intent; +import android.os.AsyncTask; + +import net.micode.notes.R; +import net.micode.notes.ui.NotesListActivity; +import net.micode.notes.ui.NotesPreferenceActivity; + + +/** + * GTaskASyncTask是用于在后台执行GTask同步操作的异步任务类 + *

+ * 该类负责: + * 1. 在后台线程执行GTask同步操作 + * 2. 显示同步进度通知 + * 3. 处理同步结果并显示相应通知 + * 4. 支持同步取消功能 + *

+ */ +public class GTaskASyncTask extends AsyncTask { + + /** + * GTask同步通知的唯一ID + */ + private static int GTASK_SYNC_NOTIFICATION_ID = 5234235; + + /** + * OnCompleteListener是GTask同步完成时的回调接口 + */ + public interface OnCompleteListener { + /** + * 当GTask同步完成时调用此方法 + */ + void onComplete(); + } + + /** + * Android应用上下文对象 + */ + private Context mContext; + + /** + * 通知管理器,用于显示同步进度和结果通知 + */ + private NotificationManager mNotifiManager; + + /** + * GTask管理器实例,负责执行实际的同步操作 + */ + private GTaskManager mTaskManager; + + /** + * 同步完成监听器,用于在同步结束后回调通知 + */ + private OnCompleteListener mOnCompleteListener; + + /** + * GTaskASyncTask构造函数 + * + * @param context 应用上下文 + * @param listener 同步完成监听器 + */ + public GTaskASyncTask(Context context, OnCompleteListener listener) { + mContext = context; + mOnCompleteListener = listener; + mNotifiManager = (NotificationManager) mContext + .getSystemService(Context.NOTIFICATION_SERVICE); + mTaskManager = GTaskManager.getInstance(); + } + + /** + * 取消当前正在进行的GTask同步操作 + */ + public void cancelSync() { + mTaskManager.cancelSync(); + } + + /** + * 发布同步进度更新 + * + * @param message 进度消息内容 + */ + public void publishProgess(String message) { + publishProgress(new String[] { + message + }); + } + +// + /* 显示GTask同步通知 + * + * @param tickerId 通知标题的字符串资源ID; + * @param content 通知内容 + */ +// private void showNotification(int tickerId, String content) { +// Notification notification = new Notification(R.drawable.notification, mContext +// .getString(tickerId), System.currentTimeMillis()); + // notification.defaults = Notification.DEFAULT_LIGHTS; +// notification.flags = Notification.FLAG_AUTO_CANCEL; + // PendingIntent pendingIntent; +// if (tickerId != R.string.ticker_success) { +// pendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(mContext, +// NotesPreferenceActivity.class), 0); +// + // } else { + // pendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(mContext, +// NotesListActivity.class), 0); +// } +// notification.setLatestEventInfo(mContext, mContext.getString(R.string.app_name), content, +// pendingIntent); +// mNotifiManager.notify(GTASK_SYNC_NOTIFICATION_ID, notification); +// } +private void showNotification(int tickerId, String content) { + PendingIntent pendingIntent; + if (tickerId != R.string.ticker_success) { + pendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(mContext, + NotesPreferenceActivity.class), PendingIntent.FLAG_IMMUTABLE); + } else { + pendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(mContext, + NotesListActivity.class), PendingIntent.FLAG_IMMUTABLE); + } + Notification.Builder builder = new Notification.Builder(mContext) + .setAutoCancel(true) + .setContentTitle(mContext.getString(R.string.app_name)) + .setContentText(content) + .setContentIntent(pendingIntent) + .setWhen(System.currentTimeMillis()) + .setOngoing(true); + Notification notification=builder.getNotification(); + mNotifiManager.notify(GTASK_SYNC_NOTIFICATION_ID, notification); +} + + /** + * 在后台线程执行GTask同步操作 + * + * @param unused 未使用的参数 + * @return 同步结果状态码 + */ + @Override + protected Integer doInBackground(Void... unused) { + publishProgess(mContext.getString(R.string.sync_progress_login, NotesPreferenceActivity + .getSyncAccountName(mContext))); + return mTaskManager.sync(mContext, this); + } + + /** + * 当后台任务发布进度更新时调用 + * + * @param progress 进度消息数组 + */ + @Override + protected void onProgressUpdate(String... progress) { + showNotification(R.string.ticker_syncing, progress[0]); + if (mContext instanceof GTaskSyncService) { + ((GTaskSyncService) mContext).sendBroadcast(progress[0]); + } + } + + /** + * 当后台任务执行完成后调用 + * + * @param result 同步结果状态码 + */ + @Override + protected void onPostExecute(Integer result) { + if (result == GTaskManager.STATE_SUCCESS) { + showNotification(R.string.ticker_success, mContext.getString( + R.string.success_sync_account, mTaskManager.getSyncAccount())); + NotesPreferenceActivity.setLastSyncTime(mContext, System.currentTimeMillis()); + } else if (result == GTaskManager.STATE_NETWORK_ERROR) { + showNotification(R.string.ticker_fail, mContext.getString(R.string.error_sync_network)); + } else if (result == GTaskManager.STATE_INTERNAL_ERROR) { + showNotification(R.string.ticker_fail, mContext.getString(R.string.error_sync_internal)); + } else if (result == GTaskManager.STATE_SYNC_CANCELLED) { + showNotification(R.string.ticker_cancel, mContext + .getString(R.string.error_sync_cancelled)); + } + if (mOnCompleteListener != null) { + new Thread(new Runnable() { + + public void run() { + mOnCompleteListener.onComplete(); + } + }).start(); + } + } +} diff --git a/src/main/java/net/micode/notes/gtask/remote/GTaskClient.java b/src/main/java/net/micode/notes/gtask/remote/GTaskClient.java new file mode 100644 index 0000000..776a6a5 --- /dev/null +++ b/src/main/java/net/micode/notes/gtask/remote/GTaskClient.java @@ -0,0 +1,782 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.remote; + +import android.accounts.Account; +import android.accounts.AccountManager; +import android.accounts.AccountManagerFuture; +import android.app.Activity; +import android.os.Bundle; +import android.text.TextUtils; +import android.util.Log; + +import net.micode.notes.gtask.data.Node; +import net.micode.notes.gtask.data.Task; +import net.micode.notes.gtask.data.TaskList; +import net.micode.notes.gtask.exception.ActionFailureException; +import net.micode.notes.gtask.exception.NetworkFailureException; +import net.micode.notes.tool.GTaskStringUtils; +import net.micode.notes.ui.NotesPreferenceActivity; + +import org.apache.http.HttpEntity; +import org.apache.http.HttpResponse; +import org.apache.http.client.ClientProtocolException; +import org.apache.http.client.entity.UrlEncodedFormEntity; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.cookie.Cookie; +import org.apache.http.impl.client.BasicCookieStore; +import org.apache.http.impl.client.DefaultHttpClient; +import org.apache.http.message.BasicNameValuePair; +import org.apache.http.params.BasicHttpParams; +import org.apache.http.params.HttpConnectionParams; +import org.apache.http.params.HttpParams; +import org.apache.http.params.HttpProtocolParams; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.LinkedList; +import java.util.List; +import java.util.zip.GZIPInputStream; +import java.util.zip.Inflater; +import java.util.zip.InflaterInputStream; + + +/** + * GTaskClient是GTask同步模块的核心客户端类,负责与Google Tasks服务器进行交互 + *

+ * 该类提供了以下主要功能: + * 1. Google账号登录和认证 + * 2. 创建、更新、删除任务 + * 3. 创建、更新、删除任务列表 + * 4. 移动任务(在同一任务列表内或不同任务列表之间) + * 5. 获取任务列表和任务数据 + *

+ *

+ * 该类采用单例模式设计,确保应用中只有一个GTask客户端实例 + *

+ */ +public class GTaskClient { + /** + * 日志标签 + */ + private static final String TAG = GTaskClient.class.getSimpleName(); + + /** + * Google Tasks基础URL + */ + private static final String GTASK_URL = "https://mail.google.com/tasks/"; + + /** + * Google Tasks GET请求URL + */ + private static final String GTASK_GET_URL = "https://mail.google.com/tasks/ig"; + + /** + * Google Tasks POST请求URL + */ + private static final String GTASK_POST_URL = "https://mail.google.com/tasks/r/ig"; + + /** + * GTaskClient单例实例 + */ + private static GTaskClient mInstance = null; + + /** + * HTTP客户端实例,用于与Google Tasks服务器进行通信 + */ + private DefaultHttpClient mHttpClient; + + /** + * 当前使用的GET请求URL + */ + private String mGetUrl; + + /** + * 当前使用的POST请求URL + */ + private String mPostUrl; + + /** + * Google Tasks客户端版本号 + */ + private long mClientVersion; + + /** + * 登录状态标志 + */ + private boolean mLoggedin; + + /** + * 上次登录时间 + */ + private long mLastLoginTime; + + /** + * 操作ID,用于标识不同的同步操作 + */ + private int mActionId; + + /** + * 当前同步的Google账号 + */ + private Account mAccount; + + /** + * 更新操作数组,用于批量提交更新操作 + */ + private JSONArray mUpdateArray; + + /** + * GTaskClient构造函数(私有,用于单例模式) + */ + private GTaskClient() { + mHttpClient = null; + mGetUrl = GTASK_GET_URL; + mPostUrl = GTASK_POST_URL; + mClientVersion = -1; + mLoggedin = false; + mLastLoginTime = 0; + mActionId = 1; + mAccount = null; + mUpdateArray = null; + } + + /** + * 获取GTaskClient单例实例 + * + * @return GTaskClient单例实例 + */ + public static synchronized GTaskClient getInstance() { + if (mInstance == null) { + mInstance = new GTaskClient(); + } + return mInstance; + } + + /** + * 登录Google Tasks账号 + *

+ * 如果距离上次登录时间不超过5分钟,则不需要重新登录 + * 如果账号发生变化,需要重新登录 + *

+ * + * @param activity 调用登录的Activity + * @return 登录成功返回true,失败返回false + */ + public boolean login(Activity activity) { + // we suppose that the cookie would expire after 5 minutes + // then we need to re-login + final long interval = 1000 * 60 * 5; + if (mLastLoginTime + interval < System.currentTimeMillis()) { + mLoggedin = false; + } + + // need to re-login after account switch + if (mLoggedin + && !TextUtils.equals(getSyncAccount().name, NotesPreferenceActivity + .getSyncAccountName(activity))) { + mLoggedin = false; + } + + if (mLoggedin) { + Log.d(TAG, "already logged in"); + return true; + } + + mLastLoginTime = System.currentTimeMillis(); + String authToken = loginGoogleAccount(activity, false); + if (authToken == null) { + Log.e(TAG, "login google account failed"); + return false; + } + + // login with custom domain if necessary + if (!(mAccount.name.toLowerCase().endsWith("gmail.com") || mAccount.name.toLowerCase() + .endsWith("googlemail.com"))) { + StringBuilder url = new StringBuilder(GTASK_URL).append("a/"); + int index = mAccount.name.indexOf('@') + 1; + String suffix = mAccount.name.substring(index); + url.append(suffix + "/"); + mGetUrl = url.toString() + "ig"; + mPostUrl = url.toString() + "r/ig"; + + if (tryToLoginGtask(activity, authToken)) { + mLoggedin = true; + } + } + + // try to login with google official url + if (!mLoggedin) { + mGetUrl = GTASK_GET_URL; + mPostUrl = GTASK_POST_URL; + if (!tryToLoginGtask(activity, authToken)) { + return false; + } + } + + mLoggedin = true; + return true; + } + + /** + * 登录Google账号,获取认证令牌 + * + * @param activity 调用登录的Activity + * @param invalidateToken 是否使当前令牌失效 + * @return 认证令牌字符串,失败返回null + */ + private String loginGoogleAccount(Activity activity, boolean invalidateToken) { + String authToken; + AccountManager accountManager = AccountManager.get(activity); + Account[] accounts = accountManager.getAccountsByType("com.google"); + + if (accounts.length == 0) { + Log.e(TAG, "there is no available google account"); + return null; + } + + String accountName = NotesPreferenceActivity.getSyncAccountName(activity); + Account account = null; + for (Account a : accounts) { + if (a.name.equals(accountName)) { + account = a; + break; + } + } + if (account != null) { + mAccount = account; + } else { + Log.e(TAG, "unable to get an account with the same name in the settings"); + return null; + } + + // get the token now + AccountManagerFuture accountManagerFuture = accountManager.getAuthToken(account, + "goanna_mobile", null, activity, null, null); + try { + Bundle authTokenBundle = accountManagerFuture.getResult(); + authToken = authTokenBundle.getString(AccountManager.KEY_AUTHTOKEN); + if (invalidateToken) { + accountManager.invalidateAuthToken("com.google", authToken); + loginGoogleAccount(activity, false); + } + } catch (Exception e) { + Log.e(TAG, "get auth token failed"); + authToken = null; + } + + return authToken; + } + + /** + * 尝试登录Google Tasks + *

+ * 如果登录失败,会尝试使令牌失效并重新登录 + *

+ * + * @param activity 调用登录的Activity + * @param authToken 认证令牌 + * @return 登录成功返回true,失败返回false + */ + private boolean tryToLoginGtask(Activity activity, String authToken) { + if (!loginGtask(authToken)) { + // maybe the auth token is out of date, now let's invalidate the + // token and try again + authToken = loginGoogleAccount(activity, true); + if (authToken == null) { + Log.e(TAG, "login google account failed"); + return false; + } + + if (!loginGtask(authToken)) { + Log.e(TAG, "login gtask failed"); + return false; + } + } + return true; + } + + /** + * 使用认证令牌登录Google Tasks + * + * @param authToken 认证令牌 + * @return 登录成功返回true,失败返回false + */ + private boolean loginGtask(String authToken) { + int timeoutConnection = 10000; + int timeoutSocket = 15000; + HttpParams httpParameters = new BasicHttpParams(); + HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection); + HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket); + mHttpClient = new DefaultHttpClient(httpParameters); + BasicCookieStore localBasicCookieStore = new BasicCookieStore(); + mHttpClient.setCookieStore(localBasicCookieStore); + HttpProtocolParams.setUseExpectContinue(mHttpClient.getParams(), false); + + // login gtask + try { + String loginUrl = mGetUrl + "?auth=" + authToken; + HttpGet httpGet = new HttpGet(loginUrl); + HttpResponse response = null; + response = mHttpClient.execute(httpGet); + + // get the cookie now + List cookies = mHttpClient.getCookieStore().getCookies(); + boolean hasAuthCookie = false; + for (Cookie cookie : cookies) { + if (cookie.getName().contains("GTL")) { + hasAuthCookie = true; + } + } + if (!hasAuthCookie) { + Log.w(TAG, "it seems that there is no auth cookie"); + } + + // get the client version + String resString = getResponseContent(response.getEntity()); + String jsBegin = "_setup("; + String jsEnd = ")}"; + int begin = resString.indexOf(jsBegin); + int end = resString.lastIndexOf(jsEnd); + String jsString = null; + if (begin != -1 && end != -1 && begin < end) { + jsString = resString.substring(begin + jsBegin.length(), end); + } + JSONObject js = new JSONObject(jsString); + mClientVersion = js.getLong("v"); + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + return false; + } catch (Exception e) { + // simply catch all exceptions + Log.e(TAG, "httpget gtask_url failed"); + return false; + } + + return true; + } + + /** + * 获取下一个操作ID + * + * @return 操作ID + */ + private int getActionId() { + return mActionId++; + } + + /** + * 创建HTTP POST请求对象 + * + * @return HttpPost请求对象 + */ + private HttpPost createHttpPost() { + HttpPost httpPost = new HttpPost(mPostUrl); + httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); + httpPost.setHeader("AT", "1"); + return httpPost; + } + + /** + * 获取HTTP响应内容 + *

+ * 支持gzip和deflate压缩格式 + *

+ * + * @param entity HTTP响应实体 + * @return 响应内容字符串 + * @throws IOException 如果读取响应内容失败 + */ + private String getResponseContent(HttpEntity entity) throws IOException { + String contentEncoding = null; + if (entity.getContentEncoding() != null) { + contentEncoding = entity.getContentEncoding().getValue(); + Log.d(TAG, "encoding: " + contentEncoding); + } + + InputStream input = entity.getContent(); + if (contentEncoding != null && contentEncoding.equalsIgnoreCase("gzip")) { + input = new GZIPInputStream(entity.getContent()); + } else if (contentEncoding != null && contentEncoding.equalsIgnoreCase("deflate")) { + Inflater inflater = new Inflater(true); + input = new InflaterInputStream(entity.getContent(), inflater); + } + + try { + InputStreamReader isr = new InputStreamReader(input); + BufferedReader br = new BufferedReader(isr); + StringBuilder sb = new StringBuilder(); + + while (true) { + String buff = br.readLine(); + if (buff == null) { + return sb.toString(); + } + sb = sb.append(buff); + } + } finally { + input.close(); + } + } + + /** + * 发送POST请求到Google Tasks服务器 + * + * @param js 请求内容的JSON对象 + * @return 响应内容的JSON对象 + * @throws NetworkFailureException 如果网络请求失败 + * @throws ActionFailureException 如果请求格式或响应解析失败 + */ + private JSONObject postRequest(JSONObject js) throws NetworkFailureException { + if (!mLoggedin) { + Log.e(TAG, "please login first"); + throw new ActionFailureException("not logged in"); + } + + HttpPost httpPost = createHttpPost(); + try { + LinkedList list = new LinkedList(); + list.add(new BasicNameValuePair("r", js.toString())); + UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list, "UTF-8"); + httpPost.setEntity(entity); + + // execute the post + HttpResponse response = mHttpClient.execute(httpPost); + String jsString = getResponseContent(response.getEntity()); + return new JSONObject(jsString); + + } catch (ClientProtocolException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new NetworkFailureException("postRequest failed"); + } catch (IOException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new NetworkFailureException("postRequest failed"); + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("unable to convert response content to jsonobject"); + } catch (Exception e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("error occurs when posting request"); + } + } + + /** + * 创建新任务 + * + * @param task 要创建的任务对象 + * @throws NetworkFailureException 如果网络请求失败 + * @throws ActionFailureException 如果任务创建失败 + */ + public void createTask(Task task) throws NetworkFailureException { + commitUpdate(); + try { + JSONObject jsPost = new JSONObject(); + JSONArray actionList = new JSONArray(); + + // action_list + actionList.put(task.getCreateAction(getActionId())); + jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, actionList); + + // client_version + jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion); + + // post + JSONObject jsResponse = postRequest(jsPost); + JSONObject jsResult = (JSONObject) jsResponse.getJSONArray( + GTaskStringUtils.GTASK_JSON_RESULTS).get(0); + task.setGid(jsResult.getString(GTaskStringUtils.GTASK_JSON_NEW_ID)); + + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("create task: handing jsonobject failed"); + } + } + + /** + * 创建新任务列表 + * + * @param tasklist 要创建的任务列表对象 + * @throws NetworkFailureException 如果网络请求失败 + * @throws ActionFailureException 如果任务列表创建失败 + */ + public void createTaskList(TaskList tasklist) throws NetworkFailureException { + commitUpdate(); + try { + JSONObject jsPost = new JSONObject(); + JSONArray actionList = new JSONArray(); + + // action_list + actionList.put(tasklist.getCreateAction(getActionId())); + jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, actionList); + + // client version + jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion); + + // post + JSONObject jsResponse = postRequest(jsPost); + JSONObject jsResult = (JSONObject) jsResponse.getJSONArray( + GTaskStringUtils.GTASK_JSON_RESULTS).get(0); + tasklist.setGid(jsResult.getString(GTaskStringUtils.GTASK_JSON_NEW_ID)); + + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("create tasklist: handing jsonobject failed"); + } + } + + /** + * 提交批量更新操作 + * + * @throws NetworkFailureException 如果网络请求失败 + * @throws ActionFailureException 如果更新提交失败 + */ + public void commitUpdate() throws NetworkFailureException { + if (mUpdateArray != null) { + try { + JSONObject jsPost = new JSONObject(); + + // action_list + jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, mUpdateArray); + + // client_version + jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion); + + postRequest(jsPost); + mUpdateArray = null; + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("commit update: handing jsonobject failed"); + } + } + } + + /** + * 添加节点更新操作到批量更新数组 + *

+ * 如果更新数组中的操作数量超过10个,则立即提交更新 + *

+ * + * @param node 要更新的节点对象 + * @throws NetworkFailureException 如果网络请求失败 + * @throws ActionFailureException 如果更新操作添加失败 + */ + public void addUpdateNode(Node node) throws NetworkFailureException { + if (node != null) { + // too many update items may result in an error + // set max to 10 items + if (mUpdateArray != null && mUpdateArray.length() > 10) { + commitUpdate(); + } + + if (mUpdateArray == null) + mUpdateArray = new JSONArray(); + mUpdateArray.put(node.getUpdateAction(getActionId())); + } + } + + /** + * 移动任务 + *

+ * 支持在同一任务列表内移动或在不同任务列表之间移动 + *

+ * + * @param task 要移动的任务 + * @param preParent 任务原来的父任务列表 + * @param curParent 任务现在的父任务列表 + * @throws NetworkFailureException 如果网络请求失败 + * @throws ActionFailureException 如果任务移动失败 + */ + public void moveTask(Task task, TaskList preParent, TaskList curParent) + throws NetworkFailureException { + commitUpdate(); + try { + JSONObject jsPost = new JSONObject(); + JSONArray actionList = new JSONArray(); + JSONObject action = new JSONObject(); + + // action_list + action.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE, + GTaskStringUtils.GTASK_JSON_ACTION_TYPE_MOVE); + action.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, getActionId()); + action.put(GTaskStringUtils.GTASK_JSON_ID, task.getGid()); + if (preParent == curParent && task.getPriorSibling() != null) { + // put prioring_sibing_id only if moving within the tasklist and + // it is not the first one + action.put(GTaskStringUtils.GTASK_JSON_PRIOR_SIBLING_ID, task.getPriorSibling()); + } + action.put(GTaskStringUtils.GTASK_JSON_SOURCE_LIST, preParent.getGid()); + action.put(GTaskStringUtils.GTASK_JSON_DEST_PARENT, curParent.getGid()); + if (preParent != curParent) { + // put the dest_list only if moving between tasklists + action.put(GTaskStringUtils.GTASK_JSON_DEST_LIST, curParent.getGid()); + } + actionList.put(action); + jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, actionList); + + // client_version + jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion); + + postRequest(jsPost); + + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("move task: handing jsonobject failed"); + } + } + + /** + * 删除节点(任务或任务列表) + * + * @param node 要删除的节点对象 + * @throws NetworkFailureException 如果网络请求失败 + * @throws ActionFailureException 如果节点删除失败 + */ + public void deleteNode(Node node) throws NetworkFailureException { + commitUpdate(); + try { + JSONObject jsPost = new JSONObject(); + JSONArray actionList = new JSONArray(); + + // action_list + node.setDeleted(true); + actionList.put(node.getUpdateAction(getActionId())); + jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, actionList); + + // client_version + jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion); + + postRequest(jsPost); + mUpdateArray = null; + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("delete node: handing jsonobject failed"); + } + } + + /** + * 获取所有任务列表 + * + * @return 包含所有任务列表的JSON数组 + * @throws NetworkFailureException 如果网络请求失败 + * @throws ActionFailureException 如果获取任务列表失败 + */ + public JSONArray getTaskLists() throws NetworkFailureException { + if (!mLoggedin) { + Log.e(TAG, "please login first"); + throw new ActionFailureException("not logged in"); + } + + try { + HttpGet httpGet = new HttpGet(mGetUrl); + HttpResponse response = null; + response = mHttpClient.execute(httpGet); + + // get the task list + String resString = getResponseContent(response.getEntity()); + String jsBegin = "_setup("; + String jsEnd = ")}"; + int begin = resString.indexOf(jsBegin); + int end = resString.lastIndexOf(jsEnd); + String jsString = null; + if (begin != -1 && end != -1 && begin < end) { + jsString = resString.substring(begin + jsBegin.length(), end); + } + JSONObject js = new JSONObject(jsString); + return js.getJSONObject("t").getJSONArray(GTaskStringUtils.GTASK_JSON_LISTS); + } catch (ClientProtocolException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new NetworkFailureException("gettasklists: httpget failed"); + } catch (IOException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new NetworkFailureException("gettasklists: httpget failed"); + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("get task lists: handing jasonobject failed"); + } + } + + /** + * 获取指定任务列表中的所有任务 + * + * @param listGid 任务列表的Google ID + * @return 包含任务列表中所有任务的JSON数组 + * @throws NetworkFailureException 如果网络请求失败 + * @throws ActionFailureException 如果获取任务失败 + */ + public JSONArray getTaskList(String listGid) throws NetworkFailureException { + commitUpdate(); + try { + JSONObject jsPost = new JSONObject(); + JSONArray actionList = new JSONArray(); + JSONObject action = new JSONObject(); + + // action_list + action.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE, + GTaskStringUtils.GTASK_JSON_ACTION_TYPE_GETALL); + action.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, getActionId()); + action.put(GTaskStringUtils.GTASK_JSON_LIST_ID, listGid); + action.put(GTaskStringUtils.GTASK_JSON_GET_DELETED, false); + actionList.put(action); + jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, actionList); + + // client_version + jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion); + + JSONObject jsResponse = postRequest(jsPost); + return jsResponse.getJSONArray(GTaskStringUtils.GTASK_JSON_TASKS); + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("get task list: handing jsonobject failed"); + } + } + + /** + * 获取当前同步的Google账号 + * + * @return 当前同步的Google账号 + */ + public Account getSyncAccount() { + return mAccount; + } + + /** + * 重置更新数组 + */ + public void resetUpdateArray() { + mUpdateArray = null; + } +} diff --git a/src/main/java/net/micode/notes/gtask/remote/GTaskManager.java b/src/main/java/net/micode/notes/gtask/remote/GTaskManager.java new file mode 100644 index 0000000..09c7b79 --- /dev/null +++ b/src/main/java/net/micode/notes/gtask/remote/GTaskManager.java @@ -0,0 +1,944 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.remote; + +import android.app.Activity; +import android.content.ContentResolver; +import android.content.ContentUris; +import android.content.ContentValues; +import android.content.Context; +import android.database.Cursor; +import android.util.Log; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.DataColumns; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.gtask.data.MetaData; +import net.micode.notes.gtask.data.Node; +import net.micode.notes.gtask.data.SqlNote; +import net.micode.notes.gtask.data.Task; +import net.micode.notes.gtask.data.TaskList; +import net.micode.notes.gtask.exception.ActionFailureException; +import net.micode.notes.gtask.exception.NetworkFailureException; +import net.micode.notes.tool.DataUtils; +import net.micode.notes.tool.GTaskStringUtils; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Map; + + +/** + * GTaskManager是GTask同步模块的核心管理类,负责协调本地笔记与Google Tasks服务器之间的同步 + *

+ * 该类采用单例模式,提供以下主要功能: + * 1. 管理同步状态和进度 + * 2. 初始化远程任务列表 + * 3. 同步本地和远程内容(文件夹和笔记) + * 4. 处理同步冲突和错误 + *

+ */ +public class GTaskManager { + private static final String TAG = GTaskManager.class.getSimpleName(); + + /** + * 同步成功状态 + */ + public static final int STATE_SUCCESS = 0; + + /** + * 网络错误状态 + */ + public static final int STATE_NETWORK_ERROR = 1; + + /** + * 内部错误状态 + */ + public static final int STATE_INTERNAL_ERROR = 2; + + /** + * 同步进行中状态 + */ + public static final int STATE_SYNC_IN_PROGRESS = 3; + + /** + * 同步已取消状态 + */ + public static final int STATE_SYNC_CANCELLED = 4; + + /** + * GTaskManager的单例实例 + */ + private static GTaskManager mInstance = null; + + /** + * 用于Google登录的Activity实例 + */ + private Activity mActivity; + + /** + * 应用上下文 + */ + private Context mContext; + + /** + * 内容解析器,用于访问本地数据库 + */ + private ContentResolver mContentResolver; + + /** + * 同步状态标志,表示是否正在进行同步 + */ + private boolean mSyncing; + + /** + * 取消标志,表示同步是否已被取消 + */ + private boolean mCancelled; + + /** + * 远程任务列表的HashMap,键为任务列表的GID + */ + private HashMap mGTaskListHashMap; + + /** + * 所有远程任务的HashMap,键为任务的GID + */ + private HashMap mGTaskHashMap; + + /** + * 元数据的HashMap,键为相关节点的GID + */ + private HashMap mMetaHashMap; + + /** + * 存储元数据的任务列表 + */ + private TaskList mMetaList; + + /** + * 本地已删除笔记的ID集合 + */ + private HashSet mLocalDeleteIdMap; + + /** + * 远程GID到本地NID的映射 + */ + private HashMap mGidToNid; + + /** + * 本地NID到远程GID的映射 + */ + private HashMap mNidToGid; + + /** + * 私有构造方法,初始化GTaskManager的内部状态和集合 + */ + private GTaskManager() { + mSyncing = false; + mCancelled = false; + mGTaskListHashMap = new HashMap(); + mGTaskHashMap = new HashMap(); + mMetaHashMap = new HashMap(); + mMetaList = null; + mLocalDeleteIdMap = new HashSet(); + mGidToNid = new HashMap(); + mNidToGid = new HashMap(); + } + + /** + * 获取GTaskManager的单例实例 + * @return GTaskManager的单例实例 + */ + public static synchronized GTaskManager getInstance() { + if (mInstance == null) { + mInstance = new GTaskManager(); + } + return mInstance; + } + + /** + * 设置用于Google登录的Activity上下文 + * @param activity 用于获取认证令牌的Activity实例 + */ + public synchronized void setActivityContext(Activity activity) { + mActivity = activity; + } + + /** + * 执行GTask同步操作,协调本地笔记与Google Tasks服务器之间的数据同步 + * @param context 应用上下文 + * @param asyncTask 用于发布同步进度的异步任务实例 + * @return 同步结果状态: + * - {@link #STATE_SUCCESS}:同步成功 + * - {@link #STATE_NETWORK_ERROR}:网络错误 + * - {@link #STATE_INTERNAL_ERROR}:内部错误 + * - {@link #STATE_SYNC_IN_PROGRESS}:同步已在进行中 + * - {@link #STATE_SYNC_CANCELLED}:同步被取消 + */ + public int sync(Context context, GTaskASyncTask asyncTask) { + if (mSyncing) { + Log.d(TAG, "Sync is in progress"); + return STATE_SYNC_IN_PROGRESS; + } + mContext = context; + mContentResolver = mContext.getContentResolver(); + mSyncing = true; + mCancelled = false; + mGTaskListHashMap.clear(); + mGTaskHashMap.clear(); + mMetaHashMap.clear(); + mLocalDeleteIdMap.clear(); + mGidToNid.clear(); + mNidToGid.clear(); + + try { + GTaskClient client = GTaskClient.getInstance(); + client.resetUpdateArray(); + + // login google task + if (!mCancelled) { + if (!client.login(mActivity)) { + throw new NetworkFailureException("login google task failed"); + } + } + + // get the task list from google + asyncTask.publishProgess(mContext.getString(R.string.sync_progress_init_list)); + initGTaskList(); + + // do content sync work + asyncTask.publishProgess(mContext.getString(R.string.sync_progress_syncing)); + syncContent(); + } catch (NetworkFailureException e) { + Log.e(TAG, e.toString()); + return STATE_NETWORK_ERROR; + } catch (ActionFailureException e) { + Log.e(TAG, e.toString()); + return STATE_INTERNAL_ERROR; + } catch (Exception e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + return STATE_INTERNAL_ERROR; + } finally { + mGTaskListHashMap.clear(); + mGTaskHashMap.clear(); + mMetaHashMap.clear(); + mLocalDeleteIdMap.clear(); + mGidToNid.clear(); + mNidToGid.clear(); + mSyncing = false; + } + + return mCancelled ? STATE_SYNC_CANCELLED : STATE_SUCCESS; + } + + /** + * 初始化远程任务列表,从Google Tasks服务器获取所有任务列表和任务 + * @throws NetworkFailureException 网络操作失败时抛出 + */ + private void initGTaskList() throws NetworkFailureException { + if (mCancelled) + return; + GTaskClient client = GTaskClient.getInstance(); + try { + JSONArray jsTaskLists = client.getTaskLists(); + + // init meta list first + mMetaList = null; + for (int i = 0; i < jsTaskLists.length(); i++) { + JSONObject object = jsTaskLists.getJSONObject(i); + String gid = object.getString(GTaskStringUtils.GTASK_JSON_ID); + String name = object.getString(GTaskStringUtils.GTASK_JSON_NAME); + + if (name + .equals(GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_META)) { + mMetaList = new TaskList(); + mMetaList.setContentByRemoteJSON(object); + + // load meta data + JSONArray jsMetas = client.getTaskList(gid); + for (int j = 0; j < jsMetas.length(); j++) { + object = (JSONObject) jsMetas.getJSONObject(j); + MetaData metaData = new MetaData(); + metaData.setContentByRemoteJSON(object); + if (metaData.isWorthSaving()) { + mMetaList.addChildTask(metaData); + if (metaData.getGid() != null) { + mMetaHashMap.put(metaData.getRelatedGid(), metaData); + } + } + } + } + } + + // create meta list if not existed + if (mMetaList == null) { + mMetaList = new TaskList(); + mMetaList.setName(GTaskStringUtils.MIUI_FOLDER_PREFFIX + + GTaskStringUtils.FOLDER_META); + GTaskClient.getInstance().createTaskList(mMetaList); + } + + // init task list + for (int i = 0; i < jsTaskLists.length(); i++) { + JSONObject object = jsTaskLists.getJSONObject(i); + String gid = object.getString(GTaskStringUtils.GTASK_JSON_ID); + String name = object.getString(GTaskStringUtils.GTASK_JSON_NAME); + + if (name.startsWith(GTaskStringUtils.MIUI_FOLDER_PREFFIX) + && !name.equals(GTaskStringUtils.MIUI_FOLDER_PREFFIX + + GTaskStringUtils.FOLDER_META)) { + TaskList tasklist = new TaskList(); + tasklist.setContentByRemoteJSON(object); + mGTaskListHashMap.put(gid, tasklist); + mGTaskHashMap.put(gid, tasklist); + + // load tasks + JSONArray jsTasks = client.getTaskList(gid); + for (int j = 0; j < jsTasks.length(); j++) { + object = (JSONObject) jsTasks.getJSONObject(j); + gid = object.getString(GTaskStringUtils.GTASK_JSON_ID); + Task task = new Task(); + task.setContentByRemoteJSON(object); + if (task.isWorthSaving()) { + task.setMetaInfo(mMetaHashMap.get(gid)); + tasklist.addChildTask(task); + mGTaskHashMap.put(gid, task); + } + } + } + } + } catch (JSONException e) { + Log.e(TAG, e.toString()); + e.printStackTrace(); + throw new ActionFailureException("initGTaskList: handing JSONObject failed"); + } + } + + /** + * 同步本地和远程内容,处理本地删除、文件夹和笔记的同步 + * @throws NetworkFailureException 网络操作失败时抛出 + */ + private void syncContent() throws NetworkFailureException { + int syncType; + Cursor c = null; + String gid; + Node node; + + mLocalDeleteIdMap.clear(); + + if (mCancelled) { + return; + } + + // for local deleted note + try { + c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE, + "(type<>? AND parent_id=?)", new String[] { + String.valueOf(Notes.TYPE_SYSTEM), String.valueOf(Notes.ID_TRASH_FOLER) + }, null); + if (c != null) { + while (c.moveToNext()) { + gid = c.getString(SqlNote.GTASK_ID_COLUMN); + node = mGTaskHashMap.get(gid); + if (node != null) { + mGTaskHashMap.remove(gid); + doContentSync(Node.SYNC_ACTION_DEL_REMOTE, node, c); + } + + mLocalDeleteIdMap.add(c.getLong(SqlNote.ID_COLUMN)); + } + } else { + Log.w(TAG, "failed to query trash folder"); + } + } finally { + if (c != null) { + c.close(); + c = null; + } + } + + // sync folder first + syncFolder(); + + // for note existing in database + try { + c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE, + "(type=? AND parent_id<>?)", new String[] { + String.valueOf(Notes.TYPE_NOTE), String.valueOf(Notes.ID_TRASH_FOLER) + }, NoteColumns.TYPE + " DESC"); + if (c != null) { + while (c.moveToNext()) { + gid = c.getString(SqlNote.GTASK_ID_COLUMN); + node = mGTaskHashMap.get(gid); + if (node != null) { + mGTaskHashMap.remove(gid); + mGidToNid.put(gid, c.getLong(SqlNote.ID_COLUMN)); + mNidToGid.put(c.getLong(SqlNote.ID_COLUMN), gid); + syncType = node.getSyncAction(c); + } else { + if (c.getString(SqlNote.GTASK_ID_COLUMN).trim().length() == 0) { + // local add + syncType = Node.SYNC_ACTION_ADD_REMOTE; + } else { + // remote delete + syncType = Node.SYNC_ACTION_DEL_LOCAL; + } + } + doContentSync(syncType, node, c); + } + } else { + Log.w(TAG, "failed to query existing note in database"); + } + + } finally { + if (c != null) { + c.close(); + c = null; + } + } + + // go through remaining items + Iterator> iter = mGTaskHashMap.entrySet().iterator(); + while (iter.hasNext()) { + Map.Entry entry = iter.next(); + node = entry.getValue(); + doContentSync(Node.SYNC_ACTION_ADD_LOCAL, node, null); + } + + // mCancelled can be set by another thread, so we neet to check one by + // one + // clear local delete table + if (!mCancelled) { + if (!DataUtils.batchDeleteNotes(mContentResolver, mLocalDeleteIdMap)) { + throw new ActionFailureException("failed to batch-delete local deleted notes"); + } + } + + // refresh local sync id + if (!mCancelled) { + GTaskClient.getInstance().commitUpdate(); + refreshLocalSyncId(); + } + + } + + /** + * 同步文件夹,包括根文件夹、通话记录文件夹和普通文件夹 + * @throws NetworkFailureException 网络操作失败时抛出 + */ + private void syncFolder() throws NetworkFailureException { + Cursor c = null; + String gid; + Node node; + int syncType; + + if (mCancelled) { + return; + } + + // for root folder + try { + c = mContentResolver.query(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, + Notes.ID_ROOT_FOLDER), SqlNote.PROJECTION_NOTE, null, null, null); + if (c != null) { + c.moveToNext(); + gid = c.getString(SqlNote.GTASK_ID_COLUMN); + node = mGTaskHashMap.get(gid); + if (node != null) { + mGTaskHashMap.remove(gid); + mGidToNid.put(gid, (long) Notes.ID_ROOT_FOLDER); + mNidToGid.put((long) Notes.ID_ROOT_FOLDER, gid); + // for system folder, only update remote name if necessary + if (!node.getName().equals( + GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_DEFAULT)) + doContentSync(Node.SYNC_ACTION_UPDATE_REMOTE, node, c); + } else { + doContentSync(Node.SYNC_ACTION_ADD_REMOTE, node, c); + } + } else { + Log.w(TAG, "failed to query root folder"); + } + } finally { + if (c != null) { + c.close(); + c = null; + } + } + + // for call-note folder + try { + c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE, "(_id=?)", + new String[] { + String.valueOf(Notes.ID_CALL_RECORD_FOLDER) + }, null); + if (c != null) { + if (c.moveToNext()) { + gid = c.getString(SqlNote.GTASK_ID_COLUMN); + node = mGTaskHashMap.get(gid); + if (node != null) { + mGTaskHashMap.remove(gid); + mGidToNid.put(gid, (long) Notes.ID_CALL_RECORD_FOLDER); + mNidToGid.put((long) Notes.ID_CALL_RECORD_FOLDER, gid); + // for system folder, only update remote name if + // necessary + if (!node.getName().equals( + GTaskStringUtils.MIUI_FOLDER_PREFFIX + + GTaskStringUtils.FOLDER_CALL_NOTE)) + doContentSync(Node.SYNC_ACTION_UPDATE_REMOTE, node, c); + } else { + doContentSync(Node.SYNC_ACTION_ADD_REMOTE, node, c); + } + } + } else { + Log.w(TAG, "failed to query call note folder"); + } + } finally { + if (c != null) { + c.close(); + c = null; + } + } + + // for local existing folders + try { + c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE, + "(type=? AND parent_id<>?)", new String[] { + String.valueOf(Notes.TYPE_FOLDER), String.valueOf(Notes.ID_TRASH_FOLER) + }, NoteColumns.TYPE + " DESC"); + if (c != null) { + while (c.moveToNext()) { + gid = c.getString(SqlNote.GTASK_ID_COLUMN); + node = mGTaskHashMap.get(gid); + if (node != null) { + mGTaskHashMap.remove(gid); + mGidToNid.put(gid, c.getLong(SqlNote.ID_COLUMN)); + mNidToGid.put(c.getLong(SqlNote.ID_COLUMN), gid); + syncType = node.getSyncAction(c); + } else { + if (c.getString(SqlNote.GTASK_ID_COLUMN).trim().length() == 0) { + // local add + syncType = Node.SYNC_ACTION_ADD_REMOTE; + } else { + // remote delete + syncType = Node.SYNC_ACTION_DEL_LOCAL; + } + } + doContentSync(syncType, node, c); + } + } else { + Log.w(TAG, "failed to query existing folder"); + } + } finally { + if (c != null) { + c.close(); + c = null; + } + } + + // for remote add folders + Iterator> iter = mGTaskListHashMap.entrySet().iterator(); + while (iter.hasNext()) { + Map.Entry entry = iter.next(); + gid = entry.getKey(); + node = entry.getValue(); + if (mGTaskHashMap.containsKey(gid)) { + mGTaskHashMap.remove(gid); + doContentSync(Node.SYNC_ACTION_ADD_LOCAL, node, null); + } + } + + if (!mCancelled) + GTaskClient.getInstance().commitUpdate(); + } + + /** + * 根据同步类型执行不同的同步操作 + * @param syncType 同步类型,来自{@link Node}类的同步操作常量 + * @param node 要同步的节点(可以是TaskList或Task) + * @param c 本地数据库游标,用于获取本地数据 + * @throws NetworkFailureException 网络操作失败时抛出 + */ + private void doContentSync(int syncType, Node node, Cursor c) throws NetworkFailureException { + if (mCancelled) { + return; + } + + MetaData meta; + switch (syncType) { + case Node.SYNC_ACTION_ADD_LOCAL: + addLocalNode(node); + break; + case Node.SYNC_ACTION_ADD_REMOTE: + addRemoteNode(node, c); + break; + case Node.SYNC_ACTION_DEL_LOCAL: + meta = mMetaHashMap.get(c.getString(SqlNote.GTASK_ID_COLUMN)); + if (meta != null) { + GTaskClient.getInstance().deleteNode(meta); + } + mLocalDeleteIdMap.add(c.getLong(SqlNote.ID_COLUMN)); + break; + case Node.SYNC_ACTION_DEL_REMOTE: + meta = mMetaHashMap.get(node.getGid()); + if (meta != null) { + GTaskClient.getInstance().deleteNode(meta); + } + GTaskClient.getInstance().deleteNode(node); + break; + case Node.SYNC_ACTION_UPDATE_LOCAL: + updateLocalNode(node, c); + break; + case Node.SYNC_ACTION_UPDATE_REMOTE: + updateRemoteNode(node, c); + break; + case Node.SYNC_ACTION_UPDATE_CONFLICT: + // merging both modifications maybe a good idea + // right now just use local update simply + updateRemoteNode(node, c); + break; + case Node.SYNC_ACTION_NONE: + break; + case Node.SYNC_ACTION_ERROR: + default: + throw new ActionFailureException("unkown sync action type"); + } + } + + /** + * 将远程节点添加到本地数据库 + * @param node 要添加的远程节点 + * @throws NetworkFailureException 网络操作失败时抛出 + */ + private void addLocalNode(Node node) throws NetworkFailureException { + if (mCancelled) { + return; + } + + SqlNote sqlNote; + if (node instanceof TaskList) { + if (node.getName().equals( + GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_DEFAULT)) { + sqlNote = new SqlNote(mContext, Notes.ID_ROOT_FOLDER); + } else if (node.getName().equals( + GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_CALL_NOTE)) { + sqlNote = new SqlNote(mContext, Notes.ID_CALL_RECORD_FOLDER); + } else { + sqlNote = new SqlNote(mContext); + sqlNote.setContent(node.getLocalJSONFromContent()); + sqlNote.setParentId(Notes.ID_ROOT_FOLDER); + } + } else { + sqlNote = new SqlNote(mContext); + JSONObject js = node.getLocalJSONFromContent(); + try { + if (js.has(GTaskStringUtils.META_HEAD_NOTE)) { + JSONObject note = js.getJSONObject(GTaskStringUtils.META_HEAD_NOTE); + if (note.has(NoteColumns.ID)) { + long id = note.getLong(NoteColumns.ID); + if (DataUtils.existInNoteDatabase(mContentResolver, id)) { + // the id is not available, have to create a new one + note.remove(NoteColumns.ID); + } + } + } + + if (js.has(GTaskStringUtils.META_HEAD_DATA)) { + JSONArray dataArray = js.getJSONArray(GTaskStringUtils.META_HEAD_DATA); + for (int i = 0; i < dataArray.length(); i++) { + JSONObject data = dataArray.getJSONObject(i); + if (data.has(DataColumns.ID)) { + long dataId = data.getLong(DataColumns.ID); + if (DataUtils.existInDataDatabase(mContentResolver, dataId)) { + // the data id is not available, have to create + // a new one + data.remove(DataColumns.ID); + } + } + } + + } + } catch (JSONException e) { + Log.w(TAG, e.toString()); + e.printStackTrace(); + } + sqlNote.setContent(js); + + Long parentId = mGidToNid.get(((Task) node).getParent().getGid()); + if (parentId == null) { + Log.e(TAG, "cannot find task's parent id locally"); + throw new ActionFailureException("cannot add local node"); + } + sqlNote.setParentId(parentId.longValue()); + } + + // create the local node + sqlNote.setGtaskId(node.getGid()); + sqlNote.commit(false); + + // update gid-nid mapping + mGidToNid.put(node.getGid(), sqlNote.getId()); + mNidToGid.put(sqlNote.getId(), node.getGid()); + + // update meta + updateRemoteMeta(node.getGid(), sqlNote); + } + + /** + * 更新本地节点,将远程节点的内容更新到本地数据库 + * @param node 要同步的远程节点 + * @param c 本地数据库游标,用于获取本地数据 + * @throws NetworkFailureException 网络操作失败时抛出 + */ + private void updateLocalNode(Node node, Cursor c) throws NetworkFailureException { + if (mCancelled) { + return; + } + + SqlNote sqlNote; + // update the note locally + sqlNote = new SqlNote(mContext, c); + sqlNote.setContent(node.getLocalJSONFromContent()); + + Long parentId = (node instanceof Task) ? mGidToNid.get(((Task) node).getParent().getGid()) + : new Long(Notes.ID_ROOT_FOLDER); + if (parentId == null) { + Log.e(TAG, "cannot find task's parent id locally"); + throw new ActionFailureException("cannot update local node"); + } + sqlNote.setParentId(parentId.longValue()); + sqlNote.commit(true); + + // update meta info + updateRemoteMeta(node.getGid(), sqlNote); + } + + /** + * 将本地节点添加到远程服务器 + * @param node 要同步的远程节点(可以为null,表示创建新节点) + * @param c 本地数据库游标,用于获取本地数据 + * @throws NetworkFailureException 网络操作失败时抛出 + */ + private void addRemoteNode(Node node, Cursor c) throws NetworkFailureException { + if (mCancelled) { + return; + } + + SqlNote sqlNote = new SqlNote(mContext, c); + Node n; + + // update remotely + if (sqlNote.isNoteType()) { + Task task = new Task(); + task.setContentByLocalJSON(sqlNote.getContent()); + + String parentGid = mNidToGid.get(sqlNote.getParentId()); + if (parentGid == null) { + Log.e(TAG, "cannot find task's parent tasklist"); + throw new ActionFailureException("cannot add remote task"); + } + mGTaskListHashMap.get(parentGid).addChildTask(task); + + GTaskClient.getInstance().createTask(task); + n = (Node) task; + + // add meta + updateRemoteMeta(task.getGid(), sqlNote); + } else { + TaskList tasklist = null; + + // we need to skip folder if it has already existed + String folderName = GTaskStringUtils.MIUI_FOLDER_PREFFIX; + if (sqlNote.getId() == Notes.ID_ROOT_FOLDER) + folderName += GTaskStringUtils.FOLDER_DEFAULT; + else if (sqlNote.getId() == Notes.ID_CALL_RECORD_FOLDER) + folderName += GTaskStringUtils.FOLDER_CALL_NOTE; + else + folderName += sqlNote.getSnippet(); + + Iterator> iter = mGTaskListHashMap.entrySet().iterator(); + while (iter.hasNext()) { + Map.Entry entry = iter.next(); + String gid = entry.getKey(); + TaskList list = entry.getValue(); + + if (list.getName().equals(folderName)) { + tasklist = list; + if (mGTaskHashMap.containsKey(gid)) { + mGTaskHashMap.remove(gid); + } + break; + } + } + + // no match we can add now + if (tasklist == null) { + tasklist = new TaskList(); + tasklist.setContentByLocalJSON(sqlNote.getContent()); + GTaskClient.getInstance().createTaskList(tasklist); + mGTaskListHashMap.put(tasklist.getGid(), tasklist); + } + n = (Node) tasklist; + } + + // update local note + sqlNote.setGtaskId(n.getGid()); + sqlNote.commit(false); + sqlNote.resetLocalModified(); + sqlNote.commit(true); + + // gid-id mapping + mGidToNid.put(n.getGid(), sqlNote.getId()); + mNidToGid.put(sqlNote.getId(), n.getGid()); + } + + /** + * 更新远程节点,将本地节点的内容更新到远程服务器 + * @param node 要更新的远程节点 + * @param c 本地数据库游标,用于获取本地数据 + * @throws NetworkFailureException 网络操作失败时抛出 + */ + private void updateRemoteNode(Node node, Cursor c) throws NetworkFailureException { + if (mCancelled) { + return; + } + + SqlNote sqlNote = new SqlNote(mContext, c); + + // update remotely + node.setContentByLocalJSON(sqlNote.getContent()); + GTaskClient.getInstance().addUpdateNode(node); + + // update meta + updateRemoteMeta(node.getGid(), sqlNote); + + // move task if necessary + if (sqlNote.isNoteType()) { + Task task = (Task) node; + TaskList preParentList = task.getParent(); + + String curParentGid = mNidToGid.get(sqlNote.getParentId()); + if (curParentGid == null) { + Log.e(TAG, "cannot find task's parent tasklist"); + throw new ActionFailureException("cannot update remote task"); + } + TaskList curParentList = mGTaskListHashMap.get(curParentGid); + + if (preParentList != curParentList) { + preParentList.removeChildTask(task); + curParentList.addChildTask(task); + GTaskClient.getInstance().moveTask(task, preParentList, curParentList); + } + } + + // clear local modified flag + sqlNote.resetLocalModified(); + sqlNote.commit(true); + } + + /** + * 更新远程元数据,将本地笔记的元数据信息同步到远程服务器 + * @param gid 远程节点的GID + * @param sqlNote 本地笔记对象 + * @throws NetworkFailureException 网络操作失败时抛出 + */ + private void updateRemoteMeta(String gid, SqlNote sqlNote) throws NetworkFailureException { + if (sqlNote != null && sqlNote.isNoteType()) { + MetaData metaData = mMetaHashMap.get(gid); + if (metaData != null) { + metaData.setMeta(gid, sqlNote.getContent()); + GTaskClient.getInstance().addUpdateNode(metaData); + } else { + metaData = new MetaData(); + metaData.setMeta(gid, sqlNote.getContent()); + mMetaList.addChildTask(metaData); + mMetaHashMap.put(gid, metaData); + GTaskClient.getInstance().createTask(metaData); + } + } + } + + /** + * 刷新本地同步ID,根据远程数据更新本地节点的同步时间戳 + * @throws NetworkFailureException 网络操作失败时抛出 + */ + private void refreshLocalSyncId() throws NetworkFailureException { + if (mCancelled) { + return; + } + + // get the latest gtask list + mGTaskHashMap.clear(); + mGTaskListHashMap.clear(); + mMetaHashMap.clear(); + initGTaskList(); + + Cursor c = null; + try { + c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE, + "(type<>? AND parent_id<>?)", new String[] { + String.valueOf(Notes.TYPE_SYSTEM), String.valueOf(Notes.ID_TRASH_FOLER) + }, NoteColumns.TYPE + " DESC"); + if (c != null) { + while (c.moveToNext()) { + String gid = c.getString(SqlNote.GTASK_ID_COLUMN); + Node node = mGTaskHashMap.get(gid); + if (node != null) { + mGTaskHashMap.remove(gid); + ContentValues values = new ContentValues(); + values.put(NoteColumns.SYNC_ID, node.getLastModified()); + mContentResolver.update(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, + c.getLong(SqlNote.ID_COLUMN)), values, null, null); + } else { + Log.e(TAG, "something is missed"); + throw new ActionFailureException( + "some local items don't have gid after sync"); + } + } + } else { + Log.w(TAG, "failed to query local note to refresh sync id"); + } + } finally { + if (c != null) { + c.close(); + c = null; + } + } + } + + /** + * 获取当前同步账户的名称 + * @return 同步账户名称 + */ + public String getSyncAccount() { + return GTaskClient.getInstance().getSyncAccount().name; + } + + /** + * 取消当前正在进行的同步操作 + */ + public void cancelSync() { + mCancelled = true; + } +} diff --git a/src/main/java/net/micode/notes/gtask/remote/GTaskSyncService.java b/src/main/java/net/micode/notes/gtask/remote/GTaskSyncService.java new file mode 100644 index 0000000..512df71 --- /dev/null +++ b/src/main/java/net/micode/notes/gtask/remote/GTaskSyncService.java @@ -0,0 +1,191 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.gtask.remote; + +import android.app.Activity; +import android.app.Service; +import android.content.Context; +import android.content.Intent; +import android.os.Bundle; +import android.os.IBinder; + +/** + * GTaskSyncService是GTask同步的服务类,负责管理GTask同步的启动、取消和进度通知 + *

+ * 该服务提供了以下主要功能: + * 1. 启动GTask同步操作 + * 2. 取消正在进行的同步操作 + * 3. 通过广播通知同步状态和进度 + *

+ */ +public class GTaskSyncService extends Service { + /** + * 同步操作类型的Intent参数名称 + */ + public final static String ACTION_STRING_NAME = "sync_action_type"; + + /** + * 启动同步操作的常量 + */ + public final static int ACTION_START_SYNC = 0; + + /** + * 取消同步操作的常量 + */ + public final static int ACTION_CANCEL_SYNC = 1; + + /** + * 无效操作的常量 + */ + public final static int ACTION_INVALID = 2; + + /** + * GTask同步服务广播的Intent名称 + */ + public final static String GTASK_SERVICE_BROADCAST_NAME = "net.micode.notes.gtask.remote.gtask_sync_service"; + + /** + * 广播中表示同步状态的参数名称 + */ + public final static String GTASK_SERVICE_BROADCAST_IS_SYNCING = "isSyncing"; + + /** + * 广播中表示同步进度的参数名称 + */ + public final static String GTASK_SERVICE_BROADCAST_PROGRESS_MSG = "progressMsg"; + + /** + * 当前正在执行的同步任务实例 + */ + private static GTaskASyncTask mSyncTask = null; + + /** + * 当前同步进度信息 + */ + private static String mSyncProgress = ""; + + /** + * 启动同步操作 + */ + private void startSync() { + if (mSyncTask == null) { + mSyncTask = new GTaskASyncTask(this, new GTaskASyncTask.OnCompleteListener() { + public void onComplete() { + mSyncTask = null; + sendBroadcast(""); + stopSelf(); + } + }); + sendBroadcast(""); + mSyncTask.execute(); + } + } + + /** + * 取消正在进行的同步操作 + */ + private void cancelSync() { + if (mSyncTask != null) { + mSyncTask.cancelSync(); + } + } + + @Override + public void onCreate() { + mSyncTask = null; + } + + @Override + public int onStartCommand(Intent intent, int flags, int startId) { + Bundle bundle = intent.getExtras(); + if (bundle != null && bundle.containsKey(ACTION_STRING_NAME)) { + switch (bundle.getInt(ACTION_STRING_NAME, ACTION_INVALID)) { + case ACTION_START_SYNC: + startSync(); + break; + case ACTION_CANCEL_SYNC: + cancelSync(); + break; + default: + break; + } + return START_STICKY; + } + return super.onStartCommand(intent, flags, startId); + } + + @Override + public void onLowMemory() { + if (mSyncTask != null) { + mSyncTask.cancelSync(); + } + } + + @Override + public IBinder onBind(Intent intent) { + return null; + } + + /** + * 发送同步状态广播 + * @param msg 同步进度消息 + */ + public void sendBroadcast(String msg) { + mSyncProgress = msg; + Intent intent = new Intent(GTASK_SERVICE_BROADCAST_NAME); + intent.putExtra(GTASK_SERVICE_BROADCAST_IS_SYNCING, mSyncTask != null); + intent.putExtra(GTASK_SERVICE_BROADCAST_PROGRESS_MSG, msg); + sendBroadcast(intent); + } + + /** + * 启动GTask同步服务 + * @param activity 调用该方法的Activity实例 + */ + public static void startSync(Activity activity) { + GTaskManager.getInstance().setActivityContext(activity); + Intent intent = new Intent(activity, GTaskSyncService.class); + intent.putExtra(GTaskSyncService.ACTION_STRING_NAME, GTaskSyncService.ACTION_START_SYNC); + activity.startService(intent); + } + + /** + * 取消GTask同步服务 + * @param context 调用该方法的上下文 + */ + public static void cancelSync(Context context) { + Intent intent = new Intent(context, GTaskSyncService.class); + intent.putExtra(GTaskSyncService.ACTION_STRING_NAME, GTaskSyncService.ACTION_CANCEL_SYNC); + context.startService(intent); + } + + /** + * 检查是否正在进行同步 + * @return 如果正在同步返回true,否则返回false + */ + public static boolean isSyncing() { + return mSyncTask != null; + } + + /** + * 获取当前同步进度信息 + * @return 当前同步进度字符串 + */ + public static String getProgressString() { + return mSyncProgress; + } +} diff --git a/src/main/java/net/micode/notes/model/Note.java b/src/main/java/net/micode/notes/model/Note.java new file mode 100644 index 0000000..4c7931d --- /dev/null +++ b/src/main/java/net/micode/notes/model/Note.java @@ -0,0 +1,430 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.model; +import android.content.ContentProviderOperation; +import android.content.ContentProviderResult; +import android.content.ContentUris; +import android.content.ContentValues; +import android.content.Context; +import android.content.OperationApplicationException; +import android.net.Uri; +import android.os.RemoteException; +import android.util.Log; + +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.CallNote; +import net.micode.notes.data.Notes.DataColumns; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.data.Notes.TextNote; + +import java.util.ArrayList; + + +/** + * 笔记核心数据模型类,负责笔记的创建、更新和同步操作。 + *

+ * 该类是笔记应用的核心数据模型,提供了笔记的创建、更新和同步功能, + * 支持文本笔记和通话笔记两种类型,并通过ContentResolver与数据库进行交互。 + *

+ */ +public class Note { + /** + * 用于存储笔记基本属性的变更值 + */ + private ContentValues mNoteDiffValues; + + /** + * 用于存储笔记具体数据(文本或通话数据) + */ + private NoteData mNoteData; + + /** + * 日志标签 + */ + private static final String TAG = Note.class.getSimpleName(); + /** + * 创建新笔记并返回其ID + *

+ * 在数据库中创建一个新的笔记记录,并返回生成的笔记ID。 + * 新笔记将包含默认的创建时间、修改时间、类型等信息。 + *

+ * + * @param context 应用上下文,用于获取ContentResolver + * @param folderId 笔记所属文件夹ID + * @return 新创建的笔记ID + */ + public static synchronized long getNewNoteId(Context context, long folderId) { + // Create a new note in the database + ContentValues values = new ContentValues(); + long createdTime = System.currentTimeMillis(); + values.put(NoteColumns.CREATED_DATE, createdTime); + values.put(NoteColumns.MODIFIED_DATE, createdTime); + values.put(NoteColumns.TYPE, Notes.TYPE_NOTE); + values.put(NoteColumns.LOCAL_MODIFIED, 1); + values.put(NoteColumns.PARENT_ID, folderId); + Uri uri = context.getContentResolver().insert(Notes.CONTENT_NOTE_URI, values); + + long noteId = 0; + try { + noteId = Long.valueOf(uri.getPathSegments().get(1)); + } catch (NumberFormatException e) { + Log.e(TAG, "Get note id error :" + e.toString()); + noteId = 0; + } + if (noteId == -1) { + throw new IllegalStateException("Wrong note id:" + noteId); + } + return noteId; + } + + /** + * 构造方法,初始化笔记数据模型 + */ + public Note() { + mNoteDiffValues = new ContentValues(); + mNoteData = new NoteData(); + } + + /** + * 设置笔记的基本属性值 + *

+ * 更新笔记的基本属性,并标记为本地修改状态,同时更新修改时间。 + *

+ * + * @param key 属性键名,对应NoteColumns中的字段名 + * @param value 属性值 + */ + public void setNoteValue(String key, String value) { + mNoteDiffValues.put(key, value); + mNoteDiffValues.put(NoteColumns.LOCAL_MODIFIED, 1); + mNoteDiffValues.put(NoteColumns.MODIFIED_DATE, System.currentTimeMillis()); + } + + /** + * 设置笔记文本数据 + *

+ * 更新笔记的文本内容数据,并标记为本地修改状态。 + *

+ * + * @param key 文本数据键名,对应TextNote中的字段名 + * @param value 文本数据值 + */ + public void setTextData(String key, String value) { + mNoteData.setTextData(key, value); + } + + /** + * 设置文本数据ID + *

+ * 设置与当前笔记关联的文本数据记录ID。 + *

+ * + * @param id 文本数据ID + */ + public void setTextDataId(long id) { + mNoteData.setTextDataId(id); + } + + /** + * 获取文本数据ID + *

+ * 获取与当前笔记关联的文本数据记录ID。 + *

+ * + * @return 文本数据ID + */ + public long getTextDataId() { + return mNoteData.mTextDataId; + } + + /** + * 设置通话数据ID + *

+ * 设置与当前笔记关联的通话数据记录ID。 + *

+ * + * @param id 通话数据ID + */ + public void setCallDataId(long id) { + mNoteData.setCallDataId(id); + } + + /** + * 设置通话数据 + *

+ * 更新笔记的通话内容数据,并标记为本地修改状态。 + *

+ * + * @param key 通话数据键名,对应CallNote中的字段名 + * @param value 通话数据值 + */ + public void setCallData(String key, String value) { + mNoteData.setCallData(key, value); + } + + /** + * 检查笔记是否在本地被修改 + *

+ * 检查笔记的基本属性或具体数据是否在本地被修改过。 + *

+ * + * @return 如果有本地修改则返回true,否则返回false + */ + public boolean isLocalModified() { + return mNoteDiffValues.size() > 0 || mNoteData.isLocalModified(); + } + + /** + * 执行笔记同步操作,将本地修改提交到数据库 + *

+ * 将本地对笔记的修改同步到数据库中,包括基本属性和具体数据的更新。 + * 如果同步失败,会记录错误日志但仍尝试完成数据更新。 + *

+ * + * @param context 应用上下文,用于获取ContentResolver + * @param noteId 笔记ID + * @return 同步成功返回true,失败返回false + */ + public boolean syncNote(Context context, long noteId) { + if (noteId <= 0) { + throw new IllegalArgumentException("Wrong note id:" + noteId); + } + + if (!isLocalModified()) { + return true; + } + + /** + * 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 + */ + 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(); + + if (mNoteData.isLocalModified() + && (mNoteData.pushIntoContentResolver(context, noteId) == null)) { + return false; + } + + return true; + } + + /** + * 笔记数据内部类,负责管理笔记的文本和通话数据。 + *

+ * 该内部类封装了笔记的具体内容数据,包括文本笔记和通话笔记, + * 并提供了数据的设置和持久化方法。 + *

+ */ + private class NoteData { + /** + * 文本数据ID + */ + private long mTextDataId; + + /** + * 文本数据内容 + */ + private ContentValues mTextDataValues; + + /** + * 通话数据ID + */ + private long mCallDataId; + + /** + * 通话数据内容 + */ + private ContentValues mCallDataValues; + + /** + * 日志标签 + */ + private static final String TAG = NoteData.class.getSimpleName(); + + /** + * 构造方法,初始化笔记数据 + */ + public NoteData() { + mTextDataValues = new ContentValues(); + mCallDataValues = new ContentValues(); + mTextDataId = 0; + mCallDataId = 0; + } + + /** + * 检查笔记数据是否在本地被修改 + *

+ * 检查文本数据或通话数据是否在本地被修改过。 + *

+ * + * @return 如果有本地修改则返回true,否则返回false + */ + boolean isLocalModified() { + return mTextDataValues.size() > 0 || mCallDataValues.size() > 0; + } + + /** + * 设置文本数据ID + *

+ * 设置与当前笔记关联的文本数据记录ID。 + *

+ * + * @param id 文本数据ID + */ + void setTextDataId(long id) { + if(id <= 0) { + throw new IllegalArgumentException("Text data id should larger than 0"); + } + mTextDataId = id; + } + + /** + * 设置通话数据ID + *

+ * 设置与当前笔记关联的通话数据记录ID。 + *

+ * + * @param id 通话数据ID + */ + void setCallDataId(long id) { + if (id <= 0) { + throw new IllegalArgumentException("Call data id should larger than 0"); + } + mCallDataId = id; + } + + /** + * 设置通话数据 + *

+ * 更新笔记的通话内容数据,并标记为本地修改状态。 + *

+ * + * @param key 通话数据键名,对应CallNote中的字段名 + * @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 文本数据键名,对应TextNote中的字段名 + * @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进行持久化 + *

+ * 将本地修改的文本数据或通话数据持久化到数据库中。 + * 如果数据ID为0,则执行插入操作;否则执行更新操作。 + *

+ * + * @param context 应用上下文,用于获取ContentResolver + * @param noteId 笔记ID + * @return 成功返回笔记URI,失败返回null + */ + Uri pushIntoContentResolver(Context context, long noteId) { + /** + * Check for safety + */ + if (noteId <= 0) { + throw new IllegalArgumentException("Wrong note id:" + noteId); + } + + ArrayList operationList = new ArrayList(); + ContentProviderOperation.Builder builder = null; + + if(mTextDataValues.size() > 0) { + mTextDataValues.put(DataColumns.NOTE_ID, noteId); + if (mTextDataId == 0) { + mTextDataValues.put(DataColumns.MIME_TYPE, TextNote.CONTENT_ITEM_TYPE); + Uri uri = context.getContentResolver().insert(Notes.CONTENT_DATA_URI, + mTextDataValues); + try { + setTextDataId(Long.valueOf(uri.getPathSegments().get(1))); + } catch (NumberFormatException e) { + Log.e(TAG, "Insert new text data fail with noteId" + noteId); + mTextDataValues.clear(); + return null; + } + } else { + builder = ContentProviderOperation.newUpdate(ContentUris.withAppendedId( + Notes.CONTENT_DATA_URI, mTextDataId)); + builder.withValues(mTextDataValues); + operationList.add(builder.build()); + } + mTextDataValues.clear(); + } + + if(mCallDataValues.size() > 0) { + mCallDataValues.put(DataColumns.NOTE_ID, noteId); + if (mCallDataId == 0) { + mCallDataValues.put(DataColumns.MIME_TYPE, CallNote.CONTENT_ITEM_TYPE); + Uri uri = context.getContentResolver().insert(Notes.CONTENT_DATA_URI, + mCallDataValues); + try { + setCallDataId(Long.valueOf(uri.getPathSegments().get(1))); + } catch (NumberFormatException e) { + Log.e(TAG, "Insert new call data fail with noteId" + noteId); + mCallDataValues.clear(); + return null; + } + } else { + builder = ContentProviderOperation.newUpdate(ContentUris.withAppendedId( + Notes.CONTENT_DATA_URI, mCallDataId)); + builder.withValues(mCallDataValues); + operationList.add(builder.build()); + } + mCallDataValues.clear(); + } + + if (operationList.size() > 0) { + try { + ContentProviderResult[] results = context.getContentResolver().applyBatch( + Notes.AUTHORITY, operationList); + return (results == null || results.length == 0 || results[0] == null) ? null + : ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId); + } catch (RemoteException e) { + Log.e(TAG, String.format("%s: %s", e.toString(), e.getMessage())); + return null; + } catch (OperationApplicationException e) { + Log.e(TAG, String.format("%s: %s", e.toString(), e.getMessage())); + return null; + } + } + return null; + } + } +} diff --git a/src/main/java/net/micode/notes/model/WorkingNote.java b/src/main/java/net/micode/notes/model/WorkingNote.java new file mode 100644 index 0000000..36003cc --- /dev/null +++ b/src/main/java/net/micode/notes/model/WorkingNote.java @@ -0,0 +1,727 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.model; + +import android.appwidget.AppWidgetManager; +import android.content.ContentUris; +import android.content.Context; +import android.database.Cursor; +import android.text.TextUtils; +import android.util.Log; + +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.CallNote; +import net.micode.notes.data.Notes.DataColumns; +import net.micode.notes.data.Notes.DataConstants; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.data.Notes.TextNote; +import net.micode.notes.tool.ResourceParser.NoteBgResources; + + +/** + * 工作笔记类,负责管理笔记的业务逻辑和UI状态。 + *

+ * 该类是笔记应用的业务逻辑封装类,提供了笔记的创建、加载、保存等功能, + * 负责管理笔记的UI状态和业务逻辑,是UI层与数据层之间的桥梁。 + *

+ */ +public class WorkingNote { + /** + * 内部笔记数据对象 + */ + private Note mNote; + + /** + * 笔记ID + */ + private long mNoteId; + + /** + * 笔记内容 + */ + private String mContent; + + /** + * 笔记模式(普通模式或清单模式) + */ + 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.class.getSimpleName(); + + /** + * 删除标记 + */ + private boolean mIsDeleted; + + /** + * 笔记设置变更监听器 + */ + private NoteSettingChangedListener mNoteSettingStatusListener; + + /** + * 数据查询投影,用于从ContentResolver获取笔记数据 + */ + public static final String[] DATA_PROJECTION = new String[] { + DataColumns.ID, + DataColumns.CONTENT, + DataColumns.MIME_TYPE, + DataColumns.DATA1, + DataColumns.DATA2, + DataColumns.DATA3, + DataColumns.DATA4, + }; + + /** + * 笔记查询投影,用于从ContentResolver获取笔记基本信息 + */ + public static final String[] NOTE_PROJECTION = new String[] { + NoteColumns.PARENT_ID, + NoteColumns.ALERTED_DATE, + NoteColumns.BG_COLOR_ID, + NoteColumns.WIDGET_ID, + NoteColumns.WIDGET_TYPE, + NoteColumns.MODIFIED_DATE + }; + + /** + * 数据查询结果列索引:数据ID + */ + 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; + + /** + * 笔记查询结果列索引:父文件夹ID + */ + private static final int NOTE_PARENT_ID_COLUMN = 0; + + /** + * 笔记查询结果列索引:提醒日期 + */ + private static final int NOTE_ALERTED_DATE_COLUMN = 1; + + /** + * 笔记查询结果列索引:背景颜色ID + */ + private static final int NOTE_BG_COLOR_ID_COLUMN = 2; + + /** + * 笔记查询结果列索引:小部件ID + */ + 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; + mModifiedDate = System.currentTimeMillis(); + mFolderId = folderId; + mNote = new Note(); + mNoteId = 0; + mIsDeleted = false; + mMode = 0; + mWidgetType = Notes.TYPE_WIDGET_INVALIDE; + } + + // Existing note construct + /** + * 构造现有笔记的私有构造方法 + *

+ * 根据笔记ID初始化一个工作笔记对象,并从数据库加载笔记数据。 + *

+ * + * @param context 应用上下文 + * @param noteId 笔记ID + * @param folderId 笔记所属文件夹ID + */ + private WorkingNote(Context context, long noteId, long folderId) { + mContext = context; + mNoteId = noteId; + mFolderId = folderId; + mIsDeleted = false; + mNote = new Note(); + loadNote(); + } + + /** + * 从数据库加载笔记基本信息 + *

+ * 从ContentResolver中查询并加载笔记的基本信息,包括文件夹ID、背景颜色、 + * 小部件信息、提醒日期和修改日期等。 + *

+ */ + private void loadNote() { + Cursor cursor = mContext.getContentResolver().query( + ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, mNoteId), NOTE_PROJECTION, null, + null, null); + + if (cursor != null) { + if (cursor.moveToFirst()) { + mFolderId = cursor.getLong(NOTE_PARENT_ID_COLUMN); + mBgColorId = cursor.getInt(NOTE_BG_COLOR_ID_COLUMN); + mWidgetId = cursor.getInt(NOTE_WIDGET_ID_COLUMN); + mWidgetType = cursor.getInt(NOTE_WIDGET_TYPE_COLUMN); + mAlertDate = cursor.getLong(NOTE_ALERTED_DATE_COLUMN); + mModifiedDate = cursor.getLong(NOTE_MODIFIED_DATE_COLUMN); + } + cursor.close(); + } else { + Log.e(TAG, "No note with id:" + mNoteId); + throw new IllegalArgumentException("Unable to find note with id " + mNoteId); + } + loadNoteData(); + } + + /** + * 从数据库加载笔记详细数据 + *

+ * 从ContentResolver中查询并加载笔记的详细数据,包括文本内容和模式等。 + *

+ */ + private void loadNoteData() { + Cursor cursor = mContext.getContentResolver().query(Notes.CONTENT_DATA_URI, DATA_PROJECTION, + DataColumns.NOTE_ID + "=?", new String[] { + String.valueOf(mNoteId) + }, null); + + if (cursor != null) { + if (cursor.moveToFirst()) { + do { + String type = cursor.getString(DATA_MIME_TYPE_COLUMN); + if (DataConstants.NOTE.equals(type)) { + mContent = cursor.getString(DATA_CONTENT_COLUMN); + mMode = cursor.getInt(DATA_MODE_COLUMN); + mNote.setTextDataId(cursor.getLong(DATA_ID_COLUMN)); + } else if (DataConstants.CALL_NOTE.equals(type)) { + mNote.setCallDataId(cursor.getLong(DATA_ID_COLUMN)); + } else { + Log.d(TAG, "Wrong note type with type:" + type); + } + } while (cursor.moveToNext()); + } + cursor.close(); + } else { + Log.e(TAG, "No data with id:" + mNoteId); + throw new IllegalArgumentException("Unable to find note's data with id " + mNoteId); + } + } + + /** + * 创建空笔记的静态工厂方法 + *

+ * 创建一个新的空工作笔记对象,并设置默认属性值。 + *

+ * + * @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); + note.setBgColorId(defaultBgColorId); + note.setWidgetId(widgetId); + note.setWidgetType(widgetType); + return note; + } + + /** + * 加载现有笔记的静态工厂方法 + *

+ * 根据笔记ID加载一个现有的工作笔记对象。 + *

+ * + * @param context 应用上下文 + * @param id 笔记ID + * @return 加载的工作笔记 + */ + public static WorkingNote load(Context context, long id) { + return new WorkingNote(context, id, 0); + } + + /** + * 保存笔记到数据库 + *

+ * 将当前工作笔记保存到数据库中。如果笔记不存在,则创建新笔记; + * 如果笔记已存在,则更新现有笔记。 + *

+ * + * @return 保存成功返回true,否则返回false + */ + public synchronized boolean saveNote() { + if (isWorthSaving()) { + if (!existInDatabase()) { + if ((mNoteId = Note.getNewNoteId(mContext, mFolderId)) == 0) { + Log.e(TAG, "Create new note fail with id:" + mNoteId); + return false; + } + } + + 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 + && mNoteSettingStatusListener != null) { + mNoteSettingStatusListener.onWidgetChanged(); + } + return true; + } else { + return false; + } + } + + /** + * 检查笔记是否存在于数据库 + *

+ * 检查当前工作笔记是否已存在于数据库中。 + *

+ * + * @return 存在返回true,否则返回false + */ + public boolean existInDatabase() { + return mNoteId > 0; + } + + /** + * 检查笔记是否值得保存 + *

+ * 检查当前工作笔记是否值得保存到数据库中。如果笔记已删除、 + * 内容为空且不存在于数据库中,或者存在于数据库但未修改,则不值得保存。 + *

+ * + * @return 值得保存返回true,否则返回false + */ + private boolean isWorthSaving() { + if (mIsDeleted || (!existInDatabase() && TextUtils.isEmpty(mContent)) + || (existInDatabase() && !mNote.isLocalModified())) { + return false; + } else { + return true; + } + } + + /** + * 设置笔记设置变更监听器 + *

+ * 设置笔记设置变更监听器,用于监听笔记设置的变化,如背景颜色、 + * 提醒日期、小部件等的变化。 + *

+ * + * @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; + mNote.setNoteValue(NoteColumns.ALERTED_DATE, String.valueOf(mAlertDate)); + } + if (mNoteSettingStatusListener != null) { + mNoteSettingStatusListener.onClockAlertChanged(date, set); + } + } + + /** + * 标记笔记是否删除 + *

+ * 标记笔记是否已删除,并通知监听器。 + *

+ * + * @param mark 删除标记 + */ + public void markDeleted(boolean mark) { + mIsDeleted = mark; + if (mWidgetId != AppWidgetManager.INVALID_APPWIDGET_ID + && mWidgetType != Notes.TYPE_WIDGET_INVALIDE && mNoteSettingStatusListener != null) { + mNoteSettingStatusListener.onWidgetChanged(); + } + } + + /** + * 设置笔记背景颜色ID + *

+ * 设置笔记的背景颜色ID,并通知监听器。 + *

+ * + * @param id 背景颜色ID + */ + public void setBgColorId(int id) { + if (id != mBgColorId) { + mBgColorId = id; + if (mNoteSettingStatusListener != null) { + mNoteSettingStatusListener.onBackgroundColorChanged(); + } + mNote.setNoteValue(NoteColumns.BG_COLOR_ID, String.valueOf(id)); + } + } + + /** + * 设置笔记的清单模式 + *

+ * 设置笔记的模式(普通模式或清单模式),并通知监听器。 + *

+ * + * @param mode 清单模式 + */ + public void setCheckListMode(int mode) { + if (mMode != mode) { + if (mNoteSettingStatusListener != null) { + mNoteSettingStatusListener.onCheckListModeChanged(mMode, mode); + } + mMode = mode; + mNote.setTextData(TextNote.MODE, String.valueOf(mMode)); + } + } + + /** + * 设置小部件类型 + *

+ * 设置与当前笔记关联的小部件类型。 + *

+ * + * @param type 小部件类型 + */ + public void setWidgetType(int type) { + if (type != mWidgetType) { + mWidgetType = type; + mNote.setNoteValue(NoteColumns.WIDGET_TYPE, String.valueOf(mWidgetType)); + } + } + + /** + * 设置小部件ID + *

+ * 设置与当前笔记关联的小部件ID。 + *

+ * + * @param id 小部件ID + */ + public void setWidgetId(int id) { + if (id != mWidgetId) { + mWidgetId = id; + mNote.setNoteValue(NoteColumns.WIDGET_ID, String.valueOf(mWidgetId)); + } + } + + /** + * 设置笔记内容 + *

+ * 设置笔记的文本内容。 + *

+ * + * @param text 笔记内容 + */ + public void setWorkingText(String text) { + if (!TextUtils.equals(mContent, text)) { + mContent = text; + mNote.setTextData(DataColumns.CONTENT, mContent); + } + } + + /** + * 将笔记转换为通话笔记 + *

+ * 将当前笔记转换为通话笔记,并设置通话相关信息,如电话号码和通话日期。 + *

+ * + * @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 有提醒返回true,否则返回false + */ + 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 + *

+ * 根据背景颜色ID获取对应的背景颜色资源ID。 + *

+ * + * @return 背景颜色资源ID + */ + public int getBgColorResId() { + return NoteBgResources.getNoteBgResource(mBgColorId); + } + + /** + * 获取背景颜色ID + *

+ * 获取当前笔记的背景颜色ID。 + *

+ * + * @return 背景颜色ID + */ + public int getBgColorId() { + return mBgColorId; + } + + /** + * 获取标题背景资源ID + *

+ * 根据背景颜色ID获取对应的标题背景资源ID。 + *

+ * + * @return 标题背景资源ID + */ + public int getTitleBgResId() { + return NoteBgResources.getNoteTitleBgResource(mBgColorId); + } + + /** + * 获取清单模式 + *

+ * 获取当前笔记的模式(普通模式或清单模式)。 + *

+ * + * @return 清单模式 + */ + public int getCheckListMode() { + return mMode; + } + + /** + * 获取笔记ID + *

+ * 获取当前笔记的ID。 + *

+ * + * @return 笔记ID + */ + public long getNoteId() { + return mNoteId; + } + + /** + * 获取文件夹ID + *

+ * 获取当前笔记所属的文件夹ID。 + *

+ * + * @return 文件夹ID + */ + public long getFolderId() { + return mFolderId; + } + + /** + * 获取小部件ID + *

+ * 获取与当前笔记关联的小部件ID。 + *

+ * + * @return 小部件ID + */ + public int getWidgetId() { + return mWidgetId; + } + + /** + * 获取小部件类型 + *

+ * 获取与当前笔记关联的小部件类型。 + *

+ * + * @return 小部件类型 + */ + public int getWidgetType() { + return mWidgetType; + } + + /** + * 笔记设置变更监听器,用于监听笔记设置的变化。 + *

+ * 该接口定义了笔记设置变化的回调方法,如背景颜色、提醒日期、 + * 小部件等的变化回调。 + *

+ */ + public interface NoteSettingChangedListener { + /** + * 当笔记背景颜色改变时调用 + *

+ * 当笔记的背景颜色发生变化时,会调用该方法。 + *

+ */ + void onBackgroundColorChanged(); + + /** + * 当笔记闹钟设置改变时调用 + *

+ * 当笔记的提醒日期发生变化时,会调用该方法。 + *

+ * + * @param date 闹钟日期时间戳 + * @param set 是否设置闹钟 + */ + void onClockAlertChanged(long date, boolean set); + + /** + * 当笔记小部件改变时调用 + *

+ * 当与笔记关联的小部件发生变化时,会调用该方法。 + *

+ */ + void onWidgetChanged(); + + /** + * 当笔记在清单模式和普通模式之间切换时调用 + *

+ * 当笔记的模式在普通模式和清单模式之间切换时,会调用该方法。 + *

+ * + * @param oldMode 切换前的模式 + * @param newMode 切换后的新模式 + */ + void onCheckListModeChanged(int oldMode, int newMode); + } +} diff --git a/src/main/java/net/micode/notes/tool/BackupUtils.java b/src/main/java/net/micode/notes/tool/BackupUtils.java new file mode 100644 index 0000000..8f2e96e --- /dev/null +++ b/src/main/java/net/micode/notes/tool/BackupUtils.java @@ -0,0 +1,490 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.tool; + +import android.content.Context; +import android.database.Cursor; +import android.os.Environment; +import android.text.TextUtils; +import android.text.format.DateFormat; +import android.util.Log; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.DataColumns; +import net.micode.notes.data.Notes.DataConstants; +import net.micode.notes.data.Notes.NoteColumns; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.PrintStream; + + +/** + * 备份工具类,负责将笔记导出为文本文件。 + *

+ * 该类采用单例模式实现,提供了将笔记内容导出为用户可读文本格式的功能, + * 支持将不同文件夹的笔记分类导出,并处理SD卡状态检查和文件生成等操作。 + *

+ */ +public class BackupUtils { + /** + * 日志标签 + */ + private static final String TAG = BackupUtils.class.getSimpleName(); + /** + * 单例实例 + */ + private static BackupUtils sInstance; + + /** + * 获取BackupUtils的单例实例 + *

+ * 如果实例不存在,则创建一个新实例并返回;否则返回已存在的实例。 + *

+ * + * @param context 应用上下文 + * @return BackupUtils的单例实例 + */ + public static synchronized BackupUtils getInstance(Context context) { + if (sInstance == null) { + sInstance = new BackupUtils(context); + } + return sInstance; + } + + /** + * 备份或恢复操作的状态常量 + *

+ * 这些状态常量用于表示备份或恢复操作的执行结果和状态。 + *

+ */ + /** + * SD卡未挂载状态 + */ + public static final int STATE_SD_CARD_UNMOUONTED = 0; + + /** + * 备份文件不存在状态 + */ + public static final int STATE_BACKUP_FILE_NOT_EXIST = 1; + + /** + * 数据格式损坏状态,可能被其他程序修改 + */ + public static final int STATE_DATA_DESTROIED = 2; + + /** + * 运行时异常导致备份或恢复失败状态 + */ + public static final int STATE_SYSTEM_ERROR = 3; + + /** + * 备份或恢复成功状态 + */ + public static final int STATE_SUCCESS = 4; + + /** + * 文本导出实例,负责实际的文本导出操作 + */ + private TextExport mTextExport; + + /** + * 私有构造方法,初始化BackupUtils实例 + *

+ * 创建TextExport实例用于文本导出操作。 + *

+ * + * @param context 应用上下文 + */ + private BackupUtils(Context context) { + mTextExport = new TextExport(context); + } + + /** + * 检查外部存储是否可用 + *

+ * 判断SD卡是否已挂载并可读写。 + *

+ * + * @return 如果外部存储可用返回true,否则返回false + */ + private static boolean externalStorageAvailable() { + return Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()); + } + + /** + * 将笔记导出为文本文件 + *

+ * 调用内部TextExport实例的exportToText方法执行实际导出操作。 + *

+ * + * @return 导出操作的状态码,可能的值为STATE_SD_CARD_UNMOUONTED、STATE_SYSTEM_ERROR或STATE_SUCCESS + */ + 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, + NoteColumns.SNIPPET, + NoteColumns.TYPE + }; + + 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, + DataColumns.DATA1, + DataColumns.DATA2, + DataColumns.DATA3, + DataColumns.DATA4, + }; + + 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; + private static final int FORMAT_NOTE_CONTENT = 2; + + /** + * 应用上下文 + */ + private Context mContext; + /** + * 导出的文件名 + */ + private String mFileName; + /** + * 导出的文件目录 + */ + private String mFileDirectory; + + /** + * 构造方法,初始化TextExport实例 + *

+ * 从资源文件中加载文本格式化字符串,并初始化上下文和文件信息。 + *

+ * + * @param context 应用上下文 + */ + public TextExport(Context context) { + TEXT_FORMAT = context.getResources().getStringArray(R.array.format_for_exported_note); + mContext = context; + mFileName = ""; + mFileDirectory = ""; + } + + /** + * 获取指定ID的文本格式化字符串 + *

+ * 从TEXT_FORMAT数组中获取指定索引的格式化字符串。 + *

+ * + * @param id 格式化字符串的索引 + * @return 对应的格式化字符串 + */ + private String getFormat(int id) { + return TEXT_FORMAT[id]; + } + + /** + * 将指定文件夹的笔记导出为文本 + *

+ * 查询并导出指定文件夹下的所有笔记,包括每个笔记的修改日期和内容。 + *

+ * + * @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 + }, null); + + 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()); + } + notesCursor.close(); + } + } + + /** + * 将指定笔记导出到打印流 + *

+ * 查询并导出指定笔记的详细内容,区分文本笔记和通话笔记的不同格式。 + *

+ * + * @param noteId 笔记ID + * @param ps 打印流,用于写入导出的笔记内容 + */ + private void exportNoteToText(String noteId, PrintStream ps) { + Cursor dataCursor = mContext.getContentResolver().query(Notes.CONTENT_DATA_URI, + DATA_PROJECTION, DataColumns.NOTE_ID + "=?", new String[] { + noteId + }, null); + + if (dataCursor != null) { + if (dataCursor.moveToFirst()) { + 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); + + if (!TextUtils.isEmpty(phoneNumber)) { + 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), + content)); + } + } + } while (dataCursor.moveToNext()); + } + dataCursor.close(); + } + // print a line separator between note + try { + ps.write(new byte[] { + Character.LINE_SEPARATOR, Character.LETTER_NUMBER + }); + } catch (IOException e) { + Log.e(TAG, e.toString()); + } + } + + /** + * 将笔记导出为用户可读的文本格式 + *

+ * 检查SD卡状态,创建输出文件,然后按文件夹分类导出所有笔记内容。 + *

+ * + * @return 导出操作的状态码,可能的值为STATE_SD_CARD_UNMOUONTED、STATE_SYSTEM_ERROR或STATE_SUCCESS + */ + public int exportToText() { + if (!externalStorageAvailable()) { + Log.d(TAG, "Media was not mounted"); + return STATE_SD_CARD_UNMOUONTED; + } + + PrintStream ps = getExportToTextPrintStream(); + if (ps == null) { + 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, + "(" + NoteColumns.TYPE + "=" + Notes.TYPE_FOLDER + " AND " + + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLER + ") OR " + + NoteColumns.ID + "=" + Notes.ID_CALL_RECORD_FOLDER, null, null); + + 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); + } else { + folderName = folderCursor.getString(NOTE_COLUMN_SNIPPET); + } + if (!TextUtils.isEmpty(folderName)) { + ps.println(String.format(getFormat(FORMAT_FOLDER_NAME), folderName)); + } + String folderId = folderCursor.getString(NOTE_COLUMN_ID); + exportFolderToText(folderId, ps); + } while (folderCursor.moveToNext()); + } + folderCursor.close(); + } + + // Export notes in root's folder + Cursor noteCursor = mContext.getContentResolver().query( + Notes.CONTENT_NOTE_URI, + NOTE_PROJECTION, + NoteColumns.TYPE + "=" + +Notes.TYPE_NOTE + " AND " + NoteColumns.PARENT_ID + + "=0", null, null); + + if (noteCursor != null) { + if (noteCursor.moveToFirst()) { + do { + 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()); + } + noteCursor.close(); + } + ps.close(); + + return STATE_SUCCESS; + } + + /** + * 获取用于导出文本的打印流 + *

+ * 创建并返回指向导出文本文件的打印流,用于写入导出的笔记内容。 + *

+ * + * @return 指向导出文本文件的打印流,如果创建失败返回null + */ + private PrintStream getExportToTextPrintStream() { + File file = generateFileMountedOnSDcard(mContext, R.string.file_path, + R.string.file_name_txt_format); + if (file == null) { + Log.e(TAG, "create file to exported failed"); + return null; + } + mFileName = file.getName(); + mFileDirectory = mContext.getString(R.string.file_path); + PrintStream ps = null; + try { + FileOutputStream fos = new FileOutputStream(file); + ps = new PrintStream(fos); + } catch (FileNotFoundException e) { + e.printStackTrace(); + return null; + } catch (NullPointerException e) { + e.printStackTrace(); + return null; + } + return ps; + } + } + + /** + * 在SD卡上生成用于存储导入数据的文本文件 + *

+ * 根据指定的文件路径和文件名格式,在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(); + sb.append(Environment.getExternalStorageDirectory()); + sb.append(context.getString(filePathResId)); + File filedir = new File(sb.toString()); + sb.append(context.getString( + fileNameFormatResId, + DateFormat.format(context.getString(R.string.format_date_ymd), + System.currentTimeMillis()))); + File file = new File(sb.toString()); + + try { + if (!filedir.exists()) { + filedir.mkdir(); + } + if (!file.exists()) { + file.createNewFile(); + } + return file; + } catch (SecurityException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + + return null; + } +} + + diff --git a/src/main/java/net/micode/notes/tool/DataUtils.java b/src/main/java/net/micode/notes/tool/DataUtils.java new file mode 100644 index 0000000..49d5a18 --- /dev/null +++ b/src/main/java/net/micode/notes/tool/DataUtils.java @@ -0,0 +1,437 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.tool; + +import android.content.ContentProviderOperation; +import android.content.ContentProviderResult; +import android.content.ContentResolver; +import android.content.ContentUris; +import android.content.ContentValues; +import android.content.OperationApplicationException; +import android.database.Cursor; +import android.os.RemoteException; +import android.util.Log; + +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.CallNote; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.ui.NotesListAdapter.AppWidgetAttribute; + +import java.util.ArrayList; +import java.util.HashSet; + + +/** + * 数据工具类,提供笔记数据的批量操作和查询功能。 + *

+ * 该类包含了笔记数据的批量删除、移动、查询等静态方法, + * 主要用于处理笔记应用中的数据操作,与ContentResolver进行交互。 + *

+ */ +public class DataUtils { + /** + * 日志标签 + */ + public static final String TAG = DataUtils.class.getSimpleName(); + /** + * 批量删除笔记 + *

+ * 根据提供的笔记ID集合,批量删除对应的笔记。 + * 系统根文件夹(ID_ROOT_FOLDER)不会被删除。 + *

+ * + * @param resolver ContentResolver实例,用于与内容提供者交互 + * @param ids 要删除的笔记ID集合 + * @return 删除成功返回true,否则返回false + */ + public static boolean batchDeleteNotes(ContentResolver resolver, HashSet ids) { + if (ids == null) { + Log.d(TAG, "the ids is null"); + return true; + } + if (ids.size() == 0) { + Log.d(TAG, "no id is in the hashset"); + return true; + } + + ArrayList operationList = new ArrayList(); + for (long id : ids) { + if(id == Notes.ID_ROOT_FOLDER) { + Log.e(TAG, "Don't delete system folder root"); + continue; + } + ContentProviderOperation.Builder builder = ContentProviderOperation + .newDelete(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, id)); + operationList.add(builder.build()); + } + try { + ContentProviderResult[] results = resolver.applyBatch(Notes.AUTHORITY, operationList); + if (results == null || results.length == 0 || results[0] == null) { + Log.d(TAG, "delete notes failed, ids:" + ids.toString()); + return false; + } + return true; + } catch (RemoteException e) { + Log.e(TAG, String.format("%s: %s", e.toString(), e.getMessage())); + } catch (OperationApplicationException e) { + Log.e(TAG, String.format("%s: %s", e.toString(), e.getMessage())); + } + return false; + } + + /** + * 将笔记移动到指定文件夹 + *

+ * 更新笔记的父文件夹ID和原始父文件夹ID,并标记为本地修改。 + *

+ * + * @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); + values.put(NoteColumns.ORIGIN_PARENT_ID, srcFolderId); + values.put(NoteColumns.LOCAL_MODIFIED, 1); + resolver.update(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, id), values, null, null); + } + + /** + * 批量将笔记移动到指定文件夹 + *

+ * 根据提供的笔记ID集合,批量更新笔记的父文件夹ID。 + *

+ * + * @param resolver ContentResolver实例,用于与内容提供者交互 + * @param ids 要移动的笔记ID集合 + * @param folderId 目标文件夹ID + * @return 移动成功返回true,否则返回false + */ + public static boolean batchMoveToFolder(ContentResolver resolver, HashSet ids, + long folderId) { + if (ids == null) { + Log.d(TAG, "the ids is null"); + return true; + } + + ArrayList operationList = new ArrayList(); + for (long id : ids) { + ContentProviderOperation.Builder builder = ContentProviderOperation + .newUpdate(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, id)); + builder.withValue(NoteColumns.PARENT_ID, folderId); + builder.withValue(NoteColumns.LOCAL_MODIFIED, 1); + operationList.add(builder.build()); + } + + try { + ContentProviderResult[] results = resolver.applyBatch(Notes.AUTHORITY, operationList); + if (results == null || results.length == 0 || results[0] == null) { + Log.d(TAG, "delete notes failed, ids:" + ids.toString()); + return false; + } + return true; + } catch (RemoteException e) { + Log.e(TAG, String.format("%s: %s", e.toString(), e.getMessage())); + } catch (OperationApplicationException e) { + Log.e(TAG, String.format("%s: %s", e.toString(), e.getMessage())); + } + return false; + } + + /** + * 获取用户文件夹数量 + *

+ * 查询并返回除系统文件夹外的所有用户文件夹数量。 + *

+ * + * @param resolver ContentResolver实例,用于与内容提供者交互 + * @return 用户文件夹数量 + */ + public static int getUserFolderCount(ContentResolver resolver) { + Cursor cursor =resolver.query(Notes.CONTENT_NOTE_URI, + new String[] { "COUNT(*)" }, + NoteColumns.TYPE + "=? AND " + NoteColumns.PARENT_ID + "<>?", + new String[] { String.valueOf(Notes.TYPE_FOLDER), String.valueOf(Notes.ID_TRASH_FOLER)}, + null); + + int count = 0; + if(cursor != null) { + if(cursor.moveToFirst()) { + try { + count = cursor.getInt(0); + } catch (IndexOutOfBoundsException e) { + Log.e(TAG, "get folder count failed:" + e.toString()); + } finally { + cursor.close(); + } + } + } + return count; + } + + /** + * 检查笔记在数据库中是否可见 + *

+ * 检查指定ID和类型的笔记是否存在于数据库中,且不在垃圾箱中。 + *

+ * + * @param resolver ContentResolver实例,用于与内容提供者交互 + * @param noteId 笔记ID + * @param type 笔记类型 + * @return 可见返回true,否则返回false + */ + public static boolean visibleInNoteDatabase(ContentResolver resolver, long noteId, int type) { + Cursor cursor = resolver.query(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId), + null, + NoteColumns.TYPE + "=? AND " + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLER, + new String [] {String.valueOf(type)}, + null); + + boolean exist = false; + if (cursor != null) { + if (cursor.getCount() > 0) { + exist = true; + } + cursor.close(); + } + return exist; + } + + /** + * 检查笔记是否存在于数据库中 + *

+ * 根据笔记ID检查笔记是否存在于数据库中。 + *

+ * + * @param resolver ContentResolver实例,用于与内容提供者交互 + * @param noteId 笔记ID + * @return 存在返回true,否则返回false + */ + public static boolean existInNoteDatabase(ContentResolver resolver, long noteId) { + Cursor cursor = resolver.query(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId), + null, null, null, null); + + boolean exist = false; + if (cursor != null) { + if (cursor.getCount() > 0) { + exist = true; + } + cursor.close(); + } + return exist; + } + + /** + * 检查数据是否存在于数据库中 + *

+ * 根据数据ID检查数据是否存在于数据库中。 + *

+ * + * @param resolver ContentResolver实例,用于与内容提供者交互 + * @param dataId 数据ID + * @return 存在返回true,否则返回false + */ + public static boolean existInDataDatabase(ContentResolver resolver, long dataId) { + Cursor cursor = resolver.query(ContentUris.withAppendedId(Notes.CONTENT_DATA_URI, dataId), + null, null, null, null); + + boolean exist = false; + if (cursor != null) { + if (cursor.getCount() > 0) { + exist = true; + } + cursor.close(); + } + return exist; + } + + /** + * 检查可见文件夹名称是否存在 + *

+ * 检查指定名称的文件夹是否存在于数据库中,且不在垃圾箱中。 + *

+ * + * @param resolver ContentResolver实例,用于与内容提供者交互 + * @param name 文件夹名称 + * @return 存在返回true,否则返回false + */ + public static boolean checkVisibleFolderName(ContentResolver resolver, String name) { + Cursor cursor = resolver.query(Notes.CONTENT_NOTE_URI, null, + NoteColumns.TYPE + "=" + Notes.TYPE_FOLDER + + " AND " + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLER + + " AND " + NoteColumns.SNIPPET + "=?", + new String[] { name }, null); + boolean exist = false; + if(cursor != null) { + if(cursor.getCount() > 0) { + exist = true; + } + cursor.close(); + } + return exist; + } + + /** + * 获取文件夹中笔记的小部件属性 + *

+ * 查询并返回指定文件夹下所有笔记的小部件ID和类型。 + *

+ * + * @param resolver ContentResolver实例,用于与内容提供者交互 + * @param folderId 文件夹ID + * @return 小部件属性集合,如果没有则返回null + */ + public static HashSet getFolderNoteWidget(ContentResolver resolver, long folderId) { + Cursor c = resolver.query(Notes.CONTENT_NOTE_URI, + new String[] { NoteColumns.WIDGET_ID, NoteColumns.WIDGET_TYPE }, + NoteColumns.PARENT_ID + "=?", + new String[] { String.valueOf(folderId) }, + null); + + HashSet set = null; + if (c != null) { + if (c.moveToFirst()) { + set = new HashSet(); + do { + try { + AppWidgetAttribute widget = new AppWidgetAttribute(); + widget.widgetId = c.getInt(0); + widget.widgetType = c.getInt(1); + set.add(widget); + } catch (IndexOutOfBoundsException e) { + Log.e(TAG, e.toString()); + } + } while (c.moveToNext()); + } + c.close(); + } + 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 }, + CallNote.NOTE_ID + "=? AND " + CallNote.MIME_TYPE + "=?", + new String [] { String.valueOf(noteId), CallNote.CONTENT_ITEM_TYPE }, + null); + + if (cursor != null && cursor.moveToFirst()) { + try { + return cursor.getString(0); + } catch (IndexOutOfBoundsException e) { + Log.e(TAG, "Get call number fails " + e.toString()); + } finally { + cursor.close(); + } + } + return ""; + } + + /** + * 根据电话号码和通话日期获取笔记ID + *

+ * 查询并返回匹配指定电话号码和通话日期的通话笔记ID。 + *

+ * + * @param resolver ContentResolver实例,用于与内容提供者交互 + * @param phoneNumber 电话号码 + * @param callDate 通话日期时间戳 + * @return 笔记ID,如果没有找到则返回0 + */ + public static long getNoteIdByPhoneNumberAndCallDate(ContentResolver resolver, String phoneNumber, long callDate) { + Cursor cursor = resolver.query(Notes.CONTENT_DATA_URI, + new String [] { CallNote.NOTE_ID }, + CallNote.CALL_DATE + "=? AND " + CallNote.MIME_TYPE + "=? AND PHONE_NUMBERS_EQUAL(" + + CallNote.PHONE_NUMBER + ",?)", + new String [] { String.valueOf(callDate), CallNote.CONTENT_ITEM_TYPE, phoneNumber }, + null); + + if (cursor != null) { + if (cursor.moveToFirst()) { + try { + return cursor.getLong(0); + } catch (IndexOutOfBoundsException e) { + Log.e(TAG, "Get call note id fails " + e.toString()); + } + } + cursor.close(); + } + return 0; + } + + /** + * 根据笔记ID获取摘要 + *

+ * 查询并返回指定笔记ID的摘要内容。 + * 如果笔记不存在,将抛出IllegalArgumentException异常。 + *

+ * + * @param resolver ContentResolver实例,用于与内容提供者交互 + * @param noteId 笔记ID + * @return 笔记摘要 + * @throws IllegalArgumentException 如果笔记不存在 + */ + public static String getSnippetById(ContentResolver resolver, long noteId) { + Cursor cursor = resolver.query(Notes.CONTENT_NOTE_URI, + new String [] { NoteColumns.SNIPPET }, + NoteColumns.ID + "=?", + new String [] { String.valueOf(noteId)}, + null); + + if (cursor != null) { + String snippet = ""; + if (cursor.moveToFirst()) { + snippet = cursor.getString(0); + } + cursor.close(); + return snippet; + } + 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(); + int index = snippet.indexOf('\n'); + if (index != -1) { + snippet = snippet.substring(0, index); + } + } + return snippet; + } +} diff --git a/src/main/java/net/micode/notes/tool/GTaskStringUtils.java b/src/main/java/net/micode/notes/tool/GTaskStringUtils.java new file mode 100644 index 0000000..e9e7aab --- /dev/null +++ b/src/main/java/net/micode/notes/tool/GTaskStringUtils.java @@ -0,0 +1,166 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.tool; + +/** + * GTask字符串常量工具类,定义了与GTask服务交互时使用的各种JSON字段名和文件夹名称。 + *

+ * 该类包含了与Google任务服务(GTask)进行JSON数据交换时所需的所有字符串常量, + * 包括动作类型、实体类型、字段名称以及文件夹命名规则等。 + *

+ */ +public class GTaskStringUtils { + + /** 动作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"; + + /** 创建者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笔记文件夹前缀 */ + 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"; + + /** GTask 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/main/java/net/micode/notes/tool/ResourceParser.java b/src/main/java/net/micode/notes/tool/ResourceParser.java new file mode 100644 index 0000000..1c3c73a --- /dev/null +++ b/src/main/java/net/micode/notes/tool/ResourceParser.java @@ -0,0 +1,296 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.tool; + +import android.content.Context; +import android.preference.PreferenceManager; + +import net.micode.notes.R; +import net.micode.notes.ui.NotesPreferenceActivity; + +/** + * 资源解析工具类,管理笔记应用中使用的各种资源配置和常量。 + *

+ * 该类包含了笔记的背景颜色、字体大小等常量定义,以及管理笔记背景、 + * 列表项背景、小部件背景和文本外观等资源的内部类。 + *

+ */ +public class ResourceParser { + + /** 黄色背景ID */ + public static final int YELLOW = 0; + /** 蓝色背景ID */ + public static final int BLUE = 1; + /** 白色背景ID */ + public static final int WHITE = 2; + /** 绿色背景ID */ + public static final int GREEN = 3; + /** 红色背景ID */ + public static final int RED = 4; + + /** 默认背景颜色ID */ + public static final int BG_DEFAULT_COLOR = YELLOW; + + /** 小字体大小ID */ + public static final int TEXT_SMALL = 0; + /** 中字体大小ID */ + public static final int TEXT_MEDIUM = 1; + /** 大字体大小ID */ + public static final int TEXT_LARGE = 2; + /** 超大字体大小ID */ + public static final int TEXT_SUPER = 3; + + /** 默认字体大小ID */ + 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_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 + }; + + /** + * 获取笔记背景资源ID + * + * @param id 背景颜色ID + * @return 对应的背景资源ID + */ + public static int getNoteBgResource(int id) { + return BG_EDIT_RESOURCES[id]; + } + + /** + * 获取笔记标题背景资源ID + * + * @param id 背景颜色ID + * @return 对应的标题背景资源ID + */ + public static int getNoteTitleBgResource(int id) { + return BG_EDIT_TITLE_RESOURCES[id]; + } + } + + /** + * 获取默认的笔记背景颜色ID + *

+ * 根据用户设置决定返回固定默认颜色还是随机颜色。 + *

+ * + * @param context 上下文对象 + * @return 默认的背景颜色ID + */ + public static int getDefaultBgId(Context context) { + if (PreferenceManager.getDefaultSharedPreferences(context).getBoolean( + NotesPreferenceActivity.PREFERENCE_SET_BG_COLOR_KEY, false)) { + return (int) (Math.random() * NoteBgResources.BG_EDIT_RESOURCES.length); + } else { + return BG_DEFAULT_COLOR; + } + } + + /** + * 笔记列表项背景资源管理类,提供笔记列表中不同位置项的背景资源。 + */ + 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_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_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 + }; + + /** + * 获取列表第一项背景资源ID + * + * @param id 背景颜色ID + * @return 对应的第一项背景资源ID + */ + public static int getNoteBgFirstRes(int id) { + return BG_FIRST_RESOURCES[id]; + } + + /** + * 获取列表最后一项背景资源ID + * + * @param id 背景颜色ID + * @return 对应的最后一项背景资源ID + */ + public static int getNoteBgLastRes(int id) { + return BG_LAST_RESOURCES[id]; + } + + /** + * 获取列表单独项背景资源ID + * + * @param id 背景颜色ID + * @return 对应的单独项背景资源ID + */ + public static int getNoteBgSingleRes(int id) { + return BG_SINGLE_RESOURCES[id]; + } + + /** + * 获取列表中间项背景资源ID + * + * @param id 背景颜色ID + * @return 对应的中间项背景资源ID + */ + public static int getNoteBgNormalRes(int id) { + return BG_NORMAL_RESOURCES[id]; + } + + /** + * 获取文件夹背景资源ID + * + * @return 文件夹背景资源ID + */ + public static int getFolderBgRes() { + return R.drawable.list_folder; + } + } + + /** + * 小部件背景资源管理类,提供不同尺寸小部件的背景资源。 + */ + public static class WidgetBgResources { + /** 2x尺寸小部件背景资源数组 */ + 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尺寸小部件背景资源ID + * + * @param id 背景颜色ID + * @return 对应的2x尺寸小部件背景资源ID + */ + public static int getWidget2xBgResource(int id) { + return BG_2X_RESOURCES[id]; + } + + /** 4x尺寸小部件背景资源数组 */ + 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尺寸小部件背景资源ID + * + * @param id 背景颜色ID + * @return 对应的4x尺寸小部件背景资源ID + */ + 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 + }; + + /** + * 获取文本外观资源ID + *

+ * 如果ID超出资源数组范围,返回默认字体大小的资源ID。 + *

+ * + * @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} + */ + if (id >= TEXTAPPEARANCE_RESOURCES.length) { + return BG_DEFAULT_FONT_SIZE; + } + return TEXTAPPEARANCE_RESOURCES[id]; + } + + /** + * 获取文本外观资源数组的大小 + * + * @return 文本外观资源数组的大小 + */ + public static int getResourcesSize() { + return TEXTAPPEARANCE_RESOURCES.length; + } + } +} diff --git a/src/main/java/net/micode/notes/ui/AlarmAlertActivity.java b/src/main/java/net/micode/notes/ui/AlarmAlertActivity.java new file mode 100644 index 0000000..fd4c758 --- /dev/null +++ b/src/main/java/net/micode/notes/ui/AlarmAlertActivity.java @@ -0,0 +1,255 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.app.Activity; +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.DialogInterface.OnClickListener; +import android.content.DialogInterface.OnDismissListener; +import android.content.Intent; +import android.media.AudioManager; +import android.media.MediaPlayer; +import android.media.RingtoneManager; +import android.net.Uri; +import android.os.Bundle; +import android.os.PowerManager; +import android.provider.Settings; +import android.view.Window; +import android.view.WindowManager; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +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; + + /** + * 活动创建时的初始化方法 + *

+ * 该方法完成以下初始化工作: + * 1. 设置窗口特性,隐藏标题栏 + * 2. 配置窗口标志,确保在锁屏状态下也能显示 + * 3. 如果屏幕未开启,则添加额外标志以唤醒屏幕并保持点亮 + * 4. 从Intent中获取笔记ID和摘要信息 + * 5. 创建MediaPlayer实例用于播放提醒铃声 + * 6. 检查笔记是否存在于数据库中 + * 7. 如果笔记存在,则显示提醒对话框并播放提醒铃声 + *

+ * @param savedInstanceState 保存的实例状态 + */ + @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 + | WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON + | WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR); + } + + Intent intent = getIntent(); + + try { + 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; + } catch (IllegalArgumentException e) { + e.printStackTrace(); + return; + } + + mPlayer = new MediaPlayer(); + if (DataUtils.visibleInNoteDatabase(getContentResolver(), mNoteId, Notes.TYPE_NOTE)) { + showActionDialog(); + playAlarmSound(); + } else { + finish(); + } + } + + /** + * 检查屏幕是否处于开启状态 + *

+ * 该方法通过PowerManager系统服务获取当前屏幕状态 + *

+ * @return 如果屏幕处于开启状态则返回true,否则返回false + */ + private boolean isScreenOn() { + PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); + return pm.isScreenOn(); + } + + /** + * 播放提醒铃声 + *

+ * 该方法完成以下工作: + * 1. 获取系统默认的闹钟铃声URI + * 2. 检查系统的静音模式设置,确定应该使用的音频流类型 + * 3. 根据静音模式设置选择合适的音频流类型 + * 4. 设置MediaPlayer的数据源为获取到的铃声URI + * 5. 准备MediaPlayer并设置为循环播放模式 + * 6. 开始播放提醒铃声 + * 7. 处理可能出现的各种异常 + *

+ */ + 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 { + mPlayer.setAudioStreamType(AudioManager.STREAM_ALARM); + } + try { + mPlayer.setDataSource(this, url); + mPlayer.prepare(); + 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(); + } + } + + /** + * 显示提醒对话框 + *

+ * 该方法创建并显示一个提醒对话框,包含以下内容: + * 1. 设置对话框标题为应用名称 + * 2. 设置对话框消息为笔记的摘要内容 + * 3. 添加确定按钮,点击后关闭对话框 + * 4. 如果屏幕处于开启状态,添加进入按钮,点击后进入笔记编辑界面 + * 5. 设置对话框关闭监听器,用于在对话框关闭时停止提醒铃声并结束活动 + *

+ */ + 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); + } + + /** + * 处理提醒对话框中的按钮点击事件 + *

+ * 该方法实现了OnClickListener接口,根据点击的按钮执行不同的操作: + * 1. 如果点击的是负按钮(进入按钮),则创建Intent跳转到NoteEditActivity + * 2. 设置Intent的Action为ACTION_VIEW,并将笔记ID作为额外数据传递 + * 3. 启动NoteEditActivity让用户查看或编辑对应的笔记 + * 4. 如果点击的是其他按钮(如确定按钮),则不执行任何额外操作 + *

+ * @param dialog 触发点击事件的对话框 + * @param which 点击的按钮ID,对应DialogInterface中的按钮常量 + */ + 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); + startActivity(intent); + break; + default: + break; + } + } + + /** + * 处理提醒对话框关闭事件 + *

+ * 该方法实现了OnDismissListener接口,当提醒对话框被关闭时(无论点击了哪个按钮或通过其他方式关闭), + * 会停止提醒铃声并结束当前活动 + *

+ * @param dialog 被关闭的对话框 + */ + public void onDismiss(DialogInterface dialog) { + stopAlarmSound(); + finish(); + } + + /** + * 停止提醒铃声并释放媒体播放器资源 + *

+ * 该方法完成以下工作: + * 1. 检查媒体播放器是否存在 + * 2. 如果存在,则停止播放铃声 + * 3. 释放媒体播放器占用的资源 + * 4. 将媒体播放器引用置为null,防止内存泄漏 + *

+ */ + private void stopAlarmSound() { + if (mPlayer != null) { + mPlayer.stop(); + mPlayer.release(); + mPlayer = null; + } + } +} diff --git a/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java b/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java new file mode 100644 index 0000000..4de50d9 --- /dev/null +++ b/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java @@ -0,0 +1,93 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.app.AlarmManager; +import android.app.PendingIntent; +import android.content.BroadcastReceiver; +import android.content.ContentUris; +import android.content.Context; +import android.content.Intent; +import android.database.Cursor; + +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.NoteColumns; + + +/** + * 闹钟初始化广播接收器 + *

+ * 该广播接收器负责在系统启动时重新注册所有未触发的笔记闹钟。 + * 当系统重启后,之前设置的闹钟会丢失,需要通过该接收器重新初始化 + *

+ */ +public class AlarmInitReceiver extends BroadcastReceiver { + /** + * 闹钟数据查询的投影列数组 + *

+ * 定义了从数据库查询笔记闹钟数据时需要获取的列,包括笔记ID和闹钟触发日期 + *

+ */ + private static final String [] PROJECTION = new String [] { + NoteColumns.ID, + NoteColumns.ALERTED_DATE + }; + + /** + * 查询结果中笔记ID列的索引 + */ + private static final int COLUMN_ID = 0; + + /** + * 查询结果中闹钟触发日期列的索引 + */ + private static final int COLUMN_ALERTED_DATE = 1; + + /** + * 接收广播时调用的方法 + *

+ * 当系统发送广播时(通常是系统启动完成),该方法会查询所有设置了未来闹钟的笔记, + * 并使用AlarmManager重新注册这些闹钟 + *

+ * @param context 上下文对象 + * @param 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, + new String[] { String.valueOf(currentDate) }, + null); + + if (c != null) { + if (c.moveToFirst()) { + do { + long alertDate = c.getLong(COLUMN_ALERTED_DATE); + Intent sender = new Intent(context, AlarmReceiver.class); + sender.setData(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, c.getLong(COLUMN_ID))); + 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/main/java/net/micode/notes/ui/AlarmReceiver.java b/src/main/java/net/micode/notes/ui/AlarmReceiver.java new file mode 100644 index 0000000..610716c --- /dev/null +++ b/src/main/java/net/micode/notes/ui/AlarmReceiver.java @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; + +/** + * 闹钟触发广播接收器 + *

+ * 该广播接收器负责处理闹钟触发事件,当闹钟时间到达时,它会启动闹钟提醒活动 + *

+ */ +public class AlarmReceiver extends BroadcastReceiver { + /** + * 接收闹钟触发广播时调用的方法 + *

+ * 当闹钟时间到达时,该方法会启动AlarmAlertActivity来显示闹钟提醒 + *

+ * @param context 上下文对象 + * @param intent 接收到的广播意图,包含闹钟相关的笔记信息 + */ + @Override + public void onReceive(Context context, Intent intent) { + intent.setClass(context, AlarmAlertActivity.class); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + context.startActivity(intent); + } +} diff --git a/src/main/java/net/micode/notes/ui/DateTimePicker.java b/src/main/java/net/micode/notes/ui/DateTimePicker.java new file mode 100644 index 0000000..c805b60 --- /dev/null +++ b/src/main/java/net/micode/notes/ui/DateTimePicker.java @@ -0,0 +1,646 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import java.text.DateFormatSymbols; +import java.util.Calendar; + +import net.micode.notes.R; + + +import android.content.Context; +import android.text.format.DateFormat; +import android.view.View; +import android.widget.FrameLayout; +import android.widget.NumberPicker; + +/** + * 日期时间选择组件 + *

+ * 该类是一个自定义的日期时间选择组件,继承自FrameLayout,用于在小米便签应用中 + * 提供直观的日期时间选择界面。它支持12/24小时制切换,并通过NumberPicker组件 + * 实现日期、小时、分钟和AM/PM的选择 + *

+ */ +public class DateTimePicker extends FrameLayout { + + /** + * 默认启用状态 + */ + private static final boolean DEFAULT_ENABLE_STATE = true; + + /** + * 半天的小时数(12小时) + */ + private static final int HOURS_IN_HALF_DAY = 12; + + /** + * 全天的小时数(24小时) + */ + private static final int HOURS_IN_ALL_DAY = 24; + + /** + * 一周的天数(7天) + */ + private static final int DAYS_IN_ALL_WEEK = 7; + + /** + * 日期选择器的最小值 + */ + private static final int DATE_SPINNER_MIN_VAL = 0; + + /** + * 日期选择器的最大值 + */ + private static final int DATE_SPINNER_MAX_VAL = DAYS_IN_ALL_WEEK - 1; + + /** + * 24小时制下小时选择器的最小值 + */ + private static final int HOUR_SPINNER_MIN_VAL_24_HOUR_VIEW = 0; + + /** + * 24小时制下小时选择器的最大值 + */ + private static final int HOUR_SPINNER_MAX_VAL_24_HOUR_VIEW = 23; + + /** + * 12小时制下小时选择器的最小值 + */ + private static final int HOUR_SPINNER_MIN_VAL_12_HOUR_VIEW = 1; + + /** + * 12小时制下小时选择器的最大值 + */ + private static final int HOUR_SPINNER_MAX_VAL_12_HOUR_VIEW = 12; + + /** + * 分钟选择器的最小值 + */ + private static final int MINUT_SPINNER_MIN_VAL = 0; + + /** + * 分钟选择器的最大值 + */ + private static final int MINUT_SPINNER_MAX_VAL = 59; + + /** + * AM/PM选择器的最小值 + */ + private static final int AMPM_SPINNER_MIN_VAL = 0; + + /** + * AM/PM选择器的最大值 + */ + private static final int AMPM_SPINNER_MAX_VAL = 1; + + /** + * 日期选择器组件 + */ + private final NumberPicker mDateSpinner; + + /** + * 小时选择器组件 + */ + private final NumberPicker mHourSpinner; + + /** + * 分钟选择器组件 + */ + private final NumberPicker mMinuteSpinner; + + /** + * AM/PM选择器组件 + */ + private final NumberPicker mAmPmSpinner; + + /** + * 当前选择的日期和时间 + */ + private Calendar mDate; + + /** + * 日期选择器显示的日期值数组 + */ + private String[] mDateDisplayValues = new String[DAYS_IN_ALL_WEEK]; + + /** + * 是否为上午 + */ + private boolean mIsAm; + + /** + * 是否为24小时制视图 + */ + private boolean mIs24HourView; + + /** + * 组件是否启用 + */ + 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(); + 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); + isDateChanged = true; + } else if (mIsAm && oldVal == HOURS_IN_HALF_DAY && newVal == HOURS_IN_HALF_DAY - 1) { + cal.setTimeInMillis(mDate.getTimeInMillis()); + 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 { + if (oldVal == HOURS_IN_ALL_DAY - 1 && newVal == 0) { + cal.setTimeInMillis(mDate.getTimeInMillis()); + cal.add(Calendar.DAY_OF_YEAR, 1); + isDateChanged = true; + } else if (oldVal == 0 && newVal == HOURS_IN_ALL_DAY - 1) { + cal.setTimeInMillis(mDate.getTimeInMillis()); + cal.add(Calendar.DAY_OF_YEAR, -1); + 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)); + setCurrentDay(cal.get(Calendar.DAY_OF_MONTH)); + } + } + }; + + 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()); + updateDateControl(); + int newHour = getCurrentHourOfDay(); + if (newHour >= HOURS_IN_HALF_DAY) { + mIsAm = false; + updateAmPmControl(); + } else { + mIsAm = true; + updateAmPmControl(); + } + } + mDate.set(Calendar.MINUTE, newVal); + onDateTimeChanged(); + } + }; + + private NumberPicker.OnValueChangeListener mOnAmPmChangedListener = new NumberPicker.OnValueChangeListener() { + @Override + public void onValueChange(NumberPicker picker, int oldVal, int newVal) { + mIsAm = !mIsAm; + if (mIsAm) { + mDate.add(Calendar.HOUR_OF_DAY, -HOURS_IN_HALF_DAY); + } else { + mDate.add(Calendar.HOUR_OF_DAY, HOURS_IN_HALF_DAY); + } + updateAmPmControl(); + onDateTimeChanged(); + } + }; + + /** + * 日期时间变化监听器接口 + *

+ * 当日期时间选择器的值发生变化时,会通过此接口通知外部 + *

+ */ + public interface OnDateTimeChangedListener { + /** + * 日期时间变化时调用的方法 + * @param view 日期时间选择器实例 + * @param year 选择的年份 + * @param month 选择的月份(0-11) + * @param dayOfMonth 选择的日(1-31) + * @param hourOfDay 选择的小时(0-23) + * @param minute 选择的分钟(0-59) + */ + void onDateTimeChanged(DateTimePicker view, int year, int month, + int dayOfMonth, int hourOfDay, int minute); + } + + /** + * 构造函数,使用当前时间初始化日期时间选择器 + * @param context 上下文对象 + */ + public DateTimePicker(Context context) { + this(context, System.currentTimeMillis()); + } + + /** + * 构造函数,使用指定时间初始化日期时间选择器,根据系统设置决定是否使用24小时制 + * @param context 上下文对象 + * @param date 初始日期时间,以毫秒为单位 + */ + public DateTimePicker(Context context, long date) { + this(context, date, DateFormat.is24HourFormat(context)); + } + + /** + * 构造函数,使用指定时间和时间格式初始化日期时间选择器 + * @param context 上下文对象 + * @param date 初始日期时间,以毫秒为单位 + * @param is24HourView 是否使用24小时制 + */ + public DateTimePicker(Context context, long date, boolean is24HourView) { + super(context); + mDate = Calendar.getInstance(); + mInitialising = true; + 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); + + String[] stringsForAmPm = new DateFormatSymbols().getAmPmStrings(); + mAmPmSpinner = (NumberPicker) findViewById(R.id.amPm); + mAmPmSpinner.setMinValue(AMPM_SPINNER_MIN_VAL); + mAmPmSpinner.setMaxValue(AMPM_SPINNER_MAX_VAL); + 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) { + return; + } + super.setEnabled(enabled); + mDateSpinner.setEnabled(enabled); + mMinuteSpinner.setEnabled(enabled); + mHourSpinner.setEnabled(enabled); + mAmPmSpinner.setEnabled(enabled); + 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(); + cal.setTimeInMillis(date); + setCurrentDate(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH), + cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE)); + } + + /** + * 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) { + setCurrentYear(year); + setCurrentMonth(month); + setCurrentDay(dayOfMonth); + setCurrentHour(hourOfDay); + setCurrentMinute(minute); + } + + /** + * 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()) { + return; + } + mDate.set(Calendar.YEAR, year); + updateDateControl(); + onDateTimeChanged(); + } + + /** + * 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()) { + return; + } + mDate.set(Calendar.MONTH, month); + updateDateControl(); + onDateTimeChanged(); + } + + /** + * 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()) { + return; + } + mDate.set(Calendar.DAY_OF_MONTH, dayOfMonth); + updateDateControl(); + onDateTimeChanged(); + } + + /** + * Get current hour in 24 hour mode, in the range (0~23) + * @return The current hour in 24 hour mode + */ + public int getCurrentHourOfDay() { + return mDate.get(Calendar.HOUR_OF_DAY); + } + + /** + * 获取当前小时 + *

+ * 根据当前视图模式返回正确的小时值: + * - 24小时制:直接返回当前小时(0-23) + * - 12小时制:返回1-12之间的小时值 + *

+ * @return 当前小时值 + */ + private int getCurrentHour() { + if (mIs24HourView){ + return getCurrentHourOfDay(); + } else { + int hour = getCurrentHourOfDay(); + if (hour > HOURS_IN_HALF_DAY) { + return hour - HOURS_IN_HALF_DAY; + } else { + return hour == 0 ? HOURS_IN_HALF_DAY : hour; + } + } + } + + /** + * 设置当前小时(24小时制,范围0-23) + * @param hourOfDay 当前小时值(24小时制) + */ + public void setCurrentHour(int hourOfDay) { + if (!mInitialising && hourOfDay == getCurrentHourOfDay()) { + return; + } + mDate.set(Calendar.HOUR_OF_DAY, hourOfDay); + if (!mIs24HourView) { + if (hourOfDay >= HOURS_IN_HALF_DAY) { + mIsAm = false; + if (hourOfDay > HOURS_IN_HALF_DAY) { + hourOfDay -= HOURS_IN_HALF_DAY; + } + } else { + mIsAm = true; + if (hourOfDay == 0) { + hourOfDay = HOURS_IN_HALF_DAY; + } + } + updateAmPmControl(); + } + mHourSpinner.setValue(hourOfDay); + onDateTimeChanged(); + } + + /** + * 获取当前分钟 + * @return 当前分钟值(0-59) + */ + public int getCurrentMinute() { + return mDate.get(Calendar.MINUTE); + } + + /** + * 设置当前分钟 + * @param minute 当前分钟值(0-59) + */ + public void setCurrentMinute(int minute) { + if (!mInitialising && minute == getCurrentMinute()) { + return; + } + mMinuteSpinner.setValue(minute); + mDate.set(Calendar.MINUTE, minute); + onDateTimeChanged(); + } + + /** + * 获取当前是否为24小时制视图 + * @return true表示为24小时制视图,false表示为12小时制视图 + */ + public boolean is24HourView () { + return mIs24HourView; + } + + /** + * 设置是否使用24小时制或AM/PM模式 + * @param is24HourView true表示使用24小时制,false表示使用AM/PM模式 + */ + public void set24HourView(boolean is24HourView) { + if (mIs24HourView == is24HourView) { + return; + } + mIs24HourView = is24HourView; + mAmPmSpinner.setVisibility(is24HourView ? View.GONE : View.VISIBLE); + int hour = getCurrentHourOfDay(); + updateHourControl(); + setCurrentHour(hour); + updateAmPmControl(); + } + + /** + * 更新日期控件 + *

+ * 该方法负责更新日期选择器的显示值,显示当前日期前后几天的日期 + *

+ */ + private void updateDateControl() { + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(mDate.getTimeInMillis()); + cal.add(Calendar.DAY_OF_YEAR, -DAYS_IN_ALL_WEEK / 2 - 1); + mDateSpinner.setDisplayedValues(null); + for (int i = 0; i < DAYS_IN_ALL_WEEK; ++i) { + cal.add(Calendar.DAY_OF_YEAR, 1); + mDateDisplayValues[i] = (String) DateFormat.format("MM.dd EEEE", cal); + } + mDateSpinner.setDisplayedValues(mDateDisplayValues); + mDateSpinner.setValue(DAYS_IN_ALL_WEEK / 2); + mDateSpinner.invalidate(); + } + + /** + * 更新AM/PM控件 + *

+ * 该方法负责根据当前时间和视图模式更新AM/PM选择器的显示 + *

+ */ + private void updateAmPmControl() { + if (mIs24HourView) { + mAmPmSpinner.setVisibility(View.GONE); + } else { + int index = mIsAm ? Calendar.AM : Calendar.PM; + mAmPmSpinner.setValue(index); + mAmPmSpinner.setVisibility(View.VISIBLE); + } + } + + /** + * 更新小时控件 + *

+ * 该方法负责根据当前视图模式更新小时选择器的最小值和最大值 + *

+ */ + private void updateHourControl() { + if (mIs24HourView) { + mHourSpinner.setMinValue(HOUR_SPINNER_MIN_VAL_24_HOUR_VIEW); + mHourSpinner.setMaxValue(HOUR_SPINNER_MAX_VAL_24_HOUR_VIEW); + } else { + mHourSpinner.setMinValue(HOUR_SPINNER_MIN_VAL_12_HOUR_VIEW); + mHourSpinner.setMaxValue(HOUR_SPINNER_MAX_VAL_12_HOUR_VIEW); + } + } + + /** + * 设置日期时间变化监听器 + * @param callback 日期时间变化时的回调函数,若为null则不执行任何操作 + */ + public void setOnDateTimeChangedListener(OnDateTimeChangedListener callback) { + mOnDateTimeChangedListener = callback; + } + + /** + * 日期时间变化时调用的方法 + *

+ * 当日期或时间发生变化时,该方法会通知注册的监听器 + *

+ */ + private void onDateTimeChanged() { + if (mOnDateTimeChangedListener != null) { + mOnDateTimeChangedListener.onDateTimeChanged(this, getCurrentYear(), + getCurrentMonth(), getCurrentDay(), getCurrentHourOfDay(), getCurrentMinute()); + } + } +} diff --git a/src/main/java/net/micode/notes/ui/DateTimePickerDialog.java b/src/main/java/net/micode/notes/ui/DateTimePickerDialog.java new file mode 100644 index 0000000..b9986ac --- /dev/null +++ b/src/main/java/net/micode/notes/ui/DateTimePickerDialog.java @@ -0,0 +1,152 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import java.util.Calendar; + +import net.micode.notes.R; +import net.micode.notes.ui.DateTimePicker; +import net.micode.notes.ui.DateTimePicker.OnDateTimeChangedListener; + +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.DialogInterface.OnClickListener; +import android.text.format.DateFormat; +import android.text.format.DateUtils; + +/** + * 日期时间选择对话框 + *

+ * 该类是一个封装了DateTimePicker组件的对话框,用于在小米便签应用中 + * 提供一个完整的日期时间选择界面。用户可以通过该对话框选择日期和时间, + * 并在确认后将选择结果返回给调用者 + *

+ */ +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 { + /** + * 日期时间设置完成时调用的方法 + * @param dialog 对话框实例 + * @param date 选择的日期时间,以毫秒为单位 + */ + 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 | + DateUtils.FORMAT_SHOW_DATE | + DateUtils.FORMAT_SHOW_TIME; + flag |= mIs24HourView ? DateUtils.FORMAT_24HOUR : DateUtils.FORMAT_24HOUR; + setTitle(DateUtils.formatDateTime(this.getContext(), date, flag)); + } + + /** + * 点击对话框按钮时调用的方法 + *

+ * 当用户点击对话框的确定按钮时,会调用该方法,通知注册的监听器 + *

+ * @param arg0 对话框实例 + * @param arg1 点击的按钮ID + */ + @Override + public void onClick(DialogInterface arg0, int arg1) { + if (mOnDateTimeSetListener != null) { + mOnDateTimeSetListener.OnDateTimeSet(this, mDate.getTimeInMillis()); + } + } + +} \ No newline at end of file diff --git a/src/main/java/net/micode/notes/ui/DropdownMenu.java b/src/main/java/net/micode/notes/ui/DropdownMenu.java new file mode 100644 index 0000000..4e58bbb --- /dev/null +++ b/src/main/java/net/micode/notes/ui/DropdownMenu.java @@ -0,0 +1,97 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.content.Context; +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.view.View.OnClickListener; +import android.widget.Button; +import android.widget.PopupMenu; +import android.widget.PopupMenu.OnMenuItemClickListener; + +import net.micode.notes.R; + +/** + * 下拉菜单封装类 + *

+ * 该类封装了Android的PopupMenu,提供了一个简单的接口来创建和管理下拉菜单 + *

+ */ +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(); + } + }); + } + + /** + * 设置下拉菜单项点击监听器 + * @param listener 菜单项点击监听器 + */ + public void setOnDropdownMenuItemClickListener(OnMenuItemClickListener listener) { + if (mPopupMenu != null) { + mPopupMenu.setOnMenuItemClickListener(listener); + } + } + + /** + * 查找指定ID的菜单项 + * @param id 菜单项ID + * @return 指定ID的菜单项,若不存在则返回null + */ + public MenuItem findItem(int id) { + return mMenu.findItem(id); + } + + /** + * 设置下拉菜单按钮的标题 + * @param title 按钮标题 + */ + public void setTitle(CharSequence title) { + mButton.setText(title); + } +} diff --git a/src/main/java/net/micode/notes/ui/FoldersListAdapter.java b/src/main/java/net/micode/notes/ui/FoldersListAdapter.java new file mode 100644 index 0000000..7e05bf2 --- /dev/null +++ b/src/main/java/net/micode/notes/ui/FoldersListAdapter.java @@ -0,0 +1,140 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.content.Context; +import android.database.Cursor; +import android.view.View; +import android.view.ViewGroup; +import android.widget.CursorAdapter; +import android.widget.LinearLayout; +import android.widget.TextView; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.NoteColumns; + + +/** + * 文件夹列表适配器 + *

+ * 该类继承自CursorAdapter,用于在小米便签应用中显示文件夹列表 + *

+ */ +public class FoldersListAdapter extends CursorAdapter { + /** + * 文件夹数据查询的投影列数组 + *

+ * 定义了从数据库查询文件夹数据时需要获取的列,包括文件夹ID和名称 + *

+ */ + public static final String [] PROJECTION = { + NoteColumns.ID, + NoteColumns.SNIPPET + }; + + /** + * 查询结果中文件夹ID列的索引 + */ + public static final int ID_COLUMN = 0; + + /** + * 查询结果中文件夹名称列的索引 + */ + 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 新创建的列表项视图 + */ + @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; + + /** + * 构造函数,创建文件夹列表项视图 + * @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/main/java/net/micode/notes/ui/NoteEditActivity.java b/src/main/java/net/micode/notes/ui/NoteEditActivity.java new file mode 100644 index 0000000..088dac7 --- /dev/null +++ b/src/main/java/net/micode/notes/ui/NoteEditActivity.java @@ -0,0 +1,1162 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.app.Activity; +import android.app.AlarmManager; +import android.app.AlertDialog; +import android.app.PendingIntent; +import android.app.SearchManager; +import android.appwidget.AppWidgetManager; +import android.content.ContentUris; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.graphics.Paint; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.text.Spannable; +import android.text.SpannableString; +import android.text.TextUtils; +import android.text.format.DateUtils; +import android.text.style.BackgroundColorSpan; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; +import android.view.MotionEvent; +import android.view.View; +import android.view.View.OnClickListener; +import android.view.WindowManager; +import android.widget.CheckBox; +import android.widget.CompoundButton; +import android.widget.CompoundButton.OnCheckedChangeListener; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; +import android.widget.Toast; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.TextNote; +import net.micode.notes.model.WorkingNote; +import net.micode.notes.model.WorkingNote.NoteSettingChangedListener; +import net.micode.notes.tool.DataUtils; +import net.micode.notes.tool.ResourceParser; +import net.micode.notes.tool.ResourceParser.TextAppearanceResources; +import net.micode.notes.ui.DateTimePickerDialog.OnDateTimeSetListener; +import net.micode.notes.ui.NoteEditText.OnTextViewChangeListener; +import net.micode.notes.widget.NoteWidgetProvider_2x; +import net.micode.notes.widget.NoteWidgetProvider_4x; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + + +/** + * 笔记编辑活动类,负责处理笔记的创建、编辑和保存操作。 + *

+ * 该类实现了笔记编辑界面的所有功能,包括文本编辑、背景颜色设置、字体大小调整、 + * 提醒设置、分享等功能,同时支持普通文本模式和清单模式的切换。 + *

+ */ +public class NoteEditActivity extends Activity implements OnClickListener, + NoteSettingChangedListener, OnTextViewChangeListener { + /** + * 头部视图持有者类,用于缓存头部视图的控件引用 + */ + private class HeadViewHolder { + public TextView tvModified; + + public ImageView ivAlertIcon; + + public TextView tvAlertDate; + + public ImageView ibSetBgColor; + } + + /** 背景颜色选择按钮映射表,将按钮ID映射到颜色ID */ + private static final Map sBgSelectorBtnsMap = new HashMap(); + static { + sBgSelectorBtnsMap.put(R.id.iv_bg_yellow, ResourceParser.YELLOW); + sBgSelectorBtnsMap.put(R.id.iv_bg_red, ResourceParser.RED); + sBgSelectorBtnsMap.put(R.id.iv_bg_blue, ResourceParser.BLUE); + sBgSelectorBtnsMap.put(R.id.iv_bg_green, ResourceParser.GREEN); + sBgSelectorBtnsMap.put(R.id.iv_bg_white, ResourceParser.WHITE); + } + + /** 背景颜色选择高亮映射表,将颜色ID映射到高亮视图ID */ + private static final Map sBgSelectorSelectionMap = new HashMap(); + static { + sBgSelectorSelectionMap.put(ResourceParser.YELLOW, R.id.iv_bg_yellow_select); + sBgSelectorSelectionMap.put(ResourceParser.RED, R.id.iv_bg_red_select); + sBgSelectorSelectionMap.put(ResourceParser.BLUE, R.id.iv_bg_blue_select); + sBgSelectorSelectionMap.put(ResourceParser.GREEN, R.id.iv_bg_green_select); + sBgSelectorSelectionMap.put(ResourceParser.WHITE, R.id.iv_bg_white_select); + } + + /** 字体大小按钮映射表,将按钮ID映射到字体大小ID */ + private static final Map sFontSizeBtnsMap = new HashMap(); + static { + sFontSizeBtnsMap.put(R.id.ll_font_large, ResourceParser.TEXT_LARGE); + sFontSizeBtnsMap.put(R.id.ll_font_small, ResourceParser.TEXT_SMALL); + sFontSizeBtnsMap.put(R.id.ll_font_normal, ResourceParser.TEXT_MEDIUM); + sFontSizeBtnsMap.put(R.id.ll_font_super, ResourceParser.TEXT_SUPER); + } + + /** 字体大小选择高亮映射表,将字体大小ID映射到高亮视图ID */ + private static final Map sFontSelectorSelectionMap = new HashMap(); + static { + sFontSelectorSelectionMap.put(ResourceParser.TEXT_LARGE, R.id.iv_large_select); + sFontSelectorSelectionMap.put(ResourceParser.TEXT_SMALL, R.id.iv_small_select); + sFontSelectorSelectionMap.put(ResourceParser.TEXT_MEDIUM, R.id.iv_medium_select); + sFontSelectorSelectionMap.put(ResourceParser.TEXT_SUPER, R.id.iv_super_select); + } + + /** 日志标签 */ + 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; + /** 字体大小ID */ + private int mFontSizeId; + + /** 字体大小偏好设置键 */ + private static final String PREFERENCE_FONT_SIZE = "pref_font_size"; + + /** 快捷图标标题最大长度 */ + private static final int SHORTCUT_ICON_TITLE_MAX_LEN = 10; + + /** 已选中标记 */ + public static final String TAG_CHECKED = String.valueOf('\u221A'); + /** 未选中标记 */ + public static final String TAG_UNCHECKED = String.valueOf('\u25A1'); + + /** 清单模式下的编辑文本列表 */ + private LinearLayout mEditTextList; + + /** 用户查询字符串 */ + private String mUserQuery; + /** 查询正则表达式模式 */ + private Pattern mPattern; + + /** + * 活动创建时调用,初始化界面和状态 + * + * @param savedInstanceState 保存的实例状态 + */ + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + this.setContentView(R.layout.note_edit); + + 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 + */ + @Override + protected void onRestoreInstanceState(Bundle savedInstanceState) { + super.onRestoreInstanceState(savedInstanceState); + if (savedInstanceState != null && savedInstanceState.containsKey(Intent.EXTRA_UID)) { + Intent intent = new Intent(Intent.ACTION_VIEW); + intent.putExtra(Intent.EXTRA_UID, savedInstanceState.getLong(Intent.EXTRA_UID)); + if (!initActivityState(intent)) { + finish(); + return; + } + Log.d(TAG, "Restoring from killed activity"); + } + } + + /** + * 初始化活动状态,根据传入的Intent处理不同的操作 + * + * @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 + */ + mWorkingNote = null; + if (TextUtils.equals(Intent.ACTION_VIEW, intent.getAction())) { + long noteId = intent.getLongExtra(Intent.EXTRA_UID, 0); + 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); + showToast(R.string.error_note_not_exist); + finish(); + return false; + } else { + mWorkingNote = WorkingNote.load(this, noteId); + if (mWorkingNote == null) { + Log.e(TAG, "load note failed with note id" + noteId); + finish(); + return false; + } + } + getWindow().setSoftInputMode( + WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN + | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); + } else if(TextUtils.equals(Intent.ACTION_INSERT_OR_EDIT, intent.getAction())) { + // 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); + int widgetType = intent.getIntExtra(Notes.INTENT_EXTRA_WIDGET_TYPE, + Notes.TYPE_WIDGET_INVALIDE); + 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) { + if (TextUtils.isEmpty(phoneNumber)) { + Log.w(TAG, "The call record number is null"); + } + long noteId = 0; + if ((noteId = DataUtils.getNoteIdByPhoneNumberAndCallDate(getContentResolver(), + phoneNumber, callDate)) > 0) { + mWorkingNote = WorkingNote.load(this, noteId); + if (mWorkingNote == null) { + Log.e(TAG, "load call note failed with note id" + noteId); + finish(); + return false; + } + } else { + mWorkingNote = WorkingNote.createEmptyNote(this, folderId, widgetId, + widgetType, bgResId); + mWorkingNote.convertToCallNote(phoneNumber, callDate); + } + } else { + mWorkingNote = WorkingNote.createEmptyNote(this, folderId, widgetId, widgetType, + bgResId); + } + + getWindow().setSoftInputMode( + WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE + | WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE); + } else { + Log.e(TAG, "Intent not specified action, should not support"); + finish(); + return false; + } + mWorkingNote.setOnSettingStatusChangedListener(this); + return true; + } + + /** + * 活动恢复时调用,初始化笔记屏幕 + */ + @Override + protected void onResume() { + super.onResume(); + 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 + */ + showAlertHeader(); + } + + /** + * 显示提醒头部信息,包括提醒图标和提醒时间 + */ + private void showAlertHeader() { + if (mWorkingNote.hasClockAlert()) { + long time = System.currentTimeMillis(); + if (time > mWorkingNote.getAlertDate()) { + mNoteHeaderHolder.tvAlertDate.setText(R.string.note_alert_expired); + } else { + mNoteHeaderHolder.tvAlertDate.setText(DateUtils.getRelativeTimeSpanString( + mWorkingNote.getAlertDate(), time, DateUtils.MINUTE_IN_MILLIS)); + } + mNoteHeaderHolder.tvAlertDate.setVisibility(View.VISIBLE); + mNoteHeaderHolder.ivAlertIcon.setVisibility(View.VISIBLE); + } else { + mNoteHeaderHolder.tvAlertDate.setVisibility(View.GONE); + mNoteHeaderHolder.ivAlertIcon.setVisibility(View.GONE); + }; + } + + /** + * 处理活动收到的新Intent + * + * @param intent 新的Intent对象 + */ + @Override + protected void onNewIntent(Intent intent) { + super.onNewIntent(intent); + initActivityState(intent); + } + + /** + * 保存活动状态,当活动可能被销毁时调用 + * + * @param outState 用于保存状态的Bundle对象 + */ + @Override + 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 + */ + if (!mWorkingNote.existInDatabase()) { + saveNote(); + } + outState.putLong(Intent.EXTRA_UID, mWorkingNote.getNoteId()); + Log.d(TAG, "Save working note id: " + mWorkingNote.getNoteId() + " onSaveInstanceState"); + } + + /** + * 分发触摸事件,当点击外部区域时关闭颜色选择器和字体大小选择器 + * + * @param ev 触摸事件对象 + * @return 事件是否被消费 + */ + @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); + return true; + } + return super.dispatchTouchEvent(ev); + } + + /** + * 检查触摸事件是否在指定视图范围内 + * + * @param view 要检查的视图 + * @param ev 触摸事件对象 + * @return 触摸事件是否在视图范围内 + */ + private boolean inRangeOfView(View view, MotionEvent ev) { + int []location = new int[2]; + view.getLocationOnScreen(location); + int x = location[0]; + int y = location[1]; + if (ev.getX() < x + || ev.getX() > (x + view.getWidth()) + || ev.getY() < y + || ev.getY() > (y + view.getHeight())) { + return false; + } + return true; + } + + /** + * 初始化资源,包括视图、事件监听器等 + */ + private void initResources() { + mHeadViewPanel = findViewById(R.id.note_title); + mNoteHeaderHolder = new HeadViewHolder(); + mNoteHeaderHolder.tvModified = (TextView) findViewById(R.id.tv_modified_date); + mNoteHeaderHolder.ivAlertIcon = (ImageView) findViewById(R.id.iv_alert_icon); + mNoteHeaderHolder.tvAlertDate = (TextView) findViewById(R.id.tv_alert_date); + mNoteHeaderHolder.ibSetBgColor = (ImageView) findViewById(R.id.btn_set_bg_color); + mNoteHeaderHolder.ibSetBgColor.setOnClickListener(this); + 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} + */ + if(mFontSizeId >= TextAppearanceResources.getResourcesSize()) { + mFontSizeId = ResourceParser.BG_DEFAULT_FONT_SIZE; + } + mEditTextList = (LinearLayout) findViewById(R.id.note_edit_list); + } + + /** + * 活动暂停时调用,保存笔记并清除设置状态 + */ + @Override + protected void onPause() { + super.onPause(); + if(saveNote()) { + Log.d(TAG, "Note data was saved with length:" + mWorkingNote.getContent().length()); + } + clearSettingState(); + } + + /** + * 更新小组件,根据笔记的小组件类型发送更新广播 + */ + private void updateWidget() { + Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_UPDATE); + if (mWorkingNote.getWidgetType() == Notes.TYPE_WIDGET_2X) { + intent.setClass(this, NoteWidgetProvider_2x.class); + } else if (mWorkingNote.getWidgetType() == Notes.TYPE_WIDGET_4X) { + intent.setClass(this, NoteWidgetProvider_4x.class); + } else { + Log.e(TAG, "Unspported widget type"); + return; + } + + intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, new int[] { + mWorkingNote.getWidgetId() + }); + + sendBroadcast(intent); + setResult(RESULT_OK, intent); + } + + /** + * 处理视图的点击事件 + * + * @param v 被点击的视图对象 + */ + 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); + } 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(); + findViewById(sFontSelectorSelectionMap.get(mFontSizeId)).setVisibility(View.VISIBLE); + if (mWorkingNote.getCheckListMode() == TextNote.MODE_CHECK_LIST) { + getWorkingText(); + switchToListMode(mWorkingNote.getContent()); + } else { + mNoteEditor.setTextAppearance(this, + TextAppearanceResources.getTexAppearanceResource(mFontSizeId)); + } + mFontSizeSelector.setVisibility(View.GONE); + } + } + + /** + * 处理返回按钮点击事件 + *

+ * 先尝试清除设置状态,如果成功则不执行返回操作,否则保存笔记并执行返回 + *

+ */ + @Override + public void onBackPressed() { + if(clearSettingState()) { + return; + } + + saveNote(); + super.onBackPressed(); + } + + /** + * 清除设置状态,隐藏所有设置选择器 + * + * @return 如果有设置选择器被隐藏,则返回true;否则返回false + */ + private boolean clearSettingState() { + if (mNoteBgColorSelector.getVisibility() == View.VISIBLE) { + mNoteBgColorSelector.setVisibility(View.GONE); + return true; + } else if (mFontSizeSelector.getVisibility() == View.VISIBLE) { + mFontSizeSelector.setVisibility(View.GONE); + return true; + } + return false; + } + + /** + * 背景颜色改变时调用的回调方法 + *

+ * 显示当前选中的背景颜色,并更新头部面板和编辑面板的背景资源 + *

+ */ + public void onBackgroundColorChanged() { + findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility( + View.VISIBLE); + mNoteEditorPanel.setBackgroundResource(mWorkingNote.getBgColorResId()); + mHeadViewPanel.setBackgroundResource(mWorkingNote.getTitleBgResId()); + } + + /** + * 准备选项菜单,在菜单显示前调用 + *

+ * 根据笔记类型和当前状态动态配置菜单项,包括加载不同的菜单资源、 + * 设置菜单标题和控制菜单项的可见性 + *

+ * + * @param menu 要准备的菜单对象 + * @return 是否成功准备菜单 + */ + @Override + public boolean onPrepareOptionsMenu(Menu menu) { + if (isFinishing()) { + return true; + } + clearSettingState(); + menu.clear(); + if (mWorkingNote.getFolderId() == Notes.ID_CALL_RECORD_FOLDER) { + getMenuInflater().inflate(R.menu.call_note_edit, menu); + } else { + getMenuInflater().inflate(R.menu.note_edit, menu); + } + if (mWorkingNote.getCheckListMode() == TextNote.MODE_CHECK_LIST) { + menu.findItem(R.id.menu_list_mode).setTitle(R.string.menu_normal_mode); + } else { + menu.findItem(R.id.menu_list_mode).setTitle(R.string.menu_list_mode); + } + if (mWorkingNote.hasClockAlert()) { + menu.findItem(R.id.menu_alert).setVisible(false); + } else { + menu.findItem(R.id.menu_delete_remind).setVisible(false); + } + return true; + } + + /** + * 处理菜单选项选择事件 + *

+ * 该方法处理各种菜单选项的点击事件,包括创建新笔记、删除笔记、设置字体大小、 + * 切换列表模式、分享笔记、发送到桌面、设置提醒等功能 + *

+ * @param item 被选择的菜单项 + * @return 总是返回true,表示事件已被处理 + */ + @Override + 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); + builder.setMessage(getString(R.string.alert_message_delete_note)); + builder.setPositiveButton(android.R.string.ok, + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + deleteCurrentNote(); + finish(); + } + }); + builder.setNegativeButton(android.R.string.cancel, null); + 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: + break; + } + return true; + } + + /** + * 设置笔记的提醒时间 + *

+ * 该方法显示一个日期时间选择对话框,让用户选择提醒时间, + * 并将选择的时间设置到当前编辑的笔记中 + *

+ */ + private void setReminder() { + DateTimePickerDialog d = new DateTimePickerDialog(this, System.currentTimeMillis()); + d.setOnDateTimeSetListener(new OnDateTimeSetListener() { + public void OnDateTimeSet(AlertDialog dialog, long date) { + mWorkingNote.setAlertDate(date , true); + } + }); + d.show(); + } + + /** + * 分享笔记到支持{@link Intent#ACTION_SEND}动作和{@text/plain}类型的应用 + *

+ * 该方法创建一个分享意图,将笔记内容发送给其他支持文本分享的应用程序 + *

+ * @param context 上下文对象 + * @param info 要分享的笔记内容 + */ + private void sendTo(Context context, String info) { + Intent intent = new Intent(Intent.ACTION_SEND); + intent.putExtra(Intent.EXTRA_TEXT, info); + intent.setType("text/plain"); + context.startActivity(intent); + } + + /** + * 创建新笔记 + *

+ * 该方法先保存当前编辑的笔记,然后结束当前活动并启动一个新的NoteEditActivity + * 来创建新笔记,确保笔记保存在同一文件夹中 + *

+ */ + private void createNewNote() { + // Firstly, save current editing notes + saveNote(); + + // For safety, start a new NoteEditActivity + finish(); + Intent intent = new Intent(this, NoteEditActivity.class); + intent.setAction(Intent.ACTION_INSERT_OR_EDIT); + intent.putExtra(Notes.INTENT_EXTRA_FOLDER_ID, mWorkingNote.getFolderId()); + startActivity(intent); + } + + /** + * 删除当前编辑的笔记 + *

+ * 该方法根据笔记是否存在于数据库中进行处理: + * 1. 如果笔记存在,将其ID添加到待删除列表 + * 2. 如果不是同步模式,直接删除笔记 + * 3. 如果是同步模式,将笔记移动到垃圾桶 + *

+ */ + private void deleteCurrentNote() { + if (mWorkingNote.existInDatabase()) { + HashSet ids = new HashSet(); + long id = mWorkingNote.getNoteId(); + if (id != Notes.ID_ROOT_FOLDER) { + ids.add(id); + } else { + Log.d(TAG, "Wrong note id, should not happen"); + } + if (!isSyncMode()) { + if (!DataUtils.batchDeleteNotes(getContentResolver(), ids)) { + Log.e(TAG, "Delete Note error"); + } + } else { + if (!DataUtils.batchMoveToFolder(getContentResolver(), ids, Notes.ID_TRASH_FOLER)) { + Log.e(TAG, "Move notes to trash folder error, should not happens"); + } + } + } + mWorkingNote.markDeleted(true); + } + + /** + * 检查是否启用了同步模式 + *

+ * 该方法通过检查同步账户名称是否存在来判断是否启用了同步模式 + *

+ * @return 如果启用了同步模式返回true,否则返回false + */ + private boolean isSyncMode() { + return NotesPreferenceActivity.getSyncAccountName(this).trim().length() > 0; + } + + /** + * 处理时钟提醒的变化 + *

+ * 该方法用于设置或取消笔记的时钟提醒, + * 如果笔记未保存,会先保存笔记,然后根据参数设置或取消闹钟 + *

+ * @param date 提醒时间的时间戳 + * @param set 如果为true则设置提醒,为false则取消提醒 + */ + public void onClockAlertChanged(long date, boolean set) { + // 用户可能会为未保存的笔记设置时钟,所以在设置提醒时钟之前,我们应该先保存笔记 + if (!mWorkingNote.existInDatabase()) { + saveNote(); + } + if (mWorkingNote.getNoteId() > 0) { + Intent intent = new Intent(this, AlarmReceiver.class); + intent.setData(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, mWorkingNote.getNoteId())); + PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0); + AlarmManager alarmManager = ((AlarmManager) getSystemService(ALARM_SERVICE)); + showAlertHeader(); + if(!set) { + alarmManager.cancel(pendingIntent); + } else { + alarmManager.set(AlarmManager.RTC_WAKEUP, date, pendingIntent); + } + } else { + /** + * There is the condition that user has input nothing (the note is + * not worthy saving), we have no note id, remind the user that he + * should input something + */ + Log.e(TAG, "Clock alert setting error"); + showToast(R.string.error_note_empty_for_clock); + } + } + + /** + * 更新小部件 + *

+ * 该方法调用updateWidget()方法来更新桌面小部件的内容 + *

+ */ + public void onWidgetChanged() { + updateWidget(); + } + + /** + * 处理编辑文本的删除操作 + *

+ * 该方法处理用户在编辑文本时按下删除键的操作,特别是在列表模式下: + * 1. 检查是否只有一个编辑文本项,如果是则直接返回 + * 2. 将索引大于当前删除项的所有编辑文本项的索引减1 + * 3. 从列表中移除指定索引的视图 + * 4. 将被删除的文本追加到前一个或第一个编辑文本项中 + * 5. 设置焦点并将光标移动到追加文本的开始位置 + *

+ * @param index 要删除的编辑文本项的索引 + * @param text 被删除的文本内容 + */ + public void onEditTextDelete(int index, String text) { + int childCount = mEditTextList.getChildCount(); + if (childCount == 1) { + return; + } + + for (int i = index + 1; i < childCount; i++) { + ((NoteEditText) mEditTextList.getChildAt(i).findViewById(R.id.et_edit_text)) + .setIndex(i - 1); + } + + mEditTextList.removeViewAt(index); + NoteEditText edit = null; + if(index == 0) { + edit = (NoteEditText) mEditTextList.getChildAt(0).findViewById( + R.id.et_edit_text); + } else { + edit = (NoteEditText) mEditTextList.getChildAt(index - 1).findViewById( + R.id.et_edit_text); + } + int length = edit.length(); + edit.append(text); + edit.requestFocus(); + edit.setSelection(length); + } + + /** + * 处理编辑文本的回车操作 + *

+ * 该方法处理用户在编辑文本时按下回车键的操作,在指定索引位置插入新的编辑文本项 + *

+ * @param index 插入新编辑文本项的索引位置 + * @param text 新编辑文本项的内容 + */ + public void onEditTextEnter(int index, String text) { + // 不应该发生的情况,用于调试检查 + if(index > mEditTextList.getChildCount()) { + Log.e(TAG, "Index out of mEditTextList boundrary, should not happen"); + } + + View view = getListItem(text, index); + mEditTextList.addView(view, index); + NoteEditText edit = (NoteEditText) view.findViewById(R.id.et_edit_text); + edit.requestFocus(); + edit.setSelection(0); + for (int i = index + 1; i < mEditTextList.getChildCount(); i++) { + ((NoteEditText) mEditTextList.getChildAt(i).findViewById(R.id.et_edit_text)) + .setIndex(i); + } + } + + /** + * 切换到列表模式 + *

+ * 该方法将笔记从普通文本模式切换到列表模式, + * 将文本内容按行分割并创建对应的列表项,最后添加一个空的列表项用于继续输入 + *

+ * @param text 当前笔记的文本内容 + */ + private void switchToListMode(String text) { + mEditTextList.removeAllViews(); + String[] items = text.split("\n"); + int index = 0; + for (String item : items) { + if(!TextUtils.isEmpty(item)) { + mEditTextList.addView(getListItem(item, index)); + index++; + } + } + mEditTextList.addView(getListItem("", index)); + mEditTextList.getChildAt(index).findViewById(R.id.et_edit_text).requestFocus(); + + mNoteEditor.setVisibility(View.GONE); + mEditTextList.setVisibility(View.VISIBLE); + } + + /** + * 获取带有高亮查询结果的文本 + *

+ * 该方法在完整文本中查找用户查询的内容,并为匹配项添加背景高亮效果 + *

+ * @param fullText 完整的文本内容 + * @param userQuery 用户查询的内容 + * @return 带有高亮查询结果的Spannable对象 + */ + private Spannable getHighlightQueryResult(String fullText, String userQuery) { + SpannableString spannable = new SpannableString(fullText == null ? "" : fullText); + if (!TextUtils.isEmpty(userQuery)) { + mPattern = Pattern.compile(userQuery); + Matcher m = mPattern.matcher(fullText); + int start = 0; + while (m.find(start)) { + spannable.setSpan( + new BackgroundColorSpan(this.getResources().getColor( + R.color.user_query_highlight)), m.start(), m.end(), + Spannable.SPAN_INCLUSIVE_EXCLUSIVE); + start = m.end(); + } + } + return spannable; + } + + /** + * 获取列表模式下的列表项视图 + *

+ * 该方法创建并配置列表模式下的列表项视图,包括: + * 1. 加载列表项布局 + * 2. 设置编辑文本的字体大小 + * 3. 配置复选框的选中状态变化监听器 + * 4. 根据项目文本的标签设置初始选中状态和文本样式 + * 5. 设置文本变化监听器和索引 + * 6. 应用查询高亮效果 + *

+ * @param item 列表项的文本内容 + * @param index 列表项的索引 + * @return 配置好的列表项视图 + */ + private View getListItem(String item, int index) { + View view = LayoutInflater.from(this).inflate(R.layout.note_edit_list_item, null); + final NoteEditText edit = (NoteEditText) view.findViewById(R.id.et_edit_text); + edit.setTextAppearance(this, TextAppearanceResources.getTexAppearanceResource(mFontSizeId)); + CheckBox cb = ((CheckBox) view.findViewById(R.id.cb_edit_item)); + cb.setOnCheckedChangeListener(new OnCheckedChangeListener() { + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + edit.setPaintFlags(edit.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG); + } else { + edit.setPaintFlags(Paint.ANTI_ALIAS_FLAG | Paint.DEV_KERN_TEXT_FLAG); + } + } + }); + + if (item.startsWith(TAG_CHECKED)) { + cb.setChecked(true); + edit.setPaintFlags(edit.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG); + item = item.substring(TAG_CHECKED.length(), item.length()).trim(); + } else if (item.startsWith(TAG_UNCHECKED)) { + cb.setChecked(false); + edit.setPaintFlags(Paint.ANTI_ALIAS_FLAG | Paint.DEV_KERN_TEXT_FLAG); + item = item.substring(TAG_UNCHECKED.length(), item.length()).trim(); + } + + edit.setOnTextViewChangeListener(this); + edit.setIndex(index); + edit.setText(getHighlightQueryResult(item, mUserQuery)); + return view; + } + + /** + * 处理文本变化事件 + *

+ * 该方法在列表模式下处理编辑文本的内容变化事件, + * 根据文本是否为空来控制对应列表项中复选框的显示或隐藏 + *

+ * @param index 编辑文本项的索引 + * @param hasText 编辑文本是否包含内容 + */ + public void onTextChange(int index, boolean hasText) { + if (index >= mEditTextList.getChildCount()) { + Log.e(TAG, "Wrong index, should not happen"); + return; + } + if(hasText) { + mEditTextList.getChildAt(index).findViewById(R.id.cb_edit_item).setVisibility(View.VISIBLE); + } else { + mEditTextList.getChildAt(index).findViewById(R.id.cb_edit_item).setVisibility(View.GONE); + } + } + + /** + * 处理检查列表模式的变化 + *

+ * 该方法在笔记的普通文本模式和检查列表模式之间切换时被调用, + * 根据新的模式执行相应的视图切换和数据处理操作 + *

+ * @param oldMode 旧的模式 + * @param newMode 新的模式 + */ + public void onCheckListModeChanged(int oldMode, int newMode) { + if (newMode == TextNote.MODE_CHECK_LIST) { + switchToListMode(mNoteEditor.getText().toString()); + } else { + if (!getWorkingText()) { + mWorkingNote.setWorkingText(mWorkingNote.getContent().replace(TAG_UNCHECKED + " ", + "")); + } + mNoteEditor.setText(getHighlightQueryResult(mWorkingNote.getContent(), mUserQuery)); + mEditTextList.setVisibility(View.GONE); + mNoteEditor.setVisibility(View.VISIBLE); + } + } + + /** + * 获取当前工作笔记的文本内容 + *

+ * 该方法根据当前笔记的模式(普通文本或检查列表)获取相应的文本内容: + * 1. 如果是检查列表模式,遍历所有列表项,收集文本内容并添加相应的标签(已完成或未完成) + * 2. 如果是普通文本模式,直接获取编辑框的文本内容 + *

+ * @return 是否包含已完成的列表项 + */ + private boolean getWorkingText() { + boolean hasChecked = false; + if (mWorkingNote.getCheckListMode() == TextNote.MODE_CHECK_LIST) { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < mEditTextList.getChildCount(); i++) { + View view = mEditTextList.getChildAt(i); + NoteEditText edit = (NoteEditText) view.findViewById(R.id.et_edit_text); + if (!TextUtils.isEmpty(edit.getText())) { + if (((CheckBox) view.findViewById(R.id.cb_edit_item)).isChecked()) { + sb.append(TAG_CHECKED).append(" ").append(edit.getText()).append("\n"); + hasChecked = true; + } else { + sb.append(TAG_UNCHECKED).append(" ").append(edit.getText()).append("\n"); + } + } + } + mWorkingNote.setWorkingText(sb.toString()); + } else { + mWorkingNote.setWorkingText(mNoteEditor.getText().toString()); + } + return hasChecked; + } + + /** + * 保存当前工作笔记 + *

+ * 该方法首先获取当前工作笔记的最新文本内容,然后调用mWorkingNote的saveNote方法将其保存到数据库中。 + * 如果保存成功,会设置返回结果为RESULT_OK,用于标识创建/编辑状态,以便在返回列表视图时正确定位。 + *

+ * @return 保存是否成功 + */ + private boolean saveNote() { + getWorkingText(); + boolean saved = mWorkingNote.saveNote(); + if (saved) { + /** + * There are two modes from List view to edit view, open one note, + * create/edit a node. Opening node requires to the original + * position in the list when back from edit view, while creating a + * new node requires to the top of the list. This code + * {@link #RESULT_OK} is used to identify the create/edit state + */ + setResult(RESULT_OK); + } + return saved; + } + + /** + * 将当前编辑的笔记发送到桌面创建快捷方式 + *

+ * 该方法执行以下操作: + * 1. 在发送前确保当前编辑的笔记已保存在数据库中,如果是新笔记则先保存 + * 2. 创建一个快捷方式Intent,包含打开该笔记的相关信息 + * 3. 设置快捷方式的名称、图标等属性 + * 4. 发送广播来创建桌面快捷方式 + * 5. 如果笔记为空或保存失败,显示错误提示 + *

+ */ + private void sendToDesktop() { + // 在发送到桌面之前,确保当前编辑的笔记已存在于数据库中。对于新笔记,首先保存它 + if (!mWorkingNote.existInDatabase()) { + saveNote(); + } + + if (mWorkingNote.getNoteId() > 0) { + Intent sender = new Intent(); + Intent shortcutIntent = new Intent(this, NoteEditActivity.class); + shortcutIntent.setAction(Intent.ACTION_VIEW); + shortcutIntent.putExtra(Intent.EXTRA_UID, mWorkingNote.getNoteId()); + sender.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); + sender.putExtra(Intent.EXTRA_SHORTCUT_NAME, + makeShortcutIconTitle(mWorkingNote.getContent())); + sender.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, + Intent.ShortcutIconResource.fromContext(this, R.drawable.icon_app)); + sender.putExtra("duplicate", true); + sender.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); + showToast(R.string.info_note_enter_desktop); + sendBroadcast(sender); + } else { + /** + * There is the condition that user has input nothing (the note is + * not worthy saving), we have no note id, remind the user that he + * should input something + */ + Log.e(TAG, "Send to desktop error"); + showToast(R.string.error_note_empty_for_send_to_desktop); + } + } + + /** + * 生成快捷方式图标的标题 + *

+ * 该方法将笔记内容转换为适合作为快捷方式标题的格式: + * 1. 移除检查列表模式下的状态标签(已完成和未完成标签) + * 2. 如果内容长度超过最大限制,则截断为指定长度 + *

+ * @param content 笔记的原始内容 + * @return 处理后的快捷方式标题 + */ + private String makeShortcutIconTitle(String content) { + content = content.replace(TAG_CHECKED, ""); + content = content.replace(TAG_UNCHECKED, ""); + return content.length() > SHORTCUT_ICON_TITLE_MAX_LEN ? content.substring(0, + SHORTCUT_ICON_TITLE_MAX_LEN) : content; + } + + /** + * 显示短时长的Toast提示信息 + *

+ * 该方法是showToast(int resId, int duration)的便捷重载版本, + * 默认使用Toast.LENGTH_SHORT作为显示时长 + *

+ * @param resId 提示信息的字符串资源ID + */ + private void showToast(int resId) { + showToast(resId, Toast.LENGTH_SHORT); + } + + /** + * 显示Toast提示信息 + *

+ * 该方法使用Android系统的Toast机制显示指定的提示信息 + *

+ * @param resId 提示信息的字符串资源ID + * @param duration 显示时长,可以是Toast.LENGTH_SHORT或Toast.LENGTH_LONG + */ + private void showToast(int resId, int duration) { + Toast.makeText(this, resId, duration).show(); + } +} diff --git a/src/main/java/net/micode/notes/ui/NoteEditText.java b/src/main/java/net/micode/notes/ui/NoteEditText.java new file mode 100644 index 0000000..ae5b78b --- /dev/null +++ b/src/main/java/net/micode/notes/ui/NoteEditText.java @@ -0,0 +1,319 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.content.Context; +import android.graphics.Rect; +import android.text.Layout; +import android.text.Selection; +import android.text.Spanned; +import android.text.TextUtils; +import android.text.style.URLSpan; +import android.util.AttributeSet; +import android.util.Log; +import android.view.ContextMenu; +import android.view.KeyEvent; +import android.view.MenuItem; +import android.view.MenuItem.OnMenuItemClickListener; +import android.view.MotionEvent; +import android.widget.EditText; + +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:" ; + + /** + * HTTP链接协议 + */ + private static final String SCHEME_HTTP = "http:" ; + + /** + * 邮件链接协议 + */ + private static final String SCHEME_EMAIL = "mailto:" ; + + /** + * 链接协议与资源ID的映射表 + */ + private static final Map sSchemaActionResMap = new HashMap(); + static { + sSchemaActionResMap.put(SCHEME_TEL, R.string.note_link_tel); + sSchemaActionResMap.put(SCHEME_HTTP, R.string.note_link_web); + sSchemaActionResMap.put(SCHEME_EMAIL, R.string.note_link_email); + } + + /** + * 文本视图变化监听器接口 + *

+ * 由{@link NoteEditActivity}调用,用于处理编辑框的删除或添加 + *

+ */ + public interface OnTextViewChangeListener { + /** + * 当按下{@link KeyEvent#KEYCODE_DEL}且文本为空时,删除当前编辑框 + */ + void onEditTextDelete(int index, String text); + + /** + * 当按下{@link KeyEvent#KEYCODE_ENTER}时,在当前编辑框后添加新的编辑框 + */ + void onEditTextEnter(int index, String text); + + /** + * 当文本变化时,隐藏或显示项目选项 + */ + void onTextChange(int index, boolean hasText); + } + + /** + * 文本视图变化监听器实例 + */ + private OnTextViewChangeListener mOnTextViewChangeListener; + + /** + * 构造函数,创建笔记编辑文本框 + * @param context 上下文对象 + */ + public NoteEditText(Context context) { + super(context, null); + mIndex = 0; + } + + /** + * 设置编辑框索引 + * @param index 编辑框索引 + */ + public void setIndex(int index) { + mIndex = index; + } + + /** + * 设置文本视图变化监听器 + * @param listener 文本视图变化监听器 + */ + public void setOnTextViewChangeListener(OnTextViewChangeListener listener) { + mOnTextViewChangeListener = listener; + } + + /** + * 构造函数,创建笔记编辑文本框 + * @param context 上下文对象 + * @param attrs 属性集合 + */ + public NoteEditText(Context context, AttributeSet attrs) { + super(context, attrs, android.R.attr.editTextStyle); + } + + /** + * 构造函数,创建笔记编辑文本框 + * @param context 上下文对象 + * @param attrs 属性集合 + * @param defStyle 默认样式 + */ + public NoteEditText(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + // TODO Auto-generated constructor stub + } + + /** + * 处理触摸事件 + *

+ * 当用户点击编辑框时,将光标定位到点击位置 + *

+ * @param event 触摸事件 + * @return 事件是否被处理 + */ + @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(); + y -= getTotalPaddingTop(); + x += getScrollX(); + y += getScrollY(); + + Layout layout = getLayout(); + int line = layout.getLineForVertical(y); + int off = layout.getOffsetForHorizontal(line, x); + Selection.setSelection(getText(), off); + break; + } + + return super.onTouchEvent(event); + } + + /** + * 处理按键按下事件 + *

+ * 监听回车键和删除键的按下事件 + *

+ * @param keyCode 按键代码 + * @param event 按键事件 + * @return 事件是否被处理 + */ + @Override + public boolean onKeyDown(int keyCode, KeyEvent event) { + switch (keyCode) { + case KeyEvent.KEYCODE_ENTER: + if (mOnTextViewChangeListener != null) { + return false; + } + break; + case KeyEvent.KEYCODE_DEL: + mSelectionStartBeforeDelete = getSelectionStart(); + break; + default: + break; + } + return super.onKeyDown(keyCode, event); + } + + /** + * 处理按键释放事件 + *

+ * 监听删除键和回车键的释放事件,实现编辑框的删除和添加功能 + *

+ * @param keyCode 按键代码 + * @param event 按键事件 + * @return 事件是否被处理 + */ + @Override + public boolean onKeyUp(int keyCode, KeyEvent event) { + switch(keyCode) { + case KeyEvent.KEYCODE_DEL: + if (mOnTextViewChangeListener != null) { + if (0 == mSelectionStartBeforeDelete && mIndex != 0) { + mOnTextViewChangeListener.onEditTextDelete(mIndex, getText().toString()); + return true; + } + } else { + Log.d(TAG, "OnTextViewChangeListener was not seted"); + } + break; + case KeyEvent.KEYCODE_ENTER: + if (mOnTextViewChangeListener != null) { + int selectionStart = getSelectionStart(); + String text = getText().subSequence(selectionStart, length()).toString(); + setText(getText().subSequence(0, selectionStart)); + mOnTextViewChangeListener.onEditTextEnter(mIndex + 1, text); + } else { + Log.d(TAG, "OnTextViewChangeListener was not seted"); + } + break; + default: + break; + } + return super.onKeyUp(keyCode, event); + } + + /** + * 处理焦点变化事件 + *

+ * 当编辑框失去焦点且文本为空时,通知监听器隐藏项目选项 + * 当编辑框获得焦点或文本不为空时,通知监听器显示项目选项 + *

+ * @param focused 是否获得焦点 + * @param direction 焦点变化方向 + * @param previouslyFocusedRect 之前焦点所在的矩形区域 + */ + @Override + protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) { + if (mOnTextViewChangeListener != null) { + if (!focused && TextUtils.isEmpty(getText())) { + mOnTextViewChangeListener.onTextChange(mIndex, false); + } else { + mOnTextViewChangeListener.onTextChange(mIndex, true); + } + } + super.onFocusChanged(focused, direction, previouslyFocusedRect); + } + + /** + * 创建上下文菜单 + *

+ * 当选中的文本包含链接时,创建相应的链接操作菜单 + *

+ * @param menu 上下文菜单 + */ + @Override + protected void onCreateContextMenu(ContextMenu menu) { + if (getText() instanceof Spanned) { + int selStart = getSelectionStart(); + int selEnd = getSelectionEnd(); + + int min = Math.min(selStart, selEnd); + int max = Math.max(selStart, selEnd); + + final URLSpan[] urls = ((Spanned) getText()).getSpans(min, max, URLSpan.class); + if (urls.length == 1) { + int defaultResId = 0; + for(String schema: sSchemaActionResMap.keySet()) { + if(urls[0].getURL().indexOf(schema) >= 0) { + defaultResId = sSchemaActionResMap.get(schema); + break; + } + } + + if (defaultResId == 0) { + defaultResId = R.string.note_link_other; + } + + menu.add(0, 0, 0, defaultResId).setOnMenuItemClickListener( + new OnMenuItemClickListener() { + public boolean onMenuItemClick(MenuItem item) { + // goto a new intent + urls[0].onClick(NoteEditText.this); + return true; + } + }); + } + } + super.onCreateContextMenu(menu); + } +} diff --git a/src/main/java/net/micode/notes/ui/NoteItemData.java b/src/main/java/net/micode/notes/ui/NoteItemData.java new file mode 100644 index 0000000..2ffa01d --- /dev/null +++ b/src/main/java/net/micode/notes/ui/NoteItemData.java @@ -0,0 +1,459 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.content.Context; +import android.database.Cursor; +import android.text.TextUtils; + +import net.micode.notes.data.Contact; +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, + }; + + /** + * 查询结果中笔记ID列的索引 + */ + private static final int ID_COLUMN = 0; + + /** + * 查询结果中提醒日期列的索引 + */ + private static final int ALERTED_DATE_COLUMN = 1; + + /** + * 查询结果中背景颜色ID列的索引 + */ + 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; + + /** + * 查询结果中父文件夹ID列的索引 + */ + private static final int PARENT_ID_COLUMN = 7; + + /** + * 查询结果中笔记摘要列的索引 + */ + private static final int SNIPPET_COLUMN = 8; + + /** + * 查询结果中笔记类型列的索引 + */ + private static final int TYPE_COLUMN = 9; + + /** + * 查询结果中小组件ID列的索引 + */ + private static final int WIDGET_ID_COLUMN = 10; + + /** + * 查询结果中小组件类型列的索引 + */ + private static final int WIDGET_TYPE_COLUMN = 11; + + /** + * 笔记ID + */ + private long mId; + + /** + * 提醒日期 + */ + private long mAlertDate; + + /** + * 背景颜色ID + */ + private int mBgColorId; + + /** + * 创建日期 + */ + private long mCreatedDate; + + /** + * 是否有附件 + */ + private boolean mHasAttachment; + + /** + * 修改日期 + */ + private long mModifiedDate; + + /** + * 笔记数量(用于文件夹) + */ + private int mNotesCount; + + /** + * 父文件夹ID + */ + private long mParentId; + + /** + * 笔记摘要 + */ + private String mSnippet; + + /** + * 笔记类型 + */ + private int mType; + + /** + * 小组件ID + */ + 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; + + /** + * 构造函数,从游标中初始化笔记列表项数据 + * @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; + 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); + if (!TextUtils.isEmpty(mPhoneNumber)) { + mName = Contact.getContact(context, mPhoneNumber); + if (mName == null) { + mName = mPhoneNumber; + } + } + } + + if (mName == null) { + mName = ""; + } + checkPostion(cursor); + } + + /** + * 检查当前项在列表中的位置 + *

+ * 该方法用于判断当前项是否为第一项、最后一项、唯一一项,以及是否为文件夹后的笔记 + *

+ * @param cursor 包含笔记数据的游标 + */ + private void checkPostion(Cursor cursor) { + mIsLastItem = cursor.isLast() ? true : false; + mIsFirstItem = cursor.isFirst() ? true : false; + mIsOnlyOneItem = (cursor.getCount() == 1); + mIsMultiNotesFollowingFolder = false; + mIsOneNoteFollowingFolder = false; + + if (mType == Notes.TYPE_NOTE && !mIsFirstItem) { + int position = cursor.getPosition(); + if (cursor.moveToPrevious()) { + if (cursor.getInt(TYPE_COLUMN) == Notes.TYPE_FOLDER + || cursor.getInt(TYPE_COLUMN) == Notes.TYPE_SYSTEM) { + if (cursor.getCount() > (position + 1)) { + mIsMultiNotesFollowingFolder = true; + } else { + mIsOneNoteFollowingFolder = true; + } + } + if (!cursor.moveToNext()) { + throw new IllegalStateException("cursor move to previous but can't move back"); + } + } + } + } + + /** + * 判断是否为文件夹后的唯一笔记 + * @return 是否为文件夹后的唯一笔记 + */ + public boolean isOneFollowingFolder() { + return mIsOneNoteFollowingFolder; + } + + /** + * 判断是否为文件夹后的多个笔记 + * @return 是否为文件夹后的多个笔记 + */ + public boolean isMultiFollowingFolder() { + return mIsMultiNotesFollowingFolder; + } + + /** + * 判断是否为最后一项 + * @return 是否为最后一项 + */ + public boolean isLast() { + return mIsLastItem; + } + + /** + * 获取通话记录联系人名称 + * @return 通话记录联系人名称 + */ + public String getCallName() { + return mName; + } + + /** + * 判断是否为第一项 + * @return 是否为第一项 + */ + public boolean isFirst() { + return mIsFirstItem; + } + + /** + * 判断是否为唯一一项 + * @return 是否为唯一一项 + */ + public boolean isSingle() { + return mIsOnlyOneItem; + } + + /** + * 获取笔记ID + * @return 笔记ID + */ + public long getId() { + return mId; + } + + /** + * 获取提醒日期 + * @return 提醒日期,以毫秒为单位 + */ + public long getAlertDate() { + return mAlertDate; + } + + /** + * 获取创建日期 + * @return 创建日期,以毫秒为单位 + */ + public long getCreatedDate() { + return mCreatedDate; + } + + /** + * 判断是否有附件 + * @return 是否有附件 + */ + public boolean hasAttachment() { + return mHasAttachment; + } + + /** + * 获取修改日期 + * @return 修改日期,以毫秒为单位 + */ + public long getModifiedDate() { + return mModifiedDate; + } + + /** + * 获取背景颜色ID + * @return 背景颜色ID + */ + public int getBgColorId() { + return mBgColorId; + } + + /** + * 获取父文件夹ID + * @return 父文件夹ID + */ + public long getParentId() { + return mParentId; + } + + /** + * 获取笔记数量(用于文件夹) + * @return 笔记数量 + */ + public int getNotesCount() { + return mNotesCount; + } + + /** + * 获取文件夹ID + * @return 文件夹ID + */ + public long getFolderId () { + return mParentId; + } + + /** + * 获取笔记类型 + * @return 笔记类型 + */ + public int getType() { + return mType; + } + + /** + * 获取小组件类型 + * @return 小组件类型 + */ + public int getWidgetType() { + return mWidgetType; + } + + /** + * 获取小组件ID + * @return 小组件ID + */ + public int getWidgetId() { + return mWidgetId; + } + + /** + * 获取笔记摘要 + * @return 笔记摘要 + */ + public String getSnippet() { + return mSnippet; + } + + /** + * 判断是否有提醒 + * @return 是否有提醒 + */ + public boolean hasAlert() { + return (mAlertDate > 0); + } + + /** + * 判断是否为通话记录 + * @return 是否为通话记录 + */ + 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/main/java/net/micode/notes/ui/NotesListActivity.java b/src/main/java/net/micode/notes/ui/NotesListActivity.java new file mode 100644 index 0000000..b72aba0 --- /dev/null +++ b/src/main/java/net/micode/notes/ui/NotesListActivity.java @@ -0,0 +1,1403 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.app.Activity; +import android.app.AlertDialog; +import android.app.Dialog; +import android.appwidget.AppWidgetManager; +import android.content.AsyncQueryHandler; +import android.content.ContentResolver; +import android.content.ContentValues; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.database.Cursor; +import android.os.AsyncTask; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.text.Editable; +import android.text.TextUtils; +import android.text.TextWatcher; +import android.util.Log; +import android.view.ActionMode; +import android.view.ContextMenu; +import android.view.ContextMenu.ContextMenuInfo; +import android.view.Display; +import android.view.HapticFeedbackConstants; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; +import android.view.MenuItem.OnMenuItemClickListener; +import android.view.MotionEvent; +import android.view.View; +import android.view.View.OnClickListener; +import android.view.View.OnCreateContextMenuListener; +import android.view.View.OnTouchListener; +import android.view.inputmethod.InputMethodManager; +import android.widget.AdapterView; +import android.widget.AdapterView.OnItemClickListener; +import android.widget.AdapterView.OnItemLongClickListener; +import android.widget.Button; +import android.widget.EditText; +import android.widget.ListView; +import android.widget.PopupMenu; +import android.widget.TextView; +import android.widget.Toast; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.gtask.remote.GTaskSyncService; +import net.micode.notes.model.WorkingNote; +import net.micode.notes.tool.BackupUtils; +import net.micode.notes.tool.DataUtils; +import net.micode.notes.tool.ResourceParser; +import net.micode.notes.ui.NotesListAdapter.AppWidgetAttribute; +import net.micode.notes.widget.NoteWidgetProvider_2x; +import net.micode.notes.widget.NoteWidgetProvider_4x; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.HashSet; + +/** + * 笔记列表活动类 + *

+ * 该类是应用的主界面,负责显示笔记列表,处理笔记的创建、编辑、删除等操作, + * 支持文件夹管理、笔记同步、导入导出等功能,并提供了多选模式、上下文菜单等交互方式 + *

+ */ +public class NotesListActivity extends Activity implements OnClickListener, OnItemLongClickListener { + /** 文件夹笔记列表查询令牌 */ + private static final int FOLDER_NOTE_LIST_QUERY_TOKEN = 0; + + /** 文件夹列表查询令牌 */ + private static final int FOLDER_LIST_QUERY_TOKEN = 1; + + /** 文件夹删除菜单ID */ + private static final int MENU_FOLDER_DELETE = 0; + + /** 文件夹查看菜单ID */ + private static final int MENU_FOLDER_VIEW = 1; + + /** 文件夹重命名菜单ID */ + private static final int MENU_FOLDER_CHANGE_NAME = 2; + + /** 偏好设置:是否添加了介绍笔记 */ + private static final String PREFERENCE_ADD_INTRODUCTION = "net.micode.notes.introduction"; + + /** + * 列表编辑状态枚举 + *

+ * 定义了笔记列表的三种状态: + * 1. NOTE_LIST:根目录下的笔记列表 + * 2. SUB_FOLDER:子文件夹中的笔记列表 + * 3. CALL_RECORD_FOLDER:通话记录文件夹 + *

+ */ + private enum ListEditState { + NOTE_LIST, SUB_FOLDER, CALL_RECORD_FOLDER + }; + + /** 当前列表编辑状态 */ + private ListEditState mState; + + /** 后台查询处理器 */ + private BackgroundQueryHandler mBackgroundQueryHandler; + + /** 笔记列表适配器 */ + private NotesListAdapter mNotesListAdapter; + + /** 笔记列表视图 */ + private ListView mNotesListView; + + /** 新建笔记按钮 */ + private Button mAddNewNote; + + /** 是否分发触摸事件 */ + private boolean mDispatch; + + /** 原始Y坐标 */ + private int mOriginY; + + /** 分发Y坐标 */ + private int mDispatchY; + + /** 标题栏文本视图 */ + private TextView mTitleBar; + + /** 当前文件夹ID */ + private long mCurrentFolderId; + + /** 内容解析器 */ + private ContentResolver mContentResolver; + + /** 模式回调 */ + private ModeCallback mModeCallBack; + + /** 日志标签 */ + private static final String TAG = "NotesListActivity"; + + /** 笔记列表视图滚动速率 */ + public static final int NOTES_LISTVIEW_SCROLL_RATE = 30; + + /** 当前焦点的笔记数据项 */ + private NoteItemData mFocusNoteDataItem; + + /** 普通文件夹选择条件 */ + private static final String NORMAL_SELECTION = NoteColumns.PARENT_ID + "=?"; + + /** 根文件夹选择条件 */ + private static final String ROOT_FOLDER_SELECTION = "(" + NoteColumns.TYPE + "<>" + + Notes.TYPE_SYSTEM + " AND " + NoteColumns.PARENT_ID + "=?)") + " OR (" + + NoteColumns.ID + "=" + Notes.ID_CALL_RECORD_FOLDER + " AND " + + NoteColumns.NOTES_COUNT + ">0)"; + + /** 打开笔记请求码 */ + private final static int REQUEST_CODE_OPEN_NODE = 102; + /** 新建笔记请求码 */ + private final static int REQUEST_CODE_NEW_NODE = 103; + + /** + * 活动创建时调用 + *

+ * 该方法完成以下工作: + * 1. 设置布局文件 + * 2. 初始化资源 + * 3. 如果是首次使用,添加介绍笔记 + *

+ * @param savedInstanceState 保存的实例状态 + */ + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.note_list); + initResources(); + + /** + * Insert an introduction when user firstly use this application + */ + setAppInfoFromRawRes(); + } + + /** + * 处理活动返回结果 + *

+ * 该方法在其他活动返回结果时调用,主要用于处理笔记编辑活动返回的结果 + *

+ * @param requestCode 请求码 + * @param resultCode 结果码 + * @param data 返回的数据 + */ + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + if (resultCode == RESULT_OK + && (requestCode == REQUEST_CODE_OPEN_NODE || requestCode == REQUEST_CODE_NEW_NODE)) { + mNotesListAdapter.changeCursor(null); + } else { + super.onActivityResult(requestCode, resultCode, data); + } + } + + private void setAppInfoFromRawRes() { + SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this); + if (!sp.getBoolean(PREFERENCE_ADD_INTRODUCTION, false)) { + StringBuilder sb = new StringBuilder(); + InputStream in = null; + try { + in = getResources().openRawResource(R.raw.introduction); + if (in != null) { + InputStreamReader isr = new InputStreamReader(in); + BufferedReader br = new BufferedReader(isr); + char [] buf = new char[1024]; + int len = 0; + while ((len = br.read(buf)) > 0) { + sb.append(buf, 0, len); + } + } else { + Log.e(TAG, "Read introduction file error"); + return; + } + } catch (IOException e) { + e.printStackTrace(); + return; + } finally { + if(in != null) { + try { + in.close(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + } + + WorkingNote note = WorkingNote.createEmptyNote(this, Notes.ID_ROOT_FOLDER, + AppWidgetManager.INVALID_APPWIDGET_ID, Notes.TYPE_WIDGET_INVALIDE, + ResourceParser.RED); + note.setWorkingText(sb.toString()); + if (note.saveNote()) { + sp.edit().putBoolean(PREFERENCE_ADD_INTRODUCTION, true).commit(); + } else { + Log.e(TAG, "Save introduction note error"); + return; + } + } + } + + /** + * 活动开始时调用 + *

+ * 该方法在活动开始时调用,主要用于启动异步笔记列表查询 + *

+ */ + @Override + protected void onStart() { + super.onStart(); + startAsyncNotesListQuery(); + } + + /** + * 初始化资源 + *

+ * 该方法完成以下工作: + * 1. 初始化内容解析器和后台查询处理器 + * 2. 设置当前文件夹ID为根文件夹ID + * 3. 初始化笔记列表视图,添加页脚,设置点击和长按监听器 + * 4. 初始化笔记列表适配器并设置给列表视图 + * 5. 初始化新建笔记按钮,设置点击和触摸监听器 + * 6. 初始化触摸事件相关变量 + * 7. 初始化标题栏和状态 + * 8. 初始化模式回调 + *

+ */ + private void initResources() { + mContentResolver = this.getContentResolver(); + mBackgroundQueryHandler = new BackgroundQueryHandler(this.getContentResolver()); + mCurrentFolderId = Notes.ID_ROOT_FOLDER; + mNotesListView = (ListView) findViewById(R.id.notes_list); + mNotesListView.addFooterView(LayoutInflater.from(this).inflate(R.layout.note_list_footer, null), + null, false); + mNotesListView.setOnItemClickListener(new OnListItemClickListener()); + mNotesListView.setOnItemLongClickListener(this); + mNotesListAdapter = new NotesListAdapter(this); + mNotesListView.setAdapter(mNotesListAdapter); + mAddNewNote = (Button) findViewById(R.id.btn_new_note); + mAddNewNote.setOnClickListener(this); + mAddNewNote.setOnTouchListener(new NewNoteOnTouchListener()); + mDispatch = false; + mDispatchY = 0; + mOriginY = 0; + mTitleBar = (TextView) findViewById(R.id.tv_title_bar); + mState = ListEditState.NOTE_LIST; + mModeCallBack = new ModeCallback(); + } + + /** + * 多选模式回调类 + *

+ * 该类实现了ListView.MultiChoiceModeListener和OnMenuItemClickListener接口, + * 用于处理多选模式下的操作,包括创建模式、更新菜单、处理菜单点击事件等 + *

+ */ + private class ModeCallback implements ListView.MultiChoiceModeListener, OnMenuItemClickListener { + /** 下拉菜单 */ + private DropdownMenu mDropDownMenu; + /** 动作模式 */ + private ActionMode mActionMode; + /** 移动菜单 */ + private MenuItem mMoveMenu; + + /** + * 创建动作模式 + *

+ * 该方法完成以下工作: + * 1. 加载菜单资源 + * 2. 设置删除菜单的点击监听器 + * 3. 根据当前文件夹ID和用户文件夹数量设置移动菜单的可见性 + * 4. 保存动作模式实例 + * 5. 设置列表适配器为选择模式 + * 6. 禁用列表的长按功能 + * 7. 隐藏新建笔记按钮 + * 8. 设置自定义视图 + * 9. 创建下拉菜单 + * 10. 设置下拉菜单的点击监听器 + *

+ * @param mode 动作模式 + * @param menu 菜单 + * @return 是否创建成功,返回true表示成功 + */ + public boolean onCreateActionMode(ActionMode mode, Menu menu) { + getMenuInflater().inflate(R.menu.note_list_options, menu); + menu.findItem(R.id.delete).setOnMenuItemClickListener(this); + mMoveMenu = menu.findItem(R.id.move); + if (mFocusNoteDataItem.getParentId() == Notes.ID_CALL_RECORD_FOLDER + || DataUtils.getUserFolderCount(mContentResolver) == 0) { + mMoveMenu.setVisible(false); + } else { + mMoveMenu.setVisible(true); + mMoveMenu.setOnMenuItemClickListener(this); + } + mActionMode = mode; + mNotesListAdapter.setChoiceMode(true); + mNotesListView.setLongClickable(false); + mAddNewNote.setVisibility(View.GONE); + + View customView = LayoutInflater.from(NotesListActivity.this).inflate( + R.layout.note_list_dropdown_menu, null); + mode.setCustomView(customView); + mDropDownMenu = new DropdownMenu(NotesListActivity.this, + (Button) customView.findViewById(R.id.selection_menu), + R.menu.note_list_dropdown); + mDropDownMenu.setOnDropdownMenuItemClickListener(new PopupMenu.OnMenuItemClickListener(){ + public boolean onMenuItemClick(MenuItem item) { + mNotesListAdapter.selectAll(!mNotesListAdapter.isAllSelected()); + updateMenu(); + return true; + } + + }); + return true; + } + + /** + * 更新菜单 + *

+ * 该方法完成以下工作: + * 1. 获取选中的笔记数量 + * 2. 更新下拉菜单的标题,显示选中数量 + * 3. 更新全选/取消全选菜单项的状态和标题 + *

+ */ + private void updateMenu() { + int selectedCount = mNotesListAdapter.getSelectedCount(); + // Update dropdown menu + String format = getResources().getString(R.string.menu_select_title, selectedCount); + mDropDownMenu.setTitle(format); + MenuItem item = mDropDownMenu.findItem(R.id.action_select_all); + if (item != null) { + if (mNotesListAdapter.isAllSelected()) { + item.setChecked(true); + item.setTitle(R.string.menu_deselect_all); + } else { + item.setChecked(false); + item.setTitle(R.string.menu_select_all); + } + } + } + + /** + * 准备动作模式 + *

+ * 该方法未实现具体功能,返回false + *

+ * @param mode 动作模式 + * @param menu 菜单 + * @return 是否准备成功,返回false + */ + public boolean onPrepareActionMode(ActionMode mode, Menu menu) { + // TODO Auto-generated method stub + return false; + } + + /** + * 处理动作模式菜单项点击事件 + *

+ * 该方法未实现具体功能,返回false + *

+ * @param mode 动作模式 + * @param item 菜单项 + * @return 是否处理成功,返回false + */ + public boolean onActionItemClicked(ActionMode mode, MenuItem item) { + // TODO Auto-generated method stub + return false; + } + + /** + * 销毁动作模式 + *

+ * 该方法完成以下工作: + * 1. 设置列表适配器为非选择模式 + * 2. 启用列表的长按功能 + * 3. 显示新建笔记按钮 + *

+ * @param mode 动作模式 + */ + public void onDestroyActionMode(ActionMode mode) { + mNotesListAdapter.setChoiceMode(false); + mNotesListView.setLongClickable(true); + mAddNewNote.setVisibility(View.VISIBLE); + } + + /** + * 结束动作模式 + *

+ * 该方法调用动作模式的finish方法来结束多选模式 + *

+ */ + public void finishActionMode() { + mActionMode.finish(); + } + + /** + * 列表项选中状态变化时调用 + *

+ * 该方法完成以下工作: + * 1. 设置列表项的选中状态 + * 2. 更新菜单 + *

+ * @param mode 动作模式 + * @param position 列表项位置 + * @param id 列表项ID + * @param checked 是否选中 + */ + public void onItemCheckedStateChanged(ActionMode mode, int position, long id, + boolean checked) { + mNotesListAdapter.setCheckedItem(position, checked); + updateMenu(); + } + + /** + * 处理菜单项点击事件 + *

+ * 该方法完成以下工作: + * 1. 检查是否有选中的笔记,如果没有则显示提示 + * 2. 根据菜单项ID处理不同的操作: + * - 删除:显示删除确认对话框,点击确定后调用batchDelete方法 + * - 移动:调用startQueryDestinationFolders方法查询目标文件夹 + *

+ * @param item 菜单项 + * @return 是否处理成功,返回true表示成功 + */ + public boolean onMenuItemClick(MenuItem item) { + if (mNotesListAdapter.getSelectedCount() == 0) { + Toast.makeText(NotesListActivity.this, getString(R.string.menu_select_none), + Toast.LENGTH_SHORT).show(); + return true; + } + + switch (item.getItemId()) { + case R.id.delete: + AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity.this); + builder.setTitle(getString(R.string.alert_title_delete)); + builder.setIcon(android.R.drawable.ic_dialog_alert); + builder.setMessage(getString(R.string.alert_message_delete_notes, + mNotesListAdapter.getSelectedCount())); + builder.setPositiveButton(android.R.string.ok, + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, + int which) { + batchDelete(); + } + }); + builder.setNegativeButton(android.R.string.cancel, null); + builder.show(); + break; + case R.id.move: + startQueryDestinationFolders(); + break; + default: + return false; + } + return true; + } + } + + /** + * 新建笔记按钮触摸监听器 + *

+ * 该类实现了OnTouchListener接口,用于处理新建笔记按钮的触摸事件, + * 特别是处理按钮透明部分的触摸事件,将其分发给下方的列表视图 + *

+ */ + private class NewNoteOnTouchListener implements OnTouchListener { + + /** + * 处理触摸事件 + *

+ * 该方法完成以下工作: + * 1. 处理ACTION_DOWN事件: + * - 获取屏幕高度和新建笔记按钮高度 + * - 计算触摸事件的Y坐标 + * - 如果当前状态是SUB_FOLDER,减去标题栏高度 + * - 检查触摸点是否在按钮的透明部分(根据公式y=-0.12x+94判断) + * - 如果是,将触摸事件分发给下方的列表视图 + * 2. 处理ACTION_MOVE事件: + * - 如果已经开始分发事件,更新事件坐标并继续分发给列表视图 + * 3. 处理其他事件: + * - 如果已经开始分发事件,结束分发并将事件分发给列表视图 + *

+ * @param v 被触摸的视图 + * @param event 触摸事件 + * @return 是否消费了该事件,返回true表示已消费 + */ + public boolean onTouch(View v, MotionEvent event) { + switch (event.getAction()) { + case MotionEvent.ACTION_DOWN: { + Display display = getWindowManager().getDefaultDisplay(); + int screenHeight = display.getHeight(); + int newNoteViewHeight = mAddNewNote.getHeight(); + int start = screenHeight - newNoteViewHeight; + int eventY = start + (int) event.getY(); + /** + * Minus TitleBar's height + */ + if (mState == ListEditState.SUB_FOLDER) { + eventY -= mTitleBar.getHeight(); + start -= mTitleBar.getHeight(); + } + /** + * HACKME:When click the transparent part of "New Note" button, dispatch + * the event to the list view behind this button. The transparent part of + * "New Note" button could be expressed by formula y=-0.12x+94(Unit:pixel) + * and the line top of the button. The coordinate based on left of the "New + * Note" button. The 94 represents maximum height of the transparent part. + * Notice that, if the background of the button changes, the formula should + * also change. This is very bad, just for the UI designer's strong requirement. + */ + if (event.getY() < (event.getX() * (-0.12) + 94)) { + View view = mNotesListView.getChildAt(mNotesListView.getChildCount() - 1 + - mNotesListView.getFooterViewsCount()); + if (view != null && view.getBottom() > start + && (view.getTop() < (start + 94))) { + mOriginY = (int) event.getY(); + mDispatchY = eventY; + event.setLocation(event.getX(), mDispatchY); + mDispatch = true; + return mNotesListView.dispatchTouchEvent(event); + } + } + break; + } + case MotionEvent.ACTION_MOVE: { + if (mDispatch) { + mDispatchY += (int) event.getY() - mOriginY; + event.setLocation(event.getX(), mDispatchY); + return mNotesListView.dispatchTouchEvent(event); + } + break; + } + default: { + if (mDispatch) { + event.setLocation(event.getX(), mDispatchY); + mDispatch = false; + return mNotesListView.dispatchTouchEvent(event); + } + break; + } + } + return false; + } + + }; + + /** + * 启动异步笔记列表查询 + *

+ * 该方法根据当前文件夹ID选择合适的查询条件,然后启动异步查询,查询结果将通过BackgroundQueryHandler返回 + *

+ */ + private void startAsyncNotesListQuery() { + String selection = (mCurrentFolderId == Notes.ID_ROOT_FOLDER) ? ROOT_FOLDER_SELECTION + : NORMAL_SELECTION; + mBackgroundQueryHandler.startQuery(FOLDER_NOTE_LIST_QUERY_TOKEN, null, + Notes.CONTENT_NOTE_URI, NoteItemData.PROJECTION, selection, new String[] { + String.valueOf(mCurrentFolderId) + }, NoteColumns.TYPE + " DESC," + NoteColumns.MODIFIED_DATE + " DESC"); + } + + /** + * 后台查询处理器类 + *

+ * 该类继承自AsyncQueryHandler,用于处理异步查询操作, + * 主要处理两种查询: + * 1. 文件夹笔记列表查询 + * 2. 文件夹列表查询 + *

+ */ + private final class BackgroundQueryHandler extends AsyncQueryHandler { + /** + * 构造函数 + * @param contentResolver 内容解析器 + */ + public BackgroundQueryHandler(ContentResolver contentResolver) { + super(contentResolver); + } + + /** + * 查询完成时调用 + *

+ * 该方法根据查询令牌处理查询结果: + * 1. 如果是文件夹笔记列表查询,将结果游标设置给列表适配器 + * 2. 如果是文件夹列表查询,显示文件夹列表菜单 + *

+ * @param token 查询令牌,用于标识查询类型 + * @param cookie 查询时传递的附加数据,此处未使用 + * @param cursor 查询结果游标 + */ + @Override + protected void onQueryComplete(int token, Object cookie, Cursor cursor) { + switch (token) { + case FOLDER_NOTE_LIST_QUERY_TOKEN: + mNotesListAdapter.changeCursor(cursor); + break; + case FOLDER_LIST_QUERY_TOKEN: + if (cursor != null && cursor.getCount() > 0) { + showFolderListMenu(cursor); + } else { + Log.e(TAG, "Query folder failed"); + } + break; + default: + return; + } + } + } + + private void showFolderListMenu(Cursor cursor) { + AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity.this); + builder.setTitle(R.string.menu_title_select_folder); + final FoldersListAdapter adapter = new FoldersListAdapter(this, cursor); + builder.setAdapter(adapter, new DialogInterface.OnClickListener() { + + public void onClick(DialogInterface dialog, int which) { + DataUtils.batchMoveToFolder(mContentResolver, + mNotesListAdapter.getSelectedItemIds(), adapter.getItemId(which)); + Toast.makeText( + NotesListActivity.this, + getString(R.string.format_move_notes_to_folder, + mNotesListAdapter.getSelectedCount(), + adapter.getFolderName(NotesListActivity.this, which)), + Toast.LENGTH_SHORT).show(); + mModeCallBack.finishActionMode(); + } + }); + builder.show(); + } + + /** + * 创建新笔记 + *

+ * 该方法通过启动NoteEditActivity来创建新笔记,并传递当前文件夹ID作为额外参数 + *

+ */ + private void createNewNote() { + Intent intent = new Intent(this, NoteEditActivity.class); + intent.setAction(Intent.ACTION_INSERT_OR_EDIT); + intent.putExtra(Notes.INTENT_EXTRA_FOLDER_ID, mCurrentFolderId); + this.startActivityForResult(intent, REQUEST_CODE_NEW_NODE); + } + + /** + * 批量删除笔记 + *

+ * 该方法在异步任务中完成以下工作: + * 1. 获取选中的部件属性 + * 2. 如果不在同步模式,直接删除选中的笔记 + * 3. 如果在同步模式,将选中的笔记移动到回收站 + * 4. 更新相关部件 + * 5. 结束多选模式 + *

+ */ + private void batchDelete() { + new AsyncTask>() { + protected HashSet doInBackground(Void... unused) { + HashSet widgets = mNotesListAdapter.getSelectedWidget(); + if (!isSyncMode()) { + // if not synced, delete notes directly + if (DataUtils.batchDeleteNotes(mContentResolver, mNotesListAdapter + .getSelectedItemIds())) { + } else { + Log.e(TAG, "Delete notes error, should not happens"); + } + } else { + // in sync mode, we'll move the deleted note into the trash + // folder + if (!DataUtils.batchMoveToFolder(mContentResolver, mNotesListAdapter + .getSelectedItemIds(), Notes.ID_TRASH_FOLER)) { + Log.e(TAG, "Move notes to trash folder error, should not happens"); + } + } + return widgets; + } + + @Override + protected void onPostExecute(HashSet widgets) { + if (widgets != null) { + for (AppWidgetAttribute widget : widgets) { + if (widget.widgetId != AppWidgetManager.INVALID_APPWIDGET_ID + && widget.widgetType != Notes.TYPE_WIDGET_INVALIDE) { + updateWidget(widget.widgetId, widget.widgetType); + } + } + } + mModeCallBack.finishActionMode(); + } + }.execute(); + } + + /** + * 删除文件夹 + *

+ * 该方法完成以下工作: + * 1. 检查文件夹ID是否为根文件夹ID,如果是则返回错误 + * 2. 获取文件夹的部件属性 + * 3. 如果不在同步模式,直接删除文件夹 + * 4. 如果在同步模式,将文件夹移动到回收站 + * 5. 更新相关部件 + *

+ * @param folderId 要删除的文件夹ID + */ + private void deleteFolder(long folderId) { + if (folderId == Notes.ID_ROOT_FOLDER) { + Log.e(TAG, "Wrong folder id, should not happen " + folderId); + return; + } + + HashSet ids = new HashSet(); + ids.add(folderId); + HashSet widgets = DataUtils.getFolderNoteWidget(mContentResolver, + folderId); + if (!isSyncMode()) { + // if not synced, delete folder directly + DataUtils.batchDeleteNotes(mContentResolver, ids); + } else { + // in sync mode, we'll move the deleted folder into the trash folder + DataUtils.batchMoveToFolder(mContentResolver, ids, Notes.ID_TRASH_FOLER); + } + if (widgets != null) { + for (AppWidgetAttribute widget : widgets) { + if (widget.widgetId != AppWidgetManager.INVALID_APPWIDGET_ID + && widget.widgetType != Notes.TYPE_WIDGET_INVALIDE) { + updateWidget(widget.widgetId, widget.widgetType); + } + } + } + } + + /** + * 打开笔记 + *

+ * 该方法通过启动NoteEditActivity来打开指定的笔记,传递笔记ID作为额外参数 + *

+ * @param data 要打开的笔记数据项 + */ + private void openNode(NoteItemData data) { + Intent intent = new Intent(this, NoteEditActivity.class); + intent.setAction(Intent.ACTION_VIEW); + intent.putExtra(Intent.EXTRA_UID, data.getId()); + this.startActivityForResult(intent, REQUEST_CODE_OPEN_NODE); + } + + /** + * 打开文件夹 + *

+ * 该方法完成以下工作: + * 1. 设置当前文件夹ID + * 2. 启动异步笔记列表查询 + * 3. 根据文件夹类型设置列表状态: + * - 如果是通话记录文件夹,设置为CALL_RECORD_FOLDER状态并隐藏新建笔记按钮 + * - 否则设置为SUB_FOLDER状态 + * 4. 设置标题栏文本和可见性 + *

+ * @param data 要打开的文件夹数据项 + */ + private void openFolder(NoteItemData data) { + mCurrentFolderId = data.getId(); + startAsyncNotesListQuery(); + if (data.getId() == Notes.ID_CALL_RECORD_FOLDER) { + mState = ListEditState.CALL_RECORD_FOLDER; + mAddNewNote.setVisibility(View.GONE); + } else { + mState = ListEditState.SUB_FOLDER; + } + if (data.getId() == Notes.ID_CALL_RECORD_FOLDER) { + mTitleBar.setText(R.string.call_record_folder_name); + } else { + mTitleBar.setText(data.getSnippet()); + } + mTitleBar.setVisibility(View.VISIBLE); + } + + /** + * 处理点击事件 + *

+ * 该方法处理视图的点击事件,目前只处理新建笔记按钮的点击事件 + *

+ * @param v 被点击的视图 + */ + public void onClick(View v) { + switch (v.getId()) { + case R.id.btn_new_note: + createNewNote(); + break; + default: + break; + } + } + + /** + * 显示软键盘 + *

+ * 该方法通过InputMethodManager显示软键盘 + *

+ */ + private void showSoftInput() { + InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + if (inputMethodManager != null) { + inputMethodManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); + } + } + + /** + * 隐藏软键盘 + *

+ * 该方法通过InputMethodManager隐藏软键盘 + *

+ * @param view 用于获取窗口令牌的视图 + */ + private void hideSoftInput(View view) { + InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0); + } + + /** + * 显示创建或修改文件夹对话框 + *

+ * 该方法完成以下工作: + * 1. 创建对话框构建器 + * 2. 加载布局文件 + * 3. 显示软键盘 + * 4. 根据create参数设置对话框标题和编辑框内容: + * - 如果是修改文件夹,设置标题为"修改文件夹名称",并显示当前文件夹名称 + * - 如果是创建文件夹,设置标题为"创建文件夹",并清空编辑框 + * 5. 设置对话框按钮和点击事件 + * 6. 显示对话框 + * 7. 为确定按钮设置点击事件,处理文件夹的创建或修改 + * 8. 为编辑框添加文本变化监听器,当文本为空时禁用确定按钮 + *

+ * @param create 是否是创建文件夹,true表示创建,false表示修改 + */ + private void showCreateOrModifyFolderDialog(final boolean create) { + final AlertDialog.Builder builder = new AlertDialog.Builder(this); + View view = LayoutInflater.from(this).inflate(R.layout.dialog_edit_text, null); + final EditText etName = (EditText) view.findViewById(R.id.et_foler_name); + showSoftInput(); + if (!create) { + if (mFocusNoteDataItem != null) { + etName.setText(mFocusNoteDataItem.getSnippet()); + builder.setTitle(getString(R.string.menu_folder_change_name)); + } else { + Log.e(TAG, "The long click data item is null"); + return; + } + } else { + etName.setText(""); + builder.setTitle(this.getString(R.string.menu_create_folder)); + } + + builder.setPositiveButton(android.R.string.ok, null); + builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + hideSoftInput(etName); + } + }); + + final Dialog dialog = builder.setView(view).show(); + final Button positive = (Button)dialog.findViewById(android.R.id.button1); + positive.setOnClickListener(new OnClickListener() { + public void onClick(View v) { + hideSoftInput(etName); + String name = etName.getText().toString(); + if (DataUtils.checkVisibleFolderName(mContentResolver, name)) { + Toast.makeText(NotesListActivity.this, getString(R.string.folder_exist, name), + Toast.LENGTH_LONG).show(); + etName.setSelection(0, etName.length()); + return; + } + if (!create) { + if (!TextUtils.isEmpty(name)) { + ContentValues values = new ContentValues(); + values.put(NoteColumns.SNIPPET, name); + values.put(NoteColumns.TYPE, Notes.TYPE_FOLDER); + values.put(NoteColumns.LOCAL_MODIFIED, 1); + mContentResolver.update(Notes.CONTENT_NOTE_URI, values, NoteColumns.ID + + "=?", new String[] { + String.valueOf(mFocusNoteDataItem.getId()) + }); + } + } else if (!TextUtils.isEmpty(name)) { + ContentValues values = new ContentValues(); + values.put(NoteColumns.SNIPPET, name); + values.put(NoteColumns.TYPE, Notes.TYPE_FOLDER); + mContentResolver.insert(Notes.CONTENT_NOTE_URI, values); + } + dialog.dismiss(); + } + }); + + if (TextUtils.isEmpty(etName.getText())) { + positive.setEnabled(false); + } + /** + * When the name edit text is null, disable the positive button + */ + etName.addTextChangedListener(new TextWatcher() { + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + // TODO Auto-generated method stub + + } + + public void onTextChanged(CharSequence s, int start, int before, int count) { + if (TextUtils.isEmpty(etName.getText())) { + positive.setEnabled(false); + } else { + positive.setEnabled(true); + } + } + + public void afterTextChanged(Editable s) { + // TODO Auto-generated method stub + + } + }); + } + + /** + * 处理返回按钮点击事件 + *

+ * 该方法根据当前状态处理返回按钮点击事件: + * 1. 如果在子文件夹中,返回根文件夹 + * 2. 如果在通话记录文件夹中,返回根文件夹并显示新建笔记按钮 + * 3. 如果在根文件夹中,调用默认的返回处理 + *

+ */ + @Override + public void onBackPressed() { + switch (mState) { + case SUB_FOLDER: + mCurrentFolderId = Notes.ID_ROOT_FOLDER; + mState = ListEditState.NOTE_LIST; + startAsyncNotesListQuery(); + mTitleBar.setVisibility(View.GONE); + break; + case CALL_RECORD_FOLDER: + mCurrentFolderId = Notes.ID_ROOT_FOLDER; + mState = ListEditState.NOTE_LIST; + mAddNewNote.setVisibility(View.VISIBLE); + mTitleBar.setVisibility(View.GONE); + startAsyncNotesListQuery(); + break; + case NOTE_LIST: + super.onBackPressed(); + break; + default: + break; + } + } + + /** + * 更新部件 + *

+ * 该方法完成以下工作: + * 1. 创建广播意图 + * 2. 根据部件类型设置广播接收者: + * - 如果是2x2部件,设置接收者为NoteWidgetProvider_2x + * - 如果是4x4部件,设置接收者为NoteWidgetProvider_4x + * - 否则记录错误并返回 + * 3. 添加部件ID到意图中 + * 4. 发送广播 + * 5. 设置结果 + *

+ * @param appWidgetId 部件ID + * @param appWidgetType 部件类型 + */ + private void updateWidget(int appWidgetId, int appWidgetType) { + Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_UPDATE); + if (appWidgetType == Notes.TYPE_WIDGET_2X) { + intent.setClass(this, NoteWidgetProvider_2x.class); + } else if (appWidgetType == Notes.TYPE_WIDGET_4X) { + intent.setClass(this, NoteWidgetProvider_4x.class); + } else { + Log.e(TAG, "Unspported widget type"); + return; + } + + intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, new int[] { + appWidgetId + }); + + sendBroadcast(intent); + setResult(RESULT_OK, intent); + } + + private final OnCreateContextMenuListener mFolderOnCreateContextMenuListener = new OnCreateContextMenuListener() { + public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { + if (mFocusNoteDataItem != null) { + menu.setHeaderTitle(mFocusNoteDataItem.getSnippet()); + menu.add(0, MENU_FOLDER_VIEW, 0, R.string.menu_folder_view); + menu.add(0, MENU_FOLDER_DELETE, 0, R.string.menu_folder_delete); + menu.add(0, MENU_FOLDER_CHANGE_NAME, 0, R.string.menu_folder_change_name); + } + } + }; + + @Override + public void onContextMenuClosed(Menu menu) { + if (mNotesListView != null) { + mNotesListView.setOnCreateContextMenuListener(null); + } + super.onContextMenuClosed(menu); + } + + @Override + public boolean onContextItemSelected(MenuItem item) { + if (mFocusNoteDataItem == null) { + Log.e(TAG, "The long click data item is null"); + return false; + } + switch (item.getItemId()) { + case MENU_FOLDER_VIEW: + openFolder(mFocusNoteDataItem); + break; + case MENU_FOLDER_DELETE: + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setTitle(getString(R.string.alert_title_delete)); + builder.setIcon(android.R.drawable.ic_dialog_alert); + builder.setMessage(getString(R.string.alert_message_delete_folder)); + builder.setPositiveButton(android.R.string.ok, + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + deleteFolder(mFocusNoteDataItem.getId()); + } + }); + builder.setNegativeButton(android.R.string.cancel, null); + builder.show(); + break; + case MENU_FOLDER_CHANGE_NAME: + showCreateOrModifyFolderDialog(false); + break; + default: + break; + } + + return true; + } + + @Override + public boolean onPrepareOptionsMenu(Menu menu) { + menu.clear(); + if (mState == ListEditState.NOTE_LIST) { + getMenuInflater().inflate(R.menu.note_list, menu); + // set sync or sync_cancel + menu.findItem(R.id.menu_sync).setTitle( + GTaskSyncService.isSyncing() ? R.string.menu_sync_cancel : R.string.menu_sync); + } else if (mState == ListEditState.SUB_FOLDER) { + getMenuInflater().inflate(R.menu.sub_folder, menu); + } else if (mState == ListEditState.CALL_RECORD_FOLDER) { + getMenuInflater().inflate(R.menu.call_record_folder, menu); + } else { + Log.e(TAG, "Wrong state:" + mState); + } + return true; + } + + /** + * 处理选项菜单点击事件 + *

+ * 该方法处理以下菜单项的点击事件: + * 1. 新建文件夹:显示创建文件夹对话框 + * 2. 导出文本:调用exportNoteToText方法导出笔记 + * 3. 同步: + * - 如果在同步模式下,根据当前标题判断是开始同步还是取消同步 + * - 否则跳转到设置页面 + * 4. 设置:跳转到设置页面 + * 5. 新建笔记:调用createNewNote方法创建新笔记 + * 6. 搜索:调用onSearchRequested方法启动搜索 + *

+ * @param item 被点击的菜单项 + * @return 是否处理了该事件,返回true表示已处理 + */ + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case R.id.menu_new_folder: { + showCreateOrModifyFolderDialog(true); + break; + } + case R.id.menu_export_text: { + exportNoteToText(); + break; + } + case R.id.menu_sync: { + if (isSyncMode()) { + if (TextUtils.equals(item.getTitle(), getString(R.string.menu_sync))) { + GTaskSyncService.startSync(this); + } else { + GTaskSyncService.cancelSync(this); + } + } else { + startPreferenceActivity(); + } + break; + } + case R.id.menu_setting: { + startPreferenceActivity(); + break; + } + case R.id.menu_new_note: { + createNewNote(); + break; + } + case R.id.menu_search: + onSearchRequested(); + break; + default: + break; + } + return true; + } + + /** + * 处理搜索请求 + *

+ * 该方法启动搜索活动 + *

+ * @return 是否处理了搜索请求,返回true表示已处理 + */ + @Override + public boolean onSearchRequested() { + startSearch(null, false, null /* appData */, false); + return true; + } + + /** + * 导出笔记到文本文件 + *

+ * 该方法在异步任务中完成以下工作: + * 1. 获取BackupUtils实例 + * 2. 在后台调用exportToText方法导出笔记 + * 3. 根据导出结果显示不同的对话框: + * - 如果SD卡未挂载,显示失败对话框 + * - 如果导出成功,显示成功对话框并显示导出文件的位置 + * - 如果系统错误,显示失败对话框 + *

+ */ + private void exportNoteToText() { + final BackupUtils backup = BackupUtils.getInstance(NotesListActivity.this); + new AsyncTask() { + + @Override + protected Integer doInBackground(Void... unused) { + return backup.exportToText(); + } + + @Override + protected void onPostExecute(Integer result) { + if (result == BackupUtils.STATE_SD_CARD_UNMOUONTED) { + AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity.this); + builder.setTitle(NotesListActivity.this + .getString(R.string.failed_sdcard_export)); + builder.setMessage(NotesListActivity.this + .getString(R.string.error_sdcard_unmounted)); + builder.setPositiveButton(android.R.string.ok, null); + builder.show(); + } else if (result == BackupUtils.STATE_SUCCESS) { + AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity.this); + builder.setTitle(NotesListActivity.this + .getString(R.string.success_sdcard_export)); + builder.setMessage(NotesListActivity.this.getString( + R.string.format_exported_file_location, backup + .getExportedTextFileName(), backup.getExportedTextFileDir())); + builder.setPositiveButton(android.R.string.ok, null); + builder.show(); + } else if (result == BackupUtils.STATE_SYSTEM_ERROR) { + AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity.this); + builder.setTitle(NotesListActivity.this + .getString(R.string.failed_sdcard_export)); + builder.setMessage(NotesListActivity.this + .getString(R.string.error_sdcard_export)); + builder.setPositiveButton(android.R.string.ok, null); + builder.show(); + } + } + + }.execute(); + } + + /** + * 检查是否处于同步模式 + *

+ * 该方法通过获取同步账户名来检查是否处于同步模式,如果同步账户名不为空则处于同步模式 + *

+ * @return 是否处于同步模式,true表示处于同步模式,false表示不处于同步模式 + */ + private boolean isSyncMode() { + return NotesPreferenceActivity.getSyncAccountName(this).trim().length() > 0; + } + + /** + * 启动偏好设置活动 + *

+ * 该方法完成以下工作: + * 1. 获取当前活动或父活动 + * 2. 创建意图,跳转到NotesPreferenceActivity + * 3. 启动活动 + *

+ */ + private void startPreferenceActivity() { + Activity from = getParent() != null ? getParent() : this; + Intent intent = new Intent(from, NotesPreferenceActivity.class); + from.startActivityIfNeeded(intent, -1); + } + + /** + * 列表项点击监听器类 + *

+ * 该类实现了OnItemClickListener接口,用于处理列表项的点击事件, + * 根据当前状态和点击的列表项类型执行不同的操作 + *

+ */ + private class OnListItemClickListener implements OnItemClickListener { + + /** + * 处理列表项点击事件 + *

+ * 该方法完成以下工作: + * 1. 检查被点击的视图是否是NotesListItem + * 2. 获取被点击的笔记数据项 + * 3. 如果在选择模式下: + * - 如果是笔记类型,切换选中状态 + * - 返回 + * 4. 根据当前状态和笔记类型执行不同的操作: + * - NOTE_LIST状态: + * - 如果是文件夹或系统类型,调用openFolder方法打开文件夹 + * - 如果是笔记类型,调用openNode方法打开笔记 + * - SUB_FOLDER或CALL_RECORD_FOLDER状态: + * - 如果是笔记类型,调用openNode方法打开笔记 + *

+ * @param parent 父视图 + * @param view 被点击的视图 + * @param position 被点击的位置 + * @param id 被点击的ID + */ + public void onItemClick(AdapterView parent, View view, int position, long id) { + if (view instanceof NotesListItem) { + NoteItemData item = ((NotesListItem) view).getItemData(); + if (mNotesListAdapter.isInChoiceMode()) { + if (item.getType() == Notes.TYPE_NOTE) { + position = position - mNotesListView.getHeaderViewsCount(); + mModeCallBack.onItemCheckedStateChanged(null, position, id, + !mNotesListAdapter.isSelectedItem(position)); + } + return; + } + + switch (mState) { + case NOTE_LIST: + if (item.getType() == Notes.TYPE_FOLDER + || item.getType() == Notes.TYPE_SYSTEM) { + openFolder(item); + } else if (item.getType() == Notes.TYPE_NOTE) { + openNode(item); + } else { + Log.e(TAG, "Wrong note type in NOTE_LIST"); + } + break; + case SUB_FOLDER: + case CALL_RECORD_FOLDER: + if (item.getType() == Notes.TYPE_NOTE) { + openNode(item); + } else { + Log.e(TAG, "Wrong note type in SUB_FOLDER"); + } + break; + default: + break; + } + } + } + + } + + /** + * 启动查询目标文件夹 + *

+ * 该方法完成以下工作: + * 1. 构建查询条件: + * - 基本条件:类型为文件夹,父ID不等于回收站ID,ID不等于当前文件夹ID + * - 如果当前状态不是NOTE_LIST,添加根文件夹ID到条件中 + * 2. 启动异步查询,查询结果将通过BackgroundQueryHandler返回 + *

+ */ + private void startQueryDestinationFolders() { + String selection = NoteColumns.TYPE + "=? AND " + NoteColumns.PARENT_ID + "<>? AND " + NoteColumns.ID + "<>?"; + selection = (mState == ListEditState.NOTE_LIST) ? selection: + "(" + selection + ") OR (" + NoteColumns.ID + "=" + Notes.ID_ROOT_FOLDER + ")"; + + mBackgroundQueryHandler.startQuery(FOLDER_LIST_QUERY_TOKEN, + null, + Notes.CONTENT_NOTE_URI, + FoldersListAdapter.PROJECTION, + selection, + new String[] { + String.valueOf(Notes.TYPE_FOLDER), + String.valueOf(Notes.ID_TRASH_FOLER), + String.valueOf(mCurrentFolderId) + }, + NoteColumns.MODIFIED_DATE + " DESC"); + } + + /** + * 处理列表项长按事件 + *

+ * 该方法完成以下工作: + * 1. 检查被长按的视图是否是NotesListItem + * 2. 获取被长按的笔记数据项 + * 3. 根据笔记类型处理长按事件: + * - 如果是笔记类型且不在选择模式下,启动多选模式并选中当前项 + * - 如果是文件夹类型,设置上下文菜单监听器 + * 4. 返回false表示事件未被完全处理 + *

+ * @param parent 父视图 + * @param view 被长按的视图 + * @param position 被长按的位置 + * @param id 被长按的ID + * @return 是否处理了该事件,返回false表示事件未被完全处理 + */ + public boolean onItemLongClick(AdapterView parent, View view, int position, long id) { + if (view instanceof NotesListItem) { + mFocusNoteDataItem = ((NotesListItem) view).getItemData(); + if (mFocusNoteDataItem.getType() == Notes.TYPE_NOTE && !mNotesListAdapter.isInChoiceMode()) { + if (mNotesListView.startActionMode(mModeCallBack) != null) { + mModeCallBack.onItemCheckedStateChanged(null, position, id, true); + mNotesListView.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS); + } else { + Log.e(TAG, "startActionMode fails"); + } + } else if (mFocusNoteDataItem.getType() == Notes.TYPE_FOLDER) { + mNotesListView.setOnCreateContextMenuListener(mFolderOnCreateContextMenuListener); + } + } + return false; + } +} diff --git a/src/main/java/net/micode/notes/ui/NotesListAdapter.java b/src/main/java/net/micode/notes/ui/NotesListAdapter.java new file mode 100644 index 0000000..e9f5a8a --- /dev/null +++ b/src/main/java/net/micode/notes/ui/NotesListAdapter.java @@ -0,0 +1,304 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.content.Context; +import android.database.Cursor; +import android.util.Log; +import android.view.View; +import android.view.ViewGroup; +import android.widget.CursorAdapter; + +import net.micode.notes.data.Notes; + +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; + + +/** + * 笔记列表适配器类 + *

+ * 该类是CursorAdapter的子类,用于将数据库中的笔记数据绑定到列表视图上, + * 支持普通浏览模式和选择模式,能够管理选中的项目,并提供了各种方法来处理 + * 列表项的选择状态、获取选中项目ID等功能。 + *

+ */ +public class NotesListAdapter extends CursorAdapter { + /** 日志标签 */ + private static final String TAG = "NotesListAdapter"; + /** 上下文对象 */ + private Context mContext; + /** 保存选中项目的位置和状态 */ + private HashMap mSelectedIndex; + /** 笔记数量 */ + private int mNotesCount; + /** 是否处于选择模式 */ + private boolean mChoiceMode; + + /** + * 应用桌面组件属性类 + *

+ * 该类用于存储桌面组件的相关属性,包括组件ID和组件类型 + *

+ */ + public static class AppWidgetAttribute { + /** 桌面组件ID */ + public int widgetId; + /** 桌面组件类型 */ + public int widgetType; + }; + + /** + * 构造函数 + *

+ * 初始化NotesListAdapter,创建选中项目的映射表,并设置初始上下文和笔记数量 + *

+ * @param context 上下文对象 + */ + public NotesListAdapter(Context context) { + super(context, null); + mSelectedIndex = new HashMap(); + mContext = context; + mNotesCount = 0; + } + + /** + * 创建新的列表项视图 + *

+ * 该方法在需要为新的数据项创建视图时调用,返回一个新的NotesListItem实例 + *

+ * @param context 上下文对象 + * @param cursor 数据游标 + * @param parent 父视图组 + * @return 新创建的列表项视图 + */ + @Override + public View newView(Context context, Cursor cursor, ViewGroup parent) { + return new NotesListItem(context); + } + + /** + * 将数据绑定到列表项视图 + *

+ * 该方法在需要将数据绑定到现有视图时调用,将游标中的数据转换为NoteItemData对象, + * 并调用NotesListItem的bind方法将数据绑定到视图上 + *

+ * @param view 要绑定数据的视图 + * @param context 上下文对象 + * @param cursor 数据游标 + */ + @Override + public void bindView(View view, Context context, Cursor cursor) { + if (view instanceof NotesListItem) { + NoteItemData itemData = new NoteItemData(context, cursor); + ((NotesListItem) view).bind(context, itemData, mChoiceMode, + isSelectedItem(cursor.getPosition())); + } + } + + /** + * 设置指定位置的项是否被选中 + *

+ * 该方法用于在选择模式下设置指定位置的项的选中状态,并通知数据集变化 + *

+ * @param position 项的位置 + * @param checked 是否被选中 + */ + public void setCheckedItem(final int position, final boolean checked) { + mSelectedIndex.put(position, checked); + notifyDataSetChanged(); + } + + /** + * 检查是否处于选择模式 + * @return 是否处于选择模式 + */ + 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++) { + if (cursor.moveToPosition(i)) { + if (NoteItemData.getNoteType(cursor) == Notes.TYPE_NOTE) { + setCheckedItem(i, checked); + } + } + } + } + + /** + * 获取所有选中项的ID + *

+ * 该方法用于获取选择模式下所有选中项的ID集合,排除根文件夹ID + *

+ * @return 选中项的ID集合 + */ + public HashSet getSelectedItemIds() { + HashSet itemSet = new HashSet(); + for (Integer position : mSelectedIndex.keySet()) { + if (mSelectedIndex.get(position) == true) { + Long id = getItemId(position); + if (id == Notes.ID_ROOT_FOLDER) { + Log.d(TAG, "Wrong item id, should not happen"); + } else { + itemSet.add(id); + } + } + } + + return itemSet; + } + + /** + * 获取所有选中的桌面组件属性 + *

+ * 该方法用于获取选择模式下所有选中的桌面组件的属性集合 + *

+ * @return 选中的桌面组件属性集合,若获取失败则返回null + */ + public HashSet getSelectedWidget() { + HashSet itemSet = new HashSet(); + for (Integer position : mSelectedIndex.keySet()) { + if (mSelectedIndex.get(position) == true) { + Cursor c = (Cursor) getItem(position); + if (c != null) { + AppWidgetAttribute widget = new AppWidgetAttribute(); + NoteItemData item = new NoteItemData(mContext, c); + widget.widgetId = item.getWidgetId(); + widget.widgetType = item.getWidgetType(); + itemSet.add(widget); + /** + * Don't close cursor here, only the adapter could close it + */ + } else { + Log.e(TAG, "Invalid cursor"); + return null; + } + } + } + return itemSet; + } + + /** + * 获取选中项的数量 + * @return 选中项的数量 + */ + public int getSelectedCount() { + Collection values = mSelectedIndex.values(); + if (null == values) { + return 0; + } + Iterator iter = values.iterator(); + int count = 0; + while (iter.hasNext()) { + if (true == iter.next()) { + count++; + } + } + 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; + } + return mSelectedIndex.get(position); + } + + /** + * 当数据内容变化时调用 + *

+ * 该方法在数据内容发生变化时被调用,会重新计算笔记数量 + *

+ */ + @Override + protected void onContentChanged() { + super.onContentChanged(); + calcNotesCount(); + } + + /** + * 更换数据游标 + *

+ * 该方法在更换数据游标时被调用,会重新计算笔记数量 + *

+ * @param cursor 新的数据游标 + */ + @Override + public void changeCursor(Cursor cursor) { + super.changeCursor(cursor); + calcNotesCount(); + } + + /** + * 计算笔记数量 + *

+ * 该方法用于统计当前数据集中的普通笔记数量,并更新mNotesCount成员变量 + *

+ */ + private void calcNotesCount() { + mNotesCount = 0; + for (int i = 0; i < getCount(); i++) { + Cursor c = (Cursor) getItem(i); + if (c != null) { + if (NoteItemData.getNoteType(c) == Notes.TYPE_NOTE) { + mNotesCount++; + } + } else { + Log.e(TAG, "Invalid cursor"); + return; + } + } + } +} diff --git a/src/main/java/net/micode/notes/ui/NotesListItem.java b/src/main/java/net/micode/notes/ui/NotesListItem.java new file mode 100644 index 0000000..b6222fd --- /dev/null +++ b/src/main/java/net/micode/notes/ui/NotesListItem.java @@ -0,0 +1,170 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.content.Context; +import android.text.format.DateUtils; +import android.view.View; +import android.widget.CheckBox; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.tool.DataUtils; +import net.micode.notes.tool.ResourceParser.NoteItemBgResources; + + +/** + * 笔记列表项视图类 + *

+ * 该类用于显示笔记列表中的单个条目,包含笔记的标题、时间、提醒图标等UI元素, + * 并能根据不同的笔记类型(普通笔记、文件夹、通话记录)和状态(选择模式、是否有提醒) + * 进行动态展示和样式调整 + *

+ */ +public class NotesListItem extends LinearLayout { + /** 提醒图标,用于显示笔记是否设置了提醒 */ + private ImageView mAlert; + /** 笔记标题文本视图 */ + private TextView mTitle; + /** 笔记时间文本视图 */ + private TextView mTime; + /** 通话记录名称文本视图 */ + private TextView mCallName; + /** 列表项数据对象,存储笔记的相关信息 */ + private NoteItemData mItemData; + /** 选择框,用于选择模式下选择笔记 */ + private CheckBox mCheckBox; + + /** + * 构造函数 + *

+ * 初始化NotesListItem视图,加载布局文件并获取各个UI组件的引用 + *

+ * @param context 上下文对象 + */ + public NotesListItem(Context context) { + super(context); + 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); + mCallName = (TextView) findViewById(R.id.tv_name); + mCheckBox = (CheckBox) findViewById(android.R.id.checkbox); + } + + /** + * 将笔记数据绑定到列表项视图 + *

+ * 该方法根据笔记数据的类型和状态,动态调整列表项的UI显示,包括: + * 1. 根据选择模式和笔记类型决定是否显示复选框 + * 2. 根据笔记类型(通话记录文件夹、普通通话记录、普通笔记、文件夹)设置不同的UI样式 + * 3. 设置标题、时间、提醒图标等内容 + * 4. 调用setBackground方法设置背景样式 + *

+ * @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); + } else { + mCheckBox.setVisibility(View.GONE); + } + + mItemData = data; + if (data.getId() == Notes.ID_CALL_RECORD_FOLDER) { + mCallName.setVisibility(View.GONE); + mAlert.setVisibility(View.VISIBLE); + mTitle.setTextAppearance(context, R.style.TextAppearancePrimaryItem); + mTitle.setText(context.getString(R.string.call_record_folder_name) + + 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); + mTitle.setText(DataUtils.getFormattedSnippet(data.getSnippet())); + if (data.hasAlert()) { + mAlert.setImageResource(R.drawable.clock); + mAlert.setVisibility(View.VISIBLE); + } else { + 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); + mAlert.setVisibility(View.VISIBLE); + } else { + mAlert.setVisibility(View.GONE); + } + } + } + mTime.setText(DateUtils.getRelativeTimeSpanString(data.getModifiedDate())); + + setBackground(data); + } + + /** + * 设置列表项的背景样式 + *

+ * 该方法根据笔记数据的类型和状态,选择并设置合适的背景资源: + * 1. 对于普通笔记,根据其在列表中的位置(单个、第一个、最后一个、中间)选择不同的背景 + * 2. 对于文件夹或其他类型,使用默认的文件夹背景 + *

+ * @param data 笔记列表项数据,包含背景颜色ID、类型和位置信息 + */ + 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/main/java/net/micode/notes/ui/NotesPreferenceActivity.java b/src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java new file mode 100644 index 0000000..69984ff --- /dev/null +++ b/src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java @@ -0,0 +1,554 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.ui; + +import android.accounts.Account; +import android.accounts.AccountManager; +import android.app.ActionBar; +import android.app.AlertDialog; +import android.content.BroadcastReceiver; +import android.content.ContentValues; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.IntentFilter; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.preference.Preference; +import android.preference.Preference.OnPreferenceClickListener; +import android.preference.PreferenceActivity; +import android.preference.PreferenceCategory; +import android.text.TextUtils; +import android.text.format.DateFormat; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.widget.Button; +import android.widget.TextView; +import android.widget.Toast; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.gtask.remote.GTaskSyncService; + + +/** + * 笔记偏好设置活动类 + *

+ * 该类用于处理笔记应用的设置,包括同步账户管理、背景颜色设置等功能, + * 提供了UI界面让用户进行偏好设置,并与GTaskSyncService进行交互实现同步功能 + *

+ */ +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; + + /** GTask同步服务广播接收器 */ + private GTaskReceiver mReceiver; + + /** 原始账户列表 */ + private Account[] mOriAccounts; + + /** 是否添加了新账户 */ + private boolean mHasAddedAccount; + + /** + * 活动创建时调用 + *

+ * 该方法完成以下工作: + * 1. 设置导航栏显示应用图标 + * 2. 加载偏好设置资源 + * 3. 初始化账户偏好设置分类 + * 4. 注册GTask同步服务广播接收器 + * 5. 为列表视图添加头部 + *

+ * @param icicle 保存的实例状态 + */ + @Override + protected void onCreate(Bundle icicle) { + super.onCreate(icicle); + + /* using the app icon for navigation */ + getActionBar().setDisplayHomeAsUpEnabled(true); + + 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); + } + + /** + * 活动恢复时调用 + *

+ * 该方法完成以下工作: + * 1. 如果添加了新账户,自动设置同步账户 + * 2. 刷新UI界面 + *

+ */ + @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) { + if (TextUtils.equals(accountOld.name, accountNew.name)) { + found = true; + break; + } + } + if (!found) { + setSyncAccount(accountNew.name); + break; + } + } + } + } + + refreshUI(); + } + + /** + * 活动销毁时调用 + *

+ * 该方法完成以下工作: + * 1. 注销GTask同步服务广播接收器 + *

+ */ + @Override + protected void onDestroy() { + if (mReceiver != null) { + unregisterReceiver(mReceiver); + } + super.onDestroy(); + } + + /** + * 加载账户偏好设置 + *

+ * 该方法完成以下工作: + * 1. 清空账户偏好设置分类中的所有偏好项 + * 2. 创建新的账户偏好项 + * 3. 设置账户偏好项的标题、摘要和点击监听器 + * 4. 根据当前同步状态和账户设置情况,决定点击时显示的对话框 + * 5. 将账户偏好项添加到分类中 + *

+ */ + private void loadAccountPreference() { + mAccountCategory.removeAll(); + + Preference accountPref = new Preference(this); + final String defaultAccount = getSyncAccountName(this); + accountPref.setTitle(getString(R.string.preferences_account_title)); + accountPref.setSummary(getString(R.string.preferences_account_summary)); + accountPref.setOnPreferenceClickListener(new OnPreferenceClickListener() { + 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(); + } + return true; + } + }); + + mAccountCategory.addPreference(accountPref); + } + + /** + * 加载同步按钮和状态 + *

+ * 该方法完成以下工作: + * 1. 获取同步按钮和最后同步时间视图 + * 2. 根据同步状态设置按钮文本和点击事件 + * 3. 根据是否有同步账户设置按钮可用性 + * 4. 设置最后同步时间或同步进度 + *

+ */ + 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) { + GTaskSyncService.cancelSync(NotesPreferenceActivity.this); + } + }); + } else { + syncButton.setText(getString(R.string.preferences_button_sync_immediately)); + syncButton.setOnClickListener(new View.OnClickListener() { + public void onClick(View v) { + GTaskSyncService.startSync(NotesPreferenceActivity.this); + } + }); + } + 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, + DateFormat.format(getString(R.string.preferences_last_sync_time_format), + lastSyncTime))); + lastSyncTimeView.setVisibility(View.VISIBLE); + } else { + lastSyncTimeView.setVisibility(View.GONE); + } + } + } + + /** + * 刷新UI界面 + *

+ * 该方法调用loadAccountPreference和loadSyncButton方法来刷新UI界面 + *

+ */ + private void refreshUI() { + loadAccountPreference(); + loadSyncButton(); + } + + /** + * 显示选择账户对话框 + *

+ * 该方法完成以下工作: + * 1. 创建对话框构建器并设置自定义标题 + * 2. 获取Google账户列表 + * 3. 如果有账户,显示单选列表供用户选择 + * 4. 添加添加新账户的选项 + * 5. 处理用户选择事件 + *

+ */ + 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)); + TextView subtitleTextView = (TextView) titleView.findViewById(R.id.account_dialog_subtitle); + subtitleTextView.setText(getString(R.string.preferences_dialog_select_account_tips)); + + dialogBuilder.setCustomTitle(titleView); + dialogBuilder.setPositiveButton(null, null); + + 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; + int checkedItem = -1; + int index = 0; + for (Account account : accounts) { + if (TextUtils.equals(account.name, defAccount)) { + checkedItem = index; + } + items[index++] = account.name; + } + dialogBuilder.setSingleChoiceItems(items, checkedItem, + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + setSyncAccount(itemMapping[which].toString()); + dialog.dismiss(); + refreshUI(); + } + }); + } + + View addAccountView = LayoutInflater.from(this).inflate(R.layout.add_account_text, null); + dialogBuilder.setView(addAccountView); + + final AlertDialog dialog = dialogBuilder.show(); + addAccountView.setOnClickListener(new View.OnClickListener() { + public void onClick(View v) { + mHasAddedAccount = true; + Intent intent = new Intent("android.settings.ADD_ACCOUNT_SETTINGS"); + intent.putExtra(AUTHORITIES_FILTER_KEY, new String[] { + "gmail-ls" + }); + startActivityForResult(intent, -1); + dialog.dismiss(); + } + }); + } + + /** + * 显示更改账户确认对话框 + *

+ * 该方法完成以下工作: + * 1. 创建对话框构建器并设置自定义标题 + * 2. 添加选项:更改账户、移除账户、取消 + * 3. 处理用户选择事件 + *

+ */ + 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, + getSyncAccountName(this))); + TextView subtitleTextView = (TextView) titleView.findViewById(R.id.account_dialog_subtitle); + 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), + getString(R.string.preferences_menu_cancel) + }; + dialogBuilder.setItems(menuItemArray, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + if (which == 0) { + showSelectAccountAlertDialog(); + } else if (which == 1) { + removeSyncAccount(); + refreshUI(); + } + } + }); + dialogBuilder.show(); + } + + /** + * 获取Google账户列表 + *

+ * 该方法通过AccountManager获取设备上的所有Google账户 + *

+ * @return Google账户数组 + */ + private Account[] getGoogleAccounts() { + AccountManager accountManager = AccountManager.get(this); + return accountManager.getAccountsByType("com.google"); + } + + /** + * 设置同步账户 + *

+ * 该方法完成以下工作: + * 1. 更新同步账户偏好设置 + * 2. 清除最后同步时间 + * 3. 清除本地GTask相关信息 + * 4. 显示成功提示 + *

+ * @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) { + editor.putString(PREFERENCE_SYNC_ACCOUNT_NAME, account); + } else { + editor.putString(PREFERENCE_SYNC_ACCOUNT_NAME, ""); + } + editor.commit(); + + // clean up last sync time + setLastSyncTime(this, 0); + + // clean up local gtask related info + new Thread(new Runnable() { + public void run() { + ContentValues values = new ContentValues(); + values.put(NoteColumns.GTASK_ID, ""); + values.put(NoteColumns.SYNC_ID, 0); + getContentResolver().update(Notes.CONTENT_NOTE_URI, values, null, null); + } + }).start(); + + Toast.makeText(NotesPreferenceActivity.this, + getString(R.string.preferences_toast_success_set_accout, account), + Toast.LENGTH_SHORT).show(); + } + } + + /** + * 移除同步账户 + *

+ * 该方法完成以下工作: + * 1. 移除同步账户偏好设置 + * 2. 移除最后同步时间偏好设置 + * 3. 清除本地GTask相关信息 + *

+ */ + private void removeSyncAccount() { + SharedPreferences settings = getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE); + SharedPreferences.Editor editor = settings.edit(); + if (settings.contains(PREFERENCE_SYNC_ACCOUNT_NAME)) { + editor.remove(PREFERENCE_SYNC_ACCOUNT_NAME); + } + if (settings.contains(PREFERENCE_LAST_SYNC_TIME)) { + editor.remove(PREFERENCE_LAST_SYNC_TIME); + } + editor.commit(); + + // clean up local gtask related info + new Thread(new Runnable() { + public void run() { + ContentValues values = new ContentValues(); + values.put(NoteColumns.GTASK_ID, ""); + values.put(NoteColumns.SYNC_ID, 0); + getContentResolver().update(Notes.CONTENT_NOTE_URI, values, null, null); + } + }).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); + SharedPreferences.Editor editor = settings.edit(); + editor.putLong(PREFERENCE_LAST_SYNC_TIME, time); + editor.commit(); + } + + /** + * 获取最后同步时间 + *

+ * 该方法从偏好设置中获取最后同步时间 + *

+ * @param context 上下文对象 + * @return 最后同步时间(毫秒),如果未设置则返回0 + */ + public static long getLastSyncTime(Context context) { + SharedPreferences settings = context.getSharedPreferences(PREFERENCE_NAME, + Context.MODE_PRIVATE); + return settings.getLong(PREFERENCE_LAST_SYNC_TIME, 0); + } + + /** + * GTask同步服务广播接收器 + *

+ * 该类用于接收GTaskSyncService发送的广播,更新UI界面和同步状态 + *

+ */ + private class GTaskReceiver extends BroadcastReceiver { + + /** + * 接收广播时调用 + *

+ * 该方法完成以下工作: + * 1. 刷新UI界面 + * 2. 如果正在同步,更新同步状态文本 + *

+ * @param context 上下文对象 + * @param intent 广播意图,包含同步状态和进度信息 + */ + @Override + public void onReceive(Context context, Intent intent) { + refreshUI(); + if (intent.getBooleanExtra(GTaskSyncService.GTASK_SERVICE_BROADCAST_IS_SYNCING, false)) { + TextView syncStatus = (TextView) findViewById(R.id.prefenerece_sync_status_textview); + 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); + return true; + default: + return false; + } + } +} diff --git a/src/main/java/net/micode/notes/widget/NoteWidgetProvider.java b/src/main/java/net/micode/notes/widget/NoteWidgetProvider.java new file mode 100644 index 0000000..8fffe80 --- /dev/null +++ b/src/main/java/net/micode/notes/widget/NoteWidgetProvider.java @@ -0,0 +1,224 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.widget; +import android.app.PendingIntent; +import android.appwidget.AppWidgetManager; +import android.appwidget.AppWidgetProvider; +import android.content.ContentValues; +import android.content.Context; +import android.content.Intent; +import android.database.Cursor; +import android.util.Log; +import android.widget.RemoteViews; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.NoteColumns; +import net.micode.notes.tool.ResourceParser; +import net.micode.notes.ui.NoteEditActivity; +import net.micode.notes.ui.NotesListActivity; + +/** + * 笔记小组件基类 + *

+ * 该抽象类为所有笔记小组件提供核心功能,包括小组件数据管理、UI更新、点击事件处理 + * 和小组件删除管理。它支持不同的小组件类型和布局,通过抽象方法让子类实现特定的 + * 布局和资源配置 + *

+ */ +public abstract class NoteWidgetProvider extends AppWidgetProvider { + /** + * 小组件数据查询的投影列数组 + *

+ * 定义了从数据库查询笔记数据时需要获取的列,包括笔记ID、背景颜色ID和摘要内容 + *

+ */ + public static final String [] PROJECTION = new String [] { + NoteColumns.ID, + NoteColumns.BG_COLOR_ID, + NoteColumns.SNIPPET + }; + + /** + * 查询结果中ID列的索引 + */ + public static final int COLUMN_ID = 0; + + /** + * 查询结果中背景颜色ID列的索引 + */ + public static final int COLUMN_BG_COLOR_ID = 1; + + /** + * 查询结果中摘要内容列的索引 + */ + public static final int COLUMN_SNIPPET = 2; + + /** + * 日志标签,用于小组件相关的日志输出 + */ + private static final String TAG = "NoteWidgetProvider"; + + /** + * 当小组件被删除时调用的方法 + *

+ * 该方法将数据库中与被删除小组件关联的笔记的WIDGET_ID字段更新为无效值, + * 解除笔记与已删除小组件的关联关系 + *

+ * @param context 上下文对象 + * @param appWidgetIds 被删除的小组件ID数组 + */ + @Override + public void onDeleted(Context context, int[] appWidgetIds) { + ContentValues values = new ContentValues(); + values.put(NoteColumns.WIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); + for (int i = 0; i < appWidgetIds.length; i++) { + context.getContentResolver().update(Notes.CONTENT_NOTE_URI, + values, + NoteColumns.WIDGET_ID + "=?", + new String[] { String.valueOf(appWidgetIds[i])}); + } + } + + /** + * 查询与特定小组件ID关联的笔记信息 + *

+ * 该方法从数据库中查询与给定小组件ID关联的笔记数据,并排除已删除到回收站的笔记 + *

+ * @param context 上下文对象 + * @param widgetId 要查询的小组件ID + * @return 返回包含笔记信息的Cursor对象,使用PROJECTION中定义的列 + */ + private Cursor getNoteWidgetInfo(Context context, int widgetId) { + return context.getContentResolver().query(Notes.CONTENT_NOTE_URI, + PROJECTION, + NoteColumns.WIDGET_ID + "=? AND " + NoteColumns.PARENT_ID + "<>?", + new String[] { String.valueOf(widgetId), String.valueOf(Notes.ID_TRASH_FOLER) }, + null); + } + + /** + * 更新小组件的UI和数据 + *

+ * 该方法是update方法的公共保护接口,默认使用非隐私模式更新小组件 + *

+ * @param context 上下文对象 + * @param appWidgetManager 小组件管理器 + * @param appWidgetIds 要更新的小组件ID数组 + */ + protected void update(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { + update(context, appWidgetManager, appWidgetIds, false); + } + + /** + * 更新小组件的UI和数据(私有实现) + *

+ * 该方法负责实际更新小组件的内容,支持隐私模式和正常模式: + * 1. 查询与小组件关联的笔记信息 + * 2. 根据查询结果设置小组件显示的文本和背景 + * 3. 创建点击小组件时的PendingIntent + * 4. 在隐私模式下显示特定提示文本并跳转到笔记列表 + * 5. 在正常模式下显示笔记内容并支持查看或创建笔记 + *

+ * @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); + intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); + 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) { + Log.e(TAG, "Multiple message with same widget id:" + appWidgetIds[i]); + c.close(); + return; + } + snippet = c.getString(COLUMN_SNIPPET); + bgId = c.getInt(COLUMN_BG_COLOR_ID); + intent.putExtra(Intent.EXTRA_UID, c.getLong(COLUMN_ID)); + intent.setAction(Intent.ACTION_VIEW); + } else { + snippet = context.getResources().getString(R.string.widget_havenot_content); + intent.setAction(Intent.ACTION_INSERT_OR_EDIT); + } + + if (c != null) { + c.close(); + } + + 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 = 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); + } + + rv.setOnClickPendingIntent(R.id.widget_text, pendingIntent); + appWidgetManager.updateAppWidget(appWidgetIds[i], rv); + } + } + } + + /** + * 根据背景颜色ID获取对应的背景资源ID + *

+ * 该方法由子类实现,用于将数据库中的背景颜色ID转换为实际的资源ID + *

+ * @param bgId 数据库中的背景颜色ID + * @return 对应的背景资源ID + */ + protected abstract int getBgResourceId(int bgId); + + /** + * 获取小组件的布局ID + *

+ * 该方法由子类实现,返回特定小组件类型的布局资源ID + *

+ * @return 小组件布局资源ID + */ + protected abstract int getLayoutId(); + + /** + * 获取小组件类型 + *

+ * 该方法由子类实现,返回特定小组件的类型标识 + *

+ * @return 小组件类型标识 + */ + protected abstract int getWidgetType(); +} diff --git a/src/main/java/net/micode/notes/widget/NoteWidgetProvider_2x.java b/src/main/java/net/micode/notes/widget/NoteWidgetProvider_2x.java new file mode 100644 index 0000000..02bd7f1 --- /dev/null +++ b/src/main/java/net/micode/notes/widget/NoteWidgetProvider_2x.java @@ -0,0 +1,85 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.widget; + +import android.appwidget.AppWidgetManager; +import android.content.Context; + +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 { + /** + * 更新小组件的UI和数据 + *

+ * 该方法重写了AppWidgetProvider的onUpdate方法,调用父类的update方法来更新2x尺寸小组件 + *

+ * @param context 上下文对象 + * @param appWidgetManager 小组件管理器 + * @param appWidgetIds 要更新的小组件ID数组 + */ + @Override + public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { + super.update(context, appWidgetManager, appWidgetIds); + } + + /** + * 获取2x尺寸小组件的布局ID + *

+ * 返回2x尺寸小组件的布局资源ID + *

+ * @return 2x小组件布局资源ID + */ + @Override + protected int getLayoutId() { + return R.layout.widget_2x; + } + + /** + * 根据背景颜色ID获取2x小组件对应的背景资源ID + *

+ * 通过ResourceParser获取2x尺寸小组件的背景资源ID + *

+ * @param bgId 数据库中的背景颜色ID + * @return 2x小组件对应的背景资源ID + */ + @Override + protected int getBgResourceId(int bgId) { + return ResourceParser.WidgetBgResources.getWidget2xBgResource(bgId); + } + + /** + * 获取2x小组件类型 + *

+ * 返回2x尺寸小组件的类型标识 + *

+ * @return 2x小组件类型标识 + */ + @Override + protected int getWidgetType() { + return Notes.TYPE_WIDGET_2X; + } +} diff --git a/src/main/java/net/micode/notes/widget/NoteWidgetProvider_4x.java b/src/main/java/net/micode/notes/widget/NoteWidgetProvider_4x.java new file mode 100644 index 0000000..6e4a984 --- /dev/null +++ b/src/main/java/net/micode/notes/widget/NoteWidgetProvider_4x.java @@ -0,0 +1,85 @@ +/* + * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.micode.notes.widget; + +import android.appwidget.AppWidgetManager; +import android.content.Context; + +import net.micode.notes.R; +import net.micode.notes.data.Notes; +import net.micode.notes.tool.ResourceParser; + + +/** + * 4x尺寸的笔记小组件实现类 + *

+ * 该类继承自NoteWidgetProvider抽象类,实现了4x尺寸笔记小组件的具体功能 + * 包括布局设置、背景资源获取和小组件类型定义 + *

+ */ +public class NoteWidgetProvider_4x extends NoteWidgetProvider { + /** + * 更新小组件的UI和数据 + *

+ * 该方法重写了AppWidgetProvider的onUpdate方法,调用父类的update方法来更新4x尺寸小组件 + *

+ * @param context 上下文对象 + * @param appWidgetManager 小组件管理器 + * @param appWidgetIds 要更新的小组件ID数组 + */ + @Override + public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { + super.update(context, appWidgetManager, appWidgetIds); + } + + /** + * 获取4x尺寸小组件的布局ID + *

+ * 返回4x尺寸小组件的布局资源ID + *

+ * @return 4x小组件布局资源ID + */ + @Override + protected int getLayoutId() { + return R.layout.widget_4x; + } + + /** + * 根据背景颜色ID获取4x小组件对应的背景资源ID + *

+ * 通过ResourceParser获取4x尺寸小组件的背景资源ID + *

+ * @param bgId 数据库中的背景颜色ID + * @return 4x小组件对应的背景资源ID + */ + @Override + protected int getBgResourceId(int bgId) { + return ResourceParser.WidgetBgResources.getWidget4xBgResource(bgId); + } + + /** + * 获取4x小组件类型 + *

+ * 返回4x尺寸小组件的类型标识 + *

+ * @return 4x小组件类型标识 + */ + @Override + protected int getWidgetType() { + return Notes.TYPE_WIDGET_4X; + } +} -- 2.34.1 From c2fc4cb5d9f3ccf2a8f7b17e16fcdd662f1b8e32 Mon Sep 17 00:00:00 2001 From: tb202302116011 <1271741232@qq.com> Date: Tue, 23 Dec 2025 19:11:30 +0800 Subject: [PATCH 21/30] =?UTF-8?q?=E7=94=B1=E4=BA=8E=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E5=86=B2=E7=AA=81=EF=BC=8C=E5=B0=9D=E8=AF=95=E6=8A=8Aword?= =?UTF-8?q?=E5=8F=98=E6=88=90=E7=9B=B8=E5=90=8C=E7=9A=84=E5=86=8D=E5=90=88?= =?UTF-8?q?=E5=B9=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...米便签开源代码的泛读报告.docx | Bin 336412 -> 0 bytes ...泛读、标注和维护报告文档 .docx | Bin 0 -> 639172 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 doc/小米便签开源代码的泛读报告.docx create mode 100644 doc/小米便签泛读、标注和维护报告文档 .docx diff --git a/doc/小米便签开源代码的泛读报告.docx b/doc/小米便签开源代码的泛读报告.docx deleted file mode 100644 index 136282e1e13a95dc8263a88850067a7da4d90a56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 336412 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%0AL|%k=Fw1~~a5}e6_2kqo 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%0AZ72V$j3ozd9IFAF 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

` zfEBqq7y`m1+KHShL`xQO*M1iq(m4`&NRD($9H4@NDewuGzjjcCmXh7&N(pvuWIcf0b&Uc~-oBB|ks2ZDpsd}0vr+_rx~k|h8QK5 zaHZi)8Eq$jb8lC>q&6A#!!*D{5t4)p*dH#MrtJF(x}K;N7vHO${!#8i=B9ZHgY>Qe zche>g{MkZoeTSA1e4_+~-LEFMk_e@qaA3%H@w6vLu zOMyAPOp>U_vqDnqLBUG436vio;vtjLr;ESP8dZi1nGdF=a1G!VR01PnbI)zu&dG%= z9fffOTm3qs8n@wuqj`6PB<>7n5ZS+&4Rl(P@Q)&Q0WbJ516;tz8sjESXW+PJ3H_kb`+9R0=yE%Bi zc|RUjUhTMY2A~d!MpWUs_~K1^l?EHh1_o{gFL`u-Ts3{;&vDITQk`ggRIzu?^_Q_Y zr%7dWRz?C*lC}D>AxS9k&cp~DbbOFnV+dL#Q8=gScW{ha3am#H?~lEb#%&yJ-*0nF z%w9ugnTiQVe`JNfJw(4{@})59oqY|04CI4}LcsO0ER6R)aKh-tSGu>+I^v|gWm0+f zl^1Em_$vAfCA&>(K0Mj6rDwuQkr5f$TLG~k+m~*oFE@b3lnNHBbM|7v#0n^!k+ccV zDSbrkhP)GdL~Kq8YJ{3|7I}O^V&@azYazwLxDT7NjtAzx4EqCG zZcC5M$Ut+!EnVU1F>=3(vevZXptf?nx^5SHj~q6uCgX5EWBWw2@d#Cc+@Fg1R1?xH z4MPp{;BCCtLz8I|iXUVpdF}DZSH!=7E~iy#e-rVSogw5b>%3wg3+KhBO=M-E$!hY^ zKykkJIZ#G_m_2(oNmi1C+Y=|U0_9lLLho}CQY>Soet&l&()f1kv*8hF(zcxjU0)WC zrSBaC5}JxkJqiCV5bb63T5Q0NE|Z2|yrOiwG;+Ecr_4ELJFvU!*^o;>YxTaL(k+<@ za)Kdf?QLb|rg^ye(fFByvnE@%kK;Df#D(F$RymeGz~CJjI22Qlg)e4ZU9$cDL(4rk z@m)N5v>N_5_TB`n=e%zl{u{=OG0Z3-g|QW-j7%jX%g9zz(SjC~7^P^FN@^BMyQL%{ zN{d#ZU1erkC~CAz$&@6iWGhL%=lRQA&wW47{k+ff9{2G+$9uoWbX?bQxu}2t|L^zv ze!rj3`8gM9^@P9st$9K5=uRa&Pxf$LhXBIPFM>44q5_v7I&U8VV{&zU<$o=fgHQ<5 z4E0MWz#%#Q)(Q1#6`L1}2 z?u=*Q?FpVrx>$WQdt`{xIp1m*Qd|(t<&Z3O#z+GXvDe8rmq1c{3JkkI%n?6?*3CK4 zS_>~8&WX!l4AlzE?wO|(v(IQm!5JHe`R}T8`wh$+*KfjGIoY)Xr+aM2)pakqXi#AK zfu1E>sXpNZ6O?=(G@wt&Q%I{5!}O|eW&PsVc$LEBp`w^p94Q8kldV~^qq;(1_Bevg z870f+f2gwQPY1`de(avroPhXvADtJSCCR*kSox#oLJsQ&b2?XpcwsHWUyFqOU@#kec3Ge zXnWg~I%5sCcVEn|=0OMX&cOr|RLj~29&j2G*v@dZKi-x13M`D+RPpSxj%~t2fx;^7 z-r@z!syV5rp#ggE_Fs(T@EaF0@ClXkzB-)ZK?jxhf)CLM?8>r0ULqKp5kkXtFr;jD zbzh}Hc%MUc#Mbs7mySJl*XcRV(5pDTo&uRDQ0SNYdt0QtEM`WMM&C!Ntz|7JPuu+F}I3}Kl&#h8%QR-B%)5?aqDBuC#)pY)^C75e94 zvAtqVM0SrbTtcBIAY0;(xp(1Yr4)cWZ%=*a!SMivb|<$4MqQUzM%a~r`I}&_Pir75 zBsCiMPeP0muEkCU3wpcT;4GAHw<^Il7u5Tg4v-Rag?BqblX*sBRzJ+7f}aNE+1}Xnfqwn3e^O@r~`$$N!Rc$EBb*lG7`%DaJ?_ zV^a&vZW2dpv<7Ao+tWPPLy}eK%ht9xqzjV<&-0UAAMcTHBY1X$TuW%k>zqkdi3C|Z zr0AecO8@Jyl+xrZj@Z0N)|5QC9_KeFCbt%NutFtOoet}Kz?o$v_jciCyc>W%GkMn; zj>wyqpK~zbTFF9r(u=m6OpOe(0m*h&SEd@6CmU=c`Yecn;{K_T#Qa+!_N{YvpM_)D zpW1I5wQ5t^R2$T7m(w(aJ+n+}t{=Po`g!CG2|VSpHL^kb19k(ZV?2~(+HQp;o`b0F zuftbub!`d^vM*0*j4vfA zk^mJ!1+~B;a$eY-p0qo(+uvf<-MxQ-!G-VfwuHuZg<0oASUt+^sF`1y=W%|2_(o2y zd)|NO9$y@@$hvcAzXdRf0CJ}Gfz^e95F>5*p2Vi~3~Y3HA~G&JyJNXZi`rB0%-H|? zGh6NyYvpPHNc7@Fh>UQ_P+j)IU|J6MIt)%vxbuLlM zSE@0gmUL0yt?9QH^fowdI8?eU0h?M3YG8KAL9U1HM^yl~N=J{yoblTizi7kp#qcqS zgBJ0cWY4BQKB1*#`{~u>`1)AY@>43!l^7*3PuT)Y244tw=Bb%%V@ME)w0p82jM!rv z+Eg<{q}!{0LoQYhRdS2kkF0y(yzT|t|M_bA3EZt1bgik7FiR0-Ed%3;v_@v1A_IbB zaE@@w0!;CPDn0Lt1@~&{y-N`tMYA;IZkZMY#adEj_%}jJoSl(&(fYT*rI3`06xVy<4*h$S^-Ey9AHW9qcuH;**%lYC(uDjwY&(71~AUEUUYKsY|O-9Wksjv z!yy+yxK-&Myb`!~-t-YSeyrv?kw+T2b%N(Q5@%2Rp?{Sv1kg}HG=nGl@!ky5Q#x`7 z`gt?V;}TLeM;mz)NN%#xtXhcX-W=_l4ziVSNXY9iLd)|nNVVGipl-;gxH5iCe9#zc z&&o=A_yu2zm6*|iMeRFLS&l#*x!NyhTXNh&x(MdD`6%0hp*KMrSHO4;qD$Qdg}`LI zSc5S1jk{)X%Au7`y1?t1RKae7neCccWe&?}eU8htM<`Uz&*6mziXzD~8Eo&p5mVw) zlDa6GQOxao>GbJN7bhSC{H#2+f~7Sr2ak^qNV(!)8>}#}L>*VUjI=03yUs&mZaUy> z`2+s_7QAg4Mu)1vHeByrN)ue@5(K##<6$5e4?XaO)EZP<(tB?X=|b8`9{TGo9o6fx z(=&jJZ?q{XQ8%L(6pgSqBuX~n7k z9H&0%Q4Jf1f*~CZ1MNrWa1NL0+JyiF0=M1y3mC==uHNdg7NO|Q*epx&=N3DUEVTW zZyYuSy$|Wp({C0upZ5=3VQ{8=cZb8D9B84nCwxkdbpf6OGqg5UcjU48XK}n}4oD*a zThvOxflOSE-MhvZn=9*Rz5%?)F-)gMmH#c3TG-W0y)s_ZhOMCCItp{)P2jndYi?QU z%1}L44k+7&PY8i}c+I>zenOO5z8D+kmBKC`yPmpq*4^ElN#gJpux6UgBM4?yyi34y zl=2L)WH|NRw`#xFR#%Ytj53y~?&I9%Zi(ZKLnT623c(Z~XFo46=!tiBHY=ZXTX;3{ z!Gvx{eLMz`&TdtR#C4(L&V@OF{<~XMR<@>hy&VPp7{9EB4VqH?W5p=C^q+7~)-=R$ zLQkpgSmE%|zA%@TX`&UjFrdD6+#P%>yLUlGGEHb6ys^dwy9~mSEAIjJpeHp1-x4nh zLt)yc9IQ6u6Mll5zA^<8J0aw}ykrXA&l z(up_4)JU|Pb6A)BrAn~hKc3nDnP>92f(0ZMy10Nj1oJ!NaTG3{_Z5nVV8I|a>^ zy6rIc_z49EQDK4n2XBvLl!E!3N(oG^+n;-W!3bw1Z~isv5v&A}as{lGW(xKKa1R=z zFAuMgZ&1ovwLHdPLU1_{#T20TI)hO7cb?Lo-sDy&c^^GG_iiq1d@O*;acsiykL|-M zy~~o%{0KKIC2y`S4Ah`^*3}N$_uD+)rH_UV5)<+kX&GY!}=k3y2&u=(fHXibc z?m<>Tru)!H7Q!jT9N!=~Qas7|Z1PdG;4)1$NT7)jEVKp7hkH4uSwCWyuH+Acmh_f~ zZZ_Ax5LLn<=HP^gE$+%3%tEYw+*h>v^7Zbjdr3JHryS_nhEH_i@PzsMb|2VS^zPBr zB?B%ncvuBL3h4Ia`&%BvQVYfsYSxA(&VP*RY6oskf0lGeveY_y8wRuiHr{i5-yQ+e zv6&X4_0K?clAPP?do;bxV?dQ-cNuFXD`isi~X&%w7ovt&T6|5cti@>z~aLsnLzmK?3`=|LT$YTbXW;j zZ8=Q_`kJeZ>kG$-tYRRJn4fr~&%VV{By}HCh{h^(BkY9Xk0Mh1e1}i!Jk3?_Z48zR zCe03SDrvq3J-F^&CkE2xK36(4{icjAratL?SBnKF_t9vx{`dgrx26+_LHcX8A67#Y zM?C5Mwbm9W=Ctq~l@+kZDhxs;Od`YRAy?r1H`F!A~xcAvnj`D6S4A^#|HhP|2 zZAQziRS&@C{X?{S<%Vc&A5JJ1_dSge)EjVnvATqJz}E&5?kxtGn`a!^=94n7qcz4c z{vw8RdE$1pZAHs4lh#KyVZAsnv&!y_}EU1J2hEcxb>n`ea=1v z2FR-aRt;UQC=-k+QEQwj3-muV^Z(8jUm`QQX#+eBPA6NiMCX_83R9PN&4WY;rOUd5 zUbX0_PqiETS9|0Jrrdm9Q#7tnVkke@nicCb5`WnGv#!?AVMz86zNU%{pH=O412v2P zWgwOF9{cTcZ7jF%+BSEW&9AN=o-!aXtD zMWTYQ*Jv!$-*5I@2&A~L`bbtrY{jQXel;AHH)KrgqhTP}1KzkitLozDglXa7V`nE+ zj2QddrWkL{{HoaNhQEc6OYj!|VTG=bc;K>8-djhE{zggW@%yHr1JBP56Z`!1$+~W* zb8+>ho7J|rNIMu-?MX_xrirhQkAq0*=D60s|6HN}gDu`AzmyIilN$V!r|;Cq{CxQO z#^Upg!J99-HQ~Q~>q^5l_{vN#0Ib;btp7u~CF;wA^>Idy(1kk!9l=+P$k1N6{5ZDe z{aPpdok+C(%c-g#|0o$z)ctsIFAM`w4SG!!z3{+O-{>V9wzi_~YovuJ6-*Z+%m@z1yZzjg&GpMv1) z3;wb)+P#qdWIwbfIz6OM$deXFq`()jVeI(0CL{mDhvfg!n=?I<0Ja5rmtQSFooqhD^i4!L_UfH?~Lkk(j?AK*VNxSHAhROd?PU0GFyJgB` zx2U8jC*^~sEd_Hd|M?{grsLHD7c>CC$#0Dg6H?9TWRE$+`GXUM%j@ZT+~BJJ>s>S@ zaT@6Ns=W)B3hmJE)>O=DfaIl##210S4VcBz;Sf#AC^>=tN)`i4P(VN;q3(J{ud;33 z0uIv{Koy=-K>s`X_hjDqjo!?RL&je%tk*A~uLmZtCceO59)c?8_-Y|@vN6LL2cjQo z4vr2%L4kpJl(K`O;lsf-TI1s#>o0<-Lk@%B--ao&qk|;VYDr{y2s(`hY>YZ+BBqg` z1PD&>m&7G>-0f-}f)%;RXdT(;Szvy@^8 zQ1mS@i(XwJZ{d*JvKZtDdhb|(_1zjZ>Mh*WR$w?(-fW+cvG)ns0zLr6@L`nk%g8d} zeUX3DFyDZ8`e{|RTlm{Hv+VFce)~+;O1Snn4=0~+6W@ePHWN7D)38H-_9OqJG=`#Q z50kCw(p7#}xt240+A>TJSfrE)9huw_zcFKoM!*r^Tfw#){8?2ii5ElzUp)HF4pJ?W zp<~DHg+{6vN}eXj+SjVu*i%SF-$IGub@cceJ!#>kP?Zn}+wv@fO~;W)74%8R(W3<4 zNY~i^`1q>u^z;SwH}tG(-E21)%* z2Y9{BHPVDgmZSE?)*DZ@z!`x^xOKoxVk(feyyMfN4VJLK9S{ zI;u9u&b&VVK-$~Kr`l~vJJwBJMh6x@1;UPL>#5+-)8hCb)K)Il@l(Sim5++orn+gfilk|X5;q2GeCLxSCgf&SJynA>TG9c*9S#a0P4&j zmwK{as1zf2EVah`)$W^=0IY)lN71OCUcG!7jxh}PCZlKXx$p6iYwqt(PL0j^${LaF zHqD>j(>pYBW|d`oO9|*3pzh`K5wf3qW_BsIHsQ5#Cza~QvRt5&5PX5tw&C6%>zgaP z5|*3`Ur&t}x4*JxO4_;I(XG!=4!dg&3Z*8GC&7jU*X-GHp#Nwb;#5vxaH0C%Y(1P<2DjhQSqe9~h zP!!;xj{4p6Jr!Oj*Dbuf{wI59>fNUFDidUysELxwhB#~F;WkK-snX;*bo6S~d@K_Z2UZ6U_7GNQi)QM_mt(az zqL7eNJ^Q>msbM&lI=Ii=$YCk4D)VvyLnj--9PtHlaX#qsXKWJ#d*8GPdnV~WnX^eZ zWc?K^4ugt`*nHOoM}WFTWIMVz=qh7Jz-9_kGzwMztq+Ij#tyfq;E(%5S)TB_%{A3S z;AzeQjXp$i6{t4m@Xc+jTc0(JCLi!5T?Oi9nYL8C%#9Y6Xs|ZYxl}v``kQUjwn%bX zOIo6-KlV9V5tT7Q8hFgaRkut>K_GCBXJe*xp|rzVGMx=Zr&mLa=1*1@P2X%|kCQ$^ z)n=qoywP?tPACsG^#|dl5RBLI=3lXzPGvOgKaka%4sKhkz2CQxSI{Ilq_Snq7#1KT z^;{cXH)afdq8W)`DwI;SX?wyHjW*-9Q+5x9ypLn~@XI4QGw$xfUf>5xtbyyN?kj3j zZHzl?MlZ(Gun~bpnSURJyG_>rK+6C~b2F6W_oiWNNX4q^!j1K)eBc$YqaAFW^0!pT zQ4OPkv2<3=G?~r+38{{e5e)BeJ)4Ku;Ysnu8EO00(~Vkvkb$F$@1Y=~7*M76{Vo)p zXE6Y2ed%nq;YN$qRT#ouu1k17a^%QEgWcj%KiS6*SHo0#ppk_^a1*K-1yzmOuW9W@ ziy_m*6f)BAptjmW&awNKq3Phqrmsx6<#&_}&Atvqkh0*}Kx<69-##6`+wsDUsU%@y z^VAM*f|1hwM+(1Hp9%_+Xn&BFRF-{BHATDYeB5oai)wH)%bRJiId=T`=;Dv(llL*V z>33mL&r-`#jjAs{v;6D=YCy0%?a4HWQ-&bSG*)O1Lcxw1h8RaqDvQ*-4K*8z#i(LER5sYm zEl9*<$b{{~c-mt@6Xi}pPHWUtJc0Bhs@(UJh5`Li>fG!)v8qYXaCG^_29}G;9qQQ^ zJ2Te85j0G3aA9vBHnn>tA0;xLTJ4|1QnzyQqsoG%vDlB`z9`tJ39MU)f(u9(<6#3~ zhH8Cw8Rd)iMkD5;vf{x(PbcbBTA$pd>#;YfnKC-(&)Rx}IYd*Z+-siSPcw&_uM5UR z(Z$I)YN;p*Rort0pZw+bo7A!|KXg#8q?HIBym>fG_hVHHCkdH(xKru0IVh_ieDg{_ zwvjTst?qUk{8bYl4ch5W0xROnzXq7bwg3n zQbG@B+tZ4Ls6M2jyTRH|$!KtBNTK)+x1bR%lF+|>I^N`K_HSGUSoO5`_<{9d*Ac{` zaQ*hcRIeP_FZ?3@B6SfJGGjy(3vstU@Q5jIUKokL#Ko0Hh3JhoYKcGg1dUs%vzOlM&d1KC!$$7Ay0BIC+LJcfJ%Fj(?;Pp_S?E?28!E zN(j4j1T+J!>-}Dt=CtIDWHmx|F^yYD_-}+T2F!S-l&&g=c zkk4ql%Cd|EFmTj;a3{V$kM>U3ydKEV;Da?1nf5|q>F_($eFBM;bUF$JDA(ueOY?gP z>5DRYz~hRm&=@tb5TFxf{p)l5Ko$@{;hGz6c<2yXjPk<*Z5tg6SmrjNN=P#JOI>(( zH+w%v-+<|Lq?Xg~JoU*pg?nou8p5)>Z9&MVrV*NB=R)b(34R|{f&M+ke2$$BDl$f z(b4skB7H6R2y($Winr;VY;Xwu0U9M?7er+m{yQhz4b;1(I zV_btWhLPc+eZPC+Vg3;vF^jA&R6BWlJl;PLcK3QQ8cE~4^x-?vGch@9n|J~YTxDB` zP3Y2-Ih&`2HyCMjAFbE7sJPzkh{7PY9E+m~o)3PvPs&DzLU?}Rm(kwTr9gx%MsF1X zGXeHfz-R;*9vp>au3(&TkJI3UyJGbE0PPEj^;1w{HTaPuZ|aZsXoAY_jTHXTfQXuI zhM}PkD@LISO^y)dK+zHfZn1lvoWaMb1E@ehQNJ7=XHeH@$cP~M;Ynj(PdT2mSC7h5$SDR) z6yieAQI)ctCgr+*ECnci{oT1VAc_uE359?CVyX%ijo!cC15k_3osq>sCvJCUjG`@# z;I!$p69ymB#0OA5B^eHTH~6pw8MvLe(0LOKa!HzX2Gfb!A1d7FVyWFg;gEZGTCw_b zA`C*s?2qm+wJsq;K5pSB%|)B91--+EWuG(GdFCr@xK(a*9~aR!l3ZkDotJ47@FHuv z`&{-z&}VHjI$PnE`W>2&Q#gUZ-m-aNZ6fv1!JrF!bpf7;P{l%MJ13HHl4-K5(*3VN z@crhKY1rSu?RBEdRI5FDPFY3<;FN_*--z*X=-qqJl^b;wHL*m*fflT2RO>wE<&K>@ z3nh1+9mBISb2jKgu%onD)=645jCiaw9%$(RLW9KN)w#Ye8DaJ#i~=&H$>C-8o9V-? zu-Uvn{76wstGbcEY(CVIbx}Uu2s<{qDb0`dx^Ob?1~I=m@lqcI1I4DhGB1*#1HO+= zu=TGqwN3>}9Xypb$=MPa^r~Grv@R8gt|0jvHnSAuI&R=mUYYqrF3R(HTW@-P@kfAZReQ`6`^7A3cAY~jfl=x$?fLDigU1w& zval5hmIPSy^3Fc5c@m+T8p{VFbJxk+D6UBPH}&s%t8O|;{ywTv3tYQa`^d_I?z+s~ z-ZuFVPD_H!{_idlyKq{OI;siFKex|5Ffi~^XzcdBo-QidqlzmNan!QpQcS8As+AQ7 zq)PT2#WI?pY^6_yWc~H~VAAD}Gv0lE;5*i}9~D>jzjVM>ob9za(pFldw0BSwLS>h! zKYdKi0NOfcaKb~`R2RDU$WS?j4Gj+Y`T4EuBLkgt2*M#J;8JnWOPpba0O-UZh;5Y- zuBNB&6_*n?HpkQ9|IWO^OT_?>z;2>RV|lY?D9UJP!!FhS5%cngYkYXfKzDS>2Epx! zWm3_2mr?sDa4wjxGjo?aH!-E!g2Q$HJEG-SC7L zii5rCz6isz!9ml3>R;lx63@u?nu4+(=<76BbP|byJ?fh`$vYbP;2$FkI z{h6GF__&3%StGodiOUk!g8L;m$uSrhG4=o{0<96)9C(TI0Nl%^oLPWt1K8Q5Lp@9u zB^YYLKZe^}T#Vm7;oGfC1)x!XrgFP_Fc&Z-yyeaG4_AF!7YZ}*4!Hq18(h*HFO4TH z4}M`2RO=l#WR4K-sQ?fD#u}2pw|G=I-DYVENYo_g3o|V|DP8N14$NAsDLA3`WptLI zrnXyYWM$HpC5&-$R6|UIAA?cKn%`KV>&$5R9(y<)R^?NIJ`iMrR>q4ZC|ec4f|P?q zXZ@?SaaKlB+Cedv*qPE@?Ws*zbvt+-0At%=`(iUn5)vTg69*+|>^yfpV1bU7Qs;HU z1hxfel`joi~W>h0w!!#H3(HE)@hE9jo) z+S!2IZ7`0`(Nrv}o|H;cmmH39x_=zM1UrU<;^^7jD|L52g_EY4Q7uf-ye1ne_Q+;ATn3Ye^g#v~N?KGdQc zD?2p8fsW;_9>Zy0cBuQf4!3RA;%%lW=TQ3d7*#g|mVW@0%;twWIYftmJFo-`dGC;h z%qsZSn*HUTRvojZGvg(v0(KDb$SN9cdQh7?6zA3?I=ygHnhYyp`?+&AHoVGD>;9wx z^^>M^V9Zlxp}OB09aJDq_={e7F#u&u02>!=q`+0y+?V$$fv3-kteY8Bt0y2@EF z<>Z)z^5Qb>5tKJ$iO(g5M&}Z9ELF>&(~cgcxSP5;h779O1hO+lKc3M&W=j+LyEz~F z7efZ_=en}_!HMoG2GG}^v-g|(tcEB-YOH}xK5D^KrVYgxJH zy%~-vE^+LE3Z{xFZ#zBlDU#|8x~#on$iuInfwjEma2CXS@zN?ss>M#xYOV< zyms2-#2v)v`TKu=FKM(A`hF9PG(%@RGPA(-@TZsA@!;TK+uCo~PXNY|2r*_L+!ShS?G|l}3=<85#auIkcom+&)5_dW%OX5u}d?zdbW~>dCZ>K95 z_OJ_O4Hj_0YaQ3tybBG$BHUnL!vQc&(^d_Z$Ebkl!G0`Fx_wJcQt7~l6h>aNqtC8y z?c8RAx8~H$(eN6L9G{9^Th$bzlT&9k*^+B&*2h{;OY!=nTPfqNJQ&P zSD5Bqa`bu6b`Wn|IjM6=e^&q=y;lnxmPm!836xupU6k@~-lm}5hroTRT!t)V{fkA? zg~=10Hcc`W-t}_2%di?w2~~T37H&D@K6&aHs>uK*PNOzigcFy_LA2suX{HsLIg~zv z&1)fboVX%e4_$l)`vNIO1y#hh^=Dwy?V=S4fMsz^?sCPuyXx^cMc`4igL-krk*XU*@De2D$*b8=PRiQG zwwyolkoYl`jbnOV_uknmUT0pMkGq9|onYC=5gupmWno4D=c$kaS}zmYl&e~7 zi&~Wi|D8}(i3l5xFJ#J*#dN`o)*AdLQOcQPS%>8@lY(W?N}PY;IS4?=qeUi zz8^X!GMj^tmZKWV&fFidC_kd|BHg$V8P-=gVB-;u!LycXKBgxVp_|nD*r$oCl&3n6 zGFZP}jKB!wD7|-{ zwOdI;GrhrcRTMLlKL*YA7K$-xQHEs*p+-NjpY@ADq@gJZsR5Rp$WzEIRP-N-Ulk*M z=&({j`XKSvM!@%e%pBwA*YL@GmhBx1&?GTP12>;_9I^{ zM*J%KoU(jn`c@cqcZS8(A3y>%qCPbIj^bfd#)`;sRJ#ZPL^9mgPEDSR3WLXkz0vOI z6s-TlqbCh^;v+mKZvUH1)?SS?#v{LcwXQdcc4^ zpwkpUIRAzhM@$rM|%4W!R%Us2fUT~Vge60&uQ$ALhkmr)`Gd}q3ZTJ?T zN@NF3K7Wh`vs?MrMdcvOq=@)=BK67zA+Oocy@1JV#wA z`J1aHvJ(3@FHx0o!i@un+h{C5?g1iwADRlj1eR=?_~*jq9USLXe!x8P<3^yXurO@z z4}Fck^UIpQxSuFJ_}Bk4uBAbataAW}Q+SeQ4l;4TRgrXVaL{3DVq~E~wyg8N=SB*z zx76}=>jTv%rD0oKO)8H)_^))M|MTp>k6P}3D4+jafq$;RKUd)Y16Sad-0a!2*Nm^G z?b&|^OIStGKa8`!P;fr9MHR~)R3uFqGlu+<-iCe;&o}d;hHbU6E(m;+c3);~ci&NAE|qn{_}002a88#4F# z;ddyf4*O=?-A{GLzkRCLk$&~cl`D0n5}!|X-Vuto5@O>~Wm0K=<@1}F`q!-<+#K`l z{L6yCG27OTxapcOBC9-Xd_kbDb5Pnhg*IP`Vtf;k5n;5&$sqIjCz^6I9+zxwDt`A% z*YCjbXNqQ3pSkdT!j01L7v9Qs=DvH`A2ZC;J5V+1JIN7F8+sdWD`$BPS!#)o6MM(I zgI5A!9^u2MJ}%kax~vIL%&835iK42ROP1t5ziIc^?|Jidvmy%v6Y8gr@syKuUb|`I zgprsu=nb_>bAITqYU-WXyjy*wsI9DP)e_C%#s>I7D*klr`wd75C5Ku(#ZYGYkQz~I zX#jp#52kgvWZ7jFMQER8{fAsoDznhM&;gWxUFPG)HKN!#_`P>pj`+yV4mkGxa=wVE z+^Z?-BK?&I&CD`~RgB?qWc}lJ=MbYlYtPz@-K}MgBVv}{G5F-l#j^2_JZxLm6hR^5 zxlj=RmZ`S{hKpKD74*$+nLg|sCfXQ=XG|$0_nf%;zmwT)zruJTpqWz$+n;qT zTf;p1Jk3D#Vu}pFrF$S52|)6*dtmrhrZZHubdnJebau~V1W=ejOxjnTc~}sl`*ENz zgbQNAPishYt>rqOib75PI}wt2%Df%%id_fBjdx znPEcMj-m4m@nC8mBjg7u&b}K$&2(ZhtUVtB(xnS6A0lRyQs53zgJdwmd_oeYxH^32OCdni?*RdBG@2avw}2l`r;L>7L8 zpKbr#9~GYbmw}O~1nIY!CPs!9rO;j#?p@*y-7uDou&z$@I;gA-06;JU#^(|OWyy}D zdvpCLxk#hVhZvJ@bY1l5j5XmGuf-YtlR-Iv0LX}-iNkx&96== z%se7&Aw(6@xfdC>hUP<-PFfE*hN-QjR1@VM^+mdMCaHPr0GlW^-Bu1Djg-B5|5fdh zv+$-8xBp`$$uNCdiiIq_A6uj#G|ERAuJ$(7k$=VlOAuh@pKHHSlTv16w*eP zoONP`3<>G>OUl7-7MSxuWdj$JvQQuMD{*z2|AP{E`Kh^?=)zlhJZsE#RK&c2#{ZdW zC=_146l*G?{}~x<^)bVrNDql!cWYG86_74C><#(~07#d1uFUT*AVz{@2lY7u?%_de3BC9r!{?J5}ge4!=OVd%>&|*}ySFMfzzF5UHbg z4~j`aCx(LkGkciWACmwA zJp6SJUDfD;a!1c{bYb=N@o;^HD8Z<$ z^Zw^RN(~cDB$?`AKJq3W#6nWRIYAGfE7bzLn(+^-4rDbqg6$(;cYlQF8}YlR=S{~o zJspFGLV@8YU(7vosW-%7Sj~dP$yih-Dgt#wK1XjHr(V~_@dOy&Lj(Nv@X;dONt{9M*m(hzIvKjMX!!Y6(=Z#~V&d9| zZLNTrUQdULj@>3vf`^V~fE1?My+aGLWekI4t?gjwb8Hw@0G^^!I z>IpAV2Z6FV)Fzc$B)Zy!mtqVqUf8w)i<}NLNZ43Jo*#82l;F|c2B(-e&#v>>3u!f2 zzU9mqqS1gr1?dt8Kr}7qrB_fdBpgUCUplr+YG)drw`2hK6LbkC@qA9+BtF|>ti7c4 z*?OZAagj=@>;&e1c^A4X%3DIN-=VOU8-eSZ$RC$518&NO9zO79Ya$U?LM@!6@+X0_WPY zPoo8xy~X2O$7uo0b1&qTG!ky;EBwJybaUlqFoHueO2G5TxU;DG33o&ar^rbl8CwJD zz@l^WU6GSUz1lpC%b4xSxg~APFNG;aggC^X$+SPeH2umeD8$+@hnyUGg7$!xhQ%(|LA3@UNa+v^1G3se~n{Oa>-~us+RWSg=%&-d z@2^g4ZFvSmc@CC^{A_IGn=uE;+xP9Bty?!33}n+aV*jIaXZGy2K4?y$OGmhC2+ zsy}J(U1d0w6>Chn@YZ$z<69Hnzb=m~JmUO(!uY5sbKi9YsqVOctn~FW-5{5emn7G6 z7OrS?8(iD3xx*qcFzGr~k3pOCOeI_Gnh*Dx+*M2Tcz)w@>B%$OUN;34#vr#cz}cp1 zj_r-V4r@$N+7g!IF7C7R`;XwPn0r;erfrRgS`Yy1L6gBXYGL-KMp)0=q0UT6Eu^jo zgT&o`9{CYBi;<>wV7VE&K1xFg!U=z6a*q<)k33p+iP8HWANCEUYKsavh}wergy)`FoGukp#MrpjorKR z1obc=CK$W+VM0wpkvX#Rybe}w14WES1;06xlyVf}|6U|%GCi9GZ5&*vvDarj^!z@@ zbj1LMdIeN5onBzqxWhen=u*?G*o*IG7NuZ`Oa=*L0Z1kC>ZO~EPCJ;SaY;6Rp0Q1x z6mJj)<#}@j@$L`ZSVn=q#0&7PsUeD8+Q*50U7Gx9A$_XwDE( zAdSJ*P@I3U1}A}FKu-F|mj0K)&1N%~U{~ObNziNtj-i+mPqhxC^)Px7N5(7Ujt!&V zf*=sKKU*b|7P?rH!7-SFDv-pak#N=OnTsLcGrBMiOUV2cPr=5{z!UKlZA%J^QB=w( zKJwjTRNH|y!rQ}v6baUR3|8QX6#Jm02V*cMl+RW_2zEsA?)HpiA?JShmWA7ljWEDD^>hbr%8Ct1!Q4&>(|W{yKW>QAYy7M%3q^lHw7!mEXRd#GNL>%Qt# zNUfPhpR=+dOM8z`{`%5qU$(i$XM}CDBxjN`@%`Xzk(Wl3d?sQDVb+|Tvlhg0MyiF< zNq0El*6cR&gz@kaXx*pGu)<`pWHF0QED-@bd;ony4)=OheM85)pRWhOAt zIiK{}t3(gsx6dVMr3(c_C;9GtvT&Whrxh~UMuM6x?8Eb&UM)p4XmyNEBJuTpY8@i0OiMA9)RnKIAtJFMyB%}6d`dxe^7Bka-#jk||B8EZy6g@$0xDh3zGudQ{x!YAPeKKzJtR zqkWi2?jR!=@r@GHDw9{rh08PWT!y=sT4B+B{gx5i{of2Ie-S9ptP+?Elz9cyNfKc} z`k6mBB6rIh?=mz@0yDTQq^E1Xw6C1u{?+K3`bq zY9QoSfl4Ztf&(tUq5o|f1w$6J6Ti+hY*Hw&&xSQI=KMPE9SDGW9iJxPV<^l&Z~STk z`qz*k6H>cF4oav~vrdA>0ry%m6;ZiqHMZ=#IpniER{l>>Z)Z$>2MN{J4DcYm)vLQN z9zr3=Op;PZjuKr+d@cD(>o#wOxv9HsDrc!lpJi$?F&C0 zGlskj!Q5Ja1oW*#9Og7US)lWcL*T&WAv5&9^C}Zy9d8~kZ10aA-4Fh^1(peHFu|LH z3(PNC?+xhLR`-q7zo91G(vU?*a9h1fy205QkN(| z)l1msj2=DYn^gQ|7Y6v(>wFZfLrJZH?X;=uBDB)`p*>P@wSGbLinlCp*q(nY4!Wlb zTM<{5tbvmA8Ohn@yj(kZ$BN#GF#Q&^OAxl4cp6L@p()Z&Aqk%OjLi}u7C77JD&r0c znJR0a8euCy2)B?e!#lsQbkijAFhCSqJ1m8~F2)%+_iY%Di@pUL_XT^oZe!6i2A&!% z@G1j=G4E6}vo*_t_?DbO~>e!YSxLwQ!yX=CNL6u1NwkEQ&-s7LI|#!%r`1az8;Q z0J=AJ*c!R9XRwEvyU`f^DQ*W*x?Y1z_$9)XzJK)<1H9_2TC-AdFztt3jF|j(Fi_UF z8f@gc14mJ|-~l>sV)YtJkd#bHk&&5;Wr)q$>C-6eVa>&W0wD)*U{H=lqV;|f{+?{hvL;-~ z;QoQ0x0(enhkH*s*t3l|VPqjI>nZ&&ju@QL-;Dym+zp%1JDINR%Hf#o$j$%FNJ>pd z^bLSxe9w|RpphGPSQbts`bpL)ch&Tc%r-KF?_UTi1Se9_A*=;Np7=Z2Z>@xYwRuxj zP!suWo|pacybga$eiX4s4IB3}s(U6=dmIk<=lVoty>4h{^6?%vxt;~R2OFEC(DWu~ zLBdc}cjN$$c8QMEPeuCc@TnQuDOh@737)a_KT6d=9yT)}XOwsPJgVW1;E`q;M_wBL zkknYI8?RQTJf)eP;clW_DgRFkJL-n}t zULzF+i86pZG52Rb^M+(Bc?4yfR^fYtH&B@tph^@=5wg?wU2Hpf?%cT=1G#BT5vzG> z@T9U8NA23RJFu1>;)A%&=#4KWszP>GI1?;Ko!|PIs6Us-DSF#J@Xh@utGfnf#k$dg zzF=msi5TA$@a#;@uzV;TkhkJQnIeDlX>w=*~!s~PZ+?J`bI>vC&2??sBeq#Q+6cz(`C+A`kbWl%*B)tQJQK;|XhZADq zqmX)(%r5Lxx%uGxY}panR!i$F+-X0CS%ZaS(rPn$@#~q)Qnzz;-btW_o_uj60{&O9!L(->aNKgs%xEe3C7TAN?Dr?1cB`Wv-G_e zb9ag^Ol(Gy7NQUsKgw-3;Z{U6fOwnvADrOvAcqi5Vy6p-`iD%NyH5qlYu@0@a|1Yh49Z&IOQX z=|vX8J6247Z}`u;*)noCuldW7b3Pdx>l_DL>&euz!Et@ohi1t?T&faZ4fDJ!xP?GQT>~Rm^w&T^Z3HWD7ZkWi^ zuNv#=X?>P6_Z8B=oXn1@GK;YiZoeMjI96p@JjS^y3BKgo3c1>8=bmjadeZo;$mJ8u z5g8XJ5<}G4y(x!<`S!Il&3Y)#t7f9a4%Yk9!U#I zFjd8UoTnET&(`LS;X{=8i51?l+6ln9bNYMRG}-|gc>##Y60RZ9)UHKnG-F@;4-+k| z1bVWM3Q3L?@SpQXDX6V`mq=DGc9teoXr?>=%ti-mUwBGi+a+n)X44R#IBf9o#`Whe zdTI*Dlvm7k)Vuj;+|DZsktD3Mf-UgKE2QP5g4)0Ps(dkp^nyIUxw8({tpr;xMp!WA znA%6@%XaKC1$9dm_M1Gr%`)d(4#)7sRKAP#GoFm%ML23$0NWegW+O|8iKbap3XLd! z{b{h1DS*QWC^jMs@j%W)ZtE8whb1m|1XZ<~MiAkQblYw#2Y7nUHS@U4=MX^)8kJ&r ziW@sjZN|kMgEeMCOD4;otLRMe=%>%jA@KF;t;HpuY7#%q!CykS0Aa_Zsw{vKSSEfq zr9;sI3czT<*KOd&~j!d9_PfXVOt&*SVo3 zYt>6*d1#81H=#43_S2h%^SUJ;UOPH4dC;U~`;0X}aP45LB$GNW480{3YSZs^W~D;Y z6&!LP(FSR4ZLbqQ0n$O?J)Jn1G)K8&xDAq2x}ahYzMp?+)XtLR15VA0ek$rRnyP=2 zifzPx8M)p-J(=L}D0wjo0!x|b;iIJ?$-h(cw2;LziPJMmfJ8iTj7T_3u=?ijO63aBMaUSK(kH$`o#f zB97!^j=J=s%~@M989lO)=Kg%Owz~846Bc$_=imWTlD{nl#}8xM49oDhrZwncicCx% z05K)FYP_S*sFIP{o1d6H7Tt^rMhVGisV^rj{LW4)_^7aMNMP0Q8)fnLH4wL7E@5z8 zX&TxvEHtCui#SuAZ7Z@ZF-_XIqcJKoO(lLdM;}7bltOwwPDR1O2;lV9m4{whlSL@R zZR%Nre=7_~t+xXvF+jyBx;4YtCdGhxKFprfaEJR-^TP+}H#|=a7*A>dZ>0tqN}AU6 zuc~tKcy;~tMmvjrPI7y+UOfBqp6W_G3`KQwZ$#~m94*>?mcJbZXiy9#q7wdIMaFlQ z=igB~m6Ui^R@dbR+l_)hyPe4-`RQdtvtD+*H${1cTqLau=r8o!3~O;%6hiSInm)Ib z(jrcT@GmoZtG;82!O4~$_Vqu+PM){k{?f&8h42Y9$fIHRq8B%7>)pF|73O1f<8^0!Y0RqkQ>*edbnrJnK#U2!6P(_3reT`QwtvnX= zCjvJ~y5oK=7rXc7?(Q!|6)X6FW3`=gSCcZI6{WaiEu~>$3le>67o^S!P%FI3 z9o%600Jh}?|2`GYN9IB?E(5sRm;?dR`hFxxAfw6ac3bsBA$X% zxsWRRn1th(TQ(VBDGd2Woc$yNw-t?MO|pkeS&XIyg?uyyENk|q#Oo~=FxGq) z9U8gb-&s}6nl}~Qu>KCQYghSXww1)hJ@haNA^CiFK9 z*_DQPU@jQ<-H@yd0$9jiwE&#z)r-EsXopsTvQ?STo7*y1l&7~|@!#i!u?0K}w51vP z%JL+};1YaA&SSINENQ<=gP644pUXZAnw*QLfiRLrm^aVKx#Imf$ZxXjNXTByO#r>Y zOuYv<#Uj8D_o~edRQ>Dh!`oICG|{k|cN6F%RgqqcMN4;V#tb+l*>c7AMMO0%$GsA| zEoi)B47THO;Cvzv0B5;&inm&!cjcv5!>mTL+H=k*y8y2aOG6jV9D*i`41-_0e~_!K zx|&JEEwv`xKKDE`lwee|KT_62)ew7*U`|D(}(j;wO)@ZUO4Fl4GzfE`VUh3i?kIYqIw#^wVg^!8q%h(|#9$AdZe)JOvsA ztmXM)DQ`mXS~tK7@T%2YHA#ZmRTWi{XmZ)x2n9@#tDiity23U0$JD(jb&vT>q*MwS zMOe+kg|f2IcMct}uJ|ai)My8$lu&V_jU!7)aeOe*l&{y1JM9pk+4*eIPiG?RbBA0Q zt+i!p>gB*Rb2|1|c7*nzf6PNSW@;m@6LdVM%zi`CO#p{66`H4*{y@nWCN-;7ZN#V@ zp+qYYvuUt5mbkNZj#rWY6|C;KI z@KijbtI!^crzlh8jRwGLk{L}Vf{e^IwMe%R^WiHx?Lx@!vD&^_PXazL}v?IYD5n355!hVBg{oxpB;zAO9`G~;d!b2=2 zg{V8NhA^e5ef&!uy=CxJ2r?O(HxlmGa6{*Tu)(A|k4-mgFD%XMbN!@3CTP=}rR}<4 z>!1|#26P%7DrZRwJ|r7T@^RJUy@}2ev(Z5Fxr+iQg9*AhsK|)n5)(dpl*S&(^Yv^_ zgoRC6HOWaI-cd`S&8KL{tM=Cs;*C+EwwpUwq%wO9oC^hkFc1a+St9X#>@D_ZEP5+q z=l@DgDs0PU(9P`Pef&P`9?;kW2Eb04Tx)a|Xzy7zaD~JbhgclN2 z$^JN`J+`_ECjb-X#Z#c+O#j_@K7)XTz8r>r;$7|L7x32S)+<W-X+&0Oj{$+tB)CJuoqWFw>3}-U~?WLT1V2J>HC6gPth| zk>*(lrQfE7OBo^8=!VvFbE&Q}aq%Wp=ROc)ws;j%FT^sh@A=LpKAihuA|bYgwg~Ci zADb?nT*o*r4dcz)3rdx(-nWg=HTqKeyIJH`l4Dt~p>Pck*aXea8Xqee z$s~@|zjDY0K|DcCZ{mE(SFuINmMj_Qd*i>RJTAy0!Sf{+mtumD0Y(!jtVh#{dx0h` zrnM%7eWq=3)qBu6ah9xPaV>=$tR-SwUeT`w^@BlF!}Xh` zm-Q|xG<+9M#)+W~urvyH3z+Oxi%8VOS5|7VwqRJi7jsgpsAC6k)&<=4}{^X?f5k_ZlUE8NHIL#s3E zC9?tnLTEjx>fWOW>Htl^P}!|f<1{`;zu51--1^*tpofMY}gQ`%S9GB+d)xn!4SVcIG%YO* zo_$inFx{@uhQ6pf>GpSXsh^{q+}u792b^Gj!>*YfL+fclrOW#wzo_ahh5$2iq89#Z zfW0bkzKV%a!*x7X|6(F$&JGuAielT0r`({!I_0f3WX<|dcHUszBV$$@9_4<@2mLFL zp5-C$mn0_d=t~7rD)8N682m{QL8Bt+gXIW10l=tY-#PgoG4d;_8=7;&A+f0Kk0;e} z&YgMdrVmZbh`M7tMmU)G0$t`;)# z&#KiPlMB;c{Ye-!JT;XiKVHdXN05yRO7*cU*#!eA&4KpUi}W=(^P!aiE!5-!9+X*R z`=umy?RM%jej+VD`TOciueO(KmAXBzjo(za|Bq2#i?`=2#@Gv#8?AtUKc|nGT9u-( z4UA~IEeR$T8!pqF1JtAqy{F;58sc@!PjHAMDUxLly$-P3Z|vO@{aJY1Nr>YyY@XAd zF&@?rMAdKLc(xoaOMy7)P`HwzF?-}VnxJzBu~2N@@nu`*Th*{yReAu{x2%7(cGzSP z%^wzZEQ|q!!OZ3fpPlN)6JusJD5U<|+jG!9PEEYRy1yN#^~|4d;R@xkfhX(gb&?w4>*(w7_J<0x8!XW9`>a^~OD3 z2hKKvtr_;d8MgV?Q(+Y@^RQ5=ch8U)1M07mJXRz<%&wLMBA+Ie(Tl;g4%nMM)z_AP zmSWudst3i=rkyw40qqt5WRsJCbuueT_L)0WLpQcHn7K`s!`{xxEgePV)%V@iz-^0` zIVY<-|MQHg%XdSEX!pk`RlzO+lUJk6jP=-{22J%MK}yZ1q?u5c%8%9;-k@4oPN(vi z3J3P)ba?&>vSFFfMQGdnIHtkwF2bwS_qgv)0fF_W4IcxD-`J`j@VDWY zoKrL^Iy3LSMS%J^TJmCQTMIyZB6(0$4_l^AZ1|cp5@KN#b-&3ekb;9_sy97ESUtUY zXl!p<^)N-``7--mm9bs3fl>Z1U#aVNyuB&mg8eI^+cG%lzW2ncQ`j=t?k~btHn#@&hRJIGS(P;Qfo2rcCAe!Jz}4g~(;ZPpmeXnuZa^Dk4!J z8Pe;J6o$xwdTdL=e2?}*C@7*|TiwIJStC@%hGiT5@oLZ=mu)$tC$w-Q9{gYIy?Hd& zd%r(?NoiDRQY5>1P;7HiY0zkhGL%fEB4Y?8Q^PJYRgxsJ70E1_xoBsKP#H6%j3H#o z7|-i{sr$aqS?8Q}&TpMRp6B^(Yu)SKaSh+^=ldDn!)x%~z4w6GlvKg?>YN(uCSN_o zh`0|OmQ)7%4mY9S%u>Yx-&!ax*b@0AwG!SzT7+~>mf~JwF~wC2+I&b_i{O4Ng&WeZ zLT$?cStH>t&0*o5O;zjr_vOrPBu91d4P`8pr}jRnI-wb+CY7Vp`yc@^25COhj0tb* z-&joI?gX!973EN$&T5Mkuiim5IrF^bH?pWE269Gwy80;%WLE?^*9PR4WLn5edCy4?wN%kXz1`nDOJnJJxjZliie16 zu?Kcq58VTo2evhW;&&)@GuoiM6yez)a7GehP*c5}%AnO^7EoUWnBy5-h?O;s! zOQTpFgZ;rid%d)*4@mk5L$%4Hz@gWV0@ssRws5U*QaCt4^H5?}O`4)VWwz9pz|G$> z*-M%>JZrNg_#07J&?ejjrt@S>#Wb4)s@G zz_nrEOLd}I5WkW%i%SO@Uu$<1K=baBHMhR(Zf-A0G{Y{I(U;TasR#fgWWW>=3oA6c7_EIH!}PU)~A#cO;f5G)aAZySoAOG`aEeOQV275g!rhzoN~i2BfFj^ofJ-PTUCg zJ2*X=EmUw+j1j>}N^Y;6{y{J;)5U#rCuKF7YtgRgEaf7jpW1$riLGK4&Lc> zI8r12W_WbU2HW#p%Lwz>EaFg}Y&m)Yl!o(-w;|={#B+dF>5?-YWi@}9Fc=#w$lKs8 z>`&3HdIEt`GWE#agxRM5(7~3aUV^2~BgcAED43ix6WJI?qY0VQ(IVqnZI-%;h1QhK z>P+oeWRGoo&?;J+j_5ug2BY-C#6}Hd?z$RS=f1ZF5vbw)qiqd6bw30-v>ff1UdUu? z6~qPoH1JW{_q76;G&K3m{}-8X{{_KTBEvD`yGG5$3N4qaIditGB1LamP6lfiI=D0d zh~4hEBLDf~f!}?FEzitK`d%e#0(m`8zJ$8%=u_tp4j4seqxUT5>DgAgJ_QnUL35NY zX?={=u^WB8HaJ%raU`K#W%)st^h6y8O`HweKBD8-!2JAbzI~pZ{qT2pbf$fl*=+xO zZ7_R@J`e`3U>tgLTd?oIak{%!NgKmowkMC%svtOH%xWXDUo8$Ncgo_j@@_0U==1s< zPTK1KP%MIiKkr1XA&N{{y(JEYH+9>yVmtExG+k$w+Cz*qRtXe$t%u4A)oR}B(NT2g zV^kVhu+mXTmyhPh3ep{W-vGmm3!e@-9_(A*Ycdf&#GiV7=gY^(`+}@-$lr$McPOZx z56zo>T^jyOtXnpLbqM@^45*NY=xPO76REXbEs_8bZa{VK18=sq+sP=(h5Q+Y8Sxdb zpdwuPG(d3M_B6fRq~FCIr{l`8=jdS%3C>NGFj^$}@!am9Ilg8;_XU=;#eZTV_CNB6 z`dcC5KOTYj{Xpoq&SNlC)*-din&iZ(2A$l^QK%f(FAhEaK4U)2d%ZAqQ3nyCKlk96 z07cd`UX}Q=EIC+)Zu+%jJD|ZfKX*|h158=H0)Ozya_8>qtjfN&icxktyru>`+CTD- zzut!Q`uuc8xsk>e%XtK|#iyL4jH*5fC#U>=Hiq}@WyhPBs2`ra+~#^1Fvcu~%ljM*OiF&rq!v`P3oL>Q4moi=DPDzHh z2&QyFI{&~Q+iahJAAB#sN4@jZ6XDei?`}F|5pJK~LTqo`J6qGH{PkV+hK&8;UxG$( z>b=m~(lpOPKL%7{i*bXcIMIm}|B1^9K29s1r@hWQa#%p>a+MGBIi{>Vn}dssLZ#KM^<q`hAL zXj&Siq4W+qNku{cfL`S9G)wQ`r|P=->9zxkJ}b)~1Z*_BagfpW2*nOnv_qYfP-4s1 z+`6aZ-G3rra2Xt>#p7+^3l$Ge${fD$HrZ`GTjf!r%VPs-6;YZRDe#5EDL*M@pXcVS zR=l$eecU;dP1Ln#5;;DX|3}`UIEL{p4B~=w?7@kDk&MD_OrL|9oOd-W-?^4mF;rAh zG19azQ=Md5E|;ez7vXz1P4A1+aY=^KdLs@uu;*`^PHKx0*E{GaKS^l`eKmOgf)6I= zQz#T3ohG8#TBTaaxg!`6M)*V5gUGx#^;3cy@ga`FUI^U|aqB!u-2p#r9W#`yy#;sr z$CP+T=Ro*t2`NFpK#Fi)bjM#0gqw)e1h@sM3jB3{UM0gQ=Z@FfLmom*z9T%xC&ir6 zT*75u6Pp|2_pC|6I@Myiq>>TAhHW*^LyBzEK$QT;69=5#^b>Q@*f`H5)q?ep|Cy!Z ze`YoJQ^o3E-5>vd@zO!Zj@pY4@2UQf85@`uJ9Wb>dzHDG2M+ffKRB5ER?~ugPmW5T zm+yn4i!Psh=Ik_b_+;|QQ%laC;S9QdCd4IG_xiyrR|KXteVUZN;nnEapj2;fN~iA$ zj_XZtwg!0S_FuS=UYy)@Y40CfEVV1POlYb7wuE9P*3X@P8f^akOB#{C2ZTo9?-@d) z@b_e3jl$oP;qS@t_c4Jv@b^OapDqMt6@cq+3#mN-TpjIhsUxXv`2vrPd<1=YGIRPW zrt-VhDLlL{q#hoUQ4iukPq5*SuWjJ~J}10}@C5xF-KX!qmg>TB$;qg&(U0Gf<&w9ateh>gRmbq$4YO;- z6Tc30xK^{{&g^Yqa{+k7tkIpl^%EmJY2wQycJDI%?HI3x_`r2Lvx(Q2``_Z-uVxaS zJl-->=V*Hw+Ek+jE4FK8r@O2E`li+RrWX&?G{;*q#@)H#r`muvc2&C{Dz?Hn^&_D0b;Cx%kgX&*z>zjsecqS$BY$0!58hN7c05)~Yoc=CBt{>+DdV4?@`664 zD^4JBPU5fIK1;V9u32dR2{groe+*@0D4KUGbRtMum$c?WtjoOB_f`mMiHJ)aq5?UX z%i|f2V_zQIiHfbKqBwCzG!jky&91Bo{?Q`CUu_DV?hmG^cJp_{BP+}k4Vhg2hxuwo z*#}dU-FiE!d5=r%{EuetwHkMM;B>csA8hDudH>#SK0}3kLdp2aL1&!!C@p?$LFeDE zf+n6J`Mzzlsor#ugHt4AvZ0Ea+M-~uHQA-P%L<@;=Z$XYx+P-kzJt0{C%ZD9xjeBW zpZB(pe&NkOUtRZgo2(lNi@y5e;9&D^^i^7)92hziIQ`N^h+EjzyFivMLKRmcZ~s*o zs$_e)bu13d;**fidl#rr@$=@d4)Dt9=>^pah*CQ~hMs zT&{7UP-KgNk2d7qmGtBfFq`xs6i~vX!8>yGO~>MT6!1#czu(LKm~|r3SpDO)2or(V zblsh$>vcE+UDh9e5nBHAH%}0P@9ezVb2`xF0uQczrNA}sQavNl#HuZ)N+|FCGG0N5p2)NP+yg%R-=KpZ3Ufx_8 z>A>k>XXTeHb7BkRfpolbf`M|)RtLLyy@UAE+3@wBI+LqSl_3d2LtQs{$9xp*7kO?Q zyAbcXg-|U%721A6CHo`HkkIyId8_r_V78d1W(!59tL%uZ@DQy=Jm`nToC+#da}If=e3~>zaZ-$$cePiGZ}^inyE?BGhBZIS zyJPq$ki+SLij8)?9*4)HRIjV6S?u=47EB4&cCzIbMHI2W4IHHn{_r7{NHO#4v zwq5D+oCY=8cCEp7uU~mFN{?qmJ8sjtd1<`I#}1}R&j?w~T#!nWluu=#x8YT`Ywzm7 z+ZzM~3Tj%^>)Cc_sYr%QesGWQtU4kIlLJ5Ek#Dm*%C&)Q4Sq?$C5|;n2Ld z(^R=F)CX)PF(RNq78|hqZPuoQm5UiMTxbPNY-RiZSzS0a?f*T$)LlshZnwq4D8XC2#g_9_bT!OAzbcPkn9NeN}2}54IRSfFD63#I1#0`fX>I>j2PKrR9| zkrK~qAC_eaG2(S_j?mvPJ3HT(Fwr<8?Z;`3%WIZd#0WetTTi0b`>067R7>1y3ozDN1gCysMGpZSOc&bsAHv$ z00!Wp(VG=_PjE}(+wNMxKX8cj?>dL3|9 z7pJgoQ79&-I`YpX7zoOMgfMk4@|SLb|In%~0<42SCPm*ncS6mb;g=q5-(f@wCC-OD zMSMk0AB6Yq#yU=?H3$`0i^%vp>0HzyEDP%-1D`=SZ~L~g?BL}D z*RoP2sXNH%@WNomneehc%)Vf9pkfICkTD_o1dkq%h$AvE%?EnZQYbo*&w;wVDXhIt zBH;3XjRngP8s@LAu%=o?-VdYI42E$z@g0aRB@gO6vBNflt|OxNi0C==&m=esp9HCb zf>uXYtLM;rBlt;K%QCRoe2XKOws7JS323!$(nw(`F$oJ0q?{0s z-K~b5r0$2Wd(@S(lPDynz@pJbiS~M9w%i0(N5TQ(3%QuiL1}4Q$KP9hC&=#ZIolS% z)BaF}l&RS|@46NUEIwG$&=2(=t! z^)N%UBAGegoh1M^G!O&xHB@i_&U{7Pc|80KXOKQN_d4{GQXv4s(hZsHbKJ>uc1fkb0cFqsii21GYW z(6A8k5SWQ3C(j0=d6FO=@fupC!A&JuI~I!A-OO$!DbHNl-j88tkq7MnnfCxxSlzx8 zNK4Tl8*(oK1YuW$jwZQc=R%^59|YyRzUsN8c13y8!7Hu-+Bw2Od6?JiXq{pUo*JQUQi9(79Br71Bx})sm&);O6%k zO#`&t1;>sMX~O_fsq3Hnj*K>m*2j9DIH&HLMX3VaPNHw!k!JP+4g;xm*&v|wYDqX_ zB-fL80}*Q5`|P6tPbY!N!SY1rLLyJ5J04;j)uH830of38GJ1?Y9UXYA6i-f8mR19F zroRB-Zq9tR7eOG)a^?|OyLLxpWr@YA8jwnmLjaobl}QgKb%M}wAd{03kw}C$5&{u# z{s6L7uNIO&ZwyLH4y?~_nT06>1i=z!0ai^_TDcrgF|3$i+EA)oU3dB_#h3UO@tP-f z7VkfS%|eWm_{(1b9akM7V`f4w`EG9y$3DP1W484&8jTQm&PxMxxgcMT`FzWw&3d2IV`((!qjBr zNgn&=OA`%z>};6zU_KZd(6E(Y2OoUr>9BzKMZ}9GXU*W?;O?g~Kh^`7Dw9o{Ee$o1 zL2=;uUhE*PEMkU;#ypyLWDM>vvRTiCNXY`ljA%fZB0{%oUI9V)kC>~9;;hSFUQdt=F zxxh`@lM7656-5Swqm>G{I7kYzP-+s52NfZk(7U)GSHNbUw^@$UO@Mx}l$wlmF{J55 zj(;b~&I(#Ozh|VBFF5DeB%tF$6h%N`Zap&-goMST>34f8u3tE+tLNsQ2+Az!+`Jq( zQqpKXcA_#~%Ud5IWNSNqNkNwC0I8DJURKy3# z1qs#bVswfvPI^piSBrk!V;EEkNOQHKI@*UP)LoH(k@sbbDpWc28| zp;EOO`G7aJr_vBG1jvJj_`>z%%}fAPf{uV}mv7?^l{c3469J$JRbBGE^vI#Iv)=Mp zgd~emDF4<9>Sd&IOH&BK0;h)6LDReWy`wr8=k`3bnxROhzhG-+Djhc*_91}H=gi4??` zETr*huB%pO_IM`&l1t`uW!sHYKnlzDbm)6bW>_LS2cSnpW|mendf9k(eXdht`0YTb z{}=}+5poQt9x7Xpp(2eGJjMIZilGlcHp!<9%Y0#(3EpXH8x!JCB#mUeDEu*K#r#Am z*_mmNd7DFDgm7d}$ZST8gw9A+g(2t4@Hn#Bq#(vO4LRY!Nw6e+9m<9fLC;K(kU==7 z2jb4_Qi(q(q~nyVQPRsyj|$i2i7UKF8>Is2?*S2>)aHP&jFd`D(u=Q0VHX6c@l-;m zDU`t}iiky;b9%TL0p%Y2rlH2Nc+=5VJCH`pY)uF8{`((#QhP-4w6*4%O5P>aE8UP(gH%S`L924(M+Z|Bb`Uyp=B3}_@?Q$Do6nvz* z5{sxuOPAB?rNFaUs&r-3(H!2-_(9DF~|W>)@>oA48JK z3hRWl94|K03+dbAm^4wdWI!to8=(Umdy!^zF*%aYR7->jroETP(B%+7w8V}Gt$L8dE}XQjxkd z_9cO7=C7-2a*7zJN3r`NH!%oN)6n3d?LS0K9n{-y*p><$sYYx`hJtTO+fEXNd2?9H zAKcoZ)*H#hTHm_x1O5G}zjc1!Sp!&^*{*prj_CYoS1~Cz8DmxZR?&?EkxerZNz;P} zXfbjdXY}Izxj0C%7E&((WdH-F0C6!AUpW>L` zj!m8P0FH#aQauy_)$M1SG?QX}V`w8NeQCafa$ow^BSr@Js=S)6m{+qAu{C?f9D`PN zq`oJ+*n;JfF&{Pv33&o5l|wNoHpxq)IAS8c4}&Vok9k^@VHZh?nq+hP0t@tr4&IDB zX$`19+{E*PaEZ}X)7T@&Gq*ttvhw6iM^$zPXEaK>?lZ}|V$J54l8_{wNu_NhOg|;}Gi?`BmJi^pn6ax9ihCw+_XrWyANP62kiuOe z>`cj+6VU;&zo#NyaiIERER^>vIu#zoiY3=|lINz9108xKR89MK{dHc`(C;aT&rjm0 z9ZC%If&yI@(s92n{7>K0K~6MxSiZ72kFe{*vG2y=|Kbv;AoaK?foVxXNLp|lav{3n z?8I*9OiH=L#6{faL4iMolfUPLrGc@|Pr+k`f|6N!&{M6lN?!7YE&Fa!ttJ)vvl+CU`Y#nih8QB4NE-qH9}m!C6?O}&~_s@)gLa+ zCjDa4sSYW}`S-@&o;X^*BcPQXjXR?dl7O>q5Ql?kyxr!HZ&BFO`n{6`P8)#h-#BQm zYf?e_8y5p$JI8G&!{EKrH@VW7tYpa}mgSL+{qrV*!p2mwB-Hp9iy0{4fZdLLYMiR3jl8&rkicM`vbV8 zd{ZYIFQABB2^DI>{L=>;&*0zi-g z^K72QQ9J~qA~zXNgp843JTz%^n`ScJ{+3@*&;UIL4~VOp#JrBEBH0O+-!@|F$Jk1T zn%%si;S3G$WkeXGP-RN>mhydI5CuW?019co(^GUH*-WIo$7mmv1jJY0)zgQ`C`4bg z*`_X?i!C@Rj1&QhCw6Ms#1P?!2SViL0{4UXn6HY{jTelCut_A7AOL0ihqiXhhJ2(r zj4}nxKzC>wX9+~79qzC~z{(wQU7MRegG9$Di>0F8L#R0tBg`&w11&$&{D<x%}On9+l z36Ur`jh0=Dbe#)kMN4W9E%uuNQO?MdTKw9AQ+hWbo#vxSglb8(>~D;iBHCx^2qmC*ULdPBr>2#JVG6tbZg~Fm6g|OGS{eTYcHcB#73=@7h&bZ zD{ha7BMsQseYFcVtnDDF0P^#tJZy@93K6O(LBmWu-PX?%#Dl1f$ownb^DmRIW{41D zhgLce>)lv*rw!LWx^R*d8~yBfUlwzG#Kw1ss?AgfvrA0E-BpaZbrLHXG5rkdV&AP7 zpX;6E$;(+P4X=i$`#hJ?5QdH5k|l}0DIZWJb}BF3Zm8#q@K=<-)MM^HMJZ~EKtS*3 z3%f}$>1FbVu8eU9%=NVh5t@xliVPSEA4&ZLb-%(=I9LGx+Mi!4F_qQ_Y?n!p>cKH{ zKCbSb0-;=-XSbe3y8b#+F4|iDj1?|GFjUl@jnP(*?aSuOLK_5r4Ir4Gc{$^bLZpRs zFQw-s)_L|4>QW?eP+VHR$11f&R+efb7pO4~3T5V16(l0gGBkIh1K z6ez+vx3L~t5)Y0A9#N;fC+&{(d^<|Xi|soteKl~>&R8}}6UTpgP6!Sr7b*hlL@Co& z11SREDq5>AUs*X_hoz{*Gn^t<;?9zCBZ>cnBy4GY_jupKbAL_ut%5?%Os1!mGB!zy zk~fQ5(0xJ%o9er)jAcmpAm-|06uo_`nx9~o?nbFA@sp7qu1jQ~JuIcxa>WWdATb-P z<>lFp@?tHaebGFIjW8j24MXYE_-Mem*9SfW6iltQ3zDjFELNDlA?57E-9*?#bWq|> zhK*q25d_z_bv_qyH?HU+iPwp?jA0@aq4+;-sM&8QL<4!FsqYOo(rlrKs*kPmA=)a1 ziWr%;G^=LP^F~G&tNZebT?t1SaN~B*UaCA=auF2qQ*F@uJOe+7H0_pYY>dXTmNyx| zSWsq7Y7s*roMDJuNPEgI`6X!y(9S*NhFVoF${7u~IIi=OF({k1)IG&6PAXpVoK6v_ z99OdUify5$0@b^Zq@v?P-YJEpVMl(RL1)r5lbbHu=Qxv&Aqmy^Y9K8O-}WfBC(oz& z0TgdoB`=f>3JS=kMi>?Wb|o6{=ZO5&o{UqBirh4v!%WxD%iP;XqSm<1o~B8}>nGbL zQcyFi`qU$E2wnNw!1=L6lc)WcHi~{?_2M2(_$I%dd@OSRZW1x~PcYhuu#*&oNZ5_) z+sunsshUddts@0fAGSXRVctWkEtL9XXC_&qz)Nb&E%Mv9|*C3G0ivrV*s~F*>q}JWgrA1%{;@}=XS7FVYw9yb~p4YSiQ$#_61)NB7qnY zA&j))4^5}SKd|LLp>UaenL@skk`dMK`|MKuO)X!_JoV# z>`f;>9F6v@GVHMR$U{7_%DAr;@>byyQ7~HIW|d;or5%%U+P=(M{tZ%Lev$+XDM~qu zHG^Y}mGP9q?qZR^0=BkKALx54V}%tf73M1g@j&Cr)Lcsw4EvS-vg?|7R+{HtPMM-_ z+=4pG8r1GGve1zBeTJ=XjCM@iEon;)LI>{AGZgYkZ&f6oVmMZ;k5ibK-&|Z%8lJ?T zMGb<)W2Q7br#+06p(%fo%52`7$7y^RhwjE{=01=!hTsWHMo@GJCiKg&=iDSE7;_}6 zY6@qp(2!$(`$NdCnXlZGlts{i6I0yQU&`tsVGD@8&|Ob4Ez`&w(P}O!@ltjvs$WAH z63M+Fna}Gpn+E%I65-!F&{-?mk7Q$WR7zWzROE%JziE*aoaScR^P|m)8SYf-B#ZSH z)b`C=_{Wcm-)1w4!(!o%aQcDT7a#nmJRz7C8m5Mc#wtXjO+cOjs@vqr(4Z2JUZ%G# zWjzYAq^`v3KT&0u>ftC%Hm0iL0uR+gozA1nzU$JIIU>t2s?@tYZOHj&&;9$Oom*xu z+USgR7Nvf{7Dd3EL}q`aRf^&9)h}?ni(zo`(rEjoT70i>1%f7N#Vt*DuQ+&DKmu30 z{naeLg362JT?1{D(}uJ=kxV3so~lVp2>#3oNi_fkqkKtru`MOnYQ@L{ue;F9Ax?Lx zraHkv&=}HZN$yj>iXt?s>W4%k`$H(eO-)Ngz>;zE4`V>}UM2Ng-oOO^L! zL!w{?v!a+XSd_YDaDs5LGFW^`kquj=?#&H`TlQ0>f@n4J9bp2|Zc$n(rwonlNEP2s zD6#$%@Fcu==)OE+n57{LXW5~NeRQr$1qt+?#08UzwA~TPd`Z6#ismC7i8B-Ozasml zsF5X=9}VG`u;D6Z2+?6l3j{H2f#e?e*od%yLPVu9^1+*IfT-R}%F;t2Zf)CpiSGw3|KgJoE2Q2hGptPFb4P9r^8g&=J7N@_9P)9FCxa6m+o40F$uGnnMXbK{ z!8SaSf_wtn^(a^+pfWMoiGrCS0aa`zzTG_5#!4`eC!X3>l;Xi{co<6uQJ)rtheIJ@ zj8p_ttfntIdo!!{K~91eP)h-wOO+t0ip;-IW^Wx#IoPE+F%PE#Uu_HqN5GO3H6eu2%JX!Gdc@_51&?fkMuVv%`8H3MT1IJbuSbRc?;AA z#`A`G&{C!tlO!e4{^4w>JjiSKRnv=34a|M*hKzQopu`#)jf{?~Q@sINwRRzroF-pl zPWV3d&e6PZ0^8)ulBtzRVSc+uBk0<=ZtyKa<<5xt?4yI@NQZEfsQ%n8Sb{xNF3{ht zMQT?CZ-&ZFFV%R4CJ%M<1~H|*%x;FhstgPfJ{e3xu2duMZry#S%>Q&PdLS(S5z@+H zKFdUez^c~+9w1t$BEByLQ3AO{h?;meG*Lm)CS#XXz@uR<&`Xu^A-yA!7y6hW37xQbkYAjsR>V?$e~je!jdPbu~| zwAQ{DqT*B-EWdasDvBaeL<**7L^iJ=DSq>UO^Kx`wd)wIv`db*7CU-;h7y-iCL+_Z zsr*^dsC&n9Yb`*5@QvhdZ)zey_UfpKK?-Hv(0^(G&1vH_Uv#wj)iurc5DtJ-s+{DF z(_jSP+pRVhC%}i3v>TPdG)1<7;n1@K4^gk)P9O_;gMH;W%kUq)MWperGLpJmmPGfM z<>S$e!SQ1s6iBl!j#N2~mP!&v$ebJ(r?jZ4KS0H>Ea`EIQ|j?VQ|g424-ThMjzY~6 z!`u#U%O^ulBLX@@2k9Mjpdm4FrB*~$dk}&`O3tb9^s+`Tc=Uc3wno8eNo*1lCg%P(@2miP>T{%%Gz(T#F}dFwP7id*NxQ`^^~yB zkktv1-l+B(-qxChbao%AER?TP&#Bz@x`Ngw9cEgaO9AxvR?<|ZHS_ZOP4DUpu-*|x zEhm7)S=zUT{-II{0Tusaar(Id$e{6*iX_X9<38`s;#mN^T$5ke>C~Q(r*!O~4?>9^ z*~L)(=qRQj0gq5hECXOPqhQQ-E%crHe$p3iEm9!q` z`$G1uawJ0`OOPDeg4@f#D5)n1nDI=&HG{%<17{?&9aZ0DS~*CW#X5hn^~;8GWqK6K zhTr=z7mzAWsfb;4kBrXXE*f$wZ86uQfWKq+Jd0P&PgAyJ4G&gTFcT1_1wpsrz0F^n@ zq}Gt6(VGG%!Al=H!(co}GOacX5K?U?5&N0BZZ1ZS-7^~wGIZluQV8yiq{$Iiyk%`C z?mIjoKD;pSv8RWQ8!z_=%F|q26)yXutrQE1337MYC=2UpIBY(bXt=jGcfvLJ$O^|%~;>2D*v_w=yT(>q-P>3ab zu{K-{6Aw;~Ol1)RrP1Q?(L>Dj4YwUfS5leh$DHkXk_!z0)u0h$A0CJfg9?z-^}BUZ zcA3y%@H!;p-^y;Rxe$|SDliv9xq^^?K;`>6WETt-JZSSyO7+7b7~oh-gKq0pV0F>hB7WBUlv1&Is?m2KY z#rW7pNv`RP9g5WwCT-g!v=Yvr#SyRuV8%*aQi_OiL9^rcsEp6olj`#Y^bq3>HOHq6 zFh}Zhu`#`}+I%Jur><~gUrEDXP}00NDl2;%u5fW*gq7sD@LcooE(y3!*c+_sTyITR%25+B+0t_@mDLyNlkz zgJf6vx|E*(6T7@^%_s_^&c(W_+NCG$cr4~@Z40%Uk?0BSlFDAu&(@$*{9`S%D8!Zf zXG?v{Tx?S)E*$7MZg=Ez6Pm?c(26PA24`Kg0%3_ss${9K>1v$9UAq3$N0K0YDl>Fo z^veyIjW}Kz236%&$9vjNIwOMX)uDh!d z5DdW3XR|y0Fk;GGCO|nfoNp&y;p>ZT0t?fGd9NFJt(vjJko7ITgLbLb<~=xFS99wuy%crY zBDTl4OCUOF1zPkr%q0v)`9WOM6Fh$`M_+&I8es?9qAkLG`($pC^mZLG^b5M9@Z4Ao zMh@M>#OvYDi`PG+237zdt4nRZ#u75=OMLD!^LHqiw5@+iX0JW9aPe0A%Y+daOF+`h zGp3)AR|#RndyBS7lFNaeD0E#62ZZd`J8Xca3lA5q*;Tp-E{c2@xRnjBI=20R+gV9F zGJXuM;S5|$ucWCn@$>o@NR@GG)_?n#Zb3NGZra7ZhYBcZfcRFas%tONN1H+HKy5wgAuD!L**XaN#pwE9LR1Oy4Ca z_{noJ+D;bLBvX#9Qp&*pPm|KxL0^Oj5d&saM_Q0@W7xJdn-G`N*Udq(*Z-i z?@^!|ER0M%Gkl8~2d7Z964h$wd_iw;@z%{HPbGGB%3>#G-?1ACE+tA@7=9dqoChGXFXpFpMq%ZfYp9-b%5X|WHnWsEa4M zv@xr{SLZJD(RtLmd$?S(F+q!^K!#!XKbjr?{dx3%<0~asoOWH*B*$PVJ;s6DB8M&! zKw%;SD9paDVONkF>zd366_D8-I&--VML)NNhIY@%l=21HW$5q=1`^I4=_Qga^xp?48f;vM7%*bbL11sfx}~ z%M5^~-sK-OH4p*S1n+{d`l!fshS3qsCg!PB3xkuk9kKhE3p`chEEfZ*cK-d7D-lN2 z(W-%*O9=$WGv3&v6hYh~%-8s2u%LQ^uVl_Nr~yOls168HI=^!z>vXovd^>1`ma(pK z5%RR~@6H<;p^A9p%PS9^otfhU*wU&O~+FnJNZI@a&9djI-G{@)&zxT z%__D~wI+7uGWYc$YQ;*=6;l@9wqpqNH6H#K9D!$HkLL=$)k)Mxrp&44=H|Y1;SSG2 zG^AA;UA>VM@IKz_SyUR8(v$zCDp)QgCq$L5HbX@Xj!A-xH7C98!xfZC{rT21vG!Wc z+iMCCebq=@4+79{ZtE{gg=)I^%-OJkxK!p(6_;ISGpH|@h;lo`-FV;CAgzc;m>kxQ zTFD?b*nHyKC-lswCG)z(PpM@n@p|3fvG~ZOm`C`WgGMt`*mO-M*SOaWU#~$fvI?|1 z3qdwUd*l5(^YFr~r+WEq34&9d;-S>CJsjK9UiYO-MpP|JSKx6cB^}LF0R4#fHi&BV zsNo5GFG{tpV zTR5yvr1tDJBu^O%H&}b+90dg+7|Fy%ht>LGA$phaq@!w(MYIeqE(CpkW*qBcP-Y#3 z6-`61uV{EDn?V(B%<43A-k2k>);CdG+XG|R9tDuQJT|3Tx6T8Ms6etLFR}{)oS;J5 zo^LB%>{zgA$YQBujk$U0?S0KqOT-UvO<`iqyxxxv(t_!Ycfe}&ie=FWfAV6lkgpX9 z_4fl@PImTnvv%QHH*_APPw@Q5CxjNy=os#s zV$eq65dCmQM1>~_94q8hviWs^9BL)`UkUf7t@Fc>xm3Bph>-_QD(mH9fmLee{D9aI z%C4n=i$2}==cfmyu^{q=H$$wHge^ega+Ssxa7x%9=n zREvNATeecGpTB~k$;1oUN?%Np&X~BzcJwM(zm0j+miqIye~tUmLtqgjJFz5^srk!4 zxYaJzI^^9+x<}W3lQ)eN^T$;-d9)(ro?I97mxgF^nwGuY!guVL% zNM=-yyo7QGA)`shOF@}ob%+9U@~tQTQDCI@^Fc*iO)#k{9jXcnU3YWEj3~Q|DnZ5= z|9?9i{J-%SpP1qQlc4$UQKGr}cSK2}@UO|m|49P&_gwnFb1wZCi8n)HpQoZfPlH+V zYN8dRvTH1#){$UjSj+;ZUpS9GO_Pp>FcqFaOciK{JD1jYIMsOH#mM;$MG@O|iz|Z;c(+F#Ih; zN5k;{#mVsRC66XHEu=ggRJ^7H)h>DOuK@KwIWXNciW|qiGD-Lr-V#SpE`R&=&Z>J{nO%t=S=loloa=I&fuYUaUR$& zdzitPZpC0sQk_OSxS#E{HTXX^%ftJ2F`|l=w&EX?^>-@lWH4eqXO5njf`3mxxBr+W zgE9LR{f{lzEc6tE5xMw)>`s*n+Fxrg-B-0rm-#m5ipL#AjZe#$2yI!iW%-pW3ODBK z-M_zXib(LDgSQV~I3VJ+V6|-QewBl+Y07PXz7U-(aYkZ;f48%H;1z@2+BtHwa}ND( zrE<>gb{)Uw!}v4B-o7W;qbqv9ww!P*fAAr0K*KNnyG?pUOZ92UBJi?K2V5G%DI!KL zh5m!}lbNuxl&+Zdb8FAFfBxmUvl92OKkQh<)%K4M$Xl^X>(?I`$7Dli{`$vnuIE3* zfSr5ZJZ=b}jyP4-RuRVA8T?iH0fWs+=J?0N&#BT=q3!vw06>d%qZS84<4;0j6soER zPh|55#BR58Pvq`+$G^Rhvt@m*+0gh00P4ZfsSJZJ&kKa=ddy0MeqP^Op2!(iS{B{e z%D>^p6g0@vMZZ34)4(6UZq0!6A1{UwJ=dRtzpmeDqv6yD{k30DLOMVXVe=&9b zi{Z*vJdJYGyQhZ&vN{N`37~DT`magrWU}jDXW)PFF~8oy`1jMi!rB-Z7ZRgjF_y>% z%vN|uTw7Zk3rt9cnSvRkJx3EwwQOn6pr1gm=~gB;h)6*6$OTZbCL|`JIu_R~ooC16 zvAXdQ$L`1cKi0udaUKjfoq>9g&_*q(&v4>17?~2kmB#bg0^Cs#Ara52s;a&fPK(H@ zsDV^4sC}D0?dNMNbN;v1rU2{@h&QomKqz^zejPwUSyIxE2~tA0Gf-=z1EsDUpb)uX zTj}ZS49eAJ;;sdZ)U*UaotoGHeV%6VAV=mvt>J#CmU;F<(kGBLF&c%$h6lmK>7!6H zQP$GpQ&m+}K7JfcdQ|gV>BC^wDAkw@w70|~0Otk?;7fRB6;;(e3JQhynt#Wc*@#edI3QT0u{5^H2`V}u2=y)JpqD= zF#Y0-coi|+T}g}q9oI+HwZivhgNnCe#R_P(_w@EQ5Ua4*;d>m}Z0Eqn=+W514nypn z-DseS5=9&+MOX3+E!b}U4JHtu(0v6u%WkQ87FTS6U}1}DJEja^UPR!NAtKKphJ$%} zywh#K+}JjNMHvEIG>3Fa0MEwYq@TVBj7hx{`)p^hs&e$V_xh5^2^rdTOIL-7*3JBo zAY^r&FmN_&6l*Lpe(sd3%YSYzPC3)8;{TEpN?!m|-qQquIKE3$;WZ46h@e7Xtxd~a z$|pY$3k$0Uhs_g83|rDe%Xlui4NDkT&V}fTG1>l^1LC}DmrCJlSoHy=E84ADO;>0R za>Tv^2VUQEQjlwesTk3RQ2KA(GreQssUbq)kOv_N`lPQbA|5TsC`4^&-DC0`t=pu= zJ90rUUWh4YfC#{{6?Ar{YTejK#yDYzyt}Q83N4AEKzP=h0Z@Y?b)u)-`ghOjm_55^ z>_wN0CL@31mvl+MTUqPVD`51Lt#VdK%K(iffYeI}4Qgx7PQp7x3W7)q7g>qhn)|)5 zk}1Y5p_V<^ESa$cj6p@AqR`kMPdB}<4&LIQE_8bSKlcBGy}cdAtm^~*nML0m1+>Xj zLgo1}1qB7r?8RBK1;od*y#|16_=qzz+G&$vq#7u&f=v6OlA9l}P^o~99}+TE z)6&u+q8kxgb5YhjzVN(@LUcbtpagB4@nmf@0>f9AM``iW69jGNaar{7Dv-nG)&1zS zVUbo`cW+iU(~%+a7(7Z32${w~Mn8-2>vB57hh6I~kqn0&JQP{{fZIh8w6+M_3--N% zGA`>RLGj=1;m!s}nFr5DLCDk_yJ)r$OgbgHTH@p5Nqc595OL&h(T%wuqW+o(Q}5?2 z%ls}I8omT?bjM6PA3jNxhya9XC-z=nPz0daHe^%hBbZnPH7>pUyXzxuqeul(6Xe70 zSNvl!h0*5v7m3ul7Py9-9Tj9zTU|G1{gfkxHd^(JVO5%lt$QL#6d@bCX+2>62ZRh` z2_p;&K?CSI_@@_I+)(JKzxQldBP=9jO$f4UY&6FW{pt#cIdFWzY&ik6HOTG{AN<}` zqY=-+6H*-8=)pvOEH*MS0>^X-sRCWV1-*AoOg64TXP)(=duc^!*)@ub;?_O4VOmE5H&-hLh_T3$rT}$|Y{G|grQRUhZy*f` znbFU4TKBNzG%yU+CbrCbw%BD@Vh<@bhD75c`rGTuCF><6C5Z&R`uk-%wCF!i+x^f1 zj*~cYIdx?`^kR8`DJ!{(Bsi2TmbNz5#DV1U;~Rt_Jg{Pe9k&`98rBmd4zADw%IfOe zWQPq1vTi{S{+p^(irLE2*B?!tf0F0G(v5HQr zze#MEphbQuyHwTGB))7=flwlOI?s=%{n7n;#EKO}T+Aydkn>5r4{R`r6LE17;F84- z7_4d8&P`9IB-}I>mqG^>frME0!Ot;XVkxh^%E$p1=@j>xK_>AKQqR}$>`EFSx4;D{yrdTV~ae(ojXjbVK8SKe+^$H z+XYiJfLqD6P`2_3PMhu69mpCe=dFCHpVT?9L|lfauYEX|yq$x9RCBRi1Hm^r`fl*# zmk|fZZ&r@1EYZf$UknKC2P6?3lBzG?Bf`U70m01`!cg}GE#6{rO4H)?>P@o;Ut}Zx zYrtV4w-w{@`Oy|hDjT_w{RH#>A#Kh*4vu}IPZ4%@V*`7g1KCyxZ z5iC6n?E*NMrM|@tz>J$r;s-E*dFZigr`zs98<~t_kKfw{<_Aj!gt+R1zAxmf8);Zr zU|rgWh-ZU%#!SrM#ZbD0Zl==(8aa><4{dY=9jP7)8a4Bl0-E=jW$*_7m%Rgp^vK|? zqK8&DEr&Jt0L$KhkgHf0IO}=+kkvTOO$<9;d6Oz^Bn18kzd*<{EiG;DxJMz(S4m@q zv?wkhM69P8>d7JC*cXyjId~Ln+hSX{JqLG5Vo>HYC~+p=Quq-YQosuMBY%zV529t0 zsKwqoy$>-$r@iQ)320N0K}dQjr^QoRFcuh6){oel-Va0mHF)&AAV+lZocE-Sm30Pz z?z*Z?fy6ghMsTE$mcB0Bu6}-iGc~$F7vtqD7HbZD?2%u2_A7y(p@$->^|2n@*_*kr zS5zL!oVtB3MY7?$4{N2If4zB1U3nOuJ`^xklH||C(;xkIL&mtju1cFg5VWVU%tDD% zNWuu(!N=x+WOuc7k0mx`VqAlyANCOuuFN{#I&!4heC@Coq{YB|GF>0j*{J!OW@i`iXHt3az1K zi3nIpdnTwHjH-xMjzl^QVsv-HK0bZtjrjSBo0kiwef!H~(U+Ufp;1vDI2#5(4lpZ1 zDk!@YhAb#Yafh2|kuz+0WFxnbkOJY%Ii-q7%96DBRvB)J2W2W7=+E-7Tc4fS*lD`8 z_AJtWXuj9(s~*3c4=+6Zx(46qZ}$?+CHawYI9ir8U8Cd;Wbp)!=q_6OP`b2ry<+IQ z)FN-W@QJ^!aeR&k_ztIE`LTZ;7&ZyzylEfvcK%%97y|hw;pno(t_wII7EQ) z?AGY7NwMzWAq#V#2E^MY2}Y#|F(I42Lb(8G4$%z4UpY}6MYKqlDr{B6zeVWc6KZqa zxbB~k-O5sL0QaJ^$H%(HLkfsSTZt$f7fJjM5IEwco;*+gf^~dVN!_^ZQwa}1DTdEe z)%Bl2v58^;)1Go3en5i&E;U(s#xXfiR0nufX<0F>{cb4sr&_Zic>W zN1mQ5@nuKZBAl4&U_)=!@*v&L^cUZAYCUS&WFaAqh`Sma-U96`JE`Wv(RPNy;@gtn5Yg{=c*aordPce z-ykWOxKllW<|kCpB4s0)B#FEXWT*36F!jpAT37j5fa57X&1DQc41?c;&+aSuZqI5+ zVH-@?w@Yh1DW1|v<5GpQuv~EGBa*`fE5u*0Yc54NsbAlx)Sg8G`)2XI<5-ZSRTzsi zqAzIn0P%^ZaBI$`&j@m$dcq-x9xv+;bE*o~Ztr%Hu<<;OC7ssyUe2Y8h)MiIdHd$Y zmsjBcZ`jR0tQ7Pe(k)qjW=!8u@u$eWZ~OWA2`27G*wonAxXO_3KIiQTIo3qjHc%s~ zW%?enkHqbgFQt-#9{#rDYKw z$@_`~?_AgHywby&|Hqeo$N3JQH6voOpVXl}vJ}~KriAiA=&k$m9J}9?jnF{+5d8A4 z3k8d)LScL2AAWm-G@lfFsw3bq&pBxq-};jFOK*2h&E7up)hpD*J!e-C$(p8={wcDp z!no?6%WPGtYB9KpB8pn~Oiny1`UYlCHW+}kI)tI6$x4my>v_0bxpIZnu~;=4(gU=D zMKMWFVP_9^+~c}n!2)8zKL!lBbq}e5<{Z=aUq}kSl-hw>;H4d08v()w?Ybm+F|VHp z{UmQo(R^v#&XC_V<$`x_=HeoKIeeTfgtV&c1U7Co{=Gxj^2owYXOVO!Jwl?txAv%Q zLFoEEm~z6Ps3<|L&fk3>h5vIZdMK$M4Ea5)Xh9pX?pb-QZ?WAPtVZGk5_9ST@Klde zQl!#{)o4dSkX+|X#T305ffe=e`_|Wl_7`b5(1}AjwA~n*V0EK7N=QgVfT+Mh4m8Ff ziNf%X$xnqp zlBpun^97W*M6Z9-XooJ0*<2iGBp_ISYxnE}K7SrVRq)WSr_Ioi4|QeHu}IH{Y9yQ5 zu6X(Qa0d*RKCP$I&Iop_mL!~hy_~j6xpSEZav2$Tv`#JCR>jUE#!aG3t>h_MdTipp#eiC#^>#-kQ zu=T!1Qo2kO7IMKa)x-2_&E8}|8wu6Iuy@Lp{>rbnqI}{q?9p}&9dt^g_$&&_*KcfH z{C)M$tF4sUr6nCpr5i*mf~GOR3U!=r`sFrk*bnB#L}4 zu8o%h?ixH+P%>)_42)6HA%Q23;>Y47T1gyIROr^U(N0H|nQl~3R<~8BKH7FEL@t)X z3dgY)N9()}+SZ0YTO0Ul*CEo5E`0f_{0ovIETCnr7B^n^X?FaYNHJDYYyXV%XGzjR zVxiR{4SP}RVZYL{vTVY$37UzLP!I^bs|+bE#PK7>(hH`80b%8Vja|m{s9BLI(fn|!kSy6OMO3mxEhOihL4^Vdl5!mzI)F&XN)uMkC)MZT8gTto@ej1*PL^$xgcW&%$gjU9_a%{?FjTc zhJnt&kMyMm0KfoRLJVE71fXMwp4Mip#tw)Bu20jJNbyTmH=?tY~FqCxOUsLCO2@oMs8UNNU)MS5@=vXvNV#2#}zP7}z8azHC_) z=O9deK!{a~8SMuJgtQR96CnE!3Ec%e>=xz~7S@U}&Vja`AYA|t#qSdMrfLG-5Muz# z*NF$uOd!6mqJeh;3KMN5H%(1VpZm^3)+sJ74v^vyvg_sDe<#!oGObu4H{Qd`f3Jv= z`T;Hv_eZexx=GWdEk-yD9?2$P94K&(0`4e1GniS36=SA=KZC2!&*$vwG4b1=4fWJ3 z(6#awi)+_S1hAIj<>kFC90=O;R4^D!)ffug{Zl^?2=o7l+=NEYO7tdu4u95TY`|Iz zfdk)>-k?<-8cSfAFq`beb@uaLbYb>T1MGmXBLlEWnOU8p3M?H9N<+6R|8>y{AMzr# zz(ZZQ2Mvz_i=7B)ze$ja<}CC<_ga`GSFymOv?rC$5D0KUPe^NHO#^FaJr%UYn1sTB zXDo*|0YQiWm%PuC@uaG7AcW5FGKCHs%KBjY?ev>lmrEfB40^(&GrGm04F&Uy3!pQd z9ga1rs;W|~&4t+nS>g_`ULT#^ePlfRPi%UB{JUE!Oq+v14x_jNh+-^s?E??}^7a5& zRuZQks8tDW5RkcMDnWlSfJx|kW-e?OhWQGZ1cLW>e@9jXP(8x$Xb<|I_XbUYeG&v* zd<%M|BivqG1SdbFDqN+Y4HtaV9t$IzFu9!oC?qU69|2k_7}75b&e^$ul!e-ZtCT#j zNLK;=4!tuMEdGsCc6j=tAa+zHo*ehiK&NVY$j(=daWIS92Y|IN0d1qVaN>8gC>W@q z+iI#BrYCxG6Z(4j6LxPw3JF26K+mGy&_j0APFeu?1&OG-HE?ZC=O}cveBh0taYnkPrTa|{F345#mg~RFKxC}_|+Gu+eKo}3#nXA+Vg`=PF;EE}S z*T)L^Xb8?1l;Cl<_v4~JLw?jC9aS zniKHG$o$MqEcDa_r1lu@_dq005!Bk^Yno|N8 ztfmlfH1X7C+|iQT*6{((=a@^64)Tcy`G7O8y9CdHzW5?=)HJ`A-}<1Ko0Y`}cdTMA z*MDU!buX%}107Fpig|KR`MHod6%}-ab@W{_1_4G(l=0qU=+Xsz8Z3gDC4?aN8W11} zeno&zv|jysqkv*!{Y&S8DcG!Vi3qDYo8{sAf>OXM7fe-);hXGU<3Kks{ z`k>u7bU*d#rh_{b`dL7B3b-Z(K=uQYrXU$J1$HJP3;i zx{X6$*sUot2qQt{KNV{rln2@ToSNA|Dsi(vmi{D(4cwr+v+aN z-2qUMf~>#Tkl6)57oDD0Ff*dwo`v)=1Q}^<>&3~(IiJxbFaDj|j%W=6b0$pH z7MfH-2?8ipfsh*l5ntidI{S>_aa*0q=T(LAZ#$hJu|hBNm2#KCO;T@ zSOG-!^XbJ#=%Wte6{g<>_)%Iw8#Az7Y7JmM2-4|O*$SGp1L|n~U@70xa||vHDCfF5cBK>?4!xB;kq0VQ?P5-t|#kO6klkabKdTqJN8LeDztZD8Dg6@puUuc6~N zSjHisr|QHE+HPqHfQ#QfJ%K=o6@&^iJf+cqUxKIb5O?{Qvl_hj2w+PLz9c?+w+$vX zP`zSueXcqhhY4>1lm{I&KfK)g+YX3uP%H%`g9>Uq`Y~9hryB)+;AFIsTC%bIId@-p zf`Wrn8QgEwFtou3En26J?59@7U~52o35SAC=;;hS^T`yF0RazvY=LFHEYcARY1dO% zM}UFm6hSYISs2K8_~BCq4{x-nmYqJw_8&$)Wf7ujRDY*--u-o+Tz2r*8196Q$;vegaA;+1GxQ= z`B_74WB0=@(l(q!)9QtGzDhYp}mmt@VtXAE#mX{ zq6XMTKh~+|Z-en9Y%unM{8Jw5W;}H|F9gI&>`ww%)Te?S7~#z`fN6&bE>zYjfWOfx zVjkm$co*VO1d!9gw=)Jz60~>(Mv>vBkw~?&wz9F9q84bPDMQWUP&o<6&WhQr?8{4k zr>r;7>h(h};L#;fw;lpzH@Df0@$0Hgj8J;%4T_5b zn*%xtjRC#`0hSF=xjM$9C@3fhKwoZQcy$$s*AO&QEiXbplXrV!|{&Yz?&J`6A~8aTs1sjd9#8(jkf21tcK z^$jAzRQmE3Fe76Dnn+fkDEwC{nu|Wb>luNS0Zo#f06D1wnl*Lw^;PT_jiLax2q5u8 zpPl05Qy(_;ZmN2(Fsy4b?yt4_+w)HaG=$1-_h|#hl)CV$!A^^o-*qTIL7EnZz6Ey7 z`^>prtdMXuy&!H+}=_ZD3KsDO~`JaO`A(pa~Y)5xQ*?ocZ8-&~U^9^aGaP z&eT!@;#z#e!%cr!p}l`xbPIzrf@TSaXMh#8DXZloCKlQB%L= z1y~LhFwzR$_5S91rj{=sU<9=uQdYh-^s3jYZ;B^sNge%cAVBEF0#Z3BuWserNI;4f z4h;c#oym92AIOryKp@g1&v9?^ZP^O?d!N{!|B$Cy0v^r(qXl6`mX^!@!-Bu^4!?&|ZvQbsrm20H?2i@mPb@{t*T*JqHB z$Owav+X4}x2}J0GjMJbE2}$HXL6gMY^e>adX^`iHfWjzODNuw3>z+XQ<=;Q<_rUKz z0<{w&0>u?baZ@sh^8OER-~e9m9SjW!2DcLdqW9%(=)(sS4aI+T^MQ97s{Gx}tpF;1 z4p5s02lM4^xITd>1+{8VrL#tt7lk1__7z zr!1lkndA* z*?Fq}b)r!%w!SaCJ2)T>5bqRpvx8QD3rZx*H~wAqH^h`?)@}|A-LN3|rUCc^t_@D$ zI0BzbH~;VI+_)=!Q8xiU4J$36jcp^S*kFa6MSc&5l#~=S^n&P{0Kza92mv4U|Gk86 zUpq!oK&~PQ*cw7Y^)%6d=o?6){)(_P&kY1{4h01Tu!3L$4E~ek01N4qC_WM*ara3x z`@5>c+zwP?-jJdGr)=2VF4m9gpWFUN(Em!ACjCEu{y$rd{J;4j3q?TTJHIex2@?(I zj%B<`58NLNE|7?pfC!awzYx`S3`A?Zn7&CAC`JC)4^wXzsGIKc`ge_V$*cdqmf86L z-vfY26xgytq$IfohX6QNFAb)*{rzT_yjLo%d}boGFPC!PGWq8^{#{5-LbCE69I)%f zhQ*h~{@bGFo~#A>`h%!^ML$136ze}Xk;Etsz*4`1;$%!^vJHs$FRT0jZ3s1Yo_~r9 zL7A%sj7fOIxrE{wzqGqC|Ls@#pQ{i5-+Utf`H<76_n$iTe-`ooz5C!ltLyZ>{2vOB z|JjWH*^K{d{T%;oBgX&f6aGI-`2TAO-;M#n{|6w#f)k*j8+wike*Cjt-EDM*5C&X5%N?t`utTB}5t zj_5-;87&!f02rub@N>)_pX?&9JDOHelE{<-!BV;V&7X*aj}bla?=kkUc=HqSI2j>G za(e+_;$ZoOkGz1PguO9EukPxLfC4Sn`kIpikdkqLe;oP6UJQA+|WI3n6a~ z{m&YGNrr|Y{44|m*OZdO{AFu@GfH&^Lu8jX+IlTW-X}e~bumOus7})4mEdBSK4bPT z=2qb4-grOu{oByhbV14W+J`)DhNEAeL@z;jerP-y2>wVz_!&1ek39V*C!a_`>R!+b z@jDHRmo>QFE1x}$zQxj!lq3YvwkY<3zO}EE@`*sMr1~2b#0oWox(aGwbSf+F)pZlX zb0v`L-^u@lL?-9_S}i?4$itKTPxcLfD+(luc%qqqO(|7(I!~e@VxVj%MmN7WUhT1U zJk3LR|NKHAkbfj<8A#l%VGj@FQ6V?}c&o4(b|@6e_O>A0O=C>_DzDL#h<<*oJ4dx> ztC&Vw_L;b!y#5VzG64zecHbFutF4`p(o+~Q#ie%H4YOpEsorc%a>Ej|;4$;2DAkEL zp+F6WSKBek^qQRn>g=dN&)VOdmuR;JF zRo15k8+ej}TiHOgfZaZ)kY#Zpy*KD=wYAdyX~^mQs$Ml9!DU=T#J#dWEY6U}3YtMUnvEetzpdD0ZG&R35LgR!t-Eh0Q$) zK!pPY1_5B-tOAi5FrUVY@BUIQNsfL|<$h;u z^!Jb2d*F7`%>VL4`E=l-?2i|UnC&<*?BU%>KwMnjRoHkN)~IFKehIw93vw_Daq@D` zi*CO_`cwAq8i(lZY<5`rVbhlZ_RV)+K(|>@f({+(QqT(3=o0*jeRxX*^)@IfkoZlxx6(c9?jWG7M$JidRao&x8=(AWQbsrc=2e_3ho%c?~gP}+k6C1P-W zeFVHn@n>B-vd>?qK|!I$m;xwOoPx^=M@CY!7W?5AHQ_S&bn&~&K`cgh-vE!TtL$sN zJP7TeAQ}%%{(H@XM6t&Ok7P+iKYXSHE4eH)k*_amfY89M8AI}f5(+0mH%XxYH|2K_ zXh8D*gVsmsfOIYCn~IH~se^hq#OBP6%^grz@%7s`jlN&2-Q^b|y5Nqmfj61u@uxG` zICKWaD*XariMsquj|b~7?^3wFA$ek%s>R26g_PvUPK12jD!hyGz+dj*sDnvl&t3## zPS@X9uaLa=1WcD>6~N-IPXPPEm8L*Wa(!tyMWw1y{QqA)uI8_i)kW9&=yVllf=WTu z{MS#x_@zZudihqXe0O^1VL4-1+8{}h8AjlEA%j8GRVSELLR|U$5`BX(U(jOJmKXS= z8+u-@%BbMH&M38BJMjOXG?g;!j5D*bSxQ_8t3@d=&)_G6j{hgrr|%462MMt|y_Lv= zhi-l6xRwiS2X&P2HByL`Wh7#8?`F%>>@&}SeDAr zW|)X_Hl5(EFYeA|#d&D9?`dn)!cK8f9q>g|{be{i*d_RsX}8sUcG+Ezn%0h8W_1<& z?G}>3)5u8AbNI^yy7_YCq5&h2{`LmhcTTI|s0 z5i#WcL&NrCe2Jw07NXnnXA1&jYSAb9n}=Ws<2EVx%H!VLEOdVkZwMoSOsW2J1A19W z1hrZlh1|c-=Tqda0p5p^)}sSEtgjimZpO;?+<)~Pz5~UKG2>&8i~r3PqgRIGGx_Do z$}@)|lCJdufjH{9WLe&W^Q^RUT8Y%DL3}CBx*MYw-&~mMcRMSr?J0$q>7VnohX(3m zb%AT`x0?0yO@kvd?#g#^?kF%|O1M=!Zr3+8H!jmIY%?LtMJ*|B6Ke>fB<9|c@?MkrD# zW$Gxt)p+pRT&V?O7l%Z68+x4?O{|JD@H%c;H{tT>TPcE6i9#4vu1XmU=QC7hQMz^Dhk@IYX+{`Xs7|=JR1UNy(e{ z%yb&#D4$=>t>nwoE$8l<{CrWnpnznxxB?A53d|klq;FBs9G^K{!T8PwsnM6GI+9tfE7j+?#ktjVVPs zInE0GAh|&i+Y;ba)*h{$k9Kg*+KkKaD!Sh4XY9zb(b|(?KYdA_KPM|-L;bvwo=}J? z!H_Yx(#2^BB*c5aPge*Sb((F>6CI*(+Mvy2<}S{C z5&POWZ|>%y_;BsdGZ&H=$_4JTY3Yu!Zsx~drtVDKJ6ZYi&Z(_t-^l~7z23LM344I+UVPxFGulIfPqm)`4d+{MzS*#aHZ)mqaY@~Cu!yT!l7%3Qc zfT-iwyN_5rNE6;;c{C7iaPRHDdqd_z>8RoEm~uV;w5ytaKtRCu!Y^>)lDE-Z#;zWt zza%IXKJ56&D}PbGTR9EUH;B_hFeyQ*d9o1?4wGgb{<0l_wg zg}{IwUhfRr=MLMs0@!sBHp1t6D4cQ4A6_D+mRcf)(4qZ!h9~Yi`i#X|$t*LO)Y$!$ z^yZ_DeZ=M#?(16j*K|!yhv{urDuSQ0ih!Y?|ClqXVeO<+CDi6x-N1ME4XPIQR(3k8 zw81-*b=N;33|{jFJgbW*nlQW2i~Bw+utXY0V(NO!|2VfO?0Wqi3DW~^&c)2^(D35d zO?ze%_Af4X7oZ)&$cl?gZtRYI9Z!F2tg?2$QVB8J-gjp|;Hy-jWT2?_nX+eh^;L|F z*@}hKUn%0ek?QqJp|O$`Zba|79l_8CuRmtnOGHOCEk|vydazSRbnpd_DgWYYPg+Jr zBJ*z1lYrhkdp^CVP0CeKJdxUyW z;_xsmryz@OqJFE)iYAPuc*bxok}}o*S6I8!0#k4+P?TuA%8oF<;R8fB>ZOwORx=jr6h9;4x!og%-S~aP z!q<+YAwy~|E6UK8i#2A9yYcC$p10eB!{_X>Q;KjLd~A6E8!CJen`Ubf>}SuOMLxDi z1~Xh2IA_$el5y3ov~U)Tve;xzMef|zl|8&~fzzY3MV|q2vpjV6EEdw25wA#3zhOX7K_d^C|-Z> zn|#E}a$P_<;i!~XzKAt6c*!=!OUW=YCQ_-Ts2OLwNl?_>k`z@4omb!pRHh7~I%ZxA zC?6J|RCW_X>Y6gS_?ul;OU?*v)s4SkzuOY_>?znN#hj=iEGdU0|D^J}K3RRX)beP> z7PD3fIR}U7i$Z}9c!II{AuN~V;yhQ}rSo-_@Lzg(_tBm@dIRxuzHLNLPTbz6(%X8i z#W|w~ZQ^&92P@xBmR~y;CLBoB92RiK_|V^$|69dIt3lcFvHW1neIF+p7F$2Ha6f>< z-~e97N@CDb9_(xllptlb!Y?z(JL}a(7*SE}BYp7gv7$xq@gHVKqG*vjUz$;h{K5tS z0R|$DK9qGCN5@|l%A2((+3)&CB^p_=q=<9--WQ#nx{CDOFL~^57lLJu*23cSd}#W| z+%zc)jhsFMnV6G9ifDQ9A8v-~vTp3Tj#k$wWmZ zg|O@hkG(G0V75OsCh0j;GPD=+Sbgkg`moXIz8h zygR~((h}o)IDhqu)wx_-ALJ%55ScDXT~{JcW*=V#w*wbz>UWD~S2eHSG;1y-><4`m z&+hBz&5h^l<1Q-+`nKz;p;xIZ5wk;dEFKmGg3Tje+xH&19|EA2`-xK2xX)X2`i+y*K1l~S-7c=VZ?s+b97gwOG?&T_iDjH%kE_cnSb)e(V~nT zq9l^pPESX9*wLzSI-iaD`K!>d;fwiqj(m)o9aEYxK0+YJeqn>yooL-9H7Q*1bzK{a zb?UzAq+Wj$u|rQ=$lb7Gt?n$djb#iQFs>-$Qx#&QCAuB$h2;N;Zq5Z*EfsNy(?S#QgjxXa{ zc`G04Z1Jfiwu~msp^uc^IIcUyu_M$Jl+NC6(9T<3aJ1j_9 z@dtenF2ld}UVF&KYvav#_1vwiIsQy?IHG67uT>=TqPm-wJinMwDIsQFC$fM=A=Vky zoIs%&`kC|)k4R~5p5~tuJ*s08LvBA*iahZ$N>K13NVX(cV3Cu zk)Ob9p_O*J>3R55roa>n@5Oz@&K&K!rEQe^HtJ3=`x_=|hHLVwiyjXq6KP-#%XLWy_EVFR<4PW|fuH zthCmQ>}RhwspjTeOJwflrVJx8$#J$Ci`3mM=Z@}(r^pd$2Bs8&HGC2iC(IdLbtsYTQkaRhn9bpb{F#E>cP#-2ru;#M zG3lfxgsC0R+}~W46t|eVW^d4c+ELHQe%>d0mx&7-vEP82S|E+9=fHRu*t=6EU*l9| z*YHC+8ewt_B{?-2-8Cb{CEkbMW!5bZ3Hy-#Eue>1(7z;9PYxUn^;bMedb0Rslk)-x zeC8ZY9cU6oxhwqzzDz|L` zPUu_4yZF46et~#a9{Ld5lkE{4cl5D4;0v_dc5!j9t?(Iy=B6AaLFV__hNAqy9Rr~0 zA`5@2PnKf-akRY?jy3dDQbgQy{#x!Y6pnAlKE~PLd}rd$fg< zBn8g7Y~p@4KJ&r{R8knPzcV{5&&ctxuvau?k$cq4{=#_E`cAu~w+^N7SdGF~&}Yt0 ztWCXOSk}(Sc~h{lJd3A}oVMB1Py9?Lek#g*>PX82a4;gccrH<+NwJxG zHD%In4{n7?9&9SDO&()B8?G`e@ueJv?wX||Zc%XZlw0wqnJtfDXsD32Ug#Hj2T33- zw1~v9x@4Ikc$$)>Iit&dt{E49$A$b^DEK)gIsx=R!C&~%Vwr5)>uT4X?;0Fk!pNGi8N}X~Z=mazQYN{VD zB=8yzX@(7l@&U?8mHO}&00TDnDCbSMw674yJd-P}Z1+x+ zk?;!>S6~01U^NQ2n5%bWqESP7Ww9NWQnlxBfK|X&X1!*Od*DYHYz4D%XO(p+p392u zs)r&Mw%iq`+3sIzs0&YE_BNP&#w%Gt@aET@6p?C5H+msXKfmZ{{-EgRr-Z#^J@UM` zXl(-)>dWMf{m6|No!!jY9KN6)??w6z+~eCDznW@i%_UL;I%D~G&@%Z*aMY%~aR0ot zS-(&MUGXXgpYCho7MUO?+mRgefnrpCAGwEjir;zdgg`yInLSeF(Il>#b;^jKsW)5Z zl!^K3SmxPrb~V1}#_&J@VU`yV4v#jXvVC3k5_+ON{t}m12CKmlTyv8A{oFFY=c!05qEJsBs_bKC(XSpY}40nhYD=8vVkr7t-BC_Y9 zQr(2EZ~3DyVt+2hJ@=%F zT?{@)yVK@m5&c9k3pYL2Lg-_-&XvcI7?XnubBzeGwvZTB&!US`#Ayu{GAnp*kkhM7 zWnAmM)7bLu*H6cFlHlrulBW#v-33`TxbP-yem*$P${0YvF!m_lR`iE?!K~u*| z{j^hyKb56r`qndb*z6SU7yIXzOAvAda_`pM_cT#(=%1*_5_1^oz#-yQmv~z z9+y$EaKxZ1Dfvn(md<50$NHy1yj5PNPm#dv2})T#>6*CHYWjG8zal=WfttV#hduq! z7y5RzZ)!}%m3jOpu?G7ttiOyW^Fo5gM4r8F8@36Evz$EzuEw*M2ip^~iOiG%ii#aw zR}sXlCQ=hBD$m!n${RX1y6p$b)V(96N`ucBc0#7#Kim#UWlYz!SKl@};knG7TpN^< z;duNP!IrKggWkO@8mDe@q@hm6$rU4K(gHb`P# zX8O*3pNidxS6bJ>18z-=8#BVrjc=FQB&-GkzHJx`l5IQtt&S*d!Q8KX_$ipdTf0^+ z6Tqs2o2Y2{UUPvo@{N$zikmxC`8|FX+-|B;P1$;?m%x~x8&EWQ z`E4HWiM=+_Y?W^R))Kk&(qxk&(%YZP!0_^1f;^9ybt3g~XAR)die%{ohmNW=g0b59 zA;7p4zcCXuwK`0lQjp4%Js8~_+=!l5?8bXEKlf0_g42S-F&Qv4JQ5oRbV}>Hjy8Mp zfRTwvk9PI3k}_}p`Ot9j<6TpA*>cIEYy}ka0(bTH_(Nv(T1kOG`O*c&p3kHxgDID? zE3ND{OD_2VS$ee-f^RaP&#$$`ue!f!3EaXG>D(`wRC*Cg?!ma#0_fCPY1y3IU@5Bv zI+4Z1Pj;E7+nh7g>!X0wYS%6Wvf{bMnS|bK|KPoo_E@trNDT7Mc4qIIY>#0PGgbSA z^KX@$+TI;&PnO5vgC|Qq9?r(`R!U3xdUU*{o{E0ihW6Y)@**JC!dlwR3V5RxwgE9z zFXNz)eQhUew|E7GvGw5;56L}R9U0JA_xbL$o+_w)O*!%;^JM+j#$P1~-3_Q4X=j4w zvf__5C)P*jK_lSgeMbRKo^y46w*w>kW!M`JsML~YEf!R1{uy~w!42g;FGq=iWz#;|&Fr*tgqG1_ILR)=q)m!ndR z6BgpH$`sd{sE!i6tJlk5cC>7&pr+su_O;OW ztv!dH(kO4N(0P-tq+KFsNawPYe0M>CE3Y<3@?0E+s_QrG7%2tr=bNo4b>sA%Zbrmn zcFQ9b@bCyb*-eUm+WA0Q{D4OFU^9Kcmlnm!I_sz>=`)Ju{$?u1<$v3$Hk*PIwKB$w zS+`bqixj>c`rDQQTCs@p7PYFw$kE7jb1XBFX3#J759eNDSAYh2&u{TB_r_=&XQbkmdkzKgB{ z^@)rPBO+~v`m9{q+WJSze!>($~E?QG0DoB^}k}B;;VGGv^;KwWW~CyCuG?F@S~5fi*R)% zM?PT%@IX+_oxPRu-kXE_BS|al_|53XjSU&p>;fn5`zP*`xwR3_bDg!NKa}p5M~Nwv z6)gIv9{yJKPMeM0sueRa?r1?0%NFU41^5VOQAfvWJ<()j;w&l`!t4d#fMt2syb|RBgEF zr>>plkrrHtl#^=~yHtqHIcnVdLc|bh5MjhDR4rI4deVTdzml2Mu<}rJN5!Gq>0OqY zrXO*te^m+L`}rtVR8-jc-YDN%n+W<~Zb{!3z50BmZ=Ll0_==ARqnl!RYd{=t^+O$X zH3_MJv9DTghY2t@>ne8>87$Gj=$QH&y}B_d=yd4$4jhN2g(WyqLun_)wr0a2>t0ua z#dcGLvllJCG20=mx=q4ExK_^6&tGxTAd^qEgLSg3K$j;N>|vh1{xi1v>1p%}rk6ZJ ztTf9MYB%C9>h%x$-cXn1cY8MTw3TdSq&F-3o(a(U*uz@%^u z4NC4S(@h1NX`&S380#%fG-zUoP7Fr{IrIHI`LxTzkX= z1LC~r8WX&p;%i*2nqJT)-0ftRb`XEk1# zQMx`#;rQOviLw;pdojL+bjSNdMm2ssjfzSPd6GVT#`m+tE2W!iHmxv|u}ix-Vl zG-*tnZmExq6@HX5apBDO5Lv3zqjPb{D!1BAVi2kCf5vOEHWll9^EmOt%Lj($Jo>b1 zZQ=S>vt`Qp9e)AWR#7715n<_k^$>(0t@a)8lcv=*eoE0{76%07T z!>v~80rXpcqi&&Qz4#e6V;1z~s3KmI*gqpDVn+gbk2N-a50R|Pu;|_I)5Cw8WUii> zcJBBx}E+z$rMDHk%0reQ|7X8bwJcwJJZ=u3HGMXRlwvAkVLhUwsEluR;IKVpNODK|N18GE zugR^J)Q@8Q?^HM=Oun|^?6oDHjl6D~tiP1&;Y7n)wGY&yQgaro6c85A+f%xljOs|* zBtJkNMIF2x$;h!i8M?ar{n=N$tr*L$YDw;-w?_lWN&zt?FVz`N3oK!!Mx;rM`M0n8 zeX$Sc2BL~nN-9J3Mjzd`Y-2Fl#l`v!p4V`V1$kOZgi2+pmR@O{2*VAlp{thH7r#41 zQ6UfKmt&puQPWog^J4)jifJ6rbV#O7H)Y8^2UH(tEMBeaf57B$F5bW{gFelJ3C>Kk+dhjJ8d-fL+0Cs z6Hca_h<&|2p9b2Yr@y(mJ(18)H)6cdZil;dS3}@fch=E`9kZD2;NHe+K%=xx z!EYCL9BynJ?^UN^x;^j|2%%DDNzuy#E5E$fgY;gLU z7v0kxZ@<CtO$VL1C{kRI||+7 z;$q01>VxqWoL(^WKNLIJA90!86>uw8DE~k`eq?25zAZH^HpxT zCn$Rsm!{>6uh;M{@zXR-1v=#28G8s}PSwca!!JRHKX3!nUoojE-=3-9rb z>9|`N=3qxM4EFpS*J~nz7Jbc#=F>jbZMXpc{wC(_Rfke>`;?NSUPl{ga0F9Hy)}Eo za+sOX;d*m&fPYVC@!4ct++zvDOe=U~)-}9h9S$!nuHoJ5Jm{^^W-R7_c2$gB~mlTKBHBccwO_k%!t8XwHtt zGIR|YFf2cLQ6>EetajoJzsYJKBDlAoC~cN+&@&OU;1#&hDtw`AP7oE+*et zqJ*^;-I)Ko!vD%$@3kJ482qQ9LAX` z<=t6F&$DY)KO z*V5nuoL#ZCUa%l=7}QE+R?`<}&a_k3qzO%U6SwHC8Chn|^dVrx;27MV%mKeC->b97lfCIJ2{}O9X-R zVkfo|^RCIlu1{BG!82tdIZp^hU}$!nZT_eSB?2$yPC@n%DIoFI23=w24I=vHakTnZ zS9U2h`PO0Yc1QGUxF_1y4mhT~m>{594F#71i@Y_Rb4Nm%{8poqDY?W_#O3sc1l{VX z4(Cc|k!9Nz?P-L{=;eAr))dmACiks(!O|(l7K&~oPoHxd656TAl7d^05AgaZtRz+g*C-VY+9tM zOG23lzZiiUWYWHYk3D(posK4wmMVRvVk%P1+w*2LSh6U)HuT1PA;KHUg(-_>_ zsnw2TArA{OUbRNQw<{hygK+2wH@NQT6}&JxgpC?8D1M|Dtl)Q-l4-DY^{muOWPYLr?<|oSWZ|y&=eZ0O3MP=H=Sn|f?w3!jx|dq; z-tB3#uNU{AgUH7=UeoYQ=4*9ei@0SxK2|?1L3yQUcA3j?r5RfD zl==s?Hnt3Z;kE96zf#vNQYfOM>=rNc^^DBR!7NV3A03X)=D7zGt}21b4!h!>k#GB5 zBYe%g7V%AKvn7u|m4_ zmCbutc6lf|k0fS5$g@ z*PQF6vqOL8=HBtO5_0Ca%HeFp@Md_b>r3C+7rKbKEp60BO{;sNY9$hghfdpjlEkC~ zV-ba>aWC(-Ul8#%Iwo(0FmG#a7s;MjEhg{|`;-&uaTyW9f7xw|X9+7P$Pcuyf3=j` zFcRbIcQ;9KYu2?{c%#o5H_~+8e#z-w9X0wMh47mYw%mGiCUfI!5y)G)OL~k{Naj+< zbXCD47JJ81AWrvo#KzaeKAPW(_1_MlOT3ulD=x@LP+(z zij^!;Ng-usuBN99Yw;*OdSUbVcS87?cuQ#-9r?TAl)k>H6?k$o*1XR;$g@a;E=}eS zjI4zrS!U|)#k|W=z29qlwsOU{O|t^C=*U_@#bR<_f2qcTE{lZhwvKG+zB}59aHgMB zrE%~wMlU;M`YE^OdwG2}uI)~ia!atb?v`?R9^a;1cp@agpUqh);ln5F%w)fo=8&)G zMHW1pMoZ%EAeL=BsD;`tI$c<8M!Vj{feuCS9~%bFB4sPy>Zds(H$JY8R3f9>Z6xyS z9B7hc6jtl9D!MgMVr{DErV2D}@_Ph)BRPA{3aBMA2v%lRXtuCQeIyWvX1%=*c% zYE<3ce+Az@iL;!>S7ZuO_NB@Q=3r*y@1?_aWvGK+9C#sAW@Xnq`RCGj-2S}HAL-Yc zOkxARr~uL^JV+V;{xeVWzC@Htf84-HPxRl^xnq{UG(w?i?6F;&jGn`e1GPU|^Fi?5 z;$d=E8=IfM(dvWr(60>cleR0BAw@S$Fb#8sGtq3FwyI%Y*Wy`f`HTm^2|=fe+`qAb zj7xBEGY)I>;gygdnkq~?gUCE#7}t(K-SDD)B4Ey)LTNOddwuHp+iJ(6>$`(o$no|H zW$#mZK793pf~(hon#q2&NHpN&z}fjxG8on0rHaxOlw(@@ zgb;eK0glNV4*5DVtK8aya=5*w1GBFa^@3F#Vg}(aZJ}VL-HAmi9pivac6a`xyOgbu znUiJjfbM7HT~^hd|^`biIL3P9~|(y0l!A%xpYn$#JXc2y!-hGp2j>U5c-tRkiZg zr<^?1)eM#@i!%9Lx+h*N^XmC?ob?g;q4u2^onpR9Rz4y2s2|5YjhN{YYrNR&L|%!& zQ1-VOqHe#GZcIpF9T1*YG%61UmR+gDh^l_WyaHbxiMxtb=#GY7l#Z9TgeNm?FIygw zf+TKdbu_b$^3}A2Q|YwkUlPM1OzIa+SYC#>UH!^KtyVzjOjwUM9t_VF`WaJ`RMH9flZFiP0K8+L`)9y18H$mSaGw z%ais@{yAA6QZIPi@U0DC&^*?}AJogG7D%s|JqGy-GfL?bP=r0Ykzrf@{k{eS>d$ZJ zuWLC5T)j2o|Hk3ddZtYRC)0vuz40`+s$k9cyyxY}bXYK>qJ|nci$*_wkUX#5mH&Bj z$k}e@vEJuTQ;m}9+rnz$^r8>%9zMF`%>8T?jmyYw*-`xkU!T4mhV({7wZ?@t3CMk@B@-nqUmf2 zuuCT2GvDp&KP;tMyTU(OJ7T4Z+W6{+n1^*6^Pn77<;)EEA=rmi$10(lj5s? zqO?qOS;_Ibd;_XIv*r8n*kp{vgj{7BN9$^q8E=47a%U1c;uI{Tw6=8RdNFI5^*$KT zQ)=N#!I}N|$)Moo5SeSxdq9Yfo{yt%5UQ4QAo@K>8Rr06b5NyrbMwzHeu&3kf_Y84 z=hGeA1mb8T@=c?C(|R9)eFny0C2 z%&Lnu4Bo(5X?jiC&PI={wM7f3_Z#w zo2W*MO~Pl(v`;}mMfT_jC{#M0noia$d5{$ya!$BX&Ot%WlPP;^OdF-lH{buDYE~JP zuTMoQ?KZcQ>E9S=8p|w3*-)HBj-i`Nc+HEqw2G-o*`&-^AACxYS}6$`QSqBjb^bW2 zuK9o_8A&A8kMQod^}I4Oh>qf(Jrj09K)rCFUct54oPCmL3K|`vG|1z~d=$n%pn6v% z3@6h;IMFktCVFde^w8pO#a$4c@yX(C>J!cpz;1A-9XQ<6G^N~YjjTX-Z&VN^deQfv zYchbuO`2a*%F{Wr)Hdx{z`9m36oS<0l#9Y%I$+kraG&k(F6wHcDkCh*?W7&ohrhHIIe) z`75!6IG=+|4fbC5UkTSgbvUGh1wslWMn%QlFR^>Y*zWq99-AS}1`+jM>RZf`lA3kq zdWU2+rUF4N>FK|isAvX{<}*?6pFg3K?z79Lo^#-wZQ9$a>u<+Y&mWyD2>`+5YfD?$ z^aC{uoznT~26uCdI|&hSx1@kj5wJFS$sI}>&OV%_q_M+8+Y6>{_W6VRqe3$TyxF&&AH}U-*Ox%-da8@0zmKh zsV|}Q-cY}P=ZLvoB|?_W5Y5tjlqp!LfJl(j1~q@IDoUDae) zsl&|^CZ6Eim*R@tpMy$9#EUh24gRBQCX)5@k*n0VAEf2u7XwOOI+i#Q2{CkR+6a2R_lDv9wn+Z`DwB)d(F<=D0b z;*qjS59@?15H(;f{5X-Nv62I^BwfN1hEj%5kC+cAk}Y|Bx>MTrWiPKt>`_DfWq**D zOcr5v-0w@*DXE+C!gN*QRg2H~9lqJ!19Qti>$W=^Z6Af(OyBOz^LcBwzet5Hi)boJ zW@K)?s!hfeh#XKhn@Ps!RdC(e{gAx>q~<2cflTORnr&_C_^LMCA#0(Mvl4MB7fkzy zH|9tjjBcn?&J_d`v8s`Ssj0@>JH7pFoe^}d3kCvG@>lWRC9Xd<&CIrx z$=f!&!Nf*q(kPE$HE>LY75ts%{kU;9;f^KoTkASJ{Gr4SvpVK$i8`JOs}bjle*(Ai z`jJ-o0bT-p0j@Az#Uy>#K;YJ8y`y(E3NMJ1%sdJvSoJE;m4OX_P|i;R$?jezM{KsB zez0oNkT)jA)hyd6jX7@|C;0dxW(nT~JFl zM0_b#HqVND5dH(4yhW$vhamnNjqg!V(Hx!v{=tXe%yik@@E}ySpa^jumG(yBR_wBx znm&TsZN;f)q7@NS^V}n8B{tqyT2s!`P@~oZpJUr~O=wedl7yFwcihh=MoMi1*rQB@ z5I4zEs7ZwT?69Y=tWlmgT+V~JEOR_0>;CzQsDQ1<6!aQ$yVv?vw1h`0Y3+d=> z>a3{?icK5U$czu|eZP@BUDH;XrMLqppPtBE+k02eIiS@UVnejTa0!|Nqre>JW8`p6 zlD8{2U%cIW`&%r5(s6kwrYCGsJO91rr6@HW+Gilccj8|KAb$8{<_am z*$kK{#2S3YamU7sFl0!iH%$Jkvuk=t24emv`` zlDwh5f}5g8qa`f$uJ%{x!Kx|Wstaa!speV}(k92>Pl0+9Y~?|nbu*DtzNv@)nM8%& z)Uy%3HR5l24-Dx(*xkSK(4d+g;p?;<`e6;>AQv;Pb(Zh05?<}xtEECHiT$Y_kiSth zJtc2#^IRoCoNk}l9NjY{oa0@}T0+DmeEB4CH*KQV#&}c#loUAImuRG<{!z_)^*5ni zak73)Z)41zi}1@0yc`}S!bGcm`~$2XZs&2%C5Go@KWI&amqEF+5?=U|!@9bq#K z$^Iw{Lc`>(qP?jS**823{k*&!GAwTTij^TnCw?AfM_v&V2W|Np+C``V@xgAGdD4VW z)GAh&UX%OoWjr@X5Dn-tO75DrEQ{a8=HN0C>myEVwiYUEFJt6q_tLI=jm3)5M+R?A z9*b5N(nJwPxS6Ew;=4k6`zI5wmA5XyTRs`>65%I=pd9D~biK1=K=r^%BHQ#j-|os&Y^JRl)Su)Rv9_nDRVm|HL9vc6xyv zRKt7egufHxpXWBXvCYkndXBk5ntu09PB=9}$cur$a62_kpMb?ol z&{LVJ?OpKNgyah-M*!sXXOIZ{d62+q{ilR zCeEBTPMcTqR{U{D37*$W63kx9$}v&hFW#^x&+}xG)%Ztb_-Lg&U{K5EQz{r|a zCG*8AF)}u?&_1HwKjS`>?d=6q9=JRvX@1H~yZlj4#XlyCEvsGWvdFo2Ne^z#xS>JodZ)3H5&k9iCiaTxvph6!#R{T@4mwGKj44q^s zx1b51)+CH)F>W9waW(ZHCh0C9yzU=dPf ztz~PgEY&4@8Yf-aGYd#|f{)PfxJ`z<9yZRlJ0F$_tWyg`xN0C~}t{GO3 zGg22DC3`LOo{N7-o4F(BS6y;K8-Zy^%M>e3-Q8qSrOOTvS&y?`MVf3fc_0EF-6u=Y zr1KDV2o7qj=MNn9dcFnU9Im*EK8#*wk+gUjSyXf7^KeobJC*X2%Jy4isYdkW+LI*2 z6{lOypI5fF&e>8*;#^M>t!dXpm!44@tvUp^#z#!oS$8)GrSra6AfSljieBa_<=7>Y z1%BjOz9F6$r{mW1P+#7vvnjQ|$M_90>BoA}pGz8AJe6$AkKH626_vyLbIZ{t9qHy2 zpX&9^rsile0zO{i$td9#Q+w> z0=9Sb8~&eINBMTK0?!u~cY0^HUEbeH)Z^dnpsiohM0n|*2?xblgJpcOs&-{#lTL>* znTV8vAC~e>t6LAb*apZVRKvG^KYsrxeW&hpCe_-zZg+n|6-Fh@_-G-EkZV?HKEa!j zw3<`f=DA^yn%|j4Sf6>?8PS!==Y1;R(*&p$o~HKdtM8T$Ai)p za_WsHb7{v|m&?t$9kB4~wwh?%OOO0c;xwX<_&Q$=q^A+%F(t5D@{ zr-QXfA+t(7!by{P9XwTU6(8@)Dr$exxZ5vibh$laJ<+@=XW`TWZC}R8&CgbB+8Ne` zUQV~j#!*%G=$0 z);=GR*pI>Ojr-QN@0wRxQuLGb*i7t>*JNf~+MQ$Mw`j@Z;F{Ai%BlimHN0lG$}=>t zTQC$UAJ+>=<8Gu#+lQPM*NkXuz?Wp*Rj4AqY~?7q?*&^|@2;CuBxGn&&M_#+V|~~4 zNol-P^C-^0;jKRE$5^+Qmfp8qy6ZO_3_1j;zVu@4X9 zG8A48qt+uF_laC6?6-hnCT0!VtiRM~qU23%`X~0B?Hlgsep?(HchR7DNuFHFN5AjO zH!QfdoqhqKl{z+rdG^}c`vJnt8<~7LtrD(?$4O*--UMTeHukuc!qmnzdxDg6h#RFD zNuS+Rw8a0|&O{jA!NcH6SSyGO<1!F3(U#s@wO4s5Z>pydLq zi8!r0*`AX%99jWhzatg7!`0z0NTlJf5Y>Nqn0jqsbo|F3UVB-}z3}_8SCVO0K*&RF z|6|osYR2&96iKOa7Ak*{Z`V8IU76aO)))O<7Kxc(fi6$cSqzTQE(*p_9QK?G|4^D| zhA?Fqpwd4}!z_xV67JWuHCWuyR$g}sncvt;%L(g}UNgkpoy5OIi*5SaMq*NCuGb-} z`SnOi`P03hW^!I~e_*3AxHp+WkZs}b*s4V#s@nx(}Ba&7E&bYG?rtXo(Awo%g$ZMZSUJaosw`L ze}-MB~c?AiJ(HZn(AF+WSE%DqT+#_nSomqeu&kMtF z*{>(85WNeCjOyfQBK@togP)U>-x{YVG{#d$;PDx5Ncza;rqsnTU52!pnp>Ne#;z6~ zF%i1V@1L{O&aa>kN@n>-PsYj7`yDdm7Ne#!ne6F-`ifST&5+I% z&_m>abDlX)&>XmamfTR<(;@}G;8q-3zQCjyG(KrazHO@|*WBlm{9b&Rbey{k-htZt zQ|gRj%o=9}w8 z-MZB5+)7falBz@4OlG8|o}}O!>X}A^4gz4;l1R$alwXB;6^B^J(09-xF9t-eJB50^?b7w#{IbPD zv-z%z3K3|sRT8-e*T>dL^qk4BZpPhLU)2(TN*gGE(hQT6Gg3x!lbX(cYq@SWsPU^4V9Gz^{y64+X`| zyAklX1^W9A-j;_CV%Du2Yyvx3Q^?(ceyl+a>(c+h$PZejM zA5W~KKS>b(z>(+XS$7p(<*L$olrI>BJmoG7enrt4qPxHu?h#qRF!F(-Wz~*8_-g#! zMt6}E@uAkd%iDst7FG)XL3anujGHMi=*X|0@&9uTK6U}3f6D`np=>!gXLv_4o52Vj} z1#wl(2hwo{fldV{Iwq!E(wT^W*7t=O>FcDiyoqNX54sEz-Fo@bnMWD)$hSL)rL#I5 zeOJ&1+uGY^MhEYB^OvV}w$(Q5T%1XdXvyVvDTd@V*&Ys+X7dgjhzWOdq)}}9on<|q z^a`9S5Gi%n>dZ}K2-~oWG`TH<)liUgnEu@s=^?0@;oIf0HbF_VLBBe9oil{pRXk&^ zVMnOGGH#Kw;;TNTX5|=7Sg%72p;G=NecNoXI+w5k2`?>~rqr@4!bfo>!z1{U2~sYt zijyGd_Fj_OsYYZzt~w79u>!*5$!RM;}b$Fh@6T6&(_;cGEF(LGr*joH^>;uRd> zst&d^@%fY36vq2C9>%4Jeb z-gNrXY%Q$u9T&d>L;z*=$vrJ(ia&lV6TahJ~O3>@1 zt=|$WTbI-~>ssJO`NYZ$Df!y*y4h+mMV12Zv1})=eTniBqIG#p4>wVW{?U8rLhPAY zd%3JJxi&53>w@)zWCQZ@rLf70;*f(_x0&>nLApS?u`-T%?e0)fL3Y!X?g{M2JGL8R zwD~>C{!7;Zu%G0J>`lI|qq>UkqhIUUX)KrT8=A-?6x0T~82C4hC3vil>G=Dp)0Z;< z*RjbnqQ#f^$uTx#kd!l$IZ}(Ln}teu&0OsQ!n5mZPuQNe??}5wWl?Z9T)SnOhGu(I zo8VK;NuB!D65i($Me4p05|>mIe8@0Q??qp!!X44_yzo*52Gd3cd&PUZU+`Qgn-;b? zvZ(t{XIa^nX92i|Qr3z+A|?UpKKdj164Io5nel~PS4CvK+$C_%`wM4!>ScGu-jK@= zC=+9c;$!G7rslr}?X{Sd^9oJW3nqGA`{A8pL_<>n7Q7}CpP7AsNrkADqT5*v*{h|P z56HYvnAo#MW{Fbw-hW#xD7W&o2Wb*xd~{F3xoa{0<-1LEqtZI1pK^X!9&z{{GDU~q zRtRfWdDYBn>Z4VJ#1Lx zUT_OeCRrlQsYhiD87Q%b#S%}@C|X_nv7I&9*f>a5=(jhwd+Tm4OJ3u#vwe;N7CH0d z$gX?k$B!eUqnrkcy3G81cE{@7!Nq0jvy0!&l@S_~pTyYI3wykf2h;mcy7H{OeS;le zlHj&|F%tpqZ|Qu5N7e_e6*%g3sA3ncxxb7JdY6m(gcfhu*4Rq$p3Go39Z|lD+i}Oj zuxc-cCrLQHxWkE!YIYxb1u?1^18yA3r5-)XSc)Cv&!6~#$CRx}-)lDW=lx2V^yXUn z=Y$%ozAWnzbTe9OP>DUHrnUk*uNr@Ce?-zyfB5jBT^aF!&6!SOHOpYu^KlZAaX&w4 z8OMmM6uOXWldl-`>4=?lsWW|wDFi+>+1@=rXqwf9nj<(oq~i`xId^{DPYCnHeW8~^ zJUw&rM@~vYD&=Qhe-s98qG9;ubPI?cydlqU! z-f2WlJXUJG!<<398WzXNZaU#3!_hVZH@sN#5lC@;q^ym%f73C#&|JV|oQ?7JUO8rv zGXl4zWaYk~F0-^0J}53t-m$K#k!rg1%HjkAxA`2#DDQ0Ku4hr8#GOJ%LWkFCt=r}b z6$I7^+i*X1`}|S5nUz_AzL>D3rV*{3C-IN>47d|_nG)Rx%Y#2=X7_68JIAvKgA)B0 z!p0qNJfDYl#_7jm$4;>_#|ElbcK5r2M;jFk?>N7g6bf8E*75dIbiZ<{wzIS}K|!Y~ zEQeQX>_H2tc^%SFVDlVgIO+pFF^i?ybgdAA+8*TCJtwQHq1zWtPz|N}~wd7Jb^L52E-=2_flI^D#dkT{8Nvwnh->`YHJGnPSMx zqXuFvFY;wr${c^kiJKzmi<^vIm9ChsRmNi|>A&o`k@etMHPL&x6qk*GjHPe{B~$iI zEWWSrU9{9Q-{H-@#IP@0It>nfV}1_1Fzt|Q(_j4%6B~Hu&fq*eeOQWqJpAC^x$h=q zsZxxg+b1L6gXt#E0?Rf=NYnHi465wd#4?41Bx3v?%sUT#-8R$eCSM9FmQT|TwCvPN zL`#v^w4p#rBSF0j*N;q3XFIj;@3<8!e{i8~qt?&Q?oMJ8!5zMRVrSZ#xozq=@-C>B ze5f<>RXrWu;rQV3z;QDjqJ5!tT3r9FqOxj!c)5Puwd&5@CzquSlH4?{(@Jm34Rr39 z4=O2LLOii|_wbPGK+(DMWGTCJjFx{f)OCA+&^YaC-hAOy98ojEcp_j#St^a@6OxuP z5_}!S5?lhj|D~d?j4Yl)mOLk4kX!4@afOToMmh=oO_gbkI|s)>#7t=O$ht zFS|NPcU71(+{evo_oS%4a)P?IPA=bcWpApv-$`mR+CJ`0jo_{^jl^wF>F8SJjY5YU z&1=N&vK=tvJ}S54+&>`-WF z1eSqyCJ0(NcGkMf2@vld(W;+!&yGY{*98W4z7yx(tTFZ)|I(cDSkbEWKu{lB&(Ce% zhQCH9=FTEHva$zAe20oEdp{ZjN)d?Do)k~38VI}c za>&-_Zxu6E&&MJH5DpqWsU#ONM5cQ4vupXq0tat8fSaL^_8}F<@SVDZhUwzJLM`K3 zjx4p|b8xndygGC94~ZeYeRM}gtHEiN<#PH~R_?3TVcm-%-B!`sGxfX2+HeawpP2Y~ zOgJz5A3L%g%B7~8CnpP**yZ_48SDM0ZrI3F3VenST)j*JM@>gZ=VbV&NFmE3Ritr@ zp&HcyLoTXBeS4oqY_JERYE=djAIjp18M`CMP*lr6;46gdU^vTuMoCVx{>?e$LA&W%4z@xK|5_wWuGz=;FH!=cOq=rdT{1P)VZJq|S zL~Zb!jfS)2vqYA-b)*;Aha0_U*6})8L;Df*8RQ-7re3q8hz_P*dB*|>Ha4s0I{Nw$ zVs4fO)#eIh6p@aGRooN)ZV*LBz)UUJj514=K~63?q_mi6(6E7{A}fxRKB|Ku*w{#X zt1t1Wf)iCeL|BREX+LAWefwHjYfWO9ncYMO>rDt1w9v)J$R4d(VOsTl7bsfKHyVhx zD2xW+yj#a~${8iovit1Jn&XbSq^uQ>4M@To4mxyvRL(dr@_e6ByB=F9c{9n*w}WvU zcYGj||4oC`!4;M>mEu`35WOQKO9a(a8(GWS1=mF{9!`^1BGy z%8JQ=z)n@pIZ6`Vqb%l`CdJ2!tXJ|m2UC1p?AK_RkqaL(8$GLr45h~l5ofurXcsbM zX>8?Mc$Z*?NN#(TpYKpn6`+-GaIuh+GZ-oMY}#Ci14Jx)l72VbT3cHYrBCk1bSI1E znH3rzPgA&Tb5`y|*xlp^9!*Sa5eir730uRBj#6_@+J#o2x@E13zVw0GIEGl+gS0rf zkB?7`)o$s2hXZc^iHyLSb>!YePi|jmdfBS9+#E7DY?P?O6k{!&fr+~Ir(YmF;Az5b z+Uu8jy2Dpjw1Y&`H{4w0JTwA7?kqMenDbBc;AF*tmT)TLeiUM?k4E&1UxCME9G@>o z9OW+ONCXVC;6Gn0Ye}pQ%lKf-`EhpZ()5&F&=Lv>{F#?92BSYHX9m{D*q%h1Hox*Y zm7pr@;PHjX3BVS-D*-db{X>zq#+~~#1xA{>2ogb}o8gB(wIA0DnH*FBVPw_DgdZt^ zzrptueM`%r;%;K(v}pz|AhoM-YF1O9sxvGCz5hiM7wz=MT+fE1W;-8UaywcY-a0yb zFfiIwi)a|53}e@hsA;xV=z2Zuuc+BcxtAb#vOlXkMES#oB}8u0UqmaFe>PR@_U*kj z9SUuOdXJrso5Tod+OR|Q;#<=E1O4knarcY0c>2Su6%XEH)KwwL_P8(jEP9j z`>*|BYY^a@zP5MZvKbe}Q79Un7KQVLc%4=NTiaw+Mb=&0n;Z}An{hw4i!JSl+l>ed z3!7oz-3@VgS%Z?xAws=6QAQW|%Lx$Dj)v(rGsN?Q8uhLxY`v_x8}BfAs3qWtk4s(W zA9apb8**8G;#G#Mm2zyTzvUVE@v~5Xr-pH$CdWxwI}257ldQ@IrsCU}>os`Om918E z(T45UXXMESbnF|tbRPV~XW!a>^gF)_a&KZ+1xm3My6b|E-eRGy$nhM`d0@z^<5Fn+ zDZf@!t5bKdSY6wuAnjc#+byNtXTSP zoZ8SV-*DSkql~LwfZ;}6Mzw5QikoX&}7}kDGXIBf3`n3ujF|TiDqD(+N zjE5F|d<{Dr-B+UKnEd7#RzuhKz`ny>==Ia_wyeuCZ5h{mG?O_q8UZ zVsr??cCQ0YGRc!AK$WBq&+{|6glVh^n#Ml1H-piXJ+an8k;J`oD~r-Fq{Zw@^*HLWfBuN z0p!jNs+GSP9|NDe)DHaC7E4z)={)cIBzvLV)s1k}UUQ`WLYR!#e!?c432_?Lo^$va z8QQBJhFU&&MEMtZ;}MY5r)dvbKYXJ}in|~4C&>3z?{HBGBu7CKead=k!Sva4ot>_< zYk`kFuBQ-lhHpEqR=N*4Gk<&657d^JF;_c6V2r6h_SRbyri@Ln7B*Or&a&f0dD8CDae$mt*QePZq4JtYz1We_ z9di&~^1iHj{IVvY_Uc1sxJU*Jt3Fo~~lpxIi+o^JhAFI}N;a@RU4C8-p9mW3~1 zp91A`1E3DqV5JH$Ugk!7loJp%QNj(^2m1r)DY%#Hz#l#83+~Hmmr{Dc`!X;VYR}QE z-&p?bX%y*lBIUu$no~p5-<2MWjXwTxcFH^6S%xF@8+vMLEEE*)ewNi z=qty3?Tnb2&+%Cy)$NsjueqIWYI9tDkAmk~kwM9whR4PXvE<~)bXd?{f|dl5&M@yLL_!tdXRAiV5J@+{n};hv#7y*JzhLx>RAF=|Bvimbs{5SB<$G)ep zC`_>^y3J!E?vESP-~3c01&a<=8oNama@8r`C`;lzkLs$t!!p0NWw~b;5qjQ{G8`?! zN%7A9M=I*-5@%nCHb?D>f%rCqko!R{6G76nNG;uWB7?oTK$b@K;jb17Lo08p(8^g2 zP|%od`kZKUumsl>N{0@((Giq2UwAB!zO@o&L8XAVu>`c>9EY7&uFINY9_K!PT>^c( zwbai9{#uD|fT9ekc%UfIIu5?(&aSg%>0UH;9F#!POYAfeV>*?xTRMq!V; zJmGY`L4Se25LZ$trDY(%Jnzp({`1a_9N#XeM_5pud)g+OLv;7Wc{-dc0W<79Td^B8 zj^4Oun*>3jjHHacn0^TuZRUjYP}7S`eO~8i`N#dJ%?9L%%vL5&OD`aNnr*QypItJ9 z#|93Y8L~EhONhBFT_HqYW$DQ`OfHFb@{@tGM;rwp9~;xNRGVU4%5&4WkvGvZ`%7{5 z5Qc72i|AEuf$-P`n6m`w@^gh^9+2UOOB^hY<~(kJJ)!L%>~A@_de!C2pIpd`sEBUn ziDf-~=^pF@8ay`0kkD8*gRx@5YLalkq9hmw&tm+lRMu)xRcb1)S914AAvW$uvP>H+jl zh2IQ%kfHU3uqO7(!pJ#Fvw9P*m7Mcfy`lBWnnB09+FOZ)taw)T;E^E-T4H1UxaC9G z8|8YFA{wWvTaT=|l_sz9ERlB?L<|t0vIN$gObz?v+jEW{+Qg)4Mwh259E<3UVG!0-=og;6KO&UCU(l8*c~SV83%L6NO<+D(b(5*lDT57oSL!jR#s9)GJ+JS$L^H&pbG=+p@MkOk1E7PuxVRh_pTBeiA0-K_X23juT1ej6aav!Wi-Muy zWaIx0?9RigA$s5aL*WLTa8Y5d%d;~Ph@^DpzeP!a*zAeUl3G0K+*=tCj-%HAlR{BZ z(T?GH>h<@AIYc5_(I1MQvn1-?*hn&@(JYTe2)fCWE%x7gohf4ojH`=9EZ|uLWUeph&4_@tS-f&{`F5?mUU7|UTlB43R{%*qfBn-#Io$t&VH{v8 zOECR+#x_R#StnoEy}?++qmKPKZa*jKh?L1d5uq^+iUF%X-OrKc2lS*?%?;|$0A%0A z{>|c@9PDW`xOqwEZ5R(ZL_VZ+3q(mi#%nB{7hpVm;-0J5=YNAyegI8;Sq+0-{Hq^) z{fdl&f>?j&2J}lx;sv7D2E7UiM6kcKmpb1y59WgtpXNTyA%Z;#%>@*H7bQlZn>o9O zhJ{_aV)v)pIoOp#(>I^u0B-|NEJPxx#Jl8Z_{9JQGs{L+a+z?!o*sX!^?*+N*&+pU zhQl}Dd?t>2Qbw!O4F)HyeYMI>faI!R{4d8;{2K2Z{p+gc|^-aK_;m zB2xTk3czZd3U>W$*c|s7CkNcSs`lq$cO>iWw8zka0h3i=t5wM9qOXntzRS&&tgMDj z(S>Bvg;X~cQySP`Lqm;#sC4bw`G6U2zkB=>BSn zMZnDT^z{CtfB@5^T#DtxcJ1Ci*yleCecPBG7|ve*8$;Y?Fdi>qsz7e|E!n`Hylg1* zEL0mJV+8%q$ovnefjzPR!-MyYomN3G#624@)8l{Gw|NQq;}SINJ}#sprA|*b&KjH~ zwxy4QbOL4~LLBY^g}}U48|rsm{Pv-0hx@F=$^Xlr%q_j_#Y#XHvxk6R^Ty;^6Y(Ji z@JJrb6c;y$p|8SKbJ#&B0$oXQzIwGU4K;bPah8&L5hnjWCx=C7%*V<%kyYiNdq+cT z0~u}@Dyx<*h*mo>15gQqFUiTtTSrPQnJUh~T-Q$9RHtLLjh1MLJa{2R5CKGYSMJa) zi>;OQP4D!nDE@5DDRJO+h%9|lC&$hf=+09#z@kzB)BPtYoQtrpGH~8`Sws1i8<2`r9mMG$Vn8G*>!7Usvrl8S4ap%M<;i^zbOBPs-Rt+K!*FOXr^)?rLW4FawD`j#^Vc;| zk^h;IhCTF!jB$o>a6Y7>tJ<|sAw5BmE>B0-)HEQ|yr)B4ChG}z*Dt|bB~Jmb%dV4u zhLeH5Iw^S7I~7xlbEM0MULpU+n+U_k0C@82xc3?w;J*&@;D7x9NFe?nisWrK@ZP=Z zFyP1&dOsA!pUoMAPoH5B!F)?qRSpX;U`NID06OLyGdr82us16Z`|0}ndW!+@ho)Cx zFkPX{2Zm0_BRuI0#2oJH>wCiucCQ!kurGZi$(YvDfl;Qelgu*GEkm&Uh8eI%(jM*~ zvlFHR3AK}%*|4YQahpjd;kBGrs#eo(1$?xWjbQIy zD6t-A^83@6)YQ}}tL=Gjz&=d64QVvy+e-aLfRpL5bgF-Eh&+t)3)Grg&$UOLtkJv) zi69xa5AnV`O(2n`*I>ck9%rY+Wj=1cqpw2MH4f85&NgS?hVa7P?DU)+_u!)RFk*Dk ze?J}cM}Jo6liJbI=^AeTTVi|b%AMywYYc$#YCw3!4Jc~1-nRII?3~K2-+cqVpKPdx z8v~;BbMYI$!>%121`t{Ssclq(TS-(CNYuSkmpwVc(uZ+RxU1LIfX2|nvhuQ1ec6iY z*K521BZ5ljB!~w?c-7%@%lm+?eO#163kGwl2CpmPzNlu}UEO51;1JZ?BQIT9Y@8EMgUP%B`YNg1B^?jIN+2hknbn%~~XjZm+K?G%?oo9xz~aSR?m5!XNiyITlgrQAXo zH)gv>lH$x*Tl;VwWMb9Ng`14Kt`vrt6+k@kT9eK)$)2M&A#1QFc}Gp%DVttilPL-L zg}FHL*js=UsFl-hNPY;0T|r8i$wOyeE`%wG0w23E{mS@+EfvtscmqE6KCgTmWta0Q zq#SH)p)}fsKid@IaPCPSey`9;Zl=N^q?$dR!-Zs8#OJ?Sa!0F5q}Ro_VkhQ}S`D+mt^ZDh}ZE^glaVs+~T4{d$LNR;};1 zr^kP~laSy_%;00CHtMG9AK$8kzDhgPIM%hWfJC1TD7ZLJ*Vk)j-ld&M@NOJ`-@ma; zEw8Puy}Ex&aEpEo`>apaNSXVrXf`-FLC8U`ZlPa&rmRmT43biSFigpI{Oqt8U75iM zDaItZi@C!4onBv_glA$ZFqlHk``*bXyLn%}eDUt_n;_i~-RTgd!u)g8d>Mw&OEC-%FggXmzzRobZ0FzNKP85MCe`wX~weMF{ zR<8VY4hCNY|G==QB1704#d_Om2qM0rY6O07CRW>6S@rzq7~VAkQhH(&UsnL({l9_H{}Lh)+`kkK z8hZayA4m%SQih*W_?I&LOBwzv`I-MD4bxQZHe0|3%4 z{+SI@=&oQ0Tl_l0Q=a{uGW+%UKU!oe*MnA&>gooZG>|+{T34#=*qOLWs-R(JDku1%CB1HFVWgg@>|_VX!~iV6gLxe}Etk z)=ei4kRI%u+hh0xSW!3a68P}D)qUmrFc>vO+p{^SYcC8uudk*WAV-ACr zURIF3uiZD{&djICT=QPs~%0p`hLp@R|tPyN_9%K}3>8<6hh^5=X z=_swWhX^v-_!Te{KJ-Ih{MZprC-`YJQ1jSE9ggupF<75qV8v%~Gr_^uxOBNIjf4q-zn}YrUE7Z7orz44e7;s;FD2~#pmLHB=fw$cGio>sP!Q-) zyMX8XM`~|;9`XJCEevL!8V!Q{zmIp>fOqrng_0`xwGFpnDz$6C+TE<1!WFhkX`O zGHm*?$Wac~T15s_3;{ccy0gq}L1k9WeCRO2cV(yFA8Rf%+CHICI=^V5yEG*FGZP5t=HjnEF6MmcPwHuh{7l@{3 zBBhI*4ZtK_21sh*a@DgJdovYjoj;!geDZ$wQFgbarKK-kp?rfO-&yKoJ|t|UVa&gR zq^s%o2;nT3mZ39Zs=$qUo4+mbXDt<>J0EA<0$s{rRw4k0c{AGqa@mivqoJwh7;rLhm0< zm&~SHLYAuZK%t$>DjJJ*-EccjcU(L1hgZhbPh zsUIp>PJMaB>$|f^DQK(FnJOtxH}rMXZVEar10}|mC}0y!|Cl+({EvV9yU>G^0IRf4 zol;BXI*?w)WxyjB0k?KIow(-gK(alfW{?*>AKDNB&R|AhMyte3pd4tQ@ON~YyZ3z(A^_>3iD~2p)WwL+aOIyI^A@M zAv~5{J1gjy8}281#Mhq-)D`po{tIX;H(tQi;a=DD=+UETpf+J=`;lkCf0Ev{SL3w+ z3hQz(7mwve9(3%_zE$nrlur_IF-`Uu)a7-Z{R-rvf=wF#@`?zQ9yo>1pv1Y>>j@J& z4gNm94-0kmsYOqA`ewE|xFbc~=0676^MZoSsI)W&h;n>}(0CS5m=;8sL`om-t{cPLx!h? zFQTt_SPmBG;<8oKytmqz`*3%UKx3yDq|bbgcZ-pQ6)fsnS~metq)WHxLJLsfRFs{Z zf`Yeav#pozI;7YtR>Tn!|x>0U+d2*A%Su2rZP zi~1%03Q8ubNK!8b~`IW-1FTj zNhrH<#z=`9kUi+_?RD44p6^Lx7&35EPKkezr>>zvRtY9w4Lk-k(Ey;i*Xb%Hi=b7A z5G#C+V^vl2iFV6|h^(qA5qT6XRlw2SILFYL9vHy9{`)^Dd7j+kFsu=v`-Q*kNq}zD zQ1M%~kZT)|06snyc)8=j)|^Y9vT$qXJN`aIOl)i`#Nm1V(zSx!LeD{~{U1}%kYfuI zFL&6QZNt@iZFo<;qUgol+-_$tZn20rtk6|tw9{6q2Gh>McDKw6y(R;MiyBW4bv`}0 zFE)DnG7*v4xA*ssYI>l>3w8nku@#(hC z(a8qrPF$7C%+3#LKf<`z%yNG51joXy2BWUbEa?po8(H*!#j#EDi;D4QZUk{};DM_ddg_7S=iHw{)Ge~0zxCX!;TFV95VML)f z=*SG@*(pt3{bNupm*GcP-`qGm-GJN^8}jDn?lMP5Ja;6kdR7aNFr?@!7gJsY2R9Q- zORR%i4Fi}2Zu1UE-@tRkVj!-xft8z^yT)^kIy)`U7xE3bJk9*CZEXs~VZqRd`04it zw2dQxflZJK@b!IIT~}8}DPXMzkr{8E9&KdLxPs*m!6c0GE%bh?Q79n=FyhDjx4URG z-q?VkCfR5H9j@Mwuxmt`nVHFJ)t&6UH)1sddI;sSJ)ap=pboqeqcfg4TED32K? z92l7I7s<_008)4#E@jUgETlztaMf~%d9Bw?q=D_CRa8{U>__-eV#_&IyMy{2mBqFI zS@>GVUcP*J8o=3{(pXvB8eiN`Z$7AN)vCx{Pu3hn9Em(5AR_^XXmMp-R8kU6?Rt%! zfpgP^pPpFC-+L9bZpnnixcH8M_mA%YkrDSIQrI~;Ig#uAvfv3bpe7PB>5KrM7_SLJ zw*U?}9BLahiwYS==%pnKfTNABI$EzaTkg+Y`r~ieJ}E^+f6#(ZmJ1k<+M||Pz+Z2E zK2O{Ny1jAY#sfA0O7{D?qm-S+))~e@wRDk{az?Q zCOp1-t5gxxf{(B(14V|llwfEW0PiX|>S=j;e6R_IyZluOyF4_A#aoqy$2DdiKLj-m z)8JW=ejD||(1V68lOm9#PK_sfEN-=lq z*jG9Ijgu0x3A$F>$Y)Nh_?2e9mZmS4{WWl3Pl=sx zGB$N8(CC&pn0*VGTnr4DAU-#HSrc`;(fn~IPeW>a0%*OGf*9aHf;@c zC-Yk?*B%QXjH7|bvookWy1F71xvK8~7oG&p-5oNH1OVparab822+%?fOax6l_~9j~ zN-z{0xpeYk?H`NY9jI`?S53X9G5z}H7GzM}4S-8kfXa+`?FI|n%M<`aK=ykN#E`0p z+&bOIN@Gld=qm2ND$Emb7!}~E-|5|lj0$yO*5e^5fHEMB9r9Vr?gph#RlpdT#v6Jn zz-jEEeg)^9p&;`@r?~~JKX!j}=2sF0_M|kY-m7bhMg=UN*auL7t}9Vc5nL8T=NZgi zRCQa-b2S0Qb^!4a11KilCj!2p^cwfjUaek8U9x^LH$RWjwMrp}K&@Dwd3y|NdCgoe zXai}a)S)$XaUW}T@{O}y<1_NL(Q-w2xoMI^MM$5DIHzOvTpV?*tYuFs9jNe=jfsoP z%7}nK4kfRtY=oA*D1dGd>MRfBa&>i`260Cu7+3l73-61-xtNSdDQbSp&WG?=19zO< zW{2@w)r!eO25I+yn6a7|I zN;Ggc-&k&Yz6;pv_O`YVXim5YG}FUTJce4**Ig-9LNr2HM^{%@0uX&eA)32J+f)z( z{fmoNLxmhhKW6Afy?sjxr}NN==(%qQ98ZpG7}{wW0C5QWK!6=3G-BkpMy_of;8DKt z9XR$-U}ZCT|9+)=DeBQ522;RXd%51jkm9gEm{Yw?A^*FSqX+p45S-L&RSX|wfuW3% zI$C{;iB(Dw6ATRv?e%_94+S)bE5+F^Oux*H{o9J_(d%|$eA&sak3esN_uK>))PBpB zj|i+N0<8k)a_W@@8=r2)qXF8@%Fv4i?U(f335HPfL%4_ITzf1qDaLC;ioj4gL7=R> z=DE^xf*C5ral9tecXz4$Rl) zpuSV43lr3D{u_RiiZflNz@iu9;&cEGEy4*YXtHu}gi{!K--=)#0cJ2A7~|OM06(bX2`$#kSggX4{C6Lcnc*j3F;!Ug*uajxq&+c z(KU!=xFBZ(9;XcVNVn*SbD52TXSrMe(EMktSKU5<&qQa=Ai=2{47>qnPDThImW z>tmu3LrdVx-0hMFD}#j@;5Ie}ZCUo5r65m0DIMrft?jylgAe7re;f}`RJ;f%g6pe_ z_L}fvhC&LA;MN}ANn4+Cc^GZxzBVctAsm(hyw8iu3wWKk%&Mr7Qmbs23t(jSTjE`9 z3lonCSt=>iASC{kEP$z50dpbCnV^{G=4x@%)lPRFiSblAvq_Dy7gA+LE{99j$D|a zpI1T2iA|kuzdKEla=GvBGNrJi0eC|ovB87wzXlotj%?E?z|I(tAi=u>M$Ngn`Fjj4xff%r8L!NktO6o%E zZSZ|2qWmU@j+%oB%k61UN935|SgM&~=sA+vT^!aLMuDAed)rs_92m0}kU>hococ!2 zgz%|A(UYd<7tr3D)BmA8p`a6G|JDfsrwNG&wh@QQaa)b75e?wlt_#vvLsrxD9X~F zD9KWWL6)lw5-K4rS{1EY7+}A+->>C-o#*-X+km1bSS4+1o;q@0v5nzHJ?&04Hn@`d=>QVcA}<3CGfV&Z zNrZlgW@Ve*r#DZFVt;;u;@>VgGg7%|tuHrtwZG-Re>S7SjAst#?_EiAG#@pJg^=dt ziP4593-TqV2^*G7GEezgtXzs>DXBGY;uRl-Sz-DpG$tL!nuNOe=`O{^t${PK*;r2T zOiAIPowOQ7nS0_!KNS}FwqHkMD>u*3i~9BcGq;kp_SYM}AGQhqZHoKba<$kOW|eKl zgDq!{Eecy6fQo0n$oMLXo(YpCEt4w6m?lP+ZIhLaM`3zd{}pw@2j@2dH{D>4(5#OD|G>F@D7(D*fU*l3*Eu-DW-AiyjnL3g?CTzkLMr;Tnz zu8>N^AudvhZQxAQT8GhF{Ix~bX`R||K`~(3<`p8t0$>yf{!67Qb~p`Ugwyb*aVCJu z00D$H8QInrg#PR9{_>+yPSvNpz0od8Q1k~#&N3REQFpe$LLy%l@0{7^%X95@Sov?m zvip}s z)Ezs~|A{qH|1Qz=zXN6>&Z-uB8F+`SLFlW6sTRJSXvca>(jV!p3`6JUiz0B6X+XLLe|sKx6|Lp=TpTM_ z_CVea!CX_EEOh53SzUe-KX!rBl`^7>5En{q!-H^eu$dg2tnQ$Rwaz&rXKNm{y>d^B zTI2>G?n&lfIdQG$_`9(I*Sgj{nJ891i^63$AW3W!qJ>k?*dk&g94-lIwnG*1CCuF= z#*GbXoBov5vJj(--QJYOm&K$YJ;^bAivGg9{J7`Q$HeHLeTi&w6qWk~e05|%W3wM> z5e0;pY94bg`utRUoPdMk?)fAKlf+6d$JS)8_T*9oapZJ4Wut6F9RIIg)TvY1QE{1RIr%y0 zExunJwrq*iv;;@J6z~~N28u7^_77i!M5$;3!b}Moe~p*N=VN8bV@7KcBnc=&jIzRm zV?X?^qc~J}#ddpGU4DI6|ELQ!jm^!6vpvN}qcAVQ5^}hK&qAok0o3-7o+&B>o5>v6 zw(8Dk-(^x=6cocA&i-(Ju-Uw^qxfM(v6l+)Wmx@*N)}@{T;)C5XE6#^bUVcPFJW^i z6kP$XI?@7Qp<3*;K8icmu>`=@JR+yeLrLX<&)4TmQqrCJNQPw!`!R_hnzbMGSFSuR z3CKaYDDu_r+JR!A+$A?>#jJ)?lIbT=5ivF_!le=zT zqDt@$`MWkkf?D$jj*&#h+$%$7Zhg7QWL_wq*J5{5j>vJkVSrs)-by5c{v+nhMkomW z$1{rfj4Z>!dFD6=E!Mt$`%(}#FI~O*vqI5fa2JN4sS+Fg{`s-5=OCe+-m#xiz_S$^ z#3oHG^ubd$-9MvQxt&0y3rF7zCSj1dgD}ROH004%Qe{I$P z@rnLw-*X&Rk+CbhNmHz-rP+Ic$e`wcH$GVqnxR4$1A}ojp9f%%Ktsi4!wtoCc+GE6 z65D=h;W7D{0^r%zz`g?8hv>~D%gosdj)NIIKE8fDT3lj_f4P*bbuaqt*0h`{h)6qm z+my8b@1Rbh-;bY+|5hU7d_6EUi9F(utjMU?Bdl?y55@r?N^`3p%nhSy8m^=0 zF$Rx4h#?x_H=-jaAUau|omQAG)qZVu)?HhL9C4Yw0-})4(ZMPOk2NWMaRGXbSxCAp z9&1VNFh~3h!SkYskw40^tq>k(=FFM3HX#l+>untMHvtk9_PY8S@PmlwFd5~Pr*12R z`B+oV^s;ZRBr!{Lqf(zVK^VcXRN? zF+B&|@6l)Y_gL+<;(oHhyWcM%YEA$JgR1xA{5En@NeChkI)o-bkcKyMRxQY8mrnKK zB@~jiHYX7b#t{=2$sgpL2;s`N-{kb4v63_DX7gR3QqD+u_eVeL7dL;^H!wJ*_yc=! z4nq{T>PnL<2(@V^MtZc7nxnvw?F=hLkQjuTy*N2^v9GD<_n}{_WB>(Ykkfi$H z00j|hPhIP&7cfA;m-Lg!aq8N8prUzw)Pd-wd)jw`U|@Z7Zx2)`!E^Rp0{Cv5z63>+ zb?MdhE{z#2VIcz&fOhDxQ6wmU%D)v*X4U?Ib2z;uO<~5)>Bmu2OOWoY1q>iD5>bZ- z0Yg!YDT;y7;iYI@LQlpXgtFD$81Tm16-9EkZEw&`H_S2wha|j%&66 zXUezUQ<<{i&T$m63I#4f&+sn+hfQ{_TyAQzc|OAp;@J7uh>#rBx4D%8K}*3$N-@(b zcc=+bLLX+v6qc{u-QoJRvAX*7Nu0aeui|2Ce*tbkZRT_s+=_6iCcj=y;IlV75YNe0}jym{hX_ z{XU`jj_S!?hw;sdpMCiH6&w^!Z5TP9yC6JhyQzRW;yE={j;J}6YcPV+&Y+4hAmgbn z0{?i9l~B7ZGY77n*yYxMkSe?dt(Nj10SYb7Z3c3%;tj@jO(=G<@BBVmy0_`P*y+|rY9wt!|Q#?O9KrpsC$L*i*UII)Ar2X5K7^()zKW!y`&Z+@YFrm=tR zg+%X?`VRtM#CY-v?wYOKc;dJ3}w+rQli3HlhbdM?B6`!}u%Lhxg3mr{IT<=wH9 zT3=0P$jHUd$s?&AA-I5FXz^z$<_H)kypaW!q$#Lz_jp1yr66NiJ=AJBhUQc~rQrJk zm8|=}a$B-)AFSNv{I$xz>PPaXX!t*vAE&fCzqX<>{}b}$|94c;|KFKd|9RB^O$6Zo zLTT$Q6Jd-_U-mX8h+k3P(ma#@J;dX!IMR6qTh;=hlWX~I#CcTv&3ORYegq1#^lP%1 z8kY0vS+1e6#aW4Aq|1^pC{I;iKcDp%0F5D;J?gBEKhN(fNYPC)`%A6%-##~geHYAM zs`gc66sDBlMQy+QoZ6DFUqnWxbOI+W>RnweYChiHIM%r%-lmQhM;ZJZ(fF@YDen{t zn1Dn5!A%xVxLfMiSz!Sh5XM#{vVcA{AY{(XN&!3i~YCr^M3>h z{|Oxb2^{|k9RHKR@n4!7)qm)9=4ZTnS`(amthUg)HesXwnl(d|jbo2t61z~W>M0{r z7Zd1B8slejS(+O1gF--js=X+b^lEcgV^-v(ICYE|H`ikX+H`2w+a*$^iFc2ifF0!H zZ{az!qO(TZ8beS(^n3f;KaVsVjv;N+?GYU#1?rM8UbPu%cWsRIjj>Z}j&`?arPQ}% z`S!@_a!dczR^J!XU$cuj5MLYxt+m8_m*X)ASU6(e`DKV|HgxRJsn&m9TIka4E&I6p zoc$%Bmv$+Oe~^(GYGi6Eic5d5YuI!R!jbs} z9GC#TSt>}NJ6-|7>d@{sIV<9Wu2c3~ZFGB9Hjqb`d5sme=1!%LE(&atgPO)zux__p zg((;>6LIs~-QqpE>O|%qj`Bf=9W}}dPp@xaK71@#P<2I7A+8V3ef%E6RZV})!#q+` zEPd&@bVvH!YpvPd&*qsG12VWxYMd;gOAEj_R*`kf4H_V zJh$WXhr-*%wb9ca9$T$9bF8>WX}~3s52Hcp#dtl#IydFAb7d(gALPLfRRdFH2&T zwx~Hj%->=w_#an6vDi`VXIwC3Z~tK*-duBOY4jQaj*YM|x7skJt5R1l|DGdn&2KX2 z;kRyHxPCp&Xl>0^fq=%Qz0cFQneZ9EHKTC^d|=_m2J+JVZ4Vbh_9em{f1J?mYP>O7 z(W~lk#Gh}a*r)^Yh|M3Ix4$ZbdbOJ+Tl4I87}NVsKo0H=7^bOanrP=ISy?a1e6M>9 zqXOuP-$H$Z^*aR+!XZboQ#wK#_fR`nQtb)vBNsxuQ)Gs|ud|QK={b54hBDJZkisvK zdk~b2h1YPsx!0l&=_r__cd;{GC?-JO3+slmy2Op52>?al(PDWxM%IfP@@g$uI39Uu6; zd`wOAcQON>T}QBbhw+_F_03$M`M_7B~Q@Z_2=&9vF+axA%`e+H=HtDkceIFoZcS zk=bz5GT3X*U{%vo61m~e6Ya|}uO)}#%dwi-1OeHrTl=js*IK3{C*bV|`pJh)aVWx? zt{fa!6IP7na7_JKMkewJNF}cyfy3Z$cKy7U{Wp((R>9zRk@kmWBI9=_6}75r{4MIv z13h|l!S(f{pPW)ZzY>Tb`l&@=gth*tclqnD%`}Z4CC+Pj0{&GGnYq0binkSBh)B^8 z%hZ%Sl-HZJiHGg&9g6fKOa)zfK_0YxbgA9M zyN@nJ$Bp5z0wVprea|^3uNC>3rEc9Q>hWmr9swV(NXP!(`S3hrESYU{_iw`tHP`9J z+jElYahV@hh;A7z#o5d0dV$S<1QT^NrQ`=QEEIcexVx({D|k^ghZcOZM6A`;XoG!U z5K*o(V$UEFjI2wQQu`6Zp9^x#wDICRg-4-FNpBE7%B}R`p+y)|aBm;74)$!b72P&k zA^?bc?@u&;IAbTNfmlo#H5(93_7J=m-;0?rY1!yf`Kv4q+3IMTykaz$ z!FkWvv%esWe&K12JPH*4{G#e&cPS>|7cQDs+6R$8DC>a3#hul`GUmE;Yg{_FD84?9OtM?hIh?IEWVdg%n1DS=#p#s1ejFmrLVY8poRhx=Y4W5Z z!pHQmF+JyIB!bc?sJG}t7EGW z@vc};&iJ^>V}Iw z$x^J|j!&V@9j`Ypm}WJ7r(WSa z9yBvDn2MJ!>AiQS^IvKnXcIIMlJ@S5!pAtJ)rRpsXpVqZwD!=GRBCbcyxIzNEtl5h z2Z4(7cJaVN59;ns&N@a#Ym?@Kpjqme-=31FZTbB9v!ADWs4s@<8WjjNALpyzEKTlO${MPEckMomuQqc`=Fg*e}xo@hs>@M^8=E6K2w+r)jVEAgc`y_{nb^9?Y zw!uJI)YEVcA`S~n@kN1Y1~T;}kRuiJbE(XDziJuyh*AtGk6}7WK>&5wTEk`Pc=$xW zk#+&|%(KY7GArYt6bRK%C0ROh8=2N|nQclat;x988(oT@w3FjBS?X2>KJ6uPMeiF` zfyU~CtQ0oI?G3ynl_uwql&jEl?*0pSU;8QS1+5sSA;?q7qes?*9DH<-zol1)!#k&a6068?N1H`?97c7Yxb4&m5!;1G*~hrb4xV z5y@Vq&&Fe9nhQwh5#qTHXk=74qLn)1Q`Lm|C2+B;eH(Yz%%Zw6 z1*8^ILcp|n^dd92Edo>-a`&)vT|fgA7+5qAIIyh}WKNC7^bb|=v2>|`m!WA1_#bXg z6U{4`y3wVblw8fZZdarv%+!$qt?_3R_zao7V+-F4bUh~(^NsAFP8VdRQ)K2cQ$+Zq z85>dA-PKa4F=`ZD0%$5JDwze!F4c7sSSZMYg0(-Tkn-@Xi=ZSa4VoXhi|WkILDl&DA4x6@^?iBF1kGaKsYwT5q$gB$zo)qJG=^^coKQ+6{oWO6LV)q2qvFZw) z=0BkHuY%&ydqj6@t_uhW5-8F_E?*v_6)gy}!3UxZ0l9J&JEQ|b#dgtJEz~4YXG-%* z#Z@thHJvaVIBb!zGY9O}21hsuJp1jeQ5ofE{PGgU*5AyS=8{wZ=fWhmrAfM|By$L<02W<$vX zf#3e-TAQdD=t`))JqDVhf@1=bNDA^M>1R#&?xBc6d&Qs7J~@B-#dFV2g#lN80_WbM zI^&PSKaQ8MrG;P74~UF)iD*+Nk$=k;_#ebsv+V4{KT3}%$CgftdPd%)3nFzc3IC6c zY*B-e6j<_l(PGf8-+(hhN)?ZeP&)r)n1>9Ciz5VI0c4kmRiL{Fat}OUw8L9RH*HWg z)sA?3uXTSuoiaDcFh}$@I7gO%A2NqPU60EPG)7a4i-ff8vlQCQqmUCxaI}W`YJFOB zKXB%?d8c-epavZvsU*2bcEd=qq$yrq9q()G9-h}yHZP>0_!89HLTo_FOV2U3p9!^?6+VBl6uk4p zptnWddY)_ozlTAC24#~o0~Nl7D|lvqG~P|D=?2x!XZ`Ji3lWy~w=33%pzJ*}%iW1b zg%3hn%Owyk%zI;wgE@{O>N z*Vt|Jogn+&r`Vpx8pvXXW~Fzbfuqp~sZ=OG^r%LXwX8I!P=eCqCOREJ^tn1js}=|5 zWlAkNQf%rk6keWXk+Ta=Q&(quxQkc?x;NY5@#9uu%}voU#+ekv)jwJF%)TMy*xpRW#N#$z3cp8u#B#h ztJAw;%Y0Yt0kwmgEIe8tID7sGTJjPdmz!v0-~D-8y?##-O3cxU;A^Q>ye`SUf|7^g zb}$|z%S!In7of8y>ro1h^f6c=q)Osi)E5}mTu2Kh1(3EWO~~qV7?ylWu7H9hn2~_i zF0}!RTeD(h{SE(BX4*oN4P9;(Sm;Z1Q5sR}JA{vGlVsHhxWJD*7v+aM z|I*IIy{Li4p`Jy};MH63$4W3U-iV?pYHRg5NEwXUHC^}cSL1M6Qbb7)khm7N_ibd1 zb4#|8=ne(^Ms5JD4cC+bq0uUb-3GYA&n~DN)jSB0FR}F616Ff*g>#U(f3LHXOiNDR zXF&n00l~lpRye`x5gk|2QBWIRh1lwiUlT4hT@BzC1Xmwub6Ew%U){L9D>$*H>(uHMJonB| z+_FBU2mh-{&=!SnWa@w_%hY8&cdyj)(e7$x4nm17fePfbB!B=M3%q(2+rKE8Ji@Ct zJ|0hZ0^vC0pp6Kz&h@EH*@v2V>YR>uw;_nZ8&R2D{p4kQW|1v{g;{T|&KF9cG$)%U zPbeK|g=YMOq?+|x>+?oWc~a&zBMT^|6}v1f%hg!&TNiB zncOxY`CP}J^Bqk9$gm_PHcyEnArO~DHmRsK1Rp1)Im3p!!0Cp7!Qtp*MZ3Vla+raF2E%=Z9MQS!tlkY^|Lu3+Y z{NRl`o;=@&X^>6??7dvC-#x9mR@Ae1e{Zbhj8}&7Wv25VA;@dgMF?pF1fwkH(+!W* zpP*!;i;K^kJ#E=oz!N^|W!Op~^hL6HbYV@JtF7j%`g%`CllY|kPSyncp1+UQDSozU zu#6#Cg%>L95$I5?h2;H`!+S?aloXYua-Ys0sC7zGP0xVa2L~L5nTO|o|3mpu%F~bq z;EI>kSsVkxbhX#;}c*L;ZeeyDJ86-11 z!JnH(p=ewMiOWOJPuEO$Nv9;zO$f$5<*21u>bjbT!vZIYy$lVH3^TjRzvp71K*^=1 z`SD;wD1UecNzqm?+yZBa+yUz4S1YumpPHg9Q6}?WfS4aI61d+2Q{OKADlGW5XP?+@8z;)tO%@v0=FS6me*5-En!MSXhXXw4Y8^qd6CUCn*Ydj} z9*d4=Fk@ifF=fk(n1y*wAs(cq5XV%EOmc8XV~V!ib+dQip!(VYTk6zhu$AE9M+VB-a4fKI zh^DBFz&6^~pkXjo~(#uQ{Oj*;^maEX-wepUJ=GcSj?5Qt-0n9MHh;0ydEphZk zKvN3mCrA9>DqEM3e{qy z_-O%i%YPkn_W7<2wU^Fv>~DA zhFCq%9RY=KV{2_7YV(@x`+ondIj z1~w5FbNkfhPIV_589@d?(;R{ZT9?cD=*%WWnW$po4I3n4+ZeSaE8 zxQPBecKxQJM-AOmD&h{2x8mgedwL%jg(9vgo;zqQz z$9~kCJ%ydqNM7vZ_UXo@Fsfm)+KS?=;NONV1~ViLDDbMn0-WeU_rCHZ`cCaCyt~!x zl6~+W?Yxo~EMN_#=hZ2Y3`xV|Z! zvI5=E9bhCn!^V=4@7`!p9XYP4`I9!0Z|Sl&__z%f1d!fw{T5D7y=$-8d#YVE@B{g%O)EB41G32r_-*Y5rLq8!01b0x&c2JFSn8J{B5mMRv_WNb1V^^mg|B zytJ+n-S%hJ>ug`Sa?r~1?{5vzkMF)w;NDpIRr42SFSw?*@bQzaddj_) zj2-)+S~=|S#BY?m`#N11Icma-kw0f?dv2N2v^{_Q-l6N>dd!ZkH#gR@Jmj(tC{}xB za7%lT#BURJEZdPB<`kb%MnM6zLXxs=CtOB%EgQsAVlv-pzP`}f;OsRFWt!fts)w(( z^zix$K+qXc)AV*z?uZfK&TkJLw1GVhWi9WdD5^>w`VOu3fMTc$z9*BCcheb-zyq}x zTrZl12t!-MRZ{k)&~64yD3$6NOhL&=LC=d4Sl$trSc_8^!L0q^*s#}5!sD#d2C)%`E8%hRUsThL~xh9Bz zV#-T$?O?xfjAAcUX#LU`1{(mhkOHr;u$P@Ys){Cj%V1_L&I&^_mbz-iLd63W1K~UN zBXG6OvS5>79aMCM*bfvBRa~-;-syY;iLIoz!x8QtRjep!kfcy;Q2lVcjFR!^th+sL zZnA^G{cGSFRRvF+=ts9I4*~>DejmG`00LtakvcTh3mLEq`acL8y()TU(`5uDDI5@3 zbZyn^n;UsU@k7RpVq@%*ey2B}FAGW^e-3Y5i6hFq=LrO3<>n}Mz`ayGVkNvUPe1EB zCK$cqRLa(1Q07?h*tF=%>hYc*Lq_BP2Ix0<<9W}vTFxEdjPwAtJe}9ne0XXpt7WWs z5@)Hc;2#A*Xv(^qd)4yK0=T6D(AK=#$T{8>i84H7df@K&cY$MUHi&qc-EE6>E(ihv zHW;*)KPpRldLA|5&Mcz}Snml=oft%J^48qlPmz5fvFS`3sy1NZ6`*Js4wrvybBzHFg>KE3x&j$00IgBh@okugx_ zHW}@sF-knzNNyo|JhSRPUYtW!^o&^%q?v;t2w^o{73kfhmhXXen3ffJ7tHV2Rvl@#3^P;acE^`<+pt3fTbV#YA6(~P+; z8>Ra6 zy65~G4F&iFDXOs*(!OUwpQs4fRfemgsa-9ub?eMRGxj|vTowE9K2}!&A;Q^9hMFx0 zV~XPv*(f82HdxV~lo;B9oy5bZ(r9NU9;QxQ(D9v-73M&u^+ycZ6adqlCY~0B@{S@+ z;rcB71q)~*|xen_P zOiCtmM6_-|qFqtm4b!;`eb#?)OuSwO&qIUisIjy`rM3ObSEoK2 zGdW(+MNJ?g5+iT=zWlaGvt%c8%rmJ+e%aY3m+)Z5GoiYc%#{0FW_+675tvWtU)*<} z*1Zwn9%x?LOJ`~{#~;qenFc^6J2-tx9nj{bA&E*VDi6#CdmGl2(AQJVVm#;i6%Tiz zN*ES;p#Za0wz}_Q=S)X2sAT#0m6y;p0!|Ef$tR}u{D!-pv^gQk(3>M5Ei^ta4w*H^Pddxb-NodnIdV!n9DS;ScBNwm^=` z)8#YeCtD2H(`q*GTiZbkJR$;_Eg6k5#`DH0ZMk-j-8OtRbg@a(MnZU5GHB8rq7e*Q z6YfNZ6e;hI1{bh9%Cobrm+`nR27!uCBQ?D6f{oKo!|_b zCy`FH(jYk{i`XcF{QzUYWQsZxb0B|2&#SeZjW$rX$&$c*Xc@1~`-1ljq65IK8+v_% z9!2y=99j_)2;WkgW1N$m<*ell8ZS`|Ga839wZ6biR4~Oj*;O;jNadob;ekmqG9zb+ zW;mQl{w)DW@xFz=Kyu_Jg-3q^@EhGC{t+SA#D0oEb%L!i&R1ksB^Us=6FrZ)C894O zEhaO1EM0LEl&VTlD%0>Y38@z*ZA#cr@x!Zvk*iYP|JThB(7JL}W`t%RDeqtL|Y-)pGQ*e?3Gb9jRV3eyVKG(wLMU2+S zuuZUl^1^K?7YgnN%}RbzoJuG7TQR4N+EK0#as67*DlDOGylC z6=p(FtmB~VO*cC}*&;n9FFEYla4L8`yo^{%H`-h8A^f;*$t#5W!!$RVA`|c}FoDQW zU>of8EBp*4z9UAUFhv#1PZaztG^~oc9v@g?V{j10Yt^0345D-x+w0aO1p0e^gW3(o-E#0oYcGp-I-uwWj>L^yL5T4n)_#0zuR=A znY}u|ig$}rmsA6R0L`uJdoqo|t-1P3ud`^EU9L^kG*E|aW5ji@8^6S*BKAgqm>G;O zpZ?6xFf3Aam!Sb_26i`#k-!)Jj)W1r?Xk_;42(NGvMS+0Ww23sr8`F9sE|%eX2SUU z)us<_kxC>ZQ}d5%!A~x^%q~i;V%-7V@pi)6BI6F0T-IBObv;x7B zEfUo@;H(JYKXxh&Qdv*qJv%zKpi**rS2;5{F(!ovL#f@9_fR66PZ4j!IPj#B<-*OY zP2;T=-U{A>HxhYbTNsg2Jke#u(UNChvY*2^ZjNHUwm!qR%oXV@$fmokF*@Rj0?vUpXjP()g^LJgsbyMpSv3vJD8(O`(!e}WS_TU(Ly}alLBzH5X zE1ME`%gffIV|-WDK#)6m3)!*h&%QA}$i3LnikS4fib@wpjaD$e^T@Km?+~a7xS?S6 zJNp&QB?#w&UxY>t&hzsZ4S6&OAh8R(cxOxlrq3{UVckex3u=`xPOxx^!;IF(z=uTc zS_0QDFnDUTG)hiMIUh(jZF|-7k0HRnG_P-DxmAdroqE_gDK|9esT#irCV6q z*$)t@dE*88@9OiMH7O8)m?yKwV!CmvERlx7xsCxoWzFmE%?`iNyyN32den zaNW9u8o)MiC@NT`9sXt;J%hktQ8J_XBr4|vuiooU07xblOg713h_60vCb;DKj1sDt z2`SY&9(^4*59(!f;jlO1o~ZQfRW^o?n=@_(PiG@fTO1O%^z#S8hM(-H@R6(cze%{K z>hfq_pHP>4906HW109{J2zaZs^y08~LiltC>@PF@bmhSw5ua!aBG`8!|6ideTkMBho^xQ`t(0Qf zO0HkTDmkTnaK}o}ZLE0qgsnU7EpQ{dc0&P%LW5x;yIquvHT)56C;c0@8Yh_pW9R@T z*j47T#n!fVr{$3R{RW|m2VhZ*%UyE9-3o#C&PV^K}sHWjQ4PYh=E*i`D4HV{0k{+SdOWMk_||Ctt+w^^9H zmSh4BAC%q{n`ZVkAsEa-%AL9%tjoiKbuDU7{LGrhAAh~V$&q;s4Qac|4&TXp4@Qif zxh7_aNrs*+6=4Q&`b~H5abVADP`e(OXU^(ax^!t)Qd=&ZS`FX!9e}?lrn{n5Q7&CF z3&R&gn=YqKru_ya()(sUcUn>n`v_}YXR|y342axb^5)0gcLmWX4a}w?7)Zt>Y?F8J zBsj!ru&8E|>GcWlEE-NA%?dX~cvOz(dhS4BA>9SZNJp)nmu~J%#vNh+^pEtJaSp4p z0K}vBr}wjEwFrQ)0AgB|Mjt?~fw*WvI@=`j??$G=5zJ%R!;%w@sY%AZyN zP23lCmPIeIE4A1`Ov5ZL#M?+uTsC629Exd})SN{IM{F-y@eOu|gDRTLZscHd20a*$_M~~ zqLMXe)5SR0I1B955n5r;He}&h5t*Cp64RBVqCcTv&1Ef3_^0FLces6FnVSza57bBd=|9Z}4L%ZUQ!Y*(H?jM*#hYvL5j{ z{!6g2kuViIMQ>cg&)bdBwADx9VH*36xU$Od@Eb1a4TZy|RU04SHN(U~e8VjT48>$25k1Sk;-0s^k>x z`S@6OPa~Lk`W1$$Yxt zu@O+4Y-0mZYIRfv02Cn}U{Z*N~5JnYDckv zF~5WKqz%4-bIk8CD44FF$^6btRqlkd+izeEf|zG<7! z1LJz?8YaOUwT5P_DD5CwIX3mxITFw`Bh@f{b??9(PChiPM|L>rqkaVguIw*7;V2__ z4@4p5hD}jOzzcy07HEV=8f&W>{LS`hLiMJW#4F1PN&;Nc6!#d(N%ho?yfolzQTY6) zRTW!{>LUU1#pAk_FqeFUbZewIzwO5}Q0WWoi-_1>R*8!c-K^HJ!%%h+VdfcVv#?s9?Rap(|5LzB{$RFp8 zp!C~T8-PL8PG(O4n(R}~$&Qr1U|K?;=$B>a(Zdt*To|Lc!q-%8FkcT$E>mgEIAWYaGdC>+d#SoYEwxM#yTEqQTE^~YE@&vi z3U~u+-`>4Jj0m1s>aBaPqdDbv@N2JJ(?EkUjBB;TCHK(j4Ts*&SyV&ar=UG->TS!3 z7{xB5je^!FU???C`4TTpdGRg2>W#_tE*tTed2d6ypKlk)UJ6q($T8h!?CrZ z=$Ed}Mz36$hmINr9m4hUqrVXcsqfp9*8s#Ml_`n0kqE99srFfSetg{@&KCn_d%woJ zrt^O<-;m8%M-HZGb*i8*&OoYk0so4eHo6ZAPF5UVb5bYFoKgR3puXVb>L^CWaZMfc zaQg%(x%KHo&%yX(Ga74QQ_67%KZ#8Au-wEGS`m{=hjuzSisJl*0^osQs}GJ`xJzg& za*Q<~THC;D;26H_{Cu((&=i(@*qgl23C9tjx82nT?aA^oYX*`UO!@#t0buc@{`lLl zOOL#Ofp7K1Z4l1yz6~R?rJB|8KD~Vr$eWs&TA9`MNrOUUBWJqeZ5Yw7efQ#qk|Q#! z3t~NRM}}=2&L&VS!bh{|4`bpuq7vo%nPVv`Xf;*cqe6@9N@5i#g<*r7y3VoJX*4&9 z7B8LfI&YmI;hC540a549geqZ$G!R7oQl~55uz5lU*>2kOr&k85i>4^c&d36zqIHD< zz*_E~o31Pl0RqekMucUSXLjVic{D`?$}`2G^eXLDxw<4X?&`o~>Vg?y>eOa;PLls@U|Y@5E zYJ9>L1n^r&qsinUQxdO$lm{{jMK!!_h=GMT6^vqlqaGW{Yk6(#vStVzTON;(+13j)pS zUNe2>a5zQ)CEW=m65gU!xTfREN5c)5_L=EE02jXZcf*H}9SDGLszRJ0v_ib6#pM7s z5WE9W&Eht}r3j&b_d=CZV;MI5!m#HXP>t3laUp4(_ z3(wEht@V&I)ZjjmCTHdLc?YN`VpZGJ)(VhQFj^KA^TRieggBwpv`VMkx-aV<218%V#6ac zK8$+`oDy1mpoGfCgc0Lv;4aTz1Rs#ua0p21*(bmb_C5Q_@F0${#;Y^d@6UUi$Dmth ziOa*p``AfdYjH9w$*&=H#k5KZTd9;Ru(`zSr&oj=8w z9^YAK=!J}Qt{mYw;YG+=Vw1bRJ$Z{}W|&9#T3k7LnD zlzCs#>thy88wJ-|%1lsr3A|SR5;VR_d+aEG;MZiTe)~a7dTbi!Wde_s)cTaFBg&Bu z9_ASHy^3#=O674IobQ}ZrJ~Oq47Lq(@{YniJ-jNd9$Rj>rMLtMic%f$Eb!My^6~_= zu)SF9R`gUN&fmfLprs_}%9R`BZ#>;XfxQ66p=ksGEbil_MQ)H7%*y8I6(fhf9)3;j zx_H-pPYV}+K!y`{U2ZuKBRSaboyI=FY2r-jxHUEmrBK#Fg%Gz>_BS4 z+_4H5V?=zMI$oyeBsW75Fw(@qYi1a*07NGjk4zjM5=RliY_vE6%>-0-YYabeBzN*2 zuMwyWT=~Ml{OI1@5PQpjBVSrLbJQ22%k^u8mAd)G&?tG_r@(9)hcjEe4S#)G>4r8vOJPEW~E&)Uq0QT^k*Vu9Kf%$Ss4@)Kf z;Yo?CVM^qhh0Uy@jHnm1Ob0+}+kftW%h1|w;_U&b*+5u|McqU4nqkC*YZnP_@T()@ zhlMDS|CadHBy(aS#tEQ{{ob--B%rC1L)SLvx`B?E)%ms8k_uXQX&LzH=F)`#)?k?0fyi#Xyy3A+9uIv%u z5I2{da8E>$m(3d@1tG*t^8XKXuWe03Po0hHZh2o}t<3uUPm2Fi9@@))D`B7k2`NX#Iw-d?$te6tbDzw!0v$2&zvOE2LPUn zi4H-(qf%QdTz^>dE?2v23Yo&fg{Y5BRVWYx@puR+XL&TF58U#{w*uK`bn!gElLVT3 zE!C5i1wC?GX!O-v5)Kd&EABUgH6`I(i;WExRSXe=?QQFy1HI1dB1Mue{&3gd@Rq6w zp-dvpN(hl;%YyxV&a?HwDhvgxFbRv>GIPrwRORCt@%JfDL)m(d#PnF>vm1!)Qe{I= zau&h4GjoS;TPEBik$x))ee1p&QwA0JwXXVvc@zw3+|v5iJI3?X?A~#v-$xzM0N2a1zE}c)PE6?^uk!30qjU{3Urr+h_9>~3 z3UPnp&|E*VY;5gc-OS_(lL4Vnl!=q0f9lF65=Y(2B5xp*TOfndwfn80h(XRiYi7tn zy$eLNIha-{jt_EOH5{MS6yv-{nS~t7dtR-GiJG%RarOTHdDUj6a^QZEQ0HOoP%s(4 z-aI!lI@%#4*|rgKAWDvG(+~3I#^XQDw}McR_i|G?)ON}(0nIaqJWzuw2$uwNEFUg& z^{oDh9wQ4m)j)Ps-tkBHRJ2;knN4EnY;^iRs6TgI&HLs&^!5!VSMt#Ct&4d%A}!rp zCF+^7iFS@@Bc5??4U!K9ic*kp%N*_r10+aMRAFfxPwrai=_5%`Hw9>*ViYd%#POaE zwaMu@y<|qN##I%GDXy*WQkwO=j_5_b*w9UpV2$OLdF8t*_tfwC>2HzjJud58)FThaO)f_XI^M*-m|9PkbL`bVUFXaYLqX!zSN9A6&SL4fPBMn7I5ooBB_X z8+HhABroUe{MnubWuR-p62q;3CWrCX2iRXnzbM)EFIZi&#lo|AQV9a7H66Iw3usm0 zmo3*e&&RT7e%jnui-%C;)|3W>)CJxFF(n>Xnu#`&{~}Aklp&31A9-8BNq471i1A|k zV!w;%7TEo*qlE)a zeqw$Bna98;v5^XP3=m(lAfj%q2^d}uK;SA;O@c+_jG_n??uKdK{ZK=Cj5iU7AVLcO zKrE_7-HDgKS=oFfPpQ?+5dwlhs2W5y9%BXRglq%(Q&;rW}xA|27wnb+^syC%N~y9#y_wH)Nx^04~1 zw;b{2#FGjmtD?;NAUCh2z>y#(DYt&-%gu2}z+_M-)WMqrDd-T2U&Q8;PY&S8yU=Dv zpRo*TRnpzKx;hZG)69!A)9L328t8dtwp8rcP@Y1SQ*iK3yWx;{+4f&4<*j&%L$oxz zDz806c~A(*=5=M9S%cREoHj5+r_cKocDMmM>AW)t55i5Y;T1VKlcD?;-X_bIyTm+y8cZ&dN_mpR( z=G>LHcJA*paE0{2AHd|T(cp3Eso(^7GO4a4F4(6Sp=A;o{3vre%i`a6+hG-s4WGF+ z=;#{0Z=6sKML;~R*Y(|Sag7rg0&ZzO@sMxuxK||Px9#qJx%zeI`aN@6*0@<kuLkLq`0o@xL5eatAJ4MT_q97sNHUfCFju1nC%b3&|RcnK$m z_0~dU0BnDTJi||EWsh2_*ivIGFdX`%tO9*M)5=D}h-K=PTbIu6yg!W(SJ_ZF z-bd@z8MT9U>uJGM4GSiqR8%c5ikW|FYvJ<~-^om;9)J}R=~C!ppUY9=hpf0qoXaao zN#&-FmGGQr4mx#9>kl-j5+SBLgG zyCyN=p^=%R9DaolB})7h)}!h09IqZS5ACvb7k`%@EZhfECt94lwBeA8NRC>*h2j|x|ErecItT%Y359MooS z_Uq*YmNQggP3$!^GnQm6@Ua0a>+0BZoJY%l=k>om&_j|J^fnmpO29w~_K7Mdd6bEc zt-pffD#YQZ6P{foO(Zt0F0z!`A^p&L2Kn4_DwXslWSxPaa+ybx$1hTa7(p{x%1Box&O*Bu+MDfriRk+Wuq+iWZ*U3aJs;)ZGs~5AZQj$|@JyWm z$QP3*Klp(BKNY8Ym(LeWi!K~I7aw_Q>-@2&R?#k^=KQu5yOZ^TU9abli&knV@4neH z;QIBRelfT(?-%#y?%=B<8Tm`(k}&jG2t2PaMHl&eEH7Kuv zwOXSO^2HF=G06D%PKq7~Ory`Z9I`wN4a=~N)6cFkEG8&G0g9N~V}-b6q`N6jKu7uK z6i(KrB2vDXXy763^LzAqdz_^ zVk0Z{?2x8Zy}yT_{&a+vc%CiKDuw&N!(*>a88~Oi=Ab>>XW#fe*=t`UQou=yMnql@ z+MGacMUEK8WFhiej){lT#sjDEU2*|O3Rh(OrE&<@yK)@sn9CsP3o8QNvNOzJkX5Ie z&7+Z=@G{=&*s~nOO1WM$Q~0fW8g>v3MFhvb38O}FhDt1(5sKHzkB7{ zKyt82euf}iqD-9V5jvH-TH%Oz@u&@Rc?AIPEhZ&U)AjZD;6T{#p0w`y9&mgK-lF)Q z{X01LFd32jWkA7Coof#93@N%a4+00}6209Z$lhIGjB?(H8B^L&Uenx1JZvv>LI zEz3Lz4X&?#iDj_F1J@bHOn^Ds)t_*S=D9aH(Ek1k;|ZiHJ+Qnv=FPIqDqRn9k$$QK z3dp9LuOHLF1HKa5x5QcSzb2kPL~o!l5jy<-@F2h(DrUh{jGr}LU)W#pxVH&7VIg=C4Eu({FtxXUpX|p^ZWqAo9^c3#yo4cG8cfr*` z7#PdSQZy=Y_WTf_WFi*sKwQ0I=Gex;dQj(VhK|b1n{J__Wt0w|=x-7_X1*Aect97BnwFfh5cLecvF_-7)5}s9d3XV`dJuXPj&e^lG zVjspGj#jx!s)q-|1P#7Zn-+d?%ZqyozKiq(u)N^&TXk9dC^%o;bHm-Yvg?(4Q;4;% z7}5B$)b0IyIDQ<5E>eK}4$PB@_!iAWhFYF2su=Qu#L5pqZMBA@1txBYRXVT+fS_Pq z2=)WM{hhsi8^YK2ptxin9G}d0|9OBFb2xNMHM1%Y*L&h(r#A^KX? z<6K3UO|6tdFHhqqk?}dyUK3ytBv#9Z{UdJgleu~q@B{wYFjrp`9geBV7ywejO&>aj zn?423Z2I%fQ`>ZlB&TOH%8~%(;kP}2u>xg9V8_7!r3vWKtWEN*9uQ)+Oi+r9u3Q7h zH0n6>M>l0BfW(y_zjLfj3!ZXd4L}$J+9O|FN!gMrl33O_^Jwi~;?g;8^ z|6C&tytQBI3>yy+gcs-5ZwSt4@u@U-S=g}y^Fs^7)UoIDubI~TH-c|p zzYU(Abyr+o{MsjM%G^!#+nKWS{+ZT?M<<8jK`_By)a}_>brS{e;}Vk07WoeSu^W7K zM54NqC_ewu(aKvo;u!c6fx@R?-e?Uw0HE-7#WBM`9`7tkayUmh5GWt^8|({#?zUp? zKLRw|y@nfPX22&ZA#&={sbB8CiRgi9Q+{)2mHd>}z-^c2w|`=+0gcT?3ObUva@?_6 z`0V*?lXOZ)G#$P6F!t2G`_Mf#q@aOOHaOm6@409&!lvwa_u{q5uT$+K{|TSH7x}uW z++iawI1xU*77laZt0uspa4I6^;pgLqz!%vi@#p=c(1DI=6@g%Z(%HkA+|TBc+PEyFM>m1vQoL`q3T8%3BF$}$y6 zsb*U2l}bvbp7Z=&wHC1RDA!GESb-i|yT@t(oKv@?XNg0FagrtuX5}Gtq7dtAw#D4m zj{vzt(2YQG);mSx3sJHD=PWafgZ!7$K9sz4et8Br3K#%g9#s4q<5KP0`U%o;k1>C7 zZ%<3vd#g8sDQ25hWL9rTxt#)waC9%xHd4X_%St=fc2g!}1||WMF`k1sBcx>L6MLi4 zd|tPQsCWu5UC5c~d5u!SaQm!pU7Vj(#`(8ju#^jSPo&$O_et^=3_J z6qEVJxb4tGi=OlaN!!$K32zC5bNCCL(ByIqD@g&YSx+B2a*aXNI9}@y5+rPf z@jKN9ra0$#+n4`(%lC9wG2rL-QP6f@V zl41kY9RbHZ;{!XmRmiJ-KzI-&?igvw0Fo9*;6X4b2@S_tRqqSWA~F2@?cKMW-nXoKDa+i@j&a-5m^bv!qrLPj zsun*9Tq6$jYMJo%C3!pI>&?cP*kq4Fm(HftUpt!4f`E%8_8p|vc;O108``zFq-hq1 z|G(~7=G-!3zP0gyxv$Pqgj1nn+rxQP9(hxJs(j{;--X~)1ZF+C>jg8+qq$al1<1QxAG{V2Mb@B;H;Q-P;# z5Jg|u-gmI~Qz&}?TpEy8eXQ6jXEY~(!c5XW2AEd9;_x;oEVfWGc{?rV+%*0EtJdz7 zSCF2D30xU6+NZq+{5lJayJ-LI59dtXqVnrMU04smgSiFqbN{DuP8~g#f)TQhuOgCN0skAf@45rE*FbM?fM5JH(c?!? z(WR1h?yzS;(HmS6#yg6BMkkflr;eR47rYq!%Wpr87SEC1Wj1P2(s#{CPbwRSjHNmo zMlHvjy_7NEt7+x2GbW7kVKAN+ZOn5+tqJyzpd;;-_%q5i%b$OW#8PM}J~Cbe;sY{l zVOyiTv$x(6IqCi=gA3T~U`op(bJP zRj4%H5q?$`PKk3BZG|`c5cM48!)EjeJ1Hcqt*Tmz`kVjEyt$4?XJRDd^Vi1H-G__+ z8PpwC_(!$pVsM)Dk67 z1?rb12n?fsf!1!6%HNjJ$U(Q(J_m*q8R`V`piE^N)S(h`q>g9n$?I=gn!R%wKOw*V z(+}SrqxdaHo&F1J_0PBeXS?YCoR!(Q7z{F~u-_cj@qqV?NN+nah8f^!csU3o3Q(7y z$rRShVbt)}HN*HlZm)Hh9@-kQ;)nhc2NibXSgB`jh64Wzoda#nR9eS(3|N8iF*)(r zJ@BB8FUE$0;)D3~%@3AWg|vO%dO_#0>kFcHyqS^f)OBF61+dIrod=R&0JopG~|NIbLbZjHB5i_|@^R0SI*ZvnM42cJZUYoLs%DBA77A}5`uan0h2>{M z0RKe{d9(zW;l6D$*spGz# zMP0fR1oqsH>_uCosvu9nbMwUIOEkA_fk}V>>%bc07l!)WAS~$=h3^}AXI={e$U3Tq z(j3Vssb?G#7V!e;s0~e_pQf-r%O5pCH)v=E8ZfC1=YuODk;as0<2|{!^r0CUA4+D` z@9!^YB;;%(BR0gP#0q4d#awE#(gk*Y1RlOx5@)G)SFY{C-#tjH8-?u6YQW5uD^~Yz zIXfATXjtDt*l?0|so%11ovjyfdf)2{sm(sF%d65)Dp?I>M{?8s;L=@#Mc?$oWovN@ zW5H;%bEKSuQST?$$f8BC_LQp&!TZrYj(#h#)?sOR!A8h(nl%SksFy0)(1=DY$)Vo4 zCF^IOxyQ0qR7cMGZjegruL$=W{$tzfk8r=MVr}Qp!Sg!4N1~u+oPvK`)RPCghO`n*7cMa$%16+M}>9?0L@;oQPHLVhn`LMC7{1IN6Ohzs`+PW zakGWU>ttlW#1@MT*>`zA_)zw^_a)4hen9bbWE;3om@%Q3O#IWm?WcBCzTS4}uIW+t z!?P~#vg;O2Jb+o_2Ve^VM!`VH*IZJXhSRA@l zGbyEJ-+-ASw7a`sdQay;35#N=!NFk(a0jSL`7L`ZmTid2_uF{q$n};IIhXA<{>;Y! z=ZUtaj%lxxH0t`0LJpJT7i!tfC;~q3%of$wZ~BDpGViDXRVWL?#&|bw_p=dWhK;?H zuDICT)tNG#Ad2j*_+%?!US}4|$;u^uDCk1@{~z~5{L*xItk{>S;}5+9n|RvWf< zLc88>W>xL@#bXo8fQ?%tScixJo-_#j=R6_M)8`sHq7xYmp za74ue*X*&9>Z+0!l#Hmemqa?+h@E%G3qU8xu#N-9ef|M^^himh^7*|`V*GzU8NV?& zb`Ug5rb4V*0hNG|%}+b3xdOp^^{9YIU>iD6i}c!VoBrD&q1D6>rIz%L0tbMia=5(c zxVdBTmV{!qB|e{UHC5P3ZPIMsVoW1HcH0yBg0;=KbMZfWru^vD)cw}zt;>Q;{~EB2 zD1*E{(;iv>CHXSPLg_!?H}mVxKaSS_CP(Xk7V@8k{O2_N<2wFNNEQ9F3I5px|7?PP zk}Krt|0m`I>EW0cy*y)z?jId%DW}XKE1)OR4F(~tc57AyFR<11;r!tLsq`|6@E161 zOug4_SpDSKk=g+MnP2~_$;0n&;~@k~#0VJw`P;oNp}A`R2y-IYP6nynH57lvWB>pA zzwUo;ew*GkxPAAlCtokp{f%#QsfLdFrG@ME>n-c`1?pYl>s!&$TH`g^)glr9Cx*Y< zW#_PQs*UAFtMyZ@Y}RkKR95)jcC)*lj^@CAqxe$;mo8CXDH44tE)sp=`Xzz7h@V@! z@P9qFuhd*9y7WNm75?Lk%?q>_h(rlK{X5n}AW8Jq_e)l97l{V_%>VVsv5UeJtEyb8 zzCeGs`P;I+A%WXFRXblinj}`E_q62e*;8VTgX2rq_!W(n>|B;QLkq~Q$|=n64iY$?2mo7UY}xGi`8`7f_M;cwsa1e5h?xhxK(aw;8bdw@ zrab7z<7@jlDyoefIwfpjJGi@5q_L2r@&LRJx`J+i6w0ej-7hHe8+NOwY$7Ieav&UW z@T<>%n>^%i&*i^)>-+h_aG@1?7gbOi@S%MwXWuZD=z(s920AYNrNPnnCf!nSQiP6f z6$W_RX>X!ybVk4CNq6uOS)1sv4XTL?35P)f#7MIq5Z zfwBeA6kVDZ5rAc+A}joAvSFk5H3n0(l_w`-RxFc4c@%Db1jf0I-46eTB%8V>{UTRa zIwQ_~e`hQr68xYYLFYq6;+Nj!)d?c4^>B-$aL{7HtrVG{0g>)8Sk~9UK=&w(MQ%QQvX00%O;DPZSz`11OK(3w^O|37yZLV z+`z~dbxAqi=NlLpn4G6=Zf;HIg`4P1IKVq6K$ErR0xv34`PgNHW;Kv&nNyG^T(&oU97WUvaLh8 z>rJ;4V4s>`tfh|zCQ1qvH=11Evx6SF*bV;4GBOsJ!{U?%CoBpK)zvvMOKIGQn&lV) zG;-J3!x2o<(>YaJQgR2R)6t}Hdyk%z4M;U4S$U8n}b&~a_slb4Q_?p6Y6 zMHIG@C$99FdnGLdA-r-rAdhBoq&6QKF!ETkk{%dOsg3Yb$F9Tpv{&MqDS{Fr`~x`W zovd^e%Se$1&Ys%%FEMbo32smSQe3a-^S$g=`-ADXYKI`^H5o*ylL5-V;J}c{M2CZj z`3+-+5cK9GBF7F^fS{4MX42HDQ#ojI0@BqbvcAzBCEaJ-?echIkp};kPr9+OvB2;Q zgef_kc$U(LG5XO)ae};x8CI8e?aBSo-;t-eOoXxZxNwgQrS4Y>d;68R8cjy|PnZ{5 zW_l1ZUZXgxi0({8to$)p(lSOtu;5(mK#cb&ZhCn7RDg1f>>n?&?@Mtt3)nG`c9v*1 zNm*H$LqUpZCshr=1rq!^puUDzruGuXtd`{k|GACz=6})u8yeD3tHngY5qly_*QN1z zqS<*k1!CsO`NIS|$?x#s*laW@KlkS%G=6I=s$hd{#GIYhCJK+h8xx{E-ndoFy(Ewg zIa8TvwgqFy4H$+zSF`-jlTf1>FS=2MIT%4EvSy*`r&qdpwMsoMfC8BVVZ6|Q{?3@v z7A#)><>xkV#1JR?e9b~M|DMSjy^q@k7N;<9=WvG8YY>7iaPa*zKIHnW>v0j!^d!|u zOcWA7PlkjBqs%h$JzxT;(NBVkD5=b$PpUe|aoliQk+}AzO}p%1dlTtBD~|J}^x?c3eCLEL%b5 zEofZ)mp2)RH`xT$48iWz;S6^`M0YoNndAx3NKHzX7`WJUzcICsL#MdyKuRg@!5kvoc4#f_54m$jBE6>1o$QXWB zCgrjWznsU!6UAqbjPUwPRG)gQr*S0S%nA&qC7Qjw@^JpLWu{rT5B496Q!THlPCHCt z7~g5^U$*74cu~;>qqy=3aYsY3Rq(VY;ECy~ewraKRsteEh?XCg{Obmxln2R~CJKls z(l*Veedwo6v*>{SGoh3~&*#MS|M);SEXLUtoDpQ(rk?_OKqtThocoBHh1BuIS%|Fp zm(PS}!m$c${tB0N8xo@%o03oj0~*?DVG}(5|WtoAAW5G=b|(@oa%6f zBvW1q4p(_sQL_PCiJGe%+%G6pMT%{`VSka3-AG;9O*gi51XomzEw=|Ujhd*7_o9bw#39AAZarLfzCf5WeGB>vv{3++)ar|KhRN&;un-l!Mlj8 zwV>cDjk-7=1m22P=|LUvxLe_SGekv2*Al=$hrnDV#Cj6-GB9arJVCCd;oySSdC0xf?VMltY4_4d_Hzy_4DV8 zQSgRCi-PUs+ies8q;#Rc@rR-o#02yDsHUjUZ-ojf2^d>SG&uL{*)s}(jL?*_SEt_< z_U4rZuAnq=P_PwN0HcurJq-)2Il5?&J7@Oju$-K{#9*%tb&n`2gi4?g`PGHa&iKjL zcJ4ooaT+I|6Nl}fGx79^fbKj{c03A)gCGTv48W4YDn?yvuf<2^xx5IcVK*ll)NvXB zql?AgOj!{SU9fG~ly&%Dcl1y0YkN>F;(J_r*+^1P1*9NrD9OZaBnc(UrKUBnl`}qS zGby#)S$TcZpYaU|sGHUqMi7|$Xpm-IWLO9i13d;QR@a^PoX1g>W-*vqHB1E{t)$%NU^JKz4Kj;JpC{_Y2S_I1m=5U zWU66)e@$1rpEby@e~T^sn+xa9zwEyWy71rr-LCqVvYWRNt}^b1$5h;cf3r<; zX8?*M{>m={Pt$L^|MXwjCV%|S(mn${d{jSp4z9NC3|HQ+Oe zQh%b2-M@OBXZg;$&6%i1B=RRu+8?+94t&`tsa-zz*`p&jDp zU;wZ+DyhnQMVij3*77lXnao;XGJT2ifqrjJA^kPAy*^W3GY1L=+aIb-l($ohcdIR7 zKD@yk&dxWQ4LQbb1ActaoN7%~8gl1+tJ=1rWPfcgVKshNwwJUt+1VxNNkqNdS`;;; z?`Rb9PZBmr#dmdDNyjO1J`;>+Fe^3g^y|Tn)P9s4GCSY!U@qhf(*dyxt`+;LJ+ykh69W0>P*Tiu!uz`n?JD z^V>720>`I-&BfOeS+80Pse&sYs|))OZ15{FLmgF`AI*wo2cQ&_L^mW;p6%IY;_VHu zND45Sl)J6#VNecWPMA)aIkF}8{@uIooP&KZx9Ug~q_waw+!R-!|1cFj=`L7!66z^Y zaIC>3I%QT(4r#r~&gd8q()}^uZFWUd_Jp{)>_hsjYl=4|W{955kv*`XZ425gGqp-e zUp;fj6LU#O?PHC!t(V5%jQu*Qag6iZgnN3oAa^{HW2laE+O5xk6p(A6qodPN*;-Xq z1n~vwPcJpC(tdfTDeZ*;YAn7V+Z-ch2}5<%J=+VQb5k0N(g zaxyZI;~5s0-nJDVbTiKIH0#!PiBbs)TefF~b`H0JP7XzBc^`3alIT%=PvbEnDk?e4-c7MffR>gvmb!I)SOaV+W4i-w%h5?8NY z6<)J|a$yh&9V?%6GCiF_hFCa_csJQ?#9HuHM=4p40DP~7nkQcSZA$$O{^h27Kx@Ma zCQX`j_-fPhh?>LN`<~;V%BBHCEsg}3g?GW7jbA8()l344k~n<*(EcK~ew!+eR29}# zxCGSJYwPeRWP` z#mVo(hMJn{9SwjZ#H;eXngH(#F$<>Vzdl6QU_5@I|Bi#pDfS}#1a}C33&X<~{)-nB z?Y0hF!+%oqKQ{Bh+Eexmrs#|RZ)>u5=OX{_rls+t^MK({o0A=3DswMCIb$-R@cVds z$);fX5J#h*7Uhm%;u9f&k0bT1KJ*d+QHfefeHuZE9Rvl*x%8YchHla|73(LIx1mQ; zB^%KIqUTYoQxG=VmC?Qig5(p+((gfy%Kof#;y9n_7*e6)(0m+T1Gj0T#VFBJ#jY`R z8Hf`TOrvqUpc%>uIlQ}9K5G6~Vn6h1>MIiS1n21H&Mi>&v4>+%HVoqm3@H&xonwjv zmLL!n+X4U;)M0@$^U@i(hb>Sx#;JNU@U`CK;=v+gU2vAx&6xo&cRI)e8poex7WKuN zltMbPRR-`HIxrMbCS(nd7#&kR%in)6EM&^+%i|~uOTmtgjINe0*+&JjXu4`IlXSua zVV;f3B2n0DI_Oc1i?Ur*fM#1ZA2u%o118LGyfYT63c5a&v!+H1S{n%fq~Bi%TS-|e z1|+t)Q(uOAR{E{dafg$T-MgoDm|da`B#k!M`zEshDsmR^<48ct@_usOy|zz{5YF)G zuaJ7P;MXid{(??nV;^|cE@}zd>}gQ#{K!RgbI<6`;akNHM^*I7JxwjCUsEZDUsgiIe;`opn5Wu~;HlbKdcG8SMrx}mg@ z7tB*0pwUVpx=IY#9znk-3rnw5JRj*Fv|`WFS*r@<78>AXQhl0wyHZ$k;Wr%{zf7q$ zsDQ4Kf?6hoa+@c~=za8QM=wrlQ>MN%8!dfbG3bXJD!5Mt3e)+|-~% zGjE&fcdjD61mIBCKS0cTxXz(wNXCD!_!ipt-Xo`PN-dB`Uc~k%wc@71AwALHjDWq` zR1;lgHe%)EIT|vX4Oj^457UstZh>llTa`$y_hrOZT0G*`_3=SNBnx2s)fI=sQqhGG zBdm@N$Q&KCpQvqr?JNBeJnX>eh0k#D$^#Fye5{AdOuB&VHw$_wt2fC>Fb$=&Yb&PB z3Lz<12rF?AK28THzq?-VJe7T&fb~~o^X6ZZZ~6U9s*QxBw832DMx0}$KJSL#ZXbL# zK~!qS{sMHgt*+|9jim~1&N{eE4wggWMv$YShXAMm5w-G{ae+BpZ5)z&`}d&m2gSrD z`Y7e=&~8U_d?3{5&Y0;$E!0@ADk2}z&EZ&JpagW=e6Zuc;pB7Tz?WT{=j~vf9(TwQ%6%>76LK>dv*+x_4$m|3p52J z7F3&j31wZAL$X=jCr4CcjZK;lAA62Mmh>#%$;(21D~4PwD#4gI&m4~waVq}rD6Qwgmi8#338x|SJlfF9WLpLw<0;%p!xyqMl3UEHzd6eu?9LlUkgXay$ z^(fncNA_4&kiP^F&vJ)>c7v+u8^nB%BAgTuk?!?5(Dh!hDMO}E1satPTMN1gKTz!W z-ETkREUMb{u%3>*ieU||zu!|xpHrQX@Abwu{0d}Q$;rqSX#4`XoaDQ5NwAHUrn)Q@ zc*+q=MnK#dEyRfmuzJ0nvleD7tq@cmN&XqXg)|L|xB!|aQe;PI)L9!0C7PzZzkn0~ z90N(4w5vJLQItR`uq@O=_9EJhoy~EsS=jx-$udRGb?r#>;Gp4y9$~ke5RMghWdany z#pl!0p8YgZV(0}$mrNR`@wT9Q8SRv!4W?U~=5rmXurG8%Kyzz=VO|#e)<6b&v_$!! zY@UnA?X13=3~NZNvC@c+NFV4h=D^cT3>}=+f~66OK{RrhZ*Yde8<(VzzeIe83y8r= zaZ&G?+lr2SR%SZ8`Qhn&1o-=>zlp_iQqT7Rx|393t3*r7i|UU;BdI^mu+5dKr0_AT zW5#0NZ9i+H+yafX@=a?c4f3##BiSwX?C79b)R;Xl&%8w6Ola(<8FTA#1)zYZyQMc0 zwYy(_88$#a#!#M?9P}ik?6}n&85!C{aa5npn5cKGhA5u@yml~M^w=?lVaH;$n+tX( zAPZK9UrQDA<&UuYBuLZ--&AU14|E#(Z;4V~lFHubYHcdtD~03_+y*yA#v69Y1Z!!W zJYec|JAt07MF_!;+(Ix!nCw%+6q`(;a99j01L{4Y#YxrIO!##ODfyA<4+Oar5QL)~ zu&r~8ab=5<<&y{H1@bJAeHJ>niy>hklRfVG2NOE>kRwQs8}``e^OHq}IA~EUp9;|@ zrf=4{xF$`>Iog3F4*ur=>G^X>AEfaZ8lqbdR5VLK2GJ2xxbMo3Q64VzP(NDOvj2~a z;btG#LOe`r0atQ);7+zKc;EA|^y(Kca@r*9U@=MvU3p%ZN^` z4_!Nl@%&-wYz}0UGDqOv*?`QX(^lW<`Czwb*~qZrV~_nS3v+$&3B?^-pY1Nxwo*}e z`&h1Iw9`hDO>>%Q9|{?I2^ce!g}MB)pl=pp*)r#Y_f$I@d{UpE+*aTqbRZE|{a(Ac zlTd&@X%4k-k=z6s^|#T&Vus@!(ib&wk5fUV3A*#-nDH11q_^^m>?_myV+#~BSyI_- z&TR|ciA0SA$CcOXC_@PEVh+A9CtCy0NVq4FgXo$b#9B&`MhNXNJH3j6hbF7%+7<0p zf+ZSqtlBmPfPqyoC<;cb_$p1-rS@!}Kn zM|-a)4Z!U8HOE)S0;X#t3#DUJqM5bjNAtj7J!_u@ zc73vYf8%{Yq7-FgyPibqq9_zdr={B;YUkObQJWbG5q9}iKiIrJaRCNERMNY*ZimKp zq&=C4!+`;ULixv@;rim8Xoi;Sx4;z?A!y&`%fDtIk!LpcG7p zC@!ssXo69q;9GDbZgq}Zsl)QX<~cSoRcYF_fu@U=b|tUgaN**#2TT!hy$QA#jq7X2JH=U)8Nc?ByL5QbAeD2=drh;P zxv9i2+}zcAlk23sjQhyH&*~1zd9G1AIJoUp@}Y2-NbS3A_x#mY-*^(?+dR*v)6K@R zt*^9t*PA%qyoN#~HBWj=oU<&BE_Z4vORXs~Ep%|4`=NMNOUU+uMv$6BdV|1iJdGl? zlHR)R6I~52nT@1VZ3rMX&iSX}&@K~`J$#rOi2O%X`jI)*E!i1l3|1=lm$zzXEBV>N z_X(LT)yg*=h;L4I>=_-+5}da^1)_I7v)4@Mt4UL3D!qV3zB=NPu|<1)XZu?uj#Khq zj1fg2!~Xe(qQ8t3U?{tf^`0dof1LFm-JPiQ{h8<;rGIAs;lmU-C2{p7E+ZCmHg>)| z8X6L7hLiCq{!>5MW0yx15`Um5MB?(1rg)S`#>|^d2Y}s>jP}?Oz7G|PJ+g95MD@IV zp;3204xr$P2TakPWVyu2$N(CWqTMJmr;E!CrxF=BGI~zY3HRF5AA7Ca3;txhm}T!l zN|2X5?aA^`U@XV342Ew;2Yg^Wal2hz9#{|pidzSyYmXqI_uCVGQD!w#Gc$Z#(-}Ps zg5<&6wJ7s9pn5e9_J*_7yX-HTB*~K1(**~Iy!TCgYF;6Oc1J~K5L7>1G|3A?DNL-o zIaUJ03Y0vpnb}Xv1@1CDQ&#?T$x{(GH}xtrG>if-83BJ|uEFe;HYAB_F8Dt_aS6K5 z8kY(nfA~ybD4rkA{Xn||@@gVxcb>++7aZcCs+?#*5>Fg)^L6kt`14m5LEdZBZZp1}!KQSw9}8J0|cSg{MY0pj%If_*jX0qEqzFr64r ziL5`UpW=taqW4oX8iF*EWV@OU8Gphp`W_`zSta1Nr2ckDQUT4AgOT7vHR{23wSftYv%kb*) zZ!J~MmqIgKK*xCxqY}#IJ*=4Z4pJNH7w2@|Kt@XCL|x^{zRWZksTHpd&5+3jl)-1h zng>@!llYn;r;z*;j-$TzQq!zsh&MzLK!>q&xDuqm_+{QCHDT|B1T2fCY70&%NzQXor3-HmPy>B9Nde}716@o!aHU14nr!)5>4aW;axCT)p6R-on(`X8tc7Ai8pu za|bN-+t@SuG95FYITmV5Y7f8IwRg~%xvB52w2=7^PolGUkCN7D<2fJHKzQS|n;QXv}>rW}bT zx5T%CI_y~YOogKiDBL^|X2iyk7=cSHv zb9qpL*`NXaZH;eE1$_WWe5cceu!`8Xe93Hj2HTo!fqetr0}{=~?}LhZ(1!QT^^duA zZeIX=p3rruV&K?)Eo93&t|~r%Pg+!ZHe~-wspb#A6F@e+3tOO}(7#XVZ9llk zL!C-1&wf4R$m{NmEmSPMKsFT(6TJd$fN zU2nDRIIS94p&mYr2b>j$9ZyH;k<6gCK2{1HY|1MGftSLyG7~-dD1p$shjzY?w2CpN zy%^F)tLFya0E@9l@j!zLISR zwg$ewfS^JX~HOwJ$Cr1w77IGtk1U#%< z@Vsx+UD7)dO6~NB96p1j|M=6P#&Ot0<7eLuo@qM|?x^8R;*fg{e9g@P-EP`dSU}pp zJWS%vr2q`Eru12e~bji4$)5H}Pzte1;|3~8~Rco510B~;O7>zF7+GJ7NtIrz}m@7AYie;T+Q zo0k)1fIsZ?9pl?NogVRXNXv|bem;-wI z!}nee$1<@-BCg?k;R&$h-FT8&HR3=YVdh=TtO>hTlSWr4 z2lg`Cvr2nrZQJwpkHd5hW7`DmMrc1d%f52)u)!>C1chK)rfy$HqwrL?`c{EAyA(x2 z!|nc4Gtp-*bU0{43O6qKXJ>EK{B?OK3^lJhiI_*|^m zwYM2d9(iZ!4;;8bA6x0;(}x_AVM9a;wpkN;i=t*=D;;-wTn~TH5kjM6!XiK@RVcwd zNqC19$S`{ILLV`{IA=KLICzeL)32?5ZHr^|a6q$dE^i=+d3WC)V03yRc>A@Em{BzP zCndY`eZe8?WFJmL5m~EfByS9qkbqU60VCoKY$uaahnQaWvUt8TtjOc;JX{XSYC^Ws zYM)~v@z4B*j9r|GT1`1BHdHeeRCA93Vwu;RU$fW1+|f!7Nqurue>snp&+N+q?+qmk zfd#j)iqJR5V0A$K44`}wl@G`lv{sXGP%`Q(i2f;Td4;-|aN7PV4HX>OyapG0SOx$Ul<8|+vz|t7 zKMz#4cIX)mK%UR`Tx{(^tce)_S8O^{pG^`=;~-@c-=Bt;WDm%@s$NfRf+2kS#I3+WOMw0ft)il^(GWz=`PYhwyR&-9GCjeOJsO(4cW84ed5 zW|j!jflx*uJ(vyus2lk=WpT)XiwuEPsY^niJsOj1A4UMCrBhcvH0BeK=tJsPv^_h;GzDu{^fXT^tt@+AlPWl*wA?z*1QvcLv3X=AS*n#1EY4Z^em ztPv0pcaN3-St$j$d@EWS{FLpld*1x85zUGqBXju0$;c;sHD2XVxgTakGI0s&RlC>H zsQ~3bP=K;fejrbcs3BD)B28w;wj;0jj*&3&p?41oWD_FgtOuA6w(h9NG$+@or(}9qyJKbZ{itJn{9xO`Qc; zax`00v=u$8w%}q~?gnIL#G+SLth#;?oQMif`i;qRerx*RLszi5C75KNNBMw}gJq0Q zR#z9AfW5%8M0h(hE`75)60WoR|NhOBsol3Up${R6tvS47VqQ!%#~NVCw6fAb z9$nUlGDf@E8Av$Lo83ox_sHh}e-UUPCJF&qfQ&m8+v=WO{V-BCBKJf6B(l`(i}51^v7~>!#MNN zZ0@pGWhEDWWMY_X4EH9wZRXW4&d(x{D>Ly+j9RU(wpkPw&ihyHzNq*Th&HKrhHWS0 z3>wP$8X0+XHm~ifzp+9uEp>3-I=hRwW;8BM&^tM8O#pjnbmnw8m?)p^h{nbSGxUpD zR&Z@f6bf(%MzdyR-pRQG%S(MO&&$1k--`($jdc@~R%5vzruTJPA>pRqJ7QpG&b4>0 zNHhx^NCC>~?Bpfk`|XdwiXtC1^;z9@X$qW*@bOLsoVh*SRitmpBG(#=Aj}yFQ`nBW-MKr z1DM2WD5Ui(U5WcP97O=x7R-y87%U$oiZ9E%e_#IbSMsu_c{?~AY`|0)U8=^LKepXg z8nEFS3Rz7$S^<;sKo~t&yBygxe5g~$Li9c~$G~Wf7&d81ozK+02uuul%^D+370qL< z*(l{K_cG_688~w+3eMLIWh*!+*1M;F5NlS9C+ZDi@WYL3U$lC27NHo#25sdFk65{L zG&Ya(Pnu(#HXaP!at~1r{vq_&6vml>;xiaK1i3{o=M{Bt!Ag7RJ*M5cn~SIubR=wH z+g)9kmDSFk^tu)<4M3*?w`8EG)C>1jQgO<{FpE-vk&5-3yRgrN*&Mh*h$&84yCU0B za4ceB%b_e9jV7L&jJx#op4S%yWI#7`{ciGV7c$f?aX{o&gfEc2r84WvqTO;7pBwO~Mh+1SnBSB?L|jaql3%YnvdQ@$tSLZRmAFqccJ2 zSXKS0ABXxaDmFNnVyMoO$`7P4$hdaJ&g+ph4`V*p zM{Mk%Dgoo|=I`Nzk<8!7d?W||@G;H>+lYxdEe}Ng$bJWnMzVdRrE%#@+4;@|bq-M{ zLi=ym>Th9=hif6Ch6E9MrTd14h9)anp+nt(RG*j?3%S@$3l47jeQ(jXnhipRkSxwz z5zzy1vboOyyp$NH&BEJrJ};GhK#LN-R9ls@i8zs!Pq7=;1G zhW)O~MBYU*FE)1Zk;A37X|cDp)eLs5Zb|O|6{K*e{+F~rLq(+V3F_iSi%C-;3|9$D zXe+_KnaT&aMy4A%^t^ekbOPcd6!+c8~?I-{FHW!%j^4g<4aY4~y{H++VP+?n>bdis=d^e~zg5TWvns7z0S35Bh z$6IO-0l-+~n`aq`YeEbN#nW)7UXyfLEHDpa(ttiOT?DOERoXKzEaB>U;CU;&@Tm5jG_Akv+2Sx@qMOB5oL=OiW+RwoKQjiY~#n4C$2^Q9IvZ zlTGuGW*i63ZUHfki}6;CL>iEvdG4zqI56wgx#O~#U+9DK5}`P|5`I;H0le_MB4d{$ z4#PeyeL5}j1kDQ|?t;EaACdoUWXJl|^05F;j;W0KrW9eFe#hh`X_Aye6FTLmnL)=%w64x$oqvPFw=2kdGT@1R_j2_z|QgSnu@D zV1FCYMm)z?-xxQTC-Nt3R7gg!9}Z|L^=bWn+?P2pCRMbvYGkBhB#g9-I?6x*WfeEY zok&zQAj+UPv46JrXwz_mUc}6hif(YMFQ13aawSoF8fGS4rmef_CbLKy8T*lCQ?JjU zby;F>>l^|eK64wF(4Vtu&b&NMff8!M^_7Wpnv&LD(^K!`W88Fi9v9z0pC)$a!94~E z9L>k>8^LeI^y>NAe(UiFj<7_8)Wi_xgP2kzvjmy*$cd+STL?~eNLM3+{oHfspC_a7 z{p-haLa!di>PdIM&Oyz&YC_7i9~<=$C23gcAvN|s!q@|l*Vw7_HL{4qtU2F0n-Z{! z&A1cx3pf&A3%2mm> zcf9X#<~%{kIVYcc_xyx{u<$6nc_JR{m<%nOxa<1oAzk`lHh=1gmNZVVWqCn#x{j2Q z2FnnljZ7CKWBZ|unaC@a2y7L^UcAxRj=l5!-ScQ|DCyuX#Ld$;w~r(@w}87ltRAvFGHYzGm*kvctsNxaH$$5GHs}F{ztX7(Ec! zD-rWO*>2|L;#FsGaz1ep#73>qO=&D`bF`Jq^sCjW_E3rI{J?=0#Si$b=gHcHYzqRK zam97rI$X_?5^Ee+xKBtc2Ph0&u=8u0CYy@%zO4n8mjJbK5J`6!6`>%Ev>Zxw3`=Ws zyhX|mDGh;S0fYxWqBQE~2p`IJFX%hkZ@zXAO-E7as2=|P5)gU;QD?nncYe1UH$g)n z2+tHJ5xCIh76$8uYlCbDz)&f7#70<@HB=!`7bxm~iDKdiHmZ!g-A4Q!-UqD$ zjZ1p*=GY&+w8opy>@7R0sjr&B1f*j+H(IXOTk2$ry*Pc2KM&C296ri{Sms?cB+h7i z9A^P$fvjStp84fVW+tc#*msgQnuLbA{k>^9nYh|kS7#Pu6~kS-I%%w#s4*EWAnU~U zzwHsL?Tplu!u#-peQfm$JJ;dv%=s z;DDuUvC;#OZ_lV4t;MPa%xceLowpcB`dO^xt4*cPa2-ei(6nZUixe2{Q@XFp6>0Th zqZp&_!-B6r*|XFjV%i!KJcz6~%nd~!2Ip1B=*jYf{!PYogN6bk<3OQ#J z<%fM};JdDen#u*xf&>P##4;jk$kByHqS)`i46RWqvk}*DaoBDDZ;iixGa(#Jw2-UT z6`%rE6)c+?JABv*u`+PRJUgUbfOo@-v(b>OV_fx93mm9hFUU#^ki39TC=h5=yEjb7a zqM8`Cuy&rQLDA3;f1)i*gi`jwoT*$RP@lBb%N+9L6VR?pG&qkMYK=n6nAl0U9?YSw z@BvpLNS5;o8aMgZwEG7J8dYy6gqZO2pgCx5pQ~3G*}(+=r$M6&wELmgxlJep28hIT zaCLSI90<2S1uo{qd%Ku!Hf?P}-kxzgRIN0mId85Hu2i&;PK+FN8hb(T48FQt-)~x3 zKr|ph-}aIE>Ktexe?~rs{-=V=HMcfGT@LvY7@;X%Trm*ouN@;Eo3*qxW%7}a*3Zhd zC$6YiCUr^Rw5Yg#JtTPUv;i8^P$h0cl~_}a!Tj9x*%l;OER$sZ*MS|coyYEt5dE-A zthU8$1)tK_{Viaa^yPuKky0qSRW~Pdhj&A|IGb#+6K;C?% z$LLeuv{gbBwS*UVUJjl;SwF9G5ubXX1ukc&l$s*ZcA5_s($vl1t? z=tvk&G@BrM`^2Rw8xOXe33o!K4Kpw+$ww?FiC_R*M7q8w5zrH%FkbW|w}A`%^X;4r z+`S|sRFMpd*zR{%D}+@&Epbp0wJRv}M|Wtd!woqgX-&xs^rXPR$=#IKRnsSI3AUYr zgNzjx_o39giz&q7bayk>i&@+hZbqGbOt*t3*Lg&t!$(~$8wZ)!*mY%&lJ2MEWzB!%X-2R1X5JpaQjNSh8dDRdT{Wi7seVV$}s>PBjzE!H_5~ zAeVWMibfRr2al@E89wZ9ne66bP z-Fy5@sOJexbz!}0hKgVDv312w;ji)Pp-zvZuc*t%WCTm5j+hhIK8?4VOb+M=5W%&W{gWvw=w$8Yb}mfecSKJX5zhv8(S<~1N2$_D&=I^d~}e@^u5|WbO%m&jF$r%F!m@9ZS!NV zCoA)$HJ_;D>>Noh8s;-ieUTYvJgW=sTvIdeyxdeo1TV1TCUVmt2%HGe8n>+mh{tn- zm;UupW;alJ*tmFRBPe7cWeN!dV$_2@j8;loo+8+)vgkT65-W*`uK$JCsF) z5*A-buv>nBdax5+*dfz}_(;k`HyC5Dl>}-DGeC3#ryke4wFhMXBU}-_AEbK{+>!^= zM{Qii<);jt=f3(TCK*gvo%!rqJFL-hTy`H3u?{G0 zq7?fEKw@Q#?3SS7zj()>Kecp754fPZmMv?f6X)(Yzh`AEj8k1zrv!_PYdttnN~b|S zT-jBwKOYj0a*ZCR;ToL@?&QgU9$~j%U*Z|ABX76D!mx2OjPL*f%1_Fw5ReWbM-9qq;jHIxf0d}X%fcV+S+L-i;XJ3)IKkw3u?XBQ^P0pSkaq&N%4`MRG_}!b zE$W>UFby*)zk?G}MJN-^_UJpuE5)*~+nA$j)b-7P0Fu&P$se0PAW3LtU!AAk&b8h2 z!X>5Ov3tN^R};n1ZgNK|?Cd#l9_skfXlj#gQCHuFXz%yBX;IB(mt(0>VoPDjczWcF zo^Bqzu~_pKLTPO3rcS^kd%mm8ggAeSe#*S9G)|H=OXO zeS#orTpdybsDt`E98s~m@^BSVKnxaX)U|+%Zp%@a@#bqH@f%nrwnD1wSTbnoIH{&{ zFJ18&iYq~j$i|n5EoAACc<`Lqroht&j37LhU&d7O{wqW`Vf5RY}8wc zw~{R_k=u{&cZmEna1}Xeqo6p6T}2kB34vc-L_#0pkULpJXI)%I$riY7XI*Qg;wWnr zlGTI;1?pSSQir0At&=xC0NWAI!_jxxU1H^U^jUyAl&%hr#FVgU_@~|2+>*|lE$0Da zG^u`ZX;#I7H_`|ROI_!#(&#K>doYt_5pgdPf5x|!w_U=uoFkv|?3h#9F^p2DRYH*E z1(e?Irw^T56nlFI28S}qd}9vNSn)0#pGW`h@d>|zsI!$oxr zk|B=y+_`&qspaEzCCk)%ipzi4U*EY83!r9{kW9yAoOD;$S5X^)_~mM z%AFr{(IO9l>pAy3Bb3t1fs#s7fFq|Zh@C}>A79FM;<1bvK&uChVw7!491rZhc4*bu0Kc`wuEtqaB|dM(OS_Y3(7-^>=kQ?=Rjq%S^O**gHEQ3+ z>zjuRVJnV(RK5ZSf-LA84U*Tr@s|L75fTl4g?B&qkR=e-1Yku6gj zF_W%2$#5V;tMckCgL!NBHE2*ao#BH;x^IT*#r}862D02KC9pZMIXES^-1H!-jN#C< zG{KpkfDM&#dubatJKEhF&{!cTBCzz)CHF$OOfGJ}4UkZ|ZMk3Mv3;)k)fG0tdhI_v z-7L|$3yMe%rtm}$ZWx^2!g^n5_G@{r1%zy*FMv7~}**uLgx}@E_`=Vvn zOxtI(>N2`IW$LGy`|_4gDO=Ucd3EXcWB@7rTlZ-k=eB(}%NQ?Klu z6$YS{k(?xS%wzN^-H1BIo6IsBv1lA9hGO#Ur%*rh_LKO|S-ZfSXuyZe1ej()gGD4l z0b4>><6aUDz3%Ds1=q(_6*V4hUM)8@>(iylaV;@ZPVd6Ax5pM1pL1fB8FwftOAITV zF9XIBrCuTV<~qu^p!IIeM3kv*Erqc~$s<{T2q2V&73iaYY%J$%8h}vq+U4u#gYQY} zJ5cn$ZLO=biFau7Hi_#1kmY|iY<`edpDmwKelpq~9M*Uq*l8Jo=A_5H}jz%`kam2$qdZd@6UR=!%yxM97(aty$gpv)xm@DBI)$VA7L zZR{0sO3%!0`>_3{(KB3gDo@O?T1n7-yJGk`t;HU z#N#uK$~Ftz#dce|(HqL>p`MV)=%|^xZ063~l|`Xh$LgkA+AmC-yV1EQcbR=fO5>i4 z+}BP>$bU{nH9mcjhUIU7M?Em)Jd2WjLu>nk@6Aaz4RpivYAT}SPgUHxERV2$P5Q@= z2kv*at7lCxR?|p^8Y7$yCiNvrkbN=6XrMUq_EFyymF2w8m5ZC=pptkj8nFH|bdB?I zAKr^tmLiB>a2k-kjaaQ%l6^5Yc`xJEXS`D~79xby<=GI*4BQjk@ZX3taS^i<_B_#QyH$W{pZWI~2T7#8ry+LI38w8TjWZ4i9W|-4( zjA{HJF~6in7Pu%)=CBj0I9N=5q^tNDTmYm(WfGxD&b`O{5liBQ)IU{y*}WHN29vP@ zZi_-w!fphGD%Z{zuE|?m#(FyY)hpu4+{kpF97v|S82Xf`MA~_nKvCH__1sFeMm{SN z;XpE4^}JVTJ&xLnXV{3CMl%wITX#l0#^+=dc&`44peXLd?G#hCu|yyCIJ5PLJ)uQw z-5tT2w{={$-{U;;SIZAiOQ9-BzPap`hen9h7`c+?za7|doP2;0;3 zX?WEw4n_DsH?~09;f;%7jzE;h2R@OU;?DJrKwi%ds?ab2JmTn?qqEw3R^?%W&{(z} z7G=@up#Ei40t{GcY6+m*z`n{$IU6;O)^G)u4V-@A*(%0mUbyoDZ?Q4X@AFAMczf1Q z5`e0uUc$pABK>u5>LYgpfz3o@937X@xu*l%YoR7$L8BBs8r7s`yZhlnSbj$1TXXlfp30G>|4=Vq&7d)@nu!>Vqyt-K#*#ilbC@(mZ4$O+1XBfnp9TDNrs<(e< zx>mr6e99_KTo+bzI39(tZT{UaL{U-HG{r3Bj&zjorj8xbZ#rw=vfKOaX0HY?TIW#y zLAIg(MO)P^Zc9+VjKbx%_<-rbsf=(Oe#=gC48Uf$pfR#?^eTx6-mGjtvkRo!{`8@& z*_V5kWjivAK%Y4qcad3mM#Xc^vT@vit#(Y22D}s>9I*qBJ$sn$+#yD0_8LL1=ZoiG zL@Ld84tcVk>5p&n_wSbUYZfTpq}XU;{Gh)y0jh+Y91#2E><@oSKxp3kUxcAqQs&U_ zIu|^A8DM>(UL7E*WE~UoF2%=i49c}ygMX2n{KM(tZ)XfK9><0Ua5gHuv$@W>*xNst z@!}`nnGgxD$}Kp$K?fzZwxNGO&5hk4Jh3y*p#^$WD5t*IhZwN|%_0w!OBx(n0m{$n z3VN5Lm3Ci>-ijY3_$UNlmJXcUNWd{Tykl4rQzZ(^av1_kZ_2!J*@Nfo(fO&Jdg5Z- z<4hjF0lRvub}%0_qb^T~3nYrO$;W{{&xbw_SD6Et8ivlBC&42&|Io@Q>eH@%v2-fi z&pDjS1Tt@&Xj`@?*jy#ap(dAis*rO5YQT=#H-s9%>w!t|T z3v+LD)VrQ-i3mJjLr>q1jM&|}EB-!Dl(pcZV@T};rE{&**pwr7vU~5y1vaNpN5egXk+xoR9MSgfj3O zkAQ4%J7bJ{y;KEJ*@gqs9p7*&85h>W0V>w=baFvje!HO!NxE{|-Z<&FCr~DOxA7ex zX=`UoM#h@Aan_TNb%5M|npZ`M2O@1YD`1W`yJyF;+r{ZX0%yCya_IkJ(MmdoGqZ>| zZP!}Y@d)+)21q?ides)WmJdciKwKVMnFGAo@Z*>V7Sgd&_oR>hFHA{((Ld@kDWscM z-P#XW+a<veU0szQ=d7T({CKpo3&k|h#_(`juFi9${k#A zT|U?M`V{VY(3R5_a`M6Qa1)t`A8UUcw_4uNqGdzAg{n@e?amsXw7n|0fQq2p{m+?D1JZbilh^FOD?Nz3q-oM`SWcl>bo32&ZrM&TRPA}g+bMKm_ z8)k7W?F}y2S#_gvn)c5ALS)^;quYv1O$RU?liS!`HEukCDDtZWgckc=+eXxsgj`hH;fQ@)G-u z)~{brksqQCGkpM^tG=imw6gil6Tzm43=!(t|J1`xUOl0EHyFpk?jaMSv!h6{MV)@` zXG=qD8(|Vm7vpR!1GRdK;{8{A-jqsFzW#WL1L5=P77H9s|goq+UeSwA%m)@ww zI#{qWA0}ES7l!v*n#!Yr=IJN^E%_!sNZB=TxfI;TnR2r+!*8zyt-_LmFC6guAMCvg zSdRJIHu_+Uu^)pFF=H>uF4{?B2$eR{PNk4EDbh|#8^erEsb(li5hd+aXsZpQ4W$}I zAw-Q*p{XR5>O0TdnE(HM*Z)}Gx7PaByWaO*({ao(Gdw-d{oMEOcm1yGyw3By(omn) zK$(1mg)0LSeFXeg`G_xJr;R-NJcONzv}hsp1n_eT`gIq->nDO+{l{@|`*n)IGn8NtTcEG5)Ysd36pb%`A3#{vY{3r9{KkpW% z8eaJGzGE)C&YyP#W9H}lxe?(6{pY9STdn(Z1;A-yX5K$$-2JC|+g2}cZ}0NmE9q%T zAA#EOt}tSPxJTyDyqbs5Mh}|ow!o)07v(;%ui$*RwyE6d>1rD9S~SmU5=}COO6VOn7&%=gMEmeS2t*BnByL(nK#yl7MQ)slJzmKPT2`|g|w>qgSdR(iQ^7_ zK2oz*E=E024%&VhQ}3<)0xD3Pi}y{CU*ywIbnZJw$j9#WXRL;e{Z5}xV6*XkxX`>W z|M?rMVZnMEy$0_3>EkN?UwIfVdHAtP`-YbE0HZJ34a@4Rqa;H7rkGt(d}_YuYTtFW zB>KuknJMD}HhVKL9otubM#h(Dbz+sRmU+~dOvKV^Vq(kW_QV;?2PhTFL6uQ5!~~l? z|5zcu1{q?l*2+T{7TV~W7x;LuI5;TMZqoe-^$;9A;t48A`_-DV29E|Ro}g7Lmta}? z((x9)kVs^l>zUIf>DtrVVI>$PWV?4=Sg8928&hzVTP@D;STl0mCVxByQ9ypK>WQ$v zC6yQKJ|u34eChHg{r|>I`7f|S|7-21|DdZi*0HlY&9y%^z-4)WKemp3@`n#Ha3!Qf z$_HD;`*xRyQDV~Nl*4vMU2v&oo?BsJ@{Un z-drE}N+67CO@rOt){EQSl%JqJDEmV47>=lm>pv1ph728AKAv8egtx_2R;@y5QT~PG zn7say@uzWitQTUY@q|H>qK={Q69#z3Y7(|xOXpQ9u5fLuZN+VyzWr7u67v9)5!zS5 zfk3<<4mdCq5@8Qm;(Bb`&)b|6vIkmg`GS=bbb3`C=1eFzpE;jn>zJfm2))* zEaCOZxS9ucux3grCI#_a3y( znB(Q;Rdzl~CqnJRABUCKnMdvB2O%?qZJV!p?Ge2xt$`+cf(~xPebJwyaduJ`pgCTh z1eVA_#XWa2WtDVgBG1~Z=|&&#{_W-;5Su=CemX&Y(U7HFRX5(lUij%avk;esO{^>) z?5x~WJ{|zpm3>jGJY4TAZ0T`-r;5AJ(PYDN+Dg*iWi*kS->^U=@(-r3SQdI+2Jl}b z<>)YY37l#51`1yBl|S9**As$%Z8D$^Z`TgrkvMw}5Yfa{d%n%sR#ICnzhL`D7BN?Vmb{m zSZ9%e0D z<37i(s5)MHQPT(MkHX1$W@ktALk8!3quFDe#7KqNKIe62OGdrPV(ecKbdGk-GZ0oSb)^gM7r#p+;DrM>LPF_46pE0(>9eM{cm zhM!lKeZ!MC0?3tJgigPJpYiejVC&{x$6VS3v3dOK2d_vA8qn3@_ioUnpGT~S*np&u zhtd1$(7t8ZyJcJO9zzmHDSW-8GS^gXpze2G18p2qK%z}+^_m-2pI&d2h1bjrLxo`X zYpI8rC)#JkBNT=OJSxrDof@B-?QPqvFj!WHV5kh|Lv<@mb2$Ikh;|h!;F>wk>_nd zexg@~R|!9xm;B>zPW-3J0RMwdEZ&9xylL>?H{rirgzq4mF5#r^lX{d?Vh zT(|!+{rQN!454pF3n0_nGK-?E7!1M`#c?zS6a=6gTaB~>>6&;Fx)`Kqmuc+Rqy3cn zNok+4NWD2nWZDP=e2R@uCzSr}JMM?M;^ix!WN^x$c0Awno#eSM}L06;n5 zw&6`^{j+5|Vr7KBiOD2ezX@p2b#8NmeIYO4+n+W7`gm#2sen`Z9;IQSA@)(H)}75ShWXCvub=~tJfVqUuMKY1qteS`?g}>nJ|B) z@?>w#?OEZKD&z8gg!uCCc^z%3&B3kt!M6EJ(8d4-TpcyZ<|}ihq>feX%2Dcl_s7jQ zv$P^)fjz(6_adMr`=AZpX+|<~!n9sUYJnlHMFp_|??Urb){Wtbi3=q9BTa6+4bH28 zrkyWiv$pmTSdo+l3i*B^9jc#pH~Y;x>$XVZz>s+fd#6cz3j;UN;Po+oSuDGTMKg`j-Uy25pSg}IaEygm{ugH4Kqwydt`HZohCg@cR*b}>T@|(;9l!UX@qwmd`@ILTD&B0KE1;^kpn@;oyzhhMF|0cYqj2Qb zw4qz?8F{Aco2W$I*p}ZnXhpP$lP6WKskB64(%#MJFrZaQXmRZZrS8WLK@kT4U+2!(R93o_Rd@RPCous!{g9(mlN;87N2~%8 zs4p60HvxWxB`$y#B3tIr5NmYATF{)wN3%B-jN01w)#HahpbS3u-9ti|h1u@m1rIF? zz-$W~fj$JxDr)XxoCrWq9jS9V!SF#})|)%p3c3uEm?pwx%eOPM?pKCrA*S#O zg7i_ka&X>0f(<<%zYxX_Fd&DIkOJ;!SiOAx1zZC=;b%Rc|AhOp1~BE$J1}7ylhpWi z1)8&`iTys5dFb9D*Ye}&GQc5hxy-(kRya}8E4AR5YWR`+d8gs$YR+;m9zvJ9FJMoH z*Wr7QBlbFMtQRrf<8XHZNsRYvR_`lItIzO|o@n{W&#d2>4uFXQgS9|dE_*#aEa4he zH3hdLpiB!BZwYS+ZQTj=ap%IcrOuUgZGV~>@;ZSb5u26J)Y5B!hJ+cW`S|KB7<~?m zD^%;uX+mC9hX5)1HsZI$6$fd3C632QB?Yji*<#vO^ERbO0n`c0JG*cD(;`6nOHHTYfR#m(K5;I+ZsWexzA=ZNxe?D0QgaY8)u$196Ss6z zPTtyY?8du=0ajzSEC;x3Gk}|va1)xos(*eQ_bf1^6a^POd#$3FZNF=e`aJ?~e?4XD z{ElO{T;@tDtcej08a$8x3ayC$mBi@!Or8&1%Jh#oG(tk0TuQpRJVBVjPl_5L?O@KI zrey+G`OE4YPtsCp3{l_*I}~bN!_v~^dVaBIlqRc3wo6cRErd?xtrcz}9>nMD>DWxg z!WG&>a2!A=-yNSsGk_U^CSO4k^3F(}FBRGBA$*uMv^q}F$IXBk2@hA7c|;uxDsTm)yVc;H4h=@4Niy0I}xXN+Ds9N~#cZIPt9u^IOsN+}AbyunOZ z3Wt7gDyh4)fK^gEL&rcjQ9#40-1BqMxqGORv)W z{634aE2H&8qJGw&GSL;Lezgc%8$N(p=8KRfhx{fDH}%KTrJ{4|cm zm8nF#-Sc?M;)i&YHG`DjuMkf_2=#kBo!F6@Es!WX471M@)-a|&q%_zs)plXOx9e@g zXim;1>*z$>=|Li04{U>~pUFI>$mc!uY7;rK?(h%x`Tz~(=+KC!e*+E{+VGQCiNj#? zP<}TPz?g!2B67C!E&GR9VJ!>7p|(4V1xK92{X`Y&NutdY-;x_oN;z0V7rS5Gn3;mE zZ9X3IL=a?;k*2eX#x+z3*xlDN5FDqbFgyx73b%LXi~i?ykOQs5&=dsm4GVFVPWC|Wkg@$ zkTI@XahW5=_5%xsQy9Jm&O-wLvU1=DatMtNlKqP}N5!5T-belH_|36;5o!V7(=&lg zcf`)s_{JHk$XLLEIYN&>oNB^{-PViNnc)js2fO!+MjppQ5)9gBOG|4C;QnB$W9cwZ ze>)XBms66&2iUa3)_gKKhGgirwY^5y=gN+LqQn(0c@yo#qB*n}gMwsy&vO@IxSsig zsZWD3py^s~my9nn9nHg&j^`)dCtZv;9v(@@l3Pg?g|KEaY9-^j^L;{)r}ZgVN^uY&qH8^ zp;uJ_Q7S93L#@#TgLI$!c32Z(N5+RL(9vO%N^TM!w$ni-| z`6>R%zw1HEFIPT4)euUR4~@qbm&t)aH_j7dBV-Qw=s&HtK;btAe6T4(zvOTYM1(%@ zES-rQEMUaWtJLV?Dr>=^_u}H@ARVr3!zH#mphFP8K2C#0o_+J<`C3FOY94&4N2Rt4 zx`sTXs<^XNv=lMls?-@|N9VEKS+$tFqa`{hutm67ea3~{yvQ9GA9mZU}{l6h(m zD}UHRDh|!aG+NWesyl7=HN~gaz=MZZnb4`EAB(3*p&1gxO1BCRh!FkA`9@qChaj-Y zy1VuAjCThwv(-ei6H@J=X7{Z4kPXt<5qRUxqWKpI##rgwPh@RhfD-?uXYmrNNy@M8 z&2fcbMEvIVC3_yHjhETGTfAWXri|PPPp(C_7_lRZf1(PzuRm}eJ8m4Ug=*+kd>AP! z^%SJY`N&2^Ma`x!KML5rG+VHixHl)7ba`o*7s!DE9*)zrVfRI>>op*Lm+ieWyD4`c zY%ZCl?S*3sSlLevn>MSe!ar>dN$?zN#3pgX@}Dnf9~@#FW0;s-ZRK#QT`^v(qF-p) z?9xhCbDP4_kTRwwWI&TceM;V8yMl?Nao3Wc%22^A(vjNi@Ni7E1!E_C-c@Vq6N;l$ zN&p%H9>F)M7Am}Boh@P5=Ju2_h|86bY@a%m+@Td=NB^1%3AL_u6L129P+klPB}dLET0NU z%lU#IW8dKYBhN~xO^EI1&okZxbNEMIPH8#hlf@u7nRu1%#rTRzm?u|*J{Tg$c!h*uW!WdD-0}IKSgr$dI zt%Enwt{J^#)F?!AZ`vyge+p(&VNZ7-7Ymmq(uVju5eHhYA}^+dZju9<=E&T_?>R(r za0_^8qnNVMN}#GPaGx1IXBnK*g)xQD@S25HI*!)jqRwCO9Lu6uY9qQTZB5py^G$-qLbX=>>qh3yMLjm7U@_tkD zBZ^R|9cA_^+~D==*Js?G$xN(Zf@R1k4wyPxe_og|Le&@aIR2e`!a&15$}mq~G8!~2#Nu%{yI zEM8gOuAB&ajmvZ+r2KQf!^Y1x z8-rw-I2-}|AWw6vNjTQ2z>jR%E{m*{HVo-vVkrZu@MJM;RH6F?unC4k%9&C!2FwwO z(rE=wgjh!U7us;}3@HG~_m>gzcuyamkTB6-O7RJT(^}b$Mc7-D#+mNj60P}p-6F&h zs_JDMSG8TlH<*%#bZazfB2xw3nT+|^8kQ$QUp_K&1OIYV?5;d#6a{%G1J3Nyk&Lyi zH#q51k2_mS+9&0P5|6f~)VW_>1}el{It0o*jiE}34pUhsTCLJ3nwhwfUxdUXuNiAx zC;mYY&9GPqg)d*jnI-R^fMzkp^Mjqj)jU1_p3MN(t@T4EaGDfzMcf?6D_;@eMfPz; zcbsuQn^-Q@6+F`ijF9`902|~n90GR1F8URA8>=Ou$fkaU!41uS27N&qN-f~~`w1Rn z1;Xm37T5;l;~3s>@!;68sz{tENx>Sg7C5)yLmRf87Sd$KSB44H9zx0dUR-b;V@@M} zQ{R$Cfw+|yTg1t!hU`U=xh)=2jZyba76P8I+}aAngI@djU~cJOgvFjHPG47djKJ%J zdm4O0!*Ie{Wv-wY0FQ1N)v+UJIuo+{*TFa)wQ^xSRg14+`2qH)eoTEhUW^X)d@8p> z6n*}j2f_1HL3b*5J(%Cy&u*Rz_X!F`IDMdG(hJ1zDv@n^!4hXRUR)OWV0Nrl zrp1}rWURxMWEo!n6=g)x^%^u`!l<=qSJ~KD#SJ@ahhAYXt&vi>nCxdsFk#B15OR)0DO(vY@oj>;jP^xvWovp#TP_Z69BZ_arw>~hN(fR0Yy64?X2-j z_T|Vz2(k-4uW|@dvT~j@H=)lsy=5I|qeS4b)`9|FPU6uyULdu7k#>k;(>Sk^27_U! zv>N_!jfc1bD@q&>pem|4ookrj16(yvi~v~@+hQ`^rA$iPlc8bZJWetC4=bQ=;B*ZO zg9%%Mw&q4pYdQd$zy&|Tj1aGXjT>vQ&hwHMeCGXDKCod-F z36jm}mrx^ww6!z4z=?7qzbToWEWGvN>JvwfPzeX84rOZMm!_HJ#^j{3ek2-5vHOSR z1UaK|uKV(+{rkIVfNH3T2O z*<1Cz_u)2Lg=`=rk#_^w{FMW{?Vkb{d`nctN0~DvT`$burT`i+cUB5&O z%(}EVDP}gQ#OKa!K2xdSPNc2Adfi9N&H2o0^{&|((O>HasKbjvm{sEBWNabKXGE(c zD4#k<)?_vGX>k#4Udd(`@RSh%R3}E@`7@4(L>wS64VB56{E0H~KOcwo6ef6-!{*LP&LJO@XrPbe*f9tz zII)8_O3D#JWh?7*^?^x^ORnJnVZ~7>?@U+(>m#A8`amaET+E_5OIH?UBHHxDsS&7|? zIAEBZ@CL7@mvrF!b}hZDJ)5Boy&I_&>g4P0M6ERxsI0;37XHM*NP|YA?}zCv(PVPH z|Mf@qo*DhM8(u?4F0U1anLeqxX04tqac}?_$EbQr&Yy3qaYZQ*K!<;oj+OC2SU!G3 z**QHr>iUHohbVOqy#e@$9A|?(5$s^`%>yIa7?RA8&m2#%n;kFOd}1!3AX1$Ay z9nJ*%<7rN@)|nFtxErhsUVMbyePfYnX`SEOw$T6pLvHI&U;x` zUjs40Vjks}8u;4PV@r{LMj?VK_*=E#ZoyG^VI^|p8yy^CVHa^3#ecHqHu#>(@R?91 zx%B;HxPCA3cy}c<59VJ}oyBIELi`-mC5CFn|r<@&fh_-cFU*)yw0#a`O=;I|tZqW!HYu;fAG zO0fonebf3}wK$`h-5g=r-r-Now_Z|106<{+ySDZ#JjqQp9Jb5$Fv7?L0_wHv;F`IU z%`TsCfFs5>$?=5i>%B(ddwF|HXGH1F&5GB@F@ZB|aShrw>zIgu5i;8@Jv+=AcYynn zO(nCrvEBc7F+Vl*1)oiFAmiz zj9K(*5YYKuN7bh$HRcTE0v2BrC;3G0;?NLLp>b!(L(#ckZ%c~h#>^eOG!={XcbgTZ z!Lsw~bG`cvbhs<=as@l%vIAe(%%ck73(>j9G^2vNZydo}SRLg9*%*Z=7iw>+`UGDP zF~hcGZc1e&0HN$;zT*QR zRu)pEA9xSd_7p0MOBQuwa-y1Bo}G$5iT7wDGJGQ#1G-(sB10~0Ou>kXj;G9|?NEsZ zR;e}~kGa+TGM_~@5f@4%2F94ger_{@bP3$v3%FYW3k!|mV^(9S+`Tb+e%CF%#H03d zy-cd$Z@#X!I1KlW=n;bXwR<_%(4af?ruHDJNp;i=_|`%vqtCU!wiTCYo4WI*0Xu?? zDw;PK8m8rqu+jT$qroei+ehcv#34EcUmqZP!I>gHz7mT01b9nokp_4W_+nobIf_|{ z-jJzN>9~sHs(9o6r$4jtj7qaij!lS=Sw?DHhw@s#x}&e%fW3Q9#?~4eupoyf8+Zfh7h&Hka#g>yN8i%5>6_TnkyQzDy_Cq$^6E|8& zgm_}`K@Bw4hZl{4;0%c!V>1rwgi)2z?YYayZz^<+kbtg-IDqvVBcc zTRi6{FGm+xxb#3ESqqrG#O1(y3{jhNf9Hh44Jr@T6cyn%Oyp1^C?W)14XsTa^t=i$ zNXM^?0A#z`IQA##Co$3GkKaBS z)6_v_^3PvyXgHn+Iumyqae_{?`9us(9|25!U+Y&e*1+T!mw-L0Y%kOwy+>CApQUP8 znB}v#-VaEa(M|zO+l4oryGElG0-{$;($j$+y$7I5b`Cl^sds1PZopwES+sLX)#>(E4;{j_z6(5z=X~crM*K}2_XPfgoCI^_QjNhc9S1oPDQMh0QDOrq z5_tTy-r}5M8Pi(8NIpVu9TpA+^lC4?1?s^D_z;J!oAr=$7OqU+ zh(4A;?Fo#9#ldReY~uCsON(b?&O!RMMC{3gW`sg^by*8h;+dhEPOGYt(HbrGR1SP{H$_Rw^);X;etq(3RE*32fwncvF@IoE5;TdZjh75t#jY<^r>sLVWu% z?B4k;=S~obX6XC_Mch+tPRf(4vET*Dl$JLBi$Y%!St>cPgxETgrAuvRJj?}lJ(QmlZadKE_V+K|or}nLdD#gf0q@#=B?= z!8~k0m}TkN7khr4+m!2p(y?-1|4Ub4LKNgM@JF~OY%lSf6O5Dacat4GoPv%q5sQ6f zy}hm?qvg>|c#U4Rj^Brq%t(BNK0o9=F*gI>Mh-%1dntwHx4f<#vF7y6my^Y!aUTdBj(zBJkite#Ut)*zn= zgY&Q*<0qm==G|DOJ4ok%9R=kJ++p0~^0ak@8E#7>PBi6O#C2Vp+cZynslH0pnj&>z zDm8#eyg)LRhPhAZ2wQ(HF%-bU$VGqfb#v76E-I^#9IFu)kTsiuc z*I>192B^Q4O3qFvWzjjClsl=iqLef~&1Ji+0IQ7p_#i@9NcB5bn;q@L zX@0V5Y=oddwz+roJ$-A?MV?69O6WbBCfrX=>}t^R6enqp4aFy)rAUsooAShvxi;M= zi1Y6S)=p$$Uf_3YaL}-EZ};oqSppz1;z~c>6Y$s<5@XPmMz?lA;&cx4;QKk8^|tJ3SQ?#t?7)fDsF3;(==s zztx?NM=irJ9*1zuO9j)2(=|8`l9Q@y2>H+#Bsjhj5q3<$B!_iay-JsUw20MP-*NXi zC$bCMi}XsEy?i-sjqfoI9!AvE-PN~?HwHVB$d~c?bI0J4H;JWzFft5{v)EMywb|C- ztT5c>UjJdhVuL}qb%Htuh?YvQ68sGqG5aqN8|$6;&16tTwl!!KL}T-?Kg-WAp+_eR zTvlV8*hPC0*C|*fUSt5dpH_PTn`j@n;aO;AT7T?xmz}=dM?1ZeCjaG}#P`@J#glkK*%CF;fYjvWB1e?WNL*2Mc*E!8x8AY8D9{XINC;bheZl1C=Lh)LXmJO>z(jblioUlohR|8<>llKmrGXd)<&@ zWEpUf9})m@R%CFyxYV}qq8}==i&|HTIeiUD*cy7`vAx8nNk7lH+)!0)TH&oRJ!S$d zfHf3CqQl+{64^k@Dylk1`Xyw!Ka*OG{*dRv_~-2N;^_q8j|io308$M&HOKlo!GK4F z@G*BuktdXiOe7y)rTjcbaw5{v4bBd8z*Zj~A;C#okDqmm0`vepal8s~VJ#T53kG`q z27FE)VVOo{QdjmZ+J3@dC()NkJnB)0ld&kxU$aStBOXj2DKuM8<{Kwto0C-Y75RNE zS!h%x>_f+2n*a~{@*tZb>GlS8sCRK*%lP7~Tl8e*GQ!It7Qf)3<`ag<_diH2vCq_{ zE37Uo)6I2vbTCG`NcTGV`KRCq;749oZ*yPoe2}vwP_x?trA#&1m6aGzKt}+3ad8Ex zv}%d%k>5IR{fgh|7SGy2(DLgf;qYJH8#^L#xHt%r>!|vmQy5*tzyYS!KHPzBJzQr? zBmsWBtO5l$pHwUCX&<7pKGXCAhFr>MjEO?(p`bfw+Y@sq9Q<0-4A=0sVgQFQFp}&X zP_iC9`|20=@8|~|tEfF#WOIfv%%3>QRL-u}sXmwiB9<^W(hk^1>OFNmTMbSqqZc&s zjHl?uqlxwGbAv!vY=*`41FH3~_d!H*6+^aU+952$g~YH8_LixW+)ws@=YgEg{0Aw|dBGFf}m@9pVph_=}F z7kL`n+IJ2h9G8Yek|ReOW2~E5&0kba`PD*VTDEWO~)l__hLP6o8eOjZKRS7FLi&qhNp^VY(+1 zL0(>c8WRtg{ek(AH1Boz3oD@AK`&mT#I_JSHd|RQM)xR(qzG(r1W$a_4!xtt<38W2 zEZS_2`qO45(+L5+N-07wM?!$e5~dlDZ-f?niH(A76N=u`E@9bd?5qd%UgoJ3fJk9F z2@xx#_eE}I*@9T*g_Ib_L$y^OIvxYJj!91U)(ZnYfZr!)N{YT!WdlQT}tY&3kvo-5BZKO|~%sXRX8M&<(Eq zh{pGTRgS&^%Mb9F%WhTme(wf|)CBUk(4EI=R*Npa0Cj>tUzF*ZHN7z7@e_=dNxjwY zCv=tli|)^#7%P=vj67ibmh%@bpDcx=l5^pUXBFts1v?}kLbTp>d}<*IBo4N+S~mlz z-p?-Q?6D4@4f?qOxo?R}Un7rOaAMUQ2fo|^9_VeC;571>fp=%C)PEiP9U>fO&L9Rp z@z{)Kjva;st3G5JYef1($Vev(H}pF`HgYg!OxGa!CF#&=lF;2ue+9}r^$sK)I!5Vm zxEJ$5pJ|0HSx?4SJzAa-9q{4-aWJN3J`eZf0n}v{-y+b><5IkS8xmV^Aw?QLFtb7H!fJ3o#TL6F3gf zJY_v8)6*aUBKL|64H8<=Ch-Oi8EJPB{mFW%IjdGJ!>3o>n-|P1zwJl27#e?E?>Fdz z9cgn&>k`+`YBmT)U+*y%hP;8MaFAa8YDLAQZFo=-XN$y8?*Vf=BfloW27hv*O@9J* zA}L#o#?{Fla=+>}4}={bwQV5apc;41Md^HeMA9z+rYEBPx9K1EPBMx69B}Xlpzudv z>o!xu*U;&YIuiYPrb`sgsrekGKSZivPWyVE&*tHl0BUD|hH zAQ1$;?!nEDy4O)_g1UeNERxtycAAE;dMlah&6XbeQB^MoEF+f)Edr2wKzib!=Wql* zD-%fw`|dov<9B2)PDpj9B@@P0QP4`eBy5$C4*P*3!%)tP5Ke0$GXz4U?$#Oy(lP7K z7a__Tpo612GHbZ>Td_jFWFQ^^QHI*siSGfIgfOKdl?XX&>iSgcxghBxLzT0%%fMMR z<7{x8?FjO#zUteBOo~jPd9rV@psr@ti8OsM$oE4&5;a&8ZlJG>#=*w1FPf1HJ~PE;Gnx z;6?)L@N`?&Y#;QN^FamcK?HPK@(?Yz#Jh99*S2G~mE2~!5GwH0EX-8tFZ%W*Te!%e zPVr7t9>VC8A4I$Ij~UO_`+A6B8wYvBqor4NtZ@le+P8;% zBzfgEXjpHm@jm=3YR5T1jdZ`{enU_Ix-=}!a|k-wfrqj{#9fF@5- z&d$v{V%UDx|Lr+_T)X|*Ofvu!Y$ON0@H2F3bwusL#x5s{ZbgyTFw?>wX`*GX1dSe9 zkYb;IaILPqPg^B2s6M=L&M9*7K8jOeHIn;j&>%}lCL;hXaF8#?$RJ71brRTTA<=1R zX}WX21<+*i=0pPxac`Rh)!v`J zZzdJWXwzP@SH{;7cmY8MkJ0(vSkmmc5rcle!adzIZ1OUy`_8mo+owuUYPIjA38)qe zT@?4DAG1wtpnWv*b+QrV>j|3(y*${mPU0Lxg-n8aYmf&oN;tF}n?qem)(WROvw0tL z_RX<3+e?}*dxWwfL)@w&C4eN(8b(C%1ditv&{(F+^clMu1f+ZvH#rg0U0LlFj(f8} zv~;vaUY7g-y2diJLegIX`7L!B*t3J@5CsE7Nchz23LOII!?+cLc!cRFSVmdvJx3yT zF0_JT0LU!b3=K1Orgls3F%09 zEF^&#<;*cj4Zn$#w}(ZmBLG#Tj7E*+$-xAz6<;N;`~Z_$qq)lD7IDgHORF;glRHua z;wli(c&eHMrSd@zo*@4q6>V!yF|0v*&xaDVHfj^MqUa}iB66ibVG-QlIV1`!U2JOF zp%awifbw`3B_3|*S9%i;=XegXt^pe7VTS7@gged9nUTdw2_BUKZ@YSD?vYX4uQE@! z5f~x5AYSj^*NBZU_9t0fRjXFt$B_Qg4U>q6-R+8>-YD2UX-1+?gmXAg&KD`eJZ zo2}o%C(X+=r_Wt{4MKca^Y+Jq=a*4d;DM=0R+HF4S2l56FMe}%QTr2!p?L>DU!YGI z22N~scR< z6Oak+a$o8psX*c62O!-sy48Jw*rY^=$-TF}OwA%vLBS#&yaSxv5>#dz*B4e2%Ow$u zW86s1l^+TU&r(+o-5ISZcV2f^IxeaP^k8qHA80fU4OU$B7`ALUDU;slNjrA6BEl4) z)){4+*|NIiyA}S=yK5j44o3uFcgPWayY2@>!jUR+$fzH>SRDG!>i-Cx{m-QT(I{U= zS^`#RrIC5WnQ~_S$XJs~V#F;Tjw=*$6VOJUKGSO?7Q~^-f{7oJi^`y2Pt<4Js1!A^ z6ty<3EV~n=U-gk9x6IGaCXU)SEQo;gY79ZmjQ(2{s2SP!-8}~A#ckL>{ zB$$?pPP-!07B)AauTb$YG|a!PLgSmBEUefHw>sk6!sr^XMl0OT#*>k8YUxfRn$5Q$ zv*Tc##ESRMNFQ7%>9BZud1_Hb+LXAHPHyI~a}Jt2>_)}r8u)kjowhEM^LP-w;VowS z${Z@*@hZ)3;rD+$lkpA5MJ~=@Ux;dcsO#5TNQ|F5l8`NQaO_P~21WVjqw&ffLsOP` zxQu?nS(s#2QEyZsKDYF!1G19G=zT1dEAW(&U2Wx=N;E+_<7L>LgT@gUf_E(qc^Y9H zQ_C`wM+dc;F_L}GdCR+Us-1VfT9G$=PIFFP*`%uv{JVEZM|3{9Jo9O=n$?KkY#J-$ zGlxng%H#4T%n?gW-{zh=yXp45xO$%>!pv;|_I^OMB3H^YS0*)@;|~>dcd2#vC>tc5 z%iQ^D@TJ*#gJ1d(vf!13gL~PaeUwlJ$Y$)rDBB%n=0JTXL8!P zpeZDVe16f~;*f@GDJkwUO<7W}7aq|#pXnEiX9$4`5lfDVspwqy=v0SHW$&1Xkknm6 zHs%<(G$1gVINjG{?dTY_DkY_7b8=kmL|6j89y9d8>3|5sXZl}=s`g`I6oVK!+kR+B zgsqE!D>_#WnL>9g%G3zH*p(`EaEeL!dHcY?Ku~S+=7*6c`rCFvu#dbz+}0oWI-e>T zj3_f!xVoMsKvE0v9qLW?T$RGIs)3%yJUwtoSV*5(^m}eF*~hzA*2OD9EiDuh0!u)(#(#xl46)q)4SCyI++mY)dO_EcN23uO)ebUIGsS zZN;6A(O)yYh704jGZ^F3uz_kh;seC_)sSfvzRul+He>CfiMwWRP<`&dLGvh@da|sc zM(kX~#tsq^SMPQHm`g5>*t;jF_ce}IQpd@r6-F!Hw9rBMC(MFFaQDFhc;V*62&|13 zBmql^FW7fisY_t9@z(phPS_wBNa8G|&N|gvUx~gBWIBzI{wLE8@m`qUgHl()pC0hc zmdN%?cgKxeg7a9In88jB{t|LG8-z)wBD}1ix-&_QpVg7Dff!{FR6m@p5Tc|W-Bs1Q z?qyzrJ%CWefb)5|*u(Y-_)ttI*i2lMllsEK_#wnhI2MS)&)txI4$uhu8-YcZc`0## zd0x04yX7Ieeh7GtZhuZqU@sO!CB;!FSTHiN6CjAcTLW_*PaoY5Wf^l3VO%B~b4Sn2hp1&Rd?l_TKgAuMoJwC`rZGIzP#M+zN9Hh8VDu=y)YduW`4 zWI|`kgRV=T4rWCDqa316eK$YR&`A_W)-}+RTpqjZX{W69_GF#}Omr{0KU;tOaj?7@ ziBAu3CWix$Vm?>UZ_uPfmFilwAxO@tg-Xv0p{fA1&dRQR$C^Ks{K@QFjjj;|$i(G$ zy|s_`*CZkZ@Rp+@m@jSxeSu$ttYXxGaSzAo7oksqoth^N&ttMBSW%%+nSiBZY^@k| zq__LN!QG~g9IaZernkj*%Il-PpujFiq4t;z2W{m|kk&gdMr$9mX|9!Y zyu^tC-Y+OPF~92=Xvu3Z z4k)ElzJvKEzb^ACVJHpcXdD~wgL>>zduNgnp>qTmVH^a2ICHi-&@8b@8LRbbP@>&T z&C_Fg64Gb-)E-8fTS}9qfA67hJ|Oi2#LN&h!?D8rw(`2#f0~H!E7y^MiIbiwf+FDqKq$qE)`@XX#R*&jxbVwqymAQm)2dP2r1M&@3%y1-fesAP(FTX?By{-9}f|1 zpl~z(-Xj0qZ-TDT{noZ}K+ANdTnz?l-krX>VA{ANS?jFn` zXapVR)93`w;-xd&KSn2L3TAWbo&RZiLM|-iQCNOl;Tsm0tbDDVx(k+aVHks;cLkFH zybMbR!Cu~GaHxfwveWe+yrh78)=SzG(M8T681>04FG}0LdC({0xYvdWrkHjcVMnzW zn8K&%&!@62-tf1pswZR)42e*Mren;Ov9KsRcf6a8SbV|Lr|LHdwsRckE||)N!@)tY z{DZ}M@h(h`lh?Xjhq?$U26m}G-Qiaw`Fwk&Gy^u4BJDXG$jaWIj4vv}g0scJkqdQa z(~*$G2aZpe2HFXU-moisU_-+BO53a@>>;D@WAzAgL5rMYoy@1i{Ce6#g{chZS);y5 z?|90_zk5|maeCoW-RXQ=x@$@5RrD;Lk7P#qiM_Y+R6e1{%WVvS0LrrOv1ZSkkk#7H zi4sy9!M7OYrz95Y{%)gi%h$3VCCS zD)%#KsVxI)KAXR4$f;W=Zyh>dC$>%Tncc#l(+yCc6?>up+o z@yeosYabohpY`(}Re2I!w@s%VjNa+8%r~L5{(bkRZ1;B%y8nLS^)T!qKWUJ9EXGVbi2G-|lYsVL*%J zwn%ByICKFkrYL{-O>ucY(fj;Oq^%= zdR#R$H7oAj)8)UC=jYfY+-VE%>2CUM==`gTrFK9!5MK?ehE3`A5lW{mzyCh!5YWbo zk;CtU53}Q8>xV!#?;_jA5S|f*i4X4WM$A5dhr|Eax_&eF|uSZF_{@VYIB3Qg} zS1e2JJyqJb14O^qIQQM=qW;ylEDec{-1El9Z}aWOJ=fY}Pt0nnFYrY+ANvSk!XPScCyLX^Yc|B}s2}@Vw6r1QN z%Uf1G$#%bnfq9K}24=~XBGI$H#^?8An+6%DR@^F@U+LG;oB$G0R91g=)5!8@kS_0m zF<_1NL5&iB`fQL@0?tyYy#soBk^xC{yeu1@;~id`LATiagpz)-Ogk6K~TqOy{eVp(^q;GK z{ghmP{S^}`;pdmcPycn~$B)C{kfKdzS}y!d-SR2L_;T>4kJ!KV@3;K>UW)!+L?Y4O zyGQhQ*!VkM;;8uhpb-6kdP1&`tZZt3)S{{B=Ub7RyGjv2h4ABj>#rQ)JuP~LpZ{6t zzV~Nt<6v&y?pLa8Yx(EzZ65V7+1fy2xntCs`t;bpGKVzfy<hW~kWVvOQ zt7p*eQI+!=H3IWAs`t)pTAk_?fAN^R)#t@WEHqAd&rDl?Bk60+b@?j8M|^IwuI5>l z+}>kHtu($ejZ8;Nc!yH-+H;FEV;@h~oB54>)4K~Z4YI!psJDUCoD;mn`RT@xVY@4`65{8{ zN|~C3d~`Y&iAx$@3RJBo-!riT(F2m%iru>7q z(bt;AZ2FgE1fQIz{?}DK3yYY`*>=LuxyCR4w|&=X4^Rhv{Lz)TG4s=Z|M&ceqiy+U z*0dGddMwWA49*EM>xwW_+pu8+TdW+)E?M$v=UsQvOg!4QI$Bq4-@bjlHS>F?DtF%2 zvIp6Q+}h6heJ^s*hMJc5@Y9-;^BcU>&UF0b$tCEMggk%#eCv9uGcsXto_G7xT@5Mt zELd*-u;IgB*!I1%^*(W8I^XrLhb)p_@Nd^@O{TViL15nt&rUNhyx7*Qc4FJR)SRrp zR^a}&Q=3QE|Mck5Be$0;r>O1Rxie`tsa}7r?CS$p^Lv<^n=2?Nw3aw$FBaa!LAk>r z9i6FG=;su`Lz65S@#i&OcUgyD$e;N1k3%0?=l9urfZC|+*(U3Gg6b7i!==HHg4e|T z^_A-XarygW{zF!i<1gTab}xboQT3)-U%S~jOQoHPdtRM-+l6jnF{)>;E0Zhv7h0}9 zP!HFEH$3;>JlOvyvEe`D8~#Uc$&!qmo~oRAnxA6h{@Sl>wyGT-IYnAiVO~PkJ0rA6 zryvM^S|fIYmu~vqqbt%gLvD_$JzUCaE|j;1PwAOm-SfuT`^2X`@ht7LU}<|NC#O7B z)#J2pErm!zKg6wY#N=hCfHM61ckFG?>8<2z=`h*}3vX?_*3_*1OE^3hPf5m^Dy+E-gq!CwYR>n)3b#1pAgV&>pe?A5p{a> zwkN-|lmuyaFan0{1bR+{VqX}Ar z1M=gK+?)d%(J4he>iCVi!SZGGD?b9%z$ z$ z4}5{;sgLc|?ezb;2sMota=;=n&)lL zzUDq9&-aHtPr+s2cd$0at)m-!Y~9S4Lj;U@EiOM9d|HD0Ye(BmRc&qVeUejT`ytXW8=Y*|$lkw=28{yqxWNbWZ z-KVv)|HL;BRvibYK>9X%=chX`6DKdMycN2BSu!A=zP%_r*89`i@8CK zS^|%(ld{<@K6y1KTJvSI7n1b199~bBU;yN8{q#G0AnX3X9h47!pF67+#Lmd1q$EQ( z6CWQR7ht4qN44Cha)Ej0efpK%Wlwk06D;qj%AoA-CvoX*CDU(5zR6Y`-c~o(@_Bzp z{H0s-zUm@8V6zvn3%b?U-PfD*5Ds#NonVman3;uMym&FQX;X7yY0u-*7sGA$-u$t0 zf4NinWee5g9m&Zr4&{0O^?BC^Y9M6|-Tmm1{mq)Zzn<{3{?3IrX6|=T z{VT_l*31a|w7x_!C925}WMpLg*C;9?6qRIvBVbD zWj9m@2LDr%cE|tI^Exq0E@E@JhI(LKrLpl}PfsM8<@iT;b?Gd4d|f!8(HA54X+Mje zwa@(jQ#SSYG5Wu6dzMV}g_QQHT++)w%ZZ@ilhVZrsVQRKu@z(}eW+FLHMd(NihPFb z)xqPPrDuwe1)?x`GvV2t=zX8>_pZFr?5P}zNj#ZH530=Ez2ziGnT?H&UMiyN0~>X5q?s5vhNjm~R+j2la^RAL zVykhiL8NDO_EvN}@RDZrkxCcvxl%8mB+m_fcvbbuV$p(#p)q+ECCs{wGWNV$D>=`b z9u`6b9q?@W@ZrN}1VoN`T2p5ci;SRk*LH3@9^lPl&YlG9OgSF z!|39Z)PlfM#lL?1KEv|K-F_k!{HE0(*MGRs`r=~&xBb_VeGQ>rCq$>Vv`Nl;?z3n8 zAkl)x1A~|L(30->z2dW*r220@bmx*={s?6FoCc8uu7l{=fyG9HYR((&cQD_(H%)G^ zDDB9m1^=kDp8fjG|64($Wa8nn_VejMiq0`x9J;)&IJ}dPv}h_2vur6yx#$>Wcq@HD z>+4H4HfA9&CT1+!eZf$ues+&?eXXr#W)hI6u5Z!gEs4gET+ZO7S(=|u-n2~m)K$4N z-QEt`_nd7P{F<2GuHpJxyXc{nYv%-4=SZKq*1f^iW|RK1M`j^HAeW1s zx%}sSug66ugezV(S8>T6>GUE_W#@>I7n}=D#-+PxWQ-IW8e3)9(=qH-=#2yqnW8B# zRr}^DJ!}p2lvSE#=Hi}zDCbG=r9l#q89#sd7b>6Abp?-7R8i@v(Lx&62cpX}7-x^S9Y4hyp*o_@|Z(d1woblZc zAm-VDX%F7IzSp$vb+kP$bK!YR>xJG~YVzx^Hf&9O7QXLtq@&FP7iaT`3k#bL*Mdol2gv^Y*J6Da*T;<7-n=JECp+Z1%ZqT68=s)GT1${7s)J zKipw_x$B1%nLBDb>XKh%rwq&k1p)m>hlaJz9(_SKYIIAI4jE6r^XTHE>B&}^4o*fT z7BAYZHvW9Swy~qbf6w+FMM;%r!_YIM3-#A%ED&AKQ^D=r{c>W~!{F(GsoQ!A0t04c zw?@u!k6bWqba9Nv>xhCwsUC~vV^x(K*CHQh(M58 z2=k1TL*qhZ44jj*_jC4shR^re zaigDG^JH}(T0sbn3Y&RU!-SBwsZ4L#N8aAuurl?yw&>cVY{Yjb5^Ms@3ADE$%>_ov z)vvw!Oc-hz*=!`JIc{N4>Z4QK;c4TJjIe2(oqQhVf*whoPIH~e5(ozF3DP)(&ktHaPh&)gansZCSPn~B3k?YgKQ z$5!&T5xg$8|D~%*RFJrdX-ilQ>E)Sce zgZXU+NN55t((4Lm3Pir6Euoif_IX&WPu_~ropy3B?UTht zj}5Ya|FG#%TeLgb%WuVPdp;%Czc3aoMQIG>nwgW?j~=2S(GyIvGa>NSO zRAIaEZn(cjhd1777}(GdZ5KMJe_GOVFE^Re^hjv@*mfyju;Q^0?66rI#=3 z;Jx;FO<^YSXn0BRu)*~Un%Tpr;dQ$+jyA5`RO+EqHKh3xqTO=E`h^(RQr&EltO~~+ zr-Kh1T51pmbYP9yQ!HhxnWKDoFC+e5m_tXCa&SevXew9AceF!klIux-Grl9gY%$hR zku3ML?+Pp;IBF-QNqoel#EYff8o!Q`GyT_EMK6p>$v?~#X0_IV2UQw%3CgKvwK{p+ z4>K!yp~uWs8v6nBT7E5@sbpS|}4)5N~+$XNi#O^XR6K7OIr~CW6xhD8t&9%1wG;zV##qJi@MO8knKY_m&M2xc8fuG< z?|R+h+FYTeF}NVL^Xp}s%7F$8ir2hCWa-AhrDUX}0;yZYgwYK5%dMWx>pXqz1p3Xj z1YQs^iTJec6P2}W;M9L@Fw6M zG5EVrDq{kIqw|ljt?+oTC?-C&7)nkx{;!fh*B;H5U~~BX$iK zplO3XJC^q(AhuFTP=t>USBMLB%Zw|BPd=xZ%?XrH5ru%=1Fh9-0jDwxxs@J zN1q+vnLP6nbJQL;2C~E{Ztz-}ipx>O{=CZA;Q0lg+@qU598{Fgnw%VCBI@q4K8CPo1~xj9UJ?~i z?EA9-(ZYHi9~EWDJ(7fW_I8)G58$;e&qUJ5i2DS}J1S_PQ3H}OQ(`hnL6FjuTbKIGr&Zg1|3a}ZuH->@- zhh>|**r}7+)K=xG0&2cV34MJlp>ag1Kb0D=`>4#lNKY2hdJ$3Mni*))hFj5FRD>pA zW>66+hl+)nfzj2xp7o=%r)QLrVe2Y`zYUu_#cgpATAJ{5aACCDn871NB#rcz@ikg2i$A zmaR}Kj#z=49X|Jnpub#|`aW%L#7k(_NN?$M(erk$EVt2I@k4aarkBW^0$tNpr_TOqWy*Rp^qj*}`WD2I< zR&Ju^c>F29j+S|xF|LPloyfE@ilozo>!z_Sz6b}s(X-Om#_*0_%>8lMM~v%!e9HPf z&|R5OPmT77T|R%%QeI=hT#Z`ypvbS3m6$A;v2Umy2% z4$gTPKHZ9Sjr6vlP(}AKOLE8|dL7Oa!J2xlNvKv;*Ry*P@g7mfVfB5o#Otg|s?;s! z%qedAwQxF(-3|63%n|F;$tx3aqMge2vd(6w6S3i+_@D)h?P~Joguz?ktX-={Rm5W{ zgJbq#N79GaTx7{PiWanO~r|hq2vvX$?GPcET-k zOL()M$xyo46!k+$z>fF9Vb}fFH)1=&??JfMz015H0;W`9aK~k8c$d2~*jcaJkVWy~ zW+cJ5Ie5-TtBhMiMICr{Ib3vUpL$^bj*{rdDRzLxd_OsKSagI)+^EJ2O z+n4rnhoJm~2EWcbk-07dYM;|F%cSnz&FIx8v=+Tiq;|N=7J~@+oOn#C;D^&@1BL05 z1-s@Hb=Y%*FE=H^1n(aCS)dMKOM}-Z>8RWh2QDo7KHUGT4qdAuchWDjLK=eH4cV1q zHAlOWTY}*OFEd8GtYH`JS9@Fp9sfrvnHK!)F{bHDp{eZtu>Fs{3 zv9P;tH#FJ|4z`}kpQ_`F0tgEQ z38xu?;nod#sAfDe(zMku$?>Mc1}b;3vs?|`8LK+pxLskF_c$&2rGWjG@5jF{I>IYv)~OJ02)=_CnR1p14(NG=2@ni*fBw*OVaml)e zyC|4#==z{S3E$}LaDPI<3@T|TMX?OZ6xgIxgsG3YHO;h`*v!s4N1qIV$MN9v^7~XN zQo=!}w_r?1TO1Og$De3j4~~AVQ6ivy;2u7T73}OS>k8N~p%)jHU98fpBJG?}66iCP z(N25q6%qrNe<~3h(lDh{CF} zewU~GPR(bOGSa{N4J0*D4+W3>ge#k{$kF8ykw5Jr*SD3N?;X7=^!976{Ndnv9%Sce z`SxB3eHd`}-mkJS8;a1(l5M&9E`zbswT_GzlIt=HaQ6nAR(KOb1`uZ-F+bTvdKms(E`{TVVS-73FjJ0m0(8oc($BAsv1BTAlMy=vWmIm zbzvs{y_;#ZV>Jocq=$`c_0%2R=rv))RK_}}@;__i5e{LKrmjK#@YlZOA=5dppz{bv zA8XVphUM6plES>Fs7P(QJA$@(lH(j7BfJ%iDxTwd`^g`EoD>B`Izz^t<>TwLBkuc; zyxENQ$4_e8m_Hy|3p8$CO-$s>|E&CFpKMT>Tu(*&qn54kA{~1PulCD~i5q2M?Ll@F zn^BZCYGSNr2+JIpM--@gU!5{2_&tW8CttylABPmdqevsq8sBuqfB&fF_yLV@t^P47AYQpnun<(Z;O+(4-*MZRnd|w-aNanaY$^YItQQQcKiYt0endrlqTQFy|^?HZz8=?x?;gC+g?_`%N zJmgp6TASX>4Bu*1P^-C3 zR3i-EWBm4J;a0r4B&zr9Cqm|BYAuDUaO2me~-Mmk3`E67gCV* z)F#avq34ROn9?g{mh?OuT!_Kgz{LahsYYUZ`=a26< zxRAa-|0{VJ8N`8-Lg7gKzvN_q?pzO^`-F`MxZ7IMq&a&lA=!};>bzLInR!p@Uun5- zsI%zm4qCKBXH)1ssVGTFTXWPiFJ@BO7y@X=AWK6ZpVdIbW|$}0Cx2nNU%@0S@5Hks zN0S;lZ$ju>DO<#rm&44T_G#+hJZHQ|%Pts(&Kz1E++hyrhR5|#PGdp^?z5*X zh!ig+R2VPZM9g59r{CLlMuj$~C%0uTPVNm0+iY|6p7-pK&aNj)CFdAOqH-;$u6bb0 z4*gqzp;>~cPH6^;+8IgSD6Mb1c{0IPYo~3wmYPobxz2CZ#(}o9SR#(m)7_=d)jRY? zGf_MB0!rP8qIB$w(!a?19*@iNcgG3IcvqFu4Qbce{(z}tj+)of>u&S>nYBWh@eKNj59?#6kQi6iyfGBrq|0}(c$oibuOoc(r8Xnm? zCmbLf6se=r%sq#sWehhJJ_hfUeQ<;mA0e>!yP&;Dznqc!i9@gaED35fZg$^!dv~Ty zuw!%=QFI-CRV(4xV0l%zlz~!3!MSSY&E7DWLCw||2R z`qA4n<(7d+nXF3UBO7*q1#-xnE~p^K!mLnp=`6Qg9h*}k{rnW4ol_DLw|w^N<{vy= zvSI3wcR$vx&8N|*wMPn3rw1L*lvIG__o?{XX_eLZl3EG|-{0sg{-H`Cw?J`%56;qb z-YvHh?3%mMw>uBzk?eFLHp^;^9}f${*~(2@_WXkf&p#~0Y#`g5V$?^A*E&=PKa_yb zXC~`edTZV0B~<;wo-r#jk(zPX&l>nEHKI5CwJ(VWE&oc=J;i*Fm43)~gfy>6X~R@%p#uR z7K`V0GA6jYq)Lt8OEID;4_a~KEye8{p_2yoa$n5E`ZeR!$>>@=P>4yWjBm|eR)DnU z1?t&nPJA#bB65x(Yicwd(kzePHFO%t1(}-%rv@OHlyI*Zy3N1kp_iuHynb?q+}tlP#;L<2Ek`wPzP(BCn8<6~hH9dc z+w@A=zf75o!UxkUoXMsT=st2oMf&hqn#JaUW!#VX-lz-H=wq>YHE+Qj`IuORXX;RbTDhMKkoyDVYB)=Xy$lEq{w3#%J?PX zmG9*S49FYi>Goi8L5d}Gm4}5Dlc1aI-5gshnHrdbyvcA5=H4+2@0uj9t<}}v<`j~j z2_Iy;>e_DIaf39KXi{>B1uRQHQQ;v4)AWZ~t>m?S*{}%CdH|BK1-a%PWrm#atIQq?pR= zl#{8tT{(1KaxBXw&~O+XF{VMvm24g64}2U)9O<+*=Xs)Wi;LLGW(l;Hm{@yYr&(d} zC6Ed>R9I2VJPTb4b}!%p)Bj#h^d*^4VHTF=Q^ep6E53AD8BaN660rmvQqxnU-*b+TAUiG_N^P2C7 zV*>oC;Dd|pMc$PWD`Vn*$NM^GxbfzUPw_1$KlXuu*-)f2lA}*N6MX zbu=_MxgPJ_!N=$2+Zd+;ENmU%U+O2i;;x!cj5izSo1qMv*n?qB_N{x+q!1g5YsdK+ zsDBXBSYx&YZtVK6K&iTpSVq(WEpP85rt<}(WX zw-u2*5^>lJr8=EHbF@j0hbR0ZE)QTUr!wl}w?`|H2=8?Zv=(nMS#c$LceFt{m{A*z zhO`+?Wu8K0)$$RWeJxDgp2)kA8soyils`PhF!+hw{@W{^} zs>ptHZqRVO7x`k#@&E%QYc`u-IZ@S1mA2Rc`G1=vuI+2p{x@nY=>&eG2i3 z|D9Bg5XoQ9L9n1Gk_ov;V?=t@;svRq7}Gn^<5%XiMLQz1t(9AJfFZ_J?O8AaJR?|9M3E@)r$Z>vDi-U zS!N)O(Wb+>ebKm-hUePwNSW$#RgYX(gA4P04Ivqd9LPw_o9lKc;Dkg(a!oS=Wiv}? z+|bDVNXixKj0+^y3T*p{r*2dSpFZaSuD_dCzc187#He# z=I*EI7Qkotbc1#|>rL^zC@6|pAP5i=ySDY-!oXZfsDq76z-ZrD2`*i<3LcoEavMPb zMeC!uN-B)6>C9E!)&Px3J$B!EsFJ>xaJ_T{9BjP($4V0&85r0C`WW9?`$k;KK>f+E>(r)e{^QU0z}`0o^h90Q7iUFcJy6l*GS!qxsw;D-XdughW!pTta3Wk z4gM)(&aQR?&TB$~xIPE&;}`qX$|L4;;eKz4!Dj$uKq(RrN}YHLR*&hu#{$Z$s)&if zZE9t)+Y@UIH6>lcb>B*q25Vo~0lb3}6c7=03kkAMaALr~^*ONgre~ujJl14}hRMcr zz)nbC*txK>^*3t}tPeW8efadp%RRG#Aj)*KZ;*4Vb{BQhS+!c`^5x4Dn*iL)T-tZb zCrS8vbs?NJNxy*|DalNif)v-NDm6h@Vp!g%=w^MeTI0rhm*eya=c zenz7ETdU)5NT&wpBWGTDdI2k zJ*0LDJUIqH9-3gjRlf!f`;))Sy?bwQ)L6A5RMd%l3nD)Kn!mwz*YCj;_Bs1c+V2N^ zRrj{}U$EE5uWOk@qS%1;_*qjir4izO?91CMA<=v(d}aLN9DD62C2*nHf4`8#4sS)p z+B`l!J``A9p5EWMvbqG&xu3TlmILVBzpu*=IMeUnUymvMR`*I&IQVJ6Ykzr02~rsT zphm>Xc;P5O%+5-@pGYGdnJnHC?+V z#vjZ6gkVr!W6*ssKuy&7??=rmjTCGblt$0JiCto~ah!a8t2-8RYwHSxi~BL3 z;Eb)?gD0kF{j5(IJz>TyFTyc7P?JuCRHu|sYZDr;H#__|XVfP`ig9Lu< z9Jst+%YN|PO8*(K#nwwomda!^R9x9ft4SKUD4^#Ma zMO2a7IbCp-+lErfYsbGWay9$PdiLg+tzIvf9F1SC2AeOJ1kAiPF!Af3Jgh?2Z`1F+ z^0|bVg9tN2Ee0&jWHu6>XoVC4kL|%z!WG#7nOR%ADbyKE!oKXUiuAl7I6pgJ2sb~u zeZ0Eo4H$FSz23uq?#-{k6PDh+d-q(MaCZnFS0VO(#WI0VAaX4q*_I1f5~owhH?}Ki zLX+s#owDAq|4MaD@7#Cq2>Yq_{?$YAZF(j)5%d%hBCInc9!@GX9vTYG>4*WBSC{BP z+Ig&VY|+4*Zt>dB>jH9!i{eb!mP#dUQBj_^j!lVc=Dpa}BRJ75|+ z75KB2gjR8NwYu1-Mp`5Kn}Y_LSC_XY$NHR2cENv$KljpBHI(sLnrVRBssJxLM13Q+ zPz&&lr5K|i&YQ=r1$*=l_QiLy!qoNxb;Ij;c&oXT)i)*PI>iDW1-mw^n5FBpV&+16 zu~|CSbIl_L@DGIv6*2>4d1ey%fW!kF4e-&2f!*H>YTpwQIfy~J+v7r>T-^h&E|KuH zaicj;&dz#>Ljqhmtu+%+bi4j3nLh5mI*tv#2*zl;^CX5_L3(|#DQpEKsO6w2N@aV6 z8ttx~V@%f%6QFoE5!&+&8U*$Vit|C=NrZ64;!1H+Aykvz^5F#fn{f$}{M-!*33rXK zOjR)phMCB z0M;aZN(r>2TPSgUES&@SUCT+zKuEAhC~H19_Ryja>sPF*dz~>nu2kvKF}n3wVqces z9c88bJCnNb_0~Z#UaIFisS{JBVd9})V4&7DnLVjp+!APw@>(F6Fwmb)os%(mpH+=; z^j>TB+-h8W3lp|bKUJnZJN4N{oQcOGKXE+-tha!>blkz3L?y2z5;g3xH@TkVUq6gF zWe{z+zRk^t-+GRSnP5I>bPv zM;2z!F)1|k^ek(zd=ZY@rLxkw3Kl_!*cv5#>T%detY>4VCejtY0O}&s?dMbgeeO3~ zxWA`*P9R{!H)?gn^X5bCDhA)3a!Y!?jy7gu{?bPx>IsAk#F(Eme zjcFG2^7&-WyH?de_jIC$Rs0b}Xq;v?rtL)13jVU$Kw2V?S3IBm7Phn9Nj@ORPruwT z(Y}xmi#0Qg>C1m~S~8_d)arZoDjCZyI%L|S{xp}szZc+fO8(jqAZ)k#h>VH=DT(gK zm;N5UeU9~ud&bT{Z5oXuQErJHy4lr6Cw%9%dZGU0`%G*=d`uKKo$JLTPvIDpzLB&2 z!s^P_2#cM*lAi$(X2VTSK0Fmv_FcOtGBOz*7tpLxWw%LlzHGbbc25`GnF-9^ ztP@gsKLBhn_)R2ha3|_JU&GFa5GT<7@{m%Q4I!ULTN}7I4hTnjWWW%YKjurb+I(E% zQ@Sbiqw+EX?UqG=e{{~@``A%>RCLG2;2G}q8PQtZz#rRcH1#7|D2!Aoq;#LWU~?Von2m^rUfxA~3RmHz?{rt^9m zQwB8>2f0xTQKAK}uK~wSm;5W-Z$3AIr3nbOX zqp9KhwB-?ZXY_=lE_Q{q61^j&n7_F5g~a;$IL;p+bj^i%a!`N&b;=qUe^@8$luLVn zVuy!w7WFiAv1W*5=2*J+WZpdS=Tf1>m6V@l(BQO0j15rEt@TWa`&;ykQ-Mfwt$$u#vgEs+@K##tH}lOy=RB__KPz5bso>ln;#RuVeIKS?MO;=v<93cVmI~GtrJ;03 zgeCb~+48w#V4G$bz>7MR@F zn7bYm8J^|BXaQ7}2P9(Em%GWtF?&M zApd1UAwWjRK#x%a&@zpa2lwTpEYA08`%^#UH4bcb&&r)oPY&}&G(ze$4-S|x6ih6MWuPREJql3Yg1}LrUYPYw# z=p!W}4HYuA;rqk*{Yv?%xsz!JEOlmg(69^kug^gR8qXp%^|A}gTD6VcB>8rR&lPq2 zgfvFmbVZfyN@A_XBgq4g=LJ7sUbMt1NKM07RMu$XRB}W4UWpLQUkS(uPp_@CWoEPm z8NJqV!!uJ@tM8qd7Mo$o3TfG4S4tYthrB{w0b1qA;pE1y5wwn#*nt?iOm^$Y*v5Wa z;yV01BPGa!-<~U$5&&I9dz*4FKLb0x)vv~g@q4{=*}7pYaDa4JjTSO7XKToE&V@@2 zf<}<;89>*JK(87uLua!A6#!i1yL*T{$Mku=#ad6OIUY;kz*W;RLSLb`ladmwL!Cv#QDhi-`ogFpH@9x1x{5)aiO+oG8fL49 zrcj^=L!o5G9icAGTWS)~?Q{kEg%9vwD zmW-j^SN)gfh5Ng+lt;7DE5BBnZe|@nFw~8X^VhyToGZz@**am!3h{7GK4zYSw1-bZ zcp1yWKEi}xgIn3<7w4b$Y?(Qbdo;*;mbo_1xH&>84eg&a-rB&lPx4$Nsa=M|tWia2 zYX-Fh#`$9{h0Hj)b#=&z;AR5wgLN(~EkP$Gxsg0lP(3q06;N&=FdFbIVV^2ht||CV z>6uqAA7U1xn!J-J>Efj||o=(Tz5?IyGZolG@4zW0TC_9dw7I?+29q#Fmraz1bD1*QqmT+*UOy z-CenaQw{1w)^HZfhEW>FIhp~Gk(Kad6h zu6ARmu!PI{$zLZ8sm4nEt9NbQU9>hznw3$TDf~Pd{!nq zW+r*Vo0Bjft{C+q9n(Sk(8w3T9rTFM70Z1oVvW$$sJ(ptY~EfxJGyqc`F3S!b-=YS z6c`$T9SdY`k}tnzywqkLjJZPRl$6CcC*wYn-q`K&FeTF!)W7SMzF(r0FPll91ZuC% zjAJYP2YcTgO~mJGU6yXq*Ok>byW05yz2C7MA7f|ufj&4jM%qe?q1W`JV@`Q6oMN5t z`AZEp2t$-z*yGtGU&&-UM%>r4$}}4fY2cTNr$GU`@mL4UvCTeVi&NyfI}g73E+hfp zFs!{%Wasoy;06mFql9;9$AK{EL5_V|A9~Cu4%L&`HmpTsrzF%*yZ)|hg41#F$lGzG zd`wQ7XxD@K*DWV3T8`baojIOFOO-;{mWSI!{_Ln*8W@LqRy@xlGK_A(UzdJ3?n2Dl zF+T}cJY8D5%VePpa*%RBSCu(hVm)Q92JT4TAljQPWdeKu+fa`jFOpcWb~E1Rsg zF;uM~$0Y%SbvJspVS3ov@3!B8h_Jq25hhBZ9%q!J1mpKC41OO)47qvE>{u~ljU~U5 zApO{befr@`l-m`g=W4%Q7^IWaLF)8e;@}pWdXC0>{AU{s zk9Kzbpi>6z<+ClOG^FSf`fjHg{20fUJDBJ~+W(nkH1gB6&Ph(HSm$otF$7?jxFI6c<*LLa;dt1)eLIttC| z{i&pIQwLSmimqtnqy}(Y!guN7P^lV(N&^7ZIyLEGPA@&-`@xNtnF+7%(x^aVgUx+O zM$WcDPOtQsnW{q+CBD}E`})1}3H?1U4gA_VI!E+Em+QUH9orVX^<_Q&B+D+6lWI&s%vIi$ZbP*2^ zxZCsQ1EtKc?$crfW7_2TWjsvuaK?>>O!M}O!*Aeqp-bq=^Ie4qGLG*=_yt$vXThvg zoIoe()tKWg9?|BxyA;(fpBuWS5Y)Dwn#CEe?nK66TF|kya3QI$Ho~;NOJfGa;7L|i zFyY${rQ@11TZ;!7B2qIaVBz{c%q&W_#v_ZWs52HYFd1bdMYOor|Esp+&*qQfn}4)` zj2du77j!KTJOjShBPO9rSB^n!WlH%H#kw}{km*p>5`HZa78YjbkoTDN4X`6$psz1- zj3GxTLY;Bz)gKgO+{C)m*cGKR=t@b0XYaC#EIE?SHI9oashZuB&yb#d)BAV{fH>QO zr1sqe>-xQPZh`mi9ADNN1(- zS_Z_5Vf0u!r>`&_qcQf|kRPmIR4=2{I>20He0}fOl7ZN>0K%;GW9VU9Mkh$FzB=3B z7af1*vt~Xl3C917^lQDLVq`BNnJi`)V@VYAZT|>@Yj7g!(GL##G-W zh}KdQ*7Cu+f=o^{TT7wx7XIZ$^2@6MIA=CM(3vZKP#<%mI z_GZ>n9$%GP-#oxn$~wTsC*altXNbb zix(>NC1`v%^Z=-+X+0V>mc5mVW;jMWzHpEgH{5dz0q&t zRMzat&dxJQ!3u)Hi>T@@T> zpFM39LxwQQtj-#xOJNvRsKJ(6gM*8DSRH7cUdL<*(ok8_~?@7B$behUIKj)yn66a zi`&VYFm83iAjV#`fSSiM&Nk^t@gTb^)ji$t~S%QkvRlI*qz%_yu6Su2cn*XVd&H-y2~)O(u=!! zbg@NA*Lz|dLBR^$Rwg!RbR1{?Aoi$^{mAS_hVg7|1eVQ@eE$E>Es9!!1<`*f9`>Zz1@AW&RdUPhju(p5!o#ivh>c#LLK zQUV6%hr03t*#>d?hb2DV`S)&vhO0AdA7XygBDTbW!>r1XHL_o%Ca+K!UbAPIaZJ-n%EfMvEKwh5Ll9PKN9Q+sS6? ztj&-`q9#zL#UU)>I7K3}N%YycHFjH6P^PIZY$%l#u)EL~&XVh2hC9&b_*3Kya795% zWw1%^ zLS6;Z#qDlNc#@h6dIw}Fkhi=ibD4HVM1zn3h41n|o;s=Q?K!`G@A}-1B#theH*Se& zHmZ;rD^}{?Jv>BH(X;x1-hOw>JSC`~BG;k3qF{{z0^IDyGb^xd;d}tUr@Hd4dlog6 ziTGSny(?4*FJ?|W1j(xoz)>i;6Wt{!GvM6t0*RmfRS{z;}1|=+q^9H*`;wcy7C%=HPkQWcLreEw85-> zp>Fg3pfl$lreoMvLt|}Z9`WIZf@;%0?89J}PqY{5tSAIoaKeu}_^wOawe;!4M@BVv z@XQ#(LAi;oaq2TyO5Ui){R=COqh1Rc$(1{wGdJWdeLT8!MVnd#TZp~))OgHb|B~F0 zH_g76A>0~;aV$}f(RKW}#(7;Rq{q*d8MbdMhuld?3FIg@Z?3h+(2FagQ48;rkNdS& z=(WT~M4Gl~9`40gTPY#c^M@ODuD6Q*n?vUbd1W zZOJGGH8`|`sqvaPK7Rn8Jm-aT`WjTzLE7UX6Q7tu0HyPZddrHl4k)j$>0r13nv-6vYt#wk*NPg@%fr$q%?({TdNLad^+!Fa)NK>+DVR9DyzeDHp$K$`PtBhKdr#kf(g7kc#w*M}1v zQ7pRT=rB`f&>?9yP{6YZ8Z0*}4f0!i&%)g6_I0q3p`U>U3I%T#@6A00$Sf~bdB3}UTg+A z>Clbe1>0&chnCyZoKGWqP~X84pv3kI)D1)$1J1f1GmHV?^Z6;gdi&h_a@X)xXuI5< zpx`UPy3}TE7k3$GpdCUt!dNW$k7f~=A^5be+EJQ!ph9#FQ4+uMGIc{xATm%9 zzJ{DGvzhXZ^5GGH^4`&dD3(C+@dT^wBg;-1$5SlBP60(09yC&jjw;D`89LQfy5SlL zG|Ua`97rJiTB6X){zUNS{t$mn(dj9Us|QWsLCw!EP*Zr6n$_sVD2>6k7q)yX%J9@R z3{Y!g-P4qbt1_WEyg;m*4OvEM#eCo4mJvQ<6`01G2a<{yQQyWXYkz8|<`lwRy(V5n znCS4dn_L`KG~@aZ)R@Czd8;=ypC=#H7|4~|Q7b(_1`eYy)> z&HgTH52+PdvT^h4W+3`lcdh$gO)pENXNFPFpJ9FWA(D1^^}YhZ6b|RR!C|#5x5r1w zXjpB_gpJ8Dj9GNhfTS;79tILKH_GE0Ql`^d-+}ZeJ$DH@Nzpm;r zeC+e;hdVB2#}h^8JKAiIbhv664lVEEnOA#n13$Z9p}u-l+(cn(b1G+({pvf=N@2Y< zi|b|Mw^>Zdy?1tO31rB33eDpW5AEJ)E!BslDe@6oF=g(JUQbS(q}Qld(i`(eWWLLi zbz%2a#=mS{q0MzNl}vBD@Trl@*o09 z8`~jI*&j*QR&@=jl+FE5>G*IO1EvHw<)`0c8sR63g>^v3?u?!!ERpY%zo_18 zGmBz8l+}%?K%qZ|_3pLXewy6i2QMF5wt#EVR|s_s40iy&fenriZAm?}tYFCrt{JKW z3U#5Qie7X9!#XOH*2B*#nX5}s-O5;>7D$%1(I!(%!stFh-uGR|FDviANS_6z`_<^fYPJMyA@eDk|YGrE^0r&6Iz4aubCSX3D^wHUb z4%yuqHxQP_8_+Tg1w-NKT`DB!%*-guwaK*PD=QK$1 zBhnvdGH%Q0uB&V}ly$qU(`!6&cok!G-w` zQ*B#2Zw8@@7I*mfX8B6N_-tj$?XB%#4jHh!8)bdTJ%XXSLX+(lC0y^S>wm&AC&JZAuK_z$mA2BpCg1@1t24sie;(ncM9kIX4@3gzCd^_HwrQxL_feN`Y zrlIs+L>x$({IeCn2ha+@o3KiL{(al36&-ZjmxQQ!uQQ77CmP0(v2l=HP zz*pjS0QYz(6Edel=2FsZ3Ve#);^W}sLH3@m58!-jw@M(!f@Xwjb)ihcHKMS zB4u1%03{BcD79Lthj>zJHLK>G_sfj#3PtG*_qFV~^iKEf%C63f2M;J@Z2k}4-a0C- zEc3TYfS7ovTGICD{VIPbrD1b8f5;= zY$GPmr5B&Px{oi=1lvaza5HZelqS0*!xV1DK2FcK5DKQ=9XyB4Yh2HvRXxqDwbpkj zUGCo$y&2N9>QP-I=nArMU7O#FUd}=?4)76h9uJ;Gblf}O33N`bKWZH$F-fyBM6Z8ayWMSU}Vzun%#%j9?m3G)K;&J5P@8d_2p3xjl!*p6%Tqj_hn z?S2$dx!anD+&Yf6p=p+#eLmlQru*YfIjom8NEc6;SlYU+l|HZ-VA!P~?zq)j_w6(B zsCd_pCT;qFnpB~k*Rtv9L6Po1s@p5JZs7$cM%1YfDrs#Q{D#A@I2@d(Zel2JspVK& znkA|-<;l#~bljODUy1or(@(Mk)~AVET`fV(JwKN!WG+Zt%7>^kJ<>^8(wEzJOp!ID zbiU?GT$vj?JEl&EE#8zbgYq<^F&vzyQ9|^sIvRsJRJ0pkIhicTZu-iYt8afU7#>c^ z*jCHY&`f#~ARsHD;96dC>ZI)Z);M!fXt4A)Uw%%Dk#tY%4|G^yritSOrEt$XV-T9i z1suZ7YCH~*CK@sN4HiP5^UqrR69Y1;QYQ00+iyUsqIt(aO?if!lNT0Ccwc)2$X8?L zf?$;_-g3>@j9udFLL`hqzu&rbU&Drf(i~I}_*qKQXQS=Lr{TSG|Q3Mh;d;3Bi^9(YNc6LdtVw-iT>=|?S^XU# z)T>OjtxWF2tG$ zrAwcl5?f^Byu3RvCStUFs^P&6u*t|Prfz6>s%U za~EmnjoVAq7?JV@M1GtJpXe6|Mn~-_*3PEQotF%SevRlhi%YtUC8PO+d*rRCOyo4% ze)j;++0e?+h+w6O-+lt;R8%BF=Z`Gt$;p7?jUP+n-Re)9;pRtl0<9VZ>t0_toAPc3 zrtKXqj#pb#Lp&ygYdC67{E`@JN)Q9h%KIb`UBulE5Jn;bYAL~VL%MqdduC&1?)w+T zbI6N>Wi!`6ltOxQ4p>aVXg3-b)z4G9Bdp{z@qH7<%c@<6SS>nF(cwisCY>Q0bJIcw zDaqx!dD)M7#>1Ik;4k&oYgi52_V`W=JQ@9+B({tRNbTD*DOqwijWfeN5p~j=qTL^_ zrSGjX2bE7>=$2HQL2>ZzCd}rW%YYJv<8j?VP^+&G5wc>7#)m(6j_tG5+}T+QWbN4z z`)|S&4+7CLCGB}Nb_c-fDqGn!pCe7eAoau2ho3*X)B8DqM6kHkeR^xN? zwK>Kqw7IlRa6A>_*~$R)qi81ZiyEHpl)L!VkE2>ecAk#IDI7XMn1?Q4)1PSK#u5M3 zK|~|aA>l->PtuNbS+S|0Ea*dts}4Ej0F?o=4()_sQJMpIR9Q}gA- zSWPV5G9Nh1H$p%{waM&91Mhur$*6wgq%N(&$U}lnr54uBO0g`lOwdUM^GJD&6!v-> zH?GJe5*7%*GZ>aQ?Xl|dCEhjeB4vbAOCi4IwU)Fjg_AXOHsmKRrilxgcMKMXwCu-=ctBG0*Nz0a0@e^A~Y}+Rbm*Y?#6agZE`+i)LGV zqDnS0I@r_11!wv}$P%5wD1EiNgyG4dObYM5a`k`uGFK``AR?aP2s;j7HAX#tD zrE}D(P;vZSk>OLm3r9X$ceq=-WYE>I?k~xrXxmRqFDCeKFtt^ZTBsqQ27>IbIx~j( zZ|VuXQ3EK8mwbYJ4MKUUgiDtdY%sDT^#;X%s4)_E4x9$gi@esI9YU{j;}WOuSrZ45 zQ}+BioWoA#K}yg@1Q1w{XpaX=kqNDyCInm}HNL*~re3<$RO(@5ak0gx{%*2ATMYL3 ziAGktM_$s+_T`yb^d5fz#UEyBh>W%=Gza$Gy|7-QCY_EIU5h#5L|hDFg-5u=bD(8r zXTR2fHV0+VPJ2K(LB_fQT$O{96x`aOgdV(3`~BsY28Q!m{gJY#5>=X!Z(c?&C2W9t zFowEV_$o6OKb`>}xl}8tMLSgL!t{|_XPY-^fRAmalI68)eIZMNTUZ(m+Q6|i|6Tc@ zv*BNr4+197L3M=Ur#UkoaBfwNKd$v$o4-~$${E>2Fj!Um)G|U&bc=)a)oHGv!r^Cr zLBRucLAwPi+DO88k4lgw$pc2F7t326k#vkny|b&bTY=r`w%q~%KhG!GJh#gDd~2~Z z-Int}%F#6e|6j`SjAGr@9W zB~bzC%p@<7U#xY8oGJj1dZoT!h zoy%?IHttsKn9Ev1U1aV!{SJ`*QTt%b;Vapz)pjY^)lnYfueMu6bX9iGH5hmt>1NnA zJ0n|i?Dr4#7fny3(t$JVdogpf90UNER?)ikRizD=$O~e7jkC_pY-DOOp$-kLoJXiT z3X41!Vaeq|&);iVFao4MCkovUVNY19DRX5Fyj?IHyq|4y34xbdW^#FP9S8Q{*_>}nB+ zG?uqtJOdRaS3BV2rvUht$Z);j5X8nIB`Q}ImAbZ=+z4kjt1smpeZjS*7PpZEgII== z|38sY3oTH7_L zJ!UdRe820szwp79d12opA7_YPAP55KClKsGrW&6&b zxs^GOf$K|QvXp-#f=DmB1K`gWX@dNjMqjtZ_#ozJxTgIgsqW&Ib&2r$*@bFc{_D*T z5gR!2Bu48xGDq{{Vj5(y`--;I1n`VUz? zIL^=&hA6!05E0nCtMsW;?d|F}{lT1^mt$I7=A2PR4tfh?W(ypgnKyi8oG573euPiL zu!ehxL+W?prX?r@eO5hg-6L!}X~W_(=-fu|D~HoHI8JvWp8k5l9o34P;7h>I2wB`= z>aFNO*AlsG#l&ATsy3&``W}WZ8;@4rPo>VBa%u(`-#%)@riYUt|2#3U!ZIYYl{aQ@|_PaCyaPb2Jnt`enjI7>7?$^JnmE|&M6#9#S5YuD8iNwO}tl; z{46mOnvMD(VOcp%v-~CGW@ouLl+QYUVEJbq@FWMC0i_eBVXnO5eM>4N}h>)w)!dYJfm6LA9NBdCX>}N z7~)>cu18v{N!(7exZ3o7T$@4HY$|{f&(MLlIyc)Sf7?{nDbsOwD+IQ!My8_VA+keK zhoe0oQ8T8I*m0h@xNW0`B17z-m9DKtV`AZ@X;Nv%Vaw@mD&{y z?{WBf9cnK^Ce9&qG)I|`aO5ZT9>@u9Bv;hZVscVfm-43PakaVXjmw8r+*N!C3AHrJ z%Px5^^xMn>kD~RZ1Ubj|BF79sd76bgi;K-INKtN3A?BEFAB93vfg1FC=Orwk z6vx&V`wcDE=^sLXGB?C2OItnMVYf(%~osgil5?&zx1O#fS1 zcTv@#ft&0Ypm6W$FR?RZ!+8$%Dr~ZRHRyaLC>La#c=H*u3vr`!gI}q=E;O4{R$Ud1 zEyT5xwfI<#4TH^tovyC5(ce$?d+{YySc&&Ad%}^co#%FhVc5y`;|W!DJ&zV6F?5Lf z1JrkrDD6G|9Q^RE3evlG{|^j3iQ5*jHSx{OIQY1dAlqo+%dT)9e6%x(vq)}+?f_wH zbnrg*#pT^}Tl)q2qa(%x%{jq~oQ1lIRA-_Z5@n z;nDQJf&!qixC_4|8+)jJ)Gc_k10Pp3cK#x?vjqWJg0PL7dKu#v=jYEf zkiPR*Ym@kW6@zMCXwzKqADrj}z~8M+|MJv3aOzRt-}Hs?AQL^cdiZux5qC^~`-9Qf z2M_)u4-|c%jsNmP(Et8!h7^CLz5jWj7$1D&Kb!ipK@`|4+AzTselW#1Y&nxVtgKw! zJzqp*@<9d;M{lQhfAMU|dMy@~Uv$YrcR#JvC0%HR4($b4uQ-9qAz*}GYS%i;CtZBI z59$J}uH_j0o)7jPb*LG|g?G31;=tZ*=93MxfF3Zsnf6jgbw}%$6T_P3`UbnZM_yw* z!@7=*wKvw25Slg;Nz@~I6@#rc!D~y%!)TCpdUfAiS^Ps8Z+rYru&In<4;A~r)_IvlL4k8e2gB|u?MF&*N2;&*iBhWJkAbbpr-OgHE?mCdAm$RE5wZOzOQl6)o*Nowf z`wO*aY7NVwHk+NP`;)|c^YZf}sq=Izpqs_)m(M&XFYlNg6srL?`2*kEAb&0fT{yt| z$cX)GMvx{bc<_(bxF~^UpZ~OHBmdZ80)6-a5_IvO^I-1b|CxI>KgNRE0sb2p!TNJH zyq>dG6?73mt{nyZ8P^T&OFc}OJ-2MHU7;i=E<{hGUgJ~)KRG@Oq;^Ix|Cg@VJyYs3 zGh4xAMQ7OXGBs3r!J{J70n;@KqKc#exfDZ7`Q0|-*SM`m*0LFz6L};jAnfdFWDe44pN~98`ILN>-Jr1Yvz!FV>puc4F<@V17mn9Bvh&i-p}rp zjo!1MjVbz=x=%{^8sY_yFoLgKyLN2{?jU*B(g*`%DP(u6F0;U5B2A!9CoemzkcbXF zMA2aTJ$rQJg};bFwRNs(+kXqgyUUK3T%*A%0m!Y9M;I7v*fO+Z-{nAsh~MpVs@*Vy z(DYQ7xD!U(1K*~H)fI&_7va4Gw@d><0P? z?~))5AHWtC7uD&&NV~lLOZuYC7WA-p3I1k0V=-Rx5ulYO(7Q#oNrm0ueoFB7#!-#r z1G`RMnLir60fCmGcQb3F{|5sv-PV2SYlsyOj(cnUgFy5GCD+sGiE(McBx7Jy`TS>= z8_7e)r0+F>A{!VFM$sbU&lU|hz{Z`pn%E~5tizwN{G*Hj8+O{wr$A?}l%WZb57u)% z4!uE_bm%uRF)(h8xRq!b8Wubcv?#UN$7%u$<5%miMJb5)IfdbiAP@}KROzCLe~gxxKk4?_evYRYsrHq@YQdZjs$WN z6Dg6@=p%GpF?xg6;~SwaKk6&W&?NMm09~$rUv<#%e~KL*5djH(d+l0k;`M77ue8Bj zqvr^efNV)4^I`FsTLJ$E=LkEl4x~$ud{Qy#O;DU(>ekR!PM;K{gxQV&&iyVX11K~i zBBFiH=DS-m*j7Zx*;MjRQd>HQPmbh`jI+HIEVs`D4+2C4gf618GTM~@Bcoj-%9W8( zxyn2O4iZ@b=R^YK+KS7H=6kDMUrTVPana$wSrhgQW7NBjiz%UF3YNMh! z^b9HZ!-lssuU==SLke)R9x0e4U|DsDU#bp{*SY#Dufa#0M&p65`AmBD$HG^@UYA1! zp8Jd*hjYH@3BK;J6P6S{ZB+qn5!{~hrDC}INsaEB`W)EQh^*lv>3q;@fElFMLl&QL zCsU#w3~Xd7s;ZiF>CJs(;8z<~*lLj(6dTPXY)%^%7DKXcpF;++{cwQX)-XYT6NX-o zG`UZYwn_$S#!dDDwPywyAXL>#X$JcX;@rZcC&%X?NApDSH$%Y8R!@GTM&N+=(IY|5 zw0-2r>gtj)dW?CPbtzeEe)=(%S|U{d^X6J=R&>nSPz&7$SGPI-gLmx0ODfeii;Hc= zq`_>1dwclNp5Qj~e_R88WBe}^r0;+D3w?)o?xmrG{`YtLea~Iw45A+F>;m z{$+UFep#u)r9?$ld6hc|ErS73R3`)k97EWiKs1!)Q-J(KGF^7lB|ry_@8e)*4o%C+ zua;u&6*Ne|#3-J?rgBd%G3i|cg|RL&+kjULi0-go0${_)>ZMqi!(xQ0hCfTr|0quZ z4_{hx;5(JTP%W_kmf#v-BesmMb2e>Y5<8T0a>b+YfXoGN_Soy_q0jPNEta8} z*jPV*er7EpUb)(nwrxbd|07Rvo{Gak4vZJD6 ztc(`_oj^Reo^Ng~AXkE^f16RSkrpLZ|4o0gX})giHJX%zU<4xp0|48}&o{=-wo>+= zwvTt`Pt}HFW%n#niA|xud`9FG9nYM|8nK*`NnK+7zPH(Qd@7(>|X_f zF2}r)nvWbGNULW)XRts_slSQ@U7iE<_5Z>E`#(-!-h8kugFHV!KP9E1G-237@7#YV z4=}OhLlrq~xa(?GH0jw{Q&~Rmv~dzEgm2nIW)(-9M^9w(p2LbBuBnQ-pQtfXOffFA+YHRi~3! z5SgGsJi{E7R8W#HzqWAupHl?rGEPR7wY1Y}X6JrXn|2jg{8NqAyW!A4`seq}oz2>g zUoBLw6a+LRMo>Z?9=S4kaBKg{IU$4?Ei&+MV?N0Imo=rwq7lrBQbn1bD9oo^#B4E2 zS_|2?1&f+|b_*1Nw=>f(?9%1Ur_5`wMK08*Yi( z5gd=Bqvyz6#OtJ*4AFF&7JGjwDdp{F?mqEA7FV?0D@?v(CGE`Di2h z@773e%xc?71HnPC@=9fiD{u~EM!H!I`Qgc|xxyqR!fCTpDyoN+O0-}CKW*cw#e`(C zZ3_A(w6$??zbDd(_hJuw6h4Pp*U3ATVa*Q?o_u(l=d{|QIhwtSeFaa4EkmLgl>-|k zW%g>!?0fQ+SQ{7NrYU|}^>z301-%_@*7=*gEdi^xf()r$dlVKIrv;RXQsGybBbS9* z3fY#KJR7%ms8aG<5$;V)Q4wh-V&%hWZ`;huXP6_Rkp7bCY+dziu9|9sj~~AJ_!7A1 z$-o&Ihwk2DQs+|!3kj<&1<1oPa;_$kt>gVBPXprWi|V%Hc*Fjra#-p~#=-?Nc!lJA zZCKeik0=djKpoaR@>d{#SsiyVdBCVz>SB-s?6W&TFwwt>sThW{$hmdg`$n)hv2=f$m1SY)X;p(yzA@Ym_;rt}KP6IPSPOV8&A!_t#crzSl)uReNB3g| zcLe=3LMV`9dCZInfSv1ybF+PGICpMX*qxT&k@Y*bcfR^2Aw+*Z9upsylIEDFT_s=7 zp)l92S-NFf0L2Pi?ZYqNdq0&Ni*i&y@9iaURSYFBUW8zJxyD6G`PKL3)%y?V1<9U; zc388j*6%16@~*Z&?r}1kUnU*$cwVgC@Ep5(c4T!h6V88F?kYgK$XpI-Iy0}&)R{K^ z!IaS0gQF}sUSK+-Ff8aP*?N_3*v%n{JGxWk*e+~BRy_&x^FLNffNbq!We#AugSl8- z&Mo;n6fYgVSo+tdf9TLPRsFg@Y(Ay_IF1_cWZ1;Vo*Huho%!TM#&d{^A2m{_U4pbI;YtZ$2spa;`p0j;6EjSRuV%SDF9oGIH2aA~Z7l z;7Dx3qu^x^Yy(`Aqxb10sER(2;u|StT)8$r6LQOD|IuT+G#hGq8v=_u`tIBC2Dydh zmO9aw)q09b{rYi{R%=Sj73K>%@vJA`u14fq4J8)D7L}?V51HUa(i}X3ZzLgm*da|D zYnxO`Khl%a>>{EjXdvaX#3gw6G1f2GM>=O*k9=vEr}KN3VT;uxxNn&Y>AgOw2C%Nn z!xPiySh(tlUpZS9uh=MQtPdwfHDoeJ&@iZ(s-C~DFh^~LsD=_KIL%)7!MuL=-vSw0 zqk+%yj-&eOa4E%L;_wHFkM#XqAGTB0AANcrd(Ki8ACh);*lO~DiH@lHt3*Yz@?lc3 z0=$aOS?h$a;ma!X=MpaYWkd^|_OfNRD2s~Y85t&jhQ8s9VCw0Ctm%kVEN8N&W?}dS z*IRDPTOKlGk!kLB5N^Iv51BHw!r2g7VzUn2x!LvMxFz}9HsbkFgUKG#qSxa7d&9BAh@1Y7 zR*Ix3|C(rpJ9a?pu}nE5 zWlhzRx${ih*oAJ+JSgD0ZBR_e->s)Cmy)I@E9W7?wpk@5&Dl{yHC^)@(}$*=wl}E- z3n^{zMv;am4uvf$5iBL~qm!AWPCJ1oGhtN`rM~Ogi`qA5`Uv;z!@W+(up#MSm$Q@@ z8ZI{&&645hWyH#?T9sz%)$len+uA9pPHW~ywr1#p$|w813r~1G$xnW+EV;D?uFpmI zZxH|14qA>+zkDPqr!Nem)QQP$bFo(|?j>3o9QpR*CXSNxJ6oP#o078<_sXAbH_GzH z_sz>v=LV0zQ=0oyYL-%@{YU%ZbrwRVVj^0`C!B6FQtJt3@+qGyd-ZDR(!c5?y$y|* zjt>Q*nJVsS*3G#PJw?xT%nW*RsSP2s6wSqoXw+`DvZq+={uwgFa6sd;{OCbDhMMn7?YDTxvA$s`csTm|ZnAqfooba;AB;=)Q|Sn-@jVVcn6mjU4mj z#(Ipv;ANmsYwUaup|o_)(!vZq*4-f!5)^;bGF$wuNK9|gIO;?th`L=xJwNn)^Xrm0 zY3cr-kIeaR$v(m1qy z3u+dTz9PXr*b7@xrNvtL3KdV8G%s!~dhw)~r1cUoC{l0-JW9awSRUbcJu z!%^DQ!mO!Ej;ZuUdf4hm(`3yJz(f(ebX3S2b=zW(qa&6ha(Gkp-e@1dKG(eANPUsh zb3F7bK+Q{;$UlKy__>m{2)FOBG##lN%D-j$Z7=`5w-9bZ0)86EIfuxgoOQ)%XvamI z^Z_Qcst$8|ZpD*`edZlnstfq`kL_5fi7 z+}w>Xs}Fs>C{F#<7p~5nA>(@A35sF%$4rQs8&7PEB}3E{mR~ESR7@!AR!LZz&@kus zZ?e+*`cWec7qJX@tLGdoYil6dCO!mJw-si;x++iAs%)58Wb15{33nT+9z|7jGDDg? zhiBzes?W4>>S0WseF&Dap{cCwvlceH4{`MwYcS@5!mLK(&AbBbjRMK)bgj(~#`?Av zyw$W^bx$BrLLzFK5|*HnkoV7&-qgmKf8MvtkWua&&6?ATI_|-xv6ej{E8QM3GG}Ku zCQ+{ZZpqXH-pajF++&M$Qugwl!8tR0LlWE+q&fI-9nADntOM#OaGifqa3?*O`MnJKmFxW&`-Cp*p zQ;P@jbIur(MY6-*yvga7S(92F*FGn#J1l@=Q-Zm?fF#SRZc?r&;~R z+{|U}{^Z~StQ%m6$SNy^Vf>`GO^y*4i+3zhpZjHpxpX#M^xwt1g!;T&n^4a5volbi zQBu!bn)yf_7muRqOL0?tr_AsqTspMJhagnRv&1b;HTTfQL0;UK1|b*N9`v0jdxbS~ zNLLYO5>M0N2W$6CEz9+x`c$ZLMI^1YY|X^52Q9eD|AOsf+0wDz%0M4pu)lD3$+!)7c*@F zWek-bLD1t{i0$(QqvTq5zNl#A(_iK0QM4kg96O6gBeoP{>-_^`2Vv-UE1PiIi^iWq z4q2-wy>*%YzXMay;ZG%2CI+dVcX6dcRg{%hpj)QeH!h>1*u3I-ZAE)aOC>||tJfIH z1b08fi7?u-fM1w$vWmkjwrNgoF6z9AQtF-qdT0XHT%M z&WQ2XRejgMy#zZbbMqpog(_`R&%ZAg_ps;mG@ugei_O9|_gu@ezkJh(e}C!J{)@~N ze=@N|Hq8ON3g5S^qD=YL$cXuG-#lay_(utZ0PF&sv;77D6afvfQgowD=Ifg`@s!^- zK;gEOp0mydH99(5;43A%pOc&W3IJY*4#1BNZscH%ai(O zgYOHj$$e$ybzpM5k{a{}cenlZIPaLK&abpSUoJ=J^0D5X)TZao*1|V@n*b_+24Jvy z03-E^-3?H}-$6TlA!W_X~a(xUK$Acqsp8 z96zWGy+3+1T!4&hKTJ<9v^4vRsFQ2mi2CJ7L_0y_c~eX@G^in}+VBXCM3)x+o8C;j z0N6ug$Dy?m5!qU09sHf~2OdeXz5)U?_6?XAZMC4Hp_eN4-4N4=#RJhpLN#I&dWbfE~r-xps^_LxjB6b0Z*;p#%CA)pXN#$_`Q&L zL}|hAv>8u1Q>z~8P*^v8dBbl{JPqWQ)l`;^r*gkB)J{QfpqfI(3B-a-OGhm#9iFh^1Y|7~eS8NAEo zug}2<7PzFn2Xu%0{L~x^;OwwQZs7Z!vD&{cY16(W^x%C!fdFvZZUxdIZRb~?+(0RC z-_u0=&BYH;m!|DAs3a~U;H(58CzkWW3yrq`HZ4wT{ZD^Fzx%tFTgQE7=gjLVBFIV5 zAZz^}6Vv|MrN?C9^Y^}imsFn7N3B-P8C2!A97xb904hn%KkU!ZkrEsaVaEP>`AjXV->lS*4!D>Z8A+Q91u!1KnM*yV ztDSGTL`?$J=2DP)$1m9M0-PKw!1O1?={*HB%SidLD|o#;aSU(zKgIFt(o*gXE}4<| zjiS{qk@Hkg?fx8s-pRm}8DOv9zJ0j4@792F(>Oh8C;-SthsI|YZ+^n@_0fj&GU4q{ zvS@(n6F(Q~OiVXv#_Pgk?FB|-sm-h46Z8*okgD~1n?{Hv^=i?ym8>hS;mx)0clO4@ zXI@fyr1{@xMWY$CD}Idmh0qRCG{@zlW@tn&`F7s+*S2DC) zXy_9tozwXA`Q}_S28J;f{1G6%##0XKcQSx`fU<0%5+KLt+t~$yN})>tm(=1Vhw|&c zOf~l`96=+Nkmh1&$0KlYIA5-x)LoI#l_qfJW zP~FBTmI0*FJA0M@)a1Is@~7`UoM5jzxy&Uj^!HkfmBSfZud4?dTm|B9w<-Z$0hMjG zt5a{VSM;G!v627xPe4-N`81s;;O}1s05c?0^kdJ1lBCs;izAV+jOOZhEE%4d-t=go zwjq;lRrP!bF}^`{K1WrG{6rU;feyWL;78oMf}t3>8QnN%vjXNV?I>7C`0&TIJnaTy zGtv!1jOcm?_)m9BI&@97E}mWXvAwXQ(-#6%URwW=q=8Mo^L5;|-{6~4xr$stvS9dL z{eh3W0*uA^AcSH`TtTWBkV36g97?w_9w-jr!8`c6*Wt%|W*eralCdqvSG~KE6D-i{ zv}o(!kvXFII0-_GG52+^U~oJZ5z%FrZG63n^Fb66)Y;JyN(tbq9{rK@r|2&_L(R&% zz6!#{@O}kM6#C_-UdI<_UXY*=A++H_E#x=|#q$0P8HEPEcmx>)tar){VC;s&W>z!? z#If@3mT(~yz}xcx#u|YPA^51LkAXnjz10f#LE*#qeRswHs#*`m{}(JM`nTBpTc-X0 z2o4!{2fL#P5m{N1;x)&)9}q0~^uN|6l$ETMI?2RF6u{m-slr@@B=Cuez#BvIVpqxp z2xH3*^`*9-m33saxN7)G;F4CLft+e{zNhcbO)aq`CJ27eTm5nu$%-}fCF?N1Ac zU@Yy*wf6VRS6rnaoEW=P+=FL0vM6jduk{BA1ZcN!h;s81z}7l&WI)~q-m8(@7NT~k zIa!iCLS&^qw|Rz&MxwWblZ@BZ&b}p|Qgmn6)IhbD^FDB_)XKu<=>l5ox$2BO?3O<0 zoEDD=4(I(qSaEsH#jORZEfdQqr2r@3)>sx{FEsfMGsK!J-MwYo8nzhMz0W}s1tYr} zj45%IM_gQd;&5k0ptoLo$^9PR9Itpt(($5OHq=RIipzfAnE&2PL2paFVA=s|f&4D) zIi@abB-YviwpaH04jy7_(UD8AP?UKv%MClJK=QDQ&|JhI!C=YoHQC1lZp6=iM@%T@ z(D{l+8J^m5w0^&Ltgvdq!A$a1Y-HKNQGXDjqM<3pReSkbOJ$|BFN@4LI;B1Oeie$w zHc1INv%^ojKU)Ks0KYza%e8vF1b+XX!_tF(B6uBPOx-}rKj}Vm+$o(vkUR~5M~Co}0h;uDIQCwtN&EPKaks|pWQ}NdVf#tN zMEZz{Vd8G0(1e0H57g8;U)iM|9*C=<5w}Aki^X4dhE;Ovv$6JyewO*x^3WB-8V=^2 z?up?vi-m!MsN9pS@tG(A<=s7^Dk3S3m4QgsC>U){DZwQ?1hMO=`W{W-PMj%@1rg7pD7r3XM z!pk|cja}+3Lcd(I)Nqq6IW9g6{xQwsabh$tQ%!{&dUGOVrvr=fNYOqJ|G+>G@6=S$ z^B^jgxQzPMU!Z~V(LgqK8bUV6biQ=DPjOE!i+UgVIkImo@by9KPdA1-Yw^KyZ;9ls zjO0(?YXQ#7BxH4N!&KFjMT1eIAmyU5CI}bBZL`nL*hqsW2_vqd_>D>;O$M%Nc9@j1 z)@qcGiIj~yz@?6un6WXUzwBss(1;J8|D>+ImSk^HoIdW=dr&`Bo+g2P72q{C&$y(G zOC_YA?q%qng*wPom5V4@z7pIQ!<;GWitZ*N$T}^8)_ELT!i81x->R#bs9;ubW|wT0 z&Uhl^7f02kue|ESTWmpPH^^vb=6;CITHw}t6W>`kF))zxIH)S1d?<#rvSpg3+zG^{9Q#QFE(ABjQ|`NRFYHATN8v7lxBG}YWN-LOBOWzjG`u-T2yIQ zh!PA<1EJeppPqig=)&f%$llTf4&lhHu4Vtv9I460Dr8+Zwa;n@Y|a9%8KjKvp2ahOO+&`9CISK2Y(*AKu%?!S>_Rz>?xr$lWnG=E zY~N zNphx6y4e8`-LORgYnPDgisMPfN}Or+fwY#nS}8_FC@qC-zgX)IUObTWDx4>Cl)Gd( zO3W3!@3MJ(cwtr}&#8& zauLJn_SVcxRZ$!YN333fC5%(gY8tF_+)XQg+&!A5m0E4>Ad9eMfN01)F^O@x7)7}G z9iDR^9CaDFM4eP0x>X`WxG`HMPz(YSDPN=FO8cwv)^`xrxhTq6B8j#82HKy8&N{88 zvofOI%~QI)G9&vq%!4}m?8j z7mNK&+z>nT*`veU@kmxPxt%}MM(jyHRTTAVs|7{Tx=j&oSbk((4qy#B6A!4Z?RO8T z84`{-;|ylbn1n(#O@cf&ovLSt3Do75GvXPe+p1>ix2*F{+RYMAy5$61*x^ ziX6kx#5Mj>VQUeM5i{Ba<)d#& zYi~1tG%c)5en%p248%grB>VUnVBWz?TvN5d5^;0}p&m~7n37g_xZkpAV#VTxHg znZ{sUnbm{kCNZ4)k$j)02PQF3_s`5SUdWc21)R_-3r%EfD!zM6cMbv#);C7gKpDtp zfNauE19)pip3AMZlrZ^_tlB&2XTc;ZzoV6PngT+Ie5;wJYO;{l#{? zQbl=GMi3iZfTlB!YoyD5_FH`z&{_$n22mJ{mI4Fr0g6}PXYizNH^S)XvRAN2%vN6z zu3GnNFBPwgShEz(J>0)YhQO?}8E2ntR3Xa6QtvUq^=PcbT8bX@}eq+s9BJ0Y3$4(julwLa)3C& zocF5kJb&Q`VQ@qU%7%V17ZE<+7F~&Oov*1)6*3bd?MxQmcM^#`f3#(!r02t)9_%hc zYA{QP*M^EO!Xuhmj$o8#u#D>@+v?9d;kqEcU+p_|c5OZjV&t^eTTm8xt;(ol!?5S9 z=aYTIpcS2LPEXw{yZQtRguPo!mObkMqBGat(#fqjqX&dqMza7NOeoTK3vpDH{}j4T zjZPPt!{MsE8)6uRoROg5oyZA$6SgMg`YZrd{rR4oiTi}Jb;XF=)5)($I#?{=7JrK}7pS2?aq1Z6Rk*JEWcYny9O zQJ(A2L2K`IV52(FULDFxw*@ z#!teV(NjJ>VF!ZE4r!lflwUz2KMz^X`)g+fSMT$r>a;e^x5ZhIi=g!H@H-=>T`Uuj_da^^UjdTUl_ts+tB@b z%Mo>tR)-%CQz>}IisWIa%mQERh7uKc!3%1_Z1-I&3iinmx^DjE#(R@x`uovkJ!35R z*;|#i6+cR#0TVd9Gs)RCvBM(qV~Ii;Vgj`i2|VknO-=*rVHs2S8;T{cm`Iu_21l%} zV#mC)@Mf#-kwmXA9_E1*6-)=&MX9RR*a7fgj;JfckrOm{9jLyEQV~j$r&;Cuj7pmTpO5p}Z99!xPOj8t^1TXDsBzjY^JvEj5mtB`DT}5n<<#C!8)69#`^D zrDwFf>f6 zIrgW%dFuA?bFE5&pRc=wbBEn2i9pg19YYs|jQZA*(U=w6xVvI83M+iGS#_c>W@hvZUKcrEz${bh1-Y6!XbiMnidTzW&xjW;bJj>(ulD?tNeedj#V8)CA zXkts%EU*a-GPIU8WQr05r|laQXJ$1}VS{`qfo{hg0_4(_5? zbm*>!I_+Me@c3pBA1pZd#hMaoD#%pWUf(Bdcak^O`-ep_4OF%^{dC{~!^OYjdE(99 z$Q()6n!D=<*@jqDO3SbYPMccK2D@H$Ss01WV4Tf5PBdd9#dERZs-Hr%46_iju+LbZ z|GZnp*pMb50`t&ej}tnw*GY)lc|IuRIWt_`d|yA-sG^VM)1E^Dbz{X0VH z^PoP66Ll@;nG@fY7#|(8sGg{%Vz(~;eip-CDiUxrYYrbK6lqg(y#!Zm$0POm8T&z% zZy;5lPXv@OdaFY3lXRjRtSc-rwQw`)9x|gSO|X|}>qF~-CZe;a9(@R^_O zsGHa~%u;b0JJzS0ju%hZ)-XGMobz+x5w~)0wg#>mP7=9D-;8KLkH=L$X`$?+&aKr2 z+RjhkURhj|+U4J_w!E4TM{@6yYF|j7?=|rxtf@@WLy8f{OPqBS>A5%E)&y761g&w9 zY;&Wf{mULZnVOJ(@9HF;dN=8<-L@DjlB-q5ATCUrtEV~g`em$|@m_L8sfw@8SYGVm zdG)iN2(F2b$9F=ixM0~v`A&{7_f$`J{Ud2b}-E; z5+ijlmYJrXU4FPU^MHaq4?lO+nIZAcrPIvZXPe&es3zcKtxPvn| zgY~LO{xR|X&>fGh9GwU)un3kc$YDF4~&gIeXhB{W+YX<>vhvw`X*BXBs^8 z>v0O4I%`~#TpJc;@X`!dDjCP-Io2j=tRkqd2gma`2MCyW>@;w&3$=f+;u8GHG1C2$ zl;W2YErl29^1X7?B(J1eNJ>1eN06e9$=g=TQ0h3T^SDvmq@$rT0&1k| z>{!bqHG9ooooY#TY!46w)=0QEuBc8jt~R8;6B3>u<1Nq_=Fv3Rc*YXz4*WLDo*cil zyDbs~A{_0odd{E*UU5ahUa+8(t?KD+;|{hWffgoY$C%T}+E8Q&S~I{8+HO7MoMM>` z8pun}x>^t;f}x=SR=-g6LjEc+BDORNHgzrIe#reHwzj##jvsApHgq8G`mJ5JN;_c5 zdHU?-wNJT4#<+ga(sFxRy(Gb zE@WPKcl5z<^@aVam%JsTKYW)`0Ts78>TPM3cObMGDKqe+WZ&GAF_!JRb_%z9stOG~ zo&W}MLbq}rvvj~ck&S|Mf$gv#ual||NKZ1~`qpRQNe?8X6t`Dx!m{fmfbF#f38;a- z%s9wYbX-y{LrE&UF?X_TANR0ItC(CDuGiQkyE|%-qU97#XQR8R@?e_w4qlsy6?S<< zP1%XPfrCiWX7qfqG;vQJ@C}%;d~0EC)G2vB!?YgfxiDI)y|xC?hJ;Xo-P~SOD^;AW z5+kwO=rMOZ$1B^$F0@9Y>uMyIY(AS9t`}5T26IfG^YIND-)A0T`V2v2zEhw2ojOy_dk?YUoT%g zKD;S;|J~YoV39&XT=pWg0*~oQ_%iEfuH>j|?R9jTl}_aH%c|2I6`q0OAGQ-oA2*z` zA)efu^!`e0Rr}Pa?S9<(?*5V;AEA_e3RhbGR`l{?qET}cZPfY*iYm<5RRUPQSc@o< zrPDvS-9m{y#-jTeXH`ZEf%-paXSNH7h=c5suvCQ1O##a|-k7)Iz5mK0 z%K7t|JU3+h%Dme-=gCZRb%Q~!fTmHE)PVKUvz{0wff)M+`=zO^(uwxLTzl4rDQmi* z)7zqJ{IMB50f)ozzRH?Ce5Zq9^vZ4!0Jy1z?HdVzRQr>jm^!v^=$zBhixqz^%t;#( ze0bWj2i3@QrZeU4m}0OEoLQ;lpA~F&HkV83@5z+Pc6qpeeW%S*dad9C_VGd(b=3k3 ziN}pDqpueRxmTE3`@JaPgj&qLRXA_or3~qlzru_N%CW8LCdSuC-rxIBP)=`{xRS5U zzvh4Knd?oQdAfq?Bnw&lqDNo<4wDS*&uO}vDP{G4QTN_qO)g#kFE-qY$W{~t1XK_N zr1!2OAkviHgCZckhTd!_z4zXG?=>jWdnc5Hj+79o0RrSqaQi%azt8*r&hI+qy3V=( zFe+j0GBa!DUTb|niw{lmk;~;9Ul>-oqd*E)K_go&8Z}|}wI8?HRc)_a82VcFRqvMv zKk4iQ3+*#>yqJ&7Yn0!>H-J-$m$u~vcXQ$l6OLd+F5H7g( zj+>TMR;8KYbQ~io9P5(MrEYEawrEjY8;C7u=R$er^R}@C!&m-@w@~XE;K62{|M1vO zqg*6N$KaTH1AhqS`TbJ9nR>uC@rptjHeV4s4N@dmH^j$#Kue zvUAcD@7mFdP;@kGAkuw_cTLv4 z#Il<-DNq=38Ypr5#+RZqpL(?}liu(!D(`~O-OYE8@R7b6GfwzAw<5*194GGm?1j6L ze%~&6SkVxd?bL1{q_GTS+Hdt~MZPb1S{Ttf-H&~tb;A;a=fsCI_20;y~jW9@}92VFbUH^-LMbnCvH{wcDIkSOi~I575AtuDe)69# zF!eOjUl?m;yH3J?x&&>exi1m&FNizL&+(>c$8kUw@ty4tdn!^ zUUZuG4Iu-BC@8ef(}k#x$VG@;OD%il9{lri$JV0roR=w?tk6)=Ntsa)g|grPF@XJUpLgw?*l&4wAo7)?ZnTF)Fm5s2x&8vv)vDXq zQ#eeDZrRvpH?KQe@=8(qX>*AIRn=uXUY;wI|2j=g@ELi2rlOKKJzvXxiZB*DA`i;`9xtiR)l38B& zW}RwIkDJs_w^d0lENj5()GLoD_VdGgZzC+3nFdR>`EzHJAs>`YtMGYTp?KB6rTAfx zk)8^GDTt_{&?UUeS*|&CU%h7G=4_jFOycv*184-{Gc@`S! zB87sQzKQ-y84+~z-UZwK?~@&%qe+)Nvfv7ddI@p&!MpRrMRtro*GJQ*Cu7|+6Q)I- zn_j%+*i9%7X#QqEOlsE{BOOKCbYytwvRAVWTEKsjoiu1&KV=Scnes zyGF2dDNc4IE|QX*MQ>dJRVW-4P$iy_{`R|w;W3kT?}j6t_y(V6hQ~{v>-Y%tylL-zL>`?>Z zNQIo)9)^ia!Ih_GY`SU$J9q}{XbZmOPxKj9QVTg>h&sRpRT9fdyji%nmj6s}<8miX zbi4YiiL$_AG+na(u;rf7&G4eJLrc2LSsxQ@`@h*bt5Z2*AzMKoxqy%h74E++i?i@Y zykM^ya7m~g&nnbFQ|n=VG=!e1F=eX?E2R(#pei1blHoE7gmWulsyJ#-r+~W{lEoFm-0@We2l7q=bPr8F``q8zRqX=}q zHa@X7lwIY!t8i(KON4ORq(W=PF|Wn5qQz|7m7M_Dq-LtYY3w+0yj(?Cq;J#}{hh zw|iOdhEt$XZ%y_{%AyL#a^5DhFuI@#G7X-bdZFHdZna`mEb8sKSA$T9#5)phwRv3{ zGk+p}*mx9b-$UqZ^57i6i-6b6Rx;d3tW7e`&a8%hkv#XiNX&}(3C1A)3sDF1mEL(h zO|Ey4TFDF>j|eIQkZQdtO9ahBXN?YO>IWsfxcZjEL22mT@IW%*_WN)72fOAKnJ8u* z)5K&kMAp|!g;hJ?eZjV1HAp%`q^eSUD91gh=Dy^jr+q;zBDUK&cAxLOKFt?gZUMx? zlSz2xi5)x4whjd`DJBPlRXtO$8KC*x!5&kCwr_BYNaOjtUk&f##! z?nXFiLJ%zf@!Gh)ag|6fFoXNUWYbf@%c^hp+6SOK&VQ6_%HyidipPwv8i+j3@&FDW z>pPH7Nt|o*-xJ?wntemgcbC+3)3!3vLlj^55-xDN3Nypnxa*qNT`Y~jWjs)mtAz`q9oNl2@fNX5GB^a zzFpmk2`PHtvNSz*blJb^Ay;~Fx0#-kx$<$CN$V>`p4KfAsQGa0@rO`zTeOo7!YuuL zC(2aEGK?p?(v`oHzw^?^>Ktu%;!$}0DbXyF9mTGe zw(45@^=NlbX=IAarTTR`Ce89f>!f20SA}>2Ggc|eIb^s94KqT$70dm)Y=B+SoO$pi z=?Yp*OseSqrBti^9-@5(3vtuq5z9H01&aH#oR0&&J(5kvuXC}crJBkm*K+*@N?=W& zdGZlMz?J3Ef(?Y&0fbAzfvusBTbNNetN3b|&f36o4|KpoB)M^H!k?&J)@(uZbqsm5 zY~k+e$p~NCa&XjO8^gM%7F&^^jzJf<*r!2MkT-U?eyE;9TrG%6`LK{-r+;uLS-Nda zmvvoNvha3;y^SpORaO2` z*Js__X^8kZ!5g5c=0YU*iAyjzko#hmu$yFF=%XF9W2s2%U`c-eGjHEDZ5sd+NhJ=w}c)6c>U&!QHt zBw-T<9d~WVY6Lwt_~}p!CZjbzndQW9Ui4Olkv3~yJic6ilj;zfV|vo|V>uf?v?##P zVi&vd1U8Yx?|o9tT<=o{RYBu+uO6_7v))Hok=b|@9YliGM+5o+iH?-Gy5E*abI>1XaSlKV$q_px(^f@-sQF+;gD?=!q;8MX(AQq;E)XWIL zVsF&`InYl5(=r9p+yoEFD7Cyp!mjP>k_EWsW#8639$C1C@WO@rwsGX<5}ples*@A* zZRDHUgECXuXWIgXDzxSzSR6|ES>trN@&f9BXi!0juehtMaa3eLAiJ{8YB*LGD7!y( z)2{?5X!zL+-Ni&QEY(fNfMtevM=ov65e?;oF~sfFpg#uxS|$;Yut zR{Y)(#idbZ&FTRUOn00b)Ko@uSQ~>bG40#>jXo?=nxv3nRzU@>4#4=8j|wMrcqjB2 zWL_T7>ZbU9j$0H?EKYLe&u;2MnYt{nMTpJFq6U`TqE<~;hwY1H-ys%`4Ss~5Drk&H z$2PQ2*7il|duzKZB^dh{#vt^!tMc<-Oe_2Bsyw4N#)mZk}H%#X0j*B!qBYh!9NQWmw8z1@q-S0qOMWXipCg*xu5 z-CbqT4PQTu*EN;NB?f56A4bltM+8yo8^dPprt_6y+^!prrpOVw(HandUSnOv8P81> zL6d|6j!_G}$9Ug!j}ZUY;mUVcDwVS)6enZO{WuINdcYq_oOo0@#Qb-5O-D2<7sp&Z4sUz#bp;Cl0TM}naW%dP+1gt17*=) zN?C@voPlHvsv-$7w?)7dFVa|dh#4i2sUnqCwYJwE=pF`DiYN7+sDvU+l?J9sDIQve z<2)N>snE|LS(Co}KbnY=#%3haXoasp^Ho>UNb?3-3k+I?8=vWT4tP=Om;ou;P4m^^ z66pMq66at+ts&LO{SF88-3ANz)qBURwPl?G=tfstAW4u!>e+?>HE(b08PD7quIUmjEKhib#aqk@G zJnM(eJ)e0|aj5eRAc``;1lh?65(5@i&P>xY%nxD+uJ+_7$;lm)MElpM^`HI0l_O({ z*$T}&M?ZGQD$q5{b3qNKx(a5K#Px_6hplRC^d+$D9y&s`pd0p+9YZ1*vuT*WN&PXZ z8mj&zA!Zij!L3eJ=UAMhu*gzKNr)eS3Lr2h^%(XXt1)Qqgm~%st|WmRQI@vD^KjJH ziHYec-MB$}Z;dw4? zz~zu`GHwKXMpQz9YfTb#Xn5t@9FaK8$}MZNkq>>N+#!)5gs9XV;TMibGD1dOJ$H?dyR% zob>p1jCH`K-Y+ocIIq@@yj?p0rE2r_c4);&kQDN4NCgpw*1@CRKx!W&iEhh^R)*+) z$^e?;qu@YM0R(0A9AB`^CgNgx7gu~I{pc$#9|@XgrPImmv^F{UKxq z;^cY!^c{`kCY2Y0047!QENf_a@l!+(?^d|bV)>CGcJ8APCeP%Fyyik_r37h^wu4I6 zsJg7q))X>Zq7A7)%xlO(zVHt=x>lfTN|6_ZMrG@#k^XY zY-8sexq7*Z;AXLq6VO4a8@dkm@~H@UorTvopD zy~%8j@A9UJGlI-<%H8|i%xOfTzzqj_xI09;KL(}L6Ke0n)iwrv7>)LxV4k{~Q|2Y0 ztOa)L?aH8BTo0>U&ChZ$-ro^Ytl3hysB=A7Ehb&7FuJMCIvbTz^Mv+ z0mJ}XK>K_YJ|LThCyjQ5>tCKSG>rsTuhIerP0lb9^%2Qbs9-Z%Vi1cs5 zEc4aU$Isq3jye>jL>+3Dx08Y}Gf#s6TFLV%;;qsM`2^2{oEg81_6vE1Hs0qF#LV=W zMh%p~w8HM8hFryQ&Vxss3Rz)?ZzJ9J2c!>YNjz_P$|+J3ux0i8nN_@wgS?ah5mFQ6 zvXr+~pXw-0+;dr3=CQ{Fj!1WP*wG^U{Z$HpB;<^tiNgz&7#?zt@BGY^7joHo zI{^u}S2ew{3G^)1&N}{pY4-f^#q3O;>EsAK@{vlY{6<^QTZrLCQod@e{!p9viOn$< zhI1X{(a{6wBY^K*K(F{H;=xaL?bc62veTbEJAqj!H7lQyq{oMyq2@1T5_d1f7!&hN zV>8%SKnt9x^@sM87FB@RU=4ptcTJN0Ij!Cwt0QQhoRya3)KK#-D(Hf?-pz-_Vssdd z5Aw8-;zu}-&DVn>+Z_c}Q>pAzc0oW9LSWbVm!2j%^wFK*$}FHX$b2}JAvDItY8PQD zDgS}O6l81o)R3A!u>=#G^46_>X&{RM_&^Tn9nmtNHts6VuYUqH%I*Lb_Nu#;!xQw}O6z5AfCf-@zfgX)xFHDI$#ujXBozRyL-ZJsb`o&BTJcVuoSewz zKN-Uf;#qNP>$R&@9@%v$GRugp2^?ExP&8;U?IF(Zf|WRwFUn zR0~k@PBB07F9o7}E#9eM&-CK}a6|X4d3?6Ews!FRvhp%xIIYJLHyF}0ToixpA3M9E z%69lvaV=2`4Pr*GzpNh%o%?r@bcFHph^Jui>%9kxcEI6Fp+_(D0lwnZ2Ah=RhNAQ z?T?I%m`KP2xG0{41}MmM<>v|7nZdsS1}~nk3E*b?KU7oz09)_r?*RWdFJ3}N!K>B; zjKGYoH5qxNS03mP$p1k#`6tN~|AqfXC-Xnj@#1ezK%5@4<50-lAKXa; zbaB7f!2Q^H+B}pnGK5}qSKTusuc&cCh-k@+6>^+=asbNfo$PnA6b%E3a0m|xf&MDE z-@*AzD>n%kwhk7@Lkxd~I@~>+`9LxkR0IUs$E{XJQiCEu2|a>E!;0`A(3AbdK2JRs z%LZN(nm3=R!4?f*K^2ZRv&43p78e)q_kiB5^~6?r4z>7^&j-OOE#d&F`Q(8~V$B8+ zJprOXF#T`I9vO(yhyRDzHHQ0Z=5PM)+8e;(oV~X`1%@F2;F3X2_eu%z4^`%TTxk?9 zzFRcUpW48sMxao=<$Lw?IsWy>qtO^{Q9jf}gEsCb2`(9Vkbn#^UVMHEsl~%g^*oQE zGD<`IFd6i9JG|DrX+52NTK`>`tUS1fDa+XoiG4iA`kXoF^vmV?9xS6n}GX(m%*V*--D>aY73dN5;h(C+H z2%nWMf)%>=iIRJEUoa+U$1^$sIe0!u`;w=e@o{nH0OXG@x`{XBK~$YIUtiA;8l^L$XI|4Ji?31NLNJ&yj%uo@&POK z6{`Xln5tZ!s2w0Vr3b{@c1@l9IcKMz=LllJiX1*nT@1(zU{;j%dJ8g?C|n@uzOp(z z6?|)hkU*c|Ctc6fBVh^xBZONaDPG;U6z5E39x6!2E&(QJck*Li*r`S~MWKfk$Tz#j z23{px0ZQDSWuoeu2LQF-P*8w>K7`#ES{z-#CCHOWlj;q04xv&Ah$dCpX{!Ub?K@Zv9{ip0uL!hGU1d; z4+se_8P5`M-E)weaj09~y)dN%7V)=?=N=K>uMD$lSR^ystREa2A}vynS6HsU4JzGn zz>Z*$6Q$EdzHCTvFPI7E=3^pj*&xIygWSVIM>5+z(wGAjNc%orJe%j!FIKvC2Hi2%WwEaMQyFtZ+!h} z+tE>fhb7$n%5dl6pXOX2n_rMzjLSNteFg%o)STKxiZgr)=3 z#Gn~I7DGS)1loYw+7VoR8+;YKD&T1hVSirz3=CA*UIBbd!sb-$AH5C0y=~~_#l@A$ zKG7(Z(^aC$4cN(cAh%EdwYLf0zeY#!1}K^z3_bLL++2GGuy zzpyCz%fHa__-YqmPk^s>Q3j^zLo34!uqFHpI{#PG1nr!^Zk`+eM(Aqhn*$oR_}e4E zhv9#J7ytQROuAQBx|KT6i49JVb~+-2Fe*DaK%-SbEiw8;L-)4Q3_Ji&gpK6a&?Bt8 zt0Q)LuHVgV4+BxL<~hl|WXVgG#6_%-`YCVV_X%dWnBZ<&S&EEP zdf6qt?=^4u&`bH=^Yw`SY3)tiSgy9)=a3`LwfjJ6M;_+pLwfb_X7pj#Vl>GOr%VOn zi*>yFvSt*vU>^N$4}AVbo4t+NTfDx;&2do>4NqguaFB7R;Ty{pK?+Ip`Q@Ue#nL`! z{?fcpzuVC-TUq_&0GF;?)J*acWa`U_tqc=#KTHSIpYR^7#GX?v;S)K$ zmay)7^!nOLoOJWRtHOU0{DapH>qY?WizWhR;`6+dh+bykD(pRZ0r$C@cmL?JA)cK` zMR^jHx1aK!0jtQ&td)6_7izlkW2oQ!3NEL=zlnH*-*MkW{(VV`>U z!rqukPeE5V29j=ARrqq+14c+U8bcb7F|oia1M&SG{pO)x2&QCxG{DqFFuPr&Yj*C% zDwdsj5a`rYhlg`kDuQ<@D7fg6?sPczgVA)cwRM9p@tb+55Z+vCNYqctuJY8Hue)AZv;~J3-!?#ItW7!QSbE;+!L-+IJXb{;kfDm6 zmmT@G>Sl!~>zcYG1HkR2B-}fO0|Xah^6lK3ZPdYP$m0Xd*h=Ae=>w(_-Jo(Nj@Cm7 zmw$}g=-k=I72@S`8IEIlsETAl_V1VPQLdwuy3$mcbv27N$~qLg(tqUe71$utbEPMT z-A!L?{?YL>_adhA4KP%|$m9->eu<^iE27`$mZNc zgTaSfa_yujrh_e!Ygo_L0=!CTDEeLz@7tcT$C8FagY0~!khYS2vt1g|^mD8M6I(6U z1;s*+>Va$shjhn8U*I=aH~zL0GHL02yQAnD|DP`~#q>3*da+h=+AmVK>H-XDMJaE& z3)HSyN`!_-6=hV7y~UDV9EK+ppCo2Sn56(rujkIIimZIxwUdOKxh|!U0g)`=yr!6Z zjJa!3#B<^bVv{r;oSe4}bsZBXJU(dJ_cii#p@G!hR5kSH<^NRaxKHfU>`)KA`|OY2 z)Nhk2n5Hck6NGOPs!osOpUi$g{>n)`G0Ph{TMQvaUP>p~zsq{MZvF1Xr)h@=AO@W_ zm1^?jZpc{dh_wha0DzK8L-otlfAMBnJWFH|Js0hFE(Mu~+Gk24MMU(1c*A(@t34_CNN|SZJ)Me0@>}6ei3XbD_%!%9;X2Kfg{`mEOrK8QH45?E|fvLf-crTKdW- z*NZ42<7q%G-3;cjP5uk%XCI8|m&q|JPHmPW(P%o)6732_OMavT?2z!GL}&t9dB)$S z%BYQIB>&;d*?aTHljLOWnyaD4(1J?!%+{A&Ek;4d;`0vB#F{G%Z;O$}=T(8JXKY-J zaFuy{RDp+rS4`!_7Fh;Qc2l)1-p4^)*O3$EwL&&7-+C&WwkR_JPWY~j)|^^LYRF12 zRefs$z>Xs+V#Hq8P6pFQyzPo>I7C1!U+zASiXUUhhec4?&wN5@G0Uui> z8*N;gp4|IKAJz{fUj`0As>RVMEB9}~wZgUjkGjCj&uv6i+@}4!G$O!$gix)-+tMZ;lwQ3q=uD z<=)4W)(6iIW!4e5XpA|hwy;fCey?5=-{uCyPmwB041cFxLB$^M?`_L}l_W+vWq#8y|B!!wt&awreQJt$sA*hbvYmSvntNUpsv zV;Lc!{NWa-`f}XM7-euPA?**2{I7XES50Nj3P@?#Q`I`Fe_-jXPKld@%`>p(nS`PX zUQE!Gma57e5YoxnSIV1B-OQatkInSoB4QpwY<4-Sg0taklSKc>M*Y5qxp0-2ip#Neurfacu`=cFEVt1aDjZx^kTD0xYM zMNrduscU45-!e1~hSc=kLTv0r@-)xB;`xUOeqg3jMA0bYIBDBpctSMmgqHnuVFhdj znW{%k5L7A;%$ef7lalzcidsr{+B8I${9iw~vF6!PR6BU@=FJRPgxD(oG7(e!zzZMX zcs6Gh$!IZkI%9xxPOfz*81WrkvroXX zjfgHPBjGW`f-Rp@>RLfwuK+%;R|+B_G+7{KHx7#iw$SDjC{XBqky&N7vA2{MWJzB+ zqX0ikAtChq@@H;1tD43Kt6P}VKD7*UEL|0IMNHoxiG2&WHm84dZ}5lIYusA9Oxhwl zoMr2!iqP!Rl7*YOhdE(F&O2U|Xjb*vCo;Zo|H8Q&W|$3+CQZKzJt}2gbt_ZH%N~~x z-Qe{2HE|8@0uq2SeJyk;Pz7dBU!0(0Cf^NZT3bCj)5UtLB2M($g~c^_8aWQS$$smk zSQaZlsK-N1vS$urh;0SQ0tfF8K4dCZbe4H_`5)KFp_z2+68{x%?@-_TC+Jo}0v46o zd$O}U0)^BRbC$z_$!vi%Tn7tTug_cy+KZP%WiannYAT4RV*=y~zflK@eD!MTMqbZq&%)RopY#so<0} zJ{)!*t;cDFjgICIP_Cgu99rh&zDAwh#CA6E(M#TRvJKE8Obxxf=w7ef;694V1U71P zS$@!Z*v*p<&K1j2+F^OsQ@uEcyN55yMYxh}^cr z26d6oLyuNH4Au!W)k+rgip#YoVUAC*YE&}u{X`xu_bd&3pTkNOs9N-ktX>yU*sXrP zTra$34U93{UI(uJnwzZ$G>DQVLFyK3^AoG1{{47oy&5I&N!j@^gHI*bZ+4n^7lPc% z2np@+`hVaQy=3fik1V+}cb@xcA)e7%T!!*w=Rkn$U2jp1L0F`e9n^P_*;>OE-6!E> zkmTJzk}7~(B_!&XXd^N}V*BJM!!EJ5adC7=%5bZV{JRso^^>A7Kid!T7d|aHaEUmK z8>M5?Eib%o;0Q2z@h+-cV`$agMOYsFWOH%=W%Q*0#51MmgohB`Y#*gvytIOK=w)he zy)2$D8Xh%Zjs7_6HIcN2r-m#?m<`j!0kr*iJvJ8dZnM%@CRDyKE-&EKz6<5f+s}eL z$hT~5j{1pztKCFE&~)PlqCuB;?Ac)QM5A@s==v5Dp2_w!8KxHIY?yl~9XC z%aO=T2Ch`RwjSYejR^KsxifY2MGHRvi?Rp~D|=3b!7$n1O-3LpEj6{zhJ zM=rPAY_H3ax&U?o|3d0^_x)MJ0dlyGwoq36t=dsBX9~J0U1}7}XiSu_U1u&Re7Y`X zb*g%@$X2eS?w)jV!&wE~UJ5;4I=5t`)iEwwtpEKpf-fFj$r1hh^y{ zYN4U5!eeNz>);=>H>b2Mz5NDRs#8P|!m93zloj>2Ro>>~JQ?mFndU8bZKJOBQuMrz zs+aYz19%VGm6*3+m;9v9@GB#&s@=LM44)t+V-|(X_LX**X+{RDCU|Wg`>>w)z5IkQ zRmV4&5K&$&RRmEl+U%ib7r~X@}wra=$V*tX)G$6)@5#O zq>;x!38ZJKK1Ao3vvY>FL8zznf1`3w|Jy5tx!L^yvj@Pg_+u%7lu_YFOeC4ipsKoV z#&5sUUqz=v>A|}{C}UIF8#;n7BR6ZEU0towJLlt15`hPh{>6WFpljr+^IoXKV_8Bw zDMzsJ>hqGuO7W<{)=nWPq?pXV7&(~T%hdmxN)I!WU21w#+L=( zI6s?!SMD6<0%yML;r#%m6VD$ry0s?KVALfvf@fQWXq<@F|Vp6tTgG1r+3bVw2{UyM^|Y2MSjcSr0QQY>(1{|N-#xYoYja93nU&UiT(Mj~MJ`7*mBQ|wQ zQD;ngPHx&6ED6$KHdN+Kqb`$EhOPT`sc!GzrAB9~c0@m>l=zBrwIB3+7JzYGVD6<| zIbi%-p;(Y!L1As^qpscfBgD*y`{ab!;b!Ye70hnu#gL(T_7*jjihG%I?{`B+fIE&U zCiW*c#mi7>R);q$QMrxqoFmR-P`hV!18HN^0) z%C&ykI@PfKL~=5aC=;*=pXAG)+HW(^j!rs?+1^^LuhE*+4*c=7?L0_x0aBtw#-N;S zAL6ZW1~=NaF!j`lKvJQ>*AKDZEe09|DrxY^A{pMX9A)@$GH?U>fCv))cm{$>k2X4X zY2vQCp7HsM7Yv3r9{$Od*M&47_3C0pOumdo#0OL0(-!`9L_5B|oB0&r7EcmsfPZuZ zI441*iIT+X3<1ZlZvq!6h*;r|^wc(nI~aNp1ZJZTCpy94PLM7*a#*o~0-#ndu(2rH z*w`G|4T9_q7xP%>nkfU)U!F($zqZ)Fkg(tNhup3c2_E}&0sKF{L}E|9&egwH?*j=W z3<_C8pzI<+^nZ7sma7788nf2pLW0KeV(wbNGv6m9D48FHFQ7Fygb&hz8iVyZ8zrZ8 zQ3-6X|K+(-!esHJNJk2L@tK?w57KfG+f)%m}6I|66te-^ZKTL(q@qVh=#dJ~1SYJ1`;YIC1gIg5a5 zpmN|AqdL2CYqRp(Bor4rp`+gpcY!N>WSE&{X?#M&q661PoSrvNIVHt^g!M7 zzRclNf@AJnpz!}DQowWnk3uRq#> z833d7pJR`pW(nkjlv1R8!@R7-(DX~Yp*%wjL;u~NyE7Iq?5IFu zg?K0)*u*GGQzPy3`Zs%bRxo45M!3;ADG2R;4T|0fEQ{db}L|MLR1{}+bVKSr$% znYxb6Cp;J1<{$4-QM%UpP57dzXJ%7UaGtIhT3vPMxX(!(S6*keBrz$AAH(w>$$ySf zhE7Om4h&P|1<6g#q^5s+ZasIs%0qvS-tzYAIrS?Z!!v(gd?q)o&*2ekll?CJI)h?( z`s?Hfs-l-|vv7$V9e%o^!OrhFQ`f_D)WcQ1F>MW@83r;Z_dl~7Y-_F+LZN##>KMef zK~h5>W}W-!h&oD#D>r}eUo_F5vC*6ctv|Pq!Av!7X+K`0LhiS|G>lL<4Kje<^&0!W z2EiS=9eGoQ((BeaWE_{Y`IZq_6T0l76}4SmL(>fhQeWG&xK4vah(lAG*8?f!knYtu z%T8%B_TG!JvA!(?1V2d~+q{VnKrK%Cj**_8gBP;0Hu$}Yz_J^564|R>X)Y65KTB-Y z9$Dm;Awcw~Wd)7yJ0=m~aAT>Bjg1}dOH2SCbNK}E=_e;AJL||K@IfzgybiC~jnwun zYhbwQiNhXr2k|O}{e&7l_dwj%?1@NxP2w zQ8)bbl<~Gr&h^y7S&QI*pLsgxe4IzFz`rK(Oa(r_=dVNM_P@MsumCOaBqSq zcX|W*zO}e_7q^7-)H2M*3T>L@G2%ZTO-xLFUIq%joL><+U|K1Ez+o@}li_Fb$H&Jx zIXM)nAP^XVrw8K?eP1p6-I3-#EEc=H!`wysP^jJ0Sqxmmi&CSV?!FQ4; zt;=T1?6UabK#+G5W5?08ZBQ#%<#$;Xj!yx%D^@_EfZ3nhAzvBNc)^-|^Y`$Ud)4wX zuJv^}zKii(W&GjAWVw(nFDYdP2>Q9#LEIRBM9(o$R&>0@_o(Xc9vEuUNaLd@0A-bP z{&oG7**Q5K?7gwPrm+JcgDJZ6_oUDCQOwuiJeoRf0{X8ep32M1Q+B2C{Ay+c3Z}?v zUW+UT;1a;u;@DB9nAMoz<0<6`8)1AFKpqD^vPFmceS zUM@HEuMZCor+e(JKde1m1%JH(N_<8?*%3V_N8{dyKS_lCkaN|v!=wec74YOqh7N|6 zotHDBj7IY{TjqQRE6mg_k;QjKv6w7ed&p}}f~+4u2GUl(Eklc3bwPi#^?u_S zIvF>pS?+?U1)Y@(O_L5<`b4hR?wIJ#Cmlqi8U=9OFY&+NXw|5RduYMaq>i}Ap5cQ?lUz1X%1?`vgnn>ELQ!lBNJ1XqETp%*(LB+UNIc|!jkqemViNBUcTpNBlN+-d4i^4 z>zSr^vyID=V3+`NB|#_sjcPURJi#q4i}&*9PUi=(p)U;ydJoC^3U`J!X;3Kpt~P^-MPd^e1)DelE8SRJBB-Kt7Dut z@Q-jV(JKjWXaOvIW*u**qJ{L15SZ)aXV1i|N?^x7|4?}-B@g$mnV76{05?x`9>8bROt5Kk&1&D-zhBuFQvw#%EMjWMJNw z*l$srK=g7y8(DNCUe5}yFnT@=Hs+6v`nnmkh+1B9IK4lDWl%?UWyV@NGRS7j7)*+q zqt2y=$5WZ*sEwW`mKO3v>T^ic^T~!hyB=d0NAUrJxiABF_-022d`Csm zC2=A=!_mPgSwQxapaa+5e%qotpYftafr+a_Dq3V>W+T9)(OJ4S3EdkQ7nKF|w7Kea zcOLy2IWiujSDVfKkVB4% z$7Em}GM5i}%@4=P2Q^o24xC^6nqRX$SZ@yH6B~>`gdNj-n1=7qR=`W@7^j2sd$vBi z_}X!F?!#~^mY)MbZh{v#e{IhZ0^4deNsO^d?D3=VoO36r?_*+}b)t`y<>J@t~_qZFDE`ri54b(zinbG_eEDHAh3j3Z}z;Uum!U--<~Q|Dfz_ z11Lpbn?+ZgO{GUYD+RYbY6Phq<%b3NWv*5l9`tArZmzc(ehH+J z>Dve_M^uUsQ7PJr-n!l1^yM%YC#~#k(pahBDC{O5c!5nj?A*nx{!SvXhAqzcg(MIC zb=1C5CH|0ep71WJ(v8jeE_9=*(X6{vZeJ-9 z66Q@5s?#6Lo1_!$vsC!-6MAy@4NZfweC(16qYPmqsCUK48LPI7RWscFyrvwHJM6i? zQC?praItBV(h@HC8d4{$C|1u)RcO}TO(7Gwm%e+*Qd-|ov|q|(X%xF5*q8_}Gwk?z zJ8f-wYd*|Qx+pSww8iQ&uOXZq7HK73!WO_Cn$BOqZ_$Y$1@-kzbG>2PC2es=D#Q_i zntGxtB7wQGQHHLVcej5a5)Gpg^_P5=_8ZAZ4L4M~Y%$G>##ks+CiJWE=u+b}qsFD) zyq@=yj!QM?`V5y*L`trDHiTaDsy$9aU))jM!@8rJEzCmGJ5jiYu6w4Ee0c5vvSM#=%jM_3_w0NK zt7GNjQ{9LPG%`5Bm1Lo&jsMM8ZQl%k`+k^(KLrov;3oVCrhh!Ti=+@6&he-Xi@dU(&aTf8 zyMqYXG8b)immq9^*biU=X)&5zL3Mj%%QP7~z-u~2M6K!Bvlzp>rW;e0$}1`z_J%`r zGSV0^r5VHPsHY}AC_H;ycQFy&-m1tOwUnglBEOx*mx+RNi=1`uwXDoTB1Q}T1) z(0Q=S{K~nDb*1x_5hj*yV?P$1thDzM=Uj;?+&p9pnQ#o~!vJ}>Yq@|le5FvLd9A4g z?YaQ3G(Q?HLCtQls2k0bic;J%&?Zornaey{!pbUQCu+IW$VX;U675AwIrE};jbAmF z9QU8vUETS0@x*BXm!#c+QQODrqkLo-NHxLrZSl8XU)fuvGfeat% zlDa+Aoe*_u@Q03RJ`0uYb#A%x=F7FE%w1`V*VFYdr@nR4_!*OlDvW50lx+T%U!O-O zN;+apD)`kwfTHbeRt2?U}ne*a~@zytxoDq}HdRjbSn}@gkP~A*p#xK@cqN6J6IwdE`XfbfvARp|X zpkSiVu(8V+Vj<$)I`!(ZWi`XvXG<2R?6N6FF_tJu8K>@i{m4g!e!ZTRN`6K=YNs6j zX;gtGE@$Z_s>P9)&v<27OEI_M5Fb95R0S~dMIDh_ zmnM97nhW!B0VD7dt2-U~fg)v`EVQdK5Nzke#yl43Kn6hD;29 zgIJ5+eVAUUwz42Yx~wvuxtN3u4brV+!Ui&^Miq3XkrZ`Kaazvvn5^~dLxe2#qMd1V z<3_UrElAE?6dpQ+FFiaNL|ke%Y0}8$cGQztSxISFVRGQ3w(RO;i7h*<9JOEHkU@Vr z9%=fTXm6<<*AhTfwh1q*-lbmYY?VaIY#VD2)!^EHI*2*#kK-W1!zSt>dJ1DGqO!vf zcZz3RPSq?_o>{!2pC?MUCIVK3L^N`f5;c+{NCM!J(Fkd^B~kTZ6p3IpxQtLCLgjSnKw9lRtv{@Otp_q1~28$ky69f)PHFrugKZe&WexkVfSDhzfqgAXxfC|htIBq#{mJF9*eGE>3ly1 z<^$f?N$LBYAM*N*V-2E(Ey4AckbfBaJh5MSL-PkT( zz1{vUak;e4T|&!9{k}BDaHzs;$eHh(Ag_Fl>+tea3>3}Q%M-Fue$som{>)&s0^J){ z72&bgm^f-)o5oV}TGzn=)g3D+GZ@#4zL9450gk=+f3Wu+Kvibjx+u20wOa+-Mid03 z6(k4A8QKOxvLwktNg`nhNDj-^R*P2Msli-o@Msaxa6W!pP6T?uOn4H)91pOJ^P>hv3bddP=6dR%{dVmHe4K zR`Q#lyzjT9*=*<$Yi&B^kT8obR6dyW;%B5Bj8y1hSDHQeFg_Myd4D8&%0+f}bV{hm ztgC#6uEKnGZN-v;CCUY7nlv5L7Hc=fHbGJm)LCI=(k&jyGn~s^7ONSGqZ8~5>gLE) z(kSuh-!4o1bI4V=?k7R4kx2w*w(0jYt|`)i)wN+;(Y3*axji>?iZfzmOgrB8?N1N%@ysJ z)zL(02WFnN`t&3R=1DVj(^@CyS*(@ZqVEpR&?83&hmgW&nXzHqZt@$?Fj4wu(~<+D z;WVeCCLKg%PQ(s{1?U-E;Q z71E~I8lQLD66|||`VO{D%!_}kw%SnGmEz&^J_`EeZD#KC-FPwA=^SRe(~De8^Ic}$ zW)sxADvtBrB0~kdjl+R-`_p^v{rQ(O8Uxvs%r++z&!{~CSy(aNS(Q{Miv`x zc6Qx*J%PB!8LrhQGinC6qr)%q8`sYVn6668{^|e0^HlZw7RF}&J;vq`HT4Mv+T;Ky zwP^koViln;RamQ1fBNt|c3~Rr;O9OKm`D2RruzMX#Ah+=dd+tEw3Jn1iuf7%C=KtGfgz!)GomHPYW*yr0;{SbF+CYBBbkWF zfE@Pop%bmq?Pp*9iOFo8*=RqRUS{oDIppCOqNg6)e>zRo{lmWjSDL6jnfD*e_)V4{ zrkG2_>^;4fO3Bj6lRA6bz~wCcdQ|~$tM3*GH-~jo8b|QcANoQoc9ra}5QQs8_mAaY z;brS9-L1E*w9?Yf3X3c~-MAZndbWM(6|wW$u*#IC|H7@FPw7HFyNjdl8tQ4dl&5JN zSZdF1H)*xbgyRvO$^uESIStiR< znaM#odvN!W!~@TbB6V)ns;|9V#lxLSj{bR zL12E~iL1Ols9Q%{?#~Lr^p&sGv;h(iRI%{nj{T(sEnbF1{PTeYVRqeu%@=HmJyj;^ z3zZeu)+J6am8W&K=mckzSRHT8pHw38_h2I;dT2X?b=R7tt1mjZPR&3{vu2s|drd+q&A_EEF%#%GWnD zD6QniJ>wxFisJi_WG8RmtSNCVnEE2$rBr5Ojr`ZK0iyjK6mTn60k2zF*|v@4W^g;K z+?P65mR0hSFuuz4%pY~`m~_SCBlYdXidg-Op4<3OZ{M-lxK^KNk!ySq#+KaazC@5$ z4SY*GM4K&g$>jP|4q{`&uQtW}uCe!1IkUxQ;F9Za=X)X!jaxi-XB%1e3n z9n3kRI?7j;=F*$flmc?Hqw?q*aj81b&xmw{P(xiKBep!66ROg+7n0#57r5rfx$@KbR zUj_Tz36=gqH#mCUqW!uQyVIxft_hjR?8cyZ3*1l2&GJLS4N7oUzcz0h$_y@SMR<4W zi3x*9^&)@nQoQd@MzOtmYQo-E|3`kM*G6Bh9Vj@5>-N3e;jEPI5`Hc;?b_}r6ukzG zR9j^^vE^53bi3_4b);b0UYu1&(LSH^2l;r?NnVMaP)+&*Q28qbzj zqGk7nM}D>YrrD_DU(*YT2R}CRk!(72M`0B0~*KNYg%nq8q= zOra?nj&xPsb~u*oN}12yN7CA|6A&?{Vbv<^P z7uL$T;!`Y_FfQ%Ubg4@7Ki0w{`o4^-CFYpid=RuYRCbM;RG;U1Sk+ErR(l7_g>iBD zhgABaMLBL);NiOr_pPIInMTa6Yt46=XxUDXTg?aXCEm@w+PU!*kDZ;T3oM{VMrCPz$&}&IgO0rD>rlM#?G)k!&{s1XU%l#mHyT!Mz|ld zFdWXisx*84>kDeZ?yniy!fn&5q~u>4lHzpgn{)$ttGIEWWPa>0p?+eHF?=IJ2D z{+UHOx5!=f4u?g{$LC{wZk99x(9MZk2^eW4;2bM?36YJg@@U0wssosRB0?YMH_?` z#l9I1)5JKq*|<+{B!vg@@<%tBiACCP(+RgZI3?*P%sYK~xGlSAkkzc?^NcoHBeK*n zG{&Loy3pFl5@ot<^qwc5$$F;Mw4jRrVg*-Nn(r9nDok znq>l8_C||vr`pbJ-`(;2A{GYtFeQxy61MFVOI`u5#>-N~zen zRKV|9!S!<3%)xjc=3@sl10(^xr*O{mfT|76t z{Iv3{B+NCZXoYiaoBh`=v$Z@*%8*#n{<9+KpzpKTVwL5AIhHV1W zmQ#Tn{mD*GIB(ylvE6BzT*E;zg2wdAZmoH8Isogz7?X<(^_3Zf z@tsEs_hPqRF3+yyS$v#dl2=HbcRG_7nVUi7GGk>BIq5v%KeOXFQPEgvJkmyYk)ys_ zSjjG*6}k}_d~C70fe`C1&ym~Jbf#L&Y*MHhyRH{lV=fOxD)x+y(yCD<)Oaa;-Tc5(XNUglmv6a#W|^?q@_f4%s_pBrIkSZVs@E^L{A)5ZxnpT139`Ef@!Y$CbZmX_D9lUj zX=1B)O-=^UkR|&i>`>b^-binm+qceH)4d(KW1En?C@f0K|CvQyVQ9(9MX0immx!YtM%%4fDCjBdJdIEJa@qL@TiYNYByzMCn=MQOt^{W_+iIRCs|3Y%W* zMLDHv9qruhSwP51-K_g_lC(c5`jxsNqm2%p-x}{~*1qjxn@>AL%1ZdK&@y)`u+!9f z|C7NR2J9n@#tGHnYdx6_fsuS>W<7QjBr`^|hB03^ih);_5y}=*=xLSV3Zphyq?-C6 zI2^{{O*RqUvRCx8)b#Ygy7Yt&j@M-2T5Ws0`De2w4!q|FsmK%aU3u-pBG2r<1XoPE zq`)RoEA)2WAJA;ayvh!d})mQn=&-<-P<72q|CZOQ+hi&7}owHpb_Ge09CSGJAu87i` zwX@rm+zihCyoenhx#;(r( zqE<*-);(nuJIicUwc2CSwR@_%W^L1?nEq1fuXb-W{NL^lbG)wpiQ(a0J?DRvEIe9> zF*M*&QJ1)&t21+MwiG{^ADwa#@qG7X={8$<5S_G6o?hRFW$DV4-BHZ@or^yh1A;9>;YF1zT@^j%jtG5TA7{P2^KtSa)N8#v_CcQB`vu; zej@Z@?U5A>{Tsjq$*AvsP%^Ifr5o9)&Y$N93F$OYE?wfBZVIs)q9C8uB;3~N#^$_s zOD!$D=7;BXL_ylC%{z8Rc2jbG_-@CW3Zd}%<_@is`ZG$?bFw%w>`KG$F8x(e-Fmf9 zp3^@y?BLX6C#~#_p z@r`r`_TOXpT)RH;yKFALWgVKB`HKR!4>3Z8nJv7llP1&dySUzsx}}iktc>cC)1?K1 za*MOKT2DXQAF#ow1wS9r*C_pA^}a^8epgi2W?|y&cI9Z#n&?Qhzcioey7ZLEHaUHu?JxUY<|gVv`;U zjYX@o+wIMLJe}QcaSVF%l&~{*^X>Lzq0uM6zWaKYh7YL^NyXN^J0p)&#d4i& z#6EYbv1a{bKu8d8XsM%7I?`vo&)J z5a6wc7TNA{m$|SeD|y_~E-}S{6^SV8L<`czr`RBTiC%>+ehdb3gzzupks zzQ@p5)b>jyIX0vZY%Vzvqq7|LwYH0E_0{g4t-om~9( z#{-8mPg|`U#%2rOCX>4{QZBADxD36-aV)fSpS?`jQH~i3)1qP9XJ#l+5=`B3yLHz< ze631qUOeFK{0>6XOYWZHJ-H$-h6++$lG$sCc-&;hL3fR7Ta)H1>CLQ5`~9zGKWN$y z%8+NBRKz(E@X$IMa&QmvFfX@HHO?@x&0wd-7u6eX40lD<4#*C@w(k**h~{q=t<2jy zGqdul(QWy?}?~sRi4;$%>s6 zdeNnuY>lNlcixV^4k!vl5+2a%L`TkF0DgZ)i7?liyZ+&%s;X+x$Vh&wX479d^GN@- zkN&!OhVIX^#VL|8OMlIGoxWgP-NTnW5r6N)eTE0S0h@wKYo%9=)+wT7M^>E(*xsM9 zJ~{pQW}o$`7qZFsD~&en0{R#{xU8Ci{%kF;5Nv-DGNGAG(_0|s7X`*7j6ZLyfcwYORv+SfU|B!mo}?nTL+zt#5&sp(<38&Y7@wF%!SI{ zu&=L1`YLN}Tjj4;L)EqQGy}90VwPG-9Xo zygpxHTGReoi%3T)yWFtjgUyJn{V$Vq(=I%eVo+W7aR)@RMsaelhq8YP94MTuU*Py{irIZS_Tuv?TV+)~ksJmkYptLpXWCG# zx@ikLM>WS~ng>F0s}DMCTQ@So^wcYJ?>l#U%x=X!Y2CK>vg>xN+8r9)e#S9=cA*TT zmck@+FxPs(nhsAK5~jhrb*|-EJC&6Q3&-{aMHdB(2nN&H(`;+UnCrnc>?yKduxBV$ zpX@Q7<*$m4E+UxD5EMpl;!{d3)g3(ST)W+kZ_IFru)A<&0coAaZKz*&;G7H0OC6OQ#LKU+i1l8dDM~MWC$_$*6KJm!(-gCKUP6Iv zynLpqV$`BgLv9*`bSFu|Ymn82g_7o;|EipN7HHIvq zU!Q@eb|5{dZ&)N6Qo}*1$j;V~7T-!#-H-OE*pXaICnv{^{H#w;@Y&Tr5*hwVp7ZnL zAk&(phSiluj^xY=QNsFkvd_)!lGxpn^1YSDgrth?DXf@JR;5tY3QHB&1DBTjHS~|o zzdV!*798El&v~c2&yr`7r z4+6WsAd;QB0DpKd_~nK80p4wgJ64dra}9$Xy=dEECLZYu=P~N8&sK@0&DActb3|6H z1Y7QnU0f9>OcAKmPdsFw-Nq$7qE-mJrnM?;^jAdS+Xto)#;(e-Gwt{BKO79x133y3 zU~t_dC1S7|_fn`@I$ia0wS{svgTriqurq~ikt3`rZ7&C4MIP+-TZ>0sj9_3?guV`tWG1lxnF0}RrU0&YUsa26>er}X_d3dgqXNO>%~{2wgTun z;`EO2w+A5%d8_@UV^pN*vhO>MV2<)yy%dNZS_=lBiv$6jfI00`g^M73cAh>d&e-x% zYonCTNPTdTP+-s)pPt>)3MPNS=ehe-pIJxuaLh%0r@NhNJyi$m=34oT*kU7TIO8QM z0mMH-q1aMd8I_{@dVGVQU+?tKs1g4d1(GJrCLvP6(Mo>m108on?sj-t-j^rJ7`s1^ zK2-R{>iRY)KM4w&tqC| zv7u~uyJgJyv7PLp(kQ650D}}V*%0%!r@R4f0QjcB@|u) zys*??-uhAHOoJ*_O(y2{GlYO5K+fMB1)Xy-8!yH(_)5DvU zqvjZo)yP$07L7@}bdBVNF(2vXv)?{`8;*|yg?4IIRttvEjhWaO*{xu$oQxQ>>(Sdj zOH5qb_w92;%%FoOl9#|>cL!EKoOOF6K=JJj!-jv_`|zJD(pO92$no{Av6^@Zj>@nu z{-M_atol)Bd3ecuSU!eU?oG^Xw>YZoPVy(0fKdO;d%9ji4>p>xv(_OK=;t^bj^?gb zD=c2$c_MgkvQ8|7Zd+;59b-xuM7X zF)hB|p$5wt5;D+2B%dYWNivZG$S`nkq-Z$8pi}&3qK^L2MXY#i$uiC@CGna@>~DB( z(8uy;=|?ZRFS^#&6GdGEVOrxSm;tkqDmbH5D085YjNv%Z?LVz|D@GdsghNBejEP#% zhN`dw#cRFecOHG8Hlp8a!})0W+}GngSDG>IEQ`hCfo`TPg-F?CAuJ5Xx^Q8|b!t+TfGU$WHedE6Aa3nQ8eHA`Lrw2wwwoSC{Kl z;W6XZ6%!$75N|-aKS+3gTqZDcb0l`PRlG{zv}*4^p+Kxh4*6r5hX5kqTJ*3V;-B$< zhkrO?ADuL`U55=A1B=D9GAr*x*ub3F;jB4%+T>p?ZCQkl=HmanEeRRjg-X6av?TDNaA^_B~Vn zwKEd!YEXQ1l_*Lb(A!0ZV??({hxb;+4Wj<>UQ10+PY-@7sya#GU20(=A5*NaeJ*IJ zzryAVnReI_k>h3l2Eva`JN1{0>AotgfQV2T75$GyZ&rx)2D?T^#0U9*ct75sxJW@n zUYGwfUqwNo!4Ldv^fC&O)f@J2HDCd?>cc4A%MWi%gc-Q*33H&-W{iZ zEQ2-%Y;0`275O8^UmHRh9)dBAn1=;+E(e8P(5WkS+#Xr|>|C+k-w0Ch|Dp~fhp9jX z`6y`)TqHGIkQ@G|R_mC6Ozo>BF^_6uMVz7$;OYq&)vbp0`%;7PB#%{lU;qcS(o)ZE zVzC|cR_6h6OM%pXoMl6_h*f($UYkfj8r3eV;gpyrPi<{mdpo-vr`P6Wma^Nw-S3Gd zIQKVbNF2W|_~5~Vm1RonUu*?Wo)@+_7Dlz6XEp_z`Y+=bVIw=t(w8~3cLUO@!woi~ zD2bM7!;Y8k1Uz>9r1;hieUI&ly)Tf2FC2du$X@z2o~}NdkMDv{7|vs9rEwchmK!Kv z`gnRq`7t+aKDanRjB%2f+-v6`^MOquPYyOP1U_-6Z4)cg$J}pWL0a^Vc7Q-ntyT~u z3rb{A$9{j6cmI?4{r{!?JOA^>{e4jXN9;oS*IgX0#{crQ$aV#G#ehwbRcLL@N6WoK z!MP)H_%(m!vL9>}`u=)Mx&!byYIu0~FmdwpU-Xd{EHUhelhE2PX+;_G`ztC}<}`r& z@2@>N*vkU!<+s;+3x%VNg+xUE`Cg9}!r7pKD^wlz`OuUmB9ghOD4F$#;gj2P$NzEa z`!8J~stGjBS7kj$g#IIgzdB-UjXA7LjLq+Im|NX7GZAEeXl?f5wxTrgsY~cv#4@)e zq4oKbDx7H<_7mEO(tYliEAT(Z>{O)xAj)c?nuh=L53?HzH;9OG0#5JUg^dkFKR>*s zWk*CrQjPvQR){@jprRItfDJg82fTIkf(>py$nd;HUrFF(W^GDUdH zzS1;(A1Mu5}&jm;)Y7~)vUdNhCXw!EE>$=>)g2Vg8!w=%4M3 zFx%f=Z|mg}RZ@+~&v9Dy=NH?5e&Y-Ja#NdKt0EI)A~*NF{pn<*8oO2#V^NniuhkY& ze%fyq^;j=F_&@wT<^RbW|8EESuOI$<&HlGeg=9_OHMud^+IctMdPr!N&uwdIeDwR! z=5Vi>QuxyEWO|G5Pb;+*SoGW*g0W~|!zj90HFDMVg?O2vNAeRJp(iXiAU#|1xpfmYhzH&ow+i9%YkCLuuV5+3IV z4)X2wPE{qzFg;T%kAB#7vBFq4D?guS*kgCz7`DqEzJ#y+lbbc1w=B>ucyQB`ggVfs z*&y@jVC zkV`y2BSZ2%###n){n!^V zE+w)%muG{cFq3SK;0^Np1KowXuH%rs%|@SD9hwxM3v9BNzlWLI=KmkM)m(dbrp`sU zSA7wf4jb5iEg5iGG~Rx;d!h(PZ=CZ~^u^6#SB!iF4-?#Pp!hvc?ILTv^4*29!x=*F zGsHOEYgwfcdUW4yYt&PCV!H~y!TIRxXN4F-#pW<2zAhjjm_>sg`+dXqdqoD0VA;gL zyOK5e<{e|*H=c6knl?w&&KC`Zyjmvgj`?uJ8&r8Le>h1)=NYdQD`rzo%rEKT;bEK7 zfb8PyKoREk>(|EP0D1k&7D`!Wy3#{mX{g^MQ2+SjkDQjh@4mueJ5rTxVB?2B1Yf%5 zdGGU^8*OEdi^k>ZVle$qGpWgAi&%myt3joRpl%$!LPX7v7j=Izi*2olG7h_{%##HnD1wJ8cI`sH?Yjj{y)V<+OH556POn?NvMw!FmXr zd&vaR-~3T8-pX{kJ<+C-t*9n7Ip)&gjd-8W8QnX1hWr;qk)ezwSl(<^PEZn>e(Ut* z&y#6xglurv7>EvNI`FV&zUt|BuATj!E_+8`Go{IZ55*hR`J>Upqic*7221LT8}4N3 zQow0S@;J!4PRnB%U37&t!i(jkiHV8z0{ul88aOsw2{)h)r@ll%WZ`sL`obLgOCbCJ z9xTKkji-!^8O_F2jH|WCat*2AB0eolz~-Lr!w)}lKIlxDcR1*BJ{;ePvzMtL=$IG0 zetbBqL_}#pFs(Ciq&bgOKM#epjEoF2aSDw-m=~j&&eZzi!M8F&_aO4s7q`pG%HCTU zuSeq-vY%078+dJ*`ht`JcP&&`Wpvx>#YAIh-TOa}8_o6R)W+i!+DInx9M-JXnk743aYl`4y z5md9{yKsW9=o+rYzouf=xPAK&=_r(4eE?coldPE_!Z% zXI&20mS@&lJQ1Q3uNW;U{rwf%U zr|ZVt`0bM8a9~DO#YVquGy$G-LBP=lh~#!eVKcQ0P=G;UTRK6?FR=O?<(HFQ%J*L-B#)uz)~xri4ewRBFoisTU-0mV)?2f zSJrDaX7$m{%QiLVB3V@|Sy(i(e6L76ACLMifOz7SMRo<>^RqOUM}Row(~|V^>V?0I zMcK8y0Iy^hg@v^!rEWK(j9_d!j#Squf70CTfD6Al-!`EG9h{Ru&TG*vPl8c_H607lv3>!T&)}KX#gbkA zD@WCyEtmf-VFLV3qa;N|P3=6u3uzRg!1Yz{+_?}Sx}oVyBQ7R*{@gh*V;6*h+RB|* z$8SH|fMpiI`*M%%%w}glYz#zirx#Tp#YzBET^V4$HfwFt40x|hMj^HQ2Q>lMJ-qSx z+S*#=T*l>Eu^v0-^08u~6m?fTseXkg+hDndCoiyS{(>(2IwXYNGalR~tLk7!U_QU& zDhCILpe_^Kkgptj37y3=@0r}p)+#W>!;qA>iiLZ|L%5fPINVlZH&s0Pobnz30!0$5 zJNo+iYcpLe>_E_r-n; zoZnhk%HjR7laf#XB|rkD*p3pkV;&5-tBMv!v)svs%OAYAR^N3#*te*pN8gogN|qug zPO?2+Bb$x=s-;?y^-wV!>A~VwUWiL-A!OvWc*lsk-f7$>tb|ti7FrF^dlojN!I@ms z$+7+rff+pGQ&JewecvA}wy{lVUs+wn!?zkrp2$IXN9{G`J9k2;zQd|s>(@+$e?o?o z0hqzFg83bf8{f*_V5&sO~;wT8PsOaOEHgowqO?q!ox7P_#@{h{kp#Dc}J@rmu9< zk(op4Mu%XOR~IBwus9$X*{YN-#aA8 z=MbZC=>)HoknOk^LaPD1oJcQgf_>Qm0)q9Z2a_-f78|%iIG=|hd z>Ik&Shx;NCS$c0=-rO9`eiL~kEYwNQD9!>=H@zWPlV>hU~)#c9|ESjBUeHXCg(4@(aXrnDo=6~ zViW4JP#ghl{)Y1dzyA{;fCR3Rn7$zQEyYr3-MxF4%6+X(Iax9K{z#=ePSa9T>kFVT z1sqvJ!OBfZNq7*QQLOuh3~m6bY;WZRshj5J=C+L9-rn)9n+siB;jvke3~b;Y=NMCro0i=wi0Fy} zqklbMdvgB51t|!WK{k?-O);WnvN~PgT~Cd{#M{c4u)o<_@<0-7`;Oqfzuij80YJDk zq)A%7y%-4+K{_K5zVmdjVxhiy8QKNRQ{&j1I$o9*1|Hic&rE_g<_Dysh3o@u3K*H0 zy&)UZg z3FU8cd6~7<6TtHXi`-M$yKD}iBh;+@qe;U4#sDVLa$BWMFf=&07K+fL67{`99Jn$> zW>%QXU|$x!M`3(c+6au%T7czupZW)zPN6SgFk@rD#LMus6=UNP2q3~*1476&>ins> zbLS`U0pf~M5WC;pc)F6Q;9yD?%yfz0I%>Um-V$ncN>oZh96|6I)$s)*C(e+++*3bC zS?H=&`pBFMv32n3WruJW2cxSS^`wdMWl?{`$im|DGbueC{wtjK*L~_3F(n_0x~9fC zcZFXejE}d4%*yG!G7iPYKvBSCb0h=aDk~!+<6|Z@+;de5)Ms47sc%(MHOm~Vxct4m zr2H=3L?!RC;sgL#-)E;U(i?rd{NrqDuo*_Etie74!D|rSR#s67^lfC*FBcew9O|0^ zlZ$YGvGKWc_A{L?z;qe#Xz5r63$I+g2M?JPEZTzlTcR^vgM$KN2Mdt-koSpq;nUvm z4E+ir$dNCR&qMCZsk^Li{q4#`Wk2MV4QOVu0k}u0X$$%^fIt9+)j=rd&P7o+g3l`A zl~pG^{|I7Q(lpnGZhA>A*b`V z1B+p16@sZi04D)x4O;OrFIt3ODf*;NQa`%gG6D;`C<$yN?v-q!tu=2up!)lLxh6*o z^f;RsW+(%$Z8QE#njY`v6?XmZAFqRhui-Uw?%k9RyMBe%qW9h1mfRXC*ZBgCd}uRL z)Ilk0RO?MvFYq_~LEpw9{@J*xM|X2!2oFvF0qY`~{jbu`=3sX*_EqBF7ywNe{xDPvVx=v6+26u?*E@MOstctm&h})F zOja4`r1`IAgYi6LiH&;HE@M+mreRs6Q{}O5TWR`zJqk~nc+VTcvIZP3Fe5v=Kfn@t zJi1+0um###sP54c)5<-7`N_ZEc9m8K@Pymahm#aqmRm#hBg$%OukGx8<`V(vlPSKz z0zS_HC~K^16~eA}2}M4xtUw@)PBs1nfu(P{6$RamLAzEItf0ZJ&UFM5te8|SPd*Y$dy~p&{2p z`Y>bhm+aIQhJ=P*M931{F$XYGRJxN|C_33M9qWM-B4jO8?zM6-G0EV%l7w2SVE8#B z9=q3IvA3Y+y&5cg?Z{t-0=a4(Y~j+)-vJugaw!0A5Va_Jv5fU9MNj1 zzfj3aQAg#mHA5{&nO+R955*2br%81PXMycQwq{b+H42MNZC0yxW1KXW*w4L^)q!pBuq-*!7| zc*0X5>kgqq(XAkQg|WxSNp7LoYCTvSeXs|KGFlz?f|%v$Aw2)?M{^+%ScCTV_P#<6 z=4#Qj8HLc-qTltFvGU7Dhn(=_)DEj;#K`fJk7>jZXDp!YHW;2b;Z>prKA%>On?#I8zKi>gLOYYee zp^3Y7u5&6jHkJl)!Y!F%h}1!BEut(wlN13ntfqNF8&YDy18}VHF3xSAyZR04-{G*);uu6&o@rqgeV(iQ}f(P z*#pkMG$H$=@Nf}y3u0XFlGP_0h2Dv_x7Lv=A0VUg8GA2f%e z0L{UY=fK>aYO0zqw5}qfu>dXbaC)vyOBd7Ct5Uw?=YUmz0eG9iv+xs?B8Tj25oRQl z*_`U(`(yQt_o^E>Xgs#=9(ilZOPFd0U>7C_XN&+SY6Z>esM;ck+-7P7(tuWX8t-D2`vQv zvrHO5E`YE5fZyUCA3M%<=Mf5F@KA5@dckv5iD|Y6z!cCJ9qerfixK`jei8?9t)WiH zae)eCcn23QVr=UnTp|_#{uV{Wyosa4)Ic`BOjv{yGQ-5&T`~-+#GG%1KvB1~RDBk# za={DZKC8nC=O6m2eCif}0G}7LN+}8wo#ovTLgmMig8Oapa8})JmGAENHqX|MN>cAJ ze|THZE61r3Ube@gL{8u3m-Oixg4Khj;)gNE`s! zu@?+6UPZ$$EWiKY%DhIGs}(e56$6*>_&la5Gsx=eXs}sU1I9hw^%vt!A_?ke9CE z&j2Nh0GbpqFShrS+aL^+i#R<@T<}5eXmGF+ib%Bt%t&Qhwm}tos~jj2L52k=Z7;$J zdV_ODIlTUYlVQaW4w>x_xJ{cr2@oLRh%8j@E>OE10AuM5(A+)fnYSORwGjL`1CNe_ zqTm za_l$$>Tx!Qi8r;OUAhz$C%86gnrPqj42aWh;D^x417KhS?oE%6mW7*x13h`4pP~2_ zlArZt7GZBzQG?V323-yc6ampe5QC*kP?Gs0IgQ{BzX$moThVs8T$ z0fgK*G&TIuq;!>ui;+b% z08r=}C>>HARQ;x?+I=8QP*oD;1zA*;#?D@Pg62DL&^o9o@H6SzS)I(3>Nb1Jb#(x8 zsZlsEIwZ<8WWEz+h-_AG#PT1F<*j_qQ_BZkUXZUvW_q$?VL|}$N9rC+fLi($qq1 zXj=_51OAZ)CKLbX$;&A!OsUW>fXZn2*Y6AJRSpb`?DKOdxccavByRWw?sB1M#6d^u zgzz6gzCZzo)4^1bp?(2)nm9Op0wWunU+;C!VOVuki&4Q+B8y&ll>QL)h7m+{+F$SC zcRoPvJBYlPTtjZ?tQCKa_qm4}9C1!_Id$=X41pWVgn$Hoei4N|6zL&6lS4Z8h7|Og zCU3ba!3K|OgLsITA}WX8yQm0$z@lU+tEHtSAI^16AMh(=PB+{(q#_RO{QKts5qrbx ziIRwI8Jc*@ZtZp`)d6;B`~7XK;xaCiQ@zCHu>3Y4ORF8L_2FIt?2Ci7 zEU%x}f5Uu4DQpQnq~M!70Zd|u`dcqAs1SW2iysxXM0_{Ge{eW{nCc*_q6+xw3F0F* zk0|nu{IRlPXt&k^xIkP=zGYwg-~C?ox9DAt%B`!1U2v+LIQc_<>3ci;Jw2o9d-ese z6dy<}P@cf0{i%ij?a~r(>AR@S0nM^203Ia)J;cLD>%XgB8r zrzAq4aQXJJ+dns)e@D!!Q^<;9465wFz^I0qQ8A!v*UXEWc8F+3J-HUq&A}8H>))4< zg|S*00rU!yl0kycdg*8s875%XD03gS_NJpTFyh2s&qNR1YHDLYjtosdk^C4@4bI~EC({( z_}vL8BgraUH~pd3KWcOl1;2(y*V!lkW25VME}K>^9nu}34!doNE@~J-v#t$-+9CAD zp+l=tae-JLh{rLUcU~duL>a0VqC$|wZ7VpHy@PYCWQr^INF?;?n}5E~YJ%x}3iz0Q z7}{_Mr`-GW@(M)}?CIb@yz!mVTd3oWQU=+P&L{0pt{>+<0<0lJ2d*NN5aYTKPW9dB z4Nrqb@!bY!B>*`d50L`;Zaz>cZ?y$@oCia^hhT{^xZwDeZ%ayKc?JCB1mfBefs9c2 z!FDTF3X*<2*lK-sT88uLBx*_GA~BT|{6mja=ZZ!=>LtE^y;t@~Ed@E?LJ`TO*RR02 zS*@$)3w_U|M5!^8q3#|$a{4#KK%hX>DozkVF#*be27yAVK<% z=lksaJK5RaVS~tg1xg@h3Mt7Wi5V>m_^d~$Zs4n9OY6&v{KHv`8<(fRH!&;8Fpf$JtAl5POKTEg-7-(LSWM1KD?+eevz zi0Ge1dH*Nd$G=8=WM=<~S^sPCjwa~szoz0}Q}JyE{uSMhP}KjLK>uIKx?x4i0+H~x z6C{+Ny9hx4_9kPAe}cUXS*&*&@wLF^T_nE52nU$GF;Hj};e2y`r9tozK5tmG-W|qigU5J~ zA`uP=TyU=Y0;?|h=CGr|o^$UzO;DBElJ}nZ{^_;;ssl3g9%|g7u`CrVqd!%FULNUC zCEnAICo*gHnDpnH+swYXK>?LQ^Vr6Kb>ktnbKp}=l7BHm7(GjNV03o?@F2Y325Qs$ zxr>#r3~s*^fuA%CMZI4n`D%(37YC(~?%lXO-~)VpJa#&a&ls?rC855AIhYcs=nH5S zWN?YGk&?P_nD*Z-wilR41im~j-Y*2CgL4kGd<JqKH-zxBd2wV*5f_#fZz=MHEwj1TQ22Wk)c1kEyQxb(08 ze*idT8BqN+hH?ZT!3xq1R1*nD12?M)O+3&)(|Hm-j`sSt1Ld6@w8*rhTo+2(K)Z~} zTI98e{kWB=QZM0{0_ZW=fN)YBnm&?pG7$SR>n z8~%KajydGR=%E?pg^FlYJg>Nc5NCNc7OFSsnA?aDy~BU2yx!9z-dPOf!-uRR7@R(C zTvS*JI2^>nLdPYV${VcAX$SVPfR?uYih~`f%6vc~%a1hqUqRl=3U#*gPjlB#Uu5?M z!3Gz|D}y9J#YM$YzVrtO{(;A;1q-}a<8{tv$iC-LnGNM4o52g%j+=#a?=^@>gkUhN zSTsZWe&d^=F7ZBs9*nV-;Afz81lB%F;1fgjWiRV9m4y7GYBIv&9)tmy-k(7T0kQCa z57FKNz$qGm*c^2QHLE<_S3c`$XR$FBcBw4XPYr=Ew3;nq=>X`&F(7W_a1&^L1 zWy%kgZ-xMfHj!9*Ie})M@c{S>L_Gz0sz(C5bVSp1hZiETinWC;5 zmZvNS8s#`>!h?PRnnMe@v7vL?PzjC&}pOS>xOzv9rcSTv_P^ymm}Rpc))F=iO-`OpsR)`Q7>S*>VOU=0~1lW{L%U?Fd2w#1U4I54Uw!m@4Lah zI6d~ZwmzKo_yvsp7KuhbYAGPmD0BlKmhD9oy-WCJ<}c$w_5oyzV51+_549mE<~vtb zR>qL95ol15FG5Y;maG(u6j!!CImm)Byg&pED9iEC%aA3>i%bEvv98N>qB1Zva=BHKe2briXLl+)M?8=&@ZAbGt9J>;0#R}A%4pnzM?2->Sy-@*m}5=Jdif)rXXL5NBF|3DRaQ}fWs)-}v;vFAd>?=PTkpJ2awVxqt`%zrNe&A;en;IH*cL0&2Nm_;OHM2%MAqE$UWO8u!-Sgj{2eRdI#3ob2VbnC_ZX=_pty5Si7S39P5YwD0ZRhb{`4;45wI znEiJ@BxUdA)!ASoQ{#n171TE5El3+48Vw_^Sc9R3p}mspuOUXL)+pmCifEOVoIP8N z@kH3NUyZKdX?`rD@#XtdWlp&tzN)_uzdXjRR1u7lEwRqYpYF~EV2Anvzi|1!$^`}x zp#(hxP<60 z=m!LTchm}_suGu`6r5T$PMU-2e?$(OGHWrylJ0#O6KJdhFJ6YGH}isB6=D(BB4^DCH!J!ne?^Bn7iJGm4;p` z=nEkw;fq|tE2`V=4%enxDEsVU={?-j_~^B7@U#Cx!X1vELR(oWhLs#>38XeF47W?> z?9PVNgkmbjRqz#TWNs<~sz1RA@jOTpDEe{B`NksefIlk`B&h6q z_h3Ixen`iba+!g0+?5lCk{m2JS z?&Z1dBeIx%?Bx_oN*ph}*2nW>%sr)CYA|Tx6)DLvW${9p0WYR7bx5|+t8gy~Ti6F7 zND)S0$^$WpDM{xlifX%YvStXQ0FBEOobhV6j5ZG{jpzUJbll#|>z|V^jc?NiLqHb3 zk8h6ylr1&_JV89j+;-h0ud7LNK*A# z>8N8Vkl>Y0F$|THBe`6t)W{DYbI{E*Djb}1P_z1=EzQ{!{)F6JL_ZQttdWDSqgQPI z+yny?a!BMykw23MN{7HKvzw`Cb+5N6VzEWua_79R1PySQvhy}vkLU1@|I&u);Yz=| zmDv!hM~e6QaSJM`033eRDW*FSr>GZmax^r@GQ%ltiHcmcsK*cvas zq?L*>HT7KlnBxP{6|?R``M9bal1w4crJTGjZz+E>k5K_>KFrl9S56W91L`P9pmX~I z6I96)>)v=q7?17Db+e^x6&gs4s2IltUYO>uk%q!Yc;1|>q(|GglogYT&`d+?|0#=ev?Hf01rS#MI&6WqA%nGzXs ztcUKrH~W5jNqG3Z#xj&$Z3)rN0WIJtnVCzBQnhBcZq$TkEY%~~#jkyWpOq_RylsxF z)yC2d_1vQ4tqhu&->s4|{sJu(l!S98#yZ!9f9v|kPqTGVH+bY$&ban!^7()EErk*o z^Gnr(f^tj$!G~bZ1u;8oE>eIS0yzyQs3hc>psEm&u8`)0iN;rVy?o*KiLq8Q%D-rp zY0pxMLS&^`*+XkeREx%9t0AZAt1)vaBqb73?ch5d|or9*pR-rye)s zqneM#*iN-sQN=vxOO94!W`vPwL%t8lI?^XrzuZ8M&(FYn3Wf@oUPKupxpsYW5-t)- zkvTY}Tc#F*I4Q&NB^fu%Jf77F%ph5<<*Y(dB-dxv@QIQ#g))BO@z%t+kN|KaGRFiO zktgH>WLiJSJ$Mf+*H*41j(T-);-E32Ose-YcE2ph+E50R6h|-LH=W1hWBho&Cih7>jO}fsgLMM<;GV8gR=?!}>h`(-ym>Lo{8mVk{3+^VD;hHqjOgPEF0~kk zU450SFA2jKm8zwOg@w&ocP>)!SrXob4n z`Qy3E6UW>SzWDu)D?+&#Mk4kd;*I$S1zJX~i4M+)kscodNgg>n4P z($0PqP0Mk_&$#N14NW zjofmXfVykz#xbaurR72S(ccSjCa6j-_xh<73FvfY(BVARm-8ov#3>6ex!|#AKwF@e zUbYY9&G^CRX?s6?fhxWb$1mF5aFP1vy&wjyaLylolCp6EF=dXb%?6?97}muB5jqjX zqOIo+{`rs3aUx9r2#}-_(Hum_4ogz87$8AC7wu^ox%40WPPNsqep554IE#BlNvvAB zN@ibDcYDMGo_=}_pa3!b()9KjK3D7Fhxp-&mr>#x4e0sZIW!o@(3AT zipb2P6caV;#p$8^X0+hl1qssa97q)7>?+QgR76mZ&(<0E zld^9CTKWhcOCQRdWu1~wpdbo7KF|9L zXr)idC}rad=4kBSO-xGO1tl^hbnis_I2pCG14&NHQxaZ3J54eYY}z;SejsYJFaFZ; zf$8KO z>OHsO!vPdSB-^T{r&9WkzTPDK51g>RbrY}F5pqa*wZRyfK%kVMi*m22E}1rM%bI~5 zJ_tt?)#I7RY9N{`-#YmGu_l>vV_ADaqOQ3feN*&${vaNG+-jAS9aZZY z&mXj_)VA$9OO!NaV>HhK`OXC+)mPPr$AUf?bb!E0dByO~P_j?x*$~u*Mej#jFRvTl zS98Bb*UQU`%yoWpHQKev$nzNWPzauEQBqQKTy9%>l2kU;bRr?dDHfeQVEB_xK-~+| z9zd3leO{HB7%waU?Kk@Ia|$O+P8=RdWz*;4k0PA!DI=umv6H(_fYWzi^_G0`y6I4h zetz@H4)7iHix#*dG_>}K=U?6bGLO<%kcm=iD~ZGb8jv!nL`NzhXiA1`+utBhiy_(1 zDA_m)P1;i4_MzB`;no+Yf_}Z*)JYxhOva5{#>IXhC(8rMXq;0 zTy!7hD8z*14nn?{e$KcnJ7BF@(gRfgtkX?mu$LnHNPn%uv}wdIWDtSP4xZyk z0@_L2nTpKgY?>%N(u@t1u107P&>PTiYr5CYP}uBeyvu8$d~#CH@Z5R}MD7&PYO8xk zYI9uMpl79|0u^UXi{ka~Zk||XU9_OhP132C*b#dG5b0FqKS-P^IdPEO&|hnfV46XW zQbn=C=2L$Iqwqm-Rt++OfY_*pkomeK=lAb7ZFw;t@C~6UZAfc$*P@RglQPRQcd(}i z1CR1E%X`VY1~l9Bti4t@SbAj$%Q1(rqks`44VKKBInze}(qCdfwe(;T@l(dj7U`dv zNr|U!mLhPL=op_CDGDdgL0M=cgMjBmi=D=vF*GURt_MA}wIP7Mh(ahr>o|Cs9p)<- zXRaQ2OBg+&46u{2#9Kw7cmj>0jf`0+C}~VmH6N{H%Ykgqr^xBJu9-$%aAsaNidUgS_%q%h-Eot>Rx z`lHZx!|e;|mG#p;n>mfP6MLNWMG)*M&~VRCO-Clv=s3AuY252Z zoPLbPGTybI6r5ES(=M;QwpyT_YsKv^Go9ASlAQGIPWx@SlowmScPW^|1kO8D({2cd zfWWe5b^#U0H7&cMw?AxAqzDnsAPZ=CzOZfp)%k&G)1PcsAzx3ftWZ9dR5xbXz_!k( z2j^C-csV9);L~=**=I)jyBDC{RdPs=$JKL%sl^Vj*6vf*AtkxCcTq@Xm8iV!F-tmX z#g^E1MevV-{~CEEpP{lg`Qz;nypZGXK1&bO#n6NAy~NRz!W6KqSp5uec|pvn3}F$G z3d~3RQZ5#vi8JXCdmbJ|{~dj>+7%x&i>&7!(Kk$xA%Ba}RFe_|jW{)M%4rk+W4h7h zAxMbvdFB@vE2%;vPX4S~IvRkM?DqAls8E4Fk*su+~#GgqRtg6E!L#nR7?q45#>)A?XsTL`UXZTF#rr%_h!gO2Hrjux!vM~F(8iRXNsE|B5boRbJzrH6C_^yZH` z>t@9xL!@V+T^8_q{WHrq7DY!;5p>qW)aWf66c{EC&h`eaMZuR+J&%0wnDCX+#Nz-h zVKfS{puY3KHYp@k&H34NFUAs|ZTbLjt-@%_EEhc(Yy6hix>l~0Z_&{IJBL&NXqa$f$cl;6XIm}VYy(^T!_{%8QatKsV z2MpAr0sVToD}9@y7x#&7tf+ogpJ5G@LaIK2eB91i?=U;n7|mFfj1jI)>Sz4<8Uv5E zXPdpXSl#i%lVgw9;73@)E2XShiRvbk*dG{YP~h0uh%(pglD`>9MH1#E5kWwq=b6MR zM??UFpv@6ph_dF)Eo+Buij?O3HL6Ha`2(7L!3v{NU0y;oIaU11AoumfrQneNaqqax zz>hxK_o=_mjPWMH6W5@;IH?u1)N-Y1u)28ixbv{xE4~8#wbTrlt#)letDZ96gc8u= zkM?0`)lc>vREj9gEfb?cv4T4eC6@0t(AFU6&_>KGD@-Fu$&F~Pv@+u}6DkB3Lxcn? z6bu`SBGNJTO4-U93=9f?rO*VW+8(Ydv{V(U_cxLEClQE4x zGRH=SC0+cwtH4%52b!~17&rI+4;+9pQW?1`F-Y~y+c=GMznI_rFUpeCi#nAZ@8w)tY~BV7QXLDYv(5)>L08CgWh*{%hU z%Rzqow47RKgp<)53Jt0!(nX_OJUW&RrP1GmtyN!3T9sxCj{=TMbUHp?P6 zZyPeF48&C>8p3oF7?Nu9J|ys%!7iAVgas)%;n|ktnYv?S7_m$9;ziLE+Oeginy4r3 zRVD-2#wnBDDxh?i7kemBad&35J>Z-g?cR`UK=41x-hHJQ1>RpyNH3urw281egJcH6 zOL1|MoJq6)Cpu@_D{t%I0rX8J<6l zBR&o`k#krl(JCV-1;Hdm$QUWQpsVX_147mGZrnqvz(V zPNlDa8&r5ZQ}1RrP~VJ$X)_br%H~$d&$Gl1HixzXwx{sPNHYOQAO}G^9yn0ZAPmVJ z2BOd&QTk#9ELk&qP~&Mz#zmZKvmO6<>z`3h=>`f1EN(j+85(i&ZAArv_Rcp#<0@DaY7r%$J*O|*089E>4KyyquAQ>pE&sd2n|ov|*D&L_CVH2ecN0Bucq#O|ye zoC*Oft7!P9gR-(%fMX_&haG+9!_;t(?$m24lRTMg8*>#BfeyxV45(`)$=`6s(f^b1 zwPvb!LYLHDD#BxkSaG^Q%>-Q^bu;p2n0=aK!b?q zM)J6<$4=cWHKGJH-D>Dfo1Rx(VT^sc#u{mQ_6UR|#nUb^x8J(J0VL}e5<*ZEez6dbB^wVnqAD9}s7K=iskcyYuNe)$4gPc2o|5RS_d{vealhpuLsC0ogVqo(XRL?D`Xof6Wfk6 z<|jTeR?o0*SGsTswzNDTK_wA_iw00l7==`5c(Cr!2?{7xyLm>iAn0lR<=d(L+YK}q z%3}~89PON^h}c{p%6W7IuMny>4wz17s%&5pzzf?QvAa$cC(K{kIp=fUBM@Q+mt>od zqcO9-^Zk2LCeSc>cn+V3vWgC-L5q#=C^wRA&0^yV34P$iYJv-vmP;AU6>|Ld?^NwWyd@K)GA@;)zPj>4r)WnxZ2D;3PFs5<~4B4e@vrsR1UK7SyYZ4u$C)>l3q;4q;%0wjn?@;qDGs z{QPilZJqw^{@7LAVgC6KXT{G)e6PnjE;ckr7l_#l;SDfB+?_Q=O;o{U7S`$Fv#IY0 zu=_QwViDGzNk~Mq5~LiAD%>%g^TvxkiuSc>vamz3R1I0E7r7u#2|gf4jPB6fsXjjP zA16Ms{fR4L0;SaU>}bR!Yac6Lg`*;EZE{mgj3X|u%c4g`(WS9}I-x;7x35aU;o?zf zf;)aXjl(W_U_E-!2#k$7L@NsHI05fN6{k=RWfuk1oFQ`NdG+>d)AA2{G0r6aA*;K) zdF_#r`rNd*RIqcDJiLgI~ne3z)Rr04gk23P&}D9)}`Z?Y?CrUN(O{*?~>CBEwFTi zS%9~bV_6UE*-A%#vwDCE3T6rifFU78FS1^B)hV7MicjaoymD8TBlxlmP-03!pG4MQ zM!8Dycm^iMV?>u>wU!x_lJ2IjkZ|?KYw?kbO~TNymixZv0K8_>iUw4(FqDST}j zUZ*C_v!rIkQ!;BAaG1rv(mv+tjuYR$RCIn8KGtnBS?ms-u<0wjq^+r;52w&F`0`P>;xG$3G7&{_Kb{1KO8;WR` zo6`A=OtpbLt@dBOr7x{ieVRRpBz+KSE3`Q&)s7Y-@1;LK>@ih3a3=5~TRfefK5q{4 z1cc4ZFrG1`(fOu|-Lj8%o7Hn8#H{TI5Vsatr>|IQYIoshfe$TqIx%${Tu_PR3s6R zkcwTFyUFVMADLlKH48H6lY%g0bE}EmU8zFUe-Vlv->lLLy$E=S^&AT@-Dc#Lmy*}i zP4j)c9z$ub*|JC?>%GZ_TB(OI8jLtQ8|d$YKo+sHVQU=gE;j_)Kp-;a!nRF}_+SUw z$k3Otru5TQ;rLZTrxRq2_PS(mGzm#HHOic7fYV8O5DjxWyx37FtVD1B56swgbYGKF zgYUIQhd{IHqm}3C{cK?QoCGR`+Glkdg?iLSBeQt6vTrlmxVY3O4gcfvPg=kx%cj^g5~RMseAww}4Qnn8-jfPJ0WNrcA*mx;CG|9BUa$kWen1-0n9)pFk1=W^TMQz;|a<*VLRZ5sC~Zx5_t~v;!u2H zZgxWyeh+ppCWB)1Lg@;(51srM)9UB{Xs$z$@13eYdKb^VL`j7vjGd!x2{e4-q}4_S zm66iXrO~j_Hu^3Vh`Z*4Z*P8&S79gFdhz?}GwOD@8JvtbJ?s>!C;_nm@T2;X*R!3` z%7*;#8{=`SImFHB$!b)6qwD9#?y8k8A7tGiZbdDdHI2bkAl2ZGXui8O^{?hP?B3K> zi|P3gdYhwQ!2Adrrdf`sGsErxRY@Lmuhc)cT9dwtq3lukpF%}NxMkB2zx0b5pUr>n zF1ePllpqUlR$wBe%Va&;ZsB4N?sE$~5loH<$}n(h*PdHtnD${cpD8j{c%MQr=3!*+ z*_iJu`9}ZiukUz7w>KmrQIqXrBLgh9)JQ+ZI0{jiJPK8GE2@pZIDQM{nGA6o^Ihi~ zg!wI)DR%n5gTd$Ie02YA9 zY{c4ZqPKu5>ssHg1FR{9VcA~Q5L7=$0*&&{j|9UtI9w;dymzqiE-4V;n^tI@0Gd}s z;uFIoAZwbG66Tf?YipOMel3v{J;`Mh86s3_V1B8VPJ3loglvmXejOMP;5O@joWsaZ z<;;GJx>?kx(Dn@Mc6Q*);JS1(=Dko09Txl;1xwM5%B(AO zt-5pWm-vhJt?{BAH%^1qgPvGHD&uT0{*SiDDHZV;A{74e`L|hSp#&5eTWlge=dD9u zP(E}sm4zS3pSHJKXo=2}6C_0`&94rYzA2Dr4ObV0DuRxUs_87ryzeTgJI1lPo@Aad zx{A&OAp`VrAc)v>DzuijcFn+}n0UXkE65P#(~Gk5^0IKl`%GnSye`#LUML#Zg>}NDq%-Ha?cpVz5!8Gjgu0m55%~=fvyVma0&E z0DZZpAQos);!FVa`<|CR8x9FAmpMZ*V{67o^Bc|39HeKpn*i}3Nv3h!cSNfmQK1cH zNt=uMz+ccrMR(ig)<$|Ib3!WByW;vE;|j*1msL@zO#>X^X7rF=+a#6;h3(YVMhGNy zgX%=V_>L{#0I)IRKE+kFG@HwSm8maW4Q7GgeIB&b(Fs^g^YlFF(s@+!$Csxn5#1+7uA~GswMc(u z(@c(@GbhR~wQIN1rj68?;aa%d5q2ns)1QWO90zZRw?#H$j2c@(yeZRgHr~3ezLSh8 zT>dpuc0-u6Q5jO2)2g0Zs$(k)AFPruU`dca1iywenXTfie>r1uwolt$f<$h6Z(iAJ z_IFUAv_Sbi7j#8|VS=nHlU@_D#julZ3GvWSV;hX;IrvHOuSRLZQQ#vmp@6+IJQKSQ zaztUluL!CLis=PVK_T7RCYBIkK*MWw{N zp5U3M^t=Diy?t9~D{?U|c^w1_VaC4EM34s6m zj`$u&2_?Nr!nsPA!@7~ABvAPKdm2~b=Bd481ylx299g(l7$mi7+68= zwG050(w61in(%l6C*cGkA1U#IOl<#{is~Wg8F@!T-pG}~@C@x{#; zxR=ceMb+g4OwpuQ-q93~j?*oScJR1{y0#phi_-h*{)JJ%mU!tbu?v+Hr$xuQ7mWvdz4&!X7sJbY^C#-ixN#jsoTZYj}Qy|{lC-AhceGnjuu~bWx z038D}sVuL^?T5x>j z6%-;=WV|{O8$jz(fy>tG6253l2wjWtQf^mgV{o$Qs83`-R)K(d!Qz~b=RvD2@JKk1 z>wMLXo4#I(E4Gvv<}l#lkoWn92&5V6pqWm#F&Fllv{@R3pc>)cqZfmh`-bM zrfEw<(q#^$SYa*as!(KP7_HdQ0D1@U%Rrcc*g5K?gSaEOn_1jc=lTiK=s;tnZFKy+ zK(s4d{P9cB18fZ~2!ea!fpBA&%jmSh>mUISYY0>a#qgD}hB66Wm?Xm)CMOF7YkahJ zsovA2Khog{k(vZb;s93pW2(7FriwE zfr~`~I+CdYHjMlm1xT~^MBNMT9-xE#!iOlH649^>*KvIZ+b#m6bVfn7thn^)j)Cz- z`*7b~t3}3zNSa~aPLrN@9JSLj=AW1TPdIwS#cTr|MvaH_c-fIF3H-J)9`oq(f#u_(Z83xgWh-RQ&_bBf)BzOp`dg~f{ zO*1R7Uj^4BB#5wYJIK&3g3;W$pky0lwSV7%LJAUx&>6{(>0#xIL0A#zGVNPgUXcyL zjXlW!@+3iXG;H+8RaA=tg7X|5Pf&rR(&4Gnq8oGX>H^{-%C7-;XY$<3zW6&CwQzNp zBAE>xs~BoWqh0S``R#D0?y7qZHtVAi*34nU-gxWB^jxtm2d&AL<4T-?w{In-Er2U} z!;e}z?s)hrDeukeMvG5SGNg#UOUrv%`sc}=w?D|AI!{JxdGlDsQPuSMvF--_tJ{Kt z7N-b0m0u&_?H$OT*{L*k3A!M#`AaK$P`?WdYFaMNKhnSLrI~s%>JV-+aB=%) z5FEu|`g67o;x4Qt%tgix);|z_p3e58+`lxy(O&XInN#2OZ7eHUNkkkwP`&KyyxR<+ zA-%AzEfdlVnZJG7>R9VDXBMA24OcvsyxTPiC zNsA-y0$bb|9l?$aC;fJP!BX{Zw0Gtp$&_f&osW)w7YlAnC{60Dex2ojyB&jO4C`~K z$inci$7stO@|F598`nhC7|9GwlxWL%A(ZlpU@WCs(f0o z%{FVOE)kj2^^ro_0hHfs!XFwWqss4_c+)bGd~NHtP<9Pq3hng$$q@`~`kR;BQ;G)( zpEu3k(zcTehbRF-Ff!}6`_ndCDVKX1;tF93}cSQHSeo?z!FtxM7m#{ z2j~GauUk9>YDSOiP4V0xw|ht~irN2-;1cB-^%~`o8kHh3KLzM_VUkN+szWC-IQeU* zE5RLktVF_NKYaFv1U>h{B-9IZv`gO6OjBFDqm`ZZs!Zj0L3>hnd~hv(vWuS-yEW{) zEYf((Qj(u{EX1~b7^#RcxHE~Leh0694(Yw1tU4wey_G09{(@Q*$idBBWyj=3Gzqf2 z!fl9cA>jsES2hi9YWi9n|wx)(&247%pnG2^M0;8-YP2-B>ei)h^UNytpRH55X$d#wV5iXKxmMq%QvG zKI>c{I2=3P zeA>s?h-oi-G)hza@Mp*Dl55oy^A8`IXJPC0{F9-nAAYyo?_Do|zS$?xB}xNX`tZKyJ;BuRW?90Aq1axS=LvdK8xed_iW!t?^ZbK4l7DYk?*(-!NdAdoYu8NVJ-vAI%Cbja z-$T_n_Tz{C&&J?tS0QD$AbqPKFtVRv`_XxIkSI3xL%;wLU`+8+Y&a(EJ!|i`t^kYa zHB78bt_7tBk*J9L2eT#WG8MP~I&sC|^f!gGh^(A{-y0o?d%#S#W+0;O4-9}f3U?-e zmtIy(SP(OhF4#79FP?tAtYPTN&JAh3MM?YMn|V&0c?*9%*=ifDw@8> zxk&8icD*g(@z&s**4ZJ$681ll6T>@8+Jsy|Yk)Fo3tMce2e7ZM5PQwSiaDR8ewmJv zZW6m|J5PN&w60q72}~s=b|3M#syi~MQ)1>49|gM;PAMW3kC}dFZ5u!$Erkp!YoEm7 zCHg|sEyj>+h8M3Ndl~G@kPm%F;^tc0kMIK(w`)9kN8&TNqSd1*a#*Lj)p{oEV*wSM z3$aG7<~_dLrc`31+Q(Ohnijf7WNWfps<7+vk%txAR5~$;{+r_6hzcq1LD_oIjM9%8hfm-pc;a7Mi*8(A-w-2X7JjR>S02uX` z>S*6*j$l6I0Gv;hOz6S}oc>mv;{b#KRs`gwML53zoKr|!N)2$7s`Mmw+(R+YwyI^= zfG|#1ysSNtBZ|!rY?i$&yb9ZZr0U4GBSFkcJ2@a@kFR3(lz{GRvLJ67OSbZPugpTx@^ z7cnnReFWUsAxSZlgR5eq@|%9B3=r67)T4}&8ppEX(624Nyp^L-wB^(<#pS)VOGjc{ zb>*h;!=2cIP-1`F7u|OV-u4El4YtG_ZT9M#V}HB*q#`5O!yoC& zX?~n}rdz^nf=fu~%KAw12Z-B=PZp0@9+yjd{CQ&0_bQXizaPyl3kay(=Ck^cvlhIq64glU4zWV@v1R>NlLj1H z9d^9_^m}&I!dJ}TRz6^)T^b%PHH&56QWUQBSE)=fm*P&P5+iuD4b6$cdJbI~v$ftg z6e7tn(>T4(@~$t)*&r^Cvn!EU4K$(cXi?Bcv8!j)5=P*Vzt0q+#`zkJKhOVg(f8}G z`0El+?Nm(T{a6rbb+SxvyOB`N7aQZBxeA7~XwjX|g^1R?p^;N5a*F9BwzwVhlmYL*y z$BdS_6rFE$4m3cQj7%z#81dJG2{CiY6;|HtdOztaVRVoOKp3RMuWasVjvb`)UQkSc)Gd<#eVsD=-HO5mi?M-LE5ue zWljFGV3P92fBC;9zx}_827IIc?HT$1f5m+4{O7;BoC^CtU73s0m@#w9!GT-bq=%Ka z3CnEbz`AV(lY5}9jSJt}@FZb7*h|+-vxApKOl~-{kNQ8=P*wVXmF6u*V32ek zhsPGd9I+%>Oe>px+_lp7Kg`abq$Wv7ta$vQwRO(A@4k^+RbW~0r+bl<|KiPfaoyjS z>0kClNp#@kwJQg=Pdcccf6dCc`^T!4+dMrxs*PzRiG1+%vf<{T!GbE+pY)IHntX$` zG$ViXVf0ypzGoR-U;M|r4ClMlvfjRZ0hjp3bj^%DyUDd-U)SV9g2eZP{~VWBrKr9t z0={IGXch6#R`}Z^t8Wrr-hOJ6@KH$|j6z!5dU?k|t)H%-sOJ|Q;?p{4AWHaOzNiyl zq+`1|UihkG4Xj=h!_`-wwX*)te|J$e!BF_RubOBj_{b#sjKMakf4+TZer(+--J36e z`PT>0Jry7Gd4uHc10VhKi=GQ#bR+5CzKA`-`SQlc|N0_l;X&Tg*Z zCHzJ3zx{;*zha=WO7WksI}d9SBzE6^);04#UNt}0Uu^IF>o+|wePE+{`oNrNSj#y5 z&?oa^ic$X0{`UCC8*Q$|rC{GFJuG%&@R!zu3ODN(IC4b4Q-%o*IjtAmyp*fyA{VHmcLSyt-yeWCa4x z;!3WzN8rq$%exfC&$3Q8X?wzcbdZ&lEB9f8&>L6;R;(S20j{trlK=A$PS?TYJ^Xlo zTX0`vs63Y=cIokz)ZIC$nCJ>%Us@!?SvY{TT@OBC40lY?p8qS+9u=n;*RUfjf>)iZ%D=TkW1|j$XqRWkJ+JkRk30S#} zQ%02Lgro3_{qc)M3gP}}4pBaDX91TO2M(arz?6@sbH2}2vM5jS>U-9o{{E~|c*&(W z`1AQ;I(L~bQ7aDfnyxR%YhYU}QD-2u1pMQFdp7+42DSLrh*nLcmGLp@Nvtry^PxWq z{f$66oQwq$HSDZaz6A42u&%Qlsf=Rl@emynX}h2%fl^&6a@zbhb=V_=z4K|aqN5IrG+K+0v*7O_Bn|}U#D|cf&!(oIRzw_lFI2x% z=f&kwVyrZ-gxY`>k59_aMu%MKpsJXdRVyIDVA_Sy13CX)k2AP$^b(?J+3lJ13;`36 zZi187PU7Gh)%UL56M3|MMR6Hsh{0U4a>Ofw;&RLl&kp&JahZa5dZcT~cbs8^d9*xa z^~+*Xo~!^G_JI*}+31{$W&QYf);d3>a`1Y;m+lPY^^ByK(OX0S8FTJ}@JIvEu2ZJq z!J7znkOXcqkQKa8s2a$3j6MxayS&ZTJsZRA^-zShVblhoOLLIPTlv*l7&tzf!#7DpjclS_N$&I_g`4Zu8ND-`!6vBO_FL?_b+S&G^xf!t z3b?+wqGF4Uh*9ec>=YMEX7#^HcQ6I)4oiy(e_($7hQTD@)9S+-3JT(y8puX;f^h|> zi59w5QQN0b7shzz`d)<@4}wJQNyTGxJLnKYk6fU;&-{YBI6_3bT-mp$8iX?M*UwIe zD04{6iRXcjSCle`5XUAjMKGTOkz{1LeQ1+MqY52S{`zWQyh8j!ae;bb1y@pyVMSb{ z?TOCwBW&M7>~8^a6+?Y=HiRaBuIQ#4PufJ$A#Tp{y<0&v`GVrfe$`BEG>ks*EQF}d z`%)BL&IG?L0GhZ>{D+5RYa6}0`Y=$vWNm+?RQ-iesNN7EkjO%nw84hhGk2neibVKM z!J`mijxcS!BYflmrWMF3Nl8Dn(fqjoSDPBi||q!8C#L=bd2T zdi$GRM7$HGesH^p!)y^tP5;JVN*}I>$i>2|?AF4(q{sxZV667&c+~Y*2kSyKo=~|U zE7HRUBe=RE`00S>L!quKTnkBc9Wks+gCu1ZOi6_CPiGD6Fmo_WYNKNry$3=ByAg!- z{>vaiA`XbLuu=|@H7ao-V=u`HG#CZ}O0d1=-Dmd!v5%*iQx__oA5pc$;zFB6dl&E?FazU|Ku~2CbEM2`e-Q%+$!xO1$WkC< zA7#n4niGYVe^JxOJte!4cBYaofiny=KIiu`(DMFQzu8687(DgJkoq7puv;K2$pK-j z&B1ci6!N+FRy!1CQ9}*2`Lj4Z;Jgt6x61kX)&EndBh^r{V1hG23gr2@UdOlhA9r%^ z5_c~X%Y?r=k^@>NY3I}e^&hV_0aZp2q>`K1Z@3u~&gjU~a!)mFAkOpetm4}uK^Z3h z^$8uh2%y4JAv_J&X0J}}TV3g0z;iiruYM|^ZB}ITWUV!K*DrV2i2p9cGjbHb*ArG& z9}RG71z9H5^Z9C+9;_T`$Okmlf85!ab5Z&lV8ZxR1IC3)`70^!F-O-yeNxZsH9|U2 zii)Z)PBX^AeZ0bRzZ{0H79Y#1E(pC-!_5Zf`~UdKKLu=ub9lbmx;<`~-(najKfNB@ ztZ7`)z>nQ1&DTU-qrNl%b>|9lX}9Ts7?*;CP~b3h_wC=D{YZF>GM*A z(>#ZH%G)ar;Yy0>fZOn*$4%wsNDiBw@O-rK0oSDRKWU|far#GZGRn)7Ze4$b3@fBu z{J`YOWphEh4kq8L4>Lhy8?%=gjVDWePtabLx@#ukR5pH#^9`&_VUO@rKHgTv=5$86SvZLnhva89h*4vq8I=apFqUj%Tdar z`d8JjU&6Up8^Ny9^&8v42ONuoSC>3y*YH_*$$hSPLj$4L&e1LDfU{8!YM)a_Qlmdt z;Z+pQ(j*a3c`wO|iz0zOY_wEmNg8lV6>l?;&e}MW$Uo_P8syA!(#7?ucwLl9aRc2@ z`Jwz7DrQ-mmm1rbo>X*&(Dljc_gygWpqteUlY_JrOv~#|V(OVOdlH9H?&uE?ku7#%6A*hQ6ON}4Y_?+dcWw0(*Glp=Fqqiny`7tn4b}d^`%Y6~* z!$(?9mA-K{tdGTFhL#YH)iWw=@sfhbmol+CD~Zd}Wov&S8N#5QSw3EJqxGiEhB zH!txva82sE(fW#{%zbOUUbYLd7&F_n%E5~WlA6)qfR9+8u>IY&@C?}rk9j%0iE}HO z5KV;4iHo*|GQkZ0oAMNZ3mSho>LwkGt*aqL9&Ynoa9ZZPc8?jB+mDf%NiGkC?LCT0 znRLpgzeE>lQoG{C&JAE%PT#&2Af!lv4Dvl>or{N zqj9t7ki&=;ZLDB^MUxULOZZWZgvpRr0eV4v+bJ*?F8*b43bL|+oC6{iWaEbe)%y=6 zAQufNZmd{U4*GXAgONnz+>*)QgbhskqKpQ3`+K81pRlGq%&4c-~!H}qbUZJwWfXDoq9FIR7@~Y>F=X&x$FAAf{bPr%W#Cj z^Oa(E(GiGKT2ud~4kQT_l6J+jW9B!~a#V0h!DFH}o=cjkHc3CUGI zr64v$M$_%M{&Ru|$MTexW`rK?QTb0Z^t!pMA*LAG70gDNJp+2*;zSEl8cDN~I}COP zyWG$c8(Jr_U0GPO^3c>Hww+;vpzE{5=8Egq2CxuQ11K}+^508Q7&BFbAO~pUr&sA= zmWGTg*vz88EUQoS_Y<6+;ad<9VmpDB(yb`RZj@LPFGcy20h%3xq`F(KF^23h=x?iB z;YjP|*R`_K=qo~diP++-9Zc6` z_Wt_Lr+ANa@TbQEoewwlT3>&o$v*|Nas!oax`Sw3OYQV#s%YsM({JeW)T|`{FVZ<~ z`&xQFlN)L9-5c zV-VxO-KyXBG3}GVK2_~|Jl|w6@amBs2O_HX8{Vg>qM%iwD9-_#YM|>DW+t{Dpkv}6X9ME6?)08LHpVU|KGYlt=FP* z;|5slELm?Lg%3}GAF;4|yLe?ndO@_gTggJn*hP)t_s$jy^;)_LQg=+#SUandCvTkZ zr}ZZF9$6ZxVtKCE*JH3r_eSlnEG>Bm$gAuHS_ z&FD>t?~~5$v`;u_<^IF*B)7b=v(xU)|NGjUGK{Yy;v#Y56DqtH#(2XAZI zG`iH%GHkL}iYPm~YNg%w-7Nt9)a{O&L*RDlrv{@aydeH@i zy7xSBhPK-A(}*?B)N#gq(v*a8b>sAk&jn%~%;cq2Zi23<1uyttUdhmoN+_948fbS8 z5{0EfC>LG`j~_^A_CuCt82JlnQLqTzu0)KEDaH!#*?+YeX~|S3&mZMRXmGWrn}||O zGnG(@75xB134cr@fSIw_%#)2;!xF9&LLYtm8LrK`}3 z3Hx2tPqjexc1r7@z1)My=3gpoRB2JBoplEwmfJ`30dvuyL_15-%<%WRhpa*gPxO13Q~dD-*JhnKfl74T6XFB+LE7w_gktN(1};> z522WI_)lSubO4+Wo3$!Y}2{aWQvctE@GY8+|hpzx0SAw5$2`UGxb$ zfq96gthmvo;C6|;Bx3eSwGS^-$pAXCE~tpphl^E|Iig&9D}w*sbF4@BiDtoVCWK@%h}$0)V+F6X^g;&eG0`1 zB{0o4cNEN!eOqCeU#fT%%D#PprK-|^N)s;5%)0QmtlVCG!dK7;mU_)Qf(;*T2|fI* zB^t|%CaS0IUQ_}D4!)nuF)yIEb*lQL0s^roj^*>*ia%$kWA9=v3l&F1$h-;ImR>KB zf7?C)s19~r`;@P`RWOk1Qb^a`Vs+Svs0+}DteB8jaQ+Wj0N(s9D*%}iP%c)drG|3T z?=tIreK7P%X!9G0K3Pw}4q%22HY>^)gt--M^0UMI{T{}~NHu>Sk9X-go5`)KXl)e9_9{iQa@G>Irk?DP!YIq@nL zdLFH`$fZZR^aLwAvex?zLqLxiLPdTm#2WY#k)8uG*Yh3wQOvZ<9R3G*txEInT>F|T zMYvdBem4vA92$iwOp&D*C=SySS;Fc`=Cc}p$91tQe>XPu>_4u>399|mUsR%qqhCO> zxp#x9bjU!-lGlVai7sH8h@wRE1K9&x4RYOykfTX(PYw)&=>i49B-|$V-=_176$@Y+ zo(p;ssq!=2&E;73mq7nqKG}n@zy^>%y*|0Fb^OJX)IWOZ0JzZ{t%?H)(CGd${U>b#kFH z(_pw8ny4GzI zpGd3!R{zKxmn2g?wzBusiGlS#j!9o$zaFPu8GYeD#u3#E7@f;A>mEE6@Ah zgHO(|LQ7MDB0&Ti6^8auVm7cdHRVDF0!7|&s>J^^YhV`@=-3!toB4ufFUp|`KxfTgu01ZNiu~K$D zCo}-r%?{wln*eS-@ON9F>~nW?)deH#E`-JA&c3JpVnFuFn$cd@eZSd|btd0G6CC^) zw+F}-+0}y;-RySIFRhWK;||9mZNVdG0hMo`h;Qk!I6X1mGEt`JLftZ)MWWpclDkvW zuMb6Q8D2~&{y-wKD-bGfjO(Jk|E-|j05h`rP2Au_%vpT;_r^jMiyhp zI31egmS@(sF!Rx@GNwWfVXdL{o5u33^-sG=1+5;u(oKxt;P3HJ@^BXOYW3FYMvRo* zcYT}n#4{Ly1&d@xCZ^CbF$ehE^b?_I0|Z<-N;v9`8wMs8e!BaEB*!1RXQlhH_io`{NB+5Kk@)`Q^$!rBzdH0UtfS5FK{iUw#>_OpQlY zIRAzjm9p%FW&MwSH}H!WU;gnGQA}ejCWsle5V;sz92B*_>gi^CEBFII7gLsN0h<9q zSPk2uoQH1PPRb=pmTst1+?2A$=#%-k$a-OhcGT6l*Nh$~aEqEgskIg#OWCkF<{`-sdxs2;-d?pGbDTK*CjV!^ngS+9 zu1+NNyPo9FAs*z`T;GJKv=_fxE_w5a->j^&04N0n58Xn_fwwp6i=c{fKMF&RH|k!S zjkAUeaCtVJ__UN_Yt*d2osJZqJU)*ZCRzCCsV&qB0lt}EX|-NI^SWVk$ZJ?BJWA}` zBHZ{|4!1qwg<4ww8@NlI!h%;D5!+Za==$QDkLvp~^=<7cS;VQh{wT)Qy?HeD@EUxL zCqG^Kg|u?TGkc}R_NHm{0%s_za^-{rUA}s5$!eryfrWrcg#Rs+!o&(V5pRDs2mXlu zsO&V^`(S5V?~*}xp48Ty*q!Sn_u55$N?jobS909?i|=*n*95_O?WWC-{RbA_1=ORE zZXpsSRPdchJlcV&XfQgWo7_7#qn_?fs6*lH z{qajVs^#iS|3g2}6^(kh9Car<$r&Cxm{D*v*Wvg)68RXDuU3@7!CbCFSB{-|2lg$7 z#}Q{$v~v|q;`{BmmRGo~eFk)CN7I*IFpEy4l;#o%eeC@-m0;L?v^(sT{26VJ3@^Em zUNUpV*N81`*hsojOe>yECn5v<1WU^={B^W_0Cm5X5#7TN<2qWh>%m_--H`1d@kk4h z26xSM%6#~Oh6aH}UbO4v2Xa6LlQI4E)&CEB?;TdW;=3L@c2gQ9-~GHBv=P z1PjH20wO9(5er2?QBlBX5-9?rVgoEFg7l&w(o6&vf$KFO4Yklkc-gmxpjycAdDX5`B4gnHqP1N`Mt?nXB7(sAMG<2jV zNpGsRmlw`cw#nrfype@3j?q@CN4XQZmcv=X5b31?Cz zWB_Kr{#NkJXoedQpj>u8WK20K&=Lwx$?OI7UX$xbSoD0aqccWQveCehUom&~H$jGS z*IJ9sOWn~@YTkMTm<;FI^|TERp!~SOVt~_QQfr(G zvJ+^!uJ&3S@~$hF^*povDlq|qa~_-3Sb(}*0M@t1MLt!agCJ|yNl`9b;Jj@KVSmco z17|=C8k~{!5!ci1755)M{wSYw7U&LAuXe=Ci%oKzP!g5TpmH?PP_#6+Gl?LIgIm8M zsP0k5T$&i6LI~KEu}Jj-_SWguI}u}7)T71@Ksh+y_D&+Mb`{Lgyt+^5bIMnaI~`io zMTe|8KS?8MRg{Z#!Ryx~-k@eVsb=y7=X3zBT-E9ERr(e{Dn9`}JucymUWV6NZ4sZ& zCC@f|`~Wd1L{Sb*g6iiVR-h}U9O}9zbh0Wcz-*=NRogn_Yt3Q?mT3BM?v;hA^m_&96Fu?087-BSVvBeOHMw; zx{%9xAHBskebCt3No^74_1LS?XSOB-!27N!Q6|_0j-pTJPh|JFeLjz@kh^*usmQ~n zVD&fKj~AT3W2LO;1NBhQSaX#KWH^Fqs9`VAk3a9Nv8U-rn-qAHLUxy#dGC3_dWcE# zi}shSbv0=4y~9_Y=K8C|Od46rc}6x&(K49Pps1 zp53p-CrV*s2}MXgN5OC?7`42!jW6N2f~?s$=f*t4Tl2qcDTHCU-)5L9x2I_ z%eD=Rb2(-PR#aiKzQbbT+*BgnbmGD5DUuVXPX^Bb+8WSTCN)wg@jKYjyA&*7@__c_ z)TGdG{NKERfi=}kQ#l)Bmo)0^>M&9Mr?iNy>}vxi)rwH*ZRbJ-4eCw<5qUE{%f?_i z4=vWO*!txanqNomh{<;BHUxp z=+zxi3KH?uIVquh5a?iN_!G7BRXD{(k6Y)WQlq)&<@)9^NAJ^Lqe#aWH#`?Ti}8?F zQDEMAb3SMIxYyPhuQB=fEQ~ifF+|3(1Yiv3K^lsTP0W69LKm?e6o9Lsu;LaPqWW>= zso{&VUm-9S{BX|vF>QGqk98im>rNvwr<$;lRrp8|9e+aZC&nLWL@iTqoS4|zlv=*! zH*ES1&DZ_mU$fmeYod8rl6D*1cIzRpj_%n_>n`dM)+hf0GDvXe+M!{C!RRU?oM(^V^JdOV`7vCnrS-hs!k1c=k_;_OlPcAzDa%d3b}&OdLS7 zXDG;7f(Rmv2lqZ|-+~V+QdA~G^E{d+Gn7^m>>`6faBf6p5_LV}hB|XF5cH-b0XoWo z-2&@30oYAMZFt1kO}j3Lei{*1)Ua^3XFA*m#S|so7*x1RXBnH>*xcm`06vkr-T5=# z#g%V>bfky;RTp8;tZL3{%cDYGC|B9KrC(v%x?m?fEe;)J+>)Dx29VG;J%0Pyx9s7L z&U@{qI&d|wgl9{&z1-rIUB661M+U7LjtP;h6kj48=<@W=r!-XugJWtEjoen{d39^Q zLoS1x*_u-A5abX8*dj$wdyvtWJs&Wzmd&!iLHC~{j!Q`cy0`Bh!w@po(Qg7mFEO)N z(!t~oeSC}9Ch;g+dRK53k&FmzfNFZKm$u8ZV&YI}@|@(_fYcC#M2-MrPy_C7fnrq# zp3!XF;vuFDzP<#0N6$L_T!EgClz)9xfeSk*skg+&w)jq`h^E9z$d%AvsA{0&vsmOD zCL*OsZIB^5YQ&}Bi#FP2EzuG9B?#8W+YCHG-=HP_&lpk&G=)7@0RIX}&zCyt<@P3t z7+%BUV{g$?5uFVK5qr*HFl-7^xs$ROXQxE=d2LURK3J_79(}A0D=HPU9|5yXrgybu z_Dm$-7(;S(-D>^qhXA4y`C?oPG!1V}hJ6Y9+YQ;UJy%XbMAK|?F{a_Bv&!K?P+)R! zQ!TNkybtULEyFkj(X?5OWgvW_HZZ1UUcY14I{rBAijZuF?z*R91aTl;4amq0jK?Nq zQ%I>!fxyYA`L7m|I}*sYH2smVTlJqlqSGTs?aHAMwT`V=?{Z%xKRPg)oD2_Drx$Ts ztfuDDik?27=y1{~8%*g7(+-A5=&vzGJ{u?|PVa&v!*jJFxEP;dE1XwW5j|tiYXX z{U(aD6~GarRwxac!=*VR9cgn!gC5TQnKLuHNVEo!^)4cAtzI7PXngkSPMR2D zV%`P+hSS-7HhoBG@0}fc94%#J`2t0Sfx;&P**n|9GpfcofF)hjK8q}!>be0Ht{?J2 zIKi6@0HJdPR}$}P5LcB3?jb^4D{)VmgJPupM!frsrivfedQQJhn0Y*=kRJe&)ZA#O z1h@#_xXEBjB;j>J%Pz92z4ttdHAFNWbEl6ksq4J{jnT`Ob{Qtq`( z>1cuYWR&N4Qs>;%vw$>;5Zy!lqr(wWNyVL-L_cVaAaYB+?eq_zNK!AJ7xY*uJsbWu z%1yVrX1sg5*NV*ZkZT(Fro!|J)Mm~;n@EA64GY&9eR6ecVOzp6n4`;0IO(u~zL_F{ z`V0=A(B#DRgv8sfCVvyk0Ti1-oqZhTC-!jpzO#OP%9j5Y+45Mg=p{hcz4eKr(GzYI z0%D<&$x>?$+X?>d&TVh_K?^^BI zn;CP#tBEeTUrbU7ylGri9z-c4nzF9Np#|fQm_c`raN_pP4g6ZlX9PvzSQOK7H+^T^T1z_V!sY+JCDEt$YtuK z3Q0Uf=L%LvC@b>&-5@Y!hBgW z9!d&>LB^hCyl!I^ExqW5tOnRw7&bp9oTNMsy+<8P{#}8>3$NTJ*^+ z*Y5Aywcb9ce|}1M)Pm*2Qb?i+udBvM!7)o?dBigb5}3OSn6_SkA|tem%@JF_h} z>0$du?eupq1wMw*^DtKZR~8zsDmFg1wwa$)3>zN2#`y6o!l5Kf$U+2zikIt&hcxV7 zx>P1qW&t&)AuBm);0r!_T+_!s1%?o;kd{ci5tX!W4Jex_Q4VSjFFQGE$O)WQN9XNJ zZKTSojf_3zA)lCipyw4=e5ro$Bh+Cq+0t=ZieOL_$8Vx?FDfZ zMY8=Dz5ML2vnSr384cXVsX#H}O2hUY0PZOPZ~`c?n7C%4F^pCL355mt zKAdnkyTDVQy%rRUFZSYX>e08kR(7=z8N3wRe;gpdY0DdHw{xdKm{acbcz3xjxKVEV z(g{cj!*`HD$@6@2+L_MYZa{S!06?Wg9gx?14&Z-L&66WFvx{l{1$Yh>Br zken>|ahz6drdKVKHh>B@A2eNzb>iS_c0&9q1*A1_+nmO@=aI`5;}Kptu!j#edi}X* ze|C51w<|FJQ2N$97i~dVt@6%Iz%(Cz;s171gfm33j|hVRI2ORSS^%d$$t70(=>r04 zg5!-S7meIn6YeL#4pHz2WqrZ9;a57ThNQ_0=8=4O=vrAxv3al4UyXH_?LbeOah~9(k5}FtYF{bn))PnmI~8Sj+%Bl^<=1he+>O z5vov$eE_Qj85U=NIg3RW4(U)+XwH<;FD{nPdOr^kf`l0^tRC22T^LwfIt1Q9X!A!{ zn9_m#JEVCWuR=^r^8~c^$E>hPDc02?0|J=cN2ASlyQ5V1qLN!c55x|BMUSj}y14Ed z!*9qnCSzKNO)?t8ua=3pdUjD;4LU$6HT}k9s*|~ob}H%jB-5E;*-=3)h;0$bZSnQR zoQYS;hR0YXVT9ZSKTlTa5f?{*O#44$%QOe*3Ek>Gg)jR-fKWUddv7625i z>m*ZIbo1?1Yj!RY@&~F^SP)%^#>VG-7&U-Ff4wvMO=3^k&=#U1N~Ei&<;qSg2~sDN zgtT~bLZDb8n7*-*K==Fs%+%5(pLO6BsTNGWNV&v`@m_|D$w;{Qk!zqnsYjr;XEoOx z9-9QRYaTjAU$JbUW-n84Ps9DEU4qn~zMy?L#{=j%jh=1E={06FjiXv}@a=^`jt>f6 zD(I!e9?)K2aiA(}32ApcG`u%n9HquR8AZKEtfGh##n)5K-uc=>_W1!$^f9eeh)-YnPR3M-o5!9!R(${aOM>1r_ zfVT9*S<{w^W;b09;NLF{eFf--l3WcTe;V?42*sKyo##+8MJD%1vTej+f?er4!}PcM&S6FA(NW{ zxBhI*G?Bqdd$`>SwA3x8bIykCpE_747=*mOj5jUMG*7L_G)vwkO>v}EErf`4C^PA` zZZ7F*xG-?ipA%-Bx>hZrlLZ_#Ceu*^d^8I1OPvmEG#N|3YJ;;H^8_Q3Xamm%znhI^ z=9j@~&KzU=x>*9v1+VcQwZ2&KJZ#%}j*10+tJAlAI|cD zDBcH%;?QVfHa89@C9@|k9X+P8%~OT1dHY`loyctq&R_rr zFqyUHceg^#fAE$Z&LoGo?E%by-v8>#_m(9|7Vloq?y}YPCGBg-rG;q#oY2CA<0wHw zarMdu($i^QqSk-CR4`w-QRS@=^5x;STgp|CC&54$NyIRts}~nTO0nud%b^jFvcB|P zy+VB|+=I{4j_slewHNUo-O=s7u&O9TX26=HSHPcL6aHbJp zxfiKT4*Ut{*uoO+!S49ITXVep1{#H)f>^~oW5nkdr(jxo9@C-Zm8X$TTWv4>iC@xsv5w4@*5?!%vz zsf>ZUtFHdzt7ZtVGI@0TuUG96US(qZkFVkfFAOz)?3^?A&yNii9GI3pI;)rX%be2p z4phqpccm+aL2_=p;Mt&bX8F*S-?%_Os3toHC1I}iKmSA2=MOH!Yh>5&KRkGMv!O&^ z^3OX_WyrK?b(BWXue;uRai!yK9n`Q{J=JUEYPj*fuH7-~&(9a`^z)-p%fl-w;*-z* z`RRfim91S=-!ZKq%a8tiu>&8=^BK!|3D#YYM{4)3I*<`KCzq`>f0gGTkQyw3>IG_J zXde1oF!@PeSZ8=~&OdKQ`h0Cq_Z(=kkeXqX(|btA*ip*r&xbpc4&T0(T{>5#d zxO%z6^DXZ`xV5)qj?~-o0g(D`?s)aP4riy0*RWoS(>`)!oYXg8g9UKRpA!vchuu_T zWX4bWnSZI47XA$x4paG|pMS%W_Wz)X?|)?t?;p*7Qj?_jSN|W8?fqMu~_QVuOsr35r(d z-Bnnut`Bu?mCk!-l+B_n7vOjd2 zTkEd+DNw(@u9xWzmjkqy&sr2Z7 z-m)qfdRm%ZzsIIwbCpz!G63_i^W7kI;n-T98fnZ6%j&@*#Okh{?S z9B1LCD6=S*=!BTqm*S46PUh&JP>6uRaTwJ2g)<0Gbzx;Jj4eTp*7E=c!bs8G6bE`D zwC%g5eHrODw1DL-VYk&hjWFst*w=$9aRv7D@R@^U?)Zoh7`6Fx%|UB?-v3e=k4PMn zNUM>i_}u_hwHe`n0A27DOg)Lg>*fNzskIS zT|6e*2&cQ#y@6MEc71$f2oqS@WbFFVvH#E^aytb}W(g!=FoAxXWYhe&?K5Djh&5Ui z9b@p|*73j;{KxJguee0#M^XRqEwEYA{28>{ z2(=ZPwh;86-S}Z-AVqj=kkObGS-P@0ZS`6{c;zHDf4Z2KYyr5 z%NjD^OHY5e&~Io>ianeFID{}6$e{W#J-I1&0Tfc9>x@AwIo)EK=J*B#jwrRIGs}>P z2WLuX_dW=)1fQ^Z)CXcI9|(^e7JcmF5}i$dc}p47ATNwB-1yOSm{>w3s;z_Q;ikwr zWXM;Ri5@!R!_jpdj}ExM(5FYovTJI>YA`G^@$UfyY0dMlm9>+bT?euvCL! z0(bl8YMav=QgYk;Gofg3UQkD)xzjJ^V9Lf|j(Ssw1ZCh2U>LZf#UUa1DcPiF6ucY- z=bwI+S$^~?6ij?PE&v@=a5oD&0EDoereO`k(WR|b8SK4wmd}eWS6$B^DQAI2BLb^I zpgUqOc7<2d!m0u2dhx!v>Y5j1a{IzoA4QJ^!T*$=eWx~*!!1YxGCH`mkvO;OV@))w zUFwg{Ey~|FvwCNBNx9>}(C>ukdeGjIEp=dV;SCziU}X3sW!tsB1(>WXLxqkCD5CUC zu{Li3Nz)sZ;nXDhXv9ZH0TrcpmcKF;yqRtTmDgu-4n5u=$7$BQ2jIv}9E{J@3BxVOwWaRo{B(vqrpn-SZF6D6La6 zsWzW}YF&#_?C{azV|=%YuhjX(CQ!FhqT^k|h`whbXBYk|U)cF}@4bop+~x0DJ3lk{ zy;I{tF^vz<4E0cW&ve@)AE`p9o%r- zQxFa%7!srd{w{cvPI~<{ux3r`L#aqqnQ7xCK{|P-TxiNrG}=6V)9E4G-rFj3!4cUDz`t~M`ZXNdy6k1P zFXu4e_QMnVz6Oq6x`;i`oCz3!;J-P-7}zV>UL4wr>CYv1TIG3m2|{4WX+_$DeZusT z*{wU-WZ@EnGkeJ*vGn(IYf{cqA&8zq>RXjjtszlsu8oEPnw~WwKM;@PlVWM}AT9o73;OKEl@@5`BQTHJbBQ090!<>A30SP`cnb z(Bv5glD<}sgB&PKyh@U2$gs5RSJG5{ylZtIgxr3(xmUG6ag78qSb&GoTr(W?K`V%k z*nVOaSB1HI;7^py-tUDa#x*IbUQYo*R07Cc)SA$Wf+Nr&Ukac^oL!=bw&B%}F_LIB zH48=6^lV}fsi(St9x5Dt<*-Pgf8o`F1Jxu~3FD|W0y{{sgCxlmtv9;eOb7T7n5Eph zlY^L$RZSJJT#i@F7jvCA6j<$o=o!`V+h{Lp`Y&-VZ?yQZRbOufPEE&f=FhDRj zzIt%O1FGz)B(j9Ci-Ux^c5*B-xbx$y-NiH?LXsMW)*qafvSuqoP)6^{FVH&9asS}& zpU3VNW_zB?7w!?@9El10eek>Q1R6q)(ZM1;aL$B_H4xtE6ACgcJ8G80QgabH)FQ*iZeMs=8BHXW-K028GQ5*o# zxfb|}6QTLm^X%R70(6pQulso3ek3}OWem?j51Nfs^=PVNaWfc=eh~`vksLC*DiPh4);_ApcC= zVj|y=;=3c#5jwO;V&|9R_5fkL^nP=k_lYbXPEZA1O1Ao$==V>_)uK=iU3Z#tu-E2S zr`?(9j`p!;Ut0i(FLTaAp2=TQS)fWvJe#bz$O(upp00&fyBW}VnStz2(nQqkyWtfx zo(2VVj{AcIq}Sga9&H91cLU~8DqzaY%OL%7nR6ZkRkL(HLU?rfF=dP?kbBpD_fL={^ZTZQ|3YjddWTx zxtj1~v5Sw(R>h#HDU2OM1J+M)vU?Ijw+x!qBKSacxY1250^ykcRwwgQp6*FiY;NOO z)&mDnDUNrmaXdVuU&j7^=LT`w`hcXWfo5tJ>91}#e@*FfqE3qRFV*a~hV=DpeljCv zYJe>eLc!$==Z4aJafC*}_MrjWD?rIu#WQqM9PIN-&{(B6Pu5+RrTavU01G(@(mO^D zePanmN6^v~I_T%g8G|~fIA@+-kib5xrIJbcAloLVpF4!ylRnIM_T!nl_9{+(5u-0> zZ~_FKthIiURFN4ht9^MNg8MwqlKs_F2WcsJ0zdit<~uF-?yerDg}y%zk|`Ypq}mHl z5MsZ4)i?W#x;3wPUG~>d!p2fMP!t!#1x9fd4U&GUGj*vvCrZPK^rw4n?5oaFNIDU* zJiesun!Ls7;Nt_;Q_71IaD)ltuF!F;X-$hkYo4qa%1lcarC-4TlLz+AIQ(bz84RV? zq-hW@Q^&vQn*#OnleXBZWMjs3u1D{i&OYsUV48uZI*>kc7%=Em=VX0IK!5;tyY8{i zd2U7bcI#WyPUa8TsC@1^b<`Ni+`{;bXC8DVw4K}YzSx&hU5z8Eo@T7*q?+Db zD&BHIIAgP5iel1}mfsiZc&zr6)ed(s`@91>J3E!T^0P zMzWC^RDFGE;#6ueP@^+>-I07E;4J)1xRwRB68IlMvb7Ctz}x;{qo4YgwGx49@fP2a zoFh-B7|$q&l!^o}v&PS{UP@ga{dl`xZHZlW!ML~sySB_J8*FPr{3^KY8lZ|Hb z!=?GuKvv0zV@L@_?XeplY(o4n3lOOM2tGO~$rLSO59Tt%UG($k*B-ump3;RuigZOW zYYw{$ZEby-xuYL>dJr6!+%dO?1_#_-3%kA^CXEZ+dvo~OOD>hX&2W;f*b>mxvc|+@ zEPZ|?$a>PBnKni6R!y156AC_9#l7a2aaBwzpnLyLF5Zg_5abq^x`&{R&Avx>_}81u zd&gm94fqYQpfKc+7MxEbLHh-X=S?8~WSPQTK=RzZX~iJpjbW^Tsv+w8sfR)z(M}lL zdS6x!^!%2MJ4P26TCeorl*y`WB6b2PT=eRQqM36mSK*SW;-l?aI~{AaG8Wn09R3C= zd`-QTrTJOV9r$=`+pBdN>j8PUEDx#h z;%h`zLGg?<`sqiU%Q|R%v4bD8##`a4?m5S+~SMo|+aocpM(1gROP|6XXr8lkMfCEb_is(T%kq63^i19? zGNXtiD%+s=qn-1NnOZNV*J4A)eE&VZMT-7}C)Z1t`{J=)X*k1uga|LCze$qci1aEG zb++v|_x)a(&7aNO6mL)s@|elyW61})SZ*^{#F@@fyo) zlhv5UimU|GJ{o&oO0!`Gve7j78`AFvJf0LzK`z--x1AJMIK){S{)Q7ti)n98!(LdJ z(rAv9rI6w~tOr1d^+?o>{<`%gPNRCk^ z2)b;BBJ~-Vutp0$=Q;&{DEx%LkFcGSSH6VuY`8x*r$hak$IH6Ed<{f@OJHN3-%B1?D=imt+1*dPS$tFcqAl%E<;hWAv z*vV4pI-Ihx4sgZFYx<5J4Xa@CO70YWY`)Oy`c3DHFU12*O^POL0b1nr?&5deF(~HR zeKD?Tg4pes7Y8v!63$d$`*HO0CjUV&n_Oq<16|BA-4K+|SoG1b&zD;3kW7XU8+6kM z4=+ye)`3a;1a@h0TNLESQ_#<7gVpSCuf+MqwSH*47ehfZ+N=sZ{Ce_TP=6`V&oBoA z#L47WS4co1X9-h9#``UX2XcGs2B9>elgQFhx;XeUP?e}Fh*U8uay{#tz)%|0!n02Y zrQ7JYSD~!c!JZ7m)i+<7PK5)GgFH^M%=vgNq#1%aJkIZ+cbVltZ9x9>`{nR3+y3>4 z`+iiXs4GNT_CK|O!bHN{)NZ?W7rtH|$mRMS8E0LnJZ-1sLjC|t|TFK61zB2n%Gan{= z2}sQyE!t}%+eBajgUSoe>DZChiwuD&FMD1`b9=2=6{(vh3-J>hY#^^V+9%E6lcZZb^B}HM z6U5ZDh&9f>A2uqYtb+ZE^NHf`;;htFI_KKy?Xz%P9iKfC66KH^_TOU)d_5keKM#ra zkWi4B1(Sc2-nVA^c2_HFA&p>|j45A7+7m^ws&DE4lt=5gvl>^v8+_xhLWv(WD?33r04&z8(#OjDdd({5bfZM7OJq#mk!FFq}As#-Wt zd@(8*iG5W_Ni1PuW)`1nz?vUftY)H8;i@Gvk_b)o1IckuefZ;N5?p=vdqe4NE7U-o zM18leg-(ZfGNcmgY&Ghi*i6I^_%OoPl2t2CDJvs`2PEud#;2J zs%*paqOYwF=%K1DnT({&F|D=YP`}VH_2i8?t8@ocswM;>od!VCfPwMLpOQF6Tf%$| zm6GDkYhFnQ6(VWi33PAW3_f7eJ7| zFInPmV4a}6?_%V%jUJ6bI(iw6_OIrzQ9klQCxUw9q4s?K`xf4Oi9>mq`2V< zeWFMkB(u|b&}u#)2|6(ex*ljGSBw(zYM_t2m$t?o=mMz<%Qc#>I6J1vr(qiTcv48q z+*NlY2yFPtXH25UuWxZ!Ei;fM%^AzOKFoJ!)zd4M*q%)Mg=YnhoMkJ;Nyso~2HHd! zh3ggFE$TP`FFA_2ffE3&+_W|o1sIF2g@7|9kT@zgg%)KX#moBnU zh*isb{_N#NMg=b})-8liJjp&nkAcqvzij%lEe?i)@!)kHON*it0iUoyR+f2WzQ&)UH%?UtD2 zdeBstkIE%5KxYThXOt$HG*2&EQSimY1@phq_~W9X>;<|y@OcsIm-UC1SH5U&+S7H0 zigK2yh|RBSJpx2hk3F?i>E%^&mDLz<}e@@50hxqH6;Lki*!W=eu$UfADnjD)2{sSagPQ2JB4qgdjZdfQ=8vYCW*uuU!uzTCBV1}E=x##)Y%i}UDo%Qx% z!39k-syWbkpM#kV$0pJ&0oQa-qX`-uk-Dj8%_fA@cEs*2vC_X$T8WzHC)1zE2ew3Z z!x@}9Sr}&wt2;X&7xIA-JYCH$XyWlQR~v1nOWhdp{VBXkW4E9a@uk=xr@P&@<4ELD zQ*HC^=k+vC2JuZVLxJZpkbwpmf9chv&POMM-YdCpU=Xjf5&RD>pe+Hu9Zd6(@u_&! z;JOG3slKZr2bzKdg(TGbbiW#1S>yowI-(y_O@1Z-i=5l;wR*+af_IsVby&YPI=op$ ztJVd*Tg%=dO&ZDA>P5qez>lnl+H#wMu_g{<5Zm%))@+k}#<{w&OxF3lOPyF#1l4xl z!u@3a9dq|K^24T@Xm{H#-19AlHK}k7qG8#Z=i3WuKG<+{ZjyYJ0+d9+Eml}dJw!FX zqnj!=1^EyaAa(c8Mf!G|9*P(-R*IgWWX$K6)H&KF^B{SCEh0(Y2i`&@F>`LezK+YF zmz4x@jE3O4zAZl$PDAYUaYQ!XtVY@}B%=l*GoFH|#tYY->WACRwVln|4#PYk7dsy| zXxJ}Nzgbm=^3dhusdza_j%RjUSLeBuOG`P^A@%#F0Q`bY?9XJjJDYy)?S*l7gP}Jv z7vqyTtwwUDk=;(>ei+t(7A7j(`x*nKMA(OXnsDDvntxqr16Z^jQPL*!Sv5lRBKfna zKcNKOslqgkxd1W*sUahMs+bWnCC^VOdWaG}=EJ2r zGzm`AHz+|eId4bWD~<|)LM>azM4ThTgn3xcQHU9R2bG3Ja|0)X7q1H&z#HE;JF|=iJ!Mz+L0G9|{73#S zvgOg#mZ${urhFsm?#oSxIPD-Ugg5YDDl^dvdIZy@;p1Sd`~2IqjVGGJM4zHT!$AYK zlB1{o*)8ia$^?7@KtC}f4cSnSNz^c0}1 zd$^>cO1|+@IMCc38-G0UGHq~}Rpqp#(Cru7$}nzYvX(H}4WfJ7&=v|TvGDZ!V$~6C z#%t`_S~eT{L-$$05;A7EP5kind-ArO3qxz!@iGXqvU%u1{)=_~Z2jzdI>V@6G8O0J z=EIVqb-($`AAc{h#3D62@d&xRKXfeHeC0o5a3q;rMEHPRRSka_ljeLdO!`=UL3+t+ zpm8WZQNLwW8+c`7(21F8W7~AoNSLTyDUq;1HF=^10y@=(xouQPzi zC&S;7HTotUvV{Q?9Hft61nVhm)%|V_FGtF3@#0Oh|>k0(b$P;xlK}=iia32w^dBBhbi8# z*G|*NbyIo&JV+K^ebEE~HT;2jyZRPny;^Nbo6oiZFyyc)-u5kG$dV*e&Ab z_x)G{v9H>k4kMF_GBTI7CfHjh`3q8wKgMd0ODoWX;#+ zv=e1Kfb8vE_b`0Y0%*B4jDeRkPQhIs* z-CE~nn{{p%8wLU}7c=8;u0O&B&f4C)9W6KG-ZST!5l#w&#L&CWVkV;)LS#fkB$A)9 z*`^Q7_Z8N+wJPV^6=2b_d0e;;n7oLCCb*yIT}F<9S^N>GMp#@z{iXt(1G(0kYe_b% zKNXk~z!khvgFG(Te9i_=}c61yg%p>-ZkdMR+tvws(ir_n*<~1XRkAWwu(*c z#lS*Hs_1ay9fPET9y&THbA@>Qd?sDe+?J=L0to%Kr9TE~gVc!C=FWx2R~6gl8;P6u z4wRxL6;qy1d}w&4r$;EJ3yniP>RoP!SWoSh#XGBb+(uULY}D&y(S8GYo)u?Iy@|tJ z2COCJx_8;%DsI?US}f-COqhU#^!}~wPT+sEv&c4|?=9YPS3N+`s#8 z=Q&G`aFw@k?=~*e=^(yIxROQ_4`N}e?j4`1$d}#fbpyl2EW4q(G(y4WTi^>G)N&ct z*rKD!^hoCv14txrZH?M(F#yxi_wyCDUX0Nl|Aab^cQ%qgvQIu66n8a2E2GdYmJKfTI*HVXuFmn|lsl@yS176I6UofSNMf63E&GIx3A7|b z*7lRx!Fgn%&w6T6vNaH&QL^HZ){c5=C?7$;`Bq_w@(-bh-|sd<+FRhZdbcuhT34Sr z$2oS*O4MR8?#as0NS@VG^YZ7lr_Njbr1kHVDHT;ldze%j23U(~c2`QT&QN zQwTYh?`#H9KC%e~nPfk^wb!`F(;q(F)Y~W1QvAgH-CT527MSV3DGt?CZTi?9HPa&= zsmn#}&!giVI<#0l(7$k(G+KmiYobkN$h2K|4(iDIBG@givR&Tb%$I1@EVl-J=*kMm zyx;Bdsj5`RiP~@P!rAP5ES@kJexyHa8C{`1L=jGS%oIR45;@nB9@}HvOwVupaDJJi z`tREL*$aZxzsF#)TncC%`w&s`oS*>B;RLrMkmTiMAXxE1tEo5#*}BfN0L3TK-zTZ6sEz1%6LYr)PBe-%ozXE_)$F~& z^(a#1NTYDe!O)vPTysi#DLkgUra?p*qF~8Psuo8C+25NiM;ssZz4!Fea$|!EV;NMI ztO#R*%-LKcOiVPGX1e6I@DyM#mX0I@2ssqthVJ)_Oe-!d2!32|wM2jLK)NqsT6E>5 z*f2sXf(=jtV9fr8XUp!9N2k8JUheVhQ_+3n#A(Nq1GROD6H5@BIA^-gKTLD6J&~fB zR*-Swg*WXdfV8y(1C#GymzVR;@?FOQMw;=)@d$Xf3fRo2{XbC3Ngq1Cj8UtF0k8G8 zV;crt2HYL;JeQ!e);Vd~k78oeRhQ{}x5k1)v@kw~X4|+nNNF*8t$Az2n^;G8WjcJq zxuI7jT?^r570!aLRCL=QTvAxD@%q*WdG=%ykpt%anFwi@4)Vs!Xyno$^Jwu=7NK-f zt?qG(3tAc(0^)E}#_^kM7NVa>Cnp-&ammwVQLqH%G1evvoy=^`w}fjCdRgc#C;7+6 zW`?3{X?9F5~yuOjqM&(?sRMk?yjmhS50gJLe~|Z z%4Gn?-qa)QSz(QJOu41tP6BgL$t+IpXy0ww|5~&8o&8OB+~Q^!VE})JD?(CDwlW7S zVfs*weA9$Y#Z=O8HZqM-kt*Cjw@?bx_Q*B~G!`sPeV8-s7#*8Lh@!LoX|IRo37q~{ zF0Z}0b2BbmUdB;1P5!wmU1BYNrSXmvCJ{OG-NXrJrhK{&ctg!v|78~48-TZk4(vIe zg41Zmxv#6nl8Q`LK#_8bGEEQI8L13i&8|NH43lTVJQC+bY zEey-{3obas@c_zSHcBOJqJ1|cOu(vRaMNgp1OI-`egMKx0*l+U&8Xlw!$kAcLA~f6 z3&EE%;U_j#cs$ANM^Ql2rlr=BtME-@g1$`2weCh@=Ahw^Sz*Xbr+$eiKz;|A}Rh+TP&h#Q|pYhtF4`gG(6Ja`WDZz?QV0 zTilr(NOeZdsXi|T86(!M#S_t5bl*9zqk)t#q){nGrZuK$5H_8fUTs+)vcWWN#y8YC za*VP@+)4P$SxeR{rO)8mR!_30hCfZqoQ&V$!byhmey5`|G`S+p&h|!fNUF1p6l~`5 z)3%Sv>9x<{VAq)XMu5g=cN>tiLsWB%h8gSenHrlEy9?_(m_~8sDFWt_Fk_6T5<;jn1xe)#o|;A*N~Dogd$#13=oW zR4102?&i%;@&Zt+d<8qjiXJB&ZX`NS!@Gmv!|asgXe5m$zu3Sm$UNh#I|yrRO*G&9 zo-|s9O}Q3CF!BP08GqbiJRn&cONm%hv$e;engpxa8)YM~#Wu1`^ZTwW@h@;^$C;imb`NkVV5Ulf@Wv$ntJ@mP>+BZ9t1L+aOj@qFSGnYP{I&~_i zDaO3m_t)K)sYk(Aux^1npWJ6rJ_N?gQoc;|uy_}nR`m+px?-i(MBbZ%l7dfcRJYm> z@0jn(o<4o=>EYelk^l&iSW;$tL)X}eQZ$%wLc2shi9Q$j&Pno1-T+2n;UHIimYpzo zwI26R_K)@9d`7f&vX`A)r4)tInTM3l-ALx#I2ti~Ie^CyJpu$S5CX$dWUI7srIQ2m zIKeQLv-`po!b-8T&ik_=WIlgc`V3@aGosJrzAgu_5##a{_jx>O|7F(DIo>}P(v$&@ z2pv>l@KQm@od$BB;}ijTgz=QBgTg#?CSpFcz+F!Eh})3MrFY{H@f5}s@R>M5k=`qC zx#D2sFW@GjgONlrdXD|KUpf-DjJD`kO6)L-nN{-|BM!epcaWoaq*2Itx1*_^i|Uj7 zTW{%$^M`VR)-Q?t(fj<=hK-;ypcQk~=v@*T4w?ejUx-=(Z9eN*Ut)4NCfI;78T05{ zCAspCyMA7F(>@ky;sY$$UD7BZ>&M1#U1^pkUoQ+!L}sUwmMg;j{ML&YPoUxX`TLH< z#U;k_i2w^Z>2HNQ7o_niVRG{E>Xo;e!mDBL%gJ)|K8>lr|GJDw*=Nu2wP%5UaWX&a z3sl3b0C%mwRwogZ3hsi4c8>XAY|io0iyqLAw zRd+$Cxc(^miP-*6hxneZXXqrcqofZ2%uz7dwF2#nm{revKprw^T>93M-6+3B7~?CT zx0ji$#DqD&&>lpw;^0(iwHlz4%gh7E4G=0`A#|E9{S7D?Z{j0e<^Bef{kq)c1W-~_w0yB_L!v0!} zs#mVM*4Z#*iOzhSaGEi#$%@V8+hQ!j7hke`M;~eD^T}9g$-33OJOv;nIB~-$2gO#1 zi)EG^;i4G1JfsKXkRfcmhg^XE>Emgm+W>5Og?0LIe9W^0eMrfoUj68Tyg<+=Aiczs z2r@mzPF@2U%c9mx%tkTy-Avh(_%1TCQ+qG4Sx6R`_q*KQ&ilC2PuGvKd+&9jX@K$u zkb2QlYee(_l3a18LHdyvxaLF=^=3)ZAD`TsGLzwG$`+*ge6LGd7&cW%eoE7$9@@(b zZqPvhBG86(%{MCJ(!{Z<^BNV|RF7ILuO)D9EeyTqh~7n6@hdcvl%o$GA6TGynbRD1 zD4#=;tzfG@C6=8f6d5jITXz@&>f=`5m9YUG&c&$mN}Y~Msm_Fv_1haOtQ+0@vj5~C zS)~M$iH-J$$s`9Rtr%;k7r*cu_yN=8Wi&^q(Y&Zh={w0)wNB<(M(jrb&yeq+o4Idx zd6AsyvcxcRCw%ppV3lUu8Gm4R7|L~G^b!#M6xO4V^#_G%iu3FF9VSC=7gjEP-B`XUKh#U`x$0#M(!m13LlgZ1X7AT$Ll^cN@QD%NL2c zKcL#F9UU}G<>bd0tyDIAIjBPh2&?{6N#k0hM(p*dS60zS*+(JC}_WRgW4xe8P_sZ|<();T-)a0w(($)hAai$ts2gOnAfnQ|@eTaGOCy z;}|jxlSA$)JzJv#)qc{c7Zyko1%^EO4>@?p(N@)~k9;BHoF&Vz2R2dA`T2FHob4CQ zL15^ie`$QT(~Fn%enWC-UucXUyfo8dW zxRExY>8`qIdOoxVgowlQM07qk4X0&eE4Ji)xR%nh?17f-l0C7<=r4}k7QvIb9_EzV zoqn^@btEUpfJ(3>NCyc)7*H4WI$O*Bx}$X0DcipdQH{r5;`7fEmc5VtE71gVEK>GR zZjq|%SzPqtFQD=?BthT?eM5N7XANX&LU2R)h*RAojzIrC%MWK5#4|+filV>fyfvnB zjN`$Xqn)v_{*170(}X@Go{jpOuP(qxS)fiLgU$h)_N;8}73dBK{*@V5Nb+}bwogQ{ zQCyWee>F{2!5#NLWDsYpk9N?x9<^9-}Z5xU%bT(PHzAmcIKPz>*^SAfw9tV)9#(CX)4x)EV5`lK;sfsk} zt~k;>2*0YZU=Pt1goc=RTWS$*Gb+oMF%ZI)4pSpg?%u=*LrV@KxWuZ7*&KOne!4zD z2T4CZb|c(W*IrGfMEBI%!L>AIjJK11$%|f1s@8xP)u=)_jE;cn2j; zzYe+Y-kMhbyBPBJ2?kTe5?suac5Um*d>*C4v|zm2 zriF5o*(xV`p7YcV5558Z(EA?7n9X&nGlX^Ja!jt)+%bB3DN2`f^8$lte?^L8nneU2 zdOHhtfAwc)$Q@vn2m|o1ID>_=^W5Kfd8wgsN2cxlbxOCAnCEjGO_}6LDN-b1-8UXl zv-akPq&STy8;C_RGDU&eh8A)z3G@S9A;7JU&6{xH8c;rBI>HCu^nY z)rSBo)#8$t1m9@Ha+PYK3RT$-OkBWLiN0re|FcO0K@i>?VX%N38)BLNJa)BP36B9nn!} z?y|t5l_w8IHDp$*`(>xMRn*k9?AX5+BqiK*1yX7K%ya{y?WuR6`#yV5r#jPS0ehn= zjQKX8J!x@@jp$m=c!%ytvDq#X9qB&Ck@n81W1^1I2+-rz;fYTV99ZS;QvK{{ue+VT zq;=GaK?-+D@ZM_ae}<~bpHYA}N3Be`cYN4~qQxu)uOTBDXxi&HiZWtgClhNFeAa68H zm!slyXQb9784k?t=L|N$!!{c}NfSmY0gnm*0LEE1Y;}>SCn!_^JLI3c80E$K5cyKU zh7ZC3YcY<3#97x9Vt2C}MGGxl=`ha5wz}zxX)88vtd&s0BU*IuJ&uX z27k`^wt->TAiQa6=#Hf>3zU=Nh6-N4`BGR@$_8C*-OKoD>UE1KswMf8Yaj69IOItM zZWnHW@u2cH%XF2Li8*J|7WA(}aP+5~faJ)%6JJ27!_mtmXHoUaN=Q9moU05sE6*7a z##k5O+AJ=~>Be|YyoGer#bMYSoQ@YhB-f88o^G7xjBEMJnXoYYv<$}wbgk>^lBmg%*BAREvCVqBT*_*_d$4q(@r2nV!M?p zoC8gob(PkM(MiwCVx{m7dLpS%^g{{e?#j^LQJwNaUVmR2iAQMQs+X*7Wjv%L;M zAQ}d-CC!N<92h9OWfa*jbcT0{Tj+{HUxc>H8GqGgZX0&Jo9ZSAQ+|=mHIJ{jW1pU_ z#5;R&^q-)eMy(u2f&z%2LT!nj;VlmLVWgrjYXjV^mrj?+nz81Z(NuDVa;%{ALMF9h zlq1DzH9ZHUUEv<_MDH3lDGP5I+sbd+FQja~HsG^S(E~S@zMiG+Gg~+~ho6FMB1E>J z1Ux;$#(hA80(gJ5)^9_B>_Z}q2i%_JO;)g}!R|1}<8dA@Wp=~|au}6@XUu1|BA8YI zb8(AYPnemLahXhtJ{h+@p|UMe9kcDqRnE?j$7bfx6qW(QEgJ8otm2KtI;3wWCx7Y5 zNDxQhD7tpg=;#EjeBk`GqlhL=(+6$w0Q#^IT!Yw~^; zb>Nq%S-ANq{yu`+PXFvS|98AC>lu$WZMN81ka;-4V1#@6F z#~=e^r__RoAk{hb3+UJ?&|6UHEryme43Usq!r{@!Pf)d30!$=YNRj{_1W(SGyWMaa zP=lscoH|DOMbN*VbA&Eqb(nu^_FV~nwH_E;0JDyEkc92}9=DN$19k)#Hi!ov!G?=Z zp+13>%nJP(?+hTj42#$)QNKCe0OE;{8dZ;CcgOtRKQ61MmSY|LHa7lw0#s6aTVhj* z*|sCC$_0ld>C{t4>^@GtLN+jtU;fS)n$x-X+4kPIyIn98r^_io&96B1wO)F3%ZSBj z&Mg%HP>X0R+NUP=cYhspyfd4FP3U*ZR6{Bt9gms=6gX^~%$KbwE2%~4pIWh)4I;E* zI5jKh^$OliX_tGm1@a&cz|=dnlT|XZvtgyqoSAcmlWUi#W-P$ybaCWn{hO!6isJMDX~o=INR=7b9T;8!(|yJZaY{5>LM%|Q*wveIjXMZqK}dR+zx#BUZZdavnE36qK$2=aX7Akz3#tm4E@XFt@5pSi zgdr`S=fm(bUC5$|pCS`#zQjR+4Yyk2I4k7J5ofkwC}U$>%mWSZn5;iNA~*^&5*;bG zza1Qon;2gYz>3P!uHU}c%^oufzZ3qIht19&dc4ZUDlz7h^b;Z(s=iZ| zV;$--HfT5Zn%2h)r=CpJD)oO2l$4qosQkZy!{U-4#nlzhJ`(#{PQYieR$R@nz3 zZ!y3mw`r(wNr@AtZ_`hXLoC2Zq!s~`rfhHsWYR*3jS{?b5~|6I#gO$PEmgWj zwkGlHW##hc*}K=5lMaFC_cOzw8@ApktSW~)DzJ2JxgV-Jiy%+W)6x~RchthI$pbz( z7TjI~x#au964F@&aB2exr;=Dz`lC#jf+Zz51w%Z#1gKZZ9WlF4st+V2C*2>Ge!0M| zljduFEoryk?^2J6YvC(qewKgaxGMNxW^3p`4i zN<=xdqxVY>VZyk=gP#xKHTa|0guff+%=rfkv>~L8FUTKqPvIYr4H=H`k6*v%jNp$8 z--FHgknsJLuNdk@&MlPhfIuUs=` zR(6M;+`Em)fx0n9)NJVa=u9`e^=-YfBA|Res896Q0u5b$x09v#vkvun8Nt8giH7+*`_kOh@Yk6ttm-^ zf{Ey+QL6#-?Ha?1pTIW_yIRG!c=l}8@X2f`Gh8whEycuM??v?!0Kh1`;Y|O7C3Mf) z6mYDiZV?o`n=}qR9_nV`L$N5wqPOke;J89N)E^)0x*xXj-sPBWBVyXN>*Mqxv#x_) zAvS^qyDw+fV;Q>cc=OoPlg!INj62b7F^L^Lp|xn}dC74GbwS!A(Pg+t*rLBL{DMA1 zZpORX{mp6|eT-vpg~reCFJ++)^i8To%~kVcL}(Y+Qx_2d@fkdd^byU)TE~KRJN8Y@ ze#btKhml=jro=Xm_x?=;hF)gM5vCr%Hmd>{~r-q@Fd=S&PqQ zLj?P5R|Ogk1bg(BvJvby?GoFUy9WCwcXYtF2cq^&&;atlU@LVx#muPvuyVYCC_&%t zpH*)|K{sCoO@N!-Ku&?~HcvuC)8b&XhB9*pZ-k1jFERh?&mgo=51gm^f&Fdw(;5+! zZlC`>1c+sdxufxwO#wq5MaS;YpC+~DfXjLurr-!)J;LXte`KQT+Rril;SY}ox`DRl zi(YRUIush&u`bov<6qa;TmB$*#RX2qx{O8BoX#*)^1M8LV#My3(yEVlF5>U2^-(PS zgVyqm-~pOx9Q9&yP_tm`O1T|q`1V=CIuyZ8EFr=Sgmr?`Lxx85=R>E71s@Rh%7VjM zdH(`U8X_k0*A*fS&i=}?d+6ss;j#7qa?tv}B{lf3d;DJ;M7RV0dot1gT5kV8S#Fd5 zTP)(e-!)T^KV6D;+5Nr1GWZ`BSoyHzQPw{qE=~lrxT$!B=+9f3{u8m$=Qyb04LjuL zj(^%OSAF2mS6KH9iaqF`cywLwQ)U=q%XF9P#C^Z%&`SM}J{}|XsTlG)u}NZGYYIvo zQTSuvGm$uhFN4vJ((X-lr-e7TD zC4E`GgHgxc`IC#Ml^s1gr7h2K>b~h?^h%E(`BcxMcV*S5qqkmaj<5W7s^KKhOULtG zFHO03Jnx6_oS$VjWVv)TOE;g$+yA8g@yW2s_deNdrW_ffJnV0_lYEzsO+6HRBr~9B z*wUr>au=uHiQRNacc;_4JELaaK4q}eCorivXYBPuIt33*u1)#=(dYHjQcn!JM~+|d zU6fLQzW5QVM%D0eKj*ZKdOuiyQ1G>}L;T23r{w(c)-gM~Z(wtRR%dPa^A++xIs8pg z`?st_E6aoj31Jg0<*H6zo_sNO;m9$G4T}z#e(H7TSkz_7llK*-*;`Dz?-#j#^Nz~y zd$!wE=Xw1smFF+&PuqNBU3A%=X9FV-7TBy$eGt2+#l`bevCWZN&bcHe-gx}XAwng0 z-NlSQ+8=M*rK0>rZAW(6k9F6Y;}5G|%vihO*Eeo2Ep}r4u_=q3=luH7-z4Kkp6pWpZvT|!S7bj;`DShZzSYxCo$K;i`eVpZYvms6 zkGETmIaXfm;nv^!nMT^1uBWx}3K%O}^DftF_k^U16u0g>rw8Zve%{~zG~IMm*6W6! z{06~Rx-i%tG;x~!@4k+*gWX;2zDF!F`r3aOmUZWn)WKx$8Pf=641D#H71%q{k4C6+xo8HztwgBA60bBarW^Vj)bXjk@6&P0w zy;ACLNIP)SMNf-J#<5E_LRl?miE+$5kSJ^97MNk|q@hLURVBR#Op>a4k?zn{*-XBu#4wmAC*qQGllwV8~;>3$~&0f4h#4ACzq>005vPf{h{lC0A8a2Kzy zIZZOu!7k~a=D;y!4~F24lxR;94~ZQ-M;UsBn&GY1r=6NBlO^dCt>yM+Gn*d<0{ zVg0i%G?QU4w*iJ3on0mv(NY>nS_w%9r4w%sVaxRP!7bEcEMVMkoU!M~%Xo+An z_?y|n<5luDYbx6cy=@HeZ+j{?;!=7EnwQOUn1>bOgun4qOhLx110xaal#zYIyTKZBJY8K*Wt83SJ=} z-Zf4hsOozaX8;NDE>8yX*8DbIK?|Y!O!dK!BUNj~yh892iU`_0&ef!S=PHl4C6V=x z$1}q>#@R*9d@l0r(|9QsH5>vr<%bKgZf--`Rj_Mr8sDZn%Us6N=c~EM)?WlZmZ1l7 z&axOIHWthkHx0b;XI=HStl=V=_ra#A(ee@adX`+$baM_d|G7}jS6o+pPz6>PeM9ve z`g94g&xwqoWaSm;75@4P2KZ+SjdzR|7Xng;T3Ywq;3b#Bno zbXws+@!hC+Mx^7dHQFXubtnP)sn5%q5t}QGR~*-$;er!t5~Y7XUX#EAC_}-T52hmkk?9iu`Ml| zU9DvLz3kjRSADX1Gn#>FpvYEF%$ZrW>3CLynI@7eeV}X4S@|QX38+C8t#xE7{_(~zI zKOlbgXad!b^61oy%P7H4ZzQ-xDSlr{!oNLNWYgw})jlOwidStpHp1c+i_1ZGo$9bF zjtd1fTDg0dR_c>J{Uv9siDU7j2Q|j_9GG)Ft(7t&r}6%@C=>T*s>)>=Mmi`V>N2n`=QX)^eoqI(4r7hELDOE z*RJwoE9H{&D*sk}fKxaOW2vvgzR zcC}xP*45r?IGYPdXPtpdy>~*CS)bSZURu3E!}#cJgOY}wib51xYy zeLYF$IdmxYTr~D%?40WJqtVBvVcGOW&N7Ox-jiTZQo$FyuRH zi;{L&kc<6ei8GF%lcSOHhil?^h04(Q+7OXt-erj;NEBj|DM9<^gi=z#vBWT_=d+PX zwIFoGN(%=_pVkZH`3eY$i?$V&xBd4~{7 zeMhcfKMJ5PpeU}11HIJ~0Oc2p4|`9rA?^fqFCtcknYU~h1cla!YfK%-0a~3R*4QUt zg_%mI#v?M(hj)mo!gfX(`~*VLo8OLqhTMxABF?+Nsa`glB~7RJWKWbXu& z+T18coae$Go3m3gT?3OzpHklChhUf$d zs2q=X?jjKgb`Of}^f)s#;@gZ3Qm2McDcWKsxMYEf8p!;xK`OoaA_`-I#@L%Apv&r` z+-4!GG-SX|Jeja0v?u=D90ZFm8X1VKazA?CjyO!sH|DUgfy^}$5tN7p&u^Svp*c5? zF9N|)kS()Bk(bM5LSz?o0HkPhQ*`e5K+js~@cle&m-HRjq|DKzfnrxqf4ETMX%F() zwwfET+2tB}VxA`5+*bT?S~SC;nVoejLF&YzTF?v^f$9%UCXpI$@1lRy-vH@4%Ic|V(;f6{O zk@vI9f?s_)aNs!Oag%A$;t(c%y0>7~--Rm0o3~JrUvR*q?;~`{L%X2vW58mb7xYOW zBR1;1m5x59o!#uP_#racx#?B{y`5CBN=z<?cCd#@GZRM zPJF4$C*f2=2?a=vs>TIt$2ZLaB;fDgw%{9`b5jQu4q#9DNA!qmE}lDa2>{#Q{;DVF zrA|G>!n51kqPLVn$}~q`vvgc@spQ+yBfql^jUekUnyRiCn{;VLZ8~!SWDT!$7Ra&u z*BAR~#xh(?QlB|Kv)qpPpWBK?kC(VU`c70n?HV07yEJMd9{AYI_f;OX1YP9Y(3@#4 z>6!F%Y*=Gl$5*i2-a#)X9S*j)EzAh=-q*XDM!vXw@5SXyUv&KLvChk&HPhgmm|j2J zJje2b;edbm*yFy%l77sSw}>OMY(M;(VZ-3Thg*J`X*>+I zbI4Fmu5r9-;~iY?ua^!n1bbgNC=i?+vl7=Z^I^t*zXwf%q}8 zQs(>J@X;rFCu-TpHArP#*F81N-Ppfk9hiT9bE>xgd>?f_@2b)4{>&SC#`|{2YsXi7 z6{?>^vrXPg5)y%D10%9ey+*yS^{UEp-_^!yMs2O$DfYQ?5c(WHVuI+-fMqvbV*r13 z5K`mBkg@yqvfYc6G=<8gmHC??k}O#0aQS|_4plyh`j^+W;Ijum#g50HH=F<6X=BB` zMKcG^#U8tbVM>Im$%{V}H29kV@dL0`u_;0A}JW6)iF{}PT8I1Kkg zTZR!2Et|@$dQr+K${MRKadljO1wmZ z38K%!`1n4Lw}YnMmq^8#qIGRYJ&1X3$kk@U-k;h!kDgCM51;bfJ}re*dc38mJgB&* zTE6LeIlBM+bam)0*U-gU$h7Fs}IHeA6P^KQ8?cJyB1`lk$tI%M9>D;y8L$>b^ zq+nKWF27e1%t8=>33dcS&x;z`C^pbrsiKNRfnRFPk$RXVU}KAqk>sNE(RZ5(g!W5N$ZF{ zN{V|8ZO=J$PAiRNdD)K$SmmghNC^DNFS^~4`{47HPM&? zbj1AbOxA?P3yL+-9qaUv9Wms)dsB=zeNCxB_wKcbk?4+y_`d9*Yi2&W`j%4E929oB zv#o}>ZI!TO$ZX4w`sc+-P@^zIL?&u-=D?)K<6G!aUCh)?haRu&z}?1LI)3&|XyTAt zW|tSfD>RVDu5%2mMG(r|p}v0BZP_DvbaZ_jJEfNFJ5E~&%RGl@?tZfbw(VClv@QIC z<&(4!{Ict}`ei%z@j3V{ikH3v##=qRCQFVLU$@U4i;s8k>}2EQtrw##+h|Pan9RK# zElXmD4AH&0UucC!tVn$Cu84N6AOesBgoV6(6ze)-nkNuw-5}q72(3$a5JaPS5Wm!}qx&|tq?Dx8`MR*nE_tVtZ>C3ASp@?5;&bIh_rdo6;I&g^cWL7u)+MGV20H6gu7++m6Yi!Ao2hnz$ z_pfGt7-v*9;rKt9HEp(ie=hyzf-))&g*%=7CK5fBC)QR7L04^IY$LKQU#KH#CAE45 z3K1Vs&xp~vaFwN#Y%{tNZ1PMZO%v*Lx0VFhw;R$(8~=vSJDOn>Nw!cYSS@&Q25^Iggq4c*D-QRE zT)JOhtL*vSrh!`n#7v=*BM80oM^CwObZ;Sz*)n9_+LXgyTQq5eJjR|L_tw6;L-{@3 z=GveYEO+uH+){a|d#m5s3fGP$a7ae#gI(oXlibS|##6Q**?6d$X3mNcbI}Y!B6R~k zDBZ(-C6~i5yjigr^=d<|bvr<8Q-J89Qwcf|m|HD~I#AbU;VBXIlTF#GXcc@A77m>5 zKV7?~4REi$*Jh<6SxzSRFE>n7fqjl)X%t@)oGgVL8&<6>T>N1#wY*=ll zdvCgiCv9l;1$w<3GL6~w^T>sp=e$9{P}R)o^)F;XAle^6nXxdc_TGRu<6yHq2E2v6 zeeAUtnF0_DV|ue;!3liI)H)4=)lb`d#z#3F*42@ot%CV-fcotbrDXIIm?G$y!`FgXW7o(eq0d^o(P-54edwsl2FajcjbPH`+;Q~RVXctyymXvidg zxgG=0-KjSmy%t>9dtL-{F=YxN9VA?g@Xy^6A-gA~rD7@KbP9pwOJg9Q29rhDPzPdz zVSH4|=O~>6RJo9lct&n{pe$H0GzcmTSP)e?SFLZ}Pm;ESp+j5Fk&aR6H)#5e5TKkO zGYnC`$6e*XmVvb1Wy7#8fwoQVu13Kvb^7D8MKyrEL5h$|Hj~L<=%JgNb^OhKq98+% z-cE`T_XqhL%ork%<-%9zowFl{X*udP+1F?%bhVZfPHU-eJAHP<=3296N*Ad zKesq?`yO$}_c=l*43i?T5q~hgjV{qlzVSiedy*;Xva6rCOe)VWAHA?>Dk8{Nb1^(w5Tt0RJ|GyK+7h0N?WAceM?vB+5p$F#1 zCuTSZemKlT)#{FuO-BlMcy!5zTN{rXv_fjqf9A4FHuXGe)hkkT+bi=$*&V4qdODY* zX(6gEYKJNyuH1N=OX~9018<$z#dqzRV4c^&b1jvl!^X4pXcW0Y0Z}j(6%ue<9U<({=8?^i4FCv;EhDZ6^!#Yiqz9hFHBuNe#&NS~dZwd65Z71)p@*nerHr>86ju zl~v|oWli?)!^82k>UnVl8chwPWlknxFO~om^wcYcMxpabK!i>DG72hpgOCr~2dl{S zl(fbC+cQ+qB5CvJ^#(z)msy-{T**MPo9z8c-ep%9-DecqQybD#!qF;%0{ePAYm6;J zS)ZQlYXf~ux0O3w{@F6S!IfNeCoV+@ z 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 literal 0 HcmV?d00001 -- 2.34.1 From a9eebbb6d53dd0075119d4181eb1bb430db5d042 Mon Sep 17 00:00:00 2001 From: tb202302116011 <1271741232@qq.com> Date: Tue, 23 Dec 2025 19:32:18 +0800 Subject: [PATCH 22/30] =?UTF-8?q?=E5=B0=9D=E8=AF=95=E8=A7=A3=E5=86=B3?= =?UTF-8?q?=E5=90=88=E5=B9=B6=E5=86=B2=E7=AA=81=EF=BC=8C=E6=8A=8Atangbo=5F?= =?UTF-8?q?branch=E4=B8=AD=E8=87=AA=E5=B7=B1=E6=96=B0=E5=BB=BA=E7=9A=84src?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=A4=B9=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/net/micode/notes/MainActivity.java | 41 - .../java/net/micode/notes/data/Contact.java | 97 -- .../java/net/micode/notes/data/Notes.java | 357 ----- .../notes/data/NotesDatabaseHelper.java | 432 ----- .../net/micode/notes/data/NotesProvider.java | 420 ----- .../net/micode/notes/gtask/data/MetaData.java | 157 -- .../net/micode/notes/gtask/data/Node.java | 223 --- .../net/micode/notes/gtask/data/SqlData.java | 337 ---- .../net/micode/notes/gtask/data/SqlNote.java | 714 --------- .../net/micode/notes/gtask/data/Task.java | 483 ------ .../net/micode/notes/gtask/data/TaskList.java | 486 ------ .../exception/ActionFailureException.java | 39 - .../exception/NetworkFailureException.java | 39 - .../notes/gtask/remote/GTaskASyncTask.java | 209 --- .../notes/gtask/remote/GTaskClient.java | 782 --------- .../notes/gtask/remote/GTaskManager.java | 944 ----------- .../notes/gtask/remote/GTaskSyncService.java | 191 --- .../java/net/micode/notes/model/Note.java | 430 ----- .../net/micode/notes/model/WorkingNote.java | 727 --------- .../net/micode/notes/tool/BackupUtils.java | 490 ------ .../java/net/micode/notes/tool/DataUtils.java | 437 ----- .../micode/notes/tool/GTaskStringUtils.java | 166 -- .../net/micode/notes/tool/ResourceParser.java | 296 ---- .../micode/notes/ui/AlarmAlertActivity.java | 255 --- .../micode/notes/ui/AlarmInitReceiver.java | 93 -- .../net/micode/notes/ui/AlarmReceiver.java | 44 - .../net/micode/notes/ui/DateTimePicker.java | 646 -------- .../micode/notes/ui/DateTimePickerDialog.java | 152 -- .../net/micode/notes/ui/DropdownMenu.java | 97 -- .../micode/notes/ui/FoldersListAdapter.java | 140 -- .../net/micode/notes/ui/NoteEditActivity.java | 1162 -------------- .../net/micode/notes/ui/NoteEditText.java | 319 ---- .../net/micode/notes/ui/NoteItemData.java | 459 ------ .../micode/notes/ui/NotesListActivity.java | 1403 ----------------- .../net/micode/notes/ui/NotesListAdapter.java | 304 ---- .../net/micode/notes/ui/NotesListItem.java | 170 -- .../notes/ui/NotesPreferenceActivity.java | 554 ------- .../notes/widget/NoteWidgetProvider.java | 224 --- .../notes/widget/NoteWidgetProvider_2x.java | 85 - .../notes/widget/NoteWidgetProvider_4x.java | 85 - 40 files changed, 14689 deletions(-) delete mode 100644 src/main/java/net/micode/notes/MainActivity.java delete mode 100644 src/main/java/net/micode/notes/data/Contact.java delete mode 100644 src/main/java/net/micode/notes/data/Notes.java delete mode 100644 src/main/java/net/micode/notes/data/NotesDatabaseHelper.java delete mode 100644 src/main/java/net/micode/notes/data/NotesProvider.java delete mode 100644 src/main/java/net/micode/notes/gtask/data/MetaData.java delete mode 100644 src/main/java/net/micode/notes/gtask/data/Node.java delete mode 100644 src/main/java/net/micode/notes/gtask/data/SqlData.java delete mode 100644 src/main/java/net/micode/notes/gtask/data/SqlNote.java delete mode 100644 src/main/java/net/micode/notes/gtask/data/Task.java delete mode 100644 src/main/java/net/micode/notes/gtask/data/TaskList.java delete mode 100644 src/main/java/net/micode/notes/gtask/exception/ActionFailureException.java delete mode 100644 src/main/java/net/micode/notes/gtask/exception/NetworkFailureException.java delete mode 100644 src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java delete mode 100644 src/main/java/net/micode/notes/gtask/remote/GTaskClient.java delete mode 100644 src/main/java/net/micode/notes/gtask/remote/GTaskManager.java delete mode 100644 src/main/java/net/micode/notes/gtask/remote/GTaskSyncService.java delete mode 100644 src/main/java/net/micode/notes/model/Note.java delete mode 100644 src/main/java/net/micode/notes/model/WorkingNote.java delete mode 100644 src/main/java/net/micode/notes/tool/BackupUtils.java delete mode 100644 src/main/java/net/micode/notes/tool/DataUtils.java delete mode 100644 src/main/java/net/micode/notes/tool/GTaskStringUtils.java delete mode 100644 src/main/java/net/micode/notes/tool/ResourceParser.java delete mode 100644 src/main/java/net/micode/notes/ui/AlarmAlertActivity.java delete mode 100644 src/main/java/net/micode/notes/ui/AlarmInitReceiver.java delete mode 100644 src/main/java/net/micode/notes/ui/AlarmReceiver.java delete mode 100644 src/main/java/net/micode/notes/ui/DateTimePicker.java delete mode 100644 src/main/java/net/micode/notes/ui/DateTimePickerDialog.java delete mode 100644 src/main/java/net/micode/notes/ui/DropdownMenu.java delete mode 100644 src/main/java/net/micode/notes/ui/FoldersListAdapter.java delete mode 100644 src/main/java/net/micode/notes/ui/NoteEditActivity.java delete mode 100644 src/main/java/net/micode/notes/ui/NoteEditText.java delete mode 100644 src/main/java/net/micode/notes/ui/NoteItemData.java delete mode 100644 src/main/java/net/micode/notes/ui/NotesListActivity.java delete mode 100644 src/main/java/net/micode/notes/ui/NotesListAdapter.java delete mode 100644 src/main/java/net/micode/notes/ui/NotesListItem.java delete mode 100644 src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java delete mode 100644 src/main/java/net/micode/notes/widget/NoteWidgetProvider.java delete mode 100644 src/main/java/net/micode/notes/widget/NoteWidgetProvider_2x.java delete mode 100644 src/main/java/net/micode/notes/widget/NoteWidgetProvider_4x.java diff --git a/src/main/java/net/micode/notes/MainActivity.java b/src/main/java/net/micode/notes/MainActivity.java deleted file mode 100644 index 105fc40..0000000 --- a/src/main/java/net/micode/notes/MainActivity.java +++ /dev/null @@ -1,41 +0,0 @@ - -package net.micode.notes; - -/** - * 笔记应用的主活动类,作为应用的入口点。 - *

- * 该类是小米笔记应用的主活动,负责初始化应用界面和处理窗口边距设置。 - *

- */ - -import android.os.Bundle; - -import androidx.activity.EdgeToEdge; -import androidx.appcompat.app.AppCompatActivity; -import androidx.core.graphics.Insets; -import androidx.core.view.ViewCompat; -import androidx.core.view.WindowInsetsCompat; - -public class MainActivity extends AppCompatActivity { - - /** - * 活动创建时调用的方法,初始化应用界面和窗口设置。 - *

- * 该方法启用了边缘到边缘显示模式,设置了活动布局,并处理了系统栏 - * 的边距问题,确保内容不会被系统UI遮挡。 - *

- * - * @param savedInstanceState 保存的实例状态,用于恢复活动状态 - */ - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - EdgeToEdge.enable(this); - setContentView(R.layout.activity_main); - ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> { - Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()); - v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom); - return insets; - }); - } -} \ No newline at end of file diff --git a/src/main/java/net/micode/notes/data/Contact.java b/src/main/java/net/micode/notes/data/Contact.java deleted file mode 100644 index 6a4f1d5..0000000 --- a/src/main/java/net/micode/notes/data/Contact.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.micode.notes.data; - -import android.content.Context; -import android.database.Cursor; -import android.provider.ContactsContract.CommonDataKinds.Phone; -import android.provider.ContactsContract.Data; -import android.telephony.PhoneNumberUtils; -import android.util.Log; - -import java.util.HashMap; - -/** - * 联系人工具类,用于根据电话号码获取联系人姓名 - *

- * 该类提供了获取联系人信息的静态方法,并使用缓存机制提高查询效率 - *

- */ -public class Contact { - /** - * 联系人缓存,用于存储已查询过的电话号码和对应联系人姓名 - */ - private static HashMap sContactCache; - /** - * 日志标签 - */ - private static final String TAG = "Contact"; - - /** - * 用于查询联系人的选择条件,根据电话号码匹配联系人 - */ - private static final String CALLER_ID_SELECTION = "PHONE_NUMBERS_EQUAL(" + Phone.NUMBER - + ",?) AND " + Data.MIMETYPE + "='" + Phone.CONTENT_ITEM_TYPE + "'" - + " AND " + Data.RAW_CONTACT_ID + " IN " - + "(SELECT raw_contact_id " - + " FROM phone_lookup" - + " WHERE min_match = '+')"; - - /** - * 根据电话号码获取联系人姓名 - *

- * 该方法会先检查缓存,如果缓存中存在则直接返回,否则查询联系人数据库 - *

- * @param context 上下文对象 - * @param phoneNumber 电话号码 - * @return 联系人姓名,若未找到则返回null - */ - public static String getContact(Context context, String phoneNumber) { - if(sContactCache == null) { - sContactCache = new HashMap(); - } - - if(sContactCache.containsKey(phoneNumber)) { - return sContactCache.get(phoneNumber); - } - - String selection = CALLER_ID_SELECTION.replace("+", - PhoneNumberUtils.toCallerIDMinMatch(phoneNumber)); - Cursor cursor = context.getContentResolver().query( - Data.CONTENT_URI, - new String [] { Phone.DISPLAY_NAME }, - selection, - new String[] { phoneNumber }, - null); - - if (cursor != null && cursor.moveToFirst()) { - try { - String name = cursor.getString(0); - sContactCache.put(phoneNumber, name); - return name; - } catch (IndexOutOfBoundsException e) { - Log.e(TAG, " Cursor get string error " + e.toString()); - return null; - } finally { - cursor.close(); - } - } else { - Log.d(TAG, "No contact matched with number:" + phoneNumber); - return null; - } - } -} diff --git a/src/main/java/net/micode/notes/data/Notes.java b/src/main/java/net/micode/notes/data/Notes.java deleted file mode 100644 index 5d83908..0000000 --- a/src/main/java/net/micode/notes/data/Notes.java +++ /dev/null @@ -1,357 +0,0 @@ -/* - * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.micode.notes.data; - -import android.net.Uri; - -/** - * 便签应用的核心数据模型类,定义了便签系统的常量、URI和数据结构 - *

- * 该类包含了便签应用的核心数据定义,包括便签类型、系统文件夹ID、意图额外参数、 - * 组件类型、以及各种URI定义。同时还定义了便签表和数据表的列名,以及文本便签和 - * 通话便签的具体数据结构。 - *

- */ -public class Notes { - /** - * 内容提供者的授权名称,用于构建内容URI - */ - public static final String AUTHORITY = "micode_notes"; - /** - * 日志标签,用于日志输出 - */ - public static final String TAG = "Notes"; - /** - * 便签类型:普通便签 - */ - public static final int TYPE_NOTE = 0; - /** - * 便签类型:文件夹 - */ - public static final int TYPE_FOLDER = 1; - /** - * 便签类型:系统便签 - */ - public static final int TYPE_SYSTEM = 2; - - /** - * 以下是系统文件夹的标识符 - * {@link Notes#ID_ROOT_FOLDER } 是默认文件夹 - * {@link Notes#ID_TEMPARAY_FOLDER } 用于存放不属于任何文件夹的便签 - * {@link Notes#ID_CALL_RECORD_FOLDER} 用于存储通话记录便签 - */ - public static final int ID_ROOT_FOLDER = 0; - public static final int ID_TEMPARAY_FOLDER = -1; - public static final int ID_CALL_RECORD_FOLDER = -2; - /** - * 回收站文件夹ID,用于存储被删除的便签和文件夹 - */ - public static final int ID_TRASH_FOLER = -3; - - /** - * 意图额外参数:提醒日期 - */ - public static final String INTENT_EXTRA_ALERT_DATE = "net.micode.notes.alert_date"; - /** - * 意图额外参数:背景颜色ID - */ - public static final String INTENT_EXTRA_BACKGROUND_ID = "net.micode.notes.background_color_id"; - /** - * 意图额外参数:组件ID - */ - public static final String INTENT_EXTRA_WIDGET_ID = "net.micode.notes.widget_id"; - /** - * 意图额外参数:组件类型 - */ - public static final String INTENT_EXTRA_WIDGET_TYPE = "net.micode.notes.widget_type"; - /** - * 意图额外参数:文件夹ID - */ - public static final String INTENT_EXTRA_FOLDER_ID = "net.micode.notes.folder_id"; - /** - * 意图额外参数:通话日期 - */ - public static final String INTENT_EXTRA_CALL_DATE = "net.micode.notes.call_date"; - - /** - * 组件类型:无效组件 - */ - public static final int TYPE_WIDGET_INVALIDE = -1; - /** - * 组件类型:2x2大小的便签组件 - */ - public static final int TYPE_WIDGET_2X = 0; - /** - * 组件类型:4x4大小的便签组件 - */ - public static final int TYPE_WIDGET_4X = 1; - - /** - * 数据类型常量类,定义了不同类型便签的数据项类型 - */ - public static class DataConstants { - /** - * 文本便签的数据项类型 - */ - public static final String NOTE = TextNote.CONTENT_ITEM_TYPE; - /** - * 通话便签的数据项类型 - */ - public static final String CALL_NOTE = CallNote.CONTENT_ITEM_TYPE; - } - - /** - * 用于查询所有便签和文件夹的Uri - */ - public static final Uri CONTENT_NOTE_URI = Uri.parse("content://" + AUTHORITY + "/note"); - - /** - * 用于查询数据的Uri - */ - public static final Uri CONTENT_DATA_URI = Uri.parse("content://" + AUTHORITY + "/data"); - - public interface NoteColumns { - /** - * 行的唯一ID - *

类型: INTEGER (long)

- */ - public static final String ID = "_id"; - - /** - * 便签或文件夹的父ID - *

类型: INTEGER (long)

- */ - public static final String PARENT_ID = "parent_id"; - - /** - * 便签或文件夹的创建日期 - *

类型: INTEGER (long)

- */ - public static final String CREATED_DATE = "created_date"; - - /** - * 最近修改日期 - *

类型: INTEGER (long)

- */ - public static final String MODIFIED_DATE = "modified_date"; - - - /** - * 提醒日期 - *

类型: INTEGER (long)

- */ - public static final String ALERTED_DATE = "alert_date"; - - /** - * 文件夹名称或便签的文本内容 - *

类型: TEXT

- */ - public static final String SNIPPET = "snippet"; - - /** - * 便签的组件ID - *

类型: INTEGER (long)

- */ - public static final String WIDGET_ID = "widget_id"; - - /** - * 便签的组件类型 - *

类型: INTEGER (long)

- */ - public static final String WIDGET_TYPE = "widget_type"; - - /** - * 便签的背景颜色ID - *

类型: INTEGER (long)

- */ - public static final String BG_COLOR_ID = "bg_color_id"; - - /** - * 对于文本便签,没有附件;对于多媒体便签,至少有一个附件 - *

类型: INTEGER

- */ - public static final String HAS_ATTACHMENT = "has_attachment"; - - /** - * 文件夹中的便签数量 - *

类型: INTEGER (long)

- */ - public static final String NOTES_COUNT = "notes_count"; - - /** - * 文件类型:文件夹或便签 - *

类型: INTEGER

- */ - public static final String TYPE = "type"; - - /** - * 最后同步ID - *

类型: INTEGER (long)

- */ - public static final String SYNC_ID = "sync_id"; - - /** - * 表示本地是否修改的标志 - *

类型: INTEGER

- */ - public static final String LOCAL_MODIFIED = "local_modified"; - - /** - * 移动到临时文件夹之前的原始父ID - *

类型: INTEGER

- */ - public static final String ORIGIN_PARENT_ID = "origin_parent_id"; - - /** - * GTask ID - *

类型: TEXT

- */ - public static final String GTASK_ID = "gtask_id"; - - /** - * 版本号 - *

类型: INTEGER (long)

- */ - public static final String VERSION = "version"; - } - - public interface DataColumns { - /** - * 行的唯一ID - *

类型: INTEGER (long)

- */ - public static final String ID = "_id"; - - /** - * 该行表示的项目的MIME类型 - *

类型: Text

- */ - public static final String MIME_TYPE = "mime_type"; - - /** - * 该数据所属便签的引用ID - *

类型: INTEGER (long)

- */ - public static final String NOTE_ID = "note_id"; - - /** - * 便签或文件夹的创建日期 - *

类型: INTEGER (long)

- */ - public static final String CREATED_DATE = "created_date"; - - /** - * 最近修改日期 - *

类型: INTEGER (long)

- */ - public static final String MODIFIED_DATE = "modified_date"; - - /** - * 数据内容 - *

类型: TEXT

- */ - public static final String CONTENT = "content"; - - - /** - * 通用数据列,含义由{@link # MIMETYPE}决定,用于整数数据类型 - *

类型: INTEGER

- */ - public static final String DATA1 = "data1"; - - /** - * 通用数据列,含义由{@link # MIMETYPE}决定,用于整数数据类型 - *

类型: INTEGER

- */ - public static final String DATA2 = "data2"; - - /** - * 通用数据列,含义由{@link # MIMETYPE}决定,用于文本数据类型 - *

类型: TEXT

- */ - public static final String DATA3 = "data3"; - - /** - * 通用数据列,含义由{@link # MIMETYPE}决定,用于文本数据类型 - *

类型: TEXT

- */ - public static final String DATA4 = "data4"; - - /** - * 通用数据列,含义由{@link # MIMETYPE}决定,用于文本数据类型 - *

类型: TEXT

- */ - public static final String DATA5 = "data5"; - } - - public static final class TextNote implements DataColumns { - /** - * 指示文本是否处于清单模式 - *

类型: Integer 1:清单模式 0:普通模式

- */ - public static final String MODE = DATA1; - - /** - * 清单模式 - */ - public static final int MODE_CHECK_LIST = 1; - - /** - * 文本便签的目录MIME类型 - */ - public static final String CONTENT_TYPE = "vnd.android.cursor.dir/text_note"; - - /** - * 文本便签的单项MIME类型 - */ - public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/text_note"; - - /** - * 文本便签的内容URI - */ - public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/text_note"); - } - - public static final class CallNote implements DataColumns { - /** - * 此记录的通话日期 - *

类型: INTEGER (long)

- */ - public static final String CALL_DATE = DATA1; - - /** - * 此记录的电话号码 - *

类型: TEXT

- */ - public static final String PHONE_NUMBER = DATA3; - - /** - * 通话便签的目录MIME类型 - */ - public static final String CONTENT_TYPE = "vnd.android.cursor.dir/call_note"; - - /** - * 通话便签的单项MIME类型 - */ - public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/call_note"; - - /** - * 通话便签的内容URI - */ - public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/call_note"); - } -} diff --git a/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java b/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java deleted file mode 100644 index f6b9c37..0000000 --- a/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java +++ /dev/null @@ -1,432 +0,0 @@ -/* - * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.micode.notes.data; - -import android.content.ContentValues; -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteOpenHelper; -import android.util.Log; - -import net.micode.notes.data.Notes.DataColumns; -import net.micode.notes.data.Notes.DataConstants; -import net.micode.notes.data.Notes.NoteColumns; - - -/** - * 笔记数据库帮助类,负责数据库的创建、升级及触发器管理 - * 采用单例模式确保数据库连接的唯一性,封装了表结构定义、系统文件夹初始化等核心操作 - */ -public class NotesDatabaseHelper extends SQLiteOpenHelper { - // 数据库文件名 - private static final String DB_NAME = "note.db"; - // 数据库版本号,用于升级控制 - private static final int DB_VERSION = 4; - - /** - * 数据库表名常量定义 - */ - public interface TABLE { - // 笔记表,存储笔记和文件夹的元数据 - public static final String NOTE = "note"; - // 数据表,存储笔记的具体内容(如文本、通话记录等) - public static final String DATA = "data"; - } - - // 日志标签 - private static final String TAG = "NotesDatabaseHelper"; - // 单例实例 - private static NotesDatabaseHelper mInstance; - - /** - * 笔记表创建SQL语句 - * 包含笔记/文件夹的基本属性:ID、父文件夹ID、提醒时间、背景色、创建/修改时间等 - */ - private static final String CREATE_NOTE_TABLE_SQL = - "CREATE TABLE " + TABLE.NOTE + "(" + - NoteColumns.ID + " INTEGER PRIMARY KEY," + - NoteColumns.PARENT_ID + " INTEGER NOT NULL DEFAULT 0," + - NoteColumns.ALERTED_DATE + " INTEGER NOT NULL DEFAULT 0," + - NoteColumns.BG_COLOR_ID + " INTEGER NOT NULL DEFAULT 0," + - NoteColumns.CREATED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," + - NoteColumns.HAS_ATTACHMENT + " INTEGER NOT NULL DEFAULT 0," + - NoteColumns.MODIFIED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," + - NoteColumns.NOTES_COUNT + " INTEGER NOT NULL DEFAULT 0," + - NoteColumns.SNIPPET + " TEXT NOT NULL DEFAULT ''," + - NoteColumns.TYPE + " INTEGER NOT NULL DEFAULT 0," + - NoteColumns.WIDGET_ID + " INTEGER NOT NULL DEFAULT 0," + - NoteColumns.WIDGET_TYPE + " INTEGER NOT NULL DEFAULT -1," + - NoteColumns.SYNC_ID + " INTEGER NOT NULL DEFAULT 0," + - NoteColumns.LOCAL_MODIFIED + " INTEGER NOT NULL DEFAULT 0," + - NoteColumns.ORIGIN_PARENT_ID + " INTEGER NOT NULL DEFAULT 0," + - NoteColumns.GTASK_ID + " TEXT NOT NULL DEFAULT ''," + - NoteColumns.VERSION + " INTEGER NOT NULL DEFAULT 0" + - ")"; - - /** - * 数据表创建SQL语句 - * 存储笔记的具体内容,支持多种类型(文本、通话记录等),通过MIME_TYPE区分 - */ - private static final String CREATE_DATA_TABLE_SQL = - "CREATE TABLE " + TABLE.DATA + "(" + - DataColumns.ID + " INTEGER PRIMARY KEY," + - DataColumns.MIME_TYPE + " TEXT NOT NULL," + - DataColumns.NOTE_ID + " INTEGER NOT NULL DEFAULT 0," + - NoteColumns.CREATED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," + - NoteColumns.MODIFIED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," + - DataColumns.CONTENT + " TEXT NOT NULL DEFAULT ''," + - DataColumns.DATA1 + " INTEGER," + - DataColumns.DATA2 + " INTEGER," + - DataColumns.DATA3 + " TEXT NOT NULL DEFAULT ''," + - DataColumns.DATA4 + " TEXT NOT NULL DEFAULT ''," + - DataColumns.DATA5 + " TEXT NOT NULL DEFAULT ''" + - ")"; - - /** - * 为数据表的NOTE_ID字段创建索引 - * 优化根据笔记ID查询数据的性能 - */ - private static final String CREATE_DATA_NOTE_ID_INDEX_SQL = - "CREATE INDEX IF NOT EXISTS note_id_index ON " + - TABLE.DATA + "(" + DataColumns.NOTE_ID + ");"; - - /** - * 触发器:更新笔记父文件夹时,增加新父文件夹的笔记计数 - */ - private static final String NOTE_INCREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER = - "CREATE TRIGGER increase_folder_count_on_update "+ - " AFTER UPDATE OF " + NoteColumns.PARENT_ID + " ON " + TABLE.NOTE + - " BEGIN " + - " UPDATE " + TABLE.NOTE + - " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + " + 1" + - " WHERE " + NoteColumns.ID + "=new." + NoteColumns.PARENT_ID + ";" + - " END"; - - /** - * 触发器:更新笔记父文件夹时,减少旧父文件夹的笔记计数 - */ - private static final String NOTE_DECREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER = - "CREATE TRIGGER decrease_folder_count_on_update " + - " AFTER UPDATE OF " + NoteColumns.PARENT_ID + " ON " + TABLE.NOTE + - " BEGIN " + - " UPDATE " + TABLE.NOTE + - " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + "-1" + - " WHERE " + NoteColumns.ID + "=old." + NoteColumns.PARENT_ID + - " AND " + NoteColumns.NOTES_COUNT + ">0" + ";" + - " END"; - - /** - * 触发器:插入新笔记时,增加其父文件夹的笔记计数 - */ - private static final String NOTE_INCREASE_FOLDER_COUNT_ON_INSERT_TRIGGER = - "CREATE TRIGGER increase_folder_count_on_insert " + - " AFTER INSERT ON " + TABLE.NOTE + - " BEGIN " + - " UPDATE " + TABLE.NOTE + - " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + " + 1" + - " WHERE " + NoteColumns.ID + "=new." + NoteColumns.PARENT_ID + ";" + - " END"; - - /** - * 触发器:删除笔记时,减少其父文件夹的笔记计数 - */ - private static final String NOTE_DECREASE_FOLDER_COUNT_ON_DELETE_TRIGGER = - "CREATE TRIGGER decrease_folder_count_on_delete " + - " AFTER DELETE ON " + TABLE.NOTE + - " BEGIN " + - " UPDATE " + TABLE.NOTE + - " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + "-1" + - " WHERE " + NoteColumns.ID + "=old." + NoteColumns.PARENT_ID + - " AND " + NoteColumns.NOTES_COUNT + ">0;" + - " END"; - - /** - * 触发器:插入文本笔记数据时,更新对应笔记的摘要内容 - */ - private static final String DATA_UPDATE_NOTE_CONTENT_ON_INSERT_TRIGGER = - "CREATE TRIGGER update_note_content_on_insert " + - " AFTER INSERT ON " + TABLE.DATA + - " WHEN new." + DataColumns.MIME_TYPE + "='" + DataConstants.NOTE + "'" + - " BEGIN" + - " UPDATE " + TABLE.NOTE + - " SET " + NoteColumns.SNIPPET + "=new." + DataColumns.CONTENT + - " WHERE " + NoteColumns.ID + "=new." + DataColumns.NOTE_ID + ";" + - " END"; - - /** - * 触发器:更新文本笔记数据时,同步更新对应笔记的摘要内容 - */ - private static final String DATA_UPDATE_NOTE_CONTENT_ON_UPDATE_TRIGGER = - "CREATE TRIGGER update_note_content_on_update " + - " AFTER UPDATE ON " + TABLE.DATA + - " WHEN old." + DataColumns.MIME_TYPE + "='" + DataConstants.NOTE + "'" + - " BEGIN" + - " UPDATE " + TABLE.NOTE + - " SET " + NoteColumns.SNIPPET + "=new." + DataColumns.CONTENT + - " WHERE " + NoteColumns.ID + "=new." + DataColumns.NOTE_ID + ";" + - " END"; - - /** - * 触发器:删除文本笔记数据时,清空对应笔记的摘要内容 - */ - private static final String DATA_UPDATE_NOTE_CONTENT_ON_DELETE_TRIGGER = - "CREATE TRIGGER update_note_content_on_delete " + - " AFTER delete ON " + TABLE.DATA + - " WHEN old." + DataColumns.MIME_TYPE + "='" + DataConstants.NOTE + "'" + - " BEGIN" + - " UPDATE " + TABLE.NOTE + - " SET " + NoteColumns.SNIPPET + "=''" + - " WHERE " + NoteColumns.ID + "=old." + DataColumns.NOTE_ID + ";" + - " END"; - - /** - * 触发器:删除笔记时,级联删除其关联的数据记录 - */ - private static final String NOTE_DELETE_DATA_ON_DELETE_TRIGGER = - "CREATE TRIGGER delete_data_on_delete " + - " AFTER DELETE ON " + TABLE.NOTE + - " BEGIN" + - " DELETE FROM " + TABLE.DATA + - " WHERE " + DataColumns.NOTE_ID + "=old." + NoteColumns.ID + ";" + - " END"; - - /** - * 触发器:删除文件夹时,级联删除其包含的所有笔记 - */ - private static final String FOLDER_DELETE_NOTES_ON_DELETE_TRIGGER = - "CREATE TRIGGER folder_delete_notes_on_delete " + - " AFTER DELETE ON " + TABLE.NOTE + - " BEGIN" + - " DELETE FROM " + TABLE.NOTE + - " WHERE " + NoteColumns.PARENT_ID + "=old." + NoteColumns.ID + ";" + - " END"; - - /** - * 触发器:当文件夹被移到回收站时,其包含的所有笔记也自动移到回收站 - */ - private static final String FOLDER_MOVE_NOTES_ON_TRASH_TRIGGER = - "CREATE TRIGGER folder_move_notes_on_trash " + - " AFTER UPDATE ON " + TABLE.NOTE + - " WHEN new." + NoteColumns.PARENT_ID + "=" + Notes.ID_TRASH_FOLER + - " BEGIN" + - " UPDATE " + TABLE.NOTE + - " SET " + NoteColumns.PARENT_ID + "=" + Notes.ID_TRASH_FOLER + - " WHERE " + NoteColumns.PARENT_ID + "=old." + NoteColumns.ID + ";" + - " END"; - - /** - * 私有构造方法,防止外部实例化 - * @param context 上下文对象 - */ - public NotesDatabaseHelper(Context context) { - super(context, DB_NAME, null, DB_VERSION); - } - - /** - * 创建笔记表并初始化相关触发器和系统文件夹 - * @param db 数据库实例 - */ - public void createNoteTable(SQLiteDatabase db) { - db.execSQL(CREATE_NOTE_TABLE_SQL); - reCreateNoteTableTriggers(db); - createSystemFolder(db); - Log.d(TAG, "note table has been created"); - } - - /** - * 重新创建笔记表的所有触发器(先删除旧触发器再创建新的) - * @param db 数据库实例 - */ - private void reCreateNoteTableTriggers(SQLiteDatabase db) { - db.execSQL("DROP TRIGGER IF EXISTS increase_folder_count_on_update"); - db.execSQL("DROP TRIGGER IF EXISTS decrease_folder_count_on_update"); - db.execSQL("DROP TRIGGER IF EXISTS decrease_folder_count_on_delete"); - db.execSQL("DROP TRIGGER IF EXISTS delete_data_on_delete"); - db.execSQL("DROP TRIGGER IF EXISTS increase_folder_count_on_insert"); - db.execSQL("DROP TRIGGER IF EXISTS folder_delete_notes_on_delete"); - db.execSQL("DROP TRIGGER IF EXISTS folder_move_notes_on_trash"); - - db.execSQL(NOTE_INCREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER); - db.execSQL(NOTE_DECREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER); - db.execSQL(NOTE_DECREASE_FOLDER_COUNT_ON_DELETE_TRIGGER); - db.execSQL(NOTE_DELETE_DATA_ON_DELETE_TRIGGER); - db.execSQL(NOTE_INCREASE_FOLDER_COUNT_ON_INSERT_TRIGGER); - db.execSQL(FOLDER_DELETE_NOTES_ON_DELETE_TRIGGER); - db.execSQL(FOLDER_MOVE_NOTES_ON_TRASH_TRIGGER); - } - - /** - * 初始化系统文件夹(通话记录文件夹、根目录、临时文件夹、回收站) - * @param db 数据库实例 - */ - private void createSystemFolder(SQLiteDatabase db) { - ContentValues values = new ContentValues(); - - // 通话记录文件夹:存储通话笔记 - values.put(NoteColumns.ID, Notes.ID_CALL_RECORD_FOLDER); - values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); - db.insert(TABLE.NOTE, null, values); - - // 根目录:默认文件夹 - values.clear(); - values.put(NoteColumns.ID, Notes.ID_ROOT_FOLDER); - values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); - db.insert(TABLE.NOTE, null, values); - - // 临时文件夹:用于移动笔记的中间存储 - values.clear(); - values.put(NoteColumns.ID, Notes.ID_TEMPARAY_FOLDER); - values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); - db.insert(TABLE.NOTE, null, values); - - // 回收站:存储被删除的笔记和文件夹 - values.clear(); - values.put(NoteColumns.ID, Notes.ID_TRASH_FOLER); - values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); - db.insert(TABLE.NOTE, null, values); - } - - /** - * 创建数据表并初始化相关触发器和索引 - * @param db 数据库实例 - */ - public void createDataTable(SQLiteDatabase db) { - db.execSQL(CREATE_DATA_TABLE_SQL); - reCreateDataTableTriggers(db); - db.execSQL(CREATE_DATA_NOTE_ID_INDEX_SQL); - Log.d(TAG, "data table has been created"); - } - - /** - * 重新创建数据表的所有触发器(先删除旧触发器再创建新的) - * @param db 数据库实例 - */ - private void reCreateDataTableTriggers(SQLiteDatabase db) { - db.execSQL("DROP TRIGGER IF EXISTS update_note_content_on_insert"); - db.execSQL("DROP TRIGGER IF EXISTS update_note_content_on_update"); - db.execSQL("DROP TRIGGER IF EXISTS update_note_content_on_delete"); - - db.execSQL(DATA_UPDATE_NOTE_CONTENT_ON_INSERT_TRIGGER); - db.execSQL(DATA_UPDATE_NOTE_CONTENT_ON_UPDATE_TRIGGER); - db.execSQL(DATA_UPDATE_NOTE_CONTENT_ON_DELETE_TRIGGER); - } - - /** - * 获取单例实例 - * @param context 上下文对象 - * @return 数据库帮助类实例 - */ - static synchronized NotesDatabaseHelper getInstance(Context context) { - if (mInstance == null) { - mInstance = new NotesDatabaseHelper(context); - } - return mInstance; - } - - /** - * 数据库首次创建时调用,初始化表结构 - * @param db 数据库实例 - */ - @Override - public void onCreate(SQLiteDatabase db) { - createNoteTable(db); - createDataTable(db); - } - - /** - * 数据库版本升级时调用 - * @param db 数据库实例 - * @param oldVersion 旧版本号 - * @param newVersion 新版本号 - */ - @Override - public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { - boolean reCreateTriggers = false; - boolean skipV2 = false; - - // 版本1升级到版本2 - if (oldVersion == 1) { - upgradeToV2(db); - skipV2 = true; // 此升级包含了从v2到v3的升级 - oldVersion++; - } - - // 版本2升级到版本3(跳过已包含在v1->v2中的情况) - if (oldVersion == 2 && !skipV2) { - upgradeToV3(db); - reCreateTriggers = true; - oldVersion++; - } - - // 版本3升级到版本4 - if (oldVersion == 3) { - upgradeToV4(db); - oldVersion++; - } - - // 如果需要,重新创建触发器 - if (reCreateTriggers) { - reCreateNoteTableTriggers(db); - reCreateDataTableTriggers(db); - } - - // 验证升级是否完成 - if (oldVersion != newVersion) { - throw new IllegalStateException("Upgrade notes database to version " + newVersion - + "fails"); - } - } - - /** - * 升级到版本2:删除旧表并重新创建(结构调整) - * @param db 数据库实例 - */ - private void upgradeToV2(SQLiteDatabase db) { - db.execSQL("DROP TABLE IF EXISTS " + TABLE.NOTE); - db.execSQL("DROP TABLE IF EXISTS " + TABLE.DATA); - createNoteTable(db); - createDataTable(db); - } - - /** - * 升级到版本3:添加GTask ID字段和回收站文件夹 - * @param db 数据库实例 - */ - private void upgradeToV3(SQLiteDatabase db) { - // 删除未使用的触发器 - db.execSQL("DROP TRIGGER IF EXISTS update_note_modified_date_on_insert"); - db.execSQL("DROP TRIGGER IF EXISTS update_note_modified_date_on_delete"); - db.execSQL("DROP TRIGGER IF EXISTS update_note_modified_date_on_update"); - // 添加GTask ID字段,用于同步 - db.execSQL("ALTER TABLE " + TABLE.NOTE + " ADD COLUMN " + NoteColumns.GTASK_ID - + " TEXT NOT NULL DEFAULT ''"); - // 添加回收站系统文件夹 - ContentValues values = new ContentValues(); - values.put(NoteColumns.ID, Notes.ID_TRASH_FOLER); - values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); - db.insert(TABLE.NOTE, null, values); - } - - /** - * 升级到版本4:添加版本号字段,用于数据同步控制 - * @param db 数据库实例 - */ - private void upgradeToV4(SQLiteDatabase db) { - db.execSQL("ALTER TABLE " + TABLE.NOTE + " ADD COLUMN " + NoteColumns.VERSION - + " INTEGER NOT NULL DEFAULT 0"); - } -} \ No newline at end of file diff --git a/src/main/java/net/micode/notes/data/NotesProvider.java b/src/main/java/net/micode/notes/data/NotesProvider.java deleted file mode 100644 index 678534f..0000000 --- a/src/main/java/net/micode/notes/data/NotesProvider.java +++ /dev/null @@ -1,420 +0,0 @@ -/* - * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.micode.notes.data; - -import android.app.SearchManager; -import android.content.ContentProvider; -import android.content.ContentUris; -import android.content.ContentValues; -import android.content.Intent; -import android.content.UriMatcher; -import android.database.Cursor; -import android.database.sqlite.SQLiteDatabase; -import android.net.Uri; -import android.text.TextUtils; -import android.util.Log; - -import net.micode.notes.R; -import net.micode.notes.data.Notes.DataColumns; -import net.micode.notes.data.Notes.NoteColumns; -import net.micode.notes.data.NotesDatabaseHelper.TABLE; - -/** - * 便签应用的内容提供者(ContentProvider) - * 负责管理便签数据的CRUD操作,包括搜索功能 - */ -public class NotesProvider extends ContentProvider { - /** - * URI匹配器,用于匹配不同的URI请求,根据URI类型执行相应的操作 - */ - private static final UriMatcher mMatcher; - - /** - * 数据库帮助类实例,用于获取数据库连接 - */ - private NotesDatabaseHelper mHelper; - - /** - * 日志标签,用于日志输出 - */ - private static final String TAG = "NotesProvider"; - - /** - * URI匹配类型常量定义,用于区分不同的URI请求类型 - */ - private static final int URI_NOTE = 1; // 操作便签表(所有记录) - private static final int URI_NOTE_ITEM = 2; // 操作便签表(单条记录) - private static final int URI_DATA = 3; // 操作数据表(所有记录) - private static final int URI_DATA_ITEM = 4; // 操作数据表(单条记录) - private static final int URI_SEARCH = 5; // 搜索操作 - private static final int URI_SEARCH_SUGGEST = 6; // 搜索建议操作 - - /** - * 静态初始化块,配置URI匹配规则 - * 为不同类型的URI请求配置对应的匹配类型 - */ - static { - mMatcher = new UriMatcher(UriMatcher.NO_MATCH); - // 匹配便签表的URI - mMatcher.addURI(Notes.AUTHORITY, "note", URI_NOTE); - mMatcher.addURI(Notes.AUTHORITY, "note/#", URI_NOTE_ITEM); - // 匹配数据表的URI - mMatcher.addURI(Notes.AUTHORITY, "data", URI_DATA); - mMatcher.addURI(Notes.AUTHORITY, "data/#", URI_DATA_ITEM); - // 匹配搜索相关的URI - mMatcher.addURI(Notes.AUTHORITY, "search", URI_SEARCH); - mMatcher.addURI(Notes.AUTHORITY, SearchManager.SUGGEST_URI_PATH_QUERY, URI_SEARCH_SUGGEST); - mMatcher.addURI(Notes.AUTHORITY, SearchManager.SUGGEST_URI_PATH_QUERY + "/*", URI_SEARCH_SUGGEST); - } - - /** - * 搜索查询的投影(列)定义 - * x'0A' 在SQLite中代表 '\n' 字符 - * 对于搜索结果中的标题和内容,我们将修剪 '\n' 和空白字符以显示更多信息 - */ - private static final String NOTES_SEARCH_PROJECTION = NoteColumns.ID + "," - + NoteColumns.ID + " AS " + SearchManager.SUGGEST_COLUMN_INTENT_EXTRA_DATA + "," - + "TRIM(REPLACE(" + NoteColumns.SNIPPET + ", x'0A','')) AS " + SearchManager.SUGGEST_COLUMN_TEXT_1 + "," - + "TRIM(REPLACE(" + NoteColumns.SNIPPET + ", x'0A','')) AS " + SearchManager.SUGGEST_COLUMN_TEXT_2 + "," - + R.drawable.search_result + " AS " + SearchManager.SUGGEST_COLUMN_ICON_1 + "," - + "'" + Intent.ACTION_VIEW + "' AS " + SearchManager.SUGGEST_COLUMN_INTENT_ACTION + "," - + "'" + Notes.TextNote.CONTENT_TYPE + "' AS " + SearchManager.SUGGEST_COLUMN_INTENT_DATA; - - /** - * 便签片段搜索查询的SQL语句 - * 搜索条件:便签片段包含关键词,且不在回收站中,类型为普通便签 - */ - private static String NOTES_SNIPPET_SEARCH_QUERY = "SELECT " + NOTES_SEARCH_PROJECTION - + " FROM " + TABLE.NOTE - + " WHERE " + NoteColumns.SNIPPET + " LIKE ?" - + " AND " + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLER - + " AND " + NoteColumns.TYPE + "=" + Notes.TYPE_NOTE; - - /** - * 初始化内容提供者 - * @return 如果初始化成功返回true,否则返回false - */ - @Override - public boolean onCreate() { - mHelper = NotesDatabaseHelper.getInstance(getContext()); - return true; - } - - /** - * 查询数据 - * @param uri 要查询的URI - * @param projection 要返回的列,null表示所有列 - * @param selection 查询条件,null表示无条件 - * @param selectionArgs 查询条件参数 - * @param sortOrder 排序方式,null表示默认排序 - * @return 包含查询结果的Cursor对象 - */ - @Override - public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, - String sortOrder) { - Cursor c = null; - SQLiteDatabase db = mHelper.getReadableDatabase(); - String id = null; - - // 根据URI类型执行不同的查询操作 - switch (mMatcher.match(uri)) { - case URI_NOTE: - // 查询所有便签 - c = db.query(TABLE.NOTE, projection, selection, selectionArgs, null, null, - sortOrder); - break; - case URI_NOTE_ITEM: - // 查询单条便签记录 - id = uri.getPathSegments().get(1); - c = db.query(TABLE.NOTE, projection, NoteColumns.ID + "=" + id - + parseSelection(selection), selectionArgs, null, null, sortOrder); - break; - case URI_DATA: - // 查询所有数据记录 - c = db.query(TABLE.DATA, projection, selection, selectionArgs, null, null, - sortOrder); - break; - case URI_DATA_ITEM: - // 查询单条数据记录 - id = uri.getPathSegments().get(1); - c = db.query(TABLE.DATA, projection, DataColumns.ID + "=" + id - + parseSelection(selection), selectionArgs, null, null, sortOrder); - break; - case URI_SEARCH: - case URI_SEARCH_SUGGEST: - // 处理搜索和搜索建议请求 - if (sortOrder != null || projection != null) { - throw new IllegalArgumentException( - "do not specify sortOrder, selection, selectionArgs, or projection" + "with this query"); - } - - String searchString = null; - // 根据URI类型获取搜索关键词 - if (mMatcher.match(uri) == URI_SEARCH_SUGGEST) { - if (uri.getPathSegments().size() > 1) { - searchString = uri.getPathSegments().get(1); - } - } else { - searchString = uri.getQueryParameter("pattern"); - } - - // 如果搜索关键词为空,返回null - if (TextUtils.isEmpty(searchString)) { - return null; - } - - try { - // 构造模糊查询字符串 - searchString = String.format("%%%s%%", searchString); - c = db.rawQuery(NOTES_SNIPPET_SEARCH_QUERY, - new String[] { searchString }); - } catch (IllegalStateException ex) { - Log.e(TAG, "got exception: " + ex.toString()); - } - break; - default: - throw new IllegalArgumentException("Unknown URI " + uri); - } - - // 设置内容观察者,以便在数据变化时通知相关组件 - if (c != null) { - c.setNotificationUri(getContext().getContentResolver(), uri); - } - return c; - } - - /** - * 插入数据 - * @param uri 要插入数据的URI - * @param values 要插入的数据值 - * @return 新插入数据的URI - */ - @Override - public Uri insert(Uri uri, ContentValues values) { - SQLiteDatabase db = mHelper.getWritableDatabase(); - long dataId = 0, noteId = 0, insertedId = 0; - - // 根据URI类型执行不同的插入操作 - switch (mMatcher.match(uri)) { - case URI_NOTE: - // 插入便签数据 - insertedId = noteId = db.insert(TABLE.NOTE, null, values); - break; - case URI_DATA: - // 插入数据表记录 - if (values.containsKey(DataColumns.NOTE_ID)) { - noteId = values.getAsLong(DataColumns.NOTE_ID); - } else { - Log.d(TAG, "Wrong data format without note id:" + values.toString()); - } - insertedId = dataId = db.insert(TABLE.DATA, null, values); - break; - default: - throw new IllegalArgumentException("Unknown URI " + uri); - } - - // 通知便签URI的数据变化 - if (noteId > 0) { - getContext().getContentResolver().notifyChange( - ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId), null); - } - - // 通知数据URI的数据变化 - if (dataId > 0) { - getContext().getContentResolver().notifyChange( - ContentUris.withAppendedId(Notes.CONTENT_DATA_URI, dataId), null); - } - - // 返回新插入数据的URI - return ContentUris.withAppendedId(uri, insertedId); - } - - /** - * 删除数据 - * @param uri 要删除数据的URI - * @param selection 删除条件,null表示无条件 - * @param selectionArgs 删除条件参数 - * @return 被删除的行数 - */ - @Override - public int delete(Uri uri, String selection, String[] selectionArgs) { - int count = 0; - String id = null; - SQLiteDatabase db = mHelper.getWritableDatabase(); - boolean deleteData = false; - - // 根据URI类型执行不同的删除操作 - switch (mMatcher.match(uri)) { - case URI_NOTE: - // 删除便签记录(不删除ID小于0的系统文件夹) - selection = "(" + selection + ") AND " + NoteColumns.ID + ">0 "; - count = db.delete(TABLE.NOTE, selection, selectionArgs); - break; - case URI_NOTE_ITEM: - // 删除单条便签记录 - id = uri.getPathSegments().get(1); - /** - * ID小于0的是系统文件夹,不允许删除(移动到回收站) - */ - long noteId = Long.valueOf(id); - if (noteId <= 0) { - break; - } - count = db.delete(TABLE.NOTE, - NoteColumns.ID + "=" + id + parseSelection(selection), selectionArgs); - break; - case URI_DATA: - // 删除数据记录 - count = db.delete(TABLE.DATA, selection, selectionArgs); - deleteData = true; - break; - case URI_DATA_ITEM: - // 删除单条数据记录 - id = uri.getPathSegments().get(1); - count = db.delete(TABLE.DATA, - DataColumns.ID + "=" + id + parseSelection(selection), selectionArgs); - deleteData = true; - break; - default: - throw new IllegalArgumentException("Unknown URI " + uri); - } - - // 如果成功删除数据,发送数据变化通知 - if (count > 0) { - if (deleteData) { - // 如果删除的是数据表记录,通知便签URI数据变化 - getContext().getContentResolver().notifyChange(Notes.CONTENT_NOTE_URI, null); - } - // 通知当前URI数据变化 - getContext().getContentResolver().notifyChange(uri, null); - } - return count; - } - - /** - * 更新数据 - * @param uri 要更新数据的URI - * @param values 更新的数据值 - * @param selection 更新条件,null表示无条件 - * @param selectionArgs 更新条件参数 - * @return 被更新的行数 - */ - @Override - public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { - int count = 0; - String id = null; - SQLiteDatabase db = mHelper.getWritableDatabase(); - boolean updateData = false; - - // 根据URI类型执行不同的更新操作 - switch (mMatcher.match(uri)) { - case URI_NOTE: - // 更新便签记录,增加版本号 - increaseNoteVersion(-1, selection, selectionArgs); - count = db.update(TABLE.NOTE, values, selection, selectionArgs); - break; - case URI_NOTE_ITEM: - // 更新单条便签记录,增加版本号 - id = uri.getPathSegments().get(1); - increaseNoteVersion(Long.valueOf(id), selection, selectionArgs); - count = db.update(TABLE.NOTE, values, NoteColumns.ID + "=" + id - + parseSelection(selection), selectionArgs); - break; - case URI_DATA: - // 更新数据记录 - count = db.update(TABLE.DATA, values, selection, selectionArgs); - updateData = true; - break; - case URI_DATA_ITEM: - // 更新单条数据记录 - id = uri.getPathSegments().get(1); - count = db.update(TABLE.DATA, values, DataColumns.ID + "=" + id - + parseSelection(selection), selectionArgs); - updateData = true; - break; - default: - throw new IllegalArgumentException("Unknown URI " + uri); - } - - // 如果成功更新数据,发送数据变化通知 - if (count > 0) { - if (updateData) { - // 如果更新的是数据表记录,通知便签URI数据变化 - getContext().getContentResolver().notifyChange(Notes.CONTENT_NOTE_URI, null); - } - // 通知当前URI数据变化 - getContext().getContentResolver().notifyChange(uri, null); - } - return count; - } - - /** - * 解析查询/更新条件 - * 将原始条件转换为SQL语句中的AND条件 - * @param selection 原始条件字符串 - * @return 格式化后的条件字符串 - */ - private String parseSelection(String selection) { - return (!TextUtils.isEmpty(selection) ? " AND (" + selection + ')' : ""); - } - - /** - * 增加便签版本号 - * 当便签被修改时,调用此方法增加版本号 - * @param id 便签ID,如果id>0则更新指定便签,否则更新所有匹配条件的便签 - * @param selection 更新条件 - * @param selectionArgs 更新条件参数 - */ - private void increaseNoteVersion(long id, String selection, String[] selectionArgs) { - StringBuilder sql = new StringBuilder(120); - sql.append("UPDATE "); - sql.append(TABLE.NOTE); - sql.append(" SET "); - sql.append(NoteColumns.VERSION); - sql.append("=" + NoteColumns.VERSION + "+1 "); - - // 构造WHERE子句 - if (id > 0 || !TextUtils.isEmpty(selection)) { - sql.append(" WHERE "); - } - if (id > 0) { - sql.append(NoteColumns.ID + "=" + String.valueOf(id)); - } - if (!TextUtils.isEmpty(selection)) { - String selectString = id > 0 ? parseSelection(selection) : selection; - // 替换预编译语句中的占位符 - for (String args : selectionArgs) { - selectString = selectString.replaceFirst("\\?", args); - } - sql.append(selectString); - } - - // 执行SQL语句更新版本号 - mHelper.getWritableDatabase().execSQL(sql.toString()); - } - - /** - * 返回指定URI的MIME类型 - * @param uri 要获取MIME类型的URI - * @return MIME类型字符串 - */ - @Override - public String getType(Uri uri) { - // TODO: 实现此方法,返回合适的MIME类型 - return null; - } -} \ No newline at end of file diff --git a/src/main/java/net/micode/notes/gtask/data/MetaData.java b/src/main/java/net/micode/notes/gtask/data/MetaData.java deleted file mode 100644 index 2a39a68..0000000 --- a/src/main/java/net/micode/notes/gtask/data/MetaData.java +++ /dev/null @@ -1,157 +0,0 @@ -/* - * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.micode.notes.gtask.data; - -import android.database.Cursor; -import android.util.Log; - -import net.micode.notes.tool.GTaskStringUtils; - -import org.json.JSONException; -import org.json.JSONObject; - -/** - * MetaData类是Task的子类,用于存储与Google Tasks同步相关的元数据信息。 - *

- * 该类主要用于在GTask同步过程中存储任务的关联信息,将元数据以JSON格式存储在 - * Task的notes字段中,并提供了相应的解析和访问方法。 - *

- */ -public class MetaData extends Task { - private final static String TAG = MetaData.class.getSimpleName(); - - /** - * 与当前元数据相关联的Google Task ID - */ - private String mRelatedGid = null; - - /** - * 设置元数据信息 - *

- * 将Google Task ID添加到元数据JSON对象中,并将其存储在Task的notes字段中。 - * 同时设置任务名称为元数据标识名称。 - *

- * - * @param gid 与元数据关联的Google Task ID - * @param metaInfo 包含元数据信息的JSON对象 - */ - public void setMeta(String gid, JSONObject metaInfo) { - try { - // 将关联的Google Task ID添加到元数据中 - metaInfo.put(GTaskStringUtils.META_HEAD_GTASK_ID, gid); - } catch (JSONException e) { - Log.e(TAG, "failed to put related gid"); - } - // 将元数据JSON对象转换为字符串并存储在notes字段中 - setNotes(metaInfo.toString()); - // 设置任务名称为元数据标识名称 - setName(GTaskStringUtils.META_NOTE_NAME); - } - - /** - * 获取与当前元数据相关联的Google Task ID - * - * @return 关联的Google Task ID,如果没有则返回null - */ - public String getRelatedGid() { - return mRelatedGid; - } - - /** - * 判断当前元数据是否值得保存 - *

- * 只有当notes字段不为null时,元数据才值得保存 - *

- * - * @return 如果notes字段不为null则返回true,否则返回false - */ - @Override - public boolean isWorthSaving() { - return getNotes() != null; - } - - /** - * 从远程JSON数据设置内容 - *

- * 从远程获取的JSON数据中解析元信息,并提取关联的Google Task ID - *

- * - * @param js 包含远程数据的JSON对象 - */ - @Override - public void setContentByRemoteJSON(JSONObject js) { - // 调用父类方法设置基本内容 - super.setContentByRemoteJSON(js); - // 如果notes字段不为null,则解析元数据 - if (getNotes() != null) { - try { - // 解析notes字段中的JSON元数据 - JSONObject metaInfo = new JSONObject(getNotes().trim()); - // 提取关联的Google Task ID - mRelatedGid = metaInfo.getString(GTaskStringUtils.META_HEAD_GTASK_ID); - } catch (JSONException e) { - Log.w(TAG, "failed to get related gid"); - mRelatedGid = null; - } - } - } - - /** - * 从本地JSON数据设置内容(不支持) - *

- * 该方法不应该被调用,因为MetaData主要用于处理远程同步数据 - *

- * - * @param js 本地JSON对象 - * @throws IllegalAccessError 总是抛出此异常,表示该方法不应该被调用 - */ - @Override - public void setContentByLocalJSON(JSONObject js) { - // 此方法不应该被调用 - throw new IllegalAccessError("MetaData:setContentByLocalJSON should not be called"); - } - - /** - * 从内容获取本地JSON数据(不支持) - *

- * 该方法不应该被调用,因为MetaData主要用于处理远程同步数据 - *

- * - * @return 本地JSON对象 - * @throws IllegalAccessError 总是抛出此异常,表示该方法不应该被调用 - */ - @Override - public JSONObject getLocalJSONFromContent() { - throw new IllegalAccessError("MetaData:getLocalJSONFromContent should not be called"); - } - - /** - * 获取同步操作(不支持) - *

- * 该方法不应该被调用,因为MetaData主要用于处理远程同步数据 - *

- * - * @param c 本地数据库游标 - * @return 同步操作类型 - * @throws IllegalAccessError 总是抛出此异常,表示该方法不应该被调用 - */ - @Override - public int getSyncAction(Cursor c) { - throw new IllegalAccessError("MetaData:getSyncAction should not be called"); - } - -} diff --git a/src/main/java/net/micode/notes/gtask/data/Node.java b/src/main/java/net/micode/notes/gtask/data/Node.java deleted file mode 100644 index dea45d5..0000000 --- a/src/main/java/net/micode/notes/gtask/data/Node.java +++ /dev/null @@ -1,223 +0,0 @@ -/* - * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.micode.notes.gtask.data; - -import android.database.Cursor; - -import org.json.JSONObject; - -/** - * Node类是GTask同步系统中的抽象基类,定义了同步节点的基本属性和操作接口。 - *

- * 该类为所有参与GTask同步的实体(如Task、TaskList等)提供了统一的接口和基础属性, - * 包括唯一标识符、名称、最后修改时间、删除状态等,并定义了同步操作所需的抽象方法。 - *

- */ -public abstract class Node { - /** - * 同步操作:无操作 - */ - public static final int SYNC_ACTION_NONE = 0; - - /** - * 同步操作:向远程添加节点 - */ - public static final int SYNC_ACTION_ADD_REMOTE = 1; - - /** - * 同步操作:向本地添加节点 - */ - public static final int SYNC_ACTION_ADD_LOCAL = 2; - - /** - * 同步操作:从远程删除节点 - */ - public static final int SYNC_ACTION_DEL_REMOTE = 3; - - /** - * 同步操作:从本地删除节点 - */ - public static final int SYNC_ACTION_DEL_LOCAL = 4; - - /** - * 同步操作:更新远程节点 - */ - public static final int SYNC_ACTION_UPDATE_REMOTE = 5; - - /** - * 同步操作:更新本地节点 - */ - public static final int SYNC_ACTION_UPDATE_LOCAL = 6; - - /** - * 同步操作:更新冲突(本地和远程都有修改) - */ - public static final int SYNC_ACTION_UPDATE_CONFLICT = 7; - - /** - * 同步操作:同步错误 - */ - public static final int SYNC_ACTION_ERROR = 8; - - /** - * 节点的唯一标识符(Google Task ID) - */ - private String mGid; - - /** - * 节点的名称 - */ - private String mName; - - /** - * 节点的最后修改时间戳 - */ - private long mLastModified; - - /** - * 节点的删除状态 - */ - private boolean mDeleted; - - /** - * 构造函数,初始化节点的默认值 - */ - public Node() { - mGid = null; - mName = ""; - mLastModified = 0; - mDeleted = false; - } - - /** - * 获取创建节点的同步操作JSON对象 - * - * @param actionId 操作ID - * @return 创建操作的JSON对象 - */ - public abstract JSONObject getCreateAction(int actionId); - - /** - * 获取更新节点的同步操作JSON对象 - * - * @param actionId 操作ID - * @return 更新操作的JSON对象 - */ - public abstract JSONObject getUpdateAction(int actionId); - - /** - * 从远程JSON数据设置节点内容 - * - * @param js 包含远程数据的JSON对象 - */ - public abstract void setContentByRemoteJSON(JSONObject js); - - /** - * 从本地JSON数据设置节点内容 - * - * @param js 包含本地数据的JSON对象 - */ - public abstract void setContentByLocalJSON(JSONObject js); - - /** - * 从节点内容获取本地JSON数据 - * - * @return 包含本地数据的JSON对象 - */ - public abstract JSONObject getLocalJSONFromContent(); - - /** - * 根据本地数据库游标获取同步操作类型 - * - * @param c 本地数据库游标 - * @return 同步操作类型(参考SYNC_ACTION_*常量) - */ - public abstract int getSyncAction(Cursor c); - - /** - * 设置节点的唯一标识符 - * - * @param gid 节点的唯一标识符(Google Task ID) - */ - public void setGid(String gid) { - this.mGid = gid; - } - - /** - * 设置节点的名称 - * - * @param name 节点的名称 - */ - public void setName(String name) { - this.mName = name; - } - - /** - * 设置节点的最后修改时间戳 - * - * @param lastModified 最后修改时间戳 - */ - public void setLastModified(long lastModified) { - this.mLastModified = lastModified; - } - - /** - * 设置节点的删除状态 - * - * @param deleted 是否删除 - */ - public void setDeleted(boolean deleted) { - this.mDeleted = deleted; - } - - /** - * 获取节点的唯一标识符 - * - * @return 节点的唯一标识符(Google Task ID) - */ - public String getGid() { - return this.mGid; - } - - /** - * 获取节点的名称 - * - * @return 节点的名称 - */ - public String getName() { - return this.mName; - } - - /** - * 获取节点的最后修改时间戳 - * - * @return 最后修改时间戳 - */ - public long getLastModified() { - return this.mLastModified; - } - - /** - * 获取节点的删除状态 - * - * @return 是否删除 - */ - public boolean getDeleted() { - return this.mDeleted; - } - -} diff --git a/src/main/java/net/micode/notes/gtask/data/SqlData.java b/src/main/java/net/micode/notes/gtask/data/SqlData.java deleted file mode 100644 index 3d537ca..0000000 --- a/src/main/java/net/micode/notes/gtask/data/SqlData.java +++ /dev/null @@ -1,337 +0,0 @@ -/* - * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.micode.notes.gtask.data; - -import android.content.ContentResolver; -import android.content.ContentUris; -import android.content.ContentValues; -import android.content.Context; -import android.database.Cursor; -import android.net.Uri; -import android.util.Log; - -import net.micode.notes.data.Notes; -import net.micode.notes.data.Notes.DataColumns; -import net.micode.notes.data.Notes.DataConstants; -import net.micode.notes.data.Notes.NoteColumns; -import net.micode.notes.data.NotesDatabaseHelper.TABLE; -import net.micode.notes.gtask.exception.ActionFailureException; - -import org.json.JSONException; -import org.json.JSONObject; - - -/** - * SqlData类是小米笔记应用中GTask同步模块的核心数据处理类,负责本地SQL数据的CRUD操作。CRUD 是数据库操作的四种基本功能缩写: - -- C(Create):创建新笔记数据 -- R(Read):读取现有笔记数据 -- U(Update):更新笔记数据 -- D(Delete):删除笔记数据 - *

- * 在Notes与Google Tasks的同步过程中,该类扮演着桥梁角色: - * 1. 接收并解析来自GTask的JSON格式数据 - * 2. 将数据转换为本地数据库可存储的格式 - * 3. 通过ContentResolver与本地ContentProvider交互,执行数据的插入、更新和删除操作 - * 4. 支持数据差异跟踪,仅提交修改的字段以优化性能 - * 5. 提供版本验证机制,避免同步冲突 - *

- *

- * 该类是同步流程中的关键组件,确保本地笔记数据与Google Tasks之间的数据一致性和完整性。 - *

- */ -public class SqlData { - private static final String TAG = SqlData.class.getSimpleName(); - - /** - * 无效ID常量,用于标记未初始化或无效的数据ID - * 在同步过程中用于区分新创建的数据和已存在的数据 - */ - private static final int INVALID_ID = -99999; - - /** - * 数据库查询投影列,定义了从数据库中获取的数据字段 - * 包含数据ID、MIME类型、内容以及扩展字段DATA1和DATA3 - */ - public static final String[] PROJECTION_DATA = new String[] { - DataColumns.ID, DataColumns.MIME_TYPE, DataColumns.CONTENT, DataColumns.DATA1, - DataColumns.DATA3 - }; - - /** - * 数据ID列在投影中的索引位置 - */ - public static final int DATA_ID_COLUMN = 0; - - /** - * 数据MIME类型列在投影中的索引位置 - * 用于区分不同类型的数据(如文本笔记、通话记录等) - */ - public static final int DATA_MIME_TYPE_COLUMN = 1; - - /** - * 数据内容列在投影中的索引位置 - * 存储笔记的主要内容 - */ - public static final int DATA_CONTENT_COLUMN = 2; - - /** - * 数据内容DATA1字段在投影中的索引位置 - * 用于存储整数类型的扩展数据(如笔记模式、通话日期等) - */ - public static final int DATA_CONTENT_DATA_1_COLUMN = 3; - - /** - * 数据内容DATA3字段在投影中的索引位置 - * 用于存储字符串类型的扩展数据(如电话号码等) - */ - public static final int DATA_CONTENT_DATA_3_COLUMN = 4; - - /** - * 用于访问ContentProvider的ContentResolver实例 - * 是与本地数据库交互的核心接口 - */ - private ContentResolver mContentResolver; - - /** - * 标记是否为新建数据 - * true表示该数据需要插入数据库,false表示需要更新数据库 - */ - private boolean mIsCreate; - - /** - * 数据ID - * 唯一标识数据库中的数据记录 - */ - private long mDataId; - - /** - * 数据MIME类型 - * 定义数据的类型,如文本笔记(DataConstants.NOTE)或通话记录 - */ - private String mDataMimeType; - - /** - * 数据内容 - * 存储笔记的主要文本内容 - */ - private String mDataContent; - - /** - * 数据内容的DATA1字段 - * 根据MIME类型不同存储不同的整数数据,如: - * - 对于文本笔记:存储笔记模式(普通模式或 checklist 模式) - * - 对于通话记录:存储通话日期 - */ - private long mDataContentData1; - - /** - * 数据内容的DATA3字段 - * 根据MIME类型不同存储不同的字符串数据,如: - * - 对于通话记录:存储电话号码 - */ - private String mDataContentData3; - - /** - * 用于跟踪数据变化的ContentValues对象 - * 只包含已修改的字段,用于优化数据库更新操作 - */ - private ContentValues mDiffDataValues; - - /** - * 构造函数,用于创建新的SqlData实例(用于插入新数据) - *

- * 初始化所有字段为默认值,并将mIsCreate标记设置为true - *

- * - * @param context 上下文对象,用于获取ContentResolver实例 - */ - public SqlData(Context context) { - mContentResolver = context.getContentResolver(); - mIsCreate = true; - mDataId = INVALID_ID; - mDataMimeType = DataConstants.NOTE; - mDataContent = ""; - mDataContentData1 = 0; - mDataContentData3 = ""; - mDiffDataValues = new ContentValues(); - } - - /** - * 构造函数,用于从数据库Cursor加载SqlData实例(用于更新现有数据) - *

- * 从Cursor中读取数据并初始化所有字段,将mIsCreate标记设置为false - *

- * - * @param context 上下文对象,用于获取ContentResolver实例 - * @param c 数据库Cursor对象,包含要加载的数据记录 - */ - public SqlData(Context context, Cursor c) { - mContentResolver = context.getContentResolver(); - mIsCreate = false; - loadFromCursor(c); - mDiffDataValues = new ContentValues(); - } - - /** - * 从数据库Cursor中加载数据到当前SqlData实例 - *

- * 根据PROJECTION_DATA中定义的列顺序,从Cursor中读取对应字段的值 - *

- * - * @param c 包含数据的Cursor对象,必须指向有效的数据行 - */ - private void loadFromCursor(Cursor c) { - mDataId = c.getLong(DATA_ID_COLUMN); - mDataMimeType = c.getString(DATA_MIME_TYPE_COLUMN); - mDataContent = c.getString(DATA_CONTENT_COLUMN); - mDataContentData1 = c.getLong(DATA_CONTENT_DATA_1_COLUMN); - mDataContentData3 = c.getString(DATA_CONTENT_DATA_3_COLUMN); - } - - /** - * 从JSON对象设置数据内容,并跟踪数据变化 - *

- * 该方法是同步过程中的关键方法,用于将从GTask获取的JSON数据转换为本地数据格式 - * 同时会跟踪数据变化,仅将修改的字段记录到mDiffDataValues中 - *

- * - * @param js 包含GTask数据的JSON对象 - * @throws JSONException 如果JSON解析失败 - */ - public void setContent(JSONObject js) throws JSONException { - long dataId = js.has(DataColumns.ID) ? js.getLong(DataColumns.ID) : INVALID_ID; - if (mIsCreate || mDataId != dataId) { - mDiffDataValues.put(DataColumns.ID, dataId); - } - mDataId = dataId; - - String dataMimeType = js.has(DataColumns.MIME_TYPE) ? js.getString(DataColumns.MIME_TYPE) - : DataConstants.NOTE; - if (mIsCreate || !mDataMimeType.equals(dataMimeType)) { - mDiffDataValues.put(DataColumns.MIME_TYPE, dataMimeType); - } - mDataMimeType = dataMimeType; - - String dataContent = js.has(DataColumns.CONTENT) ? js.getString(DataColumns.CONTENT) : ""; - if (mIsCreate || !mDataContent.equals(dataContent)) { - mDiffDataValues.put(DataColumns.CONTENT, dataContent); - } - mDataContent = dataContent; - - long dataContentData1 = js.has(DataColumns.DATA1) ? js.getLong(DataColumns.DATA1) : 0; - if (mIsCreate || mDataContentData1 != dataContentData1) { - mDiffDataValues.put(DataColumns.DATA1, dataContentData1); - } - mDataContentData1 = dataContentData1; - - String dataContentData3 = js.has(DataColumns.DATA3) ? js.getString(DataColumns.DATA3) : ""; - if (mIsCreate || !mDataContentData3.equals(dataContentData3)) { - mDiffDataValues.put(DataColumns.DATA3, dataContentData3); - } - mDataContentData3 = dataContentData3; - } - - /** - * 获取当前数据的JSON表示 - *

- * 将本地数据转换为JSON格式,用于与GTask进行数据交换 - * 注意:只有已提交到数据库的数据才能获取JSON表示 - *

- * - * @return 包含当前数据的JSON对象,如果数据未提交到数据库则返回null - * @throws JSONException 如果JSON构建失败 - */ - public JSONObject getContent() throws JSONException { - if (mIsCreate) { - Log.e(TAG, "it seems that we haven't created this in database yet"); - return null; - } - JSONObject js = new JSONObject(); - js.put(DataColumns.ID, mDataId); - js.put(DataColumns.MIME_TYPE, mDataMimeType); - js.put(DataColumns.CONTENT, mDataContent); - js.put(DataColumns.DATA1, mDataContentData1); - js.put(DataColumns.DATA3, mDataContentData3); - return js; - } - - /** - * 将数据提交到本地数据库 - *

- * 这是SqlData类的核心方法,根据mIsCreate标记执行插入或更新操作: - * 1. 如果是新数据(mIsCreate=true),执行插入操作 - * 2. 如果是现有数据(mIsCreate=false),仅当有数据变化时执行更新操作 - * 3. 支持版本验证机制,避免在同步过程中出现数据冲突 - *

- * - * @param noteId 所属的Note ID,用于关联到具体的笔记 - * @param validateVersion 是否验证版本,true表示需要进行版本检查 - * @param version 版本号,用于版本验证 - * @throws ActionFailureException 如果数据提交失败 - */ - public void commit(long noteId, boolean validateVersion, long version) { - - if (mIsCreate) { - if (mDataId == INVALID_ID && mDiffDataValues.containsKey(DataColumns.ID)) { - mDiffDataValues.remove(DataColumns.ID); - } - - mDiffDataValues.put(DataColumns.NOTE_ID, noteId); - Uri uri = mContentResolver.insert(Notes.CONTENT_DATA_URI, mDiffDataValues); - try { - mDataId = Long.valueOf(uri.getPathSegments().get(1)); - } catch (NumberFormatException e) { - Log.e(TAG, "Get note id error :" + e.toString()); - throw new ActionFailureException("create note failed"); - } - } else { - if (mDiffDataValues.size() > 0) { - int result = 0; - if (!validateVersion) { - result = mContentResolver.update(ContentUris.withAppendedId( - Notes.CONTENT_DATA_URI, mDataId), mDiffDataValues, null, null); - } else { - result = mContentResolver.update(ContentUris.withAppendedId( - Notes.CONTENT_DATA_URI, mDataId), mDiffDataValues, - " ? in (SELECT " + NoteColumns.ID + " FROM " + TABLE.NOTE - + " WHERE " + NoteColumns.VERSION + "=?)", new String[] { - String.valueOf(noteId), String.valueOf(version) - }); - } - if (result == 0) { - Log.w(TAG, "there is no update. maybe user updates note when syncing"); - } - } - } - - mDiffDataValues.clear(); - mIsCreate = false; - } - - /** - * 获取数据ID - *

- * 返回当前数据的唯一标识符,用于在数据库中定位该记录 - *

- * - * @return 数据ID,如果数据未提交到数据库则返回INVALID_ID - */ - public long getId() { - return mDataId; - } -} diff --git a/src/main/java/net/micode/notes/gtask/data/SqlNote.java b/src/main/java/net/micode/notes/gtask/data/SqlNote.java deleted file mode 100644 index ad39ff5..0000000 --- a/src/main/java/net/micode/notes/gtask/data/SqlNote.java +++ /dev/null @@ -1,714 +0,0 @@ -/* - * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.micode.notes.gtask.data; - -import android.appwidget.AppWidgetManager; -import android.content.ContentResolver; -import android.content.ContentValues; -import android.content.Context; -import android.database.Cursor; -import android.net.Uri; -import android.util.Log; - -import net.micode.notes.data.Notes; -import net.micode.notes.data.Notes.DataColumns; -import net.micode.notes.data.Notes.NoteColumns; -import net.micode.notes.gtask.exception.ActionFailureException; -import net.micode.notes.tool.GTaskStringUtils; -import net.micode.notes.tool.ResourceParser; - -import org.json.JSONArray; -import org.json.JSONException; -import org.json.JSONObject; - -import java.util.ArrayList; - - -/** - * SqlNote类是小米笔记应用中GTask同步模块的核心类,负责本地笔记数据的CRUD操作。 - *

- * 在Notes与Google Tasks的同步过程中,该类扮演着重要角色: - * 1. 封装本地笔记数据模型,支持笔记和文件夹两种类型 - * 2. 通过ContentResolver与本地ContentProvider交互,执行数据的插入、更新和删除操作 - * 3. 支持将JSON格式的GTask数据转换为本地数据模型 - * 4. 支持将本地数据模型转换为JSON格式以便与GTask同步 - * 5. 实现数据差异跟踪,仅提交修改的字段以优化性能 - * 6. 提供版本验证机制,避免同步冲突 - *

- */ -public class SqlNote { - private static final String TAG = SqlNote.class.getSimpleName(); - - /** - * 无效的ID值,用于初始化和错误检查 - */ - private static final int INVALID_ID = -99999; - -/** - * 查询笔记时使用的投影列,包含笔记的所有核心字段 - */ - public static final String[] PROJECTION_NOTE = 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.SYNC_ID, - NoteColumns.LOCAL_MODIFIED, NoteColumns.ORIGIN_PARENT_ID, NoteColumns.GTASK_ID, - NoteColumns.VERSION - }; - -/** - * 投影列索引:笔记ID - */ - public static final int ID_COLUMN = 0; - - /** - * 投影列索引:提醒日期 - */ - public static final int ALERTED_DATE_COLUMN = 1; - - /** - * 投影列索引:背景颜色ID - */ - public static final int BG_COLOR_ID_COLUMN = 2; - - /** - * 投影列索引:创建日期 - */ - public static final int CREATED_DATE_COLUMN = 3; - - /** - * 投影列索引:是否有附件 - */ - public static final int HAS_ATTACHMENT_COLUMN = 4; - - /** - * 投影列索引:修改日期 - */ - public static final int MODIFIED_DATE_COLUMN = 5; - - /** - * 投影列索引:笔记数量 - */ - public static final int NOTES_COUNT_COLUMN = 6; - - /** - * 投影列索引:父文件夹ID - */ - public static final int PARENT_ID_COLUMN = 7; - - /** - * 投影列索引:笔记摘要 - */ - public static final int SNIPPET_COLUMN = 8; - - /** - * 投影列索引:笔记类型(笔记或文件夹) - */ - public static final int TYPE_COLUMN = 9; - - /** - * 投影列索引:小部件ID - */ - public static final int WIDGET_ID_COLUMN = 10; - - /** - * 投影列索引:小部件类型 - */ - public static final int WIDGET_TYPE_COLUMN = 11; - - /** - * 投影列索引:同步ID - */ - public static final int SYNC_ID_COLUMN = 12; - - /** - * 投影列索引:本地修改标记 - */ - public static final int LOCAL_MODIFIED_COLUMN = 13; - - /** - * 投影列索引:原始父文件夹ID - */ - public static final int ORIGIN_PARENT_ID_COLUMN = 14; - - /** - * 投影列索引:Google Task ID - */ - public static final int GTASK_ID_COLUMN = 15; - - /** - * 投影列索引:版本号 - */ - public static final int VERSION_COLUMN = 16; - - /** - * 上下文对象,用于访问系统服务 - */ - private Context mContext; - - /** - * ContentResolver对象,用于与ContentProvider交互 - */ - private ContentResolver mContentResolver; - - /** - * 标记是否为新创建的笔记 - */ - private boolean mIsCreate; - - /** - * 笔记ID - */ - private long mId; - - /** - * 提醒日期 - */ - private long mAlertDate; - - /** - * 背景颜色ID - */ - private int mBgColorId; - - /** - * 创建日期 - */ - private long mCreatedDate; - - /** - * 是否有附件(0:无,1:有) - */ - private int mHasAttachment; - - /** - * 修改日期 - */ - private long mModifiedDate; - - /** - * 父文件夹ID - */ - private long mParentId; - - /** - * 笔记摘要 - */ - private String mSnippet; - - /** - * 笔记类型(笔记或文件夹) - */ - private int mType; - - /** - * 小部件ID - */ - private int mWidgetId; - - /** - * 小部件类型 - */ - private int mWidgetType; - - /** - * 原始父文件夹ID - */ - private long mOriginParent; - - /** - * 版本号,用于避免同步冲突 - */ - private long mVersion; - - /** - * 记录笔记数据的变更,仅提交修改的字段以优化性能 - */ - private ContentValues mDiffNoteValues; - - /** - * 笔记内容列表,每个SqlData对象代表笔记的一个内容部分 - */ - private ArrayList mDataList; - -/** - * 构造函数,创建一个新的SqlNote对象 - * - * @param context 上下文对象 - */ - public SqlNote(Context context) { - mContext = context; - mContentResolver = context.getContentResolver(); - mIsCreate = true; - mId = INVALID_ID; - mAlertDate = 0; - mBgColorId = ResourceParser.getDefaultBgId(context); - mCreatedDate = System.currentTimeMillis(); - mHasAttachment = 0; - mModifiedDate = System.currentTimeMillis(); - mParentId = 0; - mSnippet = ""; - mType = Notes.TYPE_NOTE; - mWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID; - mWidgetType = Notes.TYPE_WIDGET_INVALIDE; - mOriginParent = 0; - mVersion = 0; - mDiffNoteValues = new ContentValues(); - mDataList = new ArrayList(); - } - -/** - * 构造函数,从Cursor对象创建SqlNote对象 - * - * @param context 上下文对象 - * @param c Cursor对象,包含笔记数据 - */ - public SqlNote(Context context, Cursor c) { - mContext = context; - mContentResolver = context.getContentResolver(); - mIsCreate = false; - loadFromCursor(c); - mDataList = new ArrayList(); - if (mType == Notes.TYPE_NOTE) - loadDataContent(); - mDiffNoteValues = new ContentValues(); - } - -/** - * 构造函数,根据ID从数据库加载SqlNote对象 - * - * @param context 上下文对象 - * @param id 笔记ID - */ - public SqlNote(Context context, long id) { - mContext = context; - mContentResolver = context.getContentResolver(); - mIsCreate = false; - loadFromCursor(id); - mDataList = new ArrayList(); - if (mType == Notes.TYPE_NOTE) - loadDataContent(); - mDiffNoteValues = new ContentValues(); - - } - -/** - * 根据ID从数据库加载笔记数据 - * - * @param id 笔记ID - */ - private void loadFromCursor(long id) { - Cursor c = null; - try { - c = mContentResolver.query(Notes.CONTENT_NOTE_URI, PROJECTION_NOTE, "(_id=?)", - new String[] { - String.valueOf(id) - }, null); - if (c != null) { - c.moveToNext(); - loadFromCursor(c); - } else { - Log.w(TAG, "loadFromCursor: cursor = null"); - } - } finally { - if (c != null) - c.close(); - } - } - -/** - * 从Cursor对象加载笔记数据 - * - * @param c Cursor对象,包含笔记数据 - */ - private void loadFromCursor(Cursor c) { - mId = c.getLong(ID_COLUMN); - mAlertDate = c.getLong(ALERTED_DATE_COLUMN); - mBgColorId = c.getInt(BG_COLOR_ID_COLUMN); - mCreatedDate = c.getLong(CREATED_DATE_COLUMN); - mHasAttachment = c.getInt(HAS_ATTACHMENT_COLUMN); - mModifiedDate = c.getLong(MODIFIED_DATE_COLUMN); - mParentId = c.getLong(PARENT_ID_COLUMN); - mSnippet = c.getString(SNIPPET_COLUMN); - mType = c.getInt(TYPE_COLUMN); - mWidgetId = c.getInt(WIDGET_ID_COLUMN); - mWidgetType = c.getInt(WIDGET_TYPE_COLUMN); - mVersion = c.getLong(VERSION_COLUMN); - } - -/** - * 加载笔记的内容数据 - */ - private void loadDataContent() { - Cursor c = null; - mDataList.clear(); - try { - c = mContentResolver.query(Notes.CONTENT_DATA_URI, SqlData.PROJECTION_DATA, - "(note_id=?)", new String[] { - String.valueOf(mId) - }, null); - if (c != null) { - if (c.getCount() == 0) { - Log.w(TAG, "it seems that the note has not data"); - return; - } - while (c.moveToNext()) { - SqlData data = new SqlData(mContext, c); - mDataList.add(data); - } - } else { - Log.w(TAG, "loadDataContent: cursor = null"); - } - } finally { - if (c != null) - c.close(); - } - } - -/** - * 从JSON对象设置笔记内容 - * - * @param js JSON对象,包含GTask格式的笔记数据 - * @return 设置成功返回true,否则返回false - */ - public boolean setContent(JSONObject js) { - try { - JSONObject note = js.getJSONObject(GTaskStringUtils.META_HEAD_NOTE); - if (note.getInt(NoteColumns.TYPE) == Notes.TYPE_SYSTEM) { - Log.w(TAG, "cannot set system folder"); - } else if (note.getInt(NoteColumns.TYPE) == Notes.TYPE_FOLDER) { - // for folder we can only update the snnipet and type - String snippet = note.has(NoteColumns.SNIPPET) ? note - .getString(NoteColumns.SNIPPET) : ""; - if (mIsCreate || !mSnippet.equals(snippet)) { - mDiffNoteValues.put(NoteColumns.SNIPPET, snippet); - } - mSnippet = snippet; - - int type = note.has(NoteColumns.TYPE) ? note.getInt(NoteColumns.TYPE) - : Notes.TYPE_NOTE; - if (mIsCreate || mType != type) { - mDiffNoteValues.put(NoteColumns.TYPE, type); - } - mType = type; - } else if (note.getInt(NoteColumns.TYPE) == Notes.TYPE_NOTE) { - JSONArray dataArray = js.getJSONArray(GTaskStringUtils.META_HEAD_DATA); - long id = note.has(NoteColumns.ID) ? note.getLong(NoteColumns.ID) : INVALID_ID; - if (mIsCreate || mId != id) { - mDiffNoteValues.put(NoteColumns.ID, id); - } - mId = id; - - long alertDate = note.has(NoteColumns.ALERTED_DATE) ? note - .getLong(NoteColumns.ALERTED_DATE) : 0; - if (mIsCreate || mAlertDate != alertDate) { - mDiffNoteValues.put(NoteColumns.ALERTED_DATE, alertDate); - } - mAlertDate = alertDate; - - int bgColorId = note.has(NoteColumns.BG_COLOR_ID) ? note - .getInt(NoteColumns.BG_COLOR_ID) : ResourceParser.getDefaultBgId(mContext); - if (mIsCreate || mBgColorId != bgColorId) { - mDiffNoteValues.put(NoteColumns.BG_COLOR_ID, bgColorId); - } - mBgColorId = bgColorId; - - long createDate = note.has(NoteColumns.CREATED_DATE) ? note - .getLong(NoteColumns.CREATED_DATE) : System.currentTimeMillis(); - if (mIsCreate || mCreatedDate != createDate) { - mDiffNoteValues.put(NoteColumns.CREATED_DATE, createDate); - } - mCreatedDate = createDate; - - int hasAttachment = note.has(NoteColumns.HAS_ATTACHMENT) ? note - .getInt(NoteColumns.HAS_ATTACHMENT) : 0; - if (mIsCreate || mHasAttachment != hasAttachment) { - mDiffNoteValues.put(NoteColumns.HAS_ATTACHMENT, hasAttachment); - } - mHasAttachment = hasAttachment; - - long modifiedDate = note.has(NoteColumns.MODIFIED_DATE) ? note - .getLong(NoteColumns.MODIFIED_DATE) : System.currentTimeMillis(); - if (mIsCreate || mModifiedDate != modifiedDate) { - mDiffNoteValues.put(NoteColumns.MODIFIED_DATE, modifiedDate); - } - mModifiedDate = modifiedDate; - - long parentId = note.has(NoteColumns.PARENT_ID) ? note - .getLong(NoteColumns.PARENT_ID) : 0; - if (mIsCreate || mParentId != parentId) { - mDiffNoteValues.put(NoteColumns.PARENT_ID, parentId); - } - mParentId = parentId; - - String snippet = note.has(NoteColumns.SNIPPET) ? note - .getString(NoteColumns.SNIPPET) : ""; - if (mIsCreate || !mSnippet.equals(snippet)) { - mDiffNoteValues.put(NoteColumns.SNIPPET, snippet); - } - mSnippet = snippet; - - int type = note.has(NoteColumns.TYPE) ? note.getInt(NoteColumns.TYPE) - : Notes.TYPE_NOTE; - if (mIsCreate || mType != type) { - mDiffNoteValues.put(NoteColumns.TYPE, type); - } - mType = type; - - int widgetId = note.has(NoteColumns.WIDGET_ID) ? note.getInt(NoteColumns.WIDGET_ID) - : AppWidgetManager.INVALID_APPWIDGET_ID; - if (mIsCreate || mWidgetId != widgetId) { - mDiffNoteValues.put(NoteColumns.WIDGET_ID, widgetId); - } - mWidgetId = widgetId; - - int widgetType = note.has(NoteColumns.WIDGET_TYPE) ? note - .getInt(NoteColumns.WIDGET_TYPE) : Notes.TYPE_WIDGET_INVALIDE; - if (mIsCreate || mWidgetType != widgetType) { - mDiffNoteValues.put(NoteColumns.WIDGET_TYPE, widgetType); - } - mWidgetType = widgetType; - - long originParent = note.has(NoteColumns.ORIGIN_PARENT_ID) ? note - .getLong(NoteColumns.ORIGIN_PARENT_ID) : 0; - if (mIsCreate || mOriginParent != originParent) { - mDiffNoteValues.put(NoteColumns.ORIGIN_PARENT_ID, originParent); - } - mOriginParent = originParent; - - for (int i = 0; i < dataArray.length(); i++) { - JSONObject data = dataArray.getJSONObject(i); - SqlData sqlData = null; - if (data.has(DataColumns.ID)) { - long dataId = data.getLong(DataColumns.ID); - for (SqlData temp : mDataList) { - if (dataId == temp.getId()) { - sqlData = temp; - } - } - } - - if (sqlData == null) { - sqlData = new SqlData(mContext); - mDataList.add(sqlData); - } - - sqlData.setContent(data); - } - } - } catch (JSONException e) { - Log.e(TAG, e.toString()); - e.printStackTrace(); - return false; - } - return true; - } - -/** - * 获取笔记内容的JSON表示 - * - * @return 包含笔记数据的JSON对象,如果获取失败返回null - */ - public JSONObject getContent() { - try { - JSONObject js = new JSONObject(); - - if (mIsCreate) { - Log.e(TAG, "it seems that we haven't created this in database yet"); - return null; - } - - JSONObject note = new JSONObject(); - if (mType == Notes.TYPE_NOTE) { - note.put(NoteColumns.ID, mId); - note.put(NoteColumns.ALERTED_DATE, mAlertDate); - note.put(NoteColumns.BG_COLOR_ID, mBgColorId); - note.put(NoteColumns.CREATED_DATE, mCreatedDate); - note.put(NoteColumns.HAS_ATTACHMENT, mHasAttachment); - note.put(NoteColumns.MODIFIED_DATE, mModifiedDate); - note.put(NoteColumns.PARENT_ID, mParentId); - note.put(NoteColumns.SNIPPET, mSnippet); - note.put(NoteColumns.TYPE, mType); - note.put(NoteColumns.WIDGET_ID, mWidgetId); - note.put(NoteColumns.WIDGET_TYPE, mWidgetType); - note.put(NoteColumns.ORIGIN_PARENT_ID, mOriginParent); - js.put(GTaskStringUtils.META_HEAD_NOTE, note); - - JSONArray dataArray = new JSONArray(); - for (SqlData sqlData : mDataList) { - JSONObject data = sqlData.getContent(); - if (data != null) { - dataArray.put(data); - } - } - js.put(GTaskStringUtils.META_HEAD_DATA, dataArray); - } else if (mType == Notes.TYPE_FOLDER || mType == Notes.TYPE_SYSTEM) { - note.put(NoteColumns.ID, mId); - note.put(NoteColumns.TYPE, mType); - note.put(NoteColumns.SNIPPET, mSnippet); - js.put(GTaskStringUtils.META_HEAD_NOTE, note); - } - - return js; - } catch (JSONException e) { - Log.e(TAG, e.toString()); - e.printStackTrace(); - } - return null; - } - -/** - * 设置笔记的父文件夹ID - * - * @param id 父文件夹ID - */ - public void setParentId(long id) { - mParentId = id; - mDiffNoteValues.put(NoteColumns.PARENT_ID, id); - } - -/** - * 设置笔记的Google Task ID - * - * @param gid Google Task ID - */ - public void setGtaskId(String gid) { - mDiffNoteValues.put(NoteColumns.GTASK_ID, gid); - } - -/** - * 设置笔记的同步ID - * - * @param syncId 同步ID - */ - public void setSyncId(long syncId) { - mDiffNoteValues.put(NoteColumns.SYNC_ID, syncId); - } - -/** - * 重置本地修改标记 - */ - public void resetLocalModified() { - mDiffNoteValues.put(NoteColumns.LOCAL_MODIFIED, 0); - } - -/** - * 获取笔记ID - * - * @return 笔记ID - */ - public long getId() { - return mId; - } - -/** - * 获取父文件夹ID - * - * @return 父文件夹ID - */ - public long getParentId() { - return mParentId; - } - -/** - * 获取笔记摘要 - * - * @return 笔记摘要 - */ - public String getSnippet() { - return mSnippet; - } - -/** - * 判断是否为笔记类型(非文件夹类型) - * - * @return 是笔记类型返回true,否则返回false - */ - public boolean isNoteType() { - return mType == Notes.TYPE_NOTE; - } - -/** - * 将笔记数据提交到本地数据库 - * - * @param validateVersion 是否验证版本,true表示需要进行版本检查以避免冲突 - * @throws ActionFailureException 如果创建笔记失败 - * @throws IllegalStateException 如果更新笔记时ID无效 - */ - public void commit(boolean validateVersion) { - if (mIsCreate) { - if (mId == INVALID_ID && mDiffNoteValues.containsKey(NoteColumns.ID)) { - mDiffNoteValues.remove(NoteColumns.ID); - } - - Uri uri = mContentResolver.insert(Notes.CONTENT_NOTE_URI, mDiffNoteValues); - try { - mId = Long.valueOf(uri.getPathSegments().get(1)); - } catch (NumberFormatException e) { - Log.e(TAG, "Get note id error :" + e.toString()); - throw new ActionFailureException("create note failed"); - } - if (mId == 0) { - throw new IllegalStateException("Create thread id failed"); - } - - if (mType == Notes.TYPE_NOTE) { - for (SqlData sqlData : mDataList) { - sqlData.commit(mId, false, -1); - } - } - } else { - if (mId <= 0 && mId != Notes.ID_ROOT_FOLDER && mId != Notes.ID_CALL_RECORD_FOLDER) { - Log.e(TAG, "No such note"); - throw new IllegalStateException("Try to update note with invalid id"); - } - if (mDiffNoteValues.size() > 0) { - mVersion ++; - int result = 0; - if (!validateVersion) { - result = mContentResolver.update(Notes.CONTENT_NOTE_URI, mDiffNoteValues, "(" - + NoteColumns.ID + "=?)", new String[] { - String.valueOf(mId) - }); - } else { - result = mContentResolver.update(Notes.CONTENT_NOTE_URI, mDiffNoteValues, "(" - + NoteColumns.ID + "=?) AND (" + NoteColumns.VERSION + "<=?)", - new String[] { - String.valueOf(mId), String.valueOf(mVersion) - }); - } - if (result == 0) { - Log.w(TAG, "there is no update. maybe user updates note when syncing"); - } - } - - if (mType == Notes.TYPE_NOTE) { - for (SqlData sqlData : mDataList) { - sqlData.commit(mId, validateVersion, mVersion); - } - } - } - - // refresh local info - loadFromCursor(mId); - if (mType == Notes.TYPE_NOTE) - loadDataContent(); - - mDiffNoteValues.clear(); - mIsCreate = false; - } -} diff --git a/src/main/java/net/micode/notes/gtask/data/Task.java b/src/main/java/net/micode/notes/gtask/data/Task.java deleted file mode 100644 index a9d2764..0000000 --- a/src/main/java/net/micode/notes/gtask/data/Task.java +++ /dev/null @@ -1,483 +0,0 @@ -/* - * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.micode.notes.gtask.data; - -import android.database.Cursor; -import android.text.TextUtils; -import android.util.Log; - -import net.micode.notes.data.Notes; -import net.micode.notes.data.Notes.DataColumns; -import net.micode.notes.data.Notes.DataConstants; -import net.micode.notes.data.Notes.NoteColumns; -import net.micode.notes.gtask.exception.ActionFailureException; -import net.micode.notes.tool.GTaskStringUtils; - -import org.json.JSONArray; -import org.json.JSONException; -import org.json.JSONObject; - - -/** - * Task类是Node类的子类,用于表示Google Tasks中的任务项。 - *

- * 在小米笔记与Google Tasks的同步过程中,该类负责: - * 1. 封装Google Tasks任务的数据模型 - * 2. 实现任务的创建、更新等同步操作 - * 3. 处理本地数据与Google Tasks数据之间的转换 - * 4. 管理任务的层次结构和关系 - *

- */ -public class Task extends Node { - private static final String TAG = Task.class.getSimpleName(); - - /** - * 任务是否已完成 - */ - private boolean mCompleted; - - /** - * 任务的备注信息 - */ - private String mNotes; - - /** - * 任务的元信息,包含与本地笔记的关联数据 - */ - private JSONObject mMetaInfo; - - /** - * 任务的前一个兄弟节点(在同一父任务列表中的前一个任务) - */ - private Task mPriorSibling; - - /** - * 任务的父任务列表 - */ - private TaskList mParent; - -/** - * 构造函数,创建一个新的Task对象 - */ - public Task() { - super(); - mCompleted = false; - mNotes = null; - mPriorSibling = null; - mParent = null; - mMetaInfo = null; - } - -/** - * 获取创建任务的JSON动作 - *

- * 该方法生成用于向Google Tasks服务器发送创建任务请求的JSON数据 - *

- * - * @param actionId 动作ID,用于标识当前操作 - * @return 包含创建任务信息的JSON对象 - * @throws ActionFailureException 如果生成JSON对象失败 - */ - public JSONObject getCreateAction(int actionId) { - JSONObject js = new JSONObject(); - - try { - // action_type - js.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE, - GTaskStringUtils.GTASK_JSON_ACTION_TYPE_CREATE); - - // action_id - js.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, actionId); - - // index - js.put(GTaskStringUtils.GTASK_JSON_INDEX, mParent.getChildTaskIndex(this)); - - // entity_delta - JSONObject entity = new JSONObject(); - entity.put(GTaskStringUtils.GTASK_JSON_NAME, getName()); - entity.put(GTaskStringUtils.GTASK_JSON_CREATOR_ID, "null"); - entity.put(GTaskStringUtils.GTASK_JSON_ENTITY_TYPE, - GTaskStringUtils.GTASK_JSON_TYPE_TASK); - if (getNotes() != null) { - entity.put(GTaskStringUtils.GTASK_JSON_NOTES, getNotes()); - } - js.put(GTaskStringUtils.GTASK_JSON_ENTITY_DELTA, entity); - - // parent_id - js.put(GTaskStringUtils.GTASK_JSON_PARENT_ID, mParent.getGid()); - - // dest_parent_type - js.put(GTaskStringUtils.GTASK_JSON_DEST_PARENT_TYPE, - GTaskStringUtils.GTASK_JSON_TYPE_GROUP); - - // list_id - js.put(GTaskStringUtils.GTASK_JSON_LIST_ID, mParent.getGid()); - - // prior_sibling_id - if (mPriorSibling != null) { - js.put(GTaskStringUtils.GTASK_JSON_PRIOR_SIBLING_ID, mPriorSibling.getGid()); - } - - } catch (JSONException e) { - Log.e(TAG, e.toString()); - e.printStackTrace(); - throw new ActionFailureException("fail to generate task-create jsonobject"); - } - - return js; - } - -/** - * 获取更新任务的JSON动作 - *

- * 该方法生成用于向Google Tasks服务器发送更新任务请求的JSON数据 - *

- * - * @param actionId 动作ID,用于标识当前操作 - * @return 包含更新任务信息的JSON对象 - * @throws ActionFailureException 如果生成JSON对象失败 - */ - public JSONObject getUpdateAction(int actionId) { - JSONObject js = new JSONObject(); - - try { - // action_type - js.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE, - GTaskStringUtils.GTASK_JSON_ACTION_TYPE_UPDATE); - - // action_id - js.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, actionId); - - // id - js.put(GTaskStringUtils.GTASK_JSON_ID, getGid()); - - // entity_delta - JSONObject entity = new JSONObject(); - entity.put(GTaskStringUtils.GTASK_JSON_NAME, getName()); - if (getNotes() != null) { - entity.put(GTaskStringUtils.GTASK_JSON_NOTES, getNotes()); - } - entity.put(GTaskStringUtils.GTASK_JSON_DELETED, getDeleted()); - js.put(GTaskStringUtils.GTASK_JSON_ENTITY_DELTA, entity); - - } catch (JSONException e) { - Log.e(TAG, e.toString()); - e.printStackTrace(); - throw new ActionFailureException("fail to generate task-update jsonobject"); - } - - return js; - } - -/** - * 从Google Tasks服务器返回的JSON数据设置任务内容 - * - * @param js 包含Google Tasks任务数据的JSON对象 - * @throws ActionFailureException 如果解析JSON数据失败 - */ - public void setContentByRemoteJSON(JSONObject js) { - if (js != null) { - try { - // id - if (js.has(GTaskStringUtils.GTASK_JSON_ID)) { - setGid(js.getString(GTaskStringUtils.GTASK_JSON_ID)); - } - - // last_modified - if (js.has(GTaskStringUtils.GTASK_JSON_LAST_MODIFIED)) { - setLastModified(js.getLong(GTaskStringUtils.GTASK_JSON_LAST_MODIFIED)); - } - - // name - if (js.has(GTaskStringUtils.GTASK_JSON_NAME)) { - setName(js.getString(GTaskStringUtils.GTASK_JSON_NAME)); - } - - // notes - if (js.has(GTaskStringUtils.GTASK_JSON_NOTES)) { - setNotes(js.getString(GTaskStringUtils.GTASK_JSON_NOTES)); - } - - // deleted - if (js.has(GTaskStringUtils.GTASK_JSON_DELETED)) { - setDeleted(js.getBoolean(GTaskStringUtils.GTASK_JSON_DELETED)); - } - - // completed - if (js.has(GTaskStringUtils.GTASK_JSON_COMPLETED)) { - setCompleted(js.getBoolean(GTaskStringUtils.GTASK_JSON_COMPLETED)); - } - } catch (JSONException e) { - Log.e(TAG, e.toString()); - e.printStackTrace(); - throw new ActionFailureException("fail to get task content from jsonobject"); - } - } - } - -/** - * 从本地JSON数据设置任务内容 - * - * @param js 包含本地笔记数据的JSON对象 - */ - public void setContentByLocalJSON(JSONObject js) { - if (js == null || !js.has(GTaskStringUtils.META_HEAD_NOTE) - || !js.has(GTaskStringUtils.META_HEAD_DATA)) { - Log.w(TAG, "setContentByLocalJSON: nothing is avaiable"); - } - - try { - JSONObject note = js.getJSONObject(GTaskStringUtils.META_HEAD_NOTE); - JSONArray dataArray = js.getJSONArray(GTaskStringUtils.META_HEAD_DATA); - - if (note.getInt(NoteColumns.TYPE) != Notes.TYPE_NOTE) { - Log.e(TAG, "invalid type"); - return; - } - - for (int i = 0; i < dataArray.length(); i++) { - JSONObject data = dataArray.getJSONObject(i); - if (TextUtils.equals(data.getString(DataColumns.MIME_TYPE), DataConstants.NOTE)) { - setName(data.getString(DataColumns.CONTENT)); - break; - } - } - - } catch (JSONException e) { - Log.e(TAG, e.toString()); - e.printStackTrace(); - } - } - -/** - * 获取任务内容的本地JSON表示 - *

- * 该方法将任务数据转换为本地笔记系统使用的JSON格式 - *

- * - * @return 包含任务数据的本地JSON对象,如果转换失败返回null - */ - public JSONObject getLocalJSONFromContent() { - String name = getName(); - try { - if (mMetaInfo == null) { - // new task created from web - if (name == null) { - Log.w(TAG, "the note seems to be an empty one"); - return null; - } - - JSONObject js = new JSONObject(); - JSONObject note = new JSONObject(); - JSONArray dataArray = new JSONArray(); - JSONObject data = new JSONObject(); - data.put(DataColumns.CONTENT, name); - dataArray.put(data); - js.put(GTaskStringUtils.META_HEAD_DATA, dataArray); - note.put(NoteColumns.TYPE, Notes.TYPE_NOTE); - js.put(GTaskStringUtils.META_HEAD_NOTE, note); - return js; - } else { - // synced task - JSONObject note = mMetaInfo.getJSONObject(GTaskStringUtils.META_HEAD_NOTE); - JSONArray dataArray = mMetaInfo.getJSONArray(GTaskStringUtils.META_HEAD_DATA); - - for (int i = 0; i < dataArray.length(); i++) { - JSONObject data = dataArray.getJSONObject(i); - if (TextUtils.equals(data.getString(DataColumns.MIME_TYPE), DataConstants.NOTE)) { - data.put(DataColumns.CONTENT, getName()); - break; - } - } - - note.put(NoteColumns.TYPE, Notes.TYPE_NOTE); - return mMetaInfo; - } - } catch (JSONException e) { - Log.e(TAG, e.toString()); - e.printStackTrace(); - return null; - } - } - -/** - * 设置任务的元信息 - *

- * 元信息包含任务与本地笔记的关联数据 - *

- * - * @param metaData 包含元信息的MetaData对象 - */ - public void setMetaInfo(MetaData metaData) { - if (metaData != null && metaData.getNotes() != null) { - try { - mMetaInfo = new JSONObject(metaData.getNotes()); - } catch (JSONException e) { - Log.w(TAG, e.toString()); - mMetaInfo = null; - } - } - } - -/** - * 获取任务的同步动作类型 - *

- * 该方法根据本地数据和远程数据的状态,确定需要执行的同步操作类型 - *

- * - * @param c 包含本地笔记数据的Cursor对象 - * @return 同步动作类型,取值为SYNC_ACTION_*常量之一 - */ - public int getSyncAction(Cursor c) { - try { - JSONObject noteInfo = null; - if (mMetaInfo != null && mMetaInfo.has(GTaskStringUtils.META_HEAD_NOTE)) { - noteInfo = mMetaInfo.getJSONObject(GTaskStringUtils.META_HEAD_NOTE); - } - - if (noteInfo == null) { - Log.w(TAG, "it seems that note meta has been deleted"); - return SYNC_ACTION_UPDATE_REMOTE; - } - - if (!noteInfo.has(NoteColumns.ID)) { - Log.w(TAG, "remote note id seems to be deleted"); - return SYNC_ACTION_UPDATE_LOCAL; - } - - // validate the note id now - if (c.getLong(SqlNote.ID_COLUMN) != noteInfo.getLong(NoteColumns.ID)) { - Log.w(TAG, "note id doesn't match"); - return SYNC_ACTION_UPDATE_LOCAL; - } - - if (c.getInt(SqlNote.LOCAL_MODIFIED_COLUMN) == 0) { - // there is no local update - if (c.getLong(SqlNote.SYNC_ID_COLUMN) == getLastModified()) { - // no update both side - return SYNC_ACTION_NONE; - } else { - // apply remote to local - return SYNC_ACTION_UPDATE_LOCAL; - } - } else { - // validate gtask id - if (!c.getString(SqlNote.GTASK_ID_COLUMN).equals(getGid())) { - Log.e(TAG, "gtask id doesn't match"); - return SYNC_ACTION_ERROR; - } - if (c.getLong(SqlNote.SYNC_ID_COLUMN) == getLastModified()) { - // local modification only - return SYNC_ACTION_UPDATE_REMOTE; - } else { - return SYNC_ACTION_UPDATE_CONFLICT; - } - } - } catch (Exception e) { - Log.e(TAG, e.toString()); - e.printStackTrace(); - } - - return SYNC_ACTION_ERROR; - } - -/** - * 判断任务是否值得保存 - *

- * 如果任务有元信息、名称或备注,则认为值得保存 - *

- * - * @return 任务值得保存返回true,否则返回false - */ - public boolean isWorthSaving() { - return mMetaInfo != null || (getName() != null && getName().trim().length() > 0) - || (getNotes() != null && getNotes().trim().length() > 0); - } - -/** - * 设置任务的完成状态 - * - * @param completed 任务是否已完成 - */ - public void setCompleted(boolean completed) { - this.mCompleted = completed; - } - -/** - * 设置任务的备注信息 - * - * @param notes 任务的备注信息 - */ - public void setNotes(String notes) { - this.mNotes = notes; - } - -/** - * 设置任务的前一个兄弟节点 - * - * @param priorSibling 前一个兄弟任务 - */ - public void setPriorSibling(Task priorSibling) { - this.mPriorSibling = priorSibling; - } - -/** - * 设置任务的父任务列表 - * - * @param parent 父任务列表 - */ - public void setParent(TaskList parent) { - this.mParent = parent; - } - -/** - * 获取任务的完成状态 - * - * @return 任务是否已完成 - */ - public boolean getCompleted() { - return this.mCompleted; - } - -/** - * 获取任务的备注信息 - * - * @return 任务的备注信息 - */ - public String getNotes() { - return this.mNotes; - } - -/** - * 获取任务的前一个兄弟节点 - * - * @return 前一个兄弟任务 - */ - public Task getPriorSibling() { - return this.mPriorSibling; - } - -/** - * 获取任务的父任务列表 - * - * @return 父任务列表 - */ - public TaskList getParent() { - return this.mParent; - } - -} diff --git a/src/main/java/net/micode/notes/gtask/data/TaskList.java b/src/main/java/net/micode/notes/gtask/data/TaskList.java deleted file mode 100644 index 1cfab78..0000000 --- a/src/main/java/net/micode/notes/gtask/data/TaskList.java +++ /dev/null @@ -1,486 +0,0 @@ -/* - * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.micode.notes.gtask.data; - -import android.database.Cursor; -import android.util.Log; - -import net.micode.notes.data.Notes; -import net.micode.notes.data.Notes.NoteColumns; -import net.micode.notes.gtask.exception.ActionFailureException; -import net.micode.notes.tool.GTaskStringUtils; - -import org.json.JSONException; -import org.json.JSONObject; - -import java.util.ArrayList; - - -/** - * TaskList类是Node类的子类,用于表示Google Tasks中的任务列表。 - *

- * 在小米笔记与Google Tasks的同步过程中,该类负责: - * 1. 封装Google Tasks任务列表的数据模型 - * 2. 管理任务列表中的子任务(Task对象) - * 3. 实现任务列表的创建、更新等同步操作 - * 4. 处理本地文件夹与Google Tasks列表之间的转换 - *

- */ -public class TaskList extends Node { - private static final String TAG = TaskList.class.getSimpleName(); - - /** - * 任务列表的索引位置 - */ - private int mIndex; - - /** - * 任务列表中的子任务列表 - */ - private ArrayList mChildren; - -/** - * 构造函数,创建一个新的TaskList对象 - */ - public TaskList() { - super(); - mChildren = new ArrayList(); - mIndex = 1; - } - -/** - * 获取创建任务列表的JSON动作 - *

- * 该方法生成用于向Google Tasks服务器发送创建任务列表请求的JSON数据 - *

- * - * @param actionId 动作ID,用于标识当前操作 - * @return 包含创建任务列表信息的JSON对象 - * @throws ActionFailureException 如果生成JSON对象失败 - */ - public JSONObject getCreateAction(int actionId) { - JSONObject js = new JSONObject(); - - try { - // action_type - js.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE, - GTaskStringUtils.GTASK_JSON_ACTION_TYPE_CREATE); - - // action_id - js.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, actionId); - - // index - js.put(GTaskStringUtils.GTASK_JSON_INDEX, mIndex); - - // entity_delta - JSONObject entity = new JSONObject(); - entity.put(GTaskStringUtils.GTASK_JSON_NAME, getName()); - entity.put(GTaskStringUtils.GTASK_JSON_CREATOR_ID, "null"); - entity.put(GTaskStringUtils.GTASK_JSON_ENTITY_TYPE, - GTaskStringUtils.GTASK_JSON_TYPE_GROUP); - js.put(GTaskStringUtils.GTASK_JSON_ENTITY_DELTA, entity); - - } catch (JSONException e) { - Log.e(TAG, e.toString()); - e.printStackTrace(); - throw new ActionFailureException("fail to generate tasklist-create jsonobject"); - } - - return js; - } - -/** - * 获取更新任务列表的JSON动作 - *

- * 该方法生成用于向Google Tasks服务器发送更新任务列表请求的JSON数据 - *

- * - * @param actionId 动作ID,用于标识当前操作 - * @return 包含更新任务列表信息的JSON对象 - * @throws ActionFailureException 如果生成JSON对象失败 - */ - public JSONObject getUpdateAction(int actionId) { - JSONObject js = new JSONObject(); - - try { - // action_type - js.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE, - GTaskStringUtils.GTASK_JSON_ACTION_TYPE_UPDATE); - - // action_id - js.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, actionId); - - // id - js.put(GTaskStringUtils.GTASK_JSON_ID, getGid()); - - // entity_delta - JSONObject entity = new JSONObject(); - entity.put(GTaskStringUtils.GTASK_JSON_NAME, getName()); - entity.put(GTaskStringUtils.GTASK_JSON_DELETED, getDeleted()); - js.put(GTaskStringUtils.GTASK_JSON_ENTITY_DELTA, entity); - - } catch (JSONException e) { - Log.e(TAG, e.toString()); - e.printStackTrace(); - throw new ActionFailureException("fail to generate tasklist-update jsonobject"); - } - - return js; - } - -/** - * 从Google Tasks服务器返回的JSON数据设置任务列表内容 - * - * @param js 包含Google Tasks任务列表数据的JSON对象 - * @throws ActionFailureException 如果解析JSON数据失败 - */ - public void setContentByRemoteJSON(JSONObject js) { - if (js != null) { - try { - // id - if (js.has(GTaskStringUtils.GTASK_JSON_ID)) { - setGid(js.getString(GTaskStringUtils.GTASK_JSON_ID)); - } - - // last_modified - if (js.has(GTaskStringUtils.GTASK_JSON_LAST_MODIFIED)) { - setLastModified(js.getLong(GTaskStringUtils.GTASK_JSON_LAST_MODIFIED)); - } - - // name - if (js.has(GTaskStringUtils.GTASK_JSON_NAME)) { - setName(js.getString(GTaskStringUtils.GTASK_JSON_NAME)); - } - - } catch (JSONException e) { - Log.e(TAG, e.toString()); - e.printStackTrace(); - throw new ActionFailureException("fail to get tasklist content from jsonobject"); - } - } - } - -/** - * 从本地JSON数据设置任务列表内容 - *

- * 根据本地文件夹类型设置任务列表名称,支持普通文件夹、系统文件夹等 - *

- * - * @param js 包含本地文件夹数据的JSON对象 - */ - public void setContentByLocalJSON(JSONObject js) { - if (js == null || !js.has(GTaskStringUtils.META_HEAD_NOTE)) { - Log.w(TAG, "setContentByLocalJSON: nothing is avaiable"); - } - - try { - JSONObject folder = js.getJSONObject(GTaskStringUtils.META_HEAD_NOTE); - - if (folder.getInt(NoteColumns.TYPE) == Notes.TYPE_FOLDER) { - String name = folder.getString(NoteColumns.SNIPPET); - setName(GTaskStringUtils.MIUI_FOLDER_PREFFIX + name); - } else if (folder.getInt(NoteColumns.TYPE) == Notes.TYPE_SYSTEM) { - if (folder.getLong(NoteColumns.ID) == Notes.ID_ROOT_FOLDER) - setName(GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_DEFAULT); - else if (folder.getLong(NoteColumns.ID) == Notes.ID_CALL_RECORD_FOLDER) - setName(GTaskStringUtils.MIUI_FOLDER_PREFFIX - + GTaskStringUtils.FOLDER_CALL_NOTE); - else - Log.e(TAG, "invalid system folder"); - } else { - Log.e(TAG, "error type"); - } - } catch (JSONException e) { - Log.e(TAG, e.toString()); - e.printStackTrace(); - } - } - -/** - * 获取任务列表内容的本地JSON表示 - *

- * 该方法将任务列表数据转换为本地文件夹系统使用的JSON格式 - *

- * - * @return 包含任务列表数据的本地JSON对象,如果转换失败返回null - */ - public JSONObject getLocalJSONFromContent() { - try { - JSONObject js = new JSONObject(); - JSONObject folder = new JSONObject(); - - String folderName = getName(); - if (getName().startsWith(GTaskStringUtils.MIUI_FOLDER_PREFFIX)) - folderName = folderName.substring(GTaskStringUtils.MIUI_FOLDER_PREFFIX.length(), - folderName.length()); - folder.put(NoteColumns.SNIPPET, folderName); - if (folderName.equals(GTaskStringUtils.FOLDER_DEFAULT) - || folderName.equals(GTaskStringUtils.FOLDER_CALL_NOTE)) - folder.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); - else - folder.put(NoteColumns.TYPE, Notes.TYPE_FOLDER); - - js.put(GTaskStringUtils.META_HEAD_NOTE, folder); - - return js; - } catch (JSONException e) { - Log.e(TAG, e.toString()); - e.printStackTrace(); - return null; - } - } - -/** - * 获取任务列表的同步动作类型 - *

- * 该方法根据本地数据和远程数据的状态,确定需要执行的同步操作类型 - *

- * - * @param c 包含本地文件夹数据的Cursor对象 - * @return 同步动作类型,取值为SYNC_ACTION_*常量之一 - */ - public int getSyncAction(Cursor c) { - try { - if (c.getInt(SqlNote.LOCAL_MODIFIED_COLUMN) == 0) { - // there is no local update - if (c.getLong(SqlNote.SYNC_ID_COLUMN) == getLastModified()) { - // no update both side - return SYNC_ACTION_NONE; - } else { - // apply remote to local - return SYNC_ACTION_UPDATE_LOCAL; - } - } else { - // validate gtask id - if (!c.getString(SqlNote.GTASK_ID_COLUMN).equals(getGid())) { - Log.e(TAG, "gtask id doesn't match"); - return SYNC_ACTION_ERROR; - } - if (c.getLong(SqlNote.SYNC_ID_COLUMN) == getLastModified()) { - // local modification only - return SYNC_ACTION_UPDATE_REMOTE; - } else { - // for folder conflicts, just apply local modification - return SYNC_ACTION_UPDATE_REMOTE; - } - } - } catch (Exception e) { - Log.e(TAG, e.toString()); - e.printStackTrace(); - } - - return SYNC_ACTION_ERROR; - } - -/** - * 获取任务列表中的子任务数量 - * - * @return 子任务数量 - */ - public int getChildTaskCount() { - return mChildren.size(); - } - -/** - * 向任务列表中添加子任务 - * - * @param task 要添加的子任务 - * @return 添加成功返回true,否则返回false - */ - public boolean addChildTask(Task task) { - boolean ret = false; - if (task != null && !mChildren.contains(task)) { - ret = mChildren.add(task); - if (ret) { - // need to set prior sibling and parent - task.setPriorSibling(mChildren.isEmpty() ? null : mChildren - .get(mChildren.size() - 1)); - task.setParent(this); - } - } - return ret; - } - -/** - * 在指定位置向任务列表中添加子任务 - * - * @param task 要添加的子任务 - * @param index 要添加的位置索引 - * @return 添加成功返回true,否则返回false - */ - public boolean addChildTask(Task task, int index) { - if (index < 0 || index > mChildren.size()) { - Log.e(TAG, "add child task: invalid index"); - return false; - } - - int pos = mChildren.indexOf(task); - if (task != null && pos == -1) { - mChildren.add(index, task); - - // update the task list - Task preTask = null; - Task afterTask = null; - if (index != 0) - preTask = mChildren.get(index - 1); - if (index != mChildren.size() - 1) - afterTask = mChildren.get(index + 1); - - task.setPriorSibling(preTask); - if (afterTask != null) - afterTask.setPriorSibling(task); - } - - return true; - } - -/** - * 从任务列表中移除子任务 - * - * @param task 要移除的子任务 - * @return 移除成功返回true,否则返回false - */ - public boolean removeChildTask(Task task) { - boolean ret = false; - int index = mChildren.indexOf(task); - if (index != -1) { - ret = mChildren.remove(task); - - if (ret) { - // reset prior sibling and parent - task.setPriorSibling(null); - task.setParent(null); - - // update the task list - if (index != mChildren.size()) { - mChildren.get(index).setPriorSibling( - index == 0 ? null : mChildren.get(index - 1)); - } - } - } - return ret; - } - -/** - * 移动任务列表中的子任务到指定位置 - * - * @param task 要移动的子任务 - * @param index 目标位置索引 - * @return 移动成功返回true,否则返回false - */ - public boolean moveChildTask(Task task, int index) { - - if (index < 0 || index >= mChildren.size()) { - Log.e(TAG, "move child task: invalid index"); - return false; - } - - int pos = mChildren.indexOf(task); - if (pos == -1) { - Log.e(TAG, "move child task: the task should in the list"); - return false; - } - - if (pos == index) - return true; - return (removeChildTask(task) && addChildTask(task, index)); - } - -/** - * 根据Google Task ID查找子任务 - * - * @param gid Google Task ID - * @return 找到的子任务,如果找不到返回null - */ - public Task findChildTaskByGid(String gid) { - for (int i = 0; i < mChildren.size(); i++) { - Task t = mChildren.get(i); - if (t.getGid().equals(gid)) { - return t; - } - } - return null; - } - -/** - * 获取子任务在任务列表中的索引位置 - * - * @param task 要查找的子任务 - * @return 子任务的索引位置,如果不存在返回-1 - */ - public int getChildTaskIndex(Task task) { - return mChildren.indexOf(task); - } - -/** - * 根据索引位置获取子任务 - * - * @param index 要获取的子任务的索引位置 - * @return 索引位置对应的子任务,如果索引无效返回null - */ - public Task getChildTaskByIndex(int index) { - if (index < 0 || index >= mChildren.size()) { - Log.e(TAG, "getTaskByIndex: invalid index"); - return null; - } - return mChildren.get(index); - } - -/** - * 根据Google Task ID获取子任务 - *

- * 注意:该方法与findChildTaskByGid功能相同,名称可能存在拼写错误("ChilTask"应为"ChildTask") - *

- * - * @param gid Google Task ID - * @return 找到的子任务,如果找不到返回null - */ - public Task getChilTaskByGid(String gid) { - for (Task task : mChildren) { - if (task.getGid().equals(gid)) - return task; - } - return null; - } - -/** - * 获取任务列表中的所有子任务 - * - * @return 包含所有子任务的ArrayList - */ - public ArrayList getChildTaskList() { - return this.mChildren; - } - -/** - * 设置任务列表的索引位置 - * - * @param index 新的索引位置 - */ - public void setIndex(int index) { - this.mIndex = index; - } - -/** - * 获取任务列表的索引位置 - * - * @return 任务列表的索引位置 - */ - public int getIndex() { - return this.mIndex; - } -} diff --git a/src/main/java/net/micode/notes/gtask/exception/ActionFailureException.java b/src/main/java/net/micode/notes/gtask/exception/ActionFailureException.java deleted file mode 100644 index 7d7892c..0000000 --- a/src/main/java/net/micode/notes/gtask/exception/ActionFailureException.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.micode.notes.gtask.exception; - -/** - * ActionFailureException是GTask同步过程中用于表示操作失败的自定义异常类 - *

- * 当GTask同步操作(如创建、更新、删除任务或任务列表)执行失败时抛出此异常 - *

- */ -public class ActionFailureException extends RuntimeException { - private static final long serialVersionUID = 4425249765923293627L; - - public ActionFailureException() { - super(); - } - - public ActionFailureException(String paramString) { - super(paramString); - } - - public ActionFailureException(String paramString, Throwable paramThrowable) { - super(paramString, paramThrowable); - } -} diff --git a/src/main/java/net/micode/notes/gtask/exception/NetworkFailureException.java b/src/main/java/net/micode/notes/gtask/exception/NetworkFailureException.java deleted file mode 100644 index b9f564d..0000000 --- a/src/main/java/net/micode/notes/gtask/exception/NetworkFailureException.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.micode.notes.gtask.exception; - -/** - * NetworkFailureException是GTask同步过程中用于表示网络操作失败的自定义检查型异常 - *

- * 当GTask同步操作(如网络请求、数据传输)因网络问题(如网络连接中断、超时等)失败时抛出此异常 - *

- */ -public class NetworkFailureException extends Exception { - private static final long serialVersionUID = 2107610287180234136L; - - public NetworkFailureException() { - super(); - } - - public NetworkFailureException(String paramString) { - super(paramString); - } - - public NetworkFailureException(String paramString, Throwable paramThrowable) { - super(paramString, paramThrowable); - } -} diff --git a/src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java b/src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java deleted file mode 100644 index 9e52a69..0000000 --- a/src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java +++ /dev/null @@ -1,209 +0,0 @@ - -/* - * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.micode.notes.gtask.remote; - -import android.app.Notification; -import android.app.NotificationManager; -import android.app.PendingIntent; -import android.content.Context; -import android.content.Intent; -import android.os.AsyncTask; - -import net.micode.notes.R; -import net.micode.notes.ui.NotesListActivity; -import net.micode.notes.ui.NotesPreferenceActivity; - - -/** - * GTaskASyncTask是用于在后台执行GTask同步操作的异步任务类 - *

- * 该类负责: - * 1. 在后台线程执行GTask同步操作 - * 2. 显示同步进度通知 - * 3. 处理同步结果并显示相应通知 - * 4. 支持同步取消功能 - *

- */ -public class GTaskASyncTask extends AsyncTask { - - /** - * GTask同步通知的唯一ID - */ - private static int GTASK_SYNC_NOTIFICATION_ID = 5234235; - - /** - * OnCompleteListener是GTask同步完成时的回调接口 - */ - public interface OnCompleteListener { - /** - * 当GTask同步完成时调用此方法 - */ - void onComplete(); - } - - /** - * Android应用上下文对象 - */ - private Context mContext; - - /** - * 通知管理器,用于显示同步进度和结果通知 - */ - private NotificationManager mNotifiManager; - - /** - * GTask管理器实例,负责执行实际的同步操作 - */ - private GTaskManager mTaskManager; - - /** - * 同步完成监听器,用于在同步结束后回调通知 - */ - private OnCompleteListener mOnCompleteListener; - - /** - * GTaskASyncTask构造函数 - * - * @param context 应用上下文 - * @param listener 同步完成监听器 - */ - public GTaskASyncTask(Context context, OnCompleteListener listener) { - mContext = context; - mOnCompleteListener = listener; - mNotifiManager = (NotificationManager) mContext - .getSystemService(Context.NOTIFICATION_SERVICE); - mTaskManager = GTaskManager.getInstance(); - } - - /** - * 取消当前正在进行的GTask同步操作 - */ - public void cancelSync() { - mTaskManager.cancelSync(); - } - - /** - * 发布同步进度更新 - * - * @param message 进度消息内容 - */ - public void publishProgess(String message) { - publishProgress(new String[] { - message - }); - } - -// - /* 显示GTask同步通知 - * - * @param tickerId 通知标题的字符串资源ID; - * @param content 通知内容 - */ -// private void showNotification(int tickerId, String content) { -// Notification notification = new Notification(R.drawable.notification, mContext -// .getString(tickerId), System.currentTimeMillis()); - // notification.defaults = Notification.DEFAULT_LIGHTS; -// notification.flags = Notification.FLAG_AUTO_CANCEL; - // PendingIntent pendingIntent; -// if (tickerId != R.string.ticker_success) { -// pendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(mContext, -// NotesPreferenceActivity.class), 0); -// - // } else { - // pendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(mContext, -// NotesListActivity.class), 0); -// } -// notification.setLatestEventInfo(mContext, mContext.getString(R.string.app_name), content, -// pendingIntent); -// mNotifiManager.notify(GTASK_SYNC_NOTIFICATION_ID, notification); -// } -private void showNotification(int tickerId, String content) { - PendingIntent pendingIntent; - if (tickerId != R.string.ticker_success) { - pendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(mContext, - NotesPreferenceActivity.class), PendingIntent.FLAG_IMMUTABLE); - } else { - pendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(mContext, - NotesListActivity.class), PendingIntent.FLAG_IMMUTABLE); - } - Notification.Builder builder = new Notification.Builder(mContext) - .setAutoCancel(true) - .setContentTitle(mContext.getString(R.string.app_name)) - .setContentText(content) - .setContentIntent(pendingIntent) - .setWhen(System.currentTimeMillis()) - .setOngoing(true); - Notification notification=builder.getNotification(); - mNotifiManager.notify(GTASK_SYNC_NOTIFICATION_ID, notification); -} - - /** - * 在后台线程执行GTask同步操作 - * - * @param unused 未使用的参数 - * @return 同步结果状态码 - */ - @Override - protected Integer doInBackground(Void... unused) { - publishProgess(mContext.getString(R.string.sync_progress_login, NotesPreferenceActivity - .getSyncAccountName(mContext))); - return mTaskManager.sync(mContext, this); - } - - /** - * 当后台任务发布进度更新时调用 - * - * @param progress 进度消息数组 - */ - @Override - protected void onProgressUpdate(String... progress) { - showNotification(R.string.ticker_syncing, progress[0]); - if (mContext instanceof GTaskSyncService) { - ((GTaskSyncService) mContext).sendBroadcast(progress[0]); - } - } - - /** - * 当后台任务执行完成后调用 - * - * @param result 同步结果状态码 - */ - @Override - protected void onPostExecute(Integer result) { - if (result == GTaskManager.STATE_SUCCESS) { - showNotification(R.string.ticker_success, mContext.getString( - R.string.success_sync_account, mTaskManager.getSyncAccount())); - NotesPreferenceActivity.setLastSyncTime(mContext, System.currentTimeMillis()); - } else if (result == GTaskManager.STATE_NETWORK_ERROR) { - showNotification(R.string.ticker_fail, mContext.getString(R.string.error_sync_network)); - } else if (result == GTaskManager.STATE_INTERNAL_ERROR) { - showNotification(R.string.ticker_fail, mContext.getString(R.string.error_sync_internal)); - } else if (result == GTaskManager.STATE_SYNC_CANCELLED) { - showNotification(R.string.ticker_cancel, mContext - .getString(R.string.error_sync_cancelled)); - } - if (mOnCompleteListener != null) { - new Thread(new Runnable() { - - public void run() { - mOnCompleteListener.onComplete(); - } - }).start(); - } - } -} diff --git a/src/main/java/net/micode/notes/gtask/remote/GTaskClient.java b/src/main/java/net/micode/notes/gtask/remote/GTaskClient.java deleted file mode 100644 index 776a6a5..0000000 --- a/src/main/java/net/micode/notes/gtask/remote/GTaskClient.java +++ /dev/null @@ -1,782 +0,0 @@ -/* - * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.micode.notes.gtask.remote; - -import android.accounts.Account; -import android.accounts.AccountManager; -import android.accounts.AccountManagerFuture; -import android.app.Activity; -import android.os.Bundle; -import android.text.TextUtils; -import android.util.Log; - -import net.micode.notes.gtask.data.Node; -import net.micode.notes.gtask.data.Task; -import net.micode.notes.gtask.data.TaskList; -import net.micode.notes.gtask.exception.ActionFailureException; -import net.micode.notes.gtask.exception.NetworkFailureException; -import net.micode.notes.tool.GTaskStringUtils; -import net.micode.notes.ui.NotesPreferenceActivity; - -import org.apache.http.HttpEntity; -import org.apache.http.HttpResponse; -import org.apache.http.client.ClientProtocolException; -import org.apache.http.client.entity.UrlEncodedFormEntity; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.client.methods.HttpPost; -import org.apache.http.cookie.Cookie; -import org.apache.http.impl.client.BasicCookieStore; -import org.apache.http.impl.client.DefaultHttpClient; -import org.apache.http.message.BasicNameValuePair; -import org.apache.http.params.BasicHttpParams; -import org.apache.http.params.HttpConnectionParams; -import org.apache.http.params.HttpParams; -import org.apache.http.params.HttpProtocolParams; -import org.json.JSONArray; -import org.json.JSONException; -import org.json.JSONObject; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.util.LinkedList; -import java.util.List; -import java.util.zip.GZIPInputStream; -import java.util.zip.Inflater; -import java.util.zip.InflaterInputStream; - - -/** - * GTaskClient是GTask同步模块的核心客户端类,负责与Google Tasks服务器进行交互 - *

- * 该类提供了以下主要功能: - * 1. Google账号登录和认证 - * 2. 创建、更新、删除任务 - * 3. 创建、更新、删除任务列表 - * 4. 移动任务(在同一任务列表内或不同任务列表之间) - * 5. 获取任务列表和任务数据 - *

- *

- * 该类采用单例模式设计,确保应用中只有一个GTask客户端实例 - *

- */ -public class GTaskClient { - /** - * 日志标签 - */ - private static final String TAG = GTaskClient.class.getSimpleName(); - - /** - * Google Tasks基础URL - */ - private static final String GTASK_URL = "https://mail.google.com/tasks/"; - - /** - * Google Tasks GET请求URL - */ - private static final String GTASK_GET_URL = "https://mail.google.com/tasks/ig"; - - /** - * Google Tasks POST请求URL - */ - private static final String GTASK_POST_URL = "https://mail.google.com/tasks/r/ig"; - - /** - * GTaskClient单例实例 - */ - private static GTaskClient mInstance = null; - - /** - * HTTP客户端实例,用于与Google Tasks服务器进行通信 - */ - private DefaultHttpClient mHttpClient; - - /** - * 当前使用的GET请求URL - */ - private String mGetUrl; - - /** - * 当前使用的POST请求URL - */ - private String mPostUrl; - - /** - * Google Tasks客户端版本号 - */ - private long mClientVersion; - - /** - * 登录状态标志 - */ - private boolean mLoggedin; - - /** - * 上次登录时间 - */ - private long mLastLoginTime; - - /** - * 操作ID,用于标识不同的同步操作 - */ - private int mActionId; - - /** - * 当前同步的Google账号 - */ - private Account mAccount; - - /** - * 更新操作数组,用于批量提交更新操作 - */ - private JSONArray mUpdateArray; - - /** - * GTaskClient构造函数(私有,用于单例模式) - */ - private GTaskClient() { - mHttpClient = null; - mGetUrl = GTASK_GET_URL; - mPostUrl = GTASK_POST_URL; - mClientVersion = -1; - mLoggedin = false; - mLastLoginTime = 0; - mActionId = 1; - mAccount = null; - mUpdateArray = null; - } - - /** - * 获取GTaskClient单例实例 - * - * @return GTaskClient单例实例 - */ - public static synchronized GTaskClient getInstance() { - if (mInstance == null) { - mInstance = new GTaskClient(); - } - return mInstance; - } - - /** - * 登录Google Tasks账号 - *

- * 如果距离上次登录时间不超过5分钟,则不需要重新登录 - * 如果账号发生变化,需要重新登录 - *

- * - * @param activity 调用登录的Activity - * @return 登录成功返回true,失败返回false - */ - public boolean login(Activity activity) { - // we suppose that the cookie would expire after 5 minutes - // then we need to re-login - final long interval = 1000 * 60 * 5; - if (mLastLoginTime + interval < System.currentTimeMillis()) { - mLoggedin = false; - } - - // need to re-login after account switch - if (mLoggedin - && !TextUtils.equals(getSyncAccount().name, NotesPreferenceActivity - .getSyncAccountName(activity))) { - mLoggedin = false; - } - - if (mLoggedin) { - Log.d(TAG, "already logged in"); - return true; - } - - mLastLoginTime = System.currentTimeMillis(); - String authToken = loginGoogleAccount(activity, false); - if (authToken == null) { - Log.e(TAG, "login google account failed"); - return false; - } - - // login with custom domain if necessary - if (!(mAccount.name.toLowerCase().endsWith("gmail.com") || mAccount.name.toLowerCase() - .endsWith("googlemail.com"))) { - StringBuilder url = new StringBuilder(GTASK_URL).append("a/"); - int index = mAccount.name.indexOf('@') + 1; - String suffix = mAccount.name.substring(index); - url.append(suffix + "/"); - mGetUrl = url.toString() + "ig"; - mPostUrl = url.toString() + "r/ig"; - - if (tryToLoginGtask(activity, authToken)) { - mLoggedin = true; - } - } - - // try to login with google official url - if (!mLoggedin) { - mGetUrl = GTASK_GET_URL; - mPostUrl = GTASK_POST_URL; - if (!tryToLoginGtask(activity, authToken)) { - return false; - } - } - - mLoggedin = true; - return true; - } - - /** - * 登录Google账号,获取认证令牌 - * - * @param activity 调用登录的Activity - * @param invalidateToken 是否使当前令牌失效 - * @return 认证令牌字符串,失败返回null - */ - private String loginGoogleAccount(Activity activity, boolean invalidateToken) { - String authToken; - AccountManager accountManager = AccountManager.get(activity); - Account[] accounts = accountManager.getAccountsByType("com.google"); - - if (accounts.length == 0) { - Log.e(TAG, "there is no available google account"); - return null; - } - - String accountName = NotesPreferenceActivity.getSyncAccountName(activity); - Account account = null; - for (Account a : accounts) { - if (a.name.equals(accountName)) { - account = a; - break; - } - } - if (account != null) { - mAccount = account; - } else { - Log.e(TAG, "unable to get an account with the same name in the settings"); - return null; - } - - // get the token now - AccountManagerFuture accountManagerFuture = accountManager.getAuthToken(account, - "goanna_mobile", null, activity, null, null); - try { - Bundle authTokenBundle = accountManagerFuture.getResult(); - authToken = authTokenBundle.getString(AccountManager.KEY_AUTHTOKEN); - if (invalidateToken) { - accountManager.invalidateAuthToken("com.google", authToken); - loginGoogleAccount(activity, false); - } - } catch (Exception e) { - Log.e(TAG, "get auth token failed"); - authToken = null; - } - - return authToken; - } - - /** - * 尝试登录Google Tasks - *

- * 如果登录失败,会尝试使令牌失效并重新登录 - *

- * - * @param activity 调用登录的Activity - * @param authToken 认证令牌 - * @return 登录成功返回true,失败返回false - */ - private boolean tryToLoginGtask(Activity activity, String authToken) { - if (!loginGtask(authToken)) { - // maybe the auth token is out of date, now let's invalidate the - // token and try again - authToken = loginGoogleAccount(activity, true); - if (authToken == null) { - Log.e(TAG, "login google account failed"); - return false; - } - - if (!loginGtask(authToken)) { - Log.e(TAG, "login gtask failed"); - return false; - } - } - return true; - } - - /** - * 使用认证令牌登录Google Tasks - * - * @param authToken 认证令牌 - * @return 登录成功返回true,失败返回false - */ - private boolean loginGtask(String authToken) { - int timeoutConnection = 10000; - int timeoutSocket = 15000; - HttpParams httpParameters = new BasicHttpParams(); - HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection); - HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket); - mHttpClient = new DefaultHttpClient(httpParameters); - BasicCookieStore localBasicCookieStore = new BasicCookieStore(); - mHttpClient.setCookieStore(localBasicCookieStore); - HttpProtocolParams.setUseExpectContinue(mHttpClient.getParams(), false); - - // login gtask - try { - String loginUrl = mGetUrl + "?auth=" + authToken; - HttpGet httpGet = new HttpGet(loginUrl); - HttpResponse response = null; - response = mHttpClient.execute(httpGet); - - // get the cookie now - List cookies = mHttpClient.getCookieStore().getCookies(); - boolean hasAuthCookie = false; - for (Cookie cookie : cookies) { - if (cookie.getName().contains("GTL")) { - hasAuthCookie = true; - } - } - if (!hasAuthCookie) { - Log.w(TAG, "it seems that there is no auth cookie"); - } - - // get the client version - String resString = getResponseContent(response.getEntity()); - String jsBegin = "_setup("; - String jsEnd = ")}"; - int begin = resString.indexOf(jsBegin); - int end = resString.lastIndexOf(jsEnd); - String jsString = null; - if (begin != -1 && end != -1 && begin < end) { - jsString = resString.substring(begin + jsBegin.length(), end); - } - JSONObject js = new JSONObject(jsString); - mClientVersion = js.getLong("v"); - } catch (JSONException e) { - Log.e(TAG, e.toString()); - e.printStackTrace(); - return false; - } catch (Exception e) { - // simply catch all exceptions - Log.e(TAG, "httpget gtask_url failed"); - return false; - } - - return true; - } - - /** - * 获取下一个操作ID - * - * @return 操作ID - */ - private int getActionId() { - return mActionId++; - } - - /** - * 创建HTTP POST请求对象 - * - * @return HttpPost请求对象 - */ - private HttpPost createHttpPost() { - HttpPost httpPost = new HttpPost(mPostUrl); - httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); - httpPost.setHeader("AT", "1"); - return httpPost; - } - - /** - * 获取HTTP响应内容 - *

- * 支持gzip和deflate压缩格式 - *

- * - * @param entity HTTP响应实体 - * @return 响应内容字符串 - * @throws IOException 如果读取响应内容失败 - */ - private String getResponseContent(HttpEntity entity) throws IOException { - String contentEncoding = null; - if (entity.getContentEncoding() != null) { - contentEncoding = entity.getContentEncoding().getValue(); - Log.d(TAG, "encoding: " + contentEncoding); - } - - InputStream input = entity.getContent(); - if (contentEncoding != null && contentEncoding.equalsIgnoreCase("gzip")) { - input = new GZIPInputStream(entity.getContent()); - } else if (contentEncoding != null && contentEncoding.equalsIgnoreCase("deflate")) { - Inflater inflater = new Inflater(true); - input = new InflaterInputStream(entity.getContent(), inflater); - } - - try { - InputStreamReader isr = new InputStreamReader(input); - BufferedReader br = new BufferedReader(isr); - StringBuilder sb = new StringBuilder(); - - while (true) { - String buff = br.readLine(); - if (buff == null) { - return sb.toString(); - } - sb = sb.append(buff); - } - } finally { - input.close(); - } - } - - /** - * 发送POST请求到Google Tasks服务器 - * - * @param js 请求内容的JSON对象 - * @return 响应内容的JSON对象 - * @throws NetworkFailureException 如果网络请求失败 - * @throws ActionFailureException 如果请求格式或响应解析失败 - */ - private JSONObject postRequest(JSONObject js) throws NetworkFailureException { - if (!mLoggedin) { - Log.e(TAG, "please login first"); - throw new ActionFailureException("not logged in"); - } - - HttpPost httpPost = createHttpPost(); - try { - LinkedList list = new LinkedList(); - list.add(new BasicNameValuePair("r", js.toString())); - UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list, "UTF-8"); - httpPost.setEntity(entity); - - // execute the post - HttpResponse response = mHttpClient.execute(httpPost); - String jsString = getResponseContent(response.getEntity()); - return new JSONObject(jsString); - - } catch (ClientProtocolException e) { - Log.e(TAG, e.toString()); - e.printStackTrace(); - throw new NetworkFailureException("postRequest failed"); - } catch (IOException e) { - Log.e(TAG, e.toString()); - e.printStackTrace(); - throw new NetworkFailureException("postRequest failed"); - } catch (JSONException e) { - Log.e(TAG, e.toString()); - e.printStackTrace(); - throw new ActionFailureException("unable to convert response content to jsonobject"); - } catch (Exception e) { - Log.e(TAG, e.toString()); - e.printStackTrace(); - throw new ActionFailureException("error occurs when posting request"); - } - } - - /** - * 创建新任务 - * - * @param task 要创建的任务对象 - * @throws NetworkFailureException 如果网络请求失败 - * @throws ActionFailureException 如果任务创建失败 - */ - public void createTask(Task task) throws NetworkFailureException { - commitUpdate(); - try { - JSONObject jsPost = new JSONObject(); - JSONArray actionList = new JSONArray(); - - // action_list - actionList.put(task.getCreateAction(getActionId())); - jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, actionList); - - // client_version - jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion); - - // post - JSONObject jsResponse = postRequest(jsPost); - JSONObject jsResult = (JSONObject) jsResponse.getJSONArray( - GTaskStringUtils.GTASK_JSON_RESULTS).get(0); - task.setGid(jsResult.getString(GTaskStringUtils.GTASK_JSON_NEW_ID)); - - } catch (JSONException e) { - Log.e(TAG, e.toString()); - e.printStackTrace(); - throw new ActionFailureException("create task: handing jsonobject failed"); - } - } - - /** - * 创建新任务列表 - * - * @param tasklist 要创建的任务列表对象 - * @throws NetworkFailureException 如果网络请求失败 - * @throws ActionFailureException 如果任务列表创建失败 - */ - public void createTaskList(TaskList tasklist) throws NetworkFailureException { - commitUpdate(); - try { - JSONObject jsPost = new JSONObject(); - JSONArray actionList = new JSONArray(); - - // action_list - actionList.put(tasklist.getCreateAction(getActionId())); - jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, actionList); - - // client version - jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion); - - // post - JSONObject jsResponse = postRequest(jsPost); - JSONObject jsResult = (JSONObject) jsResponse.getJSONArray( - GTaskStringUtils.GTASK_JSON_RESULTS).get(0); - tasklist.setGid(jsResult.getString(GTaskStringUtils.GTASK_JSON_NEW_ID)); - - } catch (JSONException e) { - Log.e(TAG, e.toString()); - e.printStackTrace(); - throw new ActionFailureException("create tasklist: handing jsonobject failed"); - } - } - - /** - * 提交批量更新操作 - * - * @throws NetworkFailureException 如果网络请求失败 - * @throws ActionFailureException 如果更新提交失败 - */ - public void commitUpdate() throws NetworkFailureException { - if (mUpdateArray != null) { - try { - JSONObject jsPost = new JSONObject(); - - // action_list - jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, mUpdateArray); - - // client_version - jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion); - - postRequest(jsPost); - mUpdateArray = null; - } catch (JSONException e) { - Log.e(TAG, e.toString()); - e.printStackTrace(); - throw new ActionFailureException("commit update: handing jsonobject failed"); - } - } - } - - /** - * 添加节点更新操作到批量更新数组 - *

- * 如果更新数组中的操作数量超过10个,则立即提交更新 - *

- * - * @param node 要更新的节点对象 - * @throws NetworkFailureException 如果网络请求失败 - * @throws ActionFailureException 如果更新操作添加失败 - */ - public void addUpdateNode(Node node) throws NetworkFailureException { - if (node != null) { - // too many update items may result in an error - // set max to 10 items - if (mUpdateArray != null && mUpdateArray.length() > 10) { - commitUpdate(); - } - - if (mUpdateArray == null) - mUpdateArray = new JSONArray(); - mUpdateArray.put(node.getUpdateAction(getActionId())); - } - } - - /** - * 移动任务 - *

- * 支持在同一任务列表内移动或在不同任务列表之间移动 - *

- * - * @param task 要移动的任务 - * @param preParent 任务原来的父任务列表 - * @param curParent 任务现在的父任务列表 - * @throws NetworkFailureException 如果网络请求失败 - * @throws ActionFailureException 如果任务移动失败 - */ - public void moveTask(Task task, TaskList preParent, TaskList curParent) - throws NetworkFailureException { - commitUpdate(); - try { - JSONObject jsPost = new JSONObject(); - JSONArray actionList = new JSONArray(); - JSONObject action = new JSONObject(); - - // action_list - action.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE, - GTaskStringUtils.GTASK_JSON_ACTION_TYPE_MOVE); - action.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, getActionId()); - action.put(GTaskStringUtils.GTASK_JSON_ID, task.getGid()); - if (preParent == curParent && task.getPriorSibling() != null) { - // put prioring_sibing_id only if moving within the tasklist and - // it is not the first one - action.put(GTaskStringUtils.GTASK_JSON_PRIOR_SIBLING_ID, task.getPriorSibling()); - } - action.put(GTaskStringUtils.GTASK_JSON_SOURCE_LIST, preParent.getGid()); - action.put(GTaskStringUtils.GTASK_JSON_DEST_PARENT, curParent.getGid()); - if (preParent != curParent) { - // put the dest_list only if moving between tasklists - action.put(GTaskStringUtils.GTASK_JSON_DEST_LIST, curParent.getGid()); - } - actionList.put(action); - jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, actionList); - - // client_version - jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion); - - postRequest(jsPost); - - } catch (JSONException e) { - Log.e(TAG, e.toString()); - e.printStackTrace(); - throw new ActionFailureException("move task: handing jsonobject failed"); - } - } - - /** - * 删除节点(任务或任务列表) - * - * @param node 要删除的节点对象 - * @throws NetworkFailureException 如果网络请求失败 - * @throws ActionFailureException 如果节点删除失败 - */ - public void deleteNode(Node node) throws NetworkFailureException { - commitUpdate(); - try { - JSONObject jsPost = new JSONObject(); - JSONArray actionList = new JSONArray(); - - // action_list - node.setDeleted(true); - actionList.put(node.getUpdateAction(getActionId())); - jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, actionList); - - // client_version - jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion); - - postRequest(jsPost); - mUpdateArray = null; - } catch (JSONException e) { - Log.e(TAG, e.toString()); - e.printStackTrace(); - throw new ActionFailureException("delete node: handing jsonobject failed"); - } - } - - /** - * 获取所有任务列表 - * - * @return 包含所有任务列表的JSON数组 - * @throws NetworkFailureException 如果网络请求失败 - * @throws ActionFailureException 如果获取任务列表失败 - */ - public JSONArray getTaskLists() throws NetworkFailureException { - if (!mLoggedin) { - Log.e(TAG, "please login first"); - throw new ActionFailureException("not logged in"); - } - - try { - HttpGet httpGet = new HttpGet(mGetUrl); - HttpResponse response = null; - response = mHttpClient.execute(httpGet); - - // get the task list - String resString = getResponseContent(response.getEntity()); - String jsBegin = "_setup("; - String jsEnd = ")}"; - int begin = resString.indexOf(jsBegin); - int end = resString.lastIndexOf(jsEnd); - String jsString = null; - if (begin != -1 && end != -1 && begin < end) { - jsString = resString.substring(begin + jsBegin.length(), end); - } - JSONObject js = new JSONObject(jsString); - return js.getJSONObject("t").getJSONArray(GTaskStringUtils.GTASK_JSON_LISTS); - } catch (ClientProtocolException e) { - Log.e(TAG, e.toString()); - e.printStackTrace(); - throw new NetworkFailureException("gettasklists: httpget failed"); - } catch (IOException e) { - Log.e(TAG, e.toString()); - e.printStackTrace(); - throw new NetworkFailureException("gettasklists: httpget failed"); - } catch (JSONException e) { - Log.e(TAG, e.toString()); - e.printStackTrace(); - throw new ActionFailureException("get task lists: handing jasonobject failed"); - } - } - - /** - * 获取指定任务列表中的所有任务 - * - * @param listGid 任务列表的Google ID - * @return 包含任务列表中所有任务的JSON数组 - * @throws NetworkFailureException 如果网络请求失败 - * @throws ActionFailureException 如果获取任务失败 - */ - public JSONArray getTaskList(String listGid) throws NetworkFailureException { - commitUpdate(); - try { - JSONObject jsPost = new JSONObject(); - JSONArray actionList = new JSONArray(); - JSONObject action = new JSONObject(); - - // action_list - action.put(GTaskStringUtils.GTASK_JSON_ACTION_TYPE, - GTaskStringUtils.GTASK_JSON_ACTION_TYPE_GETALL); - action.put(GTaskStringUtils.GTASK_JSON_ACTION_ID, getActionId()); - action.put(GTaskStringUtils.GTASK_JSON_LIST_ID, listGid); - action.put(GTaskStringUtils.GTASK_JSON_GET_DELETED, false); - actionList.put(action); - jsPost.put(GTaskStringUtils.GTASK_JSON_ACTION_LIST, actionList); - - // client_version - jsPost.put(GTaskStringUtils.GTASK_JSON_CLIENT_VERSION, mClientVersion); - - JSONObject jsResponse = postRequest(jsPost); - return jsResponse.getJSONArray(GTaskStringUtils.GTASK_JSON_TASKS); - } catch (JSONException e) { - Log.e(TAG, e.toString()); - e.printStackTrace(); - throw new ActionFailureException("get task list: handing jsonobject failed"); - } - } - - /** - * 获取当前同步的Google账号 - * - * @return 当前同步的Google账号 - */ - public Account getSyncAccount() { - return mAccount; - } - - /** - * 重置更新数组 - */ - public void resetUpdateArray() { - mUpdateArray = null; - } -} diff --git a/src/main/java/net/micode/notes/gtask/remote/GTaskManager.java b/src/main/java/net/micode/notes/gtask/remote/GTaskManager.java deleted file mode 100644 index 09c7b79..0000000 --- a/src/main/java/net/micode/notes/gtask/remote/GTaskManager.java +++ /dev/null @@ -1,944 +0,0 @@ -/* - * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.micode.notes.gtask.remote; - -import android.app.Activity; -import android.content.ContentResolver; -import android.content.ContentUris; -import android.content.ContentValues; -import android.content.Context; -import android.database.Cursor; -import android.util.Log; - -import net.micode.notes.R; -import net.micode.notes.data.Notes; -import net.micode.notes.data.Notes.DataColumns; -import net.micode.notes.data.Notes.NoteColumns; -import net.micode.notes.gtask.data.MetaData; -import net.micode.notes.gtask.data.Node; -import net.micode.notes.gtask.data.SqlNote; -import net.micode.notes.gtask.data.Task; -import net.micode.notes.gtask.data.TaskList; -import net.micode.notes.gtask.exception.ActionFailureException; -import net.micode.notes.gtask.exception.NetworkFailureException; -import net.micode.notes.tool.DataUtils; -import net.micode.notes.tool.GTaskStringUtils; - -import org.json.JSONArray; -import org.json.JSONException; -import org.json.JSONObject; - -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Map; - - -/** - * GTaskManager是GTask同步模块的核心管理类,负责协调本地笔记与Google Tasks服务器之间的同步 - *

- * 该类采用单例模式,提供以下主要功能: - * 1. 管理同步状态和进度 - * 2. 初始化远程任务列表 - * 3. 同步本地和远程内容(文件夹和笔记) - * 4. 处理同步冲突和错误 - *

- */ -public class GTaskManager { - private static final String TAG = GTaskManager.class.getSimpleName(); - - /** - * 同步成功状态 - */ - public static final int STATE_SUCCESS = 0; - - /** - * 网络错误状态 - */ - public static final int STATE_NETWORK_ERROR = 1; - - /** - * 内部错误状态 - */ - public static final int STATE_INTERNAL_ERROR = 2; - - /** - * 同步进行中状态 - */ - public static final int STATE_SYNC_IN_PROGRESS = 3; - - /** - * 同步已取消状态 - */ - public static final int STATE_SYNC_CANCELLED = 4; - - /** - * GTaskManager的单例实例 - */ - private static GTaskManager mInstance = null; - - /** - * 用于Google登录的Activity实例 - */ - private Activity mActivity; - - /** - * 应用上下文 - */ - private Context mContext; - - /** - * 内容解析器,用于访问本地数据库 - */ - private ContentResolver mContentResolver; - - /** - * 同步状态标志,表示是否正在进行同步 - */ - private boolean mSyncing; - - /** - * 取消标志,表示同步是否已被取消 - */ - private boolean mCancelled; - - /** - * 远程任务列表的HashMap,键为任务列表的GID - */ - private HashMap mGTaskListHashMap; - - /** - * 所有远程任务的HashMap,键为任务的GID - */ - private HashMap mGTaskHashMap; - - /** - * 元数据的HashMap,键为相关节点的GID - */ - private HashMap mMetaHashMap; - - /** - * 存储元数据的任务列表 - */ - private TaskList mMetaList; - - /** - * 本地已删除笔记的ID集合 - */ - private HashSet mLocalDeleteIdMap; - - /** - * 远程GID到本地NID的映射 - */ - private HashMap mGidToNid; - - /** - * 本地NID到远程GID的映射 - */ - private HashMap mNidToGid; - - /** - * 私有构造方法,初始化GTaskManager的内部状态和集合 - */ - private GTaskManager() { - mSyncing = false; - mCancelled = false; - mGTaskListHashMap = new HashMap(); - mGTaskHashMap = new HashMap(); - mMetaHashMap = new HashMap(); - mMetaList = null; - mLocalDeleteIdMap = new HashSet(); - mGidToNid = new HashMap(); - mNidToGid = new HashMap(); - } - - /** - * 获取GTaskManager的单例实例 - * @return GTaskManager的单例实例 - */ - public static synchronized GTaskManager getInstance() { - if (mInstance == null) { - mInstance = new GTaskManager(); - } - return mInstance; - } - - /** - * 设置用于Google登录的Activity上下文 - * @param activity 用于获取认证令牌的Activity实例 - */ - public synchronized void setActivityContext(Activity activity) { - mActivity = activity; - } - - /** - * 执行GTask同步操作,协调本地笔记与Google Tasks服务器之间的数据同步 - * @param context 应用上下文 - * @param asyncTask 用于发布同步进度的异步任务实例 - * @return 同步结果状态: - * - {@link #STATE_SUCCESS}:同步成功 - * - {@link #STATE_NETWORK_ERROR}:网络错误 - * - {@link #STATE_INTERNAL_ERROR}:内部错误 - * - {@link #STATE_SYNC_IN_PROGRESS}:同步已在进行中 - * - {@link #STATE_SYNC_CANCELLED}:同步被取消 - */ - public int sync(Context context, GTaskASyncTask asyncTask) { - if (mSyncing) { - Log.d(TAG, "Sync is in progress"); - return STATE_SYNC_IN_PROGRESS; - } - mContext = context; - mContentResolver = mContext.getContentResolver(); - mSyncing = true; - mCancelled = false; - mGTaskListHashMap.clear(); - mGTaskHashMap.clear(); - mMetaHashMap.clear(); - mLocalDeleteIdMap.clear(); - mGidToNid.clear(); - mNidToGid.clear(); - - try { - GTaskClient client = GTaskClient.getInstance(); - client.resetUpdateArray(); - - // login google task - if (!mCancelled) { - if (!client.login(mActivity)) { - throw new NetworkFailureException("login google task failed"); - } - } - - // get the task list from google - asyncTask.publishProgess(mContext.getString(R.string.sync_progress_init_list)); - initGTaskList(); - - // do content sync work - asyncTask.publishProgess(mContext.getString(R.string.sync_progress_syncing)); - syncContent(); - } catch (NetworkFailureException e) { - Log.e(TAG, e.toString()); - return STATE_NETWORK_ERROR; - } catch (ActionFailureException e) { - Log.e(TAG, e.toString()); - return STATE_INTERNAL_ERROR; - } catch (Exception e) { - Log.e(TAG, e.toString()); - e.printStackTrace(); - return STATE_INTERNAL_ERROR; - } finally { - mGTaskListHashMap.clear(); - mGTaskHashMap.clear(); - mMetaHashMap.clear(); - mLocalDeleteIdMap.clear(); - mGidToNid.clear(); - mNidToGid.clear(); - mSyncing = false; - } - - return mCancelled ? STATE_SYNC_CANCELLED : STATE_SUCCESS; - } - - /** - * 初始化远程任务列表,从Google Tasks服务器获取所有任务列表和任务 - * @throws NetworkFailureException 网络操作失败时抛出 - */ - private void initGTaskList() throws NetworkFailureException { - if (mCancelled) - return; - GTaskClient client = GTaskClient.getInstance(); - try { - JSONArray jsTaskLists = client.getTaskLists(); - - // init meta list first - mMetaList = null; - for (int i = 0; i < jsTaskLists.length(); i++) { - JSONObject object = jsTaskLists.getJSONObject(i); - String gid = object.getString(GTaskStringUtils.GTASK_JSON_ID); - String name = object.getString(GTaskStringUtils.GTASK_JSON_NAME); - - if (name - .equals(GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_META)) { - mMetaList = new TaskList(); - mMetaList.setContentByRemoteJSON(object); - - // load meta data - JSONArray jsMetas = client.getTaskList(gid); - for (int j = 0; j < jsMetas.length(); j++) { - object = (JSONObject) jsMetas.getJSONObject(j); - MetaData metaData = new MetaData(); - metaData.setContentByRemoteJSON(object); - if (metaData.isWorthSaving()) { - mMetaList.addChildTask(metaData); - if (metaData.getGid() != null) { - mMetaHashMap.put(metaData.getRelatedGid(), metaData); - } - } - } - } - } - - // create meta list if not existed - if (mMetaList == null) { - mMetaList = new TaskList(); - mMetaList.setName(GTaskStringUtils.MIUI_FOLDER_PREFFIX - + GTaskStringUtils.FOLDER_META); - GTaskClient.getInstance().createTaskList(mMetaList); - } - - // init task list - for (int i = 0; i < jsTaskLists.length(); i++) { - JSONObject object = jsTaskLists.getJSONObject(i); - String gid = object.getString(GTaskStringUtils.GTASK_JSON_ID); - String name = object.getString(GTaskStringUtils.GTASK_JSON_NAME); - - if (name.startsWith(GTaskStringUtils.MIUI_FOLDER_PREFFIX) - && !name.equals(GTaskStringUtils.MIUI_FOLDER_PREFFIX - + GTaskStringUtils.FOLDER_META)) { - TaskList tasklist = new TaskList(); - tasklist.setContentByRemoteJSON(object); - mGTaskListHashMap.put(gid, tasklist); - mGTaskHashMap.put(gid, tasklist); - - // load tasks - JSONArray jsTasks = client.getTaskList(gid); - for (int j = 0; j < jsTasks.length(); j++) { - object = (JSONObject) jsTasks.getJSONObject(j); - gid = object.getString(GTaskStringUtils.GTASK_JSON_ID); - Task task = new Task(); - task.setContentByRemoteJSON(object); - if (task.isWorthSaving()) { - task.setMetaInfo(mMetaHashMap.get(gid)); - tasklist.addChildTask(task); - mGTaskHashMap.put(gid, task); - } - } - } - } - } catch (JSONException e) { - Log.e(TAG, e.toString()); - e.printStackTrace(); - throw new ActionFailureException("initGTaskList: handing JSONObject failed"); - } - } - - /** - * 同步本地和远程内容,处理本地删除、文件夹和笔记的同步 - * @throws NetworkFailureException 网络操作失败时抛出 - */ - private void syncContent() throws NetworkFailureException { - int syncType; - Cursor c = null; - String gid; - Node node; - - mLocalDeleteIdMap.clear(); - - if (mCancelled) { - return; - } - - // for local deleted note - try { - c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE, - "(type<>? AND parent_id=?)", new String[] { - String.valueOf(Notes.TYPE_SYSTEM), String.valueOf(Notes.ID_TRASH_FOLER) - }, null); - if (c != null) { - while (c.moveToNext()) { - gid = c.getString(SqlNote.GTASK_ID_COLUMN); - node = mGTaskHashMap.get(gid); - if (node != null) { - mGTaskHashMap.remove(gid); - doContentSync(Node.SYNC_ACTION_DEL_REMOTE, node, c); - } - - mLocalDeleteIdMap.add(c.getLong(SqlNote.ID_COLUMN)); - } - } else { - Log.w(TAG, "failed to query trash folder"); - } - } finally { - if (c != null) { - c.close(); - c = null; - } - } - - // sync folder first - syncFolder(); - - // for note existing in database - try { - c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE, - "(type=? AND parent_id<>?)", new String[] { - String.valueOf(Notes.TYPE_NOTE), String.valueOf(Notes.ID_TRASH_FOLER) - }, NoteColumns.TYPE + " DESC"); - if (c != null) { - while (c.moveToNext()) { - gid = c.getString(SqlNote.GTASK_ID_COLUMN); - node = mGTaskHashMap.get(gid); - if (node != null) { - mGTaskHashMap.remove(gid); - mGidToNid.put(gid, c.getLong(SqlNote.ID_COLUMN)); - mNidToGid.put(c.getLong(SqlNote.ID_COLUMN), gid); - syncType = node.getSyncAction(c); - } else { - if (c.getString(SqlNote.GTASK_ID_COLUMN).trim().length() == 0) { - // local add - syncType = Node.SYNC_ACTION_ADD_REMOTE; - } else { - // remote delete - syncType = Node.SYNC_ACTION_DEL_LOCAL; - } - } - doContentSync(syncType, node, c); - } - } else { - Log.w(TAG, "failed to query existing note in database"); - } - - } finally { - if (c != null) { - c.close(); - c = null; - } - } - - // go through remaining items - Iterator> iter = mGTaskHashMap.entrySet().iterator(); - while (iter.hasNext()) { - Map.Entry entry = iter.next(); - node = entry.getValue(); - doContentSync(Node.SYNC_ACTION_ADD_LOCAL, node, null); - } - - // mCancelled can be set by another thread, so we neet to check one by - // one - // clear local delete table - if (!mCancelled) { - if (!DataUtils.batchDeleteNotes(mContentResolver, mLocalDeleteIdMap)) { - throw new ActionFailureException("failed to batch-delete local deleted notes"); - } - } - - // refresh local sync id - if (!mCancelled) { - GTaskClient.getInstance().commitUpdate(); - refreshLocalSyncId(); - } - - } - - /** - * 同步文件夹,包括根文件夹、通话记录文件夹和普通文件夹 - * @throws NetworkFailureException 网络操作失败时抛出 - */ - private void syncFolder() throws NetworkFailureException { - Cursor c = null; - String gid; - Node node; - int syncType; - - if (mCancelled) { - return; - } - - // for root folder - try { - c = mContentResolver.query(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, - Notes.ID_ROOT_FOLDER), SqlNote.PROJECTION_NOTE, null, null, null); - if (c != null) { - c.moveToNext(); - gid = c.getString(SqlNote.GTASK_ID_COLUMN); - node = mGTaskHashMap.get(gid); - if (node != null) { - mGTaskHashMap.remove(gid); - mGidToNid.put(gid, (long) Notes.ID_ROOT_FOLDER); - mNidToGid.put((long) Notes.ID_ROOT_FOLDER, gid); - // for system folder, only update remote name if necessary - if (!node.getName().equals( - GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_DEFAULT)) - doContentSync(Node.SYNC_ACTION_UPDATE_REMOTE, node, c); - } else { - doContentSync(Node.SYNC_ACTION_ADD_REMOTE, node, c); - } - } else { - Log.w(TAG, "failed to query root folder"); - } - } finally { - if (c != null) { - c.close(); - c = null; - } - } - - // for call-note folder - try { - c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE, "(_id=?)", - new String[] { - String.valueOf(Notes.ID_CALL_RECORD_FOLDER) - }, null); - if (c != null) { - if (c.moveToNext()) { - gid = c.getString(SqlNote.GTASK_ID_COLUMN); - node = mGTaskHashMap.get(gid); - if (node != null) { - mGTaskHashMap.remove(gid); - mGidToNid.put(gid, (long) Notes.ID_CALL_RECORD_FOLDER); - mNidToGid.put((long) Notes.ID_CALL_RECORD_FOLDER, gid); - // for system folder, only update remote name if - // necessary - if (!node.getName().equals( - GTaskStringUtils.MIUI_FOLDER_PREFFIX - + GTaskStringUtils.FOLDER_CALL_NOTE)) - doContentSync(Node.SYNC_ACTION_UPDATE_REMOTE, node, c); - } else { - doContentSync(Node.SYNC_ACTION_ADD_REMOTE, node, c); - } - } - } else { - Log.w(TAG, "failed to query call note folder"); - } - } finally { - if (c != null) { - c.close(); - c = null; - } - } - - // for local existing folders - try { - c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE, - "(type=? AND parent_id<>?)", new String[] { - String.valueOf(Notes.TYPE_FOLDER), String.valueOf(Notes.ID_TRASH_FOLER) - }, NoteColumns.TYPE + " DESC"); - if (c != null) { - while (c.moveToNext()) { - gid = c.getString(SqlNote.GTASK_ID_COLUMN); - node = mGTaskHashMap.get(gid); - if (node != null) { - mGTaskHashMap.remove(gid); - mGidToNid.put(gid, c.getLong(SqlNote.ID_COLUMN)); - mNidToGid.put(c.getLong(SqlNote.ID_COLUMN), gid); - syncType = node.getSyncAction(c); - } else { - if (c.getString(SqlNote.GTASK_ID_COLUMN).trim().length() == 0) { - // local add - syncType = Node.SYNC_ACTION_ADD_REMOTE; - } else { - // remote delete - syncType = Node.SYNC_ACTION_DEL_LOCAL; - } - } - doContentSync(syncType, node, c); - } - } else { - Log.w(TAG, "failed to query existing folder"); - } - } finally { - if (c != null) { - c.close(); - c = null; - } - } - - // for remote add folders - Iterator> iter = mGTaskListHashMap.entrySet().iterator(); - while (iter.hasNext()) { - Map.Entry entry = iter.next(); - gid = entry.getKey(); - node = entry.getValue(); - if (mGTaskHashMap.containsKey(gid)) { - mGTaskHashMap.remove(gid); - doContentSync(Node.SYNC_ACTION_ADD_LOCAL, node, null); - } - } - - if (!mCancelled) - GTaskClient.getInstance().commitUpdate(); - } - - /** - * 根据同步类型执行不同的同步操作 - * @param syncType 同步类型,来自{@link Node}类的同步操作常量 - * @param node 要同步的节点(可以是TaskList或Task) - * @param c 本地数据库游标,用于获取本地数据 - * @throws NetworkFailureException 网络操作失败时抛出 - */ - private void doContentSync(int syncType, Node node, Cursor c) throws NetworkFailureException { - if (mCancelled) { - return; - } - - MetaData meta; - switch (syncType) { - case Node.SYNC_ACTION_ADD_LOCAL: - addLocalNode(node); - break; - case Node.SYNC_ACTION_ADD_REMOTE: - addRemoteNode(node, c); - break; - case Node.SYNC_ACTION_DEL_LOCAL: - meta = mMetaHashMap.get(c.getString(SqlNote.GTASK_ID_COLUMN)); - if (meta != null) { - GTaskClient.getInstance().deleteNode(meta); - } - mLocalDeleteIdMap.add(c.getLong(SqlNote.ID_COLUMN)); - break; - case Node.SYNC_ACTION_DEL_REMOTE: - meta = mMetaHashMap.get(node.getGid()); - if (meta != null) { - GTaskClient.getInstance().deleteNode(meta); - } - GTaskClient.getInstance().deleteNode(node); - break; - case Node.SYNC_ACTION_UPDATE_LOCAL: - updateLocalNode(node, c); - break; - case Node.SYNC_ACTION_UPDATE_REMOTE: - updateRemoteNode(node, c); - break; - case Node.SYNC_ACTION_UPDATE_CONFLICT: - // merging both modifications maybe a good idea - // right now just use local update simply - updateRemoteNode(node, c); - break; - case Node.SYNC_ACTION_NONE: - break; - case Node.SYNC_ACTION_ERROR: - default: - throw new ActionFailureException("unkown sync action type"); - } - } - - /** - * 将远程节点添加到本地数据库 - * @param node 要添加的远程节点 - * @throws NetworkFailureException 网络操作失败时抛出 - */ - private void addLocalNode(Node node) throws NetworkFailureException { - if (mCancelled) { - return; - } - - SqlNote sqlNote; - if (node instanceof TaskList) { - if (node.getName().equals( - GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_DEFAULT)) { - sqlNote = new SqlNote(mContext, Notes.ID_ROOT_FOLDER); - } else if (node.getName().equals( - GTaskStringUtils.MIUI_FOLDER_PREFFIX + GTaskStringUtils.FOLDER_CALL_NOTE)) { - sqlNote = new SqlNote(mContext, Notes.ID_CALL_RECORD_FOLDER); - } else { - sqlNote = new SqlNote(mContext); - sqlNote.setContent(node.getLocalJSONFromContent()); - sqlNote.setParentId(Notes.ID_ROOT_FOLDER); - } - } else { - sqlNote = new SqlNote(mContext); - JSONObject js = node.getLocalJSONFromContent(); - try { - if (js.has(GTaskStringUtils.META_HEAD_NOTE)) { - JSONObject note = js.getJSONObject(GTaskStringUtils.META_HEAD_NOTE); - if (note.has(NoteColumns.ID)) { - long id = note.getLong(NoteColumns.ID); - if (DataUtils.existInNoteDatabase(mContentResolver, id)) { - // the id is not available, have to create a new one - note.remove(NoteColumns.ID); - } - } - } - - if (js.has(GTaskStringUtils.META_HEAD_DATA)) { - JSONArray dataArray = js.getJSONArray(GTaskStringUtils.META_HEAD_DATA); - for (int i = 0; i < dataArray.length(); i++) { - JSONObject data = dataArray.getJSONObject(i); - if (data.has(DataColumns.ID)) { - long dataId = data.getLong(DataColumns.ID); - if (DataUtils.existInDataDatabase(mContentResolver, dataId)) { - // the data id is not available, have to create - // a new one - data.remove(DataColumns.ID); - } - } - } - - } - } catch (JSONException e) { - Log.w(TAG, e.toString()); - e.printStackTrace(); - } - sqlNote.setContent(js); - - Long parentId = mGidToNid.get(((Task) node).getParent().getGid()); - if (parentId == null) { - Log.e(TAG, "cannot find task's parent id locally"); - throw new ActionFailureException("cannot add local node"); - } - sqlNote.setParentId(parentId.longValue()); - } - - // create the local node - sqlNote.setGtaskId(node.getGid()); - sqlNote.commit(false); - - // update gid-nid mapping - mGidToNid.put(node.getGid(), sqlNote.getId()); - mNidToGid.put(sqlNote.getId(), node.getGid()); - - // update meta - updateRemoteMeta(node.getGid(), sqlNote); - } - - /** - * 更新本地节点,将远程节点的内容更新到本地数据库 - * @param node 要同步的远程节点 - * @param c 本地数据库游标,用于获取本地数据 - * @throws NetworkFailureException 网络操作失败时抛出 - */ - private void updateLocalNode(Node node, Cursor c) throws NetworkFailureException { - if (mCancelled) { - return; - } - - SqlNote sqlNote; - // update the note locally - sqlNote = new SqlNote(mContext, c); - sqlNote.setContent(node.getLocalJSONFromContent()); - - Long parentId = (node instanceof Task) ? mGidToNid.get(((Task) node).getParent().getGid()) - : new Long(Notes.ID_ROOT_FOLDER); - if (parentId == null) { - Log.e(TAG, "cannot find task's parent id locally"); - throw new ActionFailureException("cannot update local node"); - } - sqlNote.setParentId(parentId.longValue()); - sqlNote.commit(true); - - // update meta info - updateRemoteMeta(node.getGid(), sqlNote); - } - - /** - * 将本地节点添加到远程服务器 - * @param node 要同步的远程节点(可以为null,表示创建新节点) - * @param c 本地数据库游标,用于获取本地数据 - * @throws NetworkFailureException 网络操作失败时抛出 - */ - private void addRemoteNode(Node node, Cursor c) throws NetworkFailureException { - if (mCancelled) { - return; - } - - SqlNote sqlNote = new SqlNote(mContext, c); - Node n; - - // update remotely - if (sqlNote.isNoteType()) { - Task task = new Task(); - task.setContentByLocalJSON(sqlNote.getContent()); - - String parentGid = mNidToGid.get(sqlNote.getParentId()); - if (parentGid == null) { - Log.e(TAG, "cannot find task's parent tasklist"); - throw new ActionFailureException("cannot add remote task"); - } - mGTaskListHashMap.get(parentGid).addChildTask(task); - - GTaskClient.getInstance().createTask(task); - n = (Node) task; - - // add meta - updateRemoteMeta(task.getGid(), sqlNote); - } else { - TaskList tasklist = null; - - // we need to skip folder if it has already existed - String folderName = GTaskStringUtils.MIUI_FOLDER_PREFFIX; - if (sqlNote.getId() == Notes.ID_ROOT_FOLDER) - folderName += GTaskStringUtils.FOLDER_DEFAULT; - else if (sqlNote.getId() == Notes.ID_CALL_RECORD_FOLDER) - folderName += GTaskStringUtils.FOLDER_CALL_NOTE; - else - folderName += sqlNote.getSnippet(); - - Iterator> iter = mGTaskListHashMap.entrySet().iterator(); - while (iter.hasNext()) { - Map.Entry entry = iter.next(); - String gid = entry.getKey(); - TaskList list = entry.getValue(); - - if (list.getName().equals(folderName)) { - tasklist = list; - if (mGTaskHashMap.containsKey(gid)) { - mGTaskHashMap.remove(gid); - } - break; - } - } - - // no match we can add now - if (tasklist == null) { - tasklist = new TaskList(); - tasklist.setContentByLocalJSON(sqlNote.getContent()); - GTaskClient.getInstance().createTaskList(tasklist); - mGTaskListHashMap.put(tasklist.getGid(), tasklist); - } - n = (Node) tasklist; - } - - // update local note - sqlNote.setGtaskId(n.getGid()); - sqlNote.commit(false); - sqlNote.resetLocalModified(); - sqlNote.commit(true); - - // gid-id mapping - mGidToNid.put(n.getGid(), sqlNote.getId()); - mNidToGid.put(sqlNote.getId(), n.getGid()); - } - - /** - * 更新远程节点,将本地节点的内容更新到远程服务器 - * @param node 要更新的远程节点 - * @param c 本地数据库游标,用于获取本地数据 - * @throws NetworkFailureException 网络操作失败时抛出 - */ - private void updateRemoteNode(Node node, Cursor c) throws NetworkFailureException { - if (mCancelled) { - return; - } - - SqlNote sqlNote = new SqlNote(mContext, c); - - // update remotely - node.setContentByLocalJSON(sqlNote.getContent()); - GTaskClient.getInstance().addUpdateNode(node); - - // update meta - updateRemoteMeta(node.getGid(), sqlNote); - - // move task if necessary - if (sqlNote.isNoteType()) { - Task task = (Task) node; - TaskList preParentList = task.getParent(); - - String curParentGid = mNidToGid.get(sqlNote.getParentId()); - if (curParentGid == null) { - Log.e(TAG, "cannot find task's parent tasklist"); - throw new ActionFailureException("cannot update remote task"); - } - TaskList curParentList = mGTaskListHashMap.get(curParentGid); - - if (preParentList != curParentList) { - preParentList.removeChildTask(task); - curParentList.addChildTask(task); - GTaskClient.getInstance().moveTask(task, preParentList, curParentList); - } - } - - // clear local modified flag - sqlNote.resetLocalModified(); - sqlNote.commit(true); - } - - /** - * 更新远程元数据,将本地笔记的元数据信息同步到远程服务器 - * @param gid 远程节点的GID - * @param sqlNote 本地笔记对象 - * @throws NetworkFailureException 网络操作失败时抛出 - */ - private void updateRemoteMeta(String gid, SqlNote sqlNote) throws NetworkFailureException { - if (sqlNote != null && sqlNote.isNoteType()) { - MetaData metaData = mMetaHashMap.get(gid); - if (metaData != null) { - metaData.setMeta(gid, sqlNote.getContent()); - GTaskClient.getInstance().addUpdateNode(metaData); - } else { - metaData = new MetaData(); - metaData.setMeta(gid, sqlNote.getContent()); - mMetaList.addChildTask(metaData); - mMetaHashMap.put(gid, metaData); - GTaskClient.getInstance().createTask(metaData); - } - } - } - - /** - * 刷新本地同步ID,根据远程数据更新本地节点的同步时间戳 - * @throws NetworkFailureException 网络操作失败时抛出 - */ - private void refreshLocalSyncId() throws NetworkFailureException { - if (mCancelled) { - return; - } - - // get the latest gtask list - mGTaskHashMap.clear(); - mGTaskListHashMap.clear(); - mMetaHashMap.clear(); - initGTaskList(); - - Cursor c = null; - try { - c = mContentResolver.query(Notes.CONTENT_NOTE_URI, SqlNote.PROJECTION_NOTE, - "(type<>? AND parent_id<>?)", new String[] { - String.valueOf(Notes.TYPE_SYSTEM), String.valueOf(Notes.ID_TRASH_FOLER) - }, NoteColumns.TYPE + " DESC"); - if (c != null) { - while (c.moveToNext()) { - String gid = c.getString(SqlNote.GTASK_ID_COLUMN); - Node node = mGTaskHashMap.get(gid); - if (node != null) { - mGTaskHashMap.remove(gid); - ContentValues values = new ContentValues(); - values.put(NoteColumns.SYNC_ID, node.getLastModified()); - mContentResolver.update(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, - c.getLong(SqlNote.ID_COLUMN)), values, null, null); - } else { - Log.e(TAG, "something is missed"); - throw new ActionFailureException( - "some local items don't have gid after sync"); - } - } - } else { - Log.w(TAG, "failed to query local note to refresh sync id"); - } - } finally { - if (c != null) { - c.close(); - c = null; - } - } - } - - /** - * 获取当前同步账户的名称 - * @return 同步账户名称 - */ - public String getSyncAccount() { - return GTaskClient.getInstance().getSyncAccount().name; - } - - /** - * 取消当前正在进行的同步操作 - */ - public void cancelSync() { - mCancelled = true; - } -} diff --git a/src/main/java/net/micode/notes/gtask/remote/GTaskSyncService.java b/src/main/java/net/micode/notes/gtask/remote/GTaskSyncService.java deleted file mode 100644 index 512df71..0000000 --- a/src/main/java/net/micode/notes/gtask/remote/GTaskSyncService.java +++ /dev/null @@ -1,191 +0,0 @@ -/* - * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.micode.notes.gtask.remote; - -import android.app.Activity; -import android.app.Service; -import android.content.Context; -import android.content.Intent; -import android.os.Bundle; -import android.os.IBinder; - -/** - * GTaskSyncService是GTask同步的服务类,负责管理GTask同步的启动、取消和进度通知 - *

- * 该服务提供了以下主要功能: - * 1. 启动GTask同步操作 - * 2. 取消正在进行的同步操作 - * 3. 通过广播通知同步状态和进度 - *

- */ -public class GTaskSyncService extends Service { - /** - * 同步操作类型的Intent参数名称 - */ - public final static String ACTION_STRING_NAME = "sync_action_type"; - - /** - * 启动同步操作的常量 - */ - public final static int ACTION_START_SYNC = 0; - - /** - * 取消同步操作的常量 - */ - public final static int ACTION_CANCEL_SYNC = 1; - - /** - * 无效操作的常量 - */ - public final static int ACTION_INVALID = 2; - - /** - * GTask同步服务广播的Intent名称 - */ - public final static String GTASK_SERVICE_BROADCAST_NAME = "net.micode.notes.gtask.remote.gtask_sync_service"; - - /** - * 广播中表示同步状态的参数名称 - */ - public final static String GTASK_SERVICE_BROADCAST_IS_SYNCING = "isSyncing"; - - /** - * 广播中表示同步进度的参数名称 - */ - public final static String GTASK_SERVICE_BROADCAST_PROGRESS_MSG = "progressMsg"; - - /** - * 当前正在执行的同步任务实例 - */ - private static GTaskASyncTask mSyncTask = null; - - /** - * 当前同步进度信息 - */ - private static String mSyncProgress = ""; - - /** - * 启动同步操作 - */ - private void startSync() { - if (mSyncTask == null) { - mSyncTask = new GTaskASyncTask(this, new GTaskASyncTask.OnCompleteListener() { - public void onComplete() { - mSyncTask = null; - sendBroadcast(""); - stopSelf(); - } - }); - sendBroadcast(""); - mSyncTask.execute(); - } - } - - /** - * 取消正在进行的同步操作 - */ - private void cancelSync() { - if (mSyncTask != null) { - mSyncTask.cancelSync(); - } - } - - @Override - public void onCreate() { - mSyncTask = null; - } - - @Override - public int onStartCommand(Intent intent, int flags, int startId) { - Bundle bundle = intent.getExtras(); - if (bundle != null && bundle.containsKey(ACTION_STRING_NAME)) { - switch (bundle.getInt(ACTION_STRING_NAME, ACTION_INVALID)) { - case ACTION_START_SYNC: - startSync(); - break; - case ACTION_CANCEL_SYNC: - cancelSync(); - break; - default: - break; - } - return START_STICKY; - } - return super.onStartCommand(intent, flags, startId); - } - - @Override - public void onLowMemory() { - if (mSyncTask != null) { - mSyncTask.cancelSync(); - } - } - - @Override - public IBinder onBind(Intent intent) { - return null; - } - - /** - * 发送同步状态广播 - * @param msg 同步进度消息 - */ - public void sendBroadcast(String msg) { - mSyncProgress = msg; - Intent intent = new Intent(GTASK_SERVICE_BROADCAST_NAME); - intent.putExtra(GTASK_SERVICE_BROADCAST_IS_SYNCING, mSyncTask != null); - intent.putExtra(GTASK_SERVICE_BROADCAST_PROGRESS_MSG, msg); - sendBroadcast(intent); - } - - /** - * 启动GTask同步服务 - * @param activity 调用该方法的Activity实例 - */ - public static void startSync(Activity activity) { - GTaskManager.getInstance().setActivityContext(activity); - Intent intent = new Intent(activity, GTaskSyncService.class); - intent.putExtra(GTaskSyncService.ACTION_STRING_NAME, GTaskSyncService.ACTION_START_SYNC); - activity.startService(intent); - } - - /** - * 取消GTask同步服务 - * @param context 调用该方法的上下文 - */ - public static void cancelSync(Context context) { - Intent intent = new Intent(context, GTaskSyncService.class); - intent.putExtra(GTaskSyncService.ACTION_STRING_NAME, GTaskSyncService.ACTION_CANCEL_SYNC); - context.startService(intent); - } - - /** - * 检查是否正在进行同步 - * @return 如果正在同步返回true,否则返回false - */ - public static boolean isSyncing() { - return mSyncTask != null; - } - - /** - * 获取当前同步进度信息 - * @return 当前同步进度字符串 - */ - public static String getProgressString() { - return mSyncProgress; - } -} diff --git a/src/main/java/net/micode/notes/model/Note.java b/src/main/java/net/micode/notes/model/Note.java deleted file mode 100644 index 4c7931d..0000000 --- a/src/main/java/net/micode/notes/model/Note.java +++ /dev/null @@ -1,430 +0,0 @@ -/* - * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.micode.notes.model; -import android.content.ContentProviderOperation; -import android.content.ContentProviderResult; -import android.content.ContentUris; -import android.content.ContentValues; -import android.content.Context; -import android.content.OperationApplicationException; -import android.net.Uri; -import android.os.RemoteException; -import android.util.Log; - -import net.micode.notes.data.Notes; -import net.micode.notes.data.Notes.CallNote; -import net.micode.notes.data.Notes.DataColumns; -import net.micode.notes.data.Notes.NoteColumns; -import net.micode.notes.data.Notes.TextNote; - -import java.util.ArrayList; - - -/** - * 笔记核心数据模型类,负责笔记的创建、更新和同步操作。 - *

- * 该类是笔记应用的核心数据模型,提供了笔记的创建、更新和同步功能, - * 支持文本笔记和通话笔记两种类型,并通过ContentResolver与数据库进行交互。 - *

- */ -public class Note { - /** - * 用于存储笔记基本属性的变更值 - */ - private ContentValues mNoteDiffValues; - - /** - * 用于存储笔记具体数据(文本或通话数据) - */ - private NoteData mNoteData; - - /** - * 日志标签 - */ - private static final String TAG = Note.class.getSimpleName(); - /** - * 创建新笔记并返回其ID - *

- * 在数据库中创建一个新的笔记记录,并返回生成的笔记ID。 - * 新笔记将包含默认的创建时间、修改时间、类型等信息。 - *

- * - * @param context 应用上下文,用于获取ContentResolver - * @param folderId 笔记所属文件夹ID - * @return 新创建的笔记ID - */ - public static synchronized long getNewNoteId(Context context, long folderId) { - // Create a new note in the database - ContentValues values = new ContentValues(); - long createdTime = System.currentTimeMillis(); - values.put(NoteColumns.CREATED_DATE, createdTime); - values.put(NoteColumns.MODIFIED_DATE, createdTime); - values.put(NoteColumns.TYPE, Notes.TYPE_NOTE); - values.put(NoteColumns.LOCAL_MODIFIED, 1); - values.put(NoteColumns.PARENT_ID, folderId); - Uri uri = context.getContentResolver().insert(Notes.CONTENT_NOTE_URI, values); - - long noteId = 0; - try { - noteId = Long.valueOf(uri.getPathSegments().get(1)); - } catch (NumberFormatException e) { - Log.e(TAG, "Get note id error :" + e.toString()); - noteId = 0; - } - if (noteId == -1) { - throw new IllegalStateException("Wrong note id:" + noteId); - } - return noteId; - } - - /** - * 构造方法,初始化笔记数据模型 - */ - public Note() { - mNoteDiffValues = new ContentValues(); - mNoteData = new NoteData(); - } - - /** - * 设置笔记的基本属性值 - *

- * 更新笔记的基本属性,并标记为本地修改状态,同时更新修改时间。 - *

- * - * @param key 属性键名,对应NoteColumns中的字段名 - * @param value 属性值 - */ - public void setNoteValue(String key, String value) { - mNoteDiffValues.put(key, value); - mNoteDiffValues.put(NoteColumns.LOCAL_MODIFIED, 1); - mNoteDiffValues.put(NoteColumns.MODIFIED_DATE, System.currentTimeMillis()); - } - - /** - * 设置笔记文本数据 - *

- * 更新笔记的文本内容数据,并标记为本地修改状态。 - *

- * - * @param key 文本数据键名,对应TextNote中的字段名 - * @param value 文本数据值 - */ - public void setTextData(String key, String value) { - mNoteData.setTextData(key, value); - } - - /** - * 设置文本数据ID - *

- * 设置与当前笔记关联的文本数据记录ID。 - *

- * - * @param id 文本数据ID - */ - public void setTextDataId(long id) { - mNoteData.setTextDataId(id); - } - - /** - * 获取文本数据ID - *

- * 获取与当前笔记关联的文本数据记录ID。 - *

- * - * @return 文本数据ID - */ - public long getTextDataId() { - return mNoteData.mTextDataId; - } - - /** - * 设置通话数据ID - *

- * 设置与当前笔记关联的通话数据记录ID。 - *

- * - * @param id 通话数据ID - */ - public void setCallDataId(long id) { - mNoteData.setCallDataId(id); - } - - /** - * 设置通话数据 - *

- * 更新笔记的通话内容数据,并标记为本地修改状态。 - *

- * - * @param key 通话数据键名,对应CallNote中的字段名 - * @param value 通话数据值 - */ - public void setCallData(String key, String value) { - mNoteData.setCallData(key, value); - } - - /** - * 检查笔记是否在本地被修改 - *

- * 检查笔记的基本属性或具体数据是否在本地被修改过。 - *

- * - * @return 如果有本地修改则返回true,否则返回false - */ - public boolean isLocalModified() { - return mNoteDiffValues.size() > 0 || mNoteData.isLocalModified(); - } - - /** - * 执行笔记同步操作,将本地修改提交到数据库 - *

- * 将本地对笔记的修改同步到数据库中,包括基本属性和具体数据的更新。 - * 如果同步失败,会记录错误日志但仍尝试完成数据更新。 - *

- * - * @param context 应用上下文,用于获取ContentResolver - * @param noteId 笔记ID - * @return 同步成功返回true,失败返回false - */ - public boolean syncNote(Context context, long noteId) { - if (noteId <= 0) { - throw new IllegalArgumentException("Wrong note id:" + noteId); - } - - if (!isLocalModified()) { - return true; - } - - /** - * 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 - */ - 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(); - - if (mNoteData.isLocalModified() - && (mNoteData.pushIntoContentResolver(context, noteId) == null)) { - return false; - } - - return true; - } - - /** - * 笔记数据内部类,负责管理笔记的文本和通话数据。 - *

- * 该内部类封装了笔记的具体内容数据,包括文本笔记和通话笔记, - * 并提供了数据的设置和持久化方法。 - *

- */ - private class NoteData { - /** - * 文本数据ID - */ - private long mTextDataId; - - /** - * 文本数据内容 - */ - private ContentValues mTextDataValues; - - /** - * 通话数据ID - */ - private long mCallDataId; - - /** - * 通话数据内容 - */ - private ContentValues mCallDataValues; - - /** - * 日志标签 - */ - private static final String TAG = NoteData.class.getSimpleName(); - - /** - * 构造方法,初始化笔记数据 - */ - public NoteData() { - mTextDataValues = new ContentValues(); - mCallDataValues = new ContentValues(); - mTextDataId = 0; - mCallDataId = 0; - } - - /** - * 检查笔记数据是否在本地被修改 - *

- * 检查文本数据或通话数据是否在本地被修改过。 - *

- * - * @return 如果有本地修改则返回true,否则返回false - */ - boolean isLocalModified() { - return mTextDataValues.size() > 0 || mCallDataValues.size() > 0; - } - - /** - * 设置文本数据ID - *

- * 设置与当前笔记关联的文本数据记录ID。 - *

- * - * @param id 文本数据ID - */ - void setTextDataId(long id) { - if(id <= 0) { - throw new IllegalArgumentException("Text data id should larger than 0"); - } - mTextDataId = id; - } - - /** - * 设置通话数据ID - *

- * 设置与当前笔记关联的通话数据记录ID。 - *

- * - * @param id 通话数据ID - */ - void setCallDataId(long id) { - if (id <= 0) { - throw new IllegalArgumentException("Call data id should larger than 0"); - } - mCallDataId = id; - } - - /** - * 设置通话数据 - *

- * 更新笔记的通话内容数据,并标记为本地修改状态。 - *

- * - * @param key 通话数据键名,对应CallNote中的字段名 - * @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 文本数据键名,对应TextNote中的字段名 - * @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进行持久化 - *

- * 将本地修改的文本数据或通话数据持久化到数据库中。 - * 如果数据ID为0,则执行插入操作;否则执行更新操作。 - *

- * - * @param context 应用上下文,用于获取ContentResolver - * @param noteId 笔记ID - * @return 成功返回笔记URI,失败返回null - */ - Uri pushIntoContentResolver(Context context, long noteId) { - /** - * Check for safety - */ - if (noteId <= 0) { - throw new IllegalArgumentException("Wrong note id:" + noteId); - } - - ArrayList operationList = new ArrayList(); - ContentProviderOperation.Builder builder = null; - - if(mTextDataValues.size() > 0) { - mTextDataValues.put(DataColumns.NOTE_ID, noteId); - if (mTextDataId == 0) { - mTextDataValues.put(DataColumns.MIME_TYPE, TextNote.CONTENT_ITEM_TYPE); - Uri uri = context.getContentResolver().insert(Notes.CONTENT_DATA_URI, - mTextDataValues); - try { - setTextDataId(Long.valueOf(uri.getPathSegments().get(1))); - } catch (NumberFormatException e) { - Log.e(TAG, "Insert new text data fail with noteId" + noteId); - mTextDataValues.clear(); - return null; - } - } else { - builder = ContentProviderOperation.newUpdate(ContentUris.withAppendedId( - Notes.CONTENT_DATA_URI, mTextDataId)); - builder.withValues(mTextDataValues); - operationList.add(builder.build()); - } - mTextDataValues.clear(); - } - - if(mCallDataValues.size() > 0) { - mCallDataValues.put(DataColumns.NOTE_ID, noteId); - if (mCallDataId == 0) { - mCallDataValues.put(DataColumns.MIME_TYPE, CallNote.CONTENT_ITEM_TYPE); - Uri uri = context.getContentResolver().insert(Notes.CONTENT_DATA_URI, - mCallDataValues); - try { - setCallDataId(Long.valueOf(uri.getPathSegments().get(1))); - } catch (NumberFormatException e) { - Log.e(TAG, "Insert new call data fail with noteId" + noteId); - mCallDataValues.clear(); - return null; - } - } else { - builder = ContentProviderOperation.newUpdate(ContentUris.withAppendedId( - Notes.CONTENT_DATA_URI, mCallDataId)); - builder.withValues(mCallDataValues); - operationList.add(builder.build()); - } - mCallDataValues.clear(); - } - - if (operationList.size() > 0) { - try { - ContentProviderResult[] results = context.getContentResolver().applyBatch( - Notes.AUTHORITY, operationList); - return (results == null || results.length == 0 || results[0] == null) ? null - : ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId); - } catch (RemoteException e) { - Log.e(TAG, String.format("%s: %s", e.toString(), e.getMessage())); - return null; - } catch (OperationApplicationException e) { - Log.e(TAG, String.format("%s: %s", e.toString(), e.getMessage())); - return null; - } - } - return null; - } - } -} diff --git a/src/main/java/net/micode/notes/model/WorkingNote.java b/src/main/java/net/micode/notes/model/WorkingNote.java deleted file mode 100644 index 36003cc..0000000 --- a/src/main/java/net/micode/notes/model/WorkingNote.java +++ /dev/null @@ -1,727 +0,0 @@ -/* - * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.micode.notes.model; - -import android.appwidget.AppWidgetManager; -import android.content.ContentUris; -import android.content.Context; -import android.database.Cursor; -import android.text.TextUtils; -import android.util.Log; - -import net.micode.notes.data.Notes; -import net.micode.notes.data.Notes.CallNote; -import net.micode.notes.data.Notes.DataColumns; -import net.micode.notes.data.Notes.DataConstants; -import net.micode.notes.data.Notes.NoteColumns; -import net.micode.notes.data.Notes.TextNote; -import net.micode.notes.tool.ResourceParser.NoteBgResources; - - -/** - * 工作笔记类,负责管理笔记的业务逻辑和UI状态。 - *

- * 该类是笔记应用的业务逻辑封装类,提供了笔记的创建、加载、保存等功能, - * 负责管理笔记的UI状态和业务逻辑,是UI层与数据层之间的桥梁。 - *

- */ -public class WorkingNote { - /** - * 内部笔记数据对象 - */ - private Note mNote; - - /** - * 笔记ID - */ - private long mNoteId; - - /** - * 笔记内容 - */ - private String mContent; - - /** - * 笔记模式(普通模式或清单模式) - */ - 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.class.getSimpleName(); - - /** - * 删除标记 - */ - private boolean mIsDeleted; - - /** - * 笔记设置变更监听器 - */ - private NoteSettingChangedListener mNoteSettingStatusListener; - - /** - * 数据查询投影,用于从ContentResolver获取笔记数据 - */ - public static final String[] DATA_PROJECTION = new String[] { - DataColumns.ID, - DataColumns.CONTENT, - DataColumns.MIME_TYPE, - DataColumns.DATA1, - DataColumns.DATA2, - DataColumns.DATA3, - DataColumns.DATA4, - }; - - /** - * 笔记查询投影,用于从ContentResolver获取笔记基本信息 - */ - public static final String[] NOTE_PROJECTION = new String[] { - NoteColumns.PARENT_ID, - NoteColumns.ALERTED_DATE, - NoteColumns.BG_COLOR_ID, - NoteColumns.WIDGET_ID, - NoteColumns.WIDGET_TYPE, - NoteColumns.MODIFIED_DATE - }; - - /** - * 数据查询结果列索引:数据ID - */ - 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; - - /** - * 笔记查询结果列索引:父文件夹ID - */ - private static final int NOTE_PARENT_ID_COLUMN = 0; - - /** - * 笔记查询结果列索引:提醒日期 - */ - private static final int NOTE_ALERTED_DATE_COLUMN = 1; - - /** - * 笔记查询结果列索引:背景颜色ID - */ - private static final int NOTE_BG_COLOR_ID_COLUMN = 2; - - /** - * 笔记查询结果列索引:小部件ID - */ - 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; - mModifiedDate = System.currentTimeMillis(); - mFolderId = folderId; - mNote = new Note(); - mNoteId = 0; - mIsDeleted = false; - mMode = 0; - mWidgetType = Notes.TYPE_WIDGET_INVALIDE; - } - - // Existing note construct - /** - * 构造现有笔记的私有构造方法 - *

- * 根据笔记ID初始化一个工作笔记对象,并从数据库加载笔记数据。 - *

- * - * @param context 应用上下文 - * @param noteId 笔记ID - * @param folderId 笔记所属文件夹ID - */ - private WorkingNote(Context context, long noteId, long folderId) { - mContext = context; - mNoteId = noteId; - mFolderId = folderId; - mIsDeleted = false; - mNote = new Note(); - loadNote(); - } - - /** - * 从数据库加载笔记基本信息 - *

- * 从ContentResolver中查询并加载笔记的基本信息,包括文件夹ID、背景颜色、 - * 小部件信息、提醒日期和修改日期等。 - *

- */ - private void loadNote() { - Cursor cursor = mContext.getContentResolver().query( - ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, mNoteId), NOTE_PROJECTION, null, - null, null); - - if (cursor != null) { - if (cursor.moveToFirst()) { - mFolderId = cursor.getLong(NOTE_PARENT_ID_COLUMN); - mBgColorId = cursor.getInt(NOTE_BG_COLOR_ID_COLUMN); - mWidgetId = cursor.getInt(NOTE_WIDGET_ID_COLUMN); - mWidgetType = cursor.getInt(NOTE_WIDGET_TYPE_COLUMN); - mAlertDate = cursor.getLong(NOTE_ALERTED_DATE_COLUMN); - mModifiedDate = cursor.getLong(NOTE_MODIFIED_DATE_COLUMN); - } - cursor.close(); - } else { - Log.e(TAG, "No note with id:" + mNoteId); - throw new IllegalArgumentException("Unable to find note with id " + mNoteId); - } - loadNoteData(); - } - - /** - * 从数据库加载笔记详细数据 - *

- * 从ContentResolver中查询并加载笔记的详细数据,包括文本内容和模式等。 - *

- */ - private void loadNoteData() { - Cursor cursor = mContext.getContentResolver().query(Notes.CONTENT_DATA_URI, DATA_PROJECTION, - DataColumns.NOTE_ID + "=?", new String[] { - String.valueOf(mNoteId) - }, null); - - if (cursor != null) { - if (cursor.moveToFirst()) { - do { - String type = cursor.getString(DATA_MIME_TYPE_COLUMN); - if (DataConstants.NOTE.equals(type)) { - mContent = cursor.getString(DATA_CONTENT_COLUMN); - mMode = cursor.getInt(DATA_MODE_COLUMN); - mNote.setTextDataId(cursor.getLong(DATA_ID_COLUMN)); - } else if (DataConstants.CALL_NOTE.equals(type)) { - mNote.setCallDataId(cursor.getLong(DATA_ID_COLUMN)); - } else { - Log.d(TAG, "Wrong note type with type:" + type); - } - } while (cursor.moveToNext()); - } - cursor.close(); - } else { - Log.e(TAG, "No data with id:" + mNoteId); - throw new IllegalArgumentException("Unable to find note's data with id " + mNoteId); - } - } - - /** - * 创建空笔记的静态工厂方法 - *

- * 创建一个新的空工作笔记对象,并设置默认属性值。 - *

- * - * @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); - note.setBgColorId(defaultBgColorId); - note.setWidgetId(widgetId); - note.setWidgetType(widgetType); - return note; - } - - /** - * 加载现有笔记的静态工厂方法 - *

- * 根据笔记ID加载一个现有的工作笔记对象。 - *

- * - * @param context 应用上下文 - * @param id 笔记ID - * @return 加载的工作笔记 - */ - public static WorkingNote load(Context context, long id) { - return new WorkingNote(context, id, 0); - } - - /** - * 保存笔记到数据库 - *

- * 将当前工作笔记保存到数据库中。如果笔记不存在,则创建新笔记; - * 如果笔记已存在,则更新现有笔记。 - *

- * - * @return 保存成功返回true,否则返回false - */ - public synchronized boolean saveNote() { - if (isWorthSaving()) { - if (!existInDatabase()) { - if ((mNoteId = Note.getNewNoteId(mContext, mFolderId)) == 0) { - Log.e(TAG, "Create new note fail with id:" + mNoteId); - return false; - } - } - - 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 - && mNoteSettingStatusListener != null) { - mNoteSettingStatusListener.onWidgetChanged(); - } - return true; - } else { - return false; - } - } - - /** - * 检查笔记是否存在于数据库 - *

- * 检查当前工作笔记是否已存在于数据库中。 - *

- * - * @return 存在返回true,否则返回false - */ - public boolean existInDatabase() { - return mNoteId > 0; - } - - /** - * 检查笔记是否值得保存 - *

- * 检查当前工作笔记是否值得保存到数据库中。如果笔记已删除、 - * 内容为空且不存在于数据库中,或者存在于数据库但未修改,则不值得保存。 - *

- * - * @return 值得保存返回true,否则返回false - */ - private boolean isWorthSaving() { - if (mIsDeleted || (!existInDatabase() && TextUtils.isEmpty(mContent)) - || (existInDatabase() && !mNote.isLocalModified())) { - return false; - } else { - return true; - } - } - - /** - * 设置笔记设置变更监听器 - *

- * 设置笔记设置变更监听器,用于监听笔记设置的变化,如背景颜色、 - * 提醒日期、小部件等的变化。 - *

- * - * @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; - mNote.setNoteValue(NoteColumns.ALERTED_DATE, String.valueOf(mAlertDate)); - } - if (mNoteSettingStatusListener != null) { - mNoteSettingStatusListener.onClockAlertChanged(date, set); - } - } - - /** - * 标记笔记是否删除 - *

- * 标记笔记是否已删除,并通知监听器。 - *

- * - * @param mark 删除标记 - */ - public void markDeleted(boolean mark) { - mIsDeleted = mark; - if (mWidgetId != AppWidgetManager.INVALID_APPWIDGET_ID - && mWidgetType != Notes.TYPE_WIDGET_INVALIDE && mNoteSettingStatusListener != null) { - mNoteSettingStatusListener.onWidgetChanged(); - } - } - - /** - * 设置笔记背景颜色ID - *

- * 设置笔记的背景颜色ID,并通知监听器。 - *

- * - * @param id 背景颜色ID - */ - public void setBgColorId(int id) { - if (id != mBgColorId) { - mBgColorId = id; - if (mNoteSettingStatusListener != null) { - mNoteSettingStatusListener.onBackgroundColorChanged(); - } - mNote.setNoteValue(NoteColumns.BG_COLOR_ID, String.valueOf(id)); - } - } - - /** - * 设置笔记的清单模式 - *

- * 设置笔记的模式(普通模式或清单模式),并通知监听器。 - *

- * - * @param mode 清单模式 - */ - public void setCheckListMode(int mode) { - if (mMode != mode) { - if (mNoteSettingStatusListener != null) { - mNoteSettingStatusListener.onCheckListModeChanged(mMode, mode); - } - mMode = mode; - mNote.setTextData(TextNote.MODE, String.valueOf(mMode)); - } - } - - /** - * 设置小部件类型 - *

- * 设置与当前笔记关联的小部件类型。 - *

- * - * @param type 小部件类型 - */ - public void setWidgetType(int type) { - if (type != mWidgetType) { - mWidgetType = type; - mNote.setNoteValue(NoteColumns.WIDGET_TYPE, String.valueOf(mWidgetType)); - } - } - - /** - * 设置小部件ID - *

- * 设置与当前笔记关联的小部件ID。 - *

- * - * @param id 小部件ID - */ - public void setWidgetId(int id) { - if (id != mWidgetId) { - mWidgetId = id; - mNote.setNoteValue(NoteColumns.WIDGET_ID, String.valueOf(mWidgetId)); - } - } - - /** - * 设置笔记内容 - *

- * 设置笔记的文本内容。 - *

- * - * @param text 笔记内容 - */ - public void setWorkingText(String text) { - if (!TextUtils.equals(mContent, text)) { - mContent = text; - mNote.setTextData(DataColumns.CONTENT, mContent); - } - } - - /** - * 将笔记转换为通话笔记 - *

- * 将当前笔记转换为通话笔记,并设置通话相关信息,如电话号码和通话日期。 - *

- * - * @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 有提醒返回true,否则返回false - */ - 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 - *

- * 根据背景颜色ID获取对应的背景颜色资源ID。 - *

- * - * @return 背景颜色资源ID - */ - public int getBgColorResId() { - return NoteBgResources.getNoteBgResource(mBgColorId); - } - - /** - * 获取背景颜色ID - *

- * 获取当前笔记的背景颜色ID。 - *

- * - * @return 背景颜色ID - */ - public int getBgColorId() { - return mBgColorId; - } - - /** - * 获取标题背景资源ID - *

- * 根据背景颜色ID获取对应的标题背景资源ID。 - *

- * - * @return 标题背景资源ID - */ - public int getTitleBgResId() { - return NoteBgResources.getNoteTitleBgResource(mBgColorId); - } - - /** - * 获取清单模式 - *

- * 获取当前笔记的模式(普通模式或清单模式)。 - *

- * - * @return 清单模式 - */ - public int getCheckListMode() { - return mMode; - } - - /** - * 获取笔记ID - *

- * 获取当前笔记的ID。 - *

- * - * @return 笔记ID - */ - public long getNoteId() { - return mNoteId; - } - - /** - * 获取文件夹ID - *

- * 获取当前笔记所属的文件夹ID。 - *

- * - * @return 文件夹ID - */ - public long getFolderId() { - return mFolderId; - } - - /** - * 获取小部件ID - *

- * 获取与当前笔记关联的小部件ID。 - *

- * - * @return 小部件ID - */ - public int getWidgetId() { - return mWidgetId; - } - - /** - * 获取小部件类型 - *

- * 获取与当前笔记关联的小部件类型。 - *

- * - * @return 小部件类型 - */ - public int getWidgetType() { - return mWidgetType; - } - - /** - * 笔记设置变更监听器,用于监听笔记设置的变化。 - *

- * 该接口定义了笔记设置变化的回调方法,如背景颜色、提醒日期、 - * 小部件等的变化回调。 - *

- */ - public interface NoteSettingChangedListener { - /** - * 当笔记背景颜色改变时调用 - *

- * 当笔记的背景颜色发生变化时,会调用该方法。 - *

- */ - void onBackgroundColorChanged(); - - /** - * 当笔记闹钟设置改变时调用 - *

- * 当笔记的提醒日期发生变化时,会调用该方法。 - *

- * - * @param date 闹钟日期时间戳 - * @param set 是否设置闹钟 - */ - void onClockAlertChanged(long date, boolean set); - - /** - * 当笔记小部件改变时调用 - *

- * 当与笔记关联的小部件发生变化时,会调用该方法。 - *

- */ - void onWidgetChanged(); - - /** - * 当笔记在清单模式和普通模式之间切换时调用 - *

- * 当笔记的模式在普通模式和清单模式之间切换时,会调用该方法。 - *

- * - * @param oldMode 切换前的模式 - * @param newMode 切换后的新模式 - */ - void onCheckListModeChanged(int oldMode, int newMode); - } -} diff --git a/src/main/java/net/micode/notes/tool/BackupUtils.java b/src/main/java/net/micode/notes/tool/BackupUtils.java deleted file mode 100644 index 8f2e96e..0000000 --- a/src/main/java/net/micode/notes/tool/BackupUtils.java +++ /dev/null @@ -1,490 +0,0 @@ -/* - * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.micode.notes.tool; - -import android.content.Context; -import android.database.Cursor; -import android.os.Environment; -import android.text.TextUtils; -import android.text.format.DateFormat; -import android.util.Log; - -import net.micode.notes.R; -import net.micode.notes.data.Notes; -import net.micode.notes.data.Notes.DataColumns; -import net.micode.notes.data.Notes.DataConstants; -import net.micode.notes.data.Notes.NoteColumns; - -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.PrintStream; - - -/** - * 备份工具类,负责将笔记导出为文本文件。 - *

- * 该类采用单例模式实现,提供了将笔记内容导出为用户可读文本格式的功能, - * 支持将不同文件夹的笔记分类导出,并处理SD卡状态检查和文件生成等操作。 - *

- */ -public class BackupUtils { - /** - * 日志标签 - */ - private static final String TAG = BackupUtils.class.getSimpleName(); - /** - * 单例实例 - */ - private static BackupUtils sInstance; - - /** - * 获取BackupUtils的单例实例 - *

- * 如果实例不存在,则创建一个新实例并返回;否则返回已存在的实例。 - *

- * - * @param context 应用上下文 - * @return BackupUtils的单例实例 - */ - public static synchronized BackupUtils getInstance(Context context) { - if (sInstance == null) { - sInstance = new BackupUtils(context); - } - return sInstance; - } - - /** - * 备份或恢复操作的状态常量 - *

- * 这些状态常量用于表示备份或恢复操作的执行结果和状态。 - *

- */ - /** - * SD卡未挂载状态 - */ - public static final int STATE_SD_CARD_UNMOUONTED = 0; - - /** - * 备份文件不存在状态 - */ - public static final int STATE_BACKUP_FILE_NOT_EXIST = 1; - - /** - * 数据格式损坏状态,可能被其他程序修改 - */ - public static final int STATE_DATA_DESTROIED = 2; - - /** - * 运行时异常导致备份或恢复失败状态 - */ - public static final int STATE_SYSTEM_ERROR = 3; - - /** - * 备份或恢复成功状态 - */ - public static final int STATE_SUCCESS = 4; - - /** - * 文本导出实例,负责实际的文本导出操作 - */ - private TextExport mTextExport; - - /** - * 私有构造方法,初始化BackupUtils实例 - *

- * 创建TextExport实例用于文本导出操作。 - *

- * - * @param context 应用上下文 - */ - private BackupUtils(Context context) { - mTextExport = new TextExport(context); - } - - /** - * 检查外部存储是否可用 - *

- * 判断SD卡是否已挂载并可读写。 - *

- * - * @return 如果外部存储可用返回true,否则返回false - */ - private static boolean externalStorageAvailable() { - return Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()); - } - - /** - * 将笔记导出为文本文件 - *

- * 调用内部TextExport实例的exportToText方法执行实际导出操作。 - *

- * - * @return 导出操作的状态码,可能的值为STATE_SD_CARD_UNMOUONTED、STATE_SYSTEM_ERROR或STATE_SUCCESS - */ - 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, - NoteColumns.SNIPPET, - NoteColumns.TYPE - }; - - 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, - DataColumns.DATA1, - DataColumns.DATA2, - DataColumns.DATA3, - DataColumns.DATA4, - }; - - 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; - private static final int FORMAT_NOTE_CONTENT = 2; - - /** - * 应用上下文 - */ - private Context mContext; - /** - * 导出的文件名 - */ - private String mFileName; - /** - * 导出的文件目录 - */ - private String mFileDirectory; - - /** - * 构造方法,初始化TextExport实例 - *

- * 从资源文件中加载文本格式化字符串,并初始化上下文和文件信息。 - *

- * - * @param context 应用上下文 - */ - public TextExport(Context context) { - TEXT_FORMAT = context.getResources().getStringArray(R.array.format_for_exported_note); - mContext = context; - mFileName = ""; - mFileDirectory = ""; - } - - /** - * 获取指定ID的文本格式化字符串 - *

- * 从TEXT_FORMAT数组中获取指定索引的格式化字符串。 - *

- * - * @param id 格式化字符串的索引 - * @return 对应的格式化字符串 - */ - private String getFormat(int id) { - return TEXT_FORMAT[id]; - } - - /** - * 将指定文件夹的笔记导出为文本 - *

- * 查询并导出指定文件夹下的所有笔记,包括每个笔记的修改日期和内容。 - *

- * - * @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 - }, null); - - 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()); - } - notesCursor.close(); - } - } - - /** - * 将指定笔记导出到打印流 - *

- * 查询并导出指定笔记的详细内容,区分文本笔记和通话笔记的不同格式。 - *

- * - * @param noteId 笔记ID - * @param ps 打印流,用于写入导出的笔记内容 - */ - private void exportNoteToText(String noteId, PrintStream ps) { - Cursor dataCursor = mContext.getContentResolver().query(Notes.CONTENT_DATA_URI, - DATA_PROJECTION, DataColumns.NOTE_ID + "=?", new String[] { - noteId - }, null); - - if (dataCursor != null) { - if (dataCursor.moveToFirst()) { - 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); - - if (!TextUtils.isEmpty(phoneNumber)) { - 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), - content)); - } - } - } while (dataCursor.moveToNext()); - } - dataCursor.close(); - } - // print a line separator between note - try { - ps.write(new byte[] { - Character.LINE_SEPARATOR, Character.LETTER_NUMBER - }); - } catch (IOException e) { - Log.e(TAG, e.toString()); - } - } - - /** - * 将笔记导出为用户可读的文本格式 - *

- * 检查SD卡状态,创建输出文件,然后按文件夹分类导出所有笔记内容。 - *

- * - * @return 导出操作的状态码,可能的值为STATE_SD_CARD_UNMOUONTED、STATE_SYSTEM_ERROR或STATE_SUCCESS - */ - public int exportToText() { - if (!externalStorageAvailable()) { - Log.d(TAG, "Media was not mounted"); - return STATE_SD_CARD_UNMOUONTED; - } - - PrintStream ps = getExportToTextPrintStream(); - if (ps == null) { - 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, - "(" + NoteColumns.TYPE + "=" + Notes.TYPE_FOLDER + " AND " - + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLER + ") OR " - + NoteColumns.ID + "=" + Notes.ID_CALL_RECORD_FOLDER, null, null); - - 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); - } else { - folderName = folderCursor.getString(NOTE_COLUMN_SNIPPET); - } - if (!TextUtils.isEmpty(folderName)) { - ps.println(String.format(getFormat(FORMAT_FOLDER_NAME), folderName)); - } - String folderId = folderCursor.getString(NOTE_COLUMN_ID); - exportFolderToText(folderId, ps); - } while (folderCursor.moveToNext()); - } - folderCursor.close(); - } - - // Export notes in root's folder - Cursor noteCursor = mContext.getContentResolver().query( - Notes.CONTENT_NOTE_URI, - NOTE_PROJECTION, - NoteColumns.TYPE + "=" + +Notes.TYPE_NOTE + " AND " + NoteColumns.PARENT_ID - + "=0", null, null); - - if (noteCursor != null) { - if (noteCursor.moveToFirst()) { - do { - 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()); - } - noteCursor.close(); - } - ps.close(); - - return STATE_SUCCESS; - } - - /** - * 获取用于导出文本的打印流 - *

- * 创建并返回指向导出文本文件的打印流,用于写入导出的笔记内容。 - *

- * - * @return 指向导出文本文件的打印流,如果创建失败返回null - */ - private PrintStream getExportToTextPrintStream() { - File file = generateFileMountedOnSDcard(mContext, R.string.file_path, - R.string.file_name_txt_format); - if (file == null) { - Log.e(TAG, "create file to exported failed"); - return null; - } - mFileName = file.getName(); - mFileDirectory = mContext.getString(R.string.file_path); - PrintStream ps = null; - try { - FileOutputStream fos = new FileOutputStream(file); - ps = new PrintStream(fos); - } catch (FileNotFoundException e) { - e.printStackTrace(); - return null; - } catch (NullPointerException e) { - e.printStackTrace(); - return null; - } - return ps; - } - } - - /** - * 在SD卡上生成用于存储导入数据的文本文件 - *

- * 根据指定的文件路径和文件名格式,在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(); - sb.append(Environment.getExternalStorageDirectory()); - sb.append(context.getString(filePathResId)); - File filedir = new File(sb.toString()); - sb.append(context.getString( - fileNameFormatResId, - DateFormat.format(context.getString(R.string.format_date_ymd), - System.currentTimeMillis()))); - File file = new File(sb.toString()); - - try { - if (!filedir.exists()) { - filedir.mkdir(); - } - if (!file.exists()) { - file.createNewFile(); - } - return file; - } catch (SecurityException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } - - return null; - } -} - - diff --git a/src/main/java/net/micode/notes/tool/DataUtils.java b/src/main/java/net/micode/notes/tool/DataUtils.java deleted file mode 100644 index 49d5a18..0000000 --- a/src/main/java/net/micode/notes/tool/DataUtils.java +++ /dev/null @@ -1,437 +0,0 @@ -/* - * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.micode.notes.tool; - -import android.content.ContentProviderOperation; -import android.content.ContentProviderResult; -import android.content.ContentResolver; -import android.content.ContentUris; -import android.content.ContentValues; -import android.content.OperationApplicationException; -import android.database.Cursor; -import android.os.RemoteException; -import android.util.Log; - -import net.micode.notes.data.Notes; -import net.micode.notes.data.Notes.CallNote; -import net.micode.notes.data.Notes.NoteColumns; -import net.micode.notes.ui.NotesListAdapter.AppWidgetAttribute; - -import java.util.ArrayList; -import java.util.HashSet; - - -/** - * 数据工具类,提供笔记数据的批量操作和查询功能。 - *

- * 该类包含了笔记数据的批量删除、移动、查询等静态方法, - * 主要用于处理笔记应用中的数据操作,与ContentResolver进行交互。 - *

- */ -public class DataUtils { - /** - * 日志标签 - */ - public static final String TAG = DataUtils.class.getSimpleName(); - /** - * 批量删除笔记 - *

- * 根据提供的笔记ID集合,批量删除对应的笔记。 - * 系统根文件夹(ID_ROOT_FOLDER)不会被删除。 - *

- * - * @param resolver ContentResolver实例,用于与内容提供者交互 - * @param ids 要删除的笔记ID集合 - * @return 删除成功返回true,否则返回false - */ - public static boolean batchDeleteNotes(ContentResolver resolver, HashSet ids) { - if (ids == null) { - Log.d(TAG, "the ids is null"); - return true; - } - if (ids.size() == 0) { - Log.d(TAG, "no id is in the hashset"); - return true; - } - - ArrayList operationList = new ArrayList(); - for (long id : ids) { - if(id == Notes.ID_ROOT_FOLDER) { - Log.e(TAG, "Don't delete system folder root"); - continue; - } - ContentProviderOperation.Builder builder = ContentProviderOperation - .newDelete(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, id)); - operationList.add(builder.build()); - } - try { - ContentProviderResult[] results = resolver.applyBatch(Notes.AUTHORITY, operationList); - if (results == null || results.length == 0 || results[0] == null) { - Log.d(TAG, "delete notes failed, ids:" + ids.toString()); - return false; - } - return true; - } catch (RemoteException e) { - Log.e(TAG, String.format("%s: %s", e.toString(), e.getMessage())); - } catch (OperationApplicationException e) { - Log.e(TAG, String.format("%s: %s", e.toString(), e.getMessage())); - } - return false; - } - - /** - * 将笔记移动到指定文件夹 - *

- * 更新笔记的父文件夹ID和原始父文件夹ID,并标记为本地修改。 - *

- * - * @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); - values.put(NoteColumns.ORIGIN_PARENT_ID, srcFolderId); - values.put(NoteColumns.LOCAL_MODIFIED, 1); - resolver.update(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, id), values, null, null); - } - - /** - * 批量将笔记移动到指定文件夹 - *

- * 根据提供的笔记ID集合,批量更新笔记的父文件夹ID。 - *

- * - * @param resolver ContentResolver实例,用于与内容提供者交互 - * @param ids 要移动的笔记ID集合 - * @param folderId 目标文件夹ID - * @return 移动成功返回true,否则返回false - */ - public static boolean batchMoveToFolder(ContentResolver resolver, HashSet ids, - long folderId) { - if (ids == null) { - Log.d(TAG, "the ids is null"); - return true; - } - - ArrayList operationList = new ArrayList(); - for (long id : ids) { - ContentProviderOperation.Builder builder = ContentProviderOperation - .newUpdate(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, id)); - builder.withValue(NoteColumns.PARENT_ID, folderId); - builder.withValue(NoteColumns.LOCAL_MODIFIED, 1); - operationList.add(builder.build()); - } - - try { - ContentProviderResult[] results = resolver.applyBatch(Notes.AUTHORITY, operationList); - if (results == null || results.length == 0 || results[0] == null) { - Log.d(TAG, "delete notes failed, ids:" + ids.toString()); - return false; - } - return true; - } catch (RemoteException e) { - Log.e(TAG, String.format("%s: %s", e.toString(), e.getMessage())); - } catch (OperationApplicationException e) { - Log.e(TAG, String.format("%s: %s", e.toString(), e.getMessage())); - } - return false; - } - - /** - * 获取用户文件夹数量 - *

- * 查询并返回除系统文件夹外的所有用户文件夹数量。 - *

- * - * @param resolver ContentResolver实例,用于与内容提供者交互 - * @return 用户文件夹数量 - */ - public static int getUserFolderCount(ContentResolver resolver) { - Cursor cursor =resolver.query(Notes.CONTENT_NOTE_URI, - new String[] { "COUNT(*)" }, - NoteColumns.TYPE + "=? AND " + NoteColumns.PARENT_ID + "<>?", - new String[] { String.valueOf(Notes.TYPE_FOLDER), String.valueOf(Notes.ID_TRASH_FOLER)}, - null); - - int count = 0; - if(cursor != null) { - if(cursor.moveToFirst()) { - try { - count = cursor.getInt(0); - } catch (IndexOutOfBoundsException e) { - Log.e(TAG, "get folder count failed:" + e.toString()); - } finally { - cursor.close(); - } - } - } - return count; - } - - /** - * 检查笔记在数据库中是否可见 - *

- * 检查指定ID和类型的笔记是否存在于数据库中,且不在垃圾箱中。 - *

- * - * @param resolver ContentResolver实例,用于与内容提供者交互 - * @param noteId 笔记ID - * @param type 笔记类型 - * @return 可见返回true,否则返回false - */ - public static boolean visibleInNoteDatabase(ContentResolver resolver, long noteId, int type) { - Cursor cursor = resolver.query(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId), - null, - NoteColumns.TYPE + "=? AND " + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLER, - new String [] {String.valueOf(type)}, - null); - - boolean exist = false; - if (cursor != null) { - if (cursor.getCount() > 0) { - exist = true; - } - cursor.close(); - } - return exist; - } - - /** - * 检查笔记是否存在于数据库中 - *

- * 根据笔记ID检查笔记是否存在于数据库中。 - *

- * - * @param resolver ContentResolver实例,用于与内容提供者交互 - * @param noteId 笔记ID - * @return 存在返回true,否则返回false - */ - public static boolean existInNoteDatabase(ContentResolver resolver, long noteId) { - Cursor cursor = resolver.query(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId), - null, null, null, null); - - boolean exist = false; - if (cursor != null) { - if (cursor.getCount() > 0) { - exist = true; - } - cursor.close(); - } - return exist; - } - - /** - * 检查数据是否存在于数据库中 - *

- * 根据数据ID检查数据是否存在于数据库中。 - *

- * - * @param resolver ContentResolver实例,用于与内容提供者交互 - * @param dataId 数据ID - * @return 存在返回true,否则返回false - */ - public static boolean existInDataDatabase(ContentResolver resolver, long dataId) { - Cursor cursor = resolver.query(ContentUris.withAppendedId(Notes.CONTENT_DATA_URI, dataId), - null, null, null, null); - - boolean exist = false; - if (cursor != null) { - if (cursor.getCount() > 0) { - exist = true; - } - cursor.close(); - } - return exist; - } - - /** - * 检查可见文件夹名称是否存在 - *

- * 检查指定名称的文件夹是否存在于数据库中,且不在垃圾箱中。 - *

- * - * @param resolver ContentResolver实例,用于与内容提供者交互 - * @param name 文件夹名称 - * @return 存在返回true,否则返回false - */ - public static boolean checkVisibleFolderName(ContentResolver resolver, String name) { - Cursor cursor = resolver.query(Notes.CONTENT_NOTE_URI, null, - NoteColumns.TYPE + "=" + Notes.TYPE_FOLDER + - " AND " + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLER + - " AND " + NoteColumns.SNIPPET + "=?", - new String[] { name }, null); - boolean exist = false; - if(cursor != null) { - if(cursor.getCount() > 0) { - exist = true; - } - cursor.close(); - } - return exist; - } - - /** - * 获取文件夹中笔记的小部件属性 - *

- * 查询并返回指定文件夹下所有笔记的小部件ID和类型。 - *

- * - * @param resolver ContentResolver实例,用于与内容提供者交互 - * @param folderId 文件夹ID - * @return 小部件属性集合,如果没有则返回null - */ - public static HashSet getFolderNoteWidget(ContentResolver resolver, long folderId) { - Cursor c = resolver.query(Notes.CONTENT_NOTE_URI, - new String[] { NoteColumns.WIDGET_ID, NoteColumns.WIDGET_TYPE }, - NoteColumns.PARENT_ID + "=?", - new String[] { String.valueOf(folderId) }, - null); - - HashSet set = null; - if (c != null) { - if (c.moveToFirst()) { - set = new HashSet(); - do { - try { - AppWidgetAttribute widget = new AppWidgetAttribute(); - widget.widgetId = c.getInt(0); - widget.widgetType = c.getInt(1); - set.add(widget); - } catch (IndexOutOfBoundsException e) { - Log.e(TAG, e.toString()); - } - } while (c.moveToNext()); - } - c.close(); - } - 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 }, - CallNote.NOTE_ID + "=? AND " + CallNote.MIME_TYPE + "=?", - new String [] { String.valueOf(noteId), CallNote.CONTENT_ITEM_TYPE }, - null); - - if (cursor != null && cursor.moveToFirst()) { - try { - return cursor.getString(0); - } catch (IndexOutOfBoundsException e) { - Log.e(TAG, "Get call number fails " + e.toString()); - } finally { - cursor.close(); - } - } - return ""; - } - - /** - * 根据电话号码和通话日期获取笔记ID - *

- * 查询并返回匹配指定电话号码和通话日期的通话笔记ID。 - *

- * - * @param resolver ContentResolver实例,用于与内容提供者交互 - * @param phoneNumber 电话号码 - * @param callDate 通话日期时间戳 - * @return 笔记ID,如果没有找到则返回0 - */ - public static long getNoteIdByPhoneNumberAndCallDate(ContentResolver resolver, String phoneNumber, long callDate) { - Cursor cursor = resolver.query(Notes.CONTENT_DATA_URI, - new String [] { CallNote.NOTE_ID }, - CallNote.CALL_DATE + "=? AND " + CallNote.MIME_TYPE + "=? AND PHONE_NUMBERS_EQUAL(" - + CallNote.PHONE_NUMBER + ",?)", - new String [] { String.valueOf(callDate), CallNote.CONTENT_ITEM_TYPE, phoneNumber }, - null); - - if (cursor != null) { - if (cursor.moveToFirst()) { - try { - return cursor.getLong(0); - } catch (IndexOutOfBoundsException e) { - Log.e(TAG, "Get call note id fails " + e.toString()); - } - } - cursor.close(); - } - return 0; - } - - /** - * 根据笔记ID获取摘要 - *

- * 查询并返回指定笔记ID的摘要内容。 - * 如果笔记不存在,将抛出IllegalArgumentException异常。 - *

- * - * @param resolver ContentResolver实例,用于与内容提供者交互 - * @param noteId 笔记ID - * @return 笔记摘要 - * @throws IllegalArgumentException 如果笔记不存在 - */ - public static String getSnippetById(ContentResolver resolver, long noteId) { - Cursor cursor = resolver.query(Notes.CONTENT_NOTE_URI, - new String [] { NoteColumns.SNIPPET }, - NoteColumns.ID + "=?", - new String [] { String.valueOf(noteId)}, - null); - - if (cursor != null) { - String snippet = ""; - if (cursor.moveToFirst()) { - snippet = cursor.getString(0); - } - cursor.close(); - return snippet; - } - 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(); - int index = snippet.indexOf('\n'); - if (index != -1) { - snippet = snippet.substring(0, index); - } - } - return snippet; - } -} diff --git a/src/main/java/net/micode/notes/tool/GTaskStringUtils.java b/src/main/java/net/micode/notes/tool/GTaskStringUtils.java deleted file mode 100644 index e9e7aab..0000000 --- a/src/main/java/net/micode/notes/tool/GTaskStringUtils.java +++ /dev/null @@ -1,166 +0,0 @@ -/* - * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.micode.notes.tool; - -/** - * GTask字符串常量工具类,定义了与GTask服务交互时使用的各种JSON字段名和文件夹名称。 - *

- * 该类包含了与Google任务服务(GTask)进行JSON数据交换时所需的所有字符串常量, - * 包括动作类型、实体类型、字段名称以及文件夹命名规则等。 - *

- */ -public class GTaskStringUtils { - - /** 动作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"; - - /** 创建者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笔记文件夹前缀 */ - 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"; - - /** GTask 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/main/java/net/micode/notes/tool/ResourceParser.java b/src/main/java/net/micode/notes/tool/ResourceParser.java deleted file mode 100644 index 1c3c73a..0000000 --- a/src/main/java/net/micode/notes/tool/ResourceParser.java +++ /dev/null @@ -1,296 +0,0 @@ -/* - * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.micode.notes.tool; - -import android.content.Context; -import android.preference.PreferenceManager; - -import net.micode.notes.R; -import net.micode.notes.ui.NotesPreferenceActivity; - -/** - * 资源解析工具类,管理笔记应用中使用的各种资源配置和常量。 - *

- * 该类包含了笔记的背景颜色、字体大小等常量定义,以及管理笔记背景、 - * 列表项背景、小部件背景和文本外观等资源的内部类。 - *

- */ -public class ResourceParser { - - /** 黄色背景ID */ - public static final int YELLOW = 0; - /** 蓝色背景ID */ - public static final int BLUE = 1; - /** 白色背景ID */ - public static final int WHITE = 2; - /** 绿色背景ID */ - public static final int GREEN = 3; - /** 红色背景ID */ - public static final int RED = 4; - - /** 默认背景颜色ID */ - public static final int BG_DEFAULT_COLOR = YELLOW; - - /** 小字体大小ID */ - public static final int TEXT_SMALL = 0; - /** 中字体大小ID */ - public static final int TEXT_MEDIUM = 1; - /** 大字体大小ID */ - public static final int TEXT_LARGE = 2; - /** 超大字体大小ID */ - public static final int TEXT_SUPER = 3; - - /** 默认字体大小ID */ - 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_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 - }; - - /** - * 获取笔记背景资源ID - * - * @param id 背景颜色ID - * @return 对应的背景资源ID - */ - public static int getNoteBgResource(int id) { - return BG_EDIT_RESOURCES[id]; - } - - /** - * 获取笔记标题背景资源ID - * - * @param id 背景颜色ID - * @return 对应的标题背景资源ID - */ - public static int getNoteTitleBgResource(int id) { - return BG_EDIT_TITLE_RESOURCES[id]; - } - } - - /** - * 获取默认的笔记背景颜色ID - *

- * 根据用户设置决定返回固定默认颜色还是随机颜色。 - *

- * - * @param context 上下文对象 - * @return 默认的背景颜色ID - */ - public static int getDefaultBgId(Context context) { - if (PreferenceManager.getDefaultSharedPreferences(context).getBoolean( - NotesPreferenceActivity.PREFERENCE_SET_BG_COLOR_KEY, false)) { - return (int) (Math.random() * NoteBgResources.BG_EDIT_RESOURCES.length); - } else { - return BG_DEFAULT_COLOR; - } - } - - /** - * 笔记列表项背景资源管理类,提供笔记列表中不同位置项的背景资源。 - */ - 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_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_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 - }; - - /** - * 获取列表第一项背景资源ID - * - * @param id 背景颜色ID - * @return 对应的第一项背景资源ID - */ - public static int getNoteBgFirstRes(int id) { - return BG_FIRST_RESOURCES[id]; - } - - /** - * 获取列表最后一项背景资源ID - * - * @param id 背景颜色ID - * @return 对应的最后一项背景资源ID - */ - public static int getNoteBgLastRes(int id) { - return BG_LAST_RESOURCES[id]; - } - - /** - * 获取列表单独项背景资源ID - * - * @param id 背景颜色ID - * @return 对应的单独项背景资源ID - */ - public static int getNoteBgSingleRes(int id) { - return BG_SINGLE_RESOURCES[id]; - } - - /** - * 获取列表中间项背景资源ID - * - * @param id 背景颜色ID - * @return 对应的中间项背景资源ID - */ - public static int getNoteBgNormalRes(int id) { - return BG_NORMAL_RESOURCES[id]; - } - - /** - * 获取文件夹背景资源ID - * - * @return 文件夹背景资源ID - */ - public static int getFolderBgRes() { - return R.drawable.list_folder; - } - } - - /** - * 小部件背景资源管理类,提供不同尺寸小部件的背景资源。 - */ - public static class WidgetBgResources { - /** 2x尺寸小部件背景资源数组 */ - 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尺寸小部件背景资源ID - * - * @param id 背景颜色ID - * @return 对应的2x尺寸小部件背景资源ID - */ - public static int getWidget2xBgResource(int id) { - return BG_2X_RESOURCES[id]; - } - - /** 4x尺寸小部件背景资源数组 */ - 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尺寸小部件背景资源ID - * - * @param id 背景颜色ID - * @return 对应的4x尺寸小部件背景资源ID - */ - 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 - }; - - /** - * 获取文本外观资源ID - *

- * 如果ID超出资源数组范围,返回默认字体大小的资源ID。 - *

- * - * @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} - */ - if (id >= TEXTAPPEARANCE_RESOURCES.length) { - return BG_DEFAULT_FONT_SIZE; - } - return TEXTAPPEARANCE_RESOURCES[id]; - } - - /** - * 获取文本外观资源数组的大小 - * - * @return 文本外观资源数组的大小 - */ - public static int getResourcesSize() { - return TEXTAPPEARANCE_RESOURCES.length; - } - } -} diff --git a/src/main/java/net/micode/notes/ui/AlarmAlertActivity.java b/src/main/java/net/micode/notes/ui/AlarmAlertActivity.java deleted file mode 100644 index fd4c758..0000000 --- a/src/main/java/net/micode/notes/ui/AlarmAlertActivity.java +++ /dev/null @@ -1,255 +0,0 @@ -/* - * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.micode.notes.ui; - -import android.app.Activity; -import android.app.AlertDialog; -import android.content.Context; -import android.content.DialogInterface; -import android.content.DialogInterface.OnClickListener; -import android.content.DialogInterface.OnDismissListener; -import android.content.Intent; -import android.media.AudioManager; -import android.media.MediaPlayer; -import android.media.RingtoneManager; -import android.net.Uri; -import android.os.Bundle; -import android.os.PowerManager; -import android.provider.Settings; -import android.view.Window; -import android.view.WindowManager; - -import net.micode.notes.R; -import net.micode.notes.data.Notes; -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; - - /** - * 活动创建时的初始化方法 - *

- * 该方法完成以下初始化工作: - * 1. 设置窗口特性,隐藏标题栏 - * 2. 配置窗口标志,确保在锁屏状态下也能显示 - * 3. 如果屏幕未开启,则添加额外标志以唤醒屏幕并保持点亮 - * 4. 从Intent中获取笔记ID和摘要信息 - * 5. 创建MediaPlayer实例用于播放提醒铃声 - * 6. 检查笔记是否存在于数据库中 - * 7. 如果笔记存在,则显示提醒对话框并播放提醒铃声 - *

- * @param savedInstanceState 保存的实例状态 - */ - @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 - | WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON - | WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR); - } - - Intent intent = getIntent(); - - try { - 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; - } catch (IllegalArgumentException e) { - e.printStackTrace(); - return; - } - - mPlayer = new MediaPlayer(); - if (DataUtils.visibleInNoteDatabase(getContentResolver(), mNoteId, Notes.TYPE_NOTE)) { - showActionDialog(); - playAlarmSound(); - } else { - finish(); - } - } - - /** - * 检查屏幕是否处于开启状态 - *

- * 该方法通过PowerManager系统服务获取当前屏幕状态 - *

- * @return 如果屏幕处于开启状态则返回true,否则返回false - */ - private boolean isScreenOn() { - PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); - return pm.isScreenOn(); - } - - /** - * 播放提醒铃声 - *

- * 该方法完成以下工作: - * 1. 获取系统默认的闹钟铃声URI - * 2. 检查系统的静音模式设置,确定应该使用的音频流类型 - * 3. 根据静音模式设置选择合适的音频流类型 - * 4. 设置MediaPlayer的数据源为获取到的铃声URI - * 5. 准备MediaPlayer并设置为循环播放模式 - * 6. 开始播放提醒铃声 - * 7. 处理可能出现的各种异常 - *

- */ - 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 { - mPlayer.setAudioStreamType(AudioManager.STREAM_ALARM); - } - try { - mPlayer.setDataSource(this, url); - mPlayer.prepare(); - 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(); - } - } - - /** - * 显示提醒对话框 - *

- * 该方法创建并显示一个提醒对话框,包含以下内容: - * 1. 设置对话框标题为应用名称 - * 2. 设置对话框消息为笔记的摘要内容 - * 3. 添加确定按钮,点击后关闭对话框 - * 4. 如果屏幕处于开启状态,添加进入按钮,点击后进入笔记编辑界面 - * 5. 设置对话框关闭监听器,用于在对话框关闭时停止提醒铃声并结束活动 - *

- */ - 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); - } - - /** - * 处理提醒对话框中的按钮点击事件 - *

- * 该方法实现了OnClickListener接口,根据点击的按钮执行不同的操作: - * 1. 如果点击的是负按钮(进入按钮),则创建Intent跳转到NoteEditActivity - * 2. 设置Intent的Action为ACTION_VIEW,并将笔记ID作为额外数据传递 - * 3. 启动NoteEditActivity让用户查看或编辑对应的笔记 - * 4. 如果点击的是其他按钮(如确定按钮),则不执行任何额外操作 - *

- * @param dialog 触发点击事件的对话框 - * @param which 点击的按钮ID,对应DialogInterface中的按钮常量 - */ - 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); - startActivity(intent); - break; - default: - break; - } - } - - /** - * 处理提醒对话框关闭事件 - *

- * 该方法实现了OnDismissListener接口,当提醒对话框被关闭时(无论点击了哪个按钮或通过其他方式关闭), - * 会停止提醒铃声并结束当前活动 - *

- * @param dialog 被关闭的对话框 - */ - public void onDismiss(DialogInterface dialog) { - stopAlarmSound(); - finish(); - } - - /** - * 停止提醒铃声并释放媒体播放器资源 - *

- * 该方法完成以下工作: - * 1. 检查媒体播放器是否存在 - * 2. 如果存在,则停止播放铃声 - * 3. 释放媒体播放器占用的资源 - * 4. 将媒体播放器引用置为null,防止内存泄漏 - *

- */ - private void stopAlarmSound() { - if (mPlayer != null) { - mPlayer.stop(); - mPlayer.release(); - mPlayer = null; - } - } -} diff --git a/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java b/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java deleted file mode 100644 index 4de50d9..0000000 --- a/src/main/java/net/micode/notes/ui/AlarmInitReceiver.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.micode.notes.ui; - -import android.app.AlarmManager; -import android.app.PendingIntent; -import android.content.BroadcastReceiver; -import android.content.ContentUris; -import android.content.Context; -import android.content.Intent; -import android.database.Cursor; - -import net.micode.notes.data.Notes; -import net.micode.notes.data.Notes.NoteColumns; - - -/** - * 闹钟初始化广播接收器 - *

- * 该广播接收器负责在系统启动时重新注册所有未触发的笔记闹钟。 - * 当系统重启后,之前设置的闹钟会丢失,需要通过该接收器重新初始化 - *

- */ -public class AlarmInitReceiver extends BroadcastReceiver { - /** - * 闹钟数据查询的投影列数组 - *

- * 定义了从数据库查询笔记闹钟数据时需要获取的列,包括笔记ID和闹钟触发日期 - *

- */ - private static final String [] PROJECTION = new String [] { - NoteColumns.ID, - NoteColumns.ALERTED_DATE - }; - - /** - * 查询结果中笔记ID列的索引 - */ - private static final int COLUMN_ID = 0; - - /** - * 查询结果中闹钟触发日期列的索引 - */ - private static final int COLUMN_ALERTED_DATE = 1; - - /** - * 接收广播时调用的方法 - *

- * 当系统发送广播时(通常是系统启动完成),该方法会查询所有设置了未来闹钟的笔记, - * 并使用AlarmManager重新注册这些闹钟 - *

- * @param context 上下文对象 - * @param 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, - new String[] { String.valueOf(currentDate) }, - null); - - if (c != null) { - if (c.moveToFirst()) { - do { - long alertDate = c.getLong(COLUMN_ALERTED_DATE); - Intent sender = new Intent(context, AlarmReceiver.class); - sender.setData(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, c.getLong(COLUMN_ID))); - 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/main/java/net/micode/notes/ui/AlarmReceiver.java b/src/main/java/net/micode/notes/ui/AlarmReceiver.java deleted file mode 100644 index 610716c..0000000 --- a/src/main/java/net/micode/notes/ui/AlarmReceiver.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.micode.notes.ui; - -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; - -/** - * 闹钟触发广播接收器 - *

- * 该广播接收器负责处理闹钟触发事件,当闹钟时间到达时,它会启动闹钟提醒活动 - *

- */ -public class AlarmReceiver extends BroadcastReceiver { - /** - * 接收闹钟触发广播时调用的方法 - *

- * 当闹钟时间到达时,该方法会启动AlarmAlertActivity来显示闹钟提醒 - *

- * @param context 上下文对象 - * @param intent 接收到的广播意图,包含闹钟相关的笔记信息 - */ - @Override - public void onReceive(Context context, Intent intent) { - intent.setClass(context, AlarmAlertActivity.class); - intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - context.startActivity(intent); - } -} diff --git a/src/main/java/net/micode/notes/ui/DateTimePicker.java b/src/main/java/net/micode/notes/ui/DateTimePicker.java deleted file mode 100644 index c805b60..0000000 --- a/src/main/java/net/micode/notes/ui/DateTimePicker.java +++ /dev/null @@ -1,646 +0,0 @@ -/* - * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.micode.notes.ui; - -import java.text.DateFormatSymbols; -import java.util.Calendar; - -import net.micode.notes.R; - - -import android.content.Context; -import android.text.format.DateFormat; -import android.view.View; -import android.widget.FrameLayout; -import android.widget.NumberPicker; - -/** - * 日期时间选择组件 - *

- * 该类是一个自定义的日期时间选择组件,继承自FrameLayout,用于在小米便签应用中 - * 提供直观的日期时间选择界面。它支持12/24小时制切换,并通过NumberPicker组件 - * 实现日期、小时、分钟和AM/PM的选择 - *

- */ -public class DateTimePicker extends FrameLayout { - - /** - * 默认启用状态 - */ - private static final boolean DEFAULT_ENABLE_STATE = true; - - /** - * 半天的小时数(12小时) - */ - private static final int HOURS_IN_HALF_DAY = 12; - - /** - * 全天的小时数(24小时) - */ - private static final int HOURS_IN_ALL_DAY = 24; - - /** - * 一周的天数(7天) - */ - private static final int DAYS_IN_ALL_WEEK = 7; - - /** - * 日期选择器的最小值 - */ - private static final int DATE_SPINNER_MIN_VAL = 0; - - /** - * 日期选择器的最大值 - */ - private static final int DATE_SPINNER_MAX_VAL = DAYS_IN_ALL_WEEK - 1; - - /** - * 24小时制下小时选择器的最小值 - */ - private static final int HOUR_SPINNER_MIN_VAL_24_HOUR_VIEW = 0; - - /** - * 24小时制下小时选择器的最大值 - */ - private static final int HOUR_SPINNER_MAX_VAL_24_HOUR_VIEW = 23; - - /** - * 12小时制下小时选择器的最小值 - */ - private static final int HOUR_SPINNER_MIN_VAL_12_HOUR_VIEW = 1; - - /** - * 12小时制下小时选择器的最大值 - */ - private static final int HOUR_SPINNER_MAX_VAL_12_HOUR_VIEW = 12; - - /** - * 分钟选择器的最小值 - */ - private static final int MINUT_SPINNER_MIN_VAL = 0; - - /** - * 分钟选择器的最大值 - */ - private static final int MINUT_SPINNER_MAX_VAL = 59; - - /** - * AM/PM选择器的最小值 - */ - private static final int AMPM_SPINNER_MIN_VAL = 0; - - /** - * AM/PM选择器的最大值 - */ - private static final int AMPM_SPINNER_MAX_VAL = 1; - - /** - * 日期选择器组件 - */ - private final NumberPicker mDateSpinner; - - /** - * 小时选择器组件 - */ - private final NumberPicker mHourSpinner; - - /** - * 分钟选择器组件 - */ - private final NumberPicker mMinuteSpinner; - - /** - * AM/PM选择器组件 - */ - private final NumberPicker mAmPmSpinner; - - /** - * 当前选择的日期和时间 - */ - private Calendar mDate; - - /** - * 日期选择器显示的日期值数组 - */ - private String[] mDateDisplayValues = new String[DAYS_IN_ALL_WEEK]; - - /** - * 是否为上午 - */ - private boolean mIsAm; - - /** - * 是否为24小时制视图 - */ - private boolean mIs24HourView; - - /** - * 组件是否启用 - */ - 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(); - 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); - isDateChanged = true; - } else if (mIsAm && oldVal == HOURS_IN_HALF_DAY && newVal == HOURS_IN_HALF_DAY - 1) { - cal.setTimeInMillis(mDate.getTimeInMillis()); - 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 { - if (oldVal == HOURS_IN_ALL_DAY - 1 && newVal == 0) { - cal.setTimeInMillis(mDate.getTimeInMillis()); - cal.add(Calendar.DAY_OF_YEAR, 1); - isDateChanged = true; - } else if (oldVal == 0 && newVal == HOURS_IN_ALL_DAY - 1) { - cal.setTimeInMillis(mDate.getTimeInMillis()); - cal.add(Calendar.DAY_OF_YEAR, -1); - 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)); - setCurrentDay(cal.get(Calendar.DAY_OF_MONTH)); - } - } - }; - - 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()); - updateDateControl(); - int newHour = getCurrentHourOfDay(); - if (newHour >= HOURS_IN_HALF_DAY) { - mIsAm = false; - updateAmPmControl(); - } else { - mIsAm = true; - updateAmPmControl(); - } - } - mDate.set(Calendar.MINUTE, newVal); - onDateTimeChanged(); - } - }; - - private NumberPicker.OnValueChangeListener mOnAmPmChangedListener = new NumberPicker.OnValueChangeListener() { - @Override - public void onValueChange(NumberPicker picker, int oldVal, int newVal) { - mIsAm = !mIsAm; - if (mIsAm) { - mDate.add(Calendar.HOUR_OF_DAY, -HOURS_IN_HALF_DAY); - } else { - mDate.add(Calendar.HOUR_OF_DAY, HOURS_IN_HALF_DAY); - } - updateAmPmControl(); - onDateTimeChanged(); - } - }; - - /** - * 日期时间变化监听器接口 - *

- * 当日期时间选择器的值发生变化时,会通过此接口通知外部 - *

- */ - public interface OnDateTimeChangedListener { - /** - * 日期时间变化时调用的方法 - * @param view 日期时间选择器实例 - * @param year 选择的年份 - * @param month 选择的月份(0-11) - * @param dayOfMonth 选择的日(1-31) - * @param hourOfDay 选择的小时(0-23) - * @param minute 选择的分钟(0-59) - */ - void onDateTimeChanged(DateTimePicker view, int year, int month, - int dayOfMonth, int hourOfDay, int minute); - } - - /** - * 构造函数,使用当前时间初始化日期时间选择器 - * @param context 上下文对象 - */ - public DateTimePicker(Context context) { - this(context, System.currentTimeMillis()); - } - - /** - * 构造函数,使用指定时间初始化日期时间选择器,根据系统设置决定是否使用24小时制 - * @param context 上下文对象 - * @param date 初始日期时间,以毫秒为单位 - */ - public DateTimePicker(Context context, long date) { - this(context, date, DateFormat.is24HourFormat(context)); - } - - /** - * 构造函数,使用指定时间和时间格式初始化日期时间选择器 - * @param context 上下文对象 - * @param date 初始日期时间,以毫秒为单位 - * @param is24HourView 是否使用24小时制 - */ - public DateTimePicker(Context context, long date, boolean is24HourView) { - super(context); - mDate = Calendar.getInstance(); - mInitialising = true; - 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); - - String[] stringsForAmPm = new DateFormatSymbols().getAmPmStrings(); - mAmPmSpinner = (NumberPicker) findViewById(R.id.amPm); - mAmPmSpinner.setMinValue(AMPM_SPINNER_MIN_VAL); - mAmPmSpinner.setMaxValue(AMPM_SPINNER_MAX_VAL); - 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) { - return; - } - super.setEnabled(enabled); - mDateSpinner.setEnabled(enabled); - mMinuteSpinner.setEnabled(enabled); - mHourSpinner.setEnabled(enabled); - mAmPmSpinner.setEnabled(enabled); - 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(); - cal.setTimeInMillis(date); - setCurrentDate(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH), - cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE)); - } - - /** - * 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) { - setCurrentYear(year); - setCurrentMonth(month); - setCurrentDay(dayOfMonth); - setCurrentHour(hourOfDay); - setCurrentMinute(minute); - } - - /** - * 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()) { - return; - } - mDate.set(Calendar.YEAR, year); - updateDateControl(); - onDateTimeChanged(); - } - - /** - * 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()) { - return; - } - mDate.set(Calendar.MONTH, month); - updateDateControl(); - onDateTimeChanged(); - } - - /** - * 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()) { - return; - } - mDate.set(Calendar.DAY_OF_MONTH, dayOfMonth); - updateDateControl(); - onDateTimeChanged(); - } - - /** - * Get current hour in 24 hour mode, in the range (0~23) - * @return The current hour in 24 hour mode - */ - public int getCurrentHourOfDay() { - return mDate.get(Calendar.HOUR_OF_DAY); - } - - /** - * 获取当前小时 - *

- * 根据当前视图模式返回正确的小时值: - * - 24小时制:直接返回当前小时(0-23) - * - 12小时制:返回1-12之间的小时值 - *

- * @return 当前小时值 - */ - private int getCurrentHour() { - if (mIs24HourView){ - return getCurrentHourOfDay(); - } else { - int hour = getCurrentHourOfDay(); - if (hour > HOURS_IN_HALF_DAY) { - return hour - HOURS_IN_HALF_DAY; - } else { - return hour == 0 ? HOURS_IN_HALF_DAY : hour; - } - } - } - - /** - * 设置当前小时(24小时制,范围0-23) - * @param hourOfDay 当前小时值(24小时制) - */ - public void setCurrentHour(int hourOfDay) { - if (!mInitialising && hourOfDay == getCurrentHourOfDay()) { - return; - } - mDate.set(Calendar.HOUR_OF_DAY, hourOfDay); - if (!mIs24HourView) { - if (hourOfDay >= HOURS_IN_HALF_DAY) { - mIsAm = false; - if (hourOfDay > HOURS_IN_HALF_DAY) { - hourOfDay -= HOURS_IN_HALF_DAY; - } - } else { - mIsAm = true; - if (hourOfDay == 0) { - hourOfDay = HOURS_IN_HALF_DAY; - } - } - updateAmPmControl(); - } - mHourSpinner.setValue(hourOfDay); - onDateTimeChanged(); - } - - /** - * 获取当前分钟 - * @return 当前分钟值(0-59) - */ - public int getCurrentMinute() { - return mDate.get(Calendar.MINUTE); - } - - /** - * 设置当前分钟 - * @param minute 当前分钟值(0-59) - */ - public void setCurrentMinute(int minute) { - if (!mInitialising && minute == getCurrentMinute()) { - return; - } - mMinuteSpinner.setValue(minute); - mDate.set(Calendar.MINUTE, minute); - onDateTimeChanged(); - } - - /** - * 获取当前是否为24小时制视图 - * @return true表示为24小时制视图,false表示为12小时制视图 - */ - public boolean is24HourView () { - return mIs24HourView; - } - - /** - * 设置是否使用24小时制或AM/PM模式 - * @param is24HourView true表示使用24小时制,false表示使用AM/PM模式 - */ - public void set24HourView(boolean is24HourView) { - if (mIs24HourView == is24HourView) { - return; - } - mIs24HourView = is24HourView; - mAmPmSpinner.setVisibility(is24HourView ? View.GONE : View.VISIBLE); - int hour = getCurrentHourOfDay(); - updateHourControl(); - setCurrentHour(hour); - updateAmPmControl(); - } - - /** - * 更新日期控件 - *

- * 该方法负责更新日期选择器的显示值,显示当前日期前后几天的日期 - *

- */ - private void updateDateControl() { - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(mDate.getTimeInMillis()); - cal.add(Calendar.DAY_OF_YEAR, -DAYS_IN_ALL_WEEK / 2 - 1); - mDateSpinner.setDisplayedValues(null); - for (int i = 0; i < DAYS_IN_ALL_WEEK; ++i) { - cal.add(Calendar.DAY_OF_YEAR, 1); - mDateDisplayValues[i] = (String) DateFormat.format("MM.dd EEEE", cal); - } - mDateSpinner.setDisplayedValues(mDateDisplayValues); - mDateSpinner.setValue(DAYS_IN_ALL_WEEK / 2); - mDateSpinner.invalidate(); - } - - /** - * 更新AM/PM控件 - *

- * 该方法负责根据当前时间和视图模式更新AM/PM选择器的显示 - *

- */ - private void updateAmPmControl() { - if (mIs24HourView) { - mAmPmSpinner.setVisibility(View.GONE); - } else { - int index = mIsAm ? Calendar.AM : Calendar.PM; - mAmPmSpinner.setValue(index); - mAmPmSpinner.setVisibility(View.VISIBLE); - } - } - - /** - * 更新小时控件 - *

- * 该方法负责根据当前视图模式更新小时选择器的最小值和最大值 - *

- */ - private void updateHourControl() { - if (mIs24HourView) { - mHourSpinner.setMinValue(HOUR_SPINNER_MIN_VAL_24_HOUR_VIEW); - mHourSpinner.setMaxValue(HOUR_SPINNER_MAX_VAL_24_HOUR_VIEW); - } else { - mHourSpinner.setMinValue(HOUR_SPINNER_MIN_VAL_12_HOUR_VIEW); - mHourSpinner.setMaxValue(HOUR_SPINNER_MAX_VAL_12_HOUR_VIEW); - } - } - - /** - * 设置日期时间变化监听器 - * @param callback 日期时间变化时的回调函数,若为null则不执行任何操作 - */ - public void setOnDateTimeChangedListener(OnDateTimeChangedListener callback) { - mOnDateTimeChangedListener = callback; - } - - /** - * 日期时间变化时调用的方法 - *

- * 当日期或时间发生变化时,该方法会通知注册的监听器 - *

- */ - private void onDateTimeChanged() { - if (mOnDateTimeChangedListener != null) { - mOnDateTimeChangedListener.onDateTimeChanged(this, getCurrentYear(), - getCurrentMonth(), getCurrentDay(), getCurrentHourOfDay(), getCurrentMinute()); - } - } -} diff --git a/src/main/java/net/micode/notes/ui/DateTimePickerDialog.java b/src/main/java/net/micode/notes/ui/DateTimePickerDialog.java deleted file mode 100644 index b9986ac..0000000 --- a/src/main/java/net/micode/notes/ui/DateTimePickerDialog.java +++ /dev/null @@ -1,152 +0,0 @@ -/* - * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.micode.notes.ui; - -import java.util.Calendar; - -import net.micode.notes.R; -import net.micode.notes.ui.DateTimePicker; -import net.micode.notes.ui.DateTimePicker.OnDateTimeChangedListener; - -import android.app.AlertDialog; -import android.content.Context; -import android.content.DialogInterface; -import android.content.DialogInterface.OnClickListener; -import android.text.format.DateFormat; -import android.text.format.DateUtils; - -/** - * 日期时间选择对话框 - *

- * 该类是一个封装了DateTimePicker组件的对话框,用于在小米便签应用中 - * 提供一个完整的日期时间选择界面。用户可以通过该对话框选择日期和时间, - * 并在确认后将选择结果返回给调用者 - *

- */ -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 { - /** - * 日期时间设置完成时调用的方法 - * @param dialog 对话框实例 - * @param date 选择的日期时间,以毫秒为单位 - */ - 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 | - DateUtils.FORMAT_SHOW_DATE | - DateUtils.FORMAT_SHOW_TIME; - flag |= mIs24HourView ? DateUtils.FORMAT_24HOUR : DateUtils.FORMAT_24HOUR; - setTitle(DateUtils.formatDateTime(this.getContext(), date, flag)); - } - - /** - * 点击对话框按钮时调用的方法 - *

- * 当用户点击对话框的确定按钮时,会调用该方法,通知注册的监听器 - *

- * @param arg0 对话框实例 - * @param arg1 点击的按钮ID - */ - @Override - public void onClick(DialogInterface arg0, int arg1) { - if (mOnDateTimeSetListener != null) { - mOnDateTimeSetListener.OnDateTimeSet(this, mDate.getTimeInMillis()); - } - } - -} \ No newline at end of file diff --git a/src/main/java/net/micode/notes/ui/DropdownMenu.java b/src/main/java/net/micode/notes/ui/DropdownMenu.java deleted file mode 100644 index 4e58bbb..0000000 --- a/src/main/java/net/micode/notes/ui/DropdownMenu.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.micode.notes.ui; - -import android.content.Context; -import android.view.Menu; -import android.view.MenuItem; -import android.view.View; -import android.view.View.OnClickListener; -import android.widget.Button; -import android.widget.PopupMenu; -import android.widget.PopupMenu.OnMenuItemClickListener; - -import net.micode.notes.R; - -/** - * 下拉菜单封装类 - *

- * 该类封装了Android的PopupMenu,提供了一个简单的接口来创建和管理下拉菜单 - *

- */ -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(); - } - }); - } - - /** - * 设置下拉菜单项点击监听器 - * @param listener 菜单项点击监听器 - */ - public void setOnDropdownMenuItemClickListener(OnMenuItemClickListener listener) { - if (mPopupMenu != null) { - mPopupMenu.setOnMenuItemClickListener(listener); - } - } - - /** - * 查找指定ID的菜单项 - * @param id 菜单项ID - * @return 指定ID的菜单项,若不存在则返回null - */ - public MenuItem findItem(int id) { - return mMenu.findItem(id); - } - - /** - * 设置下拉菜单按钮的标题 - * @param title 按钮标题 - */ - public void setTitle(CharSequence title) { - mButton.setText(title); - } -} diff --git a/src/main/java/net/micode/notes/ui/FoldersListAdapter.java b/src/main/java/net/micode/notes/ui/FoldersListAdapter.java deleted file mode 100644 index 7e05bf2..0000000 --- a/src/main/java/net/micode/notes/ui/FoldersListAdapter.java +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.micode.notes.ui; - -import android.content.Context; -import android.database.Cursor; -import android.view.View; -import android.view.ViewGroup; -import android.widget.CursorAdapter; -import android.widget.LinearLayout; -import android.widget.TextView; - -import net.micode.notes.R; -import net.micode.notes.data.Notes; -import net.micode.notes.data.Notes.NoteColumns; - - -/** - * 文件夹列表适配器 - *

- * 该类继承自CursorAdapter,用于在小米便签应用中显示文件夹列表 - *

- */ -public class FoldersListAdapter extends CursorAdapter { - /** - * 文件夹数据查询的投影列数组 - *

- * 定义了从数据库查询文件夹数据时需要获取的列,包括文件夹ID和名称 - *

- */ - public static final String [] PROJECTION = { - NoteColumns.ID, - NoteColumns.SNIPPET - }; - - /** - * 查询结果中文件夹ID列的索引 - */ - public static final int ID_COLUMN = 0; - - /** - * 查询结果中文件夹名称列的索引 - */ - 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 新创建的列表项视图 - */ - @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; - - /** - * 构造函数,创建文件夹列表项视图 - * @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/main/java/net/micode/notes/ui/NoteEditActivity.java b/src/main/java/net/micode/notes/ui/NoteEditActivity.java deleted file mode 100644 index 088dac7..0000000 --- a/src/main/java/net/micode/notes/ui/NoteEditActivity.java +++ /dev/null @@ -1,1162 +0,0 @@ -/* - * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.micode.notes.ui; - -import android.app.Activity; -import android.app.AlarmManager; -import android.app.AlertDialog; -import android.app.PendingIntent; -import android.app.SearchManager; -import android.appwidget.AppWidgetManager; -import android.content.ContentUris; -import android.content.Context; -import android.content.DialogInterface; -import android.content.Intent; -import android.content.SharedPreferences; -import android.graphics.Paint; -import android.os.Bundle; -import android.preference.PreferenceManager; -import android.text.Spannable; -import android.text.SpannableString; -import android.text.TextUtils; -import android.text.format.DateUtils; -import android.text.style.BackgroundColorSpan; -import android.util.Log; -import android.view.LayoutInflater; -import android.view.Menu; -import android.view.MenuItem; -import android.view.MotionEvent; -import android.view.View; -import android.view.View.OnClickListener; -import android.view.WindowManager; -import android.widget.CheckBox; -import android.widget.CompoundButton; -import android.widget.CompoundButton.OnCheckedChangeListener; -import android.widget.EditText; -import android.widget.ImageView; -import android.widget.LinearLayout; -import android.widget.TextView; -import android.widget.Toast; - -import net.micode.notes.R; -import net.micode.notes.data.Notes; -import net.micode.notes.data.Notes.TextNote; -import net.micode.notes.model.WorkingNote; -import net.micode.notes.model.WorkingNote.NoteSettingChangedListener; -import net.micode.notes.tool.DataUtils; -import net.micode.notes.tool.ResourceParser; -import net.micode.notes.tool.ResourceParser.TextAppearanceResources; -import net.micode.notes.ui.DateTimePickerDialog.OnDateTimeSetListener; -import net.micode.notes.ui.NoteEditText.OnTextViewChangeListener; -import net.micode.notes.widget.NoteWidgetProvider_2x; -import net.micode.notes.widget.NoteWidgetProvider_4x; - -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - - -/** - * 笔记编辑活动类,负责处理笔记的创建、编辑和保存操作。 - *

- * 该类实现了笔记编辑界面的所有功能,包括文本编辑、背景颜色设置、字体大小调整、 - * 提醒设置、分享等功能,同时支持普通文本模式和清单模式的切换。 - *

- */ -public class NoteEditActivity extends Activity implements OnClickListener, - NoteSettingChangedListener, OnTextViewChangeListener { - /** - * 头部视图持有者类,用于缓存头部视图的控件引用 - */ - private class HeadViewHolder { - public TextView tvModified; - - public ImageView ivAlertIcon; - - public TextView tvAlertDate; - - public ImageView ibSetBgColor; - } - - /** 背景颜色选择按钮映射表,将按钮ID映射到颜色ID */ - private static final Map sBgSelectorBtnsMap = new HashMap(); - static { - sBgSelectorBtnsMap.put(R.id.iv_bg_yellow, ResourceParser.YELLOW); - sBgSelectorBtnsMap.put(R.id.iv_bg_red, ResourceParser.RED); - sBgSelectorBtnsMap.put(R.id.iv_bg_blue, ResourceParser.BLUE); - sBgSelectorBtnsMap.put(R.id.iv_bg_green, ResourceParser.GREEN); - sBgSelectorBtnsMap.put(R.id.iv_bg_white, ResourceParser.WHITE); - } - - /** 背景颜色选择高亮映射表,将颜色ID映射到高亮视图ID */ - private static final Map sBgSelectorSelectionMap = new HashMap(); - static { - sBgSelectorSelectionMap.put(ResourceParser.YELLOW, R.id.iv_bg_yellow_select); - sBgSelectorSelectionMap.put(ResourceParser.RED, R.id.iv_bg_red_select); - sBgSelectorSelectionMap.put(ResourceParser.BLUE, R.id.iv_bg_blue_select); - sBgSelectorSelectionMap.put(ResourceParser.GREEN, R.id.iv_bg_green_select); - sBgSelectorSelectionMap.put(ResourceParser.WHITE, R.id.iv_bg_white_select); - } - - /** 字体大小按钮映射表,将按钮ID映射到字体大小ID */ - private static final Map sFontSizeBtnsMap = new HashMap(); - static { - sFontSizeBtnsMap.put(R.id.ll_font_large, ResourceParser.TEXT_LARGE); - sFontSizeBtnsMap.put(R.id.ll_font_small, ResourceParser.TEXT_SMALL); - sFontSizeBtnsMap.put(R.id.ll_font_normal, ResourceParser.TEXT_MEDIUM); - sFontSizeBtnsMap.put(R.id.ll_font_super, ResourceParser.TEXT_SUPER); - } - - /** 字体大小选择高亮映射表,将字体大小ID映射到高亮视图ID */ - private static final Map sFontSelectorSelectionMap = new HashMap(); - static { - sFontSelectorSelectionMap.put(ResourceParser.TEXT_LARGE, R.id.iv_large_select); - sFontSelectorSelectionMap.put(ResourceParser.TEXT_SMALL, R.id.iv_small_select); - sFontSelectorSelectionMap.put(ResourceParser.TEXT_MEDIUM, R.id.iv_medium_select); - sFontSelectorSelectionMap.put(ResourceParser.TEXT_SUPER, R.id.iv_super_select); - } - - /** 日志标签 */ - 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; - /** 字体大小ID */ - private int mFontSizeId; - - /** 字体大小偏好设置键 */ - private static final String PREFERENCE_FONT_SIZE = "pref_font_size"; - - /** 快捷图标标题最大长度 */ - private static final int SHORTCUT_ICON_TITLE_MAX_LEN = 10; - - /** 已选中标记 */ - public static final String TAG_CHECKED = String.valueOf('\u221A'); - /** 未选中标记 */ - public static final String TAG_UNCHECKED = String.valueOf('\u25A1'); - - /** 清单模式下的编辑文本列表 */ - private LinearLayout mEditTextList; - - /** 用户查询字符串 */ - private String mUserQuery; - /** 查询正则表达式模式 */ - private Pattern mPattern; - - /** - * 活动创建时调用,初始化界面和状态 - * - * @param savedInstanceState 保存的实例状态 - */ - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - this.setContentView(R.layout.note_edit); - - 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 - */ - @Override - protected void onRestoreInstanceState(Bundle savedInstanceState) { - super.onRestoreInstanceState(savedInstanceState); - if (savedInstanceState != null && savedInstanceState.containsKey(Intent.EXTRA_UID)) { - Intent intent = new Intent(Intent.ACTION_VIEW); - intent.putExtra(Intent.EXTRA_UID, savedInstanceState.getLong(Intent.EXTRA_UID)); - if (!initActivityState(intent)) { - finish(); - return; - } - Log.d(TAG, "Restoring from killed activity"); - } - } - - /** - * 初始化活动状态,根据传入的Intent处理不同的操作 - * - * @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 - */ - mWorkingNote = null; - if (TextUtils.equals(Intent.ACTION_VIEW, intent.getAction())) { - long noteId = intent.getLongExtra(Intent.EXTRA_UID, 0); - 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); - showToast(R.string.error_note_not_exist); - finish(); - return false; - } else { - mWorkingNote = WorkingNote.load(this, noteId); - if (mWorkingNote == null) { - Log.e(TAG, "load note failed with note id" + noteId); - finish(); - return false; - } - } - getWindow().setSoftInputMode( - WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN - | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); - } else if(TextUtils.equals(Intent.ACTION_INSERT_OR_EDIT, intent.getAction())) { - // 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); - int widgetType = intent.getIntExtra(Notes.INTENT_EXTRA_WIDGET_TYPE, - Notes.TYPE_WIDGET_INVALIDE); - 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) { - if (TextUtils.isEmpty(phoneNumber)) { - Log.w(TAG, "The call record number is null"); - } - long noteId = 0; - if ((noteId = DataUtils.getNoteIdByPhoneNumberAndCallDate(getContentResolver(), - phoneNumber, callDate)) > 0) { - mWorkingNote = WorkingNote.load(this, noteId); - if (mWorkingNote == null) { - Log.e(TAG, "load call note failed with note id" + noteId); - finish(); - return false; - } - } else { - mWorkingNote = WorkingNote.createEmptyNote(this, folderId, widgetId, - widgetType, bgResId); - mWorkingNote.convertToCallNote(phoneNumber, callDate); - } - } else { - mWorkingNote = WorkingNote.createEmptyNote(this, folderId, widgetId, widgetType, - bgResId); - } - - getWindow().setSoftInputMode( - WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE - | WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE); - } else { - Log.e(TAG, "Intent not specified action, should not support"); - finish(); - return false; - } - mWorkingNote.setOnSettingStatusChangedListener(this); - return true; - } - - /** - * 活动恢复时调用,初始化笔记屏幕 - */ - @Override - protected void onResume() { - super.onResume(); - 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 - */ - showAlertHeader(); - } - - /** - * 显示提醒头部信息,包括提醒图标和提醒时间 - */ - private void showAlertHeader() { - if (mWorkingNote.hasClockAlert()) { - long time = System.currentTimeMillis(); - if (time > mWorkingNote.getAlertDate()) { - mNoteHeaderHolder.tvAlertDate.setText(R.string.note_alert_expired); - } else { - mNoteHeaderHolder.tvAlertDate.setText(DateUtils.getRelativeTimeSpanString( - mWorkingNote.getAlertDate(), time, DateUtils.MINUTE_IN_MILLIS)); - } - mNoteHeaderHolder.tvAlertDate.setVisibility(View.VISIBLE); - mNoteHeaderHolder.ivAlertIcon.setVisibility(View.VISIBLE); - } else { - mNoteHeaderHolder.tvAlertDate.setVisibility(View.GONE); - mNoteHeaderHolder.ivAlertIcon.setVisibility(View.GONE); - }; - } - - /** - * 处理活动收到的新Intent - * - * @param intent 新的Intent对象 - */ - @Override - protected void onNewIntent(Intent intent) { - super.onNewIntent(intent); - initActivityState(intent); - } - - /** - * 保存活动状态,当活动可能被销毁时调用 - * - * @param outState 用于保存状态的Bundle对象 - */ - @Override - 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 - */ - if (!mWorkingNote.existInDatabase()) { - saveNote(); - } - outState.putLong(Intent.EXTRA_UID, mWorkingNote.getNoteId()); - Log.d(TAG, "Save working note id: " + mWorkingNote.getNoteId() + " onSaveInstanceState"); - } - - /** - * 分发触摸事件,当点击外部区域时关闭颜色选择器和字体大小选择器 - * - * @param ev 触摸事件对象 - * @return 事件是否被消费 - */ - @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); - return true; - } - return super.dispatchTouchEvent(ev); - } - - /** - * 检查触摸事件是否在指定视图范围内 - * - * @param view 要检查的视图 - * @param ev 触摸事件对象 - * @return 触摸事件是否在视图范围内 - */ - private boolean inRangeOfView(View view, MotionEvent ev) { - int []location = new int[2]; - view.getLocationOnScreen(location); - int x = location[0]; - int y = location[1]; - if (ev.getX() < x - || ev.getX() > (x + view.getWidth()) - || ev.getY() < y - || ev.getY() > (y + view.getHeight())) { - return false; - } - return true; - } - - /** - * 初始化资源,包括视图、事件监听器等 - */ - private void initResources() { - mHeadViewPanel = findViewById(R.id.note_title); - mNoteHeaderHolder = new HeadViewHolder(); - mNoteHeaderHolder.tvModified = (TextView) findViewById(R.id.tv_modified_date); - mNoteHeaderHolder.ivAlertIcon = (ImageView) findViewById(R.id.iv_alert_icon); - mNoteHeaderHolder.tvAlertDate = (TextView) findViewById(R.id.tv_alert_date); - mNoteHeaderHolder.ibSetBgColor = (ImageView) findViewById(R.id.btn_set_bg_color); - mNoteHeaderHolder.ibSetBgColor.setOnClickListener(this); - 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} - */ - if(mFontSizeId >= TextAppearanceResources.getResourcesSize()) { - mFontSizeId = ResourceParser.BG_DEFAULT_FONT_SIZE; - } - mEditTextList = (LinearLayout) findViewById(R.id.note_edit_list); - } - - /** - * 活动暂停时调用,保存笔记并清除设置状态 - */ - @Override - protected void onPause() { - super.onPause(); - if(saveNote()) { - Log.d(TAG, "Note data was saved with length:" + mWorkingNote.getContent().length()); - } - clearSettingState(); - } - - /** - * 更新小组件,根据笔记的小组件类型发送更新广播 - */ - private void updateWidget() { - Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_UPDATE); - if (mWorkingNote.getWidgetType() == Notes.TYPE_WIDGET_2X) { - intent.setClass(this, NoteWidgetProvider_2x.class); - } else if (mWorkingNote.getWidgetType() == Notes.TYPE_WIDGET_4X) { - intent.setClass(this, NoteWidgetProvider_4x.class); - } else { - Log.e(TAG, "Unspported widget type"); - return; - } - - intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, new int[] { - mWorkingNote.getWidgetId() - }); - - sendBroadcast(intent); - setResult(RESULT_OK, intent); - } - - /** - * 处理视图的点击事件 - * - * @param v 被点击的视图对象 - */ - 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); - } 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(); - findViewById(sFontSelectorSelectionMap.get(mFontSizeId)).setVisibility(View.VISIBLE); - if (mWorkingNote.getCheckListMode() == TextNote.MODE_CHECK_LIST) { - getWorkingText(); - switchToListMode(mWorkingNote.getContent()); - } else { - mNoteEditor.setTextAppearance(this, - TextAppearanceResources.getTexAppearanceResource(mFontSizeId)); - } - mFontSizeSelector.setVisibility(View.GONE); - } - } - - /** - * 处理返回按钮点击事件 - *

- * 先尝试清除设置状态,如果成功则不执行返回操作,否则保存笔记并执行返回 - *

- */ - @Override - public void onBackPressed() { - if(clearSettingState()) { - return; - } - - saveNote(); - super.onBackPressed(); - } - - /** - * 清除设置状态,隐藏所有设置选择器 - * - * @return 如果有设置选择器被隐藏,则返回true;否则返回false - */ - private boolean clearSettingState() { - if (mNoteBgColorSelector.getVisibility() == View.VISIBLE) { - mNoteBgColorSelector.setVisibility(View.GONE); - return true; - } else if (mFontSizeSelector.getVisibility() == View.VISIBLE) { - mFontSizeSelector.setVisibility(View.GONE); - return true; - } - return false; - } - - /** - * 背景颜色改变时调用的回调方法 - *

- * 显示当前选中的背景颜色,并更新头部面板和编辑面板的背景资源 - *

- */ - public void onBackgroundColorChanged() { - findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility( - View.VISIBLE); - mNoteEditorPanel.setBackgroundResource(mWorkingNote.getBgColorResId()); - mHeadViewPanel.setBackgroundResource(mWorkingNote.getTitleBgResId()); - } - - /** - * 准备选项菜单,在菜单显示前调用 - *

- * 根据笔记类型和当前状态动态配置菜单项,包括加载不同的菜单资源、 - * 设置菜单标题和控制菜单项的可见性 - *

- * - * @param menu 要准备的菜单对象 - * @return 是否成功准备菜单 - */ - @Override - public boolean onPrepareOptionsMenu(Menu menu) { - if (isFinishing()) { - return true; - } - clearSettingState(); - menu.clear(); - if (mWorkingNote.getFolderId() == Notes.ID_CALL_RECORD_FOLDER) { - getMenuInflater().inflate(R.menu.call_note_edit, menu); - } else { - getMenuInflater().inflate(R.menu.note_edit, menu); - } - if (mWorkingNote.getCheckListMode() == TextNote.MODE_CHECK_LIST) { - menu.findItem(R.id.menu_list_mode).setTitle(R.string.menu_normal_mode); - } else { - menu.findItem(R.id.menu_list_mode).setTitle(R.string.menu_list_mode); - } - if (mWorkingNote.hasClockAlert()) { - menu.findItem(R.id.menu_alert).setVisible(false); - } else { - menu.findItem(R.id.menu_delete_remind).setVisible(false); - } - return true; - } - - /** - * 处理菜单选项选择事件 - *

- * 该方法处理各种菜单选项的点击事件,包括创建新笔记、删除笔记、设置字体大小、 - * 切换列表模式、分享笔记、发送到桌面、设置提醒等功能 - *

- * @param item 被选择的菜单项 - * @return 总是返回true,表示事件已被处理 - */ - @Override - 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); - builder.setMessage(getString(R.string.alert_message_delete_note)); - builder.setPositiveButton(android.R.string.ok, - new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int which) { - deleteCurrentNote(); - finish(); - } - }); - builder.setNegativeButton(android.R.string.cancel, null); - 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: - break; - } - return true; - } - - /** - * 设置笔记的提醒时间 - *

- * 该方法显示一个日期时间选择对话框,让用户选择提醒时间, - * 并将选择的时间设置到当前编辑的笔记中 - *

- */ - private void setReminder() { - DateTimePickerDialog d = new DateTimePickerDialog(this, System.currentTimeMillis()); - d.setOnDateTimeSetListener(new OnDateTimeSetListener() { - public void OnDateTimeSet(AlertDialog dialog, long date) { - mWorkingNote.setAlertDate(date , true); - } - }); - d.show(); - } - - /** - * 分享笔记到支持{@link Intent#ACTION_SEND}动作和{@text/plain}类型的应用 - *

- * 该方法创建一个分享意图,将笔记内容发送给其他支持文本分享的应用程序 - *

- * @param context 上下文对象 - * @param info 要分享的笔记内容 - */ - private void sendTo(Context context, String info) { - Intent intent = new Intent(Intent.ACTION_SEND); - intent.putExtra(Intent.EXTRA_TEXT, info); - intent.setType("text/plain"); - context.startActivity(intent); - } - - /** - * 创建新笔记 - *

- * 该方法先保存当前编辑的笔记,然后结束当前活动并启动一个新的NoteEditActivity - * 来创建新笔记,确保笔记保存在同一文件夹中 - *

- */ - private void createNewNote() { - // Firstly, save current editing notes - saveNote(); - - // For safety, start a new NoteEditActivity - finish(); - Intent intent = new Intent(this, NoteEditActivity.class); - intent.setAction(Intent.ACTION_INSERT_OR_EDIT); - intent.putExtra(Notes.INTENT_EXTRA_FOLDER_ID, mWorkingNote.getFolderId()); - startActivity(intent); - } - - /** - * 删除当前编辑的笔记 - *

- * 该方法根据笔记是否存在于数据库中进行处理: - * 1. 如果笔记存在,将其ID添加到待删除列表 - * 2. 如果不是同步模式,直接删除笔记 - * 3. 如果是同步模式,将笔记移动到垃圾桶 - *

- */ - private void deleteCurrentNote() { - if (mWorkingNote.existInDatabase()) { - HashSet ids = new HashSet(); - long id = mWorkingNote.getNoteId(); - if (id != Notes.ID_ROOT_FOLDER) { - ids.add(id); - } else { - Log.d(TAG, "Wrong note id, should not happen"); - } - if (!isSyncMode()) { - if (!DataUtils.batchDeleteNotes(getContentResolver(), ids)) { - Log.e(TAG, "Delete Note error"); - } - } else { - if (!DataUtils.batchMoveToFolder(getContentResolver(), ids, Notes.ID_TRASH_FOLER)) { - Log.e(TAG, "Move notes to trash folder error, should not happens"); - } - } - } - mWorkingNote.markDeleted(true); - } - - /** - * 检查是否启用了同步模式 - *

- * 该方法通过检查同步账户名称是否存在来判断是否启用了同步模式 - *

- * @return 如果启用了同步模式返回true,否则返回false - */ - private boolean isSyncMode() { - return NotesPreferenceActivity.getSyncAccountName(this).trim().length() > 0; - } - - /** - * 处理时钟提醒的变化 - *

- * 该方法用于设置或取消笔记的时钟提醒, - * 如果笔记未保存,会先保存笔记,然后根据参数设置或取消闹钟 - *

- * @param date 提醒时间的时间戳 - * @param set 如果为true则设置提醒,为false则取消提醒 - */ - public void onClockAlertChanged(long date, boolean set) { - // 用户可能会为未保存的笔记设置时钟,所以在设置提醒时钟之前,我们应该先保存笔记 - if (!mWorkingNote.existInDatabase()) { - saveNote(); - } - if (mWorkingNote.getNoteId() > 0) { - Intent intent = new Intent(this, AlarmReceiver.class); - intent.setData(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, mWorkingNote.getNoteId())); - PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0); - AlarmManager alarmManager = ((AlarmManager) getSystemService(ALARM_SERVICE)); - showAlertHeader(); - if(!set) { - alarmManager.cancel(pendingIntent); - } else { - alarmManager.set(AlarmManager.RTC_WAKEUP, date, pendingIntent); - } - } else { - /** - * There is the condition that user has input nothing (the note is - * not worthy saving), we have no note id, remind the user that he - * should input something - */ - Log.e(TAG, "Clock alert setting error"); - showToast(R.string.error_note_empty_for_clock); - } - } - - /** - * 更新小部件 - *

- * 该方法调用updateWidget()方法来更新桌面小部件的内容 - *

- */ - public void onWidgetChanged() { - updateWidget(); - } - - /** - * 处理编辑文本的删除操作 - *

- * 该方法处理用户在编辑文本时按下删除键的操作,特别是在列表模式下: - * 1. 检查是否只有一个编辑文本项,如果是则直接返回 - * 2. 将索引大于当前删除项的所有编辑文本项的索引减1 - * 3. 从列表中移除指定索引的视图 - * 4. 将被删除的文本追加到前一个或第一个编辑文本项中 - * 5. 设置焦点并将光标移动到追加文本的开始位置 - *

- * @param index 要删除的编辑文本项的索引 - * @param text 被删除的文本内容 - */ - public void onEditTextDelete(int index, String text) { - int childCount = mEditTextList.getChildCount(); - if (childCount == 1) { - return; - } - - for (int i = index + 1; i < childCount; i++) { - ((NoteEditText) mEditTextList.getChildAt(i).findViewById(R.id.et_edit_text)) - .setIndex(i - 1); - } - - mEditTextList.removeViewAt(index); - NoteEditText edit = null; - if(index == 0) { - edit = (NoteEditText) mEditTextList.getChildAt(0).findViewById( - R.id.et_edit_text); - } else { - edit = (NoteEditText) mEditTextList.getChildAt(index - 1).findViewById( - R.id.et_edit_text); - } - int length = edit.length(); - edit.append(text); - edit.requestFocus(); - edit.setSelection(length); - } - - /** - * 处理编辑文本的回车操作 - *

- * 该方法处理用户在编辑文本时按下回车键的操作,在指定索引位置插入新的编辑文本项 - *

- * @param index 插入新编辑文本项的索引位置 - * @param text 新编辑文本项的内容 - */ - public void onEditTextEnter(int index, String text) { - // 不应该发生的情况,用于调试检查 - if(index > mEditTextList.getChildCount()) { - Log.e(TAG, "Index out of mEditTextList boundrary, should not happen"); - } - - View view = getListItem(text, index); - mEditTextList.addView(view, index); - NoteEditText edit = (NoteEditText) view.findViewById(R.id.et_edit_text); - edit.requestFocus(); - edit.setSelection(0); - for (int i = index + 1; i < mEditTextList.getChildCount(); i++) { - ((NoteEditText) mEditTextList.getChildAt(i).findViewById(R.id.et_edit_text)) - .setIndex(i); - } - } - - /** - * 切换到列表模式 - *

- * 该方法将笔记从普通文本模式切换到列表模式, - * 将文本内容按行分割并创建对应的列表项,最后添加一个空的列表项用于继续输入 - *

- * @param text 当前笔记的文本内容 - */ - private void switchToListMode(String text) { - mEditTextList.removeAllViews(); - String[] items = text.split("\n"); - int index = 0; - for (String item : items) { - if(!TextUtils.isEmpty(item)) { - mEditTextList.addView(getListItem(item, index)); - index++; - } - } - mEditTextList.addView(getListItem("", index)); - mEditTextList.getChildAt(index).findViewById(R.id.et_edit_text).requestFocus(); - - mNoteEditor.setVisibility(View.GONE); - mEditTextList.setVisibility(View.VISIBLE); - } - - /** - * 获取带有高亮查询结果的文本 - *

- * 该方法在完整文本中查找用户查询的内容,并为匹配项添加背景高亮效果 - *

- * @param fullText 完整的文本内容 - * @param userQuery 用户查询的内容 - * @return 带有高亮查询结果的Spannable对象 - */ - private Spannable getHighlightQueryResult(String fullText, String userQuery) { - SpannableString spannable = new SpannableString(fullText == null ? "" : fullText); - if (!TextUtils.isEmpty(userQuery)) { - mPattern = Pattern.compile(userQuery); - Matcher m = mPattern.matcher(fullText); - int start = 0; - while (m.find(start)) { - spannable.setSpan( - new BackgroundColorSpan(this.getResources().getColor( - R.color.user_query_highlight)), m.start(), m.end(), - Spannable.SPAN_INCLUSIVE_EXCLUSIVE); - start = m.end(); - } - } - return spannable; - } - - /** - * 获取列表模式下的列表项视图 - *

- * 该方法创建并配置列表模式下的列表项视图,包括: - * 1. 加载列表项布局 - * 2. 设置编辑文本的字体大小 - * 3. 配置复选框的选中状态变化监听器 - * 4. 根据项目文本的标签设置初始选中状态和文本样式 - * 5. 设置文本变化监听器和索引 - * 6. 应用查询高亮效果 - *

- * @param item 列表项的文本内容 - * @param index 列表项的索引 - * @return 配置好的列表项视图 - */ - private View getListItem(String item, int index) { - View view = LayoutInflater.from(this).inflate(R.layout.note_edit_list_item, null); - final NoteEditText edit = (NoteEditText) view.findViewById(R.id.et_edit_text); - edit.setTextAppearance(this, TextAppearanceResources.getTexAppearanceResource(mFontSizeId)); - CheckBox cb = ((CheckBox) view.findViewById(R.id.cb_edit_item)); - cb.setOnCheckedChangeListener(new OnCheckedChangeListener() { - public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - if (isChecked) { - edit.setPaintFlags(edit.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG); - } else { - edit.setPaintFlags(Paint.ANTI_ALIAS_FLAG | Paint.DEV_KERN_TEXT_FLAG); - } - } - }); - - if (item.startsWith(TAG_CHECKED)) { - cb.setChecked(true); - edit.setPaintFlags(edit.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG); - item = item.substring(TAG_CHECKED.length(), item.length()).trim(); - } else if (item.startsWith(TAG_UNCHECKED)) { - cb.setChecked(false); - edit.setPaintFlags(Paint.ANTI_ALIAS_FLAG | Paint.DEV_KERN_TEXT_FLAG); - item = item.substring(TAG_UNCHECKED.length(), item.length()).trim(); - } - - edit.setOnTextViewChangeListener(this); - edit.setIndex(index); - edit.setText(getHighlightQueryResult(item, mUserQuery)); - return view; - } - - /** - * 处理文本变化事件 - *

- * 该方法在列表模式下处理编辑文本的内容变化事件, - * 根据文本是否为空来控制对应列表项中复选框的显示或隐藏 - *

- * @param index 编辑文本项的索引 - * @param hasText 编辑文本是否包含内容 - */ - public void onTextChange(int index, boolean hasText) { - if (index >= mEditTextList.getChildCount()) { - Log.e(TAG, "Wrong index, should not happen"); - return; - } - if(hasText) { - mEditTextList.getChildAt(index).findViewById(R.id.cb_edit_item).setVisibility(View.VISIBLE); - } else { - mEditTextList.getChildAt(index).findViewById(R.id.cb_edit_item).setVisibility(View.GONE); - } - } - - /** - * 处理检查列表模式的变化 - *

- * 该方法在笔记的普通文本模式和检查列表模式之间切换时被调用, - * 根据新的模式执行相应的视图切换和数据处理操作 - *

- * @param oldMode 旧的模式 - * @param newMode 新的模式 - */ - public void onCheckListModeChanged(int oldMode, int newMode) { - if (newMode == TextNote.MODE_CHECK_LIST) { - switchToListMode(mNoteEditor.getText().toString()); - } else { - if (!getWorkingText()) { - mWorkingNote.setWorkingText(mWorkingNote.getContent().replace(TAG_UNCHECKED + " ", - "")); - } - mNoteEditor.setText(getHighlightQueryResult(mWorkingNote.getContent(), mUserQuery)); - mEditTextList.setVisibility(View.GONE); - mNoteEditor.setVisibility(View.VISIBLE); - } - } - - /** - * 获取当前工作笔记的文本内容 - *

- * 该方法根据当前笔记的模式(普通文本或检查列表)获取相应的文本内容: - * 1. 如果是检查列表模式,遍历所有列表项,收集文本内容并添加相应的标签(已完成或未完成) - * 2. 如果是普通文本模式,直接获取编辑框的文本内容 - *

- * @return 是否包含已完成的列表项 - */ - private boolean getWorkingText() { - boolean hasChecked = false; - if (mWorkingNote.getCheckListMode() == TextNote.MODE_CHECK_LIST) { - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < mEditTextList.getChildCount(); i++) { - View view = mEditTextList.getChildAt(i); - NoteEditText edit = (NoteEditText) view.findViewById(R.id.et_edit_text); - if (!TextUtils.isEmpty(edit.getText())) { - if (((CheckBox) view.findViewById(R.id.cb_edit_item)).isChecked()) { - sb.append(TAG_CHECKED).append(" ").append(edit.getText()).append("\n"); - hasChecked = true; - } else { - sb.append(TAG_UNCHECKED).append(" ").append(edit.getText()).append("\n"); - } - } - } - mWorkingNote.setWorkingText(sb.toString()); - } else { - mWorkingNote.setWorkingText(mNoteEditor.getText().toString()); - } - return hasChecked; - } - - /** - * 保存当前工作笔记 - *

- * 该方法首先获取当前工作笔记的最新文本内容,然后调用mWorkingNote的saveNote方法将其保存到数据库中。 - * 如果保存成功,会设置返回结果为RESULT_OK,用于标识创建/编辑状态,以便在返回列表视图时正确定位。 - *

- * @return 保存是否成功 - */ - private boolean saveNote() { - getWorkingText(); - boolean saved = mWorkingNote.saveNote(); - if (saved) { - /** - * There are two modes from List view to edit view, open one note, - * create/edit a node. Opening node requires to the original - * position in the list when back from edit view, while creating a - * new node requires to the top of the list. This code - * {@link #RESULT_OK} is used to identify the create/edit state - */ - setResult(RESULT_OK); - } - return saved; - } - - /** - * 将当前编辑的笔记发送到桌面创建快捷方式 - *

- * 该方法执行以下操作: - * 1. 在发送前确保当前编辑的笔记已保存在数据库中,如果是新笔记则先保存 - * 2. 创建一个快捷方式Intent,包含打开该笔记的相关信息 - * 3. 设置快捷方式的名称、图标等属性 - * 4. 发送广播来创建桌面快捷方式 - * 5. 如果笔记为空或保存失败,显示错误提示 - *

- */ - private void sendToDesktop() { - // 在发送到桌面之前,确保当前编辑的笔记已存在于数据库中。对于新笔记,首先保存它 - if (!mWorkingNote.existInDatabase()) { - saveNote(); - } - - if (mWorkingNote.getNoteId() > 0) { - Intent sender = new Intent(); - Intent shortcutIntent = new Intent(this, NoteEditActivity.class); - shortcutIntent.setAction(Intent.ACTION_VIEW); - shortcutIntent.putExtra(Intent.EXTRA_UID, mWorkingNote.getNoteId()); - sender.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); - sender.putExtra(Intent.EXTRA_SHORTCUT_NAME, - makeShortcutIconTitle(mWorkingNote.getContent())); - sender.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, - Intent.ShortcutIconResource.fromContext(this, R.drawable.icon_app)); - sender.putExtra("duplicate", true); - sender.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); - showToast(R.string.info_note_enter_desktop); - sendBroadcast(sender); - } else { - /** - * There is the condition that user has input nothing (the note is - * not worthy saving), we have no note id, remind the user that he - * should input something - */ - Log.e(TAG, "Send to desktop error"); - showToast(R.string.error_note_empty_for_send_to_desktop); - } - } - - /** - * 生成快捷方式图标的标题 - *

- * 该方法将笔记内容转换为适合作为快捷方式标题的格式: - * 1. 移除检查列表模式下的状态标签(已完成和未完成标签) - * 2. 如果内容长度超过最大限制,则截断为指定长度 - *

- * @param content 笔记的原始内容 - * @return 处理后的快捷方式标题 - */ - private String makeShortcutIconTitle(String content) { - content = content.replace(TAG_CHECKED, ""); - content = content.replace(TAG_UNCHECKED, ""); - return content.length() > SHORTCUT_ICON_TITLE_MAX_LEN ? content.substring(0, - SHORTCUT_ICON_TITLE_MAX_LEN) : content; - } - - /** - * 显示短时长的Toast提示信息 - *

- * 该方法是showToast(int resId, int duration)的便捷重载版本, - * 默认使用Toast.LENGTH_SHORT作为显示时长 - *

- * @param resId 提示信息的字符串资源ID - */ - private void showToast(int resId) { - showToast(resId, Toast.LENGTH_SHORT); - } - - /** - * 显示Toast提示信息 - *

- * 该方法使用Android系统的Toast机制显示指定的提示信息 - *

- * @param resId 提示信息的字符串资源ID - * @param duration 显示时长,可以是Toast.LENGTH_SHORT或Toast.LENGTH_LONG - */ - private void showToast(int resId, int duration) { - Toast.makeText(this, resId, duration).show(); - } -} diff --git a/src/main/java/net/micode/notes/ui/NoteEditText.java b/src/main/java/net/micode/notes/ui/NoteEditText.java deleted file mode 100644 index ae5b78b..0000000 --- a/src/main/java/net/micode/notes/ui/NoteEditText.java +++ /dev/null @@ -1,319 +0,0 @@ -/* - * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.micode.notes.ui; - -import android.content.Context; -import android.graphics.Rect; -import android.text.Layout; -import android.text.Selection; -import android.text.Spanned; -import android.text.TextUtils; -import android.text.style.URLSpan; -import android.util.AttributeSet; -import android.util.Log; -import android.view.ContextMenu; -import android.view.KeyEvent; -import android.view.MenuItem; -import android.view.MenuItem.OnMenuItemClickListener; -import android.view.MotionEvent; -import android.widget.EditText; - -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:" ; - - /** - * HTTP链接协议 - */ - private static final String SCHEME_HTTP = "http:" ; - - /** - * 邮件链接协议 - */ - private static final String SCHEME_EMAIL = "mailto:" ; - - /** - * 链接协议与资源ID的映射表 - */ - private static final Map sSchemaActionResMap = new HashMap(); - static { - sSchemaActionResMap.put(SCHEME_TEL, R.string.note_link_tel); - sSchemaActionResMap.put(SCHEME_HTTP, R.string.note_link_web); - sSchemaActionResMap.put(SCHEME_EMAIL, R.string.note_link_email); - } - - /** - * 文本视图变化监听器接口 - *

- * 由{@link NoteEditActivity}调用,用于处理编辑框的删除或添加 - *

- */ - public interface OnTextViewChangeListener { - /** - * 当按下{@link KeyEvent#KEYCODE_DEL}且文本为空时,删除当前编辑框 - */ - void onEditTextDelete(int index, String text); - - /** - * 当按下{@link KeyEvent#KEYCODE_ENTER}时,在当前编辑框后添加新的编辑框 - */ - void onEditTextEnter(int index, String text); - - /** - * 当文本变化时,隐藏或显示项目选项 - */ - void onTextChange(int index, boolean hasText); - } - - /** - * 文本视图变化监听器实例 - */ - private OnTextViewChangeListener mOnTextViewChangeListener; - - /** - * 构造函数,创建笔记编辑文本框 - * @param context 上下文对象 - */ - public NoteEditText(Context context) { - super(context, null); - mIndex = 0; - } - - /** - * 设置编辑框索引 - * @param index 编辑框索引 - */ - public void setIndex(int index) { - mIndex = index; - } - - /** - * 设置文本视图变化监听器 - * @param listener 文本视图变化监听器 - */ - public void setOnTextViewChangeListener(OnTextViewChangeListener listener) { - mOnTextViewChangeListener = listener; - } - - /** - * 构造函数,创建笔记编辑文本框 - * @param context 上下文对象 - * @param attrs 属性集合 - */ - public NoteEditText(Context context, AttributeSet attrs) { - super(context, attrs, android.R.attr.editTextStyle); - } - - /** - * 构造函数,创建笔记编辑文本框 - * @param context 上下文对象 - * @param attrs 属性集合 - * @param defStyle 默认样式 - */ - public NoteEditText(Context context, AttributeSet attrs, int defStyle) { - super(context, attrs, defStyle); - // TODO Auto-generated constructor stub - } - - /** - * 处理触摸事件 - *

- * 当用户点击编辑框时,将光标定位到点击位置 - *

- * @param event 触摸事件 - * @return 事件是否被处理 - */ - @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(); - y -= getTotalPaddingTop(); - x += getScrollX(); - y += getScrollY(); - - Layout layout = getLayout(); - int line = layout.getLineForVertical(y); - int off = layout.getOffsetForHorizontal(line, x); - Selection.setSelection(getText(), off); - break; - } - - return super.onTouchEvent(event); - } - - /** - * 处理按键按下事件 - *

- * 监听回车键和删除键的按下事件 - *

- * @param keyCode 按键代码 - * @param event 按键事件 - * @return 事件是否被处理 - */ - @Override - public boolean onKeyDown(int keyCode, KeyEvent event) { - switch (keyCode) { - case KeyEvent.KEYCODE_ENTER: - if (mOnTextViewChangeListener != null) { - return false; - } - break; - case KeyEvent.KEYCODE_DEL: - mSelectionStartBeforeDelete = getSelectionStart(); - break; - default: - break; - } - return super.onKeyDown(keyCode, event); - } - - /** - * 处理按键释放事件 - *

- * 监听删除键和回车键的释放事件,实现编辑框的删除和添加功能 - *

- * @param keyCode 按键代码 - * @param event 按键事件 - * @return 事件是否被处理 - */ - @Override - public boolean onKeyUp(int keyCode, KeyEvent event) { - switch(keyCode) { - case KeyEvent.KEYCODE_DEL: - if (mOnTextViewChangeListener != null) { - if (0 == mSelectionStartBeforeDelete && mIndex != 0) { - mOnTextViewChangeListener.onEditTextDelete(mIndex, getText().toString()); - return true; - } - } else { - Log.d(TAG, "OnTextViewChangeListener was not seted"); - } - break; - case KeyEvent.KEYCODE_ENTER: - if (mOnTextViewChangeListener != null) { - int selectionStart = getSelectionStart(); - String text = getText().subSequence(selectionStart, length()).toString(); - setText(getText().subSequence(0, selectionStart)); - mOnTextViewChangeListener.onEditTextEnter(mIndex + 1, text); - } else { - Log.d(TAG, "OnTextViewChangeListener was not seted"); - } - break; - default: - break; - } - return super.onKeyUp(keyCode, event); - } - - /** - * 处理焦点变化事件 - *

- * 当编辑框失去焦点且文本为空时,通知监听器隐藏项目选项 - * 当编辑框获得焦点或文本不为空时,通知监听器显示项目选项 - *

- * @param focused 是否获得焦点 - * @param direction 焦点变化方向 - * @param previouslyFocusedRect 之前焦点所在的矩形区域 - */ - @Override - protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) { - if (mOnTextViewChangeListener != null) { - if (!focused && TextUtils.isEmpty(getText())) { - mOnTextViewChangeListener.onTextChange(mIndex, false); - } else { - mOnTextViewChangeListener.onTextChange(mIndex, true); - } - } - super.onFocusChanged(focused, direction, previouslyFocusedRect); - } - - /** - * 创建上下文菜单 - *

- * 当选中的文本包含链接时,创建相应的链接操作菜单 - *

- * @param menu 上下文菜单 - */ - @Override - protected void onCreateContextMenu(ContextMenu menu) { - if (getText() instanceof Spanned) { - int selStart = getSelectionStart(); - int selEnd = getSelectionEnd(); - - int min = Math.min(selStart, selEnd); - int max = Math.max(selStart, selEnd); - - final URLSpan[] urls = ((Spanned) getText()).getSpans(min, max, URLSpan.class); - if (urls.length == 1) { - int defaultResId = 0; - for(String schema: sSchemaActionResMap.keySet()) { - if(urls[0].getURL().indexOf(schema) >= 0) { - defaultResId = sSchemaActionResMap.get(schema); - break; - } - } - - if (defaultResId == 0) { - defaultResId = R.string.note_link_other; - } - - menu.add(0, 0, 0, defaultResId).setOnMenuItemClickListener( - new OnMenuItemClickListener() { - public boolean onMenuItemClick(MenuItem item) { - // goto a new intent - urls[0].onClick(NoteEditText.this); - return true; - } - }); - } - } - super.onCreateContextMenu(menu); - } -} diff --git a/src/main/java/net/micode/notes/ui/NoteItemData.java b/src/main/java/net/micode/notes/ui/NoteItemData.java deleted file mode 100644 index 2ffa01d..0000000 --- a/src/main/java/net/micode/notes/ui/NoteItemData.java +++ /dev/null @@ -1,459 +0,0 @@ -/* - * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.micode.notes.ui; - -import android.content.Context; -import android.database.Cursor; -import android.text.TextUtils; - -import net.micode.notes.data.Contact; -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, - }; - - /** - * 查询结果中笔记ID列的索引 - */ - private static final int ID_COLUMN = 0; - - /** - * 查询结果中提醒日期列的索引 - */ - private static final int ALERTED_DATE_COLUMN = 1; - - /** - * 查询结果中背景颜色ID列的索引 - */ - 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; - - /** - * 查询结果中父文件夹ID列的索引 - */ - private static final int PARENT_ID_COLUMN = 7; - - /** - * 查询结果中笔记摘要列的索引 - */ - private static final int SNIPPET_COLUMN = 8; - - /** - * 查询结果中笔记类型列的索引 - */ - private static final int TYPE_COLUMN = 9; - - /** - * 查询结果中小组件ID列的索引 - */ - private static final int WIDGET_ID_COLUMN = 10; - - /** - * 查询结果中小组件类型列的索引 - */ - private static final int WIDGET_TYPE_COLUMN = 11; - - /** - * 笔记ID - */ - private long mId; - - /** - * 提醒日期 - */ - private long mAlertDate; - - /** - * 背景颜色ID - */ - private int mBgColorId; - - /** - * 创建日期 - */ - private long mCreatedDate; - - /** - * 是否有附件 - */ - private boolean mHasAttachment; - - /** - * 修改日期 - */ - private long mModifiedDate; - - /** - * 笔记数量(用于文件夹) - */ - private int mNotesCount; - - /** - * 父文件夹ID - */ - private long mParentId; - - /** - * 笔记摘要 - */ - private String mSnippet; - - /** - * 笔记类型 - */ - private int mType; - - /** - * 小组件ID - */ - 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; - - /** - * 构造函数,从游标中初始化笔记列表项数据 - * @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; - 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); - if (!TextUtils.isEmpty(mPhoneNumber)) { - mName = Contact.getContact(context, mPhoneNumber); - if (mName == null) { - mName = mPhoneNumber; - } - } - } - - if (mName == null) { - mName = ""; - } - checkPostion(cursor); - } - - /** - * 检查当前项在列表中的位置 - *

- * 该方法用于判断当前项是否为第一项、最后一项、唯一一项,以及是否为文件夹后的笔记 - *

- * @param cursor 包含笔记数据的游标 - */ - private void checkPostion(Cursor cursor) { - mIsLastItem = cursor.isLast() ? true : false; - mIsFirstItem = cursor.isFirst() ? true : false; - mIsOnlyOneItem = (cursor.getCount() == 1); - mIsMultiNotesFollowingFolder = false; - mIsOneNoteFollowingFolder = false; - - if (mType == Notes.TYPE_NOTE && !mIsFirstItem) { - int position = cursor.getPosition(); - if (cursor.moveToPrevious()) { - if (cursor.getInt(TYPE_COLUMN) == Notes.TYPE_FOLDER - || cursor.getInt(TYPE_COLUMN) == Notes.TYPE_SYSTEM) { - if (cursor.getCount() > (position + 1)) { - mIsMultiNotesFollowingFolder = true; - } else { - mIsOneNoteFollowingFolder = true; - } - } - if (!cursor.moveToNext()) { - throw new IllegalStateException("cursor move to previous but can't move back"); - } - } - } - } - - /** - * 判断是否为文件夹后的唯一笔记 - * @return 是否为文件夹后的唯一笔记 - */ - public boolean isOneFollowingFolder() { - return mIsOneNoteFollowingFolder; - } - - /** - * 判断是否为文件夹后的多个笔记 - * @return 是否为文件夹后的多个笔记 - */ - public boolean isMultiFollowingFolder() { - return mIsMultiNotesFollowingFolder; - } - - /** - * 判断是否为最后一项 - * @return 是否为最后一项 - */ - public boolean isLast() { - return mIsLastItem; - } - - /** - * 获取通话记录联系人名称 - * @return 通话记录联系人名称 - */ - public String getCallName() { - return mName; - } - - /** - * 判断是否为第一项 - * @return 是否为第一项 - */ - public boolean isFirst() { - return mIsFirstItem; - } - - /** - * 判断是否为唯一一项 - * @return 是否为唯一一项 - */ - public boolean isSingle() { - return mIsOnlyOneItem; - } - - /** - * 获取笔记ID - * @return 笔记ID - */ - public long getId() { - return mId; - } - - /** - * 获取提醒日期 - * @return 提醒日期,以毫秒为单位 - */ - public long getAlertDate() { - return mAlertDate; - } - - /** - * 获取创建日期 - * @return 创建日期,以毫秒为单位 - */ - public long getCreatedDate() { - return mCreatedDate; - } - - /** - * 判断是否有附件 - * @return 是否有附件 - */ - public boolean hasAttachment() { - return mHasAttachment; - } - - /** - * 获取修改日期 - * @return 修改日期,以毫秒为单位 - */ - public long getModifiedDate() { - return mModifiedDate; - } - - /** - * 获取背景颜色ID - * @return 背景颜色ID - */ - public int getBgColorId() { - return mBgColorId; - } - - /** - * 获取父文件夹ID - * @return 父文件夹ID - */ - public long getParentId() { - return mParentId; - } - - /** - * 获取笔记数量(用于文件夹) - * @return 笔记数量 - */ - public int getNotesCount() { - return mNotesCount; - } - - /** - * 获取文件夹ID - * @return 文件夹ID - */ - public long getFolderId () { - return mParentId; - } - - /** - * 获取笔记类型 - * @return 笔记类型 - */ - public int getType() { - return mType; - } - - /** - * 获取小组件类型 - * @return 小组件类型 - */ - public int getWidgetType() { - return mWidgetType; - } - - /** - * 获取小组件ID - * @return 小组件ID - */ - public int getWidgetId() { - return mWidgetId; - } - - /** - * 获取笔记摘要 - * @return 笔记摘要 - */ - public String getSnippet() { - return mSnippet; - } - - /** - * 判断是否有提醒 - * @return 是否有提醒 - */ - public boolean hasAlert() { - return (mAlertDate > 0); - } - - /** - * 判断是否为通话记录 - * @return 是否为通话记录 - */ - 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/main/java/net/micode/notes/ui/NotesListActivity.java b/src/main/java/net/micode/notes/ui/NotesListActivity.java deleted file mode 100644 index b72aba0..0000000 --- a/src/main/java/net/micode/notes/ui/NotesListActivity.java +++ /dev/null @@ -1,1403 +0,0 @@ -/* - * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.micode.notes.ui; - -import android.app.Activity; -import android.app.AlertDialog; -import android.app.Dialog; -import android.appwidget.AppWidgetManager; -import android.content.AsyncQueryHandler; -import android.content.ContentResolver; -import android.content.ContentValues; -import android.content.Context; -import android.content.DialogInterface; -import android.content.Intent; -import android.content.SharedPreferences; -import android.database.Cursor; -import android.os.AsyncTask; -import android.os.Bundle; -import android.preference.PreferenceManager; -import android.text.Editable; -import android.text.TextUtils; -import android.text.TextWatcher; -import android.util.Log; -import android.view.ActionMode; -import android.view.ContextMenu; -import android.view.ContextMenu.ContextMenuInfo; -import android.view.Display; -import android.view.HapticFeedbackConstants; -import android.view.LayoutInflater; -import android.view.Menu; -import android.view.MenuItem; -import android.view.MenuItem.OnMenuItemClickListener; -import android.view.MotionEvent; -import android.view.View; -import android.view.View.OnClickListener; -import android.view.View.OnCreateContextMenuListener; -import android.view.View.OnTouchListener; -import android.view.inputmethod.InputMethodManager; -import android.widget.AdapterView; -import android.widget.AdapterView.OnItemClickListener; -import android.widget.AdapterView.OnItemLongClickListener; -import android.widget.Button; -import android.widget.EditText; -import android.widget.ListView; -import android.widget.PopupMenu; -import android.widget.TextView; -import android.widget.Toast; - -import net.micode.notes.R; -import net.micode.notes.data.Notes; -import net.micode.notes.data.Notes.NoteColumns; -import net.micode.notes.gtask.remote.GTaskSyncService; -import net.micode.notes.model.WorkingNote; -import net.micode.notes.tool.BackupUtils; -import net.micode.notes.tool.DataUtils; -import net.micode.notes.tool.ResourceParser; -import net.micode.notes.ui.NotesListAdapter.AppWidgetAttribute; -import net.micode.notes.widget.NoteWidgetProvider_2x; -import net.micode.notes.widget.NoteWidgetProvider_4x; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.util.HashSet; - -/** - * 笔记列表活动类 - *

- * 该类是应用的主界面,负责显示笔记列表,处理笔记的创建、编辑、删除等操作, - * 支持文件夹管理、笔记同步、导入导出等功能,并提供了多选模式、上下文菜单等交互方式 - *

- */ -public class NotesListActivity extends Activity implements OnClickListener, OnItemLongClickListener { - /** 文件夹笔记列表查询令牌 */ - private static final int FOLDER_NOTE_LIST_QUERY_TOKEN = 0; - - /** 文件夹列表查询令牌 */ - private static final int FOLDER_LIST_QUERY_TOKEN = 1; - - /** 文件夹删除菜单ID */ - private static final int MENU_FOLDER_DELETE = 0; - - /** 文件夹查看菜单ID */ - private static final int MENU_FOLDER_VIEW = 1; - - /** 文件夹重命名菜单ID */ - private static final int MENU_FOLDER_CHANGE_NAME = 2; - - /** 偏好设置:是否添加了介绍笔记 */ - private static final String PREFERENCE_ADD_INTRODUCTION = "net.micode.notes.introduction"; - - /** - * 列表编辑状态枚举 - *

- * 定义了笔记列表的三种状态: - * 1. NOTE_LIST:根目录下的笔记列表 - * 2. SUB_FOLDER:子文件夹中的笔记列表 - * 3. CALL_RECORD_FOLDER:通话记录文件夹 - *

- */ - private enum ListEditState { - NOTE_LIST, SUB_FOLDER, CALL_RECORD_FOLDER - }; - - /** 当前列表编辑状态 */ - private ListEditState mState; - - /** 后台查询处理器 */ - private BackgroundQueryHandler mBackgroundQueryHandler; - - /** 笔记列表适配器 */ - private NotesListAdapter mNotesListAdapter; - - /** 笔记列表视图 */ - private ListView mNotesListView; - - /** 新建笔记按钮 */ - private Button mAddNewNote; - - /** 是否分发触摸事件 */ - private boolean mDispatch; - - /** 原始Y坐标 */ - private int mOriginY; - - /** 分发Y坐标 */ - private int mDispatchY; - - /** 标题栏文本视图 */ - private TextView mTitleBar; - - /** 当前文件夹ID */ - private long mCurrentFolderId; - - /** 内容解析器 */ - private ContentResolver mContentResolver; - - /** 模式回调 */ - private ModeCallback mModeCallBack; - - /** 日志标签 */ - private static final String TAG = "NotesListActivity"; - - /** 笔记列表视图滚动速率 */ - public static final int NOTES_LISTVIEW_SCROLL_RATE = 30; - - /** 当前焦点的笔记数据项 */ - private NoteItemData mFocusNoteDataItem; - - /** 普通文件夹选择条件 */ - private static final String NORMAL_SELECTION = NoteColumns.PARENT_ID + "=?"; - - /** 根文件夹选择条件 */ - private static final String ROOT_FOLDER_SELECTION = "(" + NoteColumns.TYPE + "<>" - + Notes.TYPE_SYSTEM + " AND " + NoteColumns.PARENT_ID + "=?)") + " OR (" - + NoteColumns.ID + "=" + Notes.ID_CALL_RECORD_FOLDER + " AND " - + NoteColumns.NOTES_COUNT + ">0)"; - - /** 打开笔记请求码 */ - private final static int REQUEST_CODE_OPEN_NODE = 102; - /** 新建笔记请求码 */ - private final static int REQUEST_CODE_NEW_NODE = 103; - - /** - * 活动创建时调用 - *

- * 该方法完成以下工作: - * 1. 设置布局文件 - * 2. 初始化资源 - * 3. 如果是首次使用,添加介绍笔记 - *

- * @param savedInstanceState 保存的实例状态 - */ - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.note_list); - initResources(); - - /** - * Insert an introduction when user firstly use this application - */ - setAppInfoFromRawRes(); - } - - /** - * 处理活动返回结果 - *

- * 该方法在其他活动返回结果时调用,主要用于处理笔记编辑活动返回的结果 - *

- * @param requestCode 请求码 - * @param resultCode 结果码 - * @param data 返回的数据 - */ - @Override - protected void onActivityResult(int requestCode, int resultCode, Intent data) { - if (resultCode == RESULT_OK - && (requestCode == REQUEST_CODE_OPEN_NODE || requestCode == REQUEST_CODE_NEW_NODE)) { - mNotesListAdapter.changeCursor(null); - } else { - super.onActivityResult(requestCode, resultCode, data); - } - } - - private void setAppInfoFromRawRes() { - SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this); - if (!sp.getBoolean(PREFERENCE_ADD_INTRODUCTION, false)) { - StringBuilder sb = new StringBuilder(); - InputStream in = null; - try { - in = getResources().openRawResource(R.raw.introduction); - if (in != null) { - InputStreamReader isr = new InputStreamReader(in); - BufferedReader br = new BufferedReader(isr); - char [] buf = new char[1024]; - int len = 0; - while ((len = br.read(buf)) > 0) { - sb.append(buf, 0, len); - } - } else { - Log.e(TAG, "Read introduction file error"); - return; - } - } catch (IOException e) { - e.printStackTrace(); - return; - } finally { - if(in != null) { - try { - in.close(); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - } - - WorkingNote note = WorkingNote.createEmptyNote(this, Notes.ID_ROOT_FOLDER, - AppWidgetManager.INVALID_APPWIDGET_ID, Notes.TYPE_WIDGET_INVALIDE, - ResourceParser.RED); - note.setWorkingText(sb.toString()); - if (note.saveNote()) { - sp.edit().putBoolean(PREFERENCE_ADD_INTRODUCTION, true).commit(); - } else { - Log.e(TAG, "Save introduction note error"); - return; - } - } - } - - /** - * 活动开始时调用 - *

- * 该方法在活动开始时调用,主要用于启动异步笔记列表查询 - *

- */ - @Override - protected void onStart() { - super.onStart(); - startAsyncNotesListQuery(); - } - - /** - * 初始化资源 - *

- * 该方法完成以下工作: - * 1. 初始化内容解析器和后台查询处理器 - * 2. 设置当前文件夹ID为根文件夹ID - * 3. 初始化笔记列表视图,添加页脚,设置点击和长按监听器 - * 4. 初始化笔记列表适配器并设置给列表视图 - * 5. 初始化新建笔记按钮,设置点击和触摸监听器 - * 6. 初始化触摸事件相关变量 - * 7. 初始化标题栏和状态 - * 8. 初始化模式回调 - *

- */ - private void initResources() { - mContentResolver = this.getContentResolver(); - mBackgroundQueryHandler = new BackgroundQueryHandler(this.getContentResolver()); - mCurrentFolderId = Notes.ID_ROOT_FOLDER; - mNotesListView = (ListView) findViewById(R.id.notes_list); - mNotesListView.addFooterView(LayoutInflater.from(this).inflate(R.layout.note_list_footer, null), - null, false); - mNotesListView.setOnItemClickListener(new OnListItemClickListener()); - mNotesListView.setOnItemLongClickListener(this); - mNotesListAdapter = new NotesListAdapter(this); - mNotesListView.setAdapter(mNotesListAdapter); - mAddNewNote = (Button) findViewById(R.id.btn_new_note); - mAddNewNote.setOnClickListener(this); - mAddNewNote.setOnTouchListener(new NewNoteOnTouchListener()); - mDispatch = false; - mDispatchY = 0; - mOriginY = 0; - mTitleBar = (TextView) findViewById(R.id.tv_title_bar); - mState = ListEditState.NOTE_LIST; - mModeCallBack = new ModeCallback(); - } - - /** - * 多选模式回调类 - *

- * 该类实现了ListView.MultiChoiceModeListener和OnMenuItemClickListener接口, - * 用于处理多选模式下的操作,包括创建模式、更新菜单、处理菜单点击事件等 - *

- */ - private class ModeCallback implements ListView.MultiChoiceModeListener, OnMenuItemClickListener { - /** 下拉菜单 */ - private DropdownMenu mDropDownMenu; - /** 动作模式 */ - private ActionMode mActionMode; - /** 移动菜单 */ - private MenuItem mMoveMenu; - - /** - * 创建动作模式 - *

- * 该方法完成以下工作: - * 1. 加载菜单资源 - * 2. 设置删除菜单的点击监听器 - * 3. 根据当前文件夹ID和用户文件夹数量设置移动菜单的可见性 - * 4. 保存动作模式实例 - * 5. 设置列表适配器为选择模式 - * 6. 禁用列表的长按功能 - * 7. 隐藏新建笔记按钮 - * 8. 设置自定义视图 - * 9. 创建下拉菜单 - * 10. 设置下拉菜单的点击监听器 - *

- * @param mode 动作模式 - * @param menu 菜单 - * @return 是否创建成功,返回true表示成功 - */ - public boolean onCreateActionMode(ActionMode mode, Menu menu) { - getMenuInflater().inflate(R.menu.note_list_options, menu); - menu.findItem(R.id.delete).setOnMenuItemClickListener(this); - mMoveMenu = menu.findItem(R.id.move); - if (mFocusNoteDataItem.getParentId() == Notes.ID_CALL_RECORD_FOLDER - || DataUtils.getUserFolderCount(mContentResolver) == 0) { - mMoveMenu.setVisible(false); - } else { - mMoveMenu.setVisible(true); - mMoveMenu.setOnMenuItemClickListener(this); - } - mActionMode = mode; - mNotesListAdapter.setChoiceMode(true); - mNotesListView.setLongClickable(false); - mAddNewNote.setVisibility(View.GONE); - - View customView = LayoutInflater.from(NotesListActivity.this).inflate( - R.layout.note_list_dropdown_menu, null); - mode.setCustomView(customView); - mDropDownMenu = new DropdownMenu(NotesListActivity.this, - (Button) customView.findViewById(R.id.selection_menu), - R.menu.note_list_dropdown); - mDropDownMenu.setOnDropdownMenuItemClickListener(new PopupMenu.OnMenuItemClickListener(){ - public boolean onMenuItemClick(MenuItem item) { - mNotesListAdapter.selectAll(!mNotesListAdapter.isAllSelected()); - updateMenu(); - return true; - } - - }); - return true; - } - - /** - * 更新菜单 - *

- * 该方法完成以下工作: - * 1. 获取选中的笔记数量 - * 2. 更新下拉菜单的标题,显示选中数量 - * 3. 更新全选/取消全选菜单项的状态和标题 - *

- */ - private void updateMenu() { - int selectedCount = mNotesListAdapter.getSelectedCount(); - // Update dropdown menu - String format = getResources().getString(R.string.menu_select_title, selectedCount); - mDropDownMenu.setTitle(format); - MenuItem item = mDropDownMenu.findItem(R.id.action_select_all); - if (item != null) { - if (mNotesListAdapter.isAllSelected()) { - item.setChecked(true); - item.setTitle(R.string.menu_deselect_all); - } else { - item.setChecked(false); - item.setTitle(R.string.menu_select_all); - } - } - } - - /** - * 准备动作模式 - *

- * 该方法未实现具体功能,返回false - *

- * @param mode 动作模式 - * @param menu 菜单 - * @return 是否准备成功,返回false - */ - public boolean onPrepareActionMode(ActionMode mode, Menu menu) { - // TODO Auto-generated method stub - return false; - } - - /** - * 处理动作模式菜单项点击事件 - *

- * 该方法未实现具体功能,返回false - *

- * @param mode 动作模式 - * @param item 菜单项 - * @return 是否处理成功,返回false - */ - public boolean onActionItemClicked(ActionMode mode, MenuItem item) { - // TODO Auto-generated method stub - return false; - } - - /** - * 销毁动作模式 - *

- * 该方法完成以下工作: - * 1. 设置列表适配器为非选择模式 - * 2. 启用列表的长按功能 - * 3. 显示新建笔记按钮 - *

- * @param mode 动作模式 - */ - public void onDestroyActionMode(ActionMode mode) { - mNotesListAdapter.setChoiceMode(false); - mNotesListView.setLongClickable(true); - mAddNewNote.setVisibility(View.VISIBLE); - } - - /** - * 结束动作模式 - *

- * 该方法调用动作模式的finish方法来结束多选模式 - *

- */ - public void finishActionMode() { - mActionMode.finish(); - } - - /** - * 列表项选中状态变化时调用 - *

- * 该方法完成以下工作: - * 1. 设置列表项的选中状态 - * 2. 更新菜单 - *

- * @param mode 动作模式 - * @param position 列表项位置 - * @param id 列表项ID - * @param checked 是否选中 - */ - public void onItemCheckedStateChanged(ActionMode mode, int position, long id, - boolean checked) { - mNotesListAdapter.setCheckedItem(position, checked); - updateMenu(); - } - - /** - * 处理菜单项点击事件 - *

- * 该方法完成以下工作: - * 1. 检查是否有选中的笔记,如果没有则显示提示 - * 2. 根据菜单项ID处理不同的操作: - * - 删除:显示删除确认对话框,点击确定后调用batchDelete方法 - * - 移动:调用startQueryDestinationFolders方法查询目标文件夹 - *

- * @param item 菜单项 - * @return 是否处理成功,返回true表示成功 - */ - public boolean onMenuItemClick(MenuItem item) { - if (mNotesListAdapter.getSelectedCount() == 0) { - Toast.makeText(NotesListActivity.this, getString(R.string.menu_select_none), - Toast.LENGTH_SHORT).show(); - return true; - } - - switch (item.getItemId()) { - case R.id.delete: - AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity.this); - builder.setTitle(getString(R.string.alert_title_delete)); - builder.setIcon(android.R.drawable.ic_dialog_alert); - builder.setMessage(getString(R.string.alert_message_delete_notes, - mNotesListAdapter.getSelectedCount())); - builder.setPositiveButton(android.R.string.ok, - new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, - int which) { - batchDelete(); - } - }); - builder.setNegativeButton(android.R.string.cancel, null); - builder.show(); - break; - case R.id.move: - startQueryDestinationFolders(); - break; - default: - return false; - } - return true; - } - } - - /** - * 新建笔记按钮触摸监听器 - *

- * 该类实现了OnTouchListener接口,用于处理新建笔记按钮的触摸事件, - * 特别是处理按钮透明部分的触摸事件,将其分发给下方的列表视图 - *

- */ - private class NewNoteOnTouchListener implements OnTouchListener { - - /** - * 处理触摸事件 - *

- * 该方法完成以下工作: - * 1. 处理ACTION_DOWN事件: - * - 获取屏幕高度和新建笔记按钮高度 - * - 计算触摸事件的Y坐标 - * - 如果当前状态是SUB_FOLDER,减去标题栏高度 - * - 检查触摸点是否在按钮的透明部分(根据公式y=-0.12x+94判断) - * - 如果是,将触摸事件分发给下方的列表视图 - * 2. 处理ACTION_MOVE事件: - * - 如果已经开始分发事件,更新事件坐标并继续分发给列表视图 - * 3. 处理其他事件: - * - 如果已经开始分发事件,结束分发并将事件分发给列表视图 - *

- * @param v 被触摸的视图 - * @param event 触摸事件 - * @return 是否消费了该事件,返回true表示已消费 - */ - public boolean onTouch(View v, MotionEvent event) { - switch (event.getAction()) { - case MotionEvent.ACTION_DOWN: { - Display display = getWindowManager().getDefaultDisplay(); - int screenHeight = display.getHeight(); - int newNoteViewHeight = mAddNewNote.getHeight(); - int start = screenHeight - newNoteViewHeight; - int eventY = start + (int) event.getY(); - /** - * Minus TitleBar's height - */ - if (mState == ListEditState.SUB_FOLDER) { - eventY -= mTitleBar.getHeight(); - start -= mTitleBar.getHeight(); - } - /** - * HACKME:When click the transparent part of "New Note" button, dispatch - * the event to the list view behind this button. The transparent part of - * "New Note" button could be expressed by formula y=-0.12x+94(Unit:pixel) - * and the line top of the button. The coordinate based on left of the "New - * Note" button. The 94 represents maximum height of the transparent part. - * Notice that, if the background of the button changes, the formula should - * also change. This is very bad, just for the UI designer's strong requirement. - */ - if (event.getY() < (event.getX() * (-0.12) + 94)) { - View view = mNotesListView.getChildAt(mNotesListView.getChildCount() - 1 - - mNotesListView.getFooterViewsCount()); - if (view != null && view.getBottom() > start - && (view.getTop() < (start + 94))) { - mOriginY = (int) event.getY(); - mDispatchY = eventY; - event.setLocation(event.getX(), mDispatchY); - mDispatch = true; - return mNotesListView.dispatchTouchEvent(event); - } - } - break; - } - case MotionEvent.ACTION_MOVE: { - if (mDispatch) { - mDispatchY += (int) event.getY() - mOriginY; - event.setLocation(event.getX(), mDispatchY); - return mNotesListView.dispatchTouchEvent(event); - } - break; - } - default: { - if (mDispatch) { - event.setLocation(event.getX(), mDispatchY); - mDispatch = false; - return mNotesListView.dispatchTouchEvent(event); - } - break; - } - } - return false; - } - - }; - - /** - * 启动异步笔记列表查询 - *

- * 该方法根据当前文件夹ID选择合适的查询条件,然后启动异步查询,查询结果将通过BackgroundQueryHandler返回 - *

- */ - private void startAsyncNotesListQuery() { - String selection = (mCurrentFolderId == Notes.ID_ROOT_FOLDER) ? ROOT_FOLDER_SELECTION - : NORMAL_SELECTION; - mBackgroundQueryHandler.startQuery(FOLDER_NOTE_LIST_QUERY_TOKEN, null, - Notes.CONTENT_NOTE_URI, NoteItemData.PROJECTION, selection, new String[] { - String.valueOf(mCurrentFolderId) - }, NoteColumns.TYPE + " DESC," + NoteColumns.MODIFIED_DATE + " DESC"); - } - - /** - * 后台查询处理器类 - *

- * 该类继承自AsyncQueryHandler,用于处理异步查询操作, - * 主要处理两种查询: - * 1. 文件夹笔记列表查询 - * 2. 文件夹列表查询 - *

- */ - private final class BackgroundQueryHandler extends AsyncQueryHandler { - /** - * 构造函数 - * @param contentResolver 内容解析器 - */ - public BackgroundQueryHandler(ContentResolver contentResolver) { - super(contentResolver); - } - - /** - * 查询完成时调用 - *

- * 该方法根据查询令牌处理查询结果: - * 1. 如果是文件夹笔记列表查询,将结果游标设置给列表适配器 - * 2. 如果是文件夹列表查询,显示文件夹列表菜单 - *

- * @param token 查询令牌,用于标识查询类型 - * @param cookie 查询时传递的附加数据,此处未使用 - * @param cursor 查询结果游标 - */ - @Override - protected void onQueryComplete(int token, Object cookie, Cursor cursor) { - switch (token) { - case FOLDER_NOTE_LIST_QUERY_TOKEN: - mNotesListAdapter.changeCursor(cursor); - break; - case FOLDER_LIST_QUERY_TOKEN: - if (cursor != null && cursor.getCount() > 0) { - showFolderListMenu(cursor); - } else { - Log.e(TAG, "Query folder failed"); - } - break; - default: - return; - } - } - } - - private void showFolderListMenu(Cursor cursor) { - AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity.this); - builder.setTitle(R.string.menu_title_select_folder); - final FoldersListAdapter adapter = new FoldersListAdapter(this, cursor); - builder.setAdapter(adapter, new DialogInterface.OnClickListener() { - - public void onClick(DialogInterface dialog, int which) { - DataUtils.batchMoveToFolder(mContentResolver, - mNotesListAdapter.getSelectedItemIds(), adapter.getItemId(which)); - Toast.makeText( - NotesListActivity.this, - getString(R.string.format_move_notes_to_folder, - mNotesListAdapter.getSelectedCount(), - adapter.getFolderName(NotesListActivity.this, which)), - Toast.LENGTH_SHORT).show(); - mModeCallBack.finishActionMode(); - } - }); - builder.show(); - } - - /** - * 创建新笔记 - *

- * 该方法通过启动NoteEditActivity来创建新笔记,并传递当前文件夹ID作为额外参数 - *

- */ - private void createNewNote() { - Intent intent = new Intent(this, NoteEditActivity.class); - intent.setAction(Intent.ACTION_INSERT_OR_EDIT); - intent.putExtra(Notes.INTENT_EXTRA_FOLDER_ID, mCurrentFolderId); - this.startActivityForResult(intent, REQUEST_CODE_NEW_NODE); - } - - /** - * 批量删除笔记 - *

- * 该方法在异步任务中完成以下工作: - * 1. 获取选中的部件属性 - * 2. 如果不在同步模式,直接删除选中的笔记 - * 3. 如果在同步模式,将选中的笔记移动到回收站 - * 4. 更新相关部件 - * 5. 结束多选模式 - *

- */ - private void batchDelete() { - new AsyncTask>() { - protected HashSet doInBackground(Void... unused) { - HashSet widgets = mNotesListAdapter.getSelectedWidget(); - if (!isSyncMode()) { - // if not synced, delete notes directly - if (DataUtils.batchDeleteNotes(mContentResolver, mNotesListAdapter - .getSelectedItemIds())) { - } else { - Log.e(TAG, "Delete notes error, should not happens"); - } - } else { - // in sync mode, we'll move the deleted note into the trash - // folder - if (!DataUtils.batchMoveToFolder(mContentResolver, mNotesListAdapter - .getSelectedItemIds(), Notes.ID_TRASH_FOLER)) { - Log.e(TAG, "Move notes to trash folder error, should not happens"); - } - } - return widgets; - } - - @Override - protected void onPostExecute(HashSet widgets) { - if (widgets != null) { - for (AppWidgetAttribute widget : widgets) { - if (widget.widgetId != AppWidgetManager.INVALID_APPWIDGET_ID - && widget.widgetType != Notes.TYPE_WIDGET_INVALIDE) { - updateWidget(widget.widgetId, widget.widgetType); - } - } - } - mModeCallBack.finishActionMode(); - } - }.execute(); - } - - /** - * 删除文件夹 - *

- * 该方法完成以下工作: - * 1. 检查文件夹ID是否为根文件夹ID,如果是则返回错误 - * 2. 获取文件夹的部件属性 - * 3. 如果不在同步模式,直接删除文件夹 - * 4. 如果在同步模式,将文件夹移动到回收站 - * 5. 更新相关部件 - *

- * @param folderId 要删除的文件夹ID - */ - private void deleteFolder(long folderId) { - if (folderId == Notes.ID_ROOT_FOLDER) { - Log.e(TAG, "Wrong folder id, should not happen " + folderId); - return; - } - - HashSet ids = new HashSet(); - ids.add(folderId); - HashSet widgets = DataUtils.getFolderNoteWidget(mContentResolver, - folderId); - if (!isSyncMode()) { - // if not synced, delete folder directly - DataUtils.batchDeleteNotes(mContentResolver, ids); - } else { - // in sync mode, we'll move the deleted folder into the trash folder - DataUtils.batchMoveToFolder(mContentResolver, ids, Notes.ID_TRASH_FOLER); - } - if (widgets != null) { - for (AppWidgetAttribute widget : widgets) { - if (widget.widgetId != AppWidgetManager.INVALID_APPWIDGET_ID - && widget.widgetType != Notes.TYPE_WIDGET_INVALIDE) { - updateWidget(widget.widgetId, widget.widgetType); - } - } - } - } - - /** - * 打开笔记 - *

- * 该方法通过启动NoteEditActivity来打开指定的笔记,传递笔记ID作为额外参数 - *

- * @param data 要打开的笔记数据项 - */ - private void openNode(NoteItemData data) { - Intent intent = new Intent(this, NoteEditActivity.class); - intent.setAction(Intent.ACTION_VIEW); - intent.putExtra(Intent.EXTRA_UID, data.getId()); - this.startActivityForResult(intent, REQUEST_CODE_OPEN_NODE); - } - - /** - * 打开文件夹 - *

- * 该方法完成以下工作: - * 1. 设置当前文件夹ID - * 2. 启动异步笔记列表查询 - * 3. 根据文件夹类型设置列表状态: - * - 如果是通话记录文件夹,设置为CALL_RECORD_FOLDER状态并隐藏新建笔记按钮 - * - 否则设置为SUB_FOLDER状态 - * 4. 设置标题栏文本和可见性 - *

- * @param data 要打开的文件夹数据项 - */ - private void openFolder(NoteItemData data) { - mCurrentFolderId = data.getId(); - startAsyncNotesListQuery(); - if (data.getId() == Notes.ID_CALL_RECORD_FOLDER) { - mState = ListEditState.CALL_RECORD_FOLDER; - mAddNewNote.setVisibility(View.GONE); - } else { - mState = ListEditState.SUB_FOLDER; - } - if (data.getId() == Notes.ID_CALL_RECORD_FOLDER) { - mTitleBar.setText(R.string.call_record_folder_name); - } else { - mTitleBar.setText(data.getSnippet()); - } - mTitleBar.setVisibility(View.VISIBLE); - } - - /** - * 处理点击事件 - *

- * 该方法处理视图的点击事件,目前只处理新建笔记按钮的点击事件 - *

- * @param v 被点击的视图 - */ - public void onClick(View v) { - switch (v.getId()) { - case R.id.btn_new_note: - createNewNote(); - break; - default: - break; - } - } - - /** - * 显示软键盘 - *

- * 该方法通过InputMethodManager显示软键盘 - *

- */ - private void showSoftInput() { - InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); - if (inputMethodManager != null) { - inputMethodManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); - } - } - - /** - * 隐藏软键盘 - *

- * 该方法通过InputMethodManager隐藏软键盘 - *

- * @param view 用于获取窗口令牌的视图 - */ - private void hideSoftInput(View view) { - InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); - inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0); - } - - /** - * 显示创建或修改文件夹对话框 - *

- * 该方法完成以下工作: - * 1. 创建对话框构建器 - * 2. 加载布局文件 - * 3. 显示软键盘 - * 4. 根据create参数设置对话框标题和编辑框内容: - * - 如果是修改文件夹,设置标题为"修改文件夹名称",并显示当前文件夹名称 - * - 如果是创建文件夹,设置标题为"创建文件夹",并清空编辑框 - * 5. 设置对话框按钮和点击事件 - * 6. 显示对话框 - * 7. 为确定按钮设置点击事件,处理文件夹的创建或修改 - * 8. 为编辑框添加文本变化监听器,当文本为空时禁用确定按钮 - *

- * @param create 是否是创建文件夹,true表示创建,false表示修改 - */ - private void showCreateOrModifyFolderDialog(final boolean create) { - final AlertDialog.Builder builder = new AlertDialog.Builder(this); - View view = LayoutInflater.from(this).inflate(R.layout.dialog_edit_text, null); - final EditText etName = (EditText) view.findViewById(R.id.et_foler_name); - showSoftInput(); - if (!create) { - if (mFocusNoteDataItem != null) { - etName.setText(mFocusNoteDataItem.getSnippet()); - builder.setTitle(getString(R.string.menu_folder_change_name)); - } else { - Log.e(TAG, "The long click data item is null"); - return; - } - } else { - etName.setText(""); - builder.setTitle(this.getString(R.string.menu_create_folder)); - } - - builder.setPositiveButton(android.R.string.ok, null); - builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int which) { - hideSoftInput(etName); - } - }); - - final Dialog dialog = builder.setView(view).show(); - final Button positive = (Button)dialog.findViewById(android.R.id.button1); - positive.setOnClickListener(new OnClickListener() { - public void onClick(View v) { - hideSoftInput(etName); - String name = etName.getText().toString(); - if (DataUtils.checkVisibleFolderName(mContentResolver, name)) { - Toast.makeText(NotesListActivity.this, getString(R.string.folder_exist, name), - Toast.LENGTH_LONG).show(); - etName.setSelection(0, etName.length()); - return; - } - if (!create) { - if (!TextUtils.isEmpty(name)) { - ContentValues values = new ContentValues(); - values.put(NoteColumns.SNIPPET, name); - values.put(NoteColumns.TYPE, Notes.TYPE_FOLDER); - values.put(NoteColumns.LOCAL_MODIFIED, 1); - mContentResolver.update(Notes.CONTENT_NOTE_URI, values, NoteColumns.ID - + "=?", new String[] { - String.valueOf(mFocusNoteDataItem.getId()) - }); - } - } else if (!TextUtils.isEmpty(name)) { - ContentValues values = new ContentValues(); - values.put(NoteColumns.SNIPPET, name); - values.put(NoteColumns.TYPE, Notes.TYPE_FOLDER); - mContentResolver.insert(Notes.CONTENT_NOTE_URI, values); - } - dialog.dismiss(); - } - }); - - if (TextUtils.isEmpty(etName.getText())) { - positive.setEnabled(false); - } - /** - * When the name edit text is null, disable the positive button - */ - etName.addTextChangedListener(new TextWatcher() { - public void beforeTextChanged(CharSequence s, int start, int count, int after) { - // TODO Auto-generated method stub - - } - - public void onTextChanged(CharSequence s, int start, int before, int count) { - if (TextUtils.isEmpty(etName.getText())) { - positive.setEnabled(false); - } else { - positive.setEnabled(true); - } - } - - public void afterTextChanged(Editable s) { - // TODO Auto-generated method stub - - } - }); - } - - /** - * 处理返回按钮点击事件 - *

- * 该方法根据当前状态处理返回按钮点击事件: - * 1. 如果在子文件夹中,返回根文件夹 - * 2. 如果在通话记录文件夹中,返回根文件夹并显示新建笔记按钮 - * 3. 如果在根文件夹中,调用默认的返回处理 - *

- */ - @Override - public void onBackPressed() { - switch (mState) { - case SUB_FOLDER: - mCurrentFolderId = Notes.ID_ROOT_FOLDER; - mState = ListEditState.NOTE_LIST; - startAsyncNotesListQuery(); - mTitleBar.setVisibility(View.GONE); - break; - case CALL_RECORD_FOLDER: - mCurrentFolderId = Notes.ID_ROOT_FOLDER; - mState = ListEditState.NOTE_LIST; - mAddNewNote.setVisibility(View.VISIBLE); - mTitleBar.setVisibility(View.GONE); - startAsyncNotesListQuery(); - break; - case NOTE_LIST: - super.onBackPressed(); - break; - default: - break; - } - } - - /** - * 更新部件 - *

- * 该方法完成以下工作: - * 1. 创建广播意图 - * 2. 根据部件类型设置广播接收者: - * - 如果是2x2部件,设置接收者为NoteWidgetProvider_2x - * - 如果是4x4部件,设置接收者为NoteWidgetProvider_4x - * - 否则记录错误并返回 - * 3. 添加部件ID到意图中 - * 4. 发送广播 - * 5. 设置结果 - *

- * @param appWidgetId 部件ID - * @param appWidgetType 部件类型 - */ - private void updateWidget(int appWidgetId, int appWidgetType) { - Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_UPDATE); - if (appWidgetType == Notes.TYPE_WIDGET_2X) { - intent.setClass(this, NoteWidgetProvider_2x.class); - } else if (appWidgetType == Notes.TYPE_WIDGET_4X) { - intent.setClass(this, NoteWidgetProvider_4x.class); - } else { - Log.e(TAG, "Unspported widget type"); - return; - } - - intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, new int[] { - appWidgetId - }); - - sendBroadcast(intent); - setResult(RESULT_OK, intent); - } - - private final OnCreateContextMenuListener mFolderOnCreateContextMenuListener = new OnCreateContextMenuListener() { - public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { - if (mFocusNoteDataItem != null) { - menu.setHeaderTitle(mFocusNoteDataItem.getSnippet()); - menu.add(0, MENU_FOLDER_VIEW, 0, R.string.menu_folder_view); - menu.add(0, MENU_FOLDER_DELETE, 0, R.string.menu_folder_delete); - menu.add(0, MENU_FOLDER_CHANGE_NAME, 0, R.string.menu_folder_change_name); - } - } - }; - - @Override - public void onContextMenuClosed(Menu menu) { - if (mNotesListView != null) { - mNotesListView.setOnCreateContextMenuListener(null); - } - super.onContextMenuClosed(menu); - } - - @Override - public boolean onContextItemSelected(MenuItem item) { - if (mFocusNoteDataItem == null) { - Log.e(TAG, "The long click data item is null"); - return false; - } - switch (item.getItemId()) { - case MENU_FOLDER_VIEW: - openFolder(mFocusNoteDataItem); - break; - case MENU_FOLDER_DELETE: - AlertDialog.Builder builder = new AlertDialog.Builder(this); - builder.setTitle(getString(R.string.alert_title_delete)); - builder.setIcon(android.R.drawable.ic_dialog_alert); - builder.setMessage(getString(R.string.alert_message_delete_folder)); - builder.setPositiveButton(android.R.string.ok, - new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int which) { - deleteFolder(mFocusNoteDataItem.getId()); - } - }); - builder.setNegativeButton(android.R.string.cancel, null); - builder.show(); - break; - case MENU_FOLDER_CHANGE_NAME: - showCreateOrModifyFolderDialog(false); - break; - default: - break; - } - - return true; - } - - @Override - public boolean onPrepareOptionsMenu(Menu menu) { - menu.clear(); - if (mState == ListEditState.NOTE_LIST) { - getMenuInflater().inflate(R.menu.note_list, menu); - // set sync or sync_cancel - menu.findItem(R.id.menu_sync).setTitle( - GTaskSyncService.isSyncing() ? R.string.menu_sync_cancel : R.string.menu_sync); - } else if (mState == ListEditState.SUB_FOLDER) { - getMenuInflater().inflate(R.menu.sub_folder, menu); - } else if (mState == ListEditState.CALL_RECORD_FOLDER) { - getMenuInflater().inflate(R.menu.call_record_folder, menu); - } else { - Log.e(TAG, "Wrong state:" + mState); - } - return true; - } - - /** - * 处理选项菜单点击事件 - *

- * 该方法处理以下菜单项的点击事件: - * 1. 新建文件夹:显示创建文件夹对话框 - * 2. 导出文本:调用exportNoteToText方法导出笔记 - * 3. 同步: - * - 如果在同步模式下,根据当前标题判断是开始同步还是取消同步 - * - 否则跳转到设置页面 - * 4. 设置:跳转到设置页面 - * 5. 新建笔记:调用createNewNote方法创建新笔记 - * 6. 搜索:调用onSearchRequested方法启动搜索 - *

- * @param item 被点击的菜单项 - * @return 是否处理了该事件,返回true表示已处理 - */ - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case R.id.menu_new_folder: { - showCreateOrModifyFolderDialog(true); - break; - } - case R.id.menu_export_text: { - exportNoteToText(); - break; - } - case R.id.menu_sync: { - if (isSyncMode()) { - if (TextUtils.equals(item.getTitle(), getString(R.string.menu_sync))) { - GTaskSyncService.startSync(this); - } else { - GTaskSyncService.cancelSync(this); - } - } else { - startPreferenceActivity(); - } - break; - } - case R.id.menu_setting: { - startPreferenceActivity(); - break; - } - case R.id.menu_new_note: { - createNewNote(); - break; - } - case R.id.menu_search: - onSearchRequested(); - break; - default: - break; - } - return true; - } - - /** - * 处理搜索请求 - *

- * 该方法启动搜索活动 - *

- * @return 是否处理了搜索请求,返回true表示已处理 - */ - @Override - public boolean onSearchRequested() { - startSearch(null, false, null /* appData */, false); - return true; - } - - /** - * 导出笔记到文本文件 - *

- * 该方法在异步任务中完成以下工作: - * 1. 获取BackupUtils实例 - * 2. 在后台调用exportToText方法导出笔记 - * 3. 根据导出结果显示不同的对话框: - * - 如果SD卡未挂载,显示失败对话框 - * - 如果导出成功,显示成功对话框并显示导出文件的位置 - * - 如果系统错误,显示失败对话框 - *

- */ - private void exportNoteToText() { - final BackupUtils backup = BackupUtils.getInstance(NotesListActivity.this); - new AsyncTask() { - - @Override - protected Integer doInBackground(Void... unused) { - return backup.exportToText(); - } - - @Override - protected void onPostExecute(Integer result) { - if (result == BackupUtils.STATE_SD_CARD_UNMOUONTED) { - AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity.this); - builder.setTitle(NotesListActivity.this - .getString(R.string.failed_sdcard_export)); - builder.setMessage(NotesListActivity.this - .getString(R.string.error_sdcard_unmounted)); - builder.setPositiveButton(android.R.string.ok, null); - builder.show(); - } else if (result == BackupUtils.STATE_SUCCESS) { - AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity.this); - builder.setTitle(NotesListActivity.this - .getString(R.string.success_sdcard_export)); - builder.setMessage(NotesListActivity.this.getString( - R.string.format_exported_file_location, backup - .getExportedTextFileName(), backup.getExportedTextFileDir())); - builder.setPositiveButton(android.R.string.ok, null); - builder.show(); - } else if (result == BackupUtils.STATE_SYSTEM_ERROR) { - AlertDialog.Builder builder = new AlertDialog.Builder(NotesListActivity.this); - builder.setTitle(NotesListActivity.this - .getString(R.string.failed_sdcard_export)); - builder.setMessage(NotesListActivity.this - .getString(R.string.error_sdcard_export)); - builder.setPositiveButton(android.R.string.ok, null); - builder.show(); - } - } - - }.execute(); - } - - /** - * 检查是否处于同步模式 - *

- * 该方法通过获取同步账户名来检查是否处于同步模式,如果同步账户名不为空则处于同步模式 - *

- * @return 是否处于同步模式,true表示处于同步模式,false表示不处于同步模式 - */ - private boolean isSyncMode() { - return NotesPreferenceActivity.getSyncAccountName(this).trim().length() > 0; - } - - /** - * 启动偏好设置活动 - *

- * 该方法完成以下工作: - * 1. 获取当前活动或父活动 - * 2. 创建意图,跳转到NotesPreferenceActivity - * 3. 启动活动 - *

- */ - private void startPreferenceActivity() { - Activity from = getParent() != null ? getParent() : this; - Intent intent = new Intent(from, NotesPreferenceActivity.class); - from.startActivityIfNeeded(intent, -1); - } - - /** - * 列表项点击监听器类 - *

- * 该类实现了OnItemClickListener接口,用于处理列表项的点击事件, - * 根据当前状态和点击的列表项类型执行不同的操作 - *

- */ - private class OnListItemClickListener implements OnItemClickListener { - - /** - * 处理列表项点击事件 - *

- * 该方法完成以下工作: - * 1. 检查被点击的视图是否是NotesListItem - * 2. 获取被点击的笔记数据项 - * 3. 如果在选择模式下: - * - 如果是笔记类型,切换选中状态 - * - 返回 - * 4. 根据当前状态和笔记类型执行不同的操作: - * - NOTE_LIST状态: - * - 如果是文件夹或系统类型,调用openFolder方法打开文件夹 - * - 如果是笔记类型,调用openNode方法打开笔记 - * - SUB_FOLDER或CALL_RECORD_FOLDER状态: - * - 如果是笔记类型,调用openNode方法打开笔记 - *

- * @param parent 父视图 - * @param view 被点击的视图 - * @param position 被点击的位置 - * @param id 被点击的ID - */ - public void onItemClick(AdapterView parent, View view, int position, long id) { - if (view instanceof NotesListItem) { - NoteItemData item = ((NotesListItem) view).getItemData(); - if (mNotesListAdapter.isInChoiceMode()) { - if (item.getType() == Notes.TYPE_NOTE) { - position = position - mNotesListView.getHeaderViewsCount(); - mModeCallBack.onItemCheckedStateChanged(null, position, id, - !mNotesListAdapter.isSelectedItem(position)); - } - return; - } - - switch (mState) { - case NOTE_LIST: - if (item.getType() == Notes.TYPE_FOLDER - || item.getType() == Notes.TYPE_SYSTEM) { - openFolder(item); - } else if (item.getType() == Notes.TYPE_NOTE) { - openNode(item); - } else { - Log.e(TAG, "Wrong note type in NOTE_LIST"); - } - break; - case SUB_FOLDER: - case CALL_RECORD_FOLDER: - if (item.getType() == Notes.TYPE_NOTE) { - openNode(item); - } else { - Log.e(TAG, "Wrong note type in SUB_FOLDER"); - } - break; - default: - break; - } - } - } - - } - - /** - * 启动查询目标文件夹 - *

- * 该方法完成以下工作: - * 1. 构建查询条件: - * - 基本条件:类型为文件夹,父ID不等于回收站ID,ID不等于当前文件夹ID - * - 如果当前状态不是NOTE_LIST,添加根文件夹ID到条件中 - * 2. 启动异步查询,查询结果将通过BackgroundQueryHandler返回 - *

- */ - private void startQueryDestinationFolders() { - String selection = NoteColumns.TYPE + "=? AND " + NoteColumns.PARENT_ID + "<>? AND " + NoteColumns.ID + "<>?"; - selection = (mState == ListEditState.NOTE_LIST) ? selection: - "(" + selection + ") OR (" + NoteColumns.ID + "=" + Notes.ID_ROOT_FOLDER + ")"; - - mBackgroundQueryHandler.startQuery(FOLDER_LIST_QUERY_TOKEN, - null, - Notes.CONTENT_NOTE_URI, - FoldersListAdapter.PROJECTION, - selection, - new String[] { - String.valueOf(Notes.TYPE_FOLDER), - String.valueOf(Notes.ID_TRASH_FOLER), - String.valueOf(mCurrentFolderId) - }, - NoteColumns.MODIFIED_DATE + " DESC"); - } - - /** - * 处理列表项长按事件 - *

- * 该方法完成以下工作: - * 1. 检查被长按的视图是否是NotesListItem - * 2. 获取被长按的笔记数据项 - * 3. 根据笔记类型处理长按事件: - * - 如果是笔记类型且不在选择模式下,启动多选模式并选中当前项 - * - 如果是文件夹类型,设置上下文菜单监听器 - * 4. 返回false表示事件未被完全处理 - *

- * @param parent 父视图 - * @param view 被长按的视图 - * @param position 被长按的位置 - * @param id 被长按的ID - * @return 是否处理了该事件,返回false表示事件未被完全处理 - */ - public boolean onItemLongClick(AdapterView parent, View view, int position, long id) { - if (view instanceof NotesListItem) { - mFocusNoteDataItem = ((NotesListItem) view).getItemData(); - if (mFocusNoteDataItem.getType() == Notes.TYPE_NOTE && !mNotesListAdapter.isInChoiceMode()) { - if (mNotesListView.startActionMode(mModeCallBack) != null) { - mModeCallBack.onItemCheckedStateChanged(null, position, id, true); - mNotesListView.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS); - } else { - Log.e(TAG, "startActionMode fails"); - } - } else if (mFocusNoteDataItem.getType() == Notes.TYPE_FOLDER) { - mNotesListView.setOnCreateContextMenuListener(mFolderOnCreateContextMenuListener); - } - } - return false; - } -} diff --git a/src/main/java/net/micode/notes/ui/NotesListAdapter.java b/src/main/java/net/micode/notes/ui/NotesListAdapter.java deleted file mode 100644 index e9f5a8a..0000000 --- a/src/main/java/net/micode/notes/ui/NotesListAdapter.java +++ /dev/null @@ -1,304 +0,0 @@ -/* - * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.micode.notes.ui; - -import android.content.Context; -import android.database.Cursor; -import android.util.Log; -import android.view.View; -import android.view.ViewGroup; -import android.widget.CursorAdapter; - -import net.micode.notes.data.Notes; - -import java.util.Collection; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; - - -/** - * 笔记列表适配器类 - *

- * 该类是CursorAdapter的子类,用于将数据库中的笔记数据绑定到列表视图上, - * 支持普通浏览模式和选择模式,能够管理选中的项目,并提供了各种方法来处理 - * 列表项的选择状态、获取选中项目ID等功能。 - *

- */ -public class NotesListAdapter extends CursorAdapter { - /** 日志标签 */ - private static final String TAG = "NotesListAdapter"; - /** 上下文对象 */ - private Context mContext; - /** 保存选中项目的位置和状态 */ - private HashMap mSelectedIndex; - /** 笔记数量 */ - private int mNotesCount; - /** 是否处于选择模式 */ - private boolean mChoiceMode; - - /** - * 应用桌面组件属性类 - *

- * 该类用于存储桌面组件的相关属性,包括组件ID和组件类型 - *

- */ - public static class AppWidgetAttribute { - /** 桌面组件ID */ - public int widgetId; - /** 桌面组件类型 */ - public int widgetType; - }; - - /** - * 构造函数 - *

- * 初始化NotesListAdapter,创建选中项目的映射表,并设置初始上下文和笔记数量 - *

- * @param context 上下文对象 - */ - public NotesListAdapter(Context context) { - super(context, null); - mSelectedIndex = new HashMap(); - mContext = context; - mNotesCount = 0; - } - - /** - * 创建新的列表项视图 - *

- * 该方法在需要为新的数据项创建视图时调用,返回一个新的NotesListItem实例 - *

- * @param context 上下文对象 - * @param cursor 数据游标 - * @param parent 父视图组 - * @return 新创建的列表项视图 - */ - @Override - public View newView(Context context, Cursor cursor, ViewGroup parent) { - return new NotesListItem(context); - } - - /** - * 将数据绑定到列表项视图 - *

- * 该方法在需要将数据绑定到现有视图时调用,将游标中的数据转换为NoteItemData对象, - * 并调用NotesListItem的bind方法将数据绑定到视图上 - *

- * @param view 要绑定数据的视图 - * @param context 上下文对象 - * @param cursor 数据游标 - */ - @Override - public void bindView(View view, Context context, Cursor cursor) { - if (view instanceof NotesListItem) { - NoteItemData itemData = new NoteItemData(context, cursor); - ((NotesListItem) view).bind(context, itemData, mChoiceMode, - isSelectedItem(cursor.getPosition())); - } - } - - /** - * 设置指定位置的项是否被选中 - *

- * 该方法用于在选择模式下设置指定位置的项的选中状态,并通知数据集变化 - *

- * @param position 项的位置 - * @param checked 是否被选中 - */ - public void setCheckedItem(final int position, final boolean checked) { - mSelectedIndex.put(position, checked); - notifyDataSetChanged(); - } - - /** - * 检查是否处于选择模式 - * @return 是否处于选择模式 - */ - 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++) { - if (cursor.moveToPosition(i)) { - if (NoteItemData.getNoteType(cursor) == Notes.TYPE_NOTE) { - setCheckedItem(i, checked); - } - } - } - } - - /** - * 获取所有选中项的ID - *

- * 该方法用于获取选择模式下所有选中项的ID集合,排除根文件夹ID - *

- * @return 选中项的ID集合 - */ - public HashSet getSelectedItemIds() { - HashSet itemSet = new HashSet(); - for (Integer position : mSelectedIndex.keySet()) { - if (mSelectedIndex.get(position) == true) { - Long id = getItemId(position); - if (id == Notes.ID_ROOT_FOLDER) { - Log.d(TAG, "Wrong item id, should not happen"); - } else { - itemSet.add(id); - } - } - } - - return itemSet; - } - - /** - * 获取所有选中的桌面组件属性 - *

- * 该方法用于获取选择模式下所有选中的桌面组件的属性集合 - *

- * @return 选中的桌面组件属性集合,若获取失败则返回null - */ - public HashSet getSelectedWidget() { - HashSet itemSet = new HashSet(); - for (Integer position : mSelectedIndex.keySet()) { - if (mSelectedIndex.get(position) == true) { - Cursor c = (Cursor) getItem(position); - if (c != null) { - AppWidgetAttribute widget = new AppWidgetAttribute(); - NoteItemData item = new NoteItemData(mContext, c); - widget.widgetId = item.getWidgetId(); - widget.widgetType = item.getWidgetType(); - itemSet.add(widget); - /** - * Don't close cursor here, only the adapter could close it - */ - } else { - Log.e(TAG, "Invalid cursor"); - return null; - } - } - } - return itemSet; - } - - /** - * 获取选中项的数量 - * @return 选中项的数量 - */ - public int getSelectedCount() { - Collection values = mSelectedIndex.values(); - if (null == values) { - return 0; - } - Iterator iter = values.iterator(); - int count = 0; - while (iter.hasNext()) { - if (true == iter.next()) { - count++; - } - } - 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; - } - return mSelectedIndex.get(position); - } - - /** - * 当数据内容变化时调用 - *

- * 该方法在数据内容发生变化时被调用,会重新计算笔记数量 - *

- */ - @Override - protected void onContentChanged() { - super.onContentChanged(); - calcNotesCount(); - } - - /** - * 更换数据游标 - *

- * 该方法在更换数据游标时被调用,会重新计算笔记数量 - *

- * @param cursor 新的数据游标 - */ - @Override - public void changeCursor(Cursor cursor) { - super.changeCursor(cursor); - calcNotesCount(); - } - - /** - * 计算笔记数量 - *

- * 该方法用于统计当前数据集中的普通笔记数量,并更新mNotesCount成员变量 - *

- */ - private void calcNotesCount() { - mNotesCount = 0; - for (int i = 0; i < getCount(); i++) { - Cursor c = (Cursor) getItem(i); - if (c != null) { - if (NoteItemData.getNoteType(c) == Notes.TYPE_NOTE) { - mNotesCount++; - } - } else { - Log.e(TAG, "Invalid cursor"); - return; - } - } - } -} diff --git a/src/main/java/net/micode/notes/ui/NotesListItem.java b/src/main/java/net/micode/notes/ui/NotesListItem.java deleted file mode 100644 index b6222fd..0000000 --- a/src/main/java/net/micode/notes/ui/NotesListItem.java +++ /dev/null @@ -1,170 +0,0 @@ -/* - * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.micode.notes.ui; - -import android.content.Context; -import android.text.format.DateUtils; -import android.view.View; -import android.widget.CheckBox; -import android.widget.ImageView; -import android.widget.LinearLayout; -import android.widget.TextView; - -import net.micode.notes.R; -import net.micode.notes.data.Notes; -import net.micode.notes.tool.DataUtils; -import net.micode.notes.tool.ResourceParser.NoteItemBgResources; - - -/** - * 笔记列表项视图类 - *

- * 该类用于显示笔记列表中的单个条目,包含笔记的标题、时间、提醒图标等UI元素, - * 并能根据不同的笔记类型(普通笔记、文件夹、通话记录)和状态(选择模式、是否有提醒) - * 进行动态展示和样式调整 - *

- */ -public class NotesListItem extends LinearLayout { - /** 提醒图标,用于显示笔记是否设置了提醒 */ - private ImageView mAlert; - /** 笔记标题文本视图 */ - private TextView mTitle; - /** 笔记时间文本视图 */ - private TextView mTime; - /** 通话记录名称文本视图 */ - private TextView mCallName; - /** 列表项数据对象,存储笔记的相关信息 */ - private NoteItemData mItemData; - /** 选择框,用于选择模式下选择笔记 */ - private CheckBox mCheckBox; - - /** - * 构造函数 - *

- * 初始化NotesListItem视图,加载布局文件并获取各个UI组件的引用 - *

- * @param context 上下文对象 - */ - public NotesListItem(Context context) { - super(context); - 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); - mCallName = (TextView) findViewById(R.id.tv_name); - mCheckBox = (CheckBox) findViewById(android.R.id.checkbox); - } - - /** - * 将笔记数据绑定到列表项视图 - *

- * 该方法根据笔记数据的类型和状态,动态调整列表项的UI显示,包括: - * 1. 根据选择模式和笔记类型决定是否显示复选框 - * 2. 根据笔记类型(通话记录文件夹、普通通话记录、普通笔记、文件夹)设置不同的UI样式 - * 3. 设置标题、时间、提醒图标等内容 - * 4. 调用setBackground方法设置背景样式 - *

- * @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); - } else { - mCheckBox.setVisibility(View.GONE); - } - - mItemData = data; - if (data.getId() == Notes.ID_CALL_RECORD_FOLDER) { - mCallName.setVisibility(View.GONE); - mAlert.setVisibility(View.VISIBLE); - mTitle.setTextAppearance(context, R.style.TextAppearancePrimaryItem); - mTitle.setText(context.getString(R.string.call_record_folder_name) - + 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); - mTitle.setText(DataUtils.getFormattedSnippet(data.getSnippet())); - if (data.hasAlert()) { - mAlert.setImageResource(R.drawable.clock); - mAlert.setVisibility(View.VISIBLE); - } else { - 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); - mAlert.setVisibility(View.VISIBLE); - } else { - mAlert.setVisibility(View.GONE); - } - } - } - mTime.setText(DateUtils.getRelativeTimeSpanString(data.getModifiedDate())); - - setBackground(data); - } - - /** - * 设置列表项的背景样式 - *

- * 该方法根据笔记数据的类型和状态,选择并设置合适的背景资源: - * 1. 对于普通笔记,根据其在列表中的位置(单个、第一个、最后一个、中间)选择不同的背景 - * 2. 对于文件夹或其他类型,使用默认的文件夹背景 - *

- * @param data 笔记列表项数据,包含背景颜色ID、类型和位置信息 - */ - 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/main/java/net/micode/notes/ui/NotesPreferenceActivity.java b/src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java deleted file mode 100644 index 69984ff..0000000 --- a/src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java +++ /dev/null @@ -1,554 +0,0 @@ -/* - * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.micode.notes.ui; - -import android.accounts.Account; -import android.accounts.AccountManager; -import android.app.ActionBar; -import android.app.AlertDialog; -import android.content.BroadcastReceiver; -import android.content.ContentValues; -import android.content.Context; -import android.content.DialogInterface; -import android.content.Intent; -import android.content.IntentFilter; -import android.content.SharedPreferences; -import android.os.Bundle; -import android.preference.Preference; -import android.preference.Preference.OnPreferenceClickListener; -import android.preference.PreferenceActivity; -import android.preference.PreferenceCategory; -import android.text.TextUtils; -import android.text.format.DateFormat; -import android.view.LayoutInflater; -import android.view.Menu; -import android.view.MenuItem; -import android.view.View; -import android.widget.Button; -import android.widget.TextView; -import android.widget.Toast; - -import net.micode.notes.R; -import net.micode.notes.data.Notes; -import net.micode.notes.data.Notes.NoteColumns; -import net.micode.notes.gtask.remote.GTaskSyncService; - - -/** - * 笔记偏好设置活动类 - *

- * 该类用于处理笔记应用的设置,包括同步账户管理、背景颜色设置等功能, - * 提供了UI界面让用户进行偏好设置,并与GTaskSyncService进行交互实现同步功能 - *

- */ -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; - - /** GTask同步服务广播接收器 */ - private GTaskReceiver mReceiver; - - /** 原始账户列表 */ - private Account[] mOriAccounts; - - /** 是否添加了新账户 */ - private boolean mHasAddedAccount; - - /** - * 活动创建时调用 - *

- * 该方法完成以下工作: - * 1. 设置导航栏显示应用图标 - * 2. 加载偏好设置资源 - * 3. 初始化账户偏好设置分类 - * 4. 注册GTask同步服务广播接收器 - * 5. 为列表视图添加头部 - *

- * @param icicle 保存的实例状态 - */ - @Override - protected void onCreate(Bundle icicle) { - super.onCreate(icicle); - - /* using the app icon for navigation */ - getActionBar().setDisplayHomeAsUpEnabled(true); - - 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); - } - - /** - * 活动恢复时调用 - *

- * 该方法完成以下工作: - * 1. 如果添加了新账户,自动设置同步账户 - * 2. 刷新UI界面 - *

- */ - @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) { - if (TextUtils.equals(accountOld.name, accountNew.name)) { - found = true; - break; - } - } - if (!found) { - setSyncAccount(accountNew.name); - break; - } - } - } - } - - refreshUI(); - } - - /** - * 活动销毁时调用 - *

- * 该方法完成以下工作: - * 1. 注销GTask同步服务广播接收器 - *

- */ - @Override - protected void onDestroy() { - if (mReceiver != null) { - unregisterReceiver(mReceiver); - } - super.onDestroy(); - } - - /** - * 加载账户偏好设置 - *

- * 该方法完成以下工作: - * 1. 清空账户偏好设置分类中的所有偏好项 - * 2. 创建新的账户偏好项 - * 3. 设置账户偏好项的标题、摘要和点击监听器 - * 4. 根据当前同步状态和账户设置情况,决定点击时显示的对话框 - * 5. 将账户偏好项添加到分类中 - *

- */ - private void loadAccountPreference() { - mAccountCategory.removeAll(); - - Preference accountPref = new Preference(this); - final String defaultAccount = getSyncAccountName(this); - accountPref.setTitle(getString(R.string.preferences_account_title)); - accountPref.setSummary(getString(R.string.preferences_account_summary)); - accountPref.setOnPreferenceClickListener(new OnPreferenceClickListener() { - 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(); - } - return true; - } - }); - - mAccountCategory.addPreference(accountPref); - } - - /** - * 加载同步按钮和状态 - *

- * 该方法完成以下工作: - * 1. 获取同步按钮和最后同步时间视图 - * 2. 根据同步状态设置按钮文本和点击事件 - * 3. 根据是否有同步账户设置按钮可用性 - * 4. 设置最后同步时间或同步进度 - *

- */ - 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) { - GTaskSyncService.cancelSync(NotesPreferenceActivity.this); - } - }); - } else { - syncButton.setText(getString(R.string.preferences_button_sync_immediately)); - syncButton.setOnClickListener(new View.OnClickListener() { - public void onClick(View v) { - GTaskSyncService.startSync(NotesPreferenceActivity.this); - } - }); - } - 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, - DateFormat.format(getString(R.string.preferences_last_sync_time_format), - lastSyncTime))); - lastSyncTimeView.setVisibility(View.VISIBLE); - } else { - lastSyncTimeView.setVisibility(View.GONE); - } - } - } - - /** - * 刷新UI界面 - *

- * 该方法调用loadAccountPreference和loadSyncButton方法来刷新UI界面 - *

- */ - private void refreshUI() { - loadAccountPreference(); - loadSyncButton(); - } - - /** - * 显示选择账户对话框 - *

- * 该方法完成以下工作: - * 1. 创建对话框构建器并设置自定义标题 - * 2. 获取Google账户列表 - * 3. 如果有账户,显示单选列表供用户选择 - * 4. 添加添加新账户的选项 - * 5. 处理用户选择事件 - *

- */ - 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)); - TextView subtitleTextView = (TextView) titleView.findViewById(R.id.account_dialog_subtitle); - subtitleTextView.setText(getString(R.string.preferences_dialog_select_account_tips)); - - dialogBuilder.setCustomTitle(titleView); - dialogBuilder.setPositiveButton(null, null); - - 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; - int checkedItem = -1; - int index = 0; - for (Account account : accounts) { - if (TextUtils.equals(account.name, defAccount)) { - checkedItem = index; - } - items[index++] = account.name; - } - dialogBuilder.setSingleChoiceItems(items, checkedItem, - new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int which) { - setSyncAccount(itemMapping[which].toString()); - dialog.dismiss(); - refreshUI(); - } - }); - } - - View addAccountView = LayoutInflater.from(this).inflate(R.layout.add_account_text, null); - dialogBuilder.setView(addAccountView); - - final AlertDialog dialog = dialogBuilder.show(); - addAccountView.setOnClickListener(new View.OnClickListener() { - public void onClick(View v) { - mHasAddedAccount = true; - Intent intent = new Intent("android.settings.ADD_ACCOUNT_SETTINGS"); - intent.putExtra(AUTHORITIES_FILTER_KEY, new String[] { - "gmail-ls" - }); - startActivityForResult(intent, -1); - dialog.dismiss(); - } - }); - } - - /** - * 显示更改账户确认对话框 - *

- * 该方法完成以下工作: - * 1. 创建对话框构建器并设置自定义标题 - * 2. 添加选项:更改账户、移除账户、取消 - * 3. 处理用户选择事件 - *

- */ - 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, - getSyncAccountName(this))); - TextView subtitleTextView = (TextView) titleView.findViewById(R.id.account_dialog_subtitle); - 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), - getString(R.string.preferences_menu_cancel) - }; - dialogBuilder.setItems(menuItemArray, new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int which) { - if (which == 0) { - showSelectAccountAlertDialog(); - } else if (which == 1) { - removeSyncAccount(); - refreshUI(); - } - } - }); - dialogBuilder.show(); - } - - /** - * 获取Google账户列表 - *

- * 该方法通过AccountManager获取设备上的所有Google账户 - *

- * @return Google账户数组 - */ - private Account[] getGoogleAccounts() { - AccountManager accountManager = AccountManager.get(this); - return accountManager.getAccountsByType("com.google"); - } - - /** - * 设置同步账户 - *

- * 该方法完成以下工作: - * 1. 更新同步账户偏好设置 - * 2. 清除最后同步时间 - * 3. 清除本地GTask相关信息 - * 4. 显示成功提示 - *

- * @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) { - editor.putString(PREFERENCE_SYNC_ACCOUNT_NAME, account); - } else { - editor.putString(PREFERENCE_SYNC_ACCOUNT_NAME, ""); - } - editor.commit(); - - // clean up last sync time - setLastSyncTime(this, 0); - - // clean up local gtask related info - new Thread(new Runnable() { - public void run() { - ContentValues values = new ContentValues(); - values.put(NoteColumns.GTASK_ID, ""); - values.put(NoteColumns.SYNC_ID, 0); - getContentResolver().update(Notes.CONTENT_NOTE_URI, values, null, null); - } - }).start(); - - Toast.makeText(NotesPreferenceActivity.this, - getString(R.string.preferences_toast_success_set_accout, account), - Toast.LENGTH_SHORT).show(); - } - } - - /** - * 移除同步账户 - *

- * 该方法完成以下工作: - * 1. 移除同步账户偏好设置 - * 2. 移除最后同步时间偏好设置 - * 3. 清除本地GTask相关信息 - *

- */ - private void removeSyncAccount() { - SharedPreferences settings = getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE); - SharedPreferences.Editor editor = settings.edit(); - if (settings.contains(PREFERENCE_SYNC_ACCOUNT_NAME)) { - editor.remove(PREFERENCE_SYNC_ACCOUNT_NAME); - } - if (settings.contains(PREFERENCE_LAST_SYNC_TIME)) { - editor.remove(PREFERENCE_LAST_SYNC_TIME); - } - editor.commit(); - - // clean up local gtask related info - new Thread(new Runnable() { - public void run() { - ContentValues values = new ContentValues(); - values.put(NoteColumns.GTASK_ID, ""); - values.put(NoteColumns.SYNC_ID, 0); - getContentResolver().update(Notes.CONTENT_NOTE_URI, values, null, null); - } - }).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); - SharedPreferences.Editor editor = settings.edit(); - editor.putLong(PREFERENCE_LAST_SYNC_TIME, time); - editor.commit(); - } - - /** - * 获取最后同步时间 - *

- * 该方法从偏好设置中获取最后同步时间 - *

- * @param context 上下文对象 - * @return 最后同步时间(毫秒),如果未设置则返回0 - */ - public static long getLastSyncTime(Context context) { - SharedPreferences settings = context.getSharedPreferences(PREFERENCE_NAME, - Context.MODE_PRIVATE); - return settings.getLong(PREFERENCE_LAST_SYNC_TIME, 0); - } - - /** - * GTask同步服务广播接收器 - *

- * 该类用于接收GTaskSyncService发送的广播,更新UI界面和同步状态 - *

- */ - private class GTaskReceiver extends BroadcastReceiver { - - /** - * 接收广播时调用 - *

- * 该方法完成以下工作: - * 1. 刷新UI界面 - * 2. 如果正在同步,更新同步状态文本 - *

- * @param context 上下文对象 - * @param intent 广播意图,包含同步状态和进度信息 - */ - @Override - public void onReceive(Context context, Intent intent) { - refreshUI(); - if (intent.getBooleanExtra(GTaskSyncService.GTASK_SERVICE_BROADCAST_IS_SYNCING, false)) { - TextView syncStatus = (TextView) findViewById(R.id.prefenerece_sync_status_textview); - 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); - return true; - default: - return false; - } - } -} diff --git a/src/main/java/net/micode/notes/widget/NoteWidgetProvider.java b/src/main/java/net/micode/notes/widget/NoteWidgetProvider.java deleted file mode 100644 index 8fffe80..0000000 --- a/src/main/java/net/micode/notes/widget/NoteWidgetProvider.java +++ /dev/null @@ -1,224 +0,0 @@ -/* - * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.micode.notes.widget; -import android.app.PendingIntent; -import android.appwidget.AppWidgetManager; -import android.appwidget.AppWidgetProvider; -import android.content.ContentValues; -import android.content.Context; -import android.content.Intent; -import android.database.Cursor; -import android.util.Log; -import android.widget.RemoteViews; - -import net.micode.notes.R; -import net.micode.notes.data.Notes; -import net.micode.notes.data.Notes.NoteColumns; -import net.micode.notes.tool.ResourceParser; -import net.micode.notes.ui.NoteEditActivity; -import net.micode.notes.ui.NotesListActivity; - -/** - * 笔记小组件基类 - *

- * 该抽象类为所有笔记小组件提供核心功能,包括小组件数据管理、UI更新、点击事件处理 - * 和小组件删除管理。它支持不同的小组件类型和布局,通过抽象方法让子类实现特定的 - * 布局和资源配置 - *

- */ -public abstract class NoteWidgetProvider extends AppWidgetProvider { - /** - * 小组件数据查询的投影列数组 - *

- * 定义了从数据库查询笔记数据时需要获取的列,包括笔记ID、背景颜色ID和摘要内容 - *

- */ - public static final String [] PROJECTION = new String [] { - NoteColumns.ID, - NoteColumns.BG_COLOR_ID, - NoteColumns.SNIPPET - }; - - /** - * 查询结果中ID列的索引 - */ - public static final int COLUMN_ID = 0; - - /** - * 查询结果中背景颜色ID列的索引 - */ - public static final int COLUMN_BG_COLOR_ID = 1; - - /** - * 查询结果中摘要内容列的索引 - */ - public static final int COLUMN_SNIPPET = 2; - - /** - * 日志标签,用于小组件相关的日志输出 - */ - private static final String TAG = "NoteWidgetProvider"; - - /** - * 当小组件被删除时调用的方法 - *

- * 该方法将数据库中与被删除小组件关联的笔记的WIDGET_ID字段更新为无效值, - * 解除笔记与已删除小组件的关联关系 - *

- * @param context 上下文对象 - * @param appWidgetIds 被删除的小组件ID数组 - */ - @Override - public void onDeleted(Context context, int[] appWidgetIds) { - ContentValues values = new ContentValues(); - values.put(NoteColumns.WIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); - for (int i = 0; i < appWidgetIds.length; i++) { - context.getContentResolver().update(Notes.CONTENT_NOTE_URI, - values, - NoteColumns.WIDGET_ID + "=?", - new String[] { String.valueOf(appWidgetIds[i])}); - } - } - - /** - * 查询与特定小组件ID关联的笔记信息 - *

- * 该方法从数据库中查询与给定小组件ID关联的笔记数据,并排除已删除到回收站的笔记 - *

- * @param context 上下文对象 - * @param widgetId 要查询的小组件ID - * @return 返回包含笔记信息的Cursor对象,使用PROJECTION中定义的列 - */ - private Cursor getNoteWidgetInfo(Context context, int widgetId) { - return context.getContentResolver().query(Notes.CONTENT_NOTE_URI, - PROJECTION, - NoteColumns.WIDGET_ID + "=? AND " + NoteColumns.PARENT_ID + "<>?", - new String[] { String.valueOf(widgetId), String.valueOf(Notes.ID_TRASH_FOLER) }, - null); - } - - /** - * 更新小组件的UI和数据 - *

- * 该方法是update方法的公共保护接口,默认使用非隐私模式更新小组件 - *

- * @param context 上下文对象 - * @param appWidgetManager 小组件管理器 - * @param appWidgetIds 要更新的小组件ID数组 - */ - protected void update(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { - update(context, appWidgetManager, appWidgetIds, false); - } - - /** - * 更新小组件的UI和数据(私有实现) - *

- * 该方法负责实际更新小组件的内容,支持隐私模式和正常模式: - * 1. 查询与小组件关联的笔记信息 - * 2. 根据查询结果设置小组件显示的文本和背景 - * 3. 创建点击小组件时的PendingIntent - * 4. 在隐私模式下显示特定提示文本并跳转到笔记列表 - * 5. 在正常模式下显示笔记内容并支持查看或创建笔记 - *

- * @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); - intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); - 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) { - Log.e(TAG, "Multiple message with same widget id:" + appWidgetIds[i]); - c.close(); - return; - } - snippet = c.getString(COLUMN_SNIPPET); - bgId = c.getInt(COLUMN_BG_COLOR_ID); - intent.putExtra(Intent.EXTRA_UID, c.getLong(COLUMN_ID)); - intent.setAction(Intent.ACTION_VIEW); - } else { - snippet = context.getResources().getString(R.string.widget_havenot_content); - intent.setAction(Intent.ACTION_INSERT_OR_EDIT); - } - - if (c != null) { - c.close(); - } - - 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 = 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); - } - - rv.setOnClickPendingIntent(R.id.widget_text, pendingIntent); - appWidgetManager.updateAppWidget(appWidgetIds[i], rv); - } - } - } - - /** - * 根据背景颜色ID获取对应的背景资源ID - *

- * 该方法由子类实现,用于将数据库中的背景颜色ID转换为实际的资源ID - *

- * @param bgId 数据库中的背景颜色ID - * @return 对应的背景资源ID - */ - protected abstract int getBgResourceId(int bgId); - - /** - * 获取小组件的布局ID - *

- * 该方法由子类实现,返回特定小组件类型的布局资源ID - *

- * @return 小组件布局资源ID - */ - protected abstract int getLayoutId(); - - /** - * 获取小组件类型 - *

- * 该方法由子类实现,返回特定小组件的类型标识 - *

- * @return 小组件类型标识 - */ - protected abstract int getWidgetType(); -} diff --git a/src/main/java/net/micode/notes/widget/NoteWidgetProvider_2x.java b/src/main/java/net/micode/notes/widget/NoteWidgetProvider_2x.java deleted file mode 100644 index 02bd7f1..0000000 --- a/src/main/java/net/micode/notes/widget/NoteWidgetProvider_2x.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.micode.notes.widget; - -import android.appwidget.AppWidgetManager; -import android.content.Context; - -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 { - /** - * 更新小组件的UI和数据 - *

- * 该方法重写了AppWidgetProvider的onUpdate方法,调用父类的update方法来更新2x尺寸小组件 - *

- * @param context 上下文对象 - * @param appWidgetManager 小组件管理器 - * @param appWidgetIds 要更新的小组件ID数组 - */ - @Override - public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { - super.update(context, appWidgetManager, appWidgetIds); - } - - /** - * 获取2x尺寸小组件的布局ID - *

- * 返回2x尺寸小组件的布局资源ID - *

- * @return 2x小组件布局资源ID - */ - @Override - protected int getLayoutId() { - return R.layout.widget_2x; - } - - /** - * 根据背景颜色ID获取2x小组件对应的背景资源ID - *

- * 通过ResourceParser获取2x尺寸小组件的背景资源ID - *

- * @param bgId 数据库中的背景颜色ID - * @return 2x小组件对应的背景资源ID - */ - @Override - protected int getBgResourceId(int bgId) { - return ResourceParser.WidgetBgResources.getWidget2xBgResource(bgId); - } - - /** - * 获取2x小组件类型 - *

- * 返回2x尺寸小组件的类型标识 - *

- * @return 2x小组件类型标识 - */ - @Override - protected int getWidgetType() { - return Notes.TYPE_WIDGET_2X; - } -} diff --git a/src/main/java/net/micode/notes/widget/NoteWidgetProvider_4x.java b/src/main/java/net/micode/notes/widget/NoteWidgetProvider_4x.java deleted file mode 100644 index 6e4a984..0000000 --- a/src/main/java/net/micode/notes/widget/NoteWidgetProvider_4x.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package net.micode.notes.widget; - -import android.appwidget.AppWidgetManager; -import android.content.Context; - -import net.micode.notes.R; -import net.micode.notes.data.Notes; -import net.micode.notes.tool.ResourceParser; - - -/** - * 4x尺寸的笔记小组件实现类 - *

- * 该类继承自NoteWidgetProvider抽象类,实现了4x尺寸笔记小组件的具体功能 - * 包括布局设置、背景资源获取和小组件类型定义 - *

- */ -public class NoteWidgetProvider_4x extends NoteWidgetProvider { - /** - * 更新小组件的UI和数据 - *

- * 该方法重写了AppWidgetProvider的onUpdate方法,调用父类的update方法来更新4x尺寸小组件 - *

- * @param context 上下文对象 - * @param appWidgetManager 小组件管理器 - * @param appWidgetIds 要更新的小组件ID数组 - */ - @Override - public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { - super.update(context, appWidgetManager, appWidgetIds); - } - - /** - * 获取4x尺寸小组件的布局ID - *

- * 返回4x尺寸小组件的布局资源ID - *

- * @return 4x小组件布局资源ID - */ - @Override - protected int getLayoutId() { - return R.layout.widget_4x; - } - - /** - * 根据背景颜色ID获取4x小组件对应的背景资源ID - *

- * 通过ResourceParser获取4x尺寸小组件的背景资源ID - *

- * @param bgId 数据库中的背景颜色ID - * @return 4x小组件对应的背景资源ID - */ - @Override - protected int getBgResourceId(int bgId) { - return ResourceParser.WidgetBgResources.getWidget4xBgResource(bgId); - } - - /** - * 获取4x小组件类型 - *

- * 返回4x尺寸小组件的类型标识 - *

- * @return 4x小组件类型标识 - */ - @Override - protected int getWidgetType() { - return Notes.TYPE_WIDGET_4X; - } -} -- 2.34.1 From d4e00e4310a81266d77fb76c55cab427948ecbaa Mon Sep 17 00:00:00 2001 From: tb202302116011 <1271741232@qq.com> Date: Tue, 23 Dec 2025 19:38:35 +0800 Subject: [PATCH 23/30] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86data=E3=80=81g?= =?UTF-8?q?task=E3=80=81tool=E4=B8=89=E4=B8=AA=E5=8C=85=E7=9A=84=E6=B3=A8?= =?UTF-8?q?=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/net/micode/notes/data/Contact.java | 24 ++ .../java/net/micode/notes/data/Notes.java | 226 ++++++++---- .../notes/data/NotesDatabaseHelper.java | 346 +++++++++++------- .../net/micode/notes/data/NotesProvider.java | 173 +++++++-- .../net/micode/notes/gtask/data/MetaData.java | 79 +++- .../net/micode/notes/gtask/data/Node.java | 122 ++++++ .../net/micode/notes/gtask/data/SqlData.java | 148 ++++++++ .../net/micode/notes/gtask/data/SqlNote.java | 209 +++++++++++ .../net/micode/notes/gtask/data/Task.java | 132 +++++++ .../net/micode/notes/gtask/data/TaskList.java | 143 ++++++++ .../exception/ActionFailureException.java | 6 + .../exception/NetworkFailureException.java | 6 + .../notes/gtask/remote/GTaskASyncTask.java | 67 ++++ .../notes/gtask/remote/GTaskClient.java | 197 ++++++++++ .../notes/gtask/remote/GTaskManager.java | 146 +++++++- .../notes/gtask/remote/GTaskSyncService.java | 63 ++++ .../net/micode/notes/tool/BackupUtils.java | 174 ++++++++- .../java/net/micode/notes/tool/DataUtils.java | 146 +++++++- .../micode/notes/tool/GTaskStringUtils.java | 53 +++ .../net/micode/notes/tool/ResourceParser.java | 115 ++++++ 20 files changed, 2315 insertions(+), 260 deletions(-) diff --git a/src/main/java/net/micode/notes/data/Contact.java b/src/main/java/net/micode/notes/data/Contact.java index d97ac5d..6a4f1d5 100644 --- a/src/main/java/net/micode/notes/data/Contact.java +++ b/src/main/java/net/micode/notes/data/Contact.java @@ -25,10 +25,25 @@ import android.util.Log; import java.util.HashMap; +/** + * 联系人工具类,用于根据电话号码获取联系人姓名 + *

+ * 该类提供了获取联系人信息的静态方法,并使用缓存机制提高查询效率 + *

+ */ public class Contact { + /** + * 联系人缓存,用于存储已查询过的电话号码和对应联系人姓名 + */ private static HashMap sContactCache; + /** + * 日志标签 + */ private static final String TAG = "Contact"; + /** + * 用于查询联系人的选择条件,根据电话号码匹配联系人 + */ private static final String CALLER_ID_SELECTION = "PHONE_NUMBERS_EQUAL(" + Phone.NUMBER + ",?) AND " + Data.MIMETYPE + "='" + Phone.CONTENT_ITEM_TYPE + "'" + " AND " + Data.RAW_CONTACT_ID + " IN " @@ -36,6 +51,15 @@ public class Contact { + " FROM phone_lookup" + " WHERE min_match = '+')"; + /** + * 根据电话号码获取联系人姓名 + *

+ * 该方法会先检查缓存,如果缓存中存在则直接返回,否则查询联系人数据库 + *

+ * @param context 上下文对象 + * @param phoneNumber 电话号码 + * @return 联系人姓名,若未找到则返回null + */ public static String getContact(Context context, String phoneNumber) { if(sContactCache == null) { sContactCache = new HashMap(); diff --git a/src/main/java/net/micode/notes/data/Notes.java b/src/main/java/net/micode/notes/data/Notes.java index f240604..5d83908 100644 --- a/src/main/java/net/micode/notes/data/Notes.java +++ b/src/main/java/net/micode/notes/data/Notes.java @@ -17,263 +17,341 @@ package net.micode.notes.data; import android.net.Uri; + +/** + * 便签应用的核心数据模型类,定义了便签系统的常量、URI和数据结构 + *

+ * 该类包含了便签应用的核心数据定义,包括便签类型、系统文件夹ID、意图额外参数、 + * 组件类型、以及各种URI定义。同时还定义了便签表和数据表的列名,以及文本便签和 + * 通话便签的具体数据结构。 + *

+ */ public class Notes { + /** + * 内容提供者的授权名称,用于构建内容URI + */ public static final String AUTHORITY = "micode_notes"; + /** + * 日志标签,用于日志输出 + */ public static final String TAG = "Notes"; + /** + * 便签类型:普通便签 + */ public static final int TYPE_NOTE = 0; + /** + * 便签类型:文件夹 + */ public static final int TYPE_FOLDER = 1; + /** + * 便签类型:系统便签 + */ public static final int TYPE_SYSTEM = 2; /** - * Following IDs are system folders' identifiers - * {@link Notes#ID_ROOT_FOLDER } is default folder - * {@link Notes#ID_TEMPARAY_FOLDER } is for notes belonging no folder - * {@link Notes#ID_CALL_RECORD_FOLDER} is to store call records + * 以下是系统文件夹的标识符 + * {@link Notes#ID_ROOT_FOLDER } 是默认文件夹 + * {@link Notes#ID_TEMPARAY_FOLDER } 用于存放不属于任何文件夹的便签 + * {@link Notes#ID_CALL_RECORD_FOLDER} 用于存储通话记录便签 */ public static final int ID_ROOT_FOLDER = 0; public static final int ID_TEMPARAY_FOLDER = -1; public static final int ID_CALL_RECORD_FOLDER = -2; + /** + * 回收站文件夹ID,用于存储被删除的便签和文件夹 + */ public static final int ID_TRASH_FOLER = -3; + /** + * 意图额外参数:提醒日期 + */ public static final String INTENT_EXTRA_ALERT_DATE = "net.micode.notes.alert_date"; + /** + * 意图额外参数:背景颜色ID + */ public static final String INTENT_EXTRA_BACKGROUND_ID = "net.micode.notes.background_color_id"; + /** + * 意图额外参数:组件ID + */ public static final String INTENT_EXTRA_WIDGET_ID = "net.micode.notes.widget_id"; + /** + * 意图额外参数:组件类型 + */ public static final String INTENT_EXTRA_WIDGET_TYPE = "net.micode.notes.widget_type"; + /** + * 意图额外参数:文件夹ID + */ public static final String INTENT_EXTRA_FOLDER_ID = "net.micode.notes.folder_id"; + /** + * 意图额外参数:通话日期 + */ public static final String INTENT_EXTRA_CALL_DATE = "net.micode.notes.call_date"; + /** + * 组件类型:无效组件 + */ public static final int TYPE_WIDGET_INVALIDE = -1; + /** + * 组件类型:2x2大小的便签组件 + */ public static final int TYPE_WIDGET_2X = 0; + /** + * 组件类型:4x4大小的便签组件 + */ public static final int TYPE_WIDGET_4X = 1; + /** + * 数据类型常量类,定义了不同类型便签的数据项类型 + */ public static class DataConstants { + /** + * 文本便签的数据项类型 + */ public static final String NOTE = TextNote.CONTENT_ITEM_TYPE; + /** + * 通话便签的数据项类型 + */ public static final String CALL_NOTE = CallNote.CONTENT_ITEM_TYPE; } /** - * Uri to query all notes and folders + * 用于查询所有便签和文件夹的Uri */ public static final Uri CONTENT_NOTE_URI = Uri.parse("content://" + AUTHORITY + "/note"); /** - * Uri to query data + * 用于查询数据的Uri */ public static final Uri CONTENT_DATA_URI = Uri.parse("content://" + AUTHORITY + "/data"); public interface NoteColumns { /** - * The unique ID for a row - *

Type: INTEGER (long)

+ * 行的唯一ID + *

类型: INTEGER (long)

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

Type: INTEGER (long)

+ * 便签或文件夹的父ID + *

类型: INTEGER (long)

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

Type: INTEGER (long)

+ * 便签或文件夹的创建日期 + *

类型: INTEGER (long)

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

Type: INTEGER (long)

+ * 最近修改日期 + *

类型: INTEGER (long)

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

Type: INTEGER (long)

+ * 提醒日期 + *

类型: INTEGER (long)

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

Type: TEXT

+ * 文件夹名称或便签的文本内容 + *

类型: TEXT

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

Type: INTEGER (long)

+ * 便签的组件ID + *

类型: INTEGER (long)

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

Type: INTEGER (long)

+ * 便签的组件类型 + *

类型: INTEGER (long)

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

Type: INTEGER (long)

+ * 便签的背景颜色ID + *

类型: INTEGER (long)

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

Type: INTEGER

+ * 对于文本便签,没有附件;对于多媒体便签,至少有一个附件 + *

类型: INTEGER

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

Type: INTEGER (long)

+ * 文件夹中的便签数量 + *

类型: INTEGER (long)

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

Type: INTEGER

+ * 文件类型:文件夹或便签 + *

类型: INTEGER

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

Type: INTEGER (long)

+ * 最后同步ID + *

类型: INTEGER (long)

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

Type: INTEGER

+ * 表示本地是否修改的标志 + *

类型: INTEGER

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

Type : INTEGER

+ * 移动到临时文件夹之前的原始父ID + *

类型: INTEGER

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

Type : TEXT

+ * GTask ID + *

类型: TEXT

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

Type : INTEGER (long)

+ * 版本号 + *

类型: INTEGER (long)

*/ public static final String VERSION = "version"; } public interface DataColumns { /** - * The unique ID for a row - *

Type: INTEGER (long)

+ * 行的唯一ID + *

类型: INTEGER (long)

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

Type: Text

+ * 该行表示的项目的MIME类型 + *

类型: Text

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

Type: INTEGER (long)

+ * 该数据所属便签的引用ID + *

类型: INTEGER (long)

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

Type: INTEGER (long)

+ * 便签或文件夹的创建日期 + *

类型: INTEGER (long)

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

Type: INTEGER (long)

+ * 最近修改日期 + *

类型: INTEGER (long)

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

Type: TEXT

+ * 数据内容 + *

类型: TEXT

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

Type: INTEGER

+ * 通用数据列,含义由{@link # MIMETYPE}决定,用于整数数据类型 + *

类型: INTEGER

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

Type: INTEGER

+ * 通用数据列,含义由{@link # MIMETYPE}决定,用于整数数据类型 + *

类型: INTEGER

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

Type: TEXT

+ * 通用数据列,含义由{@link # MIMETYPE}决定,用于文本数据类型 + *

类型: TEXT

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

Type: TEXT

+ * 通用数据列,含义由{@link # MIMETYPE}决定,用于文本数据类型 + *

类型: TEXT

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

Type: TEXT

+ * 通用数据列,含义由{@link # MIMETYPE}决定,用于文本数据类型 + *

类型: TEXT

*/ public static final String DATA5 = "data5"; } public static final class TextNote implements DataColumns { /** - * Mode to indicate the text in check list mode or not - *

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

+ * 指示文本是否处于清单模式 + *

类型: Integer 1:清单模式 0:普通模式

*/ public static final String MODE = DATA1; + /** + * 清单模式 + */ public static final int MODE_CHECK_LIST = 1; + /** + * 文本便签的目录MIME类型 + */ public static final String CONTENT_TYPE = "vnd.android.cursor.dir/text_note"; + /** + * 文本便签的单项MIME类型 + */ public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/text_note"; + /** + * 文本便签的内容URI + */ public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/text_note"); } public static final class CallNote implements DataColumns { /** - * Call date for this record - *

Type: INTEGER (long)

+ * 此记录的通话日期 + *

类型: INTEGER (long)

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

Type: TEXT

+ * 此记录的电话号码 + *

类型: TEXT

*/ public static final String PHONE_NUMBER = DATA3; + /** + * 通话便签的目录MIME类型 + */ public static final String CONTENT_TYPE = "vnd.android.cursor.dir/call_note"; + /** + * 通话便签的单项MIME类型 + */ public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/call_note"; + /** + * 通话便签的内容URI + */ public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/call_note"); } } diff --git a/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java b/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java index ffe5d57..f6b9c37 100644 --- a/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java +++ b/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java @@ -27,189 +27,219 @@ import net.micode.notes.data.Notes.DataConstants; import net.micode.notes.data.Notes.NoteColumns; +/** + * 笔记数据库帮助类,负责数据库的创建、升级及触发器管理 + * 采用单例模式确保数据库连接的唯一性,封装了表结构定义、系统文件夹初始化等核心操作 + */ public class NotesDatabaseHelper extends SQLiteOpenHelper { + // 数据库文件名 private static final String DB_NAME = "note.db"; - + // 数据库版本号,用于升级控制 private static final int DB_VERSION = 4; + /** + * 数据库表名常量定义 + */ public interface TABLE { + // 笔记表,存储笔记和文件夹的元数据 public static final String NOTE = "note"; - + // 数据表,存储笔记的具体内容(如文本、通话记录等) public static final String DATA = "data"; } + // 日志标签 private static final String TAG = "NotesDatabaseHelper"; - + // 单例实例 private static NotesDatabaseHelper mInstance; + /** + * 笔记表创建SQL语句 + * 包含笔记/文件夹的基本属性:ID、父文件夹ID、提醒时间、背景色、创建/修改时间等 + */ private static final String CREATE_NOTE_TABLE_SQL = - "CREATE TABLE " + TABLE.NOTE + "(" + - NoteColumns.ID + " INTEGER PRIMARY KEY," + - NoteColumns.PARENT_ID + " INTEGER NOT NULL DEFAULT 0," + - NoteColumns.ALERTED_DATE + " INTEGER NOT NULL DEFAULT 0," + - NoteColumns.BG_COLOR_ID + " INTEGER NOT NULL DEFAULT 0," + - NoteColumns.CREATED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," + - NoteColumns.HAS_ATTACHMENT + " INTEGER NOT NULL DEFAULT 0," + - NoteColumns.MODIFIED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," + - NoteColumns.NOTES_COUNT + " INTEGER NOT NULL DEFAULT 0," + - NoteColumns.SNIPPET + " TEXT NOT NULL DEFAULT ''," + - NoteColumns.TYPE + " INTEGER NOT NULL DEFAULT 0," + - NoteColumns.WIDGET_ID + " INTEGER NOT NULL DEFAULT 0," + - NoteColumns.WIDGET_TYPE + " INTEGER NOT NULL DEFAULT -1," + - NoteColumns.SYNC_ID + " INTEGER NOT NULL DEFAULT 0," + - NoteColumns.LOCAL_MODIFIED + " INTEGER NOT NULL DEFAULT 0," + - NoteColumns.ORIGIN_PARENT_ID + " INTEGER NOT NULL DEFAULT 0," + - NoteColumns.GTASK_ID + " TEXT NOT NULL DEFAULT ''," + - NoteColumns.VERSION + " INTEGER NOT NULL DEFAULT 0" + - ")"; + "CREATE TABLE " + TABLE.NOTE + "(" + + NoteColumns.ID + " INTEGER PRIMARY KEY," + + NoteColumns.PARENT_ID + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.ALERTED_DATE + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.BG_COLOR_ID + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.CREATED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," + + NoteColumns.HAS_ATTACHMENT + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.MODIFIED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," + + NoteColumns.NOTES_COUNT + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.SNIPPET + " TEXT NOT NULL DEFAULT ''," + + NoteColumns.TYPE + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.WIDGET_ID + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.WIDGET_TYPE + " INTEGER NOT NULL DEFAULT -1," + + NoteColumns.SYNC_ID + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.LOCAL_MODIFIED + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.ORIGIN_PARENT_ID + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.GTASK_ID + " TEXT NOT NULL DEFAULT ''," + + NoteColumns.VERSION + " INTEGER NOT NULL DEFAULT 0" + + ")"; + /** + * 数据表创建SQL语句 + * 存储笔记的具体内容,支持多种类型(文本、通话记录等),通过MIME_TYPE区分 + */ private static final String CREATE_DATA_TABLE_SQL = - "CREATE TABLE " + TABLE.DATA + "(" + - DataColumns.ID + " INTEGER PRIMARY KEY," + - DataColumns.MIME_TYPE + " TEXT NOT NULL," + - DataColumns.NOTE_ID + " INTEGER NOT NULL DEFAULT 0," + - NoteColumns.CREATED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," + - NoteColumns.MODIFIED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," + - DataColumns.CONTENT + " TEXT NOT NULL DEFAULT ''," + - DataColumns.DATA1 + " INTEGER," + - DataColumns.DATA2 + " INTEGER," + - DataColumns.DATA3 + " TEXT NOT NULL DEFAULT ''," + - DataColumns.DATA4 + " TEXT NOT NULL DEFAULT ''," + - DataColumns.DATA5 + " TEXT NOT NULL DEFAULT ''" + - ")"; + "CREATE TABLE " + TABLE.DATA + "(" + + DataColumns.ID + " INTEGER PRIMARY KEY," + + DataColumns.MIME_TYPE + " TEXT NOT NULL," + + DataColumns.NOTE_ID + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.CREATED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," + + NoteColumns.MODIFIED_DATE + " INTEGER NOT NULL DEFAULT (strftime('%s','now') * 1000)," + + DataColumns.CONTENT + " TEXT NOT NULL DEFAULT ''," + + DataColumns.DATA1 + " INTEGER," + + DataColumns.DATA2 + " INTEGER," + + DataColumns.DATA3 + " TEXT NOT NULL DEFAULT ''," + + DataColumns.DATA4 + " TEXT NOT NULL DEFAULT ''," + + DataColumns.DATA5 + " TEXT NOT NULL DEFAULT ''" + + ")"; + /** + * 为数据表的NOTE_ID字段创建索引 + * 优化根据笔记ID查询数据的性能 + */ private static final String CREATE_DATA_NOTE_ID_INDEX_SQL = - "CREATE INDEX IF NOT EXISTS note_id_index ON " + - TABLE.DATA + "(" + DataColumns.NOTE_ID + ");"; + "CREATE INDEX IF NOT EXISTS note_id_index ON " + + TABLE.DATA + "(" + DataColumns.NOTE_ID + ");"; /** - * Increase folder's note count when move note to the folder + * 触发器:更新笔记父文件夹时,增加新父文件夹的笔记计数 */ private static final String NOTE_INCREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER = - "CREATE TRIGGER increase_folder_count_on_update "+ - " AFTER UPDATE OF " + NoteColumns.PARENT_ID + " ON " + TABLE.NOTE + - " BEGIN " + - " UPDATE " + TABLE.NOTE + - " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + " + 1" + - " WHERE " + NoteColumns.ID + "=new." + NoteColumns.PARENT_ID + ";" + - " END"; + "CREATE TRIGGER increase_folder_count_on_update "+ + " AFTER UPDATE OF " + NoteColumns.PARENT_ID + " ON " + TABLE.NOTE + + " BEGIN " + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + " + 1" + + " WHERE " + NoteColumns.ID + "=new." + NoteColumns.PARENT_ID + ";" + + " END"; /** - * Decrease folder's note count when move note from folder + * 触发器:更新笔记父文件夹时,减少旧父文件夹的笔记计数 */ private static final String NOTE_DECREASE_FOLDER_COUNT_ON_UPDATE_TRIGGER = - "CREATE TRIGGER decrease_folder_count_on_update " + - " AFTER UPDATE OF " + NoteColumns.PARENT_ID + " ON " + TABLE.NOTE + - " BEGIN " + - " UPDATE " + TABLE.NOTE + - " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + "-1" + - " WHERE " + NoteColumns.ID + "=old." + NoteColumns.PARENT_ID + - " AND " + NoteColumns.NOTES_COUNT + ">0" + ";" + - " END"; + "CREATE TRIGGER decrease_folder_count_on_update " + + " AFTER UPDATE OF " + NoteColumns.PARENT_ID + " ON " + TABLE.NOTE + + " BEGIN " + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + "-1" + + " WHERE " + NoteColumns.ID + "=old." + NoteColumns.PARENT_ID + + " AND " + NoteColumns.NOTES_COUNT + ">0" + ";" + + " END"; /** - * Increase folder's note count when insert new note to the folder + * 触发器:插入新笔记时,增加其父文件夹的笔记计数 */ private static final String NOTE_INCREASE_FOLDER_COUNT_ON_INSERT_TRIGGER = - "CREATE TRIGGER increase_folder_count_on_insert " + - " AFTER INSERT ON " + TABLE.NOTE + - " BEGIN " + - " UPDATE " + TABLE.NOTE + - " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + " + 1" + - " WHERE " + NoteColumns.ID + "=new." + NoteColumns.PARENT_ID + ";" + - " END"; + "CREATE TRIGGER increase_folder_count_on_insert " + + " AFTER INSERT ON " + TABLE.NOTE + + " BEGIN " + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + " + 1" + + " WHERE " + NoteColumns.ID + "=new." + NoteColumns.PARENT_ID + ";" + + " END"; /** - * Decrease folder's note count when delete note from the folder + * 触发器:删除笔记时,减少其父文件夹的笔记计数 */ private static final String NOTE_DECREASE_FOLDER_COUNT_ON_DELETE_TRIGGER = - "CREATE TRIGGER decrease_folder_count_on_delete " + - " AFTER DELETE ON " + TABLE.NOTE + - " BEGIN " + - " UPDATE " + TABLE.NOTE + - " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + "-1" + - " WHERE " + NoteColumns.ID + "=old." + NoteColumns.PARENT_ID + - " AND " + NoteColumns.NOTES_COUNT + ">0;" + - " END"; + "CREATE TRIGGER decrease_folder_count_on_delete " + + " AFTER DELETE ON " + TABLE.NOTE + + " BEGIN " + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.NOTES_COUNT + "=" + NoteColumns.NOTES_COUNT + "-1" + + " WHERE " + NoteColumns.ID + "=old." + NoteColumns.PARENT_ID + + " AND " + NoteColumns.NOTES_COUNT + ">0;" + + " END"; /** - * Update note's content when insert data with type {@link DataConstants#NOTE} + * 触发器:插入文本笔记数据时,更新对应笔记的摘要内容 */ private static final String DATA_UPDATE_NOTE_CONTENT_ON_INSERT_TRIGGER = - "CREATE TRIGGER update_note_content_on_insert " + - " AFTER INSERT ON " + TABLE.DATA + - " WHEN new." + DataColumns.MIME_TYPE + "='" + DataConstants.NOTE + "'" + - " BEGIN" + - " UPDATE " + TABLE.NOTE + - " SET " + NoteColumns.SNIPPET + "=new." + DataColumns.CONTENT + - " WHERE " + NoteColumns.ID + "=new." + DataColumns.NOTE_ID + ";" + - " END"; + "CREATE TRIGGER update_note_content_on_insert " + + " AFTER INSERT ON " + TABLE.DATA + + " WHEN new." + DataColumns.MIME_TYPE + "='" + DataConstants.NOTE + "'" + + " BEGIN" + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.SNIPPET + "=new." + DataColumns.CONTENT + + " WHERE " + NoteColumns.ID + "=new." + DataColumns.NOTE_ID + ";" + + " END"; /** - * Update note's content when data with {@link DataConstants#NOTE} type has changed + * 触发器:更新文本笔记数据时,同步更新对应笔记的摘要内容 */ private static final String DATA_UPDATE_NOTE_CONTENT_ON_UPDATE_TRIGGER = - "CREATE TRIGGER update_note_content_on_update " + - " AFTER UPDATE ON " + TABLE.DATA + - " WHEN old." + DataColumns.MIME_TYPE + "='" + DataConstants.NOTE + "'" + - " BEGIN" + - " UPDATE " + TABLE.NOTE + - " SET " + NoteColumns.SNIPPET + "=new." + DataColumns.CONTENT + - " WHERE " + NoteColumns.ID + "=new." + DataColumns.NOTE_ID + ";" + - " END"; + "CREATE TRIGGER update_note_content_on_update " + + " AFTER UPDATE ON " + TABLE.DATA + + " WHEN old." + DataColumns.MIME_TYPE + "='" + DataConstants.NOTE + "'" + + " BEGIN" + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.SNIPPET + "=new." + DataColumns.CONTENT + + " WHERE " + NoteColumns.ID + "=new." + DataColumns.NOTE_ID + ";" + + " END"; /** - * Update note's content when data with {@link DataConstants#NOTE} type has deleted + * 触发器:删除文本笔记数据时,清空对应笔记的摘要内容 */ private static final String DATA_UPDATE_NOTE_CONTENT_ON_DELETE_TRIGGER = - "CREATE TRIGGER update_note_content_on_delete " + - " AFTER delete ON " + TABLE.DATA + - " WHEN old." + DataColumns.MIME_TYPE + "='" + DataConstants.NOTE + "'" + - " BEGIN" + - " UPDATE " + TABLE.NOTE + - " SET " + NoteColumns.SNIPPET + "=''" + - " WHERE " + NoteColumns.ID + "=old." + DataColumns.NOTE_ID + ";" + - " END"; + "CREATE TRIGGER update_note_content_on_delete " + + " AFTER delete ON " + TABLE.DATA + + " WHEN old." + DataColumns.MIME_TYPE + "='" + DataConstants.NOTE + "'" + + " BEGIN" + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.SNIPPET + "=''" + + " WHERE " + NoteColumns.ID + "=old." + DataColumns.NOTE_ID + ";" + + " END"; /** - * Delete datas belong to note which has been deleted + * 触发器:删除笔记时,级联删除其关联的数据记录 */ private static final String NOTE_DELETE_DATA_ON_DELETE_TRIGGER = - "CREATE TRIGGER delete_data_on_delete " + - " AFTER DELETE ON " + TABLE.NOTE + - " BEGIN" + - " DELETE FROM " + TABLE.DATA + - " WHERE " + DataColumns.NOTE_ID + "=old." + NoteColumns.ID + ";" + - " END"; + "CREATE TRIGGER delete_data_on_delete " + + " AFTER DELETE ON " + TABLE.NOTE + + " BEGIN" + + " DELETE FROM " + TABLE.DATA + + " WHERE " + DataColumns.NOTE_ID + "=old." + NoteColumns.ID + ";" + + " END"; /** - * Delete notes belong to folder which has been deleted + * 触发器:删除文件夹时,级联删除其包含的所有笔记 */ private static final String FOLDER_DELETE_NOTES_ON_DELETE_TRIGGER = - "CREATE TRIGGER folder_delete_notes_on_delete " + - " AFTER DELETE ON " + TABLE.NOTE + - " BEGIN" + - " DELETE FROM " + TABLE.NOTE + - " WHERE " + NoteColumns.PARENT_ID + "=old." + NoteColumns.ID + ";" + - " END"; + "CREATE TRIGGER folder_delete_notes_on_delete " + + " AFTER DELETE ON " + TABLE.NOTE + + " BEGIN" + + " DELETE FROM " + TABLE.NOTE + + " WHERE " + NoteColumns.PARENT_ID + "=old." + NoteColumns.ID + ";" + + " END"; /** - * Move notes belong to folder which has been moved to trash folder + * 触发器:当文件夹被移到回收站时,其包含的所有笔记也自动移到回收站 */ private static final String FOLDER_MOVE_NOTES_ON_TRASH_TRIGGER = - "CREATE TRIGGER folder_move_notes_on_trash " + - " AFTER UPDATE ON " + TABLE.NOTE + - " WHEN new." + NoteColumns.PARENT_ID + "=" + Notes.ID_TRASH_FOLER + - " BEGIN" + - " UPDATE " + TABLE.NOTE + - " SET " + NoteColumns.PARENT_ID + "=" + Notes.ID_TRASH_FOLER + - " WHERE " + NoteColumns.PARENT_ID + "=old." + NoteColumns.ID + ";" + - " END"; + "CREATE TRIGGER folder_move_notes_on_trash " + + " AFTER UPDATE ON " + TABLE.NOTE + + " WHEN new." + NoteColumns.PARENT_ID + "=" + Notes.ID_TRASH_FOLER + + " BEGIN" + + " UPDATE " + TABLE.NOTE + + " SET " + NoteColumns.PARENT_ID + "=" + Notes.ID_TRASH_FOLER + + " WHERE " + NoteColumns.PARENT_ID + "=old." + NoteColumns.ID + ";" + + " END"; + /** + * 私有构造方法,防止外部实例化 + * @param context 上下文对象 + */ public NotesDatabaseHelper(Context context) { super(context, DB_NAME, null, DB_VERSION); } + /** + * 创建笔记表并初始化相关触发器和系统文件夹 + * @param db 数据库实例 + */ public void createNoteTable(SQLiteDatabase db) { db.execSQL(CREATE_NOTE_TABLE_SQL); reCreateNoteTableTriggers(db); @@ -217,6 +247,10 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper { Log.d(TAG, "note table has been created"); } + /** + * 重新创建笔记表的所有触发器(先删除旧触发器再创建新的) + * @param db 数据库实例 + */ private void reCreateNoteTableTriggers(SQLiteDatabase db) { db.execSQL("DROP TRIGGER IF EXISTS increase_folder_count_on_update"); db.execSQL("DROP TRIGGER IF EXISTS decrease_folder_count_on_update"); @@ -235,41 +269,41 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper { db.execSQL(FOLDER_MOVE_NOTES_ON_TRASH_TRIGGER); } + /** + * 初始化系统文件夹(通话记录文件夹、根目录、临时文件夹、回收站) + * @param db 数据库实例 + */ private void createSystemFolder(SQLiteDatabase db) { ContentValues values = new ContentValues(); - /** - * call record foler for call notes - */ + // 通话记录文件夹:存储通话笔记 values.put(NoteColumns.ID, Notes.ID_CALL_RECORD_FOLDER); values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); db.insert(TABLE.NOTE, null, values); - /** - * root folder which is default folder - */ + // 根目录:默认文件夹 values.clear(); values.put(NoteColumns.ID, Notes.ID_ROOT_FOLDER); values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); db.insert(TABLE.NOTE, null, values); - /** - * temporary folder which is used for moving note - */ + // 临时文件夹:用于移动笔记的中间存储 values.clear(); values.put(NoteColumns.ID, Notes.ID_TEMPARAY_FOLDER); values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); db.insert(TABLE.NOTE, null, values); - /** - * create trash folder - */ + // 回收站:存储被删除的笔记和文件夹 values.clear(); values.put(NoteColumns.ID, Notes.ID_TRASH_FOLER); values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); db.insert(TABLE.NOTE, null, values); } + /** + * 创建数据表并初始化相关触发器和索引 + * @param db 数据库实例 + */ public void createDataTable(SQLiteDatabase db) { db.execSQL(CREATE_DATA_TABLE_SQL); reCreateDataTableTriggers(db); @@ -277,6 +311,10 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper { Log.d(TAG, "data table has been created"); } + /** + * 重新创建数据表的所有触发器(先删除旧触发器再创建新的) + * @param db 数据库实例 + */ private void reCreateDataTableTriggers(SQLiteDatabase db) { db.execSQL("DROP TRIGGER IF EXISTS update_note_content_on_insert"); db.execSQL("DROP TRIGGER IF EXISTS update_note_content_on_update"); @@ -287,6 +325,11 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper { db.execSQL(DATA_UPDATE_NOTE_CONTENT_ON_DELETE_TRIGGER); } + /** + * 获取单例实例 + * @param context 上下文对象 + * @return 数据库帮助类实例 + */ static synchronized NotesDatabaseHelper getInstance(Context context) { if (mInstance == null) { mInstance = new NotesDatabaseHelper(context); @@ -294,45 +337,64 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper { return mInstance; } + /** + * 数据库首次创建时调用,初始化表结构 + * @param db 数据库实例 + */ @Override public void onCreate(SQLiteDatabase db) { createNoteTable(db); createDataTable(db); } + /** + * 数据库版本升级时调用 + * @param db 数据库实例 + * @param oldVersion 旧版本号 + * @param newVersion 新版本号 + */ @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { boolean reCreateTriggers = false; boolean skipV2 = false; + // 版本1升级到版本2 if (oldVersion == 1) { upgradeToV2(db); - skipV2 = true; // this upgrade including the upgrade from v2 to v3 + skipV2 = true; // 此升级包含了从v2到v3的升级 oldVersion++; } + // 版本2升级到版本3(跳过已包含在v1->v2中的情况) if (oldVersion == 2 && !skipV2) { upgradeToV3(db); reCreateTriggers = true; oldVersion++; } + // 版本3升级到版本4 if (oldVersion == 3) { upgradeToV4(db); oldVersion++; } + // 如果需要,重新创建触发器 if (reCreateTriggers) { reCreateNoteTableTriggers(db); reCreateDataTableTriggers(db); } + // 验证升级是否完成 if (oldVersion != newVersion) { throw new IllegalStateException("Upgrade notes database to version " + newVersion + "fails"); } } + /** + * 升级到版本2:删除旧表并重新创建(结构调整) + * @param db 数据库实例 + */ private void upgradeToV2(SQLiteDatabase db) { db.execSQL("DROP TABLE IF EXISTS " + TABLE.NOTE); db.execSQL("DROP TABLE IF EXISTS " + TABLE.DATA); @@ -340,23 +402,31 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper { createDataTable(db); } + /** + * 升级到版本3:添加GTask ID字段和回收站文件夹 + * @param db 数据库实例 + */ private void upgradeToV3(SQLiteDatabase db) { - // drop unused triggers + // 删除未使用的触发器 db.execSQL("DROP TRIGGER IF EXISTS update_note_modified_date_on_insert"); db.execSQL("DROP TRIGGER IF EXISTS update_note_modified_date_on_delete"); db.execSQL("DROP TRIGGER IF EXISTS update_note_modified_date_on_update"); - // add a column for gtask id + // 添加GTask ID字段,用于同步 db.execSQL("ALTER TABLE " + TABLE.NOTE + " ADD COLUMN " + NoteColumns.GTASK_ID + " TEXT NOT NULL DEFAULT ''"); - // add a trash system folder + // 添加回收站系统文件夹 ContentValues values = new ContentValues(); values.put(NoteColumns.ID, Notes.ID_TRASH_FOLER); values.put(NoteColumns.TYPE, Notes.TYPE_SYSTEM); db.insert(TABLE.NOTE, null, values); } + /** + * 升级到版本4:添加版本号字段,用于数据同步控制 + * @param db 数据库实例 + */ private void upgradeToV4(SQLiteDatabase db) { db.execSQL("ALTER TABLE " + TABLE.NOTE + " ADD COLUMN " + NoteColumns.VERSION + " INTEGER NOT NULL DEFAULT 0"); } -} +} \ No newline at end of file diff --git a/src/main/java/net/micode/notes/data/NotesProvider.java b/src/main/java/net/micode/notes/data/NotesProvider.java index edb0a60..678534f 100644 --- a/src/main/java/net/micode/notes/data/NotesProvider.java +++ b/src/main/java/net/micode/notes/data/NotesProvider.java @@ -16,7 +16,6 @@ package net.micode.notes.data; - import android.app.SearchManager; import android.content.ContentProvider; import android.content.ContentUris; @@ -34,90 +33,137 @@ import net.micode.notes.data.Notes.DataColumns; import net.micode.notes.data.Notes.NoteColumns; import net.micode.notes.data.NotesDatabaseHelper.TABLE; - +/** + * 便签应用的内容提供者(ContentProvider) + * 负责管理便签数据的CRUD操作,包括搜索功能 + */ public class NotesProvider extends ContentProvider { + /** + * URI匹配器,用于匹配不同的URI请求,根据URI类型执行相应的操作 + */ private static final UriMatcher mMatcher; + /** + * 数据库帮助类实例,用于获取数据库连接 + */ private NotesDatabaseHelper mHelper; + /** + * 日志标签,用于日志输出 + */ private static final String TAG = "NotesProvider"; - private static final int URI_NOTE = 1; - private static final int URI_NOTE_ITEM = 2; - private static final int URI_DATA = 3; - private static final int URI_DATA_ITEM = 4; - - private static final int URI_SEARCH = 5; - private static final int URI_SEARCH_SUGGEST = 6; + /** + * URI匹配类型常量定义,用于区分不同的URI请求类型 + */ + private static final int URI_NOTE = 1; // 操作便签表(所有记录) + private static final int URI_NOTE_ITEM = 2; // 操作便签表(单条记录) + private static final int URI_DATA = 3; // 操作数据表(所有记录) + private static final int URI_DATA_ITEM = 4; // 操作数据表(单条记录) + private static final int URI_SEARCH = 5; // 搜索操作 + private static final int URI_SEARCH_SUGGEST = 6; // 搜索建议操作 + /** + * 静态初始化块,配置URI匹配规则 + * 为不同类型的URI请求配置对应的匹配类型 + */ static { mMatcher = new UriMatcher(UriMatcher.NO_MATCH); + // 匹配便签表的URI mMatcher.addURI(Notes.AUTHORITY, "note", URI_NOTE); mMatcher.addURI(Notes.AUTHORITY, "note/#", URI_NOTE_ITEM); + // 匹配数据表的URI mMatcher.addURI(Notes.AUTHORITY, "data", URI_DATA); mMatcher.addURI(Notes.AUTHORITY, "data/#", URI_DATA_ITEM); + // 匹配搜索相关的URI mMatcher.addURI(Notes.AUTHORITY, "search", URI_SEARCH); mMatcher.addURI(Notes.AUTHORITY, SearchManager.SUGGEST_URI_PATH_QUERY, URI_SEARCH_SUGGEST); mMatcher.addURI(Notes.AUTHORITY, SearchManager.SUGGEST_URI_PATH_QUERY + "/*", URI_SEARCH_SUGGEST); } /** - * x'0A' represents the '\n' character in sqlite. For title and content in the search result, - * we will trim '\n' and white space in order to show more information. + * 搜索查询的投影(列)定义 + * x'0A' 在SQLite中代表 '\n' 字符 + * 对于搜索结果中的标题和内容,我们将修剪 '\n' 和空白字符以显示更多信息 */ private static final String NOTES_SEARCH_PROJECTION = NoteColumns.ID + "," - + NoteColumns.ID + " AS " + SearchManager.SUGGEST_COLUMN_INTENT_EXTRA_DATA + "," - + "TRIM(REPLACE(" + NoteColumns.SNIPPET + ", x'0A','')) AS " + SearchManager.SUGGEST_COLUMN_TEXT_1 + "," - + "TRIM(REPLACE(" + NoteColumns.SNIPPET + ", x'0A','')) AS " + SearchManager.SUGGEST_COLUMN_TEXT_2 + "," - + R.drawable.search_result + " AS " + SearchManager.SUGGEST_COLUMN_ICON_1 + "," - + "'" + Intent.ACTION_VIEW + "' AS " + SearchManager.SUGGEST_COLUMN_INTENT_ACTION + "," - + "'" + Notes.TextNote.CONTENT_TYPE + "' AS " + SearchManager.SUGGEST_COLUMN_INTENT_DATA; + + NoteColumns.ID + " AS " + SearchManager.SUGGEST_COLUMN_INTENT_EXTRA_DATA + "," + + "TRIM(REPLACE(" + NoteColumns.SNIPPET + ", x'0A','')) AS " + SearchManager.SUGGEST_COLUMN_TEXT_1 + "," + + "TRIM(REPLACE(" + NoteColumns.SNIPPET + ", x'0A','')) AS " + SearchManager.SUGGEST_COLUMN_TEXT_2 + "," + + R.drawable.search_result + " AS " + SearchManager.SUGGEST_COLUMN_ICON_1 + "," + + "'" + Intent.ACTION_VIEW + "' AS " + SearchManager.SUGGEST_COLUMN_INTENT_ACTION + "," + + "'" + Notes.TextNote.CONTENT_TYPE + "' AS " + SearchManager.SUGGEST_COLUMN_INTENT_DATA; + /** + * 便签片段搜索查询的SQL语句 + * 搜索条件:便签片段包含关键词,且不在回收站中,类型为普通便签 + */ private static String NOTES_SNIPPET_SEARCH_QUERY = "SELECT " + NOTES_SEARCH_PROJECTION - + " FROM " + TABLE.NOTE - + " WHERE " + NoteColumns.SNIPPET + " LIKE ?" - + " AND " + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLER - + " AND " + NoteColumns.TYPE + "=" + Notes.TYPE_NOTE; + + " FROM " + TABLE.NOTE + + " WHERE " + NoteColumns.SNIPPET + " LIKE ?" + + " AND " + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLER + + " AND " + NoteColumns.TYPE + "=" + Notes.TYPE_NOTE; + /** + * 初始化内容提供者 + * @return 如果初始化成功返回true,否则返回false + */ @Override public boolean onCreate() { mHelper = NotesDatabaseHelper.getInstance(getContext()); return true; } + /** + * 查询数据 + * @param uri 要查询的URI + * @param projection 要返回的列,null表示所有列 + * @param selection 查询条件,null表示无条件 + * @param selectionArgs 查询条件参数 + * @param sortOrder 排序方式,null表示默认排序 + * @return 包含查询结果的Cursor对象 + */ @Override public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, - String sortOrder) { + String sortOrder) { Cursor c = null; SQLiteDatabase db = mHelper.getReadableDatabase(); String id = null; + + // 根据URI类型执行不同的查询操作 switch (mMatcher.match(uri)) { case URI_NOTE: + // 查询所有便签 c = db.query(TABLE.NOTE, projection, selection, selectionArgs, null, null, sortOrder); break; case URI_NOTE_ITEM: + // 查询单条便签记录 id = uri.getPathSegments().get(1); c = db.query(TABLE.NOTE, projection, NoteColumns.ID + "=" + id + parseSelection(selection), selectionArgs, null, null, sortOrder); break; case URI_DATA: + // 查询所有数据记录 c = db.query(TABLE.DATA, projection, selection, selectionArgs, null, null, sortOrder); break; case URI_DATA_ITEM: + // 查询单条数据记录 id = uri.getPathSegments().get(1); c = db.query(TABLE.DATA, projection, DataColumns.ID + "=" + id + parseSelection(selection), selectionArgs, null, null, sortOrder); break; case URI_SEARCH: case URI_SEARCH_SUGGEST: + // 处理搜索和搜索建议请求 if (sortOrder != null || projection != null) { throw new IllegalArgumentException( "do not specify sortOrder, selection, selectionArgs, or projection" + "with this query"); } String searchString = null; + // 根据URI类型获取搜索关键词 if (mMatcher.match(uri) == URI_SEARCH_SUGGEST) { if (uri.getPathSegments().size() > 1) { searchString = uri.getPathSegments().get(1); @@ -126,11 +172,13 @@ public class NotesProvider extends ContentProvider { searchString = uri.getQueryParameter("pattern"); } + // 如果搜索关键词为空,返回null if (TextUtils.isEmpty(searchString)) { return null; } try { + // 构造模糊查询字符串 searchString = String.format("%%%s%%", searchString); c = db.rawQuery(NOTES_SNIPPET_SEARCH_QUERY, new String[] { searchString }); @@ -141,21 +189,33 @@ public class NotesProvider extends ContentProvider { default: throw new IllegalArgumentException("Unknown URI " + uri); } + + // 设置内容观察者,以便在数据变化时通知相关组件 if (c != null) { c.setNotificationUri(getContext().getContentResolver(), uri); } return c; } + /** + * 插入数据 + * @param uri 要插入数据的URI + * @param values 要插入的数据值 + * @return 新插入数据的URI + */ @Override public Uri insert(Uri uri, ContentValues values) { SQLiteDatabase db = mHelper.getWritableDatabase(); long dataId = 0, noteId = 0, insertedId = 0; + + // 根据URI类型执行不同的插入操作 switch (mMatcher.match(uri)) { case URI_NOTE: + // 插入便签数据 insertedId = noteId = db.insert(TABLE.NOTE, null, values); break; case URI_DATA: + // 插入数据表记录 if (values.containsKey(DataColumns.NOTE_ID)) { noteId = values.getAsLong(DataColumns.NOTE_ID); } else { @@ -166,37 +226,49 @@ public class NotesProvider extends ContentProvider { default: throw new IllegalArgumentException("Unknown URI " + uri); } - // Notify the note uri + + // 通知便签URI的数据变化 if (noteId > 0) { getContext().getContentResolver().notifyChange( ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId), null); } - // Notify the data uri + // 通知数据URI的数据变化 if (dataId > 0) { getContext().getContentResolver().notifyChange( ContentUris.withAppendedId(Notes.CONTENT_DATA_URI, dataId), null); } + // 返回新插入数据的URI return ContentUris.withAppendedId(uri, insertedId); } + /** + * 删除数据 + * @param uri 要删除数据的URI + * @param selection 删除条件,null表示无条件 + * @param selectionArgs 删除条件参数 + * @return 被删除的行数 + */ @Override public int delete(Uri uri, String selection, String[] selectionArgs) { int count = 0; String id = null; SQLiteDatabase db = mHelper.getWritableDatabase(); boolean deleteData = false; + + // 根据URI类型执行不同的删除操作 switch (mMatcher.match(uri)) { case URI_NOTE: + // 删除便签记录(不删除ID小于0的系统文件夹) selection = "(" + selection + ") AND " + NoteColumns.ID + ">0 "; count = db.delete(TABLE.NOTE, selection, selectionArgs); break; case URI_NOTE_ITEM: + // 删除单条便签记录 id = uri.getPathSegments().get(1); /** - * ID that smaller than 0 is system folder which is not allowed to - * trash + * ID小于0的是系统文件夹,不允许删除(移动到回收站) */ long noteId = Long.valueOf(id); if (noteId <= 0) { @@ -206,10 +278,12 @@ public class NotesProvider extends ContentProvider { NoteColumns.ID + "=" + id + parseSelection(selection), selectionArgs); break; case URI_DATA: + // 删除数据记录 count = db.delete(TABLE.DATA, selection, selectionArgs); deleteData = true; break; case URI_DATA_ITEM: + // 删除单条数据记录 id = uri.getPathSegments().get(1); count = db.delete(TABLE.DATA, DataColumns.ID + "=" + id + parseSelection(selection), selectionArgs); @@ -218,37 +292,55 @@ public class NotesProvider extends ContentProvider { default: throw new IllegalArgumentException("Unknown URI " + uri); } + + // 如果成功删除数据,发送数据变化通知 if (count > 0) { if (deleteData) { + // 如果删除的是数据表记录,通知便签URI数据变化 getContext().getContentResolver().notifyChange(Notes.CONTENT_NOTE_URI, null); } + // 通知当前URI数据变化 getContext().getContentResolver().notifyChange(uri, null); } return count; } + /** + * 更新数据 + * @param uri 要更新数据的URI + * @param values 更新的数据值 + * @param selection 更新条件,null表示无条件 + * @param selectionArgs 更新条件参数 + * @return 被更新的行数 + */ @Override public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { int count = 0; String id = null; SQLiteDatabase db = mHelper.getWritableDatabase(); boolean updateData = false; + + // 根据URI类型执行不同的更新操作 switch (mMatcher.match(uri)) { case URI_NOTE: + // 更新便签记录,增加版本号 increaseNoteVersion(-1, selection, selectionArgs); count = db.update(TABLE.NOTE, values, selection, selectionArgs); break; case URI_NOTE_ITEM: + // 更新单条便签记录,增加版本号 id = uri.getPathSegments().get(1); increaseNoteVersion(Long.valueOf(id), selection, selectionArgs); count = db.update(TABLE.NOTE, values, NoteColumns.ID + "=" + id + parseSelection(selection), selectionArgs); break; case URI_DATA: + // 更新数据记录 count = db.update(TABLE.DATA, values, selection, selectionArgs); updateData = true; break; case URI_DATA_ITEM: + // 更新单条数据记录 id = uri.getPathSegments().get(1); count = db.update(TABLE.DATA, values, DataColumns.ID + "=" + id + parseSelection(selection), selectionArgs); @@ -258,19 +350,35 @@ public class NotesProvider extends ContentProvider { throw new IllegalArgumentException("Unknown URI " + uri); } + // 如果成功更新数据,发送数据变化通知 if (count > 0) { if (updateData) { + // 如果更新的是数据表记录,通知便签URI数据变化 getContext().getContentResolver().notifyChange(Notes.CONTENT_NOTE_URI, null); } + // 通知当前URI数据变化 getContext().getContentResolver().notifyChange(uri, null); } return count; } + /** + * 解析查询/更新条件 + * 将原始条件转换为SQL语句中的AND条件 + * @param selection 原始条件字符串 + * @return 格式化后的条件字符串 + */ private String parseSelection(String selection) { return (!TextUtils.isEmpty(selection) ? " AND (" + selection + ')' : ""); } + /** + * 增加便签版本号 + * 当便签被修改时,调用此方法增加版本号 + * @param id 便签ID,如果id>0则更新指定便签,否则更新所有匹配条件的便签 + * @param selection 更新条件 + * @param selectionArgs 更新条件参数 + */ private void increaseNoteVersion(long id, String selection, String[] selectionArgs) { StringBuilder sql = new StringBuilder(120); sql.append("UPDATE "); @@ -279,6 +387,7 @@ public class NotesProvider extends ContentProvider { sql.append(NoteColumns.VERSION); sql.append("=" + NoteColumns.VERSION + "+1 "); + // 构造WHERE子句 if (id > 0 || !TextUtils.isEmpty(selection)) { sql.append(" WHERE "); } @@ -287,19 +396,25 @@ public class NotesProvider extends ContentProvider { } if (!TextUtils.isEmpty(selection)) { String selectString = id > 0 ? parseSelection(selection) : selection; + // 替换预编译语句中的占位符 for (String args : selectionArgs) { selectString = selectString.replaceFirst("\\?", args); } sql.append(selectString); } + // 执行SQL语句更新版本号 mHelper.getWritableDatabase().execSQL(sql.toString()); } + /** + * 返回指定URI的MIME类型 + * @param uri 要获取MIME类型的URI + * @return MIME类型字符串 + */ @Override public String getType(Uri uri) { - // TODO Auto-generated method stub + // TODO: 实现此方法,返回合适的MIME类型 return null; } - -} +} \ No newline at end of file diff --git a/src/main/java/net/micode/notes/gtask/data/MetaData.java b/src/main/java/net/micode/notes/gtask/data/MetaData.java index 3a2050b..2a39a68 100644 --- a/src/main/java/net/micode/notes/gtask/data/MetaData.java +++ b/src/main/java/net/micode/notes/gtask/data/MetaData.java @@ -24,37 +24,84 @@ import net.micode.notes.tool.GTaskStringUtils; import org.json.JSONException; import org.json.JSONObject; - +/** + * MetaData类是Task的子类,用于存储与Google Tasks同步相关的元数据信息。 + *

+ * 该类主要用于在GTask同步过程中存储任务的关联信息,将元数据以JSON格式存储在 + * Task的notes字段中,并提供了相应的解析和访问方法。 + *

+ */ public class MetaData extends Task { private final static String TAG = MetaData.class.getSimpleName(); + /** + * 与当前元数据相关联的Google Task ID + */ private String mRelatedGid = null; + /** + * 设置元数据信息 + *

+ * 将Google Task ID添加到元数据JSON对象中,并将其存储在Task的notes字段中。 + * 同时设置任务名称为元数据标识名称。 + *

+ * + * @param gid 与元数据关联的Google Task ID + * @param metaInfo 包含元数据信息的JSON对象 + */ public void setMeta(String gid, JSONObject metaInfo) { try { + // 将关联的Google Task ID添加到元数据中 metaInfo.put(GTaskStringUtils.META_HEAD_GTASK_ID, gid); } catch (JSONException e) { Log.e(TAG, "failed to put related gid"); } + // 将元数据JSON对象转换为字符串并存储在notes字段中 setNotes(metaInfo.toString()); + // 设置任务名称为元数据标识名称 setName(GTaskStringUtils.META_NOTE_NAME); } + /** + * 获取与当前元数据相关联的Google Task ID + * + * @return 关联的Google Task ID,如果没有则返回null + */ public String getRelatedGid() { return mRelatedGid; } + /** + * 判断当前元数据是否值得保存 + *

+ * 只有当notes字段不为null时,元数据才值得保存 + *

+ * + * @return 如果notes字段不为null则返回true,否则返回false + */ @Override public boolean isWorthSaving() { return getNotes() != null; } + /** + * 从远程JSON数据设置内容 + *

+ * 从远程获取的JSON数据中解析元信息,并提取关联的Google Task ID + *

+ * + * @param js 包含远程数据的JSON对象 + */ @Override public void setContentByRemoteJSON(JSONObject js) { + // 调用父类方法设置基本内容 super.setContentByRemoteJSON(js); + // 如果notes字段不为null,则解析元数据 if (getNotes() != null) { try { + // 解析notes字段中的JSON元数据 JSONObject metaInfo = new JSONObject(getNotes().trim()); + // 提取关联的Google Task ID mRelatedGid = metaInfo.getString(GTaskStringUtils.META_HEAD_GTASK_ID); } catch (JSONException e) { Log.w(TAG, "failed to get related gid"); @@ -63,17 +110,45 @@ public class MetaData extends Task { } } + /** + * 从本地JSON数据设置内容(不支持) + *

+ * 该方法不应该被调用,因为MetaData主要用于处理远程同步数据 + *

+ * + * @param js 本地JSON对象 + * @throws IllegalAccessError 总是抛出此异常,表示该方法不应该被调用 + */ @Override public void setContentByLocalJSON(JSONObject js) { - // this function should not be called + // 此方法不应该被调用 throw new IllegalAccessError("MetaData:setContentByLocalJSON should not be called"); } + /** + * 从内容获取本地JSON数据(不支持) + *

+ * 该方法不应该被调用,因为MetaData主要用于处理远程同步数据 + *

+ * + * @return 本地JSON对象 + * @throws IllegalAccessError 总是抛出此异常,表示该方法不应该被调用 + */ @Override public JSONObject getLocalJSONFromContent() { throw new IllegalAccessError("MetaData:getLocalJSONFromContent should not be called"); } + /** + * 获取同步操作(不支持) + *

+ * 该方法不应该被调用,因为MetaData主要用于处理远程同步数据 + *

+ * + * @param c 本地数据库游标 + * @return 同步操作类型 + * @throws IllegalAccessError 总是抛出此异常,表示该方法不应该被调用 + */ @Override public int getSyncAction(Cursor c) { throw new IllegalAccessError("MetaData:getSyncAction should not be called"); diff --git a/src/main/java/net/micode/notes/gtask/data/Node.java b/src/main/java/net/micode/notes/gtask/data/Node.java index 63950e0..dea45d5 100644 --- a/src/main/java/net/micode/notes/gtask/data/Node.java +++ b/src/main/java/net/micode/notes/gtask/data/Node.java @@ -20,33 +20,82 @@ import android.database.Cursor; import org.json.JSONObject; +/** + * Node类是GTask同步系统中的抽象基类,定义了同步节点的基本属性和操作接口。 + *

+ * 该类为所有参与GTask同步的实体(如Task、TaskList等)提供了统一的接口和基础属性, + * 包括唯一标识符、名称、最后修改时间、删除状态等,并定义了同步操作所需的抽象方法。 + *

+ */ public abstract class Node { + /** + * 同步操作:无操作 + */ public static final int SYNC_ACTION_NONE = 0; + /** + * 同步操作:向远程添加节点 + */ public static final int SYNC_ACTION_ADD_REMOTE = 1; + /** + * 同步操作:向本地添加节点 + */ public static final int SYNC_ACTION_ADD_LOCAL = 2; + /** + * 同步操作:从远程删除节点 + */ public static final int SYNC_ACTION_DEL_REMOTE = 3; + /** + * 同步操作:从本地删除节点 + */ public static final int SYNC_ACTION_DEL_LOCAL = 4; + /** + * 同步操作:更新远程节点 + */ public static final int SYNC_ACTION_UPDATE_REMOTE = 5; + /** + * 同步操作:更新本地节点 + */ public static final int SYNC_ACTION_UPDATE_LOCAL = 6; + /** + * 同步操作:更新冲突(本地和远程都有修改) + */ public static final int SYNC_ACTION_UPDATE_CONFLICT = 7; + /** + * 同步操作:同步错误 + */ public static final int SYNC_ACTION_ERROR = 8; + /** + * 节点的唯一标识符(Google Task ID) + */ private String mGid; + /** + * 节点的名称 + */ private String mName; + /** + * 节点的最后修改时间戳 + */ private long mLastModified; + /** + * 节点的删除状态 + */ private boolean mDeleted; + /** + * 构造函数,初始化节点的默认值 + */ public Node() { mGid = null; mName = ""; @@ -54,46 +103,119 @@ public abstract class Node { mDeleted = false; } + /** + * 获取创建节点的同步操作JSON对象 + * + * @param actionId 操作ID + * @return 创建操作的JSON对象 + */ public abstract JSONObject getCreateAction(int actionId); + /** + * 获取更新节点的同步操作JSON对象 + * + * @param actionId 操作ID + * @return 更新操作的JSON对象 + */ public abstract JSONObject getUpdateAction(int actionId); + /** + * 从远程JSON数据设置节点内容 + * + * @param js 包含远程数据的JSON对象 + */ public abstract void setContentByRemoteJSON(JSONObject js); + /** + * 从本地JSON数据设置节点内容 + * + * @param js 包含本地数据的JSON对象 + */ public abstract void setContentByLocalJSON(JSONObject js); + /** + * 从节点内容获取本地JSON数据 + * + * @return 包含本地数据的JSON对象 + */ public abstract JSONObject getLocalJSONFromContent(); + /** + * 根据本地数据库游标获取同步操作类型 + * + * @param c 本地数据库游标 + * @return 同步操作类型(参考SYNC_ACTION_*常量) + */ public abstract int getSyncAction(Cursor c); + /** + * 设置节点的唯一标识符 + * + * @param gid 节点的唯一标识符(Google Task ID) + */ public void setGid(String gid) { this.mGid = gid; } + /** + * 设置节点的名称 + * + * @param name 节点的名称 + */ public void setName(String name) { this.mName = name; } + /** + * 设置节点的最后修改时间戳 + * + * @param lastModified 最后修改时间戳 + */ public void setLastModified(long lastModified) { this.mLastModified = lastModified; } + /** + * 设置节点的删除状态 + * + * @param deleted 是否删除 + */ public void setDeleted(boolean deleted) { this.mDeleted = deleted; } + /** + * 获取节点的唯一标识符 + * + * @return 节点的唯一标识符(Google Task ID) + */ public String getGid() { return this.mGid; } + /** + * 获取节点的名称 + * + * @return 节点的名称 + */ public String getName() { return this.mName; } + /** + * 获取节点的最后修改时间戳 + * + * @return 最后修改时间戳 + */ public long getLastModified() { return this.mLastModified; } + /** + * 获取节点的删除状态 + * + * @return 是否删除 + */ public boolean getDeleted() { return this.mDeleted; } diff --git a/src/main/java/net/micode/notes/gtask/data/SqlData.java b/src/main/java/net/micode/notes/gtask/data/SqlData.java index d3ec3be..3d537ca 100644 --- a/src/main/java/net/micode/notes/gtask/data/SqlData.java +++ b/src/main/java/net/micode/notes/gtask/data/SqlData.java @@ -35,42 +35,131 @@ import org.json.JSONException; import org.json.JSONObject; +/** + * SqlData类是小米笔记应用中GTask同步模块的核心数据处理类,负责本地SQL数据的CRUD操作。CRUD 是数据库操作的四种基本功能缩写: + +- C(Create):创建新笔记数据 +- R(Read):读取现有笔记数据 +- U(Update):更新笔记数据 +- D(Delete):删除笔记数据 + *

+ * 在Notes与Google Tasks的同步过程中,该类扮演着桥梁角色: + * 1. 接收并解析来自GTask的JSON格式数据 + * 2. 将数据转换为本地数据库可存储的格式 + * 3. 通过ContentResolver与本地ContentProvider交互,执行数据的插入、更新和删除操作 + * 4. 支持数据差异跟踪,仅提交修改的字段以优化性能 + * 5. 提供版本验证机制,避免同步冲突 + *

+ *

+ * 该类是同步流程中的关键组件,确保本地笔记数据与Google Tasks之间的数据一致性和完整性。 + *

+ */ public class SqlData { private static final String TAG = SqlData.class.getSimpleName(); + /** + * 无效ID常量,用于标记未初始化或无效的数据ID + * 在同步过程中用于区分新创建的数据和已存在的数据 + */ private static final int INVALID_ID = -99999; + /** + * 数据库查询投影列,定义了从数据库中获取的数据字段 + * 包含数据ID、MIME类型、内容以及扩展字段DATA1和DATA3 + */ public static final String[] PROJECTION_DATA = new String[] { DataColumns.ID, DataColumns.MIME_TYPE, DataColumns.CONTENT, DataColumns.DATA1, DataColumns.DATA3 }; + /** + * 数据ID列在投影中的索引位置 + */ public static final int DATA_ID_COLUMN = 0; + /** + * 数据MIME类型列在投影中的索引位置 + * 用于区分不同类型的数据(如文本笔记、通话记录等) + */ public static final int DATA_MIME_TYPE_COLUMN = 1; + /** + * 数据内容列在投影中的索引位置 + * 存储笔记的主要内容 + */ public static final int DATA_CONTENT_COLUMN = 2; + /** + * 数据内容DATA1字段在投影中的索引位置 + * 用于存储整数类型的扩展数据(如笔记模式、通话日期等) + */ public static final int DATA_CONTENT_DATA_1_COLUMN = 3; + /** + * 数据内容DATA3字段在投影中的索引位置 + * 用于存储字符串类型的扩展数据(如电话号码等) + */ public static final int DATA_CONTENT_DATA_3_COLUMN = 4; + /** + * 用于访问ContentProvider的ContentResolver实例 + * 是与本地数据库交互的核心接口 + */ private ContentResolver mContentResolver; + /** + * 标记是否为新建数据 + * true表示该数据需要插入数据库,false表示需要更新数据库 + */ private boolean mIsCreate; + /** + * 数据ID + * 唯一标识数据库中的数据记录 + */ private long mDataId; + /** + * 数据MIME类型 + * 定义数据的类型,如文本笔记(DataConstants.NOTE)或通话记录 + */ private String mDataMimeType; + /** + * 数据内容 + * 存储笔记的主要文本内容 + */ private String mDataContent; + /** + * 数据内容的DATA1字段 + * 根据MIME类型不同存储不同的整数数据,如: + * - 对于文本笔记:存储笔记模式(普通模式或 checklist 模式) + * - 对于通话记录:存储通话日期 + */ private long mDataContentData1; + /** + * 数据内容的DATA3字段 + * 根据MIME类型不同存储不同的字符串数据,如: + * - 对于通话记录:存储电话号码 + */ private String mDataContentData3; + /** + * 用于跟踪数据变化的ContentValues对象 + * 只包含已修改的字段,用于优化数据库更新操作 + */ private ContentValues mDiffDataValues; + /** + * 构造函数,用于创建新的SqlData实例(用于插入新数据) + *

+ * 初始化所有字段为默认值,并将mIsCreate标记设置为true + *

+ * + * @param context 上下文对象,用于获取ContentResolver实例 + */ public SqlData(Context context) { mContentResolver = context.getContentResolver(); mIsCreate = true; @@ -82,6 +171,15 @@ public class SqlData { mDiffDataValues = new ContentValues(); } + /** + * 构造函数,用于从数据库Cursor加载SqlData实例(用于更新现有数据) + *

+ * 从Cursor中读取数据并初始化所有字段,将mIsCreate标记设置为false + *

+ * + * @param context 上下文对象,用于获取ContentResolver实例 + * @param c 数据库Cursor对象,包含要加载的数据记录 + */ public SqlData(Context context, Cursor c) { mContentResolver = context.getContentResolver(); mIsCreate = false; @@ -89,6 +187,14 @@ public class SqlData { mDiffDataValues = new ContentValues(); } + /** + * 从数据库Cursor中加载数据到当前SqlData实例 + *

+ * 根据PROJECTION_DATA中定义的列顺序,从Cursor中读取对应字段的值 + *

+ * + * @param c 包含数据的Cursor对象,必须指向有效的数据行 + */ private void loadFromCursor(Cursor c) { mDataId = c.getLong(DATA_ID_COLUMN); mDataMimeType = c.getString(DATA_MIME_TYPE_COLUMN); @@ -97,6 +203,16 @@ public class SqlData { mDataContentData3 = c.getString(DATA_CONTENT_DATA_3_COLUMN); } + /** + * 从JSON对象设置数据内容,并跟踪数据变化 + *

+ * 该方法是同步过程中的关键方法,用于将从GTask获取的JSON数据转换为本地数据格式 + * 同时会跟踪数据变化,仅将修改的字段记录到mDiffDataValues中 + *

+ * + * @param js 包含GTask数据的JSON对象 + * @throws JSONException 如果JSON解析失败 + */ public void setContent(JSONObject js) throws JSONException { long dataId = js.has(DataColumns.ID) ? js.getLong(DataColumns.ID) : INVALID_ID; if (mIsCreate || mDataId != dataId) { @@ -130,6 +246,16 @@ public class SqlData { mDataContentData3 = dataContentData3; } + /** + * 获取当前数据的JSON表示 + *

+ * 将本地数据转换为JSON格式,用于与GTask进行数据交换 + * 注意:只有已提交到数据库的数据才能获取JSON表示 + *

+ * + * @return 包含当前数据的JSON对象,如果数据未提交到数据库则返回null + * @throws JSONException 如果JSON构建失败 + */ public JSONObject getContent() throws JSONException { if (mIsCreate) { Log.e(TAG, "it seems that we haven't created this in database yet"); @@ -144,6 +270,20 @@ public class SqlData { return js; } + /** + * 将数据提交到本地数据库 + *

+ * 这是SqlData类的核心方法,根据mIsCreate标记执行插入或更新操作: + * 1. 如果是新数据(mIsCreate=true),执行插入操作 + * 2. 如果是现有数据(mIsCreate=false),仅当有数据变化时执行更新操作 + * 3. 支持版本验证机制,避免在同步过程中出现数据冲突 + *

+ * + * @param noteId 所属的Note ID,用于关联到具体的笔记 + * @param validateVersion 是否验证版本,true表示需要进行版本检查 + * @param version 版本号,用于版本验证 + * @throws ActionFailureException 如果数据提交失败 + */ public void commit(long noteId, boolean validateVersion, long version) { if (mIsCreate) { @@ -183,6 +323,14 @@ public class SqlData { mIsCreate = false; } + /** + * 获取数据ID + *

+ * 返回当前数据的唯一标识符,用于在数据库中定位该记录 + *

+ * + * @return 数据ID,如果数据未提交到数据库则返回INVALID_ID + */ public long getId() { return mDataId; } diff --git a/src/main/java/net/micode/notes/gtask/data/SqlNote.java b/src/main/java/net/micode/notes/gtask/data/SqlNote.java index 79a4095..ad39ff5 100644 --- a/src/main/java/net/micode/notes/gtask/data/SqlNote.java +++ b/src/main/java/net/micode/notes/gtask/data/SqlNote.java @@ -38,11 +38,29 @@ import org.json.JSONObject; import java.util.ArrayList; +/** + * SqlNote类是小米笔记应用中GTask同步模块的核心类,负责本地笔记数据的CRUD操作。 + *

+ * 在Notes与Google Tasks的同步过程中,该类扮演着重要角色: + * 1. 封装本地笔记数据模型,支持笔记和文件夹两种类型 + * 2. 通过ContentResolver与本地ContentProvider交互,执行数据的插入、更新和删除操作 + * 3. 支持将JSON格式的GTask数据转换为本地数据模型 + * 4. 支持将本地数据模型转换为JSON格式以便与GTask同步 + * 5. 实现数据差异跟踪,仅提交修改的字段以优化性能 + * 6. 提供版本验证机制,避免同步冲突 + *

+ */ public class SqlNote { private static final String TAG = SqlNote.class.getSimpleName(); + /** + * 无效的ID值,用于初始化和错误检查 + */ private static final int INVALID_ID = -99999; +/** + * 查询笔记时使用的投影列,包含笔记的所有核心字段 + */ public static final String[] PROJECTION_NOTE = new String[] { NoteColumns.ID, NoteColumns.ALERTED_DATE, NoteColumns.BG_COLOR_ID, NoteColumns.CREATED_DATE, NoteColumns.HAS_ATTACHMENT, NoteColumns.MODIFIED_DATE, @@ -52,76 +70,186 @@ public class SqlNote { NoteColumns.VERSION }; +/** + * 投影列索引:笔记ID + */ public static final int ID_COLUMN = 0; + /** + * 投影列索引:提醒日期 + */ public static final int ALERTED_DATE_COLUMN = 1; + /** + * 投影列索引:背景颜色ID + */ public static final int BG_COLOR_ID_COLUMN = 2; + /** + * 投影列索引:创建日期 + */ public static final int CREATED_DATE_COLUMN = 3; + /** + * 投影列索引:是否有附件 + */ public static final int HAS_ATTACHMENT_COLUMN = 4; + /** + * 投影列索引:修改日期 + */ public static final int MODIFIED_DATE_COLUMN = 5; + /** + * 投影列索引:笔记数量 + */ public static final int NOTES_COUNT_COLUMN = 6; + /** + * 投影列索引:父文件夹ID + */ public static final int PARENT_ID_COLUMN = 7; + /** + * 投影列索引:笔记摘要 + */ public static final int SNIPPET_COLUMN = 8; + /** + * 投影列索引:笔记类型(笔记或文件夹) + */ public static final int TYPE_COLUMN = 9; + /** + * 投影列索引:小部件ID + */ public static final int WIDGET_ID_COLUMN = 10; + /** + * 投影列索引:小部件类型 + */ public static final int WIDGET_TYPE_COLUMN = 11; + /** + * 投影列索引:同步ID + */ public static final int SYNC_ID_COLUMN = 12; + /** + * 投影列索引:本地修改标记 + */ public static final int LOCAL_MODIFIED_COLUMN = 13; + /** + * 投影列索引:原始父文件夹ID + */ public static final int ORIGIN_PARENT_ID_COLUMN = 14; + /** + * 投影列索引:Google Task ID + */ public static final int GTASK_ID_COLUMN = 15; + /** + * 投影列索引:版本号 + */ public static final int VERSION_COLUMN = 16; + /** + * 上下文对象,用于访问系统服务 + */ private Context mContext; + /** + * ContentResolver对象,用于与ContentProvider交互 + */ private ContentResolver mContentResolver; + /** + * 标记是否为新创建的笔记 + */ private boolean mIsCreate; + /** + * 笔记ID + */ private long mId; + /** + * 提醒日期 + */ private long mAlertDate; + /** + * 背景颜色ID + */ private int mBgColorId; + /** + * 创建日期 + */ private long mCreatedDate; + /** + * 是否有附件(0:无,1:有) + */ private int mHasAttachment; + /** + * 修改日期 + */ private long mModifiedDate; + /** + * 父文件夹ID + */ private long mParentId; + /** + * 笔记摘要 + */ private String mSnippet; + /** + * 笔记类型(笔记或文件夹) + */ private int mType; + /** + * 小部件ID + */ private int mWidgetId; + /** + * 小部件类型 + */ private int mWidgetType; + /** + * 原始父文件夹ID + */ private long mOriginParent; + /** + * 版本号,用于避免同步冲突 + */ private long mVersion; + /** + * 记录笔记数据的变更,仅提交修改的字段以优化性能 + */ private ContentValues mDiffNoteValues; + /** + * 笔记内容列表,每个SqlData对象代表笔记的一个内容部分 + */ private ArrayList mDataList; +/** + * 构造函数,创建一个新的SqlNote对象 + * + * @param context 上下文对象 + */ public SqlNote(Context context) { mContext = context; mContentResolver = context.getContentResolver(); @@ -143,6 +271,12 @@ public class SqlNote { mDataList = new ArrayList(); } +/** + * 构造函数,从Cursor对象创建SqlNote对象 + * + * @param context 上下文对象 + * @param c Cursor对象,包含笔记数据 + */ public SqlNote(Context context, Cursor c) { mContext = context; mContentResolver = context.getContentResolver(); @@ -154,6 +288,12 @@ public class SqlNote { mDiffNoteValues = new ContentValues(); } +/** + * 构造函数,根据ID从数据库加载SqlNote对象 + * + * @param context 上下文对象 + * @param id 笔记ID + */ public SqlNote(Context context, long id) { mContext = context; mContentResolver = context.getContentResolver(); @@ -166,6 +306,11 @@ public class SqlNote { } +/** + * 根据ID从数据库加载笔记数据 + * + * @param id 笔记ID + */ private void loadFromCursor(long id) { Cursor c = null; try { @@ -185,6 +330,11 @@ public class SqlNote { } } +/** + * 从Cursor对象加载笔记数据 + * + * @param c Cursor对象,包含笔记数据 + */ private void loadFromCursor(Cursor c) { mId = c.getLong(ID_COLUMN); mAlertDate = c.getLong(ALERTED_DATE_COLUMN); @@ -200,6 +350,9 @@ public class SqlNote { mVersion = c.getLong(VERSION_COLUMN); } +/** + * 加载笔记的内容数据 + */ private void loadDataContent() { Cursor c = null; mDataList.clear(); @@ -226,6 +379,12 @@ public class SqlNote { } } +/** + * 从JSON对象设置笔记内容 + * + * @param js JSON对象,包含GTask格式的笔记数据 + * @return 设置成功返回true,否则返回false + */ public boolean setContent(JSONObject js) { try { JSONObject note = js.getJSONObject(GTaskStringUtils.META_HEAD_NOTE); @@ -359,6 +518,11 @@ public class SqlNote { return true; } +/** + * 获取笔记内容的JSON表示 + * + * @return 包含笔记数据的JSON对象,如果获取失败返回null + */ public JSONObject getContent() { try { JSONObject js = new JSONObject(); @@ -407,39 +571,84 @@ public class SqlNote { return null; } +/** + * 设置笔记的父文件夹ID + * + * @param id 父文件夹ID + */ public void setParentId(long id) { mParentId = id; mDiffNoteValues.put(NoteColumns.PARENT_ID, id); } +/** + * 设置笔记的Google Task ID + * + * @param gid Google Task ID + */ public void setGtaskId(String gid) { mDiffNoteValues.put(NoteColumns.GTASK_ID, gid); } +/** + * 设置笔记的同步ID + * + * @param syncId 同步ID + */ public void setSyncId(long syncId) { mDiffNoteValues.put(NoteColumns.SYNC_ID, syncId); } +/** + * 重置本地修改标记 + */ public void resetLocalModified() { mDiffNoteValues.put(NoteColumns.LOCAL_MODIFIED, 0); } +/** + * 获取笔记ID + * + * @return 笔记ID + */ public long getId() { return mId; } +/** + * 获取父文件夹ID + * + * @return 父文件夹ID + */ public long getParentId() { return mParentId; } +/** + * 获取笔记摘要 + * + * @return 笔记摘要 + */ public String getSnippet() { return mSnippet; } +/** + * 判断是否为笔记类型(非文件夹类型) + * + * @return 是笔记类型返回true,否则返回false + */ public boolean isNoteType() { return mType == Notes.TYPE_NOTE; } +/** + * 将笔记数据提交到本地数据库 + * + * @param validateVersion 是否验证版本,true表示需要进行版本检查以避免冲突 + * @throws ActionFailureException 如果创建笔记失败 + * @throws IllegalStateException 如果更新笔记时ID无效 + */ public void commit(boolean validateVersion) { if (mIsCreate) { if (mId == INVALID_ID && mDiffNoteValues.containsKey(NoteColumns.ID)) { diff --git a/src/main/java/net/micode/notes/gtask/data/Task.java b/src/main/java/net/micode/notes/gtask/data/Task.java index 6a19454..a9d2764 100644 --- a/src/main/java/net/micode/notes/gtask/data/Task.java +++ b/src/main/java/net/micode/notes/gtask/data/Task.java @@ -32,19 +32,47 @@ import org.json.JSONException; import org.json.JSONObject; +/** + * Task类是Node类的子类,用于表示Google Tasks中的任务项。 + *

+ * 在小米笔记与Google Tasks的同步过程中,该类负责: + * 1. 封装Google Tasks任务的数据模型 + * 2. 实现任务的创建、更新等同步操作 + * 3. 处理本地数据与Google Tasks数据之间的转换 + * 4. 管理任务的层次结构和关系 + *

+ */ public class Task extends Node { private static final String TAG = Task.class.getSimpleName(); + /** + * 任务是否已完成 + */ private boolean mCompleted; + /** + * 任务的备注信息 + */ private String mNotes; + /** + * 任务的元信息,包含与本地笔记的关联数据 + */ private JSONObject mMetaInfo; + /** + * 任务的前一个兄弟节点(在同一父任务列表中的前一个任务) + */ private Task mPriorSibling; + /** + * 任务的父任务列表 + */ private TaskList mParent; +/** + * 构造函数,创建一个新的Task对象 + */ public Task() { super(); mCompleted = false; @@ -54,6 +82,16 @@ public class Task extends Node { mMetaInfo = null; } +/** + * 获取创建任务的JSON动作 + *

+ * 该方法生成用于向Google Tasks服务器发送创建任务请求的JSON数据 + *

+ * + * @param actionId 动作ID,用于标识当前操作 + * @return 包含创建任务信息的JSON对象 + * @throws ActionFailureException 如果生成JSON对象失败 + */ public JSONObject getCreateAction(int actionId) { JSONObject js = new JSONObject(); @@ -103,6 +141,16 @@ public class Task extends Node { return js; } +/** + * 获取更新任务的JSON动作 + *

+ * 该方法生成用于向Google Tasks服务器发送更新任务请求的JSON数据 + *

+ * + * @param actionId 动作ID,用于标识当前操作 + * @return 包含更新任务信息的JSON对象 + * @throws ActionFailureException 如果生成JSON对象失败 + */ public JSONObject getUpdateAction(int actionId) { JSONObject js = new JSONObject(); @@ -135,6 +183,12 @@ public class Task extends Node { return js; } +/** + * 从Google Tasks服务器返回的JSON数据设置任务内容 + * + * @param js 包含Google Tasks任务数据的JSON对象 + * @throws ActionFailureException 如果解析JSON数据失败 + */ public void setContentByRemoteJSON(JSONObject js) { if (js != null) { try { @@ -175,6 +229,11 @@ public class Task extends Node { } } +/** + * 从本地JSON数据设置任务内容 + * + * @param js 包含本地笔记数据的JSON对象 + */ public void setContentByLocalJSON(JSONObject js) { if (js == null || !js.has(GTaskStringUtils.META_HEAD_NOTE) || !js.has(GTaskStringUtils.META_HEAD_DATA)) { @@ -204,6 +263,14 @@ public class Task extends Node { } } +/** + * 获取任务内容的本地JSON表示 + *

+ * 该方法将任务数据转换为本地笔记系统使用的JSON格式 + *

+ * + * @return 包含任务数据的本地JSON对象,如果转换失败返回null + */ public JSONObject getLocalJSONFromContent() { String name = getName(); try { @@ -247,6 +314,14 @@ public class Task extends Node { } } +/** + * 设置任务的元信息 + *

+ * 元信息包含任务与本地笔记的关联数据 + *

+ * + * @param metaData 包含元信息的MetaData对象 + */ public void setMetaInfo(MetaData metaData) { if (metaData != null && metaData.getNotes() != null) { try { @@ -258,6 +333,15 @@ public class Task extends Node { } } +/** + * 获取任务的同步动作类型 + *

+ * 该方法根据本地数据和远程数据的状态,确定需要执行的同步操作类型 + *

+ * + * @param c 包含本地笔记数据的Cursor对象 + * @return 同步动作类型,取值为SYNC_ACTION_*常量之一 + */ public int getSyncAction(Cursor c) { try { JSONObject noteInfo = null; @@ -311,39 +395,87 @@ public class Task extends Node { return SYNC_ACTION_ERROR; } +/** + * 判断任务是否值得保存 + *

+ * 如果任务有元信息、名称或备注,则认为值得保存 + *

+ * + * @return 任务值得保存返回true,否则返回false + */ public boolean isWorthSaving() { return mMetaInfo != null || (getName() != null && getName().trim().length() > 0) || (getNotes() != null && getNotes().trim().length() > 0); } +/** + * 设置任务的完成状态 + * + * @param completed 任务是否已完成 + */ public void setCompleted(boolean completed) { this.mCompleted = completed; } +/** + * 设置任务的备注信息 + * + * @param notes 任务的备注信息 + */ public void setNotes(String notes) { this.mNotes = notes; } +/** + * 设置任务的前一个兄弟节点 + * + * @param priorSibling 前一个兄弟任务 + */ public void setPriorSibling(Task priorSibling) { this.mPriorSibling = priorSibling; } +/** + * 设置任务的父任务列表 + * + * @param parent 父任务列表 + */ public void setParent(TaskList parent) { this.mParent = parent; } +/** + * 获取任务的完成状态 + * + * @return 任务是否已完成 + */ public boolean getCompleted() { return this.mCompleted; } +/** + * 获取任务的备注信息 + * + * @return 任务的备注信息 + */ public String getNotes() { return this.mNotes; } +/** + * 获取任务的前一个兄弟节点 + * + * @return 前一个兄弟任务 + */ public Task getPriorSibling() { return this.mPriorSibling; } +/** + * 获取任务的父任务列表 + * + * @return 父任务列表 + */ public TaskList getParent() { return this.mParent; } diff --git a/src/main/java/net/micode/notes/gtask/data/TaskList.java b/src/main/java/net/micode/notes/gtask/data/TaskList.java index 4ea21c5..1cfab78 100644 --- a/src/main/java/net/micode/notes/gtask/data/TaskList.java +++ b/src/main/java/net/micode/notes/gtask/data/TaskList.java @@ -30,19 +30,48 @@ import org.json.JSONObject; import java.util.ArrayList; +/** + * TaskList类是Node类的子类,用于表示Google Tasks中的任务列表。 + *

+ * 在小米笔记与Google Tasks的同步过程中,该类负责: + * 1. 封装Google Tasks任务列表的数据模型 + * 2. 管理任务列表中的子任务(Task对象) + * 3. 实现任务列表的创建、更新等同步操作 + * 4. 处理本地文件夹与Google Tasks列表之间的转换 + *

+ */ public class TaskList extends Node { private static final String TAG = TaskList.class.getSimpleName(); + /** + * 任务列表的索引位置 + */ private int mIndex; + /** + * 任务列表中的子任务列表 + */ private ArrayList mChildren; +/** + * 构造函数,创建一个新的TaskList对象 + */ public TaskList() { super(); mChildren = new ArrayList(); mIndex = 1; } +/** + * 获取创建任务列表的JSON动作 + *

+ * 该方法生成用于向Google Tasks服务器发送创建任务列表请求的JSON数据 + *

+ * + * @param actionId 动作ID,用于标识当前操作 + * @return 包含创建任务列表信息的JSON对象 + * @throws ActionFailureException 如果生成JSON对象失败 + */ public JSONObject getCreateAction(int actionId) { JSONObject js = new JSONObject(); @@ -74,6 +103,16 @@ public class TaskList extends Node { return js; } +/** + * 获取更新任务列表的JSON动作 + *

+ * 该方法生成用于向Google Tasks服务器发送更新任务列表请求的JSON数据 + *

+ * + * @param actionId 动作ID,用于标识当前操作 + * @return 包含更新任务列表信息的JSON对象 + * @throws ActionFailureException 如果生成JSON对象失败 + */ public JSONObject getUpdateAction(int actionId) { JSONObject js = new JSONObject(); @@ -103,6 +142,12 @@ public class TaskList extends Node { return js; } +/** + * 从Google Tasks服务器返回的JSON数据设置任务列表内容 + * + * @param js 包含Google Tasks任务列表数据的JSON对象 + * @throws ActionFailureException 如果解析JSON数据失败 + */ public void setContentByRemoteJSON(JSONObject js) { if (js != null) { try { @@ -129,6 +174,14 @@ public class TaskList extends Node { } } +/** + * 从本地JSON数据设置任务列表内容 + *

+ * 根据本地文件夹类型设置任务列表名称,支持普通文件夹、系统文件夹等 + *

+ * + * @param js 包含本地文件夹数据的JSON对象 + */ public void setContentByLocalJSON(JSONObject js) { if (js == null || !js.has(GTaskStringUtils.META_HEAD_NOTE)) { Log.w(TAG, "setContentByLocalJSON: nothing is avaiable"); @@ -157,6 +210,14 @@ public class TaskList extends Node { } } +/** + * 获取任务列表内容的本地JSON表示 + *

+ * 该方法将任务列表数据转换为本地文件夹系统使用的JSON格式 + *

+ * + * @return 包含任务列表数据的本地JSON对象,如果转换失败返回null + */ public JSONObject getLocalJSONFromContent() { try { JSONObject js = new JSONObject(); @@ -183,6 +244,15 @@ public class TaskList extends Node { } } +/** + * 获取任务列表的同步动作类型 + *

+ * 该方法根据本地数据和远程数据的状态,确定需要执行的同步操作类型 + *

+ * + * @param c 包含本地文件夹数据的Cursor对象 + * @return 同步动作类型,取值为SYNC_ACTION_*常量之一 + */ public int getSyncAction(Cursor c) { try { if (c.getInt(SqlNote.LOCAL_MODIFIED_COLUMN) == 0) { @@ -216,10 +286,21 @@ public class TaskList extends Node { return SYNC_ACTION_ERROR; } +/** + * 获取任务列表中的子任务数量 + * + * @return 子任务数量 + */ public int getChildTaskCount() { return mChildren.size(); } +/** + * 向任务列表中添加子任务 + * + * @param task 要添加的子任务 + * @return 添加成功返回true,否则返回false + */ public boolean addChildTask(Task task) { boolean ret = false; if (task != null && !mChildren.contains(task)) { @@ -234,6 +315,13 @@ public class TaskList extends Node { return ret; } +/** + * 在指定位置向任务列表中添加子任务 + * + * @param task 要添加的子任务 + * @param index 要添加的位置索引 + * @return 添加成功返回true,否则返回false + */ public boolean addChildTask(Task task, int index) { if (index < 0 || index > mChildren.size()) { Log.e(TAG, "add child task: invalid index"); @@ -260,6 +348,12 @@ public class TaskList extends Node { return true; } +/** + * 从任务列表中移除子任务 + * + * @param task 要移除的子任务 + * @return 移除成功返回true,否则返回false + */ public boolean removeChildTask(Task task) { boolean ret = false; int index = mChildren.indexOf(task); @@ -281,6 +375,13 @@ public class TaskList extends Node { return ret; } +/** + * 移动任务列表中的子任务到指定位置 + * + * @param task 要移动的子任务 + * @param index 目标位置索引 + * @return 移动成功返回true,否则返回false + */ public boolean moveChildTask(Task task, int index) { if (index < 0 || index >= mChildren.size()) { @@ -299,6 +400,12 @@ public class TaskList extends Node { return (removeChildTask(task) && addChildTask(task, index)); } +/** + * 根据Google Task ID查找子任务 + * + * @param gid Google Task ID + * @return 找到的子任务,如果找不到返回null + */ public Task findChildTaskByGid(String gid) { for (int i = 0; i < mChildren.size(); i++) { Task t = mChildren.get(i); @@ -309,10 +416,22 @@ public class TaskList extends Node { return null; } +/** + * 获取子任务在任务列表中的索引位置 + * + * @param task 要查找的子任务 + * @return 子任务的索引位置,如果不存在返回-1 + */ public int getChildTaskIndex(Task task) { return mChildren.indexOf(task); } +/** + * 根据索引位置获取子任务 + * + * @param index 要获取的子任务的索引位置 + * @return 索引位置对应的子任务,如果索引无效返回null + */ public Task getChildTaskByIndex(int index) { if (index < 0 || index >= mChildren.size()) { Log.e(TAG, "getTaskByIndex: invalid index"); @@ -321,6 +440,15 @@ public class TaskList extends Node { return mChildren.get(index); } +/** + * 根据Google Task ID获取子任务 + *

+ * 注意:该方法与findChildTaskByGid功能相同,名称可能存在拼写错误("ChilTask"应为"ChildTask") + *

+ * + * @param gid Google Task ID + * @return 找到的子任务,如果找不到返回null + */ public Task getChilTaskByGid(String gid) { for (Task task : mChildren) { if (task.getGid().equals(gid)) @@ -329,14 +457,29 @@ public class TaskList extends Node { return null; } +/** + * 获取任务列表中的所有子任务 + * + * @return 包含所有子任务的ArrayList + */ public ArrayList getChildTaskList() { return this.mChildren; } +/** + * 设置任务列表的索引位置 + * + * @param index 新的索引位置 + */ public void setIndex(int index) { this.mIndex = index; } +/** + * 获取任务列表的索引位置 + * + * @return 任务列表的索引位置 + */ public int getIndex() { return this.mIndex; } diff --git a/src/main/java/net/micode/notes/gtask/exception/ActionFailureException.java b/src/main/java/net/micode/notes/gtask/exception/ActionFailureException.java index 15504be..7d7892c 100644 --- a/src/main/java/net/micode/notes/gtask/exception/ActionFailureException.java +++ b/src/main/java/net/micode/notes/gtask/exception/ActionFailureException.java @@ -16,6 +16,12 @@ package net.micode.notes.gtask.exception; +/** + * ActionFailureException是GTask同步过程中用于表示操作失败的自定义异常类 + *

+ * 当GTask同步操作(如创建、更新、删除任务或任务列表)执行失败时抛出此异常 + *

+ */ public class ActionFailureException extends RuntimeException { private static final long serialVersionUID = 4425249765923293627L; diff --git a/src/main/java/net/micode/notes/gtask/exception/NetworkFailureException.java b/src/main/java/net/micode/notes/gtask/exception/NetworkFailureException.java index b08cfb1..b9f564d 100644 --- a/src/main/java/net/micode/notes/gtask/exception/NetworkFailureException.java +++ b/src/main/java/net/micode/notes/gtask/exception/NetworkFailureException.java @@ -16,6 +16,12 @@ package net.micode.notes.gtask.exception; +/** + * NetworkFailureException是GTask同步过程中用于表示网络操作失败的自定义检查型异常 + *

+ * 当GTask同步操作(如网络请求、数据传输)因网络问题(如网络连接中断、超时等)失败时抛出此异常 + *

+ */ public class NetworkFailureException extends Exception { private static final long serialVersionUID = 2107610287180234136L; diff --git a/src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java b/src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java index ee352dc..9e52a69 100644 --- a/src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java +++ b/src/main/java/net/micode/notes/gtask/remote/GTaskASyncTask.java @@ -29,22 +29,59 @@ import net.micode.notes.ui.NotesListActivity; import net.micode.notes.ui.NotesPreferenceActivity; +/** + * GTaskASyncTask是用于在后台执行GTask同步操作的异步任务类 + *

+ * 该类负责: + * 1. 在后台线程执行GTask同步操作 + * 2. 显示同步进度通知 + * 3. 处理同步结果并显示相应通知 + * 4. 支持同步取消功能 + *

+ */ public class GTaskASyncTask extends AsyncTask { + /** + * GTask同步通知的唯一ID + */ private static int GTASK_SYNC_NOTIFICATION_ID = 5234235; + /** + * OnCompleteListener是GTask同步完成时的回调接口 + */ public interface OnCompleteListener { + /** + * 当GTask同步完成时调用此方法 + */ void onComplete(); } + /** + * Android应用上下文对象 + */ private Context mContext; + /** + * 通知管理器,用于显示同步进度和结果通知 + */ private NotificationManager mNotifiManager; + /** + * GTask管理器实例,负责执行实际的同步操作 + */ private GTaskManager mTaskManager; + /** + * 同步完成监听器,用于在同步结束后回调通知 + */ private OnCompleteListener mOnCompleteListener; + /** + * GTaskASyncTask构造函数 + * + * @param context 应用上下文 + * @param listener 同步完成监听器 + */ public GTaskASyncTask(Context context, OnCompleteListener listener) { mContext = context; mOnCompleteListener = listener; @@ -53,16 +90,30 @@ public class GTaskASyncTask extends AsyncTask { mTaskManager = GTaskManager.getInstance(); } + /** + * 取消当前正在进行的GTask同步操作 + */ public void cancelSync() { mTaskManager.cancelSync(); } + /** + * 发布同步进度更新 + * + * @param message 进度消息内容 + */ public void publishProgess(String message) { publishProgress(new String[] { message }); } +// + /* 显示GTask同步通知 + * + * @param tickerId 通知标题的字符串资源ID; + * @param content 通知内容 + */ // private void showNotification(int tickerId, String content) { // Notification notification = new Notification(R.drawable.notification, mContext // .getString(tickerId), System.currentTimeMillis()); @@ -101,6 +152,12 @@ private void showNotification(int tickerId, String content) { mNotifiManager.notify(GTASK_SYNC_NOTIFICATION_ID, notification); } + /** + * 在后台线程执行GTask同步操作 + * + * @param unused 未使用的参数 + * @return 同步结果状态码 + */ @Override protected Integer doInBackground(Void... unused) { publishProgess(mContext.getString(R.string.sync_progress_login, NotesPreferenceActivity @@ -108,6 +165,11 @@ private void showNotification(int tickerId, String content) { return mTaskManager.sync(mContext, this); } + /** + * 当后台任务发布进度更新时调用 + * + * @param progress 进度消息数组 + */ @Override protected void onProgressUpdate(String... progress) { showNotification(R.string.ticker_syncing, progress[0]); @@ -116,6 +178,11 @@ private void showNotification(int tickerId, String content) { } } + /** + * 当后台任务执行完成后调用 + * + * @param result 同步结果状态码 + */ @Override protected void onPostExecute(Integer result) { if (result == GTaskManager.STATE_SUCCESS) { diff --git a/src/main/java/net/micode/notes/gtask/remote/GTaskClient.java b/src/main/java/net/micode/notes/gtask/remote/GTaskClient.java index c67dfdf..776a6a5 100644 --- a/src/main/java/net/micode/notes/gtask/remote/GTaskClient.java +++ b/src/main/java/net/micode/notes/gtask/remote/GTaskClient.java @@ -61,35 +61,94 @@ import java.util.zip.Inflater; import java.util.zip.InflaterInputStream; +/** + * GTaskClient是GTask同步模块的核心客户端类,负责与Google Tasks服务器进行交互 + *

+ * 该类提供了以下主要功能: + * 1. Google账号登录和认证 + * 2. 创建、更新、删除任务 + * 3. 创建、更新、删除任务列表 + * 4. 移动任务(在同一任务列表内或不同任务列表之间) + * 5. 获取任务列表和任务数据 + *

+ *

+ * 该类采用单例模式设计,确保应用中只有一个GTask客户端实例 + *

+ */ public class GTaskClient { + /** + * 日志标签 + */ private static final String TAG = GTaskClient.class.getSimpleName(); + /** + * Google Tasks基础URL + */ private static final String GTASK_URL = "https://mail.google.com/tasks/"; + /** + * Google Tasks GET请求URL + */ private static final String GTASK_GET_URL = "https://mail.google.com/tasks/ig"; + /** + * Google Tasks POST请求URL + */ private static final String GTASK_POST_URL = "https://mail.google.com/tasks/r/ig"; + /** + * GTaskClient单例实例 + */ private static GTaskClient mInstance = null; + /** + * HTTP客户端实例,用于与Google Tasks服务器进行通信 + */ private DefaultHttpClient mHttpClient; + /** + * 当前使用的GET请求URL + */ private String mGetUrl; + /** + * 当前使用的POST请求URL + */ private String mPostUrl; + /** + * Google Tasks客户端版本号 + */ private long mClientVersion; + /** + * 登录状态标志 + */ private boolean mLoggedin; + /** + * 上次登录时间 + */ private long mLastLoginTime; + /** + * 操作ID,用于标识不同的同步操作 + */ private int mActionId; + /** + * 当前同步的Google账号 + */ private Account mAccount; + /** + * 更新操作数组,用于批量提交更新操作 + */ private JSONArray mUpdateArray; + /** + * GTaskClient构造函数(私有,用于单例模式) + */ private GTaskClient() { mHttpClient = null; mGetUrl = GTASK_GET_URL; @@ -102,6 +161,11 @@ public class GTaskClient { mUpdateArray = null; } + /** + * 获取GTaskClient单例实例 + * + * @return GTaskClient单例实例 + */ public static synchronized GTaskClient getInstance() { if (mInstance == null) { mInstance = new GTaskClient(); @@ -109,6 +173,16 @@ public class GTaskClient { return mInstance; } + /** + * 登录Google Tasks账号 + *

+ * 如果距离上次登录时间不超过5分钟,则不需要重新登录 + * 如果账号发生变化,需要重新登录 + *

+ * + * @param activity 调用登录的Activity + * @return 登录成功返回true,失败返回false + */ public boolean login(Activity activity) { // we suppose that the cookie would expire after 5 minutes // then we need to re-login @@ -164,6 +238,13 @@ public class GTaskClient { return true; } + /** + * 登录Google账号,获取认证令牌 + * + * @param activity 调用登录的Activity + * @param invalidateToken 是否使当前令牌失效 + * @return 认证令牌字符串,失败返回null + */ private String loginGoogleAccount(Activity activity, boolean invalidateToken) { String authToken; AccountManager accountManager = AccountManager.get(activity); @@ -207,6 +288,16 @@ public class GTaskClient { return authToken; } + /** + * 尝试登录Google Tasks + *

+ * 如果登录失败,会尝试使令牌失效并重新登录 + *

+ * + * @param activity 调用登录的Activity + * @param authToken 认证令牌 + * @return 登录成功返回true,失败返回false + */ private boolean tryToLoginGtask(Activity activity, String authToken) { if (!loginGtask(authToken)) { // maybe the auth token is out of date, now let's invalidate the @@ -225,6 +316,12 @@ public class GTaskClient { return true; } + /** + * 使用认证令牌登录Google Tasks + * + * @param authToken 认证令牌 + * @return 登录成功返回true,失败返回false + */ private boolean loginGtask(String authToken) { int timeoutConnection = 10000; int timeoutSocket = 15000; @@ -280,10 +377,20 @@ public class GTaskClient { return true; } + /** + * 获取下一个操作ID + * + * @return 操作ID + */ private int getActionId() { return mActionId++; } + /** + * 创建HTTP POST请求对象 + * + * @return HttpPost请求对象 + */ private HttpPost createHttpPost() { HttpPost httpPost = new HttpPost(mPostUrl); httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); @@ -291,6 +398,16 @@ public class GTaskClient { return httpPost; } + /** + * 获取HTTP响应内容 + *

+ * 支持gzip和deflate压缩格式 + *

+ * + * @param entity HTTP响应实体 + * @return 响应内容字符串 + * @throws IOException 如果读取响应内容失败 + */ private String getResponseContent(HttpEntity entity) throws IOException { String contentEncoding = null; if (entity.getContentEncoding() != null) { @@ -323,6 +440,14 @@ public class GTaskClient { } } + /** + * 发送POST请求到Google Tasks服务器 + * + * @param js 请求内容的JSON对象 + * @return 响应内容的JSON对象 + * @throws NetworkFailureException 如果网络请求失败 + * @throws ActionFailureException 如果请求格式或响应解析失败 + */ private JSONObject postRequest(JSONObject js) throws NetworkFailureException { if (!mLoggedin) { Log.e(TAG, "please login first"); @@ -360,6 +485,13 @@ public class GTaskClient { } } + /** + * 创建新任务 + * + * @param task 要创建的任务对象 + * @throws NetworkFailureException 如果网络请求失败 + * @throws ActionFailureException 如果任务创建失败 + */ public void createTask(Task task) throws NetworkFailureException { commitUpdate(); try { @@ -386,6 +518,13 @@ public class GTaskClient { } } + /** + * 创建新任务列表 + * + * @param tasklist 要创建的任务列表对象 + * @throws NetworkFailureException 如果网络请求失败 + * @throws ActionFailureException 如果任务列表创建失败 + */ public void createTaskList(TaskList tasklist) throws NetworkFailureException { commitUpdate(); try { @@ -412,6 +551,12 @@ public class GTaskClient { } } + /** + * 提交批量更新操作 + * + * @throws NetworkFailureException 如果网络请求失败 + * @throws ActionFailureException 如果更新提交失败 + */ public void commitUpdate() throws NetworkFailureException { if (mUpdateArray != null) { try { @@ -433,6 +578,16 @@ public class GTaskClient { } } + /** + * 添加节点更新操作到批量更新数组 + *

+ * 如果更新数组中的操作数量超过10个,则立即提交更新 + *

+ * + * @param node 要更新的节点对象 + * @throws NetworkFailureException 如果网络请求失败 + * @throws ActionFailureException 如果更新操作添加失败 + */ public void addUpdateNode(Node node) throws NetworkFailureException { if (node != null) { // too many update items may result in an error @@ -447,6 +602,18 @@ public class GTaskClient { } } + /** + * 移动任务 + *

+ * 支持在同一任务列表内移动或在不同任务列表之间移动 + *

+ * + * @param task 要移动的任务 + * @param preParent 任务原来的父任务列表 + * @param curParent 任务现在的父任务列表 + * @throws NetworkFailureException 如果网络请求失败 + * @throws ActionFailureException 如果任务移动失败 + */ public void moveTask(Task task, TaskList preParent, TaskList curParent) throws NetworkFailureException { commitUpdate(); @@ -486,6 +653,13 @@ public class GTaskClient { } } + /** + * 删除节点(任务或任务列表) + * + * @param node 要删除的节点对象 + * @throws NetworkFailureException 如果网络请求失败 + * @throws ActionFailureException 如果节点删除失败 + */ public void deleteNode(Node node) throws NetworkFailureException { commitUpdate(); try { @@ -509,6 +683,13 @@ public class GTaskClient { } } + /** + * 获取所有任务列表 + * + * @return 包含所有任务列表的JSON数组 + * @throws NetworkFailureException 如果网络请求失败 + * @throws ActionFailureException 如果获取任务列表失败 + */ public JSONArray getTaskLists() throws NetworkFailureException { if (!mLoggedin) { Log.e(TAG, "please login first"); @@ -547,6 +728,14 @@ public class GTaskClient { } } + /** + * 获取指定任务列表中的所有任务 + * + * @param listGid 任务列表的Google ID + * @return 包含任务列表中所有任务的JSON数组 + * @throws NetworkFailureException 如果网络请求失败 + * @throws ActionFailureException 如果获取任务失败 + */ public JSONArray getTaskList(String listGid) throws NetworkFailureException { commitUpdate(); try { @@ -575,10 +764,18 @@ public class GTaskClient { } } + /** + * 获取当前同步的Google账号 + * + * @return 当前同步的Google账号 + */ public Account getSyncAccount() { return mAccount; } + /** + * 重置更新数组 + */ public void resetUpdateArray() { mUpdateArray = null; } diff --git a/src/main/java/net/micode/notes/gtask/remote/GTaskManager.java b/src/main/java/net/micode/notes/gtask/remote/GTaskManager.java index d2b4082..09c7b79 100644 --- a/src/main/java/net/micode/notes/gtask/remote/GTaskManager.java +++ b/src/main/java/net/micode/notes/gtask/remote/GTaskManager.java @@ -48,45 +48,112 @@ import java.util.Iterator; import java.util.Map; +/** + * GTaskManager是GTask同步模块的核心管理类,负责协调本地笔记与Google Tasks服务器之间的同步 + *

+ * 该类采用单例模式,提供以下主要功能: + * 1. 管理同步状态和进度 + * 2. 初始化远程任务列表 + * 3. 同步本地和远程内容(文件夹和笔记) + * 4. 处理同步冲突和错误 + *

+ */ public class GTaskManager { private static final String TAG = GTaskManager.class.getSimpleName(); + /** + * 同步成功状态 + */ public static final int STATE_SUCCESS = 0; + /** + * 网络错误状态 + */ public static final int STATE_NETWORK_ERROR = 1; + /** + * 内部错误状态 + */ public static final int STATE_INTERNAL_ERROR = 2; + /** + * 同步进行中状态 + */ public static final int STATE_SYNC_IN_PROGRESS = 3; + /** + * 同步已取消状态 + */ public static final int STATE_SYNC_CANCELLED = 4; + /** + * GTaskManager的单例实例 + */ private static GTaskManager mInstance = null; + /** + * 用于Google登录的Activity实例 + */ private Activity mActivity; + /** + * 应用上下文 + */ private Context mContext; + /** + * 内容解析器,用于访问本地数据库 + */ private ContentResolver mContentResolver; + /** + * 同步状态标志,表示是否正在进行同步 + */ private boolean mSyncing; + /** + * 取消标志,表示同步是否已被取消 + */ private boolean mCancelled; + /** + * 远程任务列表的HashMap,键为任务列表的GID + */ private HashMap mGTaskListHashMap; + /** + * 所有远程任务的HashMap,键为任务的GID + */ private HashMap mGTaskHashMap; + /** + * 元数据的HashMap,键为相关节点的GID + */ private HashMap mMetaHashMap; + /** + * 存储元数据的任务列表 + */ private TaskList mMetaList; + /** + * 本地已删除笔记的ID集合 + */ private HashSet mLocalDeleteIdMap; + /** + * 远程GID到本地NID的映射 + */ private HashMap mGidToNid; + /** + * 本地NID到远程GID的映射 + */ private HashMap mNidToGid; + /** + * 私有构造方法,初始化GTaskManager的内部状态和集合 + */ private GTaskManager() { mSyncing = false; mCancelled = false; @@ -99,6 +166,10 @@ public class GTaskManager { mNidToGid = new HashMap(); } + /** + * 获取GTaskManager的单例实例 + * @return GTaskManager的单例实例 + */ public static synchronized GTaskManager getInstance() { if (mInstance == null) { mInstance = new GTaskManager(); @@ -106,11 +177,25 @@ public class GTaskManager { return mInstance; } + /** + * 设置用于Google登录的Activity上下文 + * @param activity 用于获取认证令牌的Activity实例 + */ public synchronized void setActivityContext(Activity activity) { - // used for getting authtoken mActivity = activity; } + /** + * 执行GTask同步操作,协调本地笔记与Google Tasks服务器之间的数据同步 + * @param context 应用上下文 + * @param asyncTask 用于发布同步进度的异步任务实例 + * @return 同步结果状态: + * - {@link #STATE_SUCCESS}:同步成功 + * - {@link #STATE_NETWORK_ERROR}:网络错误 + * - {@link #STATE_INTERNAL_ERROR}:内部错误 + * - {@link #STATE_SYNC_IN_PROGRESS}:同步已在进行中 + * - {@link #STATE_SYNC_CANCELLED}:同步被取消 + */ public int sync(Context context, GTaskASyncTask asyncTask) { if (mSyncing) { Log.d(TAG, "Sync is in progress"); @@ -168,6 +253,10 @@ public class GTaskManager { return mCancelled ? STATE_SYNC_CANCELLED : STATE_SUCCESS; } + /** + * 初始化远程任务列表,从Google Tasks服务器获取所有任务列表和任务 + * @throws NetworkFailureException 网络操作失败时抛出 + */ private void initGTaskList() throws NetworkFailureException { if (mCancelled) return; @@ -247,6 +336,10 @@ public class GTaskManager { } } + /** + * 同步本地和远程内容,处理本地删除、文件夹和笔记的同步 + * @throws NetworkFailureException 网络操作失败时抛出 + */ private void syncContent() throws NetworkFailureException { int syncType; Cursor c = null; @@ -351,6 +444,10 @@ public class GTaskManager { } + /** + * 同步文件夹,包括根文件夹、通话记录文件夹和普通文件夹 + * @throws NetworkFailureException 网络操作失败时抛出 + */ private void syncFolder() throws NetworkFailureException { Cursor c = null; String gid; @@ -476,6 +573,13 @@ public class GTaskManager { GTaskClient.getInstance().commitUpdate(); } + /** + * 根据同步类型执行不同的同步操作 + * @param syncType 同步类型,来自{@link Node}类的同步操作常量 + * @param node 要同步的节点(可以是TaskList或Task) + * @param c 本地数据库游标,用于获取本地数据 + * @throws NetworkFailureException 网络操作失败时抛出 + */ private void doContentSync(int syncType, Node node, Cursor c) throws NetworkFailureException { if (mCancelled) { return; @@ -522,6 +626,11 @@ public class GTaskManager { } } + /** + * 将远程节点添加到本地数据库 + * @param node 要添加的远程节点 + * @throws NetworkFailureException 网络操作失败时抛出 + */ private void addLocalNode(Node node) throws NetworkFailureException { if (mCancelled) { return; @@ -596,6 +705,12 @@ public class GTaskManager { updateRemoteMeta(node.getGid(), sqlNote); } + /** + * 更新本地节点,将远程节点的内容更新到本地数据库 + * @param node 要同步的远程节点 + * @param c 本地数据库游标,用于获取本地数据 + * @throws NetworkFailureException 网络操作失败时抛出 + */ private void updateLocalNode(Node node, Cursor c) throws NetworkFailureException { if (mCancelled) { return; @@ -619,6 +734,12 @@ public class GTaskManager { updateRemoteMeta(node.getGid(), sqlNote); } + /** + * 将本地节点添加到远程服务器 + * @param node 要同步的远程节点(可以为null,表示创建新节点) + * @param c 本地数据库游标,用于获取本地数据 + * @throws NetworkFailureException 网络操作失败时抛出 + */ private void addRemoteNode(Node node, Cursor c) throws NetworkFailureException { if (mCancelled) { return; @@ -692,6 +813,12 @@ public class GTaskManager { mNidToGid.put(sqlNote.getId(), n.getGid()); } + /** + * 更新远程节点,将本地节点的内容更新到远程服务器 + * @param node 要更新的远程节点 + * @param c 本地数据库游标,用于获取本地数据 + * @throws NetworkFailureException 网络操作失败时抛出 + */ private void updateRemoteNode(Node node, Cursor c) throws NetworkFailureException { if (mCancelled) { return; @@ -730,6 +857,12 @@ public class GTaskManager { sqlNote.commit(true); } + /** + * 更新远程元数据,将本地笔记的元数据信息同步到远程服务器 + * @param gid 远程节点的GID + * @param sqlNote 本地笔记对象 + * @throws NetworkFailureException 网络操作失败时抛出 + */ private void updateRemoteMeta(String gid, SqlNote sqlNote) throws NetworkFailureException { if (sqlNote != null && sqlNote.isNoteType()) { MetaData metaData = mMetaHashMap.get(gid); @@ -746,6 +879,10 @@ public class GTaskManager { } } + /** + * 刷新本地同步ID,根据远程数据更新本地节点的同步时间戳 + * @throws NetworkFailureException 网络操作失败时抛出 + */ private void refreshLocalSyncId() throws NetworkFailureException { if (mCancelled) { return; @@ -790,10 +927,17 @@ public class GTaskManager { } } + /** + * 获取当前同步账户的名称 + * @return 同步账户名称 + */ public String getSyncAccount() { return GTaskClient.getInstance().getSyncAccount().name; } + /** + * 取消当前正在进行的同步操作 + */ public void cancelSync() { mCancelled = true; } diff --git a/src/main/java/net/micode/notes/gtask/remote/GTaskSyncService.java b/src/main/java/net/micode/notes/gtask/remote/GTaskSyncService.java index cca36f7..512df71 100644 --- a/src/main/java/net/micode/notes/gtask/remote/GTaskSyncService.java +++ b/src/main/java/net/micode/notes/gtask/remote/GTaskSyncService.java @@ -23,25 +23,64 @@ import android.content.Intent; import android.os.Bundle; import android.os.IBinder; +/** + * GTaskSyncService是GTask同步的服务类,负责管理GTask同步的启动、取消和进度通知 + *

+ * 该服务提供了以下主要功能: + * 1. 启动GTask同步操作 + * 2. 取消正在进行的同步操作 + * 3. 通过广播通知同步状态和进度 + *

+ */ public class GTaskSyncService extends Service { + /** + * 同步操作类型的Intent参数名称 + */ public final static String ACTION_STRING_NAME = "sync_action_type"; + /** + * 启动同步操作的常量 + */ public final static int ACTION_START_SYNC = 0; + /** + * 取消同步操作的常量 + */ public final static int ACTION_CANCEL_SYNC = 1; + /** + * 无效操作的常量 + */ public final static int ACTION_INVALID = 2; + /** + * GTask同步服务广播的Intent名称 + */ public final static String GTASK_SERVICE_BROADCAST_NAME = "net.micode.notes.gtask.remote.gtask_sync_service"; + /** + * 广播中表示同步状态的参数名称 + */ public final static String GTASK_SERVICE_BROADCAST_IS_SYNCING = "isSyncing"; + /** + * 广播中表示同步进度的参数名称 + */ public final static String GTASK_SERVICE_BROADCAST_PROGRESS_MSG = "progressMsg"; + /** + * 当前正在执行的同步任务实例 + */ private static GTaskASyncTask mSyncTask = null; + /** + * 当前同步进度信息 + */ private static String mSyncProgress = ""; + /** + * 启动同步操作 + */ private void startSync() { if (mSyncTask == null) { mSyncTask = new GTaskASyncTask(this, new GTaskASyncTask.OnCompleteListener() { @@ -56,6 +95,9 @@ public class GTaskSyncService extends Service { } } + /** + * 取消正在进行的同步操作 + */ private void cancelSync() { if (mSyncTask != null) { mSyncTask.cancelSync(); @@ -93,10 +135,15 @@ public class GTaskSyncService extends Service { } } + @Override public IBinder onBind(Intent intent) { return null; } + /** + * 发送同步状态广播 + * @param msg 同步进度消息 + */ public void sendBroadcast(String msg) { mSyncProgress = msg; Intent intent = new Intent(GTASK_SERVICE_BROADCAST_NAME); @@ -105,6 +152,10 @@ public class GTaskSyncService extends Service { sendBroadcast(intent); } + /** + * 启动GTask同步服务 + * @param activity 调用该方法的Activity实例 + */ public static void startSync(Activity activity) { GTaskManager.getInstance().setActivityContext(activity); Intent intent = new Intent(activity, GTaskSyncService.class); @@ -112,16 +163,28 @@ public class GTaskSyncService extends Service { activity.startService(intent); } + /** + * 取消GTask同步服务 + * @param context 调用该方法的上下文 + */ public static void cancelSync(Context context) { Intent intent = new Intent(context, GTaskSyncService.class); intent.putExtra(GTaskSyncService.ACTION_STRING_NAME, GTaskSyncService.ACTION_CANCEL_SYNC); context.startService(intent); } + /** + * 检查是否正在进行同步 + * @return 如果正在同步返回true,否则返回false + */ public static boolean isSyncing() { return mSyncTask != null; } + /** + * 获取当前同步进度信息 + * @return 当前同步进度字符串 + */ public static String getProgressString() { return mSyncProgress; } diff --git a/src/main/java/net/micode/notes/tool/BackupUtils.java b/src/main/java/net/micode/notes/tool/BackupUtils.java index 39f6ec4..8f2e96e 100644 --- a/src/main/java/net/micode/notes/tool/BackupUtils.java +++ b/src/main/java/net/micode/notes/tool/BackupUtils.java @@ -36,11 +36,32 @@ import java.io.IOException; import java.io.PrintStream; +/** + * 备份工具类,负责将笔记导出为文本文件。 + *

+ * 该类采用单例模式实现,提供了将笔记内容导出为用户可读文本格式的功能, + * 支持将不同文件夹的笔记分类导出,并处理SD卡状态检查和文件生成等操作。 + *

+ */ public class BackupUtils { - private static final String TAG = "BackupUtils"; - // Singleton stuff + /** + * 日志标签 + */ + private static final String TAG = BackupUtils.class.getSimpleName(); + /** + * 单例实例 + */ private static BackupUtils sInstance; + /** + * 获取BackupUtils的单例实例 + *

+ * 如果实例不存在,则创建一个新实例并返回;否则返回已存在的实例。 + *

+ * + * @param context 应用上下文 + * @return BackupUtils的单例实例 + */ public static synchronized BackupUtils getInstance(Context context) { if (sInstance == null) { sInstance = new BackupUtils(context); @@ -49,42 +70,108 @@ public class BackupUtils { } /** - * Following states are signs to represents backup or restore - * status + * 备份或恢复操作的状态常量 + *

+ * 这些状态常量用于表示备份或恢复操作的执行结果和状态。 + *

+ */ + /** + * SD卡未挂载状态 */ - // Currently, the sdcard is not mounted 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; + /** + * 私有构造方法,初始化BackupUtils实例 + *

+ * 创建TextExport实例用于文本导出操作。 + *

+ * + * @param context 应用上下文 + */ private BackupUtils(Context context) { mTextExport = new TextExport(context); } + /** + * 检查外部存储是否可用 + *

+ * 判断SD卡是否已挂载并可读写。 + *

+ * + * @return 如果外部存储可用返回true,否则返回false + */ private static boolean externalStorageAvailable() { return Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()); } + /** + * 将笔记导出为文本文件 + *

+ * 调用内部TextExport实例的exportToText方法执行实际导出操作。 + *

+ * + * @return 导出操作的状态码,可能的值为STATE_SD_CARD_UNMOUONTED、STATE_SYSTEM_ERROR或STATE_SUCCESS + */ 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, @@ -116,15 +203,35 @@ public class BackupUtils { 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; private static final int FORMAT_NOTE_CONTENT = 2; + /** + * 应用上下文 + */ private Context mContext; + /** + * 导出的文件名 + */ private String mFileName; + /** + * 导出的文件目录 + */ private String mFileDirectory; + /** + * 构造方法,初始化TextExport实例 + *

+ * 从资源文件中加载文本格式化字符串,并初始化上下文和文件信息。 + *

+ * + * @param context 应用上下文 + */ public TextExport(Context context) { TEXT_FORMAT = context.getResources().getStringArray(R.array.format_for_exported_note); mContext = context; @@ -132,12 +239,27 @@ public class BackupUtils { mFileDirectory = ""; } + /** + * 获取指定ID的文本格式化字符串 + *

+ * 从TEXT_FORMAT数组中获取指定索引的格式化字符串。 + *

+ * + * @param 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 @@ -163,7 +285,13 @@ public class BackupUtils { } /** - * Export note identified by id to a print stream + * 将指定笔记导出到打印流 + *

+ * 查询并导出指定笔记的详细内容,区分文本笔记和通话笔记的不同格式。 + *

+ * + * @param noteId 笔记ID + * @param ps 打印流,用于写入导出的笔记内容 */ private void exportNoteToText(String noteId, PrintStream ps) { Cursor dataCursor = mContext.getContentResolver().query(Notes.CONTENT_DATA_URI, @@ -216,7 +344,12 @@ public class BackupUtils { } /** - * Note will be exported as text which is user readable + * 将笔记导出为用户可读的文本格式 + *

+ * 检查SD卡状态,创建输出文件,然后按文件夹分类导出所有笔记内容。 + *

+ * + * @return 导出操作的状态码,可能的值为STATE_SD_CARD_UNMOUONTED、STATE_SYSTEM_ERROR或STATE_SUCCESS */ public int exportToText() { if (!externalStorageAvailable()) { @@ -283,7 +416,12 @@ public class BackupUtils { } /** - * Get a print stream pointed to the file {@generateExportedTextFile} + * 获取用于导出文本的打印流 + *

+ * 创建并返回指向导出文本文件的打印流,用于写入导出的笔记内容。 + *

+ * + * @return 指向导出文本文件的打印流,如果创建失败返回null */ private PrintStream getExportToTextPrintStream() { File file = generateFileMountedOnSDcard(mContext, R.string.file_path, @@ -310,7 +448,15 @@ public class BackupUtils { } /** - * Generate the text file to store imported data + * 在SD卡上生成用于存储导入数据的文本文件 + *

+ * 根据指定的文件路径和文件名格式,在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(); diff --git a/src/main/java/net/micode/notes/tool/DataUtils.java b/src/main/java/net/micode/notes/tool/DataUtils.java index 2a14982..49d5a18 100644 --- a/src/main/java/net/micode/notes/tool/DataUtils.java +++ b/src/main/java/net/micode/notes/tool/DataUtils.java @@ -35,8 +35,29 @@ import java.util.ArrayList; import java.util.HashSet; +/** + * 数据工具类,提供笔记数据的批量操作和查询功能。 + *

+ * 该类包含了笔记数据的批量删除、移动、查询等静态方法, + * 主要用于处理笔记应用中的数据操作,与ContentResolver进行交互。 + *

+ */ public class DataUtils { - public static final String TAG = "DataUtils"; + /** + * 日志标签 + */ + public static final String TAG = DataUtils.class.getSimpleName(); + /** + * 批量删除笔记 + *

+ * 根据提供的笔记ID集合,批量删除对应的笔记。 + * 系统根文件夹(ID_ROOT_FOLDER)不会被删除。 + *

+ * + * @param resolver ContentResolver实例,用于与内容提供者交互 + * @param ids 要删除的笔记ID集合 + * @return 删除成功返回true,否则返回false + */ public static boolean batchDeleteNotes(ContentResolver resolver, HashSet ids) { if (ids == null) { Log.d(TAG, "the ids is null"); @@ -72,6 +93,17 @@ public class DataUtils { return false; } + /** + * 将笔记移动到指定文件夹 + *

+ * 更新笔记的父文件夹ID和原始父文件夹ID,并标记为本地修改。 + *

+ * + * @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 +112,17 @@ public class DataUtils { resolver.update(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, id), values, null, null); } + /** + * 批量将笔记移动到指定文件夹 + *

+ * 根据提供的笔记ID集合,批量更新笔记的父文件夹ID。 + *

+ * + * @param resolver ContentResolver实例,用于与内容提供者交互 + * @param ids 要移动的笔记ID集合 + * @param folderId 目标文件夹ID + * @return 移动成功返回true,否则返回false + */ public static boolean batchMoveToFolder(ContentResolver resolver, HashSet ids, long folderId) { if (ids == null) { @@ -112,7 +155,13 @@ 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 +185,17 @@ public class DataUtils { return count; } + /** + * 检查笔记在数据库中是否可见 + *

+ * 检查指定ID和类型的笔记是否存在于数据库中,且不在垃圾箱中。 + *

+ * + * @param resolver ContentResolver实例,用于与内容提供者交互 + * @param noteId 笔记ID + * @param type 笔记类型 + * @return 可见返回true,否则返回false + */ public static boolean visibleInNoteDatabase(ContentResolver resolver, long noteId, int type) { Cursor cursor = resolver.query(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId), null, @@ -153,6 +213,16 @@ public class DataUtils { return exist; } + /** + * 检查笔记是否存在于数据库中 + *

+ * 根据笔记ID检查笔记是否存在于数据库中。 + *

+ * + * @param resolver ContentResolver实例,用于与内容提供者交互 + * @param noteId 笔记ID + * @return 存在返回true,否则返回false + */ 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 +237,16 @@ public class DataUtils { return exist; } + /** + * 检查数据是否存在于数据库中 + *

+ * 根据数据ID检查数据是否存在于数据库中。 + *

+ * + * @param resolver ContentResolver实例,用于与内容提供者交互 + * @param dataId 数据ID + * @return 存在返回true,否则返回false + */ 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 +261,16 @@ public class DataUtils { return exist; } + /** + * 检查可见文件夹名称是否存在 + *

+ * 检查指定名称的文件夹是否存在于数据库中,且不在垃圾箱中。 + *

+ * + * @param resolver ContentResolver实例,用于与内容提供者交互 + * @param name 文件夹名称 + * @return 存在返回true,否则返回false + */ public static boolean checkVisibleFolderName(ContentResolver resolver, String name) { Cursor cursor = resolver.query(Notes.CONTENT_NOTE_URI, null, NoteColumns.TYPE + "=" + Notes.TYPE_FOLDER + @@ -197,6 +287,16 @@ public class DataUtils { return exist; } + /** + * 获取文件夹中笔记的小部件属性 + *

+ * 查询并返回指定文件夹下所有笔记的小部件ID和类型。 + *

+ * + * @param resolver ContentResolver实例,用于与内容提供者交互 + * @param folderId 文件夹ID + * @return 小部件属性集合,如果没有则返回null + */ 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 +324,16 @@ 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 +353,17 @@ public class DataUtils { return ""; } + /** + * 根据电话号码和通话日期获取笔记ID + *

+ * 查询并返回匹配指定电话号码和通话日期的通话笔记ID。 + *

+ * + * @param resolver ContentResolver实例,用于与内容提供者交互 + * @param phoneNumber 电话号码 + * @param callDate 通话日期时间戳 + * @return 笔记ID,如果没有找到则返回0 + */ 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 +385,18 @@ public class DataUtils { return 0; } + /** + * 根据笔记ID获取摘要 + *

+ * 查询并返回指定笔记ID的摘要内容。 + * 如果笔记不存在,将抛出IllegalArgumentException异常。 + *

+ * + * @param resolver ContentResolver实例,用于与内容提供者交互 + * @param noteId 笔记ID + * @return 笔记摘要 + * @throws IllegalArgumentException 如果笔记不存在 + */ public static String getSnippetById(ContentResolver resolver, long noteId) { Cursor cursor = resolver.query(Notes.CONTENT_NOTE_URI, new String [] { NoteColumns.SNIPPET }, @@ -282,6 +415,15 @@ 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/main/java/net/micode/notes/tool/GTaskStringUtils.java b/src/main/java/net/micode/notes/tool/GTaskStringUtils.java index 666b729..e9e7aab 100644 --- a/src/main/java/net/micode/notes/tool/GTaskStringUtils.java +++ b/src/main/java/net/micode/notes/tool/GTaskStringUtils.java @@ -16,98 +16,151 @@ package net.micode.notes.tool; +/** + * GTask字符串常量工具类,定义了与GTask服务交互时使用的各种JSON字段名和文件夹名称。 + *

+ * 该类包含了与Google任务服务(GTask)进行JSON数据交换时所需的所有字符串常量, + * 包括动作类型、实体类型、字段名称以及文件夹命名规则等。 + *

+ */ public class GTaskStringUtils { + /** 动作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"; + /** 创建者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笔记文件夹前缀 */ 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"; + /** GTask 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/main/java/net/micode/notes/tool/ResourceParser.java b/src/main/java/net/micode/notes/tool/ResourceParser.java index 1ad3ad6..1c3c73a 100644 --- a/src/main/java/net/micode/notes/tool/ResourceParser.java +++ b/src/main/java/net/micode/notes/tool/ResourceParser.java @@ -22,24 +22,46 @@ import android.preference.PreferenceManager; import net.micode.notes.R; import net.micode.notes.ui.NotesPreferenceActivity; +/** + * 资源解析工具类,管理笔记应用中使用的各种资源配置和常量。 + *

+ * 该类包含了笔记的背景颜色、字体大小等常量定义,以及管理笔记背景、 + * 列表项背景、小部件背景和文本外观等资源的内部类。 + *

+ */ public class ResourceParser { + /** 黄色背景ID */ public static final int YELLOW = 0; + /** 蓝色背景ID */ public static final int BLUE = 1; + /** 白色背景ID */ public static final int WHITE = 2; + /** 绿色背景ID */ public static final int GREEN = 3; + /** 红色背景ID */ public static final int RED = 4; + /** 默认背景颜色ID */ public static final int BG_DEFAULT_COLOR = YELLOW; + /** 小字体大小ID */ public static final int TEXT_SMALL = 0; + /** 中字体大小ID */ public static final int TEXT_MEDIUM = 1; + /** 大字体大小ID */ public static final int TEXT_LARGE = 2; + /** 超大字体大小ID */ public static final int TEXT_SUPER = 3; + /** 默认字体大小ID */ 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, @@ -48,6 +70,7 @@ public class ResourceParser { R.drawable.edit_red }; + /** 笔记编辑标题背景资源数组 */ private final static int [] BG_EDIT_TITLE_RESOURCES = new int [] { R.drawable.edit_title_yellow, R.drawable.edit_title_blue, @@ -56,15 +79,36 @@ public class ResourceParser { R.drawable.edit_title_red }; + /** + * 获取笔记背景资源ID + * + * @param id 背景颜色ID + * @return 对应的背景资源ID + */ public static int getNoteBgResource(int id) { return BG_EDIT_RESOURCES[id]; } + /** + * 获取笔记标题背景资源ID + * + * @param id 背景颜色ID + * @return 对应的标题背景资源ID + */ public static int getNoteTitleBgResource(int id) { return BG_EDIT_TITLE_RESOURCES[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,7 +118,11 @@ 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, @@ -83,6 +131,7 @@ public class ResourceParser { R.drawable.list_red_up }; + /** 列表中间项背景资源数组 */ private final static int [] BG_NORMAL_RESOURCES = new int [] { R.drawable.list_yellow_middle, R.drawable.list_blue_middle, @@ -91,6 +140,7 @@ public class ResourceParser { R.drawable.list_red_middle }; + /** 列表最后一项背景资源数组 */ private final static int [] BG_LAST_RESOURCES = new int [] { R.drawable.list_yellow_down, R.drawable.list_blue_down, @@ -99,6 +149,7 @@ public class ResourceParser { R.drawable.list_red_down, }; + /** 列表单独项背景资源数组 */ private final static int [] BG_SINGLE_RESOURCES = new int [] { R.drawable.list_yellow_single, R.drawable.list_blue_single, @@ -107,28 +158,61 @@ public class ResourceParser { R.drawable.list_red_single }; + /** + * 获取列表第一项背景资源ID + * + * @param id 背景颜色ID + * @return 对应的第一项背景资源ID + */ public static int getNoteBgFirstRes(int id) { return BG_FIRST_RESOURCES[id]; } + /** + * 获取列表最后一项背景资源ID + * + * @param id 背景颜色ID + * @return 对应的最后一项背景资源ID + */ public static int getNoteBgLastRes(int id) { return BG_LAST_RESOURCES[id]; } + /** + * 获取列表单独项背景资源ID + * + * @param id 背景颜色ID + * @return 对应的单独项背景资源ID + */ public static int getNoteBgSingleRes(int id) { return BG_SINGLE_RESOURCES[id]; } + /** + * 获取列表中间项背景资源ID + * + * @param id 背景颜色ID + * @return 对应的中间项背景资源ID + */ public static int getNoteBgNormalRes(int id) { return BG_NORMAL_RESOURCES[id]; } + /** + * 获取文件夹背景资源ID + * + * @return 文件夹背景资源ID + */ public static int getFolderBgRes() { return R.drawable.list_folder; } } + /** + * 小部件背景资源管理类,提供不同尺寸小部件的背景资源。 + */ public static class WidgetBgResources { + /** 2x尺寸小部件背景资源数组 */ private final static int [] BG_2X_RESOURCES = new int [] { R.drawable.widget_2x_yellow, R.drawable.widget_2x_blue, @@ -137,10 +221,17 @@ public class ResourceParser { R.drawable.widget_2x_red, }; + /** + * 获取2x尺寸小部件背景资源ID + * + * @param id 背景颜色ID + * @return 对应的2x尺寸小部件背景资源ID + */ public static int getWidget2xBgResource(int id) { return BG_2X_RESOURCES[id]; } + /** 4x尺寸小部件背景资源数组 */ private final static int [] BG_4X_RESOURCES = new int [] { R.drawable.widget_4x_yellow, R.drawable.widget_4x_blue, @@ -149,12 +240,22 @@ public class ResourceParser { R.drawable.widget_4x_red }; + /** + * 获取4x尺寸小部件背景资源ID + * + * @param id 背景颜色ID + * @return 对应的4x尺寸小部件背景资源ID + */ 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, @@ -162,6 +263,15 @@ public class ResourceParser { R.style.TextAppearanceSuper }; + /** + * 获取文本外观资源ID + *

+ * 如果ID超出资源数组范围,返回默认字体大小的资源ID。 + *

+ * + * @param id 字体大小ID + * @return 对应的文本外观资源ID + */ public static int getTexAppearanceResource(int id) { /** * HACKME: Fix bug of store the resource id in shared preference. @@ -174,6 +284,11 @@ public class ResourceParser { return TEXTAPPEARANCE_RESOURCES[id]; } + /** + * 获取文本外观资源数组的大小 + * + * @return 文本外观资源数组的大小 + */ public static int getResourcesSize() { return TEXTAPPEARANCE_RESOURCES.length; } -- 2.34.1 From ca8c2205e060e359bfdebf48669942c5941fa0eb Mon Sep 17 00:00:00 2001 From: tb202302116011 <1271741232@qq.com> Date: Sun, 18 Jan 2026 15:26:09 +0800 Subject: [PATCH 24/30] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E4=BA=86=E5=9C=A8?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=A4=B9=E4=B8=AD=E7=82=B9=E5=87=BBback?= =?UTF-8?q?=E9=94=AE=E4=BC=9A=E7=9B=B4=E6=8E=A5=E6=95=B4=E4=B8=AA=E9=80=80?= =?UTF-8?q?=E5=87=BA=E5=B0=8F=E7=B1=B3=E4=BE=BF=E7=AD=BE=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/net/micode/notes/MainActivity.java | 17 --- .../java/net/micode/notes/data/Notes.java | 15 ++- .../notes/data/NotesDatabaseHelper.java | 22 +++- .../java/net/micode/notes/model/Note.java | 2 +- .../net/micode/notes/ui/NoteItemData.java | 28 +++++ .../micode/notes/ui/NotesListActivity.java | 102 +++++++++++++++--- src/main/res/layout/note_edit.xml | 4 +- src/main/res/layout/note_list.xml | 6 +- src/main/res/menu/note_list_options.xml | 5 + src/main/res/values-zh-rCN/strings.xml | 2 + src/main/res/values/strings.xml | 2 + 11 files changed, 165 insertions(+), 40 deletions(-) diff --git a/src/main/java/net/micode/notes/MainActivity.java b/src/main/java/net/micode/notes/MainActivity.java index 105fc40..8091753 100644 --- a/src/main/java/net/micode/notes/MainActivity.java +++ b/src/main/java/net/micode/notes/MainActivity.java @@ -1,13 +1,5 @@ - package net.micode.notes; -/** - * 笔记应用的主活动类,作为应用的入口点。 - *

- * 该类是小米笔记应用的主活动,负责初始化应用界面和处理窗口边距设置。 - *

- */ - import android.os.Bundle; import androidx.activity.EdgeToEdge; @@ -18,15 +10,6 @@ import androidx.core.view.WindowInsetsCompat; public class MainActivity extends AppCompatActivity { - /** - * 活动创建时调用的方法,初始化应用界面和窗口设置。 - *

- * 该方法启用了边缘到边缘显示模式,设置了活动布局,并处理了系统栏 - * 的边距问题,确保内容不会被系统UI遮挡。 - *

- * - * @param savedInstanceState 保存的实例状态,用于恢复活动状态 - */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); diff --git a/src/main/java/net/micode/notes/data/Notes.java b/src/main/java/net/micode/notes/data/Notes.java index 5d83908..4b82197 100644 --- a/src/main/java/net/micode/notes/data/Notes.java +++ b/src/main/java/net/micode/notes/data/Notes.java @@ -211,22 +211,29 @@ public class Notes { public static final String LOCAL_MODIFIED = "local_modified"; /** - * 移动到临时文件夹之前的原始父ID - *

类型: INTEGER

+ * 原始父ID + *

类型: INTEGER (long)

*/ public static final String ORIGIN_PARENT_ID = "origin_parent_id"; /** - * GTask ID + * GTASK ID *

类型: TEXT

*/ public static final String GTASK_ID = "gtask_id"; /** * 版本号 - *

类型: INTEGER (long)

+ *

类型: INTEGER

*/ public static final String VERSION = "version"; + + /** + * 置顶状态 + *

类型: INTEGER

+ *

0表示未置顶,1表示置顶

+ */ + public static final String PINNED = "pinned"; } public interface DataColumns { diff --git a/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java b/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java index f6b9c37..5eccfec 100644 --- a/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java +++ b/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java @@ -35,7 +35,7 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper { // 数据库文件名 private static final String DB_NAME = "note.db"; // 数据库版本号,用于升级控制 - private static final int DB_VERSION = 4; + private static final int DB_VERSION = 5; /** * 数据库表名常量定义 @@ -56,7 +56,7 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper { * 笔记表创建SQL语句 * 包含笔记/文件夹的基本属性:ID、父文件夹ID、提醒时间、背景色、创建/修改时间等 */ - private static final String CREATE_NOTE_TABLE_SQL = + private static final String CREATE_NOTE_TABLE_SQL = "CREATE TABLE " + TABLE.NOTE + "(" + NoteColumns.ID + " INTEGER PRIMARY KEY," + NoteColumns.PARENT_ID + " INTEGER NOT NULL DEFAULT 0," + @@ -74,7 +74,8 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper { NoteColumns.LOCAL_MODIFIED + " INTEGER NOT NULL DEFAULT 0," + NoteColumns.ORIGIN_PARENT_ID + " INTEGER NOT NULL DEFAULT 0," + NoteColumns.GTASK_ID + " TEXT NOT NULL DEFAULT ''," + - NoteColumns.VERSION + " INTEGER NOT NULL DEFAULT 0" + + NoteColumns.VERSION + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.PINNED + " INTEGER NOT NULL DEFAULT 0" + ")"; /** @@ -378,6 +379,12 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper { oldVersion++; } + // 版本4升级到版本5 + if (oldVersion == 4) { + upgradeToV5(db); + oldVersion++; + } + // 如果需要,重新创建触发器 if (reCreateTriggers) { reCreateNoteTableTriggers(db); @@ -429,4 +436,13 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper { db.execSQL("ALTER TABLE " + TABLE.NOTE + " ADD COLUMN " + NoteColumns.VERSION + " INTEGER NOT NULL DEFAULT 0"); } + + /** + * 升级到版本5:添加置顶字段,用于便签置顶功能 + * @param db 数据库实例 + */ + private void upgradeToV5(SQLiteDatabase db) { + db.execSQL("ALTER TABLE " + TABLE.NOTE + " ADD COLUMN " + NoteColumns.PINNED + + " INTEGER NOT NULL DEFAULT 0"); + } } \ No newline at end of file diff --git a/src/main/java/net/micode/notes/model/Note.java b/src/main/java/net/micode/notes/model/Note.java index 4c7931d..44935dd 100644 --- a/src/main/java/net/micode/notes/model/Note.java +++ b/src/main/java/net/micode/notes/model/Note.java @@ -260,7 +260,7 @@ public class Note { /** * 日志标签 */ - private static final String TAG = NoteData.class.getSimpleName(); + private static final String TAG = "NoteData"; /** * 构造方法,初始化笔记数据 diff --git a/src/main/java/net/micode/notes/ui/NoteItemData.java b/src/main/java/net/micode/notes/ui/NoteItemData.java index 2ffa01d..44825ee 100644 --- a/src/main/java/net/micode/notes/ui/NoteItemData.java +++ b/src/main/java/net/micode/notes/ui/NoteItemData.java @@ -53,6 +53,7 @@ public class NoteItemData { NoteColumns.TYPE, NoteColumns.WIDGET_ID, NoteColumns.WIDGET_TYPE, + NoteColumns.PINNED, }; /** @@ -114,12 +115,22 @@ public class NoteItemData { * 查询结果中小组件类型列的索引 */ private static final int WIDGET_TYPE_COLUMN = 11; + + /** + * 查询结果中置顶状态列的索引 + */ + private static final int PINNED_COLUMN = 12; /** * 笔记ID */ private long mId; + /** + * 置顶状态 + */ + private boolean mPinned; + /** * 提醒日期 */ @@ -230,6 +241,7 @@ public class NoteItemData { mType = cursor.getInt(TYPE_COLUMN); mWidgetId = cursor.getInt(WIDGET_ID_COLUMN); mWidgetType = cursor.getInt(WIDGET_TYPE_COLUMN); + mPinned = (cursor.getInt(PINNED_COLUMN) > 0) ? true : false; mPhoneNumber = ""; if (mParentId == Notes.ID_CALL_RECORD_FOLDER) { @@ -447,6 +459,22 @@ public class NoteItemData { public boolean isCallRecord() { return (mParentId == Notes.ID_CALL_RECORD_FOLDER && !TextUtils.isEmpty(mPhoneNumber)); } + + /** + * 获取置顶状态 + * @return 置顶状态,true表示已置顶,false表示未置顶 + */ + public boolean isPinned() { + return mPinned; + } + + /** + * 设置置顶状态 + * @param pinned 置顶状态,true表示置顶,false表示取消置顶 + */ + public void setPinned(boolean pinned) { + mPinned = pinned; + } /** * 获取笔记类型(静态方法) diff --git a/src/main/java/net/micode/notes/ui/NotesListActivity.java b/src/main/java/net/micode/notes/ui/NotesListActivity.java index b72aba0..f1d9277 100644 --- a/src/main/java/net/micode/notes/ui/NotesListActivity.java +++ b/src/main/java/net/micode/notes/ui/NotesListActivity.java @@ -132,14 +132,10 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt /** 新建笔记按钮 */ private Button mAddNewNote; - /** 是否分发触摸事件 */ - private boolean mDispatch; - - /** 原始Y坐标 */ - private int mOriginY; - - /** 分发Y坐标 */ - private int mDispatchY; + // 删除不再使用的触摸事件相关变量 + // private boolean mDispatch; + // private int mOriginY; + // private int mDispatchY; /** 标题栏文本视图 */ private TextView mTitleBar; @@ -152,6 +148,15 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt /** 模式回调 */ private ModeCallback mModeCallBack; + + /** 是否分发触摸事件 */ + private boolean mDispatch; + + /** 原始Y坐标 */ + private int mOriginY; + + /** 分发Y坐标 */ + private int mDispatchY; /** 日志标签 */ private static final String TAG = "NotesListActivity"; @@ -167,7 +172,7 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt /** 根文件夹选择条件 */ private static final String ROOT_FOLDER_SELECTION = "(" + NoteColumns.TYPE + "<>" - + Notes.TYPE_SYSTEM + " AND " + NoteColumns.PARENT_ID + "=?)") + " OR (" + + Notes.TYPE_SYSTEM + " AND " + NoteColumns.PARENT_ID + "=?)" + " OR (" + NoteColumns.ID + "=" + Notes.ID_CALL_RECORD_FOLDER + " AND " + NoteColumns.NOTES_COUNT + ">0)"; @@ -196,6 +201,19 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt * Insert an introduction when user firstly use this application */ setAppInfoFromRawRes(); + + // 注册Android 13+的返回键回调 + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.TIRAMISU) { + getOnBackInvokedDispatcher().registerOnBackInvokedCallback( + android.window.OnBackInvokedDispatcher.PRIORITY_DEFAULT, + new android.window.OnBackInvokedCallback() { + @Override + public void onBackInvoked() { + handleBackPress(); + } + } + ); + } } /** @@ -356,6 +374,11 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt mMoveMenu.setVisible(true); mMoveMenu.setOnMenuItemClickListener(this); } + // 添加置顶菜单初始化 + MenuItem pinMenu = menu.findItem(R.id.pin); + if (pinMenu != null) { + pinMenu.setOnMenuItemClickListener(this); + } mActionMode = mode; mNotesListAdapter.setChoiceMode(true); mNotesListView.setLongClickable(false); @@ -515,6 +538,9 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt case R.id.move: startQueryDestinationFolders(); break; + case R.id.pin: + togglePinnedStatus(); + break; default: return false; } @@ -622,7 +648,7 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt mBackgroundQueryHandler.startQuery(FOLDER_NOTE_LIST_QUERY_TOKEN, null, Notes.CONTENT_NOTE_URI, NoteItemData.PROJECTION, selection, new String[] { String.valueOf(mCurrentFolderId) - }, NoteColumns.TYPE + " DESC," + NoteColumns.MODIFIED_DATE + " DESC"); + }, NoteColumns.PINNED + " DESC," + NoteColumns.TYPE + " DESC," + NoteColumns.MODIFIED_DATE + " DESC"); } /** @@ -755,6 +781,54 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt }.execute(); } + /** + * 切换选中便签的置顶状态 + */ + private void togglePinnedStatus() { + final HashSet selectedIds = mNotesListAdapter.getSelectedItemIds(); + final int selectedCount = mNotesListAdapter.getSelectedCount(); + + new AsyncTask() { + protected Void doInBackground(Void... unused) { + for (Long noteId : selectedIds) { + // 查询当前便签的置顶状态 + Cursor cursor = mContentResolver.query(Notes.CONTENT_NOTE_URI, + new String[]{NoteColumns.PINNED}, + NoteColumns.ID + "=?", + new String[]{String.valueOf(noteId)}, + null); + + if (cursor != null && cursor.moveToFirst()) { + int currentPinned = cursor.getInt(0); + // 切换置顶状态 + int newPinned = currentPinned == 1 ? 0 : 1; + + ContentValues values = new ContentValues(); + values.put(NoteColumns.PINNED, newPinned); + + mContentResolver.update(Notes.CONTENT_NOTE_URI, + values, + NoteColumns.ID + "=?", + new String[]{String.valueOf(noteId)}); + + cursor.close(); + } + } + return null; + } + + @Override + protected void onPostExecute(Void unused) { + Toast.makeText(NotesListActivity.this, + "已更新 " + selectedCount + " 个便签", + Toast.LENGTH_SHORT).show(); + // 重新查询数据,更新列表 + startAsyncNotesListQuery(); + mModeCallBack.finishActionMode(); + } + }.execute(); + } + /** * 删除文件夹 *

@@ -991,8 +1065,7 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt * 3. 如果在根文件夹中,调用默认的返回处理 *

*/ - @Override - public void onBackPressed() { + private void handleBackPress() { switch (mState) { case SUB_FOLDER: mCurrentFolderId = Notes.ID_ROOT_FOLDER; @@ -1015,6 +1088,11 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt } } + @Override + public void onBackPressed() { + handleBackPress(); + } + /** * 更新部件 *

diff --git a/src/main/res/layout/note_edit.xml b/src/main/res/layout/note_edit.xml index 10b2aa7..e0cf16b 100644 --- a/src/main/res/layout/note_edit.xml +++ b/src/main/res/layout/note_edit.xml @@ -19,6 +19,7 @@ android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/list_background" + android:fitsSystemWindows="true" xmlns:android="http://schemas.android.com/apk/res/android"> + android:fadingEdgeLength="0dip" + android:paddingTop="16dp"> + android:background="@drawable/list_background" + android:fitsSystemWindows="true"> + android:layout_gravity="bottom" + android:layout_marginBottom="16dp" /> diff --git a/src/main/res/menu/note_list_options.xml b/src/main/res/menu/note_list_options.xml index daac008..749aa3e 100644 --- a/src/main/res/menu/note_list_options.xml +++ b/src/main/res/menu/note_list_options.xml @@ -28,4 +28,9 @@ android:title="@string/menu_delete" android:icon="@drawable/menu_delete" android:showAsAction="always|withText" /> + + \ No newline at end of file diff --git a/src/main/res/values-zh-rCN/strings.xml b/src/main/res/values-zh-rCN/strings.xml index 09f75ed..6039b43 100644 --- a/src/main/res/values-zh-rCN/strings.xml +++ b/src/main/res/values-zh-rCN/strings.xml @@ -44,6 +44,8 @@ 搜索 删除 移动到文件夹 + 置顶 + 取消置顶 选中了 %d 项 没有选中项,操作无效 全选 diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index 55df868..02d3841 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -48,6 +48,8 @@ Search Delete Move to folder + Pin + Unpin %d selected Nothing selected, the operation is invalid Select all -- 2.34.1 From 07df63aaf52fc4d578d6ebae1abd2738bfd0fdfc Mon Sep 17 00:00:00 2001 From: tb202302116011 <1271741232@qq.com> Date: Mon, 19 Jan 2026 10:11:55 +0800 Subject: [PATCH 25/30] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=BA=86=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=A4=B9=E5=B5=8C=E5=A5=97=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/net/micode/notes/tool/DataUtils.java | 18 +++++++- .../micode/notes/ui/NotesListActivity.java | 45 ++++++++++++++++--- src/main/res/menu/sub_folder.xml | 3 ++ 3 files changed, 58 insertions(+), 8 deletions(-) diff --git a/src/main/java/net/micode/notes/tool/DataUtils.java b/src/main/java/net/micode/notes/tool/DataUtils.java index 49d5a18..6d84777 100644 --- a/src/main/java/net/micode/notes/tool/DataUtils.java +++ b/src/main/java/net/micode/notes/tool/DataUtils.java @@ -272,11 +272,27 @@ public class DataUtils { * @return 存在返回true,否则返回false */ public static boolean checkVisibleFolderName(ContentResolver resolver, String name) { + return checkVisibleFolderName(resolver, name, Notes.ID_ROOT_FOLDER); + } + + /** + * 检查可见文件夹名称是否存在(重载方法,支持指定父文件夹ID) + *

+ * 检查指定名称的文件夹是否存在于指定父文件夹下,且不在垃圾箱中。 + *

+ * + * @param resolver ContentResolver实例,用于与内容提供者交互 + * @param name 文件夹名称 + * @param parentId 父文件夹ID + * @return 存在返回true,否则返回false + */ + public static boolean checkVisibleFolderName(ContentResolver resolver, String name, long parentId) { Cursor cursor = resolver.query(Notes.CONTENT_NOTE_URI, null, NoteColumns.TYPE + "=" + Notes.TYPE_FOLDER + " AND " + NoteColumns.PARENT_ID + "<>" + Notes.ID_TRASH_FOLER + + " AND " + NoteColumns.PARENT_ID + "=?" + " AND " + NoteColumns.SNIPPET + "=?", - new String[] { name }, null); + new String[] { String.valueOf(parentId), name }, null); boolean exist = false; if(cursor != null) { if(cursor.getCount() > 0) { diff --git a/src/main/java/net/micode/notes/ui/NotesListActivity.java b/src/main/java/net/micode/notes/ui/NotesListActivity.java index f1d9277..78aa3f9 100644 --- a/src/main/java/net/micode/notes/ui/NotesListActivity.java +++ b/src/main/java/net/micode/notes/ui/NotesListActivity.java @@ -201,7 +201,7 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt * Insert an introduction when user firstly use this application */ setAppInfoFromRawRes(); - + // 注册Android 13+的返回键回调 if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.TIRAMISU) { getOnBackInvokedDispatcher().registerOnBackInvokedCallback( @@ -1002,7 +1002,7 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt public void onClick(View v) { hideSoftInput(etName); String name = etName.getText().toString(); - if (DataUtils.checkVisibleFolderName(mContentResolver, name)) { + if (DataUtils.checkVisibleFolderName(mContentResolver, name, mCurrentFolderId)) { Toast.makeText(NotesListActivity.this, getString(R.string.folder_exist, name), Toast.LENGTH_LONG).show(); etName.setSelection(0, etName.length()); @@ -1023,6 +1023,7 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt ContentValues values = new ContentValues(); values.put(NoteColumns.SNIPPET, name); values.put(NoteColumns.TYPE, Notes.TYPE_FOLDER); + values.put(NoteColumns.PARENT_ID, mCurrentFolderId); mContentResolver.insert(Notes.CONTENT_NOTE_URI, values); } dialog.dismiss(); @@ -1068,10 +1069,32 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt private void handleBackPress() { switch (mState) { case SUB_FOLDER: - mCurrentFolderId = Notes.ID_ROOT_FOLDER; - mState = ListEditState.NOTE_LIST; - startAsyncNotesListQuery(); - mTitleBar.setVisibility(View.GONE); + // 查询当前文件夹的父文件夹ID + Cursor cursor = mContentResolver.query(Notes.CONTENT_NOTE_URI, + new String[]{NoteColumns.PARENT_ID, NoteColumns.SNIPPET}, + NoteColumns.ID + "=?", + new String[]{String.valueOf(mCurrentFolderId)}, + null); + + if (cursor != null && cursor.moveToFirst()) { + long parentId = cursor.getLong(0); + String parentName = cursor.getString(1); + cursor.close(); + + if (parentId == Notes.ID_ROOT_FOLDER) { + // 如果父文件夹是根文件夹,返回根目录 + mCurrentFolderId = Notes.ID_ROOT_FOLDER; + mState = ListEditState.NOTE_LIST; + mTitleBar.setVisibility(View.GONE); + } else { + // 否则返回上一级文件夹 + mCurrentFolderId = parentId; + mState = ListEditState.SUB_FOLDER; + mTitleBar.setText(parentName); + mTitleBar.setVisibility(View.VISIBLE); + } + startAsyncNotesListQuery(); + } break; case CALL_RECORD_FOLDER: mCurrentFolderId = Notes.ID_ROOT_FOLDER; @@ -1402,13 +1425,21 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt } break; case SUB_FOLDER: - case CALL_RECORD_FOLDER: if (item.getType() == Notes.TYPE_NOTE) { openNode(item); + } else if (item.getType() == Notes.TYPE_FOLDER) { + openFolder(item); } else { Log.e(TAG, "Wrong note type in SUB_FOLDER"); } break; + case CALL_RECORD_FOLDER: + if (item.getType() == Notes.TYPE_NOTE) { + openNode(item); + } else { + Log.e(TAG, "Wrong note type in CALL_RECORD_FOLDER"); + } + break; default: break; } diff --git a/src/main/res/menu/sub_folder.xml b/src/main/res/menu/sub_folder.xml index b00de26..cb89b13 100644 --- a/src/main/res/menu/sub_folder.xml +++ b/src/main/res/menu/sub_folder.xml @@ -18,6 +18,9 @@ + -- 2.34.1 From 0612081c31eabda5417f45a8d010e4ce270ff4d5 Mon Sep 17 00:00:00 2001 From: tb202302116011 <1271741232@qq.com> Date: Tue, 20 Jan 2026 15:50:18 +0800 Subject: [PATCH 26/30] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=BA=86=E5=AF=8C?= =?UTF-8?q?=E6=96=87=E6=9C=AC=E7=BC=96=E8=BE=91=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/net/micode/notes/data/Notes.java | 30 +++ .../notes/data/NotesDatabaseHelper.java | 26 +- .../net/micode/notes/model/WorkingNote.java | 34 ++- .../net/micode/notes/ui/NoteEditActivity.java | 245 ++++++++++++++++- .../net/micode/notes/ui/NoteEditText.java | 110 ++++++++ .../net/micode/notes/ui/NoteItemData.java | 85 ++++++ .../micode/notes/ui/NotesListActivity.java | 246 +++++++++++++++++- .../net/micode/notes/ui/NotesListAdapter.java | 30 ++- .../net/micode/notes/ui/NotesListItem.java | 5 +- src/main/res/layout/note_edit.xml | 186 ++++++++++++- src/main/res/layout/note_list.xml | 2 +- src/main/res/menu/note_edit.xml | 8 + src/main/res/menu/note_list_options.xml | 5 + src/main/res/values/strings.xml | 7 + 14 files changed, 981 insertions(+), 38 deletions(-) diff --git a/src/main/java/net/micode/notes/data/Notes.java b/src/main/java/net/micode/notes/data/Notes.java index 4b82197..11b031a 100644 --- a/src/main/java/net/micode/notes/data/Notes.java +++ b/src/main/java/net/micode/notes/data/Notes.java @@ -99,6 +99,16 @@ public class Notes { * 组件类型:4x4大小的便签组件 */ public static final int TYPE_WIDGET_4X = 1; + + /** + * 锁类型:便签锁 + */ + public static final int LOCK_TYPE_NOTE = 0; + + /** + * 锁类型:文件夹锁 + */ + public static final int LOCK_TYPE_FOLDER = 1; /** * 数据类型常量类,定义了不同类型便签的数据项类型 @@ -234,6 +244,26 @@ public class Notes { *

0表示未置顶,1表示置顶

*/ public static final String PINNED = "pinned"; + + /** + * 是否上锁 + *

类型: INTEGER

+ *

0表示未上锁,1表示上锁

+ */ + public static final String IS_LOCKED = "is_locked"; + + /** + * 加密后的密码 + *

类型: TEXT

+ */ + public static final String LOCK_PASSWORD = "lock_password"; + + /** + * 锁类型 + *

类型: INTEGER

+ *

0表示便签锁,1表示文件夹锁

+ */ + public static final String LOCK_TYPE = "lock_type"; } public interface DataColumns { diff --git a/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java b/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java index 5eccfec..ce29b9f 100644 --- a/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java +++ b/src/main/java/net/micode/notes/data/NotesDatabaseHelper.java @@ -35,7 +35,7 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper { // 数据库文件名 private static final String DB_NAME = "note.db"; // 数据库版本号,用于升级控制 - private static final int DB_VERSION = 5; + private static final int DB_VERSION = 6; /** * 数据库表名常量定义 @@ -75,7 +75,10 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper { NoteColumns.ORIGIN_PARENT_ID + " INTEGER NOT NULL DEFAULT 0," + NoteColumns.GTASK_ID + " TEXT NOT NULL DEFAULT ''," + NoteColumns.VERSION + " INTEGER NOT NULL DEFAULT 0," + - NoteColumns.PINNED + " INTEGER NOT NULL DEFAULT 0" + + NoteColumns.PINNED + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.IS_LOCKED + " INTEGER NOT NULL DEFAULT 0," + + NoteColumns.LOCK_PASSWORD + " TEXT NOT NULL DEFAULT ''," + + NoteColumns.LOCK_TYPE + " INTEGER NOT NULL DEFAULT 0" + ")"; /** @@ -385,6 +388,12 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper { oldVersion++; } + // 版本5升级到版本6:添加锁相关字段 + if (oldVersion == 5) { + upgradeToV6(db); + oldVersion++; + } + // 如果需要,重新创建触发器 if (reCreateTriggers) { reCreateNoteTableTriggers(db); @@ -445,4 +454,17 @@ public class NotesDatabaseHelper extends SQLiteOpenHelper { db.execSQL("ALTER TABLE " + TABLE.NOTE + " ADD COLUMN " + NoteColumns.PINNED + " INTEGER NOT NULL DEFAULT 0"); } + + /** + * 升级到版本6:添加锁相关字段,用于便签和文件夹上锁功能 + * @param db 数据库实例 + */ + private void upgradeToV6(SQLiteDatabase db) { + db.execSQL("ALTER TABLE " + TABLE.NOTE + " ADD COLUMN " + NoteColumns.IS_LOCKED + + " INTEGER NOT NULL DEFAULT 0"); + db.execSQL("ALTER TABLE " + TABLE.NOTE + " ADD COLUMN " + NoteColumns.LOCK_PASSWORD + + " TEXT NOT NULL DEFAULT ''"); + db.execSQL("ALTER TABLE " + TABLE.NOTE + " ADD COLUMN " + NoteColumns.LOCK_TYPE + + " INTEGER NOT NULL DEFAULT 0"); + } } \ No newline at end of file diff --git a/src/main/java/net/micode/notes/model/WorkingNote.java b/src/main/java/net/micode/notes/model/WorkingNote.java index 36003cc..e3b2398 100644 --- a/src/main/java/net/micode/notes/model/WorkingNote.java +++ b/src/main/java/net/micode/notes/model/WorkingNote.java @@ -504,19 +504,45 @@ public class WorkingNote { } } + /** + * 设置笔记的基本属性值 + *

+ * 直接调用内部Note对象的setNoteValue方法,用于更新笔记的基本属性。 + *

+ * + * @param key 属性键名,对应NoteColumns中的字段名 + * @param value 属性值 + */ + public void setNoteValue(String key, String value) { + mNote.setNoteValue(key, value); + } + /** * 设置笔记内容 *

+ * 设置笔记的文本内容,支持富文本格式。 + *

+ * + * @param text 笔记内容,支持Spannable等富文本格式 + */ + public void setWorkingText(CharSequence text) { + String textStr = text.toString(); + if (!TextUtils.equals(mContent, textStr)) { + mContent = textStr; + mNote.setTextData(DataColumns.CONTENT, mContent); + } + } + + /** + * 设置笔记内容(字符串重载) + *

* 设置笔记的文本内容。 *

* * @param text 笔记内容 */ public void setWorkingText(String text) { - if (!TextUtils.equals(mContent, text)) { - mContent = text; - mNote.setTextData(DataColumns.CONTENT, mContent); - } + setWorkingText((CharSequence) text); } /** diff --git a/src/main/java/net/micode/notes/ui/NoteEditActivity.java b/src/main/java/net/micode/notes/ui/NoteEditActivity.java index 088dac7..184fe3b 100644 --- a/src/main/java/net/micode/notes/ui/NoteEditActivity.java +++ b/src/main/java/net/micode/notes/ui/NoteEditActivity.java @@ -30,6 +30,7 @@ import android.content.SharedPreferences; import android.graphics.Paint; import android.os.Bundle; import android.preference.PreferenceManager; +import android.text.Html; import android.text.Spannable; import android.text.SpannableString; import android.text.TextUtils; @@ -43,11 +44,17 @@ import android.view.MotionEvent; import android.view.View; import android.view.View.OnClickListener; import android.view.WindowManager; +import android.widget.Button; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.EditText; +import android.widget.ImageButton; import android.widget.ImageView; +import android.database.Cursor; +import android.content.ContentResolver; +import net.micode.notes.data.Notes; +import net.micode.notes.data.Notes.NoteColumns; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; @@ -91,7 +98,7 @@ public class NoteEditActivity extends Activity implements OnClickListener, public TextView tvAlertDate; - public ImageView ibSetBgColor; + public ImageButton ibSetBgColor; } /** 背景颜色选择按钮映射表,将按钮ID映射到颜色ID */ @@ -141,14 +148,25 @@ public class NoteEditActivity extends Activity implements OnClickListener, /** 头部视图面板 */ private View mHeadViewPanel; + /** 粗体按钮 */ + private Button mBtnBold; + /** 斜体按钮 */ + private Button mBtnItalic; + /** 下划线按钮 */ + private Button mBtnUnderline; + /** 字体颜色按钮 */ + private Button mBtnTextColor; + /** 背景颜色选择器视图 */ private View mNoteBgColorSelector; + /** 字体颜色选择器视图 */ + private View mNoteTextColorSelector; /** 字体大小选择器视图 */ private View mFontSizeSelector; /** 笔记编辑文本框 */ - private EditText mNoteEditor; + private NoteEditText mNoteEditor; /** 笔记编辑面板 */ private View mNoteEditorPanel; @@ -322,7 +340,10 @@ public class NoteEditActivity extends Activity implements OnClickListener, if (mWorkingNote.getCheckListMode() == TextNote.MODE_CHECK_LIST) { switchToListMode(mWorkingNote.getContent()); } else { - mNoteEditor.setText(getHighlightQueryResult(mWorkingNote.getContent(), mUserQuery)); + // 解析HTML格式的富文本内容,添加null检查防止闪退 + String content = mWorkingNote.getContent(); + CharSequence htmlContent = Html.fromHtml(content == null ? "" : content); + mNoteEditor.setText(getHighlightQueryResult(htmlContent, mUserQuery)); mNoteEditor.setSelection(mNoteEditor.getText().length()); } for (Integer id : sBgSelectorSelectionMap.keySet()) { @@ -408,6 +429,12 @@ public class NoteEditActivity extends Activity implements OnClickListener, return true; } + if (mNoteTextColorSelector.getVisibility() == View.VISIBLE + && !inRangeOfView(mNoteTextColorSelector, ev)) { + mNoteTextColorSelector.setVisibility(View.GONE); + return true; + } + if (mFontSizeSelector.getVisibility() == View.VISIBLE && !inRangeOfView(mFontSizeSelector, ev)) { mFontSizeSelector.setVisibility(View.GONE); @@ -446,9 +473,9 @@ public class NoteEditActivity extends Activity implements OnClickListener, mNoteHeaderHolder.tvModified = (TextView) findViewById(R.id.tv_modified_date); mNoteHeaderHolder.ivAlertIcon = (ImageView) findViewById(R.id.iv_alert_icon); mNoteHeaderHolder.tvAlertDate = (TextView) findViewById(R.id.tv_alert_date); - mNoteHeaderHolder.ibSetBgColor = (ImageView) findViewById(R.id.btn_set_bg_color); + mNoteHeaderHolder.ibSetBgColor = (ImageButton) findViewById(R.id.btn_set_bg_color); mNoteHeaderHolder.ibSetBgColor.setOnClickListener(this); - mNoteEditor = (EditText) findViewById(R.id.note_edit_view); + mNoteEditor = (NoteEditText) 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()) { @@ -456,7 +483,28 @@ public class NoteEditActivity extends Activity implements OnClickListener, iv.setOnClickListener(this); } + // 初始化富文本按钮 + mBtnBold = findViewById(R.id.btn_bold); + mBtnItalic = findViewById(R.id.btn_italic); + mBtnUnderline = findViewById(R.id.btn_underline); + mBtnTextColor = findViewById(R.id.btn_set_text_color); + mBtnBold.setOnClickListener(this); + mBtnItalic.setOnClickListener(this); + mBtnUnderline.setOnClickListener(this); + mBtnTextColor.setOnClickListener(this); + mFontSizeSelector = findViewById(R.id.font_size_selector); + mNoteTextColorSelector = findViewById(R.id.note_text_color_selector); + + // 初始化字体颜色选择器的颜色选项 + ImageView ivTextBlack = findViewById(R.id.iv_text_black); + ImageView ivTextWhite = findViewById(R.id.iv_text_white); + ImageView ivTextRed = findViewById(R.id.iv_text_red); + ImageView ivTextBlue = findViewById(R.id.iv_text_blue); + ivTextBlack.setOnClickListener(this); + ivTextWhite.setOnClickListener(this); + ivTextRed.setOnClickListener(this); + ivTextBlue.setOnClickListener(this); for (int id : sFontSizeBtnsMap.keySet()) { View view = findViewById(id); view.setOnClickListener(this); @@ -472,6 +520,9 @@ public class NoteEditActivity extends Activity implements OnClickListener, mFontSizeId = ResourceParser.BG_DEFAULT_FONT_SIZE; } mEditTextList = (LinearLayout) findViewById(R.id.note_edit_list); + + // 将光标改为文本选中光标 + mNoteEditor.setTextIsSelectable(true); } /** @@ -516,15 +567,39 @@ public class NoteEditActivity extends Activity implements OnClickListener, public void onClick(View v) { int id = v.getId(); if (id == R.id.btn_set_bg_color) { + // 显示背景颜色选择器,隐藏其他选择器 mNoteBgColorSelector.setVisibility(View.VISIBLE); + mNoteTextColorSelector.setVisibility(View.GONE); findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility( - - View.VISIBLE); + View.VISIBLE); + } else if (id == R.id.btn_set_text_color) { + // 显示字体颜色选择器,隐藏其他选择器 + mNoteTextColorSelector.setVisibility(View.VISIBLE); + mNoteBgColorSelector.setVisibility(View.GONE); } else if (sBgSelectorBtnsMap.containsKey(id)) { + // 处理背景颜色选择 findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility( View.GONE); mWorkingNote.setBgColorId(sBgSelectorBtnsMap.get(id)); mNoteBgColorSelector.setVisibility(View.GONE); + } else if (id == R.id.iv_text_black) { + // 应用黑色字体 + mNoteEditor.applyTextColor(0xFF000000); + mNoteTextColorSelector.setVisibility(View.GONE); + } else if (id == R.id.iv_text_white) { + // 应用白色字体 + mNoteEditor.applyTextColor(0xFFFFFFFF); + mNoteTextColorSelector.setVisibility(View.GONE); + } else if (id == R.id.iv_text_red) { + // 应用红色字体 + mNoteEditor.applyTextColor(0xFFFF0000); + mNoteTextColorSelector.setVisibility(View.GONE); + } else if (id == R.id.iv_text_blue) { + // 应用蓝色字体 + mNoteEditor.applyTextColor(0xFF0000FF); + mNoteTextColorSelector.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(); @@ -537,6 +612,15 @@ public class NoteEditActivity extends Activity implements OnClickListener, TextAppearanceResources.getTexAppearanceResource(mFontSizeId)); } mFontSizeSelector.setVisibility(View.GONE); + } else if (id == R.id.btn_bold) { + // 应用粗体 + mNoteEditor.applyBold(); + } else if (id == R.id.btn_italic) { + // 应用斜体 + mNoteEditor.applyItalic(); + } else if (id == R.id.btn_underline) { + // 应用下划线 + mNoteEditor.applyUnderline(); } } @@ -565,6 +649,9 @@ public class NoteEditActivity extends Activity implements OnClickListener, if (mNoteBgColorSelector.getVisibility() == View.VISIBLE) { mNoteBgColorSelector.setVisibility(View.GONE); return true; + } else if (mNoteTextColorSelector.getVisibility() == View.VISIBLE) { + mNoteTextColorSelector.setVisibility(View.GONE); + return true; } else if (mFontSizeSelector.getVisibility() == View.VISIBLE) { mFontSizeSelector.setVisibility(View.GONE); return true; @@ -671,6 +758,12 @@ public class NoteEditActivity extends Activity implements OnClickListener, case R.id.menu_delete_remind: mWorkingNote.setAlertDate(0, false); break; + case R.id.menu_lock: + showPasswordDialogForLock(); + break; + case R.id.menu_unlock: + showPasswordDialogForUnlock(); + break; default: break; } @@ -709,6 +802,139 @@ public class NoteEditActivity extends Activity implements OnClickListener, context.startActivity(intent); } + /** + * 显示密码输入对话框用于锁定笔记 + *

+ * 该方法用于显示一个密码输入对话框,让用户输入密码来锁定当前编辑的笔记 + *

+ */ + private void showPasswordDialogForLock() { + final EditText passwordEditText = new EditText(this); + passwordEditText.setHint(R.string.hint_enter_password); + passwordEditText.setInputType(android.text.InputType.TYPE_CLASS_TEXT | android.text.InputType.TYPE_TEXT_VARIATION_PASSWORD); + + new AlertDialog.Builder(this) + .setTitle(R.string.dialog_enter_password) + .setView(passwordEditText) + .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + String password = passwordEditText.getText().toString(); + if (!TextUtils.isEmpty(password)) { + lockCurrentNote(password); + } + } + }) + .setNegativeButton(android.R.string.cancel, null) + .show(); + } + + /** + * 显示密码输入对话框用于解锁笔记 + *

+ * 该方法用于显示一个密码输入对话框,让用户输入密码来解锁当前编辑的笔记 + *

+ */ + private void showPasswordDialogForUnlock() { + final EditText passwordEditText = new EditText(this); + passwordEditText.setHint(R.string.hint_enter_password); + passwordEditText.setInputType(android.text.InputType.TYPE_CLASS_TEXT | android.text.InputType.TYPE_TEXT_VARIATION_PASSWORD); + + new AlertDialog.Builder(this) + .setTitle(R.string.dialog_enter_password) + .setView(passwordEditText) + .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + String password = passwordEditText.getText().toString(); + if (!TextUtils.isEmpty(password)) { + unlockCurrentNote(password); + } + } + }) + .setNegativeButton(android.R.string.cancel, null) + .show(); + } + + /** + * 锁定当前笔记 + *

+ * 该方法用于锁定当前编辑的笔记,更新其锁定状态、密码和锁定类型 + *

+ * @param password 用于锁定的密码 + */ + private void lockCurrentNote(String password) { + // 设置锁定状态为1(已锁定) + mWorkingNote.setNoteValue(NoteColumns.IS_LOCKED, "1"); + // 设置加密后的密码 + mWorkingNote.setNoteValue(NoteColumns.LOCK_PASSWORD, encryptPassword(password)); + // 设置锁定类型为笔记类型 + mWorkingNote.setNoteValue(NoteColumns.LOCK_TYPE, String.valueOf(Notes.LOCK_TYPE_NOTE)); + // 保存笔记 + saveNote(); + // 显示提示信息 + Toast.makeText(this, getString(R.string.message_note_locked), Toast.LENGTH_SHORT).show(); + } + + /** + * 解锁当前笔记 + *

+ * 该方法用于解锁当前编辑的笔记,更新其锁定状态和密码 + *

+ * @param password 用于解锁的密码 + */ + private void unlockCurrentNote(String password) { + // 使用ContentResolver直接查询数据库获取加密密码 + String[] projection = {NoteColumns.LOCK_PASSWORD}; + String selection = NoteColumns.ID + "=?"; + String[] selectionArgs = {String.valueOf(mWorkingNote.getNoteId())}; + + Cursor cursor = getContentResolver().query(Notes.CONTENT_NOTE_URI, projection, selection, selectionArgs, null); + String encryptedPassword = null; + + if (cursor != null && cursor.moveToFirst()) { + encryptedPassword = cursor.getString(0); + cursor.close(); + } + + // 验证密码是否正确 + if (encryptedPassword != null && encryptedPassword.equals(encryptPassword(password))) { + // 密码正确,设置锁定状态为0(未锁定) + mWorkingNote.setNoteValue(NoteColumns.IS_LOCKED, "0"); + // 清空密码 + mWorkingNote.setNoteValue(NoteColumns.LOCK_PASSWORD, ""); + // 保存笔记 + saveNote(); + // 显示提示信息 + Toast.makeText(this, getString(R.string.message_note_unlocked), Toast.LENGTH_SHORT).show(); + } else { + // 密码错误,显示错误信息 + Toast.makeText(this, getString(R.string.error_wrong_password), Toast.LENGTH_SHORT).show(); + } + } + + /** + * 加密密码 + *

+ * 该方法使用Base64和ANDROID_ID对密码进行加密 + *

+ * @param password 原始密码 + * @return 加密后的密码 + */ + private String encryptPassword(String password) { + try { + // 获取设备的ANDROID_ID作为加密密钥 + String androidId = android.provider.Settings.Secure.getString(getContentResolver(), + android.provider.Settings.Secure.ANDROID_ID); + // 使用简单的加密算法:将密码与ANDROID_ID拼接后进行Base64编码 + String combined = password + androidId; + return android.util.Base64.encodeToString(combined.getBytes(), android.util.Base64.DEFAULT); + } catch (Exception e) { + Log.e(TAG, "Password encryption failed", e); + return password; // 加密失败时返回原始密码 + } + } + /** * 创建新笔记 *

@@ -910,11 +1136,11 @@ public class NoteEditActivity extends Activity implements OnClickListener, *

* 该方法在完整文本中查找用户查询的内容,并为匹配项添加背景高亮效果 *

- * @param fullText 完整的文本内容 + * @param fullText 完整的文本内容,支持CharSequence类型 * @param userQuery 用户查询的内容 * @return 带有高亮查询结果的Spannable对象 */ - private Spannable getHighlightQueryResult(String fullText, String userQuery) { + private Spannable getHighlightQueryResult(CharSequence fullText, String userQuery) { SpannableString spannable = new SpannableString(fullText == null ? "" : fullText); if (!TextUtils.isEmpty(userQuery)) { mPattern = Pattern.compile(userQuery); @@ -1048,7 +1274,8 @@ public class NoteEditActivity extends Activity implements OnClickListener, } mWorkingNote.setWorkingText(sb.toString()); } else { - mWorkingNote.setWorkingText(mNoteEditor.getText().toString()); + // 保留富文本格式,将 Spanned 转换为 HTML 字符串保存 + mWorkingNote.setWorkingText(Html.toHtml(mNoteEditor.getText())); } return hasChecked; } diff --git a/src/main/java/net/micode/notes/ui/NoteEditText.java b/src/main/java/net/micode/notes/ui/NoteEditText.java index ae5b78b..5a6842e 100644 --- a/src/main/java/net/micode/notes/ui/NoteEditText.java +++ b/src/main/java/net/micode/notes/ui/NoteEditText.java @@ -20,9 +20,15 @@ import android.content.Context; import android.graphics.Rect; import android.text.Layout; import android.text.Selection; +import android.text.Spannable; +import android.text.SpannableStringBuilder; import android.text.Spanned; import android.text.TextUtils; +import android.text.style.StyleSpan; import android.text.style.URLSpan; +import android.text.style.UnderlineSpan; +import android.text.style.ForegroundColorSpan; +import android.graphics.Typeface; import android.util.AttributeSet; import android.util.Log; import android.view.ContextMenu; @@ -316,4 +322,108 @@ public class NoteEditText extends EditText { } super.onCreateContextMenu(menu); } + + /** + * 应用粗体格式到选中文本 + */ + public void applyBold() { + applyStyle(Typeface.BOLD); + } + + /** + * 应用斜体格式到选中文本 + */ + public void applyItalic() { + applyStyle(Typeface.ITALIC); + } + + /** + * 应用下划线格式到选中文本 + */ + public void applyUnderline() { + SpannableStringBuilder ssb = new SpannableStringBuilder(getText()); + int start = getSelectionStart(); + int end = getSelectionEnd(); + + if (start != end) { + // 检查是否已存在下划线样式 + UnderlineSpan[] existingUnderlines = ssb.getSpans(start, end, UnderlineSpan.class); + if (existingUnderlines.length > 0) { + // 移除下划线 + for (UnderlineSpan span : existingUnderlines) { + ssb.removeSpan(span); + } + } else { + // 添加下划线 + ssb.setSpan(new UnderlineSpan(), start, end, Spannable.SPAN_EXCLUSIVE_INCLUSIVE); + } + setText(ssb); + setSelection(start, end); + } + } + + /** + * 应用指定颜色到选中文本 + * @param color 要应用的颜色值 + */ + public void applyTextColor(int color) { + SpannableStringBuilder ssb = new SpannableStringBuilder(getText()); + int start = getSelectionStart(); + int end = getSelectionEnd(); + + if (start != end) { + // 移除已有的文字颜色 + ForegroundColorSpan[] existingSpans = ssb.getSpans(start, end, ForegroundColorSpan.class); + for (ForegroundColorSpan span : existingSpans) { + ssb.removeSpan(span); + } + + // 添加新的文字颜色 + ssb.setSpan(new ForegroundColorSpan(color), start, end, Spannable.SPAN_EXCLUSIVE_INCLUSIVE); + + setText(ssb); + setSelection(start, end); + } + } + + /** + * 应用字体样式到选中文本 + */ + private void applyStyle(int style) { + SpannableStringBuilder ssb = new SpannableStringBuilder(getText()); + int start = getSelectionStart(); + int end = getSelectionEnd(); + + if (start != end) { + // 获取当前选中文本的所有样式 + StyleSpan[] existingSpans = ssb.getSpans(start, end, StyleSpan.class); + + // 计算当前选中文本的总样式 + int currentStyle = Typeface.NORMAL; + if (existingSpans.length > 0) { + // 如果有样式,取第一个样式(假设所有样式一致) + currentStyle = existingSpans[0].getStyle(); + } + + // 计算新的字体样式 + int newStyle; + if ((currentStyle & style) != 0) { + // 移除该样式 + newStyle = currentStyle & ~style; + } else { + // 添加该样式 + newStyle = currentStyle | style; + } + + // 移除旧的样式 + for (StyleSpan span : existingSpans) { + ssb.removeSpan(span); + } + + // 添加新的样式 + ssb.setSpan(new StyleSpan(newStyle), start, end, Spannable.SPAN_EXCLUSIVE_INCLUSIVE); + setText(ssb); + setSelection(start, end); + } + } } diff --git a/src/main/java/net/micode/notes/ui/NoteItemData.java b/src/main/java/net/micode/notes/ui/NoteItemData.java index 44825ee..e2dc7c6 100644 --- a/src/main/java/net/micode/notes/ui/NoteItemData.java +++ b/src/main/java/net/micode/notes/ui/NoteItemData.java @@ -54,6 +54,9 @@ public class NoteItemData { NoteColumns.WIDGET_ID, NoteColumns.WIDGET_TYPE, NoteColumns.PINNED, + NoteColumns.IS_LOCKED, + NoteColumns.LOCK_PASSWORD, + NoteColumns.LOCK_TYPE, }; /** @@ -120,6 +123,21 @@ public class NoteItemData { * 查询结果中置顶状态列的索引 */ private static final int PINNED_COLUMN = 12; + + /** + * 查询结果中锁定状态列的索引 + */ + private static final int IS_LOCKED_COLUMN = 13; + + /** + * 查询结果中锁定密码列的索引 + */ + private static final int LOCK_PASSWORD_COLUMN = 14; + + /** + * 查询结果中锁定类型列的索引 + */ + private static final int LOCK_TYPE_COLUMN = 15; /** * 笔记ID @@ -131,6 +149,21 @@ public class NoteItemData { */ private boolean mPinned; + /** + * 锁定状态 + */ + private boolean mIsLocked; + + /** + * 锁定密码 + */ + private String mLockPassword; + + /** + * 锁定类型 + */ + private int mLockType; + /** * 提醒日期 */ @@ -236,12 +269,16 @@ public class NoteItemData { mNotesCount = cursor.getInt(NOTES_COUNT_COLUMN); mParentId = cursor.getLong(PARENT_ID_COLUMN); mSnippet = cursor.getString(SNIPPET_COLUMN); + // 先替换标签,保留HTML格式以便在列表中显示富文本 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); mPinned = (cursor.getInt(PINNED_COLUMN) > 0) ? true : false; + mIsLocked = (cursor.getInt(IS_LOCKED_COLUMN) > 0) ? true : false; + mLockPassword = cursor.getString(LOCK_PASSWORD_COLUMN); + mLockType = cursor.getInt(LOCK_TYPE_COLUMN); mPhoneNumber = ""; if (mParentId == Notes.ID_CALL_RECORD_FOLDER) { @@ -475,6 +512,54 @@ public class NoteItemData { public void setPinned(boolean pinned) { mPinned = pinned; } + + /** + * 获取锁定状态 + * @return 锁定状态,true表示已锁定,false表示未锁定 + */ + public boolean isLocked() { + return mIsLocked; + } + + /** + * 设置锁定状态 + * @param locked 锁定状态,true表示锁定,false表示解锁 + */ + public void setLocked(boolean locked) { + mIsLocked = locked; + } + + /** + * 获取锁定密码 + * @return 锁定密码 + */ + public String getLockPassword() { + return mLockPassword; + } + + /** + * 设置锁定密码 + * @param password 锁定密码 + */ + public void setLockPassword(String password) { + mLockPassword = password; + } + + /** + * 获取锁定类型 + * @return 锁定类型,0表示笔记,1表示文件夹 + */ + public int getLockType() { + return mLockType; + } + + /** + * 设置锁定类型 + * @param type 锁定类型,0表示笔记,1表示文件夹 + */ + public void setLockType(int type) { + mLockType = type; + } /** * 获取笔记类型(静态方法) diff --git a/src/main/java/net/micode/notes/ui/NotesListActivity.java b/src/main/java/net/micode/notes/ui/NotesListActivity.java index 78aa3f9..a32e94c 100644 --- a/src/main/java/net/micode/notes/ui/NotesListActivity.java +++ b/src/main/java/net/micode/notes/ui/NotesListActivity.java @@ -115,6 +115,127 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt */ private enum ListEditState { NOTE_LIST, SUB_FOLDER, CALL_RECORD_FOLDER + } + + /** + * 显示密码输入对话框 + *

+ * 该方法用于显示一个密码输入对话框,让用户输入密码来锁定选中的笔记或文件夹 + *

+ */ + private void showPasswordDialog() { + final EditText passwordEditText = new EditText(this); + passwordEditText.setHint(R.string.hint_enter_password); + passwordEditText.setInputType(android.text.InputType.TYPE_CLASS_TEXT | android.text.InputType.TYPE_TEXT_VARIATION_PASSWORD); + + new AlertDialog.Builder(this) + .setTitle(R.string.dialog_enter_password) + .setView(passwordEditText) + .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + String password = passwordEditText.getText().toString(); + if (!TextUtils.isEmpty(password)) { + toggleLockedStatus(password); + } + } + }) + .setNegativeButton(android.R.string.cancel, null) + .show(); + } + + /** + * 切换锁定状态 + *

+ * 该方法用于切换选中笔记或文件夹的锁定状态,使用异步任务处理数据库操作 + *

+ * @param password 用于锁定的密码 + */ + private void toggleLockedStatus(final String password) { + final HashSet selectedIds = mNotesListAdapter.getSelectedItemIds(); + final int selectedCount = mNotesListAdapter.getSelectedCount(); + + new AsyncTask() { + protected Integer doInBackground(Void... unused) { + int finalLockedStatus = -1; // 默认为-1,表示未处理 + for (Long noteId : selectedIds) { + // 查询当前便签的锁定状态 + Cursor cursor = mContentResolver.query(Notes.CONTENT_NOTE_URI, + new String[]{NoteColumns.IS_LOCKED}, + NoteColumns.ID + "=?", + new String[]{String.valueOf(noteId)}, + null); + + if (cursor != null && cursor.moveToFirst()) { + int currentLocked = cursor.getInt(0); + // 切换锁定状态 + int newLocked = currentLocked == 1 ? 0 : 1; + finalLockedStatus = newLocked; // 保存最终锁定状态 + + ContentValues values = new ContentValues(); + values.put(NoteColumns.IS_LOCKED, newLocked); + + if (newLocked == 1) { + // 如果是锁定操作,设置密码和锁定类型 + values.put(NoteColumns.LOCK_PASSWORD, encryptPassword(password)); + // 判断是笔记还是文件夹 + Cursor typeCursor = mContentResolver.query(Notes.CONTENT_NOTE_URI, + new String[]{NoteColumns.TYPE}, + NoteColumns.ID + "=?", + new String[]{String.valueOf(noteId)}, + null); + if (typeCursor != null && typeCursor.moveToFirst()) { + int type = typeCursor.getInt(0); + values.put(NoteColumns.LOCK_TYPE, type == Notes.TYPE_FOLDER ? Notes.LOCK_TYPE_FOLDER : Notes.LOCK_TYPE_NOTE); + typeCursor.close(); + } + } else { + // 如果是解锁操作,清空密码 + values.put(NoteColumns.LOCK_PASSWORD, ""); + } + + mContentResolver.update(Notes.CONTENT_NOTE_URI, + values, + NoteColumns.ID + "=?", + new String[]{String.valueOf(noteId)}); + + cursor.close(); + } + } + return finalLockedStatus; + } + + @Override + protected void onPostExecute(Integer finalLockedStatus) { + String message = finalLockedStatus == 1 ? getString(R.string.message_note_locked) : getString(R.string.message_note_unlocked); + Toast.makeText(NotesListActivity.this, message, Toast.LENGTH_SHORT).show(); + // 重新查询数据,更新列表 + startAsyncNotesListQuery(); + mModeCallBack.finishActionMode(); + } + }.execute(); + } + + /** + * 加密密码 + *

+ * 该方法使用Base64和ANDROID_ID对密码进行加密 + *

+ * @param password 原始密码 + * @return 加密后的密码 + */ + private String encryptPassword(String password) { + try { + // 获取设备的ANDROID_ID作为加密密钥 + String androidId = android.provider.Settings.Secure.getString(getContentResolver(), + android.provider.Settings.Secure.ANDROID_ID); + // 使用简单的加密算法:将密码与ANDROID_ID拼接后进行Base64编码 + String combined = password + androidId; + return android.util.Base64.encodeToString(combined.getBytes(), android.util.Base64.DEFAULT); + } catch (Exception e) { + Log.e(TAG, "Password encryption failed", e); + return password; // 加密失败时返回原始密码 + } }; /** 当前列表编辑状态 */ @@ -195,6 +316,52 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.note_list); + + // 上移底部系统栏,解决写便签按钮与底部系统栏之间的多余间距 + View decorView = getWindow().getDecorView(); + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.R) { + // Android 11+ 使用新的WindowInsetsController API + android.view.WindowInsetsController insetsController = decorView.getWindowInsetsController(); + if (insetsController != null) { + // 隐藏底部导航栏 + insetsController.hide(android.view.WindowInsets.Type.navigationBars()); + // 设置系统栏行为,允许滑动显示 + insetsController.setSystemBarsBehavior( + android.view.WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE); + } + } else if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) { + // Android 4.1-10 使用旧的系统UI可见性API + int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION + | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION + | View.SYSTEM_UI_FLAG_LAYOUT_STABLE; + decorView.setSystemUiVisibility(uiOptions); + } + + // 添加系统UI可见性变化监听器,确保系统栏保持上移状态 + decorView.setOnSystemUiVisibilityChangeListener( + new View.OnSystemUiVisibilityChangeListener() { + @Override + public void onSystemUiVisibilityChange(int visibility) { + // 当系统UI可见性变化时,重新设置系统UI可见性 + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.R) { + // Android 11+ 使用新API + android.view.WindowInsetsController insetsController = decorView.getWindowInsetsController(); + if (insetsController != null) { + insetsController.hide(android.view.WindowInsets.Type.navigationBars()); + } + } else if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) { + // Android 4.1-10 使用旧API + if ((visibility & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) == 0) { + int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION + | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION + | View.SYSTEM_UI_FLAG_LAYOUT_STABLE; + decorView.setSystemUiVisibility(uiOptions); + } + } + } + } + ); + initResources(); /** @@ -379,6 +546,11 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt if (pinMenu != null) { pinMenu.setOnMenuItemClickListener(this); } + // 添加锁定菜单初始化 + MenuItem lockMenu = menu.findItem(R.id.lock); + if (lockMenu != null) { + lockMenu.setOnMenuItemClickListener(this); + } mActionMode = mode; mNotesListAdapter.setChoiceMode(true); mNotesListView.setLongClickable(false); @@ -541,6 +713,9 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt case R.id.pin: togglePinnedStatus(); break; + case R.id.lock: + showPasswordDialog(); + break; default: return false; } @@ -875,11 +1050,72 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt *

* @param data 要打开的笔记数据项 */ - private void openNode(NoteItemData data) { - Intent intent = new Intent(this, NoteEditActivity.class); - intent.setAction(Intent.ACTION_VIEW); - intent.putExtra(Intent.EXTRA_UID, data.getId()); - this.startActivityForResult(intent, REQUEST_CODE_OPEN_NODE); + private void openNode(final NoteItemData data) { + // 检查笔记是否被锁定 + if (data.isLocked()) { + final EditText passwordEditText = new EditText(this); + passwordEditText.setHint(R.string.hint_enter_password); + passwordEditText.setInputType(android.text.InputType.TYPE_CLASS_TEXT | android.text.InputType.TYPE_TEXT_VARIATION_PASSWORD); + + new AlertDialog.Builder(this) + .setTitle(R.string.dialog_enter_password) + .setView(passwordEditText) + .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + String password = passwordEditText.getText().toString(); + if (!TextUtils.isEmpty(password)) { + verifyPasswordAndOpenNote(data.getId(), password); + } + } + }) + .setNegativeButton(android.R.string.cancel, null) + .show(); + } else { + // 未锁定,直接打开笔记 + Intent intent = new Intent(this, NoteEditActivity.class); + intent.setAction(Intent.ACTION_VIEW); + intent.putExtra(Intent.EXTRA_UID, data.getId()); + startActivityForResult(intent, REQUEST_CODE_OPEN_NODE); + } + } + + /** + * 验证密码并打开笔记 + *

+ * 该方法完成以下工作: + * 1. 查询笔记的加密密码 + * 2. 验证密码是否正确 + * 3. 如果正确,打开笔记;否则显示错误信息 + *

+ * @param noteId 笔记ID + * @param password 用户输入的密码 + */ + private void verifyPasswordAndOpenNote(final long noteId, String password) { + // 查询笔记的加密密码 + String[] projection = {NoteColumns.LOCK_PASSWORD}; + String selection = NoteColumns.ID + "=?"; + String[] selectionArgs = {String.valueOf(noteId)}; + + Cursor cursor = getContentResolver().query(Notes.CONTENT_NOTE_URI, projection, selection, selectionArgs, null); + String encryptedPassword = null; + + if (cursor != null && cursor.moveToFirst()) { + encryptedPassword = cursor.getString(0); + cursor.close(); + } + + // 验证密码是否正确 + if (encryptedPassword != null && encryptedPassword.equals(encryptPassword(password))) { + // 密码正确,打开笔记 + Intent intent = new Intent(this, NoteEditActivity.class); + intent.setAction(Intent.ACTION_VIEW); + intent.putExtra(Intent.EXTRA_UID, noteId); + startActivityForResult(intent, REQUEST_CODE_OPEN_NODE); + } else { + // 密码错误,显示错误信息 + Toast.makeText(this, getString(R.string.error_wrong_password), Toast.LENGTH_SHORT).show(); + } } /** diff --git a/src/main/java/net/micode/notes/ui/NotesListAdapter.java b/src/main/java/net/micode/notes/ui/NotesListAdapter.java index e9f5a8a..138e3e7 100644 --- a/src/main/java/net/micode/notes/ui/NotesListAdapter.java +++ b/src/main/java/net/micode/notes/ui/NotesListAdapter.java @@ -289,15 +289,29 @@ public class NotesListAdapter extends CursorAdapter { */ private void calcNotesCount() { mNotesCount = 0; - for (int i = 0; i < getCount(); i++) { - Cursor c = (Cursor) getItem(i); - if (c != null) { - if (NoteItemData.getNoteType(c) == Notes.TYPE_NOTE) { - mNotesCount++; + Cursor cursor = getCursor(); + if (cursor != null && !cursor.isClosed()) { + // 使用 try-finally 块确保 cursor 位置正确恢复 + int originalPosition = cursor.getPosition(); + try { + if (cursor.moveToFirst()) { + do { + try { + if (NoteItemData.getNoteType(cursor) == Notes.TYPE_NOTE) { + mNotesCount++; + } + } catch (Exception e) { + // 捕获可能的异常,避免崩溃 + Log.e(TAG, "Error calculating note count: " + e.getMessage()); + break; + } + } while (cursor.moveToNext()); + } + } finally { + // 恢复 cursor 到原始位置 + if (!cursor.isClosed()) { + cursor.moveToPosition(originalPosition); } - } else { - Log.e(TAG, "Invalid cursor"); - return; } } } diff --git a/src/main/java/net/micode/notes/ui/NotesListItem.java b/src/main/java/net/micode/notes/ui/NotesListItem.java index b6222fd..c08425c 100644 --- a/src/main/java/net/micode/notes/ui/NotesListItem.java +++ b/src/main/java/net/micode/notes/ui/NotesListItem.java @@ -17,6 +17,7 @@ package net.micode.notes.ui; import android.content.Context; +import android.text.Html; import android.text.format.DateUtils; import android.view.View; import android.widget.CheckBox; @@ -103,7 +104,7 @@ public class NotesListItem extends LinearLayout { mCallName.setVisibility(View.VISIBLE); mCallName.setText(data.getCallName()); mTitle.setTextAppearance(context,R.style.TextAppearanceSecondaryItem); - mTitle.setText(DataUtils.getFormattedSnippet(data.getSnippet())); + mTitle.setText(Html.fromHtml(DataUtils.getFormattedSnippet(data.getSnippet()))); if (data.hasAlert()) { mAlert.setImageResource(R.drawable.clock); mAlert.setVisibility(View.VISIBLE); @@ -120,7 +121,7 @@ public class NotesListItem extends LinearLayout { data.getNotesCount())); mAlert.setVisibility(View.GONE); } else { - mTitle.setText(DataUtils.getFormattedSnippet(data.getSnippet())); + mTitle.setText(Html.fromHtml(DataUtils.getFormattedSnippet(data.getSnippet()))); if (data.hasAlert()) { mAlert.setImageResource(R.drawable.clock); mAlert.setVisibility(View.VISIBLE); diff --git a/src/main/res/layout/note_edit.xml b/src/main/res/layout/note_edit.xml index e0cf16b..3344dcc 100644 --- a/src/main/res/layout/note_edit.xml +++ b/src/main/res/layout/note_edit.xml @@ -57,11 +57,81 @@ android:layout_marginRight="8dip" android:textAppearance="@style/TextAppearanceSecondaryItem" /> + +
\ No newline at end of file diff --git a/src/main/res/menu/note_list_options.xml b/src/main/res/menu/note_list_options.xml index 749aa3e..165c7d2 100644 --- a/src/main/res/menu/note_list_options.xml +++ b/src/main/res/menu/note_list_options.xml @@ -33,4 +33,9 @@ android:id="@+id/pin" android:title="@string/menu_pin" android:showAsAction="always|withText" /> + + \ No newline at end of file diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index 02d3841..ed89ef7 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -50,6 +50,13 @@ Move to folder Pin Unpin + Lock + Unlock + Enter Password + Please enter password + Incorrect password + Note locked successfully + Note unlocked successfully %d selected Nothing selected, the operation is invalid Select all -- 2.34.1 From ea4ebf9efcb29185013f26f6a9928aec1d534b51 Mon Sep 17 00:00:00 2001 From: tb202302116011 <1271741232@qq.com> Date: Wed, 21 Jan 2026 14:41:10 +0800 Subject: [PATCH 27/30] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=BA=86=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E5=88=A0=E9=99=A4=E7=A9=BA=E7=99=BD=E4=BE=BF=E7=AD=BE?= =?UTF-8?q?=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/net/micode/notes/model/WorkingNote.java | 16 ++++++++++++++-- .../micode/notes/ui/NotesPreferenceActivity.java | 2 +- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/micode/notes/model/WorkingNote.java b/src/main/java/net/micode/notes/model/WorkingNote.java index e3b2398..d303c30 100644 --- a/src/main/java/net/micode/notes/model/WorkingNote.java +++ b/src/main/java/net/micode/notes/model/WorkingNote.java @@ -29,7 +29,9 @@ import net.micode.notes.data.Notes.DataColumns; import net.micode.notes.data.Notes.DataConstants; import net.micode.notes.data.Notes.NoteColumns; import net.micode.notes.data.Notes.TextNote; +import net.micode.notes.tool.DataUtils; import net.micode.notes.tool.ResourceParser.NoteBgResources; +import java.util.HashSet; /** @@ -331,6 +333,7 @@ public class WorkingNote { *

* 将当前工作笔记保存到数据库中。如果笔记不存在,则创建新笔记; * 如果笔记已存在,则更新现有笔记。 + * 如果笔记内容为空且已存在于数据库,则删除该笔记。 *

* * @return 保存成功返回true,否则返回false @@ -356,6 +359,15 @@ public class WorkingNote { } return true; } else { + // 添加删除逻辑:如果笔记内容为空且已存在于数据库,则删除该笔记 + if (existInDatabase() && TextUtils.isEmpty(mContent)) { + HashSet ids = new HashSet(); + ids.add(mNoteId); + if (!DataUtils.batchDeleteNotes(mContext.getContentResolver(), ids)) { + Log.e(TAG, "Delete empty note error"); + } + mIsDeleted = true; + } return false; } } @@ -376,13 +388,13 @@ public class WorkingNote { * 检查笔记是否值得保存 *

* 检查当前工作笔记是否值得保存到数据库中。如果笔记已删除、 - * 内容为空且不存在于数据库中,或者存在于数据库但未修改,则不值得保存。 + * 内容为空,或者存在于数据库但未修改,则不值得保存。 *

* * @return 值得保存返回true,否则返回false */ private boolean isWorthSaving() { - if (mIsDeleted || (!existInDatabase() && TextUtils.isEmpty(mContent)) + if (mIsDeleted || TextUtils.isEmpty(mContent) || (existInDatabase() && !mNote.isLocalModified())) { return false; } else { diff --git a/src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java b/src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java index 69984ff..5cca48d 100644 --- a/src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java +++ b/src/main/java/net/micode/notes/ui/NotesPreferenceActivity.java @@ -110,7 +110,7 @@ public class NotesPreferenceActivity extends PreferenceActivity { mReceiver = new GTaskReceiver(); IntentFilter filter = new IntentFilter(); filter.addAction(GTaskSyncService.GTASK_SERVICE_BROADCAST_NAME); - registerReceiver(mReceiver, filter); + registerReceiver(mReceiver, filter, Context.RECEIVER_EXPORTED); mOriAccounts = null; View header = LayoutInflater.from(this).inflate(R.layout.settings_header, null); -- 2.34.1 From 53adea29496bef75ba189af0fcefdd62c0e23fde Mon Sep 17 00:00:00 2001 From: tb202302116011 <1271741232@qq.com> Date: Thu, 22 Jan 2026 15:33:50 +0800 Subject: [PATCH 28/30] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=BA=86=E4=BE=BF?= =?UTF-8?q?=E7=AD=BE=E6=A8=A1=E6=9D=BF=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/AndroidManifest.xml | 9 +- .../net/micode/notes/model/NoteTemplate.java | 119 ++++++++ .../micode/notes/model/TemplateManager.java | 271 ++++++++++++++++++ .../net/micode/notes/ui/NoteEditActivity.java | 33 +++ .../notes/ui/TemplateSelectActivity.java | 207 +++++++++++++ src/main/res/drawable/template_item_bg.xml | 21 ++ src/main/res/drawable/template_type_bg.xml | 9 + src/main/res/layout/template_item.xml | 43 +++ src/main/res/layout/template_select.xml | 59 ++++ src/main/res/menu/note_edit.xml | 4 + src/main/res/values/strings.xml | 10 + 11 files changed, 784 insertions(+), 1 deletion(-) create mode 100644 src/main/java/net/micode/notes/model/NoteTemplate.java create mode 100644 src/main/java/net/micode/notes/model/TemplateManager.java create mode 100644 src/main/java/net/micode/notes/ui/TemplateSelectActivity.java create mode 100644 src/main/res/drawable/template_item_bg.xml create mode 100644 src/main/res/drawable/template_type_bg.xml create mode 100644 src/main/res/layout/template_item.xml create mode 100644 src/main/res/layout/template_select.xml diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml index cb43220..2350512 100644 --- a/src/main/AndroidManifest.xml +++ b/src/main/AndroidManifest.xml @@ -48,7 +48,7 @@ - > + @@ -67,6 +67,13 @@ android:resource="@xml/searchable" /> + + + mTemplates; + + private TemplateManager(Context context) { + mContext = context.getApplicationContext(); + loadTemplates(); + } + + public static synchronized TemplateManager getInstance(Context context) { + if (sInstance == null) { + sInstance = new TemplateManager(context); + } + return sInstance; + } + + /** + * 加载所有模板,包括系统模板和自定义模板 + */ + private void loadTemplates() { + mTemplates = new ArrayList<>(); + + // 先添加系统模板 + addSystemTemplates(); + + // 然后加载自定义模板 + loadCustomTemplates(); + } + + /** + * 添加系统模板 + */ + private void addSystemTemplates() { + // 会议记录模板 + NoteTemplate meetingTemplate = new NoteTemplate(); + meetingTemplate.setId(1); + meetingTemplate.setName("会议记录"); + meetingTemplate.setContent("会议记录

" + + "会议主题
" + + "会议时间
" + + "会议地点
" + + "参会人员
" + + "主持人

" + + "会议议程
" + + "1.
" + + "2.
" + + "3.

" + + "会议内容

" + + "决议事项
" + + "1.
" + + "2.
" + + "3.

" + + "行动项
" + + "任务负责人截止日期状态

" + + "

" + + "下次会议
" + + "时间
" + + "主题
"); + meetingTemplate.setType(NoteTemplate.TYPE_SYSTEM); + mTemplates.add(meetingTemplate); + + // 待办事项模板 + NoteTemplate todoTemplate = new NoteTemplate(); + todoTemplate.setId(2); + todoTemplate.setName("待办事项"); + todoTemplate.setContent("待办事项

" + + "日期

" + + "今日待办
" + + "☐
" + + "☐
" + + "☐
" + + "☐
" + + "☐

" + + "重要事项
" + + "⭐
" + + "⭐

" + + "已完成
" + + "✓
" + + "✓
" + + "✓
"); + todoTemplate.setType(NoteTemplate.TYPE_SYSTEM); + mTemplates.add(todoTemplate); + + // 购物清单模板 + NoteTemplate shoppingTemplate = new NoteTemplate(); + shoppingTemplate.setId(3); + shoppingTemplate.setName("购物清单"); + shoppingTemplate.setContent("购物清单

" + + "日期
" + + "商店
" + + "预算

" + + "清单
" + + "物品数量单价备注状态
" + + " ☐
" + + " ☐
" + + " ☐
" + + " ☐
" + + " ☐

" + + "总计
" + + "实际花费
" + + "节省/超支
"); + shoppingTemplate.setType(NoteTemplate.TYPE_SYSTEM); + mTemplates.add(shoppingTemplate); + } + + /** + * 加载自定义模板 + */ + private void loadCustomTemplates() { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(mContext); + String templatesJson = prefs.getString(PREF_TEMPLATES, "[]"); + + try { + JSONArray jsonArray = new JSONArray(templatesJson); + for (int i = 0; i < jsonArray.length(); i++) { + JSONObject json = jsonArray.getJSONObject(i); + NoteTemplate template = NoteTemplate.fromJson(json); + mTemplates.add(template); + } + } catch (JSONException e) { + e.printStackTrace(); + } + } + + /** + * 保存自定义模板到SharedPreferences + */ + private void saveCustomTemplates() { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(mContext); + SharedPreferences.Editor editor = prefs.edit(); + + JSONArray jsonArray = new JSONArray(); + for (NoteTemplate template : mTemplates) { + if (NoteTemplate.TYPE_CUSTOM.equals(template.getType())) { + try { + jsonArray.put(template.toJson()); + } catch (JSONException e) { + e.printStackTrace(); + } + } + } + + editor.putString(PREF_TEMPLATES, jsonArray.toString()); + editor.apply(); + } + + /** + * 获取所有模板 + */ + public List getAllTemplates() { + return new ArrayList<>(mTemplates); + } + + /** + * 获取系统模板 + */ + public List getSystemTemplates() { + List systemTemplates = new ArrayList<>(); + for (NoteTemplate template : mTemplates) { + if (NoteTemplate.TYPE_SYSTEM.equals(template.getType())) { + systemTemplates.add(template); + } + } + return systemTemplates; + } + + /** + * 获取自定义模板 + */ + public List getCustomTemplates() { + List customTemplates = new ArrayList<>(); + for (NoteTemplate template : mTemplates) { + if (NoteTemplate.TYPE_CUSTOM.equals(template.getType())) { + customTemplates.add(template); + } + } + return customTemplates; + } + + /** + * 根据ID获取模板 + */ + public NoteTemplate getTemplateById(long id) { + for (NoteTemplate template : mTemplates) { + if (template.getId() == id) { + return template; + } + } + return null; + } + + /** + * 添加自定义模板 + */ + public void addCustomTemplate(NoteTemplate template) { + // 生成唯一ID + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(mContext); + long id = prefs.getLong(PREF_TEMPLATE_ID_COUNTER, 1000); + + template.setId(id); + template.setType(NoteTemplate.TYPE_CUSTOM); + template.setCreateTime(System.currentTimeMillis()); + template.setUpdateTime(System.currentTimeMillis()); + + mTemplates.add(template); + + // 更新ID计数器 + prefs.edit().putLong(PREF_TEMPLATE_ID_COUNTER, id + 1).apply(); + + // 保存自定义模板 + saveCustomTemplates(); + } + + /** + * 删除自定义模板 + */ + public boolean deleteCustomTemplate(long id) { + NoteTemplate templateToRemove = null; + for (NoteTemplate template : mTemplates) { + if (template.getId() == id && NoteTemplate.TYPE_CUSTOM.equals(template.getType())) { + templateToRemove = template; + break; + } + } + + if (templateToRemove != null) { + mTemplates.remove(templateToRemove); + saveCustomTemplates(); + return true; + } + return false; + } + + /** + * 更新自定义模板 + */ + public boolean updateCustomTemplate(NoteTemplate updatedTemplate) { + for (int i = 0; i < mTemplates.size(); i++) { + NoteTemplate template = mTemplates.get(i); + if (template.getId() == updatedTemplate.getId() && + NoteTemplate.TYPE_CUSTOM.equals(template.getType())) { + + updatedTemplate.setUpdateTime(System.currentTimeMillis()); + mTemplates.set(i, updatedTemplate); + saveCustomTemplates(); + return true; + } + } + return false; + } +} diff --git a/src/main/java/net/micode/notes/ui/NoteEditActivity.java b/src/main/java/net/micode/notes/ui/NoteEditActivity.java index 184fe3b..2777247 100644 --- a/src/main/java/net/micode/notes/ui/NoteEditActivity.java +++ b/src/main/java/net/micode/notes/ui/NoteEditActivity.java @@ -141,6 +141,8 @@ public class NoteEditActivity extends Activity implements OnClickListener, /** 日志标签 */ private static final String TAG = "NoteEditActivity"; + /** 请求选择模板的请求码 */ + private static final int REQUEST_SELECT_TEMPLATE = 100; /** 头部视图持有者 */ private HeadViewHolder mNoteHeaderHolder; @@ -764,12 +766,43 @@ public class NoteEditActivity extends Activity implements OnClickListener, case R.id.menu_unlock: showPasswordDialogForUnlock(); break; + case R.id.menu_template: + // 启动模板选择Activity + Intent intent = new Intent(this, TemplateSelectActivity.class); + getWorkingText(); + intent.putExtra(TemplateSelectActivity.EXTRA_CURRENT_NOTE_CONTENT, mWorkingNote.getContent()); + startActivityForResult(intent, REQUEST_SELECT_TEMPLATE); + break; default: break; } return true; } + /** + * 处理从其他Activity返回的结果 + */ + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (requestCode == REQUEST_SELECT_TEMPLATE && resultCode == RESULT_OK && data != null) { + // 获取选择的模板内容 + String templateContent = data.getStringExtra(TemplateSelectActivity.EXTRA_TEMPLATE_CONTENT); + if (templateContent != null) { + // 应用模板内容到当前笔记 + mWorkingNote.setWorkingText(templateContent); + if (mWorkingNote.getCheckListMode() == TextNote.MODE_CHECK_LIST) { + switchToListMode(templateContent); + } else { + // 解析HTML格式的富文本内容,确保粗体和回车能正确显示 + CharSequence htmlContent = Html.fromHtml(templateContent); + mNoteEditor.setText(getHighlightQueryResult(htmlContent, mUserQuery)); + mNoteEditor.setSelection(mNoteEditor.getText().length()); + } + } + } + } + /** * 设置笔记的提醒时间 *

diff --git a/src/main/java/net/micode/notes/ui/TemplateSelectActivity.java b/src/main/java/net/micode/notes/ui/TemplateSelectActivity.java new file mode 100644 index 0000000..46999d5 --- /dev/null +++ b/src/main/java/net/micode/notes/ui/TemplateSelectActivity.java @@ -0,0 +1,207 @@ +package net.micode.notes.ui; + +import android.app.Activity; +import android.app.AlertDialog; +import android.content.DialogInterface; +import android.content.Intent; +import android.os.Bundle; +import android.text.TextUtils; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import net.micode.notes.R; +import net.micode.notes.model.NoteTemplate; +import net.micode.notes.model.TemplateManager; + +import java.util.List; + +/** + * 模板选择Activity,用于展示和选择笔记模板 + */ +public class TemplateSelectActivity extends Activity { + public static final String EXTRA_TEMPLATE_CONTENT = "template_content"; + public static final String EXTRA_CURRENT_NOTE_CONTENT = "current_note_content"; + + private RecyclerView mRecyclerView; + private TemplateAdapter mAdapter; + private List mTemplates; + private TemplateManager mTemplateManager; + private String mCurrentNoteContent; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.template_select); + + // 获取当前笔记内容 + mCurrentNoteContent = getIntent().getStringExtra(EXTRA_CURRENT_NOTE_CONTENT); + + // 初始化模板管理器 + mTemplateManager = TemplateManager.getInstance(this); + mTemplates = mTemplateManager.getAllTemplates(); + + // 初始化RecyclerView + mRecyclerView = findViewById(R.id.rv_templates); + mRecyclerView.setLayoutManager(new LinearLayoutManager(this)); + mAdapter = new TemplateAdapter(mTemplates); + mRecyclerView.setAdapter(mAdapter); + + // 初始化按钮点击事件 + findViewById(R.id.btn_close).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + + findViewById(R.id.btn_save_as_template).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + saveAsTemplate(); + } + }); + } + + /** + * 保存当前笔记作为自定义模板 + */ + private void saveAsTemplate() { + if (TextUtils.isEmpty(mCurrentNoteContent)) { + Toast.makeText(this, R.string.error_note_empty, Toast.LENGTH_SHORT).show(); + return; + } + + // 弹出对话框输入模板名称 + final EditText editText = new EditText(this); + editText.setHint(R.string.enter_template_name); + + new AlertDialog.Builder(this) + .setTitle(R.string.save_as_template) + .setView(editText) + .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + String templateName = editText.getText().toString().trim(); + if (TextUtils.isEmpty(templateName)) { + Toast.makeText(TemplateSelectActivity.this, R.string.error_template_name_empty, Toast.LENGTH_SHORT).show(); + return; + } + + // 创建并保存自定义模板 + NoteTemplate template = new NoteTemplate(); + template.setName(templateName); + template.setContent(mCurrentNoteContent); + template.setType(NoteTemplate.TYPE_CUSTOM); + + mTemplateManager.addCustomTemplate(template); + + // 更新模板列表 + mTemplates = mTemplateManager.getAllTemplates(); + mAdapter = new TemplateAdapter(mTemplates); + mRecyclerView.setAdapter(mAdapter); + + Toast.makeText(TemplateSelectActivity.this, R.string.message_template_saved, Toast.LENGTH_SHORT).show(); + } + }) + .setNegativeButton(android.R.string.cancel, null) + .show(); + } + + /** + * 模板适配器,用于在RecyclerView中展示模板列表 + */ + private class TemplateAdapter extends RecyclerView.Adapter { + private List mTemplates; + + public TemplateAdapter(List templates) { + mTemplates = templates; + } + + @Override + public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()) + .inflate(R.layout.template_item, parent, false); + return new ViewHolder(view); + } + + @Override + public void onBindViewHolder(ViewHolder holder, int position) { + final NoteTemplate template = mTemplates.get(position); + + holder.tvTemplateName.setText(template.getName()); + + // 设置模板类型标识 + if (NoteTemplate.TYPE_SYSTEM.equals(template.getType())) { + holder.tvTemplateType.setText(R.string.template_type_system); + holder.ivDelete.setVisibility(View.GONE); + } else { + holder.tvTemplateType.setText(R.string.template_type_custom); + holder.ivDelete.setVisibility(View.VISIBLE); + } + + // 设置点击事件 + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + // 返回选择的模板内容 + Intent intent = new Intent(); + intent.putExtra(EXTRA_TEMPLATE_CONTENT, template.getContent()); + setResult(RESULT_OK, intent); + finish(); + } + }); + + // 设置删除按钮点击事件 + holder.ivDelete.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new AlertDialog.Builder(TemplateSelectActivity.this) + .setTitle(R.string.alert_title_delete) + .setMessage(R.string.alert_message_delete_template) + .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + // 删除自定义模板 + mTemplateManager.deleteCustomTemplate(template.getId()); + + // 更新模板列表 + mTemplates.clear(); + mTemplates.addAll(mTemplateManager.getAllTemplates()); + notifyDataSetChanged(); + + Toast.makeText(TemplateSelectActivity.this, R.string.message_template_deleted, Toast.LENGTH_SHORT).show(); + } + }) + .setNegativeButton(android.R.string.cancel, null) + .show(); + } + }); + } + + @Override + public int getItemCount() { + return mTemplates.size(); + } + + public class ViewHolder extends RecyclerView.ViewHolder { + public TextView tvTemplateName; + public TextView tvTemplateType; + public ImageView ivDelete; + + public ViewHolder(View itemView) { + super(itemView); + tvTemplateName = itemView.findViewById(R.id.tv_template_name); + tvTemplateType = itemView.findViewById(R.id.tv_template_type); + ivDelete = itemView.findViewById(R.id.iv_delete); + } + } + } +} diff --git a/src/main/res/drawable/template_item_bg.xml b/src/main/res/drawable/template_item_bg.xml new file mode 100644 index 0000000..15117c7 --- /dev/null +++ b/src/main/res/drawable/template_item_bg.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + diff --git a/src/main/res/drawable/template_type_bg.xml b/src/main/res/drawable/template_type_bg.xml new file mode 100644 index 0000000..94af0a3 --- /dev/null +++ b/src/main/res/drawable/template_type_bg.xml @@ -0,0 +1,9 @@ + + + + + + diff --git a/src/main/res/layout/template_item.xml b/src/main/res/layout/template_item.xml new file mode 100644 index 0000000..0834bb4 --- /dev/null +++ b/src/main/res/layout/template_item.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + diff --git a/src/main/res/layout/template_select.xml b/src/main/res/layout/template_select.xml new file mode 100644 index 0000000..e444f96 --- /dev/null +++ b/src/main/res/layout/template_select.xml @@ -0,0 +1,59 @@ + + + + + + + + +

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�AnGYpf1ELd$Ul^0la*Lh0PW4B$Qv+sXF+kk(4IiTE|7 zb_%qT0c%ORCC4pwV!t$@&0JxD6>a8=hAJ2*(r@9#;w|lFZ2QLps`Lk;oqf7y9Hz+s z1P_MgO&~A`_I(bz!gMTwyywi1uQDXb<{{R^%FgY)y8^8SbD@^sj7QkR6(QP2hEBMAiU1VpZuONWjYKPhiB;--iGzST#*;k^ZvM;bNjb0=Td5m%ckW0TT-q`c+jmg~h!(tt$foN=spP;Nt=U zCu>X5ksSm|I<+?N0H1xJxZtf=BVb#MyqX!R;D$J@&{W&( z5B?RK4LA-FcL{v(50`(p3^a3Ame+%S2cXb*-7D1HIlrpg;<_yZxn(||C^rMg9z}LP z>3{(z-mv)o-viM9Md4DGq)2o=UT%0Yc)SN{IduTAPN?w3w5@`o;^;#2_6Go`m9IEE zsBbGvy~?%@P$^ewqV_x&#_7+#(yxUM4qnkA2QcaX3XpDn3FLt{284Q7xt$}J3A7iB z3p2G&wA&CJC@Du^YPKEVF*=_0t*3>72q{2D%b#$q^uguE;W}K~NZrAq`~s2v6_}d9 zZ2L{>{yw;q70VQ@I(F@;{uMam zDdFD$@LwbR%k{w@960zTFg)c(EqX*1mINj$c|0q5M|xO@^HQXc0t`@FSKc%sY`g-( zW%|DX@A|?}e;gC>{rdn!zJdWr7FeFNiYQn?PcH>P@0aOl3=ZT#1m7wDxH$&koUlB= zRz#oy1U>DX6WmhKipZEZ0x(QAAWr@Y4OJ#Ec*XP>z(3akVMnAn(*u!pzL7wt;g9dh zpFQ}ahgPx(f3!8nF4k{$uz@2d2i*vIe=G396~BLQ)qHkysgn8OtQk!g`OWLsB!*`P zh80W*uNWwRlV^XzCR@}jni+6nJrH<}33swyA$0$3hUEFaCIE@gxi6qMpxkf8F?U`bwksp1H@ga&72xKNC>9@Q`1fNZ|aJWv00P zPr1GSf%xwH^7-_wW^&b?RG^`MqS|DU{0$3NBOti?AqUR#baZ*gZEyb0`YpG${aZ_O zq5oL5c>{QyYxRGrHmNp8mVpcZ%c@Par~j(j40O|6y;5yTi;8x~H7a*!^s@iX`#4=R zp;kWk>9fVGZS9LSCN78T2lsBuq^;X#smLtF3Gduf5vF=XdXImyouBIyg4uxeM;~)B zyHn?^@3lF8LClh5r}zuF%KU7hou z`8qHS2nZB!0_i3Janc_^#{kmGIo@PeiOZ$Wq$?~Y2ASN?N9}=Z6Ar*B?PM<&+hdei zYW+HiT=`y<8;W^ibL$rz{{GBKHYmHGaoXTk*B=K5Ai8MMtM&`NfNzKV{%vZHTYHfh z#AD>OBP%jVU#=CP1ttlLaz&o z+^+>y0;le#zdjvQu*VG=v|2NfN&L(wj@Cx(XHo+|H8698^B zhS~9kj5<=A4lGKkc2tT4fkVD!XN=L8)$x2IqK#*YZbr+lAZk6&_4JL(8&{jig!z&J zv_58k<-2yAp;u~-BHVwzCut$0?k;gm$XVp5t!n)GqfD{IlHcnf`;ywMM#II!0kLGN zunhwQxA+&mO~+uemKX;*YRGbt>L7{#D@D&Y~sNEsI&Ez5}kbGahMWv<8U)7f!=b*K| zRpgDjcZV=Tzm!<+kw%arenB{oGN+Y&gV3{H7F-LdpZHAh`^E!m*oMvY2-~F7?YZwpEk>OAD-&<;5C;B$ z6M*r@uyT!(^mTYBZ3f$YkFIu&*F`V{`$#@Q+>0cnUyNTLo z{rT%)nQOrTvATbNGm(ggm8Y%*m2U@QFT7^lnHSWB^KSlBshzZ~;n6k-6@fS(d`!vRCT9w21vHFjg~J6Q7Q+t z^_ap&O~hNczH&|)uH^L6b|MQEsGK`dVA$Knj@aYcmu20WO|Q*FCY=82OZK)KAMHS{ z+F;l-sYt5^Me)b?L9iX-0QF=!E^zGpc8?%X>XE6q&p+95P5C!2L?bZCev)acIDXR) zQtav66Oixd!Z4HqC|n7agT+biX)O8!DdhBWw_RmmxA2~FAEq=TEfRahG&LNVT9hG+ zFO^_&TO$#&{Y%H`ZZ%#~JRY&Ny^dUw^}+8V4x2+1`_5g7h~T0&i4*ig%^k6LTWvhN zfE4)lcD?!Ax8`$?LD9an0$7JY5e@EQwTj#lTibZ?+ZL@pri01+f`pU-B1c@e=4$t@8e>hpwvP+x8;GnFZq2Dv1MarAaG^t zpFZCLz#iieg9|QMGa&8Fpb{9Xeag~iDpE*BMdY}URlXmW+6{{HgktCA&QpbY0*4G# zc~m^CI*dx#OyYdsmf67~TAqwKkJyNTaR)t~`@45DA`iK%rLJ11(tP%!h-ofXYD-(Y zCk8Zo((G+5y|{`lk8x{OG;9fh{DPl4j0!F#FKTS^L5rhKDz!KRMhdr)5km*Tf1aT@ zHRskn#-&m+TH`;iFH%6s<*A7fwLWEjtY*3ER1vRa8}(~TvlS0Qd~{pF%g%Ue2kXIM zeUo35${atzMZ|g^M}Qidbi?Uww0h3Ii-JcuL_ivW*y)*k`5}AY{@(YeQU|?#7b*QZ zc2oo7=NZ-Xm{`?N!9Mr)Tmp$vQ`)!FnHpTL#uO8CRE_P_88Ww?$DLbi{qWxS)_nHm z`Bwj|FXn#5^nqY;%~Sk~h6D6n{z-U1G!m`XTrTJ17VS~$X0UQ!MHX?=)jB3K6Y^|V zs!i$cO4PiDyMuSWmLo>}H5Xh&(q>+y_Ofq`E!bzK)@y#db(1Jn=qfP;hf-|&i{>}4 zUCM`f+zx{-xbPI$s!L{`&*l>=^<<=EXUq2Q@US$I+<$dmxUM{5q9k6%dqTNZO#YhV zr!*izN?@sfFaFZx=!-!Z+qTbZ*gI~|NTvL%mUiz1Ey}!QJ9DWP9a4bFMUtrO9#jCw z+li%38t7C!Y%qMZyN9v@Nj(jeSZ0}zmLGQ|T6Ow8)*8=%FP7tdZ8kmN^-F57A@eRM#+ zaj-^=*(FP(int3^IZTn`0?De2_#Tj0=t&b=}mwuiPg zT0|o6MeLNNi;+inBg;Tn4xb>Voj{4=%3CzSrZ}0z3 z8)vq^u$|zrpRegPxLQbG$bO2VpRC)QVI_OqaMk|*%{BdRyMg~ZT<8GIU9hVeSMNKG ze(lm9rMlHM-lHt8R0J=S&wm?V$leazX9V{0DT)L!lxdy|WwJoEOCWMA0A-L;2lS@x z%)ut2xLgYlV_tEg0DR3~VgEAM8NnbfF2TfWzho$*yYu%K)HA}uoW;6F34w8SnsdMW zb$i#-vtLs^yP{mzjO)hB`9Hgte6q`wVf*6(w#y)P9!K6yC6*UoLV(j{KeV)HoX{H+ z^jLNR)i=v)p*vm%b8~Ymyj`zMfJ_OoUgBJ;vcX6yg58nrnqJ}cGM318U^do-Q*x)I z5dn?a&htzb^6<2#PMu?$+4gVG+q7kCp?U|Hsqu_O0{*76q7>zo*anp%zJd+rQb^mMx-%O8Umbd z$t6P3fFti&Z@YP8ZzOX{94a|qo)P#Kg0{HYnkiA8R~)dp%!x*~L2D}Hva2VnI?OZ| zmB6^~`_En3KgRwEcIk00L_V{&fY;qp#Xy`&5H90;KOF<9G*pct+HSI;x5zQ;>b_?A z6yj64KiyAfD=I(m3T#Pb2mJ^TNSGcNPwfbfnJ!tiof6HwZb^#i`jjK*Z(~%WL#x!; zh`AaO&5m;;Zi5#G>sIr&(lSwC&hQD zDSe$A)War=@phVH_#_Dz1~-~X`r2%~sFjdJ=n@msPITaMqfO>Pr{sC^S4s;G`(@@Zq=A1u>TpKwx0)Wj%0mv zv{RewiGQ?byMapWuowQWcfn~3K9WLf^l~AnB7CS8JGHEm3jMla>I(fVz@kMKM?k%xJ zlo8W)8xK)5$4r)5xsbY&p<=p==p~GJRB1 zZCO^Y+msn)jqCf21xn7PQ&U4O^*8l44NDK=%$juKT-aGImyCb>b~nt$1u`Ih=x-wQ zlcsjqVM`9+FpvcmQ$WdU=@C}DlO!bnoyx88lW#JEyR?y3FXq_!hUCa-F=H0g5Y*CM z?Zz=z@SB2o10(FY{ z3Wy4H2`^NXyN8eaFzq$pll9;lKg%xzzTW2Dqrs{7e(MR=7fTnz?5e?ZlOtI#ve)ceGO&SurxWF2>xGDA~YT?JPGxKi-k&YI0M9SbWMrnk!#ZfsEK|$-4w7vomy(_;A%oD!!|QmY6XPzswHa!`1W*& z3560SKTAZz z`wEKuR8L228NwiY*lqqK$y%s9OwRsmL^02e8`O`j)OEX5|MbVP*V4r)(9h)7tLE2# zPWzGVIM&BQ23cRph*iP7So*k6KjdLu=~^zhpFH%dZs2&!+@|;F_>`Jg0hxvw!@9qs z@&w4*Ce^}c#pghtcYS@FkRu0XxqjSdAZ9b;&8CQl&GHe6U1_WgtmSQ{3h{=<;C9Mq z&!+vc#;kbcdHZ`6nt8)L6m-jsRKs+H9~pYW3A9o-17v;C+#d_55>wm>J65#*G4 zAf8~BUGq@G7dSj6V6!gCv+JrtJ5yM2EGX+K)St-r`gD9}mkKUkrx+@YaSf;j@&yl{ zzcSqGaT3glVVc9i7)wkvr{ctFS|MRu4p2GKFRW2DHk(gE?8578Y~9O?g8Z(QCnZ`w z1H^fXcGo-?p-X@(7iNym|1^sMT7#*zl+e{=nN@8rpe32fb4|x$gf@lVKEyXqb3<`I zY*ib~>9>O;;$Az zrib;F7tD!4#0ur>sER%Gvkebu&cA#$E-0uR^D6^yC1XgF)Y-J%BgJ8+O*eGYdwU*c zozNgaWNOpbK{Ca~JeUrU zo(?>PB2Ip-9>ye-y)}j}7BbBICL&;Sy5a*@AZjLmoW9H7otu&j8>Uqge$Mlq%&*!Q zR0M^e_EGYa(Cw92%I~&*k>lLkWbDrU@XUYO$ZlFs;p}HcIYXjeU45~|kd;#9Acy8s z^*UNh>7vzOE-(~peERu7YB82kf?7jom)!d~Q@Ucr9T{!b>~^6U@>oNB^t+Ja8mjx_ zt+OnuuOO|KVq^hAS;T?kjAkA!2hA~NzRToSuag41flkTvhxelMJ>#!nk1W4o6PI=O zJ85X0QfK#UHTLEMtwrS4b^$vh$y)5|?!y&$P_oqoi&uLl!MSEe*a`a(mJyftD%h8C z7vlAp>EB zhM#!1bTRSfW;nmmhbpqQW5U<^k7015>?*;-aj$wUDl}$OTR?vgaJgij-fTX$3QNK0-EL(s|?fE+ZC)V>Z;QOU&3B>vacj6N^yS zA=oF~6Y`P;rjMHC>Z&C<_sXHD7@0_Jfnq!1F-FHLk5)5$uq*}Y(P@NVHHbf%In-Qm z6WcIb`oJ_5Fqy;W+A^E4v-(|%eM~<;g|%h(o;!OCPv2sz?S@c4X`I?dO&(FGMY5un zg6+6V=DV~F$lTd}j{T%KXF$0ekH}cV$X<5fl5Nu{Gp=L3meosIjBbEOiT7>DqgAFk z+xiAc`nXNf6~W$sOCoROQJBVPtOE2BO*0z8vLVrl>OB!`)Qrkro3GV7GgUi)H|mtJ4Mc%k(&OGjP+eQu9mI&o=H2yGm5=kMlEa=R^IQ`z^^OG>V< z;Sup^*FZnLf8@|5cU5$NcIJ`wO9^rZ|JLR3U9HDhQHq3HW??`zgd>t%oCLV;`nsh= zL}_{t8Oie_zT*9_dft|WxvyTuD$v^vXZ&IiKyQ2>w_Qluqw(KF4AK5zVce@j6n?l} zvvjP7taw#;;xZ|BQX6sk)*;RWajvkR%sM?wzg-eB=yMN$~l();O#c#JN#*~ zt-W&BI>uJW=!J90x0!^f zpZu_JB|TLvNY*p4my6wNgT9MHJmC>hD?0I=c5*-Bqpf^m6Z&1Hgn;3yla&TZZ1@E) z!l_8EJdBsTSl+lcbUs(_3Z0+Y{FZv~B z7MLr=pLmPh&$%+8{HZ@ajR(GUP-Ib;$5^IU%bE9c`-Fh8;71+w3IQdLJlW%M{T;rX6o>6OZY8Ce zL)pDa767N7!}Zup;zXN1&AE{rUx{LM*hgouhVu?w?K8TWgd6_vEpiO!L5Ui zFdD8Yrr=hyfQ!yZ2;1Q|#MqA19Ox4BHFilg?VtqT8#VS}4Q*EVc4}6@CXM~rwW>>3>Y0-WvA3 zO*ADEKm1b*7uk#dDM{-!UG~lS+lLTotk-m*6=32o%M@hmcm-N@G8;>DWLERO2|0*g z*-e`i&HR&*0QXI02^zca_Y$$jcJU?cYM0O5^BdnBkNjy7dj*pO?^^5LiLcm)Xr!-bi;^c{pi>)er-pR? z`D1FRdQr{#oB_8giS_e@&55Mjeddy60~f!{5S%flw^N}aLM?P}(~T>S?Wgy?{nYmp zmDFZV&B59jWO;9Sr>s-^FCa5I^_ueKh9ja%%9>?;scA-nV??o(@9d=xPTn1*X-8IT z*24_#8&#Gh$2O=z20!!aPVeSd195PP(KMIMSgm8!^s>)@Y4+B=L~#KRsyWG8`a6Af zRc|s3yce5|OZbNDkAmEj!yB|cqg7fek+$O+pyD=}{#g|fL)Y4@R?TzI30q@J|E?#6 zbI=k;yZs(Pve>{mQ#eY%__C5@swv~v!faOUoH{t62wThNvV`sZR^?yDK{A(V^8$zGAth`~Ldnn@M6|G0-7Coyn;!&tL zA5tdz;Ab|d3lbq=2aq%E;!aPc+ZkVsicBi+!uNN+*u zp#@~*lt8)JX!Q)(PXgR*y#8O*~aYr1)+Px!u}IKmKZl7b?Ou-^=ZeJMgp zsUr47E81`;Pz!0#eEu1Lf+iw$itzJbf8Q?`j&dH&t~RZ2moyv`9m`%k>LV+Vmr$+j zlKARIGLI}15mJOzd%7hl4XZ96I@_b0424jrBBSzOq5YqJ03={oQS$w!p5l3!^D{ST zB#X6``bQ_xs*PuPh8~~Jkq}wIaBsSUH?~4i_JMt8(g4;CEZaDB7a)dV-B~!UJ(}Ts zCs(rKsfPX8@-n)5opVRTD(kD9e>RyV*udWLYF*--7}F-`ZGz=TYCPi%5bLCH!%f6GlFYfx8NUImd*a zK)%H9e&%V!tvf2gJesz{5Q6KmMx3rTfLcA2-I5>!91zpx;!>uCm{e@Xt-`eWY$?uhI zGu_4a21rRIS7@5!KE-Azr~t~dOmkB~l2Jqi-fS$C3wY6)y2{Nh06n zr302z)RYzc(*+U;88b!pZ=lgh+r1($`PH%+O7;O!ZLyCD5gvxNP&g@aGkF=_1`qS<>Em;B7(aSuv* zP*|^W$%fPk^}8|rUxLGxf77&sQ*|U6$Hr1qSQH1Oj!U4dtcxl^)=OaDKpWo`R)5@Z z<|uV{PoFtSr_$+$gW^!JglEdXXv_~yNQf}4o%S*X2`_3A?0bNjs2`h@T>tTAknJzc zBoXeoUF*ifA*H%wflQ4y0uGtdLlTp?ABgq6!b|~d`?b}eRXnBUG1BsveJOeUIu4T} zw8&2~pZhg%pysRt^_!g|4bLDp(EkO2z+cKFXm!r-J{@MPXw}XlJFC-ktjIx0{Y}JZ zOE#U>fmh=DM1I;bkHFtM1C$Bdb`3+$aiwol~a2LgY0 zY-ZtDRwsKE*S%h=dvTs~?3DB+iOkukL8r&0*vhU{#0qMIYBuF(ASDP|wG2Vr;?g~S zgf<(@D5h-IX8tG9LsBK$p&o436K%;YaX#qe`r5j-Bx7Q6&acobWw%mXP(3Q zdR9d^?1~iVLyOy$*Te&$L~lj^X73B}kr}O(7%h_cZh}6C;gb zL2ptyur@jgfaY+cH=6={n{d+*l+Z8*=pzxm8X+KPtYQQ=C^Bo1X=un%)Nh|wz^4di z*SO%b3r`WNha#Gvw+@_|mu&#+G8>vq0`{hn?dzO^e;6?OB}hq0eXuj9D%i$@48-@! z6Bn8M-jP#t7u42%fu4hR-X#nN4iWc!@!!p65=sPBw(*bDJ|UHx_t!b+#?Pa9UXl*n z-`zK22MsCz{qsp=0oWCOG|%0{tG3!>p6M$Lb_Ey)wjW9|>K+iC*NHvcW$WNN$?S!c z>fo=ase1Rd4w+Hc0qGu@CX#KV--abED70jqfdLE!Bx8MM=UP>&mX9(CN13c|K7hqI zXtax1PLli6^@ZnT{hVUt3Q6+ffOe;C&KZwJ;!_ddliW9|EhM%!k|5jgX7JUFT_l4?|8fqEi&uY$=ea1jqP7O+dg-cSHLv=B(krIp2MVU52S>VM3*Z$F zoybi>_)$tceG@A!G^T4~fA9|B)^=y)ncDXwcJ7y1jfCQFJOQ&P>#QDVpCk4{<=3q? zj+unH2L5zAHUB2PGVh`iqvHLI4;OfnJv%MAy))Ugv&gh@Il7RwtKeaEe`$^Zs(p-@ zy+eaXz;REE5AOY#8*LZ%#374?owi>22bw2rx4Hy;6A-tr#}zsgE>XVPFa9`U0bi_X z`A`=nFL-F+`t0_Vu#C%{H4e#(x}I#3X7DA>)NV#}*;UfJm4PbBd0*~=Sp)pX;9ERi z3ym^)QM$fyyouXSzivXRWO#K=7RSHj2L}g_aJoG4pRzAX=Ay9_N1dpQg6svI$eDDK zd!SC_O6?R*)%F@};S0~%JbLpN7Zy@h-MUxOinkX4vkfQ9^XT~Vo<(|6B=?8T|0W-j-gr_v!N~6z zZ^7nK0E89qe~6e4;JrsksL~s=T)%<*q=&w9&5Of5fDY#p2>U3K z(7objv)(eeoO0wVxZN$(c5gWM!D|nZ;*DVM75~M;?P5Y`i8P-ft=4k<;9TaaUP+aK z&$T{2oQvEThyV}eJ13jL=B8U%{m!_FDY7DN7YIh&!>itXG?cn~ahO40_T^pQk?Gp| z;Wbcv4XVA%L)!;4;w+fLxWy~zb?4_9Nc=cfX82Zgj{2Hza=j(p6Sg~D`}Mlg!RCiv z6EkG&KDVa4ZWVPNK`m|A8tgyb5cFVkvN*&+r(X>m=%=p33}7KH_*d^f$t;fyy>_<= zEH-{A`$WZDd?KqZK0VB=#GhBy(`Mz9xy=+qXPtELRH=ToQ`N~*NX@-COT|(j=2Tv(3K`(hFOy8fe741kT6+o0%P4yL(IMgJS3vI1} zmI1#Ue9O3(4T92T2y4XXvRRgKusT=D_DyM6dz5;dSB+G5_C}8t44q@ItJiDV)&J!^ z#*lf~1Sbq={7BMn@j^xflgX=*=~;-IN907ET7;b|=8LpYUyXSqp_7|==aBMz=0H^t z`VKncs|Y-D5kdPhqb0@bSN9kpP=23L}b(#g@;5hZuh^s9s}T%OUY(Tph0MV98uJ@>zpq7 zE`dzZ5>Iw|yKyl07e6)6g22u@0~HrXJURU7vq)`B(~`UmL+= zu_dxXbX3c~ZZ7#^?ALvVn9+KfDacfbM{3JB(BX>ZO*)z3NUJ!{0wqI*QXT$ZM|RQ~ zX|@a2B~}*@ocK~aMe5puijTcPsa;s%&Zg+F95?fpDY7mEYBN5amm-!u!;iK|DBK#~ zbK$%bXk16?sqk?vyZ(v%;}#K?y^GhyGi_)iU85SdY3b#K&ucP7^1SjeI2*s%er@A*K@^m*bKBjgc+Mhxl*Z`C)=IW zqN2v`>wNT-zPquFD%-uPOuAW0#)uha_Pj?p15f68-6g%Q=?@ALI(1rtk}TRzGmzVzz)Y3- z3^Hiw5qb3Ml?O)$v@UqmOW)w5;e5^!6 zk)btYb^$&K;kfeC>toiwvLR|$w`ThTZ!PAoLpd#7@kj|=1*76mRXqHCdYlfkOoy_yB-t!307Z9_d;T)XtY8=5$ z+{=*v+Ujw2(+sDzMKY9T%t3R>_j>tgRPCZo%Qoe9W)*-ij8#*a$CHvfQ`rp5m0ul? zLlqvs&wt5p20?wI_vA|X8sqy`NmG6Bt+gU-_0%UmDmfu8BTBGBLpwJct(veE{>uxP zZYTs3|_Yt6aueAJX$Mf7G>h>bpDDh z8VWlG%ytNHOUjF7p0OA8HhuZX2vJhS zoFzL^fl$tb5MkfD!3r_T-@ zfC^h?)iw_GixIGxTcG;-3FCEiEdASNSW z*FZMKJC~VBt~^i}bt@{#QN*{ujFKm^QPJ{ShapCCRcEfkegfwM3~v-xCbO?D<5iUU zFXOJKJLXZ9)HREQw64UP6)fe8SsWRkiHkJjyQO0dIZiYqZOC)rrnhKXhu>}(XBE|# z*QA!buZNZ^lHotOEtM$ofmoHi`_)CB;`0gD*6^VpzXQ|#`Sa&w89DskX{ZRi#GO8K zz5AJUKr=KaNFO0k!ewTQU9`dY^8RrHNBlJ} zxN7OtPn7zODVWa#I+%^eQqppa`u~Pc(lcg-#zLGYT*PZH(S(hi1MeH#V zQ>i1~{Qj{MuD9GvO0-r#(o=ip8BBw*NniUQ&G_x5KrjuRmA}P1pH0K9UCNa6|8$r*6>(jq(1= z#yj3k%wdv6dS&33e|&$%f3^IiRHVI0}s!dLXus7yHW~ON#Xv z8C@6Mkt_F zRgq)mMl6cTBZZJZYA=_1pi0*|eJ-?^^?Pb%HKayc4_q}uZ1kcSkj`sV8=ujR4t?UM zpT-@)Rvii*b*Wkw?y4(${4J&r#&uCS@}cnWI=aW)tV~OvVAV0MNycTR7pV#sGN8ea zhI(n&#p~4UDVa{Iz?#r>3Si0D#davHD<`4sX%^UN(t0OPWzogRYkp8+Z!0!^C9t8`tw@|5zd!$Suj_Z?!CXQuBQwT`S zOh7%5xi!20^pC52-cLcPkF~zO3}H!)IG7t>rH**@+_E(+EuJNDEigudIF$zu84kC( zy&1XUu4(Jey;$2LcU`h>*#_nuyKOr=*w}LqqJXaar<+b!KX&1J(c&ZH?~AtA_I{|A zFeGX%>n{@?)faJ%dV`}(D8R+I1;`eN#n42GA&-_mS=HJM@{ly<9N2v53=UEL;Xh!M zzdMk)K`s!N%Uj>t!pGvgSYx~1B5O!UIu&YILJ3v03jeqoCZ`%31$r-&CthF62>O|) zyZL>6U_MTrHP=yPe+-npy2Ukp6cZ zOM+I~e(5~$0wnvYUf)Xvk%EmaZaE%v!3-)ZS-ie`dY@JO1RmTh@8&tuJZk1VE91v4 z#=lmi1mYbYXEpuu9&0JsL=7q6DR?Z%Ob=Z@1=)cB=rF95rE8C+SXO_@Ts;0e$udY9 zJWTds2ussMe>%gLM1|xnUXyw>*?*MZm2*R26_PVKZ|l&pK;9_`8Q!=AnM2ceWl z17rwDQQMCvZ_8GH*v#4(CBaVJ3!$os}J9QQ{DAmN|z3_ z#cKfOf@HFiM@GS#i7!E1BH7lT@1;>3Ix7R9L8NvlYW`Vq%gb+`$pok>Tc(Wwa6vqI z(#s0O#_e2PX8hI;y{yT~Hb-ICQ-o|2gdHc$xR+jot%XYczg@acO-)p80v>do`g*bm zX%Lkmc81V+GBpLuS<3KF_zXBx)<1J54qi5?Pn!=7Qon7jp^eVnZvvo+s2tta(nDgBnEM6K7Cqne0ms7?Aen) z4omZrj7=EGoMb)!nAEiY#dHyP@HEE>BsV(^bNO6=S5ZkH-UkS7R1JsQ?J+(bB5HnX z3x5J|jb7aC@ta2vVY}I_p@5E)1Ofd!0CeDlpE+4h=I_cpivxX4nG={U`1uv6L-@Ku zk>*`JM{07*)$Q5Fl5~FeMaGz$;LJ0$_aR2CPF+v0kVjW1YUHy2Kx3 z-a)vACAKRE!Ix;pU%0@jV>Mc$H_>1ni=ddS{I*rwG(Ezi=(90yxj>ZL0zS%{`%fJb z*kVBX@aqqxyqD!~2K9u4n5`9q1*cdmEyCQV^MD6RYh~8XUH1QWHS_Z)nPUOsFT9EQ zrCkxce-P#=5J&*DjYSKRP6DX?~t=;j<>l!+O7kP_(k-Fz`P7&OM!V%t$R#^_aW zl@yVdGqlcmCAwpwuz*(tAa&Y|TR$?<3nubjCfc!wxQ!aD9L@zbbXYCNpE(8o2abx{ z;|N9}-$fgEzMj-lpWJ+U)(7##{@CG0t#o_{f=pSF=*_tO#iT$%YKf9&$#-N}Stv7fo;_=JK&JH zj=%PzY`?TTVLO?!KuLYrr}coh+JGe}bYX0v4)->l{GP;~+y;mCly&TSKZkZab#jk4 zm-A5mBJN4)deh{1bU=t+S-A@r+%WqSW@&H@YghuZI|NZSRX0PbiiOgVyxVIbL61)mUDuN|S&7f3p-=^UQX;7A9@3{1efvIO2rV zopxowNT%`XZhyfRf4OD-OaI8D5v26H;NacWkxPy1wp!M~aiT*dl#WILap#y|t^xL5 zd~AJ=TK=yQzoZhSqa@WE| z9{YGOY_-P!`ah-ewJ0ontcg-uU1;pB`Y<(|Q+*-SZ8U$>(Sor!Yj&{;LtEZe;oN9r zVX+<}Nql81GvsR9q%lC2QnMx*SQIrM1}CO2$Z(43Yz(2ler4x&v>hi9{e4mtd~G(7Tc)dWp*WAK zLs;fO#Cs2a#)noI>aV30Q~Ku#)N;8t`6lc02b?yAL}+qbidXphm>xqta=`PD$x(=VQzqzvM$m>$L!dXwTM^70UaKX~gCIDe9AAENem$vKx>9gw+9WB~_Tj(H+V6urb3^|cu zME?|x-wnkis#FDj?YsF?H-N2Dj!M+$Z0tAL^=CExm(a`|0zYmHXLPvSixYlm+o1nXY=oOtnOrHuahY#4x?y=yk(ru zsy!AB2ZbcLI2#^knL>uH{{Kp!l z;Ix@EC7&9F8KSn#-e+AedhPs*N2=k*U8CWsP@pPP-P=vwPyO(VkI{N!k>_&N-N|yQ zgB{Cj-5;$QM`bux9;;`$5h^zO*Djk>4wU^uaTF*%X?Ps}9Q!!Mo(X*`FSJfq^rso;`+v-w}t@I`}B zQ#5ELjx@vEy@4?$GB&SC`nPZxU%~Rn%cVZtKX+xd%O$_%Ds9fLZoX9|1r^>FyT(-l z(}i8Rgx7(Yv5lnHN$=&YLPYcB?Ps86nu@_S=dvLgi(Xm+5dJz+GE3Hwq!*6+O6RMJ zT#S!iEVh^i>`^FAQ|}j;H~G(dX{qO^p~F=Sl-@8MqlD%)d-jDr4W#T| z8UE36=4R(x#_!nf9fdVqhxN0zzskBqmmH>5%rM|3n8nH0nl+J#o@f81`@k;r6VcRG z=3~|iAIqTTZ>8S;i8yZMUgIv&wtsM+!Eqk*v*H_pXM0N9_i)dnF4wAT90?VAW093< z%x>OG%w(CdBaPxxi89C92ZoAI*xqK`*!}q8x#9!40Y%{7(fE@$ha|rd63&TpF5cSGpwEG?p90!o|^(6fIrQDZ!^0P^wxM z+36$oEtZ9KTFrf+EX2{f{kWe?*W5H87fQA;)u0r~x>(9OwThy~@{8mtSQ?co2A*oX zj;7Ik5Z`bxzdX_JvC8SnvL`RFVYZ-&DjNED##7gdi?oC%yD|l3We9reFog`?yQ3;m zrzHxSkJiIopoF7RGQ}`f7k7fx_O#_GO>6e8@obCOw<%#-B{;{bP67JPyU#5mg{84? z*GtrT8f;Ml^XhX-Djcc3zO%B#b*(a&aE*=5_;p`YrmF_VaYoI5c>P0kBst9Nc#1w9 z=uxX9WbU3SW=(UTBv;}s3zUK*G%g<)nj-Zwl3qQ}XVn%J?17eR>K7**v&@<0V;1wN z?dung~SQSPHCK>|F`___OxpE zj$l092G0sspFX9HVCU!(o|B1aI$#+mE6LpBE%&$$kt~@V$Qin5yO5q9b>X}mhyMpT z;C4C^S8-Lh%-^)%b+@Wm-1B~FL@&B1gN*TW)ROH&(}i?Qk0H~_82@P~LS=}7QJV{R z3RpsFG!MnHi)ntveVy}-u%A4$1L%hGc_CX7)=X zmSa0bGPXF^XX}R%N=QDDsr#1^i%PVZF8>qDa~N^^j1X4E*W33B<5djF7)9jsn7ws% zR&3fOa&C{y*v4MdoHvB5q#4s0(fS&ozSU2{UXV2j?2Gtt@PS*ehvUop9EXdK(IcX0 z_01#qNmX|;q97;l-9znC8(8DPF-FXkV+y!$+W}l#Wn=L8|E_3V=6D3Zx6VY4D?^b1s!)B@mBFQU_*M-I^C&ZcjvE!1UzaO) z;G>z%auF;@zJ23N|6VJnJWNyZfxE+s#>mY8`A5Y!cn;WYrlGBB370v3j9_=Zb;~qu z7NVoUnfe@KRRFOxwwqiJy)H(i>i!)kC*gF3>Km`M3+Dpsv`>d$GIwN(uIsMGG8CR4 z?CDT#El1dnh(fjxLazJYEeOyqEc(=dnn!GuzEuhFOO?3Z^z#Y`z+oJkz-^<=+ks8T zOFP;;+jn&br=o6u=EBH8{F9s%_6*pv1v0G;5 zsofdU?`k9rw1lRsx&&Ku+wm7i_BWT8HnWnR>7sfZSDQsJ3k+go55>BRN4`nqk*dY% zP16ci8Qm!`DKm_uLU7fj#sSZpfTfrTMs5|up1)D|dl}P~Wz)H)$7n6&=iK+~9=cg0 zhVc~Ri)CXtxnvCxT;!^KQ6{^b=U8E5VrNX*zw<|~wFZF7zp+pewmVrd(5=mH!AQ!x z4sGz#*rTKbL}3{qfTW&I%f#ClC~z;el(Lbiw(T8uk93s+o}wi|HkEUaQX8(SUc7%w zcY5GQ#DjwC|B`m_rvD120r6Tt(@@JV?I^)QE?g%Mg{(4KOqk!jM?xHFc>5+-5)PzO zi9V1KM<=TJkbbbkt~4sQfWBx(Gn3DsOeFuqM8)XCh=cB(sw=e)M1-o$>4EZFO4_$C zN%U0R_jz?@PZ-VfZ;`d>s`}w(b0yIu*Q734Bc~j5V|`gV=PFH2yQH&MbhWfbb~)d` z^X9%nWiC^PXdlGbGU+A0M&d;CKU7lwR}|>5GkZSMcVCYP|58bY`&WkZQTszm99&!| zS+MI4QId%HQmq0T0cybiwr-S7fOiBy_kx1XhD*HbX%e2QQWvQ(MBUwKCo#4WPzmRh zsln#ajc91fnW{LB<|avw-{{JS3>8J^-@L<(X#cFV-{|d41!w1vKxGP`5@2dXRd92T z;cu-0Agd(Jn?MsylxG9c*o$UjLH*a^r~ZXbajfGgNO%PJV~+RA%f7|JwWku^U7;!c z3zsJ%SoozgA*A$lIM4!Xv80SwiCjCDQ_nKhXcN%?3z+}wvC@z-*|!iIgQrP@PuZ~T z5L(fvJPPu~*rXq6Bh}%hh_~5`zrf9$i!Xdjy3Zy)%I--9M{=fs7C3WOCRlb0Rx+ z&=F|IJ$Hw%h5H<@IsM6CG>c-r=Q@949s?+q*}6Kft@ju@+WEqQ&$?qJX9DxHE?h~B zl9A$Z=jzR;yF}a4f4gq}WdYPm_g}2c3Mj4Xw-BZc^YbjlRDU1eX~pmtC=dAhZ;J8e zy)7f>s8QK;R#Gi)0KnxA=(h>oZV>3T~>V zHYBJ1rFH`>lIVt9s?;h~Zmc6FNT5Q*_VJteyg6se18on>@sf1CAx1J^28?%r!V(4B zSI*)XC{HLzZ~p{3;x#6EEr9EZVoR{=Ul~gwQO)^D^xut*U_b%_PGZRdx(ej-1+N^} zN#?TvtUvmz23RF8_w&}=M72M011s%Dvp0ye*Uf;2KL-k6p2{jdp-cCtneUkqX9W&P zKy7bhW%U@yxkrHC1mNR`pU2ld@EwFhCa|9jAm!khf^xgQzi>l}_vV z{CmYd2m$l|>J$II?p4~8qi2S#+8wy$e*>6LNWUkBX(6Ut zBqPgnAx=EN#tHuYtLTNI|2lf%B`66ADfTRSq0qHNVsym+cJx9*?r+fx*QWfv;+OpI z9y($i=7;3<27)>ah9`t#c{^3xBUU3d%dO_@1gmX@Z&`h##$;(T(8E5*yn4lD5^}4( z&?c?L{i@x=cufUiMb^1TjA&*m!P~hS38LRz3JX$ys<&QXP|F#mGk;j*0NsyvW%)Im z`tr}bJedRTQe*DBlLKPn1L3oi$Q}QUV|RrpdNE)t`aMOh=7(|q@qy%KW;3yH&eHwY z-^2g-orHtM>HHrb)Ncj!#rX`!#GGfyqQ!VE=Rb2vGIzBWSayC( z1u_5a=eqRgjY+f~|9KCRcMs3${&7{3>sS82ehW~hhaEEgqooD{j?)cL|2@=E-^@wh zNt^MB9N4(+_aw^vJzUh5LE2Arb*yZFlu9xNsHcgR#IDTKmCVI4V9(y^a}21cCGOvM zmeM@V>84dRZACiHciqjr2k)PqHDUB!`$#YCSNjDhMt)2A@y*vQOJxWU9zM!b%gi7?NIzj8iFZ88mceB=;MW~_ z9EhQ^&r*Im$Y@pOQF3P2P_9yiCwBU*grpA;1Lpl{Vr{@=`&*ig`0;j?-*YE z$M`p!cGt;0_-H&6KYlVffQLHo#l6k}V>ygiwST#+(U0J=P`|CVBhX3PzF|(*XHM-e zGfF;%`hUV59}^qrpCc}bD9;a2Llf?%!*5WZ6|irNB5Wx$P@1qwMNo(OKipqOCz4*g zd`eA7IqV1R zgfyehFJ}U~eg@I`g$Le$cF+RYez;Hrewj%+?INSs&!CxkhN=8nG}GW2NbsL{P99F5 z?$=Q3-c{5$FxaUo^XDQQMiZXerF@Abq%!@2L51>#p-hgC!t z@&j@C;VMU6Y5}mo1MI0GW5D6p6EL803rBB>1n!6&Ei1^R*rTf>OX~6aXxBZIE>i`= zAGt`Q0@qSUp7bEoQXT3FYsJ|^;f#KpEyN8Y$Lri}n~tZjiwZJ04cI&rVT)-8bS5+G zbmNiCX*7Wui7Q5?5c9!2fX^f>5yXH}?YQVKeH@q463tvdN)tR9FN;8gu}Uo(?4J^7`ur|_OlB6OG$}X^YigB`96I~K9;_N=RifM?jytFQjj>y5zzf3uxWz119mS%eB7WP^5~$~tyZ4gBO!6wco}1d(&v}b=Hm6c*>ybWs!ey(CdMP|` z^J3fCgc95>sNzNQbtj#_jjR3V^RE5*3i&_j&7U>KAm%dv*x4L5iL{0^4Ns*5onMYc zf7)|_<~WR)7cU-imDyJnWCM_@`ITAAblU`~N4bf4^ec{l_7QIJ{e~V^D1td7Z$IR_2E8cTVR5F!^So z#8+&4_9=za_DIHeLC-EyG4_V|VpU+1HO{61E8U#u;YQ@3?~Lz6I_Bi(-v!GOumBPL zPQaqKGh$^J0)fQJVSSB165WAkUu5l5@VcK}XYM@wQN_TAektE=15O>{S|ya)glzZV zAb)ALrLwvzcm2)Xu(Nhf{VL<-MO4Ojd7qajc3Pt)VW+33-|mn!pYQ!a*HV3;<>ir^ z*p{$qd&EdzW+qFrw7<_YB@)$NTV7rqMp&xBavV-i{5Ci0!_S87v>I@CRjMjWlAo_e zII%jpU%-!sU0=as)%w!J5SHr`pzG(q1NR=97)@XyelgOU3<1hh;z+-{0v;UP&}M)n zzhzl{^&+;(mt};E1S;B24o%kFq!4qOZSGXh9>S7990!l5MXr?Fa9%6}=aTe$ULh zNxzSsK!={0$z-Cq45}rFJf;~%v;C6kUQ(WH*pTO!h+nru)We1DX87qYPFW6Q9K4dz%%ekuBT$b zAZ(0;BrWxO_)P^z{Tq>F%3L;zj?P!xmz$6`1yjAOeVPu}3P%$YsCc>-mwbkHCKvA= zDJxtEPgOQ6;F(gZGHX?E=uf!nojD*9IX>`p0hfBi;s}@E)+nguH+p1Sz^Q^Yj!kHk zTJiByNsyj^Or9;0MN6X^H4Y6kGi&8VK37*(PF>V@ow$9!Y&WmM-c@J%BmX)NHQj&% z^B$I6RNCM8$SFbc%i9c6hVc`}z`G3Bsms)+W<4c_akJf%xHtP(zeH~cMnVo41I79& zfi*=4%p5<0CtCG2JemmBkYTb?8Ozd;iMI8jZQ6WpSwH$O6IuJzYO&m+Byumhxm${#64Ey{^bkmv&jX8NE;O4fcjS> z;vBVEuNX_-x8jvsyH6oLl9F3olY>8MA|`Y59jA4C8QJRi&%wYNPs{1N0f@7d{O zZ>gcWJ`yQlxOjC*3#y$M2x(fiTrTqw@cC>-yiw3_q0Q+xL8H|9TrTSXhYw!>DtCGa zR`>1A(@}1Bx)vx4eO)#2)pa9x6~%`?9tbL!88Ikhr$+_Lj5A(i(-Uj@Gt$Q^EG_pZ zz4gA-^7qyI3W#>4D@+|E)*zAfmCrwjq@#5fN9$^$8v08!Z5Zk3eGx)Rp_vC5le!wN zz6L}E2zWATcazZwmm6hQyNBz|kdhdinTYFWm$^o2jlaKw7m+eHs;Cj;q;u@wBi?DP z#$wtxF@L3S`puF%({%J!!dFxNjBh)b(KvW8OP^=Nj(&%4;}b32rM))yYzjszwPA%D z3H_~W+d`Xf^D3o{kAj&bN0JlvdMca_PX;p5R~_|X@l@4$^lrN7uC4B`l?!w z{rnx^v$VZCDyGre-g*wWs^K^Gc}+nI9D( zvuj4Vdbf|GE3nLCpN1+EYUsS0gjASlnl4)|;ZhSot~0u#&(?Tp?x)^2CiODS*w&5h zWD02*o>Y~;HpPUbqU!{BjT%dy@-$>4CO;<&xtrSl(ox2|pKFWmzK1B(D&|J5CYUW$ z_wTCeYu)p8|9Q$@MXzbus?o95qxOTdc}j*va<=B1>^(9ZdAhxHkyxBnag%Il(A$Ef0O) zB6iBRw-lQ~0YQG%d_9|Desv(>y|A_jDsS;UOJakR`;Jm+`al4_GU~|)etgx{buL9v zYWi))OHu`y&rFPu2d4K0x$4ERhmUP>?W?tnrfe^dYvxDmQY&^(_tyduCr?5zmJ^Cq z^jwCAK%7fIRdC;fk5u#3#}WcgqFtQF!`p*kq$!k8@#IqLIn{JDcM5b(2wW7+N`h>~ zHo28FiS5v)4mH)(ocM+E!)qX%K(2@QL6a56}3x|Nnm*yS~qlhB!pPc z7`+5v$l8@|lEl_NQ%q@^h@aLC8KcVcJfv-KRYF`9e_doVycwLF+o4vK?>c`Fg*sSE z9D2)AI8ZkAG@###G~HT%H|pNWBUf>GJOgFpWNehZt&71_pPm3cOIokG@r3S7nzv_( z;*M+U*fV~w0`M45lhD%W(qT&CkRXLYmO91$S&W46Hcam#y4=Hq~_}u*NB=s}6k$q_J9SMm7W6-a9U6 z%%U5;s6JK+;qj%SMyl`lSfNy^r(q&--+ABxBEat*=X&6m^a?L3)p2%XQkk{hkOTO= zz%jnK;3*ZoQ!6#xL;@4uXnynl#2Am-PRqC0??~9L)P5__ZA$K!Qq+uZ6Y1qDOUoea zwbu=`N~IqyvOI`^=*F*%aXp^HsffA?Ow zudGA8yX!s^Ty@=$t^%LjI6hXzDKRQyrURqj=ndiVh@=c(n~qsH*cd30sIkyp8Wl9k zV8O2(uB8YvrNp-xc$j0cJgVBTto*tmsm1eo@;w(F`?ss7=ZkP96Web49_u}DFcN<) z()7hz*5vp%?C_dC5RQ-5vmQ@&UtmAEqwO~xyQ*p6px*Itj|$LEI+aMB!Nw(mh_-nM8h zOi?j=%< z#ud9MV;?VHSqu-mAeFo2PP)>tpA#FR=oTG%fAMw3kaWZ6kBujuBdMd&+7+W-5ZEy4Wn()=;nf<7gnCeuOt+DVFzyAn%T;pWM z0(K@QN*7kNnqcnRL7rP@K0rQ>uI8h3ErPWkR~+?&CS2x`HZ3?)RX*aO?XM&CfmzM- zGNIpae7r#_b(E*)n+v56MrGi|#i*%)blcG4&+#kxZ$l-19=u&8BY`dukGO%BCb<7N zs#*%o^fb}DW`IMQ%T>m24LjvyiTG;2TJD-Qhb*&&+~{R%=qwbqg$Kh038NvEIozug z`->}kxmbUkPfEqnbpL#a`}jCQpct+Kn|AZ7uQ>!0xNAQ^`JOvDDtOPQg^U=vy5V;b z?m#i(ma}7U-Ti@D_hd9OrZL*Sy9iC4v!9Y&*pwrVO4PDk6e2HQBbO+L$H{k{P8nW} zP}TA%5NS*tv7CYgrmSb$Jzm!yhWK~&_BQ&P3Qud3g;T6=^e1h6%9`Fanoe?OD(mU( z!Dt3TU~aki!f9yzepX5SGmAWAZXUfnMu||Ho&XVX^J3E;EA8yB4juApEm211hzpb% zq(vfYZ00512uGsUW#L8gQF_)0LG9eB^vR?pZSzBGZAbdXfD!)EP1^Gv%5sOJ-U#pU zMYl$n)__4ggR#+D#9U*UZ0S+@z(K;fK;tjTk>NJ{{$BOg0+8dZ_3@9@Za?h?REsgp zLBn1SICOSbYqpluS1+ldg>$zOQhFPRkFPvXvWgkn>?$2UKBlA@HkX=A9w@{1s>5u@ zHhL3f^iz{tkM)G4gu;a_I$pL0*XLD6P(P)0y;rOdwcu>1kx1}Aqzx>0?fpEa2qR^% zmW~K#OOSzSPQ#fT+E=+ zc7^xv7K35EYu$S>_si@I~$OpT2~Y>Ob@><}0Dn0EG*lB=$R zB_q?CVRYtdj;DEFq$d_4$EUZ{Zy>Fe%UF<3+DGu@#0wo!PVqUXb3K{{6jxOY(xMv! z*V6g&`?Mp+o9y*$!mx8Ht_t!Qm{r2FtSvj;*z3jtw~kZj1UwsBN@2T_XejM>t0~%g zl7VXoC72%esPEomSY^I#;1wNYr6J9(`_k7K zSFt^C_lG@YIa+LpO(U%RN+hovkM-L@ z1vwSfgbDJHmCI?)d%5|=BZFlr#sXKCX|jFfL&{!kV6T&rzLZ+w9;ntmrX$xBFv@qm zA{A(KnSPpAL|4tLiKj1OJ9Twsold0ElcQ*+vDS@R6E}pr`}+BSx~@J_ePYR0hPVF| z%yi(1upAC|$K=f)@_gDme^Q=Ndfl#J(dcd0QE%p;)A&>zX+Rxme750DP=&5GhBm?6 z0@id9yp_w7DMC(fOZh&bT6OU9wZ=3%Yg=wKY_FHkqv>iC7kLO#-KBeWcJ1ohGhRYP$0w z#Bx*JQhyY1goFMbgV6jOPM#ed&l@6{E)a1o-Y!-l>%(2yT_;v|AkmX>Nada?>4u=+^i7t$3@s>1XsP65YWEQ8UaxeB5gmWUHr zn2XRx<$WbxsE=v-oC4Pfw2_^`uthg(XByW#r{R4OB8G~vEIUNiVUq#~#Y*3@tD>V! z#0)_@C?WD8FMF8VywZRw|F>aIJae{oUy9gKU#LJC+ra0T>D@hQTD6w@Gft=q0nVjJ z2$qvaVRgxWg$Z&{tcuU~w3v#_ogmCkFP0$wFZSL$tf}nX`(||185Nls6_lz1BGOa{ zy^O<*NC_wqA|0jo-b+MB_>BrEy(7}Q5Ndz~WB}=s0FfGy8cG5L2oRDyD>&_U&U?;v zuJ`%pdEV>Y|A@)X-fOSD*1hhv?$7sLv*v-$ecKItf;`x&M!Bc^t<{iT~??}vG%gf{N>a1 zKsaiLGm%kz+MmnR&mX$?LAC21O291Hf1+B3ho5|Rpfwz~t`q~ADQ;tJ2J@uVr@AJdf2!(|Z_>-4_nK)b z%ibYEU`+({Vg+g3`iy>`7n5rY=bacCrK_{O>x*$jR_(Tij#7JfT$)N$k&>FRty`-2 zSoR*b{%uNPZXomAd3U`R#l0wc_Ubs*ra|Ejgf+nZIk+R z0zZR^2y2G(g3e?s*>Gkg01&+sl!z%u888m`P6xBQ>^0sR$4*K)Yj;@oQICV zeF8N?gPN6KoOB*EmKB6wJ$L;jjy187-40XPys(KQk2JSoHIBP;>Vc@0cHmb^r>UAG z5ph~McOa9fTV+yQS)PeSnF(XRlx%*Krfoi=mam3b{jw}savjWyn6Acqb90MCGnrwq z6vt+uKK=Z3Xo>WErT6ur)c)76{qyfoGZV4@GQyX3t7p00?Xx{Qpx%FREAI32IG_7a z&XDObp)Ll&m0#qYoEU_n9kY*~jEh_TVIVodc)rnZEQ=_9EaAFQhA}?zs99qpj+Q!g z3?hAsR4SzsQY)BIArv|gR&*|)Da4rDNo04tzW8e1-A9(FVBO_!Shdpf%sSW37`3rM zYu^D&!D8M$a?kxpj0GV`C)%ghH-UfZmK^eVpY>_s^COo^2+DQJw4XIl7*iJ&2n;@C z(;8W8=RS^#FRsfV?v5xJnx@N2L+ZqPMkbYz<<&=t2LpuCQnYgXL8#~CMPEPG>R7sR zc*&`$dnmu8S@6s~IBU|c7iyZ`L0IMR_bjlTKsf81vV?Rvtz1}n=nZw0)AFdvSu zAIzp3N!vxA`&u#IWB)^n9K&QeZq7qHHS4-xV2M7Bg#B)66nVL1yo2YMbNq(lTduyo zCmit|0o_RFDz7U1g~dJOf?WLblaXo21>|HLnJPb!r8P{pNN>l*<_hu!H{$l@7(!h& z0uNrLdNNdFgey2>XdtSaqZ2O1(B|MiePU4 zEbCMH$fOF9hmk>8(Zm}_IPMRXrBGjwc#`#t8$w~6Iz5GW2VEMa`QkOq9YT12wQBvX zQ=P$#^Xz+{Dw4|Erd;dh`J#BRn}+^DmXb_HQZTN$5z@Dkw73umB}%HQSyzO&!jEe_ zF;$PmSnk~{ErzNqD35G3KpaQ2gtqr;czO^bv&C9#?xkW;UcU9x&ThuZtc5SikAx58 zRi%#!JDq7&o6&*BLHuXRSc?v9A~q)G4QJ}qBx0fwZRAp=k-UvfAtIE5356$45ES*L z_~eHY5`#Gx7KSq}YU%s-ta1f ztD(HGsjbhr7>G$-A%7xBiV8t-0T{0OsUvT*^JVRa5PH9EEYCy zAo^^AZ%|yf1#<$+jH`uAGZlBXJLq)H><%^54oDq3yUKK^7-X64q2Nh?)mmvMNmmf)sEN$>9ZPx7UfY?o3@JP9YEXFQk$L+&*l*GkumMMiNvJ;No z3U9TCFYL$EiWF(hT1(js`_4xsnIfy*pdI8`&S6_?ut4!Lvy+j~?^18=Xma%=%v?Y1 z{EK2_ps7Y|$7+BlY=Kjjh(`FijVIbLI#%gFwdH0MTfc0gT3h}`)JQtRJ2WwhIGcdD9Gn) z1eWs1+L9BG&0?738vDKza9#e7X%0-wHEmiam)$&amQW=7Xsl{=$>Qb)cltiPC=79LkW!*gS>c#Jl~vrcr8&?FJdh>{ZB>GFtN4l81IGQDy;&Z6=BfTI z$c+$Ebl~K-=#>l9;O}FFKu~f4N1aL&3JmB;Y^vN37!G2a4)I!_Zgsha;H-C_?Kr?D zz`19Z-^<36)Ep&zuS>e$o%DQfq^VCA+cthBbWy9bF5knXReQOL)T4wXmhTUl$%dS` z=WAzfkkvu+18mEhv0s}_4(&#sq~)tfML#=SBxmkUvFNId8S+xpe6&TUy(!k9$-rT3 zqSS$gQ*O33=fpH#MM^4+8HU23P6VVlkHB~WR~X{SJ6Nn)P=imVG{ z{tjPB?)4W0OT+}Yq@j7;6(yyt{*mn$28h1W`vXP&rOr;sX>}f?HT9Hrn-R-;cw9!k zy(}OW)2o)LYQmYlmLUUR{}Z z9VKA$YD@tqz1i!CGw_BskVYZ0E(t>J$>XnJ81$tYJg=!YUwNyP1qPxAwp_g7vYiSh z65Ohz$;T*8`UZt?xFsxZe;jYSB8^DRz=SrjN^DEg@VE2#E;=4s9Tu|C#Chm(41lQb zhf&4%=UeuE{|3%#e9t<-zXe&}m$Oa3xBK;P{MO*of5qkgpMnDf{dYEuaf1JYKbn$Z z7PdEUygNk&@!RAhtSBVRao!$K+ zSvs)?wCxqjf?RVE=%^n2N&)LuvJ=7Xv2*As9*Q>HLe#@IzjXIg=OzJAbpUouymZeK!dCDb0EEo~4rAQkv04f1c=HoLQq&n9w4H;3=;)?BsC##(+D;`1 zpBqf4nVXL?G!XF@W>`Vy`X80IhYTD84?GV`RsqnkkR7#yNTDvWEM%U`u3sEHL3(Eg z&y3de^69{k&ghV`W)+C{!dzyJGeBK*!dZ~Ox*(8|)T$nMOsz-AonvhY005cQu^O@Q z)HDDG=;i=OfI{3%D&=q=jg>QkbAeO(tpR1ABl-=iysYEj;q3oY8o__yq|+l&K}$%X4I6xxzZGF$B;k0uBfRi z08G>b($5t@3ZfqYK*1k2_gbiHBvPQC2UI-(FTk;wVBY9wYwC?0lWuVYn><*lhLW2# zV3ghv=7%upV@mf}FiDe~%>rE0uQJ2v`>g)L;z0j%3l%iW zxJ(UQklv#lJ>fNKn>62npjRCB0v4mF&F~>l{bBZweWvmUT_db6>jxi~kFo$(LYbDu zFn9zkVEv^ix%UYy)MGcAZ_gw+_-|=I@{x?-ow*qee$7~y(A}A)8Fu$;e_D_lXLv0{ zu0-W%`kliOb6(0=V5&;ky|i5NOBZEPF8{Cq{})hZ@*KVdH6^6|KtJe6k8ruJM_sj9 zsCO?K)A%XAX(Bc6FhHIE(lMh{V$v~H1)M7dUFm6;J#4D|=S55{GfUUzR(j%UzG7=3 z3jbqB`OipUNd;Qb8D1eN>-~hEP$_8X?EVj|$l#6lK&JA+2SLr)G7hzLIZ*YWJ%OWN ztkG|+yLQ2jWgiOx{uHv$YF+l8|jrY56lCD-Ji$xf0pUr#^t4gUPCKkrvM;Q;R1;#E#2 zm{eX7jVx0QpaN8gRo;GWAV?6bc?HG-KtSc+1%(E{HiboGv52TA{|WE>`(6CNIuVQ? zxdqDeu$S+TcxZKq@lPTB%0!QWVdU{CEpV+dRv|~vv*57IF=@6NW2{b|&HEnxhi`b& zEW_~+%I)Q8m6I()g(=b^)KYWPL+aC`)d7?rygpGQfby~m{iKx5<10|1FAe}j-5nFQ zm2*H9pkIsR5RjB@b0(Pr>Ny3D*o=Ffg_wtj%_sZGo9d*=N~lqhYH8Y1&DDoG50BRS z!3$;^&0voSvyB&+2WIT{3EK9(_kxeJeO>;zTZP^$9k``!sTIrmHkq*3YybQZa${@x zc4Y!7;;N_onlRqfz`B-w#>Nr28f@Z^u~0XuRwR>Ehlk4QxIUKt9Aj#V z1IU=r=*GMh7vPqs)Bkj&S}tx(fZcoqW0(Xcl?mxS589E?pModdM%FmpCcs!v_64{0 z>>U7ZiR7Q?@pLthl-V$W;2sYgw0?y@O-H&BFh{v8ae!jVrGEkP$6orc>y>o<1iRC4 zgl*bP@Q+^C;wU}1WW;P^uB*LN&J=&eI-lpS^V0?&7LU4zQ9jIO(HgRN0$mPoCH&W| zINJxyrj&zsKFq$5L|p?8#>;~*r=0)$lpJ+KU&`X*BC~)=Oy1#`3Z;Iq&H;FwNBQ3m zQg7dv3V`2up%gVlSfv60_U;0BFy*H89d1qutx5TD;FFHt`LjN8k2+pnG~Pl}=Qk1) zt@Al}*Pi+lGQfLLcmaeqtge!t@TZt8pszRiW)2I@>v#IIOrY)me_u+)>fwjSf32na zKh$0Ov*7>E*Z!A^!2ka#{_m@(=)s-e&$hz^gU;~lu*OQT{B(G<98;e@dAIv^$vBsk zE*RXv_u{f5nkV$?prAWpVY{z2q8;^Ofx*NAOAE$4 z>}+`W7vGw7_M%F-*d-Q0eXvK-2qTfn0|=Tsb1m8RjvnLzOYpMLtC0Vvux0uuV4j6$ ze=TIJrV)4p4+w~@9P2~Sc<_TY>uTV5d2t#C1`pFQJC-u`yP_>Z&MxK4(PO<#z6R{YZK zkk$mBn=OGc$y!IId)Vf-_#fvzKJ~2S{Ea)nI_}vsSF`w#{Y!_-46Lt@z+2?)dXry2 zBZrbd4BV+Z3~GSSuYF&CqywU8W9#$hO#bl?paf=rR7ccbH@wmP-^^xy89*#5?X_}* zy<)C_UCEw9Jw|qcd@NlE$Po8Z9-U2xFglqVh~5OaMM_B+G0Ce-IO&T<=P~jFUP+1a zVWdnm76^$Jvrh=HCa7%o34barG)d$2H!(i*34p>j0k4$x!hz57z~#vFIbgp9!2n_p z=x_L;^TgKw1Iv=9JAYknVGTTpy|VLScfvBkU}2||l?gN`yg*cyutFxQUHyIRox^M3 zT7e@yk2NI7Eus0}^ z=fZ`%a5$W?+0I3&1EM(~1=4LEtQ2F|@_gEK z>H0Fj{%@*TZW*Zg_6~T|?iMiTvTXLZhz;{_1O!*0CnbB7jqAJc68y*TqbI61q_Z?* z!8Eb#-T9VtJSw)%f8g_K{6gCp=kg;?Qg94Ycz4;)2Rne}V=&BQV&F4S zGyTxNsmRe) zpX;}qWKaR6^H)1nz_`?~9`n7bdyOo9hivj=YMi5GjEq`j=uuPOtc9gB9p|enot)O#V zrtFIVVEPEl$4@^C9N9P_?{hI<={9C&W`4d7Dng$*pe-c~E?qF}0j&bMaJ37(;;dJ7 z=}*51^#1>C{foT2&*3yGrcRtSIVw|Nvgg&gswaw@#In0KU%U=(_~l6dI$W$@t2suJ z_k6NRa-w>>#I;m;55G`1i)v*MC)Oeyi&x|x8;^fhVv6;BBPLOjl)q=?dFqc}KRzqs z(QaHQWv;jVa=$^OEI3$$u8eNT0$?6m-YKxOvcBt>(~ag6irA_!%_&&0b1iTE4Sl$} z8ZR%T7>0H=d!qj_W1GVrqa>B zX?V+ot}76S!+k=-0y!m3G9?H>5{%N*0q8WBy$|oj4?X~40q0~5a`3LX20Pfw z1emdY#iImLFGHxINp(dPRbRc?g2!$*zmL#)a~)tpG2*z2VrZL4oqgw+vv!|UP44WE z8w!irFYNLeI3>#a7g9Eh1uN2&x1W!*6<8HY^V~TRHsXKMIsMJ4p#5oh5N@Dqpc!nci^XH9zA3iBh-^pU@0(7XShU7$- zyVN@IDMyVRaaqC<5w^8eC$hwnODwT%hmZJVR36#nz->1qjIIZ01R)GvN+zbKmj(o% zUfhqoua@~$fed}!FkKzM&@ZD0YH}BcKaWWlP`mPsDSJDs0!^>fh#YqB5JNGMkzNZZ zXM;h4azkocpgQXTUVdNyd3EzIJl_JUZ=QzY(T1|%>8&Z)*7CjmGt~w2(qc%P!M=vD zxiiTt-juiV095I3vB{vnzWgi=n;}$jCg0y5C`E2cxo5Bz7%&hD=|Rdub9?gzG_7!} zsg>SmY(gFB%?u57Gbg-8!{Y$a8@*kZIAyR_<~U{$5_Q&qj;xR>S6m)$-BKQopC|K$ z5s;J-)HCBSgfmKSIyyOg(G*$3RJ*2IncXj zAVW#&lo~dEWKo1bj>~Xzav(>%4mICfopX0vFJi&*5Q(!+<*Y@c9GzFvjJUNP5}eBI{sCKy{%jB{ zq#kLq8E%?}-P^nu+q#Mf36xdCCy@pu`!+kNNmDq$upbN(G&{xG?e)t2sR9LJn)+F& zIv7`)_HjjA^%9@)?r(s_<_#lsee6*oeyY7%H$0gR8Hi?1Y4DOXy=S*m{5w-!_MG5B z8dHn+j-T<%wWVVx4nBO{b{nJks((PdSBbMshvKbr@q+3|NeCo`d~D+jRzrds{C55h&ljOHc|ezUGz1gqRjGj#i4{9TGGM- z$`m=@vhm`MNHF_X_AMnUL>DnSOmepcB@_R`zbqIvsqo-3cvr>YK5J7zDQAq46myd* zTLWR+#UbVyoD=p_lav&?UTU0NtO={6`$*G4)}M6PvU{oCt@y->^e)lW3wpy4z!Gjh zvREC<>~QW6a9@ir1eq&5^1m_j|gStD<%v}3nYF#sSvwK@go+HJd$3{zwYC0jf*an2(c z#R%y=_0rklja){SW$ZXfBJ`%xih5KLCbu3C<|G%iw__^D8DTiY#(I3J>7zkv74cd0 zn(xB@P*=3jEG{=qT;r39pF;dc)VlNA-i%eq*XiHW zl(1g%nw+@|_=25VD3P#|UE7cM8GGs-Nqnj|y7c|+#eu$wG3@ufjDDYt4i7~z10l+I z4}R8Pql`*8rW7*1iPQH6;elS3f!olsSIm@9aS1SW^hy`%vh_BA^Q+{}>Y;SUC!sh( zBZQV2cx{E`ba&Dhd5a#qY-p*UL4*(6Z4~&=Wsht7Z=O~eOWBxJZ41H$7b~VV(P$+&pEc#vhz?<0I)%vo|v3q@z~gd8FsWq7sne%|~T8bIKV%pG_zSurvb( zvN~7$S~59eLihi*Fd^%t*j(4&sGu#d+HF;AKm0e{Zvs`YT)s84TaZn6^Sj3NQ+tcNpDxhQ_Tv)dq3(v|0~#hP|- zVCpzfH9@@thtSza+YCOVAr#fY*s0&{{2C%rz#+*KR3z5dsS_L=>gHyavM||fO%1J% z%h>mw3!I;iUhq=49~p`=QF8(cs*TqdE`GnY88OtXP!wiru9d~Dh`WC0VpSN6yE4o~90RbJTifpbdL47PBa_22F2zo!Tnj zLyy}YIcdRn*Wc72QHpyQFOHYsWbr57?W($!Spik_zADi|1t25K7@;NE&p`146h_j4 zo9G8fHarsR|3*b3%Q!{2bCtQ>5IDFgQ{!uI_1<}U$UDpCIkM8Gl~<=D<13z$rRO)Ed? zFfb=d8YxGhu=^hFvAN5M(9tah_Fq!7+>0uQK=<+<3+ToKoYt~yUX<(c7ph_L-0bOZ z#W?5i-5F%MrGo%Zad3@DMp@pImR=5-+}d4EOXA&?**t3XZrj=P3P)eZT`OY!mak8N zPj!d)Nzl@Rn#VGtJGBriz7&E5H_=Vkb-5r za1&>mCsOhWPPzlyK+m$c9$&A1F~CVZQB85d5<3UURF%J|MV{@UMDrx(5|bU>Pv9Es zRG@$uRU%EqW}ak(hOXs@sRY%z4MS^+8m@H-yX#FJ=sOD^o6A1hXMD@u!p*cFoHx{!Rtber6s@X59Lf!`0g*hM3wqk)v&N)O~uo7A;t0afp_tKH%Q}{)@)WhmRMu<^ys5G`>FG&UsystGFhO;Z#l!H@8LC-@x(bkxrs!` zxFS}1IlneLDHvOW`0V5sds?|cnQT&hi-++}#T>L{s~`@a+`w(u6n||4lt{zzSRpl{ zcIVx`1<;lcQv1$bWAaHH3g671s!LIGt;bU*jQqVvlud6p&*rY^f+Z?WFq`?|DRDn; zGszmLf88$I-dago(awp?RpCR(Zopj%42B1ye?#k78QJx5OOKj$*|LxBKXOcMg5l5e z#C0ffzRbv%e1WvG$ipaUawBsNly+)d#i6(TJ-ibS+!lY&NCu_f*4Gj=Xtp(~^!<7J z<;8i8Nn&u($AH2{8I(b6J6XUU)vS34!rw1RwT%0gaC`gZ%ciGf*vCqx%fm$o=4bsD zV%~@kzkIE4VF|?4LMzr8w_B2P$BJhMt|Dj|-Cvfn8)B~5+~j{E2q!o5t-_x3H}ZXF z{PJc!Vh{N>Eb7HVJ|h}SpnsG$FYq^Mb;NnE1#=@w;cKI#HM_8h-^nSF zo$vNl>xa{7gF6JeHVV(C?{ANtKdTdHn&zv=ncpTMmF6aDY57Yj@$#S2$4M?)c;MJ(j5W&I(WHa5F?H7VwQBFKpDLGN2*{|M;=e#= z_}NX4cSHT%_$X7_Ju={(Kf{Wp ze+;z?9%;t-urJ*6P7Lwe92_@M4e(B^+rFAKl)r)In;mjV%ylFe!jqpcoMLSXmC_=a z(dAAbI%=B(vkQFqFdr*b#1>#8MCgh}l3h=(L0D$Ud^`4$6ZVw2~0b|YlCe)?I^f&_&F zciGg9PwDsdPu3sf(C?EP)ai85P~Qhh#v;n8KmVz1_$}f&iym?B`JfaK__=?hOHncC zj%BT~0%}$%zI-vF;5!~f^~-Sd%!AwZM*U)Fa!yavaGSawH4jlG^?Nu{e;{)Ni}A$| z*^&w`{oFU+opT8dC~%A-D$J>`uh^a3mxS<#aT4^?QpF+)?q#H;nkL%Ptn(1$IMxz? zjWzFf9`znT`b?3Ht_IxhMP0qx#nSX*ROzmZ!p{kGqN@B3VKiI4nV5!=Tp<;9ZOPGB zh6eOvqpQ^t#KYFJ#nE;_PE(r|T08-XmfZCAYE7Mt9WIG#3sV@EDJ>4#qBR0}f8&k* zU?AihPI`$s+KJZnmCTT3_{}P86A^k3_h*XaBRhGZ(m6-1VItpKod7&Z>tNay8v0|< z)}2JnEoIczzR1|QvC;q^4cW;WtK0!)O6oDk5GxJ8km{kd3uDb!vjq5zK>xU-x(uJk zezrf@)Q9nohF#xJBdqDJ%*6k6iwb;i_B?bDE4u;O#b}|wM7zzrq-r(7^T{oP>`#jq zC&?wh_e>J6Q^R@iYVjSW3w9&6Z50q{2nFzfJLiq-99#^YiucnB47~#yAW&)|X)47R zAAR6RsS>ZZTPUPrE=6JPqX!+2{QKk}Pw_UmXG$2%l@k%9!H;U*LPzqi@nX~-$o?U8 zj0RJz8VAx~Y9Ci!0RWRPYW2YH9HTy8B-!kjXa-?6l}5b^hq9)|fW8#3BhWBXQeN0s zCAIni5W}`J`hIf)!M$NhuZNwpU5y|r@rPVmlo!P zzTHQol=1k3sCbgV zs`g4|SGQe3;e#Q*wc@b@^8ArUi`f{_TK*h2I&O4t+&9G{q`Ai~Y85{n(~*{MWoHyp zeOda&K%*awTO|36Up3xqf4UWb>^-+cM zf4{YZvM#7=E|z7Vrw|wuyTCgsAJN~Cff=u-KpiiL{HXjkAbQ|<=P7YM_k99>VlKz= zD)1lL!Yd<&n489RV2#$}j^VJRm5#%rFC z+Q>9FIvoky@!^t_7dF5WnhJ|2Fss@iaFiaZ%0u58oSh0@>K*wlGDE8`o7#|wHT*TH z;zNGS0N*&i;`dzoQt{B#J+!e@Gcm)(sjY+?89H9oE5VsvvXGx`*4U4n)NsZd%nWDx zgjAlBFWKAuJQM}5LpvC89&|jx&K97q(&-|W{zus4>sX5l7qtB0qHYOW`SS+aRk@Y* z;!vD-+jt$2@5Y6ss$C>FcZsONP71=z>%_;EcA`!vDOD+tJO~+4czeBuY;KeqyHTWe z0dX?Zad=*o$KI|z?irompCzP;4*iWN9oeYWEOOJ!09M>1nA~@;+wU1h_+*QpoYh&8 zJ7(ACel05VX7L+otZ`PYJUdx@$4A?OiELW|aBQeGf&9tVV7U_^I_q$xl^&)-&QjC3v zqB2)DnSybFt_2*VJ<28-{m`vE^PN|aqg}k7tDZYSNYDv=#{dI76J$so>B-omuL3}l zj--M2KOdVr+J-wNrQ6mh62P>t={l<2nZcln--9(?dQo7TJ}A=@UMZE;7k-nqv?iIF zaLj)MWCl?kkIjU?;CZ>(oaw`-OYDfXOvx4SxDQ=GHy-R-SqA1Zif#(i`|5`5M`4=S zq=gQDn;DT*T%f}x^|&?Ks7;VLx0~o%$lrQB|KkK^(Gc%(EX96atG{tEKmWoHsaIfX zN;B=AFHwzQ(%zk?l!a5a7qAi*2CBjD!J1i+sAjP~HE~1zsiwY)b%1IgX{*`Lfp`9k ze|aHX%pzFboG2c{Z&);**lZpQ8*~An7PtxwU1>u z6d_edld^{0GnH;77*PFRl(phK~)Z6qi*6ywOjW=GYyIrLexT~68VRFdC#27$W3ZwB{32=_VF&4vN-B5!&Rs1 zsitx;ZQ~Y{`Fl?@Q7iVeZBJRdvwu_Qk|x2B5ytk|JHF+7MMJi`Z@#dmew^>XIgPKl zo10#h)g@)&Millkpdy7#%oz?ra|q)jM#|roax~9B&@ENL3;yY2PM@RH8Dle8+P+ec z|E0-B)PXHQs6%NdY1sa@Lg5f~x?4s?P4lu%FOUV$NSpsUA1rI*JMKxk$wN6Pl5yI4 zX|IIc3$aJns&xuT%od|$%+iF^9WBP=NwZKvUlZzA$w3+#nVL}8ey2|8ctU3O^5(lG z6~{@X{w=nGWeK9VR zB8JR;eS*PDy#xbGX`K}k(64qAu)SX|M*X&*hFhsx?&7Mda|I6Q;+RfWBFNdXgYeZJ znb;^d!#MQqBDvBf^830!0}TK{dK|e?zTb-y(mal%nQ6<4H!9!<^oYF3u|@anE9Do z=D1g5niw;nKVpBO&B0NZnIY1+ELTw+S)rqvF$C@!mXC9B= zht)(G%c*HbU>o)q#1DR7s3ws#3G0D03q4e(lO_(_y(y+TTIrKGH+{L5By$TiTCf^D1@Vo0#v%~Mx2q`13JXHtzD>%dYuyEu=Hp%C7 zA>2L- z4+3)df}r~E0(;a)<*p8?^l$!1A3Z+?l&0`Kx5gJA!QlIzBWV3s%=fFae2P4h5ry@^PGn0<} z{dUfa;%;1-e_lmEoa1dvcgNFNy;%vC*JLxRi^%S}7`xlt2x`wLZH;+Rx{NR0wD78j4na(nno? zS)kHg(U9ti(8vY(o2dNbwGH3-6@^i&N*l|E)QPU+uY`d$+peK_QTW7gTf_8==|*u8 z91{E&A)nI?VQCSY=VU|2Q*rlsH>sNu%3GhRhIF*O>P6PFEaUQCOhLSQr)nHDjmq7D zcJF9TgrsCLQd|k$bOo=g?I;xOnq!&cqb#R91z}98aP{f5Jyoi5vH7$rVT^QnI0Xrr zTIRCr5|Pc_E1^l>lg!~=87dFAHZzPvMPMtJRSci&3}I-yIktw)uCQ9BTZ7f67Tjc{ zqSsZfkEe#Ija*IAww zeu3mYns4|F$x^LXM3zf1rO=H^&2hiF4U}d-*HBhgyyB2&g4~QWpSlK8Do7zwX+pf19`y9J3jz(VZ zV#qK%GdF1ef)B_4WPDMJmIcLn3oL7O!nHW;8D7wQuJIQUu^6dx9=zkKyM^}E>tm?ivbiheTR~05`99Kq``Afo()S>Q z%X~Y7Lia;OvMlSOU=- z%xdCHDL#w+E=@I83*?{DoJmXPWI=wu-A_k;9`+ThLV~<><{0^Hd@uL;8^!MADOVulz#MYdaiusRUaU)h7^SkRJnw>z%6#^ z$2z5+r@zhVES53p`0NkgnP2RsD#wRrC{=B!pVC*d-yd}NR81^u$X9)VckjcQOWCx4 zcyZJoGv%XV%#fq(lm$NQH4n{6v>!=mYoLMGEh>Jm8H@1wy>#QGABZd$tf}P&>Q&CH zddTVsg!mZdE|l)AdcHR^*bVLknK6d0YND`}RC(OeRRzDFKl%m+^?LHK1j>0EKSp9r zcB>xlv!Cj={CUfkA`&A_U(4;Z8geim@XdFw!YfGVdhHX6eBLjvKhV&?t!l1Jk$l2x ze8NgdX6gI)vk)MF^xi08Ovz||OeoaS0oob!d~H5xv zEr-rVou%^Fncd&d%>vEPIUsjsR{ku#uQ&zSEhokSRrF#SuWY6?1nq9v2>z1sGlDYY zd}eqLj?qWob{r5`RO92eu=J~!lgN4yyYPAc{yuYMy>A9Ki+8mkbuXOIU6n1qY2l>j zy=T{?sc}a&h2aEqT_%gu`Fy7u70WsscLv&>zhj%00Z0M_25~pvd$FPw`KC;lesul} zmSkIWk=WGRSA3JN@V6uwo{v_n8T%r?V5b~9%IHPEKJ#e`P#HLL-xOHJTvdci=tg_f z?&lF1Goui%*cGFMEVB~7{zf29nj*b9tvPtk1yiRvR zCcKO=Zkeh5Y#WjTmx@F?yE8_^d**(q% zmS?8?rjQ`4Maaw~pWkuyc@{P_iGq;JGD3d-SUfhw&h<)Qv zWPLpz%-|~Y`*T}zjexe8UrEEE8pS3fk4H1mho$y53TrBo+1#0rDw4wUU6nChN;{Xd zp(tjZNui&P@=1zj9)uSd*>x490=+mKb!IDS3@xPsDzDnbR^c2hX+JQIpcVXx-d9wl zpo7W2d@5hKivgs`fvH*Ko@ue8#K~r1ZMS+>GNk#jajvANI@W!u=BQ>-M@<~YT@#-j zj-~v=FPq=1>~vLbMliOwLfnUZWo2GXO{RITNH}9ta+f2bjD2xJawoD35jEFqFgKUU zONq~n_pF>1H8Oh8M}a@mBq~NuPRi5Moq+_8oi%#WaKX1L2%uwNjeqvVQ#R_xu2tR_7|_rV`%hH`lJm z&y&SBfxKK7`o{J>$ja1o-Z7wUK}Jo9L7{-q=}5wJ@2D8qcglQgd-=WS9EB9j&0x&O zd;GQ@m&yc^LEthLMcd(LKf>Xj_C?_hf|crPvDLh~c3~m*ev>Mi(Om)OiO`T5sWk!1hsF47G8%c?M!68%wCjR ztZl5#Ex1rF24vll|Inmw?q1&hH$6IUFfW*IQfoPEy6mZXLHO~!XvPy~hxoG!k+awNV|w5=i{3fz*8*HwiXxo% z`kSy*KtYOLZzGUzQ(J|%jj2od;tb{}jk$YuplynYD5xG@IAfb`viGio?^}x! z>(*OMzn*pPFGbG%F7j|!rbG8gKzzUU>0DvYv)9Cq--&{*eBP4Ru?kW=NA_k{q+s7#+mypEombq&yO*Kn-xAce+OV$1iLRrGt9Z)B$D>5FWY@l@ zwLsE5#kfxeuQApBFdS5l4 z_p1m!SNzj~Er(T0NY~Eq_xTV$_r}+Jy{?*^DCa2lHfUJxJO!KoWVl!KQ=r9ayvQKM z;DFxS-srPcGF&x(LHjdwi}|pLvHbJEi+6|y_f_!=I0aI?u(CzP85xV2Vc?BLU({5;uFQUw-0fxxR{{Z7t|N)HneIN@!A2d}m^Y^P);z z`qIrtpZ8R+O?z%{H{a0xODJ;4>$`!%81IQ`!)h?*1sNhDX8^TA@AKjJ z{$Ngf(%(E%SiD4#5o0o(AZRZOk*w=Fs@xlILtxDz78?GEMc2j#WJT-V+_hCw&uZSd zpC%qrApFQAm4}&<6S}QxzLYHQlIOSu&tb;wz>9orSN+|M7~NMAR0a!Y7YW=vwSWYF z@aDpdQ{oMf*uPi#PJJq2!3jt%lP`Ydt5##8)UVYoiaWKK22-4>ZbSa-P^VX==NIE~ z%xdEP@2~H(G|`WrMSaolT{`+T!2#AY`jLK6Hhl4W*2TXZMVG%Qo{*x``aO&@dqTt! zr?v6;_d{HNo^i?giy-N7ijPWROU>gW_>j$Xr{M)`-|~gn+z^;RG3;o&^U3%E;71mF_93MamJTQAHRr>hx&C#eRubrJAn*ORg zwpTDWl;>;*`|MAeibE5n0`-$7m5-k7tWLR#cL>qj<ABi7l%WVyhI3Cz!F?#Z3wf_LWHCSn7yY;cbd(kI1=V_=sTk>uG3it_bZXwM` zQ&V5$s7om*>%z?ne98Vgx}~+_&ScoQ>(}LW+G}7NMnn+Jb@mZk%jv+KkC#K|1O;wN z-Z{Rc==oE0x#aBUZ=ZraT-dA@4qxU6)xZ9>dZ>M_{*l&gfFGBDqT;4hf^EdE{mYa@ zrTNyEMHL_)jo58Ij9k~hBq`avO9c^77j!qIgHvEo6D>Xs`2vj zdI@{=kg=WNzr}%IQup!xQ#Uz@NkA^KRn(VeD|YSGsLMz}afz^I!uj(kAU7C)zz1qm zicjHfHij82fuZ|BA}U6}y??Z$Ey!Vt;t2bRiG;95e#GicP)(QEBNz#XqsNwcRgMBHb`L1{y&RVK+k35?yNBlStG)!NL6kJol?`3r2^W z&wlSk3Da7gG{!ndR6E;anfj2uD%KZ5cR;7Kx~=u)X@3HeK|2eV>0*0G-QwfAB_@vg=Rng`pBr>sHf zSG_8JH`n1lJ7gs=%E_HS94k*|>9%`|+gx1-&+gwbt#cWy?AJX413&-cxCM9)R_oFF z;n$*XO#W^zA2`2swW{;yK0K)*CpxYWi`60E&ylN9 zqEMr&b*ZIB#$^yMGf3j!&kIV*_5V=P7G=YF?;npIJ?d2P0m3OP(NpGtXIVWzPVN`E zc?nJe7e2PMNU|=Q|I->b_|K1x*ORz={!uixs#Av+^U{b+em7Ls*S)GrRBz=J>x>rh zR40P0vGHb@dsSFK)h+OmmE9M6{nrH^pZoH`BdB%pgpC39s#w})HTv-D-nT_Nu5k&% zWa`zGND(oX6vOWDZT|IRHnzLpe=*m8ef0n4gF&dA+eH0Cvupp0xwn9ds(astF;GDP zgHDw$X^;jHVdxr$?vQSfE&(NFXb=$T0S1YoOOQr-=n(0ajv?MNJU-9Q-#@;2AhEe~g%*=L`9_P+0H-`BP84GKw4Ik-^?Y}`@UpEg|^(VCbw(dVOnxqmo$8i(gC z4eaMsdu3Pwq#3i_MF1Ks3&CBbraF07f?YZm3}XTfj<9N*urYEF-oP0AAtr(Dw$_-K z6Sd}1!0#|HNLHq*odgC4zKW1z^gNClEx3V$1I=nFDykW`=2Zv2)?VW1I@tS-{tpA= zOxwmy-s_MuT69*49^C7YJv`uD6W!7M7NhiE=Ne;obiQYx>uJ|`Uf}~QyOwO+A!{_e zvV7>Btgc2mO@2}nvJP0-hhavEZZf}(f1MKok8xTV+nGOgb>mCb0}Olbj2?xpRSXS+ zN~93j5tXdqu`FhwxHqgu3u?lfa?lMF3m7zDz`JfH`&{g$uS@Xr3+xWcw*6_Iq|s}M z5GI`uuT0|AZ4(Hq|7a4a?Ri1~6V}uNocOlh0$z?Q3cYco*x@_$o0bKl|G10iU%(Hn zVnUKwbNS3}g>lS+mj!}2>7{nO6#Z4qQ`K~U$sYE4o5T7*$6_U3r~q((SM!1b)E zVS1WXTipL}Yup$;Lj21rAt95126Zz8&uZsqE8u;N{=GkB^?^eyH(VTHTJ7!OGb`#b zF7*N?kW8nIl?b5aibS7|;~hqj$a89I|o*y`ms1} zP4QE#t{70^mKnjkCrwN{QT3gtbDdp&`@3)I1^W9Rg9N4~U@70t0E`w5e?-5q^9JyR z5rF##ebHcn(s+X20~m;lu#Z`<7;-S@?H?EsQFC4~`ByrkcU%$qjxqAnDTUTuL#J1$ zkv%MDqEcQxzHT<9kSeY49!A?P>Ky$bDF~4vGluky##uJtpA;k^t*|I=cAHNk2}Y$L`dGa)>m2H(+#ZE=pg_gD*%Xr>X#;7LM^a;>^c)ssdp&EnrO0Lw(nj9tUIT;cZHww9@vUzZjT(PP;MKjh_zn zKM};d?!V&wZ0wd_lHvQL&n_7syNzYOYAzh14oqx{@SUy)zM{a$X@Bl$U@D2}U*OKf z`5oy+5sHt&`85WC0N$iL7wG1i3tfu7FbYApE~Ao_lX$`_Q(2?%@k3^TEY!KMY)B*g z-ciMDac=YS>m-Hy7-qd!UWOV^v~V|sl9SLJ@lqB0VO6qeo3aK5#;Re7hFXbj>IN-s z+tZ#$(SfAoVnF@oc061jPZ>_tn&S}xduL#nyqEqVGiL#P&U+nWm8e?meVBOJBeZX! zxCw6t3}RuJ=&^rraIo{{1P_o9={wpc4(u*=qiy+l6l#l$&=BBMfSxqQ0Cb0!8=~KPuA#nkEBnP(YWdT0Xuv`U0`q8`?_FI?IKc03C!%yy! z;Av)P=V)18+V_v3{VB~y#u8os<$BYeawFU3!1YN;~ zq>eZDNdVXwZjJ6f(`P=79>8`}3oC1!KnKYAYE**mD*(hJ4*Nih?pqs=?Fp_jSeU@X z9)C&)wyX7^zpwQ8e!t*$opIsyo@(DZ51y@^Vpd(!BjS#me6wC`$@h(_XhM|y&}6<_Ep~s5w+I2XA+K1g#tKnVACz;aLEo%z{?o8-mk*`%N58? zU$A+J-w-{^pjn;kk|||61aow*ReSev81}1#QybxHj`1|OI zMVo^o)Z)e_&sERX^hbNe--lW2`f@MO=(139UEM1W{FwRgtRBEEO@+s3f4y=(H)n`W zJAxsm{)a#EBU#?qMAmLMkX070e|ulm4zzpb9Gn#J2%1Imj%0VQ^~j=K=I?`j{$WtT znU5%tJ4Ec36IE$&;LBib!;&uMih>J`N+C!@U$fUwpRLH1Z6E!Vb`A1}&M=W0pW%+L z0{)nOf7Uq`Fcm(HvsD_T^gw!)4twgBU7a=M5X$`Es=Dxsz+6G9f z41P7XSFU#IfYh^-J35Bf{!ZKi)XI+}jzz7N0fO-Xb899y27b5Ze#1d3Km0HdS<1!( z!tUBz=BYX2!acd8``r#g?x@H4>|Td^jXoac&O3~0P_u3b?f z2UU#JYaxb=eq7^c&d*ZI&H!K2xc_g3e+$kR*|lmUtWS@Lc~swru68!zV%Nn9QMny> zC1cOZmk}?M>^smJI6+&QK9$n0AdwKREj~(-*&<5N;cXd$@7h5UT1{Sm=V3wDo2&VG z4KmejnxOvDAJ0pyA|PPJ82HkDEC>dD(-awrqvGcaXTb7{-?Ic#et0k;j=po=DwkFH z1mM&yk!!ar3sz&L{7nptnm&D$a(%rg(ON@&RwuZzIML9k+MD55a+nt;U#eA9Dzer8 z#Yk`YD>7p-sMTZNiNY~xR-4oRNv?oMrRL(H;EO(l7UJ})qxb2exH0nWi}YF@t5Ebs zh?V>SF2cE*M`)=G4_5Y6tvH7n5#8c7J4Nm>tthY%_KYHaey4w(TlXH@>Uw|VTE~%Z zNGR0=JV!MUJF;O|qmrPjf%A;allrdr>AIZ&?KoKLY~VFgeD?YFk%w5Cs{DlQ84e!* zg2L{3EncfH-Zi_*WD!;P&*l!hFPegpRS&&F45M9|CTJ>4SgflG%$fznSpJw2B|a#5 z!lW%OK6M8IRZ~`e@YmO=?+J1x071PRJ=?G*rB(WKx2CPs>Pi$Sit(5p#$ew&$eT}c zEV>L8G+Z&Ssst?_^1%3qSrgozYtg?!W~Lb*z}$aP3QsJ7j;A!Xbu5vY(WCF*mcI%{ zUKY{W_Q?Zs73EI-;j3@y75Vjxsyx9_ z-dPgv0kLljASSZY&#WnXRLwMp&| z$m>UWt#A?&rl$ksz$FEQi=%s>+zb7O z?OF?wX4P_~XIc!r1ZO3pL5~Mk_I)da!b+5&!__Vk6>c~(-Li;+gYr`yBIm6*ZvZ_h}j*GgKbJQ2S1T3BJ+3zJVrF&!H#jh+4^5Uf?*sJ&!g9fZ6EJ9K3LZOE)3K`i5F-jZ52846zaRPOk!o zq-e!J3FxNkrob$+a1Ft`$jZU&R;`QBAE&RS$=A2FlPh1Tk)rSv;AQ|7Sh}3W4J;=m zEOb^>Xnijxhiozh1t_ERW38qP;Q`o@3kAF5Ljot(h>dP1Q$1*IGfu>5SYSpY`~ug7 z?7HCBFjkl-VXO)C{D(!VkW%*N#cEDAj_x{c{h%ZDwJ7En^PaR1-_%PUEKBsUc^-yG zZWV@$h`PB)Gr3VBlgztKpjjE}-mBkUFRaIBpJWJLi0S<38gkVS$iFqK42a+By<~qj zf$eD+hEfp%;|Bq-?eCDShh@84g(~xVwaxz3l+~Aw$87Axl#(*g@(tg$xrZR?)U{Qr z*ma($ER{II6k1TuQ3wnNH)K|N><3?C*2ohOKiG2HQf;wICy6kqORhV#d^3A~qEZHW z3+ZTbrVI<9&S)CBo2!R}hc*u!EO*?6#nPM%&nwt?NEy`pY4l&wl2vzc_JRyC#CWSE z)nLxbsaxHqtPKArI?a#yX^EybEYQ&O3q*Je_iEcu09 zmTIq$anPNZjoXvRD%TAY&uXgzHCoy`8#fo%w(dlD9EfEmGq;KGRT~~SyM*NQd45tx zjVzHeOG6z;w^ZkEWT4K?bq16x9QT@MyT}4}rK~&`ym-`F+z)F>BXlqqYH2|3UHXLB zVi6^ET2fIo$CRS##Ay#zc28z`@Y}k;tMoFon8=gGX-6Gsd4=2|?GD1rKe2zrCCa0L z@>JPc5z=XUHVG{U{Ee>~VU2GW0asUoc%*KG6e-y9-qB*AlHnUji<3)T72yZHKi~v_ zPPpq>eX(!cUG(*;Yf{N@#d({PXjM#%LyO~~lkr7GAt_Y7ZG?}3LCxYAzPvjIx+VcD zx2bE2Wz?^zm2jKCAxK%>NKgY&(;-eiwc`x9grv>%>!Ru#V-`-#2na){747bIxe3=D zkDUGL&<`Z7Bh}+wQ16TTbw1NLtS^;gP$xi4iY0eKYW_-moC;-3K!+_9v3xqV5K~>H zmJJO!Ki`#xoxTOc6VRd*sxI2y$kPlj!uG9dw|R|uq#$>dRD>30ORI$ zpOa?QwM8}x`qtPU9$)8j*je4TOl`>p*1Pg+^f+BaCwB&-8*eQ(5>Y(nd7^KVB zpS|!oX4Bb=x&?;k*mqYczKXUmaBjhf&YnK^#Gb+i>FMTrH?eH{HHIjjIluHJ{Z(36Fu z+q5SO0*ldVIW~%MOo}R(R=rAj%=ZEC15FqD$ZKOZPIXWI(j3MBHtZQS;tcUcJ<;z` z3yF!N-!pkNcYWy&I`Z_-!EPE@pP`&UQyZ#In`&U|C_=2TSGPK(7;ahuM{ys&T7i3? zsQrAk&2Y??;hFO>@n$qFn^1Es_X?Tli+w7roS7J!df$BnR9GMCmC%yu&ZvJPOD)S< z%7T}GnvH|kENmo{SExz09`^5hoX^JZm2z*~jgmar@yfRHD^M=k262k^7yA2Ot4HKA z2(Ty8OhZ!)x|+z#UT_o&AsYyjc{xuuKUNSB>)-4U`u9FNth1>;DL|Ye;!@T zjEnT;;A}_`w{5^~>2piFoE*r5|@nx=cBw zZ@rF=^!@9QoB5)8;9D-y`v6pGH9M4@Ikc1Qf8r(!PND{hAbh?*nRPM70a4o`xSg2* z%MSzdt`0;8IMxpW9;?PBg(=La-MTb?Lz376JEa!?0R#D8rP`^r-H4MuZ|E-A zJ5Q@Z(m_#WZo($xLGCL7gtu`_O-L|7)lv*fBeiS0Sb6ya2u#K_pN>!MJ1+vBWda4R z9WQuKcy&A(?f-Ip^g1b}W4@DJ^~i=R6GLZtg(jl4#GkFRj+>3!CcRcQ)tpvXi3tU@ zHxxI~`bx*+tqQg7>I?I|_*nJu9hPO1+P)O(MW#-~b8uyaj$oQohkGZHUi$T2UB`Ts zMvSX9i~4t~_raf%a~6Y2m!(ydQWb3=>#hB>hq@bTx~-(hRGe>$v{+exPR1}Wh-b+T znAo(6t{Buj4J+P}ysdYtE!5EbPbv|`6p;BF^HQlf)Z5WS&SzLDa?pSoTOMImI4V@# z%4NWt$u~z5*rLnPdg73%9l^S~qOO2YD^}iF6Es0+nIg1Yq*gtU07~NL1&aWYb2qv> z)A(uyJNX^6+x?NZ!_b^<(d_mI^KXTNZ0REnr8M&%i})6!-QSsXpMtJcM-E%;1-5GG zmTR@**{TD(uwu&qBR6kIUxEFFhF(J`&1$Hk2q^ogJ=~8VRh>QW$2*$EZq6VQg7!ye zn#r%cYY-}Ib*1tZ*3iHsuWBpoXVh6o_g_!J6!Jbg{4K z2t-^|W(9}fy6Fs18w(nIQx#kBeAr>-dih?K<#yVNaAF*pH@r>A_pB)q6r}iZ_#{#* zj&LFPg&=>m*1>ySOHn5UHZP;P<<=^M9NYfE>hV|0ICu{gjvQ+zWPrXRet=oA+e=5F|Z&$s|eky6wRv{9!Y=PJ= z4!y)R`GfaYLD3H;5{E^j-n*u5k7bt%wlo?Z9~IjO7df$kyDP?y?>(+g0m7;dEmcZT zTpqsl+qRYJg&G;cwQgi+8W4k~Zz#1E9lZAU*Ja|4 zzt;4dqWb?(;{W{2|9FQ<&|e{+2%w!4!T)CHNcw;P+W;~f;PBBT_zwaMgWjqCF6fPp zsXu;yu74bG%jZ}EG}sasrv=foMN{fV%~=W{p{QRLAyMGboj!h8EeZ9fZ_ z4m`lK=t%b1Sl*;vZNwESVt@1-4zr`_yCDaF?WQc|o9j@Y$1Ltm6E4V{18y@|Iv=q+ zkH1)OO6PjkYx({<B0EjEeu$I z6V9mi_0)tX*&Xj7mlsr*8M?l^^Z@PTyDHoD{W}ku)D}N5jsiius63>jgwDQ{JTIUn zoeTY|t~dUu>*GCgfCVe79IbjYQ-x|g=d0hjyl8}GEo*DFg@M;2cobYzVLSfWI5l?N-da^kh$pO`od$SUi;_F7N|gNv6*EvhRhtj^@pOB_YNz;rpw7lZmCOIgS2F z4GhRLq^`Q8bmo{cJe+v?_XI9cx6y=CavK#AGT#NzeMfV6zGGFd_5R{>vIgE{>TuNj zHtp;vIS#g9LBNEezFMQ%#Rdhx316A%Gu6!-T;efX$nXXAKk4Ls%00Q+X#7fLnvo{3Rw_1c+(?`KkT@gn6Gbp48|@ zSlbZ={6AwyG%X4A66n5{>|YWh08e_4uBvH!*3vNY@j=*xjy{%P`)Lw-ey%J1Y%~)& zJmd27Et=y(3p$eeY~G=v;qk}5-%`Wh2H+;Z?gN?|fGEEIxA1gH1BiU;5MyC*H35|1 zcAD@Wu#FTYpckYDj?+qC6yHfm$Q99ktfUYL=mVX*Su2Ud*!u?JpOWcZ>_h?T#zOsb zq&~pDk@&lE??r@%uWVM%j`Y2H1<3O-vK9dS3p7jHwpx;Z4wX2&!bUxGaG8FYDfalj zx6ZC-BM}7GBs6H)T#tcTNAl(ASW8O_X+|Rs#*k6xcQ9aB9d_zsuE=sHzd5FBkI&JX zA%L@ng9y+ke7+5Qh#~V54S+~ZI=Zb^hP6q7VL-?7_EFwliuN?%CoF_vha<@E z>&AU|SpiJcWb&Y@3!_Ak<-wl&Z5#|U=j41f4(QjW2!ys)PG8Nq|X9 zZ#5bKJa$`aqG`Dsprw5|>wY2Qyn$v`_v+8lN#DgBZ^D-}Hjt7Vg&1NUfQYBk4fXvXP&l~l82FyhJ&F*U$()7Qj7CPZ9Z5`@>-ezg9#2nq_X{3Hw z;+`+iiw-PbEGYgd{1M~1Y@hZI5;8Z3K**8_Bw`K;OsV))6TM&@Sz+qko*?V8Y$U? zXZbr}`mr=XESwvy(0cr^V@_uJr1NwpJ{!;<+e$ z476@yNT*Aag;pQTcy6}}15Jkhj^!o96P`ekds5f@Z7`%$UY?h_UH3;*yatAUP{3Cv z@c*Jl>9Ms&WP1^sTciZ|=Jpy9meH_DuwIF7k=;EqS)duciBeu{CL&%%7PP&{{B)~! z4N+}WwpM$KfSb_R$f<#?$?gt@g%gssJ!6x}*WRUy715=oQMenr>8Qi2eru5Vm^x&w zpc~=dC=p2AHmJ$Ip|Wn?1-?j9uU;}rxP`HFeX@aH3I&X?59fDup4|O*)4x!C`sj1J z#uLk`0y?#AhY+*ED0>^FUO3_ASe3-|qqH9R%mQ5GOI$BSd#jq)UXG_H4JQ^hK5(ft zSz*hQg@oZp>?6dAN(~pbE?cv39=4qO8!8)E`<+uN{No~0OO_PZ+08$1#vqy2>x*`E z_(tx8*{+-0lM(KBdc#x?(ls+jG+(p5YOP!b+2!B#&1D=L&Dxz#bp&EOPHqtbb#0`e zEMq}RfLlN0+IH*JGhmQkZyG+r95fbaH2fi@z@IjmA(g(GR_*=j@qB-Aa)XJ@xMflP z82pqPx4LX;@9n*#5vvIA`nAaY4levM4l0uPWtFH~=GL@g0{0qpD9b403!FMMjF+;q zg>hP(qFr1*+e>=j~F=f)!KKXA0v-g?H;_K7ZHWQ0}VbwwTDhz9d?iY&6lc zncH@$za+xF=iOXxUAy#+hAm#+l611cBBi-x?&j;u94pdwj7=&)h=A|UY(gC40wT3m&Wb5tY8Fxx*m${)1SG5@QP z=6+c5z&uN|&;3C{Sc&Eu-^MtpdkTalE$2TU~(TAn41=t~>s zAH~$Q*HxNLnirUu$os4_AM=6V%P}=nSbRM?(~f; zA<61Udg=j5!ZQYNQO1oQ^V60PlJsbw3VF8IK*$QJDJf_L7Kph$2SG-jgcIq|Beu8f zPo`1Mj&km0T`a+)*Zjios~wHjB0g!C%5P#-taDT<5|O4yyDp)u4w|WXlT4tS(PrR_ zoRT&sURTc6WMi>=)#;_upO>bkg}Q*j;Y< zo(6NctWjsOk!O(u&n#klBR${qC3M4bLjY!DWz(f?6z~3Cv%32(*x4?7qdUCsMO)Rz za3zYilWwxB|7o8UT*>d5cA_j8rIT&Vj}9(=kK<~jBJRssTXxHT4PtPvS|7?zUeqNu zm?N=_GaiBSiW_M*Y-XOz2D0d*T_7irhutLZ^KF?p`uxl6E&lq4mhdE7TnY@TZ8I$s zueN&~CHXb;0k>{FTUjyYO$uLJE$`r7;z~}KdaAk*l`L0dDtE%-jfcTb;+6p0R|lO_ ztTmXh=!nS~SB^VWlFvUfYx*n{NBKOz^482?=Z);Hl<&OrHB!Cseyrfq_M?1GFTb&Y z_1?$YE(%hqwSdV84wQt}nN z>H12!%X4*Oe$MG%DGCR&gGJdBM{3~LbJ=#?F5^lZEsMhac`;kp>JPMxU+cTaC#kEi z=UIu}fM>$=_}4wTn*vl$#qzU02{iJ*U+re6E_I)jLM2d+*Wm)KVuF1g(!rDiWdav> z`K=}b{1bMJE;yoc3K<6#PU6c2DA3#O)88Y>{BpThfbDF z`ZJtqDu<3m9`z2I?Ji$hFE@9}Oj46nL+_(PRcP!{o^DV0jpy{oDXFGLS{#3tkWXhEO@3N{R;rI6wN&dR zSaof2=mk36OBi+7ye7vUJhO-OQkDrVsSm|vIT7u5x|oFUidG3|`5pwOAm-nx29`O% z=RL#%mj%l+Yjj$JIA+CLbCF5TQ;UZDlvF59iAuWa2xMk>AG5lyUDZm*>CIxEfpvNP zU!k%T>61cc6f4g~^Ta;8h(U`BUb(%Uoy}y6I+Da(JpBpKWjdKTVRPN%L-n}VIxHJ^ zny6rED!+z-PR#_-zjbR-s8k|_iYd}IVe3nR73xBPKja}d4TJ*re!6XJ9bbT((Z!m) z_Phk`xnvp$aCO$yhs=#8qMME4d~-mNVZa(?Y(0l=hu5`T#uI~REzQ|t2fb{MH^WzR zbYOg>!vU!w_$s+_erqo^Bf60COF;+AcqnrmJ(`@x!sF)5SZ{H3L%fzcAT5eKo4zVn zFSYHE#b({FL_VsX)~?pOof2oXROM~$62Vq4j}>+Rw9xRA5`$8`r%&6xErOq6?C zSbA(LD&8jEzA!;|ja{wEiV*$f0b|v1ZA`Np=dga)a?m8RQAOt5VOE_-NU~mfSLH*a z3WA{AFdU}mOSQz)@vlT@kxI3M=g-1MUZXN>-RX|Won|Q&8}w;g;dkdMs0XE{iN`Ce zC0fbc@-poL`Z!u$9uLyJY`FB}yYReMAI!YtVa=U%_}t&(JQ&hgkfsOfQZ+4+=OpU9 z5X=>)?6cN%rDWBuCiCEFg>sifC{1 z&K%Qj_Wr~^znAkxk)TqM`|G>P&cpY9g$Ef=!6Iq&7D`3B@Xn}TDJxY=Hz%jdZEBly zrY$wB#-!Tir3aX^6DtPj1`!eUE(FG)&E+&2LOCt#&6{^rZ znyS?V#6J<5x05T1282_z7T^1@W$sc=cz>ow+Aw9(mJWi z6_5vp{EZrLPc-{=kmzb+qLDT#s8(5`VdZ+%kIOxW?&(UUgPE1eru z7w^*Nm|yIcR{uGSd3r(*U9RA;6Qh|RsjZ@r_w?GzQ9Da&mciqb_h0fZKWwX|j*Llc zYVFt7@#dvb3#whbj+w$brBk(yD!xrnMfk3|zR1AY{Hd$^2J67l^8=qaW%eKH>pAvR z2Sz5dba``O)0VIX2#;=COvRHSz1uXP?T(?tye)SIbnk65n?_YH&~xV^DHRX+!a1f! z9|?>nslq;A2XU^u$!uga&ro{v4ZNSx81-Ho*M@si7Al{YP`bk-ee}^XDgDBs)B4C* zMV-FTvBP6Ex52|Pw?neI!zwl3W3i?3b_dkUdeGr}plvB;=s9gzx<7h9eT-x6t5gJr z2C%uo=sPdxIf7FyWt@S{f@)JNQCvJjc9#J}+7Ay`X&KoUqL&X8_%G*{Ib^wdj?q#JW|K|)#M(e7I7Z!ai9|;=Vm)JkXDIiNv`#2udQ3E znfilBS0UXwHCTAOH)lC0Z>F#KRb>GxtWn#97P44JYuJ>pT5f8_(WKi_)dZfp6*zJS zRN@Fev_4xFs?P1uV7xZJr(iidJ@;9D)3~9wzeqhO7y=5Jv$KJmTu@?~48rIm*FJha z-Y2U==EmG+HtoiuIM!(7`|5un=??Qc%!4J!4t~-~vyDhUwD^`C-{;mr-|4(9vgyf? zBas4kxzi+Ms4^fi8B5=Jq*G8sKei-wlZ|&ZCd#dY>**gNwEseAmM9Sz&&ktnYpge! z+c8oLbJ;jt2Ab}fm%xDfbA}^`XnwNj5ksCAm{KUep|W{W`G}vwn`t;6*VP8{J(}ir zU+hMf?Fz3e_lFN(6GZcOC7xl@B!yWar(B+$rS+|vNR_!xr`vhSd~8-E6ES!86!Ler zZLfcJ5H1bX&2F6&2*U=~a5&?0ylIQ`(h|1|8L_j3t|zx`4C$=!=V$h9sf;r@ojDCw z;1W;ns~uq)1qMU6Y1^wHfI8}(T;*%kgBuw;hDP!SeB2_%-l|nUw!8%_&Nk2@I7{^; z+6$hi^ubw_-t*Q!fr;{vzAu+o(e@2fCS6OG+ngN%n-Cn>d0$h;d zSGC(VzjIH_Ul0~O)1q)=vaI5{9l1r-YV zT*R04#&f$Cq4=?78OGKr9GfnWzaf?2yT$v=iDfd#+fnNu(Ve*5O8dAu=|?`DOC-^& zk20R*JQ1_(OrIJzaS(ht5!p;S_*%)@IZG< zBVq>GLd~bgMINfjd=a)sFe3Fr z&ik{FjVJqn56Oqt__$R(st;L|2y!wzL38$>>O(oCE^ni(UQNo6Vy3QJj=&MTNzMK_ z2Yt@%L8gO<&16>;(Tei9afVp@YOf_v#jA?ijKj+}QnjRR>IMB(-(`sAd0CJ)`on5R z8R6$0tK?)k=b7igLbwi=oA3{DpDDu2W~D6za+=lwc^y@(i3&i{IXjzYhsG~=)qN|R zT9kxMxvQC{vEHQ`wnZi=d~?&lj^%aaSl3>u1s!7Ix~=1=A9S+wQ&1e_NOWR0z4OW#|=v%7nKOI z(AY-qeIKU;qAtCic8}v{^Lsy&dUn$H;y-dwac3MaPd`=NXO{al%?c>~Xb_{Ru@7?f zrnc3T24TYV2WzU5U12wSIQfT|X81a#%f@Q|rx&+ZA{z&PiyDDv zDpnwnmOhJBmJr6_r43(){U31-WaZ!REw^csY!$woYZ}G#D`U8IWU$pgXXwm=B`Cm3 z0Km|3cX1(q<$b0=1HJRH-7jW}HIQq#(^O1NhPLeIfyZ!x;o^h;d&~l{e`gXG-XZdcg_u?gYUpbK%6{?c)H?Iv;j@<%Y| zc#QQOFNr`Eam0kaX#P@rmx;Dnyt_rihN8DTO6G;j>FoZu^m2J~Pa%TU6^JB`rF}=? z;Cb#reWWgorT1?Urm=)e)pz?Yii`RegI{ppVoC)J?#k5LuYosV3~DnE%N!FX!JZ44 zL0YEi9#dGa`aW8El1E3*{z_IAHkWW?-j2j#U}KH-HeIppb9?dR;N^Ambwnn!TJq(X zvUf4F>ntba#BBmxU8d`;U!Y!gd?|_q z{L{#7Hd54t@r6&1L#RockR20BEt5$9b(U)6HqB`qAa#D54;v{|>POdU$f8B;OYv9&&PQFBvwP2}O}%k109VE2NO<};$_+jsOSRI}+RK|^xi*57^!E=eYv>3#T`MX0IfhFf`F7#9b z($LddqyV56g-zGWSG=4|B2TH^n@ytndN#Ktmfj7lGu&_$L9y=k1g?qxj$G)#S63KQoUVcqCEt^8?q{JbD1b zz7Q|`C=)jm7iYytm>e`#>~Xnr`Tc8#MP03dl3jav?{lFA^`mGCCVev88?21r`4Oc? zLmgU_bB$HPhH*oe&Z4i77vFuQjc+f8ETguk2uR;kd#tM(KOX~D^pSNvt<-g(mdh&8 zCxGUzMLKyHN?eR>ucBq8SR$B4xn?r$0{5ehA@k9%;z&{L{LE^^7kWaF_Hy+h+o;?F zvS7?pkLDpvaHo&khSfsBO2#j&6;)x!2yYbBYwg10_;Pnwi$_$K#wp;4krvoIkWJAv zjstQR-~eyE~JwWRk>4XfYBm`y4*vb@|k?CBGN^jnvP z0ev6e46P!l%tOR~g1p-cT0 zqW=0IEsiZk`!JTd^d_#AyHR>P>Uyo>JTq3brljCS!xkd7Vd(U|e%6 zpumI|5H(patWNaq+0__XJWb=k^D4WOaJa= zV|dk8^d7R`BmL-2Hs{VUFZ;;#4ag#3jCl8TmM>7{H8nsapur)xjA9hf*hP_~mK=XQ zm~hAw6gsd&OeofWDt(_ra9+jgV=_e?B-pa~Q?`VfC97IEEx`G(Aj@lUIjW3~wMfnL z^Lc=C;f)7mmGY}bS*wWl)nl9+j^6ZVf`zOq8FN-0jRo9Z0j1i)vx;A$NPcxt;4TrJ zD{HE6L6QL3S4Df|Ht}I{z%zb5Y;W@d%D&;ggxt#$={F`LH>vO4@~B0!f|!t0B2BAi zJ*r{5zyvj|*qN^J&T6R?{6SCvyiw3~Vkb|MmtcmfVf!GPXFoOmaGOsSVN(rA-j%(h zy3$uaIK6(ei+b!ttBX=neTDifp6(9B(>=2VD28}^%L7x>`IZLfp1XHHO+6GpISX#K zAU>3YTRK`wm4MZ)eroS*^$$OSDqfh-3(_&#^9*+OCD5Kg*cEZQiIReUp5YSEA8$!i z8X%H`do}1-|Y`O2&D@1L%wOezhK8RisBxdbqqzkAD5~UB0JwgMYuUw%)?N z@gYh5M7hf0b>nw`^CVW#7%CEpHnY1c(B{bDU6*Gmp1nFx^~*rd7&=-+y3AH>4j zxtdri^Vz*OcWYTRjQkT%=f01`lZRX>2jcUk8sd#-5Gkr9Rz!H}ts5A0ACBJBzqp-< z5*$u7@F=y8H&<9z=g4b{>lZF#Of42nc_k$Z{Z8YXF8i$I`y=iUshVFM1LhwCe(GXg zbbetV1MK)>aR2nh=*LX)7Fpr7s;vHt>1}gYjn2c{NNh>kTI95#$HOV_9G-o5b#PaM zSGmZC6GDSVCVG8vpKgE9)k2^A-2`bBvA|+Cn9n3>(X*Mt$P26h8QO@oFp7);7cKh6 z8re9vrB3eE`@KCNJ5M3ZM+XIFQ_t6%V!!)%TA$(EnBB&Ty7<86)X!z++l*XJU>uC4 zbZSctkE6kSrTE;OYw`xN6g2owLfGz=h>4i6ZfZuYRkumsLJUGy28>|bpFGubiL~`B zKFmWE(j=+5_&#VSVQ)+dRXf;+_2c`^ZjcDpYw(g4pLZjyMy>4fiwiVsMM`9<`Jq<} z$<&cHb&3VdYi;4DG0KA_cs!EjzE7^ASV@3lt8`+;Sq=n$8=9&=!$%G=S*RtihCS6k zd8EU^Lqc_?w2+*_S#NK+F$^-c`_4q+l+-)CxFku(B<&h>;`@3dTXe7WwrQkSx|M!E z5PWqDm@LaSE{+YY+KMqg!gYy~&I#z}z8@&XYvl=nKDdVQIGWt^cEPeBQ!}SxcZFANBf;6lRY;powNr@l1s999Y@*1?{ap0&=#KS zPt>zhkv}lA;hhl~B@xEhaQ|-locLowo%B0%Kp{TgRr($TjL86s67iOm6@9cs-E6=3 zURj|W5KvjMb#|`#Bs*RF_TqMeEz?~^(`zPCK@-KCY-}ovy+qCvJfA8(6ksQeo-5y$ zc@mN-r=LjmU=k)7!YAjsj|y@gPp>yE$X5!dZP^jWP7(-Av*5t?oUjh*VOGQY9$7xX z^pW^Nk?p(cn=_)5b1o+pFLjp60>`+Yfuz8?&-Wh-b*h{Ci?utV5%cIEqdQMYt61Zht?r9#qT_bYv?nY-1_ z7a_=_CG9mqCp8prAyiYPA6OG9Y6-()J=RCU8%}jP}a_6gv)Em-peBILuo#02fRJyi! z)71dR>-1n}WGue1YRrUv8-NIzqtuwXj&=ChtbHCDj11=?4&!fon7nBok~($pr-H3Zn*<`;vj!a-g1m)0Z+Abg!$tk1*4RgIfv>9M)P?c4H6 zw%52VsFU9VXNXC2H;#((pa2!l)p@xHN>uR_&~;~;#GjE8nWSFk=>+0;YXjt|g{fU4 zU}u@pPXhXGjKqSij@h~u_efds5;+D2Y)_FpkhE_^PgpC1av$G?p->zdD#{^SRiU`VXeoI_L=A?X7Z_a;gC@Xk+Z`SQ ztBJin5|M9Hl~ZK+g7Nm!ZNTef?`u^X;2t~&RzI1=W*2Od67EO0T8<(MQDIK!b zV6G(twvw^~c?W!{t8>N$O^MFXz+Knd{iRp(4dE$Vu+8LryMbVla zv^Kz}C+qcV?5s8$)}#EIrm&cQLAE@V)S)0dgR9(ImRIHjEt|(~?XnkC8S(R5xXiG2 z@${pJm4uaZ`7q7K^V+$XlzQL%MoLcnsC%%zr0;9&&(axVW+L&r2u^JH%GX)vk$okV zT&QMxC~DD*>*BG?R=w%mBODRL#zzC+r{i|)*)ESGK7YmST(<8zcojuX4RwU6xm;Fx z8d#WW5;jzvL{L`KSynzG#))uWSaIq;DN-69D9@M4P7?CI@!{qq?@P*1C!d8c#3mm8=*;XDJUTUY-7j1 z?!-FPmBtg#c*eJGwIX-Ow4sryd|D;S<8;cgflxrRc5SD0oL^IL(;Jo;vjou6y5Vvq zbuvib54{7cesX3i18urmw4Fy#31LyLcv()O{PL&xPj~8vpGq}He+h6D)u(E>V-yFY zBEG!rSF6x18@Nc?-EEnS{S*Lfrpq6A$gg)?-~`d5&M90(Gfe;(pEDA+U2Em4EU zHaeuk?7$57_c{Td;)4V{!w?gW$t|>?vOMEhgmpVo&MF10{c%C&gLar2selv%aM{ME zL_4h;SRvCo)wa*Mt9Ih-^7>nF25wQKTiIHaOE-lNp1)NKY28ZfymWm9K-_r+7}YyMTIF&b!m(K|^U zjVDlH-Q)RAS>s`~QGo;x+4}G}U*25Ra@5K7TszHd5mdfXuE(zqk7-ri;$GFQ{v&%} zu@6$bx=(Pp#J6??pRd!#tKkKNeUvX8PX9gqjy`iGgJPWT1cPTJIu4z-CFg^fj2(G` zv6leMZu;%l&e`08gO&I=6D%i}CHymi`8%MI$cR*>Jb`241M7K~)e3lLYemSPcR@BU zU^`M+T51faoL^tpM2iPb>r)4KIXq9S z?=58l-?nJ4Z^54oQ_SmVk5Sb}>M#~5=qb3-p;qA8>5I+f6Lp&gw}`dA+Xzbuuyd&2 z%Ye4Vz24V?W-PKJk@6mbA`4Jzq3f@Z^^$X|>}@4=(s9fZZmH&tWS7Fv7>6oyTS9nR zP>tX^&n7fpB6e%2AGfvqA@MB|vISO43@#wK25DV_9 zt>yMOaM5iwL%g~a%|1LE>rY%>7aVq$$*}JXe00_zMyLJw95$yaSbpLpzb3Q@U5BzQ zZ38Q%wv~n|DCQn{xW*AGKId&Kl(qUR`Xk@HKk9FhV&*AyFw4#`deT3U9~Z|I`ms=< zBkQwg!3#Gj0i^L8stTOiW)wL3s6S&XEc4uPmNu8XZ&T^y=6ZkZ zbbr>yiQ;8G40=YDJXpbuvzcC7q%(Qs*5NQiFk~w^5rMn;riPK5X}1W;gmZ+|ZaSq- zV)wp67s!%cZKE%6ltJf)7IEDBD}duL6al0nA|{d<%vdrzZ`wp>1SvN^vNh(QTm37= zR^>k#!9Y0OJ8w$XJZMp0MGz30l`pzm!16&uT3xE z_+_2=0rQOsms~@`{-O~nzJk`2Pi5s^}=RRz# zN>V`S$au*3CS%gh=%ubbQ(s39+TlXxl#8z@06DazpJu67xFr11xBCuHQ$6p@JT4J& z)V51Su@BaCVC;AW{W@dUcJ4Rrks7j4D_^XCEluMXfs5tLh11zq)u?v9o=P@Q8N@4k z^nQ8mVDrAkz8P$w5BQTv*Q1u-obI@pG>zUYnaJ8I*!{KOp_WJ z0LxG2Dw{RRSti#N7!xceh9gE%o|pUdPL2n|wxJpQwK2=6W{tfwuWk)6I%uPR|47(Y zNE#FP^3yLbSl4uGj3!{p;VeT2O4P7<~_u z2TDu#^Vy}l^G*LNYEq-E6D)79Jxh^1w5%F#!o%=9#L3d}VLO`rLe1 za$8i_RgKn10j8q#q1J;jy5cSD;aY>oR`#YGLhv{IS~;IYb=_ce4%eH4G3_UpSX0_> zpc8^gQ}s)AzSZFZ zm0AeUVp6eYc@#pm@7*)6oPx5Zwct0EIK)QsHqIN`$$7o9Hr(t3m_?+3Fud|pUw)OQ z_T@2#rd5Lg@s_vRH>B5=-Sc@gJhq`C*_epl5y_@c+p8KEWG*tTX~$38h<>5`^d@2u zv5AT^%apY9==ITGlbkC%0EFo%$Kk9U!KuEMERItKHkdJl4Jz=z1UF}Ru-X1fHPfcM zhpD4yzmwAr;mJrJ0A0mBZs#%*xAdLyD^{FSm9k)bSl&u2Cg;IO=w)$-qym{T!u{ zIVvwevJiwoY!2^Y@#jN10Z4B<7Nfu8^_q@uNvIK=qCU1yh`oQwH+qzV-Wr>>P+kT9?<@P{GWdv{~sl5rgw1wt2REE z321Zx)B<^K17v}pz#jk?NBtZ5u6bnuK$$&~#LRf8(hL9)t6T=OL(%uAuP>{+6$eav z+BLqrFj@>PE4mozeuNn|K)w6{WX(5IF>W;0PEJB%0|C2*41C7+dA}|YNCQArK^4$g z0@@xx;r=loXZ6#GS42$@k8vc4(oFdsN(*=v$>i-UVjZj6_U2!p%{h#zD*&zmbYQ3q zD(2(orxTUwBqrH|=D>bINzeOilr26Aa{b1wuv{8Qz2*U_j#5=SG{ji8s%vdMZhj5G zPZ5Y)KGl;;0>sX^EOPxZAIds5HC$)dp7>2(=2xAQ5PpxTm6g6a3aL(>Ezpb-;Jmw)e*oKhU8+2m z>)8b}z8h3Z&ijyvV*n=%w2|n)P^OKsufda_TX%ZTSS>*1lE&K19Y_3nJpZcL&j~&| zs}s3jQho!9&U#v^xz&G_1A>MJp!+=^F{3rSep=t=Wn^+J6iARvJppI1_FHXm^NNaC zhH0ul{oz?whiAP#S9pnPaqYLLJ(mZ7CKkH|CA~0NvIp4!JqJQXVC#37b`Qu)$C@5Z z17En}Y%o@SGQ{Ed@k&68wiHPSeemrHWiOeM&1hgil?w~bQ&H9>8JSJx7d1eWx0{%q zzIiRY`{Bj&B3)n$RMay=2vy5zItXqUK)g*T#G!>M*GAn3Fim&D1ogV1ArZfY)e&>Z z%gN-HL(X&nsVvYyw5xco#mTt(v)7cr4z+LIxktU@qPb@L+PdSvNa0t`0Fwfi%%MPh zYM$0f#+!sord~jXEWcvw@1o#j=c1*zHX2;Qk3lpD1j+_|rSr_a?ahulVlHvWZfF)` zY6a9J?p@M^rD?{xi$>9rk!huY8z)`x$QH3+X5?2D(FqH~A0c{Js{D(L*p3-@=%@YHMeH0SCR41($e42QOqMaC2e2?+e^@7Jdyx?Dq;49OKt9$xcwSh&gq zfz19=9xq3IS&M){o5w~er^=-Pi1S9@N!icSU4g7+?PB=j5L3+4F?9uflzkjPVqexd zDOfO12vDmD#EJGa1KBO;LVpY#gP7+0*)a^PxVf&_3)AnD11VTyr&k@be>GKrqog~w1meJAj?AfWZXAzTC0n&(0Ki456ujM$PO9YSn`SH;Dfy>l~EXcQG;R3>D;@d9K z^{7fLbc(e7f<8b!WRf6LgZ0M>GF+oM7^^!l7&ix2^g#xQrz!hg6mWliI9xKtP*(JH z@HL?3zIo$DPhhFOR;i7KyEqVs-H`yI6(ENB*u270hOK_qbG3#-!}bZAIHNt~!3a)> zz1vi;)yYTMiVcw~p1{XKE@_BccVqZz5f}m_fC*R>>Ar9L zb_GyWXIakym$rTT1Y)TyUF`_@d5KZ!_FZlu3u33f11f?h_BQBOS7G=hVA4GzA+>Ic z;$G{CVeant*$%%BI^SXGiDGetDhiZV$;1p;iJ{!U)5PAib}A6j)VfYC<9H;iRVdJ;}wJpub zv>Vp_SOR!?54Cf(2IU;hBisj4m~z36U1ZZo4(><;6>4fXUILG)NX;WL%{&)HwwM8FN|5L%>ZH4AAwxP1B zDnRG&22}tKna)QVtOWM#?_ha7dpRww@i`!LKO9;Z|Fa1g3+Q~*p_JPHEVpwPgO5=2 z^4puh7XXRfTi~-|D}jm)_{X$xdTQa5zpRg{(pSjI`>aldsoexa_A@Gtmx}TJ2afmq z8-hGJ5*PpN11iY+@5ht>jSt-a2kQ<%0u8iu|1sfP!cmWf#0mKz;#7l=u2f5UCu0mo zyIS`RQ$v>a>SXeqEGCXcGBwRC zhb*=8XlC)E4vfkZIwpRPvHL4^5C5%4|2BtLgx%!6N#)m4@&2d(E%*bFgfmi#9#e+q zdMIvfyp9FX)#mh{+Q{=TNKoya8f5f);O&(Nt$oO~8+^mTj*9n3lb-&OWYkY?8 z%q2z|h}9vIih&gX&_C}KClAQh9H3loLrjB!J1_ygyM7fY??kEH+=>~H$EjR|zdSV< zeXxSshf&z~m&pza;S|sR+hv~r_;CZ|gzX5@^2i4|QGf~v$b-><+*uya+;kQ(Ng)$f z1`V7-kHV)}#=7n(Zk^fa+g}IvO)t-28raB%RM`7<@cd0N2*Zk0ll@u7o@VN-q5kWU znzWcoC2N-g==iaqoSgFJMBr4m-#W-$?{SK|hOHsMb3`28$pE#WZ*2zkIuH$D??Bq^ zFfKsU!ZjR~`nX2)rb2XMJ|4ZmBY1I7^AQI9vJU4MRV93-;{FTn%=7<3)`Ca!{|jyK zzYl=<@80_2Z-n2d(iYpwpwI^jZ9!GGRN#^HJRo)el}Hhgc!=02+aLuh1}p$aJwIYD z2Qbc`(+Y)p^6E)aLER1jZmq|ymk^(4k8!X?3XB>+AWsBIYtG1nmll@b8P>P|IRW}^ zVmJQB0Y8<=tNoyO(vBp5A%6}Zk zJgl<~5c|t3I~~>vfdQ%g^K2**r42;>#9e2*Tt|_FIgCZs5k3Z%{$B;?M|Fa}H|oki z2{-?wZNzd00d;oB;mI}+r){J6i3OBO_7*j3Mu?U2>aj*pp`bbHHxgCW%nGfZ1OnIR z**GRtHUQVG-?nNdO)^eB0P_DsN$hRZjV2ie-U^>Rh5-ZiC0cSOpySE?R#cT`q;|e9JLceSJ_y#K>&0)_{4J?Fq<b~*i3I&EpGoTm;#LBy3X~Uc&^89GS&s&PmgE% zU+50d-cLR?#sk4!8mvdfyuc$CX@qluVF8G#ofpI)%6%Ifg;K0)C4!GWdjzcfS+s{b zE$J9~)jYz!b4L`6tS`=Grd*ofW1>hz08-Z#e5MC^0|LV$(E>m51>zeAC~ z_16L1kOQcEgOJ3|4+D+3f;~x3@39#VT*ns*O8kE1aJKSNni5ELX%z2GF%ybVu3uzsh0EU)1BiKd>vEB^Y?cQ;-#rA*LVP} zb1tGhSEgR3VdevSjZ@E6X+j;PtmqU!nn9mb(fzQT*b^R*&PHC6Km3oty_i61r4f!9 zb2d_}%noy1N^0s=^PcJ>@IH0;pdC@y62=B6Qniy1Q-OaE<*Mf~;CjIg40*C{k6FC3 zl3H!Z1`PJpSRU~D!Nu+zu~DuYajM>@pIim<`;_5B01F7hEz;loTK?`J@rXF&!wg2Z z5rBXIUStlH4<WQv#~+vl*4|52h6W zbaeF%4dV3i!$|o`$5oA=n=p!nRLl)H>f6Bz3oQNDuYg5x4NR_|ctc5EfdsFnS)aGm z_yF?ZVN*~3RViaWKsZ1A2B6)nIS(tscq%GfEP?yPQOmJ_8G+v0hh^_fKLX1>I{2r6 zxy_~e92PHueBhW1b-eHe@V);!M*jLAMQH{T_9F7wsbAeJPk#RuAmaQJ1;TVuzKpmL zEPJ`8ZWT3_O1QM}JzBg{^(T?zil;j_Kq>=DIsJXMDF79q@=)6U{%c38So{FAr4t=% zL&H6oAHq%P4wgxW!C*_~l#N0#;2DB2_|L=QBz5@#&{(Nc_%ehlD0~HC+}}@|G!7Pl ziVL70Q$qx^zkNaG@C$dCK&!zjyr`9X?oXf+0H_}JhswVSP#sm7`Rhlh|Nb-9eZGfz z8kwhU_tk(})M)2?`M}4)p#tII7|o{|=6{@WZ#`Qz9jk%JuGJm%(LoffsRIev8FIUB&>N6X``7J) ze+3bWYe0F!Ke;v{u)vi3(x=%kFyGkw4~|G>q;zjy>y*&oH;cO!b#p(xDb*geh-CL@ z-D`TOV0i5DVMqGwO0g~+aWS#Yb#W?9oTf5h&!Lxw6F*pQAmQ^#({VgZgJY@qC^L?H9kQV0rUk;@*YmMFrSPBUK*+GdB&6`5#kF zf$@z8!Bm{O@B?bK7`^=5(oElA{mOABcxa(gH>a0QBuXc*$JTCF`aDB!HBrfxX@$d8 z`bt+eheP0JU9Z>4fx$I~WAx(lwYGVe=f0!pzvAyrH7=2K52ihZleW0{zYzF$BxwVK z-gS&_HnQ%$S9^4hkP=(R=*4`Xoc$B6_`qgG2PhG67RLl`AeFjJ+seW(HS<(sf9g*$ zv7;Yf3e}uu9z3k*@(Oy0^sPr+Ew`9F41;(aYidwE) zx9-UF=qE!XmK=(*&p5iS!5Gnzyz;^A+wP3{eXw%J!W5nUCmH`$u3X#c5d0EaVx9?S zKnqNBm7tMVIqBRJfj`u(DL6Ld{sDx)*>i3Q&HJ+JVzROB2cZbL;I9R&WZLkDwIMFD zG*+kn`FIDueUeDl&z}wTz<5vmJJvf|alfzkhIh7H!WzNmV4V(c$fPMWDj>k4W>Uw| z+WKrbJM$e>ldK%cdvLxwao(;uA>^HH0#9ElFi?45 zSK{LpDPcnR!=F5@6>d0X`=sL);d7?ltjAK4Qoe70?L*<<%7u6T;Nqua%_aV!jNJ>7XgSkRl)A;C(fyOun&R7@&ykn2^u&HE;q?jV0DzqD2NdUpK^ zesn)o{%%|eMkCY~E5YcWUn|(`QBwN2N=A#TjdVuMP)o9Ninq6Rh!%Up&(1i(&O3s? zKuP)<%tFV;rMwelAUo3f6TS!{HnT2VcF74?^AxYXd!sqC^+4WZRGdg2`%`{-;t)A% zy9V9)th#f55-XnMhthta#D0Sdy>8tfH%$n~EZGT_5wEexta9Y>=37Z25Df=e`5 z&wo)IaZR6YWXPWy6J&a(JnvUCC_9=;ju>9MyKnuOQpxSI@r%tr)=ZvXV$_`0H{CaQ z`TG7eo?#%FUQr->bwp62viQjZDsTR&_WIUUt#zp!!LH~Qb_Kb7V(;6x^1E?~X5zKF z1px~B#`$yTaN99`Q2QX3dio@_^r<#))uzqu6LovnOX(B`5R}PsobP6c7(iK0Q;+zKTwIfbGV*veuD>Sr#pNGIabGuxoREtaG zBMD@;{Y!x7zI`ypP1dEKvh*{~ySL_BtX2@<6O%K@(1POG3c!Kary_4Mk_8HU28d5x z4ph8<+7_`i6S z{lSBS{b(}%y9VF7*G(>)0eGY@KKtszgCDFiDS=Q5o6&&J@Y~6$KjLyi23uXZ@xAdv zVZv{XErx_e@i*NR9yeE{ylo!;F^wH1{4?*|^oQ3$9AYKUE9g#e{+Kx1%WS`zo1O49 zQd2--vs8Mwl(~mLjc4}ToNqcT%)2>%y!UsXgNHV8J?@5+vYinhPyx<&e*J0JZ*bJk zVa*!r)+qzE!yZVHpm3wepbP^f;l-ln^-JEac00=FrKCn9;oJE--4bhUV zGi7K=wW*cMksM&P<+PSO@6W6P8a9B)2Fs7ysRk==2)yA^h>?*r4HS3d+l|1Co#*9s% zW?0S0-GpZ$v0h9X8g%w&;*3Q5+q5aN`{DP@o(K=)fRcJUZ0K~K@{ak!FKSL|z9BwH zw;4R5q%3+TFNnUKttU-yfKN2D-$~m^pWgEf_YLNyZ)ADJwp*26(0Bw-r+Uh)2-`Yl zZ%-D%8;W8(Sb4h4uVqv151F0z88hTh zhGk3O7(TvYn2H;{)3Yh-q;}(8F&A!;L5bTrkDH|+^St}so1#}73Qvp-3|Lo`vAJ)) znqekyOK@oj@Y#ibWbHvgZEnYEM>Y{+pvNT3Z(xlJc?`xR`k<-&W3(bpJ*`i^Ee}NV z*crlv!%MQzyW;Qr{pzIi3piR5d59TbJ@evY_C#YILhD4z>uCEX;s)7U_Jul`1Nq>I zqFI=%cYRI0iBU?;Bf&YCUiAP&)1jhll~Rv`y%)XTLUFDgONp8zUFoR(0Z;sP7+Y*k zZksF{+AdG8vT8f_>ovQqf-;dH>g4nAs4p>q*DR=a>o$D;)NSW4SEDu1aUpVvNQR5%20{WirLmr}IzY25C4nrV44Zm?zEye-+jI_E zBP-p7ZOK&QZGkndoFa9<%;O6_*EJcQ^|4jSHP7j#ya7CWZkc6Y6>buFywN`}&%?Wv zPnK!tRJ-zFcu#G6Jr~Wv!nYwc%`=vdGlvp2!|}sk6mk_O93X5)5pL0(tB=;Vj% zUfAT`$qv8_j>kHCs(q4Na>v#;yIB>1oJy$Nj>ImmaK+F4MycBvEp$a^}ZEh(GLYMNrelp8M`wfU7z32*AVvX~?;Wt+@q zUS2oO%q$rHeS*<0B_oH(f$plYaFj|K%h~ zWn?>PwjVhp*+(9D!jwDX^W&npx|_ ztrh91IQXeLFDsdU4LvSQ$fX@uKTMp_2tKLknof;F0utZIo~?-E4b>PGRK??QZ7;HS z_BV^Kv0aFvO-JYEB3C13x6N`Et$XAZ%|7jPtn^B#PFsE3`zg&(gwyQ=bRb9UzF?%L zrK*vSthh^jmu%Io44F0w*J<^=+b_;x6q-d_U2?}f(HT$GlpBJxL^IEG``%ugVqq|V zHt+MqN3qk46xaD{%4;{%JGQ>_NXw%4$;WDj>&1lfD8i~IlM$#Xm9{TWzrhj-SB6xWH7Pj*mietU0I48tI@Kx7y1f#I`O-mLoV(>rT_pXiyM$f@!- zk2Z;8m$unksw%cOu#*U5RioG)hzFEhgRUFH5?aloauUj{@h@+`yvj-Jql|ttE5`>A)?#OZc`VO4csApk=U`kTs{S;~Sjs zgl${1nLu5&W991@-JLX1QE}NjdqO~c_f|+l{lyn?kK6X0pPhbxlexyv+SA_@3~;^i zJ90_O;-0pXbMlhKln7xx+`ompAVUuj!G&b4fb_+@afIT#erHhEdLR1TgEzkS(6O@a_6ClwDGJ60OFT`o$N^H8<sx>j2HD*T(ImqghBdJq)D z^x0w6OYmvDq>3Im&?|LUp{v&B5z9FAKy4~6OXC;d^8C@?X8V{>`@1>48!M8y4K$O6V3SuYBPx@;}g*cvfO`qj4RvBj+QcfIMDTt>@1e<;px4AU;DQqQT7Gg%=) z8cl9phsMhz?r9v2m(q}LcZ&NV2%*Z8F=*Yo# zSuxhD>1Tr^FAqKUu2!MCtl!SK**)AA&=RgP8xf3qRW$Yonx-rmU2K~ZIvtLW8ldsTE<+mP`x8B8 z+*TaaM_Vt{-9TM7d!HH19qY60eB5w5$hVv+i*O_JH7iKQ`t!IL`Q7(H?!5Uva6%wA zsnps(5B1-^I}*tAQ$PRp;vmj0zUa}*;;!uSVR;?ZPcJ22|BuguXg>Paj{T>5-yasqy+Z{Y5b#nuj^_xmJv8vM4Q zYwf@!JlGSf3hVFhw?Na-pSM2NSp*ezQq}SDf~DIm_wv*%M9=aFJ{&uzmR_3gu!Ie& za4UA6`6|?&lrTCvdKO1V#K}@{&4u!#k9Vc{F00^OrA^gV&{np(SU%PSf1sDls-!g`%RHQzg%%cKy@4<{puwJ%Y#$_6rfxT+E_UixaKSAG^WzAqC%+uMr018g1kcrP6U-v-Pic90c%i=pvu=I9 z3+cS{@2w$-;H+g}kT4n_51P~~nmT!1$JU}`%)IG$*jPPpH6%FrkM%25mIuiMUiebcDG z7z!Tf{S=6FUf+9$;V-s!b|I0F>BR4+K_LH02l?;y)xY;aQ&?D8{v*(4OqmBm z2+TZR@3BcTk(htUXcV{>Fx@hV7&Nzj67BAos|L=}E@9zgP}%o+uJFAn|G1fY_5q%W zq-*kF^WThc?;f37uz#rnU2_?IC56%U$nm+j- zjyQjB1?0aul1w^p&9_80zEwavkaqkEiUo%Z-Bd*K40NdVh&i0Q(6Y(brYHfh`By3` z6_zcqS&+>Laci1_tv`n5n_8U50_HVNA*3Zqd=lv1C0*lDS3Z?H=N?_!T`yvPYzfycv~Mu9VeBK zc14a(lwDeB%hD-Oh3!vb?(?fjwse0hF_xWZNneE`1_*ylRzqxA#KA%cI-$U*2N z@_jV@$FTl?^N{~vzsGuZ7BGt^5{dmzD?AL>oArxRYi00w1HsA?L4%bQ4U@X7`OTf_ zJj>(Sz>cp(HfqB7!7wNt%>o(vpv z=Uc>OaipY5aaTG|oYxTe!z{cP<(v+ zSxZLlzg~9c109{A?p@s)-BLEGSl~s|$IodyI5@a4JXbKNbhmjTv-sYF=ZERlQt8b< z)Sr>(ye9Q{YM<52fL_EIaxT(hY-erH*xDKa!f<=tG6YDAhbT|Oy8>n8YbgipEhiJ= zUE5&S8}&dpnob=W8j6`RtnppKQu+TKWwrSH^l{P`=E;qqlzOeXuWw@dRV1dzZK1Po zL5r@psFxS-{JQ++xM}5iw(H)6pflH6`4}c9CPqqp++g#yyarpST*ToxzI-%}Une+D zO1TTJZ?*AtQHzL!ycXjCA9Ae}oZZW5n16ei@A)#nl>71e{_he0Uh1L1;m^MI@jSGG z$$i8!W&uBBqPFdLJW)<|e}*2X6NuN@%dI1?>;sl&1DI=EsKlTHWfWZ3N{1FZoC4g6 zc2f_n>(A>X3RK7B7A=8N6VKyp^ZwS=>NVp(6LOl~oPGmxR?9#AWk3A+V2p1*qs41j zUML2#X|065zo7};8pCDkg-%EO6%+L#P$&^uLb0sm)A&j1b$7gP zUalGgCr1lvZ46h_*=gw3Av{v(XjBxdu(Yz$_C=Od?C#-_ky}-zOIv^G;{Jp2duN1V z&ZD0^&jvq~z-|*ODGH`jmP=0H!iElNQYp2x{KreAX&|pEtE!4^aEt6M{syRd2OXp9 z&K?MAgfhAH5M?N&n5~$48Q(}=q#Qw%l)G12W;2Y*7jZT59%pk+y&9%nFHHma7n-YPRWpBmxzn3 zC??ty>@K&C$G!$9xJPwmDYyd53aB^@aelE3TIYl?PI?AC5i2kXKlc3Y4?5_Pngr3T z+$za4Zs^7JGt3}-RQ|egC5*X|F>B_FWhgU5Be$S{54193=haCK(0(v+OryqD(9maOBB;WY-mNRhi3a|?BjXp$fZZ0sz=a(=}#{R-RJGA`yC&t)GMB+ntBnXo$ zsWx?3Rc2S!wM*_S1=2V)s~K#4^?Vy=Rm%&DTmyo+<0n&2rp zdQZW4NaJB8tQZB#O5^b?d5Q@t3;#lRZ^N39oYt*ujS4GT&tm4NwHZo~PBx5Y>GI52 z8DY`ec|)_z*D27DSg9c8TR!8jgv7w3OKSOhB*KLNWh^>xEHW%c5@|j0uEd=Y4Y?>p zcG<0Lx~{jCtulhM&JpuC_u-;@+$mQcG$QXRDX!kIMa?2A4VP%UG9G(2-E&vWBST(CNmn zahNAgqF}VK|Jl&R7|*t**evR0d9an>+VE0q1Q*jcC3?3@RNLY}X9wL#UJfi+?n@@u zngzlyexqF6LBGkQJkz0*suf;wGWozPQ z*&eyBx1pqj#83Yi8l<@MW=FKWzK_Oa zsk_}M_sE$O#6HtfX3U!mHgKITo$Ys9 zy5}V5oqw%Lri!{W9=9p`3*xosH4q?Pb#4?Ns9tfV^P;8evNUPi$@8b+vsGb3bQXPJ ztq=buB%kRvUvBW=UVoue!@ld@zWsjF($<>j(0OC)@*o~cO=(=<0~q(B^%^ImWom_W z^j9KEHmZhD&@l_vyV(!A>|0@{eA#jXx-hHz>T)?xqJroh)cW|&14D2i2l+RIl?HG1 zn^zStgf;cIE4rp~^RiXl<{tG82{D?sMedS8UGavh_~6BhJ^{DrlM_W}wcatwAO-Ch zH9508_p7w6d)~NRW%8Fs+9^d(=~A~4CV2HWBUqNDCKevyQ}Y5o-8fSW%c)QqnH1V2 zG~P(7r4(1Qy7Phuq+D^1gbS2)D=IymXxz~;#_cE=TRuVj>S=>w25tlOBSI`IXVNeU z!+j!H+(x%htgUXl)Q{8>YLgfR)?6!cUnV3n#^$7W$O!MZ=jD9qz1^03GNk#j$J&p?s_0d%sKYDEib`1Jy%s{$5^IlnbVAE4 zOwbY4+o8OA?v_O#H{TP|6wF%3$le{dWe#*MuZ_P8A7+z}RVQ4jgq{=$l!hMEkM*=@QIoR?qSdf*m~=xlX$#x%Z4%35=X$X@UTlYFscu-j<8hgUG3$dLK^ zXfza5odrtPz`iW6QB=M| zlDJG0U${isnNA%hNB?v~XJ>x~+JpdG-P@adnkRhwHowL5K&Q^gwT*AoTI%5*L46pzLFt1W4VsX3^uoQ|v(_J1I^Xkx&`vdh-^ zwPy@D>i`PJrmc;*b>;BbR6EXl`h5~kvfkByb;5Wuiaw?;az&=_S`z0ww~t9{GD0Qv ziTYD>d?i*ZS*i!J;EuIMh!#4;=3Ntr>KvwVZwSj9x`RSl=VcbZ(5XUFHuLq0{S+MI z12JOm4Wwv`0h9}Ho%Sp~?UgkdhTU*{Xycrojc$*~m(6WF*S$2qE!*tu$9-BDYG9IDF?5?Br+Ne>GopD#FmvzqRbcd2>5M|*5Tv;Ogu#~`1cQlvs;kz6fz zb|_;9;{J8bX;Gt?ATZQpawVH`?ar^nMLGzIjd?Z~YuOh&8Yb_!K5kn}lZE;pERP|( z%GZ3}ja_c?sPs%L&UaFsk#W{u(}qA2gn%ZJb_JhFX~ z)VJx{Rmkjou@e^cMHErQq$u`uQT62$C^7J$L!>wAdO>4BE zIR1V+ZO5KiAHV8TB-?T)Otwxqw{|pY5~Wq)VE_$Fe&jmqy)#vOlXs%=O=NX|)S8Jd z%!}73GTORI5tmh>JXFl97f5d{l+v3VW!G$c9q9Lf;^!jz5A(FO5-`vSw zkJbJijO=K{fr(zS0agZ=5J|&_ZIzcrUgLv5qOK}K*$k3=%%#HYT6a=jOs<-EX)uh} z%J6omMW4=Gb7GWju|PkAnIYIDclh=}0Xvsa>XXJaGEvWaH90p~nvgTUhJMg=IV0eMvB!SJ2s{q6b8JR;_EW*a-rvX7tEq{kf6{=lla(4jjS zE=MZ%SWxj9lJ|^i_`}-#3XSYd)db&~uDmW-Qvz}pE`1GU4g!ipx4pJ<^ECY#0_H_t zow=5NI7db04aqT2t4-Z-@kFHmQe76I1z(Z9IhYqXU!U!;sjo&Sh2&6@@rxd^$f{sX z%)x~9GaRoXVHQK!>NDN@!4k+H1Rj&>MD-9e4MClG2c+`Aj^lD&*uEdLT(j&NK z=2i!fhA~=2{D9GlW5>&cA#}aB?EAPMGzQnbYn3b4e2@-wS%NNAJw63aov%H)A?mv^TslgQCD^Te&Y4d7;F(Ck=alW;xHMk9orSQo zcO!k0c{)VJR>_Ylrej2{rV5v{g4Xm5C0CE1V4-f+jDDmkxUPjYjFYFY{zzTHdNiaY z-jBMj;+6|L$7j_nKZve(e;s7YXifUPtAdX?utKcwzC`aL!1g~bbe*tA#PWa>L@*VyRQ(m>9b)vVHvd~!) z3Tk6HdEWE(H}e!gxKlj7RJhBCd6$ufT9`5FXw*|plRXJ`D78$mt#^QT4k_Lt`}-h3 zGrcaiYJ{(KMoThj;4)`j&oQ4xRl1n(NFxQ#n7_`?bY#OQv^6`m#-re8SDcrYC-n9@ zb9yg_``ykjI3Gi!YOQJ{=aVNbZ7%#0>_I#z%kPLbg5orxd%FE(P1c&M?ES#0$Y@Da zrupvMCE~!`<*G&NInj6MPrZc)i}7ZB>LT57ENpra(d#efF`4!@k{@F#6`N;b=%nHY zPUl2!r{nv$k#>3AtLXz4n+Mlq(Y0q5f|^cwNFi?~u&ObMuC}Fcie}zcFkVw^ixJJJ z@e3FwNM_Ixp>*%*#x7G9b9gGycZeEME3%u<;43`I!Nw9F{RvU1FZHJ-T~{VfKE%J* zj2MFU?)llcck&5a^lNiDwuMcI&k6PvuN2SsxDud;xCz-QD*&Dp?cv zOY29B)KtN!^Tl5*+qh85K)*FP?yB6FX>*9V-^+C)z0Hc=Ef1wKi>VZi zp4|c-_3b#*?yRJIq=&p_L$R0iE8vT7x{>VmpitK``?$)9TK%O?FKwIJloTO@Ct6X-mt_2h)jdWw7$3o2l*pFL ztZ~8&>u!^3D?z@Den3iF&J#BW4U`nBczY%59H|(;Vy;8vSU~1{MeoOHo^O4i=+=$HXfBjKq{aC<>C4t-_b+VcE%F$PHPxz*M?1-+@m-+? z(ebF>letxMJ$_XV(CDf058^tSS;Tk$3J|9X_7~?5ZAg9CRtZi#SnLnIfQs++|12sk z9~opam4pt?m+Ke^)jL>lHNR)9Y)y!B{P9Y0j$oFUgSvx;C!6n0Nvs|`lNk;2VD@x{ zs&3(&#$Yw{LNQETs;dg54U;bn;Zt(Wh#bvO7rLCrhxq#I^qqLvz;W{>6P#+ z&{uQ8%+EoEDPSg$w`1QG`^`hF2VOAV2Yd{nLzH&`p$$66ZgJ!v<|^~p!ZARz?KxTG}PuYnq4G{q>k-@TdZ%b26zrj zv?G+}vM2@iJhIW7jaW~WU8cFXC0}Rc&=1!B(&874B|oqvD3P28NM-2d;Gs;LyL*D| zh_?LDmE9ZFIMH{9^m2OA( zL43!om$x>lo_!RowTapNpwrGZP;p=D2dO_m`o0Viq&&U=U zm?k1mF;n06<`a)x0#D#?f@=uFqyZ&)ou3OR<6A;uT0Jb8D{;})vFt+#72MY%TX%&C z5=Di9Q(-5|JkR(Nm=j#`&X+xS)c{i8WJX}ZN=~gr^hubebx%#Q*cw{gt!9McM2HEH z1`rN=O8dTMcqxlprT^N;7mS|sgOZBjh#Z4TLA8Sbjm7t6tLL$Dp#-TY|GK`|_}LZk z#7(D64=5Y5r{2`t7(JHUmKAEXJjceC6Hswm&N`Linn}+g9s0KAuNS5#4c zMr!2t7GtqsQ(_)@`(ktJ%8=Eb7&`jyL06eo*IRa*PEHx29qkwo3*^iAr}vkSZ7ffz_6;;YD3T;lx70{G(8pm>?E`oGGZW@5 z3^`A~GIRg*;=ss|$QL_RyiAF+Io#Gj@*yZB>4D`6-yxvwJMW(}rdJ(&J+-oJti~Ex zTUvd!g)m=o~y-Axtqy#O6Lb_FKE z0<(R>UR=DZ$I1doQ`JICb}a__ZC(^bGvU4jic7o}e&SRqq1XY@I?dcvps77%wZUM6 z=AIK~cDLv|>G zgplLS+)lY>E-u-HoTp-O`xANWzMpjF;BAbH&uz|t+^rEKa>@)>kL(L zS-;^{?N!J$02e-e3M*-^TZr(x##^(T@cC*0T+?W0u2JCvMybn7(VWJl!lU0enaQzZ zTKgjY(N`C(to6|cdI3|DQbR?2c8u_j{E<_aWwkCjeonBsP*o=_DN^#$xFA#9F3{~g zJoD78X#byX`5qiBn8bBnB1vr%H{DTd-{KdPT>JKCDI3}5(;p=VHRvAGS_}n;fIGP; z!Pwb7>5u~}mORIzhMk`4Im}MQvobMQ{2%t-GOCVl+xr9(Bq2a>hv4q+!Gi}$aCdk2 z1PN}z-5r9v1-Fg61rKc8eRq-PIp>}`PT$*azw)8S=sm_RYL`>B)|_ju_508AZp!AX zyxNxR*3tL+RGiEw6n4CrUdW4Vx@+w`H4U|p*bY%5dJJrq;=H;t8cXDiC&G>a*IZSc z5}ERiz}BLqUjc?4G<>-gHOYme*Wv-{5w2ZuWW9MmoUt0y!J7f`pUF=}sXQ7;Y0;c= zZuLssy7a#wT8xSE@lc>KYy82}!HLvX3k-%*Y%cby`*_C^3=j*jNi>@N0}4()krr}X z<#o!>T%~zP9}HYO;szd&>B^2B+;am*XFs(&t@58WZs5H~vvdQDqp|i5h7a=e{phEr zY#>sB3_UruE<3u6sR@}D?7^+W8iA5fVijWhtjw9Nz3iVy`gnlsgDxhAlkUlEtE9@= zkONHt+bXD4xSfIm%?Yxf0;OJCZ7$9*sfByk7XbC9>IG%6v{Ws)Z5tVnb=v8G zNYugE(ZzTDzynCR00lQHHAR)G48&By*HH`I2Z7+9wyp#nhwdJ7(>6}4;8biCV9=+t zSNK`l+Hrjn9tGsyEv6LM`I!ZJ8mXtqz-ita!DdhL9Y;+ zOG6i)nrYq|4rw zO8^RPFaj~fOGaJFwXZwRwkof$<$6|ckZDfwDBfI)ECfHd+RM(p1k^7J&ITq{Ws{=# zW>e2%sGU_K!sQ4dI|WvE@=DH|LsqSZig+d{t47>2hQFT!62(P;Frh5B5LW)Ile{&f zZGMQei|Yj-&<`|MA2p}%hsNW5_D!%~Q>_DcyY>BI29*UD@7U$&`Kk>plwAl~qd^eP zhuvewiK=u*X;V;HHGTB(3{rB+{0Me#mC!_$7v?kI5Rz~zZcPf zIOPVY@deu+)ds+;7uz4+4ep|B3CaF=^h9~Gzdel#V>>?VmT5lgN2xV^_sP87&>4uz zlf4g_;_*QWmpC5H{RBXf#cVDk2@`Vhj`csdz4L#_Qp+F*Kxi)TNOmkIv-lpn3?7Rz*ANOd(hxstdG0}6*ZazR6xItfyxVYj(UGo{ z*p|WlQ>UHS$`i?EF4|4~ZIJ}r>|Ir6jU~707cojQ>i0X&<^n6XU{d~|X$GsIODTsO z3UEK)EOJUVSm@ZBZn#aBaNy1v{W@H2k5{Fwt*M#_+w?)u=?>gAm@)(&teLPgq{&Ms z7^slsofMjNeXy|P^e*13!+U`H0hAUu}Z-K)n3`mFPJS|RAq{V>Tw(w44O>{9;? z559Rl;KgYT$5y;j(0D>?N}dU{uqTUkDul zNcHx5e1#J~&}t?20pMt@k}|-;IJ@|G_!K*E$Z9|4oXuxgJw9YO5eQ^F%|#aO20ohK zE(be`ZdM<7WLNJmrRnOZH0!5cmFYIqw`3ehAOA9?MR}1+Ywb9Bk-VLsnkT900FD^0 z-aCB+TKTQ5Bc~Uw;~BG(oW?WvK#Z7CINv!iHV;`uVP$R{>aBhnY7b*mK`7yXkX5lg`YJV#PxaNk#XIb;FFenB@jhFEJ?hNm&>9LcOd#6PX6K7 zbk)WmetC2@9?@a5|0<74s={Unsv`8U3Od-4TV{VE>2 z|7MN2JN~?;$ca??enqDGfbM?kQhNP{b3d?z6~e`t;6cqhk#WhzG?)UfG4wFON|_W%($&N;^G$IS69;_ zMDI_kTkj1ur!)i;E{K6n$4#J@X6MpeD8^`Z!wO=w&R3Ki7j)(7v+-a) zF59tvSi>2YAyCPv-s?reu)|?d=W-E3n~`hcooaV;ddPg?HOl9$*%o-P4*GPw$%iG! z(932vGp>}_yPd3>1$ZDv1nf-ce~rA1;Cgr+uRaVuJw9^}0B7=%zP*vqax}E>61Rny zw}|&#sEzGL9FZ#uVXG%W2sy9gU!;Rp~|-JGuzS=ZUC=0@WuHMy?xEDaHq2KCj-xg-PFg1 zzVxMiM=+Vxrgw0)r@8z7xC`#>)7SHzzi4ztK`P#w%`4-D8G$Pk=Z-VDWx?2$n7Y?!9`cBLP~dI-&tQTIgKbR#2^|k->*UKsZ~R|$8z98o4>-) z{L}VA;51E=<@%I$C`k9Zc&?9(_J{B&JI?@8?19fomzK}%cCUJ)-wMEYlHcB>yB65% zH&xz-syI9pNp}Zxnha|Lk^Qb|fk2cmx6Bc4rF{u460t^xyLL=;*S;;*f=G*4y7)p!po(l&WKK}BI;PxR>0QX}V zJ$C)PL-wxNUhp)smPiZHIUao)qaRE$r4$S`nH@Sf)Dm!5VAEb>d6N!L%QEZEzU|!T zDLz{p@8N*AG`~BfygSL#p86)waVd8B?!%rl_-H=W+jSHlQzKT81S#7I@a%bK#d_a_iZ7hirJH+LR=wkSI=J(?P%h68dU|f>3k=uTcMpvS zZGy|U{!$)zo6iDCiWolvxf!*H%+2kQTtD{}ry^euWq7$w6r7Q5_L<{*Is1MF>f8%- ze!QD3@-3@`s-N z=hbVojD7AjNg=p5icxW8xIHLD`~1(S$#^r-t%^E zH#SUJn~F|R?>##mb%%fmY}Qg4GS$*<9WCWodeT0{1zG-$wHrDGUgoe^>U?hS=2JMN z^>%euO`|PoZzefk>tNL+@?>Osd>Z&M6Mi<^yKuI(&R=I~jm3o1{#dHS*3gR7!Om;t ztdR&bfFGkwwwFuJn5qEGfGxMht9|R5BuOgh>A2o>?L4^Vc-0vs)4C2ySSU@H!)6nQnV~I{qG?*Dob+dNAGHIy(nzZ_PMV7^~r{ zKJccihRmPr0eHK*yQQ*E>9XZiV}({)dN8u_vG=g#Y+XeWT|+X_&^o+4as3ea;u{m$ zmd*IEn)A+fD@e~tvns5K#?pCmExw%nzxZ`lk49ce#yx<&2B8XQX)lA?gX#RjI;$Sl zPun>F%RRjU^vwF0_>_ckS;9pYf>U)zN?NW9xdzk54u&0FIWbI9lAghBMgVt#N%8?E zeln?lWCx7zwbzzouF$0>)9N~SB<5+QN-QQ%vg6HtJom;{pA3jifgyI_zft)E%ORFLQ@ z{$PifgVQs9qkZ9adPpE-D_-4TD&%+dWZ zFG|RmvO<1gA(if8Jp-RFvilE;)Gn|FJ{aMc(~3g^ z&tiu0i1PUyUr(ND>2etT%^**bQ=DbCIC=hfh@d?(gqUui4HonyA}&wFqF@vi|+oN29ur zm%6*pXYkq!)1?Q}H!%abTZL}EKD3x-&H%_-1dyi|!W(tGl1jb+WWaUrUs}^igN17R z_V2QbeJ%Az&5rnv`!1BwIOrtGYecP41mE)p-&6oY9O!^tL)z88XBL-_q5ue->^+dm zckh`~d>95;R@5nYIJh(LHh{xT9aEW%4w0bdFkYQAJ#u z@fNIwpi`ZpP|0r*Lr#e$Wh=|eM<+FHqyXHOtbq8wr9%eLv1~1^Jzag z#HNR{;b4!(=F4tk5E9q&$23eonv;0#mdUB9xaQ_&tJT_KpwM)_nFfeub8E|~KeyUZ zLBZv4G5%Se!6;>TX$P>Kk^JqhwogWor)O6JRbr zOGjGV9RV_W=Glq9`==9yXN~|CI@;b+g1@%7Y>&>&0Q|9E*u0v5>FKct43G}%tM8R5 z&yA_?=QRGU`6@#mx07E*KR(6MKL8?@pMaEQ!|1OH;dd^AqPqJHFjfU?CqxxCEtj)@ z1NfjA5D3(ILkuyrcfiBLs|E@yz;D{bZas6uzzsE8<7!t-#+lknw>jb=4uD*%&_4Qu&#5lD>HdGVa-S7u4gpDqeWB3aOT z0NM5(q!Ky}c>vi$Tvng18ltEzZEeRyTU?`FYckw+!k={>KOGhQ0O;W7Pp9lN5-nQ_ z_F2cS-plZ;e&F&U`=j^im5POhEI|_1+8|GVWK;NSzt8^8Q<>DXJn<3=6mtD=4Dlqo zSy>w$h3xAh$$8!jL3VG`>nzWU6?|B0Ovi{=fK>T^o#$Csmc|Ak>gMf_SI<>=|ukvsRqvFirna*sB1O>F0RFVCyckdY*BOLG|~F5x0M;Wd4WrWBpxtt|v%e1*&`$BPmKMI$p*fgq>xI|`ZRhwuKKZXl zL;DYO9QgS!Qi=a%X~=)Azu9?H{#3p;wD$N5-hC5)HQM)T>`A=}2QWJdkPC&|e#os* z9Qn2FQbOi^Qzjko-&^SEz3XWAa*y50Y}=Cq_A%~*F6e&Nt?gvWXN)L}q{K@S`8579 zQ-53GB7ny>XKy{cJ-=R#b8US*{9_l?TwPr`tyj~?n{0;@S`SM~0kS#%nQYz->YV8{ z{v*zz0t%|#I?fv{XgeE#+3(Dk{I$=&=ycq68%8Fn1Tf#efI2{f9!~G|gYVO@?;v1< z@Yq{n ziLI0UPFPnL&`8))NFCh@K@@-r-q?enl`i@0&x95_g#Lv{_XpVX^IxJU6jCliH+qa6 z4`&xTfL`viEi_c4AOH2TqkCR{F9$&<`#wO{w{54E zp&Tv7bE&Fgn?ge|8UUKYRkbugj_}vVuj+qqOXTmv{_iYbFDrhLPB)c5gO2JGF0E?p z`U|J^n8lTq3Xk<514Rb_Ufh2c2yx^}Q_;$p*3UlIXmO1w%wZ@!xRf4u>zwlgF=JD2 zWIzt)=lI(ST#p_vr*)iOL?oyP$RuQ${vpc%R=@s#)g=HFjaoor15fNhEmi#=W*){x z(-EkafUYJP5QT&R+5-Q-q^1oXh)|udTTQze!(5Qd;DZ#6mi0FaPKc802Aqbj{7J&Ad{Rg@9(`S(FqS z2M||j&zgZ}QEP}aQ)ev@HOj{V9$k}ugOs^Z8%Wd|Dh_znuDej6)^rAL4$)Q020%j< z%$yMWw>J?u!9p=w144>{v5sv9siw&#Kxp|~7@6I?oa1gbY60nN9s%6=w>Qj}K+}ML zw;hD30|(Wpr}Y#k#KXP{v;xS6ppx*uT8~9+b4o)&`IkCwJ-dRG1V*``cpXe#zv3xC zS@eA0hV)CL*4$0)u^3^1%25Eg&)T*ID=F0`Nj3mKI}D*Zd#)qfeTHq~Fi=|DC8edo ziy2EOMAJY6CJ=5Z1Ku|)?^&<$-=rBZ)jxqdJ<;L0_zA{5dm$@d1u6s1!KnSLWKwCDbpNL= zFx?Um7Cg605@ze`p9L--0n5@dS2>sD_6nyI71wXj@*jx`Z~+S+@GLK3xlw`D2MmML zE3MIYLU;EaV^tlGOAm)thP|Xvv`)9cE1+YIt_~J%0oZ22fCZZeQ0WY|JW%A3}Aga7yVuNB%1D@#LpZ9@)Lbt7o8~q;(pbY;{ z2vYw|^6|Gc_Wz`+C8W>^)D5A$Q2p_H0iqkY`{L}8xXtYuNI7<*>sw(i>6+Pvj>L?{HFIFL<_vNF^iv=oWhM*Z7%__E$pxv%g&46=n^lc-{c#Y@+5oyVQphwhC>W${r z8`k@wox)5lIDGy9)Y<^A5zhC+$UK==7-1vW-G17n=s00bsM)B$a%8@4M1LX6=K9$y zU93VU0o7ZN`Sn9l8xI}{v4(HQ!{#W80>tAc|E7iu+wuZHW*sTvy=1SqUVlVanO|?D z7n%=uPtpj6YOtzWjwV3*C19h8!^}vj;Ue`o-#a?ooBwu)ry94Z{VsWU6gFrxG&Z;E zNom|(t8i9lUlnR(&c4l~a<-J=k_PI;yJ{*RtfEHeG>wPzg>(ws%8EyW#_S31;|zz_ zQhW!Vj(==HP0;am+jJ1_$4RHT6PvuyDd)S(A%cvY(B$9JTZS3fmZ;qCYMG#hn*4I-H)>uHKdSu{$%-{qIwF!>VBC?Uh*zcmVoBgrgBlH$cWr%5?U@Rl>HV~bX0(j^k| zuz&d7u-P9KMf}LB>#1#n*dzS;=rBqba(|G0IaayW;e8f?J67#xZ7IP$XXbtXa2d8+ znc;J}Q%D8pmipz9-ph}4pbY)fZ#eQS8_fvg~^H+Ar z)@t}&N*6A62J$<~&$bA-Y=g^rY!OG!?vtEh3l?zW( zBrvJUtg1p#)H_78As4s;DEFZ|6Tf@0rYS*w(UM<%NRs@2&0FnKMe1290UA0OW~& z-6^Lo_SL`*JeK!N(kWrFJHEP;Tj{%DB0D+JP1Hssq`Myn^6J7oplaPla%;t!#=ImD zHU$K`?NWzpzReiJw0;C`y2i~yAp8TQkXg|UP^BYbv$Z?h%eV+L{Ba26Jt=3bDT zHEfT(1P<-8_tz`(X%Hwte5x~tWM;SeBe7%Ux8XsUv!+HcdAL|(NHmeO5XBkdaYj?& zd3dpHi^05(vV#D=f+acYdO_SkfIc;2)XX~Dl{1@jv4ld3LApenJyCmtlo18jFSTQJ z$&Hau+Sz^ZaR~xwYe`~kDG1)OCbWKE8;$S1Y<{B*(xVT#VgF$EFD^EMpl(EK;E0pX z*4T8~50z^b4-5F@ZKdQ#jXCU-fsMHFgfn-;^R!tKsaZf7X!LwWv>%QGyU8qx74{h3 zz1f}}p7ay#xtUB66=Um4*RZG19*xSms;3ahfl?4*?og~A#$>^ZH%3yzoNFvIhEt^Y; zi(izV%Uj1rkH88DkJ*kRxxq_%92VQKRYi24Y!B-=7lhu%tYOaVV>lKRh1xP;xP@WI zN>P5y4Lfj%(o_!BxO$9Ta%l|(V@e}6sM?jt7mwR5&4?^Hmu_chGCK3c!~dk_4SrmgxlEVYNQ`$H=2b{#qF)U!6$J z;t_V5O`)QhN1c4O=K21L&zvLv=+lcOUKPDU?aMTcO2wjhfy!Ug(y>0d>P39<(o4k+ z_yUEGdN!6-=e@f>TSMn|o^`qq$P1|d>=O+L#)O;zp9qZs1qF!l{_=^A#!gP=Hl~ix z{;*bU#deAFtuOHpNY}}^R@hy_L~XROr&LU>czVTHtysSnwc@*C?xPj<(8$-;oGX?v9)im93}W*eNQ_9345IyxLOoHe*y8i`6w}?zwfETe>8JaV^5W$UTL5-rDQkQARRVx<02z733-FIA$gz?1IyHs!ak&y z_WEZh{OSOq^>$YIle#t35gdi<+ES19C|tY1nU7wJCu0eG2(i5aV(phiF=_6s6eQ%y z9W!pPg5OQbqHFCwBOxpAWAIGwI}yv3W9}PXQcmA8 z77ioAAll!=9on_wsa_OGbRzrlgCkdAuQ^S7nO*A_(hJvjb&}EPWSi+vh{0vPBeBc) z&5_m}^Q>)t;~oC7SMlc_wV8Ed-|Z^L`jWXaEbidag7BJt9XDyXikwswgI>Wca;;6Zf)ET|}dVRkT(aAC0>u+F0Tir{jJm*&PxfQm6?~U;5$JK1< zUjo#(%H#WKhgY*f?*j+=-X~#WD!7cj4K!~r^}+Wl}kY1P3Rg*dpv?QtA7Z`*y@}oPX`D} zJ2-KXUEAs8<-ET8BvXnfYJJ)^aKqzVJU>=%Cx(zIj;K2+kOv)vw1q@A0f}UtpAiMP)v}6vfaNx#Q>?NiN5+uB4vE zv7b=+nCFws(!7EO4M#m)PS?n)a?%!3!{F61#Aq~+trw(&`hF;(!Lb6Pat!4V+29c( z@6hPf?+IsUYb@=r9h}M{j19%TR!Xg@_7ic*&l_3 zKil)8Xd_7H{&ZawR{wtEUFZFUKDxunQZq-UJ?A13LHFH`N}9Tf__RhvRy8I4bxEXjZBYll+m4}fpC(<8*aTglQZ{neAF(b?bwZ))47#A zH``5J)~Z?UaIN+Fx=}mFub@8JDBTZXG&dzb8aaql@jLpxzTRT75jRe!!XEk9=iRx#ibu08n>2B+ba*ZYEDww5ql2xgU|VLUN7zrdEq&`Y7@oa`yw=&N2qYFL4h zw)i_?TAiUViH?*!|It=R4T@hzYI4^lYGoh0I_z?VA2 z`=h5k=R-$fimycF5t)d4d;K2unK6D=3?nvr{-|DPQG>P5nBRjD-|5X8A$Vzi8e+Ap z7F*H}H!%?U^kRlF6?@Mh7PHF$%>y=N;O2aKQWuuaO4sv#tQatAso2s-v$ynL>R_KXl@7g zF{B8gl;U%E$wY_~h_O~MkUW}oX(y^!KC8Jjm3cWrZy?9kPHCO5Lw70E~ zb@atEEgF&PC7G;g@O)dcO$~hpjr6{a{ja<^|6NK&JnL#puGinqYEHGv2y%?d&1gR^ z6mo}Xr4_t1T@Uc2O2@K0GUTdt-XQp3{MwBAXjY2#;U*k9Kv=f-^GEa#U}!P^>G$Z; z*g;=j*OfpUUBHlj=7=8g`M?0`^7){FKDZy8#})HYC{KbLb`&bgfFSm#-1nFA677^I z(!a=wT~9HgBhyD(uDzH%Nt0;l^$D0B=DSIiN<|PZ>X^Uezns9kziSo?u__fJEN0!^k0iQp_I zJeuW%cb-Jh_nl0Yd_7r)s(f6v4Cf|pa0doH6E6Olnjp!S7QwT5Z$CvaQl_oe)RMnL zeel}UnI?!qpPB8jNoCjsMxf4~Rs0h5$!z6ridn+A`d+r17F(OAzw+C0Y=*9)6qCdzxg(5PwZ3#9m&eryW zDyc=R-x!)Kxsiy%&KLXkK|6<3y%Iv3`q;wF|@Rxa8_>=3}PO{)LlaZt|gJ@mxo&(w<`HCtqtUPr35oc=kyYOlT zLT8yR6r)JG;dY)5qDDtS$=LJ-oQy~iBptB@oR@NGk_u9NYd)yT%T3pg2N#LvTsZP9lM z_Ge0G#^3-H`qT-1cW3_$jNnfgCN#zZ&H|I`YeKNsF=Hj5SJ_llt<1R-RrUz>;!a+) z45i`vjmFBEN&tSEfXX6*F-kOb{Ixh-;$3Xd>nN$u%fUn9wKDu^va9ResF{~FqEa(` zRF~jgU&*XbFEACXYpXW|YoEj`3UEC<#P;`^vcKS#;3;p#Im7c)BVFiiFiW_E*{GiEe1D4GH@O zRYMGD3L;KC`Oe(6hig0FpJFE&*b+iz#T0%%5}J!3(CJp)%8IMOIZSRtz-nv>v39X+a!}7ZymPN!bf-s64Zo5PHxF9RmkcWySM zPsm3@<)uPiGe>D}Z~mUI1E;;c{d+#Xs1PB?3nA=X(SoCl_N9-7Rr1>fgg0&$^x_}) z$}ohLUP_^oi%0)8qtZx6{pG-%7}W?Wi%hNcm6X=Yg=PWOiH8bEo< zJ2|6^7j9hwKYzqBGX)l<^A;837uX2L85V)MjG_ebgGkXyvNWjYGRw0L+OmO7lne-` zIjxaWCjD}hxrF^+7_u#gAlov=AnV}B_tYZ}LURhAD!A*r)5asUl^DDbu zKI01i?zXYm0*6z8kg~cA3JT>PZrjnx-OBh+TzQ~9X1m;n*^d1i^8TP$V1Cj9vCjEOQb(mwqc+JID>&;pxg-UU;_8I;{C@9DKh%rrjS zM}$)n#N^+yXY5ie8spc>B#57f2eOadN{yifa*^3L2kfChkJBTwCDcgSCuWA*!~|^Y zJj&ggCzL_e+e2wW>0wN&a))b2RCO`P0qLyQ!xOmejea$9^g(^YqW)GcynuWvnS`(A zt|F#PpfxxV^n(I6Io3-YC)>XWhF*U?Fht5;en|&LXY^%o&B~4}UV;b(5nKH_ol@PDZG?Wy%kb(m0%Qc&6-C-laaA`{j!h zX|0mEY&K>}l2xd#jlp4`eBLe>fm`Zb1`nZied?J=%7dxV+H z63#Mp(T?sJ>S!QNP1(9OJZOhXOBXt?q{fD=+1t(^rmfa|j;Hq0bEyobl87xjB&+!f z;U|9xwI=rL=BXL+$A{RW2^+W4^KLL^RffV!^?>jfx%Mm9t8ULy7r`l>?j{@V`zrY| zPju=08~(z%Q(quI)|N01H}Ersyi$7UH)-rU8X5|@GA7l%&?HgiA_%9<2__T@*u68R z%<3L<;aT@Df}$Cep4@-1#eS!9cY2`BbBrOst)xL+^(B3SR&`CPL#UMk$$L2^Us;!_ zMCuWmLGQ3>1!lpX18E-x@{a#1KxS_(eqp^f?JvRQoRyx+JANcb_~B>k z;EP`Kp1Ag9Vj{S#itef+)CfaVe7yb~3ie2GS~G$$v~li)_mZ1x8#ob$uasZPcZq0X z;B^W95c6a^x)c0~bp6!&_LEL0 zWf!?1cCXZK(9{Km+=WM}x<+296hViM?gfC)QN@mS{-d`b@u(qymI0SV{s z)-pbp9NE|r9cmkSpz-@SaTZL{5P_GM;Q_edRd$Ki?O;j!)fH73a&9g1SC;{oJqq8X z%8u&%1NLDKqT14s0+I#AH&dDn&GN}9+PMc*8ScoaZpcg|jJ$9T}7%jxJdd=%?)c%PM;PV1!v_H?)#Ln%Qe?Te6 zP?dblTaPQ{8Ff>4nZVtHmO*ooBJ=%LDBh=1mK?hl`@J^y;nYfy!kykS|FzhCMY|R) zDnI2pi0Xo!#C|`xVUv#yjmp0RwP$c)Q?d&;HH=l6yAS0T3EgYX^Ppl=7~hjugphHC z7btG1X*%w_OD`0rM9~hYuf_+d$+6r;Ho8Z+Bib&q(T@8sEJi+H-3oiADAu{Q@h6C#ojMLRZ(?KRLDNGt-i`r%Fm-5NZ630hHJLC11S#=Wys9JrO_ znU0@*`qhkrPHVRkj1VigD)8;*(ykh_@rX*(|J=D+^3~w^yvM5<+_Aa61h@9F2G7&N zQ?;MfgQTasooM5!@G|dh8I1-F5_SZ~)HdAt^+R^=y##{7d(N3Ds7`&p_r`Fsk|!}y z0$)7fi%g!R3e#LU&eGY;GzCm5XB71^f}r4%D!I=WA3d9g4E=6H*C)H@{FAi7kSy-$0T+s`Q<)*D5MWD zGvT3XVW>=0*d?Eyy7=XwTWUTgd3sxmAYVAV;Dc^b+caBEKTl@@Mp4^6S9DL6PG2y@ z>kU(1_~^#gYc{^BCgIfU*0}1%5nH5Y(@-1GPf*^V6%k99z{kL_&f==6A)Wr2KJ~&b z(+IoH|Hl-D&@kQ@nirp(Vl8`xfR*w)1_rQ*T_H^AA3Mu?ifdy;~ZNpnpJ~&fNHn! zdU3NFv(|O+^V?nuO=ld~c@hm2_=C4**&+zFANj&D4&G8{!#Gl9i(u4#BzdV(^cIFe zg&V5-73Sh*!0SWpfY*vzz;|3E@b6vzu}yzf+sv|5(OXys6$F1Q+JN_npCYmO5dNQb zL-0qVWp+iQ6%$6p6v+yFO)@U>sR6GU@qc2!cx=S~iSwmwDC_3bGSnPznhKQDT`lQ0 zPeyo{tPWX=AT5fzD~aV`4yY?7Negf2R$uk^&rkbcA#6ympN z@9q~nz8Rh z+pZ7`s7-l}0EYrR5nv5ES%Sqkzx+i3o+Z?@A~@zF6;W!_5|Z!uGe79Mm5@+>sE7i4 z5%L+)h4an49ZI%9*p}cRSk^BNLQpFqfdO{@CC1@rUx+8dql}cjTm<)tHRbt$c%*v3 zCh{sTa9n|-vCX_K39;Y_Q_9Bc{h=R;AAlRwh`hkuLt)xIo~^-JMp#PmqN_^di&lKv zW(h^yfBBC@lqT#KxnP$NLd$SeXjCf!zwwIuKFLI=0K4(cG+Go#T4>d&NY;5e)RS>5 z{#UDkeM@qi4TG%$feTk<;CMdH0dRic%zE^o>V zKbz$WjAE)zi}y{NqLE@-_+?^bFpr^3j~lcLpS|-x`(%{5CTjPgwqP{an$pwAIelwK z7)CPuEbEM(zYrw2k;2KSIRjs=(S|HTWFgx~EQs+G*MU~YfvKQaW`pLhY_kt`seoyE z5SN+ZU!jl6-M+OxLUOrlk+fhs{DvsKt8fFo&3PJFBk6d{pxQ9!a9-uMfrGgxwwf$X z2|Ie_+0slRD=@V;F0GnqX3+ zeAzl(@kCqhpu1cb78S~1Tg^9n=oLL5i?IuF@YD=HFkRY(W_LB?G{*~*eL6oxOz{W7 znT!`%R|vD!!bRw8Z(^_;+pP`tDDSllCH#CFn^P4$E;ruxX=)7E#>rN5Z&s!z?KdO* z+%}wiiQJb^RNrgM7hpy4atTIsr28Bi8*W1&4+J>5&GHqKSPL$U$|^9#SaqF z#d+9th73CFUGeqhz0s+ZwK)!fRIt&kn$&Ha(qq|52~wjRiEUQIOQi3oo6+|RH~2|> zNC+Q`47n`$y-+imOSmUCwrX8aNFcBFTb+x@N9H0>8Khf8%xIH}xcJgaV-?>>Us3^7 zX4t689!}fj`jD?sj?`IFQQN|D zyQK&f={!^K%kN%xTXk#w`-BLe?`7o^G@&_5A{2E~zY4cuDz5eFJ94Dy(-7CLP7E`A zW!KtTW+*fW23v!>-#_k$WqP0YkA3wyxvT7Wykqh$Q4ri#Y38A7q@0>}?1${`ETY#N zQ&=I&Br*P8azR>ye&QVotJ}8K+qU)FR!}JS4u+jGmM>w@7p2n|rPpunyJBiw5+s?P zom={>YisCTzWaSuQP(vo!W;~anVBOitGo;Vjox~cJ+)Q2$J7h1RNXnjgOvs99O%66 zf-H;Rf{!!^o5P%oZ z3m(YQGV@OfP#-nbX;H%sb%kxE#Uh`GVo20f4U-d#-Ga_fb40Art&kVvJeJ>!Kulo} zXvIsUe<6G=X>wd#f2)k?kIht95}iUitLWuk-QbAhdp@l;jle|5xTd!(96d`Sr>o$Y z^)i{!WM4F`vzKC+*x#x*^s8pYxI8Y7n4)gfqHX>DyA!2t@YvH4wW;NbA{>bCWBeK` z5yQ{mM2eZO%X~$vyb{ZkWCZ;-jXtkXPu{vIo?a$)+}_Rk zN`U(`j=xvvmZsu6M^jL)i}N?(cwN?i4f+*OC^+6NqB7lkrV-YtM4BNz%X~sdR%VP* zCXdGG1UH6ZnbQ_zppw~~afGjhFWmRp)CnY!&B3S@`sG%i98!X4<M5A!=%)HFwE&}$V_Y#X{nm(7-3I-#o6nZw9XMTEVW!`xKgoXtk;|P z%vf}Z8BO_IulXrI=Ti&JpJ`CIP;!pN&ox>mAgd6%+41u(PutAi(G94r=5<4K;%Fee zraTHPkJj31`1c=Tm|PbKtrFr*LlO&(eEPPg7>ByaCc7+Zmnv}&ORR~+1)-sOBvs zp&T(~N68o;{)L;0>ON)4Q`ki}(DC>n1i6c!r`%<+xJGtt#I>schdxDTPVvxS;jU?W z#R(PA1L3gu2l~WGTz`~Ar(%4cz$vg){Z7`IT;V6s{q?8wm z8=z?817s`!Bk&g>;A(83{4b0^+SH&$H}hMlanEdso|nQ_o)k3+;`dmk-*DPTq5P5J zCqhGb^yKOzlC%@h@gCHGjCR`n}v2bH1FX zmF;h?i4CFK0rqBrCWT1a-7de|d z1DeuGA)CTa6V`YghRn8>-+N%HqO7tiv;Uz~NN*nbcP2C$^pZ>8;i{g>f|JoA2$zsB znKKO{R{))t`dJLJ!yGjpa2B+!l(}=**o|BDaadriX;`6GwhkR0$=2K52-Ju^2X8$@)qD`71fXpY=y5OVuc>m@tcVxNW-htG z`UY0U&*NlU@hdh{%ou*hF>b-s*P1?eiJ!m)<(jZ)i?H}#G`Z~YEUO3?K#PJf8x|Wp zzo6fLON5qdh3%K0%&%QZVIg@NGTGRFg?&FC7-RCnnDE#>atC_<%=?IjgbW{~tzTxIRQ?mAdOPRl4|Yu)7`2?_Ecv{Y-kCn)p3C z@RqbK%dyqK=$Mggr&86fo{M#>>7AMx6~5I)XJNv`&4^vX{NwJb_%xr+!M#a8(vPR7rBH(c+Pnd0{}V^1$z> zC648JS@+bjkr(_An;Px4U)GDb2nZi(2f?dxOxBHfJ2E7L9>SC%i$C0+$ne*M+JX0v zJ~n^np}OFQ@S*jMz+7Euiu=3`FWKYzyv3n>v3Y)JB0k34Br`#zg`zm^gvfc{yGb$O z9W?ZX{|1oW{Chn}38nkLCRhtBv7Q0*f*=D2V@iHnH?(q_Ju*R1jx<|Lk2$dJja#(2^K?sJV%D-vQuPvyYBY#2X`z@%UNUi_@0-@jJ+*Zx_Jx0rO_Cv=?sXKShscCc{()h;t(bGox za7x9@mWSSZqw@c8=zNp@(=6e-*}%`^j=CH}uGQb^Gyeh;8)lkSjBNF<2PViXz%(m> zoMsaX3P2_IXp)8G(K$iB{)Y{C_9}mrUv+PLiEs~ZrDKNhqXW~oFg@2Oyxn2aImuvS zegAGJ%|~v2--`eI`6IOBSBCGl;{sbZzpgRU{lv4j#Orp|T>I(flT+s%Raql+EHdUf zd(Tf%d)vn44{X|&7^b--KDNpa`ZT@A^=5+hqbaARX-(x`>oKKm*3MOzgtq(b+nymj zTl{F#LwBdu0lt46W_<6N{`*UO(9@LV`unD^``5^LbJ?k-VmBI`UQRMt znm6&hn6?&=rcI}m@_feE%oU}Mf%{_SF~3f}VWPw_^Ms4t{)n@Uy$n0P-OJDv`g!{O zRvx`wTB-f+7bD#na%xyJCd!`rzTk4B_<>`ZcQU(=OCI<&;RNB689f%*1x;0_{r+0<`%cUgf35e-l`&)p1%2M#q&VU zvX(`QRM~i$8Mc2hJ6OWJ;`+4}``-W2Ez#TeW&RYojHnBix4!jWe02Ez!};(;%gCe) zYzD%1RBYPhVhr5K#&93Ff)ueE16G_yI|CaZsd**wA(aKG#j&7t9N>*=fZRl>?eBr= zf&1zhK(|XGz+T{5p!lNHoML@F5Q(nw=^4g6Lt6%hTY1djb*l)CcY$sJ@9Y4U`=z-+ z>#^CpYF-MOcF_HfAfO1`*Cu{*;!j2f5QgtW z1IvB#foji9P038u&&*9sPc_sl$V-Q~0AYml8>9IQ7C=2fjB3O-Hzr6>A{k+X%?P*j zOOy4yft%!j7}bcEb(lsNV>99kpH%!JR|W$bnUuU$fq?;pQH_un zV8-x>DK;avE0(4-TQV?!Fsc#khL}c}VKYL_?$M;~00ssSMm1t@7N!yA*o?UH;&EGn zKJd;MAVxK!dN-yK76>B{ITL-a6F5nL3AxuSkg!1C`GlS_(U*oJj4%S8X#mb*$P2~M zwWBZFLukMH1F9Wm5g)pK^z{P>{XGnlcH-!Z4e-9-zkZt9ojqy@MZ;;dJGI=KsbYyfgw)@ HNH72Z@$!dr diff --git a/doc/小米便签泛读、标注和维护报告文档 .docx b/doc/小米便签泛读、标注和维护报告文档 .docx new file mode 100644 index 0000000000000000000000000000000000000000..e8c2d5d39f506c91b0bab6482acd3a3a7248beb9 GIT binary patch literal 639172 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�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 HNH72Z@$!dr literal 0 HcmV?d00001 -- 2.34.1 From 6b2cd8c45e004c0da2bc4e18fd64f22dc52b84da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=B6=E4=BF=8A=E5=AE=87?= <2643473564@qq.com> Date: Sun, 23 Nov 2025 17:09:16 +0800 Subject: [PATCH 11/30] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86=E6=94=B6?= =?UTF-8?q?=E8=8E=B7=E5=92=8C=E5=8F=8D=E6=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...米便签开源代码的泛读报告.docx | Bin 336412 -> 337289 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/小米便签开源代码的泛读报告.docx b/doc/小米便签开源代码的泛读报告.docx index 136282e1e13a95dc8263a88850067a7da4d90a56..bea5c39fc2cda47cc7a0c18f4e4222c28be9cf71 100644 GIT binary patch delta 9278 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 z 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 -- 2.34.1 From 87cf1a298ae41439bebb321e1779772f5fc838bc Mon Sep 17 00:00:00 2001 From: tb202302116011 <1271741232@qq.com> Date: Sat, 29 Nov 2025 21:14:49 +0800 Subject: [PATCH 12/30] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...米便签开源代码的泛读报告.docx | Bin 337289 -> 337636 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/小米便签开源代码的泛读报告.docx b/doc/小米便签开源代码的泛读报告.docx index bea5c39fc2cda47cc7a0c18f4e4222c28be9cf71..21da28072d35fc3b20794d707e6c20e191296606 100644 GIT binary patch delta 11545 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 Date: Sat, 29 Nov 2025 21:21:29 +0800 Subject: [PATCH 13/30] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...米便签开源代码的泛读报告.docx | Bin 337636 -> 337785 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/小米便签开源代码的泛读报告.docx b/doc/小米便签开源代码的泛读报告.docx index 21da28072d35fc3b20794d707e6c20e191296606..7a489bb414ca134e28a0389b402abbc450064bfa 100644 GIT binary patch delta 9319 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 JDIssQ{{!Q}t_%PG delta 9217 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 W{|Elp1IQribRbGZ9tzOE(f Date: Wed, 3 Dec 2025 23:04:39 +0800 Subject: [PATCH 14/30] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=97=A7=E6=8A=A5?= =?UTF-8?q?=E5=91=8A=EF=BC=8C=E4=B8=8A=E4=BC=A0=E6=96=B0=E6=8A=A5=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...米便签开源代码的泛读报告.docx | Bin 337785 -> 0 bytes ...泛读、标注和维护报告文档 .docx | Bin 0 -> 634141 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 doc/小米便签开源代码的泛读报告.docx create mode 100644 doc/小米便签泛读、标注和维护报告文档 .docx diff --git a/doc/小米便签开源代码的泛读报告.docx b/doc/小米便签开源代码的泛读报告.docx deleted file mode 100644 index 7a489bb414ca134e28a0389b402abbc450064bfa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 337785 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 diff --git a/doc/小米便签泛读、标注和维护报告文档 .docx b/doc/小米便签泛读、标注和维护报告文档 .docx new file mode 100644 index 0000000000000000000000000000000000000000..78bbb9e0602601ef1bce93bd44b9f8ea56a4bff9 GIT binary patch literal 634141 zcmeEt<8vl&6lFZIZQITp+qP{d6Ki7InBa|_Of<1=+qSKp-&SqaZq@z=yZxc7tLypl z+^5ey_ndoMNfsOe9Rvyl8UzG{1VqD4Za5AU1Vrx#2nZSoG?=caqr*>gho6ROUQXt& z`i!3TcEmskFzS2|uz&0S|MmZH1R7Jv75bTx#h;}cdli;34D@V@0DTA9MKCNOv%3-Dy3mE918V8-^Q4u9mtF%Dah&z-9$GDhA<;5!UuH2056T3@1AF&^QUIkbbNq zQdqm;>x61jq|0i)rWP~fJ{^$K&o}`OM#F?Or_~}NwvmF&q^R`XJPb|>(+0A_(?VKh z^t6RD$aSxgu)))a*#0+ms0{MX+e`Xic037C;OGl=iLRE;bJhkkavV;5IFSuS;! z1942oaBvfEdi`u!d^H=$53x{6wMm}zxOyCH!$GGMFqsw|F_lALxQ-8fydJQB0tW)} z{S6MH^nbuOQ{5l(>)*Gz`wyjX|6pwBVs7Wk#Q5L+|HJqHVa)z-Tdzuzmj!1*4!aKe zCYk8uU8g0T+cXe6kvIDU6=i)7%tlHoZ~oq*j$&MB3MXXqIv!;cUCQnxSfm?f_tfnD zLoHlCzXe}Yxzp;UwGkvEGBtBTpy{*&k^OdO@;N{z?I81soHT}>PJ1HWM_@9?uPYOZ zba5wtUPv)IykboJDMGMcLGQ@?Wg*0GTv1(4>@bN@c7*(b-t4$8eBZguJFXDN7ubR2 z9yUojut8)#GG7*EGOQAK`^J)vrUET40Zz!J^V{L!xzS2{Bmvom$ZPAEjD@O^?>MR? zk|>*t2qCNXE@$$Q$NqsavgNz#nC-qgBspHY8~pzUmu}@W#Un)!5N;y~5R`v0@^Ex9 zV={9zb+i9RegARZg`c(~-e}ssRmni9%)1LmW>4*Xqgbb2v9hZ^!MwPc3=;+tkZzq{@zt z>0H=nkN;kc5Vbxja(%xCypIRR)g)XS#CLP8g=L?_{^UEk-~8)Ng?o8!R;%H|k5jU?}_k0ehJwYU5D;c4qxqULn+l@Qmq zn(o5ymth!GsQWg7BllT==L(e1p2UE=ZoA4R^0JVqX9<CVIeLNs;@By1J-{D8jCR zdJ{S4l1gl^bZpardJ8$%5~|^5(wvs8`o)6kC@muQo896O(qUD>x^ z3TrH&VJ4YyqBmS{V`d>mj?q@>6&-h{0yn|eKX?c@69#OVz2Z%Au%a?js)D^#su1E0 z?2j}@IO`dkN@1UIyB3po@+}~`LFzD=(DJu;L^J`J0D%%bdeSSmKh0CdFx<*ug0tZo~vXaGm zQK3NR(YN$(+rRA3>KI#;P2a852L7yRRZ}kkq8SIk^B~QA$XDeo*@W9 z(tlnPqA+NW6gILfJ4g9g4|jwn@Y||;=A{?S`Rz(mg_q6uH%i_Ly=Lq!;Kk+#RF1yj z*54s!1thvincKN)X1xdIoD;KXEd4Ks>rNx|tC{Z+#pg}f!S=3;UO$d5=D1%0A>f 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 R@YDvDKkUrDvK;> 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