diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java | 6 | ||||
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java | 18 |
2 files changed, 24 insertions, 0 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 c3f20bc3b313..5f1ae586e810 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java @@ -57,6 +57,7 @@ public class NavigationBarView extends LinearLayout { boolean mVertical; boolean mHidden; + boolean mEnabled = true; public View getRecentsButton() { return mCurrentView.findViewById(R.id.recent_apps); @@ -81,6 +82,11 @@ public class NavigationBarView extends LinearLayout { mVertical = false; } + public void setEnabled(final boolean enable) { + mEnabled = enable; + mCurrentView.setVisibility(enable ? View.VISIBLE : View.INVISIBLE); + } + public void setHidden(final boolean hide) { if (hide == mHidden) return; 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 e8948318c5e1..1edc351eaa56 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -1048,12 +1048,30 @@ public class PhoneStatusBar extends StatusBar { final int diff = state ^ old; mDisabled = state; + if (DEBUG) { + Slog.d(TAG, String.format("disable: 0x%08x -> 0x%08x (diff: 0x%08x)", + old, state, diff)); + } + if ((diff & StatusBarManager.DISABLE_EXPAND) != 0) { if ((state & StatusBarManager.DISABLE_EXPAND) != 0) { Slog.d(TAG, "DISABLE_EXPAND: yes"); animateCollapse(); } } + + if ((diff & StatusBarManager.DISABLE_NAVIGATION) != 0) { + if ((state & StatusBarManager.DISABLE_NAVIGATION) != 0) { + Slog.d(TAG, "DISABLE_NAVIGATION: yes"); + + // close recents if it's visible + mHandler.removeMessages(MSG_CLOSE_RECENTS_PANEL); + mHandler.sendEmptyMessage(MSG_CLOSE_RECENTS_PANEL); + } + + mNavigationBarView.setEnabled((state & StatusBarManager.DISABLE_NAVIGATION) == 0); + } + if ((diff & StatusBarManager.DISABLE_NOTIFICATION_ICONS) != 0) { if ((state & StatusBarManager.DISABLE_NOTIFICATION_ICONS) != 0) { Slog.d(TAG, "DISABLE_NOTIFICATION_ICONS: yes"); |