Merge "Don't show the keyguard on fold if the device isn't provisioned" into main
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
index 8e3b196..794befa 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
@@ -2184,6 +2184,10 @@
*/
public void showDismissibleKeyguard() {
if (mFoldGracePeriodProvider.isEnabled()) {
+ if (!mUpdateMonitor.isDeviceProvisioned()) {
+ Log.d(TAG, "Device not provisioned, so ignore request to show keyguard.");
+ return;
+ }
Bundle showKeyguardUnlocked = new Bundle();
showKeyguardUnlocked.putBoolean(OPTION_SHOW_DISMISSIBLE, true);
showKeyguard(showKeyguardUnlocked);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardViewMediatorTest.java b/packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardViewMediatorTest.java
index 1183964..14cae0b 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardViewMediatorTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardViewMediatorTest.java
@@ -357,6 +357,7 @@
mock(FoldGracePeriodProvider.class);
mViewMediator.mFoldGracePeriodProvider = mockedFoldGracePeriodProvider;
when(mockedFoldGracePeriodProvider.isEnabled()).thenReturn(true);
+ when(mUpdateMonitor.isDeviceProvisioned()).thenReturn(true);
// GIVEN keyguard is not enabled and isn't showing
mViewMediator.onSystemReady();
@@ -375,12 +376,40 @@
@Test
@TestableLooper.RunWithLooper(setAsMainLooper = true)
+ public void doNotShowKeyguard_deviceNotProvisioned() {
+ // GIVEN feature is enabled
+ final FoldGracePeriodProvider mockedFoldGracePeriodProvider =
+ mock(FoldGracePeriodProvider.class);
+ mViewMediator.mFoldGracePeriodProvider = mockedFoldGracePeriodProvider;
+ when(mockedFoldGracePeriodProvider.isEnabled()).thenReturn(true);
+
+ // GIVEN keyguard is not enabled and isn't showing
+ mViewMediator.onSystemReady();
+ mViewMediator.setKeyguardEnabled(false);
+ TestableLooper.get(this).processAllMessages();
+ captureKeyguardUpdateMonitorCallback();
+ assertFalse(mViewMediator.isShowingAndNotOccluded());
+
+ // WHEN device is NOT provisioned
+ when(mUpdateMonitor.isDeviceProvisioned()).thenReturn(false);
+
+ // WHEN showKeyguard is requested
+ mViewMediator.showDismissibleKeyguard();
+
+ // THEN keyguard is NOT shown
+ TestableLooper.get(this).processAllMessages();
+ assertFalse(mViewMediator.isShowingAndNotOccluded());
+ }
+
+ @Test
+ @TestableLooper.RunWithLooper(setAsMainLooper = true)
public void showKeyguardAfterKeyguardNotEnabled_featureNotEnabled() {
// GIVEN feature is NOT enabled
final FoldGracePeriodProvider mockedFoldGracePeriodProvider =
mock(FoldGracePeriodProvider.class);
mViewMediator.mFoldGracePeriodProvider = mockedFoldGracePeriodProvider;
when(mockedFoldGracePeriodProvider.isEnabled()).thenReturn(false);
+ when(mUpdateMonitor.isDeviceProvisioned()).thenReturn(true);
// GIVEN keyguard is not enabled and isn't showing
mViewMediator.onSystemReady();