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
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,15 +204,32 @@ object DebugFunctions {
}
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()
}
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},
isPeriod: ${j.isPeriodic},
isPeriodic: ${j.isPeriodic},
isPersisted: ${j.isPersisted},
intervalMillis: ${j.intervalMillis},
}
""".trimIndent()
}
}
fun cancelAllScheduledJobs() = app.jobScheduler.cancelAll()