Do not sync automatically when not connected to a network. (jobobby04/TachiyomiSY#1312)
(cherry picked from commit d88f570f65c23d8478c6a781633aa7db3ea8731f)
This commit is contained in:
parent
2834fe9763
commit
781dfa06f3
3 changed files with 10 additions and 5 deletions
|
|
@ -556,7 +556,7 @@ object SettingsDataScreen : SearchableSettings {
|
|||
subtitle = stringResource(SYMR.strings.pref_sync_now_subtitle),
|
||||
onClick = {
|
||||
if (!SyncDataJob.isRunning(context)) {
|
||||
SyncDataJob.startNow(context)
|
||||
SyncDataJob.startNow(context, manual = true)
|
||||
} else {
|
||||
context.toast(SYMR.strings.sync_in_progress)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ import eu.kanade.domain.sync.SyncPreferences
|
|||
import eu.kanade.tachiyomi.data.SyncStatus
|
||||
import eu.kanade.tachiyomi.data.notification.Notifications
|
||||
import eu.kanade.tachiyomi.util.system.cancelNotification
|
||||
import eu.kanade.tachiyomi.util.system.isOnline
|
||||
import eu.kanade.tachiyomi.util.system.isRunning
|
||||
import eu.kanade.tachiyomi.util.system.setForegroundSafely
|
||||
import eu.kanade.tachiyomi.util.system.workManager
|
||||
|
|
@ -37,6 +38,9 @@ class SyncDataJob(private val context: Context, workerParams: WorkerParameters)
|
|||
|
||||
override suspend fun doWork(): Result {
|
||||
if (tags.contains(TAG_AUTO)) {
|
||||
if (!context.isOnline()) {
|
||||
return Result.retry()
|
||||
}
|
||||
// Find a running manual worker. If exists, try again later
|
||||
if (context.workManager.isRunning(TAG_MANUAL)) {
|
||||
return Result.retry()
|
||||
|
|
@ -106,17 +110,18 @@ class SyncDataJob(private val context: Context, workerParams: WorkerParameters)
|
|||
}
|
||||
}
|
||||
|
||||
fun startNow(context: Context) {
|
||||
fun startNow(context: Context, manual: Boolean = false) {
|
||||
val wm = context.workManager
|
||||
if (wm.isRunning(TAG_JOB)) {
|
||||
// Already running either as a scheduled or manual job
|
||||
return
|
||||
}
|
||||
val tag = if (manual) TAG_MANUAL else TAG_AUTO
|
||||
val request = OneTimeWorkRequestBuilder<SyncDataJob>()
|
||||
.addTag(TAG_JOB)
|
||||
.addTag(TAG_MANUAL)
|
||||
.addTag(tag)
|
||||
.build()
|
||||
context.workManager.enqueueUniqueWork(TAG_MANUAL, ExistingWorkPolicy.KEEP, request)
|
||||
context.workManager.enqueueUniqueWork(tag, ExistingWorkPolicy.KEEP, request)
|
||||
}
|
||||
|
||||
fun stop(context: Context) {
|
||||
|
|
|
|||
|
|
@ -169,7 +169,7 @@ data object LibraryTab : Tab {
|
|||
},
|
||||
onClickSyncNow = {
|
||||
if (!SyncDataJob.isRunning(context)) {
|
||||
SyncDataJob.startNow(context)
|
||||
SyncDataJob.startNow(context, manual = true)
|
||||
} else {
|
||||
context.toast(SYMR.strings.sync_in_progress)
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue