summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/tablet/CompatModePanel.java7
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java31
2 files changed, 29 insertions, 9 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/CompatModePanel.java b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/CompatModePanel.java
index 5a82d1b..c62c4ad 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/CompatModePanel.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/CompatModePanel.java
@@ -107,9 +107,14 @@ public class CompatModePanel extends FrameLayout implements StatusBarPanel,
private void refresh() {
int mode = mAM.getFrontActivityScreenCompatMode();
+ if (mode == ActivityManager.COMPAT_MODE_ALWAYS
+ || mode == ActivityManager.COMPAT_MODE_NEVER) {
+ // No longer have something to switch.
+ closePanel();
+ return;
+ }
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 a7af30d..e7ad2b2 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java
@@ -166,6 +166,8 @@ public class TabletStatusBar extends StatusBar implements
View mFakeSpaceBar;
KeyEvent mSpaceBarKeyEvent = null;
+ View mCompatibilityHelpDialog = null;
+
// for disabling the status bar
int mDisabled = 0;
@@ -1013,17 +1015,27 @@ public class TabletStatusBar extends StatusBar implements
if (! Prefs.read(mContext).getBoolean(Prefs.SHOWN_COMPAT_MODE_HELP, false)) {
showCompatibilityHelp();
}
+ } else {
+ hideCompatibilityHelp();
+ mCompatModePanel.closePanel();
}
}
private void showCompatibilityHelp() {
- final View dlg = View.inflate(mContext, R.layout.compat_mode_help, null);
- View button = dlg.findViewById(R.id.button);
+ if (mCompatibilityHelpDialog != null) {
+ return;
+ }
+
+ mCompatibilityHelpDialog = View.inflate(mContext, R.layout.compat_mode_help, null);
+ View button = mCompatibilityHelpDialog.findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- WindowManagerImpl.getDefault().removeView(dlg);
+ hideCompatibilityHelp();
+ SharedPreferences.Editor editor = Prefs.edit(mContext);
+ editor.putBoolean(Prefs.SHOWN_COMPAT_MODE_HELP, true);
+ editor.apply();
}
});
@@ -1040,13 +1052,16 @@ public class TabletStatusBar extends StatusBar implements
| WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING;
lp.windowAnimations = com.android.internal.R.style.Animation_ZoomButtons; // simple fade
- WindowManagerImpl.getDefault().addView(dlg, lp);
-
- SharedPreferences.Editor editor = Prefs.edit(mContext);
- editor.putBoolean(Prefs.SHOWN_COMPAT_MODE_HELP, true);
- editor.apply();
+ WindowManagerImpl.getDefault().addView(mCompatibilityHelpDialog, lp);
}
+ private void hideCompatibilityHelp() {
+ if (mCompatibilityHelpDialog != null) {
+ WindowManagerImpl.getDefault().removeView(mCompatibilityHelpDialog);
+ mCompatibilityHelpDialog = null;
+ }
+ }
+
public void setImeWindowStatus(IBinder token, int vis, int backDisposition) {
mInputMethodSwitchButton.setImeWindowStatus(token,
(vis & InputMethodService.IME_ACTIVE) != 0);