From e1f572e1f470e7cf76b9fca8a3a08e884b0fc2ea Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Mon, 15 Oct 2018 16:56:24 -0700 Subject: [PATCH] Update GCM foreground notification icon. Using the default Signal icon can confuse people into thinking they're message notifications. --- res/drawable-hdpi/ic_signal_downloading.png | Bin 0 -> 2044 bytes res/drawable-mdpi/ic_signal_downloading.png | Bin 0 -> 1086 bytes res/drawable-xhdpi/ic_signal_downloading.png | Bin 0 -> 2908 bytes res/drawable-xxhdpi/ic_signal_downloading.png | Bin 0 -> 4919 bytes .../ic_signal_downloading.png | Bin 0 -> 5891 bytes .../securesms/gcm/GcmBroadcastReceiver.java | 13 +++++++++++-- .../service/GenericForegroundService.java | 18 ++++++++++++++---- 7 files changed, 25 insertions(+), 6 deletions(-) create mode 100644 res/drawable-hdpi/ic_signal_downloading.png create mode 100644 res/drawable-mdpi/ic_signal_downloading.png create mode 100644 res/drawable-xhdpi/ic_signal_downloading.png create mode 100644 res/drawable-xxhdpi/ic_signal_downloading.png create mode 100644 res/drawable-xxxhdpi/ic_signal_downloading.png diff --git a/res/drawable-hdpi/ic_signal_downloading.png b/res/drawable-hdpi/ic_signal_downloading.png new file mode 100644 index 0000000000000000000000000000000000000000..ed2cf389a23ad8b9ab7279cb8fab7f4862241056 GIT binary patch literal 2044 zcmVPx+wn;=mR9FeMmY5_ zhp(m1S60i-)XH3KHbtJ64(B4D*(8A^)TJRvVj$#$_p8tM@BQEXx$zS8Z0DYHe$Vgu zo!@!+ygV0>4W0GVX+SYCG1GCf2*VKo@~N$@O$5OA9v&Wx ziBLH_H^#NpP4ttY2LenueuMvBN=iybXFzobX!h*cPvD>mV;?j7sW?f-X$t+LNl8gp zT61Ez+xs^(G=##709Z7DHljD0aei1>*tV4`R~krL(`^&blqpj@`t|Gg4vyDg@CQIF z#;A8%TH1N5A?1*dkB=V!WUDGYJ-wQ?*_2tZV1dt#8#j70K1^gELoP+O+L}zOfQU+8 zqVhQg=GE8N9|Oo@LY^%r@$vDVrKP1$(v3hS9OJ?CeW|ilOZ|s>7T#fZclSek_wFra z?8cG@Fu4z?OPJta@Fu}47SCE*1*Ci-)EUg?>&nW?H#0IaDhabKH#gUg@>_ryk3l7| z^2Tb<4IoB!@QP`_!PXX>E6D|HAu_X>G2L1;Kg;f|SNBA^5CguYOjnCz67JZV4ya0j%FoZw8a8a$BjoA) zkdTmEX!){lGo7IHD$HQo<@@*VFLosMPK*rf4j7AlBf8jIOA5>so#pzFJiUO=0j8W2 z5K%Z)S68=zFzyx;#RL*J3?);x+pQx~o=k9~Cd?60h>vOb_SI?_e)Yq0Jp+&xFn6#U zs%Oob6^Qbpdl4DeS;!`SMl#{K;xX z9PQo=9;Fs&xn|6m@c{i1-2udea;VFg{RG;FNC$7Vj`1?==g{xPDh#Es0Gwg`FG1;J zV`nwuTsLvLn0|hK{xrSR??SnVlQ>S_u+gJOufvHC&Z5{D32HSKU3@^sVc$7Xe==s|IKN>tD|?-tQIC>IqOWWum@1UrMQ@;Itvyu;BtS(1}HZ>Mms zt4soMk@4TQ0|yRBLC=6dZ98Q>!nvSzD!11mXWrE^VNe%mPghxN{mQ)S(iJnGHX!ZH$iko5QM z+n3I*f6E91q1u4)d7w3JP-cCQge&MoloC1IJOHBv?sAd7?8txth`cEQz%uHW(0Z_J zuOn~donT<&3e9)ajuKG*zIDh; zRfpr9{53}WuoLo$$VWJNoZ%SJ^*n&4lQz4xe1fh=-F3;TVDu<<<|F$8bo0==!*u+L zE|(n%!2d#gv%rrjD=Yh%arKxnV_p~C(N>EtzA38~{jIX2 zzOnb!v6if?ta?6El8Ml29{gi5P)c$)(C((LB2O+NuaFtZ>+9>gj>Ank;XEAak0ZxU zahXOUcb0Y}j`al`Wc3BD82$Aotz}}ERNCn1=%E0b!#n#cBBRST1Ry6_`@tA}nPq#P z_IH3T4-5>vT2fM?&*US>xn3VPajJRutd*QA7|FF8A-P)Px&_(?=TR7ee-m1{^-VHn4^<7AK+Qcf&MLZXD4VrJIIOe}(&7bXN&P!MD#L?41~ z;+KdJ(t=VcDzf}wURstA5=KVZ1st_*h)^^%rmLLc(#`dIPG_>IQ|X0g?{oeCpXWXA zIn(PFxU5#IX>xLM8KMsa0$&mm5`Nd$*H6q>uAeKRxVShMu-(YGUaxl{CFlW2YS67w zQBlKwzrV4ywY4b{&a4C$izS=ll@uKX=oOf^)6&vjIvfsz%jKHv>gw_p6&0-~W`S%u z`&ah9wzjs$=|s~B^o50mWs0Iy(%Eqeu1NvMWA^!cn*d6}R3IFpf!EkQO-)Vyf`Wol z?DLScFwNmmk}!h&{QNZrgW)EHr<$9aJ2|3az>ZO{5z;99YArq;V4{D@#$}&FOS{larHc0o^A_8kneIi?~jNnkNKGTUuJ2;5Z;@ zKtC(VDgh(Lktk<;bDd0Q+FN;&?SELB%GPdWO zUv+P9Zy5y(2A6ukbu_dN;EQzr0@op?UM(?o0>-+6Nm^~&Y<^$|2A{~nqMOrlK zr!E^ArOEq{W+{L#rC=wZKLFqIzu-a&s9XfA(P-?$jGma7$N*0%#==g)a1bt3$iXJ0ok_I^YT10kLr+$Fg zK@GqI)*?MueJz2zCX*>`XlUppQ&vQ}JpxW~Dbhf3js_IAh2)$jr^mq0FESPn4i1_a z`|TV@_&m(Vo z=WY^3rk3P@wS(`LUC}m#+&}Dh>?-B){{F}v!j_)yF(p>g{K^&nAfa`Q#LB}?BCq$hT z8^uq7h1^p1;JXk@tUa_|z_pxzM;96tJuxxSOHm%z_8GgG2~LcUk7sZZ&M`?f;*stk zJ^)w`GO9_B_$0Px=7D+@wRA>d&nGaCb^&Q6_{wfOoou?8@Hq%jOTAEqgoOGKtjsk%=74ytpvAeeH zindGFPUe}_bQQ5W$GokHObL)bD&1|BI>wbcaJp1s}KXfW)bHEUK_Oiav_D_5?Z4hsvr37AEli0t9i zAWAo|y1u@CO>AuJJo+8fx}u_@rfb!IEe-@NSg>GraBy&PcX#*wp`oEufiF`}4jnqQ z5a`&3v98X}&XeHg(>@MQI1c_Df&;)Z;QOVerDq(5el!N;KuSu=y%>>=@^}mnm%gs9 zF6`@GkAXShR{+le+o0x+JGN6*0 zni?ZUd({^7l&^Q7U4=F3ru&?eG>JA0Iz-?AWoB zp^1ThJbWWD2oQ7u$2D_}q|hlGZt&(!NJtpL+IbSbECMx}HFFl4XJ*Wp@f&9Ce+$Zs z(XRvKx~6#xN~d8|JI1VOZEelnvuDpmBPTsQJsjh{L4N@-9vB19NQ|)Z+t3LT)k}az z>JjQrjD4r1q(qC^DFkdbogDb@)odU$dHeS56%K({!>9YSk$1ywQb4D>}HUuPFOVQ3Q*6Gw-Khv!0b z8*&#z*Xix3q4ntii*-EtI1k1@L-+)O3W&l1!$g#3f?G%b0pXxCL;Zqsf>{uM6OO#Z zO#htp(k!`1$IwxuMn%&6KKK=+)GF4*CT|5j98hGNnwkoTKswvrIwJEUcP3^f6U8qR znNg&K`_O>f#u4O|Q=ec5`ost$jq|YOaU5vF$pq~Az>En7yLZ%XZf;(Vap~lIC*8l8 zaczGXpH0LzqHxfRmwct2f`Q&-qP-KNry9NVpCgdfz>(l`$c`v8CK%%0VL{%EpnL>H z0pGye4Q71w=+Udduc2?{y1@@7lq2Yv2)r*YF7BPWy1KJRj~@Mub}ebPkg>_=I}g6f z=yjigAg1YQaz7g5|BA|QS-S>dz73G^c^fa?N>zfV1964=D#L~i(^dUh?9AW_ zbB}PA1C5Q1Q)s7B(_p$q11c~-LLDJtH=-zT=zhpfV^?KmX9l<{M?aY>;m38BcSr`V>X-J*(w%-HnYQmIDypfk(ohAbr}@U?JTK z`0|Z(Kz7J30z6M`75X(=eQgPF|uN%_edaV{;i>K)sWynb1O3gs*VG>RzVHWHfYRjRPZxOsMCo^IdRVTro~s4iJGXreikI z-o=1bVARn)CvyJMRr!C5HfNni&L#utDCBsA> z0k07p6RaNch-4zVAM7z;BgD)2tM*J>CR>()YhcG}G%2J-rZVX&uukC<5PhuOslNqf z#agh+d1P#X-#TP^lf!ed5_)F?@kNK6V9Aoq!otE2(UH$B^{izbMjinnzNu_oW7Mz@ zv_IN-p#m;U?eikG7wkaNrZ-(twoKiNaz$i0z*N*Qu#NsJ815`y9D5tD`}N?(;e*=# zm~MUV(QY%?Ww~T?rT&iuTMpp=qs|+RTE13mdV_o(E@(kz1 zzCfHX7c*p7*Mn=b(>J%fY{vnSvJTd>pg$#*ref>{z0`!qxn^c%A>%cDtp^S-pIat; ziOBsb%IhUFkRn=}r`I#W!vQ{x>pWO#3!l@_&@j{}VxN|<2Z`{01RHb@c>etPi9#}) z))m{#2NHzXiPMs6%RAN(~HEB-NOM0ui!)h zPF$v)!=lXQ{=HHEgGmU&Tc~P!6yf9;PS3RmJWf^|9|^uPEiLVF?QWdD>Gaoo2)Wu> zuQAbxRy;gU-8yh>#7NE`nHruRDUWwf%+j%XBrx{g;QTNqNQnF`3;R^O19HC4PQ`q@WY1>YxlVe!+y*< zSc~9P6qO*{ia3Vrq}~o(i}FK~qsKN8?Bc}yCHTjD$;OBh7B=oi5FUbG`kOU|N?=xMAXgzhIXrU>jIyYkBOo2u-okH~Gpi}yE zKEW3=`$;y(IQaPVy$X(R3Qx9h9D zIpJ8-O9Nj0Rr@qE{kk`aT)VSpA*2gVfePvtK(CgTP99QiBKYd3WnG%~&(^f8?M z6qpLWT+Z5xQ@}YNWoZXm#FOI7cnRop21LYmrmxn&XD0MV-zM7nUX#VpQ$$_gPW2!0 zChk&yAV)h<*39{F2TsR9(*%8$Qp){N553>Z6+GI(%%k4Pd2k*jAO}dJNTOTI!kwbU zi(xJn+Y7)P7WJ2S867}sz&BRi=W#$+V%;ix{j5U1|I5Q#ADw_45FdH`BGG=1SvWy- z@k4z`Z@lfR_^0000Px{@kvBMRCodHoClDV)fLBgm!&N$yRcvs#fc~)9Z@u3p+w3`?}7;+7!!0>EK!4P zNU#kN5p{4R5m6A9x-2DxqS6GF4x(eFg%*nRvb6mEcfb4beXs1k_joHXlRI!xaKG01Qzs~$DW5@LuGdD+O?P|jKiOJSWqIsTt^S@JAC-?k&5w$4h@+0Cnor=}MSAgiucs&Igbl2-k`D5QN`G{xtF?OrJjeTW_QB zj5DO0z^^myEn?`-!s>GHEdWSE@dx~i$B!S+o;`c^iCEf=86Z}rRy6o3y{TT4FlP|5 zACu(=l+~eZ2gBpPu?Q7woz|^em%~a0QbWgj4J%}u3V4sP>TQXZchmrBeA8H88u~ld zk|se2HJrW&pa%eGQ6xfWzCw{y>Sz_qpiTy13O%0$zhm&z-e(u-!_XbUA7W@~^(xR| zQPi%!!pkJv>8P@g`1O6}jj{}~z{hjWqbyH}`JRm08U zxr4g>sheAnoZhmC0czW}Z3;d6CcYnySOpH#@Zhp#%f2~!^yuSW#x{<{mB8XMN%w+Q z!|^(-K})k)t}QQ19~eq8ucsr_&Ug4l)SXa}MIiIFtcru6?S(g%jx0;4bEndgxQGE_ zUa1AcCG<#|7^C1e;{B&gnKC0(L(Y=l7C;}RycSB97M%bo43tp(Y@P+n;cv6N)KAt_L)S4;(l!yIi?)kD$k0 z(7ii(^5of}=xtu10HN%|5O+f1*V*#V-MMpT6Vh8kE#1&&K=%^mzeDgc3?aK!Cb*>C%Wsr^76RP}}|%45<~Nn9)PG z((o_(I*L61?s1yyE8mP9#O&`H5gLm zv4EFhlHpiF2^w}+F0YXEN*h3&M4kY>AmB(Ir|seZrEN&Iu2YonbxhjRu$q6O*ICg+ z+my66x*=UyfH(_1L*>R|f;$69!?>mhvL5vajg5om8d=W8;3P90))e_?u(i;p)peT4 z%akeeB>K#y+<=PwS)2-VxDIk5hZq)d2bE?*okpll;2icp9TqHD;9JURyaU2~08QD8 z1st!20sy(z0+xo5@3@1G+K+vV>{mKKt>D(6g$~g^9^QoF+6+?Z34EHA27rBJKN|=R zh&Q0@?TZy0=^{%)zPb#dku6)cEU!H4oYn3n%1?_9cMHc9S&`3Zf`%B&pf*vh1P;in z2VUbuyiy#ja}KE^K>jMxUCd6(qsLub-uG-yzGfG8AT znM`D*9JAADc&wKx@kH_-ru-HM`GDe!FR4WaOX<)4$L!0jgu3fSmsbF46*TXVKNt** zIawMXTFPWzxtmIZU|5527`x8FmRKQUSJ$PQpUPA2ExM@V$gI)uEn!o1+Tj%z%SvVn zImLogkB%=}r%s(E7AW5klLfKQnGd3w_{NysYhFfN=AM)m-w?a+mH!x}6sB#04Gq=^YZep@#=wYTCq1Pk13`sD|r>g4M1zxuB|})N|TXfcAv|&C0ANb^AqUaajAoo zuZ=m>CIf=@d#>Y)%ytr+Wgw2PEyFPYf$9|$ULgR8%S3cz=Q=*+l&8`qJvqC|I1yQq zH&0(Z&~c;kFa}v!%?%qiq}bEBF3rtWoPxa&_>TTm)UsX`@8x+R%)}0-j?+z828h13+KOELasepOu?4XO7OA#zC_Z z{`=8WUxa@kGtUe$CM0utB;;@h7*YpJ4d)N}7wjqnP_`gO@49vC)?)|!Mj_yM#dhPW zqq^cDUJlP>wlT33ZTj_*b zO(PWOlg@C2N@e`z!sul$Bf#+;IlN`@j-!k|KDI+}vnLUMfVrJu2*5N_I!dQkYfY)s z6h2D{pF+RS#KQ}Y(l`N>&S=t7Ul}|~n@I--H890y0C6h>T{PrGZ5`#lN!#YfI}|tw zbvp_eaFC-Io%aUqFTuwGj!#7K5HIl*Z(kt^+Al+3@}WD3C7m_cT6$P(Tj|HaW=VQ^oi1^H`3VkY)NTw-aHnOZ7)&+O)LXT@RN`q}PrdIWm6^Vm$66(*mST<5jkT!ZBmU z$hy8H-tQv-6aS^7ZrinL)f$_cnyT|&K0uh}X#mJaEPoi4 z=lCDE5nBn34u^3Q9I!`mrC=t1daxt>&wDA4RXDXR8B|{~jU7AIT>{5FeDtVu33Wd?x7fuh%DH;XeYxjS30a=_g^C8r-~z-Fy9yBQN9duPMJ{8A`3`cD zn8|t+Nbik@^jOb2EO(=L>1+jG-~CKH+K85iWRNW0dM-f9Y}2MqT_)_A5H7`vM(bU& zml%b##5olHiVuwB8~cF@d1Qo$Z|G|6GJV9pl=8(+K7ey6@YX~jyyO? zkd`+P)XxXZ;S{j+$a~;@_uW_4D}=ML)2q=%0y7o|z%D?v;}a?te(|akC`*ubyqozB z;XhP^ggVLJ&6md~0mC<*pxes^vo|!0v4(ib=i@`$!)Qah`o|Icq^~fBgu~-;@f7b+ zEYQ<;D;NZjQ)wtxv>1kFXHEELyNU8L&Cbr=#H8H=+F7EF#v!0^Td zqX7v}U4Y;n5+J^Q{=q7NVxO=-YeXAn?_~2M2~|gR#lzBjdD}cE^vMzuAQ8fB8NmP) z*X#OzoSAaCo9@7E+#L=hHvlBv27D3?KnzV6AnI*#nRz0#JqXLyUAQsN2@@uK!*IS0 z63G^+Tc$dys|w=f@EjD1L7*&Q0a9f^`iO&DV|Lk-`8@q74duXKHXuD6aG2F~rEUZx zb_iO-Lp9l*{^GX1nn^c)-oE29;)2t{S5Oi~if+MGxz-M{03k68THEY(~LogiV&3!SUjs=fl zN%~}M9Ftz500D|DO=iA_AyylquT^Dzw<3RWKBusM^&`12c>H9Zr9gic0Q8o-A2l>b zTBmqlm5D}~-Me?MuDV1UDjm*AhQM!V5dnl1onpAXNh6QKTo+1e;~E&=ZW|*{*RrQ= zIxrMCl&{10g-<5sZP~S_dFbBq#6w1@tDl)KqhmD0jN_Vg6gQHu+qB}y`o2wzmI+z+ z+om&YewZ*w1~X>D5C>(`|COcWkzib+&?)3md$h6&kiYx|q98hwI--9yG1%e|2c;ut01RwSCgM$A$3XgJD zqo7Wv+^ke^(e+HB;5e;?Y&$A|97Z`F@vq_=_B~Eo0O@Yq%rjWiV!-JDFrDd{&pma* zMxpzR!r@^F0t!&xx5BA7l9eiejgrHiwu6eIzJuYuHl0tvS8ueN+q^qTs?-c?&Vy$oeFOL8`jHakH-O9B`v z+#7$FtV|9NvH`pgb$-p~mZKa2wkjVhFdq(yM)PeM)*MRS#Y zF}<84%+G+9PJTs}fr#fM)r-*SB}-;u;D}eu76bqjQNF7z0)@W- zB)#0Khrb%&Mv!hyTs!1qvKHo*W1=HImG}bk^^S0*{s$1e+9U9v$S+2njqGM$7(age zE@+ISGqn81`uxS=VphzhB;4mOZb1Q&m;plQ-=pw*@YXV_2iTiX{(2NmU;~(ivZDZS z8Vdi0GX3kCZ0?no1%6H{K(?SF+U!VX+#XN`H4q{rW`OAR%i*VomF97|tOOwJ{|8#g zve^Wh3_vQw&yaTLJ9mioW6IK}8RzSRp5Rr6NvJ1yn(*i8oELa}h^En)0a7FM=wtxu ztYIe0!D_UTTt?p805l;QK`vI>sP{o$Md-buq;J9N|Mz6$^Py0y-7qtRCodHoe7v##g)ft_C{KEF#;Ll5SAbz$cRqF2&gDwYg8nl0%HJ^QN&S) zjKl?^V=^vCK*iwJ5@p|sphy%48N_j683C0^kW~d#!qV)W-~V~*Qn%i{@4fE#y6Fb$ z`>Lzz)TvXa&Z#k;b`s}ida zO*lqoPgYjej$_A;jh-`S&UjUH>C&Z2)v8sSA2@Je{lbL{4;tjsl2$A&j3B5pt5m7d z34S^u?6wH;d4%|!_(Q1U5q|R|yq2fF26#1S|L^2u3PAXi$@d~X)T>vo52#;8e5-Qh z%8RE@pPrwDX0cbFPz7}D+O-x!zYbydLdX(+C5;#XN$5?utkNdDDVU;P@mvyUDky#-I2h2FWcL3ImH72A2I60IRj}l)X zmOFg-@K+TpR@_3ip~?wDHRy`B8<`l_&7M7bdIH>xR+ZQ$%)qXK^M%Q{M-clE#8To6 zvj-$=lc>IT@7~!c?ioi=7JaFK^s^5I`O-BTMEyQ{dc4LJMf)A~X2jKM)R!sxU-v-KNrN|MOfGay3SN3n2 zWHRFl=-IPpckJ;qFj?PXv@Zjj(xXR@Cd{zW4EPf~k0)8)f3`61P%3xoo+U(F|mIVoBV4>6JM&%~QV-!tpJ37K7*b|kGdvs!%hH$U~;Zok*q8agjp6lI6=P+ z_|1troasQ7EbInh6YbWZoDax;~C7xldtQB zdiClRB=d=xA^i~iQ?#u?EbZZIR_Fj$v-XLEfrICdnf1#Yq-Dsb6EaD9rIPZ7hwz`I z6A548dS?9Dq?en!o)|Rb53@cS+zAL@*AitV)IzB9nAyKaki!!Rl53Pr3`!S>I+vJm zF=N)D^mYS?N>h3s!0f#d0)Y*eWqMH*Q3I!4Ll{{~xhx6au&;C&{4dsnBO7SvF;!a- z{`J6Ik8c}KPJ<&!EvcAE~yxs6$(dh8b&bnipEcR*+xiBvW!F5%?8jLGy5QS4&x z=TdiXNd2=Yp-u?g2PIViGvH~k19lt1PUUK0yidi+U>94lH2(*1*y-58E)&HTjCmQ} z+qqHPqJ)RQaoz9w;Oka6G9*+0TJK6rcNuLyc<|tmD2jMSjj^AvQ(rF%r;NfIu<94d ztVZx(fLZQOovvT(Fn~5cu>p2IQUREr%4qa)8(Dc^gQD)l5q?dWSOA(de=>%DWc-UU zuVGg&dhqcj;0}jn}VV|3&lW&HsQmv!70KAaozca{2UefmxuPKk11tuHi`lkbsfT zwsq^)y&pCl;Cs2M$*NPQP8Z}kszr+yH@9ll>h-m2*X}j=p?1ksCQG$furfA)=bEcz zO;4u!t?Z58$2{kU4T=e>bJWdN-J^I*{$3im3)00}ty;CTgEuF>igy2i>3Y{{9LTa) z^kWvB%EFgCbi*qFj|m9pctNtX!_^dg1qAkhnl)=)L1ic6ImDX~?te4O1E*l%u^_*e z@M}{(#namuf2cJni(}@+*#D<-!dF1dt zgsO=f7jQ|ZyFirE%fJE(ph7Fa4$BuUTC~pwm^{mFkjbA;W8W}@%ENQrS2{Af)RcV% zuvzHVE?}?FZ0M<1PsUJ|-ds2xj!U46_R!oq(J3Hslp+h;$ z+(zIvm$1OQgetv;8G3u5b_CzO{I(eQs{^Z^qnprF8D9Z((vVI}rL_4MzhGrJE9ikl znX>oDV4K>8AH;p=!NyR9LGWp@Eo+(^_j?O4#62=DI-Xx#vnZOm0D!F>eWkd=AloUk=DT!kgGz0lG3a_=O!ey3ADcLFq6C^& z@D!(uwHbZ;_N~j4!8^#`jy(Jc$!huzus8)U!F9LRiMm6?ZN&d19#;VQgGB#E6XrJy zAtY!8l0!N z6xLuT09Ek&-U;sSrW#-*5W5$fRE-QS9SB($x z?!dztPF-wsirbJxO_d_RmzOK z5P|$J{Qpy`w9>^>U+PnRN6~^`cXN(YfV-)<4Pvxe?osY(RNut`FObc5XFdYB0bwj5 zX4>Q=9fSH*-{K(*nYzXf{41Wtg2uNIK3*qUR zGcX~6S1n=UI@=Zk;>VoSnm6uFFHa;1e=Vp;kaQc-I(2k3AzMLw^NO5nB?bGs;cKhx(f=GaV>S zM99PL`zKtvnhazPgN>XlsWK_S8(ceYV1-S^lXw%4rme?&9%WgPpaKB?zd=+A!WlG< z@`RSyxFwNiLgeEB+;8{AMEE&;mYBC=_nk^!yopB}*BiqM^AlQ|}i--f-c?QD({h z(WdL&YPxqTHcDyB=XgBF@m0}=An^Ao-(y$5L}4Sq@5j2ZXPkqNNQA=c3;m!)DH?{Nx1*l#fVH`$}2d@IYR zx(&1QctnE{RIyypF(E#-`y#JrxMelO@gAoD?Cnv6`GhmVIy|Jm-GTW<{Y(u?y2}S- zFvEm!UEwAfBwx~`;&_i!fH-2%<4OFDPcW1+JZdjcJ*G%M!kwplCWGEsv+1E|-=DVO zWg#ENd#D0f1$zPvm9??kl2c#l+o2yrsjUHeprXjS}K*E|JKU}guN(Io)q1}chB z&|AuOGY0*&U3T;EcFe%QEkFtPQ64}(_8N$(ODFYc4e)6Dq~JB-OS56TCscqaoK)Z_(tReeAyGT-jgao)UZVF(s@&6esl7_6^whLQOxka@SfyK@=XPc2)iQSDS=U73kUH{ryN#n z&#U9h`}FA(;A`sCsh?n{rG#Z+jgr9LR$I}q@zjU<0@mJ!N95ypPe}nH#;o6BelHY( z%iWZ1RnY0~T{h+`V3L=KGc^FjLz)$cn@HttbjnPa^+lCv<9YP0XL^z z96S}%S^=~_pMlmebXorS2xO5dCrS}aZ8qgaOql*Q-nen&4l<#xhfY!tNjSn)8=Hn` zinjW&;Zb?$Aw69FV7ZKPfn}G5N zHqt|4Eb^M-JRP<3Xuass7ATbv%5#wv0OM2XQ9{}2^xU4=dbSN?pD2m~^sfI*=se3H zKP2sE)71O^JWj9DSMJxN+knJbyT1U0iahX(h4wynBCeCcbKx5_HxQ9rm_mQ z!szuV?_yi{YOMc!VGCa{eH;P)cI68h+VcVWJFbV6h=y?02ArY@f4g{%qMw!m*i>|N zJoVYEQ-_eOn{@6ZkuF;&k&!#7od$|ME) z4fT-hW|+=Gc{+Am<;9zLbm4Y6Z3XP#zyHq={F_ab!R6Xz@?SdTHQ;na@Yiy%+vwD# zT+|9=v&?0nMKMKs4JYOyv7h|L?bL%6*3knFhd#aSjxLd@8vi@ArWITVch9-1NSg9Xeo-?VrYe>-s|c5Fr#W%eTuMY>}hwf zdb6PO7;Sw1Q*7^}Aq$z+4(w$sd|*T-BMLyk`VEEY^s$vVhk@v$wcS>qS-fr0j;C86 z0pDxE16f^jbD$dvPzR@Mt8zW``?6YMZxnO)QlC@l7goJK4~>1GVZ%;To=I~f!hb21 z{xhP0R62^n!MiE{;fEh~Wyah_ygUjI1&l-i`mxmB;7nzC_X_(;2E1p8>8yk(7Lvlf znLjvH;fr9}dw|Oo=BO?4epZDZ;zuf2{}KhfVf?1@r_7jniG=U<@tK#NFS@LhmoQbW zJXkEzz@gKDSfo9{rd8Oy`c&VA5x)A!r~;UsZ@|QR#F5Ox#}Tj&YN3IDiSinFW2ihg z6d?#agpy)6iDq__R%f5kzZp5pMnwQCSREIL4;x;bdG)0})pue0$(RE4uVLvtaB~S` z*Ln=;-CZbSOJY;6$VzQT6ZFeBddtmf7V0w;x42IhOaZv}bBJ|H5mVsLz;pCA%kc={g@!{5IQ~{WRv$4zD z=p>RZLf?lusqQjTl4bbJ*w59Z%Xg%pib@#sAoCG*X~kqO7|%?Sm{fZ$$EKS}|Bmzr?3F&+_o$VkpT2+JMO!k6FqypJk@s!)XeqC6GZ0 Z{2dxleOKNJpBexF002ovPDHLkV1k?{S;7DS literal 0 HcmV?d00001 diff --git a/src/org/thoughtcrime/securesms/gcm/GcmBroadcastReceiver.java b/src/org/thoughtcrime/securesms/gcm/GcmBroadcastReceiver.java index 34c78818aa..7f57b6193d 100644 --- a/src/org/thoughtcrime/securesms/gcm/GcmBroadcastReceiver.java +++ b/src/org/thoughtcrime/securesms/gcm/GcmBroadcastReceiver.java @@ -3,6 +3,7 @@ package org.thoughtcrime.securesms.gcm; import android.content.Context; import android.content.Intent; import android.os.PowerManager; +import android.support.annotation.NonNull; import android.support.v4.content.WakefulBroadcastReceiver; import android.text.TextUtils; @@ -16,6 +17,7 @@ import com.google.android.gms.gcm.GoogleCloudMessaging; import org.thoughtcrime.securesms.ApplicationContext; import org.thoughtcrime.securesms.jobs.PushContentReceiveJob; import org.thoughtcrime.securesms.jobs.PushNotificationReceiveJob; +import org.thoughtcrime.securesms.notifications.NotificationChannels; import org.thoughtcrime.securesms.service.GenericForegroundService; import org.thoughtcrime.securesms.util.PowerManagerCompat; import org.thoughtcrime.securesms.util.TextSecurePreferences; @@ -87,7 +89,7 @@ public class GcmBroadcastReceiver extends WakefulBroadcastReceiver implements In if (doze || !network) { Log.i(TAG, "Starting a foreground task because we may be operating in a constrained environment. Doze: " + doze + " Network: " + network); - GenericForegroundService.startForegroundTask(context, context.getString(R.string.GcmBroadcastReceiver_retrieving_a_message)); + showForegroundNotification(context); foregroundRunning.set(true); callback.finish(); } @@ -123,7 +125,7 @@ public class GcmBroadcastReceiver extends WakefulBroadcastReceiver implements In synchronized (foregroundLock) { if (!taskCompleted.get() && !foregroundRunning.getAndSet(true)) { Log.i(TAG, "Starting a foreground task because the job is running long."); - GenericForegroundService.startForegroundTask(context, context.getString(R.string.GcmBroadcastReceiver_retrieving_a_message)); + showForegroundNotification(context); callback.finish(); } } @@ -132,6 +134,13 @@ public class GcmBroadcastReceiver extends WakefulBroadcastReceiver implements In } } + private void showForegroundNotification(@NonNull Context context) { + GenericForegroundService.startForegroundTask(context, + context.getString(R.string.GcmBroadcastReceiver_retrieving_a_message), + NotificationChannels.OTHER, + R.drawable.ic_signal_downloading); + } + private static synchronized boolean incrementActiveGcmCount() { if (activeCount < 2) { activeCount++; diff --git a/src/org/thoughtcrime/securesms/service/GenericForegroundService.java b/src/org/thoughtcrime/securesms/service/GenericForegroundService.java index f6ea036cd1..f2c02d2f13 100644 --- a/src/org/thoughtcrime/securesms/service/GenericForegroundService.java +++ b/src/org/thoughtcrime/securesms/service/GenericForegroundService.java @@ -6,6 +6,7 @@ import android.app.Service; import android.content.Context; import android.content.Intent; import android.os.IBinder; +import android.support.annotation.DrawableRes; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4.app.NotificationCompat; @@ -24,6 +25,7 @@ public class GenericForegroundService extends Service { private static final int NOTIFICATION_ID = 827353982; private static final String EXTRA_TITLE = "extra_title"; private static final String EXTRA_CHANNEL_ID = "extra_channel_id"; + private static final String EXTRA_ICON_RES = "extra_icon_res"; private static final String ACTION_START = "start"; private static final String ACTION_STOP = "stop"; @@ -31,6 +33,7 @@ public class GenericForegroundService extends Service { private int foregroundCount; private String activeTitle; private String activeChannelId; + private int activeIconRes; @Override public void onCreate() { @@ -52,6 +55,7 @@ public class GenericForegroundService extends Service { private void handleStart(@NonNull Intent intent) { String title = Preconditions.checkNotNull(intent.getStringExtra(EXTRA_TITLE)); String channelId = Preconditions.checkNotNull(intent.getStringExtra(EXTRA_CHANNEL_ID)); + int iconRes = intent.getIntExtra(EXTRA_ICON_RES, R.drawable.ic_signal_grey_24dp); foregroundCount++; @@ -59,13 +63,14 @@ public class GenericForegroundService extends Service { Log.d(TAG, "First request. Title: " + title + " ChannelId: " + channelId); activeTitle = title; activeChannelId = channelId; + activeIconRes = iconRes; } - postObligatoryForegroundNotification(activeTitle, activeChannelId); + postObligatoryForegroundNotification(activeTitle, activeChannelId, activeIconRes); } private void handleStop() { - postObligatoryForegroundNotification(activeTitle, activeChannelId); + postObligatoryForegroundNotification(activeTitle, activeChannelId, activeIconRes); foregroundCount--; @@ -76,9 +81,9 @@ public class GenericForegroundService extends Service { } } - private void postObligatoryForegroundNotification(String title, String channelId) { + private void postObligatoryForegroundNotification(String title, String channelId, @DrawableRes int iconRes) { startForeground(NOTIFICATION_ID, new NotificationCompat.Builder(this, channelId) - .setSmallIcon(R.drawable.ic_signal_grey_24dp) + .setSmallIcon(iconRes) .setContentTitle(title) .setContentIntent(PendingIntent.getActivity(this, 0, new Intent(this, ConversationListActivity.class), 0)) .build()); @@ -95,10 +100,15 @@ public class GenericForegroundService extends Service { } public static void startForegroundTask(@NonNull Context context, @NonNull String task, @NonNull String channelId) { + startForegroundTask(context, task, channelId, R.drawable.ic_signal_grey_24dp); + } + + public static void startForegroundTask(@NonNull Context context, @NonNull String task, @NonNull String channelId, @DrawableRes int iconRes) { Intent intent = new Intent(context, GenericForegroundService.class); intent.setAction(ACTION_START); intent.putExtra(EXTRA_TITLE, task); intent.putExtra(EXTRA_CHANNEL_ID, channelId); + intent.putExtra(EXTRA_ICON_RES, iconRes); ContextCompat.startForegroundService(context, intent); }