Merge "Refactor isAnimating to PipAnimationController, and update references." into tm-qpr-dev am: 5e05a02c9c
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20002275 Change-Id: I5c4a2abf0453b9694ec9e05bc4057cc5992e922a Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -318,6 +318,7 @@ public abstract class WMShellModule {
|
|||||||
ShellCommandHandler shellCommandHandler,
|
ShellCommandHandler shellCommandHandler,
|
||||||
ShellController shellController,
|
ShellController shellController,
|
||||||
DisplayController displayController,
|
DisplayController displayController,
|
||||||
|
PipAnimationController pipAnimationController,
|
||||||
PipAppOpsListener pipAppOpsListener,
|
PipAppOpsListener pipAppOpsListener,
|
||||||
PipBoundsAlgorithm pipBoundsAlgorithm,
|
PipBoundsAlgorithm pipBoundsAlgorithm,
|
||||||
PhonePipKeepClearAlgorithm pipKeepClearAlgorithm,
|
PhonePipKeepClearAlgorithm pipKeepClearAlgorithm,
|
||||||
@@ -337,11 +338,12 @@ public abstract class WMShellModule {
|
|||||||
@ShellMainThread ShellExecutor mainExecutor) {
|
@ShellMainThread ShellExecutor mainExecutor) {
|
||||||
return Optional.ofNullable(PipController.create(
|
return Optional.ofNullable(PipController.create(
|
||||||
context, shellInit, shellCommandHandler, shellController,
|
context, shellInit, shellCommandHandler, shellController,
|
||||||
displayController, pipAppOpsListener, pipBoundsAlgorithm, pipKeepClearAlgorithm,
|
displayController, pipAnimationController, pipAppOpsListener, pipBoundsAlgorithm,
|
||||||
pipBoundsState, pipMotionHelper, pipMediaController, phonePipMenuController,
|
pipKeepClearAlgorithm, pipBoundsState, pipMotionHelper, pipMediaController,
|
||||||
pipTaskOrganizer, pipTransitionState, pipTouchHandler, pipTransitionController,
|
phonePipMenuController, pipTaskOrganizer, pipTransitionState, pipTouchHandler,
|
||||||
windowManagerShellWrapper, taskStackListener, pipParamsChangedForwarder,
|
pipTransitionController, windowManagerShellWrapper, taskStackListener,
|
||||||
displayInsetsController, oneHandedController, mainExecutor));
|
pipParamsChangedForwarder, displayInsetsController, oneHandedController,
|
||||||
|
mainExecutor));
|
||||||
}
|
}
|
||||||
|
|
||||||
@WMSingleton
|
@WMSingleton
|
||||||
|
|||||||
@@ -194,6 +194,17 @@ public class PipAnimationController {
|
|||||||
return animator;
|
return animator;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns true if the PiP window is currently being animated.
|
||||||
|
*/
|
||||||
|
public boolean isAnimating() {
|
||||||
|
PipAnimationController.PipTransitionAnimator animator = getCurrentAnimator();
|
||||||
|
if (animator != null && animator.isRunning()) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Quietly cancel the animator by removing the listeners first.
|
* Quietly cancel the animator by removing the listeners first.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -324,19 +324,6 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener,
|
|||||||
return mPipTransitionController;
|
return mPipTransitionController;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns true if the PiP window is currently being animated.
|
|
||||||
*/
|
|
||||||
public boolean isAnimating() {
|
|
||||||
// TODO(b/183746978) move this to PipAnimationController, and inject that in PipController
|
|
||||||
PipAnimationController.PipTransitionAnimator animator =
|
|
||||||
mPipAnimationController.getCurrentAnimator();
|
|
||||||
if (animator != null && animator.isRunning()) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Rect getCurrentOrAnimatingBounds() {
|
public Rect getCurrentOrAnimatingBounds() {
|
||||||
PipAnimationController.PipTransitionAnimator animator =
|
PipAnimationController.PipTransitionAnimator animator =
|
||||||
mPipAnimationController.getCurrentAnimator();
|
mPipAnimationController.getCurrentAnimator();
|
||||||
|
|||||||
@@ -130,6 +130,7 @@ public class PipController implements PipTransitionController.PipTransitionCallb
|
|||||||
private DisplayController mDisplayController;
|
private DisplayController mDisplayController;
|
||||||
private PipInputConsumer mPipInputConsumer;
|
private PipInputConsumer mPipInputConsumer;
|
||||||
private WindowManagerShellWrapper mWindowManagerShellWrapper;
|
private WindowManagerShellWrapper mWindowManagerShellWrapper;
|
||||||
|
private PipAnimationController mPipAnimationController;
|
||||||
private PipAppOpsListener mAppOpsListener;
|
private PipAppOpsListener mAppOpsListener;
|
||||||
private PipMediaController mMediaController;
|
private PipMediaController mMediaController;
|
||||||
private PipBoundsAlgorithm mPipBoundsAlgorithm;
|
private PipBoundsAlgorithm mPipBoundsAlgorithm;
|
||||||
@@ -158,7 +159,7 @@ public class PipController implements PipTransitionController.PipTransitionCallb
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// if there is another animation ongoing, wait for it to finish and try again
|
// if there is another animation ongoing, wait for it to finish and try again
|
||||||
if (mPipTaskOrganizer.isAnimating()) {
|
if (mPipAnimationController.isAnimating()) {
|
||||||
mMainExecutor.removeCallbacks(
|
mMainExecutor.removeCallbacks(
|
||||||
mMovePipInResponseToKeepClearAreasChangeCallback);
|
mMovePipInResponseToKeepClearAreasChangeCallback);
|
||||||
mMainExecutor.executeDelayed(
|
mMainExecutor.executeDelayed(
|
||||||
@@ -368,6 +369,7 @@ public class PipController implements PipTransitionController.PipTransitionCallb
|
|||||||
ShellCommandHandler shellCommandHandler,
|
ShellCommandHandler shellCommandHandler,
|
||||||
ShellController shellController,
|
ShellController shellController,
|
||||||
DisplayController displayController,
|
DisplayController displayController,
|
||||||
|
PipAnimationController pipAnimationController,
|
||||||
PipAppOpsListener pipAppOpsListener,
|
PipAppOpsListener pipAppOpsListener,
|
||||||
PipBoundsAlgorithm pipBoundsAlgorithm,
|
PipBoundsAlgorithm pipBoundsAlgorithm,
|
||||||
PipKeepClearAlgorithm pipKeepClearAlgorithm,
|
PipKeepClearAlgorithm pipKeepClearAlgorithm,
|
||||||
@@ -392,11 +394,12 @@ public class PipController implements PipTransitionController.PipTransitionCallb
|
|||||||
}
|
}
|
||||||
|
|
||||||
return new PipController(context, shellInit, shellCommandHandler, shellController,
|
return new PipController(context, shellInit, shellCommandHandler, shellController,
|
||||||
displayController, pipAppOpsListener, pipBoundsAlgorithm, pipKeepClearAlgorithm,
|
displayController, pipAnimationController, pipAppOpsListener,
|
||||||
pipBoundsState, pipMotionHelper, pipMediaController, phonePipMenuController,
|
pipBoundsAlgorithm, pipKeepClearAlgorithm, pipBoundsState, pipMotionHelper,
|
||||||
pipTaskOrganizer, pipTransitionState, pipTouchHandler, pipTransitionController,
|
pipMediaController, phonePipMenuController, pipTaskOrganizer, pipTransitionState,
|
||||||
windowManagerShellWrapper, taskStackListener, pipParamsChangedForwarder,
|
pipTouchHandler, pipTransitionController, windowManagerShellWrapper,
|
||||||
displayInsetsController, oneHandedController, mainExecutor)
|
taskStackListener, pipParamsChangedForwarder, displayInsetsController,
|
||||||
|
oneHandedController, mainExecutor)
|
||||||
.mImpl;
|
.mImpl;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -405,6 +408,7 @@ public class PipController implements PipTransitionController.PipTransitionCallb
|
|||||||
ShellCommandHandler shellCommandHandler,
|
ShellCommandHandler shellCommandHandler,
|
||||||
ShellController shellController,
|
ShellController shellController,
|
||||||
DisplayController displayController,
|
DisplayController displayController,
|
||||||
|
PipAnimationController pipAnimationController,
|
||||||
PipAppOpsListener pipAppOpsListener,
|
PipAppOpsListener pipAppOpsListener,
|
||||||
PipBoundsAlgorithm pipBoundsAlgorithm,
|
PipBoundsAlgorithm pipBoundsAlgorithm,
|
||||||
PipKeepClearAlgorithm pipKeepClearAlgorithm,
|
PipKeepClearAlgorithm pipKeepClearAlgorithm,
|
||||||
@@ -445,6 +449,7 @@ public class PipController implements PipTransitionController.PipTransitionCallb
|
|||||||
mMediaController = pipMediaController;
|
mMediaController = pipMediaController;
|
||||||
mMenuController = phonePipMenuController;
|
mMenuController = phonePipMenuController;
|
||||||
mTouchHandler = pipTouchHandler;
|
mTouchHandler = pipTouchHandler;
|
||||||
|
mPipAnimationController = pipAnimationController;
|
||||||
mAppOpsListener = pipAppOpsListener;
|
mAppOpsListener = pipAppOpsListener;
|
||||||
mOneHandedController = oneHandedController;
|
mOneHandedController = oneHandedController;
|
||||||
mPipTransitionController = pipTransitionController;
|
mPipTransitionController = pipTransitionController;
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ import com.android.wm.shell.common.DisplayLayout;
|
|||||||
import com.android.wm.shell.common.ShellExecutor;
|
import com.android.wm.shell.common.ShellExecutor;
|
||||||
import com.android.wm.shell.common.TaskStackListenerImpl;
|
import com.android.wm.shell.common.TaskStackListenerImpl;
|
||||||
import com.android.wm.shell.onehanded.OneHandedController;
|
import com.android.wm.shell.onehanded.OneHandedController;
|
||||||
|
import com.android.wm.shell.pip.PipAnimationController;
|
||||||
import com.android.wm.shell.pip.PipAppOpsListener;
|
import com.android.wm.shell.pip.PipAppOpsListener;
|
||||||
import com.android.wm.shell.pip.PipBoundsAlgorithm;
|
import com.android.wm.shell.pip.PipBoundsAlgorithm;
|
||||||
import com.android.wm.shell.pip.PipBoundsState;
|
import com.android.wm.shell.pip.PipBoundsState;
|
||||||
@@ -85,6 +86,7 @@ public class PipControllerTest extends ShellTestCase {
|
|||||||
@Mock private ShellCommandHandler mMockShellCommandHandler;
|
@Mock private ShellCommandHandler mMockShellCommandHandler;
|
||||||
@Mock private DisplayController mMockDisplayController;
|
@Mock private DisplayController mMockDisplayController;
|
||||||
@Mock private PhonePipMenuController mMockPhonePipMenuController;
|
@Mock private PhonePipMenuController mMockPhonePipMenuController;
|
||||||
|
@Mock private PipAnimationController mMockPipAnimationController;
|
||||||
@Mock private PipAppOpsListener mMockPipAppOpsListener;
|
@Mock private PipAppOpsListener mMockPipAppOpsListener;
|
||||||
@Mock private PipBoundsAlgorithm mMockPipBoundsAlgorithm;
|
@Mock private PipBoundsAlgorithm mMockPipBoundsAlgorithm;
|
||||||
@Mock private PhonePipKeepClearAlgorithm mMockPipKeepClearAlgorithm;
|
@Mock private PhonePipKeepClearAlgorithm mMockPipKeepClearAlgorithm;
|
||||||
@@ -117,8 +119,8 @@ public class PipControllerTest extends ShellTestCase {
|
|||||||
mShellController = spy(new ShellController(mShellInit, mMockShellCommandHandler,
|
mShellController = spy(new ShellController(mShellInit, mMockShellCommandHandler,
|
||||||
mMockExecutor));
|
mMockExecutor));
|
||||||
mPipController = new PipController(mContext, mShellInit, mMockShellCommandHandler,
|
mPipController = new PipController(mContext, mShellInit, mMockShellCommandHandler,
|
||||||
mShellController, mMockDisplayController, mMockPipAppOpsListener,
|
mShellController, mMockDisplayController, mMockPipAnimationController,
|
||||||
mMockPipBoundsAlgorithm, mMockPipKeepClearAlgorithm,
|
mMockPipAppOpsListener, mMockPipBoundsAlgorithm, mMockPipKeepClearAlgorithm,
|
||||||
mMockPipBoundsState, mMockPipMotionHelper, mMockPipMediaController,
|
mMockPipBoundsState, mMockPipMotionHelper, mMockPipMediaController,
|
||||||
mMockPhonePipMenuController, mMockPipTaskOrganizer, mMockPipTransitionState,
|
mMockPhonePipMenuController, mMockPipTaskOrganizer, mMockPipTransitionState,
|
||||||
mMockPipTouchHandler, mMockPipTransitionController, mMockWindowManagerShellWrapper,
|
mMockPipTouchHandler, mMockPipTransitionController, mMockWindowManagerShellWrapper,
|
||||||
@@ -183,8 +185,8 @@ public class PipControllerTest extends ShellTestCase {
|
|||||||
|
|
||||||
ShellInit shellInit = new ShellInit(mMockExecutor);
|
ShellInit shellInit = new ShellInit(mMockExecutor);
|
||||||
assertNull(PipController.create(spyContext, shellInit, mMockShellCommandHandler,
|
assertNull(PipController.create(spyContext, shellInit, mMockShellCommandHandler,
|
||||||
mShellController, mMockDisplayController, mMockPipAppOpsListener,
|
mShellController, mMockDisplayController, mMockPipAnimationController,
|
||||||
mMockPipBoundsAlgorithm, mMockPipKeepClearAlgorithm,
|
mMockPipAppOpsListener, mMockPipBoundsAlgorithm, mMockPipKeepClearAlgorithm,
|
||||||
mMockPipBoundsState, mMockPipMotionHelper, mMockPipMediaController,
|
mMockPipBoundsState, mMockPipMotionHelper, mMockPipMediaController,
|
||||||
mMockPhonePipMenuController, mMockPipTaskOrganizer, mMockPipTransitionState,
|
mMockPhonePipMenuController, mMockPipTaskOrganizer, mMockPipTransitionState,
|
||||||
mMockPipTouchHandler, mMockPipTransitionController, mMockWindowManagerShellWrapper,
|
mMockPipTouchHandler, mMockPipTransitionController, mMockWindowManagerShellWrapper,
|
||||||
|
|||||||
Reference in New Issue
Block a user