Support WorkManager items in the debug list scheduled jobs option

This commit is contained in:
Jobobby04 2021-07-02 17:51:02 -04:00
parent e9e3340c08
commit 69d762c131

View File

@ -1,6 +1,7 @@
package exh.debug package exh.debug
import android.app.Application import android.app.Application
import androidx.work.WorkManager
import com.pushtorefresh.storio.sqlite.queries.RawQuery import com.pushtorefresh.storio.sqlite.queries.RawQuery
import eu.kanade.tachiyomi.data.database.DatabaseHelper import eu.kanade.tachiyomi.data.database.DatabaseHelper
import eu.kanade.tachiyomi.data.database.models.toMangaInfo import eu.kanade.tachiyomi.data.database.models.toMangaInfo
@ -30,8 +31,10 @@ import kotlinx.coroutines.runBlocking
import kotlinx.serialization.decodeFromString import kotlinx.serialization.decodeFromString
import kotlinx.serialization.encodeToString import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
import uy.kohesive.injekt.api.get
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
import java.lang.RuntimeException import java.lang.RuntimeException
import java.util.UUID
@Suppress("unused") @Suppress("unused")
object DebugFunctions { object DebugFunctions {
@ -201,14 +204,31 @@ object DebugFunctions {
} }
fun listScheduledJobs() = app.jobScheduler.allPendingJobs.joinToString(",\n") { j -> fun listScheduledJobs() = app.jobScheduler.allPendingJobs.joinToString(",\n") { j ->
""" val info = j.extras.getString("EXTRA_WORK_SPEC_ID")?.let {
{ WorkManager.getInstance(app).getWorkInfoById(UUID.fromString(it)).get()
info: ${j.id}, }
isPeriod: ${j.isPeriodic},
isPersisted: ${j.isPersisted}, if (info != null) {
intervalMillis: ${j.intervalMillis}, """
{
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() fun cancelAllScheduledJobs() = app.jobScheduler.cancelAll()