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

Commit c31f5169 authored by Austin Delgado's avatar Austin Delgado
Browse files

Update Sfps overlay announcement in prompt

Fixes: 373778537
Test: Verified manually
Flag: EXEMPT bugfix
Change-Id: I1825fdd6f4847f439fef8cec3231d9219268d4ee
parent 1dad7dd8
Loading
Loading
Loading
Loading
+43 −46
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ import com.airbnb.lottie.LottieAnimationView
import com.airbnb.lottie.LottieComposition
import com.airbnb.lottie.LottieProperty
import com.android.app.animation.Interpolators
import com.android.app.tracing.coroutines.launchTraced as launch
import com.android.keyguard.KeyguardPINView
import com.android.systemui.CoreStartable
import com.android.systemui.biometrics.domain.interactor.BiometricStatusInteractor
@@ -50,7 +51,6 @@ import dagger.Lazy
import javax.inject.Inject
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.flow.combine
import com.android.app.tracing.coroutines.launchTraced as launch

/** Binds the side fingerprint sensor indicator view to [SideFpsOverlayViewModel]. */
@SysUISingleton
@@ -65,21 +65,18 @@ constructor(
    private val layoutInflater: Lazy<LayoutInflater>,
    private val sideFpsProgressBarViewModel: Lazy<SideFpsProgressBarViewModel>,
    private val sfpsSensorInteractor: Lazy<SideFpsSensorInteractor>,
    private val windowManager: Lazy<WindowManager>
    private val windowManager: Lazy<WindowManager>,
) : CoreStartable {

    override fun start() {
        applicationScope
            .launch {
        applicationScope.launch {
            sfpsSensorInteractor.get().isAvailable.collect { isSfpsAvailable ->
                if (isSfpsAvailable) {
                    combine(
                            biometricStatusInteractor.get().sfpsAuthenticationReason,
                                deviceEntrySideFpsOverlayInteractor
                                    .get()
                                    .showIndicatorForDeviceEntry,
                            deviceEntrySideFpsOverlayInteractor.get().showIndicatorForDeviceEntry,
                            sideFpsProgressBarViewModel.get().isVisible,
                                ::Triple
                            ::Triple,
                        )
                        .sample(displayStateInteractor.get().isInRearDisplayMode, ::Pair)
                        .collect { (combinedFlows, isInRearDisplayMode: Boolean) ->
@@ -93,7 +90,7 @@ constructor(
                                "systemServerAuthReason = $systemServerAuthReason, " +
                                    "showIndicatorForDeviceEntry = " +
                                    "$showIndicatorForDeviceEntry, " +
                                        "progressBarIsVisible = $progressBarIsVisible"
                                    "progressBarIsVisible = $progressBarIsVisible",
                            )
                            if (!isInRearDisplayMode) {
                                if (progressBarIsVisible) {
@@ -102,6 +99,11 @@ constructor(
                                    show()
                                } else if (showIndicatorForDeviceEntry) {
                                    show()
                                    overlayView?.announceForAccessibility(
                                        applicationContext.resources.getString(
                                            R.string.accessibility_side_fingerprint_indicator_label
                                        )
                                    )
                                } else {
                                    hide()
                                }
@@ -119,7 +121,7 @@ constructor(
        if (overlayView?.isAttachedToWindow == true) {
            Log.d(
                TAG,
                "show(): overlayView $overlayView isAttachedToWindow already, ignoring show request"
                "show(): overlayView $overlayView isAttachedToWindow already, ignoring show request",
            )
            return
        }
@@ -137,11 +139,6 @@ constructor(
        overlayView!!.visibility = View.INVISIBLE
        Log.d(TAG, "show(): adding overlayView $overlayView")
        windowManager.get().addView(overlayView, overlayViewModel.defaultOverlayViewParams)
        overlayView!!.announceForAccessibility(
            applicationContext.resources.getString(
                R.string.accessibility_side_fingerprint_indicator_label
            )
        )
    }

    /** Hide the side fingerprint sensor indicator */
@@ -163,7 +160,7 @@ constructor(
        fun bind(
            overlayView: View,
            viewModel: SideFpsOverlayViewModel,
            windowManager: WindowManager
            windowManager: WindowManager,
        ) {
            overlayView.repeatWhenAttached {
                val lottie = it.requireViewById<LottieAnimationView>(R.id.sidefps_animation)
@@ -186,7 +183,7 @@ constructor(
                    object : View.AccessibilityDelegate() {
                        override fun dispatchPopulateAccessibilityEvent(
                            host: View,
                            event: AccessibilityEvent
                            event: AccessibilityEvent,
                        ): Boolean {
                            return if (
                                event.getEventType() ===