From 5cdf5499d076c1139e2d57014e15bf16c4589210 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Mon, 6 Aug 2018 14:42:22 -0400 Subject: [PATCH] Clean up shortcut code. --- AndroidManifest.xml | 6 +- res/mipmap-hdpi/ic_group_shortcut.png | Bin 0 -> 4415 bytes res/mipmap-hdpi/ic_person_shortcut.png | Bin 0 -> 4070 bytes res/mipmap-mdpi/ic_group_shortcut.png | Bin 0 -> 2418 bytes res/mipmap-mdpi/ic_person_shortcut.png | Bin 0 -> 2228 bytes res/mipmap-xhdpi/ic_group_shortcut.png | Bin 0 -> 5677 bytes res/mipmap-xhdpi/ic_person_shortcut.png | Bin 0 -> 5349 bytes res/mipmap-xxhdpi/ic_group_shortcut.png | Bin 0 -> 10150 bytes res/mipmap-xxhdpi/ic_person_shortcut.png | Bin 0 -> 9553 bytes res/mipmap-xxxhdpi/ic_group_shortcut.png | Bin 0 -> 13750 bytes res/mipmap-xxxhdpi/ic_person_shortcut.png | Bin 0 -> 13165 bytes res/values/strings.xml | 2 +- .../securesms/ConversationActivity.java | 82 +++++++++--------- .../securesms/ConversationFragment.java | 2 +- .../securesms/ShortcutLauncherActivity.java | 42 +++++++++ .../securesms/util/CommunicationActions.java | 19 +++- 16 files changed, 105 insertions(+), 48 deletions(-) create mode 100644 res/mipmap-hdpi/ic_group_shortcut.png create mode 100644 res/mipmap-hdpi/ic_person_shortcut.png create mode 100644 res/mipmap-mdpi/ic_group_shortcut.png create mode 100644 res/mipmap-mdpi/ic_person_shortcut.png create mode 100644 res/mipmap-xhdpi/ic_group_shortcut.png create mode 100644 res/mipmap-xhdpi/ic_person_shortcut.png create mode 100644 res/mipmap-xxhdpi/ic_group_shortcut.png create mode 100644 res/mipmap-xxhdpi/ic_person_shortcut.png create mode 100644 res/mipmap-xxxhdpi/ic_group_shortcut.png create mode 100644 res/mipmap-xxxhdpi/ic_person_shortcut.png create mode 100644 src/org/thoughtcrime/securesms/ShortcutLauncherActivity.java diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 4aeca16b2f..cdaa85d8e0 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -214,7 +214,6 @@ android:windowSoftInputMode="stateUnchanged" android:launchMode="singleTask" android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize" - android:exported="true" android:parentActivityName=".ConversationListActivity"> + + diff --git a/res/mipmap-hdpi/ic_group_shortcut.png b/res/mipmap-hdpi/ic_group_shortcut.png new file mode 100644 index 0000000000000000000000000000000000000000..aeb6937eb8df522671903163c27a6fb333c67559 GIT binary patch literal 4415 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 FV1nc|asB`R literal 0 HcmV?d00001 diff --git a/res/mipmap-hdpi/ic_person_shortcut.png b/res/mipmap-hdpi/ic_person_shortcut.png new file mode 100644 index 0000000000000000000000000000000000000000..568ad9cb3e29fa27e13fc551c84ea6ab8f1c47d3 GIT binary patch literal 4070 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 YKj6q3qr}bL?*IS*07*qoM6N<$g3sT-ivR!s literal 0 HcmV?d00001 diff --git a/res/mipmap-mdpi/ic_group_shortcut.png b/res/mipmap-mdpi/ic_group_shortcut.png new file mode 100644 index 0000000000000000000000000000000000000000..d40965d067769974b75c2c3cbb4ae6951fa33d43 GIT binary patch literal 2418 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 T7PyvH00000NkvXXu0mjfnh)2{ literal 0 HcmV?d00001 diff --git a/res/mipmap-xhdpi/ic_person_shortcut.png b/res/mipmap-xhdpi/ic_person_shortcut.png new file mode 100644 index 0000000000000000000000000000000000000000..f227ebfa39b919fadbd8e2b89b37c32bb85bda2d GIT binary patch literal 5349 zcmV&G$#MG1@@TwokzTo@f4 zX*L@nF@Oys7&-{b&P-#71_)MVt!$N4lG1CsxwDHsaGsJ9mJbbtUfOK)1nwowi5{c3U z0>LOAk2ewkMiK;}1OPcf5Hf-w)#9p!{4-8ZTaxw!+!(- zs|^r;4B>Sjp$33+ixm@m@DE%Jr&!4wiEf!0KPN(~?oSd95&Ye4F4z^YV69A&9 zs7SbM*|LWu63KFcAa3?2Cw=XUB*`CiI^CwVYuE02`|Y>&!2%)}08sY5t*z}oxm^AR zK@jLn!?uwmiH^H4Dk`cB04#w9BG3SEYHMr9#>K_G#pQBy!j|hSgqh9eW3{!lD@TkN zamfZmK*$di0K~R!+amMx^WWt2`A+}0&tycR&R8-V9fBFW00f7B*^?LmqLZNV3KsXR4opyC~y(N)I)&PLX9}e0d01&fh z&lZ%HmcB0#2>uu*dn_o z(O9x##fnF^Y}umo1q5FJAV!WHDY$(3@@|1ZkQ-+F2?{v|gW-#jBS#jf)oQOb!CL_E zIet%1&$}X#=&_*8HcSWU?(Y6bEEYd&^9h*X^Qd_P0OfEyJ3H4&B$Agr8toT)b4N$V zpX74+dT$)FHvsVJ>+2W9$H(us+aURcve&I?k#%)-4<#lh?gapk5_+Bjz&(HdeEPU? z<4)3>A#RcPPjHjfYSkV;etb%Hc6OBw1h;1G2>`^ZRjXvh#l^>eDJxvJIOM@iCX?yh zqD6~x_Uze%kr5{HTsC(Bpqy@3SJ&pq$jB#M_WDnJgHES=S1OgR004}P=)Gx&9B~%_ z?&ZsuCue46mJ)9Jffzi<~X0vpWuIzUH53VlJLFS1e?F_hAYix zurTC``Y$2_1aJs|o1(bz!tIeTHAMh?t~=9nJ-(-R7>&lWiHV8X&CShSt`=$TP{?m; zYI-szCI%C1L2q3~5?=YH6TZG?9KiTq?Iy4y!WN9#z5@vaLBP}$KD;qQ3JOtZc01K- z^>fL|$sYoM(U~c71pp^EH&?cI@7^mM4ks?y+}Ctj;i-dKxYBH4HKr8rsn!ny)99ut zxbXg5IixCrZ#69zOWlkaGsc#em$y5Mid+F8sH>}cDj^}^KZDKuwjL`ywqFZX&Aq`y zKVun^kG7sg1DLcX%eb(8fdXR1!Pf+pO0_H{CFOl*4%rz1oJo@=Nh&HTF7o;Ov|s{& zJY9XX6At`{fdqRf(QEq$YCx|`9@wz2=_3U2-dtJGowLbgx*ih~bE{UX?R2CC&H&)6 zRH}!Ql9E0OCi8KuW7m!F{9m!qjg9$^ZGUg&BGV_>6a)Y^5mm zM?Gwk&+KLC_y|}zMH1{OK|@2s#)O1~A^_;IUl*_efaWLCXf$5t^Z6;krgquk4mf-j zLuY$uN&+~Hdiq6ufPyf(K*;V$7QiR>Q3cgOZAPQSTzB_$=}b8~aQ z4=Rs2R+Pn5< z$Q}U7{Is{X?~%*p_lAPfC-!UMTNPG(^tRrJ$1b#VKv;itG+6raC%=p3!=B$OLNP69 zX=yp2R4Nw(z<^Y>JpeqpTrO>GZN0|fa6&@qy5liYd?*ov*?s=m{uyIys z>cy;9Yr9-7PuJ;mn40Kwa`pfScJACcv7n%!A|zr007tGG;Kjq8z4qNjn!%CTVPii2 z?6tck@Zgw;P)!X!`Q(%7k3RY+`qsX^0ww^I{l9qeV!_z4V?PcRl|3dB?%mM_nl4dI*M;`}%fkHrUk)IbEjoJeW)b}R-BQY`g{rAkstqYADX%kE z#r6P*o0^(FiiwH&eW-}UaohD)xNkRV0m}Wre19J(>_0Ly4D1b@7IEnx&38tV(dhnP4aPKz>&m2$Zp6LWo$5EB5*QptLHdM=7YqNI?Ei;aLI*9@?( zTn8;Zy;Xm%Vttx!+^8?SQvwS@kb-u^yYBApTCrG+`|54$Jd|-*&+f+!yXolQJB1|C4BPa6|s3sS>JEBAlAhXlxY8+j&msaRV`*HuQ5^;5>>5cXzjLArYB0ofswCTJA;=~~~w;@4pXJ==fOeVt+pH&0U2`jW( z?YAdCs=O_xI z)&VM&>cga@q`YvR$WWzCrBaooq@+A;TZmB^QTv6Mw6d~tbw)-8mREM0-(4i&w+;h*CP;ejfK0mcu;6lBLiub=$o4{nZ@N%>o zrhd*sG!{tTmdJaL70vfZ`iP5%BoeX{)!dG z!Dtqe1a*fMKEJGogFhLdvC9HxCua?vRXwoL%ep@z`Y}dkbjE^uy~gnq!k

