diff options
author | Raj Yengisetty <rajesh@cyngn.com> | 2015-03-19 15:01:34 -0700 |
---|---|---|
committer | Roman Birg <roman@cyngn.com> | 2016-04-18 00:13:38 -0700 |
commit | 0053be36623525909784d83979a4f9aa42ba17e2 (patch) | |
tree | 4ec82b9f9522839334a5993a885c1b1b88126744 /packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java | |
parent | 1e1fdf144ba50e38dd5e311ca319241cb1e14142 (diff) | |
download | frameworks_base-0053be36623525909784d83979a4f9aa42ba17e2.zip frameworks_base-0053be36623525909784d83979a4f9aa42ba17e2.tar.gz frameworks_base-0053be36623525909784d83979a4f9aa42ba17e2.tar.bz2 |
SystemUI: Fix nav bar transparency when enabling software keys
Repro:
- Boot device with hardware keys
- Go to Settings -> Buttons and enable on-screen nav bar
- Press home
- Observe launcher now does not have transparent nav bar
Change-Id: I49d04384b72b02ecb432be650d46e136c982a3bd
Diffstat (limited to 'packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java')
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java | 22 |
1 files changed, 16 insertions, 6 deletions
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 bf12a4d..99ae851 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -535,7 +535,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, mNavigationBarView.setDisabledFlags(mDisabled1); mNavigationBarView.setBar(this); - addNavigationBar(); + addNavigationBar(true); // dynamically adding nav bar, reset System UI visibility! } // ensure quick settings is disabled until the current user makes it through the setup wizard @@ -813,7 +813,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, // TODO: use MediaSessionManager.SessionListener to hook us up to future updates // in session state - addNavigationBar(); + addNavigationBar(false); // Developer options - Force Navigation bar try { @@ -1566,16 +1566,26 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, } } - private void prepareNavigationBarView() { + private void prepareNavigationBarView(boolean forceReset) { mNavigationBarView.reorient(); mNavigationBarView.setListeners(mRecentsClickListener, mRecentsPreloadOnTouchListener, mLongPressBackRecentsListener, mHomeActionListener, mLongPressHomeListener); mAssistManager.onConfigurationChanged(); + if (forceReset) { + // Nav Bar was added dynamically - we need to reset the mSystemUiVisibility and call + // setSystemUiVisibility so that mNavigationBarMode is set to the correct value + int newVal = mSystemUiVisibility; + mSystemUiVisibility = 0; + setSystemUiVisibility(newVal, SYSTEM_UI_VISIBILITY_MASK); + checkBarMode(mNavigationBarMode, + mNavigationBarWindowState, mNavigationBarView.getBarTransitions(), + mNoAnimationOnNextBarModeChange); + } } // For small-screen devices (read: phones) that lack hardware navigation buttons - private void addNavigationBar() { + private void addNavigationBar(boolean forceReset) { if (DEBUG) Log.v(TAG, "addNavigationBar: about to add " + mNavigationBarView); if (mNavigationBarView == null) return; @@ -1586,7 +1596,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, return; } - prepareNavigationBarView(); + prepareNavigationBarView(forceReset); mWindowManager.addView(mNavigationBarView, getNavigationBarLayoutParams()); } @@ -1602,7 +1612,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, private void repositionNavigationBar() { if (mNavigationBarView == null || !mNavigationBarView.isAttachedToWindow()) return; - prepareNavigationBarView(); + prepareNavigationBarView(false); mWindowManager.updateViewLayout(mNavigationBarView, getNavigationBarLayoutParams()); } |