Dynamically checks if screen lock suggestion is needed

Fixes a bug where if you upgrade a device with screen lock,
screen lock suggestion would show (upgrade such as N->N developer
builds) or from a user test case like M->N

bug:26844580
Change-Id: Ic779ff28f5895e407c2c96771dbbc622e6026a7f
This commit is contained in:
Udam Saini
2016-01-28 11:09:29 -08:00
parent 3ba50d858a
commit 62a7280cb8
4 changed files with 26 additions and 32 deletions

View File

@@ -18,6 +18,7 @@ import android.app.AutomaticZenRule;
import android.app.IWallpaperManager;
import android.app.IWallpaperManager.Stub;
import android.app.IWallpaperManagerCallback;
import android.app.KeyguardManager;
import android.app.NotificationManager;
import android.content.Context;
import android.hardware.fingerprint.FingerprintManager;
@@ -26,7 +27,9 @@ import android.os.IBinder;
import android.os.RemoteException;
import android.os.ServiceManager;
import com.android.ims.ImsManager;
import com.android.settings.Settings.FingerprintEnrollSuggestionActivity;
import com.android.settings.Settings.FingerprintSuggestionActivity;
import com.android.settings.Settings.ScreenLockSuggestionActivity;
import com.android.settings.Settings.WallpaperSuggestionActivity;
import com.android.settings.Settings.WifiCallingSuggestionActivity;
import com.android.settings.Settings.ZenModeAutomationSuggestionActivity;
@@ -55,10 +58,18 @@ public class SuggestionsChecks {
return isWifiCallingUnavailableOrEnabled();
} else if (className.equals(FingerprintSuggestionActivity.class.getName())) {
return isNotSingleFingerprintEnrolled();
} else if (className.equals(ScreenLockSuggestionActivity.class.getName())
|| className.equals(FingerprintEnrollSuggestionActivity.class.getName())) {
return isDeviceSecured();
}
return false;
}
private boolean isDeviceSecured() {
KeyguardManager km = mContext.getSystemService(KeyguardManager.class);
return km.isKeyguardSecure();
}
private boolean isNotSingleFingerprintEnrolled() {
FingerprintManager manager = mContext.getSystemService(FingerprintManager.class);
return manager == null || manager.getEnrolledFingerprints().size() != 1;