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 | |
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')
-rwxr-xr-x | packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java | 4 | ||||
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java | 22 |
2 files changed, 19 insertions, 7 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java index 065e49f..181563f 100755 --- a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java @@ -155,6 +155,8 @@ public abstract class BaseStatusBar extends SystemUI implements private static final String BANNER_ACTION_SETUP = "com.android.systemui.statusbar.banner_action_setup"; + protected static final int SYSTEM_UI_VISIBILITY_MASK = 0xffffffff; + private static final Uri SPAM_MESSAGE_URI = new Uri.Builder() .scheme(ContentResolver.SCHEME_CONTENT) .authority(SpamMessageProvider.AUTHORITY) @@ -625,7 +627,7 @@ public abstract class BaseStatusBar extends SystemUI implements mSettingsObserver.onChange(false); // set up disable(switches[0], switches[6], false /* animate */); - setSystemUiVisibility(switches[1], 0xffffffff); + setSystemUiVisibility(switches[1], SYSTEM_UI_VISIBILITY_MASK); topAppWindowChanged(switches[2] != 0); // StatusBarManagerService has a back up of IME token and it's restored here. setImeWindowStatus(binders.get(0), switches[3], switches[4], switches[5] != 0); 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()); } |