Respect admin disallow fingerprint in ConfirmDeviceCredentials

Bug: 26891832
Change-Id: I4c6377fb79fa31e6059149220c854c47ad53eda7
diff --git a/src/com/android/settings/ConfirmDeviceCredentialBaseFragment.java b/src/com/android/settings/ConfirmDeviceCredentialBaseFragment.java
index ad1d2eb..090d4be 100644
--- a/src/com/android/settings/ConfirmDeviceCredentialBaseFragment.java
+++ b/src/com/android/settings/ConfirmDeviceCredentialBaseFragment.java
@@ -83,6 +83,7 @@
         // Only take this argument into account if it belongs to the current profile.
         Intent intent = getActivity().getIntent();
         mEffectiveUserId = Utils.getUserIdFromBundle(getActivity(), intent.getExtras());
+        mAllowFpAuthentication = mAllowFpAuthentication && !isFingerprintDisabledByAdmin();
         mLockPatternUtils = new LockPatternUtils(getActivity());
     }
 
@@ -113,6 +114,13 @@
         }
     }
 
+    private boolean isFingerprintDisabledByAdmin() {
+        DevicePolicyManager dpm = (DevicePolicyManager) getActivity().getSystemService(
+                Context.DEVICE_POLICY_SERVICE);
+        final int disabledFeatures = dpm.getKeyguardDisabledFeatures(null, mEffectiveUserId);
+        return (disabledFeatures & DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT) != 0;
+    }
+
     @Override
     public void onResume() {
         super.onResume();