Loading libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipDisplayTransferHandler.java +8 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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( Loading @@ -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, Loading libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip2/phone/PipDisplayTransferHandlerTest.kt +5 −0 Original line number Diff line number Diff line Loading @@ -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, Loading @@ -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() } Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipDisplayTransferHandler.java +8 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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( Loading @@ -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, Loading
libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip2/phone/PipDisplayTransferHandlerTest.kt +5 −0 Original line number Diff line number Diff line Loading @@ -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, Loading @@ -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() } Loading