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

Commit b5ad7876 authored by Riddle Hsu's avatar Riddle Hsu Committed by Automerger Merge Worker
Browse files

Merge "Revert "Don't notify animation finished if no animation"" into tm-qpr-dev am: b14c95da

parents da5a386d b14c95da
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -5343,7 +5343,11 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
                ANIMATION_TYPE_APP_TRANSITION | ANIMATION_TYPE_WINDOW_ANIMATION
                        | ANIMATION_TYPE_RECENTS);
        if (!delayed) {
            // We aren't delayed anything, but exiting windows rely on the animation finished
            // callback being called in case the ActivityRecord was pretending to be delayed,
            // which we might have done because we were in closing/opening apps list.
            if (!usingShellTransitions) {
                onAnimationFinished(ANIMATION_TYPE_APP_TRANSITION, null /* AnimationAdapter */);
                if (visible) {
                    // The token was made immediately visible, there will be no entrance animation.
                    // We need to inform the client the enter animation was finished.
+16 −1
Original line number Diff line number Diff line
@@ -49,6 +49,7 @@ import static android.os.InputConstants.DEFAULT_DISPATCHING_TIMEOUT_MILLIS;
import static android.os.Process.NOBODY_UID;
import static android.view.Display.DEFAULT_DISPLAY;
import static android.view.InsetsState.ITYPE_IME;
import static android.view.WindowManager.LayoutParams.FIRST_APPLICATION_WINDOW;
import static android.view.WindowManager.LayoutParams.FIRST_SUB_WINDOW;
import static android.view.WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM;
import static android.view.WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD;
@@ -2537,6 +2538,21 @@ public class ActivityRecordTests extends WindowTestsBase {
                || activity.containsDismissKeyguardWindow());
    }

    @Test
    public void testStuckExitingWindow() {
        final WindowState closingWindow = createWindow(null, FIRST_APPLICATION_WINDOW,
                "closingWindow");
        closingWindow.mAnimatingExit = true;
        closingWindow.mRemoveOnExit = true;
        closingWindow.mActivityRecord.commitVisibility(
                false /* visible */, true /* performLayout */);

        // We pretended that we were running an exit animation, but that should have been cleared up
        // by changing visibility of ActivityRecord
        closingWindow.removeIfPossible();
        assertTrue(closingWindow.mRemoved);
    }

    @Test
    public void testSetOrientation() {
        final ActivityRecord activity = new ActivityBuilder(mAtm).setCreateTask(true).build();
@@ -3133,7 +3149,6 @@ public class ActivityRecordTests extends WindowTestsBase {
        mDisplayContent.mOpeningApps.clear();
        app.mActivityRecord.commitVisibility(false, false);
        app.mActivityRecord.onWindowsGone();
        mDisplayContent.computeImeTargetIfNeeded(app.mActivityRecord);

        assertTrue(app.mActivityRecord.mLastImeShown);
        assertTrue(app.mActivityRecord.mImeInsetsFrozenUntilStartInput);
+0 −1
Original line number Diff line number Diff line
@@ -1003,7 +1003,6 @@ public class WindowStateTests extends WindowTestsBase {
        assertTrue(app.mActivityRecord.mImeInsetsFrozenUntilStartInput);

        // Verify the IME insets is visible on app, but not for app2 during app task switching.
        mDisplayContent.computeImeTargetIfNeeded(app.mActivityRecord);
        assertTrue(app.getInsetsState().getSource(ITYPE_IME).isVisible());
        assertFalse(app2.getInsetsState().getSource(ITYPE_IME).isVisible());
    }