Merge "Update udfps icon interpolator for transition to AlternateBouncer" into udc-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
9a35c76454
@@ -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),
|
||||
)
|
||||
|
||||
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user