From 2e05c24b4d79797036a30dc9db8d832e5d28695d Mon Sep 17 00:00:00 2001 From: Trevor Terris Date: Fri, 7 May 2021 15:34:13 -0400 Subject: [PATCH] Add toggle to disable "Press back again to exit" Add toggle to settings activity for the "Press back again to exit" functionality. Defaults to true (current behavior). --- .../pro/activities/MainActivity.kt | 2 +- .../pro/activities/SettingsActivity.kt | 19 +++++++++++++++ .../filemanager/pro/helpers/Config.kt | 4 ++++ .../filemanager/pro/helpers/Constants.kt | 1 + app/src/main/res/layout/activity_settings.xml | 23 +++++++++++++++++++ app/src/main/res/values/strings.xml | 1 + 6 files changed, 49 insertions(+), 1 deletion(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/activities/MainActivity.kt index 9148f9f0..d8eb3df9 100644 --- a/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/activities/MainActivity.kt @@ -330,7 +330,7 @@ class MainActivity : SimpleActivity() { override fun onBackPressed() { if (fragment.mView.breadcrumbs.childCount <= 1) { - if (!wasBackJustPressed) { + if (!wasBackJustPressed && config.pressBackTwice) { wasBackJustPressed = true toast(R.string.press_back_again) Handler().postDelayed({ diff --git a/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/activities/SettingsActivity.kt b/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/activities/SettingsActivity.kt index 5ad2ec39..ff692f1f 100644 --- a/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/activities/SettingsActivity.kt @@ -31,6 +31,7 @@ class SettingsActivity : SimpleActivity() { setupChangeDateTimeFormat() setupFontSize() setupShowHidden() + setupPressBackTwice() setupHiddenItemPasswordProtection() setupAppPasswordProtection() setupFileDeletionPasswordProtection() @@ -115,6 +116,24 @@ class SettingsActivity : SimpleActivity() { config.showHidden = settings_show_hidden.isChecked } + private fun setupPressBackTwice() { + settings_press_back_twice.isChecked = config.pressBackTwice + settings_press_back_twice_holder.setOnClickListener { + if (config.pressBackTwice) { + togglePressBackTwice() + } else { + handleHiddenFolderPasswordProtection { + togglePressBackTwice() + } + } + } + } + + private fun togglePressBackTwice() { + settings_press_back_twice.toggle() + config.pressBackTwice = settings_press_back_twice.isChecked + } + private fun setupHiddenItemPasswordProtection() { settings_password_protection.isChecked = config.isHiddenPasswordProtectionOn settings_password_protection_holder.setOnClickListener { diff --git a/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/helpers/Config.kt b/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/helpers/Config.kt index e5d12264..20ac05a7 100644 --- a/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/helpers/Config.kt +++ b/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/helpers/Config.kt @@ -22,6 +22,10 @@ class Config(context: Context) : BaseConfig(context) { var shouldShowHidden = showHidden || temporarilyShowHidden + var pressBackTwice: Boolean + get() = prefs.getBoolean(PRESS_BACK_TWICE, true) + set(pressBackTwice) = prefs.edit().putBoolean(PRESS_BACK_TWICE, pressBackTwice).apply() + var homeFolder: String get(): String { var path = prefs.getString(HOME_FOLDER, "")!! diff --git a/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/helpers/Constants.kt b/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/helpers/Constants.kt index c7849e50..67226614 100644 --- a/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/helpers/Constants.kt +++ b/app/src/main/kotlin/com/simplemobiletools/filemanager/pro/helpers/Constants.kt @@ -5,6 +5,7 @@ const val MAX_COLUMN_COUNT = 20 // shared preferences const val SHOW_HIDDEN = "show_hidden" +const val PRESS_BACK_TWICE = "press_back_twice" const val HOME_FOLDER = "home_folder" const val TEMPORARILY_SHOW_HIDDEN = "temporarily_show_hidden" const val IS_ROOT_AVAILABLE = "is_root_available" diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index 5b4e3d3a..34929270 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -129,6 +129,29 @@ + + + + + + Enable root access + Press back twice to exit