From 75221649916422daac60e4f1bfb4638fbcae55a4 Mon Sep 17 00:00:00 2001 From: Brad Stenning Date: Wed, 13 Mar 2019 07:33:24 -0700 Subject: [PATCH] Restore the correct state of the statusbar, navbar, and keygaurd after an density change Bug:117223261 Test: manual Change-Id: Ie3b1a6471c640b20cdb73012d91b6113b66cd87b (cherry picked from commit f3976bae672f587943c657c79c1d54aa0e89c450) --- .../android/systemui/statusbar/car/CarStatusBar.java | 12 ++++++++++++ .../car/CarStatusBarKeyguardViewManager.java | 8 ++++++++ .../android/systemui/statusbar/phone/StatusBar.java | 2 +- 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java index bd0e0b846abfc..7569e61090b5b 100644 --- a/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java +++ b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java @@ -161,6 +161,11 @@ public class CarStatusBar extends StatusBar implements } buildNavBarContent(); + // If the UI was rebuilt (day/night change) while the keyguard was up we need to + // correctly respect that state. + if (mIsKeyguard) { + updateNavBarForKeyguardContent(); + } } private void addTemperatureViewToController(View v) { @@ -211,6 +216,13 @@ public class CarStatusBar extends StatusBar implements @Override public void showKeyguard() { super.showKeyguard(); + updateNavBarForKeyguardContent(); + } + + /** + * Switch to the keyguard applicable content contained in the nav bars + */ + private void updateNavBarForKeyguardContent() { getComponent(NotificationsUI.class).closeCarNotifications(0); if (mNavigationBarView != null) { mNavigationBarView.showKeyguardButtons(); diff --git a/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBarKeyguardViewManager.java b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBarKeyguardViewManager.java index 8c6b9b0107a4c..59218688ce7ab 100644 --- a/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBarKeyguardViewManager.java +++ b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBarKeyguardViewManager.java @@ -64,4 +64,12 @@ public class CarStatusBarKeyguardViewManager extends StatusBarKeyguardViewManage CarStatusBar statusBar = (CarStatusBar) mStatusBar; statusBar.showUserSwitcher(); } + + /** + * Do nothing on this change. + * The base class hides the keyguard which for automotive we want to avoid b/c this would happen + * on a configuration change due to day/night (headlight state). + */ + @Override + public void onDensityOrFontScaleChanged() { } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java index d18b4190400ac..1dedb9ed6e2bb 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -537,7 +537,7 @@ public class StatusBar extends SystemUI implements DemoMode, private BatteryController mBatteryController; protected boolean mPanelExpanded; private UiModeManager mUiModeManager; - private boolean mIsKeyguard; + protected boolean mIsKeyguard; private LogMaker mStatusBarStateLog; protected NotificationIconAreaController mNotificationIconAreaController; @Nullable private View mAmbientIndicationContainer;