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

Commit f022b03c authored by Grace Cheng's avatar Grace Cheng
Browse files

Replace UDFPS BiometricPrompt a11y announcements with live region

Sets biometric prompt panel element accessibilityLiveRegion to
ACCESSIBILITY_LIVE_REGION_ASSERTIVE, updates contentDescription with
UDFPS guidance messages, and removes a11y announcements

Flag: NONE bug fix
Bug: 383230658
Test: (manual) verified Talkback reads expected messages
Change-Id: If560d41638bc507bed9045beadd6be9013c8a078
parent b8fefc10
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -21,6 +21,9 @@
        style="@style/AuthCredentialPanelStyle"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:accessibilityLiveRegion="assertive"
        android:importantForAccessibility="yes"
        android:clickable="false"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toStartOf="@id/rightGuideline"
        app:layout_constraintStart_toStartOf="@id/leftGuideline"
+3 −0
Original line number Diff line number Diff line
@@ -22,6 +22,9 @@ android:layout_height="match_parent">
        style="@style/AuthCredentialPanelStyle"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:accessibilityLiveRegion="assertive"
        android:importantForAccessibility="yes"
        android:clickable="false"
        android:paddingHorizontal="16dp"
        android:paddingVertical="16dp"
        android:visibility="visible"
+4 −2
Original line number Diff line number Diff line
@@ -397,7 +397,7 @@ object BiometricViewBinder {
                // Talkback directional guidance
                udfpsGuidanceView.setOnHoverListener { _, event ->
                    launch {
                        viewModel.onAnnounceAccessibilityHint(
                        viewModel.onUpdateAccessibilityHint(
                            event,
                            accessibilityManager.isTouchExplorationEnabled,
                        )
@@ -406,7 +406,9 @@ object BiometricViewBinder {
                }
                launch {
                    viewModel.accessibilityHint.collect { message ->
                        if (message.isNotBlank()) view.announceForAccessibility(message)
                        if (message.isNotBlank()) {
                            udfpsGuidanceView.contentDescription = message
                        }
                    }
                }

+1 −1
Original line number Diff line number Diff line
@@ -886,7 +886,7 @@ constructor(
    }

    /** Sets the message used for UDFPS directional guidance */
    suspend fun onAnnounceAccessibilityHint(
    suspend fun onUpdateAccessibilityHint(
        event: MotionEvent,
        touchExplorationEnabled: Boolean,
    ): Boolean {
+2 −2
Original line number Diff line number Diff line
@@ -1472,7 +1472,7 @@ internal class PromptViewModelTest(private val testCase: TestCase) : SysuiTestCa
        whenever(kosmos.udfpsUtils.onTouchOutsideOfSensorArea(any(), any(), any(), any(), any()))
            .thenReturn("Direction")

        kosmos.promptViewModel.onAnnounceAccessibilityHint(
        kosmos.promptViewModel.onUpdateAccessibilityHint(
            obtainMotionEvent(MotionEvent.ACTION_HOVER_ENTER),
            true,
        )
@@ -1497,7 +1497,7 @@ internal class PromptViewModelTest(private val testCase: TestCase) : SysuiTestCa
        whenever(kosmos.udfpsUtils.onTouchOutsideOfSensorArea(any(), any(), any(), any(), any()))
            .thenReturn("Direction")

        kosmos.promptViewModel.onAnnounceAccessibilityHint(
        kosmos.promptViewModel.onUpdateAccessibilityHint(
            obtainMotionEvent(MotionEvent.ACTION_HOVER_ENTER),
            true,
        )