Merge "Don't reset mPendingPinLock on keyguardGoingAway" into udc-dev
This commit is contained in:
@@ -1253,7 +1253,8 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable,
|
|||||||
@Override
|
@Override
|
||||||
public void onPrimaryBouncerShowingChanged() {
|
public void onPrimaryBouncerShowingChanged() {
|
||||||
synchronized (KeyguardViewMediator.this) {
|
synchronized (KeyguardViewMediator.this) {
|
||||||
if (mKeyguardStateController.isPrimaryBouncerShowing()) {
|
if (mKeyguardStateController.isPrimaryBouncerShowing()
|
||||||
|
&& !mKeyguardStateController.isKeyguardGoingAway()) {
|
||||||
mPendingPinLock = false;
|
mPendingPinLock = false;
|
||||||
}
|
}
|
||||||
adjustStatusBarLocked(mKeyguardStateController.isPrimaryBouncerShowing(), false);
|
adjustStatusBarLocked(mKeyguardStateController.isPrimaryBouncerShowing(), false);
|
||||||
|
|||||||
@@ -156,6 +156,8 @@ public class KeyguardViewMediatorTest extends SysuiTestCase {
|
|||||||
private @Mock ShadeWindowLogger mShadeWindowLogger;
|
private @Mock ShadeWindowLogger mShadeWindowLogger;
|
||||||
private @Captor ArgumentCaptor<KeyguardUpdateMonitorCallback>
|
private @Captor ArgumentCaptor<KeyguardUpdateMonitorCallback>
|
||||||
mKeyguardUpdateMonitorCallbackCaptor;
|
mKeyguardUpdateMonitorCallbackCaptor;
|
||||||
|
private @Captor ArgumentCaptor<KeyguardStateController.Callback>
|
||||||
|
mKeyguardStateControllerCallback;
|
||||||
private DeviceConfigProxy mDeviceConfig = new DeviceConfigProxyFake();
|
private DeviceConfigProxy mDeviceConfig = new DeviceConfigProxyFake();
|
||||||
private FakeExecutor mUiBgExecutor = new FakeExecutor(new FakeSystemClock());
|
private FakeExecutor mUiBgExecutor = new FakeExecutor(new FakeSystemClock());
|
||||||
|
|
||||||
@@ -662,6 +664,33 @@ public class KeyguardViewMediatorTest extends SysuiTestCase {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestableLooper.RunWithLooper(setAsMainLooper = true)
|
||||||
|
public void pendingPinLockOnKeyguardGoingAway_doKeyguardLockedOnKeyguardVisibilityChanged() {
|
||||||
|
// GIVEN SIM_STATE_PIN_REQUIRED
|
||||||
|
mViewMediator.onSystemReady();
|
||||||
|
final KeyguardUpdateMonitorCallback keyguardUpdateMonitorCallback =
|
||||||
|
mViewMediator.mUpdateCallback;
|
||||||
|
keyguardUpdateMonitorCallback.onSimStateChanged(0, 0,
|
||||||
|
TelephonyManager.SIM_STATE_PIN_REQUIRED);
|
||||||
|
TestableLooper.get(this).processAllMessages();
|
||||||
|
|
||||||
|
// ...and then the primary bouncer shows while the keyguard is going away
|
||||||
|
captureKeyguardStateControllerCallback();
|
||||||
|
when(mKeyguardStateController.isPrimaryBouncerShowing()).thenReturn(true);
|
||||||
|
when(mKeyguardStateController.isKeyguardGoingAway()).thenReturn(true);
|
||||||
|
mKeyguardStateControllerCallback.getValue().onPrimaryBouncerShowingChanged();
|
||||||
|
TestableLooper.get(this).processAllMessages();
|
||||||
|
|
||||||
|
// WHEN keyguard visibility becomes FALSE
|
||||||
|
mViewMediator.setShowingLocked(false);
|
||||||
|
keyguardUpdateMonitorCallback.onKeyguardVisibilityChanged(false);
|
||||||
|
TestableLooper.get(this).processAllMessages();
|
||||||
|
|
||||||
|
// THEN keyguard shows due to the pending SIM PIN lock
|
||||||
|
assertTrue(mViewMediator.isShowingAndNotOccluded());
|
||||||
|
}
|
||||||
|
|
||||||
private void createAndStartViewMediator() {
|
private void createAndStartViewMediator() {
|
||||||
mViewMediator = new KeyguardViewMediator(
|
mViewMediator = new KeyguardViewMediator(
|
||||||
mContext,
|
mContext,
|
||||||
@@ -708,4 +737,8 @@ public class KeyguardViewMediatorTest extends SysuiTestCase {
|
|||||||
private void captureKeyguardUpdateMonitorCallback() {
|
private void captureKeyguardUpdateMonitorCallback() {
|
||||||
verify(mUpdateMonitor).registerCallback(mKeyguardUpdateMonitorCallbackCaptor.capture());
|
verify(mUpdateMonitor).registerCallback(mKeyguardUpdateMonitorCallbackCaptor.capture());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void captureKeyguardStateControllerCallback() {
|
||||||
|
verify(mKeyguardStateController).addCallback(mKeyguardStateControllerCallback.capture());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user