OSDN Git Service

Fix "Skip lock screen" not working for secondary user
[android-x86/packages-apps-Settings.git] / src / com / android / settings / biometrics / face / FaceSettingsLockscreenBypassPreferenceController.java
index 15fab26..44165b8 100644 (file)
@@ -36,6 +36,10 @@ public class FaceSettingsLockscreenBypassPreferenceController
     protected FaceManager mFaceManager;
     private UserManager mUserManager;
 
+    public FaceSettingsLockscreenBypassPreferenceController(Context context) {
+        this(context, KEY);
+    }
+
     public FaceSettingsLockscreenBypassPreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
         if (context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_FACE)) {
@@ -47,10 +51,10 @@ public class FaceSettingsLockscreenBypassPreferenceController
 
     @Override
     public boolean isChecked() {
-        boolean defaultValue = mContext.getResources().getBoolean(
-                com.android.internal.R.bool.config_faceAuthDismissesKeyguard);
-        return Settings.Secure.getInt(mContext.getContentResolver(),
-                Settings.Secure.FACE_UNLOCK_DISMISSES_KEYGUARD, defaultValue ? 1 : 0) != 0;
+        int defaultValue = mContext.getResources().getBoolean(
+                com.android.internal.R.bool.config_faceAuthDismissesKeyguard) ? 1 : 0;
+        return Settings.Secure.getIntForUser(mContext.getContentResolver(),
+                Settings.Secure.FACE_UNLOCK_DISMISSES_KEYGUARD, defaultValue, getUserId()) != 0;
     }
 
     @Override
@@ -81,7 +85,8 @@ public class FaceSettingsLockscreenBypassPreferenceController
         }
 
         if (mFaceManager != null && mFaceManager.isHardwareDetected()) {
-            return mFaceManager.hasEnrolledTemplates() ? AVAILABLE : DISABLED_DEPENDENT_SETTING;
+            return mFaceManager.hasEnrolledTemplates(getUserId())
+                    ? AVAILABLE : DISABLED_DEPENDENT_SETTING;
         } else {
             return UNSUPPORTED_ON_DEVICE;
         }