From ff7f0e0a600b2068973236f3478c4bc06c639e11 Mon Sep 17 00:00:00 2001 From: J-Jamet Date: Thu, 21 Feb 2019 16:25:00 +0100 Subject: [PATCH] Add option for back lock --- .../keepass/activities/GroupActivity.java | 14 +++++++++++++- .../keepass/settings/PreferencesUtil.java | 7 ++++++- app/src/main/res/values/donottranslate.xml | 2 ++ app/src/main/res/values/strings.xml | 2 ++ app/src/main/res/xml/application_preferences.xml | 5 +++++ 5 files changed, 28 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/kunzisoft/keepass/activities/GroupActivity.java b/app/src/main/java/com/kunzisoft/keepass/activities/GroupActivity.java index 9061e63fe..57e530b4b 100644 --- a/app/src/main/java/com/kunzisoft/keepass/activities/GroupActivity.java +++ b/app/src/main/java/com/kunzisoft/keepass/activities/GroupActivity.java @@ -1214,7 +1214,19 @@ public class GroupActivity extends LockingActivity @Override public void onBackPressed() { - super.onBackPressed(); + + // Normal way when we are not in root + if (!rootGroup.equals(mCurrentGroup)) + super.onBackPressed(); + // Else lock if needed + else { + if (PreferencesUtil.isLockDatabaseWhenBackButtonOnRootClicked(this)) { + App.getDB().clear(getApplicationContext()); + super.onBackPressed(); + } else { + moveTaskToBack(true); + } + } listNodesFragment = (ListNodesFragment) getSupportFragmentManager().findFragmentByTag(LIST_NODES_FRAGMENT_TAG); // to refresh fragment diff --git a/app/src/main/java/com/kunzisoft/keepass/settings/PreferencesUtil.java b/app/src/main/java/com/kunzisoft/keepass/settings/PreferencesUtil.java index e25c3d538..e40d75832 100644 --- a/app/src/main/java/com/kunzisoft/keepass/settings/PreferencesUtil.java +++ b/app/src/main/java/com/kunzisoft/keepass/settings/PreferencesUtil.java @@ -22,7 +22,6 @@ package com.kunzisoft.keepass.settings; import android.content.Context; import android.content.SharedPreferences; import android.preference.PreferenceManager; -import android.util.TypedValue; import com.kunzisoft.keepass.R; import com.kunzisoft.keepass.database.SortNodeEnum; @@ -99,6 +98,12 @@ public class PreferencesUtil { ctx.getResources().getBoolean(R.bool.lock_database_screen_off_default)); } + public static boolean isLockDatabaseWhenBackButtonOnRootClicked(Context ctx) { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); + return prefs.getBoolean(ctx.getString(R.string.lock_database_back_root_key), + ctx.getResources().getBoolean(R.bool.lock_database_back_root_default)); + } + public static boolean isFingerprintEnable(Context ctx) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); return prefs.getBoolean(ctx.getString(R.string.fingerprint_enable_key), diff --git a/app/src/main/res/values/donottranslate.xml b/app/src/main/res/values/donottranslate.xml index a87461203..4155e7112 100644 --- a/app/src/main/res/values/donottranslate.xml +++ b/app/src/main/res/values/donottranslate.xml @@ -76,6 +76,8 @@ app_timeout_key lock_database_screen_off_key true + lock_database_back_root_key + true password_length_key list_password_generator_options_key maskpass diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7d4d44cce..0ac961cdd 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -230,6 +230,8 @@ Lock Screen lock Lock the database when the screen is off + Back lock + Lock the database when the user clicks the back button on the root screen How to set up fingerprint scanning for quick unlocking? Save your scanned fingerprint for your device in diff --git a/app/src/main/res/xml/application_preferences.xml b/app/src/main/res/xml/application_preferences.xml index e5fb43863..4436828df 100644 --- a/app/src/main/res/xml/application_preferences.xml +++ b/app/src/main/res/xml/application_preferences.xml @@ -63,6 +63,11 @@ android:title="@string/lock_database_screen_off_title" android:summary="@string/lock_database_screen_off_summary" android:defaultValue="@bool/lock_database_screen_off_default"/> +