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

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

Merge "Skip pulsing while showing the face scanning animation" into udc-d1-dev

parents d5d10af4 3b4dc8c6
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -40,4 +40,7 @@

    <!-- Whether face auth will immediately stop when the display state is OFF -->
    <bool name="flag_stop_face_auth_on_display_off">false</bool>

    <!-- Whether we want to stop pulsing while running the face scanning animation -->
    <bool name="flag_stop_pulsing_face_scanning_animation">true</bool>
</resources>
+12 −0
Original line number Diff line number Diff line
@@ -36,6 +36,8 @@ import com.android.keyguard.KeyguardUpdateMonitor
import com.android.keyguard.KeyguardUpdateMonitorCallback
import com.android.settingslib.Utils
import com.android.systemui.biometrics.AuthController
import com.android.systemui.flags.FeatureFlags
import com.android.systemui.flags.Flags
import com.android.systemui.log.ScreenDecorationsLogger
import com.android.systemui.plugins.statusbar.StatusBarStateController
import com.android.systemui.util.asIndenting
@@ -54,6 +56,7 @@ class FaceScanningOverlay(
    val mainExecutor: Executor,
    val logger: ScreenDecorationsLogger,
    val authController: AuthController,
    val featureFlags: FeatureFlags,
) : ScreenDecorations.DisplayCutoutView(context, pos) {
    private var showScanningAnim = false
    private val rimPaint = Paint()
@@ -294,6 +297,15 @@ class FaceScanningOverlay(
    }

    private fun createFaceScanningRimAnimator(): AnimatorSet {
        val dontPulse = featureFlags.isEnabled(Flags.STOP_PULSING_FACE_SCANNING_ANIMATION)
        if (dontPulse) {
            return AnimatorSet().apply {
                playSequentially(
                        cameraProtectionAnimator,
                        createRimAppearAnimator(),
                )
            }
        }
        return AnimatorSet().apply {
            playSequentially(
                cameraProtectionAnimator,
+5 −0
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ import com.android.systemui.FaceScanningOverlay
import com.android.systemui.biometrics.AuthController
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.flags.FeatureFlags
import com.android.systemui.log.ScreenDecorationsLogger
import com.android.systemui.plugins.statusbar.StatusBarStateController
import java.util.concurrent.Executor
@@ -47,6 +48,7 @@ class FaceScanningProviderFactory @Inject constructor(
    private val keyguardUpdateMonitor: KeyguardUpdateMonitor,
    @Main private val mainExecutor: Executor,
    private val logger: ScreenDecorationsLogger,
    private val featureFlags: FeatureFlags,
) : DecorProviderFactory() {
    private val display = context.display
    private val displayInfo = DisplayInfo()
@@ -86,6 +88,7 @@ class FaceScanningProviderFactory @Inject constructor(
                                        keyguardUpdateMonitor,
                                        mainExecutor,
                                        logger,
                                        featureFlags,
                                )
                        )
                    }
@@ -110,6 +113,7 @@ class FaceScanningOverlayProviderImpl(
    private val keyguardUpdateMonitor: KeyguardUpdateMonitor,
    private val mainExecutor: Executor,
    private val logger: ScreenDecorationsLogger,
    private val featureFlags: FeatureFlags,
) : BoundDecorProvider() {
    override val viewId: Int = com.android.systemui.R.id.face_scanning_anim

@@ -144,6 +148,7 @@ class FaceScanningOverlayProviderImpl(
                mainExecutor,
                logger,
                authController,
                featureFlags
        )
        view.id = viewId
        view.setColor(tintColor)
+6 −0
Original line number Diff line number Diff line
@@ -273,6 +273,12 @@ object Flags {
    @JvmField val STOP_FACE_AUTH_ON_DISPLAY_OFF = resourceBooleanFlag(245,
            R.bool.flag_stop_face_auth_on_display_off, "stop_face_auth_on_display_off")

    /** Flag to disable the face scanning animation pulsing. */
    // TODO(b/295245791): Tracking bug.
    @JvmField val STOP_PULSING_FACE_SCANNING_ANIMATION = resourceBooleanFlag(246,
            R.bool.flag_stop_pulsing_face_scanning_animation,
            "stop_pulsing_face_scanning_animation")

    // 300 - power menu
    // TODO(b/254512600): Tracking Bug
    @JvmField val POWER_MENU_LITE = releasedFlag(300, "power_menu_lite")
+6 −1
Original line number Diff line number Diff line
@@ -27,6 +27,8 @@ import com.android.keyguard.KeyguardUpdateMonitor
import com.android.systemui.biometrics.AuthController
import com.android.systemui.decor.FaceScanningProviderFactory
import com.android.systemui.dump.logcatLogBuffer
import com.android.systemui.flags.FakeFeatureFlags
import com.android.systemui.flags.Flags
import com.android.systemui.log.ScreenDecorationsLogger
import com.android.systemui.plugins.statusbar.StatusBarStateController
import com.android.systemui.util.mockito.whenever
@@ -80,6 +82,8 @@ class FaceScanningProviderFactoryTest : SysuiTestCase() {
            R.bool.config_fillMainBuiltInDisplayCutout,
            true
        )
        val featureFlags = FakeFeatureFlags()
        featureFlags.set(Flags.STOP_PULSING_FACE_SCANNING_ANIMATION, true)
        underTest =
            FaceScanningProviderFactory(
                authController,
@@ -87,7 +91,8 @@ class FaceScanningProviderFactoryTest : SysuiTestCase() {
                statusBarStateController,
                keyguardUpdateMonitor,
                mock(Executor::class.java),
                ScreenDecorationsLogger(logcatLogBuffer("FaceScanningProviderFactoryTest"))
                ScreenDecorationsLogger(logcatLogBuffer("FaceScanningProviderFactoryTest")),
                featureFlags,
            )

        whenever(authController.faceSensorLocation).thenReturn(Point(10, 10))
Loading