Loading libs/WindowManager/Shell/src/com/android/wm/shell/back/CrossActivityBackAnimation.kt +13 −6 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.graphics.PointF import android.graphics.Rect import android.graphics.RectF import android.os.RemoteException import android.view.Choreographer import android.view.Display import android.view.IRemoteAnimationFinishedCallback import android.view.IRemoteAnimationRunner Loading Loading @@ -137,7 +138,7 @@ class CrossActivityBackAnimation @Inject constructor( enteringTarget!!.taskInfo.taskDescription!!.backgroundColor, transaction ) ensureScrimLayer() transaction.apply() applyTransaction() } private fun onGestureProgress(backEvent: BackEvent) { Loading @@ -150,7 +151,7 @@ class CrossActivityBackAnimation @Inject constructor( currentEnteringRect.setInterpolatedRectF(startEnteringRect, targetEnteringRect, progress) currentEnteringRect.offset(0f, yOffset) applyTransform(enteringTarget?.leash, currentEnteringRect, 1f) transaction.apply() applyTransaction() } private fun getYOffset(centeredRect: RectF, touchY: Float): Float { Loading Loading @@ -210,7 +211,7 @@ class CrossActivityBackAnimation @Inject constructor( applyTransform(closingTarget?.leash, currentClosingRect, closingAlpha) currentEnteringRect.setInterpolatedRectF(startEnteringRect, targetEnteringRect, progress) applyTransform(enteringTarget?.leash, currentEnteringRect, 1f) transaction.apply() applyTransaction() } private fun finishAnimation() { Loading @@ -226,7 +227,7 @@ class CrossActivityBackAnimation @Inject constructor( closingTarget = null background.removeBackground(transaction) transaction.apply() applyTransaction() transformMatrix.reset() initialTouchPos.set(0f, 0f) try { Loading @@ -250,6 +251,11 @@ class CrossActivityBackAnimation @Inject constructor( .setCornerRadius(leash, cornerRadius) } private fun applyTransaction() { transaction.setFrameTimelineVsync(Choreographer.getInstance().vsyncId) transaction.apply() } private fun ensureScrimLayer() { if (scrimLayer != null) return val isDarkTheme: Boolean = isDarkMode(context) Loading @@ -275,7 +281,8 @@ class CrossActivityBackAnimation @Inject constructor( private fun removeScrimLayer() { scrimLayer?.let { if (it.isValid) { transaction.remove(it).apply() transaction.remove(it) applyTransaction() } } scrimLayer = null Loading @@ -287,7 +294,7 @@ class CrossActivityBackAnimation @Inject constructor( // in case we're still animating an onBackCancelled event, let's remove the finish- // callback from the progress animator to prevent calling finishAnimation() before // restarting a new animation progressAnimator.removeOnBackCancelledFinishCallback(); progressAnimator.removeOnBackCancelledFinishCallback() startBackAnimation(backMotionEvent) progressAnimator.onBackStarted(backMotionEvent) { backEvent: BackEvent -> Loading libs/WindowManager/Shell/src/com/android/wm/shell/back/CrossTaskBackAnimation.java +9 −4 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ import android.graphics.PointF; import android.graphics.Rect; import android.graphics.RectF; import android.os.RemoteException; import android.view.Choreographer; import android.view.IRemoteAnimationFinishedCallback; import android.view.IRemoteAnimationRunner; import android.view.RemoteAnimationTarget; Loading Loading @@ -192,7 +193,7 @@ public class CrossTaskBackAnimation extends ShellBackAnimation { applyTransform(mClosingTarget.leash, mClosingCurrentRect, mCornerRadius); applyTransform(mEnteringTarget.leash, mEnteringCurrentRect, mCornerRadius); mTransaction.apply(); applyTransaction(); mBackground.onBackProgressed(progress); } Loading Loading @@ -242,6 +243,11 @@ public class CrossTaskBackAnimation extends ShellBackAnimation { .setCornerRadius(leash, cornerRadius); } private void applyTransaction() { mTransaction.setFrameTimelineVsync(Choreographer.getInstance().getVsyncId()); mTransaction.apply(); } private void finishAnimation() { if (mEnteringTarget != null) { mEnteringTarget.leash.release(); Loading @@ -255,8 +261,7 @@ public class CrossTaskBackAnimation extends ShellBackAnimation { if (mBackground != null) { mBackground.removeBackground(mTransaction); } mTransaction.apply(); applyTransaction(); mBackInProgress = false; mTransformMatrix.reset(); mClosingCurrentRect.setEmpty(); Loading Loading @@ -303,7 +308,7 @@ public class CrossTaskBackAnimation extends ShellBackAnimation { if (progress > 1 - UPDATE_SYSUI_FLAGS_THRESHOLD) { mBackground.resetStatusBarCustomization(); } mTransaction.apply(); applyTransaction(); }); valueAnimator.addListener(new AnimatorListenerAdapter() { Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/back/CrossActivityBackAnimation.kt +13 −6 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.graphics.PointF import android.graphics.Rect import android.graphics.RectF import android.os.RemoteException import android.view.Choreographer import android.view.Display import android.view.IRemoteAnimationFinishedCallback import android.view.IRemoteAnimationRunner Loading Loading @@ -137,7 +138,7 @@ class CrossActivityBackAnimation @Inject constructor( enteringTarget!!.taskInfo.taskDescription!!.backgroundColor, transaction ) ensureScrimLayer() transaction.apply() applyTransaction() } private fun onGestureProgress(backEvent: BackEvent) { Loading @@ -150,7 +151,7 @@ class CrossActivityBackAnimation @Inject constructor( currentEnteringRect.setInterpolatedRectF(startEnteringRect, targetEnteringRect, progress) currentEnteringRect.offset(0f, yOffset) applyTransform(enteringTarget?.leash, currentEnteringRect, 1f) transaction.apply() applyTransaction() } private fun getYOffset(centeredRect: RectF, touchY: Float): Float { Loading Loading @@ -210,7 +211,7 @@ class CrossActivityBackAnimation @Inject constructor( applyTransform(closingTarget?.leash, currentClosingRect, closingAlpha) currentEnteringRect.setInterpolatedRectF(startEnteringRect, targetEnteringRect, progress) applyTransform(enteringTarget?.leash, currentEnteringRect, 1f) transaction.apply() applyTransaction() } private fun finishAnimation() { Loading @@ -226,7 +227,7 @@ class CrossActivityBackAnimation @Inject constructor( closingTarget = null background.removeBackground(transaction) transaction.apply() applyTransaction() transformMatrix.reset() initialTouchPos.set(0f, 0f) try { Loading @@ -250,6 +251,11 @@ class CrossActivityBackAnimation @Inject constructor( .setCornerRadius(leash, cornerRadius) } private fun applyTransaction() { transaction.setFrameTimelineVsync(Choreographer.getInstance().vsyncId) transaction.apply() } private fun ensureScrimLayer() { if (scrimLayer != null) return val isDarkTheme: Boolean = isDarkMode(context) Loading @@ -275,7 +281,8 @@ class CrossActivityBackAnimation @Inject constructor( private fun removeScrimLayer() { scrimLayer?.let { if (it.isValid) { transaction.remove(it).apply() transaction.remove(it) applyTransaction() } } scrimLayer = null Loading @@ -287,7 +294,7 @@ class CrossActivityBackAnimation @Inject constructor( // in case we're still animating an onBackCancelled event, let's remove the finish- // callback from the progress animator to prevent calling finishAnimation() before // restarting a new animation progressAnimator.removeOnBackCancelledFinishCallback(); progressAnimator.removeOnBackCancelledFinishCallback() startBackAnimation(backMotionEvent) progressAnimator.onBackStarted(backMotionEvent) { backEvent: BackEvent -> Loading
libs/WindowManager/Shell/src/com/android/wm/shell/back/CrossTaskBackAnimation.java +9 −4 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ import android.graphics.PointF; import android.graphics.Rect; import android.graphics.RectF; import android.os.RemoteException; import android.view.Choreographer; import android.view.IRemoteAnimationFinishedCallback; import android.view.IRemoteAnimationRunner; import android.view.RemoteAnimationTarget; Loading Loading @@ -192,7 +193,7 @@ public class CrossTaskBackAnimation extends ShellBackAnimation { applyTransform(mClosingTarget.leash, mClosingCurrentRect, mCornerRadius); applyTransform(mEnteringTarget.leash, mEnteringCurrentRect, mCornerRadius); mTransaction.apply(); applyTransaction(); mBackground.onBackProgressed(progress); } Loading Loading @@ -242,6 +243,11 @@ public class CrossTaskBackAnimation extends ShellBackAnimation { .setCornerRadius(leash, cornerRadius); } private void applyTransaction() { mTransaction.setFrameTimelineVsync(Choreographer.getInstance().getVsyncId()); mTransaction.apply(); } private void finishAnimation() { if (mEnteringTarget != null) { mEnteringTarget.leash.release(); Loading @@ -255,8 +261,7 @@ public class CrossTaskBackAnimation extends ShellBackAnimation { if (mBackground != null) { mBackground.removeBackground(mTransaction); } mTransaction.apply(); applyTransaction(); mBackInProgress = false; mTransformMatrix.reset(); mClosingCurrentRect.setEmpty(); Loading Loading @@ -303,7 +308,7 @@ public class CrossTaskBackAnimation extends ShellBackAnimation { if (progress > 1 - UPDATE_SYSUI_FLAGS_THRESHOLD) { mBackground.resetStatusBarCustomization(); } mTransaction.apply(); applyTransaction(); }); valueAnimator.addListener(new AnimatorListenerAdapter() { Loading