From 4e8d2cd78a88492e685931fc4538df67c8eb4afb Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Tue, 20 Feb 2024 18:49:37 +0530 Subject: [PATCH] UpdatesPreferences: Fix updating the work frequency Missed during 3339d4a395ed04e12e090b97c0467a1bdf27b028 Signed-off-by: Aayush Gupta --- .../com/aurora/store/data/work/UpdateWorker.kt | 15 +++++++++++---- .../view/ui/preferences/UpdatesPreference.kt | 12 ++++++------ 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/aurora/store/data/work/UpdateWorker.kt b/app/src/main/java/com/aurora/store/data/work/UpdateWorker.kt index 40d45445a..31f6952a0 100644 --- a/app/src/main/java/com/aurora/store/data/work/UpdateWorker.kt +++ b/app/src/main/java/com/aurora/store/data/work/UpdateWorker.kt @@ -14,6 +14,7 @@ import androidx.work.CoroutineWorker import androidx.work.ExistingPeriodicWorkPolicy.KEEP import androidx.work.ForegroundInfo import androidx.work.NetworkType +import androidx.work.PeriodicWorkRequest import androidx.work.PeriodicWorkRequestBuilder import androidx.work.WorkManager import androidx.work.WorkerParameters @@ -59,7 +60,16 @@ class UpdateWorker @AssistedInject constructor( fun scheduleAutomatedCheck(context: Context) { Log.i("Scheduling periodic app updates!") + WorkManager.getInstance(context) + .enqueueUniquePeriodicWork(UPDATE_WORKER, KEEP, buildUpdateWork(context)) + } + fun updateAutomatedCheck(context: Context) { + Log.i("Updating periodic app updates!") + WorkManager.getInstance(context).updateWork(buildUpdateWork(context)) + } + + private fun buildUpdateWork(context: Context): PeriodicWorkRequest { val updateCheckInterval = Preferences.getInteger( context, PREFERENCE_UPDATES_CHECK_INTERVAL, @@ -72,15 +82,12 @@ class UpdateWorker @AssistedInject constructor( if (isMAndAbove()) constraints.setRequiresDeviceIdle(true) - val workRequest = PeriodicWorkRequestBuilder( + return PeriodicWorkRequestBuilder( repeatInterval = updateCheckInterval, repeatIntervalTimeUnit = HOURS, flexTimeInterval = 30, flexTimeIntervalUnit = MINUTES ).setConstraints(constraints.build()).build() - - val workManager = WorkManager.getInstance(context) - workManager.enqueueUniquePeriodicWork(UPDATE_WORKER, KEEP, workRequest) } } diff --git a/app/src/main/java/com/aurora/store/view/ui/preferences/UpdatesPreference.kt b/app/src/main/java/com/aurora/store/view/ui/preferences/UpdatesPreference.kt index ff9b06af3..3f66c8345 100644 --- a/app/src/main/java/com/aurora/store/view/ui/preferences/UpdatesPreference.kt +++ b/app/src/main/java/com/aurora/store/view/ui/preferences/UpdatesPreference.kt @@ -33,7 +33,6 @@ import com.aurora.store.R import com.aurora.store.data.work.SelfUpdateWorker import com.aurora.store.data.work.UpdateWorker import com.aurora.store.util.CertUtil -import com.aurora.store.util.Preferences import com.aurora.store.util.Preferences.PREFERENCE_SELF_UPDATE import com.aurora.store.util.Preferences.PREFERENCE_UPDATES_AUTO import com.aurora.store.util.Preferences.PREFERENCE_UPDATES_CHECK_INTERVAL @@ -47,9 +46,6 @@ class UpdatesPreference : PreferenceFragmentCompat() { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { setPreferencesFromResource(R.xml.preferences_updates, rootKey) - findPreference(PREFERENCE_UPDATES_CHECK_INTERVAL)?.isEnabled = - Preferences.getInteger(requireContext(), PREFERENCE_UPDATES_AUTO, 3) != 0 - findPreference(PREFERENCE_SELF_UPDATE)?.let { if (CertUtil.isFDroidApp(requireContext(), BuildConfig.APPLICATION_ID)) { it.isVisible = false @@ -72,8 +68,12 @@ class UpdatesPreference : PreferenceFragmentCompat() { 0 -> UpdateWorker.cancelAutomatedCheck(requireContext()) else -> UpdateWorker.scheduleAutomatedCheck(requireContext()) } - findPreference(PREFERENCE_UPDATES_CHECK_INTERVAL)?.isEnabled = - newValue.toString().toInt() != 0 + true + } + + findPreference(PREFERENCE_UPDATES_CHECK_INTERVAL) + ?.setOnPreferenceChangeListener { _, _ -> + UpdateWorker.updateAutomatedCheck(requireContext()) true } }