summaryrefslogtreecommitdiffstats
path: root/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
diff options
context:
space:
mode:
authorRaj Yengisetty <rajesh@cyngn.com>2015-03-19 15:01:34 -0700
committerRoman Birg <roman@cyngn.com>2016-04-18 00:13:38 -0700
commit0053be36623525909784d83979a4f9aa42ba17e2 (patch)
tree4ec82b9f9522839334a5993a885c1b1b88126744 /packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
parent1e1fdf144ba50e38dd5e311ca319241cb1e14142 (diff)
downloadframeworks_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.java22
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());
}