summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/res/values/colors.xml3
-rw-r--r--packages/SystemUI/src/com/android/systemui/biometrics/UdfpsEnrollProgressBarDrawable.java9
-rw-r--r--services/core/java/com/android/server/biometrics/sensors/AcquisitionClient.java4
-rw-r--r--services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintEnrollClient.java14
4 files changed, 23 insertions, 7 deletions
diff --git a/packages/SystemUI/res/values/colors.xml b/packages/SystemUI/res/values/colors.xml
index 49fc8482712a..50fdc7bb61bd 100644
--- a/packages/SystemUI/res/values/colors.xml
+++ b/packages/SystemUI/res/values/colors.xml
@@ -138,7 +138,8 @@
<color name="udfps_enroll_icon">#7DA7F1</color>
<color name="udfps_moving_target_fill">#475670</color>
<color name="udfps_enroll_progress">#7DA7F1</color>
- <color name="udfps_enroll_progress_help">#ffEE675C</color>
+ <color name="udfps_enroll_progress_help">#607DA7F1</color>
+ <color name="udfps_enroll_progress_help_with_talkback">#ffEE675C</color>
<!-- Floating overlay actions -->
<color name="overlay_button_ripple">#1f000000</color>
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsEnrollProgressBarDrawable.java b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsEnrollProgressBarDrawable.java
index 631a461b0627..f3a603f832fa 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsEnrollProgressBarDrawable.java
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsEnrollProgressBarDrawable.java
@@ -22,6 +22,7 @@ import android.graphics.Canvas;
import android.graphics.ColorFilter;
import android.graphics.Paint;
import android.graphics.drawable.Drawable;
+import android.view.accessibility.AccessibilityManager;
import android.view.animation.Interpolator;
import android.view.animation.OvershootInterpolator;
@@ -71,7 +72,13 @@ public class UdfpsEnrollProgressBarDrawable extends Drawable {
public UdfpsEnrollProgressBarDrawable(@NonNull Context context) {
mStrokeWidthPx = Utils.dpToPixels(context, STROKE_WIDTH_DP);
mProgressColor = context.getColor(R.color.udfps_enroll_progress);
- mHelpColor = context.getColor(R.color.udfps_enroll_progress_help);
+ final AccessibilityManager am = context.getSystemService(AccessibilityManager.class);
+ final boolean isAccessbilityEnabled = am.isTouchExplorationEnabled();
+ if (!isAccessbilityEnabled) {
+ mHelpColor = context.getColor(R.color.udfps_enroll_progress_help);
+ } else {
+ mHelpColor = context.getColor(R.color.udfps_enroll_progress_help_with_talkback);
+ }
mCheckmarkDrawable = context.getDrawable(R.drawable.udfps_enroll_checkmark);
mCheckmarkDrawable.mutate();
mCheckmarkInterpolator = new OvershootInterpolator();
diff --git a/services/core/java/com/android/server/biometrics/sensors/AcquisitionClient.java b/services/core/java/com/android/server/biometrics/sensors/AcquisitionClient.java
index 0f0032b72b0a..1d90954c44f6 100644
--- a/services/core/java/com/android/server/biometrics/sensors/AcquisitionClient.java
+++ b/services/core/java/com/android/server/biometrics/sensors/AcquisitionClient.java
@@ -198,7 +198,7 @@ public abstract class AcquisitionClient<T> extends HalClientMonitor<T> implement
protected final void vibrateSuccess() {
Vibrator vibrator = getContext().getSystemService(Vibrator.class);
- if (vibrator != null) {
+ if (vibrator != null && mShouldVibrate) {
vibrator.vibrate(Process.myUid(),
getContext().getOpPackageName(),
SUCCESS_VIBRATION_EFFECT,
@@ -209,7 +209,7 @@ public abstract class AcquisitionClient<T> extends HalClientMonitor<T> implement
protected final void vibrateError() {
Vibrator vibrator = getContext().getSystemService(Vibrator.class);
- if (vibrator != null) {
+ if (vibrator != null && mShouldVibrate) {
vibrator.vibrate(Process.myUid(),
getContext().getOpPackageName(),
ERROR_VIBRATION_EFFECT,
diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintEnrollClient.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintEnrollClient.java
index bb1fed0bfecc..f23659c94e49 100644
--- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintEnrollClient.java
+++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintEnrollClient.java
@@ -34,6 +34,7 @@ import android.hardware.keymaster.HardwareAuthToken;
import android.os.IBinder;
import android.os.RemoteException;
import android.util.Slog;
+import android.view.accessibility.AccessibilityManager;
import com.android.server.biometrics.HardwareAuthTokenUtils;
import com.android.server.biometrics.log.BiometricContext;
@@ -66,6 +67,13 @@ class FingerprintEnrollClient extends EnrollClient<AidlSession> implements Udfps
private final int mMaxTemplatesPerUser;
private boolean mIsPointerDown;
+ private static boolean shouldVibrateFor(Context context,
+ FingerprintSensorPropertiesInternal sensorProps) {
+ final AccessibilityManager am = context.getSystemService(AccessibilityManager.class);
+ final boolean isAccessbilityEnabled = am.isTouchExplorationEnabled();
+ return !sensorProps.isAnyUdfpsType() || isAccessbilityEnabled;
+ }
+
FingerprintEnrollClient(@NonNull Context context,
@NonNull Supplier<AidlSession> lazyDaemon, @NonNull IBinder token, long requestId,
@NonNull ClientMonitorCallbackConverter listener, int userId,
@@ -78,8 +86,8 @@ class FingerprintEnrollClient extends EnrollClient<AidlSession> implements Udfps
int maxTemplatesPerUser, @FingerprintManager.EnrollReason int enrollReason) {
// UDFPS haptics occur when an image is acquired (instead of when the result is known)
super(context, lazyDaemon, token, listener, userId, hardwareAuthToken, owner, utils,
- 0 /* timeoutSec */, sensorId,
- !sensorProps.isAnyUdfpsType() /* shouldVibrate */, logger, biometricContext);
+ 0 /* timeoutSec */, sensorId, shouldVibrateFor(context, sensorProps), logger,
+ biometricContext);
setRequestId(requestId);
mSensorProps = sensorProps;
mSensorOverlays = new SensorOverlays(udfpsOverlayController, sidefpsController);
@@ -119,7 +127,7 @@ class FingerprintEnrollClient extends EnrollClient<AidlSession> implements Udfps
// For UDFPS, notify SysUI that the illumination can be turned off.
// See AcquiredInfo#GOOD and AcquiredInfo#RETRYING_CAPTURE
if (mSensorProps.isAnyUdfpsType()) {
- if (acquiredGood) {
+ if (acquiredGood && mShouldVibrate) {
vibrateSuccess();
}
mSensorOverlays.ifUdfps(