Merge "Fix flicker when device is unlocked from AOD." into sc-dev am: aaba1884bb am: 47428d13eb am: bfd83062f9

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15736949

Change-Id: Id1b2141c32d5e743b7e33797269b1d55f9679029
This commit is contained in:
Issei Suzuki
2021-09-15 11:31:46 +00:00
committed by Automerger Merge Worker
2 changed files with 19 additions and 4 deletions

View File

@@ -109,13 +109,13 @@ class KeyguardController {
}
/**
* @return {@code true} for default display when AOD is showing. Otherwise, same as
* {@link #isKeyguardOrAodShowing(int)}
* @return {@code true} for default display when AOD is showing, not going away. Otherwise, same
* as {@link #isKeyguardOrAodShowing(int)}
* TODO(b/125198167): Replace isKeyguardOrAodShowing() by this logic.
*/
boolean isKeyguardUnoccludedOrAodShowing(int displayId) {
if (displayId == DEFAULT_DISPLAY && mAodShowing) {
return true;
return !mKeyguardGoingAway;
}
return isKeyguardOrAodShowing(displayId);
}
@@ -488,7 +488,7 @@ class KeyguardController {
final KeyguardDisplayState state = getDisplayState(displayId);
if (isKeyguardUnoccludedOrAodShowing(displayId)) {
state.mSleepTokenAcquirer.acquire(displayId);
} else if (!isKeyguardUnoccludedOrAodShowing(displayId)) {
} else {
state.mSleepTokenAcquirer.release(displayId);
}
}

View File

@@ -2172,6 +2172,21 @@ public class DisplayContentTests extends WindowTestsBase {
assertEquals(top, display.topRunningActivity(true /* considerKeyguardState */));
}
@Test
public void testKeyguardGoingAwayWhileAodShown() {
mDisplayContent.getDisplayPolicy().setAwake(true);
final WindowState appWin = createWindow(null, TYPE_APPLICATION, mDisplayContent, "appWin");
final ActivityRecord activity = appWin.mActivityRecord;
mAtm.mKeyguardController.setKeyguardShown(true /* keyguardShowing */,
true /* aodShowing */);
assertFalse(activity.isVisibleRequested());
mAtm.mKeyguardController.keyguardGoingAway(0 /* flags */);
assertTrue(activity.isVisibleRequested());
}
@Test
public void testRemoveRootTaskInWindowingModes() {
removeRootTaskTests(() -> mRootWindowContainer.removeRootTasksInWindowingModes(