Use single animator with reverse repeats for the face scanning pulse

Bug: 254814998
Test: verified manually, face scanning animation pulses 6 times on keyguard.
Change-Id: I7be92814ef4840f141365c9e1081d0e08b5b4762
This commit is contained in:
Chandru
2022-10-21 10:44:31 +00:00
parent 6a9ede7507
commit 98818a8e8b

View File

@@ -169,9 +169,8 @@ class FaceScanningOverlay(
playSequentially(
cameraProtectionAnimator,
createRimAppearAnimator(),
createPulseAnimator(), createPulseAnimator(),
createPulseAnimator(), createPulseAnimator(),
createPulseAnimator(), createPulseAnimator())
createPulseAnimator()
)
} else {
val rimDisappearAnimator = ValueAnimator.ofFloat(
rimProgress,
@@ -257,21 +256,14 @@ class FaceScanningOverlay(
invalidate()
}
fun createPulseAnimator(): AnimatorSet {
return AnimatorSet().apply {
val pulseInwards = ValueAnimator.ofFloat(
PULSE_RADIUS_OUT, PULSE_RADIUS_IN).apply {
duration = PULSE_DURATION_INWARDS
interpolator = Interpolators.STANDARD
addUpdateListener(this@FaceScanningOverlay::updateRimProgress)
}
val pulseOutwards = ValueAnimator.ofFloat(
PULSE_RADIUS_IN, PULSE_RADIUS_OUT).apply {
duration = PULSE_DURATION_OUTWARDS
interpolator = Interpolators.STANDARD
addUpdateListener(this@FaceScanningOverlay::updateRimProgress)
}
playSequentially(pulseInwards, pulseOutwards)
private fun createPulseAnimator(): ValueAnimator {
return ValueAnimator.ofFloat(
PULSE_RADIUS_OUT, PULSE_RADIUS_IN).apply {
duration = HALF_PULSE_DURATION
interpolator = Interpolators.STANDARD
repeatCount = 11 // Pulse inwards and outwards, reversing direction, 6 times
repeatMode = ValueAnimator.REVERSE
addUpdateListener(this@FaceScanningOverlay::updateRimProgress)
}
}
@@ -363,8 +355,7 @@ class FaceScanningOverlay(
private const val CAMERA_PROTECTION_APPEAR_DURATION = 250L
private const val PULSE_APPEAR_DURATION = 250L // without start delay
private const val PULSE_DURATION_INWARDS = 500L
private const val PULSE_DURATION_OUTWARDS = 500L
private const val HALF_PULSE_DURATION = 500L
private const val PULSE_SUCCESS_DISAPPEAR_DURATION = 400L
private const val CAMERA_PROTECTION_SUCCESS_DISAPPEAR_DURATION = 500L // without start delay