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

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

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

View File

@@ -106,13 +106,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);
}
@@ -477,7 +477,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

@@ -2165,6 +2165,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(