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

Commit 71c602d8 authored by Wei Sheng Shih's avatar Wei Sheng Shih Committed by Android (Google) Code Review
Browse files

Merge "Fixes the invisible unknownApps blocking keyguard transition."

parents 0f54ce6b c3728f6f
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -4114,6 +4114,12 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
            // Now that the app is going invisible, we can remove it. It will be restarted
            // if made visible again.
            removeDeadWindows();
            // If this activity is about to finish/stopped and now becomes invisible, remove it
            // from the unknownApp list in case the activity does not want to draw anything, which
            // keep the user waiting for the next transition to start.
            if (finishing || isState(STOPPED)) {
                displayContent.mUnknownAppVisibilityController.appRemovedOrHidden(this);
            }
        } else {
            if (!appTransition.isTransitionSet()
                    && appTransition.isReady()) {
+6 −6
Original line number Diff line number Diff line
@@ -337,6 +337,11 @@ public class AppTransition implements Dump {
        mNextAppTransitionFlags |= flags;
        setLastAppTransition(TRANSIT_UNSET, null, null, null);
        updateBooster();
        if (isTransitionSet()) {
            removeAppTransitionTimeoutCallbacks();
            mHandler.postDelayed(mHandleAppTransitionTimeoutRunnable,
                    APP_TRANSITION_TIMEOUT_MS);
        }
    }

    void setLastAppTransition(int transit, ActivityRecord openingApp, ActivityRecord closingApp,
@@ -2229,12 +2234,7 @@ public class AppTransition implements Dump {
                setAppTransition(transit, flags);
            }
        }
        boolean prepared = prepare();
        if (isTransitionSet()) {
            removeAppTransitionTimeoutCallbacks();
            mHandler.postDelayed(mHandleAppTransitionTimeoutRunnable, APP_TRANSITION_TIMEOUT_MS);
        }
        return prepared;
        return prepare();
    }

    /**
+10 −0
Original line number Diff line number Diff line
@@ -78,6 +78,16 @@ public class UnknownAppVisibilityControllerTest extends WindowTestsBase {
        assertTrue(mDisplayContent.mUnknownAppVisibilityController.allResolved());
    }

    @Test
    public void testRemoveFinishingInvisibleActivityFromUnknown() {
        final ActivityRecord activity = WindowTestUtils.createTestActivityRecord(mDisplayContent);
        mDisplayContent.mUnknownAppVisibilityController.notifyLaunched(activity);
        activity.finishing = true;
        activity.mVisibleRequested = true;
        activity.setVisibility(false, false);
        assertTrue(mDisplayContent.mUnknownAppVisibilityController.allResolved());
    }

    @Test
    public void testAppRemoved() {
        final ActivityRecord activity = WindowTestUtils.createTestActivityRecord(mDisplayContent);