Merge "Disable expanded udfps overlay in enrollment when using talkback" into udc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
903df7dc20
@@ -353,10 +353,19 @@ class UdfpsControllerOverlay @JvmOverloads constructor(
|
|||||||
flags = flags or WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH
|
flags = flags or WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH
|
||||||
}
|
}
|
||||||
|
|
||||||
// Original sensorBounds assume portrait mode.
|
val isEnrollment = when (requestReason) {
|
||||||
|
REASON_ENROLL_FIND_SENSOR, REASON_ENROLL_ENROLLING -> true
|
||||||
|
else -> false
|
||||||
|
}
|
||||||
|
|
||||||
|
// Use expanded overlay unless touchExploration enabled
|
||||||
var rotatedBounds =
|
var rotatedBounds =
|
||||||
if (featureFlags.isEnabled(Flags.UDFPS_NEW_TOUCH_DETECTION)) {
|
if (featureFlags.isEnabled(Flags.UDFPS_NEW_TOUCH_DETECTION)) {
|
||||||
Rect(overlayParams.overlayBounds)
|
if (accessibilityManager.isTouchExplorationEnabled && isEnrollment) {
|
||||||
|
Rect(overlayParams.sensorBounds)
|
||||||
|
} else {
|
||||||
|
Rect(overlayParams.overlayBounds)
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
Rect(overlayParams.sensorBounds)
|
Rect(overlayParams.sensorBounds)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import android.hardware.biometrics.BiometricOverlayConstants.REASON_AUTH_BP
|
|||||||
import android.hardware.biometrics.BiometricOverlayConstants.REASON_AUTH_KEYGUARD
|
import android.hardware.biometrics.BiometricOverlayConstants.REASON_AUTH_KEYGUARD
|
||||||
import android.hardware.biometrics.BiometricOverlayConstants.REASON_AUTH_OTHER
|
import android.hardware.biometrics.BiometricOverlayConstants.REASON_AUTH_OTHER
|
||||||
import android.hardware.biometrics.BiometricOverlayConstants.REASON_AUTH_SETTINGS
|
import android.hardware.biometrics.BiometricOverlayConstants.REASON_AUTH_SETTINGS
|
||||||
|
import android.hardware.biometrics.BiometricOverlayConstants.REASON_ENROLL_ENROLLING
|
||||||
import android.hardware.biometrics.BiometricOverlayConstants.ShowReason
|
import android.hardware.biometrics.BiometricOverlayConstants.ShowReason
|
||||||
import android.hardware.fingerprint.FingerprintManager
|
import android.hardware.fingerprint.FingerprintManager
|
||||||
import android.hardware.fingerprint.IUdfpsOverlayControllerCallback
|
import android.hardware.fingerprint.IUdfpsOverlayControllerCallback
|
||||||
@@ -29,6 +30,7 @@ import android.testing.TestableLooper.RunWithLooper
|
|||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.MotionEvent
|
import android.view.MotionEvent
|
||||||
import android.view.Surface
|
import android.view.Surface
|
||||||
|
import android.view.Surface.ROTATION_0
|
||||||
import android.view.Surface.Rotation
|
import android.view.Surface.Rotation
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.WindowManager
|
import android.view.WindowManager
|
||||||
@@ -42,6 +44,7 @@ import com.android.systemui.SysuiTestCase
|
|||||||
import com.android.systemui.animation.ActivityLaunchAnimator
|
import com.android.systemui.animation.ActivityLaunchAnimator
|
||||||
import com.android.systemui.dump.DumpManager
|
import com.android.systemui.dump.DumpManager
|
||||||
import com.android.systemui.flags.FeatureFlags
|
import com.android.systemui.flags.FeatureFlags
|
||||||
|
import com.android.systemui.flags.Flags
|
||||||
import com.android.systemui.keyguard.domain.interactor.AlternateBouncerInteractor
|
import com.android.systemui.keyguard.domain.interactor.AlternateBouncerInteractor
|
||||||
import com.android.systemui.keyguard.domain.interactor.PrimaryBouncerInteractor
|
import com.android.systemui.keyguard.domain.interactor.PrimaryBouncerInteractor
|
||||||
import com.android.systemui.plugins.statusbar.StatusBarStateController
|
import com.android.systemui.plugins.statusbar.StatusBarStateController
|
||||||
@@ -159,9 +162,10 @@ class UdfpsControllerOverlayTest : SysuiTestCase() {
|
|||||||
private fun withRotation(@Rotation rotation: Int, block: () -> Unit) {
|
private fun withRotation(@Rotation rotation: Int, block: () -> Unit) {
|
||||||
// Sensor that's in the top left corner of the display in natural orientation.
|
// Sensor that's in the top left corner of the display in natural orientation.
|
||||||
val sensorBounds = Rect(0, 0, SENSOR_WIDTH, SENSOR_HEIGHT)
|
val sensorBounds = Rect(0, 0, SENSOR_WIDTH, SENSOR_HEIGHT)
|
||||||
|
val overlayBounds = Rect(0, 0, DISPLAY_WIDTH, DISPLAY_HEIGHT)
|
||||||
overlayParams = UdfpsOverlayParams(
|
overlayParams = UdfpsOverlayParams(
|
||||||
sensorBounds,
|
sensorBounds,
|
||||||
sensorBounds,
|
overlayBounds,
|
||||||
DISPLAY_WIDTH,
|
DISPLAY_WIDTH,
|
||||||
DISPLAY_HEIGHT,
|
DISPLAY_HEIGHT,
|
||||||
scaleFactor = 1f,
|
scaleFactor = 1f,
|
||||||
@@ -314,4 +318,24 @@ class UdfpsControllerOverlayTest : SysuiTestCase() {
|
|||||||
assertThat(controllerOverlay.matchesRequestId(REQUEST_ID)).isTrue()
|
assertThat(controllerOverlay.matchesRequestId(REQUEST_ID)).isTrue()
|
||||||
assertThat(controllerOverlay.matchesRequestId(REQUEST_ID + 1)).isFalse()
|
assertThat(controllerOverlay.matchesRequestId(REQUEST_ID + 1)).isFalse()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun smallOverlayOnEnrollmentWithA11y() = withRotation(ROTATION_0) {
|
||||||
|
withReason(REASON_ENROLL_ENROLLING) {
|
||||||
|
// When a11y enabled during enrollment
|
||||||
|
whenever(accessibilityManager.isTouchExplorationEnabled).thenReturn(true)
|
||||||
|
whenever(featureFlags.isEnabled(Flags.UDFPS_NEW_TOUCH_DETECTION)).thenReturn(true)
|
||||||
|
|
||||||
|
controllerOverlay.show(udfpsController, overlayParams)
|
||||||
|
verify(windowManager).addView(
|
||||||
|
eq(controllerOverlay.overlayView),
|
||||||
|
layoutParamsCaptor.capture()
|
||||||
|
)
|
||||||
|
|
||||||
|
// Layout params should use sensor bounds
|
||||||
|
val lp = layoutParamsCaptor.value
|
||||||
|
assertThat(lp.width).isEqualTo(overlayParams.sensorBounds.width())
|
||||||
|
assertThat(lp.height).isEqualTo(overlayParams.sensorBounds.height())
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user