Loading libs/WindowManager/Shell/src/com/android/wm/shell/compatui/letterbox/animations/LetterboxAnimationHandler.kt +46 −39 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.view.SurfaceControl.Transaction import android.window.TransitionInfo import android.window.TransitionRequestInfo import android.window.WindowContainerTransaction import com.android.app.animation.Interpolators import com.android.internal.protolog.ProtoLog import com.android.window.flags.Flags.appCompatRefactoring import com.android.wm.shell.common.ShellExecutor Loading Loading @@ -57,8 +58,12 @@ class LetterboxAnimationHandler @Inject constructor( companion object { @JvmStatic private val TAG = "LetterboxAnimationHandler" @JvmStatic private val ANIMATION_DURATION_MS = 500L @JvmStatic private val ANIMATION_DURATION = 400L private val ANIMATION_INTERPOLATOR = Interpolators.EMPHASIZED } private var boundsAnimator: ValueAnimator? = null Loading Loading @@ -114,9 +119,10 @@ class LetterboxAnimationHandler @Inject constructor( finalX + startBounds.width(), finalY + startBounds.height() ) boundsAnimator = ValueAnimator.ofObject(rectEvaluator, startBounds, endBounds) .setDuration(ANIMATION_DURATION) boundsAnimator?.addListener(object : Animator.AnimatorListener { ValueAnimator.ofObject(rectEvaluator, startBounds, endBounds) .setDuration(ANIMATION_DURATION_MS).apply { setInterpolator { value -> ANIMATION_INTERPOLATOR.getInterpolation(value) } addListener(object : Animator.AnimatorListener { override fun onAnimationStart(animation: Animator) { } Loading @@ -132,9 +138,9 @@ class LetterboxAnimationHandler @Inject constructor( override fun onAnimationRepeat(animation: Animator) { } }) boundsAnimator?.addUpdateListener { animation -> addUpdateListener { animation -> val rect = animation.getAnimatedValue() as Rect animation.animatedValue as Rect for (c in info.changes) { tx.setPosition( Loading @@ -155,7 +161,8 @@ class LetterboxAnimationHandler @Inject constructor( for (c in info.changes) { tx.show(c.leash).apply() } boundsAnimator?.start() start() } } return true } Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/compatui/letterbox/animations/LetterboxAnimationHandler.kt +46 −39 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.view.SurfaceControl.Transaction import android.window.TransitionInfo import android.window.TransitionRequestInfo import android.window.WindowContainerTransaction import com.android.app.animation.Interpolators import com.android.internal.protolog.ProtoLog import com.android.window.flags.Flags.appCompatRefactoring import com.android.wm.shell.common.ShellExecutor Loading Loading @@ -57,8 +58,12 @@ class LetterboxAnimationHandler @Inject constructor( companion object { @JvmStatic private val TAG = "LetterboxAnimationHandler" @JvmStatic private val ANIMATION_DURATION_MS = 500L @JvmStatic private val ANIMATION_DURATION = 400L private val ANIMATION_INTERPOLATOR = Interpolators.EMPHASIZED } private var boundsAnimator: ValueAnimator? = null Loading Loading @@ -114,9 +119,10 @@ class LetterboxAnimationHandler @Inject constructor( finalX + startBounds.width(), finalY + startBounds.height() ) boundsAnimator = ValueAnimator.ofObject(rectEvaluator, startBounds, endBounds) .setDuration(ANIMATION_DURATION) boundsAnimator?.addListener(object : Animator.AnimatorListener { ValueAnimator.ofObject(rectEvaluator, startBounds, endBounds) .setDuration(ANIMATION_DURATION_MS).apply { setInterpolator { value -> ANIMATION_INTERPOLATOR.getInterpolation(value) } addListener(object : Animator.AnimatorListener { override fun onAnimationStart(animation: Animator) { } Loading @@ -132,9 +138,9 @@ class LetterboxAnimationHandler @Inject constructor( override fun onAnimationRepeat(animation: Animator) { } }) boundsAnimator?.addUpdateListener { animation -> addUpdateListener { animation -> val rect = animation.getAnimatedValue() as Rect animation.animatedValue as Rect for (c in info.changes) { tx.setPosition( Loading @@ -155,7 +161,8 @@ class LetterboxAnimationHandler @Inject constructor( for (c in info.changes) { tx.show(c.leash).apply() } boundsAnimator?.start() start() } } return true } Loading