Make update check intervals configurable

This commit is contained in:
Rahul Patel
2023-10-18 02:08:39 +05:30
parent a355989054
commit 3339d4a395
5 changed files with 29 additions and 6 deletions

View File

@@ -49,13 +49,20 @@ class UpdateWorker(private val appContext: Context, workerParams: WorkerParamete
fun scheduleAutomatedCheck(context: Context) {
Log.i("Scheduling periodic app updates check!")
val updateCheckInterval = Preferences.getInteger(
context,
Preferences.PREFERENCE_UPDATES_CHECK_INTERVAL,
3
).toLong()
val constraints = Constraints.Builder()
.setRequiredNetworkType(NetworkType.UNMETERED)
.setRequiresDeviceIdle(true)
.setRequiresBatteryNotLow(true)
.build()
val workRequest = PeriodicWorkRequestBuilder<UpdateWorker>(
repeatInterval = 3,
repeatInterval = updateCheckInterval,
repeatIntervalTimeUnit = HOURS,
flexTimeInterval = 30,
flexTimeIntervalUnit = MINUTES

View File

@@ -58,6 +58,7 @@ object Preferences {
const val PREFERENCE_UPDATES_EXTENDED = "PREFERENCE_UPDATES_EXTENDED"
const val PREFERENCE_UPDATES_CHECK = "PREFERENCE_UPDATES_CHECK"
const val PREFERENCE_UPDATES_CHECK_INTERVAL = "PREFERENCE_UPDATES_CHECK_INTERVAL"
const val PREFERENCE_UNIQUE_GROUP_IDS = "PREFERENCE_UNIQUE_GROUP_IDS"
@@ -94,8 +95,8 @@ object Preferences {
return getPrefs(context).getString(key, default).toString()
}
fun getInteger(context: Context, key: String): Int {
return getPrefs(context).getInt(key, 0)
fun getInteger(context: Context, key: String, default: Int = 0): Int {
return getPrefs(context).getInt(key, default)
}
fun getFloat(context: Context, key: String): Float {

View File

@@ -20,7 +20,6 @@
package com.aurora.store.view.ui.onboarding
import android.os.Bundle
import android.os.Environment
import android.view.View
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager
@@ -52,6 +51,7 @@ import com.aurora.store.util.Preferences.PREFERENCE_SIMILAR
import com.aurora.store.util.Preferences.PREFERENCE_THEME_ACCENT
import com.aurora.store.util.Preferences.PREFERENCE_THEME_TYPE
import com.aurora.store.util.Preferences.PREFERENCE_UPDATES_CHECK
import com.aurora.store.util.Preferences.PREFERENCE_UPDATES_CHECK_INTERVAL
import com.aurora.store.util.Preferences.PREFERENCE_UPDATES_EXTENDED
import com.aurora.store.util.save
import com.google.android.material.tabs.TabLayoutMediator
@@ -178,5 +178,6 @@ class OnboardingFragment : Fragment(R.layout.fragment_onboarding) {
/*Updates*/
save(PREFERENCE_UPDATES_EXTENDED, false)
save(PREFERENCE_UPDATES_CHECK, true)
save(PREFERENCE_UPDATES_CHECK_INTERVAL, 3)
}
}