Add support for Biometrics for work Source for SC

Fixes: b/266818876
Fixes: b/238870897
Test: manually tested
Change-Id: I674b89226c445399dea69e4355b124f376e7f38d
diff --git a/src/com/android/settings/biometrics/combination/CombinedBiometricStatusUtils.java b/src/com/android/settings/biometrics/combination/CombinedBiometricStatusUtils.java
index 1ca4278..d3e8fa7 100644
--- a/src/com/android/settings/biometrics/combination/CombinedBiometricStatusUtils.java
+++ b/src/com/android/settings/biometrics/combination/CombinedBiometricStatusUtils.java
@@ -20,6 +20,7 @@
 import android.hardware.biometrics.BiometricAuthenticator;
 import android.hardware.face.FaceManager;
 import android.hardware.fingerprint.FingerprintManager;
+import android.os.UserManager;
 
 import androidx.annotation.Nullable;
 
@@ -87,6 +88,18 @@
     }
 
     /**
+     * Returns the title of combined biometric settings entity.
+     */
+    public String getTitle() {
+        UserManager userManager = mContext.getSystemService(UserManager.class);
+        if (userManager != null && userManager.isProfile()) {
+            return mContext.getString(R.string.security_settings_work_biometric_preference_title);
+        } else {
+            return mContext.getString(R.string.security_settings_biometric_preference_title);
+        }
+    }
+
+    /**
      * Returns the summary of combined biometric settings entity.
      */
     public String getSummary() {
diff --git a/src/com/android/settings/biometrics/face/FaceStatusUtils.java b/src/com/android/settings/biometrics/face/FaceStatusUtils.java
index 80ffb03..7c075cc 100644
--- a/src/com/android/settings/biometrics/face/FaceStatusUtils.java
+++ b/src/com/android/settings/biometrics/face/FaceStatusUtils.java
@@ -19,6 +19,7 @@
 import android.content.Context;
 import android.hardware.biometrics.BiometricAuthenticator;
 import android.hardware.face.FaceManager;
+import android.os.UserManager;
 
 import com.android.settings.R;
 import com.android.settings.Settings;
@@ -59,6 +60,18 @@
     }
 
     /**
+     * Returns the title of face settings entity.
+     */
+    public String getTitle() {
+        UserManager userManager = mContext.getSystemService(UserManager.class);
+        if (userManager != null && userManager.isProfile()) {
+            return mContext.getString(R.string.security_settings_face_profile_preference_title);
+        } else {
+            return mContext.getString(R.string.security_settings_face_preference_title);
+        }
+    }
+
+    /**
      * Returns the summary of face settings entity.
      */
     public String getSummary() {
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtils.java b/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtils.java
index bb68994..1005e3f 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtils.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtils.java
@@ -19,6 +19,7 @@
 import android.content.Context;
 import android.hardware.biometrics.BiometricAuthenticator;
 import android.hardware.fingerprint.FingerprintManager;
+import android.os.UserManager;
 
 import com.android.settings.R;
 import com.android.settings.Utils;
@@ -59,6 +60,17 @@
         return ParentalControlsUtils.parentConsentRequired(
                 mContext, BiometricAuthenticator.TYPE_FINGERPRINT);
     }
+    /**
+     * Returns the title of fingerprint settings entity.
+     */
+    public String getTitle() {
+        UserManager userManager = mContext.getSystemService(UserManager.class);
+        if (userManager != null && userManager.isProfile()) {
+            return mContext.getString(R.string.security_settings_work_fingerprint_preference_title);
+        } else {
+            return mContext.getString(R.string.security_settings_fingerprint_preference_title);
+        }
+    }
 
     /**
      * Returns the summary of fingerprint settings entity.
diff --git a/src/com/android/settings/safetycenter/BiometricsSafetySource.java b/src/com/android/settings/safetycenter/BiometricsSafetySource.java
index d3e3189..ac486d7 100644
--- a/src/com/android/settings/safetycenter/BiometricsSafetySource.java
+++ b/src/com/android/settings/safetycenter/BiometricsSafetySource.java
@@ -27,7 +27,6 @@
 import android.safetycenter.SafetySourceData;
 import android.safetycenter.SafetySourceStatus;
 
-import com.android.settings.R;
 import com.android.settings.Utils;
 import com.android.settings.biometrics.BiometricNavigationUtils;
 import com.android.settings.biometrics.combination.CombinedBiometricStatusUtils;
@@ -63,7 +62,7 @@
             final RestrictedLockUtils.EnforcedAdmin disablingAdmin =
                     combinedBiometricStatusUtils.getDisablingAdmin();
             setBiometricSafetySourceData(context,
-                    context.getString(R.string.security_settings_biometric_preference_title),
+                    combinedBiometricStatusUtils.getTitle(),
                     combinedBiometricStatusUtils.getSummary(),
                     createPendingIntent(context,
                             biometricNavigationUtils.getBiometricSettingsIntent(context,
@@ -83,7 +82,7 @@
             final RestrictedLockUtils.EnforcedAdmin disablingAdmin =
                     faceStatusUtils.getDisablingAdmin();
             setBiometricSafetySourceData(context,
-                    context.getString(R.string.security_settings_face_preference_title),
+                    faceStatusUtils.getTitle(),
                     faceStatusUtils.getSummary(),
                     createPendingIntent(context,
                             biometricNavigationUtils.getBiometricSettingsIntent(context,
@@ -105,7 +104,7 @@
             final RestrictedLockUtils.EnforcedAdmin disablingAdmin =
                     fingerprintStatusUtils.getDisablingAdmin();
             setBiometricSafetySourceData(context,
-                    context.getString(R.string.security_settings_fingerprint_preference_title),
+                    fingerprintStatusUtils.getTitle(),
                     fingerprintStatusUtils.getSummary(),
                     createPendingIntent(context,
                             biometricNavigationUtils.getBiometricSettingsIntent(context,
diff --git a/src/com/android/settings/safetycenter/LockScreenSafetySource.java b/src/com/android/settings/safetycenter/LockScreenSafetySource.java
index bdc0a09..fb8d227 100644
--- a/src/com/android/settings/safetycenter/LockScreenSafetySource.java
+++ b/src/com/android/settings/safetycenter/LockScreenSafetySource.java
@@ -23,6 +23,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.os.UserHandle;
+import android.os.UserManager;
 import android.safetycenter.SafetyEvent;
 import android.safetycenter.SafetySourceData;
 import android.safetycenter.SafetySourceIssue;
@@ -56,6 +57,11 @@
             return;
         }
 
+        UserManager userManager = context.getSystemService(UserManager.class);
+        if (userManager != null && userManager.isProfile()) {
+            return; // LockScreen source only supports primary profile.
+        }
+
         if (!screenLockPreferenceDetailsUtils.isAvailable()) {
             return;
         }