diff options
author | 2022-09-28 19:42:21 +0000 | |
---|---|---|
committer | 2022-09-28 19:42:21 +0000 | |
commit | 3dfcf6c0b6a899e0d30ecbc8a97c8b98cf7364bc (patch) | |
tree | 59f444ab9a70d242c6f812f8c22b865e0878cf10 | |
parent | 4fde3dc72b5dce563a283354240b46ba81a90e6f (diff) | |
parent | 5e05a02c9cdfc58f5ab450587f9fb78898e001e5 (diff) |
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>
5 files changed, 35 insertions, 28 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java index e784261daa7e..c11c5777e818 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java @@ -318,6 +318,7 @@ public abstract class WMShellModule { ShellCommandHandler shellCommandHandler, ShellController shellController, DisplayController displayController, + PipAnimationController pipAnimationController, PipAppOpsListener pipAppOpsListener, PipBoundsAlgorithm pipBoundsAlgorithm, PhonePipKeepClearAlgorithm pipKeepClearAlgorithm, @@ -337,11 +338,12 @@ public abstract class WMShellModule { @ShellMainThread ShellExecutor mainExecutor) { return Optional.ofNullable(PipController.create( context, shellInit, shellCommandHandler, shellController, - displayController, pipAppOpsListener, pipBoundsAlgorithm, pipKeepClearAlgorithm, - pipBoundsState, pipMotionHelper, pipMediaController, phonePipMenuController, - pipTaskOrganizer, pipTransitionState, pipTouchHandler, pipTransitionController, - windowManagerShellWrapper, taskStackListener, pipParamsChangedForwarder, - displayInsetsController, oneHandedController, mainExecutor)); + displayController, pipAnimationController, pipAppOpsListener, pipBoundsAlgorithm, + pipKeepClearAlgorithm, pipBoundsState, pipMotionHelper, pipMediaController, + phonePipMenuController, pipTaskOrganizer, pipTransitionState, pipTouchHandler, + pipTransitionController, windowManagerShellWrapper, taskStackListener, + pipParamsChangedForwarder, displayInsetsController, oneHandedController, + mainExecutor)); } @WMSingleton diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipAnimationController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipAnimationController.java index b32c3eed2fb4..6728c00af51b 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipAnimationController.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipAnimationController.java @@ -195,6 +195,17 @@ public class PipAnimationController { } /** + * 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. */ static void quietCancel(@NonNull ValueAnimator animator) { diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTaskOrganizer.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTaskOrganizer.java index 1a52d8c395ba..f170e774739f 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTaskOrganizer.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTaskOrganizer.java @@ -324,19 +324,6 @@ public class PipTaskOrganizer implements ShellTaskOrganizer.TaskListener, 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() { PipAnimationController.PipTransitionAnimator animator = mPipAnimationController.getCurrentAnimator(); diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java index bc8191d2af46..af47666efa5a 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/phone/PipController.java @@ -130,6 +130,7 @@ public class PipController implements PipTransitionController.PipTransitionCallb private DisplayController mDisplayController; private PipInputConsumer mPipInputConsumer; private WindowManagerShellWrapper mWindowManagerShellWrapper; + private PipAnimationController mPipAnimationController; private PipAppOpsListener mAppOpsListener; private PipMediaController mMediaController; private PipBoundsAlgorithm mPipBoundsAlgorithm; @@ -158,7 +159,7 @@ public class PipController implements PipTransitionController.PipTransitionCallb return; } // if there is another animation ongoing, wait for it to finish and try again - if (mPipTaskOrganizer.isAnimating()) { + if (mPipAnimationController.isAnimating()) { mMainExecutor.removeCallbacks( mMovePipInResponseToKeepClearAreasChangeCallback); mMainExecutor.executeDelayed( @@ -368,6 +369,7 @@ public class PipController implements PipTransitionController.PipTransitionCallb ShellCommandHandler shellCommandHandler, ShellController shellController, DisplayController displayController, + PipAnimationController pipAnimationController, PipAppOpsListener pipAppOpsListener, PipBoundsAlgorithm pipBoundsAlgorithm, PipKeepClearAlgorithm pipKeepClearAlgorithm, @@ -392,11 +394,12 @@ public class PipController implements PipTransitionController.PipTransitionCallb } return new PipController(context, shellInit, shellCommandHandler, shellController, - displayController, pipAppOpsListener, pipBoundsAlgorithm, pipKeepClearAlgorithm, - pipBoundsState, pipMotionHelper, pipMediaController, phonePipMenuController, - pipTaskOrganizer, pipTransitionState, pipTouchHandler, pipTransitionController, - windowManagerShellWrapper, taskStackListener, pipParamsChangedForwarder, - displayInsetsController, oneHandedController, mainExecutor) + displayController, pipAnimationController, pipAppOpsListener, + pipBoundsAlgorithm, pipKeepClearAlgorithm, pipBoundsState, pipMotionHelper, + pipMediaController, phonePipMenuController, pipTaskOrganizer, pipTransitionState, + pipTouchHandler, pipTransitionController, windowManagerShellWrapper, + taskStackListener, pipParamsChangedForwarder, displayInsetsController, + oneHandedController, mainExecutor) .mImpl; } @@ -405,6 +408,7 @@ public class PipController implements PipTransitionController.PipTransitionCallb ShellCommandHandler shellCommandHandler, ShellController shellController, DisplayController displayController, + PipAnimationController pipAnimationController, PipAppOpsListener pipAppOpsListener, PipBoundsAlgorithm pipBoundsAlgorithm, PipKeepClearAlgorithm pipKeepClearAlgorithm, @@ -445,6 +449,7 @@ public class PipController implements PipTransitionController.PipTransitionCallb mMediaController = pipMediaController; mMenuController = phonePipMenuController; mTouchHandler = pipTouchHandler; + mPipAnimationController = pipAnimationController; mAppOpsListener = pipAppOpsListener; mOneHandedController = oneHandedController; mPipTransitionController = pipTransitionController; diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/phone/PipControllerTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/phone/PipControllerTest.java index a8d3bdcb7c96..1e08f1e55797 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/phone/PipControllerTest.java +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/pip/phone/PipControllerTest.java @@ -48,6 +48,7 @@ import com.android.wm.shell.common.DisplayLayout; import com.android.wm.shell.common.ShellExecutor; import com.android.wm.shell.common.TaskStackListenerImpl; 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.PipBoundsAlgorithm; import com.android.wm.shell.pip.PipBoundsState; @@ -85,6 +86,7 @@ public class PipControllerTest extends ShellTestCase { @Mock private ShellCommandHandler mMockShellCommandHandler; @Mock private DisplayController mMockDisplayController; @Mock private PhonePipMenuController mMockPhonePipMenuController; + @Mock private PipAnimationController mMockPipAnimationController; @Mock private PipAppOpsListener mMockPipAppOpsListener; @Mock private PipBoundsAlgorithm mMockPipBoundsAlgorithm; @Mock private PhonePipKeepClearAlgorithm mMockPipKeepClearAlgorithm; @@ -117,8 +119,8 @@ public class PipControllerTest extends ShellTestCase { mShellController = spy(new ShellController(mShellInit, mMockShellCommandHandler, mMockExecutor)); mPipController = new PipController(mContext, mShellInit, mMockShellCommandHandler, - mShellController, mMockDisplayController, mMockPipAppOpsListener, - mMockPipBoundsAlgorithm, mMockPipKeepClearAlgorithm, + mShellController, mMockDisplayController, mMockPipAnimationController, + mMockPipAppOpsListener, mMockPipBoundsAlgorithm, mMockPipKeepClearAlgorithm, mMockPipBoundsState, mMockPipMotionHelper, mMockPipMediaController, mMockPhonePipMenuController, mMockPipTaskOrganizer, mMockPipTransitionState, mMockPipTouchHandler, mMockPipTransitionController, mMockWindowManagerShellWrapper, @@ -183,8 +185,8 @@ public class PipControllerTest extends ShellTestCase { ShellInit shellInit = new ShellInit(mMockExecutor); assertNull(PipController.create(spyContext, shellInit, mMockShellCommandHandler, - mShellController, mMockDisplayController, mMockPipAppOpsListener, - mMockPipBoundsAlgorithm, mMockPipKeepClearAlgorithm, + mShellController, mMockDisplayController, mMockPipAnimationController, + mMockPipAppOpsListener, mMockPipBoundsAlgorithm, mMockPipKeepClearAlgorithm, mMockPipBoundsState, mMockPipMotionHelper, mMockPipMediaController, mMockPhonePipMenuController, mMockPipTaskOrganizer, mMockPipTransitionState, mMockPipTouchHandler, mMockPipTransitionController, mMockWindowManagerShellWrapper, |