From 5df7f5f550901c13af975297dc18e5c0c9ab2bbd Mon Sep 17 00:00:00 2001 From: Lappland333 <150466250+Lappland333@users.noreply.github.com> Date: Thu, 10 Apr 2025 15:44:04 +0800 Subject: [PATCH 1/6] Delete TEST11.txt --- TEST11.txt | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 TEST11.txt diff --git a/TEST11.txt b/TEST11.txt deleted file mode 100644 index c1b8d63..0000000 --- a/TEST11.txt +++ /dev/null @@ -1,3 +0,0 @@ -111 -222 -333 \ No newline at end of file From d91216138602c9ce3072c30f1409aca1cd27fb37 Mon Sep 17 00:00:00 2001 From: prz83jtxm <2747847580@qq.com> Date: Sun, 29 Jun 2025 23:59:21 +0800 Subject: [PATCH 2/6] ADD file via upload --- ...板-软件需求规格说明书模板.docx | Bin 0 -> 244022 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 文档模板-软件需求规格说明书模板.docx diff --git a/文档模板-软件需求规格说明书模板.docx b/文档模板-软件需求规格说明书模板.docx new file mode 100644 index 0000000000000000000000000000000000000000..24b1fd0226016a1d4436fecbb025a4df69e3785a GIT binary patch literal 244022 zcmZ^J19T_PwsmZKVkeViV%s(*_Aj<=+qP|66Whtew(T$fdq2GU*86&`THUMHsZ+aZ zpRTIjr{twT!C-*?xk6-j`Tx29p9}i?0bpY&Z*ODkKqvoghW7me>R)C)gNcf+z(7Fp zAV5G!|J6+2)|S@Q$}&rF+<52{_tb7c(H0-}07Gkn4K;28^P;V%kR9M~w> z&6W#ZOSAihl?en_<^~zJccjo`G|}S}t-Zo6w~&R_+S&l|7OUK#cJ^SQRRyGpT^s?! zVa(|nrW)iCLm|GQCPqXN35NcD~`vBR}Y&pB&dM7h5XZ<|qg5}53?3N0M z6z(*$mz1D@EtLmGHrXkqwsfsUa*UfQeGZ9 zDD0H`nR^ndK8be06)YY-nfcN#d}5FeloCkq!77{eQ|2{-4_$i{+vO7Ly{0_r21(fh zSu{0wzI#!MS0wY6O#mNX%p(;*qNgBHa6NpP;>L^Ire`szv#loLrP4g2s1(pw(Vl+C zHD%NV#_9yp{t7Xvc|5N$D_9)c?9tZs3jd!h83l4|ReiHG^vx3Te`U$g#@^^3n!Mr# zB2XEyg0K9)^hdnXM;$xPgHLFV>nSiXH0^FM;%hdJNtsCP);2rKw(}|PYu(kkUFH8| zK)qQ6I$!VW(kC<|6l30wH?Ju-h2or~ zVSguLznVf|;O(>706OzKnQaZmU?LOrNaW^{Z_8t*GAk&Dl5_kFn)mSjMik6Z9(tM$ zwHmx5M-=^zfI$q;vn>zTCCHOCyl*e5F8~I7>`OGH1jJxIut1r^Dgere`CZD!WS53`P zM2fDDj_zmc>+hbAPFE)dpJx;=pIdTH4!H5{OTx;BJCkvjoP7Fem>FrqZ7o(^MhXCh z^o(`j>2yxY7s!8dD|{;iAOFqm**CYS|G}-3gQJbrKkPQe3)p1PqYYmrJmSS(fvusT z5Q~Gimc>WU(L{!A#4<#o_Cj%)oitwYidnHf)Q%V9<$TKVeQn;|)#R)VvDXRM&w>NV z5YnrOi41lO19^@nAHrcNCTXj%<{JWIrGYI+#1OoP2;5uBXG#c>aQ^VkQv6u2C*7!P zPDI6X;Vc`RNtR3*C?GpcR}ux|X|7bl2%c#=R-l?q|DeNlJ(!d`wTVm0HQ`D#F|2XI z{KWBOKK*?|1+*20in_}`{D)1)k~oxjzM-oO+5~AAYFLV{^94Bab3M{;HmM5#!#cy< z(y5S&^R{?wHFuVR#pacwEEqf(ffYIX7*Cd7P-$PYM`){^{kVre#vU z36p!2I6Hp#=V*9}fe)4vO0-$CyR7wc2iQ?a;5tD#jWGD;wcHK1LT1cb4NmrLQUX$V z{Kx5mH^HqtDwq%U6z5joSrV=HzbO2l=UVV@3SDgM0sn2D9iNB+8$$#Fn)C$%`o8_! z#KF2oDo+EzLyhNnyEkM(UebiMgW5uJA#pq+^0Dx&`gI zlcxn9V}+2wMnFgO69@$mR<$q%Sii`f>%WK>5m_~boD;NVs4&-r8qUtDhnE)@0e1y4 zTcUYS!2q||Kl8KCmzN_XH{9xAH;azH7sS1fEY^1Xj^^ zyPTwLkRZG7?CEl175U;ZF3z_v;lkeDY!VW1Uv1L$BXrv)&P}K74lIGv*Zbh>;RekSQp;g0JZQRSIb}$ zgB#$37uP#i@(MGao#UTH_lBJor*-mNR@#Dx`tWsqf7ip0`e^Q$tc`7finh$W+ovK( z-S;uO6I)g-FRka^FS#)`epj+?uK9hHV@GwGdcWUO$ujz2_&Zn+y%j)ir$qohLuo#o z)b{U99*I%;2I(G`)lo3pS~wo>+>oTjQUt)J-ZL#bQzZ5S?AeAZ64-4%33iVLCGh!c zw!S`&zCM?0jyLW)X#q!lVq9=N@0urKR33v@e@~g&DOyj#V;EwyEB6dI({cHI`+-Jp z#Y||biwkc1D_qfOMog$tdd5aU4Aj?M1@gBgYSoaiw|4(ll+e`^juO5W7rZ?U4&DJi z(`jg7fQl8%;`=>so-Z;BnPq_I*dnf|1qnEO>jZXQVM z=aoEA*3MJ-U~CKvQ&LOa4^e=U5{+$KaB?CFRCz2O&84TAX{VUTu6|B{ z+s%IAHb}=4%fjrU?_U7zeqaSQI3?rfiW$wW2LqxsPLYF7r32JKLsF z9z}s=Kd6rx$EA`t8Cx|>Eb<`orrdzNnQXtZYwm^%xAm<&WR^b0 z7yGibMb;YR1$dz= zkrSX3=v*>gHcHtJe(v+{KJQ^uUXk+61JMOx4(Xm>_<~E;XXf&;r8 zouo$o7^XkhL)iXMdCms^0Voto@=do3hH5!#oDs$|LrSk1V&I3+f+p}KquN;?5<2b< zX86M{xFY17I`OR2NdDw)pA`>hj#Bd$v(-QfmjJJxO5{F~OB+rz3*h9*=Z>CB%7JwI zg7F~5FS^NoG5ea+4ZKbb4Zumm=XUjk%oc#|N=}?1GeZV{yYdn>-n!CdlcUYa@}Q6} z3#%!}D@0WBF!JJq4^E|SI|eZHGEWE(m=lKPT_?lIGZ+K$5iU3U2@$JwuPI}?q04<9 z#mAx=kw?PxPDH4q0etj;-EQ$8C@FE||wIobxkTS#)ca=DO{jJLkI8}{pUYJsy~S|GT+tsSYq5#uhmw|UeXju@GU}W3I0E2 zYm+2~CWT%%KULB!sZ7 z8Z%4g-L|=kD<*Xa%r@{^0mE2H=PdW((v;lsIFjg&qoM%J788_@C`KPAl}f?g#nR`M zOUTS00qQ?p&QPN3>ClZTyq$2xEPgX62{9L6`W>Fh?0RpAHWN(`IitgmTld_JGl&T> zq?JNS59i38y+=C(XESIW_6mE#h#|#L$w&x7^x$=gSNtgC4_mo%r65x~aeB-usg`|y zYN;IgsS|w)sSTX@sgd=QmDTPId1|VaQ(9**3u%tpew+<8)bb|S&fupL!_oX3p{wYB z{=mdaXUk7dIc zPw%YbU)qlXuP3*m`Nz_)auf#|AhxN7gi0-*y+&+9lN^Rank>1gMu^HIPMFjg$G-uK zdC(c6rSDX!*P5RSr%YjUt|q-S8^?wLE3~ObV{tnKqMpEpG4fwrlg8q?84A#UH_B)i zu&-GyV?7KQ6GR3SM3qI#)QYp-hb_@Sw_HAZ z>gc4B+1j#(26RUl+iEdcWo^s>PiE{blNOZVG}MK61-xf<65@l7Z)MHR=fB7ta1Mtw z1P!vFY`HlJENW!Ie^@&m-E(v?!(!M*H|A`#u_Fr^83qzDRkf^0Xc+fT0e=4?nNp!5 z08W3gy}d&`P!pauWY^3;FKPuC4lV~4P78oBaeUYz4ErCPr}RAIB3ye*8W zfVrJcpRA74d%m9jaNTn4Zyr9WGnk+4@_N}jNXOs2z&uiRS`Rqp(4Zi~T@#qLpaY-Z znH_ph258R^9NAdE{;nWUp>U44>ly@S%}>KJIzW2sUrG{FRz-`^3xKdp)PHIWM!#HH zt<8;FE@~&=H66>2)NUzZk6hR7*L1rzwYT2*V93ZhLDb)HBAUXeSc~E?s@Ra-{@`Zk z)WsjC^-%?Wy5RGXKr~dP;ov&R)=;;R6LmG>@rJkH@jmoaQVZ8`?syPB-AE`>-ZW}I z9(P2y2m$;gZnBmw-cIK@i&MD`Ec{D84`kGfR9nn31Cbnh>O2oMREZC5g5CAf{j&pL z*x4?C^}{}&+fN>uEwoKt7^@@X!{ZDiSeH$962e|m8~ol7#Atga7e!ZKCXQrXVYBOF zGJw-7S)gR9g2hmdwC1;+nhxx*qeW|4MqPnNrV<;Z0aNBt#MU+EM?+4?@(t=!4#iRD z^s*kkE0i-2cHZ)b+D{C|V%=*UraO|jprm=;`@jS4eqTo5m3Ez@OsDiYRIO=!nC+wZ z(fhLdAPxUqSpTt`!6VvJ0YU%-4Se1?>E(o}z2FzTp+yAb4yq)(nirbz9WavkE$M(A zYk?|S3Edm{?WO_7Eg06Pon-%YT8=^rO+1=1LQbUq*!Ic$Zq>AvDCESKOXqlUoaPsz z1gocs$X2$Q1RW4siF5E*VOF4z+4}R4q>yp#lVf)UzSY9SDC_-Lm!1ToO#USs-bKK! zzU%GSPkCU^YVdCE!q=b+Qv{2Gyy4=AC)^CN+1Lo1;c`zoM9xal>`atJPzi0m<) zH|xD0%SY7abT?DyR%;gaJ*?ezXF$U&5oIMcY%w#I1Q-PMe}V3Py@{i}YeV3ARRo(r zn}N{O@pV(+3b%zYkRPBqkI&+J_D4?B7j<$!&W{HsnOYCog>YA;)9W>xbQj8Ey<^9s zn^$pIR}&{5mA6ted$o=n2a+A(iW=PO$+2sJqp_A8$@SXj&_eB)d|GqvHff1Nn#Sb< z07S(LCHZe_^)bC>W4I7a@?E(6h8nhV4Sv{%N$!WEVWZB;s9VZP%Poyu)v%NiX4W(? z@MFxj+u|7y!hz8e$`)J|D@LdI15mvmNeq4HC1p60v}+caoRn)Q@l!UWhUKW~;+2UC z?1uz=H=(UaYs0RH6~EttHzyR%h!NC zH|zwm^*p9Be8MddNa37gPmlN}smpN=U{7=s+`X0Gl82Igk|Jgh)Z@LYXYPx$wM?Uz z7C2kfz#C}t7JiX_bkw5grOmW=QgTO4PyH&3EpB-Tb3Ox_ai<%nl2BsHOX)B%LD=Z5 zGtF+WDbSfg^tHB`709y8IO+M=kc)yAgfx`$r<3B7-m2do@ZNFu6#keq_$nc;rGgHK zHCsam@maJardk~L@x1$d;zOOF4mSOJc~V7X#c0Yy@Nz})`8Pv=OGCzTBb3FZ$;q&Z zp@dC9-Qe&wgxS9)} zOH5IWY05m03`$FT?6wRla;1MOD@uJDpU?B51hMC{KNW0EZGMc=$gP?q(RzQD`xxM7 z&zY}IsiaR=__Q;vJ1}(|!{^4n8UWJ!HOTxhwi`m%2V3XKOv2*eZ{=xBO zbi{4%jogG1T+}wWnWnhBHvHvMYJC6}Y!`|n)B|{+JL_@wPlaCVw2u>0H_fiyWq`-X zF1j`>O)#?%aHiU9qr|eLPKnxXK<9?FOP$5v2>&S2Ou(eQu`eg%4-+Sb9#1{3Z71-9 zwuaanVDr1QyH`s#n@~!^4OkNTs5JkYK0M0DL|uor)4**!YCdE*`dsh+?FFttj-y+2 zed;Ilw!X-HucV_!&OAH&c}9N5>hh#~i@d>wuly%>5P|87L-}yM6Igk=_AY>~=5-~- zU;nb$Sxn{1ie=$3sCLM077#?Lk5Afv&K)#Zjci4B_0}MR&vVahi$~qVSid( zEveV7Nt`(DN2=RVQy+m>yNUy3Nxrbtc?~FCkzCx_pBh3SW{=>xjXtjHb+0dY?mv8*I*0=a;-6j zfbeW`$>_q&`($YX6lIpt?zzqZagJEoJ>*wrTHnXYBwr*-1Sv%34wYiUq5r~ zqd!}IiWgn-vx>u#3WY#X=rQMIi=bk7{3=tY8?Dh36hc9`HF3ZNL z`{V60f zJS6oaP-0?b$`Nb)5p{UcfP4N1?-w~g$5>M;7)SRK2(_IM+NrB0PEq#~>zae7T*Yv7 zCe4zRR3zP48MvdAhO@b=2gzx zI0oejhp)+auNu>PT3H=;Ty;B(ud|un8MX(rXSEmWzo$j0~2)*bNMUbf>zDI2^<=7 zhLjdwIYT4xRdzhCX>IH`4qk^S^O5#evUzm{${9fmg5IAHL(?=?l}cdqA~27hFw8+$aANoj5x(Pv}@{@dGc#f>X#&%ngwk^xe88m_FIj=swR~TOPHc6Kj)+wq1#)SqB$ZUp$K+nI*44fn(!Si=(hTu<$_6V-s;L z-Sh$k!mPVj1!7+X^2_ij>;)myuz6$;)sPfq4r4C>-su+f)nPPS_l{V@_cDRZ+E?xR z$7^Bau=rYh)}|Kjz*I0Wq>F!g$ED}*nPi&10R4d?=~&OUqpLbgM`+dVN!G1fXKn7| zTcIa~k4+8kD-S4IHQ<9LQV)Ma!1J#g~A&G(-RWAOT08{v1x!{>W({3q}DuZ7Xr z#>Uaep5Y%syhvsApS)w&KY7PaO%yx|)1VOny%Ikg;COE!8HHqQyS`YAy&k%<#WKYK zJ6eqqxA6(n(zOmY9dH&HkqQ!MW*YRejw4bqisS2n%D3W&ZW8JMGQceNklkG&zhZGyf(Ehz zY7{3YuTercbV-ub_Mc<ywz^_nMD?Cr1;p)%v&^@J5N4y)ffDi|o&gJtgTg7m{!}>W~bWB~j%*@J* z&X?{OsKkuo8n_XXkuL08g@ff4)?KIVTcHnVlbcCWmXDwQqvw2>!gYPoa}`~z@ik#Y zpfydbjgleCj*z3X_d69MR#Aj#w&|A6f*`BEY1tw${RWr)2#^{bhm-AVB7~6%GiXFq zpCT5g!M#mevU9^+Swq6XS<562ri3GjdtO5xsTU@BKzpz`+A-#V?x-};!L+oV?(OBL z`jao#hgX8x>@JExyHPXP45BgqZYY|9(w$E}7ck6*%MX|MnnAD#jc=cP-Vj~02KNpv zl-?3ZrN4k+Ij2!K{HeoaISONli{k7Cz)yVeCi?*Y6HWhf0tWW~M3bYbk(JSZOT+l~ z!hgkohg>KQ5D@x*8ve`tU$J+gE@y)yg4RQFgD2`?V@TnQE#_3dQio$YFIuO$u;=R1 z$@OqPWp13gz_x%N7mEaLmy5!N09CpmsWnytjV2KHitftP(6Je|OzHH})dfEiZAQU1jK9a68s^BgC7q=0c^}oWMv~-=wfxY;ZnUT zgC3VkxRNs>v;Ih2G&h-qelozAoZ=>l;>vnRJOtAnZcB#r47ERGY1H&vQ#Xu3hC6W^ z>(3^BOqpC~m6m0U-?^|v*ESQwjNm9SYw7}v;1nPQ+A&mp4HO=j4?7-mObAX29PzKt zml7*iWL-jg=h(sSkRn%&un|W(g+(+F@{~2PR&{c<}Do1 z8?URm)z5Lud$!XoEn{c^AMM!XQhHNx1l_2vW^LQziDP=z1P1kj@A>c$h<8Er=8BHf zH3Z;h65O+(VdJ8j%N4Z#`2pPXOVXliXBVE*fH{pO*Gcg0L)snqheNX_^cK*w=&yij z1$lT8Co^=z>{6p9jJ-Fld*EC@IO=pl7O7FJH~AiI+!(My4d6}E*84xSFZTKpXM%H> z%qmt_A80~!69--2oA@)#>6x2>qhUlJcJKS+=bfkDu?-fO6#8z<6*YV>AEP11Ehf5M z?(ga>I>|SDK2Ni9eBK)Hfsbh!cei&XJ={L8w-GTuABT3}o|@YVKX?ln;*K#m1R=R0 zhNYFY#z)07ZHDRl8#@iTpvh!wmlTP5N{Au7EP~aO@rI)j>_}WyfxMJ~YviuDAP|We zR2l{Eq9~nxJu({*Fq0Ho^PH0UxiiW2o9r2W?IFcwcSe`M466`_up1xvZvCMuXSAnB_5QJ(0K+^kmdJW zt#1ZK;6xDs0*MJ@`AFEe2&pU*098WYxXkm5G%@X1K0i^al_vc_aupjfpr>ASvbZ}? z?J!pD;-;6j=H%eLS|OC-chI3=2DQdK$W*!Ig(Nwe=Nt9d>EBW&iwc~1xSyPVVN#qz zCyQ_eby^`JM40tU1?XV}5|?+HYg7h|Aem5(Ti0+8%ox;LN6<#0AW6sL9z7VuoDvE< ze`DazdaoGFU=Azg|DId={@)I6ZXhkItgaK*&hF|-DC+b-QU@`kSc@Y&I0Qg*ntN0o zn$HXI%C2o5aUOkD$Wa(&R>>)x&%04<9( zha4YC4t7gS0+MPZxA-zg?RQr|P_CU_tyEj{HF#dG^kr`^Bim!RQQ=rELdWBJV<}MN zRS|~E--e1>QO4C1@1a$>rpQInalsOu(cRw2jBa+@k9SydJYX|`Fj;1hBFUVsvYzcs z__dCts2}k1n-S5oqH%-W#amT+TsM~bfblb@Eq@x-^{p1;81DI6QBALqtLVZmj~Ia_ zQFP%777G{7g}N_6P&Fa-M@ zbn?u*(x%9!?Hh9@HiY`tV+I-wPz9K)*w|0VDLyJsW1ou|$kSK?pcdli8$sBBdcX2+ z03>1|^c-!po^5?Zb7~{ynJO#iN$Ekz1Grp!&?f57ndB_8ts^*RhRn9pOr6dVJriVS z1FPlaU~EQ@dJ%oIOkIGq!2}}UK)3$+n3vQY(wixjk*vxR^zSR^f9{rOrNVS)MGII zr9*kUc}gvKsUZ!4dLU_zWiKi|;II$EkbWDfR)%nU_3OZ@itI$`v%f7{-|RM?=ErJs z)zQT%p#{AAlI`@e*T&aH&zEP}@SPIPDuLX6_DQUq1YWk9jcPvErpJ!-@RoO|=g!6T zeMx@T#%#8*&AIe2UEOE&*XP04i_d!tb=F2$^>~Uw*H1***|jaVqM9@5;X&o{n!Edx z&+3Reso77ZlwIvnVV_;kQ)SiNxsyLHcQ@55C)8npCo_?Fvez=YwBzuHr@bft+0C5% z54?BB6z7~@vzTXtHd%6{bRtS0B`Bk?C3GSQd^(qJASPE4#k)tlJU0t;>@5KH5{b-{ z*39#Zec0FhT0(nq3QeT1VGiQ9Gb%0b6uck1F20|;CxA*w3-S9$-N+|&I>R250WuxO zuz(#*o^l`cHn`Tf0hC+=e_9 zG<*RLn^Lo`Hv0N+9W(KoWKvDmR6a~2g5i8+R~jCZ9u+fB9s3k-go-&Ngt}y?DQ__2 zClNlItKF9$b+)v`tMHZ5jLzB`K0*{LWN#*PqHhL42lo$-r^ z>!zhuOc~LhOWt`Rvtr$pD8h}Rs}9oDJ-&8sRZgGq$IKJ)Av!H-r%ZBP^3`Sl>1@X7 z@S|EI-@#RkVcknqMq1UHWsQU5mP4QStIb!9Ks_~25^(~L>>cWk?x*2BW`@TtbygYO zg$K#w``!5=5B0}M&7|0Vh|>Ad$>8}@`0jmsI|@%&p@V*0Xy8}fc#U`8{?S(+#e>`f z&Ave=n^W;XTOXd&=6P_6b5R4uUyr`FNVO|WA1=*L%^sb1;%BQ9B@#^is=|h=O_OGq zdYhKBHmoB?^DYW_x(&CeT0#RZuD7>*ZP%l>__|NE+Y+_mlrLMN2f1wHUp0qHPG28A zi0hA;AD@*W?`xGto>SVKKdv@?K5Bm1(a9|~gePO{Vzk8xOP;l*JRHY*L7BAyP!fbE z1lzon8*6vr-(-rn##=_+`NIOqde&GaSV&hf}O!xN8hoI%>b>_+>f~%^v)i($E|s{#mz^3PF60rb5SurCenuaaT`}2$;cv@ z_2O{e6BIkB0NGxziN}og2lqU{`Y;GdA%u0x(sN=OVdbj&P)EBZ$NDgtZw0ZK(SmMV zy78@Hu`|9LvcK9`Dr}_KGT7{0)l7%w*X}&Ck_!_<_$9oBj_!z6#t%i}&)QS#W{~pT z7;*iUy~bDol|W8~Ix7g#PrX2GnbMyx{pD=mV-tbJyI5i8p?FCw4m`imufObMZcmAI zZBe~kozB~X{9CI=`}R$!wdnnU=8I>rMikCw22=wC=rMDkyx0cSjf4r#z<2B11?a~=|0KTWmgi( zEC-MuQXMb6Hj=ulAUwVILL5>}7!tiWD4{6hM|#cI-6PGYFuTC^C(5u!ptB{zGBQgn zSZKa&0u5CbAhi0{kK4|^JY^Jy8SflsThd%?7_wOBlu}%9>@qdrunBW}b&18V2-vU* z)RuC&4-YahJ-@+eBTv-){OfTEqg9EgyD>v7^7sO244 zP3SJ)HMQr$CHRw1@b0vJ`Yfpp#hy#BioIW1dZVJ^{j#I@$CC?cRtm(=MN(_w(-hu# z_i&xixRyxE!a4yVV8NR*mInrujwzJ9->-f=cYW#D&2v79Wx(;6#&Yb^WC=XF#gWcd z+bFefP}UL7Hrv5V50|Qx{Oe;MJcwE#npd=#)$c{cI#YAuO-?Q62<(hGoXbMlKR)$| z@Od+3KITvd+DijRxVis4eFa}tXP#VB=}^I(!ykWgj4i-9Kc{a>ofAt@l5<{(pWp*0 zs>}Nq_N4m4oAd~n`}0u3Xq^t_+HXPTNEOQ4tvu~C zve#Y}?1esc7=E4OZbdcyk$1K4vbTB)Y8d!h{zMoi85W}Q0y}c=4*QI6mA)kNNI%-+ zGvv7M>aXrolbh}lJ<-g}mxGO2x|qEiR(R;cymU?4%hJ?10JGc(8m#4mwK-EAb!BtQ zq21on%ZE(ypU2XzuB=_1t07~QP*U=TcOJI9`S6PEsFE2f^%%?+SA{Cxf zZW_N(FU8*j-*}fryXB5!kCnlLk_c)iVtVjj@-r)ZFCM#?Fl7SeOjX-*v`WV>mxGgy zc`_0XO;^gwy1~{D=&Bx=&D&^;Gk8HCX|!`FRh(s93+qqekNtouiX+4%?;ZwC&hf3! zZ^X+~$MO%oc+^rW$hp-9gn32S$cQS0P3i@uneZ)*y*Aok^av1>IdNrNYc<#lAxYIK z_08cjp7g4Ah%C&0wY<-DvjR%y+p?0pxB;iUtUE+Fyx^mLwrb)w4n@o9*<-xz*?2fj zCR+>4o!>dbWH$A~*9_zyv|A!8(U!Pcjn>al?6Qz$^VzFWyAQvP+`pH{T0TP1Z~i(} zl~d|FuXo!WjAfb?fU0ScS7cgT(D-DdloRZbzm7!LhmS-i!F83*;lA3`CZaD z=jB_Ry)SDp`v| zXB$;woSPO`iuCj5Ksk@V4!#`gm09jc58Z>7P zK@ObN6I%@lSg1@7LB56{(UIWR$zM#zH%tNJ8v7LddkDs5F0b(3t^>htL29`3j5$2E z%&zrwiVwGGi@OE#@QG+*GTfQDXGaw%pL%hT_-~n|eNf2o#s#Te*M@^*k|+;;hxdZy7C#z*FKuIZZMD)@>{hJNw>qUOOAy-bee3AR0k%&DUP$Rz zD}&1DQGzhpFudPSDvoMG)my5hZSvKeAQ(c`@+JYTUr6hw`jbaOd*{3k^d1mwA@Yf4 z_Y|fhd6&Zo%w^pMuV_pFDl30Pax4o(;kF=_%rICJKop~7|UxJEu zf2S+XyG948wYDO+CFP8s=Fqu*-pzXBw$*S;^UYk1$K7-T-~>S)NU z50BnTSmJRP-<4Lc!2!P}>{0vqep!fMhRq~oK&g-r%Ek-0&Rd7gd~iri-pG;h94B;{ zR}B?U2N1TD#{BtE+CqLU!G^NxJp5$%ESd_udr{jL&;(BWRiPmapFB^{6z_A&J#%V` zNvk#$ZNllyV8(XXg=V*MG!!mNB6b~#BQj!UcamympDM_HVs5^i$LI~|w|3uMWx zCwRiG5Ns-%Wj@fvaJqhcpmjXZSuVK=I(Sf$nV2nU|B5gUH9Z9ZnoFR~hF!(ASoPYR7!m?9So z^C@@6sqo9lra)T_J*t`OfsbRQe%Fu;1%c-kc8*j&+}N%>jZS6?#`=<4U+kYr=2O*v zwn$l&(r`fy)R`NscFrt6aew=7);~J3RmuXp&6~bGdwm(?~Yrxl2?M5!Ov=`@LlFb~C5*Dl$2+ypXrYAo^b)9G`b7)wNBrQ6s zp6oXpsQU~-uVW35aIsNSwUlJ{>EP*(tr~1%%rfV1;M|C?GWWWAe|L6Kv@@lRg6)+l zK}W@=btfqxcz!?jA;wZUr1NNIH2@5zAn*4j|)>RROCM%6Osp3q)jyU@W5vPpONR$XnI9+L= zkXQz9d>67080nS=kE7~<@*?GPCyG8?AqBdq09MeqThgETfsG?KPT4pNFf)kyO5u%S zGJT=P;u+^MmD}ZT6&gE3ks!gs*m<_D)B6BJ3sV|JAYfJT#gEA-G)E3JRuEo+9ZGW; zirV7bS9s8>+6#R&M^Lh$T$}00F`c;n?v-0?Wl!rrfq!hAhGTyQBP)MvdBv=wK&2?X z+I?LEwGdYUnjr>@Z@GSuEApNm-ILW8geFc>=tL)2*Ke+aI>O+@RO|{0etG_J;~if= zS!BhY^N#Res&rR7!m6O>NJ{bxI86uURP0u?2M-Yg@oXdd z0nWuqfF@(4bDLX&T)GhVFWY|rDKQG^{2HkYrw8f>%A^D(g#6Iy`6Gt5FhY5CfCj25 z-`}9XczqA$USDx4!K`i3ZhT%=pz&ycQ;uGWECOrpp;KAGXc@0SPx_-qwRJR3BEXDj zBZAezaJqK-fmfLcCYbL0;Y`Pm3dJlBH5G%=iHvlaLAk`}0U#9TkCrTWxH;u8u473e z+IRit32fs!ZQk}Tf3X1gUrTBa_$!;=QIV<;+Z4K7a{BiDwJ^aj9)?2z)1ZI@`l-ls ziz#5uVOY${iFjF_3dLYh?g6B&U&yzzI_D$(`J$2jof&~;9kczX7&2! zGnBcwhYy!g*tRUvi;@19h+=}W3W9|(!mr1|MKSkKz=~&ZOfGX#Ai0Fb^tEiHU&6vL z^}3Iz`er_Z3*{UiomcPN#lZ{@f2qbpom=={QKs|c~#~=cb|94cO zvE+l8J9y5fL>0y;Z&3I->&fxBF-H1Jn4c;ppxYY;8N+F)B-PgUEXX88`s34+6w}rA zuzZhO{W2zNXXct57Pvl|Y@z}XAtW5=VfN(5;(ei#HhDpLwPUlQiaIFgA54WuD`14D zF>DFAw02~LMdOAj*5b=3y*~>=pV!^*SL9_LpbdiPRik8pRZKXX_^~lU!3|g^pZtZc z;*)x|USO0raX7qcMaw@ss%W+5>3%$3+e`F-s8SCS6sTO3nSESO!&4omrraNi#A0Qa zMZTDyUZjmREXsG6PMHkbi1o1or5<^ga>?y%EHXD`9*;WB!HSl`8#usxLl}6NLQA3T zs=Y$x-~(cRSqQ<=g{nwYTw{ND58^BUSQ<+NT(m(|pZ0Sccp8Pb+lVc)yk-ISXO~QP z#%gnD?>=QeUt(x;LA?LbfxgwYVgm_`*}2tmRnF*g<26U;@uj5iu8%5@qy;WuAw0<2s8hH}=tj*)1m9*%u521Xi;Yey3 zGI#+;JZrJz1F;car6tmZuyTC8Z|NDU^o(+QHCJpV=_aBk^-1LtG`paK&ECY8pnGD9 zMqSfoJeUN-M!2=5!xm>OS$Dk`5|fiHztvBN{*or$?K-DEq}t3cw)|xr-<@N!tFk^q zPGtHaVef_xLvRavOh)WdO^)U-o>cb9v25W;j#toccMp!vAeq>d`Quyl*otSc)mf- z?)&#^KL2bVIoHpfuZ~RdkA(N2F<#ftkNl%8pNCjYC3b^Vzp3cVG3scyz-56l*V`zK z(|TYCb7~BhXFvZ{P@^HBtE|A@B(m%R$k#*@g|ad}YrYe_ncYC*SRDuk9e^>Aw~Y}0 zK8+%gT^K0;4!>0D1UtIcQ&#iSO{Xk~Ozvhsnav(lXz5nta>LU?JX@7hBHrZKo<28? zg)vC*7D4iMA0wH25mbz|;f8^)2cp5Gr!##`-3<99K`#FN#F#yhwHn*VhR6q!%tsP- zJm;|PDr)6!T2t~iF@e-gQg~U&_*cFVksBnLn{0DgT3Wy>3X6xBNBgjbd!jmy1+qm+ zHffp?gSZm>TVRVD;Y-_JyX>X@rKxMRlZrM!i#EQRwI}@M(0wxsiCa<$Cc$IT)7&78 zpGYNg zVMa*W*TFQd^m0|3_Qnf9r*VIKmT}$`IT_NrSW)wF>GgE{RlGR>-nNUT?N){-$p=ru z=8^8t#*gKBXrjdz14oGlPnCwzEMq<40#cru9nGl@LKA^s(8I&Lb&pZ!!JVm{do%KsZL4`FbD zsmu7QZYB@1NJtY?y(pWC5C;#>JPKh=t~dz6N;*Wt=1NnjLNMgFqwos?5Q&Q;r}Ate zzi^T{Gg}1y#Po4rW!mBm9-jDRZ9OM;`;QP_4XI_xuD`#>PM;Bgyj&dTBGbG#YbzIe zfuLiKbGh@EM7GREPJt=|D$Oqs2{^fWOgf;brar6tMZjY;KngJIX~l%EfuD z&2ULauHbt_#e8Q$n$ysjrI~I+2JpQCinR~UP~<=>%(V7*oGS^HKHVXi@~VnRoR0+` z*~}W@^IlS9y#l(n6{B#=r3m+p7rDPD@Z0|;K$fe>&7O;C>2*9gz7v#x;JZ;^JX&y> zsj%}gZ0gR*fLm5gO!$(lIi9qKpoyV?e_8c?Tlt-6FSCfObduD%i9!0WaZNFCzbvCZ zX2tv>bA$9%0-_qOq*X z=DJ7It4`2a#HlUg2{vV@Czda3Pm)oPJ;q~ZdIiq!Ms3B%Lfxcdu2t~$Uzug**lTLn zY(^9hh*I4vx1&|Rkky?zz!DfNkVwbJs)hJ(Pm|2GV3<8uKkU`?SKE(4ZHEVLY)h{( z&W8r@3bXBw%cs%X%8DeVwOKY*k6zGzBu(Cy$gj)W?SLH~dWw zZ^_-q8cRFdoUZ)o`ommS>?b>VpsHC#;DSsXl})wmz|e*x1#EWh&V$at4M zp|V3NxWpa0a!zXOy08jW#6_#tx^}4|rdT)?c$qXd@AeY1@;wM!oy#kEGb@x`$(E|b z<#Gj8d&w~scfMqc^Cq~kotug`B59Et+{4ZjEq!(A`+Yv1>`#3|-*{cC^5Rz2X!eUw zg!2~fHYGMc(^34Q__7zjBmC6-FZO!jK#IY2R7J3#ejl&+KF+`IO7tX>g>4e~ANg%c zj2~zu+mZV7EZD{Iuv;T>q&NF&VKejJ3XA) z-pRh*wr@{nwr2lxU=U23=nA(M*0MliOb_Fm{Qb53tvNJ|=Z9})-;VKiH+0!NzE25` z9$7c$t=V<^;WBA0UwV?AT4AZZzcwc_tLxV0fR(;!%{Tpc1|1I6I~8pHb>Dew7GByM8S96^kAVc7-{wq9P&~Rwct@ zt;#4SRD@6wO>+EN&|^``%qXYy5+2L`{BGg~=3ZUTOT2%QAX`9Y^=)?XJy|@JXY8CG+_A7)N=IjX zTCz5;TFaZc5lTu&Nj=CntE-hhjJv3-k}u>7)++Z2Q5T}#BvEfc=R+0FM==N3j2sjT zqd=!%kAC9FV2aGQCq^)Euk3ESYa}JCNQUC80YDHMNob@dX{1AOK61-1vm3+k%B|5` zOeCz;Yu38~;xPb6xPA*X8rj8h=2EbfiZwc8ZLHgGU*umelqOb~!;v4@$Zg+*hhe2} zhZ_1C3mt z+hGLMP{bc(7zI~ktq^h{FldP zL{|2Vg*rSBIV=alLA6GUn@~zZDK$wc9g63{${o3v!`T@w8~Kru{0yngWHz7Xwr}Hu z_4a{vbrAx?ybzdwCNSBz_p*0i6ml4)vP4~(hY&Ev0%qNKYAp}50t?AcJop3YNA6hc z%-e&@_WSGk*+1Zdw0j3R&^Xqo^9@F4LsE$C9Xk}?RFV*f6MeP`Leb(2+(Nu0Cs0d9o#=>=-tbvP4x zzzBgSrUvt`a3+K^ah#lq0+b@NzHZ%oz!H6&M*Q_eZkf!<;rutt*E5?d)QXQ-Bg4ex zJ75f6%H9SJjjlk# zmttcW6nuBfMFm2*?2z5P4Wv<_5NW*t82SGHehfuFfq6F z0XyeDEapejK-|J9w9*ss|4=ZphKJy#q10th!M&To8L$9gT-a|}=?C`AhXTNbG2XCD zQhh$05-@cm6sp0zE8;K_haIOljLE97R2{-nk!a<(b_kLP2s%Fd$2P2iJq{GZbDm6K zGs*6a*z+XPCus!QFyf#dU^i|9xxlIj`GGkKI^bmt`|fCVY6PaH6j*@~B{(?@i~Zy} zP!$aL0K11jVQNUN0#m?~vGFbAVqG<(b1eUm9S%pSZ3Vz)ijA(w*>_Hm7 zM0@IiRw)j}+vEvyniFgzPhJF0C#zwdnt0&R-+5SfqFeE*K2w*4RT4?P6Oz

#tXj~Zmjo_fWww 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

aYltnMn^Tv_UT@_HwJ!BNKf17_L3SUfjW#1a| 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 Hfy^SIlR_YNSRVhVv*sb0Ig;zqf8mBkbJ;# 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 GQ2z(iyylqz literal 0 HcmV?d00001 From ac3ed7e2367dd83d162ce234c65ce096bd1667ad Mon Sep 17 00:00:00 2001 From: prz83jtxm <2747847580@qq.com> Date: Sun, 29 Jun 2025 23:59:46 +0800 Subject: [PATCH 3/6] ADD file via upload --- ...板-软件需求构思及描述模板.docx | Bin 0 -> 21750 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 文档模板-软件需求构思及描述模板.docx diff --git a/文档模板-软件需求构思及描述模板.docx b/文档模板-软件需求构思及描述模板.docx new file mode 100644 index 0000000000000000000000000000000000000000..c2196d377f2322942af4147fc3f76da63e4074db GIT binary patch literal 21750 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 literal 0 HcmV?d00001 From e40230b5f7113c337bf42816bc00b2ff2d1968c9 Mon Sep 17 00:00:00 2001 From: prz83jtxm <2747847580@qq.com> Date: Mon, 30 Jun 2025 00:56:25 +0800 Subject: [PATCH 4/6] ADD file via upload --- Note.java | 316 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 316 insertions(+) create mode 100644 Note.java diff --git a/Note.java b/Note.java new file mode 100644 index 0000000..474c625 --- /dev/null +++ b/Note.java @@ -0,0 +1,316 @@ +/* + * 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.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; + + +/** + * 笔记模型类:负责笔记数据的创建、更新和同步到数据库 + * 管理笔记的基本信息及关联的文本/通话数据 + */ +public class Note { + // 存储笔记属性变更的内容值 + private ContentValues mNoteDiffValues; + // 存储笔记关联的详细数据(文本/通话) + private NoteData mNoteData; + private static final String TAG = "Note"; + + /** + * 创建新笔记ID并插入数据库 + * @param context 应用上下文 + * @param folderId 所属文件夹ID + * @return 新创建的笔记ID + */ + public static synchronized long getNewNoteId(Context context, long folderId) { + // 初始化笔记基础属性 + 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); // 所属文件夹ID + + // 插入数据库获取URI + Uri uri = context.getContentResolver().insert(Notes.CONTENT_NOTE_URI, values); + + // 从URI中解析笔记ID + 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 属性键 + * @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 数据键 + * @param value 数据值 + */ + public void setTextData(String key, String value) { + mNoteData.setTextData(key, value); + } + + // 以下为文本/通话数据ID的设置与获取方法 + public void setTextDataId(long id) { + mNoteData.setTextDataId(id); + } + + public long getTextDataId() { + return mNoteData.mTextDataId; + } + + public void setCallDataId(long id) { + mNoteData.setCallDataId(id); + } + + public void setCallData(String key, String value) { + mNoteData.setCallData(key, value); + } + + /** + * 判断笔记是否有本地修改 + * @return true表示有未同步的修改 + */ + public boolean isLocalModified() { + return mNoteDiffValues.size() > 0 || mNoteData.isLocalModified(); + } + + /** + * 同步笔记数据到数据库 + * @param context 应用上下文 + * @param noteId 笔记ID + * @return 同步结果 + */ + public boolean syncNote(Context context, long noteId) { + if (noteId <= 0) { + throw new IllegalArgumentException("Wrong note id:" + noteId); + } + + // 无修改时直接返回成功 + if (!isLocalModified()) { + return true; + } + + /** + * 核心逻辑:更新笔记基础信息 + * 即使更新失败也会继续处理关联数据(数据安全策略) + */ + if (context.getContentResolver().update( + ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId), mNoteDiffValues, null, + null) == 0) { + Log.e(TAG, "Update note error, should not happen"); + } + mNoteDiffValues.clear(); // 清空已同步的修改 + + // 同步关联的文本/通话数据 + if (mNoteData.isLocalModified() + && (mNoteData.pushIntoContentResolver(context, noteId) == null)) { + return false; + } + + return true; + } + + /** + * 笔记数据内部类:管理笔记关联的详细数据(文本/通话) + * 负责数据的插入、更新和批量操作 + */ + private class NoteData { + private long mTextDataId; // 文本数据ID + private ContentValues mTextDataValues; // 文本数据值 + private long mCallDataId; // 通话数据ID + private ContentValues mCallDataValues; // 通话数据值 + private static final String TAG = "NoteData"; + + /** + * 构造函数:初始化数据容器 + */ + public NoteData() { + mTextDataValues = new ContentValues(); + mCallDataValues = new ContentValues(); + mTextDataId = 0; + mCallDataId = 0; + } + + /** + * 判断数据是否有本地修改 + */ + boolean isLocalModified() { + return mTextDataValues.size() > 0 || mCallDataValues.size() > 0; + } + + // 以下为数据ID和数据值的设置方法(带参数校验) + void setTextDataId(long id) { + if(id <= 0) { + throw new IllegalArgumentException("Text data id should larger than 0"); + } + mTextDataId = id; + } + + void setCallDataId(long id) { + if (id <= 0) { + throw new IllegalArgumentException("Call data id should larger than 0"); + } + mCallDataId = id; + } + + void setCallData(String key, String value) { + mCallDataValues.put(key, value); + // 同时更新笔记的修改状态和时间 + mNoteDiffValues.put(NoteColumns.LOCAL_MODIFIED, 1); + mNoteDiffValues.put(NoteColumns.MODIFIED_DATE, System.currentTimeMillis()); + } + + void setTextData(String key, String value) { + mTextDataValues.put(key, value); + // 同时更新笔记的修改状态和时间 + mNoteDiffValues.put(NoteColumns.LOCAL_MODIFIED, 1); + mNoteDiffValues.put(NoteColumns.MODIFIED_DATE, System.currentTimeMillis()); + } + + /** + * 将数据推送到内容解析器(批量操作) + * @param context 应用上下文 + * @param noteId 关联的笔记ID + * @return 操作结果URI + */ + Uri pushIntoContentResolver(Context context, long noteId) { + /** + * 安全校验 + */ + 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); // 关联笔记ID + 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; + } + } +} \ No newline at end of file From 5e1e7489f88a10daa496f64a9a4da12113e28ca5 Mon Sep 17 00:00:00 2001 From: prz83jtxm <2747847580@qq.com> Date: Mon, 30 Jun 2025 00:56:37 +0800 Subject: [PATCH 5/6] ADD file via upload --- WorkingNote.java | 430 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 430 insertions(+) create mode 100644 WorkingNote.java diff --git a/WorkingNote.java b/WorkingNote.java new file mode 100644 index 0000000..49be969 --- /dev/null +++ b/WorkingNote.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.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; + + +/** + * 工作笔记管理类:处理笔记的创建、加载、保存及状态管理 + * 封装笔记的编辑状态和业务逻辑,关联Widget和提醒功能 + */ +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; + // Widget ID + private int mWidgetId; + // Widget类型 + private int mWidgetType; + // 所属文件夹ID + private long mFolderId; + // 应用上下文 + private Context mContext; + // 日志标签 + private static final String TAG = "WorkingNote"; + // 标记是否已删除 + private boolean mIsDeleted; + // 笔记设置变更监听器 + private NoteSettingChangedListener mNoteSettingStatusListener; + + // 数据查询投影(指定查询的列) + public static final String[] DATA_PROJECTION = new String[] { + DataColumns.ID, + DataColumns.CONTENT, + DataColumns.MIME_TYPE, + DataColumns.DATA1, + DataColumns.DATA2, + DataColumns.DATA3, + DataColumns.DATA4, + }; + + // 笔记查询投影 + public static final String[] NOTE_PROJECTION = new String[] { + NoteColumns.PARENT_ID, // 所属文件夹ID + NoteColumns.ALERTED_DATE, // 提醒时间 + NoteColumns.BG_COLOR_ID, // 背景颜色ID + NoteColumns.WIDGET_ID, // Widget ID + NoteColumns.WIDGET_TYPE, // Widget类型 + NoteColumns.MODIFIED_DATE // 最后修改时间 + }; + + // 列索引常量(提高代码可读性) + private static final int DATA_ID_COLUMN = 0; + private static final int DATA_CONTENT_COLUMN = 1; + private static final int DATA_MIME_TYPE_COLUMN = 2; + private static final int DATA_MODE_COLUMN = 3; + private static final int NOTE_PARENT_ID_COLUMN = 0; + private static final int NOTE_ALERTED_DATE_COLUMN = 1; + private static final int NOTE_BG_COLOR_ID_COLUMN = 2; + private static final int NOTE_WIDGET_ID_COLUMN = 3; + private static final int NOTE_WIDGET_TYPE_COLUMN = 4; + private static final int NOTE_MODIFIED_DATE_COLUMN = 5; + + /** + * 新建笔记构造函数 + * @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; + } + + /** + * 加载现有笔记构造函数 + * @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(); // 加载笔记基础信息 + } + + /** + * 从数据库加载笔记基础信息 + */ + 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(); // 加载笔记详细数据 + } + + /** + * 加载笔记详细数据(内容、类型等) + */ + 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 Widget ID + * @param widgetType Widget类型 + * @param defaultBgColorId 默认背景颜色ID + * @return 新创建的WorkingNote实例 + */ + 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; + } + + /** + * 加载现有笔记的工厂方法 + * @param context 应用上下文 + * @param id 笔记ID + * @return 加载的WorkingNote实例 + */ + public static WorkingNote load(Context context, long id) { + return new WorkingNote(context, id, 0); + } + + /** + * 保存笔记到数据库 + * @return 保存结果 + */ + 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); // 同步笔记数据 + + /** + * 如果存在关联的Widget,则通知更新 + */ + if (mWidgetId != AppWidgetManager.INVALID_APPWIDGET_ID + && mWidgetType != Notes.TYPE_WIDGET_INVALIDE + && mNoteSettingStatusListener != null) { + mNoteSettingStatusListener.onWidgetChanged(); + } + return true; + } else { + return false; + } + } + + /** + * 判断笔记是否已存在于数据库 + */ + public boolean existInDatabase() { + return mNoteId > 0; + } + + /** + * 判断是否值得保存(避免无效保存) + */ + private boolean isWorthSaving() { + if (mIsDeleted || (!existInDatabase() && TextUtils.isEmpty(mContent)) + || (existInDatabase() && !mNote.isLocalModified())) { + return false; + } else { + return true; + } + } + + /** + * 设置笔记设置变更监听器 + */ + 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); + } + } + + // 以下为各种属性的设置方法(带变更检测和通知) + public void markDeleted(boolean mark) { + mIsDeleted = mark; + if (mWidgetId != AppWidgetManager.INVALID_APPWIDGET_ID + && mWidgetType != Notes.TYPE_WIDGET_INVALIDE && mNoteSettingStatusListener != null) { + mNoteSettingStatusListener.onWidgetChanged(); + } + } + + public void setBgColorId(int id) { + if (id != mBgColorId) { + mBgColorId = id; + if (mNoteSettingStatusListener != null) { + mNoteSettingStatusListener.onBackgroundColorChanged(); + } + mNote.setNoteValue(NoteColumns.BG_COLOR_ID, String.valueOf(id)); + } + } + + public void setCheckListMode(int mode) { + if (mMode != mode) { + if (mNoteSettingStatusListener != null) { + mNoteSettingStatusListener.onCheckListModeChanged(mMode, mode); + } + mMode = mode; + mNote.setTextData(TextNote.MODE, String.valueOf(mMode)); + } + } + + public void setWidgetType(int type) { + if (type != mWidgetType) { + mWidgetType = type; + mNote.setNoteValue(NoteColumns.WIDGET_TYPE, String.valueOf(mWidgetType)); + } + } + + public void setWidgetId(int id) { + if (id != mWidgetId) { + mWidgetId = id; + mNote.setNoteValue(NoteColumns.WIDGET_ID, String.valueOf(mWidgetId)); + } + } + + 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)); + } + + // 以下为各种属性的获取方法 + public boolean hasClockAlert() { + return (mAlertDate > 0 ? true : false); + } + + public String getContent() { + return mContent; + } + + public long getAlertDate() { + return mAlertDate; + } + + public long getModifiedDate() { + return mModifiedDate; + } + + public int getBgColorResId() { + return NoteBgResources.getNoteBgResource(mBgColorId); + } + + public int getBgColorId() { + return mBgColorId; + } + + public int getTitleBgResId() { + return NoteBgResources.getNoteTitleBgResource(mBgColorId); + } + + public int getCheckListMode() { + return mMode; + } + + public long getNoteId() { + return mNoteId; + } + + public long getFolderId() { + return mFolderId; + } + + public int getWidgetId() { + return mWidgetId; + } + + public int getWidgetType() { + return mWidgetType; + } + + /** + * 笔记设置变更监听器接口 + * 定义笔记属性变更时的回调方法 + */ + public interface NoteSettingChangedListener { + /** + * 背景颜色变更时回调 + */ + void onBackgroundColorChanged(); + + /** + * 提醒时间变更时回调 + */ + void onClockAlertChanged(long date, boolean set); + + /** + * Widget状态变更时回调 + */ + void onWidgetChanged(); + + /** + * 待办清单模式变更时回调 + */ + void onCheckListModeChanged(int oldMode, int newMode); + } +} \ No newline at end of file From e772a1f32221821e698441812f788dd873c43793 Mon Sep 17 00:00:00 2001 From: prz83jtxm <2747847580@qq.com> Date: Mon, 30 Jun 2025 00:57:29 +0800 Subject: [PATCH 6/6] ADD file via upload --- DataUtils.java | 384 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 384 insertions(+) create mode 100644 DataUtils.java diff --git a/DataUtils.java b/DataUtils.java new file mode 100644 index 0000000..64c600a --- /dev/null +++ b/DataUtils.java @@ -0,0 +1,384 @@ +/* + * 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; + + +/** + * 数据工具类:提供笔记数据的批量操作和查询功能 + * 封装数据库操作逻辑,包括删除、移动、查询等功能 + */ +public class DataUtils { + public static final String TAG = "DataUtils"; + + /** + * 批量删除笔记 + * @param resolver 内容解析器 + * @param ids 要删除的笔记ID集合 + * @return 删除结果 + */ + 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; + } + + /** + * 将笔记移动到指定文件夹 + * @param resolver 内容解析器 + * @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); // 设置新父文件夹ID + values.put(NoteColumns.ORIGIN_PARENT_ID, srcFolderId); // 记录原始父文件夹ID + values.put(NoteColumns.LOCAL_MODIFIED, 1); // 标记为本地修改 + resolver.update(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, id), values, null, null); + } + + /** + * 批量移动笔记到指定文件夹 + * @param resolver 内容解析器 + * @param ids 要移动的笔记ID集合 + * @param folderId 目标文件夹ID + * @return 移动结果 + */ + 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) { + // 构建更新操作(修改父文件夹ID) + 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 内容解析器 + * @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; + } + + /** + * 检查笔记是否在数据库中可见(非垃圾桶) + * @param resolver 内容解析器 + * @param noteId 笔记ID + * @param type 笔记类型 + * @return 是否可见 + */ + public static boolean visibleInNoteDatabase(ContentResolver resolver, long noteId, int type) { + Cursor cursor = resolver.query(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId), + null, + 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; + } + + /** + * 检查笔记是否存在于数据库 + * @param resolver 内容解析器 + * @param noteId 笔记ID + * @return 是否存在 + */ + public static boolean existInNoteDatabase(ContentResolver resolver, long noteId) { + Cursor cursor = resolver.query(ContentUris.withAppendedId(Notes.CONTENT_NOTE_URI, noteId), + null, null, null, null); + + boolean exist = false; + if (cursor != null) { + if (cursor.getCount() > 0) { + exist = true; + } + cursor.close(); + } + return exist; + } + + /** + * 检查数据是否存在于数据库 + * @param resolver 内容解析器 + * @param dataId 数据ID + * @return 是否存在 + */ + public static boolean existInDataDatabase(ContentResolver resolver, long dataId) { + Cursor cursor = resolver.query(ContentUris.withAppendedId(Notes.CONTENT_DATA_URI, dataId), + null, null, null, null); + + boolean exist = false; + if (cursor != null) { + if (cursor.getCount() > 0) { + exist = true; + } + cursor.close(); + } + return exist; + } + + /** + * 检查文件夹名称是否已存在(非垃圾桶文件夹) + * @param resolver 内容解析器 + * @param name 文件夹名称 + * @return 是否存在 + */ + public static boolean checkVisibleFolderName(ContentResolver resolver, String name) { + Cursor cursor = resolver.query(Notes.CONTENT_NOTE_URI, null, + NoteColumns.TYPE + "=" + Notes.TYPE_FOLDER + + " 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; + } + + /** + * 获取文件夹中所有笔记关联的Widget信息 + * @param resolver 内容解析器 + * @param folderId 文件夹ID + * @return Widget属性集合 + */ + 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 内容解析器 + * @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 + * @param resolver 内容解析器 + * @param phoneNumber 电话号码 + * @param callDate 通话时间 + * @return 笔记ID + */ + public static long getNoteIdByPhoneNumberAndCallDate(ContentResolver resolver, String phoneNumber, long callDate) { + Cursor cursor = resolver.query(Notes.CONTENT_DATA_URI, + new String [] { CallNote.NOTE_ID }, + 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获取笔记摘要 + * @param resolver 内容解析器 + * @param noteId 笔记ID + * @return 笔记摘要 + */ + 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; + } +} \ No newline at end of file