1 /*
2 * Copyright (C) 2022 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
5 * except in compliance with the License. You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software distributed under the
10 * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
11 * KIND, either express or implied. See the License for the specific language governing
12 * permissions and limitations under the License.
13 */
14
15 package com.android.systemui.animation
16
17 import com.android.app.animation.Interpolators
18 import com.android.systemui.dagger.qualifiers.Main
19 import java.util.concurrent.Executor
20
21 /** A [TransitionAnimator] to be used in tests. */
fakeTransitionAnimatornull22 fun fakeTransitionAnimator(@Main mainExecutor: Executor): TransitionAnimator {
23 return TransitionAnimator(mainExecutor, TEST_TIMINGS, TEST_INTERPOLATORS)
24 }
25
26 /**
27 * A [TransitionAnimator.Timings] to be used in tests.
28 *
29 * Note that all timings except the total duration are non-zero to avoid divide-by-zero exceptions
30 * when computing the progress of a sub-animation (the contents fade in/out).
31 */
32 private val TEST_TIMINGS =
33 TransitionAnimator.Timings(
34 totalDuration = 0L,
35 contentBeforeFadeOutDelay = 1L,
36 contentBeforeFadeOutDuration = 1L,
37 contentAfterFadeInDelay = 1L,
38 contentAfterFadeInDuration = 1L
39 )
40
41 /** A [TransitionAnimator.Interpolators] to be used in tests. */
42 private val TEST_INTERPOLATORS =
43 TransitionAnimator.Interpolators(
44 positionInterpolator = Interpolators.STANDARD,
45 positionXInterpolator = Interpolators.STANDARD,
46 contentBeforeFadeOutInterpolator = Interpolators.STANDARD,
47 contentAfterFadeInInterpolator = Interpolators.STANDARD
48 )
49