diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/car/CarStatusBarKeyguardViewManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/car/CarStatusBarKeyguardViewManager.java index 7a8d22bee2d8e..dabe23eec558f 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/car/CarStatusBarKeyguardViewManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/car/CarStatusBarKeyguardViewManager.java @@ -28,4 +28,15 @@ public class CarStatusBarKeyguardViewManager extends StatusBarKeyguardViewManage CarStatusBar statusBar = (CarStatusBar) mStatusBar; statusBar.setNavBarVisibility(navBarVisible ? View.VISIBLE : View.GONE); } + + /** + * Car is a multi-user system. There's a cancel button on the bouncer that allows the user to + * go back to the user switcher and select another user. Different user may have different + * security mode which requires bouncer container to be resized. For this reason, the bouncer + * view is destroyed on cancel. + */ + @Override + protected boolean shouldDestroyViewOnReset() { + return true; + } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java index 4a0d86c2d4527..5f5d12e73f663 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java @@ -206,13 +206,17 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb } else { mStatusBar.showKeyguard(); if (hideBouncerWhenShowing) { - hideBouncer(false /* destroyView */); + hideBouncer(shouldDestroyViewOnReset() /* destroyView */); mBouncer.prepare(); } } updateStates(); } + protected boolean shouldDestroyViewOnReset() { + return false; + } + private void hideBouncer(boolean destroyView) { mBouncer.hide(destroyView); cancelPendingWakeupAction();