diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java index 0b721383e2d19..8792118fb9ef2 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java @@ -188,6 +188,10 @@ public class KeyguardBouncer { } if (mContainer.getVisibility() == View.VISIBLE || mShowingSoon) { + // Calls to reset must resume the ViewControllers when in fullscreen mode + if (needsFullscreenBouncer()) { + mKeyguardViewController.onResume(); + } return; } diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardBouncerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardBouncerTest.java index f43c2a1834657..9c02216722e2b 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardBouncerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardBouncerTest.java @@ -475,4 +475,19 @@ public class KeyguardBouncerTest extends SysuiTestCase { mBouncer.setExpansion(bouncerHideAmount); verify(callback, never()).onExpansionChanged(bouncerHideAmount); } + + @Test + public void testOnResumeCalledForFullscreenBouncerOnSecondShow() { + // GIVEN a security mode which requires fullscreen bouncer + when(mKeyguardSecurityModel.getSecurityMode(anyInt())) + .thenReturn(KeyguardSecurityModel.SecurityMode.SimPin); + mBouncer.show(true); + + // WHEN a second call to show occurs, the bouncer will already by visible + reset(mKeyguardHostViewController); + mBouncer.show(true); + + // THEN ensure the ViewController is told to resume + verify(mKeyguardHostViewController).onResume(); + } }