Loading services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java +60 −8 Original line number Original line Diff line number Diff line Loading @@ -164,6 +164,7 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import java.util.concurrent.TimeoutException; import java.util.function.BooleanSupplier; /** /** * Tests for the {@link DisplayContent} class. * Tests for the {@link DisplayContent} class. Loading Loading @@ -2674,16 +2675,67 @@ public class DisplayContentTests extends WindowTestsBase { public void testKeyguardGoingAwayWhileAodShown() { public void testKeyguardGoingAwayWhileAodShown() { mDisplayContent.getDisplayPolicy().setAwake(true); mDisplayContent.getDisplayPolicy().setAwake(true); final WindowState appWin = newWindowBuilder("appWin", TYPE_APPLICATION).setDisplay( final KeyguardController keyguard = mAtm.mKeyguardController; mDisplayContent).build(); final ActivityRecord activity = new ActivityBuilder(mAtm).setCreateTask(true).build(); final ActivityRecord activity = appWin.mActivityRecord; final int displayId = mDisplayContent.getDisplayId(); final BooleanSupplier keyguardShowing = () -> keyguard.isKeyguardShowing(displayId); final BooleanSupplier keyguardGoingAway = () -> keyguard.isKeyguardGoingAway(displayId); final BooleanSupplier appVisible = activity::isVisibleRequested; // Begin locked and in AOD keyguard.setKeyguardShown(displayId, true /* keyguard */, true /* aod */); assertFalse(keyguardGoingAway.getAsBoolean()); assertFalse(appVisible.getAsBoolean()); // Start unlocking from AOD. keyguard.keyguardGoingAway(displayId, 0x0 /* flags */); assertTrue(keyguardGoingAway.getAsBoolean()); assertTrue(appVisible.getAsBoolean()); mAtm.mKeyguardController.setKeyguardShown(appWin.getDisplayId(), true /* keyguardShowing */, // Clear AOD. This does *not* clear the going-away status. true /* aodShowing */); keyguard.setKeyguardShown(displayId, true /* keyguard */, false /* aod */); assertFalse(activity.isVisibleRequested()); assertTrue(keyguardGoingAway.getAsBoolean()); assertTrue(appVisible.getAsBoolean()); // Finish unlock keyguard.setKeyguardShown(displayId, false /* keyguard */, false /* aod */); assertFalse(keyguardGoingAway.getAsBoolean()); assertTrue(appVisible.getAsBoolean()); } @Test public void testKeyguardGoingAwayCanceledWhileAodShown() { mDisplayContent.getDisplayPolicy().setAwake(true); mAtm.mKeyguardController.keyguardGoingAway(appWin.getDisplayId(), 0 /* flags */); final KeyguardController keyguard = mAtm.mKeyguardController; assertTrue(activity.isVisibleRequested()); final ActivityRecord activity = new ActivityBuilder(mAtm).setCreateTask(true).build(); final int displayId = mDisplayContent.getDisplayId(); final BooleanSupplier keyguardShowing = () -> keyguard.isKeyguardShowing(displayId); final BooleanSupplier keyguardGoingAway = () -> keyguard.isKeyguardGoingAway(displayId); final BooleanSupplier appVisible = activity::isVisibleRequested; // Begin locked and in AOD keyguard.setKeyguardShown(displayId, true /* keyguard */, true /* aod */); assertFalse(keyguardGoingAway.getAsBoolean()); assertFalse(appVisible.getAsBoolean()); // Start unlocking from AOD. keyguard.keyguardGoingAway(displayId, 0x0 /* flags */); assertTrue(keyguardGoingAway.getAsBoolean()); assertTrue(appVisible.getAsBoolean()); // Clear AOD. This does *not* clear the going-away status. keyguard.setKeyguardShown(displayId, true /* keyguard */, false /* aod */); assertTrue(keyguardGoingAway.getAsBoolean()); assertTrue(appVisible.getAsBoolean()); // Same API call a second time cancels the unlock, because AOD isn't changing. keyguard.setKeyguardShown(displayId, true /* keyguard */, false /* aod */); assertTrue(keyguardShowing.getAsBoolean()); assertFalse(keyguardGoingAway.getAsBoolean()); assertFalse(appVisible.getAsBoolean()); } } @Test @Test Loading Loading
services/tests/wmtests/src/com/android/server/wm/DisplayContentTests.java +60 −8 Original line number Original line Diff line number Diff line Loading @@ -164,6 +164,7 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import java.util.concurrent.TimeoutException; import java.util.function.BooleanSupplier; /** /** * Tests for the {@link DisplayContent} class. * Tests for the {@link DisplayContent} class. Loading Loading @@ -2674,16 +2675,67 @@ public class DisplayContentTests extends WindowTestsBase { public void testKeyguardGoingAwayWhileAodShown() { public void testKeyguardGoingAwayWhileAodShown() { mDisplayContent.getDisplayPolicy().setAwake(true); mDisplayContent.getDisplayPolicy().setAwake(true); final WindowState appWin = newWindowBuilder("appWin", TYPE_APPLICATION).setDisplay( final KeyguardController keyguard = mAtm.mKeyguardController; mDisplayContent).build(); final ActivityRecord activity = new ActivityBuilder(mAtm).setCreateTask(true).build(); final ActivityRecord activity = appWin.mActivityRecord; final int displayId = mDisplayContent.getDisplayId(); final BooleanSupplier keyguardShowing = () -> keyguard.isKeyguardShowing(displayId); final BooleanSupplier keyguardGoingAway = () -> keyguard.isKeyguardGoingAway(displayId); final BooleanSupplier appVisible = activity::isVisibleRequested; // Begin locked and in AOD keyguard.setKeyguardShown(displayId, true /* keyguard */, true /* aod */); assertFalse(keyguardGoingAway.getAsBoolean()); assertFalse(appVisible.getAsBoolean()); // Start unlocking from AOD. keyguard.keyguardGoingAway(displayId, 0x0 /* flags */); assertTrue(keyguardGoingAway.getAsBoolean()); assertTrue(appVisible.getAsBoolean()); mAtm.mKeyguardController.setKeyguardShown(appWin.getDisplayId(), true /* keyguardShowing */, // Clear AOD. This does *not* clear the going-away status. true /* aodShowing */); keyguard.setKeyguardShown(displayId, true /* keyguard */, false /* aod */); assertFalse(activity.isVisibleRequested()); assertTrue(keyguardGoingAway.getAsBoolean()); assertTrue(appVisible.getAsBoolean()); // Finish unlock keyguard.setKeyguardShown(displayId, false /* keyguard */, false /* aod */); assertFalse(keyguardGoingAway.getAsBoolean()); assertTrue(appVisible.getAsBoolean()); } @Test public void testKeyguardGoingAwayCanceledWhileAodShown() { mDisplayContent.getDisplayPolicy().setAwake(true); mAtm.mKeyguardController.keyguardGoingAway(appWin.getDisplayId(), 0 /* flags */); final KeyguardController keyguard = mAtm.mKeyguardController; assertTrue(activity.isVisibleRequested()); final ActivityRecord activity = new ActivityBuilder(mAtm).setCreateTask(true).build(); final int displayId = mDisplayContent.getDisplayId(); final BooleanSupplier keyguardShowing = () -> keyguard.isKeyguardShowing(displayId); final BooleanSupplier keyguardGoingAway = () -> keyguard.isKeyguardGoingAway(displayId); final BooleanSupplier appVisible = activity::isVisibleRequested; // Begin locked and in AOD keyguard.setKeyguardShown(displayId, true /* keyguard */, true /* aod */); assertFalse(keyguardGoingAway.getAsBoolean()); assertFalse(appVisible.getAsBoolean()); // Start unlocking from AOD. keyguard.keyguardGoingAway(displayId, 0x0 /* flags */); assertTrue(keyguardGoingAway.getAsBoolean()); assertTrue(appVisible.getAsBoolean()); // Clear AOD. This does *not* clear the going-away status. keyguard.setKeyguardShown(displayId, true /* keyguard */, false /* aod */); assertTrue(keyguardGoingAway.getAsBoolean()); assertTrue(appVisible.getAsBoolean()); // Same API call a second time cancels the unlock, because AOD isn't changing. keyguard.setKeyguardShown(displayId, true /* keyguard */, false /* aod */); assertTrue(keyguardShowing.getAsBoolean()); assertFalse(keyguardGoingAway.getAsBoolean()); assertFalse(appVisible.getAsBoolean()); } } @Test @Test Loading