From efba3235fcd5b71e17de13edd4be9819970014a9 Mon Sep 17 00:00:00 2001 From: Winson Chung Date: Thu, 27 Sep 2012 16:56:42 -0700 Subject: [PATCH] Fixing various QS issues. (Bug 7217102) - Certain tiles were not updating strings based on configuration changes - Updating bluetooth icon - Fixing issue where QuickContacts is not being launched per-user Change-Id: I5936e856b5454d608f9c7ddb6b81d9b566bb03ea --- .../android/provider/ContactsContract.java | 3 +- .../res/drawable-hdpi/ic_qs_bluetooth_off.png | Bin 1976 -> 1927 bytes .../res/drawable-hdpi/ic_qs_bluetooth_on.png | Bin 1976 -> 1928 bytes .../res/drawable-mdpi/ic_qs_bluetooth_off.png | Bin 1333 -> 1261 bytes .../res/drawable-mdpi/ic_qs_bluetooth_on.png | Bin 1334 -> 1262 bytes .../drawable-xhdpi/ic_qs_bluetooth_off.png | Bin 2758 -> 2694 bytes .../res/drawable-xhdpi/ic_qs_bluetooth_on.png | Bin 2760 -> 2695 bytes .../layout/quick_settings_tile_airplane.xml | 1 - .../layout/quick_settings_tile_bluetooth.xml | 1 - .../layout/quick_settings_tile_brightness.xml | 1 - .../quick_settings_tile_rotation_lock.xml | 1 - .../layout/quick_settings_tile_settings.xml | 2 +- .../res/layout/quick_settings_tile_user.xml | 1 + .../SystemUI/res/values-sw380dp/dimens.xml | 21 ++++++++ .../statusbar/phone/QuickSettings.java | 23 +++++++- .../statusbar/phone/QuickSettingsModel.java | 49 +++++++++++++++++- 16 files changed, 93 insertions(+), 10 deletions(-) create mode 100644 packages/SystemUI/res/values-sw380dp/dimens.xml diff --git a/core/java/android/provider/ContactsContract.java b/core/java/android/provider/ContactsContract.java index 54a2273bf076f..b3ab3857374ef 100755 --- a/core/java/android/provider/ContactsContract.java +++ b/core/java/android/provider/ContactsContract.java @@ -37,6 +37,7 @@ import android.graphics.Rect; import android.net.Uri; import android.os.Bundle; import android.os.RemoteException; +import android.os.UserHandle; import android.text.TextUtils; import android.util.DisplayMetrics; import android.util.Pair; @@ -7744,7 +7745,7 @@ public final class ContactsContract { intent.setSourceBounds(target); intent.putExtra(EXTRA_MODE, mode); intent.putExtra(EXTRA_EXCLUDE_MIMES, excludeMimes); - context.startActivity(intent); + context.startActivityAsUser(intent, new UserHandle(UserHandle.USER_CURRENT)); } } diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_bluetooth_off.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_bluetooth_off.png index d5650a76bfe95a7edb42e9a2f0f6c9d1fba216c9..7c6ca7534d817976510e3ae97eee11b5ef14621c 100644 GIT binary patch delta 1754 zcmV<01||8p4~Gwslz&%AL_t(&-nE)(s8v-I$A9Mz^+cnA)G#avGDsAw8%-Z7f`S)K zSWyrW(LfSbmNXF*QNE}M8`bEG22s)k4MtyGI1A^a7gJ)r7YHIf0y{8XrEzf$# zGweIO1&?>nIeV|Q{(FskpA*pm4Gj(X%PLR-Mu8Zh(P)&-i+_L`&;puvGjCoIMO`W$ zs}e?iz=^KNfTw{=Gn5Ub7VtIj1n_MqAlemd0u}=6fy;CeMiCci>1x_v zGj(k)*VH+Y@_$&bJX`JRRB8dY`lkGYzzZZkTg{moEB`X3JfDTi`>-X-tPqOUyUl=8 zu39i>Kkzdtx5%KX@``~)DkInug@fGcTQ+%|B>j~MScnAm=Ok&iY=LSjTh{fP(k}3G`M<#<9HsU^FQQ08Y3CYmuB5@D{LuBqpvRDRxcAcM<^<3gBp` zw5`;3q!ay+q^B>cw$?I_0=x8H6F5QtY_;Q*%zv%`*oq$Il(2jE0c#OAxC!_b*$3E4 zdur;u1Hg5_3cY^{uo^gzBij>`*%KG?<09Zc5+4P47pW7A^}6n!S&y>^xElCG@1F*I z37n|_D+MyU2H=%91y=wc0n_!~9^ii95?~`q&(nu&CHs-h3&0FjeugSvr9%n@U@Pi_ zxPOUkB{u7Ji6(FbFa*qJY|CtE_F}|3(~wNmvD@?#fblSEOhf|t z`3(M5;7@nI6)Ir70T{)qu_WSi|IEyQ#r z&x6!~hY)w#OyXWy{7d%&?EtU}8|6H!0iPjxes^lz6eN83> zs<#awFC&=p?*nszeMtIyfTYlks+>oG?~v6;6@Lo22>8bFj7wy;1;ChPnbVYCj(@Zg zcHa3q@UXj%NZe^A;%1ALXC0{{bAcT>G7DoQ)B=Z6t77fJ65uu`>^0yHq$+!g7~AX( zJ0h#GO{kV4m<`tM-srxkcQCsMj0|Y z24Lpfo3a4FPB&&La5v)DS!B)HfPVt7>%CVH3tF6b8G9Z7T&fX9e`f%A8R<%A0(X($ z8nlq!ekl^jbp^TzxL4+Zcj393GNCs$s zAiOK3Lnei~&@kCPY5U?VJ_cqB5-X^}^MPk5K3_e66vM6o82!bOY0lDP8GnzxNJeQP z8~Vj0`{#77H{RQkf>=r+7N{U*A55)mDAjcSjli2EZjyI64D$MEgrt6S20&jf*qHVD zKcqr>>x>{9n&nQRs9>I#Rq5&lhn@^uk@^%ds}JNnvR6$lWQ+L@l8K7^-n!Y{Dhr_5 z)#EaD}iGue<@--SE#HC5cld8ldbpw@C%a5i%yp(APwFc zb$K^e-^)!RPxyTvk7H6Rv$$z&KS$}>^taBGA zuR)S+W-xX0se!F-9XK0#1vMKvE<6c|17GwGA}z@d;3s77ya`FORu{(SQ-d5Jmg}=t ztVZ%S)5eaH9r)Hm6@KZ`GXNzR%9!!((Eq&+`CNOn0W$yq03~!q zSaf7zbY(hYa%Ew3WlsPyFflSMFgYzUH&ih-Ix#RhH8(9VH##sdB*+EJ0000bbVXQn wWMOn=I&E)cX=Zr_J&6^r44kMKs}uj8Y2| z>|q&Ykx5YzMo~fZq^A){4-2I1VGk|K(Fpt!(K{F#MhbdZQG}XJ20CMC&NTPYhqabx z&-Og_?G7%uoH=vPTKoTBYwfky-seU%DZRbD?rjOE>j!|&&VSBk^ox3}h3fkf{ZHTp zprIdtGH?Vi0T>S)pr8%~27z6wvjgY{eg_5|;v?)eLn4Sk0{A*G2Dk{g1UM6z2($&* ztO2`$pMfuc)j*HxMMf%=M6(2n3Sb8CJaCeF&9&1|5bpmX?~3>QyTGl$Uyg%47>Br(8P{iMs+xm~&>>_$@_%xPnXqj`jW*BEv|!EdlOO5^jXj z#yefFHF6}Bz!deSU-Pqc04_vUWq@aZ+t_y%Pr@?=7#lKPDgh0hDIXu|5zp=d;0^t| z1U!dK(tj)x0EYudCO9OVfQk(;G2uH~#F9YRpnn5%fED^|30MZ)ltZE&N!ykQ*kqjG z8Ebgor+L!K?Ly!+;#GS&aD9Tk$gz1;s{|s)@OY0@1Uw5|Rs10DeuBkADo!oEZ%E5LO~ z^{SAZ^S*Pk$TdZvNcv*plDHSyC%co_`hWUKNTkX+;G34wFysQBjr1}0f9pm!1GgtU zzh4N{$nW7xzz@Jo;7_$1A*B)|if;n<;B46U7lAA>@Eedaxk>M>NywLKjkEdq5Vk$(jK z1EgKvuC~g+%f$N!Bfc6qSwTg>wLo_ci6OnV)J}tha?tUpb(8Cmy1olZi6XKZUkUu< z**_XstJk{f%m;oYJ|OmGkN^pdfJ>mDUY_rGsetrDbCJ65+Z_TLSt`)lB454Zu|Y4=%2D_I2GUDts3 zzg5V|!LWMuGSZteh>vErA$tIjs2=7JFfjuDn2D0tZ&=OV;TW$Yn~fE~Z^-d_jr_i* zA4#!pwQ~>>$!UySosGcu(In947_+mTQ-RZno3f;VY;x{II?`^n+2MentJxXgU4PvTdd=Mvgq+NkkX--B^KPiLA+5xm9PkjY${*TTEgi3` zvH|WQeW6OTTS8Xoivz&hI6c5u=D^W-!C^JJ2dN&A-9@@>!Ahij=7Dz!JcU!PMhjSRu@@CQf>uOKJ&mgh<9#lkw`~Ct>u?|o_7ksPsn-b0CBz=V1M&^6>0Vs60gt= z@8j#0k#*t*chHcRe9gY-wv~A@^1@f)PH~MkwL`HjP`=b8a%-Xwz+SF=qJg4PV)Z8Vf**K0000bbVXQn zWMOn=I%9HWVRU5xGB7bREigGPGB8vzI65#eIxsdZFgH3dFtG$j&;S4cC3HntbYx+4 uWjbwdWNBu305UK!GA%GUEiy1vF*rIfFgh?cEigAaFfhPb{{d{1RtGW3A6Y2? diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_bluetooth_on.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_bluetooth_on.png index 7d6fed5bbd14f2292a4842b9c64a78a9622549fc..ff0ba07cde09bb359d702a3e217a9c89560e285d 100644 GIT binary patch delta 1755 zcmV<11|<2o4~P$tlz&)BL_t(&-nE)*h*eb-$A9-#BN{zO4aI^WgG8|`dVQz}3PyTi zML|SF50bF5q!&REu8A7*qh? z1Dk-4fh`Kuc(w&13P6tX7XnWMmt`m$OD*6l;0fTHPC&FP*aR#9)&rO8A`Bre(9+ek zzh>&%T&}5eDu2pjz4C0et5c~3-0GY14+1X`e72S|HBtU$N_jpDl=l%!lvyDbt#_L~ zr(CUI&H>;jQf`q!HRY863spw6B?T0pJF;gw4-eOas_!`juHA#?LIsE^vZk$UxK(OI#lb0wfN+?2Z9gaE(D+C>FFQ zD|j&=48U|kB`;jCSY^f|6}BBR!Dk}5K0#WDA`mubA}}FFNQ?ylChLlH0$?og0dOs1 zjl&9J6@U4b=uw%TPgelO6Wpn-1`z3gdVm$c&4^!{B@Bf5x|cD*-Rl~_3Hsk>7vC0Z{zP9~bbmB4qvJchT-mS!(OtTPG8L>;@$NCGe(W{t5( zAU~hMzXts2?zdtEj5YwHM3vkKyyWg#3V&S<%m7{_q)cD9MioF=yI>oUHAuGEL1-bS zAbB374m^ao(-wkzW$`cF3$z2kDr_a^SsnNk$@6LxlT_L#BG{nsoDbEH{N9F)Kb7U6ANUQ}8r&h(==NVZ(qs+0K46oCBWT?UuTguYkz$TyrK7AK`dx-;$`e}{Bx;J9Q~aE;ANyMod(=R zerwP|diy0vAU71~Lf~GV=k+iddx@Yj0EYfIr(oiqz2TJf+d@y{kgeog9W#iy(IXk4 z{ekd6N{38}b)j8k`=srQv-lX8tw^k(3eN+cq4<3DAW{sw24M6TN2fVUkAG!6_8}Ri zg>2{-5%$mNTyMO0AO*3MVk}Ta%-)|`*;uOU{2PHc32u^iI1KXoX^>DqIs>3D7i`RW z{U1{yy>$kW4b3vAP^Dm=msRcR1&5vtTaj9cnAHbz9@(p=7P7^B2gyW5esA6E9+d^q z?CNw{(VH9XBAh0aoi0xTu75zf&=tUOl)n@)p37BM6-Y+v6_c%aAMi7h%ZpBz#~=;f z8stzoM)`*F?n}uWF#t8B`re9kopvzW${Alp+$Jy0qI0b&+^@WM6X&LJ0GtV}=&VDI z%eSfEihFLaTeDuRwo+ptd~&c&d9EXDPeK-I)CBYiL5_ACegX` zl~+Gun;A{rd}?5;+W^i%UO~-3jtfsg;=mWZLr6=q6ZjF?J8wqPtks3l`P3i>h~@gM z6{{28X4=>xvIF0GsKPH@Mhrj-gz>P0uFTJ8az4-Tu`+CYJM=%<&iP!$iAAvh001R) zMObuXVRU6WV{&C-bWmjgGB7bREigGPGB;E)H99dcIyE;fFgH3dFeJzY%K!iXC3Hnt xbYx+4WjbwdWNBu305UK!GA%GUEiyM$F*Q0dFgi6iEigAaFfdh>y?2v`2QiP)BEtXx delta 1804 zcmV+n2lM!d54aDIlz)gxL_t(&-o2V>s8v-I$A9MzKA*k@8z?h{J~UWXgoGb5N-a#X z!7|DslcFMwqJn6o(TJqM0x278(6SsNun!T~AYTT|WSC>bS&6#gb^1Kv@Ay2A%wQT->w$BCjjfO<#dyFeoB%xUJW)axa^gO_f#puO z2koCL>(~;|2aE-lc=9nG$R*&cZ;S0=pcClNu(|;q0^A1N?Z7n1m#XSK9k|Z01#7Q$ z0%`#RdIoTo{$0r#mH_($j{x_RhFTE`!!lP1)qtdkM1QOY04~*Qe*qAmULQa_5ktbT zoT$bED7Cu=61Bt-U{d55NJFjz@x<+sB+NLIZT_}AK$=0u07nJ?i;+Gg+~xzfDhcnQ zX7in**BS*9OJJN@GtBvUV*t)WsxrWnz|HJi#k25?1BS)S*OY*|&ITV7Ymq?jY~WS> zy8=9oEPv8G5&(w+hi4cho`8x?FgoKqD`Ht7Y|_7g>A+%rwgM~!t}h_bfrM?_1Z**m z43ss3@0(fD((N4JWzwp>2)HIgU*dEg(Jq0+DIO7!N`R+;%iS}1*`)`#5_pl+6E7)= za4x$ZM1;ho#4>Q8Q(gkz1nxjuhS|<)&7=bKB7dHE0!f#hNNCLsfZNsP%uS^+1S&{n zHA?|}f~3e!U}-=ii%dTf*FWp?0DFKVfmwlW6Pq))g6FjaCS?WcCs~MOq(utsb)9G_ z1H-{&DDWjP1KG>~91W~SGF&~wm^NoFffx^z0s@vfoi?0E9;x_F67lAx6@avE?xk2wOOWlXG3pFHLJ&M$j zGR=2(W~`{rH-^AJG_S4|n2wrd3_fW5@nu<6J;-NBVpw&Kht?9lz)moe;TrnXdu=5E8vCzxB=d2_jyMvc?A5ft2_AL zQsm^IPpx_}&6_evk7l+adjJrx9^wd?7=dukOeyL&EN5?b%InBxV=?e6a=c!nxUboP zgxDI@a{%JWi43gHMqt}u64>ID+1buXz{#XdS=L0hICml)=^EA9<-l7;Gk^U?&D6uq?MRn03On+{JzcA*73Ry zHoz-rUZ|SstsoWpf(Y<7&syLMGvHvn;IJIM7Rerv-$nYiUr@$Sp?FXA$@Y>CSB>;^_pawf&MWuucj15jhX-CXH7EY=2hoN1DAkq!qdm ze8O>6q)uGxCyjZ@*XoOItIT7O7Zy_sESp4pzYBS9Fb`?N_omJm4@8~4WO!mdk`gB% zKR1{F9ETiM*^BE?cfXGBLn`}sz^6z{v59ma-O}$R+WE1E5i&g;$d5ZZkzS{Zfhl(f z(o%OLy^&u-16}|Q`hSl-a){WO(OxillV=#gHusH~@mcaO0XP3%45>A60000bbVXQn zWMOn=I%9HWVRU5xGB7bREigGPF*H;$H99diIxsRVFgH3dFiBjyIRF3vC3HntbYx+4 uWjbwdWNBu305UK!GA%GUEip7yF*Q0dHaajeEigAaFfcd)0|AATR|hfpk2r+@ diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_bluetooth_off.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_bluetooth_off.png index 19e4e409e1be19a7f20f41af9e3bb5e1afcd80ae..61eff946df08e8555c78bdb3d2e0dfe9a7774ed2 100644 GIT binary patch delta 1084 zcmV-C1jGBa3hfDylYaxfNkleQ`{hBiMxUp`J?fFbmHy`^kA=zpT0Uo_ct#sKdI_~BTK z3$O~u1Tg`$8(-o>e1Ja-+eQ+T+FN$84v%AHsL*K`pTB*N2QXVDv7`dU?6cv6*b>eU zgdx6nu~_)Z1iH~bgvUw}RTa8R%zSNt58|2#)g}XY7W?A48~sEveoOcmG+{Ln$nC!9 zGdQEfdJ8w>-hV>=tWG9T`e>YKU04P<4i^^=bITyVMgJV`2wznaa8dXgs0n!;f&A_) ztY|VU#vRf?B2Q!*XEx#0t%3}8Y9W8OW!&ZXF-UZ=wU9sCo>sAGRUo&MDzYyY@|L!% z@Lu%K;7+4eQ0HrG0@Dp@^(*iHl0x+kF2u9gi2VhLX@3o^jll8(_-8zYKd`Kjmr=5< z#BFi^Ds~p%mN$X45m;8-KaG2EKHjg`W<|E*E*ya!QWEd4@l`8pUCZ(faXY@l3%E>L z+s7BPn+@<4cw5>p`UT0R(%nj+jQNRp9yeeUp2Spqe-S_7XuOLxQo`nH*^1K^f=#;e$E#h>1ibtigd=u_BO4MN!NE?BD(NBcL*MH+>T#0Qsv`|Iy45t_srP9|y5!hP* z%;8O37xI>}=J0IB!#Fm^t~M$}dz(Po>cH*-D9`3<99AKJBwoTJ(h7M4XG@{UrTEwX zLtr8LVT{`tvt5*8n-zFH#!kikx&B*-7Mein2;_wMHu}7z`f=Z>jQcA3*KkPzo^9cq zihs?4R+j@gre9!J0XV6-qHV)9{#^z0U(v4cRr+ovFbw8(5Tq# z2w&CW)JUL|>WMI(GWsLRvR;diq(7iRW#*a8p72pCe;a}P8~!ymRHV&`xE$xjeSVh{ zb24l;gpcw!y`4aDa>@Jo9L~XZXe*Xx;|pU)f6 z=eSDRc-Baz_k_ZJQ7XYZrINg0bVM73uUeeOeY)m&o>dv=cwRk4HQM|G0L%t_L7~LW z0000bbVXQnWMOn=I%9HWVRU5xGB7bREigGPGB;E)H99dcIyE;fFgH3dFeJzY%P{}| z03~!qSaf7zbY(hiZ)9m^c>ppnF)}SMIW00bR53L=F)%tcH!UzXIxsL*mA!Y91O+h( CfdM-J delta 1108 zcmV-a1grb)3AGB4lYaySNkl0P)Gb)hay z6m>#2in#EB@juY5peQPW5s5(z5g(uiQGB~`VGt+yUML14YKT!Wlb}f^cka08YH!~& z=gizR9L_n_T~%LISAX4IX=zhaQ~9$K?|#u;g?t=y=+*kO-hW&?y4`N0pK1~3RTvn@ zb+`eS;AAYpF_^^+{=pu6i?=aV*lz_ur`m^jxoED1p zsmfC^6H$H=|Gfs=U7Q^{^8y|c#QbDumoI?43g_p>_iB7t15t(UGOR3Qi)J7f(aNH$ zUjx#?G$!!^4&fHOTLY1GE*J?wP3eq6DOd4aA?rwWFn@^+IDp&mR)8o0uh7!!0J5VF zP7K)?9+!%#WW}=3)?;%-zEsC;00A>v;ydTbgk?PMF9`f~K|$Nyc}SaY7IU>e^S zdhHpg4fjM>4;s|+b1#MW`p7_GnD~s ztWDpd07~?aO60RdTGP4erzPs$63%8rr)O|aoQMFn8a_LW1RzJW7dJ}elP?``DxQ?; zpbBTXKVMj%HnW* z?V4TF5gGY^S8db#58uWf5zmOMKa*Mn9TYHBF*rIfFgh?cEigAaFfg$MN6?dt1RWGG aR53U@FfckWHZ3qWIxsN6S^sR4yaX|!q!O+G diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_bluetooth_on.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_bluetooth_on.png index ec30791f39c9500a53f2e2e1e9bbb64289e21a58..b480a80bc638d8a219c82a22d4e2f0cac120940a 100644 GIT binary patch delta 1085 zcmV-D1j75a3hoJzlYaxgNkl4JEXf^1{fEpo0a0(6! zg?2!}Ar2%_5hRE%+^7f!iLL|}(jZZZiZ-Iy4rx@}i6SBqbYq+r(l(+Pl@K+=e($-c zQ+eg}-rF4uE_H`G=l|4QCbbruAFTZHA=_~`h8{kJ` zJubv*92dj{&>nn=5Agy1ENmM|jB0P$!3I2zRiQ$sVSN7fJs!YJmBf+?6tmBU4`N$5 zKNyDi-o;|!D--BO{}3K4NmNznE-~}<0p5>mBvcy>;2G?X=Wg^P#rSREqu+$pL?E~O zqR-$A6YDM9jDLFz`LjBiMCqe(rgdTI;{;q%ILs}B{1*LlxFdX3Nx;S7tFI>Hbp-Oe zv$3+tuo!n(1BpD537pl0SGNi>*lC6Q-Ij4z;Kv}*#r8t}Y3*eve6#l@9LSBZ+ zwhFh!{j1nrd>d~9X(Op2rQ?f+sN+-(SQ}I2P|>os_V-TDIb}g`iXP zgCH`6&wp@tyzgK>)c82S|E>XSRA8x6oI}u+5^530U|L%L<+A*tm~C$vewQTBuX)Zy zwn%#coPytR88+gV7&B<`wJZX?8V4PzO{8-xhHOKEIL5ov|IfpetLegUQoXqERK|T3{cE_i0MEAY zO@GDaV5`f49MdnbPymiForHlS|&uXK^leO6xiwPJgoPnBie%B*yFvn_0yn^^nenyQU_som05UK!GA%GUEiyM$F*Q0dFgi6iEigAaFfb&@1v1M3 z001R)MObuXVRU6WZEs|0W_bWIFflSMFgYzUH&ih-Ix#RhH8(9VH##sdRh7MWlLZAa D;FAGL delta 1111 zcmV-d1gQJ&3APH5lYayTNklNK~X6(TunxXvF>Y;z1)!+#iT071~r0oi_CLo8NfYYxlQ*XU>`V z%}!3vIcx8=)_1MF_IK}HX=#_gyCZ*g;@vB{tB{Xk7TsEZ)_1Nf@3g)L--fF@jc$gSB3pn5Y;@+I}z0-n8fNZ)Cjt0dCaT07yD36O)Q@s zDgyx^M?Q|vac-nJXJa3B2Drl*$x#;XQM`j23wv|2(9zto{Go7uC=8BkPfD?7BAo+ZpM2x5LxH^p#apB&M1^}70(v3j(=1KYq0_QaVy>m5GCLhT3Q`I zcGSU%AsfNtQZbdRSQgrPY>vp+NxYGHgj7pI0m$tr92?&|@DyIe{UOWQC{wx$#|4OQ zYW9xLdIizV3t&_#9$1d&qF{X>_Bx*eYn(V;^SmKI0X)#F8LjmYUG{X5W z;ru&XD6NRou_xZINxU(M2lbC*xgA_=2D;J_3${ze_Y=;;`_ew~pZ-$42CrZ#9>HT_ zJ7;l!TL#*e$3g6k?{VoI*u#g?#&W>i1I7x87Y^XpTHl@wpnf8%1IY9`TPQ8X%hJYk zL4Qpz&+WGoS^X_B^WXS7hhqZn>?<@PZl0gQg0nRjn^a|3UoUg^e}mc?zcS zW1-icf!d%iq^-EVr0U@BlukvZ^U}^%iGQ*i?KA<%+vv2k!H|yFb-le36K>Wo-ZE1e zz{cA2EeN1Q|ENShOQbcOtA1Ld-pOz_6FOb}d*WCGu*KlnVJHAOqCL1lBA4=OR*;U*0{s&sZ9;jG#s8^F)1RNDHG*mG)Ix#jnFfuJLH##sdNnE=*lZ*r$ d6)`kaF*Q0dHaajeEigAaFfcd)1BH{l1TlvvBA5UG diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_bluetooth_off.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_bluetooth_off.png index 65a873dd5b3d83b82c75bf2cc434966ac0131e7d..b4d9175a7a76474566df910730a5e4aeafb07a6a 100644 GIT binary patch delta 2527 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 delta 2592 zcmV+*3g7jH6~+~ilz)~8eRtDD~MgA7&RIr zq5=^_fe-`HL?y&1k*M(%Ul?PJQ8Y#{QENaEd_ipmO(aSqC|3-=B8^C?yrktJ-bcN6 z_pE<>=XYoJaQ5!Z?C$lKY|if4bLPzNJKy=eW=@R}%JlR!t$$XF>FMbjPy_1juL9`0 z&mgI}W8Ho4+WoCoYn0vXdDu`&m)ffbogO4jcU|(eqXMHjLggDk$9({f1C9r_1J42` zfvxVi2&@67fEnPByT1!O2+RWqfP=t&z<%J#0OT4_7~_VKYz73%FLel54_pAe33$F! zeps0W{toN|c7FkPxbt-a=HvpA1wbF=&j&sMoETi%MT{svrxqN`cA;B3hAeFZ*8m?! z>{tR}#Q-QNZyo&t@c!U;5r9+mjBdiSLwnM2#{nxJ{&nt{LtT>&n#;F21s*1y2?oHc zfeoc|V*$W|lN}=fz=EVE@H^m*$iG`iodUoH;AA_OVh2(HsJV_!qInl~AV*d^5ZVre zI}sD^PXxhYj~C_iDFpz#_85GOpJPPro^>cD*nj9iSOxq6cs+{!V?i($zF^z{m^>53 z0K?E96ck+uT<5?r5dMskse2PZ01b?>G#Z2?09>rS&HXg$_;}?ZU;g?7iY>Ije@KsNdmxG z*MF_02b&lpx>TpR%k^Oa(f&J5d1J!e$mQOJ4}bdsuo>9oSUOe)RH1Ac*;kz+bEIW_ zHo|WPzK3##MW^(Az*%ToSk0ecHfI^!oJ{{CLz%4N_`s*06}0;cYhr-G39SZ6`^@V-JhUTc@}S(W5mEZ6L=oI zRiXQVANEns0GNzbJP80;@&FAy&BBhX34k$BcH^1QkGi4QXdePjM|pxVs0~~Ke3okO zW52C$v8>C=1=f{*7bpzet}PhO!*1mTcnlT){-bW0Q9T=gdpq%PQeE+ z4Ky9jM=laHN|WyVS!nK?^6P=`0)H2gR`iUmOl1Qw!SXJ~iW*bEkAPP?5Ug;r2gUk0 zWj~LYF&ijB1&lX0 z3Q}ZM;`P}DkwIciI10EPS@w46eyib`C)t4v=8N%OAyuM{UoHTviI1{Ov42V6YDD#N z4KeiTryviqz>tf!;{+h5{Y3}DMR+S+UK^|-KYs-RIcKe4MF3bJjb@hG-h^U-S^P$c z@;-tZa2X1BmrH;DuK=VJK+K5!7_9_7T6*4Q;Jx_3s)pF|E))#e64-$2If68xyz|Ciybx8WwJoer!{aL?~i7A$HZn7&;fz%?$CQ7c}9kf3Pgn#*<-H`%d4=#A> zJPYUV$K0n8DAxf#=zv+Inx<_O|6hX=sW6+|1$>IQwZnN5C5Hi3hUUM(`<#*%0GaY1 z20j;nST#B}&$pnO;FSAq?(&nsHyB)484mz%^CPZPPXu7toc$W`Wkg%+w2l1b_)#B} zNOgecAlEq+DBExV|9^nx3oGGPy3qj;NP#SKcz+jVZYSg2UpVrX&c<}g*wX@@O)qQa zP^G9!LDOR_+QIP9`UL$ubqV9GF!iVr9-*2Z_S;F=%1a846OKlVzT)|UE-xyb* zNYl{JO(`OY}Hs8U=RN1GGG?L_ZSHi zqf1dnXnks<^?_?q(X`*lhX5Qdof{}QYl9ED-&HOtrf^yAcnx`rFX7{dHt+@%7p!6V zm1t|{Ffx=WtA9~h$)ii?c7GW#|H#oPWeOO*529(X zH4^~4XD!N2^84a2rr^y==Erc zE4CbNOuWguqeYj1Fb=c2`V6APJNffhn+KR}8Xv1@m`CK#MdC8cadf2S7%4E4DE`hrhHh& z`hT1I3@c_UdNxXp;sxrV8PHGMEA(MWEZj(4<*&;Xq*`!oVU_7oze4{%M(f~|{eDny z0000bbVXQnWMOn=I%9HWVRU5xGB7bREigGPGB8vzI65#eIxsdZFgH3dFtG$j&;S4c zC3HntbYx+4WjbwdWNBu305UK!GA%GUEfq2_R53U@FfckWHZ3qWIxsN6S^sR4RSGeL C>AcVY diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_bluetooth_on.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_bluetooth_on.png index 7ac301548e2b4f930febb0439bbcabab78c4d318..598d9676cb6bd1964544b8e481ad7a8db3ccdc20 100644 GIT binary patch delta 2528 zcmV<62_N>z6^9j&lz&%AL_t(|+SQwR>|9k9$3HXkTiRN>AWQ1cAP^8!Hxe)r#1*JW zQIuVSNK7Oys3Al{G>S1s|53n1Wl1B@pw(IwDGg~sNXrsTXu@g;AyUO^n^3!8Yk$Ar z%sl@%=k%U=eKT|KoA+us$;yzFSde?99m&(oJa3(QfIEPn0)Nf%Ee%2`0CF?mL`?Du z;D?B*n_y<<<_J?LBdq(DdwwhMEnubNO<53{$xrlx*HQt#3*4#7w^ir{GK*gLynm^lK^m$T?U+nY;!5-8&KZ>?gAbLE(CV#7%4%MfwoL#$$)0gL01caQv%@A$le}1 z`+kO=P=DTYfCm+XJp`v3LuLgNz-5j{?EqxT^gR7P)#(AuRpDn5FaIaXS%UFCk1!dv z0${&C88}A&F0%!7owshQA`b!=lV%CV`z023TM3nowlcuxOsP|g}!z%)`-`X*s_m;}}X-{as6(vq{(vRkPo zFrHHwg6Dk(_#p5p;01y;q-;%XRdy4wf`3pLnFij2l-#`R-rC09y~+VF@&NeH{~+u4 z-@rXchW2B`!&~MS6VzC4@JV2cDnF~r{~kDzgHzu;0MS$ifc!I-4sQe=(tDG@E+p;! zh~97Es<{Q>s%3U-feVll`6OZy?+5M!-b`;fePn$`sRgO`xZdKkus+7tMX!ZIc@7@94gzV$@APLHhem8;C^DhS;B{;81;3s;2 zhT!ndS5Ou+eCGT05^4d!o+$#rB7e26DzFjwnto^2VDY~_zX$R5(}dvXLg3d(#2Hg^ zv$6g!KA>n!i`$PtIyviscPR*Y58idp%mSZL<>y5zKeDiOk++6r$i99ZVx~pb(?xv8 zO80E7%GV8mjc+l)LL}wgKyNPL1DW}RLWqI#x(2|=lY z>ly%4U_a78y$Nx6zBkw*1VVoSJ^_3Q_$MLGsKpw}01(^ehOm9@2R@6$0Auuai{~S2 z|7gTXj_Y@~AaTQLLWjAZHP~2f5^0pi$S?pbaM_J)Yj-0v+@^OnJ4g=kIPg(qC$Ngp zOUOZs&mjjT`dNcd%4!E77JsA`lDnS|+>gxc3~&+>F8iHeH*&aQ9TG$xNvH@lke%T} z!0q&&KN^|p0KjH`J0Tdd(DqnDMh9W$Y-T~0!xKnYZ6-Yi{2ll_QWSZb;pYo#17MI3 z=%_L;Bc<-g5mTN9-ilblQlu@OC)+7Hh&8N6X1wXf9Rq%c#1vL%@PC2TA@KpTeeRpt zzlgNGpG9VVMiu%4@HQ2=+2lg-d?uorBTKLrU@AygmTy` zz{hgRpMYeAClbtf7=Or3;Cdupu+t#3$ol`;0Oe+sXA+eGV4q$lu&u=f$m|9}*s=RkjgT|Z({06B5OgrUI)%%NxOO1Cr zxoWY1On=`7b_`%-0ZI(GO=LM;Pv|Pm0&hpQ%_R(Xo+iUKeYWQuag_jgdQm@%)?ap#(l`2^p^!2FTQxQg;FK!cUcaevlk(q@cPMi5=|3NURRllB?%{ zghp;=Zkv#fPZj3_to(I2GV|{wbckZ8p|Wh!|Fe|ivZ*s@0K9@&LFqz;J9ODWs=sTH zc3O0~BlaMt>HFt;)$(4*)sST8pH-Dd&6* zEZf&J;FrL1(#+n2xLsu_lCfFFI4F1Tir_!3rO#%4dXNXPff2 zcMeKbhkud*a0r|5&jaTmU>W805UK!GA%GUEiyM$F*Q0dFgi6iEigAaFfb&@1c03~!qSaf7zbY(hi qZ)9m^c>ppnF)}SMIW00bR53L=F)%tcH!UzXIxsL*mA!Y9mkKcpv6u}2 delta 2594 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 \ No newline at end of file diff --git a/packages/SystemUI/res/layout/quick_settings_tile_bluetooth.xml b/packages/SystemUI/res/layout/quick_settings_tile_bluetooth.xml index 565055c594e1f..2f3a9c6fe722d 100644 --- a/packages/SystemUI/res/layout/quick_settings_tile_bluetooth.xml +++ b/packages/SystemUI/res/layout/quick_settings_tile_bluetooth.xml @@ -21,5 +21,4 @@ android:layout_height="wrap_content" android:layout_gravity="center" android:gravity="center" - android:text="@string/quick_settings_bluetooth_label" /> \ No newline at end of file diff --git a/packages/SystemUI/res/layout/quick_settings_tile_brightness.xml b/packages/SystemUI/res/layout/quick_settings_tile_brightness.xml index ac872e63e2f40..5b3ce1f6f8620 100644 --- a/packages/SystemUI/res/layout/quick_settings_tile_brightness.xml +++ b/packages/SystemUI/res/layout/quick_settings_tile_brightness.xml @@ -22,5 +22,4 @@ android:layout_gravity="center" android:gravity="center" android:drawableTop="@drawable/ic_qs_brightness_auto_off" - android:text="@string/quick_settings_brightness_label" /> \ No newline at end of file diff --git a/packages/SystemUI/res/layout/quick_settings_tile_rotation_lock.xml b/packages/SystemUI/res/layout/quick_settings_tile_rotation_lock.xml index 4dbf6a0163562..6aecaea1380dc 100644 --- a/packages/SystemUI/res/layout/quick_settings_tile_rotation_lock.xml +++ b/packages/SystemUI/res/layout/quick_settings_tile_rotation_lock.xml @@ -21,5 +21,4 @@ android:layout_height="wrap_content" android:layout_gravity="center" android:gravity="center" - android:text="@string/quick_settings_rotation_unlocked_label" /> \ No newline at end of file diff --git a/packages/SystemUI/res/layout/quick_settings_tile_settings.xml b/packages/SystemUI/res/layout/quick_settings_tile_settings.xml index 7026ebc6e90a5..d155935b09cbb 100644 --- a/packages/SystemUI/res/layout/quick_settings_tile_settings.xml +++ b/packages/SystemUI/res/layout/quick_settings_tile_settings.xml @@ -16,10 +16,10 @@ \ No newline at end of file diff --git a/packages/SystemUI/res/layout/quick_settings_tile_user.xml b/packages/SystemUI/res/layout/quick_settings_tile_user.xml index 08e8e20fdc76a..1732f6d289dc1 100644 --- a/packages/SystemUI/res/layout/quick_settings_tile_user.xml +++ b/packages/SystemUI/res/layout/quick_settings_tile_user.xml @@ -18,6 +18,7 @@ android:layout_width="match_parent" android:layout_height="match_parent"> + + + + 124dp + 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 7077018af8377..1ee1c41980a41 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java @@ -31,6 +31,7 @@ import android.content.IntentFilter; import android.content.Loader; import android.content.res.Resources; import android.database.Cursor; +import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.graphics.drawable.LevelListDrawable; import android.hardware.display.DisplayManager; @@ -40,6 +41,7 @@ import android.os.Handler; import android.os.RemoteException; import android.os.SystemProperties; import android.os.UserHandle; +import android.os.UserManager; import android.provider.ContactsContract; import android.provider.Settings; import android.view.LayoutInflater; @@ -160,6 +162,8 @@ class QuickSettings { } private void queryForUserInformation() { + System.out.println("queryForUserInformation"); + Uri userContactUri = Uri.withAppendedPath( ContactsContract.Profile.CONTENT_URI, ContactsContract.Contacts.Data.CONTENT_DIRECTORY); @@ -184,9 +188,11 @@ class QuickSettings { @Override public void onLoadComplete(Loader loader, Cursor cursor) { + UserManager userManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE); if (cursor != null && cursor.moveToFirst()) { String name = cursor.getString(0); // DISPLAY_NAME - mModel.setUserTileInfo(name, null); + BitmapDrawable d = new BitmapDrawable(userManager.getUserIcon(userManager.getUserHandle())); + mModel.setUserTileInfo(name, d); /* byte[] photoData = cursor.getBlob(0); Bitmap b = @@ -248,10 +254,11 @@ class QuickSettings { @Override public void refreshView(QuickSettingsTileView view, State state) { UserState us = (UserState) state; + ImageView iv = (ImageView) view.findViewById(R.id.user_imageview); TextView tv = (TextView) view.findViewById(R.id.user_textview); tv.setText(state.label); if (us.avatar != null) { - tv.setCompoundDrawables(null, us.avatar, null, null); + iv.setImageDrawable(us.avatar); } } }); @@ -290,6 +297,13 @@ class QuickSettings { startSettingsActivity(android.provider.Settings.ACTION_SETTINGS); } }); + mModel.addSettingsTile(settingsTile, new QuickSettingsModel.RefreshCallback() { + @Override + public void refreshView(QuickSettingsTileView view, State state) { + TextView tv = (TextView) view.findViewById(R.id.settings_tileview); + tv.setText(state.label); + } + }); parent.addView(settingsTile); mDynamicSpannedTiles.add(settingsTile); } @@ -418,6 +432,7 @@ class QuickSettings { public void refreshView(QuickSettingsTileView view, State state) { TextView tv = (TextView) view.findViewById(R.id.airplane_mode_textview); tv.setCompoundDrawablesWithIntrinsicBounds(0, state.iconId, 0, 0); + tv.setText(state.label); } }); parent.addView(airplaneTile); @@ -476,6 +491,7 @@ class QuickSettings { public void refreshView(QuickSettingsTileView view, State state) { TextView tv = (TextView) view.findViewById(R.id.brightness_textview); tv.setCompoundDrawablesWithIntrinsicBounds(0, state.iconId, 0, 0); + tv.setText(state.label); dismissBrightnessDialog(mBrightnessDialogShortTimeout); } }); @@ -614,6 +630,9 @@ class QuickSettings { void updateResources() { Resources r = mContext.getResources(); + // Update the model + mModel.updateResources(); + // Update the User, Time, and Settings tiles spans, and reset everything else int span = r.getInteger(R.integer.quick_settings_user_time_settings_tile_span); for (QuickSettingsTileView v : mDynamicSpannedTiles) { 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 04633bfe5e138..a4caabe4d1575 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java @@ -188,6 +188,10 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, private RefreshCallback mBugreportCallback; private State mBugreportState = new State(); + private QuickSettingsTileView mSettingsTile; + private RefreshCallback mSettingsCallback; + private State mSettingsState = new State(); + public QuickSettingsModel(Context context) { mContext = context; mHandler = new Handler(); @@ -201,6 +205,26 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, context.registerReceiver(mAlarmIntentReceiver, alarmIntentFilter); } + void updateResources() { + refreshSettingsTile(); + refreshBatteryTile(); + refreshBluetoothTile(); + refreshBrightnessTile(); + refreshRotationLockTile(); + } + + // Settings + void addSettingsTile(QuickSettingsTileView view, RefreshCallback cb) { + mSettingsTile = view; + mSettingsCallback = cb; + refreshSettingsTile(); + } + void refreshSettingsTile() { + Resources r = mContext.getResources(); + mSettingsState.label = r.getString(R.string.quick_settings_settings_label); + mSettingsCallback.refreshView(mSettingsTile, mSettingsState); + } + // User void addUserTile(QuickSettingsTileView view, RefreshCallback cb) { mUserTile = view; @@ -250,7 +274,9 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, } }); mAirplaneModeCallback = cb; - mAirplaneModeCallback.refreshView(mAirplaneModeTile, mAirplaneModeState); + int airplaneMode = Settings.Global.getInt(mContext.getContentResolver(), + Settings.Global.AIRPLANE_MODE_ON, 0); + onAirplaneModeChanged(airplaneMode != 0); } private void setAirplaneModeState(boolean enabled) { // TODO: Sets the view to be "awaiting" if not already awaiting @@ -273,6 +299,7 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, mAirplaneModeState.iconId = (enabled ? R.drawable.ic_qs_airplane_on : R.drawable.ic_qs_airplane_off); + mAirplaneModeState.label = r.getString(R.string.quick_settings_airplane_mode_label); mAirplaneModeCallback.refreshView(mAirplaneModeTile, mAirplaneModeState); } @@ -307,7 +334,7 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, Resources r = mContext.getResources(); mWifiState.enabled = enabled; boolean wifiConnected = enabled && (wifiSignalIconId > 0) && (enabledDesc != null); - boolean wifiNotConnected = enabled && (enabledDesc == null); + boolean wifiNotConnected = (wifiSignalIconId > 0) && (enabledDesc == null); if (wifiConnected) { mWifiState.iconId = wifiSignalIconId; mWifiState.label = removeDoubleQuotes(enabledDesc); @@ -377,6 +404,11 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, } mBluetoothCallback.refreshView(mBluetoothTile, mBluetoothState); } + void refreshBluetoothTile() { + if (mBluetoothTile != null) { + onBluetoothStateChange(mBluetoothState.enabled); + } + } // Battery void addBatteryTile(QuickSettingsTileView view, RefreshCallback cb) { @@ -391,6 +423,9 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, mBatteryState.pluggedIn = pluggedIn; mBatteryCallback.refreshView(mBatteryTile, mBatteryState); } + void refreshBatteryTile() { + mBatteryCallback.refreshView(mBatteryTile, mBatteryState); + } // Location void addLocationTile(QuickSettingsTileView view, RefreshCallback cb) { @@ -544,6 +579,11 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, mRotationLockCallback.refreshView(mRotationLockTile, mRotationLockState); } } + void refreshRotationLockTile() { + if (mRotationLockTile != null) { + onRotationLockChanged(); + } + } // Brightness void addBrightnessTile(QuickSettingsTileView view, RefreshCallback cb) { @@ -553,6 +593,7 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, } @Override public void onBrightnessLevelChanged() { + Resources r = mContext.getResources(); int mode = Settings.System.getInt(mContext.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL); @@ -561,7 +602,11 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, mBrightnessState.iconId = mBrightnessState.autoBrightness ? R.drawable.ic_qs_brightness_auto_on : R.drawable.ic_qs_brightness_auto_off; + mBrightnessState.label = r.getString(R.string.quick_settings_brightness_label); mBrightnessCallback.refreshView(mBrightnessTile, mBrightnessState); } + void refreshBrightnessTile() { + onBrightnessLevelChanged(); + } } \ No newline at end of file