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) { fun scheduleAutomatedCheck(context: Context) {
Log.i("Scheduling periodic app updates check!") Log.i("Scheduling periodic app updates check!")
val updateCheckInterval = Preferences.getInteger(
context,
Preferences.PREFERENCE_UPDATES_CHECK_INTERVAL,
3
).toLong()
val constraints = Constraints.Builder() val constraints = Constraints.Builder()
.setRequiredNetworkType(NetworkType.UNMETERED) .setRequiredNetworkType(NetworkType.UNMETERED)
.setRequiresDeviceIdle(true) .setRequiresDeviceIdle(true)
.setRequiresBatteryNotLow(true) .setRequiresBatteryNotLow(true)
.build() .build()
val workRequest = PeriodicWorkRequestBuilder<UpdateWorker>( val workRequest = PeriodicWorkRequestBuilder<UpdateWorker>(
repeatInterval = 3, repeatInterval = updateCheckInterval,
repeatIntervalTimeUnit = HOURS, repeatIntervalTimeUnit = HOURS,
flexTimeInterval = 30, flexTimeInterval = 30,
flexTimeIntervalUnit = MINUTES flexTimeIntervalUnit = MINUTES

View File

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

View File

@@ -20,7 +20,6 @@
package com.aurora.store.view.ui.onboarding package com.aurora.store.view.ui.onboarding
import android.os.Bundle import android.os.Bundle
import android.os.Environment
import android.view.View import android.view.View
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager 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_ACCENT
import com.aurora.store.util.Preferences.PREFERENCE_THEME_TYPE 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
import com.aurora.store.util.Preferences.PREFERENCE_UPDATES_CHECK_INTERVAL
import com.aurora.store.util.Preferences.PREFERENCE_UPDATES_EXTENDED import com.aurora.store.util.Preferences.PREFERENCE_UPDATES_EXTENDED
import com.aurora.store.util.save import com.aurora.store.util.save
import com.google.android.material.tabs.TabLayoutMediator import com.google.android.material.tabs.TabLayoutMediator
@@ -178,5 +178,6 @@ class OnboardingFragment : Fragment(R.layout.fragment_onboarding) {
/*Updates*/ /*Updates*/
save(PREFERENCE_UPDATES_EXTENDED, false) save(PREFERENCE_UPDATES_EXTENDED, false)
save(PREFERENCE_UPDATES_CHECK, true) 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="checking_for_updates">Checking for updates</string>
<string name="pref_updates_check">Automated updates check</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_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="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="access_denied_using_vpn">Access denied! Are you using VPN or Tor?</string>
<string name="bad_request">Internal error! Please retry after sometime</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" <androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android"> xmlns:app="http://schemas.android.com/apk/res-auto">
<SwitchPreferenceCompat <SwitchPreferenceCompat
app:defaultValue="false" app:defaultValue="false"
@@ -29,9 +29,21 @@
<SwitchPreferenceCompat <SwitchPreferenceCompat
app:defaultValue="true" app:defaultValue="true"
app:disableDependentsState="false"
app:iconSpaceReserved="false" app:iconSpaceReserved="false"
app:key="PREFERENCE_UPDATES_CHECK" app:key="PREFERENCE_UPDATES_CHECK"
app:summary="@string/pref_updates_check_desc" app:summary="@string/pref_updates_check_desc"
app:title="@string/pref_updates_check" /> 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> </androidx.preference.PreferenceScreen>