From c696a53d1fe4d61373c5dc64dd057d322da90c8f Mon Sep 17 00:00:00 2001 From: Amith Yamasani Date: Fri, 28 Oct 2011 17:02:37 -0700 Subject: [PATCH] Bring back the old-style Ring/Vibrate/Silent states when using volume keys. In order to completely mute the ringer (no vibrate), introduce an extra state beyond mute, which mutes the vibrator as well, if it was enabled. Bug: 5530217 Change-Id: Ib1f299ee6bbca56c1aa7e1100662591362d08307 --- core/java/android/view/VolumePanel.java | 14 ++++++-- .../ic_audio_ring_notif_vibrate.png | Bin 0 -> 1309 bytes .../ic_audio_ring_notif_vibrate.png | Bin 0 -> 905 bytes .../ic_audio_ring_notif_vibrate.png | Bin 0 -> 1840 bytes media/java/android/media/AudioService.java | 30 +++++++++++++----- .../drawable-hdpi/stat_sys_ringer_vibrate.png | Bin 872 -> 912 bytes .../drawable-mdpi/stat_sys_ringer_vibrate.png | Bin 640 -> 598 bytes .../stat_sys_ringer_vibrate.png | Bin 1130 -> 1228 bytes .../internal/policy/impl/GlobalActions.java | 3 +- 9 files changed, 35 insertions(+), 12 deletions(-) create mode 100644 core/res/res/drawable-hdpi/ic_audio_ring_notif_vibrate.png create mode 100644 core/res/res/drawable-mdpi/ic_audio_ring_notif_vibrate.png create mode 100644 core/res/res/drawable-xhdpi/ic_audio_ring_notif_vibrate.png diff --git a/core/java/android/view/VolumePanel.java b/core/java/android/view/VolumePanel.java index 83df8a5b3522f..b657204d02faa 100644 --- a/core/java/android/view/VolumePanel.java +++ b/core/java/android/view/VolumePanel.java @@ -352,6 +352,10 @@ public class VolumePanel extends Handler implements OnSeekBarChangeListener, Vie sc.seekbarView.setProgress(mAudioManager.getLastAudibleStreamVolume(sc.streamType)); final boolean muted = isMuted(sc.streamType); sc.icon.setImageResource(muted ? sc.iconMuteRes : sc.iconRes); + if (sc.streamType == AudioManager.STREAM_RING && muted + && mAudioManager.shouldVibrate(AudioManager.VIBRATE_TYPE_RINGER)) { + sc.icon.setImageResource(R.drawable.ic_audio_ring_notif_vibrate); + } sc.seekbarView.setEnabled(!muted); } @@ -695,8 +699,14 @@ public class VolumePanel extends Handler implements OnSeekBarChangeListener, Vie expand(); } else if (v.getTag() instanceof StreamControl) { StreamControl sc = (StreamControl) v.getTag(); - mAudioManager.setRingerMode(mAudioManager.isSilentMode() - ? AudioManager.RINGER_MODE_NORMAL : AudioManager.RINGER_MODE_SILENT); + boolean vibeInSilent = Settings.System.getInt(mContext.getContentResolver(), + System.VIBRATE_IN_SILENT, 1) == 1; + int newMode = mAudioManager.isSilentMode() + ? AudioManager.RINGER_MODE_NORMAL + : (vibeInSilent + ? AudioManager.RINGER_MODE_VIBRATE + : AudioManager.RINGER_MODE_SILENT); + mAudioManager.setRingerMode(newMode); // Expand the dialog if it hasn't been expanded yet. if (mShowCombinedVolumes && !isExpanded()) expand(); } diff --git a/core/res/res/drawable-hdpi/ic_audio_ring_notif_vibrate.png b/core/res/res/drawable-hdpi/ic_audio_ring_notif_vibrate.png new file mode 100644 index 0000000000000000000000000000000000000000..41991067dbcc32a5b46d5e169e8b6c2ca56d3467 GIT binary patch literal 1309 zcmV+&1>*XNP)Kh2vq__ zjFdxzLKC1UhO#Bx2q6R%jDW^KxghmIDDf0ff{=hWO4J|-R~!_vlm;b+NPw7VHBHNz zM2bR!4UvLYCADO;nVH9n`DgaDd-kj;*Zk{ZR@QvS_dEW{`={nqL?Ff^%S!-ASs*l1yb!l18d@Cii4WyoiQod8@=Gf45S^=l#{| z?s8J0Y80ydR#27SrZ^A(u~HmmCpwt3(J7*uS2DTyhWM0=i;^X_;z|*B;5u8-#k)3G zC8~k96Dp|0Z*jSZ_1I=wd>R|Yw6FVTQ8MeNJ}jCO`7r?H3wX_uVujanzKADqoM?%| z-Qk@A*A8Et*bkMM_8h({;#O=DaUpINO_iofoZ@kGb+O5j<-c(Xiv2g@Po~5g%=x4^ z$jf#(co6SHuV!<6_AzC6~0p+Y;>zi_swY&PrY(F%q*R(jVTdp_00pds$U z{UR>KHT%Ldf@36%qlla04D5D-_>di5cEE6eM{=BryBG6vn4y=)kKrZ}H{-$@`zsj_ z<1l$kT!!rq5ude9L zJ{H)Bq34+`d=c8-ZZI&C}koL9zC&lU+yyL`48^uyj zqoa#ATxF>Y?>^?sk%vY6uFSn9wVOqmPJ7BIZ|mY&=ajKB*y2=0>`CHcyyDQ_*P5de zl|N%n7aeWzYsU}GuKu=ni#XT|xI!G^$4;zOqalv7bx3$e2XFhKWrK)(z+dcin7Dp0 z_in<2H3|mqFZDgM6p(1^;5AohX^3wXt3U4F_^deD+xU!V*407Z%GEX(Ke`Me@}xCB zVvntw;vW2R(0A{wZ4`TL3ej>^*?9V3wedf%;H=Un-m*%ZjW?~>pN8G{<7mGyH>9L( zu2gw%SG``uavOYOf`K!_k4miekWPWAty`@A8n#z3!>tUScelPlwX%S1!n3BDpg=eyBY|@N$Q>Bqks-Y{bIw2EW5cg5iD5mz5 z)ry$#25O#uKQ7_#pNY=@0hdy(mY_fu6951JC3HntbYx+4WjbSWWnpw>05UK!F)cAL zEiyP%F*Q0cHaasgEigAaFfc(;`VasB03~!qSaf7zbY(hiZ)9m^c>ppnF)=MMFfB4T zR53L=Ff%$eHZ3qWIxsNR?Y`jv000?uMObuGZ)S9NVRB^vL1b@YWgtmyVP|DhWnpA_ Tami&o00000NkvXXu0mjf?SyCR literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-mdpi/ic_audio_ring_notif_vibrate.png b/core/res/res/drawable-mdpi/ic_audio_ring_notif_vibrate.png new file mode 100644 index 0000000000000000000000000000000000000000..2d99b7695a248805003024157f264b2d4f9f94b0 GIT binary patch literal 905 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE)4(M`_JqL@;D1TB8!2v z2N=7Z%(ernSmx>C7~*k!=~eFznN$(h2f?9pCmu;TAYmY}=m@)`t4s4EVYa}7I;F;q zjx`UCc@(I!a4KmC&DV(A#)Qu=1Fw9yvcI8Q7Wt{yGkH;nByXU4+&i__8||xmeqR*-cg%CLR-mSo zqf5x61(6%CP7*(I+fH=*Pnnvh-~K;XD6;*5=f`!%kE(LbJAx7~@%$@1z&7`WBHL1n zSJ8$1Wu52uC`M^bz44%O|HCPre!G3Se0D_2l>6A^oICc*Mr-MfX9i(D9jiP~c-gec zCLMbhHGQ4EEaUrQau=nVq@RDZrlB)UcJ(5fA9WU zJu7GC$C6}buZ^YF?_rngkIboHGVdzdQKz}?!}Ru7AJ-~Yok{c6JX^gv@QBm{-7}TPBJwMCpNT7q z*^_o}S(>!9+@HqOIbRa;E4VlM-sTIxB>7(LueJ7PPBGo4{up(y2N)C%WsE98F=mwm?C;#8}X=DQ-M(_%Ugdo<&3tNZ7PNy1(2D_@2B- zsu5TZOuDKit`Q|Ei6yC4$wjF^iowXh&`{UVK-b73#L(2rz|6|nP}jiR%D})e@RtCJ zhTQy=%(O~$4aQccW)KZm-|l+|)F276Aviy+q&%@GmBBG3KPgqgGdD3kH7GSPrLyp3 Rstr&PgQu&X%Q~loCID#ciQfPK literal 0 HcmV?d00001 diff --git a/core/res/res/drawable-xhdpi/ic_audio_ring_notif_vibrate.png b/core/res/res/drawable-xhdpi/ic_audio_ring_notif_vibrate.png new file mode 100644 index 0000000000000000000000000000000000000000..122c7081c0ee9dde63de27dd7d3c35803de65a93 GIT binary patch literal 1840 zcmV-02haG4P)vzy53Oj}vjI9cusM zmYP2*B2tJ*Ax&LP{j;69+=_OOtG<%d*Iz_*6!rc84uI@yilI0vWF#rdNHH&lq8nul zMT*e7dGJj{HrD$~A*{96wcaNwgws84r{}G(^k?cn-%!{XDb= zQTzX0aEHQ>a5=c&kYQn!u5Fen3=82*&w%k9ly#1&?X&}tBc3erhOSqANK!b;%er=2 zCM5H1!F56>vlWJ|wi!&A#GAfj&Mfp$l~ zM_5D7_~D$4TXSa2NNL@FNC=`AC%6Oj?wap?) zaKM!L*-ctX40$SnQ<|!m6+HK64 zjs34yQyZFVW`6+vQ%m8GxX)1k>~{eAr!-Ua`n6L*Wu~JeT!1}3)*}6qCAQ=8{v}z< zwPEf35&niBHj88(|J$+N97)HmZgWHx*0un8$@mWodlO5eJ|}w1n6rd%A-JK{Owbp} zYVUJt6ZuWk%)N#bMr|@_hfh@&+WKF(15f6SNK^kW#@mh+bus&K`%=_fnC>;k|Eo~CvR+ucODffxsdmp73*j@m zO3&qD)++vmWPyJwP3l@_<6O0 z^ErErIYkJUg5S-i6er;*yOjCpp$oRTB5%7pg9fK*=9faUz{^T+`KV}JiY4L0CiC!6 zW-gv}&i=uu{l5%5ERiyQT%Xqx?Mkr_hHc0jis>Nkb=-7WDkKYS#`lEeIBzIzF<&8k z-37fFwv7f(^*Z+T@gTGErW+km>%RAUJ^t=+h45Q){Y;kHjUTlGP=#T6UK39;00REy z5{Ko5cOfkIHqH~m*(g13q^<>}t6R(keO?W_(k^rdc<2S=&rZwXO4i{Ic^~kM(mp2( z;f!1h=2W$?4S*iO%RSUb{~(CcosJdGGU;t62w`D7D>V_;2NQ$<1y^=k(P78 z41%mm&*%MVhG0~uL01Xk6Lu?YG@3VJi``=FEd8IRhst2#Yo5--PSzZh{_1c^$3y74 z$l%%0?9K{j08ts8;~O^Qp}X1tFA3pH@M!Pss1D!34L>7@5tn$j4#IEhT6mYuR`yRn zz3=y=8C1kv=X=o8zV8E4eO|a&^V6`1X#I|*Hr$Esz;Dl%NJ*QQH|<~Y^gyI2q8kxK zFT^RNNKvNH!t5*nR3K8##%y0#9cqW#|4I7~NrNf@U0fq_0000bbVXQnWMOn=I%9HW zVRU5xGB7bQEio`HGB{K*H99ahIx{gXFgH3dFhNoJ5C8xGC3HntbYx+4WjbwdWNBu3 z05UK!F)cALEiyP%F*Q0cGdeXkEigAaFfi5azTp4>02y>eSaefwW^{L9a%BKPWN%_+ eAW3auXJt}lVPtu6$z?nM00000xvlv`CgHl zoYh~x#78+&+{Ppx^uxwxt{((wIt8RO^j7hcbhH(Zw!H#sTWIPvd(}Q)q)>=(7M7;R4XC7XWKQ&ls;l87$bLSaPKQ?*7G@GOodwi9(#NK>v z=qR+`sooJdY2u76FK0RX%{r~+n%^?E_-X5!oNCtduG41NwRV3XFZ}%)Z;ZCrYU! zinrsQ!PK2L?+XtUvY)LyX1F=&oSNW;g|4n94;EeK6ImH}a)Y+T>t*+YeqP=pHSKO8 zN2;puy-V6@Q{8hSKQ*Np%asO(pHk%9@L0GwBV_B^v)bpf!!JLpygaKX;=}a7wePAQ z=&szAb+biIRMcke@p3Dj=yJcKqI3OrzL{^Un##5A=Z)#xOfomDO$*sA`S#b@Rhl~= zKCha5ZGURuWMMX$u)t5P@Ao$M%e|?)QJgB+Y4M^ZeeKM!%g^_1{j>9SIrsl|PbIr6 z8BG6}GgU?)FK#IZ0z|c_F&_LJ7BE-t<8 delta 822 zcmbQh{(?=hGr-TCmrII^fq{Y7)59eQNXr4SGzSZiJox4Ntci*e_1r=X4BSGDm+sd6 z0g7^#6*#8D)G@SLh*mH#F!^}8IEGl9UV6nkBQ#Th{lk4r_0IK9O;V!Ty&7-KvQ)Da zqBJDpIX(tPym)7JDC$V++9}-ow75ktI_WfZxeAENujyD8C?I{5eUZ-1*oYdPrt1sT zw4c|AeQ%j_r~ZyK_j0Ly`Tvan|2%I{)9$);zPGbqlY;a|GqW8gf25Cj$@QOH9XOlM zUaaeg=z6BS718F?ZoU=xrSsLRB_oB|Q#M2C^1~%A+r|FMWeBjy+P%#0zxDOnQd!Tf z7K=PzEtoCVoY22|SKI826{|c{ggj+Umqn~bS?1Z-vg-BD75_<`pKUdFLujPVl_2YBk;|loeZ^fW`X&7$6V@{; z6$ZY~x;6XEG_RI9q4QnyW;_#Le)Q_@Fc$VLN*qlR`>WosbJV^&>4cWkRIZTrP`)H# z0q&&vx!(f&&BH3P*KNtts$a~)%@nlp`nAl`W6p2?T}iG=-L+KkVIiXgr`>{!!P09= zZ8!zc~kwLb&~S0 z!p>QrRGDY7K6>_CzMV;%SI*E0mWw+TIQ6s3O4D;$mtJm)^ETiQ=BWx_`{l%``iW=C zrt?Itb$?|!BY98czqLJ^Z7a zs`kfWJJ&7~ zKhKrj@9tauVl`VD7#PoZ_4@Xc8{X_c3rc9BC9V-A&PAz-C7Jno3L%-fsSJkthQ|7a zhW{?EE1&$ANm9bVQrFNl#L&>n(9FunMAyLF%D}*$;lAZ$J!VNCY?6Ml>8(JsWk5y; v=ckpFCl;kLIHu$$r7E~(7NwTw7iAYKI0u^+ZhdS9RL9`y>gTe~DWM4f${tpj diff --git a/packages/SystemUI/res/drawable-mdpi/stat_sys_ringer_vibrate.png b/packages/SystemUI/res/drawable-mdpi/stat_sys_ringer_vibrate.png index faefe36d0cd737a031de5569058754c89a6e7b08..900a717b5c8580f61b1a2a4b494200cf28630f4e 100644 GIT binary patch delta 566 zcmZo*y~d*08Q|y6%O%Cdz`(%k>ERLtq=i73g9S+bIqr66qM}4Sg9nh~!Qgf>+m3;O zvDnkaF+}6M>!pL{IiPit$0#I%{YOLnNPRA^H3U~?+@aKZK4g|+)vS1)gR zC%5a$Nv>2y$89I_#6omL*Sz^%QgPqxnZe=12Is&3{O86o(Wyh`x{|AMo*Uo9Ra!u9W}uVQzu9|NVMi#i>4z z)%LmvRtdg};>(pZG}-rR_vTCaq0t{t_UudcOi6S)Jt>!0@g$eH&##=LuQ!#yeA#cf z{cTiectYs$P3vY=3Tk>+&HJs;vokyVa_OH-B^kSy_=L8di85D|{_(a|_qd;Kb*t8a zmVUo2I!8GcLA4c2^Gl|0=%g*V0aB=lplTs8B6&jVMV;EJ?LW zE=mPb3`PcqhPs9Zx<(cuhNe~~##Tn=x(4P}1_nEBmlsWzW|H*8CV8^${5ha$k|5K9 s^V3So6N^$A98>a>QWZRN6Vp?JQWH}u3s0un02MKKy85}Sb4q9e0CmUdz5oCK literal 640 zcmeAS@N?(olHy`uVBq!ia0vp^B0wy}!2%>d-ZYyHq?nSt-CY>|xA&jf59DzcctjR6 zFmMZjFyp1Wb$>vDWd)AuKpL!<;cH@VI0FM?il>WXh{pNUOS`i}0tJqLJa1VotP}iW z%@MarZbzI{Iy7~BlCPZd(qTDz%q1X4pV4)TK}UVV(XxZ?OJlh%ir8^+nkgmaFd6E5 zEY#WkJ>t&p-Q|-n^Q8YU`aJu-Pe660WE0!1tvrYH3>3Zw1!~nNicfn}e7enYW%tw4 z4cE;oQ%{v&*Lk!;cXgA9w}$?09`C$eD_%Bw`uxh0nHX_>Md}rueLpjASLWaS8g=Dl zb;5xin#JFe&a$`fDL82y=%{yDKJlKTY-`3%%2?RMGXJN(@w#q}dd@URLV+ky?5nQF76tmdJG72W|T2BtO;(^mw(- z?~S~0VZ)PEfy?(eZhU-Z)o#wNtOh~Z+swz6-W&)CTGjbm^gpv~O!nqOGs^b?17Ebn zHKN41C^fMpGe1uuBr`Xa!BF4OSl`g_-^F$1Kn1EG1u2OosaDA#RjCX{28M>Z29~;p zrXhxgR)%I)Mkcxj=2iv<_6+weQ8eV{r(~v8;@037o8Ai4AOo@?I6tkVJh3R1!7(L2 jDOJHOvnaJZzbLy{!8zEpaO-0;pgIOmS3j3^P6%pp#q;E%p zwIyJQoWwZ=Ee@J8j^z$Ju1||tq7&=zk{X_!zI7m$is^C3pV(ogvrhTNW6=tSd}q5L zmMW`)B^8*g-7+4c&0cv|6fHJj%!FXn_Xf=fI(+7+RVl9&EM*jR>vGd=fAm^w#6#?s zb-w({w2Mv{7e!sZlGBp%sxpceIwbE3I`n&L2y1=lsuzMN3WBFjJLMlyt9`z(x(bz4 z)Oz5GNet*Px zh`;pNrp*EO%-1stqKpBFe?fVz4!Cc;i2+Msubg$#E1Aajmr}OqcH2Gl>2RUZ!=Vb6 zAZRyYzOmdfB_G8KP{3A;70sjH zas4voF;>f`OSki8y>Gh-qs@IZUHLa_k&k?1V`U~*+y1~Ue_1&hg9?^eS`QR)+f55( zM2UHMs~qvUm1QuZUMpQNZ;LKB-Iw*LuPtfx(VUr`!=|*!d0p$HYzQbgsy@ore65t!xaEO!Zp^sJSd6mgv)?T|rT_z-i-p95LafV!gRSeQ6E6UO3~1UOn2h7fnMVXE#*OPhI>Ee+oHuEwoJkbpQYWC3HntbYx+4 zWjbSWWnpw>05UK!F)cALEiyP%F*Q0gGdeOiEigAaFfh2=cX9v#03~!qSaf7zbY(hi zZ)9m^c>ppnF)=MMFfB4TR53L=G&4FfH!UzXIxsNFhR@Cb000?uMObuGZ)S9NVRB^v kL1b@Y9AzL$ZDD6+Qe|Oed2z{QJOBUy07*qoM6N<$f~z4Y4gdfE delta 1123 zcmX@Z`HDlaGr-TCmrII^fq{Y7)59eQNUH;}3I_|2TwwQFV4|W#J+}}81Gf<4rMq>1 zfTEmb1&--3bqxO|XDTu9{oQ-v(g`PmU;!l`}+?SUOwZbaynltT~{hvspp4IQQfv zots-jzn^<~bZ-6Ky}zH|i)~);{HTHP^E2i1?th;B`OL%rGKpU_SB6M^ni;7z^V{3&d0c9y#@5?P!7h#huKly^BN9VnqU3s|)|fj!s-H90?#crz5!c6S zHXk+XeZ-);l2Q9~rm4GrpT*l9lcZUuU#Y&!edB%1(ie{ke6)0>1H^7k693n6M$^^2 zGwnvoO7Cmg!r2dsQk1k#_*_kE@@Y!mvEp)n+KtqOpX0U|u79Ml^|XuX#mUc3v2?yj z@j7V~e>;2OX1UFU2kw?Ed2`9G-aLHfYWKOnkKWm?r+)c}OW* z*Ujv8Yj%jIzVex{^ZIP5zYA_2Z0xsOJHsj@r|GAf=E;=GP@~Stevxl-d-*C?Naa}Q zEjuH^(&^&hc`*E4@$%SZKW{YiX-`Q!Tz%R=W?4wgbdj1RCzWnrxxM=2dNnQH^Q(8& zZ(b-rSF_@Lk*=A>jm(+Sxu$}NDmPB-m?7VMq-^!xHsKgt?9GdjVJvqF5wT63e^>0qr!BIR{-`>x>64xnJFUo}zgzBGr>)qJ zyGGVqW~fe{@vi^0pmgDtsP4Zx^KZ*+zrt>IBc-0L>s9G%Sz*1mlcjUQKJCkv-FBod zzw(&NWy5A%F|bYtv$&UjVFJT3Mvsk+X!chO9V{8^WI-YH!@I&Jrz&D&-yxy#%a zxx|z6;MW-`oA{1Rh~?9+I=cGRn@=6_D&I1~1q!<#NX-dQp5(Z}YW7yGTPagF3zby* zwHGe3lsY3+TkmeV(s?uYtJI+Ezq%7os`O=*a!%IW9Pq9HdwB{QuOrv^&{zu5Fvpbi<36~XywCFO}lsSJ)O`AMk? hZka`?<@rU~#R|^BriEJ{n*r4^c)I$ztaD0e0sztj@LK=? diff --git a/policy/src/com/android/internal/policy/impl/GlobalActions.java b/policy/src/com/android/internal/policy/impl/GlobalActions.java index 11b6c15185d3b..f040e87b7bae1 100644 --- a/policy/src/com/android/internal/policy/impl/GlobalActions.java +++ b/policy/src/com/android/internal/policy/impl/GlobalActions.java @@ -121,10 +121,9 @@ class GlobalActions implements DialogInterface.OnDismissListener, DialogInterfac R.string.global_action_silent_mode_off_status) { void willCreate() { - // XXX: FIXME: Add vibrate indicator when available mEnabledIconResId = (Settings.System.getInt(mContext.getContentResolver(), Settings.System.VIBRATE_IN_SILENT, 1) == 1) - ? R.drawable.ic_audio_vol_mute + ? R.drawable.ic_audio_ring_notif_vibrate : R.drawable.ic_audio_vol_mute; }