Move bypass default value to framework
It also needs to be read from Settings
Bug: 130327302
Test: make
Test: toggle setting on Settings app
Change-Id: I46b7e61764e4bc9a07110e4b0b25deb7bc0b88f1
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index fb58569..483ec37 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -4117,6 +4117,9 @@
<integer-array name="config_face_acquire_vendor_biometricprompt_ignorelist" translatable="false" >
</integer-array>
+ <!-- If face auth sends the user directly to home/last open app, or stays on keyguard -->
+ <bool name="config_faceAuthDismissesKeyguard">true</bool>
+
<!-- The component name for the default profile supervisor, which can be set as a profile owner
even after user setup is complete. The defined component should be used for supervision purposes
only. The component must be part of a system app. -->
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index d910be9..7563a45 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -2581,6 +2581,7 @@
<java-symbol type="array" name="config_face_acquire_vendor_keyguard_ignorelist" />
<java-symbol type="array" name="config_face_acquire_biometricprompt_ignorelist" />
<java-symbol type="array" name="config_face_acquire_vendor_biometricprompt_ignorelist" />
+ <java-symbol type="bool" name="config_faceAuthDismissesKeyguard" />
<!-- Face config -->
<java-symbol type="integer" name="config_faceMaxTemplatesPerUser" />
diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml
index 19e7b73..6039568 100644
--- a/packages/SystemUI/res/values/config.xml
+++ b/packages/SystemUI/res/values/config.xml
@@ -40,9 +40,6 @@
<!-- Whether or not we show the number in the bar. -->
<bool name="config_statusBarShowNumber">false</bool>
- <!-- If the lock screen should be dismissed after biometric auth. -->
- <bool name="config_faceAuthDismissesKeyguard">false</bool>
-
<!-- Vibrator pattern for camera gesture launch. -->
<integer-array translatable="false" name="config_cameraLaunchGestureVibePattern">
<item>0</item>
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBypassController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBypassController.kt
index 5b5eb76..5abf39e7 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBypassController.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBypassController.kt
@@ -17,10 +17,10 @@
package com.android.systemui.statusbar.phone
import android.content.Context
+import android.hardware.face.FaceManager
import android.provider.Settings
import com.android.internal.annotations.VisibleForTesting
import com.android.keyguard.KeyguardUpdateMonitor
-import com.android.systemui.R
import com.android.systemui.tuner.TunerService
import javax.inject.Inject
@@ -32,8 +32,13 @@
@Inject
constructor(context: Context,
tunerService: TunerService) {
- val dismissByDefault = if (context.getResources().getBoolean(
- R.bool.config_faceAuthDismissesKeyguard)) 1 else 0
+ val faceManager = context.getSystemService(FaceManager::class.java)
+ if (faceManager?.isHardwareDetected != true) {
+ return
+ }
+
+ val dismissByDefault = if (context.resources.getBoolean(
+ com.android.internal.R.bool.config_faceAuthDismissesKeyguard)) 1 else 0
tunerService.addTunable(
object : TunerService.Tunable {
override fun onTuningChanged(key: String?, newValue: String?) {