From 3b0543acf11ac4638ec5452acc4c1c6716c26880 Mon Sep 17 00:00:00 2001 From: Daniel Sandler Date: Tue, 14 Jun 2011 11:30:28 -0400 Subject: [PATCH] Final UI for compatibility mode. Bug: 4595256 Change-Id: Idaa96393fb809c828b5f661f29e8b687fdf3d104 --- .../drawable-hdpi/ic_sysbar_ime_default.png | Bin 787 -> 0 bytes .../drawable-hdpi/ic_sysbar_ime_pressed.png | Bin 1988 -> 0 bytes .../drawable-mdpi/ic_sysbar_ime_default.png | Bin 663 -> 0 bytes .../drawable-mdpi/ic_sysbar_ime_pressed.png | Bin 1545 -> 0 bytes .../ic_sysbar_ime_default.png | Bin 0 -> 749 bytes .../ic_sysbar_ime_pressed.png | Bin 0 -> 1509 bytes .../ic_sysbar_zoom_default.png | Bin 4050 -> 1044 bytes .../ic_sysbar_zoom_pressed.png | Bin 7760 -> 2263 bytes .../ic_sysbar_ime_default.png | Bin 0 -> 641 bytes .../ic_sysbar_ime_pressed.png | Bin 0 -> 1267 bytes .../ic_sysbar_zoom_default.png | Bin 2642 -> 762 bytes .../ic_sysbar_zoom_pressed.png | Bin 4140 -> 1592 bytes .../SystemUI/res/drawable/ic_sysbar_zoom.xml | 1 + .../res/layout-sw600dp/status_bar.xml | 7 -- .../status_bar_compat_mode_panel.xml | 43 +++++++ .../status_bar_notification_area.xml | 14 ++- .../SystemUI/res/values-sw600dp/dimens.xml | 3 +- packages/SystemUI/res/values/strings.xml | 7 ++ .../statusbar/policy/CompatModeButton.java | 19 +-- .../statusbar/tablet/CompatModePanel.java | 115 ++++++++++++++++++ .../statusbar/tablet/TabletStatusBar.java | 76 +++++++++--- .../statusbar/tablet/TabletStatusBarView.java | 5 +- 22 files changed, 250 insertions(+), 40 deletions(-) delete mode 100644 packages/SystemUI/res/drawable-hdpi/ic_sysbar_ime_default.png delete mode 100644 packages/SystemUI/res/drawable-hdpi/ic_sysbar_ime_pressed.png delete mode 100644 packages/SystemUI/res/drawable-mdpi/ic_sysbar_ime_default.png delete mode 100644 packages/SystemUI/res/drawable-mdpi/ic_sysbar_ime_pressed.png create mode 100644 packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_ime_default.png create mode 100644 packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_ime_pressed.png create mode 100644 packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_ime_default.png create mode 100644 packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_ime_pressed.png create mode 100644 packages/SystemUI/res/layout-sw600dp/status_bar_compat_mode_panel.xml create mode 100644 packages/SystemUI/src/com/android/systemui/statusbar/tablet/CompatModePanel.java diff --git a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_ime_default.png b/packages/SystemUI/res/drawable-hdpi/ic_sysbar_ime_default.png deleted file mode 100644 index eb6eb0c82391a4999caf64f3c093c0a5a1c57ebe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 787 zcmeAS@N?(olHy`uVBq!ia0vp^S|H590wnWKF?EK+MOpHDA2Zl?+s4_Hzn5fj!IfW zPfZ0(BD!3j?_pwn@3_FZsojCeNnCP*M@^^9@ogO~EoZ7^ld5li4*qe({7tE|)}Q>1 z`=6aTBUziCuyX0NU-D05Bzf!X5)6JY{5f`X?qj#e<`)&4U(Yu=s+{+En*N(f%Z_uK z-Fzr?xcGI_x0@-_77GsOY4YgR#$B9ixKd`}>|aZ`Z3VSn&hBgdl=V8~=|XL;r&oi# zD;F-3TD5AS@>*`*>R-Zhd3|lHeuSL-#Lcl%AmIb&3V}=Pw?aO=WH1e5oX=ON#Lv60 z=TflV+MeDs1)e_Pl@46fXVkvi+PsDyRoQ!&Fe>kj|Dzj zW%}=5wQ`o9h@YX(tC-_X)yYe&tpa^bO~v14PSr6qWMnLGyJfUyvMP(ysx3M%h3r2t z^mnT)JdC+^ojps_Ieb1XYHo{!N4@5TH+c}l9E`GYL#4+3Zxi}3=9o*4GeXS z3_}b}tc;ATj4gBxEUXL+@?CFbqiD#@PsvQH#MEG92GP*eD=7lhAPKS|I6tkVJh3R1 k!7(L2DOJHUH!(dmC^a#qvhZZ84Nwt-r>mdKI;Vst0836il>h($ diff --git a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_ime_pressed.png b/packages/SystemUI/res/drawable-hdpi/ic_sysbar_ime_pressed.png deleted file mode 100644 index 11f66f547cf0453109b6809f353db67cf6a7fd03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1988 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 E2WL^LdH?_b literal 0 HcmV?d00001 diff --git a/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_zoom_default.png b/packages/SystemUI/res/drawable-sw600dp-hdpi/ic_sysbar_zoom_default.png index e2584e3a2f9a7524519ed2471ad0257820729d2b..1e1324a6bb19d55354c005d2cc3d0853eb1e8ba6 100644 GIT binary patch delta 928 zcmV;R17G~oACw4xiBL{Q4GJ0x0000DNk~Le0000g0000g2m}BC0B_0x&;S4c0%A)? zL;(MXkIcUS000SaNLh0L01FZT01FZU(%pXi00009c5p#w0000g0000g0NjpOaR2}U z_(?=TR7l6|mfuSoK@i73dw03S()OtZg;G&z)P$f0fAs%3v z?niF=aGT5S-9;Z-A4)q%Ah~?!JKvq1ogMgZf7;aei=@9)2__i>CH?J`U<9Gm`3aON zgxAax=K?Ceacd}j&iq(%rqbhrOO(>@J;Pa;Ws7^gJkcMApWLDljd{U3iI$^udS=+? zQe!MqfS7xKh8kMQT=KdS9Z-m}@UaQ8Nfi!CEB!`@gP^#xFn4@KP$c-g(P14sWj5&~ z5iZa%lAaca0M{I7>F;qFm2G*E)L}>kSOh+TWYw0HR7$hMA|VM8)gpy$g3A>Lcmyo4 zoz`CgBW$xkfX4w>xOq%jA$y$Dp+d+K8)Ic+>fB&|iI55%&dU;5e3kkRfDMK$lkj;` zEGUFEmKjo^!@%&Es#NLy2gQIcH9{J+3^$=ggOD0s1{&$)kGE$j91$`i0tCe|9!&z8 zMD+Detn>rOhJL{ffi_#kmNk&VONJIuqRo*GkIY?25O5{%X5XziGQirq@*Mb z;Q|SxOye3$2x8RfIu6nJlnJ=Hq>_nJyYts+G2#awGRg)4er}aR8ju~{ZRT+4(w`*C zF-XD1$ETtx8~XJ0=rispeR@<0XwpDXKm{LvAJ^O;yP=42S=4C};M1dPHIy!j1_3Q% z2Bg=EV{c}$q|$hG+Qd{jF%D!JR&m4$RbtxI?FuSanp(_T+C=!Aa!9`O3vh_fA|Y*t z_LWyosu=N#IbwXy*ejf;G5;Ql1tK7CU(r(=UVirzMEBEqElly9YXkF)cbaH2OymX*FBf743S&=x zwsNwu$I}U$v3cyyf5CpqfOeBDQh*yil@4f+cmChAzh~(E$L$yGkSyB@O!YgH8xK7d zF)&myH###gIx#pcFgH3dFuH#4Et72z92GGzR53R?GcYWz>9 delta 3929 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 delta 7674 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 diff --git a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_ime_default.png b/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_ime_default.png new file mode 100644 index 0000000000000000000000000000000000000000..33edce00137cac5c3b985bd3d33e75f68afc0c78 GIT binary patch literal 641 zcmeAS@N?(olHy`uVBq!ia0vp^G9b*s0wiy+h|2>hrX+877l!}s{b%+Ad7K3vk;M!Q z+(IDCcKfnz$52J2;L->9^Ofq^mA)5S5w;`G}~zW&02BF8@7_tE5=yU3wY zsZ~Na*`+*hl|ZjP=es}a>R5%v*WK~-iTOC`n3Unxsh7+Smjn~ zd;j-4ho}Bib`|(!)A2*rx95{(lhR%l!>a`=vM%lmIa^+v-PV`G5q0foQm*~6Wji+L zSErt|-7R)!W48BQ?|zkSxvOt|Ji`6j^39wXD}HKC&6-^td)(vffsLUv^TS+TSj<$@ z+mY)Y`Do^BKa<>7RSRC;&^@2JYTKFT8+KIWW?i1uHEUO8C~vWlbe_h_=)jFD78Y%^ z=&U?=VdbVtjO!#j&Pbh9F`77O-@_Xw!G98*FR#23eOm5U!u@Rdtu|M`o=fgLv*x>9 zcgr0Pdszw1*PP$Be0`hw^2d_(&pmF=+;s0qXfbOc6>ljO>=_lOLD9S`7?+ z(Gu5)66d1S#FEVXJcW?V+*AfbeM4h?L&JX;*OdbmsDc!vB$lLFC4*F@G8h>c8tNLD z=^7e@7@Aud8(0}y=o*+?85r!Ud#{V4AvZrIGp!Q0hSSR76F~_8WJ7R%T1k0gQ7VID lN`6wRf?H-$YI%N9cCmtUuxa7e$7Vov44$rjF6*2UngCgH0s8;| literal 0 HcmV?d00001 diff --git a/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_ime_pressed.png b/packages/SystemUI/res/drawable-sw600dp-mdpi/ic_sysbar_ime_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..8bab6cf338f7828ac8ccc8bff57f1e9ed1229df5 GIT binary patch literal 1267 zcmeAS@N?(olHy`uVBq!ia0vp^G9b*s1|*Ak?@s|zY)RhkE)4%caKYZ?lYt_f1s;*b z3=G^tAk28_ZrvY{U|E4N8vw$r+6KkSeg_B!y|8e-cWpN=FOQe zokI%^H|&0J$}4Gy!oKp@zpCfM^Y?!(?ew1hHqzlkTFO)D7Dk2pDsSo^+-3~X*XLmD zbIE8HWm04Xk_t;$k`G3$Q5L+`ci*yTPD%2HASIRt347_^TnhvQ)NhN7EADdMGN~h`;qtqQOiya&yc1hld+mw~oBCtLwRf2{SbCDqeB^rg zCh%0bT(JEd^%Wu~?!_hSopgNuES32CORm2&whDcEK|^up)&rBfmscKd`uo+eS3gbD zv$H_uQ{vofe^aY=FTCyG-nYAMz0*Fkvp?T8XsfT@V;%Y=W%c=fb*+&8sXr37p8bHcJU=e^zYJ1aH$OsjbG=B0gGoIFL| z{Kd62i+^v^&)kh&RJ-Za!}t0hP8z7`w*1)aK4YaA=VBJ+qvw9y`Pt?$C+Rce%;rcf zhSr9uL48iwo+sQ}9(_viIrAxDyR|{nd<>Ut5#2bGKVY)3%$Xf5M>+qTM5 zw)BF;f#8mFVu!=#S1t04Vc)**WLTDgWPj^Zv9n+K4u9qA4~xoKQ~DyjTZb=s(N?}@ zw|;f6MQe^~v0uHH^gy%a=IKj!(>IzsSqoj1U%21SJGH1OL1JmAKzL%lXZW{8J&4xAryFDWu0&Fo;lA~n5pcRZhgCg zn=zw1F6WZzw7P->o}1-c4pxLo^=vfcra@PhT6(FWkwXS}y&AYiZhlt*!Bmh7p_N zFJ`}Z`~UI&zYa(DpSoYK_FE)o`@Vk*6Wrzl^SWq>Yeb22QEFmIW`3SRNM>#-gQ32m zvA&_IIQ+eo=O@f^)EG;nv4y PKy?hBu6{1-oD!M|xA&jf59Dzc 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 diff --git a/packages/SystemUI/res/drawable/ic_sysbar_zoom.xml b/packages/SystemUI/res/drawable/ic_sysbar_zoom.xml index 977e00205e6fd..97d0348f0a3bf 100644 --- a/packages/SystemUI/res/drawable/ic_sysbar_zoom.xml +++ b/packages/SystemUI/res/drawable/ic_sysbar_zoom.xml @@ -16,6 +16,7 @@ + diff --git a/packages/SystemUI/res/layout-sw600dp/status_bar.xml b/packages/SystemUI/res/layout-sw600dp/status_bar.xml index 707a8cb56f730..d9f3f2324499c 100644 --- a/packages/SystemUI/res/layout-sw600dp/status_bar.xml +++ b/packages/SystemUI/res/layout-sw600dp/status_bar.xml @@ -75,13 +75,6 @@ systemui:keyCode="82" android:visibility="invisible" /> - diff --git a/packages/SystemUI/res/layout-sw600dp/status_bar_compat_mode_panel.xml b/packages/SystemUI/res/layout-sw600dp/status_bar_compat_mode_panel.xml new file mode 100644 index 0000000000000..c151565fe798f --- /dev/null +++ b/packages/SystemUI/res/layout-sw600dp/status_bar_compat_mode_panel.xml @@ -0,0 +1,43 @@ + + + + + + + + + diff --git a/packages/SystemUI/res/layout-sw600dp/status_bar_notification_area.xml b/packages/SystemUI/res/layout-sw600dp/status_bar_notification_area.xml index f53b29e36beb7..fecfe7f1ae1b2 100644 --- a/packages/SystemUI/res/layout-sw600dp/status_bar_notification_area.xml +++ b/packages/SystemUI/res/layout-sw600dp/status_bar_notification_area.xml @@ -27,7 +27,7 @@ > - + + + - diff --git a/packages/SystemUI/res/values-sw600dp/dimens.xml b/packages/SystemUI/res/values-sw600dp/dimens.xml index dec8b672734b9..944e0eeffe6d2 100644 --- a/packages/SystemUI/res/values-sw600dp/dimens.xml +++ b/packages/SystemUI/res/values-sw600dp/dimens.xml @@ -26,5 +26,6 @@ 512dp 770dp + + 56dp - diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml index 446827b2869ed..973a4b2849ed5 100644 --- a/packages/SystemUI/res/values/strings.xml +++ b/packages/SystemUI/res/values/strings.xml @@ -143,4 +143,11 @@ Use by default for this USB accessory + + Zoom to fill screen + + + Stretch to fill screen diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/CompatModeButton.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/CompatModeButton.java index c3052e8c3d2cd..7fbf7344a25be 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/CompatModeButton.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/CompatModeButton.java @@ -27,7 +27,8 @@ import android.widget.ImageView; import com.android.systemui.R; -public class CompatModeButton extends ImageView implements View.OnClickListener { +public class CompatModeButton extends ImageView { + private static final boolean DEBUG = false; private static final String TAG = "StatusBar.CompatModeButton"; private ActivityManager mAM; @@ -43,22 +44,14 @@ public class CompatModeButton extends ImageView implements View.OnClickListener mAM = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); - setOnClickListener(this); - refresh(); } - @Override - public void onClick(View v) { - mAM.setFrontActivityScreenCompatMode(ActivityManager.COMPAT_MODE_TOGGLE); - } - public void refresh() { int mode = mAM.getFrontActivityScreenCompatMode(); - setVisibility((mode == ActivityManager.COMPAT_MODE_NEVER - || mode == ActivityManager.COMPAT_MODE_ALWAYS) - ? View.GONE - : View.VISIBLE - ); + final boolean vis = (mode != ActivityManager.COMPAT_MODE_NEVER + && mode != ActivityManager.COMPAT_MODE_ALWAYS); + if (DEBUG) Slog.d(TAG, "compat mode is " + mode + "; icon will " + (vis ? "show" : "hide")); + setVisibility(vis ? View.VISIBLE : View.GONE); } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/CompatModePanel.java b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/CompatModePanel.java new file mode 100644 index 0000000000000..5a82d1b47e57e --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/CompatModePanel.java @@ -0,0 +1,115 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.statusbar.tablet; + +import android.app.ActivityManager; +import android.content.Context; +import android.content.res.TypedArray; +import android.os.RemoteException; +import android.util.AttributeSet; +import android.util.Slog; +import android.view.View; +import android.widget.FrameLayout; +import android.widget.ImageView; +import android.widget.RadioButton; +import android.widget.RadioGroup; + +import com.android.systemui.R; + +public class CompatModePanel extends FrameLayout implements StatusBarPanel, + View.OnClickListener { + private static final boolean DEBUG = TabletStatusBar.DEBUG; + private static final String TAG = "CompatModePanel"; + + private ActivityManager mAM; + + private boolean mAttached = false; + private Context mContext; + private RadioButton mOnButton, mOffButton; + + private View mTrigger; +// private InputMethodButton mInputMethodSwitchButton; + + public CompatModePanel(Context context, AttributeSet attrs) { + super(context, attrs); + mContext = context; + mAM = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); + } + + @Override + public void onFinishInflate() { + mOnButton = (RadioButton) findViewById(R.id.compat_mode_on_radio); + mOffButton = (RadioButton) findViewById(R.id.compat_mode_off_radio); + mOnButton.setOnClickListener(this); + mOffButton.setOnClickListener(this); + + refresh(); + } + + @Override + protected void onDetachedFromWindow() { + super.onDetachedFromWindow(); + if (mAttached) { + mAttached = false; + } + } + + @Override + protected void onAttachedToWindow() { + super.onAttachedToWindow(); + if (!mAttached) { + mAttached = true; + } + } + + @Override + public void onClick(View v) { + if (v == mOnButton) { + mAM.setFrontActivityScreenCompatMode(ActivityManager.COMPAT_MODE_ENABLED); + } else if (v == mOffButton) { + mAM.setFrontActivityScreenCompatMode(ActivityManager.COMPAT_MODE_DISABLED); + } + } + + @Override + public boolean isInContentArea(int x, int y) { + return false; + } + + public void setTrigger(View v) { + mTrigger = v; + } + + public void openPanel() { + setVisibility(View.VISIBLE); + if (mTrigger != null) mTrigger.setSelected(true); + refresh(); + } + + public void closePanel() { + setVisibility(View.GONE); + if (mTrigger != null) mTrigger.setSelected(false); + } + + private void refresh() { + int mode = mAM.getFrontActivityScreenCompatMode(); + final boolean on = (mode == ActivityManager.COMPAT_MODE_ENABLED); + mOnButton.setChecked(on); + mOffButton.setChecked(!on); + } + +} diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java index b304ebca2a67b..412cfc7944c12 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java @@ -92,6 +92,8 @@ public class TabletStatusBar extends StatusBar implements public static final int MSG_HIDE_CHROME = 1031; public static final int MSG_OPEN_INPUT_METHODS_PANEL = 1040; public static final int MSG_CLOSE_INPUT_METHODS_PANEL = 1041; + public static final int MSG_OPEN_COMPAT_MODE_PANEL = 1050; + public static final int MSG_CLOSE_COMPAT_MODE_PANEL = 1051; public static final int MSG_STOP_TICKER = 2000; // Fitts' Law assistance for LatinIME; see policy.EventHole @@ -125,8 +127,9 @@ public class TabletStatusBar extends StatusBar implements View mMenuButton; View mRecentButton; - ViewGroup mNotificationAndImeArea; + ViewGroup mFeedbackIconArea; // notification icons, IME icon, compat icon InputMethodButton mInputMethodSwitchButton; + CompatModeButton mCompatModeButton; NotificationPanel mNotificationPanel; WindowManager.LayoutParams mNotificationPanelParams; @@ -165,6 +168,7 @@ public class TabletStatusBar extends StatusBar implements private RecentAppsPanel mRecentsPanel; private InputMethodsPanel mInputMethodsPanel; + private CompatModePanel mCompatModePanel; public Context getContext() { return mContext; } @@ -304,6 +308,29 @@ public class TabletStatusBar extends StatusBar implements lp.windowAnimations = R.style.Animation_RecentPanel; WindowManagerImpl.getDefault().addView(mInputMethodsPanel, lp); + + // Compatibility mode selector panel + mCompatModePanel = (CompatModePanel) View.inflate(context, + R.layout.status_bar_compat_mode_panel, null); + mCompatModePanel.setOnTouchListener(new TouchOutsideListener( + MSG_CLOSE_COMPAT_MODE_PANEL, mCompatModePanel)); + mCompatModePanel.setTrigger(mCompatModeButton); + mCompatModePanel.setVisibility(View.GONE); + mStatusBarView.setIgnoreChildren(4, mCompatModeButton, mCompatModePanel); + lp = new WindowManager.LayoutParams( + 250, + ViewGroup.LayoutParams.WRAP_CONTENT, + WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL, + WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN + | WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM + | WindowManager.LayoutParams.FLAG_SPLIT_TOUCH + | WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED, + PixelFormat.TRANSLUCENT); + lp.gravity = Gravity.BOTTOM | Gravity.RIGHT; + lp.setTitle("CompatModePanel"); + lp.windowAnimations = android.R.style.Animation_Dialog; + + WindowManagerImpl.getDefault().addView(mCompatModePanel, lp); } private int getNotificationPanelHeight() { @@ -430,11 +457,14 @@ public class TabletStatusBar extends StatusBar implements mNavigationArea.setLayoutTransition(mBarContentsLayoutTransition); // The bar contents buttons - mNotificationAndImeArea = (ViewGroup)sb.findViewById(R.id.notificationAndImeArea); + mFeedbackIconArea = (ViewGroup)sb.findViewById(R.id.feedbackIconArea); mInputMethodSwitchButton = (InputMethodButton) sb.findViewById(R.id.imeSwitchButton); // Overwrite the lister mInputMethodSwitchButton.setOnClickListener(mOnClickListener); + mCompatModeButton = (CompatModeButton) sb.findViewById(R.id.compatModeButton); + mCompatModeButton.setOnClickListener(mOnClickListener); + // for redirecting errant bar taps to the IME mFakeSpaceBar = sb.findViewById(R.id.fake_space_bar); @@ -646,6 +676,14 @@ public class TabletStatusBar extends StatusBar implements if (DEBUG) Slog.d(TAG, "closing input methods panel"); if (mInputMethodsPanel != null) mInputMethodsPanel.closePanel(false); break; + case MSG_OPEN_COMPAT_MODE_PANEL: + if (DEBUG) Slog.d(TAG, "opening compat panel"); + if (mCompatModePanel != null) mCompatModePanel.openPanel(); + break; + case MSG_CLOSE_COMPAT_MODE_PANEL: + if (DEBUG) Slog.d(TAG, "closing compat panel"); + if (mCompatModePanel != null) mCompatModePanel.closePanel(); + break; case MSG_SHOW_CHROME: if (DEBUG) Slog.d(TAG, "hiding shadows (lights on)"); mBarContents.setVisibility(View.VISIBLE); @@ -914,14 +952,14 @@ public class TabletStatusBar extends StatusBar implements if (0 == (mDisabled & (StatusBarManager.DISABLE_NOTIFICATION_ICONS | StatusBarManager.DISABLE_NOTIFICATION_TICKER))) { mTicker.add(key, n); - mNotificationAndImeArea.setVisibility(View.GONE); + mFeedbackIconArea.setVisibility(View.GONE); } } } // called by TabletTicker when it's done with all queued ticks public void doneTicking() { - mNotificationAndImeArea.setVisibility(View.VISIBLE); + mFeedbackIconArea.setVisibility(View.VISIBLE); } public void animateExpand() { @@ -939,6 +977,8 @@ public class TabletStatusBar extends StatusBar implements mHandler.sendEmptyMessage(MSG_CLOSE_RECENTS_PANEL); mHandler.removeMessages(MSG_CLOSE_INPUT_METHODS_PANEL); mHandler.sendEmptyMessage(MSG_CLOSE_INPUT_METHODS_PANEL); + mHandler.removeMessages(MSG_CLOSE_COMPAT_MODE_PANEL); + mHandler.sendEmptyMessage(MSG_CLOSE_COMPAT_MODE_PANEL); mHandler.removeMessages(MSG_CLOSE_NOTIFICATION_PEEK); mHandler.sendEmptyMessage(MSG_CLOSE_NOTIFICATION_PEEK); } @@ -965,9 +1005,8 @@ public class TabletStatusBar extends StatusBar implements // See above re: lights-out policy for legacy apps. if (windowVisible) setLightsOn(true); - // XXX: HACK: not sure if this is the best way to catch a new activity that might require a - // change in compatibility features, but it's a start. - ((CompatModeButton) mBarContents.findViewById(R.id.compat_button)).refresh(); + // XXX: this is broken: http://b/4603422 + mCompatModeButton.refresh(); } public void setImeWindowStatus(IBinder token, int vis, int backDisposition) { @@ -1060,6 +1099,8 @@ public class TabletStatusBar extends StatusBar implements onClickRecentButton(); } else if (v == mInputMethodSwitchButton) { onClickInputMethodSwitchButton(); + } else if (v == mCompatModeButton) { + onClickCompatModeButton(); } } }; @@ -1102,6 +1143,13 @@ public class TabletStatusBar extends StatusBar implements mHandler.sendEmptyMessage(msg); } + public void onClickCompatModeButton() { + int msg = (mCompatModePanel.getVisibility() == View.GONE) ? + MSG_OPEN_COMPAT_MODE_PANEL : MSG_CLOSE_COMPAT_MODE_PANEL; + mHandler.removeMessages(msg); + mHandler.sendEmptyMessage(msg); + } + public NotificationClicker makeClicker(PendingIntent intent, String pkg, String tag, int id) { return new NotificationClicker(intent, pkg, tag, id); } @@ -1438,13 +1486,13 @@ public class TabletStatusBar extends StatusBar implements ArrayList toShow = new ArrayList(); - // When IME button is visible, the number of notification icons should be decremented - // to fit the upper limit. - // IME switcher icon is big and occupy width of one icon - final int maxNotificationIconsImeButtonVisible = mMaxNotificationIcons - 1; - final int maxNotificationIconsCount = - (mInputMethodSwitchButton.getVisibility() != View.GONE) ? - maxNotificationIconsImeButtonVisible : mMaxNotificationIcons; + // Extra Special Icons + // The IME switcher and compatibility mode icons take the place of notifications. You didn't + // need to see all those new emails, did you? + int maxNotificationIconsCount = mMaxNotificationIcons; + if (mInputMethodSwitchButton.getVisibility() != View.GONE) maxNotificationIconsCount --; + if (mCompatModeButton.getVisibility() != View.GONE) maxNotificationIconsCount --; + for (int i=0; i< maxNotificationIconsCount; i++) { if (i>=N) break; toShow.add(mNotificationData.get(N-i-1).icon); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBarView.java index 4e2faf7927711..dff1f6ada0e0b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBarView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBarView.java @@ -27,8 +27,9 @@ import android.widget.FrameLayout; public class TabletStatusBarView extends FrameLayout { private Handler mHandler; - private final View[] mIgnoreChildren = new View[4]; - private final View[] mPanels = new View[4]; + private final int MAX_PANELS = 5; + private final View[] mIgnoreChildren = new View[MAX_PANELS]; + private final View[] mPanels = new View[MAX_PANELS]; private final int[] mPos = new int[2]; public TabletStatusBarView(Context context) {