UpdatesPreference: Hide frequency and restriction pref as needed
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
@@ -51,15 +51,12 @@ class UpdatesPreference : BasePreferenceFragment() {
|
|||||||
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
||||||
setPreferencesFromResource(R.xml.preferences_updates, rootKey)
|
setPreferencesFromResource(R.xml.preferences_updates, rootKey)
|
||||||
|
|
||||||
findPreference<ListPreference>(PREFERENCE_UPDATES_AUTO)?.setOnPreferenceChangeListener { _, newValue ->
|
val updatesEnabled = Preferences.getInteger(requireContext(), PREFERENCE_UPDATES_AUTO) != 0
|
||||||
val updateRestrictionsPref = findPreference<Preference>(PREFERENCES_UPDATES_RESTRICTIONS)
|
|
||||||
val updateCheckIntervalPref =
|
|
||||||
findPreference<SeekBarPreference>(PREFERENCE_UPDATES_CHECK_INTERVAL)
|
|
||||||
|
|
||||||
|
findPreference<ListPreference>(PREFERENCE_UPDATES_AUTO)?.setOnPreferenceChangeListener { _, newValue ->
|
||||||
when (UpdateMode.entries[newValue.toString().toInt()]) {
|
when (UpdateMode.entries[newValue.toString().toInt()]) {
|
||||||
UpdateMode.DISABLED -> {
|
UpdateMode.DISABLED -> {
|
||||||
updateRestrictionsPref?.isEnabled = false
|
handleAutoUpdateDependentPrefs(false)
|
||||||
updateCheckIntervalPref?.isEnabled = false
|
|
||||||
viewModel.updateHelper.cancelAutomatedCheck()
|
viewModel.updateHelper.cancelAutomatedCheck()
|
||||||
requireContext().save(PREFERENCE_UPDATES_AUTO, 0)
|
requireContext().save(PREFERENCE_UPDATES_AUTO, 0)
|
||||||
true
|
true
|
||||||
@@ -67,15 +64,13 @@ class UpdatesPreference : BasePreferenceFragment() {
|
|||||||
|
|
||||||
UpdateMode.CHECK_AND_NOTIFY -> {
|
UpdateMode.CHECK_AND_NOTIFY -> {
|
||||||
if (permissionProvider.isGranted(PermissionType.POST_NOTIFICATIONS)) {
|
if (permissionProvider.isGranted(PermissionType.POST_NOTIFICATIONS)) {
|
||||||
updateRestrictionsPref?.isEnabled = true
|
handleAutoUpdateDependentPrefs(true)
|
||||||
updateCheckIntervalPref?.isEnabled = true
|
|
||||||
viewModel.updateHelper.scheduleAutomatedCheck()
|
viewModel.updateHelper.scheduleAutomatedCheck()
|
||||||
true
|
true
|
||||||
} else {
|
} else {
|
||||||
permissionProvider.request(PermissionType.POST_NOTIFICATIONS) {
|
permissionProvider.request(PermissionType.POST_NOTIFICATIONS) {
|
||||||
if (it) {
|
if (it) {
|
||||||
updateRestrictionsPref?.isEnabled = true
|
handleAutoUpdateDependentPrefs(true)
|
||||||
updateCheckIntervalPref?.isEnabled = true
|
|
||||||
requireContext().save(PREFERENCE_UPDATES_AUTO, 1)
|
requireContext().save(PREFERENCE_UPDATES_AUTO, 1)
|
||||||
viewModel.updateHelper.scheduleAutomatedCheck()
|
viewModel.updateHelper.scheduleAutomatedCheck()
|
||||||
activity?.recreate()
|
activity?.recreate()
|
||||||
@@ -87,15 +82,13 @@ class UpdatesPreference : BasePreferenceFragment() {
|
|||||||
|
|
||||||
UpdateMode.CHECK_AND_INSTALL -> {
|
UpdateMode.CHECK_AND_INSTALL -> {
|
||||||
if (permissionProvider.isGranted(PermissionType.DOZE_WHITELIST)) {
|
if (permissionProvider.isGranted(PermissionType.DOZE_WHITELIST)) {
|
||||||
updateRestrictionsPref?.isEnabled = true
|
handleAutoUpdateDependentPrefs(true)
|
||||||
updateCheckIntervalPref?.isEnabled = true
|
|
||||||
viewModel.updateHelper.scheduleAutomatedCheck()
|
viewModel.updateHelper.scheduleAutomatedCheck()
|
||||||
true
|
true
|
||||||
} else {
|
} else {
|
||||||
permissionProvider.request(PermissionType.DOZE_WHITELIST) {
|
permissionProvider.request(PermissionType.DOZE_WHITELIST) {
|
||||||
if (it) {
|
if (it) {
|
||||||
updateRestrictionsPref?.isEnabled = true
|
handleAutoUpdateDependentPrefs(true)
|
||||||
updateCheckIntervalPref?.isEnabled = true
|
|
||||||
requireContext().save(PREFERENCE_UPDATES_AUTO, 2)
|
requireContext().save(PREFERENCE_UPDATES_AUTO, 2)
|
||||||
viewModel.updateHelper.scheduleAutomatedCheck()
|
viewModel.updateHelper.scheduleAutomatedCheck()
|
||||||
activity?.recreate()
|
activity?.recreate()
|
||||||
@@ -109,21 +102,7 @@ class UpdatesPreference : BasePreferenceFragment() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
findPreference<Preference>(PREFERENCES_UPDATES_RESTRICTIONS)?.apply {
|
handleAutoUpdateDependentPrefs(updatesEnabled)
|
||||||
isEnabled = Preferences.getInteger(requireContext(), PREFERENCE_UPDATES_AUTO) != 0
|
|
||||||
setOnPreferenceClickListener {
|
|
||||||
findNavController().navigate(R.id.updatesRestrictionsDialog)
|
|
||||||
true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
findPreference<SeekBarPreference>(PREFERENCE_UPDATES_CHECK_INTERVAL)?.apply {
|
|
||||||
isEnabled = Preferences.getInteger(requireContext(), PREFERENCE_UPDATES_AUTO) != 0
|
|
||||||
setOnPreferenceChangeListener { _, _ ->
|
|
||||||
viewModel.updateHelper.updateAutomatedCheck()
|
|
||||||
true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
findPreference<SwitchPreferenceCompat>(PREFERENCE_FILTER_AURORA_ONLY)
|
findPreference<SwitchPreferenceCompat>(PREFERENCE_FILTER_AURORA_ONLY)
|
||||||
?.setOnPreferenceChangeListener { _, newValue ->
|
?.setOnPreferenceChangeListener { _, newValue ->
|
||||||
@@ -155,4 +134,24 @@ class UpdatesPreference : BasePreferenceFragment() {
|
|||||||
setNavigationOnClickListener { findNavController().navigateUp() }
|
setNavigationOnClickListener { findNavController().navigateUp() }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun handleAutoUpdateDependentPrefs(enabled: Boolean) {
|
||||||
|
findPreference<Preference>(PREFERENCES_UPDATES_RESTRICTIONS)?.apply {
|
||||||
|
isEnabled = enabled
|
||||||
|
isVisible = enabled
|
||||||
|
setOnPreferenceClickListener {
|
||||||
|
findNavController().navigate(R.id.updatesRestrictionsDialog)
|
||||||
|
true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
findPreference<SeekBarPreference>(PREFERENCE_UPDATES_CHECK_INTERVAL)?.apply {
|
||||||
|
isEnabled = enabled
|
||||||
|
isVisible = enabled
|
||||||
|
setOnPreferenceChangeListener { _, _ ->
|
||||||
|
viewModel.updateHelper.updateAutomatedCheck()
|
||||||
|
true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user