diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java | 22 | ||||
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java | 3 |
2 files changed, 21 insertions, 4 deletions
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 7adda001bfcb..d260e6db495a 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 @@ public class NavigationBarView extends LinearLayout { int mBarSize; boolean mVertical; - boolean mHidden, mLowProfile; + boolean mHidden, mLowProfile, mShowMenu; int mDisabledFlags = 0; public View getRecentsButton() { @@ -91,6 +91,7 @@ public class NavigationBarView extends LinearLayout { 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 @@ public class NavigationBarView extends LinearLayout { 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 @@ public class NavigationBarView extends LinearLayout { // 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 febf3ab73c0c..8fc844882334 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 @@ public class PhoneStatusBar extends StatusBar { 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. |