Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 47428d13 authored by Issei Suzuki's avatar Issei Suzuki Committed by Automerger Merge Worker
Browse files

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

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

Change-Id: I3c44a5eb12d09c92ecc03680225fb75f161f5913
parents 69e671c6 aaba1884
Loading
Loading
Loading
Loading
+4 −4
Original line number Original line Diff line number Diff line
@@ -106,13 +106,13 @@ class KeyguardController {
    }
    }


    /**
    /**
     * @return {@code true} for default display when AOD is showing. Otherwise, same as
     * @return {@code true} for default display when AOD is showing, not going away. Otherwise, same
     *         {@link #isKeyguardOrAodShowing(int)}
     *         as {@link #isKeyguardOrAodShowing(int)}
     * TODO(b/125198167): Replace isKeyguardOrAodShowing() by this logic.
     * TODO(b/125198167): Replace isKeyguardOrAodShowing() by this logic.
     */
     */
    boolean isKeyguardUnoccludedOrAodShowing(int displayId) {
    boolean isKeyguardUnoccludedOrAodShowing(int displayId) {
        if (displayId == DEFAULT_DISPLAY && mAodShowing) {
        if (displayId == DEFAULT_DISPLAY && mAodShowing) {
            return true;
            return !mKeyguardGoingAway;
        }
        }
        return isKeyguardOrAodShowing(displayId);
        return isKeyguardOrAodShowing(displayId);
    }
    }
@@ -477,7 +477,7 @@ class KeyguardController {
        final KeyguardDisplayState state = getDisplayState(displayId);
        final KeyguardDisplayState state = getDisplayState(displayId);
        if (isKeyguardUnoccludedOrAodShowing(displayId)) {
        if (isKeyguardUnoccludedOrAodShowing(displayId)) {
            state.mSleepTokenAcquirer.acquire(displayId);
            state.mSleepTokenAcquirer.acquire(displayId);
        } else if (!isKeyguardUnoccludedOrAodShowing(displayId)) {
        } else {
            state.mSleepTokenAcquirer.release(displayId);
            state.mSleepTokenAcquirer.release(displayId);
        }
        }
    }
    }
+15 −0
Original line number Original line Diff line number Diff line
@@ -2165,6 +2165,21 @@ public class DisplayContentTests extends WindowTestsBase {
        assertEquals(top, display.topRunningActivity(true /* considerKeyguardState */));
        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
    @Test
    public void testRemoveRootTaskInWindowingModes() {
    public void testRemoveRootTaskInWindowingModes() {
        removeRootTaskTests(() -> mRootWindowContainer.removeRootTasksInWindowingModes(
        removeRootTaskTests(() -> mRootWindowContainer.removeRootTasksInWindowingModes(