diff options
author | Dianne Hackborn <hackbod@google.com> | 2011-06-15 11:16:06 -0700 |
---|---|---|
committer | Dianne Hackborn <hackbod@google.com> | 2011-06-15 11:24:07 -0700 |
commit | ed31bbf65267c1f383dd0dff37acd034f3b9b59f (patch) | |
tree | 1071a120f9e04ecaf11ff65247fe83ec57feb4e4 | |
parent | 5994bff92472b3bdcd5754d8a9156b49269a9c1d (diff) | |
download | frameworks_base-ed31bbf65267c1f383dd0dff37acd034f3b9b59f.zip frameworks_base-ed31bbf65267c1f383dd0dff37acd034f3b9b59f.tar.gz frameworks_base-ed31bbf65267c1f383dd0dff37acd034f3b9b59f.tar.bz2 |
Clean up some edge cases in the compat mode UI:
- Don't put up multiple dialogs if a switch happens between activities
that both can use compat mode.
- Remove the help dialog if the user switches away from an app that
can use compat mode.
- Don't set the "don't show" preference until the user explicitly hits
the button.
- Hide the compat mode switch UI if the compat mode button is hidden.
Change-Id: I8dd2aab1385a264232a9256284d4a75b8e058e47
-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 eef440c..2e01e92 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java @@ -165,6 +165,8 @@ public class TabletStatusBar extends StatusBar implements View mFakeSpaceBar; KeyEvent mSpaceBarKeyEvent = null; + View mCompatibilityHelpDialog = null; + // for disabling the status bar int mDisabled = 0; @@ -1012,17 +1014,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(); } }); @@ -1039,13 +1051,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); |