summaryrefslogtreecommitdiffstats
path: root/packages
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
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')
-rwxr-xr-xpackages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java4
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java22
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());
}