diff --git a/app/src/main/java/org/mozilla/fenix/settings/deletebrowsingdata/DeleteBrowsingDataFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/deletebrowsingdata/DeleteBrowsingDataFragment.kt
index abf17ed3d9..73963a161d 100644
--- a/app/src/main/java/org/mozilla/fenix/settings/deletebrowsingdata/DeleteBrowsingDataFragment.kt
+++ b/app/src/main/java/org/mozilla/fenix/settings/deletebrowsingdata/DeleteBrowsingDataFragment.kt
@@ -26,28 +26,56 @@ import org.mozilla.fenix.R
import org.mozilla.fenix.components.FenixSnackbar
import org.mozilla.fenix.components.metrics.Event
import org.mozilla.fenix.ext.requireComponents
+import org.mozilla.fenix.ext.settings
import org.mozilla.fenix.ext.showToolbar
+import org.mozilla.fenix.utils.Settings
@SuppressWarnings("TooManyFunctions")
class DeleteBrowsingDataFragment : Fragment(R.layout.fragment_delete_browsing_data) {
private lateinit var controller: DeleteBrowsingDataController
private var scope: CoroutineScope? = null
+ private lateinit var settings: Settings
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
controller = DefaultDeleteBrowsingDataController(requireContext())
+ settings = requireContext().settings()
getCheckboxes().forEach {
- it.onCheckListener = { _ -> updateDeleteButton() }
+ it.onCheckListener = { _ ->
+ updateDeleteButton()
+ updatePreference(it)
+ }
}
- getCheckboxes().forEach { it.isChecked = true }
+ getCheckboxes().forEach {
+ it.isChecked = when (it.id) {
+ R.id.open_tabs_item -> settings.deleteOpenTabs
+ R.id.browsing_data_item -> settings.deleteBrowsingHistory
+ R.id.cookies_item -> settings.deleteCookies
+ R.id.cached_files_item -> settings.deleteCache
+ R.id.site_permissions_item -> settings.deleteSitePermissions
+ else -> true
+ }
+ }
view.delete_data?.setOnClickListener {
askToDelete()
}
+ updateDeleteButton()
+ }
+
+ private fun updatePreference(it: DeleteBrowsingDataItem) {
+ when (it.id) {
+ R.id.open_tabs_item -> settings.deleteOpenTabs = it.isChecked
+ R.id.browsing_data_item -> settings.deleteBrowsingHistory = it.isChecked
+ R.id.cookies_item -> settings.deleteCookies = it.isChecked
+ R.id.cached_files_item -> settings.deleteCache = it.isChecked
+ R.id.site_permissions_item -> settings.deleteSitePermissions = it.isChecked
+ else -> return
+ }
}
@ExperimentalCoroutinesApi
@@ -138,10 +166,6 @@ class DeleteBrowsingDataFragment : Fragment(R.layout.fragment_delete_browsing_da
delete_browsing_data_wrapper.isClickable = true
delete_browsing_data_wrapper.alpha = ENABLED_ALPHA
- getCheckboxes().forEach {
- it.isChecked = false
- }
-
updateItemCounts()
FenixSnackbar.make(
diff --git a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt
index ea139b4b08..6a025740bb 100644
--- a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt
+++ b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt
@@ -441,6 +441,31 @@ class Settings private constructor(
default = false
)
+ var deleteOpenTabs by booleanPreference(
+ appContext.getPreferenceKey(R.string.pref_key_delete_open_tabs_now),
+ default = true
+ )
+
+ var deleteBrowsingHistory by booleanPreference(
+ appContext.getPreferenceKey(R.string.pref_key_delete_browsing_history_now),
+ default = true
+ )
+
+ var deleteCookies by booleanPreference(
+ appContext.getPreferenceKey(R.string.pref_key_delete_cookies_now),
+ default = true
+ )
+
+ var deleteCache by booleanPreference(
+ appContext.getPreferenceKey(R.string.pref_key_delete_caches_now),
+ default = true
+ )
+
+ var deleteSitePermissions by booleanPreference(
+ appContext.getPreferenceKey(R.string.pref_key_delete_permissions_now),
+ default = true
+ )
+
var shouldUseBottomToolbar by booleanPreference(
appContext.getPreferenceKey(R.string.pref_key_toolbar_bottom),
// Default accessibility users to top toolbar
diff --git a/app/src/main/res/values/preference_keys.xml b/app/src/main/res/values/preference_keys.xml
index 6fff977aae..3e5680287a 100644
--- a/app/src/main/res/values/preference_keys.xml
+++ b/app/src/main/res/values/preference_keys.xml
@@ -26,6 +26,11 @@
pref_key_delete_cookies_on_quit
pref_key_delete_caches_on_quit
pref_key_delete_permissions_on_quit
+ pref_key_delete_open_tabs_now
+ pref_key_delete_browsing_history_now
+ pref_key_delete_cookies_now
+ pref_key_delete_caches_now
+ pref_key_delete_permissions_now
pref_key_delete_browsing_data_on_quit_categories
pref_key_last_known_mode_private
pref_key_addons