mirror of
https://github.com/Aviortheking/Neo-Store.git
synced 2025-06-07 16:29:55 +00:00
Add: Option to set sync interval (closes #263)
This commit is contained in:
parent
5ed61120dd
commit
ff64026c00
@ -117,32 +117,38 @@ class MainApplication : Application(), ImageLoaderFactory {
|
|||||||
var lastLanguage = Preferences[Preferences.Key.Language]
|
var lastLanguage = Preferences[Preferences.Key.Language]
|
||||||
CoroutineScope(Dispatchers.Default).launch {
|
CoroutineScope(Dispatchers.Default).launch {
|
||||||
Preferences.subject.collect {
|
Preferences.subject.collect {
|
||||||
if (it == Preferences.Key.ProxyType || it == Preferences.Key.ProxyHost || it == Preferences.Key.ProxyPort) {
|
when (it) {
|
||||||
updateProxy()
|
Preferences.Key.ProxyType, Preferences.Key.ProxyHost, Preferences.Key.ProxyPort -> {
|
||||||
} else if (it == Preferences.Key.AutoSync) {
|
updateProxy()
|
||||||
val autoSync = Preferences[Preferences.Key.AutoSync]
|
|
||||||
if (lastAutoSync != autoSync) {
|
|
||||||
lastAutoSync = autoSync
|
|
||||||
updateSyncJob(true)
|
|
||||||
}
|
}
|
||||||
} else if (it == Preferences.Key.UpdateUnstable) {
|
Preferences.Key.AutoSync, Preferences.Key.AutoSyncInterval -> {
|
||||||
val updateUnstable = Preferences[Preferences.Key.UpdateUnstable]
|
val autoSync = Preferences[Preferences.Key.AutoSync]
|
||||||
if (lastUpdateUnstable != updateUnstable) {
|
if (lastAutoSync != autoSync) {
|
||||||
lastUpdateUnstable = updateUnstable
|
lastAutoSync = autoSync
|
||||||
forceSyncAll()
|
updateSyncJob(true)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else if (it == Preferences.Key.Language) {
|
Preferences.Key.UpdateUnstable -> {
|
||||||
val language = Preferences[Preferences.Key.Language]
|
val updateUnstable = Preferences[Preferences.Key.UpdateUnstable]
|
||||||
if (language != lastLanguage) {
|
if (lastUpdateUnstable != updateUnstable) {
|
||||||
lastLanguage = language
|
lastUpdateUnstable = updateUnstable
|
||||||
val refresh = Intent.makeRestartActivityTask(
|
forceSyncAll()
|
||||||
ComponentName(
|
}
|
||||||
baseContext,
|
}
|
||||||
MainActivityX::class.java
|
Preferences.Key.Language -> {
|
||||||
|
val language = Preferences[Preferences.Key.Language]
|
||||||
|
if (language != lastLanguage) {
|
||||||
|
lastLanguage = language
|
||||||
|
val refresh = Intent.makeRestartActivityTask(
|
||||||
|
ComponentName(
|
||||||
|
baseContext,
|
||||||
|
MainActivityX::class.java
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
applicationContext.startActivity(refresh)
|
||||||
applicationContext.startActivity(refresh)
|
}
|
||||||
}
|
}
|
||||||
|
else -> return@collect
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -183,7 +189,7 @@ class MainApplication : Application(), ImageLoaderFactory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun autoSync(jobScheduler: JobScheduler, connectionType: Int) {
|
private fun autoSync(jobScheduler: JobScheduler, connectionType: Int) {
|
||||||
val period = 5.minutes.inWholeMilliseconds
|
val period = Preferences[Preferences.Key.AutoSyncInterval].minutes.inWholeMilliseconds
|
||||||
jobScheduler.schedule(
|
jobScheduler.schedule(
|
||||||
JobInfo
|
JobInfo
|
||||||
.Builder(
|
.Builder(
|
||||||
|
@ -138,6 +138,7 @@ object Preferences {
|
|||||||
"auto_sync",
|
"auto_sync",
|
||||||
Value.EnumerationValue(Preferences.AutoSync.Wifi)
|
Value.EnumerationValue(Preferences.AutoSync.Wifi)
|
||||||
)
|
)
|
||||||
|
object AutoSyncInterval : Key<Int>("auto_sync_interval", Value.IntValue(60))
|
||||||
|
|
||||||
object InstallAfterSync :
|
object InstallAfterSync :
|
||||||
Key<Boolean>("auto_sync_install", Value.BooleanValue(Android.sdk(31)))
|
Key<Boolean>("auto_sync_install", Value.BooleanValue(Android.sdk(31)))
|
||||||
|
@ -29,6 +29,11 @@ class PrefsUpdatesFragment : PrefsNavFragmentX() {
|
|||||||
Preferences.AutoSync.Always -> getString(R.string.always)
|
Preferences.AutoSync.Always -> getString(R.string.always)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
addEditInt(
|
||||||
|
Preferences.Key.AutoSyncInterval,
|
||||||
|
getString(R.string.auto_sync_interval),
|
||||||
|
1..1440
|
||||||
|
)
|
||||||
addSwitch(
|
addSwitch(
|
||||||
Preferences.Key.InstallAfterSync, getString(R.string.install_after_sync),
|
Preferences.Key.InstallAfterSync, getString(R.string.install_after_sync),
|
||||||
getString(R.string.install_after_sync_summary)
|
getString(R.string.install_after_sync_summary)
|
||||||
|
@ -208,5 +208,6 @@
|
|||||||
<string name="releases">Releases</string>
|
<string name="releases">Releases</string>
|
||||||
<string name="no_updates_available">No versions available</string>
|
<string name="no_updates_available">No versions available</string>
|
||||||
<string name="dynamic">System dynamic</string>
|
<string name="dynamic">System dynamic</string>
|
||||||
|
<string name="auto_sync_interval">Auto-sync interval (in minutes)</string>
|
||||||
<string name="favorite_applications">Favorites</string>
|
<string name="favorite_applications">Favorites</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user