Deschedule previous task

This commit is contained in:
Bartu Özen
2025-12-18 19:03:47 +03:00
parent 60873f8436
commit c1b9995c15

View File

@@ -46,6 +46,8 @@ object SyncManager {
private val syncPreferences = Injekt.get<Application>().getSharedPreferences("sync", Context.MODE_PRIVATE) private val syncPreferences = Injekt.get<Application>().getSharedPreferences("sync", Context.MODE_PRIVATE)
private val logger = KotlinLogging.logger {} private val logger = KotlinLogging.logger {}
private var currentTaskId: String? = null
@OptIn(DelicateCoroutinesApi::class) @OptIn(DelicateCoroutinesApi::class)
fun scheduleSyncTask() { fun scheduleSyncTask() {
serverConfig.subscribeTo( serverConfig.subscribeTo(
@@ -54,9 +56,11 @@ object SyncManager {
serverConfig.syncInterval, serverConfig.syncInterval,
) { enabled, interval -> Pair(enabled, interval) }, ) { enabled, interval -> Pair(enabled, interval) },
{ (enabled, interval) -> { (enabled, interval) ->
if (enabled && interval > 0) { currentTaskId = if (enabled && interval > 0) {
val intervalMs = interval.minutes.inWholeMilliseconds val intervalMs = interval.minutes.inWholeMilliseconds
currentTaskId?.let { HAScheduler.deschedule(it) }
HAScheduler.schedule( HAScheduler.schedule(
{ {
GlobalScope.launch { GlobalScope.launch {
@@ -67,6 +71,8 @@ object SyncManager {
delay = intervalMs, delay = intervalMs,
name = "sync", name = "sync",
) )
} else {
null
} }
}, },
ignoreInitialValue = false, ignoreInitialValue = false,