Loading packages/SystemUI/animation/lib/Android.bp +4 −3 Original line number Diff line number Diff line Loading @@ -25,8 +25,8 @@ package { java_library { name: "PlatformAnimationLib-server", srcs: [ "src/com/android/systemui/animation/server/*.java", ":PlatformAnimationLib-aidl", "src/com/android/systemui/animation/server/*.java", ], static_libs: [ "WindowManager-Shell-shared", Loading @@ -39,8 +39,8 @@ java_library { java_library { name: "PlatformAnimationLib-core", srcs: [ "src/com/android/systemui/animation/*.java", ":PlatformAnimationLib-aidl", "src/com/android/systemui/animation/*.java", ], static_libs: [ "WindowManager-Shell-shared", Loading @@ -50,13 +50,14 @@ java_library { filegroup { name: "PlatformAnimationLib-client-srcs", srcs: [ ":PlatformAnimationLib-aidl", "src/com/android/systemui/animation/OriginRemoteTransition.java", "src/com/android/systemui/animation/OriginTransitionSession.java", "src/com/android/systemui/animation/SurfaceUIComponent.java", "src/com/android/systemui/animation/Transactions.java", "src/com/android/systemui/animation/TransitionAnimationController.java", "src/com/android/systemui/animation/UIComponent.java", "src/com/android/systemui/animation/ViewUIComponent.java", ":PlatformAnimationLib-aidl", ], } Loading packages/SystemUI/animation/lib/src/com/android/systemui/animation/OriginRemoteTransition.java +42 −39 Original line number Diff line number Diff line Loading @@ -18,9 +18,6 @@ package com.android.systemui.animation; import static android.view.WindowManager.TRANSIT_CHANGE; import android.animation.Animator; import android.animation.Animator.AnimatorListener; import android.animation.ValueAnimator; import android.annotation.Nullable; import android.content.Context; import android.graphics.Rect; Loading Loading @@ -51,7 +48,8 @@ import java.util.concurrent.atomic.AtomicBoolean; * * @hide */ public class OriginRemoteTransition extends IRemoteTransition.Stub { public class OriginRemoteTransition extends IRemoteTransition.Stub implements TransitionAnimationController.AnimationRunnerListener { private static final String TAG = "OriginRemoteTransition"; private static final long FINISH_ANIMATION_TIMEOUT_MS = 100; Loading @@ -65,9 +63,8 @@ public class OriginRemoteTransition extends IRemoteTransition.Stub { @Nullable private SurfaceControl.Transaction mStartTransaction; @Nullable private IRemoteTransitionFinishedCallback mFinishCallback; @Nullable private UIComponent.Transaction mOriginTransaction; @Nullable private ValueAnimator mAnimator; @Nullable private TransitionAnimationController mAnimationController; @Nullable private SurfaceControl mOriginLeash; private boolean mCancelled; OriginRemoteTransition( Context context, Loading Loading @@ -146,32 +143,37 @@ public class OriginRemoteTransition extends IRemoteTransition.Stub { mOriginTransaction.commit(); mStartTransaction.apply(); // Start the animator. mAnimator = ValueAnimator.ofFloat(0.0f, 1.0f); mAnimator.setDuration(mDuration); mAnimator.addListener( new AnimatorListener() { @Override public void onAnimationStart(Animator a) {} @Override public void onAnimationEnd(Animator a) { finishAnimation(/* finished= */ !mCancelled); // configure/start animation controller mAnimationController = new TransitionAnimationController(mHandler, this); mAnimationController.addValueAnimation( TAG + (mIsEntry ? "-entryAnimator" : "-exitAnimator"), TransitionAnimationController.LINEAR_INTERPOLATOR, mDuration, 0, 0f, 1f); mAnimationController.startAnimations(); } /** * @param animatorId specific ID associated with a given animator, used to disambiguate. * @param canceled whether or not the animation was canceled (terminated) or ran to * completion. */ @Override public void onAnimationCancel(Animator a) { mCancelled = true; public void onAnimationFinished(String animatorId, boolean canceled) { finishAnimation(/* finished= */ !canceled); } /** * @param animatorId specific ID associated with a given animator, used to disambiguate. * @param progress representative value of the current state of progress, start to finish. * @param isFirstFrame whether or not the current update represents the drawing of the * *first* frame of the animation. */ @Override public void onAnimationRepeat(Animator a) {} }); mAnimator.addUpdateListener( a -> { mPlayer.onProgress((float) a.getAnimatedValue()); }); mAnimator.start(); public void onAnimationProgressUpdate(String animatorId, float progress, boolean isFirstFrame) { mPlayer.onProgress(progress); } private boolean prepareUIs(TransitionInfo info) { Loading Loading @@ -304,7 +306,7 @@ public class OriginRemoteTransition extends IRemoteTransition.Stub { mHandler.removeCallbacks(timeoutRunnable); finishInternalRunnable.run(); }; if (mAnimator == null) { if (mAnimationController == null) { // The transition didn't start. Ensure we apply the start transaction and report // finish afterwards. mStartTransaction Loading @@ -314,7 +316,8 @@ public class OriginRemoteTransition extends IRemoteTransition.Stub { mHandler.postDelayed(timeoutRunnable, FINISH_ANIMATION_TIMEOUT_MS); return; } mAnimator = null; mAnimationController = null; // Notify client that we have ended. mPlayer.onEnd(finished); // Detach the origin from the transition leash and report finish after it's done. Loading Loading @@ -346,8 +349,8 @@ public class OriginRemoteTransition extends IRemoteTransition.Stub { logD("cancel()"); mHandler.post( () -> { if (mAnimator != null) { mAnimator.cancel(); if (mAnimationController != null) { mAnimationController.cancelAnimations(); } }); } Loading packages/SystemUI/animation/lib/src/com/android/systemui/animation/TransitionAnimationController.java 0 → 100644 +492 −0 File added.Preview size limit exceeded, changes collapsed. Show changes Loading
packages/SystemUI/animation/lib/Android.bp +4 −3 Original line number Diff line number Diff line Loading @@ -25,8 +25,8 @@ package { java_library { name: "PlatformAnimationLib-server", srcs: [ "src/com/android/systemui/animation/server/*.java", ":PlatformAnimationLib-aidl", "src/com/android/systemui/animation/server/*.java", ], static_libs: [ "WindowManager-Shell-shared", Loading @@ -39,8 +39,8 @@ java_library { java_library { name: "PlatformAnimationLib-core", srcs: [ "src/com/android/systemui/animation/*.java", ":PlatformAnimationLib-aidl", "src/com/android/systemui/animation/*.java", ], static_libs: [ "WindowManager-Shell-shared", Loading @@ -50,13 +50,14 @@ java_library { filegroup { name: "PlatformAnimationLib-client-srcs", srcs: [ ":PlatformAnimationLib-aidl", "src/com/android/systemui/animation/OriginRemoteTransition.java", "src/com/android/systemui/animation/OriginTransitionSession.java", "src/com/android/systemui/animation/SurfaceUIComponent.java", "src/com/android/systemui/animation/Transactions.java", "src/com/android/systemui/animation/TransitionAnimationController.java", "src/com/android/systemui/animation/UIComponent.java", "src/com/android/systemui/animation/ViewUIComponent.java", ":PlatformAnimationLib-aidl", ], } Loading
packages/SystemUI/animation/lib/src/com/android/systemui/animation/OriginRemoteTransition.java +42 −39 Original line number Diff line number Diff line Loading @@ -18,9 +18,6 @@ package com.android.systemui.animation; import static android.view.WindowManager.TRANSIT_CHANGE; import android.animation.Animator; import android.animation.Animator.AnimatorListener; import android.animation.ValueAnimator; import android.annotation.Nullable; import android.content.Context; import android.graphics.Rect; Loading Loading @@ -51,7 +48,8 @@ import java.util.concurrent.atomic.AtomicBoolean; * * @hide */ public class OriginRemoteTransition extends IRemoteTransition.Stub { public class OriginRemoteTransition extends IRemoteTransition.Stub implements TransitionAnimationController.AnimationRunnerListener { private static final String TAG = "OriginRemoteTransition"; private static final long FINISH_ANIMATION_TIMEOUT_MS = 100; Loading @@ -65,9 +63,8 @@ public class OriginRemoteTransition extends IRemoteTransition.Stub { @Nullable private SurfaceControl.Transaction mStartTransaction; @Nullable private IRemoteTransitionFinishedCallback mFinishCallback; @Nullable private UIComponent.Transaction mOriginTransaction; @Nullable private ValueAnimator mAnimator; @Nullable private TransitionAnimationController mAnimationController; @Nullable private SurfaceControl mOriginLeash; private boolean mCancelled; OriginRemoteTransition( Context context, Loading Loading @@ -146,32 +143,37 @@ public class OriginRemoteTransition extends IRemoteTransition.Stub { mOriginTransaction.commit(); mStartTransaction.apply(); // Start the animator. mAnimator = ValueAnimator.ofFloat(0.0f, 1.0f); mAnimator.setDuration(mDuration); mAnimator.addListener( new AnimatorListener() { @Override public void onAnimationStart(Animator a) {} @Override public void onAnimationEnd(Animator a) { finishAnimation(/* finished= */ !mCancelled); // configure/start animation controller mAnimationController = new TransitionAnimationController(mHandler, this); mAnimationController.addValueAnimation( TAG + (mIsEntry ? "-entryAnimator" : "-exitAnimator"), TransitionAnimationController.LINEAR_INTERPOLATOR, mDuration, 0, 0f, 1f); mAnimationController.startAnimations(); } /** * @param animatorId specific ID associated with a given animator, used to disambiguate. * @param canceled whether or not the animation was canceled (terminated) or ran to * completion. */ @Override public void onAnimationCancel(Animator a) { mCancelled = true; public void onAnimationFinished(String animatorId, boolean canceled) { finishAnimation(/* finished= */ !canceled); } /** * @param animatorId specific ID associated with a given animator, used to disambiguate. * @param progress representative value of the current state of progress, start to finish. * @param isFirstFrame whether or not the current update represents the drawing of the * *first* frame of the animation. */ @Override public void onAnimationRepeat(Animator a) {} }); mAnimator.addUpdateListener( a -> { mPlayer.onProgress((float) a.getAnimatedValue()); }); mAnimator.start(); public void onAnimationProgressUpdate(String animatorId, float progress, boolean isFirstFrame) { mPlayer.onProgress(progress); } private boolean prepareUIs(TransitionInfo info) { Loading Loading @@ -304,7 +306,7 @@ public class OriginRemoteTransition extends IRemoteTransition.Stub { mHandler.removeCallbacks(timeoutRunnable); finishInternalRunnable.run(); }; if (mAnimator == null) { if (mAnimationController == null) { // The transition didn't start. Ensure we apply the start transaction and report // finish afterwards. mStartTransaction Loading @@ -314,7 +316,8 @@ public class OriginRemoteTransition extends IRemoteTransition.Stub { mHandler.postDelayed(timeoutRunnable, FINISH_ANIMATION_TIMEOUT_MS); return; } mAnimator = null; mAnimationController = null; // Notify client that we have ended. mPlayer.onEnd(finished); // Detach the origin from the transition leash and report finish after it's done. Loading Loading @@ -346,8 +349,8 @@ public class OriginRemoteTransition extends IRemoteTransition.Stub { logD("cancel()"); mHandler.post( () -> { if (mAnimator != null) { mAnimator.cancel(); if (mAnimationController != null) { mAnimationController.cancelAnimations(); } }); } Loading
packages/SystemUI/animation/lib/src/com/android/systemui/animation/TransitionAnimationController.java 0 → 100644 +492 −0 File added.Preview size limit exceeded, changes collapsed. Show changes