Loading packages/SystemUI/aconfig/systemui.aconfig +0 −10 Original line number Original line Diff line number Diff line Loading @@ -1448,16 +1448,6 @@ flag { } } } } flag { name: "sim_pin_race_condition_on_restart" namespace: "systemui" description: "The SIM PIN screen may be shown incorrectly on reboot" bug: "351426938" metadata { purpose: PURPOSE_BUGFIX } } flag { flag { name: "sim_pin_bouncer_reset" name: "sim_pin_bouncer_reset" namespace: "systemui" namespace: "systemui" Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java +15 −24 Original line number Original line Diff line number Diff line Loading @@ -53,7 +53,6 @@ import com.android.keyguard.KeyguardViewController; import com.android.keyguard.TrustGrantFlags; import com.android.keyguard.TrustGrantFlags; import com.android.keyguard.ViewMediatorCallback; import com.android.keyguard.ViewMediatorCallback; import com.android.systemui.DejankUtils; import com.android.systemui.DejankUtils; import com.android.systemui.Flags; import com.android.systemui.animation.back.FlingOnBackAnimationCallback; import com.android.systemui.animation.back.FlingOnBackAnimationCallback; import com.android.systemui.bouncer.domain.interactor.AlternateBouncerInteractor; import com.android.systemui.bouncer.domain.interactor.AlternateBouncerInteractor; import com.android.systemui.bouncer.domain.interactor.BouncerInteractor; import com.android.systemui.bouncer.domain.interactor.BouncerInteractor; Loading Loading @@ -717,10 +716,7 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb */ */ protected void showBouncerOrKeyguard(boolean hideBouncerWhenShowing, boolean isFalsingReset, protected void showBouncerOrKeyguard(boolean hideBouncerWhenShowing, boolean isFalsingReset, String reason) { String reason) { boolean showBouncer = needsFullscreenBouncer() && !mDozing; boolean showBouncer = needsFullscreenBouncer() && !mDozing && !mIsSleeping; if (Flags.simPinRaceConditionOnRestart()) { showBouncer = showBouncer && !mIsSleeping; } if (showBouncer) { if (showBouncer) { // The keyguard might be showing (already). So we need to hide it. // The keyguard might be showing (already). So we need to hide it. if (!primaryBouncerIsShowing()) { if (!primaryBouncerIsShowing()) { Loading @@ -731,7 +727,6 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb TAG + "#showBouncerOrKeyguard" TAG + "#showBouncerOrKeyguard" ); ); } else { } else { if (Flags.simPinRaceConditionOnRestart()) { if (mPrimaryBouncerInteractor.show(/* isScrimmed= */ true, reason)) { if (mPrimaryBouncerInteractor.show(/* isScrimmed= */ true, reason)) { mAttemptsToShowBouncer = 0; mAttemptsToShowBouncer = 0; mCentralSurfaces.hideKeyguard(); mCentralSurfaces.hideKeyguard(); Loading @@ -745,15 +740,11 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb Log.v(TAG, "Failed to show bouncer, attempt #: " Log.v(TAG, "Failed to show bouncer, attempt #: " + mAttemptsToShowBouncer++); + mAttemptsToShowBouncer++); mExecutor.executeDelayed(() -> mExecutor.executeDelayed(() -> showBouncerOrKeyguard(hideBouncerWhenShowing, showBouncerOrKeyguard(hideBouncerWhenShowing, isFalsingReset, isFalsingReset, reason), reason), 500); 500); } } } } } else { mCentralSurfaces.hideKeyguard(); mPrimaryBouncerInteractor.show(/* isScrimmed= */ true, reason); } } } } else if (!isFalsingReset) { } else if (!isFalsingReset) { // Falsing resets can cause this to flicker, so don't reset in this case // Falsing resets can cause this to flicker, so don't reset in this case Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java +1 −14 Original line number Original line Diff line number Diff line Loading @@ -193,7 +193,7 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase { public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule(); public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule(); @Before @Before @DisableFlags(com.android.systemui.Flags.FLAG_KEYGUARD_WM_STATE_REFACTOR) @DisableFlags(Flags.FLAG_KEYGUARD_WM_STATE_REFACTOR) public void setUp() { public void setUp() { MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this); when(mContainer.findViewById(anyInt())).thenReturn(mKeyguardMessageArea); when(mContainer.findViewById(anyInt())).thenReturn(mKeyguardMessageArea); Loading Loading @@ -846,18 +846,6 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase { @Test @Test @DisableSceneContainer @DisableSceneContainer @DisableFlags(Flags.FLAG_SIM_PIN_RACE_CONDITION_ON_RESTART) public void testShowBouncerOrKeyguard_needsFullScreen() { when(mKeyguardSecurityModel.getSecurityMode(anyInt())).thenReturn( KeyguardSecurityModel.SecurityMode.SimPin); mStatusBarKeyguardViewManager.showBouncerOrKeyguard(false, false, TEST_REASON); verify(mCentralSurfaces).hideKeyguard(); verify(mPrimaryBouncerInteractor).show(true, TEST_REASON); } @Test @DisableSceneContainer @EnableFlags(Flags.FLAG_SIM_PIN_RACE_CONDITION_ON_RESTART) public void testShowBouncerOrKeyguard_showsKeyguardIfShowBouncerReturnsFalse() { public void testShowBouncerOrKeyguard_showsKeyguardIfShowBouncerReturnsFalse() { when(mKeyguardSecurityModel.getSecurityMode(anyInt())).thenReturn( when(mKeyguardSecurityModel.getSecurityMode(anyInt())).thenReturn( KeyguardSecurityModel.SecurityMode.SimPin); KeyguardSecurityModel.SecurityMode.SimPin); Loading @@ -878,7 +866,6 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase { @Test @Test @DisableSceneContainer @DisableSceneContainer @EnableFlags(Flags.FLAG_SIM_PIN_RACE_CONDITION_ON_RESTART) public void testShowBouncerOrKeyguard_showsKeyguardIfSleeping() { public void testShowBouncerOrKeyguard_showsKeyguardIfSleeping() { when(mKeyguardTransitionInteractor.getTransitionState().getValue().getTo()) when(mKeyguardTransitionInteractor.getTransitionState().getValue().getTo()) .thenReturn(KeyguardState.LOCKSCREEN); .thenReturn(KeyguardState.LOCKSCREEN); Loading Loading
packages/SystemUI/aconfig/systemui.aconfig +0 −10 Original line number Original line Diff line number Diff line Loading @@ -1448,16 +1448,6 @@ flag { } } } } flag { name: "sim_pin_race_condition_on_restart" namespace: "systemui" description: "The SIM PIN screen may be shown incorrectly on reboot" bug: "351426938" metadata { purpose: PURPOSE_BUGFIX } } flag { flag { name: "sim_pin_bouncer_reset" name: "sim_pin_bouncer_reset" namespace: "systemui" namespace: "systemui" Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java +15 −24 Original line number Original line Diff line number Diff line Loading @@ -53,7 +53,6 @@ import com.android.keyguard.KeyguardViewController; import com.android.keyguard.TrustGrantFlags; import com.android.keyguard.TrustGrantFlags; import com.android.keyguard.ViewMediatorCallback; import com.android.keyguard.ViewMediatorCallback; import com.android.systemui.DejankUtils; import com.android.systemui.DejankUtils; import com.android.systemui.Flags; import com.android.systemui.animation.back.FlingOnBackAnimationCallback; import com.android.systemui.animation.back.FlingOnBackAnimationCallback; import com.android.systemui.bouncer.domain.interactor.AlternateBouncerInteractor; import com.android.systemui.bouncer.domain.interactor.AlternateBouncerInteractor; import com.android.systemui.bouncer.domain.interactor.BouncerInteractor; import com.android.systemui.bouncer.domain.interactor.BouncerInteractor; Loading Loading @@ -717,10 +716,7 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb */ */ protected void showBouncerOrKeyguard(boolean hideBouncerWhenShowing, boolean isFalsingReset, protected void showBouncerOrKeyguard(boolean hideBouncerWhenShowing, boolean isFalsingReset, String reason) { String reason) { boolean showBouncer = needsFullscreenBouncer() && !mDozing; boolean showBouncer = needsFullscreenBouncer() && !mDozing && !mIsSleeping; if (Flags.simPinRaceConditionOnRestart()) { showBouncer = showBouncer && !mIsSleeping; } if (showBouncer) { if (showBouncer) { // The keyguard might be showing (already). So we need to hide it. // The keyguard might be showing (already). So we need to hide it. if (!primaryBouncerIsShowing()) { if (!primaryBouncerIsShowing()) { Loading @@ -731,7 +727,6 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb TAG + "#showBouncerOrKeyguard" TAG + "#showBouncerOrKeyguard" ); ); } else { } else { if (Flags.simPinRaceConditionOnRestart()) { if (mPrimaryBouncerInteractor.show(/* isScrimmed= */ true, reason)) { if (mPrimaryBouncerInteractor.show(/* isScrimmed= */ true, reason)) { mAttemptsToShowBouncer = 0; mAttemptsToShowBouncer = 0; mCentralSurfaces.hideKeyguard(); mCentralSurfaces.hideKeyguard(); Loading @@ -745,15 +740,11 @@ public class StatusBarKeyguardViewManager implements RemoteInputController.Callb Log.v(TAG, "Failed to show bouncer, attempt #: " Log.v(TAG, "Failed to show bouncer, attempt #: " + mAttemptsToShowBouncer++); + mAttemptsToShowBouncer++); mExecutor.executeDelayed(() -> mExecutor.executeDelayed(() -> showBouncerOrKeyguard(hideBouncerWhenShowing, showBouncerOrKeyguard(hideBouncerWhenShowing, isFalsingReset, isFalsingReset, reason), reason), 500); 500); } } } } } else { mCentralSurfaces.hideKeyguard(); mPrimaryBouncerInteractor.show(/* isScrimmed= */ true, reason); } } } } else if (!isFalsingReset) { } else if (!isFalsingReset) { // Falsing resets can cause this to flicker, so don't reset in this case // Falsing resets can cause this to flicker, so don't reset in this case Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManagerTest.java +1 −14 Original line number Original line Diff line number Diff line Loading @@ -193,7 +193,7 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase { public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule(); public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule(); @Before @Before @DisableFlags(com.android.systemui.Flags.FLAG_KEYGUARD_WM_STATE_REFACTOR) @DisableFlags(Flags.FLAG_KEYGUARD_WM_STATE_REFACTOR) public void setUp() { public void setUp() { MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this); when(mContainer.findViewById(anyInt())).thenReturn(mKeyguardMessageArea); when(mContainer.findViewById(anyInt())).thenReturn(mKeyguardMessageArea); Loading Loading @@ -846,18 +846,6 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase { @Test @Test @DisableSceneContainer @DisableSceneContainer @DisableFlags(Flags.FLAG_SIM_PIN_RACE_CONDITION_ON_RESTART) public void testShowBouncerOrKeyguard_needsFullScreen() { when(mKeyguardSecurityModel.getSecurityMode(anyInt())).thenReturn( KeyguardSecurityModel.SecurityMode.SimPin); mStatusBarKeyguardViewManager.showBouncerOrKeyguard(false, false, TEST_REASON); verify(mCentralSurfaces).hideKeyguard(); verify(mPrimaryBouncerInteractor).show(true, TEST_REASON); } @Test @DisableSceneContainer @EnableFlags(Flags.FLAG_SIM_PIN_RACE_CONDITION_ON_RESTART) public void testShowBouncerOrKeyguard_showsKeyguardIfShowBouncerReturnsFalse() { public void testShowBouncerOrKeyguard_showsKeyguardIfShowBouncerReturnsFalse() { when(mKeyguardSecurityModel.getSecurityMode(anyInt())).thenReturn( when(mKeyguardSecurityModel.getSecurityMode(anyInt())).thenReturn( KeyguardSecurityModel.SecurityMode.SimPin); KeyguardSecurityModel.SecurityMode.SimPin); Loading @@ -878,7 +866,6 @@ public class StatusBarKeyguardViewManagerTest extends SysuiTestCase { @Test @Test @DisableSceneContainer @DisableSceneContainer @EnableFlags(Flags.FLAG_SIM_PIN_RACE_CONDITION_ON_RESTART) public void testShowBouncerOrKeyguard_showsKeyguardIfSleeping() { public void testShowBouncerOrKeyguard_showsKeyguardIfSleeping() { when(mKeyguardTransitionInteractor.getTransitionState().getValue().getTo()) when(mKeyguardTransitionInteractor.getTransitionState().getValue().getTo()) .thenReturn(KeyguardState.LOCKSCREEN); .thenReturn(KeyguardState.LOCKSCREEN); Loading