Loading libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipTransition.java +10 −8 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ import android.animation.ValueAnimator; import android.annotation.NonNull; import android.app.ActivityManager; import android.app.PictureInPictureParams; import android.app.TaskInfo; import android.content.Context; import android.graphics.Point; import android.graphics.PointF; Loading @@ -57,6 +58,7 @@ import com.android.wm.shell.common.pip.PipBoundsState; import com.android.wm.shell.common.pip.PipDisplayLayoutState; import com.android.wm.shell.common.pip.PipMenuController; import com.android.wm.shell.common.pip.PipUtils; import com.android.wm.shell.common.split.SplitScreenUtils; import com.android.wm.shell.pip.PipTransitionController; import com.android.wm.shell.pip2.animation.PipAlphaAnimator; import com.android.wm.shell.pip2.animation.PipEnterAnimator; Loading @@ -74,8 +76,8 @@ public class PipTransition extends PipTransitionController implements private static final String TAG = PipTransition.class.getSimpleName(); // Used when for ENTERING_PIP state update. private static final String PIP_TASK_TOKEN = "pip_task_token"; private static final String PIP_TASK_LEASH = "pip_task_leash"; private static final String PIP_TASK_INFO = "pip_task_info"; // Used for PiP CHANGING_BOUNDS state update. static final String PIP_START_TX = "pip_start_tx"; Loading Loading @@ -245,8 +247,8 @@ public class PipTransition extends PipTransitionController implements // Update the PipTransitionState while supplying the PiP leash and token to be cached. Bundle extra = new Bundle(); extra.putParcelable(PIP_TASK_TOKEN, pipChange.getContainer()); extra.putParcelable(PIP_TASK_LEASH, pipChange.getLeash()); extra.putParcelable(PIP_TASK_INFO, pipChange.getTaskInfo()); mPipTransitionState.setState(PipTransitionState.ENTERING_PIP, extra); if (isInSwipePipToHomeTransition()) { Loading Loading @@ -899,10 +901,10 @@ public class PipTransition extends PipTransitionController implements Preconditions.checkState(extra != null, "No extra bundle for " + mPipTransitionState); mPipTransitionState.setPipTaskToken(extra.getParcelable( PIP_TASK_TOKEN, WindowContainerToken.class)); mPipTransitionState.setPinnedTaskLeash(extra.getParcelable( PIP_TASK_LEASH, SurfaceControl.class)); mPipTransitionState.setPipTaskInfo(extra.getParcelable( PIP_TASK_INFO, TaskInfo.class)); boolean hasValidTokenAndLeash = mPipTransitionState.getPipTaskToken() != null && mPipTransitionState.getPinnedTaskLeash() != null; Loading @@ -915,16 +917,16 @@ public class PipTransition extends PipTransitionController implements mPipBoundsState.getBounds()); mPipBoundsState.saveReentryState(snapFraction); mPipTransitionState.setPipTaskToken(null); mPipTransitionState.setPinnedTaskLeash(null); mPipTransitionState.setPipTaskInfo(null); break; } } @Override public boolean isPackageActiveInPip(@Nullable String packageName) { return packageName != null && mPipBoundsState.getLastPipComponentName() != null && packageName.equals(mPipBoundsState.getLastPipComponentName().getPackageName()); final TaskInfo inPipTask = mPipTransitionState.getPipTaskInfo(); return packageName != null && inPipTask != null && mPipTransitionState.isInPip() && packageName.equals(SplitScreenUtils.getPackageName(inPipTask.baseIntent)); } } libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipTransitionState.java +15 −10 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.wm.shell.pip2.phone; import android.annotation.IntDef; import android.app.TaskInfo; import android.graphics.Rect; import android.os.Bundle; import android.os.Handler; Loading Loading @@ -133,17 +134,17 @@ public class PipTransitionState { private final Rect mSwipePipToHomeAppBounds = new Rect(); // // Tokens and leashes // Task related caches // // pinned PiP task's WC token @Nullable private WindowContainerToken mPipTaskToken; // pinned PiP task's leash @Nullable private SurfaceControl mPinnedTaskLeash; // pinned PiP task info @Nullable private TaskInfo mPipTaskInfo; // Overlay leash potentially used during swipe PiP to home transition; // if null while mInSwipePipToHomeTransition is true, then srcRectHint was invalid. @Nullable Loading Loading @@ -305,11 +306,7 @@ public class PipTransitionState { } @Nullable WindowContainerToken getPipTaskToken() { return mPipTaskToken; } public void setPipTaskToken(@Nullable WindowContainerToken token) { mPipTaskToken = token; return mPipTaskInfo != null ? mPipTaskInfo.getToken() : null; } @Nullable SurfaceControl getPinnedTaskLeash() { Loading @@ -320,6 +317,14 @@ public class PipTransitionState { mPinnedTaskLeash = leash; } @Nullable TaskInfo getPipTaskInfo() { return mPipTaskInfo; } void setPipTaskInfo(@Nullable TaskInfo pipTaskInfo) { mPipTaskInfo = pipTaskInfo; } /** * @return true if either in swipe or button-nav fixed rotation. */ Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipTransition.java +10 −8 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ import android.animation.ValueAnimator; import android.annotation.NonNull; import android.app.ActivityManager; import android.app.PictureInPictureParams; import android.app.TaskInfo; import android.content.Context; import android.graphics.Point; import android.graphics.PointF; Loading @@ -57,6 +58,7 @@ import com.android.wm.shell.common.pip.PipBoundsState; import com.android.wm.shell.common.pip.PipDisplayLayoutState; import com.android.wm.shell.common.pip.PipMenuController; import com.android.wm.shell.common.pip.PipUtils; import com.android.wm.shell.common.split.SplitScreenUtils; import com.android.wm.shell.pip.PipTransitionController; import com.android.wm.shell.pip2.animation.PipAlphaAnimator; import com.android.wm.shell.pip2.animation.PipEnterAnimator; Loading @@ -74,8 +76,8 @@ public class PipTransition extends PipTransitionController implements private static final String TAG = PipTransition.class.getSimpleName(); // Used when for ENTERING_PIP state update. private static final String PIP_TASK_TOKEN = "pip_task_token"; private static final String PIP_TASK_LEASH = "pip_task_leash"; private static final String PIP_TASK_INFO = "pip_task_info"; // Used for PiP CHANGING_BOUNDS state update. static final String PIP_START_TX = "pip_start_tx"; Loading Loading @@ -245,8 +247,8 @@ public class PipTransition extends PipTransitionController implements // Update the PipTransitionState while supplying the PiP leash and token to be cached. Bundle extra = new Bundle(); extra.putParcelable(PIP_TASK_TOKEN, pipChange.getContainer()); extra.putParcelable(PIP_TASK_LEASH, pipChange.getLeash()); extra.putParcelable(PIP_TASK_INFO, pipChange.getTaskInfo()); mPipTransitionState.setState(PipTransitionState.ENTERING_PIP, extra); if (isInSwipePipToHomeTransition()) { Loading Loading @@ -899,10 +901,10 @@ public class PipTransition extends PipTransitionController implements Preconditions.checkState(extra != null, "No extra bundle for " + mPipTransitionState); mPipTransitionState.setPipTaskToken(extra.getParcelable( PIP_TASK_TOKEN, WindowContainerToken.class)); mPipTransitionState.setPinnedTaskLeash(extra.getParcelable( PIP_TASK_LEASH, SurfaceControl.class)); mPipTransitionState.setPipTaskInfo(extra.getParcelable( PIP_TASK_INFO, TaskInfo.class)); boolean hasValidTokenAndLeash = mPipTransitionState.getPipTaskToken() != null && mPipTransitionState.getPinnedTaskLeash() != null; Loading @@ -915,16 +917,16 @@ public class PipTransition extends PipTransitionController implements mPipBoundsState.getBounds()); mPipBoundsState.saveReentryState(snapFraction); mPipTransitionState.setPipTaskToken(null); mPipTransitionState.setPinnedTaskLeash(null); mPipTransitionState.setPipTaskInfo(null); break; } } @Override public boolean isPackageActiveInPip(@Nullable String packageName) { return packageName != null && mPipBoundsState.getLastPipComponentName() != null && packageName.equals(mPipBoundsState.getLastPipComponentName().getPackageName()); final TaskInfo inPipTask = mPipTransitionState.getPipTaskInfo(); return packageName != null && inPipTask != null && mPipTransitionState.isInPip() && packageName.equals(SplitScreenUtils.getPackageName(inPipTask.baseIntent)); } }
libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipTransitionState.java +15 −10 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.wm.shell.pip2.phone; import android.annotation.IntDef; import android.app.TaskInfo; import android.graphics.Rect; import android.os.Bundle; import android.os.Handler; Loading Loading @@ -133,17 +134,17 @@ public class PipTransitionState { private final Rect mSwipePipToHomeAppBounds = new Rect(); // // Tokens and leashes // Task related caches // // pinned PiP task's WC token @Nullable private WindowContainerToken mPipTaskToken; // pinned PiP task's leash @Nullable private SurfaceControl mPinnedTaskLeash; // pinned PiP task info @Nullable private TaskInfo mPipTaskInfo; // Overlay leash potentially used during swipe PiP to home transition; // if null while mInSwipePipToHomeTransition is true, then srcRectHint was invalid. @Nullable Loading Loading @@ -305,11 +306,7 @@ public class PipTransitionState { } @Nullable WindowContainerToken getPipTaskToken() { return mPipTaskToken; } public void setPipTaskToken(@Nullable WindowContainerToken token) { mPipTaskToken = token; return mPipTaskInfo != null ? mPipTaskInfo.getToken() : null; } @Nullable SurfaceControl getPinnedTaskLeash() { Loading @@ -320,6 +317,14 @@ public class PipTransitionState { mPinnedTaskLeash = leash; } @Nullable TaskInfo getPipTaskInfo() { return mPipTaskInfo; } void setPipTaskInfo(@Nullable TaskInfo pipTaskInfo) { mPipTaskInfo = pipTaskInfo; } /** * @return true if either in swipe or button-nav fixed rotation. */ Loading