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

Commit a3faa4f7 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Set pinned task leash and pip task info after EXITED_PIP." into main

parents 6fa77f07 ea5e5a65
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ import static com.android.wm.shell.pip2.phone.PipTransition.ANIMATING_BOUNDS_CHA
import static com.android.wm.shell.pip2.phone.PipTransition.PIP_DESTINATION_BOUNDS;

import android.annotation.Nullable;
import android.app.TaskInfo;
import android.content.Context;
import android.graphics.Rect;
import android.graphics.RectF;
@@ -143,6 +144,8 @@ public class PipDisplayTransferHandler implements
                        "%s Animating PiP display change to=%d", TAG, mTargetDisplayId);

                final SurfaceControl pipLeash = mPipTransitionState.getPinnedTaskLeash();
                final TaskInfo pipTaskInfo = mPipTransitionState.getPipTaskInfo();
                final TaskInfo pipCandidateTaskInfo = mPipTransitionState.getPipCandidateTaskInfo();
                final int duration = extra.getInt(ANIMATING_BOUNDS_CHANGE_DURATION,
                        PipTransition.BOUNDS_CHANGE_JUMPCUT_DURATION);
                final Transaction startTx = extra.getParcelable(
@@ -167,6 +170,11 @@ public class PipDisplayTransferHandler implements
                mPipTransitionState.setState(PipTransitionState.EXITING_PIP);
                mPipTransitionState.setState(PipTransitionState.EXITED_PIP);

                // Set PiP task states to make sure they're not null after we exited PiP
                mPipTransitionState.setPinnedTaskLeash(pipLeash);
                mPipTransitionState.setPipTaskInfo(pipTaskInfo);
                mPipTransitionState.setPipCandidateTaskInfo(pipCandidateTaskInfo);

                final PipResizeAnimator animator = mPipResizeAnimatorSupplier.get(mContext,
                        mPipSurfaceTransactionHelper, pipLeash, startTx, finishTx,
                        mPipBoundsState.getBounds(), mPipBoundsState.getBounds(), pipBounds,
+5 −0
Original line number Diff line number Diff line
@@ -231,6 +231,8 @@ class PipDisplayTransferHandlerTest : ShellTestCase() {
        extra.putParcelable(PIP_DESTINATION_BOUNDS, destinationBounds)
        pipDisplayTransferHandler.mWaitingForDisplayTransfer = true
        pipDisplayTransferHandler.mTargetDisplayId = TARGET_DISPLAY_ID
        mockPipTransitionState.pipTaskInfo = mockTaskInfo
        mockPipTransitionState.pipCandidateTaskInfo = mockTaskInfo

        pipDisplayTransferHandler.onPipTransitionStateChanged(
            UNDEFINED,
@@ -240,6 +242,9 @@ class PipDisplayTransferHandlerTest : ShellTestCase() {

        verify(mockPipTransitionState).state = eq(EXITING_PIP)
        verify(mockPipTransitionState).state = eq(EXITED_PIP)
        verify(mockPipTransitionState).pinnedTaskLeash = eq(mockLeash)
        verify(mockPipTransitionState).pipTaskInfo = eq(mockTaskInfo)
        verify(mockPipTransitionState).pipCandidateTaskInfo = eq(mockTaskInfo)
        verify(mockPipResizeAnimator).start()
    }