From 69d762c131f38dc8d6658b56c700b1b28879eda7 Mon Sep 17 00:00:00 2001 From: Jobobby04 Date: Fri, 2 Jul 2021 17:51:02 -0400 Subject: [PATCH] Support WorkManager items in the debug list scheduled jobs option --- app/src/main/java/exh/debug/DebugFunctions.kt | 34 +++++++++++++++---- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/exh/debug/DebugFunctions.kt b/app/src/main/java/exh/debug/DebugFunctions.kt index 75643fe34..2f040271a 100644 --- a/app/src/main/java/exh/debug/DebugFunctions.kt +++ b/app/src/main/java/exh/debug/DebugFunctions.kt @@ -1,6 +1,7 @@ package exh.debug import android.app.Application +import androidx.work.WorkManager import com.pushtorefresh.storio.sqlite.queries.RawQuery import eu.kanade.tachiyomi.data.database.DatabaseHelper import eu.kanade.tachiyomi.data.database.models.toMangaInfo @@ -30,8 +31,10 @@ import kotlinx.coroutines.runBlocking import kotlinx.serialization.decodeFromString import kotlinx.serialization.encodeToString import kotlinx.serialization.json.Json +import uy.kohesive.injekt.api.get import uy.kohesive.injekt.injectLazy import java.lang.RuntimeException +import java.util.UUID @Suppress("unused") object DebugFunctions { @@ -201,14 +204,31 @@ object DebugFunctions { } fun listScheduledJobs() = app.jobScheduler.allPendingJobs.joinToString(",\n") { j -> - """ - { - info: ${j.id}, - isPeriod: ${j.isPeriodic}, - isPersisted: ${j.isPersisted}, - intervalMillis: ${j.intervalMillis}, + val info = j.extras.getString("EXTRA_WORK_SPEC_ID")?.let { + WorkManager.getInstance(app).getWorkInfoById(UUID.fromString(it)).get() + } + + if (info != null) { + """ + { + id: ${info.id}, + isPeriodic: ${j.extras["EXTRA_IS_PERIODIC"]}, + state: ${info.state.name}, + tags: [ + ${info.tags.joinToString(separator = ",\n ")} + ], + } + """.trimIndent() + } else { + """ + { + info: ${j.id}, + isPeriodic: ${j.isPeriodic}, + isPersisted: ${j.isPersisted}, + intervalMillis: ${j.intervalMillis}, + } + """.trimIndent() } - """.trimIndent() } fun cancelAllScheduledJobs() = app.jobScheduler.cancelAll()