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

Commit e05955e4 authored by Wei Sheng Shih's avatar Wei Sheng Shih Committed by Automerger Merge Worker
Browse files

Merge "Fix switch task flicker from reveal animation." into sc-dev am: 383d6d31 am: 36e53f9f

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

Change-Id: I1f02b243066f044e3f7081e8a537392fa7e2ada4
parents 1bb25a23 36e53f9f
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -2337,6 +2337,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
        }

        final WindowManagerPolicy.StartingSurface surface;
        final StartingData startingData = mStartingData;
        if (mStartingData != null) {
            surface = mStartingSurface;
            mStartingData = null;
@@ -2363,7 +2364,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
        final Runnable removeSurface = () -> {
            ProtoLog.v(WM_DEBUG_STARTING_WINDOW, "Removing startingView=%s", surface);
            try {
                surface.remove(prepareAnimation);
                surface.remove(prepareAnimation && startingData.needRevealAnimation());
            } catch (Exception e) {
                Slog.w(TAG_WM, "Exception when removing starting window", e);
            }
+5 −0
Original line number Diff line number Diff line
@@ -40,6 +40,11 @@ class SnapshotStartingData extends StartingData {
                mSnapshot);
    }

    @Override
    boolean needRevealAnimation() {
        return false;
    }

    @Override
    boolean hasImeSurface() {
        return mSnapshot.hasImeSurface();
+5 −0
Original line number Diff line number Diff line
@@ -58,4 +58,9 @@ class SplashScreenStartingData extends StartingData {
                mLogo, mWindowFlags, mMergedOverrideConfiguration,
                activity.getDisplayContent().getDisplayId());
    }

    @Override
    boolean needRevealAnimation() {
        return true;
    }
}
+5 −0
Original line number Diff line number Diff line
@@ -47,6 +47,11 @@ public abstract class StartingData {
     */
    abstract StartingSurface createStartingSurface(ActivityRecord activity);

    /**
     * @return Whether to apply reveal animation when exiting the starting window.
     */
    abstract boolean needRevealAnimation();

    /** @see android.window.TaskSnapshot#hasImeSurface() */
    boolean hasImeSurface() {
        return false;
+1 −0
Original line number Diff line number Diff line
@@ -188,6 +188,7 @@ class TaskOrganizerController extends ITaskOrganizerController.Stub {
                                ANIMATION_TYPE_STARTING_REVEAL);
                        windowAnimationLeash = adaptor.mAnimationLeash;
                        mainFrame = mainWindow.getRelativeFrame();
                        t.setPosition(windowAnimationLeash, mainFrame.left, mainFrame.top);
                    }
                }
            }