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

Commit d8bc2081 authored by Hongwei Wang's avatar Hongwei Wang Committed by Android (Google) Code Review
Browse files

Merge "Reset leash and content overlay if auto-enter-pip is aborted" into sc-dev

parents e10f0d4c 3bbf0ab1
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -5033,6 +5033,12 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
    void notifyAppStopped() {
        ProtoLog.v(WM_DEBUG_ADD_REMOVE, "notifyAppStopped: %s", this);
        mAppStopped = true;
        // This is to fix the edge case that auto-enter-pip is finished in Launcher but app calls
        // setAutoEnterEnabled(false) and transitions to STOPPED state, see b/191930787.
        // Clear any surface transactions and content overlay in this case.
        if (task != null && task.mLastRecentsAnimationTransaction != null) {
            task.clearLastRecentsAnimationTransaction(true /* forceRemoveOverlay */);
        }
        // Reset the last saved PiP snap fraction on app stop.
        mDisplayContent.mPinnedTaskController.onActivityHidden(mActivityComponent);
        mDisplayContent.mUnknownAppVisibilityController.appRemovedOrHidden(this);
+1 −1
Original line number Diff line number Diff line
@@ -2151,7 +2151,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
                    rootTask.setLastRecentsAnimationTransaction(
                            task.mLastRecentsAnimationTransaction,
                            task.mLastRecentsAnimationOverlay);
                    task.clearLastRecentsAnimationTransaction();
                    task.clearLastRecentsAnimationTransaction(false /* forceRemoveOverlay */);
                }

                // There are multiple activities in the task and moving the top activity should
+4 −1
Original line number Diff line number Diff line
@@ -7627,7 +7627,10 @@ class Task extends WindowContainer<WindowContainer> {
        mLastRecentsAnimationOverlay = overlay;
    }

    void clearLastRecentsAnimationTransaction() {
    void clearLastRecentsAnimationTransaction(boolean forceRemoveOverlay) {
        if (forceRemoveOverlay && mLastRecentsAnimationOverlay != null) {
            getPendingTransaction().remove(mLastRecentsAnimationOverlay);
        }
        mLastRecentsAnimationTransaction = null;
        mLastRecentsAnimationOverlay = null;
        // reset also the crop and transform introduced by mLastRecentsAnimationTransaction