OSDN Git Service

Updated ConfirmDeviceCredential strings
[android-x86/packages-apps-Settings.git] / src / com / android / settings / password / BiometricFragment.java
index 7f09071..bd5a10d 100644 (file)
@@ -17,6 +17,7 @@
 package com.android.settings.password;
 
 import android.app.Activity;
+import android.app.admin.DevicePolicyManager;
 import android.app.settings.SettingsEnums;
 import android.content.DialogInterface;
 import android.hardware.biometrics.BiometricConstants;
@@ -32,8 +33,10 @@ import android.util.Log;
 
 import androidx.annotation.NonNull;
 
+import com.android.internal.widget.LockPatternUtils;
 import com.android.settings.R;
 import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.overlay.FeatureFactory;
 
 import java.util.concurrent.Executor;
 
@@ -137,18 +140,43 @@ public class BiometricFragment extends InstrumentedFragment {
         setRetainInstance(true);
 
         mBundle = getArguments();
-        mBiometricPrompt = new BiometricPrompt.Builder(getContext())
-            .setTitle(mBundle.getString(BiometricPrompt.KEY_TITLE))
-            .setUseDefaultTitle() // use default title if title is null/empty
-            .setFromConfirmDeviceCredential()
-            .setSubtitle(mBundle.getString(BiometricPrompt.KEY_SUBTITLE))
-            .setDescription(mBundle.getString(BiometricPrompt.KEY_DESCRIPTION))
-            .setConfirmationRequired(
-                    mBundle.getBoolean(BiometricPrompt.KEY_REQUIRE_CONFIRMATION, true))
-            .setNegativeButton(getResources().getString(
-                    R.string.confirm_device_credential_use_alternate_method),
-                    mClientExecutor, mNegativeButtonListener)
-            .build();
+        final BiometricPrompt.Builder builder = new BiometricPrompt.Builder(getContext())
+                .setTitle(mBundle.getString(BiometricPrompt.KEY_TITLE))
+                .setUseDefaultTitle() // use default title if title is null/empty
+                .setFromConfirmDeviceCredential()
+                .setSubtitle(mBundle.getString(BiometricPrompt.KEY_SUBTITLE))
+                .setDescription(mBundle.getString(BiometricPrompt.KEY_DESCRIPTION))
+                .setConfirmationRequired(
+                        mBundle.getBoolean(BiometricPrompt.KEY_REQUIRE_CONFIRMATION, true));
+
+        final LockPatternUtils lockPatternUtils = FeatureFactory.getFactory(
+                getContext())
+                .getSecurityFeatureProvider()
+                .getLockPatternUtils(getContext());
+
+        switch (lockPatternUtils.getKeyguardStoredPasswordQuality(mUserId)) {
+            case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING:
+                builder.setNegativeButton(getResources().getString(
+                        R.string.confirm_device_credential_pattern),
+                        mClientExecutor, mNegativeButtonListener);
+                break;
+            case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC:
+            case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX:
+                builder.setNegativeButton(getResources().getString(
+                        R.string.confirm_device_credential_pin),
+                        mClientExecutor, mNegativeButtonListener);
+                break;
+            case DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC:
+            case DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC:
+            case DevicePolicyManager.PASSWORD_QUALITY_COMPLEX:
+            case DevicePolicyManager.PASSWORD_QUALITY_MANAGED:
+                builder.setNegativeButton(getResources().getString(
+                        R.string.confirm_device_credential_password),
+                        mClientExecutor, mNegativeButtonListener);
+                break;
+        }
+
+        mBiometricPrompt = builder.build();
         mCancellationSignal = new CancellationSignal();
 
         // TODO: CC doesn't use crypto for now