Merge "Update udfps icon interpolator for transition to AlternateBouncer" into udc-qpr-dev am: 9a35c76454

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/24059669

Change-Id: Iec2975ceaece0347bc39e35fa25b7bf372a9fd79
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Treehugger Robot
2023-07-20 20:21:46 +00:00
committed by Automerger Merge Worker
2 changed files with 59 additions and 1 deletions

View File

@@ -26,6 +26,7 @@ import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInterac
import com.android.systemui.keyguard.domain.interactor.UdfpsKeyguardInteractor
import com.android.systemui.keyguard.shared.model.KeyguardState
import com.android.systemui.keyguard.shared.model.StatusBarState
import com.android.wm.shell.animation.Interpolators
import javax.inject.Inject
import kotlin.math.roundToInt
import kotlinx.coroutines.ExperimentalCoroutinesApi
@@ -68,7 +69,7 @@ open class UdfpsLockscreenViewModel(
if (visibleInKeyguardState(it.from, statusBarState)) {
1f
} else {
it.value
Interpolators.FAST_OUT_SLOW_IN.getInterpolation(it.value)
},
color = getColorAttrDefaultColor(context, alternateBouncerColorResId),
)

View File

@@ -40,6 +40,7 @@ import com.android.systemui.statusbar.phone.SystemUIDialogManager
import com.android.systemui.util.mockito.argumentCaptor
import com.android.systemui.util.mockito.mock
import com.android.systemui.util.time.FakeSystemClock
import com.android.wm.shell.animation.Interpolators
import com.google.common.collect.Range
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.ExperimentalCoroutinesApi
@@ -689,6 +690,62 @@ class UdfpsLockscreenViewModelTest : SysuiTestCase() {
assertThat(transition?.alpha).isEqualTo(1f)
}
@Test
fun occludedToAlternateBouncer() =
testScope.runTest {
val transition by collectLastValue(underTest.transition)
val visible by collectLastValue(underTest.visible)
// TransitionState.STARTED: occluded -> alternate bouncer
transitionRepository.sendTransitionStep(
TransitionStep(
from = KeyguardState.OCCLUDED,
to = KeyguardState.ALTERNATE_BOUNCER,
value = 0f,
transitionState = TransitionState.STARTED,
ownerName = "occludedToAlternateBouncer",
)
)
runCurrent()
assertThat(transition?.alpha).isEqualTo(1f)
assertThat(transition?.scale).isEqualTo(0f)
assertThat(transition?.color).isEqualTo(alternateBouncerColor)
assertThat(visible).isTrue()
// TransitionState.RUNNING: occluded -> alternate bouncer
transitionRepository.sendTransitionStep(
TransitionStep(
from = KeyguardState.OCCLUDED,
to = KeyguardState.ALTERNATE_BOUNCER,
value = .6f,
transitionState = TransitionState.RUNNING,
ownerName = "occludedToAlternateBouncer",
)
)
runCurrent()
assertThat(transition?.alpha).isEqualTo(1f)
assertThat(transition?.scale)
.isEqualTo(Interpolators.FAST_OUT_SLOW_IN.getInterpolation(.6f))
assertThat(transition?.color).isEqualTo(alternateBouncerColor)
assertThat(visible).isTrue()
// TransitionState.FINISHED: occluded -> alternate bouncer
transitionRepository.sendTransitionStep(
TransitionStep(
from = KeyguardState.OCCLUDED,
to = KeyguardState.ALTERNATE_BOUNCER,
value = 1f,
transitionState = TransitionState.FINISHED,
ownerName = "occludedToAlternateBouncer",
)
)
runCurrent()
assertThat(transition?.alpha).isEqualTo(1f)
assertThat(transition?.scale).isEqualTo(1f)
assertThat(transition?.color).isEqualTo(alternateBouncerColor)
assertThat(visible).isTrue()
}
private suspend fun givenTransitionToLockscreenFinished() {
transitionRepository.sendTransitionStep(
TransitionStep(