From 3cf7920a227dab5f2902f1f7faa127b87fd4843a Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Thu, 24 Aug 2023 12:27:53 -0400 Subject: [PATCH] Fix various media send failed to compress bugs. --- .../assets/images/sample_image.png | Bin 0 -> 117823 bytes .../securesms/database/AttachmentTableTest.kt | 34 ++++ .../jobs/AttachmentCompressionJobTest.kt | 84 +++++++++ .../securesms/testing/TestUtils.kt | 34 ++++ .../securesms/database/AttachmentTable.java | 160 +++++++++--------- .../java/org/signal/donations/StripeApi.kt | 1 - 6 files changed, 236 insertions(+), 77 deletions(-) create mode 100644 app/src/androidTest/assets/images/sample_image.png create mode 100644 app/src/androidTest/java/org/thoughtcrime/securesms/jobs/AttachmentCompressionJobTest.kt diff --git a/app/src/androidTest/assets/images/sample_image.png b/app/src/androidTest/assets/images/sample_image.png new file mode 100644 index 0000000000000000000000000000000000000000..0031fe6b1db62d7e20207583f103d8ab88183e61 GIT binary patch literal 117823 zcmXV1byQScv?pXh8AN&jX%M7`lJ0IrQo6evWI$l(E~UFuK~lm&QbIzyq`RA$`}p2_ z|J=LQUFYnzd;j)1`$lQ1E8sn&c!q|ChNq+``wk5a1VKZ4f`)_n_=WLrk>lg5TT}JD z++ncqX=2!Fpxbn`cY1PCef`(o-rk9ciRI-L7!0PRrBzs5X>M-L%gc+0hX>PFrKYBq zk(G6K_t-hOY-wp-O#Ha&ZFls^=Qz~+G{Wob^7bU$Yd_T9H@r^6s+L}+>M|pEKhh<= zu>UN|VRO?_uFiDK(kBkcIT=fxY7qsOWo@ap zA> z#6jAve?4=$>9=69^XAs0R&HDDUXAQAoLdP<#&oqI6T&TyNuECWO{EE@3Xd+MBZ)AJoNWM@|mLRRE7dd;7Xg@kR`H z=tA=>>K~NBp>)|FgUAl&i5=ejdxOuUKiuiPV0yv^owwvne5hp{CJ1Hf-NnkWGW`V_ zG>y}0{$=?8U>{7ey?g+Qu}h#=q+I9#@ptO4>$b z4@F((5S9Y?Q3on^+~mvp7DNz%iO7}otTaoZ{*z&OFesG&d!iXqXJZ>8nri9SR@q}Z zG8W!2gtZM}R{(c~se&A4FyM{hK&udFm;iC{GL#C^cOGh+><_xQhQXWW#n*ZR~K{jF?6WrK9FVTOp{==GSjZA~bG>Qg) z_zekZ1$lI^S@!R6Gw*wHaDRGa&s|68ny+x)SjM{3q}QRVzvBbyBdo=+YbjlM6zY0* zi@XQ^p49zE_hyDoN)zH?EwC)0A5ddZ@bLCT7Ng0jU-(d z@1Z?mzW7BjfIEOJ=lj9=gzHge-yqQ!=$(n*X$qJ31j(U|%z0E$!_odO7B@jdDK{(x z%5%v_aM36Gc^gisl!or%G0>q+CixSL%$q3?E72KN*Q|l>W=;cYeCnjrQk88h5u6%J zx{9o0_f-`8rnZco0s_q@3(rm`HS%irBG=?YDW6}>;Doq?`zP1h*4-EE?6?gpza{7E zwjaUvdI#>`oS`J@0EZ};e^25yy>W9mSJWwmonVF46Wf1n3NHe6B%q4aEDrMOSr zR#UPhKLtBC^ZkSDn|?;~F>{`zeO-PT}ZE2JMvv-+fG`>he66rSP^4*d;CG*2@;J-bsA?GnjYgaG zl}v`YXcs?4QPNZ&pudTSOi{%xe%xs=JOZTs@uT@8-I+(&!pp4!FocD^=YjosES7*l zB9qIV5K?zZMzk7C`HUKOtnr<~v0hZeb9jN#JjxrMQOb6Y1sSCP|3!W6x^JJ{?erJT zQNJG>UUBH(-@E1I8W@9eLp*_q`Renj>7=}&2HU)rFYTDBo`kVp8eNuLF*qN^9QlhcMuVHP>We$Xz9z8}w%Krmjs&c04%l zCZv&j4V{1d+50!+KfV_M+t~I%8N*#QoKQg~LAL3`p@zI#VhG{5e1){Ol%vS25KPau zmu=>bC;t3Vc*up*P9rL?j0EH)8<}s!qWByL0N2ex11fS;#(rrMRxTF?0Y&bB%ran3 zRfFuBjre{Nc8jIYbJNalyF;)LYjbGBOXpou$UA9Gre29E#U|byS0D`gKGR{#X}K;` z{MO#Ro4bDSwIk8JpHotEl|k7zOt?IEy~RXMhggo_8Y*J;^*xLUsehobRDQ>z_`M_# zT>bq1JXJjUkmYHJ&8uW39Q4Yi9va0F;@7MOtOa&@1U06R+;>T<>HOir9kVKFO!s*3 z83*8tTaRgCUGF#*Io%QPJBr??l|?y-yBotko~jGtJ-ucO+FcB4cF{HMo=zlV}d1SOe`TSivcD&+i~4>|!kafhr~pmXcR zLv{vjzNo<6YxhuP{HmQmQW5PT!1xxMi3Pw2$MhrV5U?Ci7d-^dpiEP`v}ML$X$9%c z@v&Y9zw{zp8tkEaGJg(fJM!XIl@*z*ql?qImznK4Nf}G;ktC3T^8H@%s%$O-R#LBE zVtsXUZ%1T8y(^fM2@A|-ahFUblRb0IC5~k&`4ZJ-Lm$*=CEw-f&^iRO=iyng+;n1M zRC1Ic+gTyGE+Z2`9kZyCN4hkwM3dTbKp9}-4a{uKj(@s`6(ecXh%}_EXoaNbXjl$t z+87^JJnvg^LOzJUylwn?w*bcVqz~>d?f-S7I6$d{nT_lUEJ~qPRfgc8!#{x$lLp-= zIS+7pk88fJIqigy`1ut~4SxwZ|IPMd^1&n&IeulalXL?6yazmC>b4qac{0ASUbLWD zbz7~qDtAfS$DqykE8v);U|yNmvO0uLxI3TRpjpEG9vQswj0Ym#t4Wv~5ZHN7Q)oK} z6s&k@p2HF@pQ5-ls=!9c7TX_D$E;`)8qzYojGnEZqys;m5Sv8H_Ob}w{KOYQe^O2h z&yuz3zG-`+`vk2v5u)_Y^s}=F?;OelE)P`WTqv*lq_}fubfL zCb)0`SbKVJv7?n=FL6>0XldkykmB6-=Mu@?QFTbiDcP)_#(h8c>3pzAi!Z(p=O}9b zgj>o_+XB{HWIgC|B6l$TJe7(&n_!g}`28hRGv2HKr4j4v1Zbej3!PA0xnE&BgxXOm zH47%^fZ@MTH+$@ErayNd(!}xJY{5k3*S)}xobh9;{?gxNZTDwU4IudE=U1(VChj`P zn~@>i!IB*xfrLkHRJu=C0fp%q*t1t1`gv(iQ|(qvl(;ifHm+o!t4YZpg+cI*I7|E_ zKqT`(eA`$tLf-5Hl&3JL=U&>CgTcGojwCWatqFTvZ&@r`v7vluQ}yp=*Gl7G5&zoS zDIlc+>puw3=QIYl6B6XQA8}-=h3^Wg>nng5XAZ7ia*>cOlnabJt4u8(p=g|&qo@~x zThZRx_B%pSnt$nG%FM*BcROBTKcW_gK>``tlTsw?Bk;yEx_jD2Vuq*jsj3RK7;#rB zJCjNhSrh&gdMy2i!jz*#M1a-DU%k10JugCp4zV#np-t*%Lixu_&3i!AtpqqHy1VLt zS@;D8uPNKI9a<$v$Nm>7*|%n_AEp|eAj$YP_dXVKe|j!IPoqj6Q+O|XwoUAo{Moo0S8gvu~etY-^@;9mHak2LzuZNzna+I%DAejdT$6v_b+Y;45E#CZuzE?)eZlH~xNVa1MqrdgM?yva zNd|3wua&*>8y-E4l^kw!9N9_5ce=Qvj$J?jwZq8E&?DgBSHmW%s~EuLyqD7lxt_Kn zu{QDtYu^@T;k6~nE<}U!^HuwJSIg_=B`Q+{q-vwL{H+mmUYeAKjQ zH@52XJ-kXbt$zvSyM*<6-$`UNg#krz!p)S3cXl8FrGE9Z2(`n%Xm>&zRoj)UeVqCb-Ps|3-s$;Wbv757`q79IqoH3`h5WUTgZLO-Z)#WF5^|z-5HAT zn;mUQL-xorYwie#qE4ug^c$RuKXZyq+97P=Ho4|Fp7Bh7rkQ4%VVb0+z{J zM!w`if-rTC6KODGv1&{^ZIHVa*tkr zK@^nJae61L5IssyP=EJ=q!3hhRxnhQQo3-1czSPUs}AnJ#%DxnwFV>K9&G1{ZNm=z zN)zyypp`iXLUg4MsE1=#XE`d2$erilBXUWu)PsJBU90k{r@Z5Ly+QjJiVsPAIIIy> z=)OK}u6gQMrB5{Vh_}UypOXB!$YLC*i66*4Hd8zqM}{H;M^j8$B@Vs(!8CcJKmz(X zO=1W$r67=Xo~PZSk*E0-jZyz3BQqFAndKPtb;$gxi;!S~&y*yeU zscVVkrSQ6BhQouNAJ&dafUETj4$BL1X3(7Xg*NCLjrWdJOngxZJ7HDW=&$W-Rc5H+ zGpMW8#EXVtP%cor^uYBcQc}p2ckz7yK^vd0tfY0mxXlwvv~M`=G9OyN63r_oW4}RG zNyXDDFAVH{HeuWvvD<*lNQftTzFIa+u7o5>tB|Ln)Z>kJ6itK956|3E~t87 zPq2Ww96c_aa9gfqt;P%uR1}UfgP`vAw~1!a^?9dz^t!6m#pWKiSwWj>HPFu$9^TTk z@9u5Pj>oJo$4f7Y2LqrEwR}UU25odDH^gr};MAx;5r1(6W z{zJ<0ur0%B9S@pt#Cws90+uG4*)cKcoLjGDtJn0W=D!Efgr`7%vr0Ix7ZeqPp7pJz zo7Z8^->Q_|XbyoIfoy=HSC$*8iQN*eCOi+`uVLYl*)Xz6ur){o-O=%dOoKHWN&4Orqo` z71tZoVWT3U@YI3KyN++8R!0GB{RcPqjT_0T6wB?`Z{ISAyzByzrElo*P?4J|;AC<6 z1OEG%UxCVNugR7todi$3rb!!JOKmP8I_5Wlz-=*hGEt_8BrB}b98WL@kci-ETle*< zx#$ULH~f}m9r-F3N^y8x?U8FXSE7p-*^@kX$@{?Tq51yFz*Bi&g}jqtteSE$F)vAc^p(Q2zUsp)7tIxc+^tbL&^JA)%<=&0A_rF?b58y1gwx zbNPUDZ#9H#i1&}U;A6+Fo*$!=yz-%{=9!_$W)7b1eGX!#mh)C7U~<(Q)WOw}6|3!x z8`i|%5TTd|+V~>+&i82)c_?<;4(M)*fbowJi{w)Xr)Q>K79rxQ!bxi9GuE#laf_EC zgD$x4=7N4}#qg_M*EbIfZ}I?DSqFMq$Jc0`Fi$C@s=({E0n_J375gQUaM)dz`kf3# z^|QV*JlKFq6v@3DEt9i@Jb=qVT_?OS}ZJc0^_(X={6 zAt7qBb%BfUK-~!?TxMt^pffR?QD*||?xoa+Mo^-z4Xy`RQZ=Isd&y27R;nOgEwYv@ zV=B~9uuEc+=?|02pMM@CcyornqcZ%Q6>8g|6DP|NC=emOSi{49qd++X!u@PA{UTOnTXEN1iov_A+Mc_rW?1r`Xj?7f2nU^1&Q=uXxFvq$ zufkd4+vIJ|6#Z+vH&9tN>vAy;JsU;QpP22*>c+OYxsJMok#spOLoqKoJZ$L3^4}?L zR(d?(x(Zl9mX8D@ef%&ymF!@((u$)qKEF^Qe9kWMJ&qTc~ z1)^?!^CCg2pqRFE8!eGR^+n2Lu;PJJIU%56%$cz;W}e=N`|1#=61;>|@^xmJGMqDE z>Rv)WRTgOuUBUV-G=Cr*sYfl+$uvDQ8U# zu*y%otV?mlc0A!}zbo1wOPcNGhbyvh+G-!1W?a3~o}$i_t(i7=>z+C9Js9|#>qkVn z$T!=y@?o7{qEO+#pm@|{d$KH8Z436bPx7@6`nxCmt_Taw&wC&0ycI~s44|RAWyp=u z0fAO|szf3^i={T!3ButT?rW{`P|@zTyfZbWKk-v`>L)ELLC(5Pir|mHnOTKP*Gl9&8siM^Al%syIS4?#IDqT19?Xa+4uft4GjwPyj{>w(S7M((IJaG*AAN{_m z4yAl4TUBW#DY~Hvg@Lt3bNMZ3_fD-GTK(0nvr zHPYN*lV|>2wkl`#t{QgvQ2$v+@)coPevRel#806)ll~n`$Bt1UKCL0c!OkJ0Y#(Yc zwh$JxT{o($Y<3S==6YK{!IRkq#~gnivkjlgRXs_R)JF$taLOo$*f9mBHN`Bw=6eO) zqwCkqlFW+C&O;$`?B4jt}LZJ5$s%=$oB}*I0*|4`d~R2r$_M z=-?q3V|Pli{w<*MJifPSo1wWtlfsYSWyvOk?Wa+VAlAwo?2XD7iZhYq<>KGE7{tF; z`9;rLe=4_)@Q8eS_HvR~gp6}QP}4DPySMuS>H3fWCcEtN^qt#DfskAfrJ^XHjY>k$ zji`{+#e50HY@=ZJs==~(B{`=*T5B(2DJ$%98SB5z$v%3#!RpVWyJ;k1r+{oJJ zIt(&mBdxUF{a+$yZq48Qo0sx)B4^z*a5pz4>Nf%u1Xhp_-M!&%p zfG<&Xhz;kj%NpeWKzCbaU-tIo{Tlv^FCi$*Zos={tM^6q%&NsJ{=ahK{XCV_hzt{Y zct$Fuj|A`T(mvCxRuSoxs|d#U?Kg+ETSZ9ci;f(gZyJ7e@BeW_mGX<*+ajOcVFwg_ zQ^GPwiBHvPx%c!|hp4)7|G&!4ny>FFJ^h+&z69`hP^chc#D>!$>Ir52-eWjV=>z=0Af2&HI`$U~3qBnJ+8`XSWU^JPO?Wyd5C>^uZO~!^)5g zXDDgSx8FNFSW()+67k=(jub!V2z4Eg-2T#2Wwmm*C_&us3LQa6Cn&TaEq z>X_y`q69PQAa?%PbL{}PuxqaKhj&bHx6bO8Afu}5x{K9b?p^$g63e6QgJJefAJ$TIn4Ex3m~$7dVzn_2xKHK{%%^ejqa7k8fEbzj`3p1auXphlVIRhgvj;g5ulCrtM@798NNX?+@ddN<;_FmJ;~P*xfvFrXjYZD|vVO)LU0% zU@)m+CL_q_0?rqW}!wIY;bK3sd@Rw_XpJ1U{7=}#rk`knYC{WJX_&mE8VG(MU-u;MOvS%v&8UO zU6lYW+{#xC>Ck8+hh&9{`pS$8jTG7cqY6iP=WI8~gAMFSuj)c_f=0yT!S1r@^!{Te z#-+QL_0>Or>G3`Yj~Q^noXuMToA^Olu(a+ z-)u=$F^mjiBI`Z*=fPBvqyo;Wk+)1eeQ5vFX9Y58VP(kbrjv^2NsB4W zMg(n-mKgmXi0kJlT17;omW)w=)h%-jc5>x}hOt$zrd#_zTHcopdDa%~_7>(Wg2Fg) zDvVLRw2W6XRCmj?0XGGKSsYevn%Mq5D8Bu$-u&j5&H<59sRHwC#C4>F_<`@?~4XVh6tqaKEy2DT>m&6W%NwG$~w+i%na1!S_MKgDtb((@mq%J6Q+XC&FBuyzCQvqlB-Z7Y@NTET?o%DNN7~P_&M|hhMr=-laOi zi-Zdvqg8tQZ^cM>#p2}Y*39Lt#`|hN^tto8^QCiu79~Y~=n?{p`=oS#m~o7~QIM7L zas1Q8Z*&HS$-E6-^yxj5d?Rs1ue@XxZ6WCR4(W%uta+e6O3L9^%#G>CUp5#AlDXavQfPDajP$XjmfD*nA?W*q1exoq3Z#*Wc}raAXrEia4vmO{_WLVFCF$L(@?|!U zn}SneBNH#hKOGyY!2X|RtGBVT`jpZLwFt%AHOO! zHce58>ypN4c>|i=o;=jZ>Y6eJds+F|xX(WpyPL8D&`nuvUr+IG)aY-9lt1&c&n6HS z)MM3n4ED~Lv<0BF!@Dz|M5-UO%%J&|UMpK$*oOomm;wx&o*J8O@Fv9{KLJ zvNi3Rxc3Jm1)F>zieN|2iVV(kKI3$JH^`_96S8a@=pqB=4^`(KVB0Rfj^JdLNC^9` zb@bH^Ud4DN7K0a^6vMD)6rXSO&_D!<490QmMz3ZAaAV|P2ecC+oN~)hKcdWh+y9{M z^ysNq;?PE~A)OC6|3{e$m~R1#93D&i5qur~(bQiOE#sXQ+MDx(;Wt04jr_ZbmbBEy zQO50FrK%I}7 z=78%{Si94!rDEWn2bIIP+dRvjbnL~R=b$kmSsEyn6G6AP&l;zwI(oqEp7AqQZA3x( zD}fh8ZPSvqcLf9V9*jH=J72m0giQqrcW0F|x&GXHUjaD}E1Uz|)o(6Ly34Ds##=H3 z0Ujdg@K=0%77w0J$xwgFT8uSGSPrvq!p#=ObRUMD@WX_!(V^NSK zKhB7Qo-hv~O{9YA-uDox2?Icc`H=O3`BI^PODxb^c!B`RzA}dDiUAf5M~fFOOa#wa zc34!oG@jk{s$}5nywmzva>s407Tn9rcSEX`@$G}4`gW<+#aJXA5tR(k&g^8p>T&0x z-$en5_soX6w(kiBAKL)3^bD7P4A49|2~O_4OBiZGQwx8^5<(j4zFK?ng+0d?dnBe6 z>reRSHcLb65%DugzJmdBe7oGAu4dmeC?5xyXjpw$aKU)Y7hR5I4d*>&d<7N__ z3Hl+*{X6oAhZxtpg!OPjk~VQU7V_{kx0zt~()i^YT}a)&#)b4)7mAA>&Or4+DFG9F zwtDuleL>>TXSU1Rsq~=?h5u9Iwrj$6W2mL~?A%#5)Of(&#rt8J)ZZDqDMT~F^k6|l<3Bf%qSS`Gt*pBG$G_;YYdZM*{MHPQD@dV#rk$f`)& ziHFO;s@mIH$xn&&j%JH)eXa`rf_ZuGgKo06`L|Slan0G~E+#yI?|Xn}BBdPU&d$Q! zlg$A3h3(D54_RSLy0z3!fSYAO7Y@j$&i4?QxPSNp@J6MdrsJXR(GWQ7!6~Si!j{ik zoRX8mFgvV>@Xv@4##iF8qzn3?UdwpKi+Z+`PsynAi)!g{9_9USw71bm3Th4@yy@T}f$ z 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%0DfLY;d99-{$dxegjB7~ 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 O0000>> { + return SignalDatabase.rawDatabase + .select() + .from(table) + .run() + .readToList { cursor -> + val map: List> = cursor.columnNames.map { column -> + val index = cursor.getColumnIndex(column) + var data: String? = when (cursor.getType(index)) { + Cursor.FIELD_TYPE_BLOB -> Base64.encodeToString(cursor.getBlob(index), 0) + else -> cursor.getString(index) + } + if (table == MessageTable.TABLE_NAME && column == MessageTable.TYPE) { + data = MessageTableTestUtils.typeColumnToString(cursor.getLong(index)) + } + + column to data + } + map + } +} diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/AttachmentTable.java b/app/src/main/java/org/thoughtcrime/securesms/database/AttachmentTable.java index a2d052b574..e7ccf9b1ad 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/AttachmentTable.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/AttachmentTable.java @@ -35,6 +35,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import org.json.JSONArray; import org.json.JSONException; +import org.signal.core.util.CursorExtensionsKt; import org.signal.core.util.CursorUtil; import org.signal.core.util.SQLiteDatabaseExtensionsKt; import org.signal.core.util.SetUtil; @@ -612,7 +613,7 @@ public class AttachmentTable extends DatabaseTable { } /** - * Check if data file is in use by another attachment row with a different hash. Rows with the same data and has + * Check if data file is in use by another attachment row with a different hash. Rows with the same data and hash * will be fixed in a later call to {@link #updateAttachmentAndMatchingHashes(SQLiteDatabase, AttachmentId, String, ContentValues)}. */ private boolean isAttachmentFileUsedByOtherAttachments(@Nullable AttachmentId attachmentId, @NonNull DataInfo dataInfo) { @@ -638,7 +639,7 @@ public class AttachmentTable extends DatabaseTable { database.beginTransaction(); try { - dataInfo = deduplicateAttachment(dataInfo, attachmentId); + dataInfo = deduplicateAttachment(dataInfo, attachmentId, placeholder != null ? placeholder.getTransformProperties() : TransformProperties.empty()); if (oldInfo != null) { updateAttachmentDataHash(database, oldInfo.hash, dataInfo); } @@ -891,7 +892,7 @@ public class AttachmentTable extends DatabaseTable { database.beginTransaction(); try { - dataInfo = deduplicateAttachment(dataInfo, databaseAttachment.getAttachmentId()); + dataInfo = deduplicateAttachment(dataInfo, databaseAttachment.getAttachmentId(), databaseAttachment.getTransformProperties()); ContentValues contentValues = new ContentValues(); contentValues.put(SIZE, dataInfo.length); @@ -1131,7 +1132,7 @@ public class AttachmentTable extends DatabaseTable { { SQLiteDatabase database = databaseHelper.getSignalReadableDatabase(); - try (Cursor cursor = database.query(TABLE_NAME, new String[] { dataType, SIZE, DATA_RANDOM, DATA_HASH }, PART_ID_WHERE, attachmentId.toStrings(), null, null, null)) { + try (Cursor cursor = database.query(TABLE_NAME, new String[] { dataType, SIZE, DATA_RANDOM, DATA_HASH, TRANSFORM_PROPERTIES }, PART_ID_WHERE, attachmentId.toStrings(), null, null, null)) { if (cursor != null && cursor.moveToFirst()) { if (cursor.isNull(cursor.getColumnIndexOrThrow(dataType))) { return null; @@ -1140,7 +1141,8 @@ public class AttachmentTable extends DatabaseTable { return new DataInfo(new File(cursor.getString(cursor.getColumnIndexOrThrow(dataType))), cursor.getLong(cursor.getColumnIndexOrThrow(SIZE)), cursor.getBlob(cursor.getColumnIndexOrThrow(DATA_RANDOM)), - cursor.getString(cursor.getColumnIndexOrThrow(DATA_HASH))); + cursor.getString(cursor.getColumnIndexOrThrow(DATA_HASH)), + TransformProperties.parse(CursorUtil.requireString(cursor, TRANSFORM_PROPERTIES))); } else { return null; } @@ -1171,7 +1173,7 @@ public class AttachmentTable extends DatabaseTable { } /** - * Reads the entire stream and saves to disk. If you need to deduplicate attachments, call {@link #deduplicateAttachment(DataInfo, AttachmentId)} + * Reads the entire stream and saves to disk. If you need to deduplicate attachments, call {@link #deduplicateAttachment(DataInfo, AttachmentId, TransformProperties)} * afterwards and use the {@link DataInfo} returned by it instead. */ private @NonNull DataInfo storeAttachmentStream(@NonNull File destination, @NonNull InputStream in) throws MmsException { @@ -1189,69 +1191,74 @@ public class AttachmentTable extends DatabaseTable { throw new IllegalStateException("Couldn't rename " + tempFile.getPath() + " to " + destination.getPath()); } - return new DataInfo(destination, length, out.first, hash); + return new DataInfo(destination, length, out.first, hash, null); } catch (IOException | NoSuchAlgorithmException e) { throw new MmsException(e); } } - private @NonNull DataInfo deduplicateAttachment(@NonNull DataInfo dataInfo, @Nullable AttachmentId attachmentId) throws MmsException { + private @NonNull DataInfo deduplicateAttachment(@NonNull DataInfo dataInfo, + @Nullable AttachmentId attachmentId, + @NonNull TransformProperties transformProperties) + { SQLiteDatabase db = databaseHelper.getSignalWritableDatabase(); if (!db.inTransaction()) { throw new IllegalStateException("Must be in a transaction!"); } - Optional sharedDataInfo = findDuplicateDataFileInfo(db, dataInfo.hash, attachmentId); - if (sharedDataInfo.isPresent()) { - Log.i(TAG, "[setAttachmentData] Duplicate data file found! " + sharedDataInfo.get().file.getAbsolutePath()); - if (!dataInfo.file.equals(sharedDataInfo.get().file)) { - if (isAttachmentFileUsedByOtherAttachments(attachmentId, dataInfo)) { - Log.i(TAG, "[setAttachmentData] Original file still in use by another attachment with a different hash."); - } else if (dataInfo.file.delete()) { - Log.i(TAG, "[setAttachmentData] Deleted original file. " + dataInfo.file); + List sharedDataInfos = findDuplicateDataFileInfos(db, dataInfo.hash, attachmentId); + for (DataInfo sharedDataInfo : sharedDataInfos) { + if (dataInfo.file.equals(sharedDataInfo.file)) { + continue; + } + + boolean isUsedElsewhere = isAttachmentFileUsedByOtherAttachments(attachmentId, dataInfo); + boolean isSameQuality = transformProperties.sentMediaQuality == sharedDataInfo.transformProperties.sentMediaQuality; + + Log.i(TAG, "[deduplicateAttachment] Potential duplicate data file found. usedElsewhere: " + isUsedElsewhere + " sameQuality: " + isSameQuality + " otherFile: " + sharedDataInfo.file.getAbsolutePath()); + + if (!isSameQuality) { + continue; + } + + if (!isUsedElsewhere) { + if (dataInfo.file.delete()) { + Log.i(TAG, "[deduplicateAttachment] Deleted original file. " + dataInfo.file); } else { - Log.w(TAG, "[setAttachmentData] Original file could not be deleted."); + Log.w(TAG, "[deduplicateAttachment] Original file could not be deleted."); } } - return sharedDataInfo.get(); - } else { - Log.i(TAG, "[setAttachmentData] No matching attachment data found. " + dataInfo.file.getAbsolutePath()); + + return sharedDataInfo; } + Log.i(TAG, "[deduplicateAttachment] No acceptable matching attachment data found. " + dataInfo.file.getAbsolutePath()); return dataInfo; } - private static @NonNull Optional findDuplicateDataFileInfo(@NonNull SQLiteDatabase database, - @NonNull String hash, - @Nullable AttachmentId excludedAttachmentId) + private static @NonNull List findDuplicateDataFileInfos(@NonNull SQLiteDatabase database, + @NonNull String hash, + @Nullable AttachmentId excludedAttachmentId) { if (!database.inTransaction()) { throw new IllegalArgumentException("Must be in a transaction!"); } Pair selectorArgs = buildSharedFileSelectorArgs(hash, excludedAttachmentId); - try (Cursor cursor = database.query(TABLE_NAME, - new String[]{DATA, DATA_RANDOM, SIZE, TRANSFORM_PROPERTIES}, - selectorArgs.first, - selectorArgs.second, - null, - null, - null, - "1")) - { - if (cursor == null || !cursor.moveToFirst()) return Optional.empty(); - - if (cursor.getCount() > 0) { - DataInfo dataInfo = new DataInfo(new File(CursorUtil.requireString(cursor, DATA)), - CursorUtil.requireLong(cursor, SIZE), - CursorUtil.requireBlob(cursor, DATA_RANDOM), - hash); - return Optional.of(dataInfo); - } else { - return Optional.empty(); - } - } + return CursorExtensionsKt.readToList(database.query(TABLE_NAME, + new String[] { DATA, DATA_RANDOM, SIZE, TRANSFORM_PROPERTIES }, + selectorArgs.first, + selectorArgs.second, + null, + null, + null, + null), + cursor -> new DataInfo(new File(CursorUtil.requireString(cursor, DATA)), + CursorUtil.requireLong(cursor, SIZE), + CursorUtil.requireBlob(cursor, DATA_RANDOM), + hash, + TransformProperties.parse(CursorUtil.requireString(cursor, TRANSFORM_PROPERTIES)))); } private static Pair buildSharedFileSelectorArgs(@NonNull String newHash, @@ -1388,27 +1395,31 @@ public class AttachmentTable extends DatabaseTable { if (attachment.getUri() != null) { DataInfo storeDataInfo = storeAttachmentStream(PartAuthority.getAttachmentStream(context, attachment.getUri())); Log.d(TAG, "Wrote part to file: " + storeDataInfo.file.getAbsolutePath()); - dataInfo = deduplicateAttachment(storeDataInfo, attachmentId); + dataInfo = deduplicateAttachment(storeDataInfo, attachmentId, attachment.getTransformProperties()); } Attachment template = attachment; + boolean useTemplateUpload = false; if (dataInfo != null && dataInfo.hash != null) { - Attachment possibleTemplate = findTemplateAttachment(dataInfo.hash); + List possibleTemplates = findTemplateAttachments(dataInfo.hash); - if (possibleTemplate != null) { - Log.i(TAG, "Found a duplicate attachment upon insertion. Using it as a template."); - template = possibleTemplate; + for (Attachment possibleTemplate : possibleTemplates) { + useTemplateUpload = possibleTemplate.getUploadTimestamp() > attachment.getUploadTimestamp() && + possibleTemplate.getTransferState() == TRANSFER_PROGRESS_DONE && + possibleTemplate.getTransformProperties().shouldSkipTransform() && + possibleTemplate.getDigest() != null && + !attachment.getTransformProperties().isVideoEdited() && + possibleTemplate.getTransformProperties().sentMediaQuality == attachment.getTransformProperties().getSentMediaQuality(); + + if (useTemplateUpload) { + Log.i(TAG, "Found a duplicate attachment upon insertion. Using it as a template."); + template = possibleTemplate; + break; + } } } - boolean useTemplateUpload = template.getUploadTimestamp() > attachment.getUploadTimestamp() && - template.getTransferState() == TRANSFER_PROGRESS_DONE && - template.getTransformProperties().shouldSkipTransform() && - template.getDigest() != null && - !attachment.getTransformProperties().isVideoEdited() && - template.getTransformProperties().sentMediaQuality == attachment.getTransformProperties().getSentMediaQuality(); - ContentValues contentValues = new ContentValues(); contentValues.put(MMS_ID, mmsId); contentValues.put(CONTENT_TYPE, template.getContentType()); @@ -1450,7 +1461,7 @@ public class AttachmentTable extends DatabaseTable { contentValues.put(DATA, dataInfo.file.getAbsolutePath()); contentValues.put(SIZE, dataInfo.length); contentValues.put(DATA_RANDOM, dataInfo.random); - if (attachment.getTransformProperties().isVideoEdited() || attachment.getTransformProperties().sentMediaQuality != template.getTransformProperties().getSentMediaQuality()) { + if (attachment.getTransformProperties().isVideoEdited()) { contentValues.putNull(DATA_HASH); } else { contentValues.put(DATA_HASH, dataInfo.hash); @@ -1478,17 +1489,11 @@ public class AttachmentTable extends DatabaseTable { return attachmentId; } - private @Nullable DatabaseAttachment findTemplateAttachment(@NonNull String dataHash) { + private @NonNull List findTemplateAttachments(@NonNull String dataHash) { String selection = DATA_HASH + " = ?"; String[] args = new String[] { dataHash }; - try (Cursor cursor = databaseHelper.getSignalWritableDatabase().query(TABLE_NAME, null, selection, args, null, null, null)) { - if (cursor != null && cursor.moveToFirst()) { - return getAttachments(cursor).get(0); - } - } - - return null; + return CursorExtensionsKt.readToList(databaseHelper.getSignalReadableDatabase().query(TABLE_NAME, null, selection, args, null, null, null), this::getAttachment); } @WorkerThread @@ -1536,16 +1541,18 @@ public class AttachmentTable extends DatabaseTable { @VisibleForTesting static class DataInfo { - final File file; - final long length; - final byte[] random; - final String hash; + final File file; + final long length; + final byte[] random; + final String hash; + final TransformProperties transformProperties; - private DataInfo(File file, long length, byte[] random, String hash) { - this.file = file; - this.length = length; - this.random = random; - this.hash = hash; + private DataInfo(File file, long length, byte[] random, String hash, TransformProperties transformProperties) { + this.file = file; + this.length = length; + this.random = random; + this.hash = hash; + this.transformProperties = transformProperties; } @Override @@ -1556,12 +1563,13 @@ public class AttachmentTable extends DatabaseTable { return length == dataInfo.length && Objects.equals(file, dataInfo.file) && Arrays.equals(random, dataInfo.random) && - Objects.equals(hash, dataInfo.hash); + Objects.equals(hash, dataInfo.hash) && + Objects.equals(transformProperties, dataInfo.transformProperties); } @Override public int hashCode() { - int result = Objects.hash(file, length, hash); + int result = Objects.hash(file, length, hash, transformProperties); result = 31 * result + Arrays.hashCode(random); return result; } diff --git a/donations/lib/src/main/java/org/signal/donations/StripeApi.kt b/donations/lib/src/main/java/org/signal/donations/StripeApi.kt index 74365a33a1..887c4bb290 100644 --- a/donations/lib/src/main/java/org/signal/donations/StripeApi.kt +++ b/donations/lib/src/main/java/org/signal/donations/StripeApi.kt @@ -14,7 +14,6 @@ import okhttp3.FormBody import okhttp3.OkHttpClient import okhttp3.Request import okhttp3.Response -import okio.ByteString import okio.ByteString.Companion.encodeUtf8 import org.json.JSONObject import org.signal.core.util.logging.Log