Fix MENU icon weirdness. (DO NOT MERGE)
(Broken by change I7cbb7bbf.)
Bug: 5308636
Change-Id: I30ca20f62bd140a823eb926a9a0521c4d6014680
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
index 7adda00..d260e6d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
@@ -59,7 +59,7 @@
int mBarSize;
boolean mVertical;
- boolean mHidden, mLowProfile;
+ boolean mHidden, mLowProfile, mShowMenu;
int mDisabledFlags = 0;
public View getRecentsButton() {
@@ -91,6 +91,7 @@
final Resources res = mContext.getResources();
mBarSize = res.getDimensionPixelSize(R.dimen.navigation_bar_size);
mVertical = false;
+ mShowMenu = false;
}
View.OnTouchListener mLightsOutListener = new View.OnTouchListener() {
@@ -126,7 +127,23 @@
getBackButton() .setVisibility(disableBack ? View.INVISIBLE : View.VISIBLE);
getHomeButton() .setVisibility(disableNavigation ? View.INVISIBLE : View.VISIBLE);
getRecentsButton().setVisibility(disableNavigation ? View.INVISIBLE : View.VISIBLE);
- getMenuButton() .setVisibility(disableNavigation ? View.INVISIBLE : View.VISIBLE);
+
+ getMenuButton() .setVisibility((disableNavigation || !mShowMenu)
+ ? View.INVISIBLE : View.VISIBLE);
+ }
+
+ public void setMenuVisibility(final boolean show) {
+ setMenuVisibility(show, false);
+ }
+
+ public void setMenuVisibility(final boolean show, final boolean force) {
+ if (!force && mShowMenu == show) return;
+
+ mShowMenu = show;
+
+ getMenuButton().setVisibility(
+ (0 != (mDisabledFlags & View.STATUS_BAR_DISABLE_NAVIGATION) || !mShowMenu)
+ ? View.INVISIBLE : View.VISIBLE);
}
public void setLowProfile(final boolean lightsOut) {
@@ -256,6 +273,7 @@
// force the low profile & disabled states into compliance
setLowProfile(mLowProfile, false, true /* force */);
setDisabledFlags(mDisabledFlags, true /* force */);
+ setMenuVisibility(mShowMenu, true /* force */);
if (DEBUG_DEADZONE) {
mCurrentView.findViewById(R.id.deadzone).setBackgroundColor(0x808080FF);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
index febf3ab..8fc8448 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
@@ -1572,8 +1572,7 @@
Slog.d(TAG, (showMenu?"showing":"hiding") + " the MENU button");
}
if (mNavigationBarView != null) {
- mNavigationBarView.getMenuButton().setVisibility(showMenu
- ? View.VISIBLE : View.INVISIBLE);
+ mNavigationBarView.setMenuVisibility(showMenu);
}
// See above re: lights-out policy for legacy apps.