g(YKDWq11kWNF-8fG@45ii6o$F0j&A|@+SlAxom)ojV3Tz*eW{*vXm_k zQOc9kY3iMe5old7!DwPuq21Aph{Qzo53|IClmFmw)Nl5{D zzYj9{t7}Gh?@TvbZDmwHxKKAwneU0FV70_Ew?)Fgj240@K<4SjjT_&L7%}1z0BCWv zBZe%%P*is6)TtM5zy0=?{cVEkJ1wxbTn80Do2X59Hk-{Hb3k<>3o(wKA6Plv|Ddz` zQTlEh&WG1$NCT3@J8|N~>rd}m={;eLPmflCc0c>Yi) zH0UfWn~Q_F>qvt8Op62Q@I>t9*Z5Y?Au{g z1XULV0K-~ZT24eqNBd=801Iv(F42Of+r5+gj?9fqd+*=|XPU+~mRv-@_B;iQiS^Hm zzFJyZYL!am-2kAm)dlt0Ue?MuOi7$Sf4*q^`0==Z=~F{z`-c)OoUQLKwsI7$^pyd5 zU~UFDTQ_&g*d*Uxvoe%iC|wxkmyq@J>C;;$O`23}Z~t*j*4j|?11ndqylumV4PSD( zz8y6@r8dGJztFPoWI2meSbc#rv*Q71j(m%~ro1;t2D3-`mYKI$EadX#%ja+2yctXV z>8;4Vq1XVxZ6w@89i~>R4q}w4K6&fOGoYC28RyUgKCO` zTSQQt<69+NZEfxUCnY7_4*>X1YqzSS>2Or>*=L_Ee(=Eu-}1#7ul%Y5%4}!7T$u}d zl%3jcCl0}1(a~M0eE2li``uY|zPonqDqOT^(N0DRdVnKzwA`hlA*E6oS6Ny4wNk0{ z+8HlD+yMuEGT2ucIy}Vhmc+BzdVfbp*x%$NKH#YuZ<|J=sZCE$zqhTetF8 z!`iq3*pW@7jO&XDvRbY1`RAX%ws7G>EOMr$f8enn8(pqap12&83WY*tRaI3vjqR z0*}<-{WINgQa$+4ol_uLNOf0g9p!=gw8;Yr8WY2Vm+$iIRHa_8x2##S<`0`TZNjuO zNKA49!aI+exKf! zLW6`6kt{Veb@(^me6u?(Ep7CW<4zC=zJC4skJF}2TdY#4(D7o{bI`e9dotY70DJ~l z$C#v3EM2;E+{TR?cPSJKaS-M-WQJ&KYwLdQx#t$|*s%lu-T>`*ohQKDG(of$U|5Pw zkN))2Pan$9&tESP_%CHUWH`-2sL^PIk3ar+%~MZ3^|_7tm~!yzJL6~&Ff%2?(Dcxu zLxnjxIgjvo{z=&mRRByT6C6Ey^v|$&=gVr05zeaqGH43 z$&=@Cx#3j?9xN~|77Ls>aiVPc^y#nKBp*Xgr%{i$K7jcgiaajR zD=Q2C0$w2I8g_k}&1Pi&@w~je!p6o%ta3o+W3I<($jLSlZvbFAWz+;kWMpJ?Sy|aj zQ>RXS;Fs>0(cvCHe!OJv+_}XjlL@08G&}hE0hE0A_FNfAcnbg%1Po8nCn&J;Yu2n; zOCus8eCaprB%UUyyStk_eE9Gu3l=QEmu{fcBlBs=_n7(au7sU21R0ItDQW_49Vs?% z-aIcqKmX;}*w|mxI-#+#QMY5qj@OqjUw+WWe2jLG`Cdsr%~XF#D$^%m%0j+y;lj*U zUwySWJv}{rs7FW`=~Pu!RlV}cD{J=c+lOyPN2$j+pLV!jNxnY;pf!mOQ4s`LY;5eX z?c2Anm^g7_o?I^X2hc$`OzfJ)+q`81^@@cbT#c4&<{xYe7K=1tJ=D{y7n)> z{Br9HFT7A{GMP}?@xmwv6Kfb|y0yY}Yd{ZjLGJd)G;Optpo2!UBpEYiOw7uaD;G?e zGUb89#KicBi12uYKu=E(GQOdrqGIoBuf4YK>eZ`gZjkACp{>Wf4(9ZIviJU62e=Ce ztqqt%LbHS#A&!WM5U*ReE@$Se z*fbF6sL>-cFX6m-^O9%Gm@#3@m@&7erlyXMii%RA;}!~q;AxrzB^;fpUayC?wl+;o zP0fYM%E}90fBp5jva+(DZT1`)O<%N)M~O!}?{{+(3KQf^BbZu&fS`8J7itTC{`~pL zSy@@BiHV8Hv9YnqadB~p5fKpzp-?Cm2n2Xh8@5KHQD-z7y9@?HS5Hq*I~GLM*Vn7n zYPIU(#fvp%Wo2rcDM99O(*V%_r|+Ym^L8FyKNn0BAWS7iS#97q@&6AB82H|k-)aJZs6k4yQo7!zCnl)Iy7Q#3 zHdK)$pWtY$r++JsL5TQn*&0>jRC#BM{;IeSm-F$~k1Mp&!>U4ygOd$i(%PXu*f%U}jHZ?_79y+-?247Z;_R zLs*0?yBy|>%edi-zvUmVcdplZovoFJOPh-%DbDFrWrt7I9;v(u*leN z;Tj~Ky&f^Rjid#MAn(TqA%24YT(C+E%K4F3j0YN;J@ByAW0~g^5)vxP%geij0|hxl zewXATz&fpl@it+&wEpn$@RUw7KZid+lkDDryp6tX`aZPl=1(89GBe+^u(BTcy1BVc zeJ?}| zfBLsO&PyTeF@yxl6MW~_>07p*2$Dsx?FmQCdwtrI$S=@7fB?5onqrEsuhWj3CesUH z*#(DfI;SYt+YfvuG3vbECEHPy?Q?CCd)Bu{0d096&M7qoKKphGIIUdiGC@Y~`~zDb z=)YSU3KCavlp!+7}9u zoT`S4E)iD4meXQd<2by2cz*Zpol?0`7)979P? z&cVRHAOYVHRr^@^xj>!))6nV(9|!&WsBaki94 zL3F^zoH5eT{mK&a`&7a!_pKHrdnDp_b9_M}>U|Dh{Z=$(aJ%`MLS!pGk15WueC=UY zLxP=B-2d*GMThEH9*cbfgoBxN|8H+}E$H>RQWiSRCFo7gTSPopIPdWKxM1Y0X58*u z|Al6Td^QLFi4BFaJBe1|+s(o3o;z^$C39NW^`>v|z?R%iO1wT*N`-;{z9E&3-;w0= zj;9nOohdV@oVTbZZXc1p6%~nq_bu0d9DRMc?L2sXxNhB4#1TT1tXqnSjs16b+Isd0 z)^EW#E2mDA*@`O-muXloF7B~E)nqvsUqX%qRRF=jlaZKYZ47GP!hhJd`Kcczz&q3n z+y80toZTJ&Zm^Hizk&9b8eix}B`ce7=q+*?05lr!2k-)o1#RCc4l z$-RHBuPLof#7G!mnThqFSFvinGJVFfH%a61@_rzgz@p&C-}{2DTYYhO(TI)nZ$7-H z#HuBYdJX32mj&Gei^8ChC3+t(c17a{QpBO4U>5_uwXO1Zy8XwOjz{9JV*DqKh1Wo%+7O14< z<>%!!v|eXLM$m_KyBsA*yb!N8yYIO-?8`KO6whZ=IDIP2I$umUIV+a|xTct$?c&na z*T4DuyV;!xC}Pyx^L%^fdTkQ}&~zRvKYzVJ>!*{cLx-6vyS-C(?XLG+5YrC-`}v!b zRVw)?%M@)V0@p)$>XpO8xsv3)gV~}Wyx4w|Uk=kI%LPn1({_PDThWYJ$|@?o=h!vn z-`uH=;Hjk)6=8Jz{GRdI+3P$L?9Hq#Y)EeI?rHVT>w$8Cfq@0}h3)mAo`<}hot+zQ zZf+%iaf#p7C0nP&wrIo{k*&zX+wo_c zvNmazKUrB=R{r0`TWuYk(eh2{1rW@X>G@{WSwz=sZnLdB6ma}kQWe6`yf zXw=^x0l**dI$9{VMS_=dHze3H0#}%i`AWDqgTGqCs-81eE=fonxTyQ#u~$pid|fFe;gyjmHo=GN)vVM6pZgM%#yFDqf# z=dwDu7%+&8u?RB^(OB_)OBAUXl3#^x&jlOi&mFs5yk)F>uGfEG&U032Er^$-F*F(z zr#9T`^X46R8=Y2fezR7#^(YZ-@xbqh=Z%ex?E%%^v2o#TTES=cqst_Xb#oM*KvUDa z7>RtwU{`i4hh93ECPCTUmxzS#;@2vRs(A$5LbhJdng_q`{ysTdy<#t+$RYb?Z~BdP z`iv5o2RDt`g|Z(LEYp9o+DH^05kU_EfwMCHN~ij2xMu@cJ92xndYjeR`HI1KOuwzl zjyQQUhjw>`@llwI;=t%TqbRY!3&mA2F`*bUvU7*5q4QdGV43XCdPW72TBNG1nM3t zM>QTyWJ^deGced>(YZ)50$mME^+G0igjjn+*%!S_!x$;>P9*LmP+yYB-zH^$2 z@`;h)^1YOX2JyVQ!$O;chY9A{lQx(@xO8H}nop%MPQ3J5rVSLb!_xnr>+AS8{<75; z&!ZX=hIT!W^aZ_8(2Kuuk$Pr_Yf6Z@#7&VwPu})l26hhjy!-*@&l$3vWBW|Zm{6TU zF_ux(P6J8*8Z;)vECMv%(f82&Iq8-nKsv|-?t>| zt|PX}e*Uxy1N4we1rHD1%Ul?}3k%txPA#z#_*4HknugET!@-1jcTL&kqSFCm+NUW; z<~tJ>lK(RMEs82P7=%Bpx9RBM(utpKEBoR=2niYPA0J=IKwSDLVzc!SbsbP1Etc)X z50a~8+iZ$~+6H4JNiZ61^ig%UMPwcvLOKhGdox-S) zb%KzI&zFw+9)|n-DfViT8^R7aIXbR@%tXM$$3Nrtm*%%~1_=Dxb7v^&6kzm6QzppP zrXz=z2RL|8!V4o}qArCq8YT|eZ}D#WXj^H>dW z7N!cQ!l5uTjSmeGpO8UqZPDN~Y}V9#t5SMjNpb-rNm zM|MQ_g;u4`1p50C1Vz7gRG6`y3WJSktLM>zg1NbQlXdLA6n`HvS@5}t)^`CX$Y27M z84fwQ=xR#avN!nHA&Gt37WDD8y{EgXlmwR}sfp7i#py#rDWVZbS z-(gii3I!R}SPlQ=|FH1eW;Sf;|BE_zK7ZQpi9qi(V1jTo9&Pndu&WBa)vgck{)&mw z|1EzBN-0(y94gp4Z0?WzFEHmMNU!UWF(vpyem+Ks2qRCU* z(`y?jC;rN?j;)7b8)f|yun$SnpZVv(^>PQIh}cg^kL0DVF8<`P`MAMi{J?cxs`^APbmB^UO+ zvil7m=PQF5ghLk0MN&9;u|1f51c-YTpPYe78Qpvv$NAhn*OSXK%LfoECGEb~J^daY zObc&`ED>AfZ*cj+x?%0T{Z(}d)ctR^Sb!V zuXnZ47$Ci<^J+Mh{8G`g_0G;#rDO&T;ZmKO4o<^)I}(Z!&E9(v;UV@#8Ku86f;6Y$ zD3_3_-{9;QEGg&&E-dvShT-|ICoes_<(-?v@?XiO<1Y|X}NWy;~WI$41Nad5JndC*`!((!C)(op7`k?Xz1 zO|dzL`dh$QP$fX#0#mn}1_3R8YXY;&-BnW{0ys>H9S6k_0hASKhb!s*CC4~_+A2mC z`f(LvoDDvuT#NNnu9ta>^m8G>`V|_0)DG zdzMJoh4bRIe7td3O`4k+9c?8fCcfh{z>+mG2YeAfX=&*ep&CoiWOhP zj$Ma?KP7Smke!k%%@Sm$iY}#J6pr0{2;Q+iR~6`H3CQBPk{aT5AE2S1;NVwSo`$1EHfO0r)6+Y`hEs`2jCR1X;YrWq9tB*D~uGap5m~Drv^%&r$BQ|W);3BC%fMy zDNvG_AmxxQ8>@Z00CadXKnDSbJj3x#V5zWRp{#<)Q6JwXy}Y8?rVT=}_UL{_l@Hq3 zR&TJ|3P9r8aEPP#bww>+>FK6ca)a6RNFlMYtyDi)iXI2q=3n&!BtP!#b?0}_jTwQo z)WWA~Gl=uTA~*<)vokV$*m!u{YLZZR&ybZhG}fm89pU?D!nh=V|GHq^z21W`Ug9i? zn&SrLnsnU_cEe+U)Z816#pBJRDvL0>60RFvl5$1*uH-?Awcg_XU82&%?0}i#AhIVa zfs{^j&Kf@F&!VE&sRpN2!KS+q7j6Q%^d|ta(ObOE#AjC+rxqR*_ub;)CU)&M_c8f@ zwC0ET{Vi-(z23n|?vmd~e8J~>Q1l7L7yecMb%KY`N^ZY@6NA6a3tlMcAP(m7`VJOp zj+@?CtOG;IvZo38I4--v*bfO*unZip!{$cj`h==v7NUG}E})(Mdm5pq4T(@^ zXH!2%30Zm55KbiYO-OSo-Y&i`v!U`HB<8$cJaTv?isb0%+BZO2x+k4kr|@Y2Wv>`3 zn1=wH&hOv2pb?u??6c~!KT=JA!&wmS1e6D<51&gWw3gJ;II1d36`y)JY5!a@yFxZ zYLzsO{v2OCO&cCc*cyH$ZZzO^V8$jSyb3Te4VlwWpk&?gvMhZ!MWuH*WyG8p42HEt z(2#~1DQ|=YqSgAXT;!(v=OC)D`4czWp$At5=pJS}&_v!ovXGZr5fKua`rZEVVsu)n zf@{3aL3I{@;%|3nqULL4-3ck3QQkSvidq%_EpV1Dk#vEz!Ws44lsdH zllRuXid=KCsW)0v_c>}QVri`AFWkB`P23tBzi}v%@hNYE1zUY)F63`G_J6hqy}m5l z&lak!w)@?x$!oR`r`y$(57I)RJ-1O*f$8fNCasG;Sdy9}PMBl-NqO<2nO7C;90@F8 zZu^lyDNan7V)A%+ zd2ca^x!z0J*f7}C6{qY*I2p*-GY8$BZxTITAKfM?()A$ew-Wp&{C9i+`|@vNe>Bj>v${n!%d~Rwhj@Um zXQgTT0$IlS`~#S5J)bu@H$5&P;q2w%sM7h1azTjaL2${3z~Q;BI+=8}S1ImR^yQdH zcGnm~4Us7HH@dlx30qd%n$G)V6CGkCayO+`^o~5WG)b}P0`u9ES=wFyPL4+-_(;|4 zf#UmBqEqyui+ZD0Jm*B&d(W5|hgZyh1I7#s zRsmQdoy?x*u2RTwAy-MTenhv$^0-wgGst;9#+A*W}x6u^PTr%FbkC*(?5^h#aj92LkKoZW&MacZvyia{o+Y@3+MlT4&7YMCAF>!(eiN4 zpgk}(M;|W|#Rs-G6({N2gs-Q^aPF4l?m3>e+`UJ=78MD`kKtamg25xBqw~oOYNRdh zdlMcF^cXzwIui(UVTlOlEoha1dFig>;c*3upXs-#PbnJR99{pwXm8OvMG9SzQ>xJ4 zVZUin-V}6~vV@;93wrjf0gPZB5U8BO<9(9Y1%F{5&`a}mqU4N!7sRFnJUws{N^hPc zC+j5BrV2iEOkYcnmLM;p!Vq0uWh*ikMFvauNHYAALD<}B{dhRULpalXwZX|9=um=! zab+XXJlH#9nL)TwP^XCmN-<&o>%)1Y(6F!*i@54&t`DgCGPc#17OZ9Np9G-D(ouOr z6fiK3*5O+g!&N~ybU*lF!0TQBItE7PmAYsc=bYeMjT7#@*9!GI99-PZP9QO9%+Jp^ ztBx}8?LTn48&M3OPjR_2e(O`6GB5Op>TH=96u!3i`Sa&jEE1lb%%jE1bwNYPayeml z5EQ-aO1!$Sug_K?p8P&q7FsQYPZz`Wp`6Q-wZstqZ8R9TEim@YnJ1S1+j^8*+S}?P zyz+SmR%}YqyMv)5+Rl2qjw%y(kVOplWK&bq5MW$7W1*tjTb2=qLmlxISU>COPRCj; zT=#rC^f199A~x6@3;E2kGxfEoJDFaJDJ03Yj?)gPC0)pm;N!be zG*P;T#Orj%87L8mJH;O9P`XUN`~k|x2N7ItRiVx80zkTE&G)EWu)%TJEu#80cK+6K zEQmb`Bqc8`DvAIP@1OkTOX2nYv}LI#Q=J+~&0Ni+SCOV<QD`vtX!FXtJaPVv_gV)cf-hrTd@E6kQ%m!0%>LO4~ynyBsDE#>ou{$h~ z3h&l&#-mXm*@ERaKU)ppa5pWMRdzgNWCI7gO+Z+_KkYtOXc16{cSn_-rhK*&C89Pr8^Ll+x=*8wUPG#_M(ZTQ4Legytj1jxrASAEF&`z_h>5_P-oH zPGL3JViw)!lRcH0K-g{@t>pkobI8uXZTFNyX=pYhaB1b)F0ZdW+wo^f2Yv|Gr^(65 ztpN1>E1k<+IxlIqY9T2#Ral=0gd6c~t=q6b^YJ5)h8V7Q1ejf4S(%~N%;DaiP2@^i zThsq|<7#mP7~gFI5)#>OP3YcdC2tuU(68JH7c%L108Q=zkfBJ#$HW}c;Jhc4_HyM1 z{B!W(!}U>Gp+>g&>;829GDd%f#|*ogz7RD2iUro)$!sd#4-3Bt01olY zaNjj?!aJ&!0G^szQBm=2oAo!Jamgpnj;)7(c)~a z-TmR_L}XxeROPr~?2u^G&J`$@lW2U#8w@gm<5`xCL`iN7&v)!Chlj`(`QYl2QZ>KN zxi3%uCX4z920ED1M*pO~6SFAJ%ai{8<;&$ZV9e_m6c&CVw$=SM>?W7lE%OE@7O9Xb zR4N6*$Dj4+k0ChoJeVoS)^%tUi@w=ElGvqms3+wxZgR1i_#qUVoSb~7>q_;74y`|R zUO$cd!jZsy>@k;#b~=`6M6|c3=Ls;)7J-#MK&^hu258&8_eA}KV3-N8LNos+B_#eW zlp96JZ_v1k|DcF0^!=y-N@}8kyfcok^8ta7&HtYT=;KMg1-j>DKv6YO3k$b2Mn$1# zJDvP!_Ecs~NlA$WAmfJ_a6M#XY|61xLu&dXV-(6AQGu|*Ea+z(@HNeDshHCmfW%Gr z06P##yxeX7`4cZcXrWl3Ed_WQ{eMT(IR5}WJ0{^oZ;Mn_MSBe+G7lJcQ?}_h4LSzK zm6EEe@dA($nSMO_RWWP*APg~LNm2GY{oTAnWa_<{+14fs6#E0#w2xy$(~_YVVsI6O zMFw|&hOL#=&(~7DGKPVHfp}CDl&TLaqK_I%y)BknT1mS=pd>N&UC?JCMN%7f+Ow*Nf5kRwIog#I5 z|GUkoRpJdPMw*Wu?!?~YxdsWAz1YF%}s;C8dxR39@3fLp<`&M40!1$#@gC5slXj)Ru&gitKh3L(o{E)!&BP2 zPzxM=4u*lX9UUFd0bfKOz}W4Sjg9xwMn5wK-^BcSdh$O3v>@L0_O@51c)-I)f1f|W z*wBhX%-3TSSX{5PloZ@`ES+_ljq2F!K|B}`DED08$XdZQd?U+M^xKXT6viTdpOT?e7RWh8Qw|wLfkEa&x>+*S0F| zz)ulW1R518*cXS75Inpse*2l9j6hT?zz&7xrF3=%wUgKAQ%Q1v#Bav>2x)iSmfyve zc&d6?b?$6WOi77&p@1i~u;y+bRY%YWfP<-VLSLZpbS0IQoHipt%mM;pRT&Px~sDC$P3VNI5Bf@*a#!yzS$?HV`%A3vDU%vIHn{#Ip}Ze%^KuqLSSUh|^}!XhG%FH}KKu6D~c z)~&U*wMzP2h-e)sF2L-{M&cXFsC%y_x0DA$bH`^oYN$mVd8;Hyu5+-j53%jM2mKF} zmexo?UcLbv1H-XElS!5*W6W9zKNM^*Iyy4q;p5{&0?Yt-IoR0j)&onCE#`AcXM-e@ zxDgwSypHNJm9NV7%NIGGS8Uq2d(5UJ_bqJ)?T-8y5hk5zXzqu_3OFErH5c={A)jjV z`NtRlxXFOo1d>rWG#aC^`>IUuMhYkw=E;ePm-YW=1=eGUIM+H{Hlhpl*ms^1>d;6;Pn$#KQdy8HdjZE+xuoMYu-oN@9xCE6uu7vbB$NJr?? z)6*(oKV=wH7&p5fFI5{YFE87L(&C`Foc~E5O(eEvu+!9S{@mmMBZsLSC{S~E%Z5c< zNK4{ANBeUEb%4`oH{CNkIXT%oIjM1YaBvVZ%7BZDYYxbXgdr;)Dgca#V*B0v6(*Yi zSQ>bCHY{(DEt^k0@@R33lh2>COOiTia?I;VwSp#)$zL## z`&zaKX-FjFy+5Or;hlOP=BB{TA7a@)M8@lk+v*4g_0EP|7?*oE4gMsU33{3ivVf2G z!3?ws9a_@S=tKRNsVeGYi-4m;R~=mh?sXy!L#e$A$1NZ`A_)s)en=k?x;Hie(d4A( zMWI5s*Uy9CiPILG*l<_o$Gt0_8+8-toav~|-B=sWP!<7l$xvp;HQ5nSc@;$KYN}ye z!6SBj&I}H{R|oY&3#Pk20O7^u^YBklw85#y?RCl;dZF&4?($=zFWxtU1C6vx!g bU*XycU)-24r5u6zJCKr`x@?8?`_TUYvNucV literal 0 HcmV?d00001 diff --git a/res/mipmap-xxhdpi/ic_person_shortcut.png b/res/mipmap-xxhdpi/ic_person_shortcut.png new file mode 100644 index 0000000000000000000000000000000000000000..b84d485c52ab58141b501f3388e9c66aa5b469d5 GIT binary patch literal 9553 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 literal 0 HcmV?d00001 diff --git a/res/mipmap-xxxhdpi/ic_group_shortcut.png b/res/mipmap-xxxhdpi/ic_group_shortcut.png new file mode 100644 index 0000000000000000000000000000000000000000..2c98a54a193b2640fd3f0483e630a70e19d7ed45 GIT binary patch literal 13750 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 Ze28T#c!SE46MP>FP>@lTu8=eh`Val&j+6iZ literal 0 HcmV?d00001 diff --git a/res/mipmap-xxxhdpi/ic_person_shortcut.png b/res/mipmap-xxxhdpi/ic_person_shortcut.png new file mode 100644 index 0000000000000000000000000000000000000000..a0e0212d0e55d7cfbe1a95c6c22cf8cfb8e3ec72 GIT binary patch literal 13165 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 literal 0 HcmV?d00001 diff --git a/res/values/strings.xml b/res/values/strings.xml index f9f8c7bca2..1eeed6991f 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -1232,6 +1232,7 @@ Leave group All media Conversation settings + Add to home screen Expand popup @@ -1390,7 +1391,6 @@ Signal is locked TAP TO UNLOCK Reminder: - Add to home screen About diff --git a/src/org/thoughtcrime/securesms/ConversationActivity.java b/src/org/thoughtcrime/securesms/ConversationActivity.java index 771f989b2e..8e1870836e 100644 --- a/src/org/thoughtcrime/securesms/ConversationActivity.java +++ b/src/org/thoughtcrime/securesms/ConversationActivity.java @@ -26,6 +26,7 @@ import android.content.Intent; import android.content.IntentFilter; import android.content.res.Configuration; import android.content.res.TypedArray; +import android.graphics.BitmapFactory; import android.graphics.Color; import android.graphics.PorterDuff.Mode; import android.graphics.drawable.ColorDrawable; @@ -39,6 +40,9 @@ import android.provider.ContactsContract; import android.provider.Telephony; import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import android.support.v4.content.pm.ShortcutInfoCompat; +import android.support.v4.content.pm.ShortcutManagerCompat; +import android.support.v4.graphics.drawable.IconCompat; import android.support.v4.view.MenuItemCompat; import android.support.v4.view.WindowCompat; import android.support.v7.app.ActionBar; @@ -781,32 +785,47 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity private void handleAddShortcut() { Log.i(TAG, "Creating home screen shortcut for recipient " + recipient.getAddress()); - Intent launchIntent = new Intent(getApplicationContext(), ConversationActivity.class); + new AsyncTask() { - launchIntent.putExtra(ADDRESS_EXTRA, recipient.getAddress().serialize()); - launchIntent.putExtra(TEXT_EXTRA, getIntent().getStringExtra(ConversationActivity.TEXT_EXTRA)); - launchIntent.setDataAndType(getIntent().getData(), getIntent().getType()); + @Override + protected IconCompat doInBackground(Void... voids) { + Context context = getApplicationContext(); + IconCompat icon = null; - long existingThread = DatabaseFactory.getThreadDatabase(this).getThreadIdIfExistsFor(recipient); + if (recipient.getContactPhoto() != null) { + try { + icon = IconCompat.createWithAdaptiveBitmap(BitmapFactory.decodeStream(recipient.getContactPhoto().openInputStream(context))); + } catch (IOException e) { + Log.w(TAG, "Failed to decode contact photo during shortcut creation. Falling back to generic icon.", e); + } + } - launchIntent.putExtra(ConversationActivity.THREAD_ID_EXTRA, existingThread); - launchIntent.putExtra(ConversationActivity.DISTRIBUTION_TYPE_EXTRA, ThreadDatabase.DistributionTypes.DEFAULT); + if (icon == null) { + icon = IconCompat.createWithResource(context, recipient.isGroupRecipient() ? R.mipmap.ic_group_shortcut + : R.mipmap.ic_person_shortcut); + } - launchIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - launchIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + return icon; + } - Intent intent = new Intent(); - final String name = Optional.fromNullable(recipient.getProfileName()) - .or(Optional.fromNullable(recipient.getName())) - .or(recipient.toShortString()); - // these constants are deprecated but their replacement (ShortcutManager) is available only from API level 25 - intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, launchIntent); - intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, name); - intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(getApplicationContext(), R.mipmap.ic_launcher)); - intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); + @Override + protected void onPostExecute(IconCompat icon) { + Context context = getApplicationContext(); + String name = Optional.fromNullable(recipient.getName()) + .or(Optional.fromNullable(recipient.getProfileName())) + .or(recipient.toShortString()); - getApplicationContext().sendBroadcast(intent); - Toast.makeText(this, getString(R.string.ConversationActivity_added_to_home_screen), Toast.LENGTH_LONG).show(); + ShortcutInfoCompat shortcutInfo = new ShortcutInfoCompat.Builder(context, recipient.getAddress().serialize() + '-' + System.currentTimeMillis()) + .setShortLabel(name) + .setIcon(icon) + .setIntent(ShortcutLauncherActivity.createIntent(context, recipient.getAddress())) + .build(); + + if (ShortcutManagerCompat.requestPinShortcut(context, shortcutInfo, null)) { + Toast.makeText(context, getString(R.string.ConversationActivity_added_to_home_screen), Toast.LENGTH_LONG).show(); + } + } + }.execute(); } private void handleLeavePushGroup() { @@ -1380,7 +1399,8 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity private void initializeResources() { if (recipient != null) recipient.removeListener(this); - recipient = getRecipientFromExtras(getIntent(), this); + + recipient = Recipient.from(this, getIntent().getParcelableExtra(ADDRESS_EXTRA), true); threadId = getIntent().getLongExtra(THREAD_ID_EXTRA, -1); archived = getIntent().getBooleanExtra(IS_ARCHIVED_EXTRA, false); distributionType = getIntent().getIntExtra(DISTRIBUTION_TYPE_EXTRA, ThreadDatabase.DistributionTypes.DEFAULT); @@ -1395,26 +1415,6 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity recipient.addListener(this); } - /** - * Extracts the Recipient instance from the extras contained in the intent. - * - * This can be passed in two ways: - * - * - If the intent was started from inside the app, the address is a parcelable Address instance. - * - If it was launched from the home screen then it is a serialised (stringified) form of the Address, as home screen - * shortcuts cannot contain instances of Address (see BadParcelableException). - */ - static Recipient getRecipientFromExtras(@NonNull Intent intent, @NonNull Context context) { - Address address; - final Address parcelableAddress = intent.getParcelableExtra(ADDRESS_EXTRA); - if(parcelableAddress != null) { - address = parcelableAddress; - } else { - address = Address.fromSerialized((String) intent.getExtras().get(ADDRESS_EXTRA)); - } - return Recipient.from(context, address, true); - } - private void initializeProfiles() { if (!isSecureText) { Log.i(TAG, "SMS contact, no profile fetch needed."); diff --git a/src/org/thoughtcrime/securesms/ConversationFragment.java b/src/org/thoughtcrime/securesms/ConversationFragment.java index 5f256cd2a0..9ec757fc3c 100644 --- a/src/org/thoughtcrime/securesms/ConversationFragment.java +++ b/src/org/thoughtcrime/securesms/ConversationFragment.java @@ -206,7 +206,7 @@ public class ConversationFragment extends Fragment } private void initializeResources() { - this.recipient = ConversationActivity.getRecipientFromExtras(getActivity().getIntent(), getActivity()); + this.recipient = Recipient.from(getActivity(), getActivity().getIntent().getParcelableExtra(ConversationActivity.ADDRESS_EXTRA), true); this.threadId = this.getActivity().getIntent().getLongExtra(ConversationActivity.THREAD_ID_EXTRA, -1); this.lastSeen = this.getActivity().getIntent().getLongExtra(ConversationActivity.LAST_SEEN_EXTRA, -1); this.startingPosition = this.getActivity().getIntent().getIntExtra(ConversationActivity.STARTING_POSITION_EXTRA, -1); diff --git a/src/org/thoughtcrime/securesms/ShortcutLauncherActivity.java b/src/org/thoughtcrime/securesms/ShortcutLauncherActivity.java new file mode 100644 index 0000000000..1c7e6de00d --- /dev/null +++ b/src/org/thoughtcrime/securesms/ShortcutLauncherActivity.java @@ -0,0 +1,42 @@ +package org.thoughtcrime.securesms; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.content.Intent; +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.support.v4.app.TaskStackBuilder; +import android.support.v7.app.AppCompatActivity; + +import org.thoughtcrime.securesms.database.Address; +import org.thoughtcrime.securesms.recipients.Recipient; +import org.thoughtcrime.securesms.util.CommunicationActions; + +public class ShortcutLauncherActivity extends AppCompatActivity { + + private static final String KEY_SERIALIZED_ADDRESS = "serialized_address"; + + public static Intent createIntent(@NonNull Context context, @NonNull Address address) { + Intent intent = new Intent(context, ShortcutLauncherActivity.class); + intent.setAction(Intent.ACTION_MAIN); + intent.putExtra(KEY_SERIALIZED_ADDRESS, address.serialize()); + + return intent; + } + + @SuppressLint("StaticFieldLeak") + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + String serializedAddress = getIntent().getStringExtra(KEY_SERIALIZED_ADDRESS); + Address address = Address.fromSerialized(serializedAddress); + Recipient recipient = Recipient.from(this, address, true); + TaskStackBuilder backStack = TaskStackBuilder.create(this) + .addNextIntent(new Intent(this, ConversationListActivity.class)); + + CommunicationActions.startConversation(this, recipient, null, backStack); + finish(); + } +} diff --git a/src/org/thoughtcrime/securesms/util/CommunicationActions.java b/src/org/thoughtcrime/securesms/util/CommunicationActions.java index 0e405de016..a8c0182d8b 100644 --- a/src/org/thoughtcrime/securesms/util/CommunicationActions.java +++ b/src/org/thoughtcrime/securesms/util/CommunicationActions.java @@ -8,6 +8,7 @@ import android.net.Uri; import android.os.AsyncTask; import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import android.support.v4.app.TaskStackBuilder; import android.text.TextUtils; import org.thoughtcrime.securesms.ConversationActivity; @@ -43,9 +44,14 @@ public class CommunicationActions { .execute(); } - public static void startConversation(@NonNull Context context, - @NonNull Recipient recipient, - @Nullable String text) + public static void startConversation(@NonNull Context context, @NonNull Recipient recipient, @Nullable String text) { + startConversation(context, recipient, text, null); + } + + public static void startConversation(@NonNull Context context, + @NonNull Recipient recipient, + @Nullable String text, + @Nullable TaskStackBuilder backStack) { new AsyncTask() { @Override @@ -64,7 +70,12 @@ public class CommunicationActions { intent.putExtra(ConversationActivity.TEXT_EXTRA, text); } - context.startActivity(intent); + if (backStack != null) { + backStack.addNextIntent(intent); + backStack.startActivities(); + } else { + context.startActivity(intent); + } } }.execute(); }