Merge "Added fingerprint bad calibration notification" into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
f4ecf18a39
@@ -1376,7 +1376,7 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing
|
|||||||
return context.getString(
|
return context.getString(
|
||||||
com.android.internal.R.string.fingerprint_error_security_update_required);
|
com.android.internal.R.string.fingerprint_error_security_update_required);
|
||||||
case FINGERPRINT_ERROR_BAD_CALIBARTION:
|
case FINGERPRINT_ERROR_BAD_CALIBARTION:
|
||||||
context.getString(
|
return context.getString(
|
||||||
com.android.internal.R.string.fingerprint_error_bad_calibration);
|
com.android.internal.R.string.fingerprint_error_bad_calibration);
|
||||||
case FINGERPRINT_ERROR_VENDOR: {
|
case FINGERPRINT_ERROR_VENDOR: {
|
||||||
String[] msgArray = context.getResources().getStringArray(
|
String[] msgArray = context.getResources().getStringArray(
|
||||||
|
|||||||
@@ -1638,8 +1638,8 @@
|
|||||||
<string name="fingerprint_error_hw_not_present">This device does not have a fingerprint sensor.</string>
|
<string name="fingerprint_error_hw_not_present">This device does not have a fingerprint sensor.</string>
|
||||||
<!-- Generic error message shown when fingerprint is not available due to a security vulnerability. [CHAR LIMIT=50] -->
|
<!-- Generic error message shown when fingerprint is not available due to a security vulnerability. [CHAR LIMIT=50] -->
|
||||||
<string name="fingerprint_error_security_update_required">Sensor temporarily disabled.</string>
|
<string name="fingerprint_error_security_update_required">Sensor temporarily disabled.</string>
|
||||||
<!-- Generic error message shown when fingerprint needs calibration [CHAR LIMIT=50] -->
|
<!-- Generic error message shown when fingerprint needs calibration [CHAR LIMIT=150] -->
|
||||||
<string name="fingerprint_error_bad_calibration">Sensor needs calibration</string>
|
<string name="fingerprint_error_bad_calibration">Can\u2019t use fingerprint sensor. Visit a repair provider</string>
|
||||||
|
|
||||||
<!-- Template to be used to name enrolled fingerprints by default. -->
|
<!-- Template to be used to name enrolled fingerprints by default. -->
|
||||||
<string name="fingerprint_name_template">Finger <xliff:g id="fingerId" example="1">%d</xliff:g></string>
|
<string name="fingerprint_name_template">Finger <xliff:g id="fingerId" example="1">%d</xliff:g></string>
|
||||||
@@ -1675,6 +1675,13 @@
|
|||||||
<!-- Contents of a notification that directs the user to enroll a fingerprint. [CHAR LIMIT=NONE] -->
|
<!-- Contents of a notification that directs the user to enroll a fingerprint. [CHAR LIMIT=NONE] -->
|
||||||
<string name="fingerprint_setup_notification_content">Tap to add a fingerprint</string>
|
<string name="fingerprint_setup_notification_content">Tap to add a fingerprint</string>
|
||||||
|
|
||||||
|
<!-- Notification name shown when the system requires the user to re-calibrate their fingerprint. [CHAR LIMIT=NONE] -->
|
||||||
|
<string name="fingerprint_recalibrate_notification_name">Fingerprint Unlock</string>
|
||||||
|
<!-- Notification title shown when the system requires the user to re-calibrate their fingerprint. [CHAR LIMIT=NONE] -->
|
||||||
|
<string name="fingerprint_recalibrate_notification_title">Can\u2019t use fingerprint sensor</string>
|
||||||
|
<!-- Notification content shown when the system requires the user to re-calibrate their fingerprint. [CHAR LIMIT=NONE] -->
|
||||||
|
<string name="fingerprint_recalibrate_notification_content">Visit a repair provider.</string>
|
||||||
|
|
||||||
<!-- Message shown during face acquisition when the face cannot be recognized [CHAR LIMIT=50] -->
|
<!-- Message shown during face acquisition when the face cannot be recognized [CHAR LIMIT=50] -->
|
||||||
<string name="face_acquired_insufficient">Couldn\u2019t capture accurate face data. Try again.</string>
|
<string name="face_acquired_insufficient">Couldn\u2019t capture accurate face data. Try again.</string>
|
||||||
<!-- Message shown during face acquisition when the image is too bright [CHAR LIMIT=50] -->
|
<!-- Message shown during face acquisition when the image is too bright [CHAR LIMIT=50] -->
|
||||||
|
|||||||
@@ -2541,6 +2541,9 @@
|
|||||||
<java-symbol type="string" name="fingerprint_error_security_update_required" />
|
<java-symbol type="string" name="fingerprint_error_security_update_required" />
|
||||||
<java-symbol type="string" name="fingerprint_error_bad_calibration" />
|
<java-symbol type="string" name="fingerprint_error_bad_calibration" />
|
||||||
<java-symbol type="string" name="fingerprint_acquired_immobile" />
|
<java-symbol type="string" name="fingerprint_acquired_immobile" />
|
||||||
|
<java-symbol type="string" name="fingerprint_recalibrate_notification_name" />
|
||||||
|
<java-symbol type="string" name="fingerprint_recalibrate_notification_title" />
|
||||||
|
<java-symbol type="string" name="fingerprint_recalibrate_notification_content" />
|
||||||
|
|
||||||
<!-- Fingerprint config -->
|
<!-- Fingerprint config -->
|
||||||
<java-symbol type="integer" name="config_fingerprintMaxTemplatesPerUser"/>
|
<java-symbol type="integer" name="config_fingerprintMaxTemplatesPerUser"/>
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.android.server.biometrics.sensors.face;
|
package com.android.server.biometrics.sensors;
|
||||||
|
|
||||||
import android.annotation.NonNull;
|
import android.annotation.NonNull;
|
||||||
import android.app.Notification;
|
import android.app.Notification;
|
||||||
@@ -27,11 +27,18 @@ import android.os.UserHandle;
|
|||||||
|
|
||||||
import com.android.internal.R;
|
import com.android.internal.R;
|
||||||
|
|
||||||
public class ReEnrollNotificationUtils {
|
/**
|
||||||
|
* Biometric notification helper class.
|
||||||
|
*/
|
||||||
|
public class BiometricNotificationUtils {
|
||||||
|
|
||||||
private static final String NOTIFICATION_TAG = "FaceService";
|
private static final String RE_ENROLL_NOTIFICATION_TAG = "FaceService";
|
||||||
|
private static final String BAD_CALIBRATION_NOTIFICATION_TAG = "FingerprintService";
|
||||||
private static final int NOTIFICATION_ID = 1;
|
private static final int NOTIFICATION_ID = 1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Shows a face re-enrollment notification.
|
||||||
|
*/
|
||||||
public static void showReEnrollmentNotification(@NonNull Context context) {
|
public static void showReEnrollmentNotification(@NonNull Context context) {
|
||||||
final NotificationManager notificationManager =
|
final NotificationManager notificationManager =
|
||||||
context.getSystemService(NotificationManager.class);
|
context.getSystemService(NotificationManager.class);
|
||||||
@@ -52,6 +59,42 @@ public class ReEnrollNotificationUtils {
|
|||||||
|
|
||||||
final String channelName = "FaceEnrollNotificationChannel";
|
final String channelName = "FaceEnrollNotificationChannel";
|
||||||
|
|
||||||
|
showNotificationHelper(context, name, title, content, pendingIntent, channelName,
|
||||||
|
RE_ENROLL_NOTIFICATION_TAG);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Shows a fingerprint bad calibration notification.
|
||||||
|
*/
|
||||||
|
public static void showBadCalibrationNotification(@NonNull Context context) {
|
||||||
|
final NotificationManager notificationManager =
|
||||||
|
context.getSystemService(NotificationManager.class);
|
||||||
|
|
||||||
|
final String name =
|
||||||
|
context.getString(R.string.fingerprint_recalibrate_notification_name);
|
||||||
|
final String title =
|
||||||
|
context.getString(R.string.fingerprint_recalibrate_notification_title);
|
||||||
|
final String content =
|
||||||
|
context.getString(R.string.fingerprint_recalibrate_notification_content);
|
||||||
|
|
||||||
|
final Intent intent = new Intent("android.settings.FINGERPRINT_SETTINGS");
|
||||||
|
intent.setPackage("com.android.settings");
|
||||||
|
|
||||||
|
final PendingIntent pendingIntent = PendingIntent.getActivityAsUser(context,
|
||||||
|
0 /* requestCode */, intent, PendingIntent.FLAG_IMMUTABLE /* flags */,
|
||||||
|
null /* options */, UserHandle.CURRENT);
|
||||||
|
|
||||||
|
final String channelName = "FingerprintBadCalibrationNotificationChannel";
|
||||||
|
|
||||||
|
showNotificationHelper(context, name, title, content, pendingIntent, channelName,
|
||||||
|
BAD_CALIBRATION_NOTIFICATION_TAG);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void showNotificationHelper(Context context, String name, String title,
|
||||||
|
String content, PendingIntent pendingIntent, String channelName,
|
||||||
|
String notificationTag) {
|
||||||
|
final NotificationManager notificationManager =
|
||||||
|
context.getSystemService(NotificationManager.class);
|
||||||
final NotificationChannel channel = new NotificationChannel(channelName, name,
|
final NotificationChannel channel = new NotificationChannel(channelName, name,
|
||||||
NotificationManager.IMPORTANCE_HIGH);
|
NotificationManager.IMPORTANCE_HIGH);
|
||||||
final Notification notification = new Notification.Builder(context, channelName)
|
final Notification notification = new Notification.Builder(context, channelName)
|
||||||
@@ -68,15 +111,28 @@ public class ReEnrollNotificationUtils {
|
|||||||
.build();
|
.build();
|
||||||
|
|
||||||
notificationManager.createNotificationChannel(channel);
|
notificationManager.createNotificationChannel(channel);
|
||||||
notificationManager.notifyAsUser(NOTIFICATION_TAG,
|
notificationManager.notifyAsUser(notificationTag, NOTIFICATION_ID, notification,
|
||||||
NOTIFICATION_ID, notification,
|
|
||||||
UserHandle.CURRENT);
|
UserHandle.CURRENT);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void cancelNotification(@NonNull Context context) {
|
/**
|
||||||
|
* Cancels a face re-enrollment notification
|
||||||
|
*/
|
||||||
|
public static void cancelReEnrollNotification(@NonNull Context context) {
|
||||||
final NotificationManager notificationManager =
|
final NotificationManager notificationManager =
|
||||||
context.getSystemService(NotificationManager.class);
|
context.getSystemService(NotificationManager.class);
|
||||||
notificationManager.cancelAsUser(NOTIFICATION_TAG, NOTIFICATION_ID, UserHandle.CURRENT);
|
notificationManager.cancelAsUser(RE_ENROLL_NOTIFICATION_TAG, NOTIFICATION_ID,
|
||||||
|
UserHandle.CURRENT);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Cancels a fingerprint bad calibration notification
|
||||||
|
*/
|
||||||
|
public static void cancelBadCalibrationNotification(@NonNull Context context) {
|
||||||
|
final NotificationManager notificationManager =
|
||||||
|
context.getSystemService(NotificationManager.class);
|
||||||
|
notificationManager.cancelAsUser(BAD_CALIBRATION_NOTIFICATION_TAG, NOTIFICATION_ID,
|
||||||
|
UserHandle.CURRENT);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -40,11 +40,11 @@ import android.util.Slog;
|
|||||||
import com.android.internal.R;
|
import com.android.internal.R;
|
||||||
import com.android.server.biometrics.Utils;
|
import com.android.server.biometrics.Utils;
|
||||||
import com.android.server.biometrics.sensors.AuthenticationClient;
|
import com.android.server.biometrics.sensors.AuthenticationClient;
|
||||||
|
import com.android.server.biometrics.sensors.BiometricNotificationUtils;
|
||||||
import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter;
|
import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter;
|
||||||
import com.android.server.biometrics.sensors.LockoutCache;
|
import com.android.server.biometrics.sensors.LockoutCache;
|
||||||
import com.android.server.biometrics.sensors.LockoutConsumer;
|
import com.android.server.biometrics.sensors.LockoutConsumer;
|
||||||
import com.android.server.biometrics.sensors.LockoutTracker;
|
import com.android.server.biometrics.sensors.LockoutTracker;
|
||||||
import com.android.server.biometrics.sensors.face.ReEnrollNotificationUtils;
|
|
||||||
import com.android.server.biometrics.sensors.face.UsageStats;
|
import com.android.server.biometrics.sensors.face.UsageStats;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -182,7 +182,7 @@ class FaceAuthenticationClient extends AuthenticationClient<ISession> implements
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case BiometricConstants.BIOMETRIC_ERROR_RE_ENROLL:
|
case BiometricConstants.BIOMETRIC_ERROR_RE_ENROLL:
|
||||||
ReEnrollNotificationUtils.showReEnrollmentNotification(getContext());
|
BiometricNotificationUtils.showReEnrollmentNotification(getContext());
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -37,11 +37,11 @@ import android.util.Slog;
|
|||||||
import com.android.internal.R;
|
import com.android.internal.R;
|
||||||
import com.android.server.biometrics.HardwareAuthTokenUtils;
|
import com.android.server.biometrics.HardwareAuthTokenUtils;
|
||||||
import com.android.server.biometrics.Utils;
|
import com.android.server.biometrics.Utils;
|
||||||
|
import com.android.server.biometrics.sensors.BiometricNotificationUtils;
|
||||||
import com.android.server.biometrics.sensors.BiometricUtils;
|
import com.android.server.biometrics.sensors.BiometricUtils;
|
||||||
import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter;
|
import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter;
|
||||||
import com.android.server.biometrics.sensors.EnrollClient;
|
import com.android.server.biometrics.sensors.EnrollClient;
|
||||||
import com.android.server.biometrics.sensors.face.FaceUtils;
|
import com.android.server.biometrics.sensors.face.FaceUtils;
|
||||||
import com.android.server.biometrics.sensors.face.ReEnrollNotificationUtils;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -92,7 +92,7 @@ public class FaceEnrollClient extends EnrollClient<ISession> {
|
|||||||
public void start(@NonNull Callback callback) {
|
public void start(@NonNull Callback callback) {
|
||||||
super.start(callback);
|
super.start(callback);
|
||||||
|
|
||||||
ReEnrollNotificationUtils.cancelNotification(getContext());
|
BiometricNotificationUtils.cancelReEnrollNotification(getContext());
|
||||||
}
|
}
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
|
|||||||
@@ -57,6 +57,7 @@ import com.android.server.biometrics.Utils;
|
|||||||
import com.android.server.biometrics.sensors.AcquisitionClient;
|
import com.android.server.biometrics.sensors.AcquisitionClient;
|
||||||
import com.android.server.biometrics.sensors.AuthenticationConsumer;
|
import com.android.server.biometrics.sensors.AuthenticationConsumer;
|
||||||
import com.android.server.biometrics.sensors.BaseClientMonitor;
|
import com.android.server.biometrics.sensors.BaseClientMonitor;
|
||||||
|
import com.android.server.biometrics.sensors.BiometricNotificationUtils;
|
||||||
import com.android.server.biometrics.sensors.BiometricScheduler;
|
import com.android.server.biometrics.sensors.BiometricScheduler;
|
||||||
import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter;
|
import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter;
|
||||||
import com.android.server.biometrics.sensors.EnumerateConsumer;
|
import com.android.server.biometrics.sensors.EnumerateConsumer;
|
||||||
@@ -68,7 +69,6 @@ import com.android.server.biometrics.sensors.PerformanceTracker;
|
|||||||
import com.android.server.biometrics.sensors.RemovalConsumer;
|
import com.android.server.biometrics.sensors.RemovalConsumer;
|
||||||
import com.android.server.biometrics.sensors.face.FaceUtils;
|
import com.android.server.biometrics.sensors.face.FaceUtils;
|
||||||
import com.android.server.biometrics.sensors.face.LockoutHalImpl;
|
import com.android.server.biometrics.sensors.face.LockoutHalImpl;
|
||||||
import com.android.server.biometrics.sensors.face.ReEnrollNotificationUtils;
|
|
||||||
import com.android.server.biometrics.sensors.face.ServiceProvider;
|
import com.android.server.biometrics.sensors.face.ServiceProvider;
|
||||||
import com.android.server.biometrics.sensors.face.UsageStats;
|
import com.android.server.biometrics.sensors.face.UsageStats;
|
||||||
|
|
||||||
@@ -574,7 +574,7 @@ public class Face10 implements IHwBinder.DeathRecipient, ServiceProvider {
|
|||||||
mHandler.post(() -> {
|
mHandler.post(() -> {
|
||||||
scheduleUpdateActiveUserWithoutHandler(userId);
|
scheduleUpdateActiveUserWithoutHandler(userId);
|
||||||
|
|
||||||
ReEnrollNotificationUtils.cancelNotification(mContext);
|
BiometricNotificationUtils.cancelReEnrollNotification(mContext);
|
||||||
|
|
||||||
final FaceEnrollClient client = new FaceEnrollClient(mContext, mLazyDaemon, token,
|
final FaceEnrollClient client = new FaceEnrollClient(mContext, mLazyDaemon, token,
|
||||||
new ClientMonitorCallbackConverter(receiver), userId, hardwareAuthToken,
|
new ClientMonitorCallbackConverter(receiver), userId, hardwareAuthToken,
|
||||||
|
|||||||
@@ -35,9 +35,9 @@ import android.util.Slog;
|
|||||||
import com.android.internal.R;
|
import com.android.internal.R;
|
||||||
import com.android.server.biometrics.Utils;
|
import com.android.server.biometrics.Utils;
|
||||||
import com.android.server.biometrics.sensors.AuthenticationClient;
|
import com.android.server.biometrics.sensors.AuthenticationClient;
|
||||||
|
import com.android.server.biometrics.sensors.BiometricNotificationUtils;
|
||||||
import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter;
|
import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter;
|
||||||
import com.android.server.biometrics.sensors.LockoutTracker;
|
import com.android.server.biometrics.sensors.LockoutTracker;
|
||||||
import com.android.server.biometrics.sensors.face.ReEnrollNotificationUtils;
|
|
||||||
import com.android.server.biometrics.sensors.face.UsageStats;
|
import com.android.server.biometrics.sensors.face.UsageStats;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -195,7 +195,7 @@ class FaceAuthenticationClient extends AuthenticationClient<IBiometricsFace> {
|
|||||||
mLastAcquire = acquireInfo;
|
mLastAcquire = acquireInfo;
|
||||||
|
|
||||||
if (acquireInfo == FaceManager.FACE_ACQUIRED_RECALIBRATE) {
|
if (acquireInfo == FaceManager.FACE_ACQUIRED_RECALIBRATE) {
|
||||||
ReEnrollNotificationUtils.showReEnrollmentNotification(getContext());
|
BiometricNotificationUtils.showReEnrollmentNotification(getContext());
|
||||||
}
|
}
|
||||||
|
|
||||||
final boolean shouldSend = shouldSend(acquireInfo, vendorCode);
|
final boolean shouldSend = shouldSend(acquireInfo, vendorCode);
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ import android.util.Slog;
|
|||||||
|
|
||||||
import com.android.server.biometrics.Utils;
|
import com.android.server.biometrics.Utils;
|
||||||
import com.android.server.biometrics.sensors.AuthenticationClient;
|
import com.android.server.biometrics.sensors.AuthenticationClient;
|
||||||
|
import com.android.server.biometrics.sensors.BiometricNotificationUtils;
|
||||||
import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter;
|
import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter;
|
||||||
import com.android.server.biometrics.sensors.LockoutCache;
|
import com.android.server.biometrics.sensors.LockoutCache;
|
||||||
import com.android.server.biometrics.sensors.LockoutConsumer;
|
import com.android.server.biometrics.sensors.LockoutConsumer;
|
||||||
@@ -102,6 +103,10 @@ class FingerprintAuthenticationClient extends AuthenticationClient<ISession> imp
|
|||||||
public void onError(int errorCode, int vendorCode) {
|
public void onError(int errorCode, int vendorCode) {
|
||||||
super.onError(errorCode, vendorCode);
|
super.onError(errorCode, vendorCode);
|
||||||
|
|
||||||
|
if (errorCode == BiometricFingerprintConstants.FINGERPRINT_ERROR_BAD_CALIBARTION) {
|
||||||
|
BiometricNotificationUtils.showBadCalibrationNotification(getContext());
|
||||||
|
}
|
||||||
|
|
||||||
UdfpsHelper.hideUdfpsOverlay(getSensorId(), mUdfpsOverlayController);
|
UdfpsHelper.hideUdfpsOverlay(getSensorId(), mUdfpsOverlayController);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ import android.os.RemoteException;
|
|||||||
import android.util.Slog;
|
import android.util.Slog;
|
||||||
|
|
||||||
import com.android.server.biometrics.HardwareAuthTokenUtils;
|
import com.android.server.biometrics.HardwareAuthTokenUtils;
|
||||||
|
import com.android.server.biometrics.sensors.BiometricNotificationUtils;
|
||||||
import com.android.server.biometrics.sensors.BiometricUtils;
|
import com.android.server.biometrics.sensors.BiometricUtils;
|
||||||
import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter;
|
import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter;
|
||||||
import com.android.server.biometrics.sensors.EnrollClient;
|
import com.android.server.biometrics.sensors.EnrollClient;
|
||||||
@@ -150,6 +151,7 @@ class FingerprintEnrollClient extends EnrollClient<ISession> implements Udfps {
|
|||||||
UdfpsHelper.getReasonFromEnrollReason(mEnrollReason),
|
UdfpsHelper.getReasonFromEnrollReason(mEnrollReason),
|
||||||
mUdfpsOverlayController, this);
|
mUdfpsOverlayController, this);
|
||||||
SidefpsHelper.showOverlay(mSidefpsController);
|
SidefpsHelper.showOverlay(mSidefpsController);
|
||||||
|
BiometricNotificationUtils.cancelBadCalibrationNotification(getContext());
|
||||||
try {
|
try {
|
||||||
mCancellationSignal = getFreshDaemon().enroll(
|
mCancellationSignal = getFreshDaemon().enroll(
|
||||||
HardwareAuthTokenUtils.toHardwareAuthToken(mHardwareAuthToken));
|
HardwareAuthTokenUtils.toHardwareAuthToken(mHardwareAuthToken));
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ import android.util.Slog;
|
|||||||
|
|
||||||
import com.android.server.biometrics.Utils;
|
import com.android.server.biometrics.Utils;
|
||||||
import com.android.server.biometrics.sensors.AuthenticationClient;
|
import com.android.server.biometrics.sensors.AuthenticationClient;
|
||||||
|
import com.android.server.biometrics.sensors.BiometricNotificationUtils;
|
||||||
import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter;
|
import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter;
|
||||||
import com.android.server.biometrics.sensors.LockoutTracker;
|
import com.android.server.biometrics.sensors.LockoutTracker;
|
||||||
import com.android.server.biometrics.sensors.fingerprint.Udfps;
|
import com.android.server.biometrics.sensors.fingerprint.Udfps;
|
||||||
@@ -111,6 +112,10 @@ class FingerprintAuthenticationClient extends AuthenticationClient<IBiometricsFi
|
|||||||
public void onError(int errorCode, int vendorCode) {
|
public void onError(int errorCode, int vendorCode) {
|
||||||
super.onError(errorCode, vendorCode);
|
super.onError(errorCode, vendorCode);
|
||||||
|
|
||||||
|
if (errorCode == BiometricFingerprintConstants.FINGERPRINT_ERROR_BAD_CALIBARTION) {
|
||||||
|
BiometricNotificationUtils.showBadCalibrationNotification(getContext());
|
||||||
|
}
|
||||||
|
|
||||||
UdfpsHelper.hideUdfpsOverlay(getSensorId(), mUdfpsOverlayController);
|
UdfpsHelper.hideUdfpsOverlay(getSensorId(), mUdfpsOverlayController);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ import android.os.IBinder;
|
|||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
import android.util.Slog;
|
import android.util.Slog;
|
||||||
|
|
||||||
|
import com.android.server.biometrics.sensors.BiometricNotificationUtils;
|
||||||
import com.android.server.biometrics.sensors.BiometricUtils;
|
import com.android.server.biometrics.sensors.BiometricUtils;
|
||||||
import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter;
|
import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter;
|
||||||
import com.android.server.biometrics.sensors.EnrollClient;
|
import com.android.server.biometrics.sensors.EnrollClient;
|
||||||
@@ -97,6 +98,7 @@ public class FingerprintEnrollClient extends EnrollClient<IBiometricsFingerprint
|
|||||||
UdfpsHelper.getReasonFromEnrollReason(mEnrollReason),
|
UdfpsHelper.getReasonFromEnrollReason(mEnrollReason),
|
||||||
mUdfpsOverlayController, this);
|
mUdfpsOverlayController, this);
|
||||||
SidefpsHelper.showOverlay(mSidefpsController);
|
SidefpsHelper.showOverlay(mSidefpsController);
|
||||||
|
BiometricNotificationUtils.cancelBadCalibrationNotification(getContext());
|
||||||
try {
|
try {
|
||||||
// GroupId was never used. In fact, groupId is always the same as userId.
|
// GroupId was never used. In fact, groupId is always the same as userId.
|
||||||
getFreshDaemon().enroll(mHardwareAuthToken, getTargetUserId(), mTimeoutSec);
|
getFreshDaemon().enroll(mHardwareAuthToken, getTargetUserId(), mTimeoutSec);
|
||||||
|
|||||||
Reference in New Issue
Block a user