From 8b0c5516b1347bfdcbe07a1e8e97d2d6aa6c4c64 Mon Sep 17 00:00:00 2001 From: Joshua Mccloskey Date: Mon, 14 Mar 2022 22:08:17 +0000 Subject: [PATCH] Fix Faceauth when camera privacy is enabled. Test: verified manually that keyguard indicates the privacy sensor is enabled when the user has a face enrolled & camera privacy enabled. Fixes: 220996930 Change-Id: I09b18b515a7aa8216d71a069cb42f5bd30006b64 --- .../src/com/android/keyguard/KeyguardUpdateMonitor.java | 6 ++---- .../sensors/face/aidl/FaceAuthenticationClient.java | 4 ++-- .../biometrics/sensors/face/aidl/FaceDetectClient.java | 3 ++- .../sensors/face/hidl/FaceAuthenticationClient.java | 3 ++- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java index 37f45644fa68e..ea3718f7dc789 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java @@ -325,7 +325,6 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab private int mActiveMobileDataSubscription = SubscriptionManager.INVALID_SUBSCRIPTION_ID; private final Executor mBackgroundExecutor; private SensorPrivacyManager mSensorPrivacyManager; - private int mFaceAuthUserId; /** * Short delay before restarting fingerprint authentication after a successful try. This should @@ -1034,8 +1033,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab boolean cameraPrivacyEnabled = false; if (mSensorPrivacyManager != null) { cameraPrivacyEnabled = mSensorPrivacyManager - .isSensorPrivacyEnabled(SensorPrivacyManager.Sensors.CAMERA, - mFaceAuthUserId); + .isSensorPrivacyEnabled(SensorPrivacyManager.TOGGLE_TYPE_SOFTWARE, + SensorPrivacyManager.Sensors.CAMERA); } if (msgId == FaceManager.FACE_ERROR_CANCELED @@ -2603,7 +2602,6 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab // This would need to be updated for multi-sensor devices final boolean supportsFaceDetection = !mFaceSensorProperties.isEmpty() && mFaceSensorProperties.get(0).supportsFaceDetection; - mFaceAuthUserId = userId; if (isEncryptedOrLockdown(userId) && supportsFaceDetection) { mFaceManager.detectFace(mFaceCancelSignal, mFaceDetectionCallback, userId); } else { diff --git a/services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceAuthenticationClient.java b/services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceAuthenticationClient.java index 7765ab3b8e536..9ae6750dbcbf4 100644 --- a/services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceAuthenticationClient.java +++ b/services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceAuthenticationClient.java @@ -136,8 +136,8 @@ class FaceAuthenticationClient extends AuthenticationClient try { if (mSensorPrivacyManager != null && mSensorPrivacyManager - .isSensorPrivacyEnabled(SensorPrivacyManager.Sensors.CAMERA, - getTargetUserId())) { + .isSensorPrivacyEnabled(SensorPrivacyManager.TOGGLE_TYPE_SOFTWARE, + SensorPrivacyManager.Sensors.CAMERA)) { onError(BiometricConstants.BIOMETRIC_ERROR_HW_UNAVAILABLE, 0 /* vendorCode */); mCallback.onClientFinished(this, false /* success */); diff --git a/services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceDetectClient.java b/services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceDetectClient.java index efedcf8152289..ded18100e4581 100644 --- a/services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceDetectClient.java +++ b/services/core/java/com/android/server/biometrics/sensors/face/aidl/FaceDetectClient.java @@ -96,7 +96,8 @@ public class FaceDetectClient extends AcquisitionClient implements protected void startHalOperation() { if (mSensorPrivacyManager != null && mSensorPrivacyManager - .isSensorPrivacyEnabled(SensorPrivacyManager.Sensors.CAMERA, getTargetUserId())) { + .isSensorPrivacyEnabled(SensorPrivacyManager.TOGGLE_TYPE_SOFTWARE, + SensorPrivacyManager.Sensors.CAMERA)) { onError(BiometricConstants.BIOMETRIC_ERROR_HW_UNAVAILABLE, 0 /* vendorCode */); mCallback.onClientFinished(this, false /* success */); return; diff --git a/services/core/java/com/android/server/biometrics/sensors/face/hidl/FaceAuthenticationClient.java b/services/core/java/com/android/server/biometrics/sensors/face/hidl/FaceAuthenticationClient.java index 8d76e9f031f76..1935a5b135d71 100644 --- a/services/core/java/com/android/server/biometrics/sensors/face/hidl/FaceAuthenticationClient.java +++ b/services/core/java/com/android/server/biometrics/sensors/face/hidl/FaceAuthenticationClient.java @@ -109,7 +109,8 @@ class FaceAuthenticationClient extends AuthenticationClient { if (mSensorPrivacyManager != null && mSensorPrivacyManager - .isSensorPrivacyEnabled(SensorPrivacyManager.Sensors.CAMERA, getTargetUserId())) { + .isSensorPrivacyEnabled(SensorPrivacyManager.TOGGLE_TYPE_SOFTWARE, + SensorPrivacyManager.Sensors.CAMERA)) { onError(BiometricFaceConstants.FACE_ERROR_HW_UNAVAILABLE, 0 /* vendorCode */); mCallback.onClientFinished(this, false /* success */); return;