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 abf17ed3d..73963a161 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 ea139b4b0..6a025740b 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 6fff977aa..3e5680287 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