Rename LaunchAnimator to cover transitions in general.
Soon it will be used for both launches and returns, so this name is
more accurate.
Bug: 323863002
Flag: NA
Test: still builds (no functionality change)
Change-Id: Icc5bcb5ed9df63a620c51a430063d5246b1e3ae5
diff --git a/packages/SystemUI/animation/src/com/android/systemui/animation/ActivityLaunchAnimator.kt b/packages/SystemUI/animation/src/com/android/systemui/animation/ActivityLaunchAnimator.kt
index 8194055..4973caf 100644
--- a/packages/SystemUI/animation/src/com/android/systemui/animation/ActivityLaunchAnimator.kt
+++ b/packages/SystemUI/animation/src/com/android/systemui/animation/ActivityLaunchAnimator.kt
@@ -53,12 +53,12 @@
*/
class ActivityLaunchAnimator(
/** The animator used when animating a View into an app. */
- private val launchAnimator: LaunchAnimator = DEFAULT_LAUNCH_ANIMATOR,
+ private val transitionAnimator: TransitionAnimator = DEFAULT_TRANSITION_ANIMATOR,
/** The animator used when animating a Dialog into an app. */
// TODO(b/218989950): Remove this animator and instead set the duration of the dim fade out to
// TIMINGS.contentBeforeFadeOutDuration.
- private val dialogToAppAnimator: LaunchAnimator = DEFAULT_DIALOG_TO_APP_ANIMATOR,
+ private val dialogToAppAnimator: TransitionAnimator = DEFAULT_DIALOG_TO_APP_ANIMATOR,
/**
* Whether we should disable the WindowManager timeout. This should be set to true in tests
@@ -71,7 +71,7 @@
/** The timings when animating a View into an app. */
@JvmField
val TIMINGS =
- LaunchAnimator.Timings(
+ TransitionAnimator.Timings(
totalDuration = 500L,
contentBeforeFadeOutDelay = 0L,
contentBeforeFadeOutDuration = 150L,
@@ -89,7 +89,7 @@
/** The interpolators when animating a View or a dialog into an app. */
val INTERPOLATORS =
- LaunchAnimator.Interpolators(
+ TransitionAnimator.Interpolators(
positionInterpolator = Interpolators.EMPHASIZED,
positionXInterpolator = Interpolators.EMPHASIZED_COMPLEMENT,
contentBeforeFadeOutInterpolator = Interpolators.LINEAR_OUT_SLOW_IN,
@@ -99,8 +99,9 @@
// TODO(b/288507023): Remove this flag.
@JvmField val DEBUG_LAUNCH_ANIMATION = Build.IS_DEBUGGABLE
- private val DEFAULT_LAUNCH_ANIMATOR = LaunchAnimator(TIMINGS, INTERPOLATORS)
- private val DEFAULT_DIALOG_TO_APP_ANIMATOR = LaunchAnimator(DIALOG_TIMINGS, INTERPOLATORS)
+ private val DEFAULT_TRANSITION_ANIMATOR = TransitionAnimator(TIMINGS, INTERPOLATORS)
+ private val DEFAULT_DIALOG_TO_APP_ANIMATOR =
+ TransitionAnimator(DIALOG_TIMINGS, INTERPOLATORS)
/** Durations & interpolators for the navigation bar fading in & out. */
private const val ANIMATION_DURATION_NAV_FADE_IN = 266L
@@ -154,7 +155,7 @@
* Start an intent and animate the opening window. The intent will be started by running
* [intentStarter], which should use the provided [RemoteAnimationAdapter] and return the launch
* result. [controller] is responsible from animating the view from which the intent was started
- * in [Controller.onLaunchAnimationProgress]. No animation will start if there is no window
+ * in [Controller.onTransitionAnimationProgress]. No animation will start if there is no window
* opening.
*
* If [controller] is null or [animate] is false, then the intent will be started and no
@@ -255,7 +256,7 @@
private fun Controller.callOnIntentStartedOnMainThread(willAnimate: Boolean) {
if (Looper.myLooper() != Looper.getMainLooper()) {
- this.launchContainer.context.mainExecutor.execute {
+ this.transitionContainer.context.mainExecutor.execute {
callOnIntentStartedOnMainThread(willAnimate)
}
} else {
@@ -306,14 +307,14 @@
@VisibleForTesting
fun createRunner(controller: Controller): Runner {
// Make sure we use the modified timings when animating a dialog into an app.
- val launchAnimator =
+ val transitionAnimator =
if (controller.isDialogLaunch) {
dialogToAppAnimator
} else {
- launchAnimator
+ transitionAnimator
}
- return Runner(controller, callback!!, launchAnimator, lifecycleListener)
+ return Runner(controller, callback!!, transitionAnimator, lifecycleListener)
}
interface PendingIntentStarter {
@@ -364,7 +365,7 @@
*
* Note that all callbacks (onXXX methods) are all called on the main thread.
*/
- interface Controller : LaunchAnimator.Controller {
+ interface Controller : TransitionAnimator.Controller {
companion object {
/**
* Return a [Controller] that will animate and expand [view] into the opening window.
@@ -427,9 +428,9 @@
fun onIntentStarted(willAnimate: Boolean) {}
/**
- * The animation was cancelled. Note that [onLaunchAnimationEnd] will still be called after
- * this if the animation was already started, i.e. if [onLaunchAnimationStart] was called
- * before the cancellation.
+ * The animation was cancelled. Note that [onTransitionAnimationEnd] will still be called
+ * after this if the animation was already started, i.e. if [onTransitionAnimationStart] was
+ * called before the cancellation.
*
* If this launch animation affected the occlusion state of the keyguard, WM will provide us
* with [newKeyguardOccludedState] so that we can set the occluded state appropriately.
@@ -475,11 +476,11 @@
controller: Controller,
callback: Callback,
/** The animator to use to animate the window launch. */
- launchAnimator: LaunchAnimator = DEFAULT_LAUNCH_ANIMATOR,
+ transitionAnimator: TransitionAnimator = DEFAULT_TRANSITION_ANIMATOR,
/** Listener for animation lifecycle events. */
listener: Listener? = null
) : IRemoteAnimationRunner.Stub() {
- private val context = controller.launchContainer.context
+ private val context = controller.transitionContainer.context
// This is being passed across IPC boundaries and cycles (through PendingIntentRecords,
// etc.) are possible. So we need to make sure we drop any references that might
@@ -492,7 +493,7 @@
controller,
callback,
DelegatingAnimationCompletionListener(listener, this::dispose),
- launchAnimator,
+ transitionAnimator,
disableWmTimeout
)
}
@@ -543,7 +544,7 @@
/** Listener for animation lifecycle events. */
private val listener: Listener? = null,
/** The animator to use to animate the window launch. */
- private val launchAnimator: LaunchAnimator = DEFAULT_LAUNCH_ANIMATOR,
+ private val transitionAnimator: TransitionAnimator = DEFAULT_TRANSITION_ANIMATOR,
/**
* Whether we should disable the WindowManager timeout. This should be set to true in tests
@@ -552,10 +553,10 @@
// TODO(b/301385865): Remove this flag.
disableWmTimeout: Boolean = false,
) : RemoteAnimationDelegate<IRemoteAnimationFinishedCallback> {
- private val launchContainer = controller.launchContainer
- private val context = launchContainer.context
+ private val transitionContainer = controller.transitionContainer
+ private val context = transitionContainer.context
private val transactionApplierView =
- controller.openingWindowSyncView ?: controller.launchContainer
+ controller.openingWindowSyncView ?: controller.transitionContainer
private val transactionApplier = SyncRtSurfaceTransactionApplier(transactionApplierView)
private val timeoutHandler =
if (!disableWmTimeout) {
@@ -570,7 +571,7 @@
private var windowCropF = RectF()
private var timedOut = false
private var cancelled = false
- private var animation: LaunchAnimator.Animation? = null
+ private var animation: TransitionAnimator.Animation? = null
/**
* A timeout to cancel the launch animation if the remote animation is not started or
@@ -660,7 +661,7 @@
nonApps: Array<out RemoteAnimationTarget>?,
iCallback: IRemoteAnimationFinishedCallback?
) {
- if (LaunchAnimator.DEBUG) {
+ if (TransitionAnimator.DEBUG) {
Log.d(TAG, "Remote animation started")
}
@@ -687,7 +688,7 @@
val windowBounds = window.screenSpaceBounds
val endState =
- LaunchAnimator.State(
+ TransitionAnimator.State(
top = windowBounds.top,
bottom = windowBounds.bottom,
left = windowBounds.left,
@@ -699,7 +700,7 @@
// TODO(b/184121838): We should somehow get the top and bottom radius of the window
// instead of recomputing isExpandingFullyAbove here.
val isExpandingFullyAbove =
- launchAnimator.isExpandingFullyAbove(controller.launchContainer, endState)
+ transitionAnimator.isExpandingFullyAbove(controller.transitionContainer, endState)
val endRadius =
if (isExpandingFullyAbove) {
// Most of the time, expanding fully above the root view means expanding in full
@@ -718,7 +719,7 @@
val delegate = this.controller
val controller =
object : Controller by delegate {
- override fun onLaunchAnimationStart(isExpandingFullyAbove: Boolean) {
+ override fun onTransitionAnimationStart(isExpandingFullyAbove: Boolean) {
listener?.onLaunchAnimationStart()
if (DEBUG_LAUNCH_ANIMATION) {
@@ -728,10 +729,10 @@
"$isExpandingFullyAbove) [controller=$delegate]"
)
}
- delegate.onLaunchAnimationStart(isExpandingFullyAbove)
+ delegate.onTransitionAnimationStart(isExpandingFullyAbove)
}
- override fun onLaunchAnimationEnd(isExpandingFullyAbove: Boolean) {
+ override fun onTransitionAnimationEnd(isExpandingFullyAbove: Boolean) {
listener?.onLaunchAnimationEnd()
iCallback?.invoke()
@@ -742,11 +743,11 @@
"$isExpandingFullyAbove) [controller=$delegate]"
)
}
- delegate.onLaunchAnimationEnd(isExpandingFullyAbove)
+ delegate.onTransitionAnimationEnd(isExpandingFullyAbove)
}
- override fun onLaunchAnimationProgress(
- state: LaunchAnimator.State,
+ override fun onTransitionAnimationProgress(
+ state: TransitionAnimator.State,
progress: Float,
linearProgress: Float
) {
@@ -758,12 +759,12 @@
navigationBar?.let { applyStateToNavigationBar(it, state, linearProgress) }
listener?.onLaunchAnimationProgress(linearProgress)
- delegate.onLaunchAnimationProgress(state, progress, linearProgress)
+ delegate.onTransitionAnimationProgress(state, progress, linearProgress)
}
}
animation =
- launchAnimator.startAnimation(
+ transitionAnimator.startAnimation(
controller,
endState,
windowBackgroundColor,
@@ -774,7 +775,7 @@
private fun applyStateToWindow(
window: RemoteAnimationTarget,
- state: LaunchAnimator.State,
+ state: TransitionAnimator.State,
linearProgress: Float,
) {
if (transactionApplierView.viewRootImpl == null || !window.leash.isValid) {
@@ -825,7 +826,7 @@
val alpha =
if (controller.isBelowAnimatingWindow) {
val windowProgress =
- LaunchAnimator.getProgress(
+ TransitionAnimator.getProgress(
TIMINGS,
linearProgress,
TIMINGS.contentAfterFadeInDelay,
@@ -857,7 +858,7 @@
private fun applyStateToNavigationBar(
navigationBar: RemoteAnimationTarget,
- state: LaunchAnimator.State,
+ state: TransitionAnimator.State,
linearProgress: Float
) {
if (transactionApplierView.viewRootImpl == null || !navigationBar.leash.isValid) {
@@ -868,7 +869,7 @@
}
val fadeInProgress =
- LaunchAnimator.getProgress(
+ TransitionAnimator.getProgress(
TIMINGS,
linearProgress,
ANIMATION_DELAY_NAV_FADE_IN,
@@ -890,7 +891,7 @@
.withVisibility(true)
} else {
val fadeOutProgress =
- LaunchAnimator.getProgress(
+ TransitionAnimator.getProgress(
TIMINGS,
linearProgress,
0,
diff --git a/packages/SystemUI/animation/src/com/android/systemui/animation/DialogLaunchAnimator.kt b/packages/SystemUI/animation/src/com/android/systemui/animation/DialogLaunchAnimator.kt
index 168039e..9a36960 100644
--- a/packages/SystemUI/animation/src/com/android/systemui/animation/DialogLaunchAnimator.kt
+++ b/packages/SystemUI/animation/src/com/android/systemui/animation/DialogLaunchAnimator.kt
@@ -58,7 +58,7 @@
private val callback: Callback,
private val interactionJankMonitor: InteractionJankMonitor,
private val featureFlags: AnimationFeatureFlags,
- private val launchAnimator: LaunchAnimator = LaunchAnimator(TIMINGS, INTERPOLATORS),
+ private val transitionAnimator: TransitionAnimator = TransitionAnimator(TIMINGS, INTERPOLATORS),
private val isForTesting: Boolean = false,
) {
private companion object {
@@ -108,21 +108,21 @@
fun stopDrawingInOverlay()
/**
- * Create the [LaunchAnimator.Controller] that will be called to animate the source
+ * Create the [TransitionAnimator.Controller] that will be called to animate the source
* controlled by this [Controller] during the dialog launch animation.
*
* At the end of this animation, the source should *not* be visible anymore (until the
* dialog is closed and is animated back into the source).
*/
- fun createLaunchController(): LaunchAnimator.Controller
+ fun createTransitionController(): TransitionAnimator.Controller
/**
- * Create the [LaunchAnimator.Controller] that will be called to animate the source
+ * Create the [TransitionAnimator.Controller] that will be called to animate the source
* controlled by this [Controller] during the dialog exit animation.
*
* At the end of this animation, the source should be visible again.
*/
- fun createExitController(): LaunchAnimator.Controller
+ fun createExitController(): TransitionAnimator.Controller
/**
* Whether we should animate the dialog back into the source when it is dismissed. If this
@@ -270,7 +270,7 @@
val animatedDialog =
AnimatedDialog(
- launchAnimator = launchAnimator,
+ transitionAnimator = transitionAnimator,
callback = callback,
interactionJankMonitor = interactionJankMonitor,
controller = controller,
@@ -406,8 +406,8 @@
dialog.dismiss()
}
- override fun onLaunchAnimationStart(isExpandingFullyAbove: Boolean) {
- controller.onLaunchAnimationStart(isExpandingFullyAbove)
+ override fun onTransitionAnimationStart(isExpandingFullyAbove: Boolean) {
+ controller.onTransitionAnimationStart(isExpandingFullyAbove)
// Make sure the dialog is not dismissed during the animation.
disableDialogDismiss()
@@ -420,8 +420,8 @@
dialog.window?.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND)
}
- override fun onLaunchAnimationEnd(isExpandingFullyAbove: Boolean) {
- controller.onLaunchAnimationEnd(isExpandingFullyAbove)
+ override fun onTransitionAnimationEnd(isExpandingFullyAbove: Boolean) {
+ controller.onTransitionAnimationEnd(isExpandingFullyAbove)
// Hide the dialog then dismiss it to instantly dismiss it without playing the
// animation.
@@ -492,7 +492,7 @@
data class DialogCuj(@CujType val cujType: Int, val tag: String? = null)
private class AnimatedDialog(
- private val launchAnimator: LaunchAnimator,
+ private val transitionAnimator: TransitionAnimator,
private val callback: DialogLaunchAnimator.Callback,
private val interactionJankMonitor: InteractionJankMonitor,
@@ -892,7 +892,7 @@
// Create 2 controllers to animate both the dialog and the source.
val startController =
if (isLaunching) {
- controller.createLaunchController()
+ controller.createTransitionController()
} else {
GhostedViewLaunchAnimatorController(dialogContentWithBackground!!)
}
@@ -902,34 +902,34 @@
} else {
controller.createExitController()
}
- startController.launchContainer = decorView
- endController.launchContainer = decorView
+ startController.transitionContainer = decorView
+ endController.transitionContainer = decorView
val endState = endController.createAnimatorState()
val controller =
- object : LaunchAnimator.Controller {
- override var launchContainer: ViewGroup
- get() = startController.launchContainer
+ object : TransitionAnimator.Controller {
+ override var transitionContainer: ViewGroup
+ get() = startController.transitionContainer
set(value) {
- startController.launchContainer = value
- endController.launchContainer = value
+ startController.transitionContainer = value
+ endController.transitionContainer = value
}
- override fun createAnimatorState(): LaunchAnimator.State {
+ override fun createAnimatorState(): TransitionAnimator.State {
return startController.createAnimatorState()
}
- override fun onLaunchAnimationStart(isExpandingFullyAbove: Boolean) {
+ override fun onTransitionAnimationStart(isExpandingFullyAbove: Boolean) {
// During launch, onLaunchAnimationStart will be used to remove the temporary
// touch surface ghost so it is important to call this before calling
// onLaunchAnimationStart on the controller (which will create its own ghost).
onLaunchAnimationStart()
- startController.onLaunchAnimationStart(isExpandingFullyAbove)
- endController.onLaunchAnimationStart(isExpandingFullyAbove)
+ startController.onTransitionAnimationStart(isExpandingFullyAbove)
+ endController.onTransitionAnimationStart(isExpandingFullyAbove)
}
- override fun onLaunchAnimationEnd(isExpandingFullyAbove: Boolean) {
+ override fun onTransitionAnimationEnd(isExpandingFullyAbove: Boolean) {
// onLaunchAnimationEnd is called by an Animator at the end of the animation,
// on a Choreographer animation tick. The following calls will move the animated
// content from the dialog overlay back to its original position, and this
@@ -943,23 +943,23 @@
// that the move of the content back to its original window will be reflected in
// the next frame right after [onLaunchAnimationEnd] is called.
dialog.context.mainExecutor.execute {
- startController.onLaunchAnimationEnd(isExpandingFullyAbove)
- endController.onLaunchAnimationEnd(isExpandingFullyAbove)
+ startController.onTransitionAnimationEnd(isExpandingFullyAbove)
+ endController.onTransitionAnimationEnd(isExpandingFullyAbove)
onLaunchAnimationEnd()
}
}
- override fun onLaunchAnimationProgress(
- state: LaunchAnimator.State,
+ override fun onTransitionAnimationProgress(
+ state: TransitionAnimator.State,
progress: Float,
linearProgress: Float
) {
- startController.onLaunchAnimationProgress(state, progress, linearProgress)
+ startController.onTransitionAnimationProgress(state, progress, linearProgress)
// The end view is visible only iff the starting view is not visible.
state.visible = !state.visible
- endController.onLaunchAnimationProgress(state, progress, linearProgress)
+ endController.onTransitionAnimationProgress(state, progress, linearProgress)
// If the dialog content is complex, its dimension might change during the
// launch animation. The animation end position might also change during the
@@ -973,7 +973,7 @@
}
}
- launchAnimator.startAnimation(controller, endState, originalDialogBackgroundColor)
+ transitionAnimator.startAnimation(controller, endState, originalDialogBackgroundColor)
}
private fun shouldAnimateDialogIntoSource(): Boolean {
diff --git a/packages/SystemUI/animation/src/com/android/systemui/animation/GhostedViewLaunchAnimatorController.kt b/packages/SystemUI/animation/src/com/android/systemui/animation/GhostedViewLaunchAnimatorController.kt
index 055252b..03f10f9 100644
--- a/packages/SystemUI/animation/src/com/android/systemui/animation/GhostedViewLaunchAnimatorController.kt
+++ b/packages/SystemUI/animation/src/com/android/systemui/animation/GhostedViewLaunchAnimatorController.kt
@@ -66,11 +66,11 @@
) : ActivityLaunchAnimator.Controller {
/** The container to which we will add the ghost view and expanding background. */
- override var launchContainer = ghostedView.rootView as ViewGroup
- private val launchContainerOverlay: ViewGroupOverlay
- get() = launchContainer.overlay
+ override var transitionContainer = ghostedView.rootView as ViewGroup
+ private val transitionContainerOverlay: ViewGroupOverlay
+ get() = transitionContainer.overlay
- private val launchContainerLocation = IntArray(2)
+ private val transitionContainerLocation = IntArray(2)
/** The ghost view that is drawn and animated instead of the ghosted view. */
private var ghostView: GhostView? = null
@@ -78,8 +78,8 @@
private val ghostViewMatrix = Matrix()
/**
- * The expanding background view that will be added to [launchContainer] (below [ghostView]) and
- * animate.
+ * The expanding background view that will be added to [transitionContainer] (below [ghostView])
+ * and animate.
*/
private var backgroundView: FrameLayout? = null
@@ -92,7 +92,7 @@
private var startBackgroundAlpha: Int = 0xFF
private val ghostedViewLocation = IntArray(2)
- private val ghostedViewState = LaunchAnimator.State()
+ private val ghostedViewState = TransitionAnimator.State()
/**
* The background of the [ghostedView]. This background will be used to draw the background of
@@ -175,9 +175,9 @@
return radius * ghostedView.scaleX
}
- override fun createAnimatorState(): LaunchAnimator.State {
+ override fun createAnimatorState(): TransitionAnimator.State {
val state =
- LaunchAnimator.State(
+ TransitionAnimator.State(
topCornerRadius = getCurrentTopCornerRadius(),
bottomCornerRadius = getCurrentBottomCornerRadius()
)
@@ -185,7 +185,7 @@
return state
}
- fun fillGhostedViewState(state: LaunchAnimator.State) {
+ fun fillGhostedViewState(state: TransitionAnimator.State) {
// For the animation we are interested in the area that has a non transparent background,
// so we have to take the optical insets into account.
ghostedView.getLocationOnScreen(ghostedViewLocation)
@@ -200,7 +200,7 @@
insets.right
}
- override fun onLaunchAnimationStart(isExpandingFullyAbove: Boolean) {
+ override fun onTransitionAnimationStart(isExpandingFullyAbove: Boolean) {
if (ghostedView.parent !is ViewGroup) {
// This should usually not happen, but let's make sure we don't crash if the view was
// detached right before we started the animation.
@@ -209,7 +209,7 @@
}
backgroundView =
- FrameLayout(launchContainer.context).also { launchContainerOverlay.add(it) }
+ FrameLayout(transitionContainer.context).also { transitionContainerOverlay.add(it) }
// We wrap the ghosted view background and use it to draw the expandable background. Its
// alpha will be set to 0 as soon as we start drawing the expanding background.
@@ -225,7 +225,7 @@
// Create a ghost of the view that will be moving and fading out. This allows to fade out
// the content before fading out the background.
- ghostView = GhostView.addGhost(ghostedView, launchContainer)
+ ghostView = GhostView.addGhost(ghostedView, transitionContainer)
// [GhostView.addGhost], the result of which is our [ghostView], creates a [GhostView], and
// adds it first to a [FrameLayout] container. It then adds _that_ container to an
@@ -244,8 +244,8 @@
cujType?.let { interactionJankMonitor.begin(ghostedView, it) }
}
- override fun onLaunchAnimationProgress(
- state: LaunchAnimator.State,
+ override fun onTransitionAnimationProgress(
+ state: TransitionAnimator.State,
progress: Float,
linearProgress: Float
) {
@@ -287,15 +287,15 @@
if (ghostedView.parent is ViewGroup) {
// Recalculate the matrix in case the ghosted view moved. We ensure that the ghosted
// view is still attached to a ViewGroup, otherwise calculateMatrix will throw.
- GhostView.calculateMatrix(ghostedView, launchContainer, ghostViewMatrix)
+ GhostView.calculateMatrix(ghostedView, transitionContainer, ghostViewMatrix)
}
- launchContainer.getLocationOnScreen(launchContainerLocation)
+ transitionContainer.getLocationOnScreen(transitionContainerLocation)
ghostViewMatrix.postScale(
scale,
scale,
- ghostedViewState.centerX - launchContainerLocation[0],
- ghostedViewState.centerY - launchContainerLocation[1]
+ ghostedViewState.centerX - transitionContainerLocation[0],
+ ghostedViewState.centerY - transitionContainerLocation[1]
)
ghostViewMatrix.postTranslate(
(leftChange + rightChange) / 2f,
@@ -310,10 +310,10 @@
val rightWithInsets = state.right + insets.right
val bottomWithInsets = state.bottom + insets.bottom
- backgroundView.top = topWithInsets - launchContainerLocation[1]
- backgroundView.bottom = bottomWithInsets - launchContainerLocation[1]
- backgroundView.left = leftWithInsets - launchContainerLocation[0]
- backgroundView.right = rightWithInsets - launchContainerLocation[0]
+ backgroundView.top = topWithInsets - transitionContainerLocation[1]
+ backgroundView.bottom = bottomWithInsets - transitionContainerLocation[1]
+ backgroundView.left = leftWithInsets - transitionContainerLocation[0]
+ backgroundView.right = rightWithInsets - transitionContainerLocation[0]
val backgroundDrawable = backgroundDrawable!!
backgroundDrawable.wrapped?.let {
@@ -321,7 +321,7 @@
}
}
- override fun onLaunchAnimationEnd(isExpandingFullyAbove: Boolean) {
+ override fun onTransitionAnimationEnd(isExpandingFullyAbove: Boolean) {
if (ghostView == null) {
// We didn't actually run the animation.
return
@@ -332,7 +332,7 @@
backgroundDrawable?.wrapped?.alpha = startBackgroundAlpha
GhostView.removeGhost(ghostedView)
- backgroundView?.let { launchContainerOverlay.remove(it) }
+ backgroundView?.let { transitionContainerOverlay.remove(it) }
if (ghostedView is LaunchableView) {
// Restore the ghosted view visibility.
diff --git a/packages/SystemUI/animation/src/com/android/systemui/animation/LaunchAnimator.kt b/packages/SystemUI/animation/src/com/android/systemui/animation/TransitionAnimator.kt
similarity index 79%
rename from packages/SystemUI/animation/src/com/android/systemui/animation/LaunchAnimator.kt
rename to packages/SystemUI/animation/src/com/android/systemui/animation/TransitionAnimator.kt
index d6eba2e..5e4276c 100644
--- a/packages/SystemUI/animation/src/com/android/systemui/animation/LaunchAnimator.kt
+++ b/packages/SystemUI/animation/src/com/android/systemui/animation/TransitionAnimator.kt
@@ -31,17 +31,18 @@
import com.android.app.animation.Interpolators.LINEAR
import kotlin.math.roundToInt
-private const val TAG = "LaunchAnimator"
+private const val TAG = "TransitionAnimator"
-/** A base class to animate a window launch (activity or dialog) from a view . */
-class LaunchAnimator(private val timings: Timings, private val interpolators: Interpolators) {
+/** A base class to animate a window (activity or dialog) launch to or return from a view . */
+class TransitionAnimator(private val timings: Timings, private val interpolators: Interpolators) {
companion object {
internal const val DEBUG = false
private val SRC_MODE = PorterDuffXfermode(PorterDuff.Mode.SRC)
/**
- * Given the [linearProgress] of a launch animation, return the linear progress of the
- * sub-animation starting [delay] ms after the launch animation and that lasts [duration].
+ * Given the [linearProgress] of a transition animation, return the linear progress of the
+ * sub-animation starting [delay] ms after the transition animation and that lasts
+ * [duration].
*/
@JvmStatic
fun getProgress(
@@ -58,7 +59,7 @@
}
}
- private val launchContainerLocation = IntArray(2)
+ private val transitionContainerLocation = IntArray(2)
private val cornerRadii = FloatArray(8)
/**
@@ -73,7 +74,7 @@
*
* This will be used to:
* - Get the associated [Context].
- * - Compute whether we are expanding fully above the launch container.
+ * - Compute whether we are expanding fully above the transition container.
* - Get to overlay to which we initially put the window background layer, until the opening
* window is made visible (see [openingWindowSyncView]).
*
@@ -81,7 +82,7 @@
* inside a different location, for instance to ensure correct layering during the
* animation.
*/
- var launchContainer: ViewGroup
+ var transitionContainer: ViewGroup
/**
* The [View] with which the opening app window should be synchronized with once it starts
@@ -90,7 +91,7 @@
* We will also move the window background layer to this view's overlay once the opening
* window is visible.
*
- * If null, this will default to [launchContainer].
+ * If null, this will default to [transitionContainer].
*/
val openingWindowSyncView: View?
get() = null
@@ -99,7 +100,7 @@
* Return the [State] of the view that will be animated. We will animate from this state to
* the final window state.
*
- * Note: This state will be mutated and passed to [onLaunchAnimationProgress] during the
+ * Note: This state will be mutated and passed to [onTransitionAnimationProgress] during the
* animation.
*/
fun createAnimatorState(): State
@@ -107,22 +108,22 @@
/**
* The animation started. This is typically used to initialize any additional resource
* needed for the animation. [isExpandingFullyAbove] will be true if the window is expanding
- * fully above the [launchContainer].
+ * fully above the [transitionContainer].
*/
- fun onLaunchAnimationStart(isExpandingFullyAbove: Boolean) {}
+ fun onTransitionAnimationStart(isExpandingFullyAbove: Boolean) {}
/** The animation made progress and the expandable view [state] should be updated. */
- fun onLaunchAnimationProgress(state: State, progress: Float, linearProgress: Float) {}
+ fun onTransitionAnimationProgress(state: State, progress: Float, linearProgress: Float) {}
/**
- * The animation ended. This will be called *if and only if* [onLaunchAnimationStart] was
- * called previously. This is typically used to clean up the resources initialized when the
- * animation was started.
+ * The animation ended. This will be called *if and only if* [onTransitionAnimationStart]
+ * was called previously. This is typically used to clean up the resources initialized when
+ * the animation was started.
*/
- fun onLaunchAnimationEnd(isExpandingFullyAbove: Boolean) {}
+ fun onTransitionAnimationEnd(isExpandingFullyAbove: Boolean) {}
}
- /** The state of an expandable view during a [LaunchAnimator] animation. */
+ /** The state of an expandable view during a [TransitionAnimator] animation. */
open class State(
/** The position of the view in screen space coordinates. */
var top: Int = 0,
@@ -198,13 +199,13 @@
)
/**
- * Start a launch animation controlled by [controller] towards [endState]. An intermediary layer
- * with [windowBackgroundColor] will fade in then (optionally) fade out above the expanding
- * view, and should be the same background color as the opening (or closing) window.
+ * Start a transition animation controlled by [controller] towards [endState]. An intermediary
+ * layer with [windowBackgroundColor] will fade in then (optionally) fade out above the
+ * expanding view, and should be the same background color as the opening (or closing) window.
*
* If [fadeOutWindowBackgroundLayer] is true, then this intermediary layer will fade out during
* the second half of the animation, and will have SRC blending mode (ultimately punching a hole
- * in the [launch container][Controller.launchContainer]) iff [drawHole] is true.
+ * in the [transition container][Controller.transitionContainer]) iff [drawHole] is true.
*/
fun startAnimation(
controller: Controller,
@@ -251,13 +252,13 @@
}
}
- val launchContainer = controller.launchContainer
- val isExpandingFullyAbove = isExpandingFullyAbove(launchContainer, endState)
+ val transitionContainer = controller.transitionContainer
+ val isExpandingFullyAbove = isExpandingFullyAbove(transitionContainer, endState)
// We add an extra layer with the same color as the dialog/app splash screen background
// color, which is usually the same color of the app background. We first fade in this layer
// to hide the expanding view, then we fade it out with SRC mode to draw a hole in the
- // launch container and reveal the opening window.
+ // transition container and reveal the opening window.
val windowBackgroundLayer =
GradientDrawable().apply {
setColor(windowBackgroundColor)
@@ -275,9 +276,9 @@
val openingWindowSyncViewOverlay = openingWindowSyncView?.overlay
val moveBackgroundLayerWhenAppIsVisible =
openingWindowSyncView != null &&
- openingWindowSyncView.viewRootImpl != controller.launchContainer.viewRootImpl
+ openingWindowSyncView.viewRootImpl != controller.transitionContainer.viewRootImpl
- val launchContainerOverlay = launchContainer.overlay
+ val transitionContainerOverlay = transitionContainer.overlay
var cancelled = false
var movedBackgroundLayer = false
@@ -287,20 +288,20 @@
if (DEBUG) {
Log.d(TAG, "Animation started")
}
- controller.onLaunchAnimationStart(isExpandingFullyAbove)
+ controller.onTransitionAnimationStart(isExpandingFullyAbove)
- // Add the drawable to the launch container overlay. Overlays always draw
+ // Add the drawable to the transition container overlay. Overlays always draw
// drawables after views, so we know that it will be drawn above any view added
// by the controller.
- launchContainerOverlay.add(windowBackgroundLayer)
+ transitionContainerOverlay.add(windowBackgroundLayer)
}
override fun onAnimationEnd(animation: Animator) {
if (DEBUG) {
Log.d(TAG, "Animation ended")
}
- controller.onLaunchAnimationEnd(isExpandingFullyAbove)
- launchContainerOverlay.remove(windowBackgroundLayer)
+ controller.onTransitionAnimationEnd(isExpandingFullyAbove)
+ transitionContainerOverlay.remove(windowBackgroundLayer)
if (moveBackgroundLayerWhenAppIsVisible) {
openingWindowSyncViewOverlay?.remove(windowBackgroundLayer)
@@ -353,17 +354,21 @@
// in its new container.
movedBackgroundLayer = true
- launchContainerOverlay.remove(windowBackgroundLayer)
+ transitionContainerOverlay.remove(windowBackgroundLayer)
openingWindowSyncViewOverlay!!.add(windowBackgroundLayer)
- ViewRootSync.synchronizeNextDraw(launchContainer, openingWindowSyncView, then = {})
+ ViewRootSync.synchronizeNextDraw(
+ transitionContainer,
+ openingWindowSyncView,
+ then = {}
+ )
}
val container =
if (movedBackgroundLayer) {
openingWindowSyncView!!
} else {
- controller.launchContainer
+ controller.transitionContainer
}
applyStateToWindowBackgroundLayer(
@@ -374,7 +379,7 @@
fadeOutWindowBackgroundLayer,
drawHole
)
- controller.onLaunchAnimationProgress(state, progress, linearProgress)
+ controller.onTransitionAnimationProgress(state, progress, linearProgress)
}
animator.start()
@@ -386,30 +391,30 @@
}
}
- /** Return whether we are expanding fully above the [launchContainer]. */
- internal fun isExpandingFullyAbove(launchContainer: View, endState: State): Boolean {
- launchContainer.getLocationOnScreen(launchContainerLocation)
- return endState.top <= launchContainerLocation[1] &&
- endState.bottom >= launchContainerLocation[1] + launchContainer.height &&
- endState.left <= launchContainerLocation[0] &&
- endState.right >= launchContainerLocation[0] + launchContainer.width
+ /** Return whether we are expanding fully above the [transitionContainer]. */
+ internal fun isExpandingFullyAbove(transitionContainer: View, endState: State): Boolean {
+ transitionContainer.getLocationOnScreen(transitionContainerLocation)
+ return endState.top <= transitionContainerLocation[1] &&
+ endState.bottom >= transitionContainerLocation[1] + transitionContainer.height &&
+ endState.left <= transitionContainerLocation[0] &&
+ endState.right >= transitionContainerLocation[0] + transitionContainer.width
}
private fun applyStateToWindowBackgroundLayer(
drawable: GradientDrawable,
state: State,
linearProgress: Float,
- launchContainer: View,
+ transitionContainer: View,
fadeOutWindowBackgroundLayer: Boolean,
drawHole: Boolean
) {
// Update position.
- launchContainer.getLocationOnScreen(launchContainerLocation)
+ transitionContainer.getLocationOnScreen(transitionContainerLocation)
drawable.setBounds(
- state.left - launchContainerLocation[0],
- state.top - launchContainerLocation[1],
- state.right - launchContainerLocation[0],
- state.bottom - launchContainerLocation[1]
+ state.left - transitionContainerLocation[0],
+ state.top - transitionContainerLocation[1],
+ state.right - transitionContainerLocation[0],
+ state.bottom - transitionContainerLocation[1]
)
// Update radius.
diff --git a/packages/SystemUI/animation/src/com/android/systemui/animation/ViewDialogLaunchAnimatorController.kt b/packages/SystemUI/animation/src/com/android/systemui/animation/ViewDialogLaunchAnimatorController.kt
index 1290f00..e2a29ab 100644
--- a/packages/SystemUI/animation/src/com/android/systemui/animation/ViewDialogLaunchAnimatorController.kt
+++ b/packages/SystemUI/animation/src/com/android/systemui/animation/ViewDialogLaunchAnimatorController.kt
@@ -68,19 +68,19 @@
}
}
- override fun createLaunchController(): LaunchAnimator.Controller {
+ override fun createTransitionController(): TransitionAnimator.Controller {
val delegate = GhostedViewLaunchAnimatorController(source)
- return object : LaunchAnimator.Controller by delegate {
- override fun onLaunchAnimationStart(isExpandingFullyAbove: Boolean) {
+ return object : TransitionAnimator.Controller by delegate {
+ override fun onTransitionAnimationStart(isExpandingFullyAbove: Boolean) {
// Remove the temporary ghost added by [startDrawingInOverlayOf]. Another
// ghost (that ghosts only the source content, and not its background) will
// be added right after this by the delegate and will be animated.
GhostView.removeGhost(source)
- delegate.onLaunchAnimationStart(isExpandingFullyAbove)
+ delegate.onTransitionAnimationStart(isExpandingFullyAbove)
}
- override fun onLaunchAnimationEnd(isExpandingFullyAbove: Boolean) {
- delegate.onLaunchAnimationEnd(isExpandingFullyAbove)
+ override fun onTransitionAnimationEnd(isExpandingFullyAbove: Boolean) {
+ delegate.onTransitionAnimationEnd(isExpandingFullyAbove)
// At this point the view visibility is restored by the delegate, so we delay the
// visibility changes again and make it invisible while the dialog is shown.
@@ -94,7 +94,7 @@
}
}
- override fun createExitController(): LaunchAnimator.Controller {
+ override fun createExitController(): TransitionAnimator.Controller {
return GhostedViewLaunchAnimatorController(source)
}
diff --git a/packages/SystemUI/compose/core/src/com/android/compose/animation/Expandable.kt b/packages/SystemUI/compose/core/src/com/android/compose/animation/Expandable.kt
index ac1ef15..8eb2f2e 100644
--- a/packages/SystemUI/compose/core/src/com/android/compose/animation/Expandable.kt
+++ b/packages/SystemUI/compose/core/src/com/android/compose/animation/Expandable.kt
@@ -75,7 +75,7 @@
import androidx.lifecycle.setViewTreeLifecycleOwner
import androidx.lifecycle.setViewTreeViewModelStoreOwner
import com.android.systemui.animation.Expandable
-import com.android.systemui.animation.LaunchAnimator
+import com.android.systemui.animation.TransitionAnimator
import kotlin.math.max
import kotlin.math.min
@@ -301,7 +301,7 @@
private fun AnimatedContentInOverlay(
color: Color,
sizeInOriginalLayout: Size,
- animatorState: State<LaunchAnimator.State?>,
+ animatorState: State<TransitionAnimator.State?>,
overlay: ViewGroupOverlay,
controller: ExpandableControllerImpl,
content: @Composable (Expandable) -> Unit,
@@ -407,7 +407,7 @@
internal fun measureAndLayoutComposeViewInOverlay(
view: View,
- state: LaunchAnimator.State,
+ state: TransitionAnimator.State,
) {
val exactWidth = state.width
val exactHeight = state.height
@@ -449,7 +449,7 @@
}
private fun ContentDrawScope.drawBackground(
- animatorState: LaunchAnimator.State,
+ animatorState: TransitionAnimator.State,
color: Color,
border: BorderStroke?,
) {
diff --git a/packages/SystemUI/compose/core/src/com/android/compose/animation/ExpandableController.kt b/packages/SystemUI/compose/core/src/com/android/compose/animation/ExpandableController.kt
index 0e7694e..1020263 100644
--- a/packages/SystemUI/compose/core/src/com/android/compose/animation/ExpandableController.kt
+++ b/packages/SystemUI/compose/core/src/com/android/compose/animation/ExpandableController.kt
@@ -44,7 +44,7 @@
import com.android.systemui.animation.DialogCuj
import com.android.systemui.animation.DialogLaunchAnimator
import com.android.systemui.animation.Expandable
-import com.android.systemui.animation.LaunchAnimator
+import com.android.systemui.animation.TransitionAnimator
import kotlin.math.roundToInt
/** A controller that can control animated launches from an [Expandable]. */
@@ -70,7 +70,7 @@
val layoutDirection = LocalLayoutDirection.current
// The current animation state, if we are currently animating a dialog or activity.
- val animatorState = remember { mutableStateOf<LaunchAnimator.State?>(null) }
+ val animatorState = remember { mutableStateOf<TransitionAnimator.State?>(null) }
// Whether a dialog controlled by this ExpandableController is currently showing.
val isDialogShowing = remember { mutableStateOf(false) }
@@ -123,7 +123,7 @@
internal val borderStroke: BorderStroke?,
internal val composeViewRoot: View,
internal val density: Density,
- internal val animatorState: MutableState<LaunchAnimator.State?>,
+ internal val animatorState: MutableState<TransitionAnimator.State?>,
internal val isDialogShowing: MutableState<Boolean>,
internal val overlay: MutableState<ViewGroupOverlay?>,
internal val currentComposeViewInOverlay: MutableState<View?>,
@@ -153,32 +153,32 @@
}
/**
- * Create a [LaunchAnimator.Controller] that is going to be used to drive an activity or dialog
- * animation. This controller will:
+ * Create a [TransitionAnimator.Controller] that is going to be used to drive an activity or
+ * dialog animation. This controller will:
* 1. Compute the start/end animation state using [boundsInComposeViewRoot] and the location of
* composeViewRoot on the screen.
* 2. Update [animatorState] with the current animation state if we are animating, or null
* otherwise.
*/
- private fun launchController(): LaunchAnimator.Controller {
- return object : LaunchAnimator.Controller {
+ private fun transitionController(): TransitionAnimator.Controller {
+ return object : TransitionAnimator.Controller {
private val rootLocationOnScreen = intArrayOf(0, 0)
- override var launchContainer: ViewGroup = composeViewRoot.rootView as ViewGroup
+ override var transitionContainer: ViewGroup = composeViewRoot.rootView as ViewGroup
- override fun onLaunchAnimationEnd(isExpandingFullyAbove: Boolean) {
+ override fun onTransitionAnimationEnd(isExpandingFullyAbove: Boolean) {
animatorState.value = null
}
- override fun onLaunchAnimationProgress(
- state: LaunchAnimator.State,
+ override fun onTransitionAnimationProgress(
+ state: TransitionAnimator.State,
progress: Float,
linearProgress: Float
) {
// We copy state given that it's always the same object that is mutated by
// ActivityLaunchAnimator.
animatorState.value =
- LaunchAnimator.State(
+ TransitionAnimator.State(
state.top,
state.bottom,
state.left,
@@ -195,7 +195,7 @@
}
}
- override fun createAnimatorState(): LaunchAnimator.State {
+ override fun createAnimatorState(): TransitionAnimator.State {
val boundsInRoot = boundsInComposeViewRoot.value
val outline =
shape.createOutline(
@@ -236,7 +236,7 @@
}
val rootLocation = rootLocationOnScreen()
- return LaunchAnimator.State(
+ return TransitionAnimator.State(
top = rootLocation.y.roundToInt(),
bottom = (rootLocation.y + boundsInRoot.height).roundToInt(),
left = rootLocation.x.roundToInt(),
@@ -258,17 +258,18 @@
/** Create an [ActivityLaunchAnimator.Controller] that can be used to animate activities. */
private fun activityController(cujType: Int?): ActivityLaunchAnimator.Controller {
- val delegate = launchController()
- return object : ActivityLaunchAnimator.Controller, LaunchAnimator.Controller by delegate {
- override fun onLaunchAnimationStart(isExpandingFullyAbove: Boolean) {
- delegate.onLaunchAnimationStart(isExpandingFullyAbove)
+ val delegate = transitionController()
+ return object :
+ ActivityLaunchAnimator.Controller, TransitionAnimator.Controller by delegate {
+ override fun onTransitionAnimationStart(isExpandingFullyAbove: Boolean) {
+ delegate.onTransitionAnimationStart(isExpandingFullyAbove)
overlay.value = composeViewRoot.rootView.overlay as ViewGroupOverlay
cujType?.let { InteractionJankMonitor.getInstance().begin(composeViewRoot, it) }
}
- override fun onLaunchAnimationEnd(isExpandingFullyAbove: Boolean) {
+ override fun onTransitionAnimationEnd(isExpandingFullyAbove: Boolean) {
cujType?.let { InteractionJankMonitor.getInstance().end(it) }
- delegate.onLaunchAnimationEnd(isExpandingFullyAbove)
+ delegate.onTransitionAnimationEnd(isExpandingFullyAbove)
overlay.value = null
}
}
@@ -293,11 +294,11 @@
}
}
- override fun createLaunchController(): LaunchAnimator.Controller {
- val delegate = launchController()
- return object : LaunchAnimator.Controller by delegate {
- override fun onLaunchAnimationEnd(isExpandingFullyAbove: Boolean) {
- delegate.onLaunchAnimationEnd(isExpandingFullyAbove)
+ override fun createTransitionController(): TransitionAnimator.Controller {
+ val delegate = transitionController()
+ return object : TransitionAnimator.Controller by delegate {
+ override fun onTransitionAnimationEnd(isExpandingFullyAbove: Boolean) {
+ delegate.onTransitionAnimationEnd(isExpandingFullyAbove)
// Make sure we don't draw this expandable when the dialog is showing.
isDialogShowing.value = true
@@ -305,11 +306,11 @@
}
}
- override fun createExitController(): LaunchAnimator.Controller {
- val delegate = launchController()
- return object : LaunchAnimator.Controller by delegate {
- override fun onLaunchAnimationEnd(isExpandingFullyAbove: Boolean) {
- delegate.onLaunchAnimationEnd(isExpandingFullyAbove)
+ override fun createExitController(): TransitionAnimator.Controller {
+ val delegate = transitionController()
+ return object : TransitionAnimator.Controller by delegate {
+ override fun onTransitionAnimationEnd(isExpandingFullyAbove: Boolean) {
+ delegate.onTransitionAnimationEnd(isExpandingFullyAbove)
isDialogShowing.value = false
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
index 4766a84..abe9500 100644
--- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
+++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
@@ -131,7 +131,7 @@
import com.android.systemui.Dumpable;
import com.android.systemui.EventLogTags;
import com.android.systemui.animation.ActivityLaunchAnimator;
-import com.android.systemui.animation.LaunchAnimator;
+import com.android.systemui.animation.TransitionAnimator;
import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.classifier.FalsingCollector;
import com.android.systemui.dagger.qualifiers.Main;
@@ -959,7 +959,7 @@
final ActivityLaunchAnimator.Controller mOccludeAnimationController =
new ActivityLaunchAnimator.Controller() {
@Override
- public void onLaunchAnimationStart(boolean isExpandingFullyAbove) {
+ public void onTransitionAnimationStart(boolean isExpandingFullyAbove) {
mOccludeAnimationPlaying = true;
mScrimControllerLazy.get().setOccludeAnimationPlaying(true);
}
@@ -976,7 +976,7 @@
}
@Override
- public void onLaunchAnimationEnd(boolean launchIsFullScreen) {
+ public void onTransitionAnimationEnd(boolean launchIsFullScreen) {
if (launchIsFullScreen) {
mShadeController.get().instantCollapseShade();
}
@@ -993,13 +993,13 @@
@NonNull
@Override
- public ViewGroup getLaunchContainer() {
+ public ViewGroup getTransitionContainer() {
return ((ViewGroup) mKeyguardViewControllerLazy.get()
.getViewRootImpl().getView());
}
@Override
- public void setLaunchContainer(@NonNull ViewGroup launchContainer) {
+ public void setTransitionContainer(@NonNull ViewGroup transitionContainer) {
// No-op, launch container is always the shade.
Log.wtf(TAG, "Someone tried to change the launch container for the "
+ "ActivityLaunchAnimator, which should never happen.");
@@ -1007,9 +1007,9 @@
@NonNull
@Override
- public LaunchAnimator.State createAnimatorState() {
- final int fullWidth = getLaunchContainer().getWidth();
- final int fullHeight = getLaunchContainer().getHeight();
+ public TransitionAnimator.State createAnimatorState() {
+ final int fullWidth = getTransitionContainer().getWidth();
+ final int fullHeight = getTransitionContainer().getHeight();
if (mUpdateMonitor.isSecureCameraLaunchedOverKeyguard()) {
final float initialHeight = fullHeight / 3f;
@@ -1017,7 +1017,7 @@
// Start the animation near the power button, at one-third size, since the
// camera was launched from the power button.
- return new LaunchAnimator.State(
+ return new TransitionAnimator.State(
(int) (mPowerButtonY - initialHeight / 2f) /* top */,
(int) (mPowerButtonY + initialHeight / 2f) /* bottom */,
(int) (fullWidth - initialWidth) /* left */,
@@ -1029,7 +1029,7 @@
// Start the animation in the center of the screen, scaled down to half
// size.
- return new LaunchAnimator.State(
+ return new TransitionAnimator.State(
(int) (fullHeight - initialHeight) / 2,
(int) (initialHeight + (fullHeight - initialHeight) / 2),
(int) (fullWidth - initialWidth) / 2,
diff --git a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java
index e219bcc..b96115b 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java
+++ b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java
@@ -113,7 +113,7 @@
import com.android.systemui.Dumpable;
import com.android.systemui.Gefingerpoken;
import com.android.systemui.animation.ActivityLaunchAnimator;
-import com.android.systemui.animation.LaunchAnimator;
+import com.android.systemui.animation.TransitionAnimator;
import com.android.systemui.biometrics.AuthController;
import com.android.systemui.bouncer.domain.interactor.AlternateBouncerInteractor;
import com.android.systemui.bouncer.shared.constants.KeyguardBouncerConstants;
@@ -3229,7 +3229,7 @@
@Override
public void applyLaunchAnimationProgress(float linearProgress) {
- boolean hideIcons = LaunchAnimator.getProgress(ActivityLaunchAnimator.TIMINGS,
+ boolean hideIcons = TransitionAnimator.getProgress(ActivityLaunchAnimator.TIMINGS,
linearProgress, ANIMATION_DELAY_ICON_FADE_IN, 100) == 0.0f;
if (hideIcons != mHideIconsDuringLaunchAnimation) {
mHideIconsDuringLaunchAnimation = hideIcons;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/LaunchAnimationParameters.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/LaunchAnimationParameters.kt
index 785e65d..6f4a7cd 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/LaunchAnimationParameters.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/LaunchAnimationParameters.kt
@@ -4,7 +4,7 @@
import com.android.internal.annotations.VisibleForTesting
import com.android.systemui.animation.ActivityLaunchAnimator
import com.android.app.animation.Interpolators
-import com.android.systemui.animation.LaunchAnimator
+import com.android.systemui.animation.TransitionAnimator
import kotlin.math.min
/** Parameters for the notifications launch expanding animations. */
@@ -16,7 +16,7 @@
topCornerRadius: Float = 0f,
bottomCornerRadius: Float = 0f
-) : LaunchAnimator.State(top, bottom, left, right, topCornerRadius, bottomCornerRadius) {
+) : TransitionAnimator.State(top, bottom, left, right, topCornerRadius, bottomCornerRadius) {
@VisibleForTesting
constructor() : this(
top = 0, bottom = 0, left = 0, right = 0, topCornerRadius = 0f, bottomCornerRadius = 0f
@@ -58,7 +58,7 @@
}
fun getProgress(delay: Long, duration: Long): Float {
- return LaunchAnimator.getProgress(ActivityLaunchAnimator.TIMINGS, linearProgress, delay,
+ return TransitionAnimator.getProgress(ActivityLaunchAnimator.TIMINGS, linearProgress, delay,
duration)
}
}
\ No newline at end of file
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationLaunchAnimatorController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationLaunchAnimatorController.kt
index 5983fc1..8fc9619 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationLaunchAnimatorController.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationLaunchAnimatorController.kt
@@ -20,7 +20,7 @@
import android.view.ViewGroup
import com.android.internal.jank.InteractionJankMonitor
import com.android.systemui.animation.ActivityLaunchAnimator
-import com.android.systemui.animation.LaunchAnimator
+import com.android.systemui.animation.TransitionAnimator
import com.android.systemui.statusbar.notification.domain.interactor.NotificationLaunchAnimationInteractor
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow
import com.android.systemui.statusbar.notification.stack.NotificationListContainer
@@ -75,13 +75,13 @@
private val notificationEntry = notification.entry
private val notificationKey = notificationEntry.sbn.key
- override var launchContainer: ViewGroup
+ override var transitionContainer: ViewGroup
get() = notification.rootView as ViewGroup
set(ignored) {
// Do nothing. Notifications are always animated inside their rootView.
}
- override fun createAnimatorState(): LaunchAnimator.State {
+ override fun createAnimatorState(): TransitionAnimator.State {
// If the notification panel is collapsed, the clip may be larger than the height.
val height = max(0, notification.actualHeight - notification.clipBottomAmount)
val location = notification.locationOnScreen
@@ -186,14 +186,14 @@
onFinishAnimationCallback?.run()
}
- override fun onLaunchAnimationStart(isExpandingFullyAbove: Boolean) {
+ override fun onTransitionAnimationStart(isExpandingFullyAbove: Boolean) {
notification.isExpandAnimationRunning = true
notificationListContainer.setExpandingNotification(notification)
jankMonitor.begin(notification, InteractionJankMonitor.CUJ_NOTIFICATION_APP_START)
}
- override fun onLaunchAnimationEnd(isExpandingFullyAbove: Boolean) {
+ override fun onTransitionAnimationEnd(isExpandingFullyAbove: Boolean) {
if (ActivityLaunchAnimator.DEBUG_LAUNCH_ANIMATION) {
Log.d(TAG, "onLaunchAnimationEnd()")
}
@@ -213,8 +213,8 @@
notificationListContainer.applyLaunchAnimationParams(params)
}
- override fun onLaunchAnimationProgress(
- state: LaunchAnimator.State,
+ override fun onTransitionAnimationProgress(
+ state: TransitionAnimator.State,
progress: Float,
linearProgress: Float
) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ActivityStarterImpl.kt b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ActivityStarterImpl.kt
index 8a56da3..b49af0e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ActivityStarterImpl.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ActivityStarterImpl.kt
@@ -837,7 +837,7 @@
if (animationController == null) {
return null
}
- val rootView = animationController.launchContainer.rootView
+ val rootView = animationController.transitionContainer.rootView
val controllerFromStatusBar: Optional<ActivityLaunchAnimator.Controller> =
statusBarWindowController.wrapAnimationControllerIfInStatusBar(
rootView,
@@ -881,8 +881,8 @@
}
}
- override fun onLaunchAnimationStart(isExpandingFullyAbove: Boolean) {
- super.onLaunchAnimationStart(isExpandingFullyAbove)
+ override fun onTransitionAnimationStart(isExpandingFullyAbove: Boolean) {
+ super.onTransitionAnimationStart(isExpandingFullyAbove)
// Double check that the keyguard is still showing and not going
// away, but if so set the keyguard occluded. Typically, WM will let
@@ -902,14 +902,14 @@
}
}
- override fun onLaunchAnimationEnd(isExpandingFullyAbove: Boolean) {
+ override fun onTransitionAnimationEnd(isExpandingFullyAbove: Boolean) {
// Set mIsLaunchingActivityOverLockscreen to false before actually
// finishing the animation so that we can assume that
// mIsLaunchingActivityOverLockscreen being true means that we will
// collapse the shade (or at least run the post collapse runnables)
// later on.
centralSurfaces?.setIsLaunchingActivityOverLockscreen(false)
- delegate.onLaunchAnimationEnd(isExpandingFullyAbove)
+ delegate.onTransitionAnimationEnd(isExpandingFullyAbove)
}
override fun onLaunchAnimationCancelled(newKeyguardOccludedState: Boolean?) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarLaunchAnimatorController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarLaunchAnimatorController.kt
index 8ca5bfc..d43f470 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarLaunchAnimatorController.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarLaunchAnimatorController.kt
@@ -2,7 +2,7 @@
import android.view.View
import com.android.systemui.animation.ActivityLaunchAnimator
-import com.android.systemui.animation.LaunchAnimator
+import com.android.systemui.animation.TransitionAnimator
import com.android.systemui.shade.ShadeController
import com.android.systemui.shade.ShadeViewController
import com.android.systemui.shade.domain.interactor.ShadeAnimationInteractor
@@ -34,8 +34,8 @@
}
}
- override fun onLaunchAnimationStart(isExpandingFullyAbove: Boolean) {
- delegate.onLaunchAnimationStart(isExpandingFullyAbove)
+ override fun onTransitionAnimationStart(isExpandingFullyAbove: Boolean) {
+ delegate.onTransitionAnimationStart(isExpandingFullyAbove)
shadeAnimationInteractor.setIsLaunchingActivity(true)
if (!isExpandingFullyAbove) {
shadeViewController.collapseWithDuration(
@@ -43,18 +43,18 @@
}
}
- override fun onLaunchAnimationEnd(isExpandingFullyAbove: Boolean) {
- delegate.onLaunchAnimationEnd(isExpandingFullyAbove)
+ override fun onTransitionAnimationEnd(isExpandingFullyAbove: Boolean) {
+ delegate.onTransitionAnimationEnd(isExpandingFullyAbove)
shadeAnimationInteractor.setIsLaunchingActivity(false)
shadeController.onLaunchAnimationEnd(isExpandingFullyAbove)
}
- override fun onLaunchAnimationProgress(
- state: LaunchAnimator.State,
+ override fun onTransitionAnimationProgress(
+ state: TransitionAnimator.State,
progress: Float,
linearProgress: Float
) {
- delegate.onLaunchAnimationProgress(state, progress, linearProgress)
+ delegate.onTransitionAnimationProgress(state, progress, linearProgress)
shadeViewController.applyLaunchAnimationProgress(linearProgress)
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/window/StatusBarWindowController.java b/packages/SystemUI/src/com/android/systemui/statusbar/window/StatusBarWindowController.java
index b598782..21d3fa4 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/window/StatusBarWindowController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/window/StatusBarWindowController.java
@@ -47,13 +47,13 @@
import android.view.WindowManager;
import com.android.internal.policy.SystemBarUtils;
-import com.android.systemui.res.R;
import com.android.systemui.animation.ActivityLaunchAnimator;
import com.android.systemui.animation.DelegateLaunchAnimatorController;
import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.fragments.FragmentHostManager;
import com.android.systemui.fragments.FragmentService;
+import com.android.systemui.res.R;
import com.android.systemui.statusbar.phone.StatusBarContentInsetsProvider;
import com.android.systemui.unfold.UnfoldTransitionProgressProvider;
import com.android.systemui.unfold.util.JankMonitorTransitionProgressListener;
@@ -194,17 +194,17 @@
return Optional.empty();
}
- animationController.setLaunchContainer(mLaunchAnimationContainer);
+ animationController.setTransitionContainer(mLaunchAnimationContainer);
return Optional.of(new DelegateLaunchAnimatorController(animationController) {
@Override
- public void onLaunchAnimationStart(boolean isExpandingFullyAbove) {
- getDelegate().onLaunchAnimationStart(isExpandingFullyAbove);
+ public void onTransitionAnimationStart(boolean isExpandingFullyAbove) {
+ getDelegate().onTransitionAnimationStart(isExpandingFullyAbove);
setLaunchAnimationRunning(true);
}
@Override
- public void onLaunchAnimationEnd(boolean isExpandingFullyAbove) {
- getDelegate().onLaunchAnimationEnd(isExpandingFullyAbove);
+ public void onTransitionAnimationEnd(boolean isExpandingFullyAbove) {
+ getDelegate().onTransitionAnimationEnd(isExpandingFullyAbove);
setLaunchAnimationRunning(false);
}
});
diff --git a/packages/SystemUI/tests/src/com/android/systemui/animation/ActivityLaunchAnimatorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/animation/ActivityLaunchAnimatorTest.kt
index 8faf715..722107c 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/animation/ActivityLaunchAnimatorTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/animation/ActivityLaunchAnimatorTest.kt
@@ -45,11 +45,11 @@
@RunWith(AndroidTestingRunner::class)
@RunWithLooper
class ActivityLaunchAnimatorTest : SysuiTestCase() {
- private val launchContainer = LinearLayout(mContext)
- private val testLaunchAnimator = fakeLaunchAnimator()
+ private val transitionContainer = LinearLayout(mContext)
+ private val testTransitionAnimator = fakeTransitionAnimator()
@Mock lateinit var callback: ActivityLaunchAnimator.Callback
@Mock lateinit var listener: ActivityLaunchAnimator.Listener
- @Spy private val controller = TestLaunchAnimatorController(launchContainer)
+ @Spy private val controller = TestLaunchAnimatorController(transitionContainer)
@Mock lateinit var iCallback: IRemoteAnimationFinishedCallback
private lateinit var activityLaunchAnimator: ActivityLaunchAnimator
@@ -58,7 +58,11 @@
@Before
fun setup() {
activityLaunchAnimator =
- ActivityLaunchAnimator(testLaunchAnimator, testLaunchAnimator, disableWmTimeout = true)
+ ActivityLaunchAnimator(
+ testTransitionAnimator,
+ testTransitionAnimator,
+ disableWmTimeout = true
+ )
activityLaunchAnimator.callback = callback
activityLaunchAnimator.addListener(listener)
}
@@ -165,7 +169,7 @@
waitForIdleSync()
verify(controller).onLaunchAnimationCancelled()
- verify(controller, never()).onLaunchAnimationStart(anyBoolean())
+ verify(controller, never()).onTransitionAnimationStart(anyBoolean())
verify(listener).onLaunchAnimationCancelled()
verify(listener, never()).onLaunchAnimationStart()
assertNull(runner.delegate)
@@ -178,7 +182,7 @@
waitForIdleSync()
verify(controller).onLaunchAnimationCancelled()
- verify(controller, never()).onLaunchAnimationStart(anyBoolean())
+ verify(controller, never()).onTransitionAnimationStart(anyBoolean())
verify(listener).onLaunchAnimationCancelled()
verify(listener, never()).onLaunchAnimationStart()
assertNull(runner.delegate)
@@ -190,7 +194,7 @@
runner.onAnimationStart(0, arrayOf(fakeWindow()), emptyArray(), emptyArray(), iCallback)
waitForIdleSync()
verify(listener).onLaunchAnimationStart()
- verify(controller).onLaunchAnimationStart(anyBoolean())
+ verify(controller).onTransitionAnimationStart(anyBoolean())
}
@Test
@@ -240,10 +244,10 @@
* A simple implementation of [ActivityLaunchAnimator.Controller] which throws if it is called
* outside of the main thread.
*/
-private class TestLaunchAnimatorController(override var launchContainer: ViewGroup) :
+private class TestLaunchAnimatorController(override var transitionContainer: ViewGroup) :
ActivityLaunchAnimator.Controller {
override fun createAnimatorState() =
- LaunchAnimator.State(
+ TransitionAnimator.State(
top = 100,
bottom = 200,
left = 300,
@@ -262,19 +266,19 @@
assertOnMainThread()
}
- override fun onLaunchAnimationStart(isExpandingFullyAbove: Boolean) {
+ override fun onTransitionAnimationStart(isExpandingFullyAbove: Boolean) {
assertOnMainThread()
}
- override fun onLaunchAnimationProgress(
- state: LaunchAnimator.State,
+ override fun onTransitionAnimationProgress(
+ state: TransitionAnimator.State,
progress: Float,
linearProgress: Float
) {
assertOnMainThread()
}
- override fun onLaunchAnimationEnd(isExpandingFullyAbove: Boolean) {
+ override fun onTransitionAnimationEnd(isExpandingFullyAbove: Boolean) {
assertOnMainThread()
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/animation/DialogLaunchAnimatorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/animation/DialogLaunchAnimatorTest.kt
index 2233e322..a586421 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/animation/DialogLaunchAnimatorTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/animation/DialogLaunchAnimatorTest.kt
@@ -129,14 +129,14 @@
// The dialog shouldn't be dismissable during the animation.
runOnMainThreadAndWaitForIdleSync {
- controller.onLaunchAnimationStart(isExpandingFullyAbove = true)
+ controller.onTransitionAnimationStart(isExpandingFullyAbove = true)
secondDialog.dismiss()
}
assertTrue(secondDialog.isShowing)
// Both dialogs should be dismissed at the end of the animation.
runOnMainThreadAndWaitForIdleSync {
- controller.onLaunchAnimationEnd(isExpandingFullyAbove = true)
+ controller.onTransitionAnimationEnd(isExpandingFullyAbove = true)
}
assertFalse(firstDialog.isShowing)
assertFalse(secondDialog.isShowing)
diff --git a/packages/SystemUI/tests/src/com/android/systemui/animation/GhostedViewLaunchAnimatorControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/animation/GhostedViewLaunchAnimatorControllerTest.kt
index d1ac0e8..8442a62 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/animation/GhostedViewLaunchAnimatorControllerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/animation/GhostedViewLaunchAnimatorControllerTest.kt
@@ -32,13 +32,13 @@
class GhostedViewLaunchAnimatorControllerTest : SysuiTestCase() {
@Test
fun animatingOrphanViewDoesNotCrash() {
- val state = LaunchAnimator.State(top = 0, bottom = 0, left = 0, right = 0)
+ val state = TransitionAnimator.State(top = 0, bottom = 0, left = 0, right = 0)
val controller = GhostedViewLaunchAnimatorController(LaunchableFrameLayout(mContext))
controller.onIntentStarted(willAnimate = true)
- controller.onLaunchAnimationStart(isExpandingFullyAbove = true)
- controller.onLaunchAnimationProgress(state, progress = 0f, linearProgress = 0f)
- controller.onLaunchAnimationEnd(isExpandingFullyAbove = true)
+ controller.onTransitionAnimationStart(isExpandingFullyAbove = true)
+ controller.onTransitionAnimationProgress(state, progress = 0f, linearProgress = 0f)
+ controller.onTransitionAnimationEnd(isExpandingFullyAbove = true)
}
@Test
diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardViewMediatorTest.java b/packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardViewMediatorTest.java
index 14cae0b..24cf164 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardViewMediatorTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/KeyguardViewMediatorTest.java
@@ -94,7 +94,6 @@
import com.android.systemui.dreams.DreamOverlayStateController;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.flags.FakeFeatureFlags;
-import com.android.systemui.flags.Flags;
import com.android.systemui.flags.SystemPropertiesHelper;
import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor;
import com.android.systemui.keyguard.ui.viewmodel.DreamingToLockscreenTransitionViewModel;
@@ -754,7 +753,7 @@
@Test
public void testUpdateIsKeyguardAfterOccludeAnimationEnds() {
- mViewMediator.mOccludeAnimationController.onLaunchAnimationEnd(
+ mViewMediator.mOccludeAnimationController.onTransitionAnimationEnd(
false /* isExpandingFullyAbove */);
// Since the updateIsKeyguard call is delayed during the animation, ensure it's called once
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationLaunchAnimatorControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationLaunchAnimatorControllerTest.kt
index cd74410..f58ff0a 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationLaunchAnimatorControllerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/NotificationLaunchAnimatorControllerTest.kt
@@ -115,7 +115,7 @@
@Test
fun testHunIsRemovedAndCallbackIsInvokedWhenAnimationEnds() {
flagNotificationAsHun()
- controller.onLaunchAnimationEnd(isExpandingFullyAbove = true)
+ controller.onTransitionAnimationEnd(isExpandingFullyAbove = true)
assertFalse(HeadsUpUtil.isClickedHeadsUpNotification(notification))
assertFalse(notification.entry.isExpandAnimationRunning)
@@ -157,7 +157,7 @@
assertNotSame(GROUP_ALERT_SUMMARY, summary.sbn.notification.groupAlertBehavior)
assertNotSame(GROUP_ALERT_SUMMARY, notification.entry.sbn.notification.groupAlertBehavior)
- controller.onLaunchAnimationEnd(isExpandingFullyAbove = true)
+ controller.onTransitionAnimationEnd(isExpandingFullyAbove = true)
verify(headsUpManager)
.removeNotification(summary.key, true /* releaseImmediately */, false /* animate */)
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/animation/FakeDialogLaunchAnimator.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/animation/FakeDialogLaunchAnimator.kt
index f723a9e5..5b84a41 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/animation/FakeDialogLaunchAnimator.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/animation/FakeDialogLaunchAnimator.kt
@@ -36,7 +36,7 @@
object : AnimationFeatureFlags {
override val isPredictiveBackQsDialogAnim = isPredictiveBackQsDialogAnim
},
- launchAnimator = fakeLaunchAnimator(),
+ transitionAnimator = fakeTransitionAnimator(),
isForTesting = true,
)
}
diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/animation/FakeLaunchAnimator.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/animation/FakeTransitionAnimator.kt
similarity index 79%
rename from packages/SystemUI/tests/utils/src/com/android/systemui/animation/FakeLaunchAnimator.kt
rename to packages/SystemUI/tests/utils/src/com/android/systemui/animation/FakeTransitionAnimator.kt
index 0983041..bc7ec3f 100644
--- a/packages/SystemUI/tests/utils/src/com/android/systemui/animation/FakeLaunchAnimator.kt
+++ b/packages/SystemUI/tests/utils/src/com/android/systemui/animation/FakeTransitionAnimator.kt
@@ -16,19 +16,19 @@
import com.android.app.animation.Interpolators
-/** A [LaunchAnimator] to be used in tests. */
-fun fakeLaunchAnimator(): LaunchAnimator {
- return LaunchAnimator(TEST_TIMINGS, TEST_INTERPOLATORS)
+/** A [TransitionAnimator] to be used in tests. */
+fun fakeTransitionAnimator(): TransitionAnimator {
+ return TransitionAnimator(TEST_TIMINGS, TEST_INTERPOLATORS)
}
/**
- * A [LaunchAnimator.Timings] to be used in tests.
+ * A [TransitionAnimator.Timings] to be used in tests.
*
* Note that all timings except the total duration are non-zero to avoid divide-by-zero exceptions
* when computing the progress of a sub-animation (the contents fade in/out).
*/
private val TEST_TIMINGS =
- LaunchAnimator.Timings(
+ TransitionAnimator.Timings(
totalDuration = 0L,
contentBeforeFadeOutDelay = 1L,
contentBeforeFadeOutDuration = 1L,
@@ -36,9 +36,9 @@
contentAfterFadeInDuration = 1L
)
-/** A [LaunchAnimator.Interpolators] to be used in tests. */
+/** A [TransitionAnimator.Interpolators] to be used in tests. */
private val TEST_INTERPOLATORS =
- LaunchAnimator.Interpolators(
+ TransitionAnimator.Interpolators(
positionInterpolator = Interpolators.STANDARD,
positionXInterpolator = Interpolators.STANDARD,
contentBeforeFadeOutInterpolator = Interpolators.STANDARD,