Merge "Pip entry bounds incorrect upon rotation" into tm-qpr-dev am: 5f5fe88458
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/21341823 Change-Id: Id2af6eb67b2e83ce16d75a558e1064568f92e881 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -206,6 +206,7 @@ public abstract class TvPipModule {
|
|||||||
TvPipMenuController tvPipMenuController,
|
TvPipMenuController tvPipMenuController,
|
||||||
SyncTransactionQueue syncTransactionQueue,
|
SyncTransactionQueue syncTransactionQueue,
|
||||||
TvPipBoundsState tvPipBoundsState,
|
TvPipBoundsState tvPipBoundsState,
|
||||||
|
PipSizeSpecHandler pipSizeSpecHandler,
|
||||||
PipTransitionState pipTransitionState,
|
PipTransitionState pipTransitionState,
|
||||||
TvPipBoundsAlgorithm tvPipBoundsAlgorithm,
|
TvPipBoundsAlgorithm tvPipBoundsAlgorithm,
|
||||||
PipAnimationController pipAnimationController,
|
PipAnimationController pipAnimationController,
|
||||||
@@ -217,10 +218,11 @@ public abstract class TvPipModule {
|
|||||||
PipUiEventLogger pipUiEventLogger, ShellTaskOrganizer shellTaskOrganizer,
|
PipUiEventLogger pipUiEventLogger, ShellTaskOrganizer shellTaskOrganizer,
|
||||||
@ShellMainThread ShellExecutor mainExecutor) {
|
@ShellMainThread ShellExecutor mainExecutor) {
|
||||||
return new TvPipTaskOrganizer(context,
|
return new TvPipTaskOrganizer(context,
|
||||||
syncTransactionQueue, pipTransitionState, tvPipBoundsState, tvPipBoundsAlgorithm,
|
syncTransactionQueue, pipTransitionState, tvPipBoundsState, pipSizeSpecHandler,
|
||||||
tvPipMenuController, pipAnimationController, pipSurfaceTransactionHelper,
|
tvPipBoundsAlgorithm, tvPipMenuController, pipAnimationController,
|
||||||
pipTransitionController, pipParamsChangedForwarder, splitScreenControllerOptional,
|
pipSurfaceTransactionHelper, pipTransitionController, pipParamsChangedForwarder,
|
||||||
displayController, pipUiEventLogger, shellTaskOrganizer, mainExecutor);
|
splitScreenControllerOptional, displayController, pipUiEventLogger,
|
||||||
|
shellTaskOrganizer, mainExecutor);
|
||||||
}
|
}
|
||||||
|
|
||||||
@WMSingleton
|
@WMSingleton
|
||||||
|
|||||||
@@ -442,6 +442,7 @@ public abstract class WMShellModule {
|
|||||||
SyncTransactionQueue syncTransactionQueue,
|
SyncTransactionQueue syncTransactionQueue,
|
||||||
PipTransitionState pipTransitionState,
|
PipTransitionState pipTransitionState,
|
||||||
PipBoundsState pipBoundsState,
|
PipBoundsState pipBoundsState,
|
||||||
|
PipSizeSpecHandler pipSizeSpecHandler,
|
||||||
PipBoundsAlgorithm pipBoundsAlgorithm,
|
PipBoundsAlgorithm pipBoundsAlgorithm,
|
||||||
PhonePipMenuController menuPhoneController,
|
PhonePipMenuController menuPhoneController,
|
||||||
PipAnimationController pipAnimationController,
|
PipAnimationController pipAnimationController,
|
||||||
@@ -453,10 +454,11 @@ public abstract class WMShellModule {
|
|||||||
PipUiEventLogger pipUiEventLogger, ShellTaskOrganizer shellTaskOrganizer,
|
PipUiEventLogger pipUiEventLogger, ShellTaskOrganizer shellTaskOrganizer,
|
||||||
@ShellMainThread ShellExecutor mainExecutor) {
|
@ShellMainThread ShellExecutor mainExecutor) {
|
||||||
return new PipTaskOrganizer(context,
|
return new PipTaskOrganizer(context,
|
||||||
syncTransactionQueue, pipTransitionState, pipBoundsState, pipBoundsAlgorithm,
|
syncTransactionQueue, pipTransitionState, pipBoundsState, pipSizeSpecHandler,
|
||||||
menuPhoneController, pipAnimationController, pipSurfaceTransactionHelper,
|
pipBoundsAlgorithm, menuPhoneController, pipAnimationController,
|
||||||
pipTransitionController, pipParamsChangedForwarder, splitScreenControllerOptional,
|
pipSurfaceTransactionHelper, pipTransitionController, pipParamsChangedForwarder,
|
||||||
displayController, pipUiEventLogger, shellTaskOrganizer, mainExecutor);
|
splitScreenControllerOptional, displayController, pipUiEventLogger,
|
||||||
|
shellTaskOrganizer, mainExecutor);
|
||||||
}
|
}
|
||||||
|
|
||||||
@WMSingleton
|
@WMSingleton
|
||||||
@@ -471,13 +473,14 @@ public abstract class WMShellModule {
|
|||||||
static PipTransitionController providePipTransitionController(Context context,
|
static PipTransitionController providePipTransitionController(Context context,
|
||||||
ShellInit shellInit, ShellTaskOrganizer shellTaskOrganizer, Transitions transitions,
|
ShellInit shellInit, ShellTaskOrganizer shellTaskOrganizer, Transitions transitions,
|
||||||
PipAnimationController pipAnimationController, PipBoundsAlgorithm pipBoundsAlgorithm,
|
PipAnimationController pipAnimationController, PipBoundsAlgorithm pipBoundsAlgorithm,
|
||||||
PipBoundsState pipBoundsState, PipTransitionState pipTransitionState,
|
PipBoundsState pipBoundsState, PipSizeSpecHandler pipSizeSpecHandler,
|
||||||
PhonePipMenuController pipMenuController,
|
PipTransitionState pipTransitionState, PhonePipMenuController pipMenuController,
|
||||||
PipSurfaceTransactionHelper pipSurfaceTransactionHelper,
|
PipSurfaceTransactionHelper pipSurfaceTransactionHelper,
|
||||||
Optional<SplitScreenController> splitScreenOptional) {
|
Optional<SplitScreenController> splitScreenOptional) {
|
||||||
return new PipTransition(context, shellInit, shellTaskOrganizer, transitions,
|
return new PipTransition(context, shellInit, shellTaskOrganizer, transitions,
|
||||||
pipBoundsState, pipTransitionState, pipMenuController, pipBoundsAlgorithm,
|
pipBoundsState, pipSizeSpecHandler, pipTransitionState, pipMenuController,
|
||||||
pipAnimationController, pipSurfaceTransactionHelper, splitScreenOptional);
|
pipBoundsAlgorithm, pipAnimationController, pipSurfaceTransactionHelper,
|
||||||
|
splitScreenOptional);
|
||||||
}
|
}
|
||||||
|
|
||||||
@WMSingleton
|
@WMSingleton
|
||||||
|
|||||||
@@ -311,10 +311,10 @@ public class PipBoundsState {
|
|||||||
mDisplayLayout.set(displayLayout);
|
mDisplayLayout.set(displayLayout);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Get the display layout. */
|
/** Get a copy of the display layout. */
|
||||||
@NonNull
|
@NonNull
|
||||||
public DisplayLayout getDisplayLayout() {
|
public DisplayLayout getDisplayLayout() {
|
||||||
return mDisplayLayout;
|
return new DisplayLayout(mDisplayLayout);
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
|
|||||||
@@ -79,11 +79,13 @@ import com.android.wm.shell.R;
|
|||||||
import com.android.wm.shell.ShellTaskOrganizer;
|
import com.android.wm.shell.ShellTaskOrganizer;
|
||||||
import com.android.wm.shell.animation.Interpolators;
|
import com.android.wm.shell.animation.Interpolators;
|
||||||
import com.android.wm.shell.common.DisplayController;
|
import com.android.wm.shell.common.DisplayController;
|
||||||
|
import com.android.wm.shell.common.DisplayLayout;
|
||||||
import com.android.wm.shell.common.ScreenshotUtils;
|
import com.android.wm.shell.common.ScreenshotUtils;
|
||||||
import com.android.wm.shell.common.ShellExecutor;
|
import com.android.wm.shell.common.ShellExecutor;
|
||||||
import com.android.wm.shell.common.SyncTransactionQueue;
|
import com.android.wm.shell.common.SyncTransactionQueue;
|
||||||
import com.android.wm.shell.common.annotations.ShellMainThread;
|
import com.android.wm.shell.common.annotations.ShellMainThread;
|
||||||
import com.android.wm.shell.pip.phone.PipMotionHelper;
|
import com.android.wm.shell.pip.phone.PipMotionHelper;
|
||||||
|
import com.android.wm.shell.pip.phone.PipSizeSpecHandler;
|
||||||
import com.android.wm.shell.protolog.ShellProtoLogGroup;
|
import com.android.wm.shell.protolog.ShellProtoLogGroup;
|
||||||
import com.android.wm.shell.splitscreen.SplitScreenController;
|
import com.android.wm.shell.splitscreen.SplitScreenController;
|
||||||
import com.android.wm.shell.transition.Transitions;
|
import com.android.wm.shell.transition.Transitions;
|
||||||
@@ -126,6 +128,7 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
|
|||||||
private final Context mContext;
|
private final Context mContext;
|
||||||
private final SyncTransactionQueue mSyncTransactionQueue;
|
private final SyncTransactionQueue mSyncTransactionQueue;
|
||||||
private final PipBoundsState mPipBoundsState;
|
private final PipBoundsState mPipBoundsState;
|
||||||
|
private final PipSizeSpecHandler mPipSizeSpecHandler;
|
||||||
private final PipBoundsAlgorithm mPipBoundsAlgorithm;
|
private final PipBoundsAlgorithm mPipBoundsAlgorithm;
|
||||||
private final @NonNull PipMenuController mPipMenuController;
|
private final @NonNull PipMenuController mPipMenuController;
|
||||||
private final PipAnimationController mPipAnimationController;
|
private final PipAnimationController mPipAnimationController;
|
||||||
@@ -313,6 +316,7 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
|
|||||||
@NonNull SyncTransactionQueue syncTransactionQueue,
|
@NonNull SyncTransactionQueue syncTransactionQueue,
|
||||||
@NonNull PipTransitionState pipTransitionState,
|
@NonNull PipTransitionState pipTransitionState,
|
||||||
@NonNull PipBoundsState pipBoundsState,
|
@NonNull PipBoundsState pipBoundsState,
|
||||||
|
@NonNull PipSizeSpecHandler pipSizeSpecHandler,
|
||||||
@NonNull PipBoundsAlgorithm boundsHandler,
|
@NonNull PipBoundsAlgorithm boundsHandler,
|
||||||
@NonNull PipMenuController pipMenuController,
|
@NonNull PipMenuController pipMenuController,
|
||||||
@NonNull PipAnimationController pipAnimationController,
|
@NonNull PipAnimationController pipAnimationController,
|
||||||
@@ -328,6 +332,7 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
|
|||||||
mSyncTransactionQueue = syncTransactionQueue;
|
mSyncTransactionQueue = syncTransactionQueue;
|
||||||
mPipTransitionState = pipTransitionState;
|
mPipTransitionState = pipTransitionState;
|
||||||
mPipBoundsState = pipBoundsState;
|
mPipBoundsState = pipBoundsState;
|
||||||
|
mPipSizeSpecHandler = pipSizeSpecHandler;
|
||||||
mPipBoundsAlgorithm = boundsHandler;
|
mPipBoundsAlgorithm = boundsHandler;
|
||||||
mPipMenuController = pipMenuController;
|
mPipMenuController = pipMenuController;
|
||||||
mPipTransitionController = pipTransitionController;
|
mPipTransitionController = pipTransitionController;
|
||||||
@@ -1601,7 +1606,12 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
|
|||||||
private @Nullable Rect computeRotatedBounds(int rotationDelta, int direction,
|
private @Nullable Rect computeRotatedBounds(int rotationDelta, int direction,
|
||||||
Rect outDestinationBounds, Rect sourceHintRect) {
|
Rect outDestinationBounds, Rect sourceHintRect) {
|
||||||
if (direction == TRANSITION_DIRECTION_TO_PIP) {
|
if (direction == TRANSITION_DIRECTION_TO_PIP) {
|
||||||
mPipBoundsState.getDisplayLayout().rotateTo(mContext.getResources(), mNextRotation);
|
DisplayLayout layoutCopy = mPipBoundsState.getDisplayLayout();
|
||||||
|
|
||||||
|
layoutCopy.rotateTo(mContext.getResources(), mNextRotation);
|
||||||
|
mPipBoundsState.setDisplayLayout(layoutCopy);
|
||||||
|
mPipSizeSpecHandler.setDisplayLayout(layoutCopy);
|
||||||
|
|
||||||
final Rect displayBounds = mPipBoundsState.getDisplayBounds();
|
final Rect displayBounds = mPipBoundsState.getDisplayBounds();
|
||||||
outDestinationBounds.set(mPipBoundsAlgorithm.getEntryDestinationBounds());
|
outDestinationBounds.set(mPipBoundsAlgorithm.getEntryDestinationBounds());
|
||||||
// Transform the destination bounds to current display coordinates.
|
// Transform the destination bounds to current display coordinates.
|
||||||
|
|||||||
@@ -65,6 +65,8 @@ import androidx.annotation.Nullable;
|
|||||||
import com.android.internal.protolog.common.ProtoLog;
|
import com.android.internal.protolog.common.ProtoLog;
|
||||||
import com.android.wm.shell.R;
|
import com.android.wm.shell.R;
|
||||||
import com.android.wm.shell.ShellTaskOrganizer;
|
import com.android.wm.shell.ShellTaskOrganizer;
|
||||||
|
import com.android.wm.shell.common.DisplayLayout;
|
||||||
|
import com.android.wm.shell.pip.phone.PipSizeSpecHandler;
|
||||||
import com.android.wm.shell.protolog.ShellProtoLogGroup;
|
import com.android.wm.shell.protolog.ShellProtoLogGroup;
|
||||||
import com.android.wm.shell.splitscreen.SplitScreenController;
|
import com.android.wm.shell.splitscreen.SplitScreenController;
|
||||||
import com.android.wm.shell.sysui.ShellInit;
|
import com.android.wm.shell.sysui.ShellInit;
|
||||||
@@ -83,6 +85,7 @@ public class PipTransition extends PipTransitionController {
|
|||||||
|
|
||||||
private final Context mContext;
|
private final Context mContext;
|
||||||
private final PipTransitionState mPipTransitionState;
|
private final PipTransitionState mPipTransitionState;
|
||||||
|
private final PipSizeSpecHandler mPipSizeSpecHandler;
|
||||||
private final int mEnterExitAnimationDuration;
|
private final int mEnterExitAnimationDuration;
|
||||||
private final PipSurfaceTransactionHelper mSurfaceTransactionHelper;
|
private final PipSurfaceTransactionHelper mSurfaceTransactionHelper;
|
||||||
private final Optional<SplitScreenController> mSplitScreenOptional;
|
private final Optional<SplitScreenController> mSplitScreenOptional;
|
||||||
@@ -113,6 +116,7 @@ public class PipTransition extends PipTransitionController {
|
|||||||
@NonNull ShellTaskOrganizer shellTaskOrganizer,
|
@NonNull ShellTaskOrganizer shellTaskOrganizer,
|
||||||
@NonNull Transitions transitions,
|
@NonNull Transitions transitions,
|
||||||
PipBoundsState pipBoundsState,
|
PipBoundsState pipBoundsState,
|
||||||
|
PipSizeSpecHandler pipSizeSpecHandler,
|
||||||
PipTransitionState pipTransitionState,
|
PipTransitionState pipTransitionState,
|
||||||
PipMenuController pipMenuController,
|
PipMenuController pipMenuController,
|
||||||
PipBoundsAlgorithm pipBoundsAlgorithm,
|
PipBoundsAlgorithm pipBoundsAlgorithm,
|
||||||
@@ -123,6 +127,7 @@ public class PipTransition extends PipTransitionController {
|
|||||||
pipBoundsAlgorithm, pipAnimationController);
|
pipBoundsAlgorithm, pipAnimationController);
|
||||||
mContext = context;
|
mContext = context;
|
||||||
mPipTransitionState = pipTransitionState;
|
mPipTransitionState = pipTransitionState;
|
||||||
|
mPipSizeSpecHandler = pipSizeSpecHandler;
|
||||||
mEnterExitAnimationDuration = context.getResources()
|
mEnterExitAnimationDuration = context.getResources()
|
||||||
.getInteger(R.integer.config_pipResizeAnimationDuration);
|
.getInteger(R.integer.config_pipResizeAnimationDuration);
|
||||||
mSurfaceTransactionHelper = pipSurfaceTransactionHelper;
|
mSurfaceTransactionHelper = pipSurfaceTransactionHelper;
|
||||||
@@ -308,7 +313,12 @@ public class PipTransition extends PipTransitionController {
|
|||||||
// initial state under the new rotation.
|
// initial state under the new rotation.
|
||||||
int rotationDelta = deltaRotation(startRotation, endRotation);
|
int rotationDelta = deltaRotation(startRotation, endRotation);
|
||||||
if (rotationDelta != Surface.ROTATION_0) {
|
if (rotationDelta != Surface.ROTATION_0) {
|
||||||
mPipBoundsState.getDisplayLayout().rotateTo(mContext.getResources(), endRotation);
|
DisplayLayout layoutCopy = mPipBoundsState.getDisplayLayout();
|
||||||
|
|
||||||
|
layoutCopy.rotateTo(mContext.getResources(), endRotation);
|
||||||
|
mPipBoundsState.setDisplayLayout(layoutCopy);
|
||||||
|
mPipSizeSpecHandler.setDisplayLayout(layoutCopy);
|
||||||
|
|
||||||
final Rect destinationBounds = mPipBoundsAlgorithm.getEntryDestinationBounds();
|
final Rect destinationBounds = mPipBoundsAlgorithm.getEntryDestinationBounds();
|
||||||
wct.setBounds(mRequestedEnterTask, destinationBounds);
|
wct.setBounds(mRequestedEnterTask, destinationBounds);
|
||||||
return true;
|
return true;
|
||||||
@@ -824,7 +834,12 @@ public class PipTransition extends PipTransitionController {
|
|||||||
/** Computes destination bounds in old rotation and updates source hint rect if available. */
|
/** Computes destination bounds in old rotation and updates source hint rect if available. */
|
||||||
private void computeEnterPipRotatedBounds(int rotationDelta, int startRotation, int endRotation,
|
private void computeEnterPipRotatedBounds(int rotationDelta, int startRotation, int endRotation,
|
||||||
TaskInfo taskInfo, Rect outDestinationBounds, @Nullable Rect outSourceHintRect) {
|
TaskInfo taskInfo, Rect outDestinationBounds, @Nullable Rect outSourceHintRect) {
|
||||||
mPipBoundsState.getDisplayLayout().rotateTo(mContext.getResources(), endRotation);
|
DisplayLayout layoutCopy = mPipBoundsState.getDisplayLayout();
|
||||||
|
|
||||||
|
layoutCopy.rotateTo(mContext.getResources(), endRotation);
|
||||||
|
mPipBoundsState.setDisplayLayout(layoutCopy);
|
||||||
|
mPipSizeSpecHandler.setDisplayLayout(layoutCopy);
|
||||||
|
|
||||||
final Rect displayBounds = mPipBoundsState.getDisplayBounds();
|
final Rect displayBounds = mPipBoundsState.getDisplayBounds();
|
||||||
outDestinationBounds.set(mPipBoundsAlgorithm.getEntryDestinationBounds());
|
outDestinationBounds.set(mPipBoundsAlgorithm.getEntryDestinationBounds());
|
||||||
// Transform the destination bounds to current display coordinates.
|
// Transform the destination bounds to current display coordinates.
|
||||||
|
|||||||
@@ -1032,7 +1032,11 @@ public class PipController implements PipTransitionController.PipTransitionCallb
|
|||||||
private void onDisplayRotationChangedNotInPip(Context context, int toRotation) {
|
private void onDisplayRotationChangedNotInPip(Context context, int toRotation) {
|
||||||
// Update the display layout, note that we have to do this on every rotation even if we
|
// Update the display layout, note that we have to do this on every rotation even if we
|
||||||
// aren't in PIP since we need to update the display layout to get the right resources
|
// aren't in PIP since we need to update the display layout to get the right resources
|
||||||
mPipBoundsState.getDisplayLayout().rotateTo(context.getResources(), toRotation);
|
DisplayLayout layoutCopy = mPipBoundsState.getDisplayLayout();
|
||||||
|
|
||||||
|
layoutCopy.rotateTo(context.getResources(), toRotation);
|
||||||
|
mPipBoundsState.setDisplayLayout(layoutCopy);
|
||||||
|
mPipSizeSpecHandler.setDisplayLayout(layoutCopy);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1069,7 +1073,11 @@ public class PipController implements PipTransitionController.PipTransitionCallb
|
|||||||
mPipBoundsState.getStashedState());
|
mPipBoundsState.getStashedState());
|
||||||
|
|
||||||
// Update the display layout
|
// Update the display layout
|
||||||
mPipBoundsState.getDisplayLayout().rotateTo(context.getResources(), toRotation);
|
DisplayLayout layoutCopy = mPipBoundsState.getDisplayLayout();
|
||||||
|
|
||||||
|
layoutCopy.rotateTo(context.getResources(), toRotation);
|
||||||
|
mPipBoundsState.setDisplayLayout(layoutCopy);
|
||||||
|
mPipSizeSpecHandler.setDisplayLayout(layoutCopy);
|
||||||
|
|
||||||
// Calculate the stack bounds in the new orientation based on same fraction along the
|
// Calculate the stack bounds in the new orientation based on same fraction along the
|
||||||
// rotated movement bounds.
|
// rotated movement bounds.
|
||||||
|
|||||||
@@ -409,12 +409,6 @@ public class PipSizeSpecHandler {
|
|||||||
return new Rect(0, 0, mDisplayLayout.width(), mDisplayLayout.height());
|
return new Rect(0, 0, mDisplayLayout.width(), mDisplayLayout.height());
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Get the display layout. */
|
|
||||||
@NonNull
|
|
||||||
public DisplayLayout getDisplayLayout() {
|
|
||||||
return mDisplayLayout;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Update the display layout. */
|
/** Update the display layout. */
|
||||||
public void setDisplayLayout(@NonNull DisplayLayout displayLayout) {
|
public void setDisplayLayout(@NonNull DisplayLayout displayLayout) {
|
||||||
mDisplayLayout.set(displayLayout);
|
mDisplayLayout.set(displayLayout);
|
||||||
@@ -429,12 +423,11 @@ public class PipSizeSpecHandler {
|
|||||||
*/
|
*/
|
||||||
public Rect getInsetBounds() {
|
public Rect getInsetBounds() {
|
||||||
Rect insetBounds = new Rect();
|
Rect insetBounds = new Rect();
|
||||||
final DisplayLayout displayLayout = getDisplayLayout();
|
Rect insets = mDisplayLayout.stableInsets();
|
||||||
Rect insets = getDisplayLayout().stableInsets();
|
|
||||||
insetBounds.set(insets.left + mScreenEdgeInsets.x,
|
insetBounds.set(insets.left + mScreenEdgeInsets.x,
|
||||||
insets.top + mScreenEdgeInsets.y,
|
insets.top + mScreenEdgeInsets.y,
|
||||||
displayLayout.width() - insets.right - mScreenEdgeInsets.x,
|
mDisplayLayout.width() - insets.right - mScreenEdgeInsets.x,
|
||||||
displayLayout.height() - insets.bottom - mScreenEdgeInsets.y);
|
mDisplayLayout.height() - insets.bottom - mScreenEdgeInsets.y);
|
||||||
return insetBounds;
|
return insetBounds;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ import com.android.wm.shell.pip.PipTransitionController;
|
|||||||
import com.android.wm.shell.pip.PipTransitionState;
|
import com.android.wm.shell.pip.PipTransitionState;
|
||||||
import com.android.wm.shell.pip.PipUiEventLogger;
|
import com.android.wm.shell.pip.PipUiEventLogger;
|
||||||
import com.android.wm.shell.pip.PipUtils;
|
import com.android.wm.shell.pip.PipUtils;
|
||||||
|
import com.android.wm.shell.pip.phone.PipSizeSpecHandler;
|
||||||
import com.android.wm.shell.splitscreen.SplitScreenController;
|
import com.android.wm.shell.splitscreen.SplitScreenController;
|
||||||
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
@@ -50,6 +51,7 @@ public class TvPipTaskOrganizer extends PipTaskOrganizer {
|
|||||||
@NonNull SyncTransactionQueue syncTransactionQueue,
|
@NonNull SyncTransactionQueue syncTransactionQueue,
|
||||||
@NonNull PipTransitionState pipTransitionState,
|
@NonNull PipTransitionState pipTransitionState,
|
||||||
@NonNull PipBoundsState pipBoundsState,
|
@NonNull PipBoundsState pipBoundsState,
|
||||||
|
@NonNull PipSizeSpecHandler pipSizeSpecHandler,
|
||||||
@NonNull PipBoundsAlgorithm boundsHandler,
|
@NonNull PipBoundsAlgorithm boundsHandler,
|
||||||
@NonNull PipMenuController pipMenuController,
|
@NonNull PipMenuController pipMenuController,
|
||||||
@NonNull PipAnimationController pipAnimationController,
|
@NonNull PipAnimationController pipAnimationController,
|
||||||
@@ -61,10 +63,11 @@ public class TvPipTaskOrganizer extends PipTaskOrganizer {
|
|||||||
@NonNull PipUiEventLogger pipUiEventLogger,
|
@NonNull PipUiEventLogger pipUiEventLogger,
|
||||||
@NonNull ShellTaskOrganizer shellTaskOrganizer,
|
@NonNull ShellTaskOrganizer shellTaskOrganizer,
|
||||||
ShellExecutor mainExecutor) {
|
ShellExecutor mainExecutor) {
|
||||||
super(context, syncTransactionQueue, pipTransitionState, pipBoundsState, boundsHandler,
|
super(context, syncTransactionQueue, pipTransitionState, pipBoundsState, pipSizeSpecHandler,
|
||||||
pipMenuController, pipAnimationController, surfaceTransactionHelper,
|
boundsHandler, pipMenuController, pipAnimationController,
|
||||||
pipTransitionController, pipParamsChangedForwarder, splitScreenOptional,
|
surfaceTransactionHelper, pipTransitionController, pipParamsChangedForwarder,
|
||||||
displayController, pipUiEventLogger, shellTaskOrganizer, mainExecutor);
|
splitScreenOptional, displayController, pipUiEventLogger, shellTaskOrganizer,
|
||||||
|
mainExecutor);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -104,8 +104,8 @@ public class PipTaskOrganizerTest extends ShellTestCase {
|
|||||||
new PipSnapAlgorithm(), new PipKeepClearAlgorithmInterface() {},
|
new PipSnapAlgorithm(), new PipKeepClearAlgorithmInterface() {},
|
||||||
mPipSizeSpecHandler);
|
mPipSizeSpecHandler);
|
||||||
mMainExecutor = new TestShellExecutor();
|
mMainExecutor = new TestShellExecutor();
|
||||||
mPipTaskOrganizer = new PipTaskOrganizer(mContext,
|
mPipTaskOrganizer = new PipTaskOrganizer(mContext, mMockSyncTransactionQueue,
|
||||||
mMockSyncTransactionQueue, mPipTransitionState, mPipBoundsState,
|
mPipTransitionState, mPipBoundsState, mPipSizeSpecHandler,
|
||||||
mPipBoundsAlgorithm, mMockPhonePipMenuController, mMockPipAnimationController,
|
mPipBoundsAlgorithm, mMockPhonePipMenuController, mMockPipAnimationController,
|
||||||
mMockPipSurfaceTransactionHelper, mMockPipTransitionController,
|
mMockPipSurfaceTransactionHelper, mMockPipTransitionController,
|
||||||
mMockPipParamsChangedForwarder, mMockOptionalSplitScreen, mMockDisplayController,
|
mMockPipParamsChangedForwarder, mMockOptionalSplitScreen, mMockDisplayController,
|
||||||
|
|||||||
Reference in New Issue
Block a user