Merge "Read and cache features when user switches" into rvc-qpr-dev

This commit is contained in:
Joshua Mccloskey
2020-09-17 21:22:28 +00:00
committed by Android (Google) Code Review

View File

@@ -33,6 +33,7 @@ import android.content.Intent;
import android.content.pm.UserInfo; import android.content.pm.UserInfo;
import android.hardware.biometrics.BiometricAuthenticator; import android.hardware.biometrics.BiometricAuthenticator;
import android.hardware.biometrics.BiometricConstants; import android.hardware.biometrics.BiometricConstants;
import android.hardware.biometrics.BiometricFaceConstants;
import android.hardware.biometrics.BiometricsProtoEnums; import android.hardware.biometrics.BiometricsProtoEnums;
import android.hardware.biometrics.IBiometricServiceLockoutResetCallback; import android.hardware.biometrics.IBiometricServiceLockoutResetCallback;
import android.hardware.biometrics.IBiometricServiceReceiverInternal; import android.hardware.biometrics.IBiometricServiceReceiverInternal;
@@ -604,6 +605,8 @@ public class FaceService extends BiometricServiceBase {
return false; return false;
} }
getFeature(userId, BiometricFaceConstants.FEATURE_REQUIRE_ATTENTION,
null /* receiver */, opPackageName);
return FaceService.this.hasEnrolledBiometrics(userId); return FaceService.this.hasEnrolledBiometrics(userId);
} }
@@ -692,7 +695,20 @@ public class FaceService extends BiometricServiceBase {
if (mDaemon != null) { if (mDaemon != null) {
try { try {
OptionalBool result = mDaemon.getFeature(feature, faceId); OptionalBool result = mDaemon.getFeature(feature, faceId);
receiver.onFeatureGet(result.status == Status.OK, feature, result.value); if (receiver != null) {
receiver.onFeatureGet(result.status == Status.OK,
feature, result.value);
}
if (result.status == Status.OK
&& feature == BiometricFaceConstants.FEATURE_REQUIRE_ATTENTION) {
final int settingsValue = result.value ? 1 : 0;
Slog.d(TAG, "Updating attention value for user: " + mCurrentUserId
+ " to value: " + settingsValue);
Settings.Secure.putIntForUser(getContext().getContentResolver(),
Settings.Secure.FACE_UNLOCK_ATTENTION_REQUIRED,
settingsValue, mCurrentUserId);
}
} catch (RemoteException e) { } catch (RemoteException e) {
Slog.e(getTag(), "Unable to getRequireAttention", e); Slog.e(getTag(), "Unable to getRequireAttention", e);
} }