diff options
| author | 2022-12-05 19:38:42 +0000 | |
|---|---|---|
| committer | 2022-12-05 19:38:42 +0000 | |
| commit | 9f0809b2642e655d400a3bef3b2a3a12d109f288 (patch) | |
| tree | 8003b97cda58fc84656c973e4ca449fd59d4348e /libs | |
| parent | a8bc50d45e3b9a8cbeed2c94d0917d8b12e76392 (diff) | |
| parent | 79195a44ce7f74a85bbf1aaae1064cc09e776719 (diff) | |
Merge "Make OnBackAnimationCallback and BackEvent public."
Diffstat (limited to 'libs')
6 files changed, 30 insertions, 17 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimationController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimationController.java index 0133f6b44d2b..57a0fd593551 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimationController.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimationController.java @@ -47,6 +47,7 @@ import android.view.MotionEvent; import android.view.RemoteAnimationTarget; import android.window.BackAnimationAdapter; import android.window.BackEvent; +import android.window.BackMotionEvent; import android.window.BackNavigationInfo; import android.window.IBackAnimationFinishedCallback; import android.window.IBackAnimationRunner; @@ -385,7 +386,7 @@ public class BackAnimationController implements RemoteCallable<BackAnimationCont return; } - final BackEvent backEvent = mTouchTracker.createProgressEvent(); + final BackMotionEvent backEvent = mTouchTracker.createProgressEvent(); dispatchOnBackProgressed(mActiveCallback, backEvent); } @@ -415,7 +416,7 @@ public class BackAnimationController implements RemoteCallable<BackAnimationCont } private void dispatchOnBackStarted(IOnBackInvokedCallback callback, - BackEvent backEvent) { + BackMotionEvent backEvent) { if (callback == null) { return; } @@ -453,7 +454,7 @@ public class BackAnimationController implements RemoteCallable<BackAnimationCont } private void dispatchOnBackProgressed(IOnBackInvokedCallback callback, - BackEvent backEvent) { + BackMotionEvent backEvent) { if (callback == null) { return; } @@ -466,6 +467,11 @@ public class BackAnimationController implements RemoteCallable<BackAnimationCont } } + private boolean shouldDispatchAnimation(IOnBackInvokedCallback callback) { + // TODO(b/258698745): Only dispatch to animation callbacks. + return mEnableAnimations.get(); + } + /** * Sets to true when the back gesture has passed the triggering threshold, false otherwise. */ @@ -640,7 +646,7 @@ public class BackAnimationController implements RemoteCallable<BackAnimationCont if (!mBackGestureStarted) { // if the down -> up gesture happened before animation start, we have to // trigger the uninterruptible transition to finish the back animation. - final BackEvent backFinish = mTouchTracker.createProgressEvent(); + final BackMotionEvent backFinish = mTouchTracker.createProgressEvent(); dispatchOnBackProgressed(mActiveCallback, backFinish); startPostCommitAnimation(); } diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/back/CrossActivityAnimation.java b/libs/WindowManager/Shell/src/com/android/wm/shell/back/CrossActivityAnimation.java index 9f6bc5d89e10..e36e16c82da6 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/back/CrossActivityAnimation.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/back/CrossActivityAnimation.java @@ -39,6 +39,7 @@ import android.view.animation.AccelerateInterpolator; import android.view.animation.DecelerateInterpolator; import android.view.animation.Interpolator; import android.window.BackEvent; +import android.window.BackMotionEvent; import android.window.BackProgressAnimator; import android.window.IOnBackInvokedCallback; @@ -315,13 +316,13 @@ class CrossActivityAnimation { private final class Callback extends IOnBackInvokedCallback.Default { @Override - public void onBackStarted(BackEvent backEvent) { + public void onBackStarted(BackMotionEvent backEvent) { mProgressAnimator.onBackStarted(backEvent, CrossActivityAnimation.this::onGestureProgress); } @Override - public void onBackProgressed(@NonNull BackEvent backEvent) { + public void onBackProgressed(@NonNull BackMotionEvent backEvent) { mProgressAnimator.onBackProgressed(backEvent); } diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/back/CrossTaskBackAnimation.java b/libs/WindowManager/Shell/src/com/android/wm/shell/back/CrossTaskBackAnimation.java index a9a7b7742d2f..676e25923301 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/back/CrossTaskBackAnimation.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/back/CrossTaskBackAnimation.java @@ -39,6 +39,7 @@ import android.view.SurfaceControl; import android.view.animation.AccelerateDecelerateInterpolator; import android.view.animation.Interpolator; import android.window.BackEvent; +import android.window.BackMotionEvent; import android.window.BackProgressAnimator; import android.window.IOnBackInvokedCallback; @@ -316,13 +317,13 @@ class CrossTaskBackAnimation { private final class Callback extends IOnBackInvokedCallback.Default { @Override - public void onBackStarted(BackEvent backEvent) { + public void onBackStarted(BackMotionEvent backEvent) { mProgressAnimator.onBackStarted(backEvent, CrossTaskBackAnimation.this::onGestureProgress); } @Override - public void onBackProgressed(@NonNull BackEvent backEvent) { + public void onBackProgressed(@NonNull BackMotionEvent backEvent) { mProgressAnimator.onBackProgressed(backEvent); } diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/back/TouchTracker.java b/libs/WindowManager/Shell/src/com/android/wm/shell/back/TouchTracker.java index ccfac65d6342..695ef4e66302 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/back/TouchTracker.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/back/TouchTracker.java @@ -19,6 +19,7 @@ package com.android.wm.shell.back; import android.os.SystemProperties; import android.view.RemoteAnimationTarget; import android.window.BackEvent; +import android.window.BackMotionEvent; /** * Helper class to record the touch location for gesture and generate back events. @@ -82,11 +83,11 @@ class TouchTracker { mSwipeEdge = BackEvent.EDGE_LEFT; } - BackEvent createStartEvent(RemoteAnimationTarget target) { - return new BackEvent(mInitTouchX, mInitTouchY, 0, mSwipeEdge, target); + BackMotionEvent createStartEvent(RemoteAnimationTarget target) { + return new BackMotionEvent(mInitTouchX, mInitTouchY, 0, mSwipeEdge, target); } - BackEvent createProgressEvent() { + BackMotionEvent createProgressEvent() { float progressThreshold = PROGRESS_THRESHOLD >= 0 ? PROGRESS_THRESHOLD : mProgressThreshold; progressThreshold = progressThreshold == 0 ? 1 : progressThreshold; @@ -109,8 +110,8 @@ class TouchTracker { return createProgressEvent(progress); } - BackEvent createProgressEvent(float progress) { - return new BackEvent(mLatestTouchX, mLatestTouchY, progress, mSwipeEdge, null); + BackMotionEvent createProgressEvent(float progress) { + return new BackMotionEvent(mLatestTouchX, mLatestTouchY, progress, mSwipeEdge, null); } public void setProgressThreshold(float progressThreshold) { diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/back/BackAnimationControllerTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/back/BackAnimationControllerTest.java index bee9a90ec6b8..8a5b4901ed96 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/back/BackAnimationControllerTest.java +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/back/BackAnimationControllerTest.java @@ -53,6 +53,7 @@ import android.view.MotionEvent; import android.view.RemoteAnimationTarget; import android.view.SurfaceControl; import android.window.BackEvent; +import android.window.BackMotionEvent; import android.window.BackNavigationInfo; import android.window.IBackAnimationFinishedCallback; import android.window.IOnBackInvokedCallback; @@ -223,9 +224,10 @@ public class BackAnimationControllerTest extends ShellTestCase { simulateRemoteAnimationStart(BackNavigationInfo.TYPE_RETURN_TO_HOME); - verify(mAnimatorCallback).onBackStarted(any(BackEvent.class)); + verify(mAnimatorCallback).onBackStarted(any(BackMotionEvent.class)); verify(mBackAnimationRunner).onAnimationStart(anyInt(), any(), any(), any(), any()); - ArgumentCaptor<BackEvent> backEventCaptor = ArgumentCaptor.forClass(BackEvent.class); + ArgumentCaptor<BackMotionEvent> backEventCaptor = + ArgumentCaptor.forClass(BackMotionEvent.class); verify(mAnimatorCallback, atLeastOnce()).onBackProgressed(backEventCaptor.capture()); // Check that back invocation is dispatched. @@ -246,7 +248,8 @@ public class BackAnimationControllerTest extends ShellTestCase { shellInit.init(); registerAnimation(BackNavigationInfo.TYPE_RETURN_TO_HOME); - ArgumentCaptor<BackEvent> backEventCaptor = ArgumentCaptor.forClass(BackEvent.class); + ArgumentCaptor<BackMotionEvent> backEventCaptor = + ArgumentCaptor.forClass(BackMotionEvent.class); createNavigationInfo(BackNavigationInfo.TYPE_RETURN_TO_HOME, false); diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/back/TouchTrackerTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/back/TouchTrackerTest.java index 3aefc3f03a8a..ba9c159bad28 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/back/TouchTrackerTest.java +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/back/TouchTrackerTest.java @@ -19,6 +19,7 @@ package com.android.wm.shell.back; import static org.junit.Assert.assertEquals; import android.window.BackEvent; +import android.window.BackMotionEvent; import org.junit.Before; import org.junit.Test; @@ -38,7 +39,7 @@ public class TouchTrackerTest { @Test public void generatesProgress_onStart() { mTouchTracker.setGestureStartLocation(INITIAL_X_LEFT_EDGE, 0, BackEvent.EDGE_LEFT); - BackEvent event = mTouchTracker.createStartEvent(null); + BackMotionEvent event = mTouchTracker.createStartEvent(null); assertEquals(event.getProgress(), 0f, 0f); } |