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