Don't show the Fingerprint suggestion if it is disabled.
Bug: 27202317
Change-Id: I8e97e47f711961cf127fc2135dd06812236829b8
diff --git a/src/com/android/settings/dashboard/SuggestionsChecks.java b/src/com/android/settings/dashboard/SuggestionsChecks.java
index 5f140ba..5b8638a 100644
--- a/src/com/android/settings/dashboard/SuggestionsChecks.java
+++ b/src/com/android/settings/dashboard/SuggestionsChecks.java
@@ -21,6 +21,7 @@
import android.app.KeyguardManager;
import android.app.NotificationManager;
import android.app.WallpaperManager;
+import android.app.admin.DevicePolicyManager;
import android.content.Context;
import android.hardware.fingerprint.FingerprintManager;
import android.os.Bundle;
@@ -59,10 +60,11 @@
} else if (className.equals(WifiCallingSuggestionActivity.class.getName())) {
return isWifiCallingUnavailableOrEnabled();
} else if (className.equals(FingerprintSuggestionActivity.class.getName())) {
- return isNotSingleFingerprintEnrolled();
- } else if (className.equals(ScreenLockSuggestionActivity.class.getName())
- || className.equals(FingerprintEnrollSuggestionActivity.class.getName())) {
+ return isNotSingleFingerprintEnrolled() || !isFingerprintEnabled();
+ } else if (className.equals(ScreenLockSuggestionActivity.class.getName())) {
return isDeviceSecured();
+ } else if (className.equals(FingerprintEnrollSuggestionActivity.class.getName())) {
+ return isDeviceSecured() || !isFingerprintEnabled();
}
return false;
}
@@ -108,6 +110,14 @@
return false;
}
+ private boolean isFingerprintEnabled() {
+ DevicePolicyManager dpManager =
+ (DevicePolicyManager) mContext.getSystemService(Context.DEVICE_POLICY_SERVICE);
+ final int dpmFlags = dpManager.getKeyguardDisabledFeatures(null, /* admin */
+ mContext.getUserId());
+ return (dpmFlags & DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT) == 0;
+ }
+
private final IWallpaperManagerCallback mCallback = new IWallpaperManagerCallback.Stub() {
@Override
public void onWallpaperChanged() throws RemoteException {