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

Commit 36c5f0c1 authored by Riddle Hsu's avatar Riddle Hsu
Browse files

Revert "Don't notify animation finished if no animation"

This reverts commit 50355ae4.

Reason for revert: b/240517064
Bug: 239519375
Bug: 230588790
Bug: 240517064

Change-Id: I3601e3b19fffe1b050519b99b9dadd19a88308c5
parent 50355ae4
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -5336,7 +5336,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
@@ -992,7 +992,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());
    }