From 830c05839a808e408581a30a80d6176c0cb4f543 Mon Sep 17 00:00:00 2001 From: M66B Date: Fri, 6 Sep 2019 11:08:48 +0200 Subject: [PATCH] Prevent importing biometrics without available sensor --- .../java/eu/faircode/email/ActivitySetup.java | 34 +++++++++++-------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/ActivitySetup.java b/app/src/main/java/eu/faircode/email/ActivitySetup.java index 9cb8a05049..2ea4d3ad7e 100644 --- a/app/src/main/java/eu/faircode/email/ActivitySetup.java +++ b/app/src/main/java/eu/faircode/email/ActivitySetup.java @@ -881,20 +881,26 @@ public class ActivitySetup extends ActivityBase implements FragmentManager.OnBac for (int s = 0; s < jsettings.length(); s++) { JSONObject jsetting = (JSONObject) jsettings.get(s); String key = jsetting.getString("key"); - if (!"pro".equals(key) || BuildConfig.DEBUG) { - Object value = jsetting.get("value"); - if (value instanceof Boolean) - editor.putBoolean(key, (Boolean) value); - else if (value instanceof Integer) - editor.putInt(key, (Integer) value); - else if (value instanceof Long) - editor.putLong(key, (Long) value); - else if (value instanceof String) - editor.putString(key, (String) value); - else - throw new IllegalArgumentException("Unknown settings type key=" + key); - Log.i("Imported setting=" + key); - } + + if ("pro".equals(key) && !BuildConfig.DEBUG) + continue; + + if ("biometrics".equals(key) && !Helper.canAuthenticate(context)) + continue; + + Object value = jsetting.get("value"); + if (value instanceof Boolean) + editor.putBoolean(key, (Boolean) value); + else if (value instanceof Integer) + editor.putInt(key, (Integer) value); + else if (value instanceof Long) + editor.putLong(key, (Long) value); + else if (value instanceof String) + editor.putString(key, (String) value); + else + throw new IllegalArgumentException("Unknown settings type key=" + key); + + Log.i("Imported setting=" + key); } editor.apply(); ApplicationEx.upgrade(context);