Skip to content

Commit f1ebcee

Browse files
committed
Fix MENU icon weirdness. (DO NOT MERGE)
(Broken by change I7cbb7bbf.) Bug: 5308636 Change-Id: I30ca20f62bd140a823eb926a9a0521c4d6014680
1 parent 3144a6c commit f1ebcee

2 files changed

Lines changed: 21 additions & 4 deletions

File tree

packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ public class NavigationBarView extends LinearLayout {
5959
int mBarSize;
6060
boolean mVertical;
6161

62-
boolean mHidden, mLowProfile;
62+
boolean mHidden, mLowProfile, mShowMenu;
6363
int mDisabledFlags = 0;
6464

6565
public View getRecentsButton() {
@@ -91,6 +91,7 @@ public NavigationBarView(Context context, AttributeSet attrs) {
9191
final Resources res = mContext.getResources();
9292
mBarSize = res.getDimensionPixelSize(R.dimen.navigation_bar_size);
9393
mVertical = false;
94+
mShowMenu = false;
9495
}
9596

9697
View.OnTouchListener mLightsOutListener = new View.OnTouchListener() {
@@ -126,7 +127,23 @@ public void setDisabledFlags(int disabledFlags, boolean force) {
126127
getBackButton() .setVisibility(disableBack ? View.INVISIBLE : View.VISIBLE);
127128
getHomeButton() .setVisibility(disableNavigation ? View.INVISIBLE : View.VISIBLE);
128129
getRecentsButton().setVisibility(disableNavigation ? View.INVISIBLE : View.VISIBLE);
129-
getMenuButton() .setVisibility(disableNavigation ? View.INVISIBLE : View.VISIBLE);
130+
131+
getMenuButton() .setVisibility((disableNavigation || !mShowMenu)
132+
? View.INVISIBLE : View.VISIBLE);
133+
}
134+
135+
public void setMenuVisibility(final boolean show) {
136+
setMenuVisibility(show, false);
137+
}
138+
139+
public void setMenuVisibility(final boolean show, final boolean force) {
140+
if (!force && mShowMenu == show) return;
141+
142+
mShowMenu = show;
143+
144+
getMenuButton().setVisibility(
145+
(0 != (mDisabledFlags & View.STATUS_BAR_DISABLE_NAVIGATION) || !mShowMenu)
146+
? View.INVISIBLE : View.VISIBLE);
130147
}
131148

132149
public void setLowProfile(final boolean lightsOut) {
@@ -256,6 +273,7 @@ public void reorient() {
256273
// force the low profile & disabled states into compliance
257274
setLowProfile(mLowProfile, false, true /* force */);
258275
setDisabledFlags(mDisabledFlags, true /* force */);
276+
setMenuVisibility(mShowMenu, true /* force */);
259277

260278
if (DEBUG_DEADZONE) {
261279
mCurrentView.findViewById(R.id.deadzone).setBackgroundColor(0x808080FF);

packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1572,8 +1572,7 @@ public void topAppWindowChanged(boolean showMenu) {
15721572
Slog.d(TAG, (showMenu?"showing":"hiding") + " the MENU button");
15731573
}
15741574
if (mNavigationBarView != null) {
1575-
mNavigationBarView.getMenuButton().setVisibility(showMenu
1576-
? View.VISIBLE : View.INVISIBLE);
1575+
mNavigationBarView.setMenuVisibility(showMenu);
15771576
}
15781577

15791578
// See above re: lights-out policy for legacy apps.

0 commit comments

Comments
 (0)