Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a4211b17 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Extract animators into separate methods" into main

parents bbe1f74e 966b854d
Loading
Loading
Loading
Loading
+49 −37
Original line number Diff line number Diff line
@@ -110,9 +110,41 @@ class FaceScanningOverlay(
        }

        cameraProtectionAnimator?.cancel()
        cameraProtectionAnimator = ValueAnimator.ofFloat(cameraProtectionProgress,
                if (showScanningAnimationNow) SHOW_CAMERA_PROTECTION_SCALE
                else HIDDEN_CAMERA_PROTECTION_SCALE).apply {
        cameraProtectionAnimator = cameraProtectionAnimator(faceAuthSucceeded)

        rimAnimator?.cancel()
        rimAnimator = faceScanningRimAnimator(faceAuthSucceeded, cameraProtectionAnimator)
        rimAnimator?.start()
    }

    private fun faceScanningRimAnimator(
        faceAuthSucceeded: Boolean,
        cameraProtectAnimator: ValueAnimator?
    ): AnimatorSet {
        return if (showScanningAnim) {
            createFaceScanningRimAnimator(cameraProtectAnimator)
        } else if (faceAuthSucceeded) {
            createFaceSuccessRimAnimator(cameraProtectAnimator)
        } else {
            createFaceNotSuccessRimAnimator(cameraProtectAnimator)
        }.apply {
            addListener(object : AnimatorListenerAdapter() {
                override fun onAnimationEnd(animation: Animator) {
                    rimAnimator = null
                    if (!showScanningAnim) {
                        requestLayout()
                    }
                }
            })
        }
    }

    private fun cameraProtectionAnimator(faceAuthSucceeded: Boolean): ValueAnimator {
        return ValueAnimator.ofFloat(
            cameraProtectionProgress,
            if (showScanningAnim) SHOW_CAMERA_PROTECTION_SCALE
            else HIDDEN_CAMERA_PROTECTION_SCALE
        ).apply {
            startDelay =
                if (showScanningAnim) 0
                else if (faceAuthSucceeded) PULSE_SUCCESS_DISAPPEAR_DURATION
@@ -135,26 +167,6 @@ class FaceScanningOverlay(
                }
            })
        }

        rimAnimator?.cancel()
        rimAnimator = if (showScanningAnim) {
            createFaceScanningRimAnimator()
        } else if (faceAuthSucceeded) {
            createFaceSuccessRimAnimator()
        } else {
            createFaceNotSuccessRimAnimator()
        }
        rimAnimator?.apply {
            addListener(object : AnimatorListenerAdapter() {
                override fun onAnimationEnd(animation: Animator) {
                    rimAnimator = null
                    if (!showScanningAnim) {
                        requestLayout()
                    }
                }
            })
        }
        rimAnimator?.start()
    }

    override fun updateVisOnUpdateCutout(): Boolean {
@@ -219,7 +231,7 @@ class FaceScanningOverlay(
        canvas.drawPath(scaledProtectionPath, paint)
    }

    private fun createFaceSuccessRimAnimator(): AnimatorSet {
    private fun createFaceSuccessRimAnimator(cameraProtectAnimator: ValueAnimator?): AnimatorSet {
        val rimSuccessAnimator = AnimatorSet()
        rimSuccessAnimator.playTogether(
            createRimDisappearAnimator(
@@ -230,11 +242,11 @@ class FaceScanningOverlay(
            createSuccessOpacityAnimator(),
        )
        return AnimatorSet().apply {
            playTogether(rimSuccessAnimator, cameraProtectionAnimator)
            playTogether(rimSuccessAnimator, cameraProtectAnimator)
        }
    }

    private fun createFaceNotSuccessRimAnimator(): AnimatorSet {
    private fun createFaceNotSuccessRimAnimator(cameraProtectAnimator: ValueAnimator?): AnimatorSet {
        return AnimatorSet().apply {
            playTogether(
                createRimDisappearAnimator(
@@ -242,7 +254,7 @@ class FaceScanningOverlay(
                    PULSE_ERROR_DISAPPEAR_DURATION,
                    Interpolators.STANDARD
                ),
                cameraProtectionAnimator,
                cameraProtectAnimator,
            )
        }
    }
@@ -279,10 +291,10 @@ class FaceScanningOverlay(
        }
    }

    private fun createFaceScanningRimAnimator(): AnimatorSet {
    private fun createFaceScanningRimAnimator(cameraProtectAnimator: ValueAnimator?): AnimatorSet {
        return AnimatorSet().apply {
            playSequentially(
                    cameraProtectionAnimator,
                cameraProtectAnimator,
                createRimAppearAnimator(),
            )
        }