From 6aa94b2a8146385ecde01dd240ef8b4499ac0a2b Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Tue, 18 Feb 2025 16:07:23 +0800 Subject: [PATCH] UpdatesPreference: Hide frequency and restriction pref as needed Signed-off-by: Aayush Gupta --- .../preferences/updates/UpdatesPreference.kt | 57 +++++++++---------- 1 file changed, 28 insertions(+), 29 deletions(-) diff --git a/app/src/main/java/com/aurora/store/view/ui/preferences/updates/UpdatesPreference.kt b/app/src/main/java/com/aurora/store/view/ui/preferences/updates/UpdatesPreference.kt index 02c511071..8e3a31f26 100644 --- a/app/src/main/java/com/aurora/store/view/ui/preferences/updates/UpdatesPreference.kt +++ b/app/src/main/java/com/aurora/store/view/ui/preferences/updates/UpdatesPreference.kt @@ -51,15 +51,12 @@ class UpdatesPreference : BasePreferenceFragment() { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { setPreferencesFromResource(R.xml.preferences_updates, rootKey) - findPreference(PREFERENCE_UPDATES_AUTO)?.setOnPreferenceChangeListener { _, newValue -> - val updateRestrictionsPref = findPreference(PREFERENCES_UPDATES_RESTRICTIONS) - val updateCheckIntervalPref = - findPreference(PREFERENCE_UPDATES_CHECK_INTERVAL) + val updatesEnabled = Preferences.getInteger(requireContext(), PREFERENCE_UPDATES_AUTO) != 0 + findPreference(PREFERENCE_UPDATES_AUTO)?.setOnPreferenceChangeListener { _, newValue -> when (UpdateMode.entries[newValue.toString().toInt()]) { UpdateMode.DISABLED -> { - updateRestrictionsPref?.isEnabled = false - updateCheckIntervalPref?.isEnabled = false + handleAutoUpdateDependentPrefs(false) viewModel.updateHelper.cancelAutomatedCheck() requireContext().save(PREFERENCE_UPDATES_AUTO, 0) true @@ -67,15 +64,13 @@ class UpdatesPreference : BasePreferenceFragment() { UpdateMode.CHECK_AND_NOTIFY -> { if (permissionProvider.isGranted(PermissionType.POST_NOTIFICATIONS)) { - updateRestrictionsPref?.isEnabled = true - updateCheckIntervalPref?.isEnabled = true + handleAutoUpdateDependentPrefs(true) viewModel.updateHelper.scheduleAutomatedCheck() true } else { permissionProvider.request(PermissionType.POST_NOTIFICATIONS) { if (it) { - updateRestrictionsPref?.isEnabled = true - updateCheckIntervalPref?.isEnabled = true + handleAutoUpdateDependentPrefs(true) requireContext().save(PREFERENCE_UPDATES_AUTO, 1) viewModel.updateHelper.scheduleAutomatedCheck() activity?.recreate() @@ -87,15 +82,13 @@ class UpdatesPreference : BasePreferenceFragment() { UpdateMode.CHECK_AND_INSTALL -> { if (permissionProvider.isGranted(PermissionType.DOZE_WHITELIST)) { - updateRestrictionsPref?.isEnabled = true - updateCheckIntervalPref?.isEnabled = true + handleAutoUpdateDependentPrefs(true) viewModel.updateHelper.scheduleAutomatedCheck() true } else { permissionProvider.request(PermissionType.DOZE_WHITELIST) { if (it) { - updateRestrictionsPref?.isEnabled = true - updateCheckIntervalPref?.isEnabled = true + handleAutoUpdateDependentPrefs(true) requireContext().save(PREFERENCE_UPDATES_AUTO, 2) viewModel.updateHelper.scheduleAutomatedCheck() activity?.recreate() @@ -109,21 +102,7 @@ class UpdatesPreference : BasePreferenceFragment() { } } - findPreference(PREFERENCES_UPDATES_RESTRICTIONS)?.apply { - isEnabled = Preferences.getInteger(requireContext(), PREFERENCE_UPDATES_AUTO) != 0 - setOnPreferenceClickListener { - findNavController().navigate(R.id.updatesRestrictionsDialog) - true - } - } - - findPreference(PREFERENCE_UPDATES_CHECK_INTERVAL)?.apply { - isEnabled = Preferences.getInteger(requireContext(), PREFERENCE_UPDATES_AUTO) != 0 - setOnPreferenceChangeListener { _, _ -> - viewModel.updateHelper.updateAutomatedCheck() - true - } - } + handleAutoUpdateDependentPrefs(updatesEnabled) findPreference(PREFERENCE_FILTER_AURORA_ONLY) ?.setOnPreferenceChangeListener { _, newValue -> @@ -155,4 +134,24 @@ class UpdatesPreference : BasePreferenceFragment() { setNavigationOnClickListener { findNavController().navigateUp() } } } + + private fun handleAutoUpdateDependentPrefs(enabled: Boolean) { + findPreference(PREFERENCES_UPDATES_RESTRICTIONS)?.apply { + isEnabled = enabled + isVisible = enabled + setOnPreferenceClickListener { + findNavController().navigate(R.id.updatesRestrictionsDialog) + true + } + } + + findPreference(PREFERENCE_UPDATES_CHECK_INTERVAL)?.apply { + isEnabled = enabled + isVisible = enabled + setOnPreferenceChangeListener { _, _ -> + viewModel.updateHelper.updateAutomatedCheck() + true + } + } + } }