summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2011-06-15 11:16:06 -0700
committerDianne Hackborn <hackbod@google.com>2011-06-15 11:24:07 -0700
commited31bbf65267c1f383dd0dff37acd034f3b9b59f (patch)
tree1071a120f9e04ecaf11ff65247fe83ec57feb4e4
parent5994bff92472b3bdcd5754d8a9156b49269a9c1d (diff)
downloadframeworks_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.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 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);