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:
@@ -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.domain.interactor.UdfpsKeyguardInteractor
|
||||||
import com.android.systemui.keyguard.shared.model.KeyguardState
|
import com.android.systemui.keyguard.shared.model.KeyguardState
|
||||||
import com.android.systemui.keyguard.shared.model.StatusBarState
|
import com.android.systemui.keyguard.shared.model.StatusBarState
|
||||||
|
import com.android.wm.shell.animation.Interpolators
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import kotlin.math.roundToInt
|
import kotlin.math.roundToInt
|
||||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||||
@@ -68,7 +69,7 @@ open class UdfpsLockscreenViewModel(
|
|||||||
if (visibleInKeyguardState(it.from, statusBarState)) {
|
if (visibleInKeyguardState(it.from, statusBarState)) {
|
||||||
1f
|
1f
|
||||||
} else {
|
} else {
|
||||||
it.value
|
Interpolators.FAST_OUT_SLOW_IN.getInterpolation(it.value)
|
||||||
},
|
},
|
||||||
color = getColorAttrDefaultColor(context, alternateBouncerColorResId),
|
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.argumentCaptor
|
||||||
import com.android.systemui.util.mockito.mock
|
import com.android.systemui.util.mockito.mock
|
||||||
import com.android.systemui.util.time.FakeSystemClock
|
import com.android.systemui.util.time.FakeSystemClock
|
||||||
|
import com.android.wm.shell.animation.Interpolators
|
||||||
import com.google.common.collect.Range
|
import com.google.common.collect.Range
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||||
@@ -689,6 +690,62 @@ class UdfpsLockscreenViewModelTest : SysuiTestCase() {
|
|||||||
assertThat(transition?.alpha).isEqualTo(1f)
|
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() {
|
private suspend fun givenTransitionToLockscreenFinished() {
|
||||||
transitionRepository.sendTransitionStep(
|
transitionRepository.sendTransitionStep(
|
||||||
TransitionStep(
|
TransitionStep(
|
||||||
|
|||||||
Reference in New Issue
Block a user