Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java +8 −2 Original line number Diff line number Diff line Loading @@ -219,7 +219,7 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb protected LockPatternUtils mLockPatternUtils; protected ViewMediatorCallback mViewMediatorCallback; protected CentralSurfaces mCentralSurfaces; @Nullable protected CentralSurfaces mCentralSurfaces; private NotificationPanelViewController mNotificationPanelViewController; private BiometricUnlockController mBiometricUnlockController; private boolean mCentralSurfacesRegistered; Loading Loading @@ -267,7 +267,7 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb private final KeyguardUpdateMonitor mKeyguardUpdateManager; private final LatencyTracker mLatencyTracker; private final KeyguardSecurityModel mKeyguardSecurityModel; private KeyguardBypassController mBypassController; @Nullable private KeyguardBypassController mBypassController; @Nullable private AlternateBouncer mAlternateBouncer; private final KeyguardUpdateMonitorCallback mUpdateMonitorCallback = Loading Loading @@ -744,6 +744,12 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb } private void updateAlternateBouncerShowing(boolean updateScrim) { if (!mCentralSurfacesRegistered) { // if CentralSurfaces hasn't been registered yet, then the controllers below haven't // been initialized yet so there's no need to attempt to forward them events. return; } final boolean isShowingAlternateBouncer = isShowingAlternateBouncer(); if (mKeyguardMessageAreaController != null) { mKeyguardMessageAreaController.setIsVisible(isShowingAlternateBouncer); Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java +36 −0 Original line number Diff line number Diff line Loading @@ -587,4 +587,40 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase { mStatusBarKeyguardViewManager.hideBouncer(false); verify(mPrimaryBouncerInteractor, never()).hide(); } @Test public void hideAlternateBouncer_beforeCentralSurfacesRegistered() { mStatusBarKeyguardViewManager = new StatusBarKeyguardViewManager( getContext(), mViewMediatorCallback, mLockPatternUtils, mStatusBarStateController, mock(ConfigurationController.class), mKeyguardUpdateMonitor, mDreamOverlayStateController, mock(NavigationModeController.class), mock(DockManager.class), mock(NotificationShadeWindowController.class), mKeyguardStateController, mock(NotificationMediaManager.class), mKeyguardBouncerFactory, mKeyguardMessageAreaFactory, Optional.of(mSysUiUnfoldComponent), () -> mShadeController, mLatencyTracker, mKeyguardSecurityModel, mFeatureFlags, mPrimaryBouncerCallbackInteractor, mPrimaryBouncerInteractor, mBouncerView) { @Override public ViewRootImpl getViewRootImpl() { return mViewRootImpl; } }; // the following call before registering centralSurfaces should NOT throw a NPE: mStatusBarKeyguardViewManager.hideAlternateBouncer(true); } } Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java +8 −2 Original line number Diff line number Diff line Loading @@ -219,7 +219,7 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb protected LockPatternUtils mLockPatternUtils; protected ViewMediatorCallback mViewMediatorCallback; protected CentralSurfaces mCentralSurfaces; @Nullable protected CentralSurfaces mCentralSurfaces; private NotificationPanelViewController mNotificationPanelViewController; private BiometricUnlockController mBiometricUnlockController; private boolean mCentralSurfacesRegistered; Loading Loading @@ -267,7 +267,7 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb private final KeyguardUpdateMonitor mKeyguardUpdateManager; private final LatencyTracker mLatencyTracker; private final KeyguardSecurityModel mKeyguardSecurityModel; private KeyguardBypassController mBypassController; @Nullable private KeyguardBypassController mBypassController; @Nullable private AlternateBouncer mAlternateBouncer; private final KeyguardUpdateMonitorCallback mUpdateMonitorCallback = Loading Loading @@ -744,6 +744,12 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb } private void updateAlternateBouncerShowing(boolean updateScrim) { if (!mCentralSurfacesRegistered) { // if CentralSurfaces hasn't been registered yet, then the controllers below haven't // been initialized yet so there's no need to attempt to forward them events. return; } final boolean isShowingAlternateBouncer = isShowingAlternateBouncer(); if (mKeyguardMessageAreaController != null) { mKeyguardMessageAreaController.setIsVisible(isShowingAlternateBouncer); Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java +36 −0 Original line number Diff line number Diff line Loading @@ -587,4 +587,40 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase { mStatusBarKeyguardViewManager.hideBouncer(false); verify(mPrimaryBouncerInteractor, never()).hide(); } @Test public void hideAlternateBouncer_beforeCentralSurfacesRegistered() { mStatusBarKeyguardViewManager = new StatusBarKeyguardViewManager( getContext(), mViewMediatorCallback, mLockPatternUtils, mStatusBarStateController, mock(ConfigurationController.class), mKeyguardUpdateMonitor, mDreamOverlayStateController, mock(NavigationModeController.class), mock(DockManager.class), mock(NotificationShadeWindowController.class), mKeyguardStateController, mock(NotificationMediaManager.class), mKeyguardBouncerFactory, mKeyguardMessageAreaFactory, Optional.of(mSysUiUnfoldComponent), () -> mShadeController, mLatencyTracker, mKeyguardSecurityModel, mFeatureFlags, mPrimaryBouncerCallbackInteractor, mPrimaryBouncerInteractor, mBouncerView) { @Override public ViewRootImpl getViewRootImpl() { return mViewRootImpl; } }; // the following call before registering centralSurfaces should NOT throw a NPE: mStatusBarKeyguardViewManager.hideAlternateBouncer(true); } }