From c9ec8c80bca31c175076bc1f719f5c4fb44d14b1 Mon Sep 17 00:00:00 2001 From: Daniel Nishi Date: Mon, 11 Jul 2016 15:27:16 -0700 Subject: [PATCH] Don't show the Fingerprint suggestion if it is disabled. Bug: 27202317 Change-Id: I8e97e47f711961cf127fc2135dd06812236829b8 --- .../settings/dashboard/SuggestionsChecks.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/com/android/settings/dashboard/SuggestionsChecks.java b/src/com/android/settings/dashboard/SuggestionsChecks.java index 5f140ba0b0d..5b8638a8067 100644 --- a/src/com/android/settings/dashboard/SuggestionsChecks.java +++ b/src/com/android/settings/dashboard/SuggestionsChecks.java @@ -21,6 +21,7 @@ import android.app.IWallpaperManagerCallback; 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 @@ public class SuggestionsChecks { } 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 @@ public class SuggestionsChecks { 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 {