diff --git a/app/src/main/java/eu/faircode/email/Helper.java b/app/src/main/java/eu/faircode/email/Helper.java index 7029a35cc6..c227ee1a67 100644 --- a/app/src/main/java/eu/faircode/email/Helper.java +++ b/app/src/main/java/eu/faircode/email/Helper.java @@ -24,6 +24,7 @@ import android.app.Activity; import android.app.KeyguardManager; import android.content.ActivityNotFoundException; import android.content.ComponentName; +import android.content.ContentResolver; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; @@ -44,6 +45,7 @@ import android.os.LocaleList; import android.os.Parcel; import android.os.PowerManager; import android.os.StatFs; +import android.provider.Settings; import android.security.KeyChain; import android.security.KeyChainAliasCallback; import android.security.KeyChainException; @@ -411,10 +413,19 @@ public class Helper { } static boolean isSecure(Context context) { - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); - boolean biometrics = prefs.getBoolean("biometrics", false); - String pin = prefs.getString("pin", null); - return (biometrics || !TextUtils.isEmpty(pin)); + try { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) { + ContentResolver resolver = context.getContentResolver(); + int enabled = Settings.System.getInt(resolver, Settings.System.LOCK_PATTERN_ENABLED, 0); + return (enabled != 0); + } else { + KeyguardManager kgm = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE); + return (kgm != null && kgm.isDeviceSecure()); + } + } catch (Throwable ex) { + Log.e(ex); + return false; + } } static boolean isOpenKeychainInstalled(Context context) {