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)
}
}

View File

@@ -364,6 +364,8 @@
<string name="checking_for_updates">Checking for updates</string>
<string name="pref_updates_check">Automated updates check</string>
<string name="pref_updates_check_desc">Automatically check &amp; notify for new app updates periodically</string>
<string name="pref_updates_check_frequency">Automatic updates frequency</string>
<string name="pref_updates_check_frequency_desc">Configure intervals for auto updates, in hour.</string>
<string name="failed_to_fetch_report">Failed to fetch privacy report</string>
<string name="access_denied_using_vpn">Access denied! Are you using VPN or Tor?</string>
<string name="bad_request">Internal error! Please retry after sometime</string>

View File

@@ -17,8 +17,8 @@
~
-->
<androidx.preference.PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<SwitchPreferenceCompat
app:defaultValue="false"
@@ -29,9 +29,21 @@
<SwitchPreferenceCompat
app:defaultValue="true"
app:disableDependentsState="false"
app:iconSpaceReserved="false"
app:key="PREFERENCE_UPDATES_CHECK"
app:summary="@string/pref_updates_check_desc"
app:title="@string/pref_updates_check" />
<SeekBarPreference
android:defaultValue="3"
android:dependency="PREFERENCE_UPDATES_CHECK"
android:key="PREFERENCE_UPDATES_CHECK_INTERVAL"
android:max="24"
android:summary="@string/pref_updates_check_frequency_desc"
android:title="@string/pref_updates_check_frequency"
app:adjustable="true"
app:iconSpaceReserved="false"
app:min="1"
app:showSeekBarValue="true" />
</androidx.preference.PreferenceScreen>