summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/hardware/biometrics/BiometricConstants.java14
-rw-r--r--core/java/android/hardware/biometrics/BiometricPrompt.java37
-rw-r--r--core/java/android/hardware/biometrics/IBiometricServiceReceiver.aidl2
-rw-r--r--core/java/android/hardware/biometrics/IBiometricServiceReceiverInternal.aidl2
4 files changed, 55 insertions, 0 deletions
diff --git a/core/java/android/hardware/biometrics/BiometricConstants.java b/core/java/android/hardware/biometrics/BiometricConstants.java
index add67aa436c6..8e3f809e4f88 100644
--- a/core/java/android/hardware/biometrics/BiometricConstants.java
+++ b/core/java/android/hardware/biometrics/BiometricConstants.java
@@ -204,4 +204,18 @@ public interface BiometricConstants {
* @hide
*/
int BIOMETRIC_ACQUIRED_VENDOR_BASE = 1000;
+
+ //
+ // Internal messages.
+ //
+
+ /**
+ * See {@link BiometricPrompt.Builder#setReceiveSystemEvents(boolean)}. This message is sent
+ * immediately when the user cancels authentication for example by tapping the back button or
+ * tapping the scrim. This is before {@link #BIOMETRIC_ERROR_USER_CANCELED}, which is sent when
+ * dismissal animation completes.
+ * @hide
+ */
+ int BIOMETRIC_SYSTEM_EVENT_EARLY_USER_CANCEL = 1;
+
}
diff --git a/core/java/android/hardware/biometrics/BiometricPrompt.java b/core/java/android/hardware/biometrics/BiometricPrompt.java
index a3aa258fec35..5af7cef3e2b4 100644
--- a/core/java/android/hardware/biometrics/BiometricPrompt.java
+++ b/core/java/android/hardware/biometrics/BiometricPrompt.java
@@ -63,6 +63,7 @@ public class BiometricPrompt implements BiometricAuthenticator, BiometricConstan
/**
* @hide
*/
+ @RequiresPermission(USE_BIOMETRIC_INTERNAL)
public static final String KEY_USE_DEFAULT_TITLE = "use_default_title";
/**
* @hide
@@ -75,14 +76,17 @@ public class BiometricPrompt implements BiometricAuthenticator, BiometricConstan
/**
* @hide
*/
+ @RequiresPermission(USE_BIOMETRIC_INTERNAL)
public static final String KEY_DEVICE_CREDENTIAL_TITLE = "device_credential_title";
/**
* @hide
*/
+ @RequiresPermission(USE_BIOMETRIC_INTERNAL)
public static final String KEY_DEVICE_CREDENTIAL_SUBTITLE = "device_credential_subtitle";
/**
* @hide
*/
+ @RequiresPermission(USE_BIOMETRIC_INTERNAL)
public static final String KEY_DEVICE_CREDENTIAL_DESCRIPTION = "device_credential_description";
/**
* @hide
@@ -106,7 +110,15 @@ public class BiometricPrompt implements BiometricAuthenticator, BiometricConstan
* If this is set, check the Device Policy Manager for allowed biometrics.
* @hide
*/
+ @RequiresPermission(USE_BIOMETRIC_INTERNAL)
public static final String EXTRA_DISALLOW_BIOMETRICS_IF_POLICY_EXISTS = "check_dpm";
+ /**
+ * Request to receive system events, such as back gesture/button. See
+ * {@link AuthenticationCallback#onSystemEvent(int)}
+ * @hide
+ */
+ @RequiresPermission(USE_BIOMETRIC_INTERNAL)
+ public static final String KEY_RECEIVE_SYSTEM_EVENTS = "receive_system_events";
/**
* Error/help message will show for this amount of time.
@@ -384,6 +396,18 @@ public class BiometricPrompt implements BiometricAuthenticator, BiometricConstan
}
/**
+ * If set, receive internal events via {@link AuthenticationCallback#onSystemEvent(int)}
+ * @param set
+ * @return This builder.
+ * @hide
+ */
+ @NonNull
+ public Builder setReceiveSystemEvents(boolean set) {
+ mBundle.putBoolean(KEY_RECEIVE_SYSTEM_EVENTS, set);
+ return this;
+ }
+
+ /**
* Creates a {@link BiometricPrompt}.
*
* @return An instance of {@link BiometricPrompt}.
@@ -493,6 +517,13 @@ public class BiometricPrompt implements BiometricAuthenticator, BiometricConstan
});
}
}
+
+ @Override
+ public void onSystemEvent(int event) throws RemoteException {
+ mExecutor.execute(() -> {
+ mAuthenticationCallback.onSystemEvent(event);
+ });
+ }
};
private BiometricPrompt(Context context, Bundle bundle,
@@ -732,6 +763,12 @@ public class BiometricPrompt implements BiometricAuthenticator, BiometricConstan
*/
@Override
public void onAuthenticationAcquired(int acquireInfo) {}
+
+ /**
+ * Receiver for internal system events. See {@link Builder#setReceiveSystemEvents(boolean)}
+ * @hide
+ */
+ public void onSystemEvent(int event) {}
}
/**
diff --git a/core/java/android/hardware/biometrics/IBiometricServiceReceiver.aidl b/core/java/android/hardware/biometrics/IBiometricServiceReceiver.aidl
index 1d43aa640b40..b0cddfd3b47f 100644
--- a/core/java/android/hardware/biometrics/IBiometricServiceReceiver.aidl
+++ b/core/java/android/hardware/biometrics/IBiometricServiceReceiver.aidl
@@ -30,4 +30,6 @@ oneway interface IBiometricServiceReceiver {
void onAcquired(int acquiredInfo, String message);
// Notifies that the SystemUI dialog has been dismissed.
void onDialogDismissed(int reason);
+ // Notifies the client that an internal event, e.g. back button has occurred.
+ void onSystemEvent(int event);
}
diff --git a/core/java/android/hardware/biometrics/IBiometricServiceReceiverInternal.aidl b/core/java/android/hardware/biometrics/IBiometricServiceReceiverInternal.aidl
index e7219caf6cd8..e57abd548057 100644
--- a/core/java/android/hardware/biometrics/IBiometricServiceReceiverInternal.aidl
+++ b/core/java/android/hardware/biometrics/IBiometricServiceReceiverInternal.aidl
@@ -42,4 +42,6 @@ oneway interface IBiometricServiceReceiverInternal {
void onTryAgainPressed();
// Notifies that the user has pressed the "use password" button on SystemUI
void onDeviceCredentialPressed();
+ // Notifies the client that an internal event, e.g. back button has occurred.
+ void onSystemEvent(int event);
}