From 43670879fa9accd7add74554c9049d9600579af2 Mon Sep 17 00:00:00 2001 From: John Spurlock Date: Thu, 5 Sep 2013 16:50:21 -0400 Subject: [PATCH] Add activity indicator icons to quick settings tiles. Wifi + RSSI now have activity in / activity out indicators wired up to information coming from NetworkController. Bug: 10634208 Change-Id: I3cf29dc905eeaeb4aea8e7df4fe46e70645e0013 --- .../res/drawable-hdpi/ic_qs_signal_in.png | Bin 0 -> 492 bytes .../res/drawable-hdpi/ic_qs_signal_inout.png | Bin 0 -> 615 bytes .../res/drawable-hdpi/ic_qs_signal_out.png | Bin 0 -> 471 bytes .../res/drawable-hdpi/ic_qs_wifi_in.png | Bin 0 -> 492 bytes .../res/drawable-hdpi/ic_qs_wifi_inout.png | Bin 0 -> 615 bytes .../res/drawable-hdpi/ic_qs_wifi_out.png | Bin 0 -> 471 bytes .../drawable-ldrtl-hdpi/ic_qs_signal_in.png | Bin 0 -> 571 bytes .../ic_qs_signal_inout.png | Bin 0 -> 719 bytes .../drawable-ldrtl-hdpi/ic_qs_signal_out.png | Bin 0 -> 538 bytes .../drawable-ldrtl-mdpi/ic_qs_signal_in.png | Bin 0 -> 503 bytes .../ic_qs_signal_inout.png | Bin 0 -> 552 bytes .../drawable-ldrtl-mdpi/ic_qs_signal_out.png | Bin 0 -> 501 bytes .../drawable-ldrtl-xhdpi/ic_qs_signal_in.png | Bin 0 -> 689 bytes .../ic_qs_signal_inout.png | Bin 0 -> 835 bytes .../drawable-ldrtl-xhdpi/ic_qs_signal_out.png | Bin 0 -> 675 bytes .../drawable-ldrtl-xxhdpi/ic_qs_signal_in.png | Bin 0 -> 1372 bytes .../ic_qs_signal_inout.png | Bin 0 -> 1474 bytes .../ic_qs_signal_out.png | Bin 0 -> 1361 bytes .../res/drawable-mdpi/ic_qs_signal_in.png | Bin 0 -> 425 bytes .../res/drawable-mdpi/ic_qs_signal_inout.png | Bin 0 -> 486 bytes .../res/drawable-mdpi/ic_qs_signal_out.png | Bin 0 -> 424 bytes .../res/drawable-mdpi/ic_qs_wifi_in.png | Bin 0 -> 425 bytes .../res/drawable-mdpi/ic_qs_wifi_inout.png | Bin 0 -> 486 bytes .../res/drawable-mdpi/ic_qs_wifi_out.png | Bin 0 -> 424 bytes .../res/drawable-xhdpi/ic_qs_signal_in.png | Bin 0 -> 550 bytes .../res/drawable-xhdpi/ic_qs_signal_inout.png | Bin 0 -> 721 bytes .../res/drawable-xhdpi/ic_qs_signal_out.png | Bin 0 -> 539 bytes .../res/drawable-xhdpi/ic_qs_wifi_in.png | Bin 0 -> 550 bytes .../res/drawable-xhdpi/ic_qs_wifi_inout.png | Bin 0 -> 721 bytes .../res/drawable-xhdpi/ic_qs_wifi_out.png | Bin 0 -> 539 bytes .../res/drawable-xxhdpi/ic_qs_signal_in.png | Bin 0 -> 1212 bytes .../drawable-xxhdpi/ic_qs_signal_inout.png | Bin 0 -> 1339 bytes .../res/drawable-xxhdpi/ic_qs_signal_out.png | Bin 0 -> 1186 bytes .../res/drawable-xxhdpi/ic_qs_wifi_in.png | Bin 0 -> 1212 bytes .../res/drawable-xxhdpi/ic_qs_wifi_inout.png | Bin 0 -> 1339 bytes .../res/drawable-xxhdpi/ic_qs_wifi_out.png | Bin 0 -> 1186 bytes .../res/layout/quick_settings_tile_rssi.xml | 31 ++++++++-- .../res/layout/quick_settings_tile_wifi.xml | 57 ++++++++++++++++++ .../statusbar/phone/QuickSettings.java | 43 ++++++++++--- .../statusbar/phone/QuickSettingsModel.java | 16 ++++- .../statusbar/policy/NetworkController.java | 33 +++++++--- 41 files changed, 155 insertions(+), 25 deletions(-) create mode 100644 packages/SystemUI/res/drawable-hdpi/ic_qs_signal_in.png create mode 100644 packages/SystemUI/res/drawable-hdpi/ic_qs_signal_inout.png create mode 100644 packages/SystemUI/res/drawable-hdpi/ic_qs_signal_out.png create mode 100644 packages/SystemUI/res/drawable-hdpi/ic_qs_wifi_in.png create mode 100644 packages/SystemUI/res/drawable-hdpi/ic_qs_wifi_inout.png create mode 100644 packages/SystemUI/res/drawable-hdpi/ic_qs_wifi_out.png create mode 100644 packages/SystemUI/res/drawable-ldrtl-hdpi/ic_qs_signal_in.png create mode 100644 packages/SystemUI/res/drawable-ldrtl-hdpi/ic_qs_signal_inout.png create mode 100644 packages/SystemUI/res/drawable-ldrtl-hdpi/ic_qs_signal_out.png create mode 100644 packages/SystemUI/res/drawable-ldrtl-mdpi/ic_qs_signal_in.png create mode 100644 packages/SystemUI/res/drawable-ldrtl-mdpi/ic_qs_signal_inout.png create mode 100644 packages/SystemUI/res/drawable-ldrtl-mdpi/ic_qs_signal_out.png create mode 100644 packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_qs_signal_in.png create mode 100644 packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_qs_signal_inout.png create mode 100644 packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_qs_signal_out.png create mode 100644 packages/SystemUI/res/drawable-ldrtl-xxhdpi/ic_qs_signal_in.png create mode 100644 packages/SystemUI/res/drawable-ldrtl-xxhdpi/ic_qs_signal_inout.png create mode 100644 packages/SystemUI/res/drawable-ldrtl-xxhdpi/ic_qs_signal_out.png create mode 100644 packages/SystemUI/res/drawable-mdpi/ic_qs_signal_in.png create mode 100644 packages/SystemUI/res/drawable-mdpi/ic_qs_signal_inout.png create mode 100644 packages/SystemUI/res/drawable-mdpi/ic_qs_signal_out.png create mode 100644 packages/SystemUI/res/drawable-mdpi/ic_qs_wifi_in.png create mode 100644 packages/SystemUI/res/drawable-mdpi/ic_qs_wifi_inout.png create mode 100644 packages/SystemUI/res/drawable-mdpi/ic_qs_wifi_out.png create mode 100644 packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_in.png create mode 100644 packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_inout.png create mode 100644 packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_out.png create mode 100644 packages/SystemUI/res/drawable-xhdpi/ic_qs_wifi_in.png create mode 100644 packages/SystemUI/res/drawable-xhdpi/ic_qs_wifi_inout.png create mode 100644 packages/SystemUI/res/drawable-xhdpi/ic_qs_wifi_out.png create mode 100644 packages/SystemUI/res/drawable-xxhdpi/ic_qs_signal_in.png create mode 100644 packages/SystemUI/res/drawable-xxhdpi/ic_qs_signal_inout.png create mode 100644 packages/SystemUI/res/drawable-xxhdpi/ic_qs_signal_out.png create mode 100644 packages/SystemUI/res/drawable-xxhdpi/ic_qs_wifi_in.png create mode 100644 packages/SystemUI/res/drawable-xxhdpi/ic_qs_wifi_inout.png create mode 100644 packages/SystemUI/res/drawable-xxhdpi/ic_qs_wifi_out.png create mode 100644 packages/SystemUI/res/layout/quick_settings_tile_wifi.xml diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_in.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_in.png new file mode 100644 index 0000000000000000000000000000000000000000..6ff215b4aaf042f100ccc94f4051318579fad2b6 GIT binary patch literal 492 zcmeAS@N?(olHy`uVBq!ia0vp^JV0!~!3HE%&(1akQY`6?zK#qG8~eHcB(ehejKx9j zP7LeL$-D$|6p}rHd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!tD z$=lt9;Xep2*t>i(P=vF40}UQ< z+0RYYYY+G}MzP1$u?@9=JzzB>DgRraQ2 zuIWk|NB_LOG5L(nzI^UCQ+8k4bvDIVnRV-%OX z4*9Ie&38<@z3#F(pM3}STnEeM_u=Qof&Ne}ag8WRNi0dVN-jzTQVd20hQ_)Emb!)p zA%+%K24+^qmbwP!Rt5$Q`SmwZH00)|WTsW(*6`8jcq&kXB*=!~{Irtt#G+IN$CUh} fR0Yr6#Prml)Wnp^!jq|>P-pOT^>bP0l+XkKtz@Gn literal 0 HcmV?d00001 diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_inout.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_inout.png new file mode 100644 index 0000000000000000000000000000000000000000..cf5e825df48a0525b3856c25fbce4ce02e68d7fc GIT binary patch literal 615 zcmeAS@N?(olHy`uVBq!ia0vp^JV0!~!3HE%&(1akQY`6?zK#qG8~eHcB(ehejKx9j zP7LeL$-D$|6p}rHd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!tD z$=lt9;Xep2*t>i(P=vF>KW3Y7 zsWFUq0^_S0-5Sk$rR;aAb-F@ZcQFPpm^k-m#JQDh&-SsVZAv{eGtz7lYmj=hR@zMu z=2vkB!E2s}IQ|uiV3_Zv_LKYR8SX{Dc21F7 z!e7Sb3v|l_$}e_Z*5^y$&AECtMfm8odmI1!jQYg?{haOcOSPq!*eWjG+4`qfeEF13 zzaPYgB`yh__}gyj6rr*mRnc?1e($XccptHiBAEmL|SP=h4MhT#0PlJdl&R0hYC{G?O`&)mfH)S%SFl*+=Bsh|jF@O1Ta JS?83{1OO?9;!6Mk literal 0 HcmV?d00001 diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_out.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_out.png new file mode 100644 index 0000000000000000000000000000000000000000..5d8fd070fb7c7d693a464b1e59e0e32e4e1072c0 GIT binary patch literal 471 zcmeAS@N?(olHy`uVBq!ia0vp^JV0!~!3HE%&(1akQY`6?zK#qG8~eHcB(ehejKx9j zP7LeL$-D$|6p}rHd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!tD z$=lt9;Xep2*t>i(P=vFF1t(a-ojZ?SZcGOPf>1 z`vq?6XO(qr`KlXf&R#oJ$ZOI$*Lw^z)|+TRdP`(kYX@0Ff`URu+%j)2r;y4iWIk{}y`^V3So6N^$A98>a>QWZRN6Vp?JQWH}u3s0tk0+_+m L)z4*}Q$iB}F~gs= literal 0 HcmV?d00001 diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_wifi_in.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_wifi_in.png new file mode 100644 index 0000000000000000000000000000000000000000..ebd2001f5edd19d0d62db024875af3499b837204 GIT binary patch literal 492 zcmeAS@N?(olHy`uVBq!ia0vp^JV0!~!3HE%&(1akQY`6?zK#qG8~eHcB(ehejKx9j zP7LeL$-D$|6p}rHd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!tD z$=lt9;Xep2*t>i(P=vF40}UQ< z+0RYYYY+G}MzP1$u?@9=JzzB>DgRraQ2 zuIWk|NB_LOG5L(nzI^UCQ+8k4bvDIVnRV-%OX z4*9Ie&38<@z3#F(pM3}STnEeM_u=Qof&Ne}ag8WRNi0dVN-jzTQVd20hQ_)Emb!)p zA%+%K21Zr}=DG&vRt5&)CW~cJH00)|WTsW()}WRty%4BD5@bVgep*R+Vo@rCV@iHf fs)A>3VtQ&&YGO)d;mK4`s55xF`njxgN@xNA53QjT literal 0 HcmV?d00001 diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_wifi_inout.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_wifi_inout.png new file mode 100644 index 0000000000000000000000000000000000000000..cf5e825df48a0525b3856c25fbce4ce02e68d7fc GIT binary patch literal 615 zcmeAS@N?(olHy`uVBq!ia0vp^JV0!~!3HE%&(1akQY`6?zK#qG8~eHcB(ehejKx9j zP7LeL$-D$|6p}rHd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!tD z$=lt9;Xep2*t>i(P=vF>KW3Y7 zsWFUq0^_S0-5Sk$rR;aAb-F@ZcQFPpm^k-m#JQDh&-SsVZAv{eGtz7lYmj=hR@zMu z=2vkB!E2s}IQ|uiV3_Zv_LKYR8SX{Dc21F7 z!e7Sb3v|l_$}e_Z*5^y$&AECtMfm8odmI1!jQYg?{haOcOSPq!*eWjG+4`qfeEF13 zzaPYgB`yh__}gyj6rr*mRnc?1e($XccptHiBAEmL|SP=h4MhT#0PlJdl&R0hYC{G?O`&)mfH)S%SFl*+=Bsh|jF@O1Ta JS?83{1OO?9;!6Mk literal 0 HcmV?d00001 diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_wifi_out.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_wifi_out.png new file mode 100644 index 0000000000000000000000000000000000000000..5d8fd070fb7c7d693a464b1e59e0e32e4e1072c0 GIT binary patch literal 471 zcmeAS@N?(olHy`uVBq!ia0vp^JV0!~!3HE%&(1akQY`6?zK#qG8~eHcB(ehejKx9j zP7LeL$-D$|6p}rHd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!tD z$=lt9;Xep2*t>i(P=vFF1t(a-ojZ?SZcGOPf>1 z`vq?6XO(qr`KlXf&R#oJ$ZOI$*Lw^z)|+TRdP`(kYX@0Ff`URu+%j)2r;y4iWIk{}y`^V3So6N^$A98>a>QWZRN6Vp?JQWH}u3s0tk0+_+m L)z4*}Q$iB}F~gs= literal 0 HcmV?d00001 diff --git a/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_qs_signal_in.png b/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_qs_signal_in.png new file mode 100644 index 0000000000000000000000000000000000000000..e6a2f17b5b8bbbfbfb1bda9bcd90e93e098a7e8f GIT binary patch literal 571 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCmUKs7M+SzC{oH>NS%G}U;vjb? zhIQv;UIIA^$sR$z3=CCj3=9n|3=F@3LJcn%7)pVryh>nTu$sZZAYL$MSD+10f-TA0 z-G$*l2rk&Wd@@jkv%n*=7)X17vD?XPJD~C0o-U3d8TZ~!^Y&tP6miX0^x{<8QWYQycwyCnF5?FE}(%%%3e<(|hRl6wq~&Cu1{9mjBD z`RDjGJ14fNOx;vm`8)j;+d0*_UQ+uatEZG`yo|flyd+XH^-j416U&+8dmm5ETHj+B z-#EEq+x+kB8j7zZD!4YjKOk^CI%fBow%rOWPsQ?PiDmsde_+$H`@M}Ri?(fG2~(_^ z+!J&BZ*$fz=^*aVJE0wNN$VP1r@u5;%i`|7!j!n;{1<8F$S1BH^>6I{9&^ck$Wg(V zx7&Zep+bV#XPx@*+Xd}^o`0l1vHtG=Gt0~_bm({~{_8$F+YsuBxE~A-k2=kFeCbmG zhL38AYeY#(Vo9o1a#1RfVlXl=G}bk+)HN^-F*2|+F|{%<(KRr)GB9}WVh9X&Bn`Rw zDVb@NxHZg^>;%~$39=zLKdq!Zu_%?nF(p4KRlzeiF+DXXH8G{K@MJ0|5*a*Q{an^L HB{Ts5Mj*~) literal 0 HcmV?d00001 diff --git a/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_qs_signal_inout.png b/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_qs_signal_inout.png new file mode 100644 index 0000000000000000000000000000000000000000..fd40015de368468b85b78b76ce0857922b6278c5 GIT binary patch literal 719 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCmUKs7M+SzC{oH>NS%G}U;vjb? zhIQv;UIIA^$sR$z3=CCj3=9n|3=F@3LJcn%7)pVryh>nTu$sZZAYL$MSD+10f-TA0 z-G$*l2rk&Wd@@jkv%n*=7)X17vD?XPJD~CNJzX3_GVZ;d;p=rcK%~__NRVYCt8CZn zfE69u1?vC!Vj8^*nEhn7KJc5Z%Hh9nVy;)$^lqY{o^rtg9 z#&yY^|$4|*gntsD%w{MT}b8D`nyQ&Z`YHM zZz?fF*cv>~?$u`SX3%4ZVb{4lk;|eZ!nq|^~jpZhaBbW1|HMV##}o3m{>!7Nz+*seBNY3l}` zPxGFv{Qaeu(f0HEm!08-nxGO3D+9QW+dm@{>{(JaZG%Q-e|yQz{Ejrh*a{gQu&X J%Q~loCIEiE64(F$ literal 0 HcmV?d00001 diff --git a/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_qs_signal_out.png b/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_qs_signal_out.png new file mode 100644 index 0000000000000000000000000000000000000000..0a6d20acc26b2daf6b96389adf81a505b7300853 GIT binary patch literal 538 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCmUKs7M+SzC{oH>NS%G}U;vjb? zhIQv;UIIA^$sR$z3=CCj3=9n|3=F@3LJcn%7)pVryh>nTu$sZZAYL$MSD+10f-TA0 z-G$*l2rk&Wd@@jkv%n*=7)X17vD?XPJ0Rngr;B4q#=W=Ke7O!82(Ui5F1DvZ&TXNR z+$G~3SqB$)Uh2K|{E$eyK=#^cb#x$n2iIW|cZ(MK}s z^$&2{vKzeC)LYBM#8}R-&2UqXUPH>eYpU{E?bc_~g&$EN$<;Uws+k zf&lk+G2g#mwPFjSE=NS%G}U;vjb? zhIQv;UV>C6dj$D1FjT2AFf_CjA5L~c#`DCC7XMsm#F_88EW4Dvpc0k5)PZ!6Kh{JEEY~(#;AmF;clSNkf00WQn zLAEu{okz5EoIE|77cBRz5V7n&(Zn*5CFoA}o5`vF>*KF^_C2FC zDw-`}MTh+qJfgg2d7WD8b}8ag+@+m73Ljd1_A)ALE_L_h6WM0Z6m0!oy*?p@$@l@+ zoyOUc5$=;~JC|$bR1`6&ZT$V@a9N(xG6Qx!`NS%G}U;vjb? zhIQv;UV>C6dj$D1FjT2AFf_CjA5L~c#`DCC7XMsm#F_88EW4Dvpc0k4tPZ!6Kh{JEE8TuV|5OBRO!6M|^Cs4J+ zcZcIT=guR(8kUYxUS3=(D>5=B*>tTrddjG9;#S>-e8uL(iVsmlXwlHQ9|GNheG_FaJuHwKh zQM1&q-~T;w-79mqblkG|BJwu;)D;bA%P(9ky-rWgoFRI?G^#UK()j*q9i4;B-JXpC>2OC z7#SEE>l#?<8kmL{8CaQ^S{az=8kk!d7`%5e1cot^hTQy=%(P0}8sNS%G}U;vjb? zhIQv;UV>C6dj$D1FjT2AFf_CjA5L~c#`DCC7XMsm#F_88EW4Dvpc0k5aPZ!6Kh{JEEY~(#;AmVbKljEWR)0dvZ z9BZ5L#FluPNT(D@N=O>Lv9H*I@T7Sa5=xC zfI)5Vb^#xIc0C8)J8YSXv+7>^dN25N-#y{lwhunZQxx2nK4W{M@>X@~zn&!5Ex)c8glbfGSez?YnUh5sRGm>39=zL rKdq!Zu_%?nF(p4KRlzeiF+DXXH8G{K@MJ0|_!&H1{an^LB{Ts5OGB&| literal 0 HcmV?d00001 diff --git a/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_qs_signal_in.png b/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_qs_signal_in.png new file mode 100644 index 0000000000000000000000000000000000000000..f3245a0956b76758a72db4e6214fc873473c7ff9 GIT binary patch literal 689 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Ea{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ueoXKL{?^yL>WGgtNdSvKUBvfU(=jY&)Rwjh-%!Ar-gY-f;9f>>zUNqj{!i$zwn9 zF74@Z$Ch$6v47xD(sRjw$hoIo;gzn)6>g2(U*#9g4O*65iI{CrXV0P7ePPf0vo^D4 zbap_&iF%=3bqyjH)^%Li*OPeN^}0y>jq_5*Gw=DWR;UtoSh`^8%VY-gv~BrmH{MKb zu>Y@HkbZgU<|`k>xFi_Z<{0ib-0=MS*Q|M4ITtW6ZQ!zDP=0Xw{ME<88jalg`!cK@ zs+DzFEI#s0H;vVA6<1DNs;q?J|gS8TE1zSdCv{$J&`>UuX0wmD4i50q^KiZ@trn>92)sY={` z`S$^&=U9XjoZ-4D{pnq3^3ld0?yZ>gd zcS2k9-2z~&sFt`!l%yn9nO2Eg!#v4O6`%%5kPX54X(i=}MX3yqDfvmM3ZA)%>8U}fi7AzZCsRR5 Ohr!d;&t;ucLK6U<-~oLA literal 0 HcmV?d00001 diff --git a/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_qs_signal_inout.png b/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_qs_signal_inout.png new file mode 100644 index 0000000000000000000000000000000000000000..9f02b9d60d3f0cebccaf8efb7e9f4a2e93b4b5b5 GIT binary patch literal 835 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Ea{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ueoXKL{?^yL>WGgtNdSvKUBvfU(=jY&!-9CSgw($B>F!Z)f`F1se*q*VpMzeX-1X zm&S&q$geuFOiY~D6#NLD%B|>yOEM`dyD5-5R9o>zn-Mr^@Nd zz(vo0R@&sJ&3j_u_m+Xl&u)53#P-5&9&@K%*Cr{2Xgj2-Omb70vd@1jlZq3Ir}ZR0 z-;PI0A)Rx7AAH7sz&wGU@%ZO|Lc6o^*c@<$W6$4tX*)n zg>x;pK!fjt=C}XyXU8vzyC5^O`@ZSo`mD;&OF6^mJTd(7!$`jQ>I4zT=mXZ;_4T*r^vh2Zw98hLJs0%wxA(F` z=Cd`s!!_FCOgI0Y$xu7(a3@Etnai_|3-R7Mf(w2x%h;d$(WS*MzUPeK!u{dNoeYLz zZy4H7mTvqVGTYu=IeD{kr2fa>LLs;LPw?9q#-vyB{QuOw}yF=ohm>Lk{}y`^V3So6N^$A98>a>QWZRN6Vp?JQWH}u T3s0tk5;KFRtDnm{r-UW|eE3M{ literal 0 HcmV?d00001 diff --git a/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_qs_signal_out.png b/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_qs_signal_out.png new file mode 100644 index 0000000000000000000000000000000000000000..8452087f38537ff35470494227598a059f840cc3 GIT binary patch literal 675 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Ea{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ueoXKL{?^yL>WGgtNdSvKUBvfU(=jY&($go-U3d6}R4AH}pH~Akg}7yPATdvwN3= z``Jhh#z2SOBb*u<58UoFvRN?ddK}#w;U*m=kEAI_tLCTV${hW4?#-JF<(ZN1 z7#QQ{?+($i-Z7tvf2HMhy~z`DnW7w(Rx$-$e}B@9vDZb#bM~Zf%7Sy%6}>mU@0Rdy z2v1;9Nm%+iZo*Wz51bL~c{6upsHWWv{=4}>=z609hMvb&jN6n9SH9=;IKZ%@|LXsa zkEcexR|4gXNm)>4dd;-Z&=sv-OqT(mFd*AikrLRKAgR0-y^!dS?!(n173-5 ztHif_`=|Bcg2w-4zy9qC-@736((&M?_4`*hq$i|bjGJ)TbHjxvOSY@Mj0v)Qx=LlQ zx0IJvZ~DJ_PLpr{B=?6i?f!ag=JUPHsqFU*`U+KEy4lbF-TCvqXI0Prb1|GZ|7?s{ zGI8k?7LBDh51(Agl+~IRJ;RIpOGA#9!>s*W&mt?0v4GdR{kOFWaBccF@d7X&R7+eV zN>UO_QmvAUQh^kMk%6JHu7RblfoX`5ft87=m4S(_fw`4|!Fv}&VDuts$jwj5OsmAL zVV-2C3Q&V2$cEtjw370~qErUQl>DSr1<%~X^wgl##FWaylc}J@!rq|8Ep2Jz+SQ`HUS6A{&0ThP zZPHLmsDFrp|8y#{RaTgwZZOadM;XoyCq)=Wt0+^!ZH0LdF?U3eUDp4w{szVTXGz{3t(?zOv(Av>*@2n6EB zAR;13Wf*lKB|dTZW7Gt|)`S-8wR@unMAb;T6$j(aBvY6TKvPR5rKlswCI->4ru)fT z=RY6`E$%0K*eD%MNhqQ1%bKV=+a6Q1BdRY>wlot>84(L4k*yG!*du;&EvVjTCm|UoB3QS_rP2@*9Os5!mgC?P1VclHqVdhSpjTu$k>QE*MPhGe zd`RpHh0DJ1%1J#NDsrl8N~b2J#ng%K`mLbsKSOSg7a6hg>SO)X_> zhE6z&%Ahf3`$-(>S_;WjG`cRVTjfIGl2I8YML{=BC6i8GCA4LCp?|~J5N*XKQi$q8 zmN90kct3`ARmiw@n>%uVI2y6T)bOS#qai~bOCsHlg#0A_;*M)^5wZfyvmS|K8HN)e z6nGdGJOa(bAV+%zzM`=am-ESz9Hs?Y_CN?_PmmMBzJMGK@LT|fB&ouU=$5VMDysO^ zu-`J5-;^s#CQ@v}j2Xsgr2{$>hHY30BSlEv9PxNmQ8nE$>~S_|E#D9_wQ&>=n?{l- zRan$Eh=7*(FwaP`*UP|C<_r^%C7+LDy+N5_17w*S|36iua4?k99{*{ViV63iGhJ_f zyjVXzNXKW!#D``HuCIfbu60F^E|a$lmsZ;zy*%~(;uqr!ONZNj_;CvWtpLHSwdnSMHh1_P|1Y|L_B6YUZ-X;5oS8>R;MBw0pU#^=NnMVe6WIZfYmI z&2|LdDLxH5!17P;E;mw>1*_^UtFG_ro!RD^{>u*?Y+~D*YrJ1&S06jmwDiaJj?O$- zoSpviy%s)qsQuFLe31f;pC7vN%gf&#Uzj~RAGod$rn$=_?h2& zW=_F0{016e@$63P$gkCtdyYH5x=h0+`EOVh(ArRF8~_WW2cG)uNH~Z!Ktyg2oemC6 F{{s>N!khpA literal 0 HcmV?d00001 diff --git a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/ic_qs_signal_inout.png b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/ic_qs_signal_inout.png new file mode 100644 index 0000000000000000000000000000000000000000..e450506ab37b306f651369e060cb9b0a9cfa3f9a GIT binary patch literal 1474 zcmbVLZ%i9y7{6|vD?=tY3~mN@Ia~&j_IlU$dc9ES(LYe7fTcPxmi1_l(m?O(^|}_m ztQsXwH^%@cN;Wl_nb{VGY&yc+0RN7CnEC+)rw#>;a|D(p3`GIo1B&}VX5!`U-uHdp z=l6Sl&+|U-zVgzdlug?dUyN0bD^R?%81R`9iAlo42n_VG0= zY!5Pi*2yxy#%G7vJP2A}7jRXIm5vh1%Li4A{!xQ6uyI3qHB zz8`@DJ|nVA=TJLBX0|R++$69SO{FexQ@z*VLkjZYych)tf~?5Ev0wuirea29iI)O% z$&4cKl8abxM3zNWI?7=)FR-vqrBQm-7zPuB3e)Nc0?UPQHHM>V@DfT)OX&y-*TX9h z0-_1NTFPm$t;7N=BT^@dAqqvK(Wok_QSpKw#S8|6#DU{V;GqmRav~E`a^b85gM|%y zg+NFQ@Ej~LGBtceG$KIhatgta!?8-tg;xp%N`}Um5Q?ePXfP<{wd5TZo$S9d*7Od$ z8bd7VWW#(!@PhNG%}Rhl?d~2(as+CqG9dsCg=w(x-bj$;M7za^fE|@D;G-}dsnhE; zWws{4 zGd1!{wL<$z<`c5Wq>z$M%S`0qhMa;uX{8_E>pQw@Ex*f_<&mR9meb$ffVXdv zrO-@jSPuy8LsMS~Jy#>9v~S$=^B`#pg!9e&hVW zT>J&M=f#rRHy>!7cfa2@ZaUR^_Axy9zL{A6*4bz{^QG5rJ$2dt*puIdbfW+Dfm{GB)s~R7TC}v46AcK$DXkS^ zF-2^H%}`8rb$kJX05~#oB55V#4V!Q>SEvyx`$!Z9{Jv@qI zaw>%H_QlD#&clpc-)+E_?#6`F-7c{yeET*mnCB3I0xc2CD_Pa#@*%v$%b~q3CUC3- zvD!oUqEpFu6UJ)>#C&d#OCl)>V;DE(^)U>!6{AUtCP?%$F3QXK7>@R1OAn5$8L2ea z9EmR3LZ=X(u`Hb5yoKrq*dl zs2=IsvNFougALh0@Y($ef6{uRVNC-za?v$M3C||(m_j!26N7GDzq5^&@ z8t?>2KUK$&-hjW%v63#s3cL^{y`7NTK46Q&|OU)GJOrX{KpEZdcl zT{=MV9t3=#F2@^Cv@|23Y1wiIG-WhPGc%fw@huGYWL%VF)fPNu7iclw2sGsVFcmd4 z1uJEklUMM79D}FEaUUm3A8VaFX^WKOV$YF3}Ls&zuKiNLOp12 zmzy6Qmd6LGXl4vF99vFI76Dk*6N`is`N><8d!HTO@o3?@kAHfl-+gKLIyZeR{>hE> zg?HcovEqY{iVc<9^08ud!^jis4xOogdS-J~ao5-0!*_=EuLhtJ@c;~fjaMHp9DL{1 zuGjhjojA8WaF{2!IN(<9@jRM+n9qzVS;-VHE&He&WE$bBGpzn9vv*tlQW751ett AF8}}l literal 0 HcmV?d00001 diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_in.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_in.png new file mode 100644 index 0000000000000000000000000000000000000000..da4ffa277a9f352e1251a94e8fa7b3b6f51df43f GIT binary patch literal 425 zcmeAS@N?(olHy`uVBq!ia0vp^96+qV!3HGtKUiJ>QY`6?zK#qG8~eHcB(ehejKx9j zP7LeL$-D%qO!f%!WnidMV_;}#VPN3NZ5R21qFC64zGUQ>oa6Rb#Bk>>q z<(EF#x})NL>1);2IIgA#ne0r?X_E{d9%$UJwDp>T@0V{^+l2LmYc(q#cNuRJ;EG!z zX`QFIE-?DbHyL43Z=Y!oL_bY%X8O-xS>N=;0uEIgSC P3Ni*yS3j3^P6QY`6?zK#qG8~eHcB(ehejKx9j zP7LeL$-D%qO!f%!WnidMV_;}#VPNlgV4(yyf;YQ=LYs7e}QccDk^Yty(U`eSyhxW~8Xe{foZ-m(HYJ zk~td?a>ecKS1yqUY;%kZ7^+#{C+XjRkUK9lK+yVUoLVK%t-R$zYLye$-DY^!Kegn8 zfHh0bCwrfNE8c%(;67>U%eiFRE}#!oOI#yLQW8s2t&)pUffR$0fuXUkfu*jYL5QJ+ zm4T6!fw``Mxs`!IxXEH!6b-rgDVb@NxHYI{N-qRzkObKfoS#-wo>-L1;Fyx1l&avF bo0y&&l$w}QS$HxP6y6M;u6{1-oD!M<5oDyg literal 0 HcmV?d00001 diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_out.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_out.png new file mode 100644 index 0000000000000000000000000000000000000000..b8c8b4e8838c9ea3d613c6b1a117022c099f54a2 GIT binary patch literal 424 zcmeAS@N?(olHy`uVBq!ia0vp^96+qV!3HGtKUiJ>QY`6?zK#qG8~eHcB(ehejKx9j zP7LeL$-D%qO!f%!WnidMV_;}#VPN5Ib~X5#)jcs|9tU=rb9@quTbWj$54INGz%Z+U>jqbJ*!k&SoIM@4ySK~h7c%_} z6!zMXAA1Ps2GtVRh?11Vl2ohYqEsNoU}RuutZQJYYiJN+XklewWMyEkYhZ3=U=VJy zSQbS?ZhlH;S|x4`YMIgtff^)1HU#IVm6RtIr7}3CQY`6?zK#qG8~eHcB(ehejKx9j zP7LeL$-D%qO!f%!WnidMV_;}#VPN3NZ5R21qFC64zGUQ>oa6Rb#Bk>>q z<(EF#x})NL>1);2IIgA#ne0r?X_E{d9%$UJwDp>T@0V{^+l2LmYc(q#cNuRJ;EG!z zX`QFIE-?DbHyL43Z=Y!oL_bYQY`6?zK#qG8~eHcB(ehejKx9j zP7LeL$-D%qO!f%!WnidMV_;}#VPNlgV4(yyf;YQ=LYs7e}QccDk^Yty(U`eSyhxW~8Xe{foZ-m(HYJ zk~td?a>ecKS1yqUY;%kZ7^+#{C+XjRkUK9lK+yVUoLVK%t-R$zYLye$-DY^!Kegn8 zfHh0bCwrfNE8c%(;67>U%eiFRE}#!oOI#yLQW8s2t&)pUffR$0fuXUkfu*jYL5QJ+ zm4T6!fw``Mxs`!IxXEH!6b-rgDVb@NxHYI{N-qRzkObKfoS#-wo>-L1;Fyx1l&avF bo0y&&l$w}QS$HxP6y6M;u6{1-oD!M<5oDyg literal 0 HcmV?d00001 diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_wifi_out.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_wifi_out.png new file mode 100644 index 0000000000000000000000000000000000000000..b8c8b4e8838c9ea3d613c6b1a117022c099f54a2 GIT binary patch literal 424 zcmeAS@N?(olHy`uVBq!ia0vp^96+qV!3HGtKUiJ>QY`6?zK#qG8~eHcB(ehejKx9j zP7LeL$-D%qO!f%!WnidMV_;}#VPN5Ib~X5#)jcs|9tU=rb9@quTbWj$54INGz%Z+U>jqbJ*!k&SoIM@4ySK~h7c%_} z6!zMXAA1Ps2GtVRh?11Vl2ohYqEsNoU}RuutZQJYYiJN+XklewWMyEkYhZ3=U=VJy zSQbS?ZhlH;S|x4`YMIgtff^)1HU#IVm6RtIr7}3CNn{1`8HZzrA3I&2`|dR`;4BsOEg z|NqgEsw(UDmV3{g@N!YOL7;E4^TOGd3tCP3t;2;>JSTzB|3=0gzkfLyZ_8cWYEclr zC+eQbC%y{SJnk&63yjX8a*gS}pKi0T#WdEwP13USsASSJ&JOysphkOPHhT?|v}w+D zw~u<~-gE6^Zk}}OV(jzgPdp!lni$+m^XH!}sq6W9^i0wr_6z3X&u@M2lCG(rbjaUt z*PN`C8TGTOjhDpj?LTOJ@O8xAYnjncU(^PDTKctWxy%*LSGFHm_OM=^Vg7n&QP{?$+rLi literal 0 HcmV?d00001 diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_inout.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_inout.png new file mode 100644 index 0000000000000000000000000000000000000000..c824b9760fa281a0ba460996bde5170d0143426d GIT binary patch literal 721 zcmeAS@N?(olHy`uVBq!ia0vp^{6Or$!3HFc-q8IFq*&4&eH|GXHuiJ>Nn{1`8H>INpUF|6Wxpgx*O6{c z0n@5)|NqPROSsrnM2m_XXTEyFx@W@*cK+y-DVHwyznXPiZ%f9-MXufdTc%v{tIwDu z;bf^}ma4t>xNYO%Sk`34lT|jXc_z#)dpssa?qFb>Rc^d{m8WO&gV4_ouT42EH*c+B z{W9gk z`+9=uk7m~1WwuspYnPku??0GnZ}>LubL*=0PtF|o`d94zVwdc`Fm>B~?g4k014_4A zFwEPs`L}>*JZt$mcEuKl>$lmTsAWGq{^1P!_q^{VM}Be4%Dcf+Ve*X2;_>Sj`&5%_ zL-W^q1$=TjNn{1`8HZzt{MI^-bW`d&wI(ZQf* zwzYr%uivzZJ7UI~v$Av7WXrWC7_uKSdcSiwqs;NbIrU1%ETpDewkrMHVo)A+PF_u@ zJek*dnMe5@rX3$x7(8dEs83dI=z9Jm<+ACf6>J61BQM%dnBaG9sy~C5*pw}~e`0gC zyt-oB&}S)|JNMtEd6(}LM4fN5ef!M0cu}cuFaPF67uHGEXY#8#Ze3?`aG%m&=C=nk zVx`x<{IB8m+ih#~S@*K{5cptHiBAEmL|SP=h4MhT#0PlJdl&R0hYC h{G?O`&)mfH)S%SFl*+=Bsh~(=@O1TaS?83{1OOW?!-xO? literal 0 HcmV?d00001 diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_wifi_in.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_wifi_in.png new file mode 100644 index 0000000000000000000000000000000000000000..6cf0a4b2e815689033a0024561ec2b49862348fe GIT binary patch literal 550 zcmeAS@N?(olHy`uVBq!ia0vp^{6Or$!3HFc-q8IFq*&4&eH|GXHuiJ>Nn{1`8HZzrA3I&2`|dR`;4BsOEg z|NqgEsw(UDmV3{g@N!YOL7;E4^TOGd3tCP3t;2;>JSTzB|3=0gzkfLyZ_8cWYEclr zC+eQbC%y{SJnk&63yjX8a*gS}pKi0T#WdEwP13USsASSJ&JOysphkOPHhT?|v}w+D zw~u<~-gE6^Zk}}OV(jzgPdp!lni$+m^XH!}sq6W9^i0wr_6z3X&u@M2lCG(rbjaUt z*PN`C8TGTOjhDpj?LTOJ@O8xAYnjncU(^PDTKctWxy%*LSGFHm_OM=^Vg7n&QP{$E5%O literal 0 HcmV?d00001 diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_wifi_inout.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_wifi_inout.png new file mode 100644 index 0000000000000000000000000000000000000000..c824b9760fa281a0ba460996bde5170d0143426d GIT binary patch literal 721 zcmeAS@N?(olHy`uVBq!ia0vp^{6Or$!3HFc-q8IFq*&4&eH|GXHuiJ>Nn{1`8H>INpUF|6Wxpgx*O6{c z0n@5)|NqPROSsrnM2m_XXTEyFx@W@*cK+y-DVHwyznXPiZ%f9-MXufdTc%v{tIwDu z;bf^}ma4t>xNYO%Sk`34lT|jXc_z#)dpssa?qFb>Rc^d{m8WO&gV4_ouT42EH*c+B z{W9gk z`+9=uk7m~1WwuspYnPku??0GnZ}>LubL*=0PtF|o`d94zVwdc`Fm>B~?g4k014_4A zFwEPs`L}>*JZt$mcEuKl>$lmTsAWGq{^1P!_q^{VM}Be4%Dcf+Ve*X2;_>Sj`&5%_ zL-W^q1$=TjNn{1`8HZzt{MI^-bW`d&wI(ZQf* zwzYr%uivzZJ7UI~v$Av7WXrWC7_uKSdcSiwqs;NbIrU1%ETpDewkrMHVo)A+PF_u@ zJek*dnMe5@rX3$x7(8dEs83dI=z9Jm<+ACf6>J61BQM%dnBaG9sy~C5*pw}~e`0gC zyt-oB&}S)|JNMtEd6(}LM4fN5ef!M0cu}cuFaPF67uHGEXY#8#Ze3?`aG%m&=C=nk zVx`x<{IB8m+ih#~S@*K{5cptHiBAEmL|SP=h4MhT#0PlJdl&R0hYC h{G?O`&)mfH)S%SFl*+=Bsh~(=@O1TaS?83{1OOW?!-xO? literal 0 HcmV?d00001 diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_qs_signal_in.png b/packages/SystemUI/res/drawable-xxhdpi/ic_qs_signal_in.png new file mode 100644 index 0000000000000000000000000000000000000000..1094bc31a5a81c77f860db72f83502a474767a1c GIT binary patch literal 1212 zcmbVMUufM_7!M9aCM^hxbWd3ZL#;Q-$-PPLjlC_o$-VBvQp@dacUc{4nw<7#ZF15i z-A#+wt@STxeeglli7(3RO81vhb*y8s4P}VFbXp&#D5b1c9s4U3#FN{5s}E%l9+I4M zzVrQl-=Fh+d9$Pa`G&3Awh{!i@cblxdmniifA2NiSj1CPkSztBs6VLa9wcNF z^+7Uk>jSU=b#rw1YuG{%Tgq0k6qK~xl7Vbmk96qJb}^bDTG~QaHwIxq_Q3(mNmGBG zyFihanWpye8mqYqEL*$AJlHwbUNpuAjg(2XwURBNgb8dI=wxUQIldI8sVc98*O8c^ z$f`;(n5Nd9Drp_0f;>p_bUbFT0FZ(}g9I-K;8~Jm0mrcT5n>=A@q)yOWNlE`nrHS) z1vOW*g?DMH90ab!FqKM$uEc5N4KN^;N<|zT7sDDcf7A)|Fy{C>>I^FM4bO4|3pr%O zsQ00fAWdOU*F&&fP1_)L{92-L%9v1h89=j)ZAWocwf&#~|8-+iZNE6`LZ$$HG~yZf zKKggm!8mshHWVphZ=@GI3tx&pq#|R)hE9-I(-c0TP0N%3pX5b8t_VEG2}uBwBFH7< zNmc|IflVaEI>%<%xWEH7E+haaa{y%HaxRyV1t7~H%PSd?t7G$yALxz&>vk<{w}y>B z5GyGj)C1%d5gMvjKt~w`$S)(8R5}InDNQ#lClWjzUC?^GD)g*_(9C(rCaW2itW7)+ zlcJoVkf_JI!W z84owd6!_*j+*m7lRW611^xa$#;HUYkT|5)DM@m7vDOoN#u98_7Bea z@9v~uN*#V^=bh_o#}`(=d~HkPX5+eZ@BN?7-u__n=*g+^LrDK<`RLNN?%xN9kB?kV zjlZ(=%GhL;%({Qi9h#hMzWrD)@e8|qc>4wAZuCFNXWP}|ncj(i049H* Awg3PC literal 0 HcmV?d00001 diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_qs_signal_inout.png b/packages/SystemUI/res/drawable-xxhdpi/ic_qs_signal_inout.png new file mode 100644 index 0000000000000000000000000000000000000000..1037b02bef4bea8cc5f2809ccdd240f9646719dc GIT binary patch literal 1339 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 literal 0 HcmV?d00001 diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_qs_wifi_inout.png b/packages/SystemUI/res/drawable-xxhdpi/ic_qs_wifi_inout.png new file mode 100644 index 0000000000000000000000000000000000000000..374632860f71acf0abac5424960a2c5c8417bace GIT binary patch literal 1339 zcmbVMZA=?w96vQ7%N)3A0&YWhxjCoN-dlUu_N1_**N%z>EM0g>3_E%cJ6(A1j!DR2qC!U!Lf5y7M!nVkADZ3^`@`dtkfFJq^JXgm$Z6- z1{5(0LO_&Sng>Avg51+6hpWx%;4@rAQ*hDJ!Ba{cq7kH^C>0kYF<_$gAS$aKZ0gf~ z43#AhR>cI#VB8BD<&st%RJN9dBdxKBTf&M8(Sj5Q2^3(8Xi8~P4KC%u(!3npTVeu3 z(<)}ngDpB$9jrjTnhsC~x7#8lMWHN%96=YV zQht}+MLMZsmUOtB8IBdPeutByoIFMIG)4LByx(8UvlP!$KE_+@q%+unYM7!L0U5ip zWp@$lz9W|N>OeF#J*;U>nGUFE)J)B2)Z(bOl0_d2iV<101dm$z_Q=OwWvtn`1fMnGo>t37UOmy8JZptW6Y zet1~EK0t+cMu(SU=(q3|1i4EN2z)s8{nc-SrKh&7Ju@wh4YWQ`s~y@}K7VV|z_Ev8 zpLb4UJv9%C7bk~?zsM2}zWV02&Z43N=SrXAMqfLUmAx_N^t$c&&9_YpCI6`J-8gsR z?Usw4!s)rgmzt0EjVk?@=JxHrcJ_yt=D&L4}1*N$zC{rG!($CvGlhv^<@ zeLlQ*W~4iJeDIx~iS+2kCkDH7W)IhX=9{j$Kv=;R~i zW5@WZ)WX%Knl(2&=7_R^-1)b-yt*6vV$ri$-yVm3^un6`r+WLMyG_#}EF`39aQv28Yt7fs@M{lhgBku3LPL1}~g%U%%_byyp m_-IG|lx@%E_T$nE_marnomKO-%qJgPzq5d^Oz0`z`O3ffXYDos literal 0 HcmV?d00001 diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_qs_wifi_out.png b/packages/SystemUI/res/drawable-xxhdpi/ic_qs_wifi_out.png new file mode 100644 index 0000000000000000000000000000000000000000..dbf54ce62a0ba8ed6c8c0210722335fb59f09f5b GIT binary patch literal 1186 zcmbVMU1$_n6dn{sB5NuQgj9uLe5iuEGk139XNOF~?9Q%P=p=Eo+O$G(GINt1lKJV( zU3Ydd*dIjtQo#p(u;7zaQb`ew1XQeu4HdC17_2@>@l6|zBK{ykytB!sc?dpqn3?-C z=ljlg&OK+o@9WtaYx$^!Ac$C@TP@sjg4R&QQVxHbgoZ+M`Y&g)-IPmGC^;rYW*v zf<|O&LDYcOM`m3gl3XGgHy8j&o=<=j$MawZ$ufYY8GQ3`kdioFVg+*XqOdpL9FmG^ ze$f|R$y6C3Pon8+wVJ3V6Rtl@gLFC_ajW*q{s*$ z!!s#SXmYHG&8GwagdAWM7Jyt*$>%c)4-^IDxNJsXo7jRAAl)%w)2|izUBIgE#Y$Np z>d5s=t~=VSfWESe+@S1wWVW9tw`sazInl=U=ztdDRiSU~hi2Y)ZL*PJ$yz~yAPP!8 zqcS|hGL6VtR>_L#6v!(Ilgl#HBG&vrS);KSIx3H4<;u+*p4WRHYQ&oBjK*mhZ^6uXTBL=&{px@r3;A{rQKhgsb0lYtOgMKIrUTD^P9B+R{rC2Vt&{wdYj0)`^%f@6 z{q)B_YsI2gaQAt)JE`(-BVB)-%MBvDU)W Sx$2M6U!#!gQ71C{zI_Lh9FQ#l literal 0 HcmV?d00001 diff --git a/packages/SystemUI/res/layout/quick_settings_tile_rssi.xml b/packages/SystemUI/res/layout/quick_settings_tile_rssi.xml index 34506b161ff7c..cabfaa5055606 100644 --- a/packages/SystemUI/res/layout/quick_settings_tile_rssi.xml +++ b/packages/SystemUI/res/layout/quick_settings_tile_rssi.xml @@ -13,32 +13,49 @@ See the License for the specific language governing permissions and limitations under the License. --> - + android:layout_gravity="top"> + + - \ No newline at end of file + \ No newline at end of file diff --git a/packages/SystemUI/res/layout/quick_settings_tile_wifi.xml b/packages/SystemUI/res/layout/quick_settings_tile_wifi.xml new file mode 100644 index 0000000000000..e61c5956c941d --- /dev/null +++ b/packages/SystemUI/res/layout/quick_settings_tile_wifi.xml @@ -0,0 +1,57 @@ + + + + + + + + \ No newline at end of file diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java index 0d591ba3c0165..68ee2b56c8ac5 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java @@ -16,6 +16,7 @@ package com.android.systemui.statusbar.phone; +import android.animation.ValueAnimator; import android.app.ActivityManagerNative; import android.app.AlertDialog; import android.app.Dialog; @@ -62,6 +63,7 @@ import android.widget.ImageView; import android.widget.TextView; import com.android.systemui.R; +import com.android.systemui.statusbar.phone.QuickSettingsModel.ActivityState; import com.android.systemui.statusbar.phone.QuickSettingsModel.BluetoothState; import com.android.systemui.statusbar.phone.QuickSettingsModel.RSSIState; import com.android.systemui.statusbar.phone.QuickSettingsModel.State; @@ -401,8 +403,9 @@ class QuickSettings { private void addSystemTiles(ViewGroup parent, LayoutInflater inflater) { // Wi-fi - final QuickSettingsBasicTile wifiTile - = new QuickSettingsBasicTile(mContext); + final QuickSettingsTileView wifiTile = (QuickSettingsTileView) + inflater.inflate(R.layout.quick_settings_tile, parent, false); + wifiTile.setContent(R.layout.quick_settings_tile_wifi, inflater); wifiTile.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -433,12 +436,15 @@ class QuickSettings { return true; }} ); } - mModel.addWifiTile(wifiTile, new QuickSettingsModel.RefreshCallback() { + mModel.addWifiTile(wifiTile, new NetworkActivityCallback() { @Override - public void refreshView(QuickSettingsTileView unused, State state) { + public void refreshView(QuickSettingsTileView view, State state) { WifiState wifiState = (WifiState) state; - wifiTile.setImageResource(wifiState.iconId); - wifiTile.setText(wifiState.label); + ImageView iv = (ImageView) view.findViewById(R.id.image); + iv.setImageResource(wifiState.iconId); + setActivity(view, wifiState); + TextView tv = (TextView) view.findViewById(R.id.text); + tv.setText(wifiState.label); wifiTile.setContentDescription(mContext.getString( R.string.accessibility_quick_settings_wifi, wifiState.signalContentDescription, @@ -462,7 +468,7 @@ class QuickSettings { startSettingsActivity(intent); } }); - mModel.addRSSITile(rssiTile, new QuickSettingsModel.RefreshCallback() { + mModel.addRSSITile(rssiTile, new NetworkActivityCallback() { @Override public void refreshView(QuickSettingsTileView view, State state) { RSSIState rssiState = (RSSIState) state; @@ -478,6 +484,8 @@ class QuickSettings { } else { iov.setImageDrawable(null); } + setActivity(view, rssiState); + tv.setText(state.label); view.setContentDescription(mContext.getResources().getString( R.string.accessibility_quick_settings_mobile, @@ -942,4 +950,25 @@ class QuickSettings { } }; + + private abstract static class NetworkActivityCallback + implements QuickSettingsModel.RefreshCallback { + private final long mDefaultDuration = new ValueAnimator().getDuration(); + private final long mShortDuration = mDefaultDuration / 3; + + public void setActivity(View view, ActivityState state) { + setVisibility(view.findViewById(R.id.activity_in), state.activityIn); + setVisibility(view.findViewById(R.id.activity_out), state.activityOut); + } + + private void setVisibility(View view, boolean visible) { + final float newAlpha = visible ? 1 : 0; + if (view.getAlpha() != newAlpha) { + view.animate() + .setDuration(visible ? mShortDuration : mDefaultDuration) + .alpha(newAlpha) + .start(); + } + } + } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java index b9e3059d4f286..9d0418dab44d5 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java @@ -70,13 +70,17 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, int batteryLevel; boolean pluggedIn; } - static class RSSIState extends State { + static class ActivityState extends State { + boolean activityIn; + boolean activityOut; + } + static class RSSIState extends ActivityState { int signalIconId; String signalContentDescription; int dataTypeIconId; String dataContentDescription; } - static class WifiState extends State { + static class WifiState extends ActivityState { String signalContentDescription; boolean connected; } @@ -430,6 +434,7 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, // NetworkSignalChanged callback @Override public void onWifiSignalChanged(boolean enabled, int wifiSignalIconId, + boolean activityIn, boolean activityOut, String wifiSignalContentDescription, String enabledDesc) { // TODO: If view is in awaiting state, disable Resources r = mContext.getResources(); @@ -438,6 +443,8 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, boolean wifiNotConnected = (wifiSignalIconId > 0) && (enabledDesc == null); mWifiState.enabled = enabled; mWifiState.connected = wifiConnected; + mWifiState.activityIn = enabled && activityIn; + mWifiState.activityOut = enabled && activityOut; if (wifiConnected) { mWifiState.iconId = wifiSignalIconId; mWifiState.label = removeDoubleQuotes(enabledDesc); @@ -468,7 +475,8 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, @Override public void onMobileDataSignalChanged( boolean enabled, int mobileSignalIconId, String signalContentDescription, - int dataTypeIconId, String dataContentDescription, String enabledDesc) { + int dataTypeIconId, boolean activityIn, boolean activityOut, + String dataContentDescription,String enabledDesc) { if (deviceHasMobileData()) { // TODO: If view is in awaiting state, disable Resources r = mContext.getResources(); @@ -481,6 +489,8 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, mRSSIState.dataTypeIconId = enabled && (dataTypeIconId > 0) && !mWifiState.enabled ? dataTypeIconId : 0; + mRSSIState.activityIn = enabled && activityIn; + mRSSIState.activityOut = enabled && activityOut; mRSSIState.dataContentDescription = enabled && (dataTypeIconId > 0) && !mWifiState.enabled ? dataContentDescription : r.getString(R.string.accessibility_no_data); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java index 1e7e6927b2e66..a7154503697fb 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java @@ -165,9 +165,11 @@ public class NetworkController extends BroadcastReceiver implements DemoMode { public interface NetworkSignalChangedCallback { void onWifiSignalChanged(boolean enabled, int wifiSignalIconId, - String wifitSignalContentDescriptionId, String description); + boolean activityIn, boolean activityOut, + String wifiSignalContentDescriptionId, String description); void onMobileDataSignalChanged(boolean enabled, int mobileSignalIconId, String mobileSignalContentDescriptionId, int dataTypeIconId, + boolean activityIn, boolean activityOut, String dataTypeContentDescriptionId, String description); void onAirplaneModeChanged(boolean enabled); } @@ -313,22 +315,33 @@ public class NetworkController extends BroadcastReceiver implements DemoMode { boolean wifiEnabled = mWifiEnabled && (mWifiConnected || !mHasMobileDataFeature); String wifiDesc = wifiEnabled ? mWifiSsid : null; - cb.onWifiSignalChanged(wifiEnabled, mQSWifiIconId, mContentDescriptionWifi, wifiDesc); + boolean wifiIn = wifiEnabled && mWifiSsid != null + && (mWifiActivity == WifiManager.DATA_ACTIVITY_INOUT + || mWifiActivity == WifiManager.DATA_ACTIVITY_IN); + boolean wifiOut = wifiEnabled && mWifiSsid != null + && (mWifiActivity == WifiManager.DATA_ACTIVITY_INOUT + || mWifiActivity == WifiManager.DATA_ACTIVITY_OUT); + cb.onWifiSignalChanged(wifiEnabled, mQSWifiIconId, wifiIn, wifiOut, + mContentDescriptionWifi, wifiDesc); + boolean mobileIn = mDataConnected && (mDataActivity == TelephonyManager.DATA_ACTIVITY_INOUT + || mDataActivity == TelephonyManager.DATA_ACTIVITY_IN); + boolean mobileOut = mDataConnected && (mDataActivity == TelephonyManager.DATA_ACTIVITY_INOUT + || mDataActivity == TelephonyManager.DATA_ACTIVITY_OUT); if (isEmergencyOnly()) { cb.onMobileDataSignalChanged(false, mQSPhoneSignalIconId, - mContentDescriptionPhoneSignal, mQSDataTypeIconId, mContentDescriptionDataType, - null); + mContentDescriptionPhoneSignal, mQSDataTypeIconId, mobileIn, mobileOut, + mContentDescriptionDataType, null); } else { if (mIsWimaxEnabled && mWimaxConnected) { // Wimax is special cb.onMobileDataSignalChanged(true, mQSPhoneSignalIconId, - mContentDescriptionPhoneSignal, mQSDataTypeIconId, + mContentDescriptionPhoneSignal, mQSDataTypeIconId, mobileIn, mobileOut, mContentDescriptionDataType, mNetworkName); } else { // Normal mobile data cb.onMobileDataSignalChanged(mHasMobileDataFeature, mQSPhoneSignalIconId, - mContentDescriptionPhoneSignal, mQSDataTypeIconId, + mContentDescriptionPhoneSignal, mQSDataTypeIconId, mobileIn, mobileOut, mContentDescriptionDataType, mNetworkName); } } @@ -1125,6 +1138,11 @@ public class NetworkController extends BroadcastReceiver implements DemoMode { + " mBluetoothTetherIconId=0x" + Integer.toHexString(mBluetoothTetherIconId)); } + // update QS + for (NetworkSignalChangedCallback cb : mSignalsChangedCallbacks) { + notifySignalsChangedCallbacks(cb); + } + if (mLastPhoneSignalIconId != mPhoneSignalIconId || mLastWifiIconId != mWifiIconId || mLastWimaxIconId != mWimaxIconId @@ -1136,9 +1154,6 @@ public class NetworkController extends BroadcastReceiver implements DemoMode { for (SignalCluster cluster : mSignalClusters) { refreshSignalCluster(cluster); } - for (NetworkSignalChangedCallback cb : mSignalsChangedCallbacks) { - notifySignalsChangedCallbacks(cb); - } } if (mLastAirplaneMode != mAirplaneMode) {