diff options
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/tablet/CompatModePanel.java | 7 | ||||
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java | 31 |
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); |