summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> 2024-06-14 21:06:34 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-06-14 21:06:34 +0000
commite979c1f67168e5ecd7eb90d1c0ec8b47b34237ec (patch)
tree385f93fa8b45997aec68d450c8af6b3ad048e4ff
parent1f1f412769fe932573fb49aa9252eb19002ebbe6 (diff)
parentcf3c99f47e68189307c9e5de82b2c16055c2908d (diff)
Merge "Alternate bouncer focuses on FP indicator" into main
-rw-r--r--packages/SystemUI/res-keyguard/layout/alternate_bouncer.xml2
-rw-r--r--packages/SystemUI/res/layout/sidefps_view.xml3
-rw-r--r--packages/SystemUI/res/values/strings.xml2
-rw-r--r--packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/SideFpsOverlayViewBinder.kt37
-rw-r--r--packages/SystemUI/src/com/android/systemui/biometrics/ui/viewmodel/SideFpsOverlayViewModel.kt6
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/biometrics/ui/binder/SideFpsOverlayViewBinderTest.kt1
6 files changed, 21 insertions, 30 deletions
diff --git a/packages/SystemUI/res-keyguard/layout/alternate_bouncer.xml b/packages/SystemUI/res-keyguard/layout/alternate_bouncer.xml
index cf9ca157b943..c9850f2613b1 100644
--- a/packages/SystemUI/res-keyguard/layout/alternate_bouncer.xml
+++ b/packages/SystemUI/res-keyguard/layout/alternate_bouncer.xml
@@ -19,8 +19,6 @@
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:sysui="http://schemas.android.com/apk/res-auto"
android:id="@+id/alternate_bouncer"
- android:focusable="true"
- android:clickable="true"
android:layout_width="match_parent"
android:layout_height="match_parent">
diff --git a/packages/SystemUI/res/layout/sidefps_view.xml b/packages/SystemUI/res/layout/sidefps_view.xml
index fc4bf8a65643..a960f74dd644 100644
--- a/packages/SystemUI/res/layout/sidefps_view.xml
+++ b/packages/SystemUI/res/layout/sidefps_view.xml
@@ -22,5 +22,4 @@
android:layout_height="wrap_content"
app:lottie_autoPlay="true"
app:lottie_loop="true"
- app:lottie_rawRes="@raw/sfps_pulse"
- android:importantForAccessibility="no"/> \ No newline at end of file
+ app:lottie_rawRes="@raw/sfps_pulse" /> \ No newline at end of file
diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml
index eca58465b29a..838181252cb9 100644
--- a/packages/SystemUI/res/values/strings.xml
+++ b/packages/SystemUI/res/values/strings.xml
@@ -3123,6 +3123,8 @@
<!-- Accessibility label for a11y action to show the bouncer (pin/pattern/password) screen lock [CHAR LIMIT=NONE] -->
<string name="accessibility_bouncer">enter screen lock</string>
+ <!-- Accessibility label for side fingerprint sensor indicator [CHAR LIMIT=NONE] -->
+ <string name="accessibility_side_fingerprint_indicator_label">Touch the fingerprint sensor. It\u2019s the shorter button on the side of the phone</string>
<!-- Accessibility label for fingerprint sensor [CHAR LIMIT=NONE] -->
<string name="accessibility_fingerprint_label">Fingerprint sensor</string>
<!-- Accessibility action for tapping on an affordance that will bring up the user's
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/SideFpsOverlayViewBinder.kt b/packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/SideFpsOverlayViewBinder.kt
index 9cc46506cefb..f52e457f3800 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/SideFpsOverlayViewBinder.kt
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/SideFpsOverlayViewBinder.kt
@@ -24,7 +24,6 @@ import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.WindowManager
-import android.view.accessibility.AccessibilityEvent
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.repeatOnLifecycle
import com.airbnb.lottie.LottieAnimationView
@@ -47,11 +46,11 @@ import com.android.systemui.lifecycle.repeatWhenAttached
import com.android.systemui.res.R
import com.android.systemui.util.kotlin.sample
import dagger.Lazy
-import javax.inject.Inject
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.launch
+import javax.inject.Inject
/** Binds the side fingerprint sensor indicator view to [SideFpsOverlayViewModel]. */
@OptIn(ExperimentalCoroutinesApi::class)
@@ -127,6 +126,11 @@ constructor(
}
overlayView = layoutInflater.get().inflate(R.layout.sidefps_view, null, false)
+ .apply {
+ contentDescription = context.resources.getString(
+ R.string.accessibility_side_fingerprint_indicator_label
+ )
+ }
val overlayViewModel =
SideFpsOverlayViewModel(
@@ -135,10 +139,12 @@ constructor(
displayStateInteractor.get(),
sfpsSensorInteractor.get(),
)
- bind(overlayView!!, overlayViewModel, windowManager.get())
- overlayView!!.visibility = View.INVISIBLE
- Log.d(TAG, "show(): adding overlayView $overlayView")
- windowManager.get().addView(overlayView, overlayViewModel.defaultOverlayViewParams)
+ overlayView?.let { overlayView ->
+ bind(overlayView, overlayViewModel, windowManager.get())
+ overlayView.visibility = View.INVISIBLE
+ Log.d(TAG, "show(): adding overlayView $overlayView")
+ windowManager.get().addView(overlayView, overlayViewModel.defaultOverlayViewParams)
+ }
}
/** Hide the side fingerprint sensor indicator */
@@ -179,25 +185,6 @@ constructor(
overlayShowAnimator.start()
- it.setAccessibilityDelegate(
- object : View.AccessibilityDelegate() {
- override fun dispatchPopulateAccessibilityEvent(
- host: View,
- event: AccessibilityEvent
- ): Boolean {
- return if (
- event.getEventType() ===
- android.view.accessibility.AccessibilityEvent
- .TYPE_WINDOW_STATE_CHANGED
- ) {
- true
- } else {
- super.dispatchPopulateAccessibilityEvent(host, event)
- }
- }
- }
- )
-
repeatOnLifecycle(Lifecycle.State.STARTED) {
launch {
viewModel.lottieCallbacks.collect { callbacks ->
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/ui/viewmodel/SideFpsOverlayViewModel.kt b/packages/SystemUI/src/com/android/systemui/biometrics/ui/viewmodel/SideFpsOverlayViewModel.kt
index 19ea007fc60f..2644352ce0bb 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/ui/viewmodel/SideFpsOverlayViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/ui/viewmodel/SideFpsOverlayViewModel.kt
@@ -81,7 +81,9 @@ constructor(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_NAVIGATION_BAR_PANEL,
- Utils.FINGERPRINT_OVERLAY_LAYOUT_PARAM_FLAGS,
+ WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED or
+ WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN or
+ WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
PixelFormat.TRANSLUCENT
)
.apply {
@@ -91,6 +93,8 @@ constructor(
layoutInDisplayCutoutMode =
WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS
privateFlags = PRIVATE_FLAG_TRUSTED_OVERLAY or PRIVATE_FLAG_NO_MOVE_ANIMATION
+ // Avoid announcing window title.
+ accessibilityTitle = " "
}
private val indicatorAsset: Flow<Int> =
diff --git a/packages/SystemUI/tests/src/com/android/systemui/biometrics/ui/binder/SideFpsOverlayViewBinderTest.kt b/packages/SystemUI/tests/src/com/android/systemui/biometrics/ui/binder/SideFpsOverlayViewBinderTest.kt
index 42382540d401..6f70622e5d8b 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/biometrics/ui/binder/SideFpsOverlayViewBinderTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/biometrics/ui/binder/SideFpsOverlayViewBinderTest.kt
@@ -126,6 +126,7 @@ class SideFpsOverlayViewBinderTest : SysuiTestCase() {
`when`(layoutInflater.inflate(R.layout.sidefps_view, null, false)).thenReturn(sideFpsView)
`when`(sideFpsView.requireViewById<LottieAnimationView>(eq(R.id.sidefps_animation)))
.thenReturn(mock(LottieAnimationView::class.java))
+ `when`(sideFpsView.context).thenReturn(mContext)
with(mock(ViewPropertyAnimator::class.java)) {
`when`(sideFpsView.animate()).thenReturn(this)
`when`(alpha(Mockito.anyFloat())).thenReturn(this)