Make CoroutineWorker supertypes have Worker suffix

This commit is contained in:
AntsyLich
2026-10-02 10:23:07 +06:00
parent 9abc830769
commit db45dda525
20 changed files with 62 additions and 62 deletions
@@ -4,7 +4,7 @@ import android.content.Context
import dev.zacsweers.metro.Inject import dev.zacsweers.metro.Inject
import eu.kanade.domain.track.model.toDbTrack import eu.kanade.domain.track.model.toDbTrack
import eu.kanade.domain.track.model.toDomainTrack import eu.kanade.domain.track.model.toDomainTrack
import eu.kanade.domain.track.service.DelayedTrackingUpdateJob import eu.kanade.domain.track.service.DelayedTrackingUpdateWorker
import eu.kanade.domain.track.store.DelayedTrackingStore import eu.kanade.domain.track.store.DelayedTrackingStore
import eu.kanade.tachiyomi.data.track.TrackerManager import eu.kanade.tachiyomi.data.track.TrackerManager
import kotlinx.coroutines.async import kotlinx.coroutines.async
@@ -46,7 +46,7 @@ class TrackChapter(
} catch (e: Exception) { } catch (e: Exception) {
delayedTrackingStore.add(track.id, chapterNumber) delayedTrackingStore.add(track.id, chapterNumber)
if (setupJobOnFailure) { if (setupJobOnFailure) {
DelayedTrackingUpdateJob.setupTask(context) DelayedTrackingUpdateWorker.setupTask(context)
} }
throw e throw e
} }
@@ -20,7 +20,7 @@ import tachiyomi.core.common.util.system.logcat
import tachiyomi.domain.track.interactor.GetTracks import tachiyomi.domain.track.interactor.GetTracks
import java.util.concurrent.TimeUnit import java.util.concurrent.TimeUnit
class DelayedTrackingUpdateJob(private val context: Context, workerParams: WorkerParameters) : class DelayedTrackingUpdateWorker(private val context: Context, workerParams: WorkerParameters) :
CoroutineWorker(context, workerParams) { CoroutineWorker(context, workerParams) {
private val graph: AppGraph = context.metroGraph() private val graph: AppGraph = context.metroGraph()
@@ -66,7 +66,7 @@ class DelayedTrackingUpdateJob(private val context: Context, workerParams: Worke
requiredNetworkType = NetworkType.CONNECTED, requiredNetworkType = NetworkType.CONNECTED,
) )
val request = OneTimeWorkRequestBuilder<DelayedTrackingUpdateJob>() val request = OneTimeWorkRequestBuilder<DelayedTrackingUpdateWorker>()
.setConstraints(constraints) .setConstraints(constraints)
.setBackoffCriteria(BackoffPolicy.EXPONENTIAL, 5, TimeUnit.MINUTES) .setBackoffCriteria(BackoffPolicy.EXPONENTIAL, 5, TimeUnit.MINUTES)
.addTag(TAG) .addTag(TAG)
@@ -26,7 +26,7 @@ import eu.kanade.domain.base.BasePreferences
import eu.kanade.presentation.more.settings.Preference import eu.kanade.presentation.more.settings.Preference
import eu.kanade.presentation.more.settings.screen.advanced.ClearDatabaseScreen import eu.kanade.presentation.more.settings.screen.advanced.ClearDatabaseScreen
import eu.kanade.presentation.more.settings.screen.debug.DebugInfoScreen import eu.kanade.presentation.more.settings.screen.debug.DebugInfoScreen
import eu.kanade.tachiyomi.data.library.MetadataUpdateJob import eu.kanade.tachiyomi.data.library.MetadataUpdateWorker
import eu.kanade.tachiyomi.network.NetworkPreferences import eu.kanade.tachiyomi.network.NetworkPreferences
import eu.kanade.tachiyomi.network.PREF_DOH_360 import eu.kanade.tachiyomi.network.PREF_DOH_360
import eu.kanade.tachiyomi.network.PREF_DOH_ADGUARD import eu.kanade.tachiyomi.network.PREF_DOH_ADGUARD
@@ -289,7 +289,7 @@ object SettingsAdvancedScreen : SearchableSettings {
preferenceItems = listOf( preferenceItems = listOf(
Preference.PreferenceItem.TextPreference( Preference.PreferenceItem.TextPreference(
title = stringResource(MR.strings.pref_refresh_library_covers), title = stringResource(MR.strings.pref_refresh_library_covers),
onClick = { MetadataUpdateJob.startNow(context.workManager) }, onClick = { MetadataUpdateWorker.startNow(context.workManager) },
), ),
Preference.PreferenceItem.TextPreference( Preference.PreferenceItem.TextPreference(
title = stringResource(MR.strings.pref_reset_viewer_flags), title = stringResource(MR.strings.pref_reset_viewer_flags),
@@ -46,8 +46,8 @@ import eu.kanade.presentation.more.settings.screen.data.StorageInfo
import eu.kanade.presentation.more.settings.widget.BasePreferenceWidget import eu.kanade.presentation.more.settings.widget.BasePreferenceWidget
import eu.kanade.presentation.more.settings.widget.PrefsHorizontalPadding import eu.kanade.presentation.more.settings.widget.PrefsHorizontalPadding
import eu.kanade.presentation.util.relativeTimeSpanString import eu.kanade.presentation.util.relativeTimeSpanString
import eu.kanade.tachiyomi.data.backup.create.BackupCreateJob import eu.kanade.tachiyomi.data.backup.create.BackupCreateWorker
import eu.kanade.tachiyomi.data.backup.restore.BackupRestoreJob import eu.kanade.tachiyomi.data.backup.restore.BackupRestoreWorker
import eu.kanade.tachiyomi.data.export.LibraryExporter import eu.kanade.tachiyomi.data.export.LibraryExporter
import eu.kanade.tachiyomi.data.export.LibraryExporter.ExportOptions import eu.kanade.tachiyomi.data.export.LibraryExporter.ExportOptions
import eu.kanade.tachiyomi.util.system.DeviceUtil import eu.kanade.tachiyomi.util.system.DeviceUtil
@@ -231,7 +231,7 @@ object SettingsDataScreen : SearchableSettings {
modifier = Modifier.fillMaxHeight(), modifier = Modifier.fillMaxHeight(),
checked = false, checked = false,
onCheckedChange = { onCheckedChange = {
if (!BackupRestoreJob.isRunning(context.workManager)) { if (!BackupRestoreWorker.isRunning(context.workManager)) {
if (DeviceUtil.isMiui && DeviceUtil.isMiuiOptimizationDisabled()) { if (DeviceUtil.isMiui && DeviceUtil.isMiuiOptimizationDisabled()) {
context.toast(MR.strings.restore_miui_warning) context.toast(MR.strings.restore_miui_warning)
} }
@@ -262,7 +262,7 @@ object SettingsDataScreen : SearchableSettings {
), ),
title = stringResource(MR.strings.pref_backup_interval), title = stringResource(MR.strings.pref_backup_interval),
onValueChanged = { onValueChanged = {
BackupCreateJob.setupTask(context, it) BackupCreateWorker.setupTask(context, it)
true true
}, },
), ),
@@ -18,7 +18,7 @@ import cafe.adriel.voyager.navigator.currentOrThrow
import eu.kanade.presentation.category.visualName import eu.kanade.presentation.category.visualName
import eu.kanade.presentation.more.settings.Preference import eu.kanade.presentation.more.settings.Preference
import eu.kanade.presentation.more.settings.widget.TriStateListDialog import eu.kanade.presentation.more.settings.widget.TriStateListDialog
import eu.kanade.tachiyomi.data.library.LibraryUpdateJob import eu.kanade.tachiyomi.data.library.LibraryUpdateWorker
import eu.kanade.tachiyomi.ui.category.CategoryScreen import eu.kanade.tachiyomi.ui.category.CategoryScreen
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import mihon.app.di.appGraph import mihon.app.di.appGraph
@@ -155,7 +155,7 @@ object SettingsLibraryScreen : SearchableSettings {
), ),
title = stringResource(MR.strings.pref_library_update_interval), title = stringResource(MR.strings.pref_library_update_interval),
onValueChanged = { onValueChanged = {
LibraryUpdateJob.setupTask(context, it) LibraryUpdateWorker.setupTask(context, it)
true true
}, },
), ),
@@ -172,7 +172,7 @@ object SettingsLibraryScreen : SearchableSettings {
onValueChanged = { onValueChanged = {
// Post to event looper to allow the preference to be updated. // Post to event looper to allow the preference to be updated.
ContextCompat.getMainExecutor(context).execute { ContextCompat.getMainExecutor(context).execute {
LibraryUpdateJob.setupTask(context) LibraryUpdateWorker.setupTask(context)
} }
true true
}, },
@@ -23,7 +23,7 @@ import dev.zacsweers.metrox.viewmodel.metroViewModel
import eu.kanade.presentation.components.AppBar import eu.kanade.presentation.components.AppBar
import eu.kanade.presentation.components.WarningBanner import eu.kanade.presentation.components.WarningBanner
import eu.kanade.presentation.util.Screen import eu.kanade.presentation.util.Screen
import eu.kanade.tachiyomi.data.backup.create.BackupCreateJob import eu.kanade.tachiyomi.data.backup.create.BackupCreateWorker
import eu.kanade.tachiyomi.data.backup.create.BackupCreator import eu.kanade.tachiyomi.data.backup.create.BackupCreator
import eu.kanade.tachiyomi.data.backup.create.BackupOptions import eu.kanade.tachiyomi.data.backup.create.BackupOptions
import eu.kanade.tachiyomi.util.system.DeviceUtil import eu.kanade.tachiyomi.util.system.DeviceUtil
@@ -75,7 +75,7 @@ class CreateBackupScreen : Screen() {
actionLabel = stringResource(MR.strings.action_create), actionLabel = stringResource(MR.strings.action_create),
actionEnabled = state.options.canCreate(), actionEnabled = state.options.canCreate(),
onClickAction = { onClickAction = {
if (!BackupCreateJob.isManualJobRunning(context)) { if (!BackupCreateWorker.isManualJobRunning(context)) {
try { try {
chooseBackupDir.launch(BackupCreator.getFilename()) chooseBackupDir.launch(BackupCreator.getFilename())
} catch (_: ActivityNotFoundException) { } catch (_: ActivityNotFoundException) {
@@ -143,7 +143,7 @@ class CreateBackupViewModel : ViewModel() {
} }
fun createBackup(context: Context, uri: Uri) { fun createBackup(context: Context, uri: Uri) {
BackupCreateJob.startNow(context, uri, state.value.options) BackupCreateWorker.startNow(context, uri, state.value.options)
} }
@Immutable @Immutable
@@ -35,7 +35,7 @@ import eu.kanade.presentation.components.AppBar
import eu.kanade.presentation.components.WarningBanner import eu.kanade.presentation.components.WarningBanner
import eu.kanade.presentation.util.Screen import eu.kanade.presentation.util.Screen
import eu.kanade.tachiyomi.data.backup.BackupFileValidator import eu.kanade.tachiyomi.data.backup.BackupFileValidator
import eu.kanade.tachiyomi.data.backup.restore.BackupRestoreJob import eu.kanade.tachiyomi.data.backup.restore.BackupRestoreWorker
import eu.kanade.tachiyomi.data.backup.restore.RestoreOptions import eu.kanade.tachiyomi.data.backup.restore.RestoreOptions
import eu.kanade.tachiyomi.util.system.DeviceUtil import eu.kanade.tachiyomi.util.system.DeviceUtil
import eu.kanade.tachiyomi.util.system.workManager import eu.kanade.tachiyomi.util.system.workManager
@@ -207,7 +207,7 @@ class RestoreBackupViewModel(
} }
fun startRestore() { fun startRestore() {
BackupRestoreJob.start( BackupRestoreWorker.start(
workManager = context.workManager, workManager = context.workManager,
uri = uri.toUri(), uri = uri.toUri(),
options = state.value.options, options = state.value.options,
@@ -18,7 +18,7 @@ import androidx.work.workDataOf
import com.hippo.unifile.UniFile import com.hippo.unifile.UniFile
import dev.zacsweers.metro.Inject import dev.zacsweers.metro.Inject
import eu.kanade.tachiyomi.data.backup.BackupNotifier import eu.kanade.tachiyomi.data.backup.BackupNotifier
import eu.kanade.tachiyomi.data.backup.restore.BackupRestoreJob import eu.kanade.tachiyomi.data.backup.restore.BackupRestoreWorker
import eu.kanade.tachiyomi.data.notification.Notifications import eu.kanade.tachiyomi.data.notification.Notifications
import eu.kanade.tachiyomi.util.system.cancelNotification import eu.kanade.tachiyomi.util.system.cancelNotification
import eu.kanade.tachiyomi.util.system.isRunning import eu.kanade.tachiyomi.util.system.isRunning
@@ -32,7 +32,7 @@ import tachiyomi.core.common.util.system.logcat
import tachiyomi.domain.storage.service.StorageManager import tachiyomi.domain.storage.service.StorageManager
import java.util.concurrent.TimeUnit import java.util.concurrent.TimeUnit
class BackupCreateJob(private val context: Context, workerParams: WorkerParameters) : class BackupCreateWorker(private val context: Context, workerParams: WorkerParameters) :
CoroutineWorker(context, workerParams) { CoroutineWorker(context, workerParams) {
private val graph: AppGraph = context.metroGraph() private val graph: AppGraph = context.metroGraph()
@@ -50,7 +50,7 @@ class BackupCreateJob(private val context: Context, workerParams: WorkerParamete
val isAutoBackup = inputData.getBoolean(IS_AUTO_BACKUP_KEY, true) val isAutoBackup = inputData.getBoolean(IS_AUTO_BACKUP_KEY, true)
if (isAutoBackup && BackupRestoreJob.isRunning(context.workManager)) return Result.retry() if (isAutoBackup && BackupRestoreWorker.isRunning(context.workManager)) return Result.retry()
val uri = inputData.getString(LOCATION_URI_KEY)?.toUri() val uri = inputData.getString(LOCATION_URI_KEY)?.toUri()
?: getAutomaticBackupLocation() ?: getAutomaticBackupLocation()
@@ -105,7 +105,7 @@ class BackupCreateJob(private val context: Context, workerParams: WorkerParamete
requiresBatteryNotLow = true, requiresBatteryNotLow = true,
) )
val request = PeriodicWorkRequestBuilder<BackupCreateJob>( val request = PeriodicWorkRequestBuilder<BackupCreateWorker>(
interval.toLong(), interval.toLong(),
TimeUnit.HOURS, TimeUnit.HOURS,
10, 10,
@@ -129,7 +129,7 @@ class BackupCreateJob(private val context: Context, workerParams: WorkerParamete
LOCATION_URI_KEY to uri.toString(), LOCATION_URI_KEY to uri.toString(),
OPTIONS_KEY to options.asBooleanArray(), OPTIONS_KEY to options.asBooleanArray(),
) )
val request = OneTimeWorkRequestBuilder<BackupCreateJob>() val request = OneTimeWorkRequestBuilder<BackupCreateWorker>()
.addTag(TAG_MANUAL) .addTag(TAG_MANUAL)
.setInputData(inputData) .setInputData(inputData)
.build() .build()
@@ -26,7 +26,7 @@ import tachiyomi.core.common.i18n.stringResource
import tachiyomi.core.common.util.system.logcat import tachiyomi.core.common.util.system.logcat
import tachiyomi.i18n.MR import tachiyomi.i18n.MR
class BackupRestoreJob(private val context: Context, workerParams: WorkerParameters) : class BackupRestoreWorker(private val context: Context, workerParams: WorkerParameters) :
CoroutineWorker(context, workerParams) { CoroutineWorker(context, workerParams) {
private val graph: AppGraph = context.metroGraph() private val graph: AppGraph = context.metroGraph()
@@ -94,7 +94,7 @@ class BackupRestoreJob(private val context: Context, workerParams: WorkerParamet
SYNC_KEY to sync, SYNC_KEY to sync,
OPTIONS_KEY to options.asBooleanArray(), OPTIONS_KEY to options.asBooleanArray(),
) )
val request = OneTimeWorkRequestBuilder<BackupRestoreJob>() val request = OneTimeWorkRequestBuilder<BackupRestoreWorker>()
.addTag(TAG) .addTag(TAG)
.setInputData(inputData) .setInputData(inputData)
.build() .build()
@@ -3,7 +3,7 @@ package eu.kanade.tachiyomi.data.backup.restore.restorers
import android.content.Context import android.content.Context
import android.util.Log import android.util.Log
import dev.zacsweers.metro.Inject import dev.zacsweers.metro.Inject
import eu.kanade.tachiyomi.data.backup.create.BackupCreateJob import eu.kanade.tachiyomi.data.backup.create.BackupCreateWorker
import eu.kanade.tachiyomi.data.backup.models.BackupCategory import eu.kanade.tachiyomi.data.backup.models.BackupCategory
import eu.kanade.tachiyomi.data.backup.models.BackupPreference import eu.kanade.tachiyomi.data.backup.models.BackupPreference
import eu.kanade.tachiyomi.data.backup.models.BackupSourcePreferences import eu.kanade.tachiyomi.data.backup.models.BackupSourcePreferences
@@ -13,7 +13,7 @@ import eu.kanade.tachiyomi.data.backup.models.IntPreferenceValue
import eu.kanade.tachiyomi.data.backup.models.LongPreferenceValue import eu.kanade.tachiyomi.data.backup.models.LongPreferenceValue
import eu.kanade.tachiyomi.data.backup.models.StringPreferenceValue import eu.kanade.tachiyomi.data.backup.models.StringPreferenceValue
import eu.kanade.tachiyomi.data.backup.models.StringSetPreferenceValue import eu.kanade.tachiyomi.data.backup.models.StringSetPreferenceValue
import eu.kanade.tachiyomi.data.library.LibraryUpdateJob import eu.kanade.tachiyomi.data.library.LibraryUpdateWorker
import eu.kanade.tachiyomi.source.sourcePreferences import eu.kanade.tachiyomi.source.sourcePreferences
import tachiyomi.core.common.preference.AndroidPreferenceStore import tachiyomi.core.common.preference.AndroidPreferenceStore
import tachiyomi.core.common.preference.PreferenceStore import tachiyomi.core.common.preference.PreferenceStore
@@ -39,8 +39,8 @@ class PreferenceRestorer(
backupCategories, backupCategories,
) )
LibraryUpdateJob.setupTask(context) LibraryUpdateWorker.setupTask(context)
BackupCreateJob.setupTask(context) BackupCreateWorker.setupTask(context)
} }
suspend fun restoreSource(preferences: List<BackupSourcePreferences>) { suspend fun restoreSource(preferences: List<BackupSourcePreferences>) {
@@ -56,7 +56,7 @@ class DownloadManager(
get() = downloader.queueState get() = downloader.queueState
val isDownloaderRunning val isDownloaderRunning
get() = DownloadJob.isRunningFlow(context) get() = DownloadWorker.isRunningFlow(context)
/** /**
* Starts the download worker, which runs the downloader. * Starts the download worker, which runs the downloader.
@@ -64,7 +64,7 @@ class DownloadManager(
fun startDownloads() { fun startDownloads() {
if (downloader.isRunning) return if (downloader.isRunning) return
DownloadJob.start(context) DownloadWorker.start(context)
} }
/** /**
@@ -29,7 +29,7 @@ import kotlin.time.Duration.Companion.seconds
* This worker owns the lifecycle of the downloader: it starts the downloader and stops it when the * This worker owns the lifecycle of the downloader: it starts the downloader and stops it when the
* worker is stopped by the system or there's no suitable network available. * worker is stopped by the system or there's no suitable network available.
*/ */
class DownloadJob(context: Context, workerParams: WorkerParameters) : CoroutineWorker(context, workerParams) { class DownloadWorker(context: Context, workerParams: WorkerParameters) : CoroutineWorker(context, workerParams) {
private val graph: AppGraph = context.metroGraph() private val graph: AppGraph = context.metroGraph()
@@ -94,7 +94,7 @@ class DownloadJob(context: Context, workerParams: WorkerParameters) : CoroutineW
private const val TAG = "Downloader" private const val TAG = "Downloader"
fun start(context: Context) { fun start(context: Context) {
val request = OneTimeWorkRequestBuilder<DownloadJob>() val request = OneTimeWorkRequestBuilder<DownloadWorker>()
.addTag(TAG) .addTag(TAG)
.build() .build()
WorkManager.getInstance(context) WorkManager.getInstance(context)
@@ -78,7 +78,7 @@ import kotlin.concurrent.atomics.incrementAndFetch
import kotlin.time.Clock import kotlin.time.Clock
@OptIn(ExperimentalAtomicApi::class) @OptIn(ExperimentalAtomicApi::class)
class LibraryUpdateJob(private val context: Context, workerParams: WorkerParameters) : class LibraryUpdateWorker(private val context: Context, workerParams: WorkerParameters) :
CoroutineWorker(context, workerParams) { CoroutineWorker(context, workerParams) {
private val graph: AppGraph = context.metroGraph() private val graph: AppGraph = context.metroGraph()
@@ -458,7 +458,7 @@ class LibraryUpdateJob(private val context: Context, workerParams: WorkerParamet
.setRequiresBatteryNotLow(true) .setRequiresBatteryNotLow(true)
.build() .build()
val request = PeriodicWorkRequestBuilder<LibraryUpdateJob>( val request = PeriodicWorkRequestBuilder<LibraryUpdateWorker>(
interval.toLong(), interval.toLong(),
TimeUnit.HOURS, TimeUnit.HOURS,
10, 10,
@@ -492,7 +492,7 @@ class LibraryUpdateJob(private val context: Context, workerParams: WorkerParamet
val inputData = workDataOf( val inputData = workDataOf(
KEY_CATEGORY to category?.id, KEY_CATEGORY to category?.id,
) )
val request = OneTimeWorkRequestBuilder<LibraryUpdateJob>() val request = OneTimeWorkRequestBuilder<LibraryUpdateWorker>()
.addTag(TAG) .addTag(TAG)
.addTag(WORK_NAME_MANUAL) .addTag(WORK_NAME_MANUAL)
.setInputData(inputData) .setInputData(inputData)
@@ -36,7 +36,7 @@ import kotlin.concurrent.atomics.ExperimentalAtomicApi
import kotlin.concurrent.atomics.fetchAndIncrement import kotlin.concurrent.atomics.fetchAndIncrement
@OptIn(ExperimentalAtomicApi::class) @OptIn(ExperimentalAtomicApi::class)
class MetadataUpdateJob(private val context: Context, workerParams: WorkerParameters) : class MetadataUpdateWorker(context: Context, workerParams: WorkerParameters) :
CoroutineWorker(context, workerParams) { CoroutineWorker(context, workerParams) {
private val graph: AppGraph = context.metroGraph() private val graph: AppGraph = context.metroGraph()
@@ -177,7 +177,7 @@ class MetadataUpdateJob(private val context: Context, workerParams: WorkerParame
// Already running either as a scheduled or manual job // Already running either as a scheduled or manual job
return false return false
} }
val request = OneTimeWorkRequestBuilder<MetadataUpdateJob>() val request = OneTimeWorkRequestBuilder<MetadataUpdateWorker>()
.addTag(TAG) .addTag(TAG)
.addTag(WORK_NAME_MANUAL) .addTag(WORK_NAME_MANUAL)
.build() .build()
@@ -7,9 +7,9 @@ import android.content.Intent
import android.net.Uri import android.net.Uri
import androidx.core.net.toUri import androidx.core.net.toUri
import dev.zacsweers.metro.Inject import dev.zacsweers.metro.Inject
import eu.kanade.tachiyomi.data.backup.restore.BackupRestoreJob import eu.kanade.tachiyomi.data.backup.restore.BackupRestoreWorker
import eu.kanade.tachiyomi.data.download.DownloadManager import eu.kanade.tachiyomi.data.download.DownloadManager
import eu.kanade.tachiyomi.data.library.LibraryUpdateJob import eu.kanade.tachiyomi.data.library.LibraryUpdateWorker
import eu.kanade.tachiyomi.ui.main.MainActivity import eu.kanade.tachiyomi.ui.main.MainActivity
import eu.kanade.tachiyomi.ui.reader.ReaderActivity import eu.kanade.tachiyomi.ui.reader.ReaderActivity
import eu.kanade.tachiyomi.util.system.cancelNotification import eu.kanade.tachiyomi.util.system.cancelNotification
@@ -170,7 +170,7 @@ class NotificationReceiver : BroadcastReceiver() {
* @param context context of application * @param context context of application
*/ */
private fun cancelRestore(context: Context) { private fun cancelRestore(context: Context) {
BackupRestoreJob.stop(context.workManager) BackupRestoreWorker.stop(context.workManager)
} }
/** /**
@@ -179,7 +179,7 @@ class NotificationReceiver : BroadcastReceiver() {
* @param context context of application * @param context context of application
*/ */
private fun cancelLibraryUpdate(context: Context) { private fun cancelLibraryUpdate(context: Context) {
LibraryUpdateJob.stop(context) LibraryUpdateWorker.stop(context)
} }
/** /**
@@ -34,7 +34,7 @@ import eu.kanade.presentation.manga.components.LibraryBottomActionMenu
import eu.kanade.presentation.more.onboarding.GETTING_STARTED_URL import eu.kanade.presentation.more.onboarding.GETTING_STARTED_URL
import eu.kanade.presentation.util.Tab import eu.kanade.presentation.util.Tab
import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.library.LibraryUpdateJob import eu.kanade.tachiyomi.data.library.LibraryUpdateWorker
import eu.kanade.tachiyomi.ui.browse.source.globalsearch.GlobalSearchScreen import eu.kanade.tachiyomi.ui.browse.source.globalsearch.GlobalSearchScreen
import eu.kanade.tachiyomi.ui.category.CategoryScreen import eu.kanade.tachiyomi.ui.category.CategoryScreen
import eu.kanade.tachiyomi.ui.home.HomeScreen import eu.kanade.tachiyomi.ui.home.HomeScreen
@@ -94,7 +94,7 @@ data object LibraryTab : Tab {
val snackbarHostState = remember { SnackbarHostState() } val snackbarHostState = remember { SnackbarHostState() }
val onClickRefresh: (Category?) -> Boolean = { category -> val onClickRefresh: (Category?) -> Boolean = { category ->
val started = LibraryUpdateJob.startNow(context.workManager, category) val started = LibraryUpdateWorker.startNow(context.workManager, category)
scope.launch { scope.launch {
val msgRes = when { val msgRes = when {
!started -> MR.strings.update_already_running !started -> MR.strings.update_already_running
@@ -21,7 +21,7 @@ import eu.kanade.presentation.updates.UpdatesUiModel
import eu.kanade.tachiyomi.data.download.DownloadCache import eu.kanade.tachiyomi.data.download.DownloadCache
import eu.kanade.tachiyomi.data.download.DownloadManager import eu.kanade.tachiyomi.data.download.DownloadManager
import eu.kanade.tachiyomi.data.download.model.Download import eu.kanade.tachiyomi.data.download.model.Download
import eu.kanade.tachiyomi.data.library.LibraryUpdateJob import eu.kanade.tachiyomi.data.library.LibraryUpdateWorker
import eu.kanade.tachiyomi.util.lang.toLocalDate import eu.kanade.tachiyomi.util.lang.toLocalDate
import eu.kanade.tachiyomi.util.system.workManager import eu.kanade.tachiyomi.util.system.workManager
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
@@ -235,7 +235,7 @@ class UpdatesViewModel(
} }
fun updateLibrary(): Boolean { fun updateLibrary(): Boolean {
val started = LibraryUpdateJob.startNow(context.workManager) val started = LibraryUpdateWorker.startNow(context.workManager)
viewModelScope.launch { viewModelScope.launch {
_events.send(Event.LibraryUpdateTriggered(started)) _events.send(Event.LibraryUpdateTriggered(started))
} }
+12 -12
View File
@@ -10,21 +10,21 @@ import eu.kanade.domain.base.BasePreferences
import eu.kanade.domain.extension.interactor.TrustExtension import eu.kanade.domain.extension.interactor.TrustExtension
import eu.kanade.domain.source.service.SourcePreferences import eu.kanade.domain.source.service.SourcePreferences
import eu.kanade.domain.track.interactor.AddTracks import eu.kanade.domain.track.interactor.AddTracks
import eu.kanade.domain.track.service.DelayedTrackingUpdateJob import eu.kanade.domain.track.service.DelayedTrackingUpdateWorker
import eu.kanade.domain.track.service.TrackPreferences import eu.kanade.domain.track.service.TrackPreferences
import eu.kanade.domain.ui.UiPreferences import eu.kanade.domain.ui.UiPreferences
import eu.kanade.tachiyomi.App import eu.kanade.tachiyomi.App
import eu.kanade.tachiyomi.core.security.PrivacyPreferences import eu.kanade.tachiyomi.core.security.PrivacyPreferences
import eu.kanade.tachiyomi.core.security.SecurityPreferences import eu.kanade.tachiyomi.core.security.SecurityPreferences
import eu.kanade.tachiyomi.data.backup.create.BackupCreateJob import eu.kanade.tachiyomi.data.backup.create.BackupCreateWorker
import eu.kanade.tachiyomi.data.backup.restore.BackupRestoreJob import eu.kanade.tachiyomi.data.backup.restore.BackupRestoreWorker
import eu.kanade.tachiyomi.data.cache.ChapterCache import eu.kanade.tachiyomi.data.cache.ChapterCache
import eu.kanade.tachiyomi.data.cache.CoverCache import eu.kanade.tachiyomi.data.cache.CoverCache
import eu.kanade.tachiyomi.data.download.DownloadCache import eu.kanade.tachiyomi.data.download.DownloadCache
import eu.kanade.tachiyomi.data.download.DownloadJob
import eu.kanade.tachiyomi.data.download.DownloadManager import eu.kanade.tachiyomi.data.download.DownloadManager
import eu.kanade.tachiyomi.data.library.LibraryUpdateJob import eu.kanade.tachiyomi.data.download.DownloadWorker
import eu.kanade.tachiyomi.data.library.MetadataUpdateJob import eu.kanade.tachiyomi.data.library.LibraryUpdateWorker
import eu.kanade.tachiyomi.data.library.MetadataUpdateWorker
import eu.kanade.tachiyomi.data.notification.NotificationReceiver import eu.kanade.tachiyomi.data.notification.NotificationReceiver
import eu.kanade.tachiyomi.data.track.TrackerManager import eu.kanade.tachiyomi.data.track.TrackerManager
import eu.kanade.tachiyomi.data.updater.AppUpdateChecker import eu.kanade.tachiyomi.data.updater.AppUpdateChecker
@@ -67,12 +67,12 @@ interface AppGraph : ViewModelGraph {
fun inject(readerActivity: ReaderActivity) fun inject(readerActivity: ReaderActivity)
fun inject(webViewActivity: WebViewActivity) fun inject(webViewActivity: WebViewActivity)
fun inject(baseOAuthLoginActivity: BaseOAuthLoginActivity) fun inject(baseOAuthLoginActivity: BaseOAuthLoginActivity)
fun inject(libraryUpdateJob: LibraryUpdateJob) fun inject(libraryUpdateWorker: LibraryUpdateWorker)
fun inject(metadataUpdateJob: MetadataUpdateJob) fun inject(metadataUpdateWorker: MetadataUpdateWorker)
fun inject(backupRestoreJob: BackupRestoreJob) fun inject(backupRestoreWorker: BackupRestoreWorker)
fun inject(backupCreateJob: BackupCreateJob) fun inject(backupCreateWorker: BackupCreateWorker)
fun inject(delayedTrackingUpdateJob: DelayedTrackingUpdateJob) fun inject(delayedTrackingUpdateWorker: DelayedTrackingUpdateWorker)
fun inject(downloadJob: DownloadJob) fun inject(downloadWorker: DownloadWorker)
fun inject(notificationReceiver: NotificationReceiver) fun inject(notificationReceiver: NotificationReceiver)
fun inject(notificationReceiver: SecureActivityDelegateImpl) fun inject(notificationReceiver: SecureActivityDelegateImpl)
fun inject(extensionInstallActivity: ExtensionInstallActivity) fun inject(extensionInstallActivity: ExtensionInstallActivity)
@@ -4,7 +4,7 @@ import android.content.Context
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesIntoSet import dev.zacsweers.metro.ContributesIntoSet
import dev.zacsweers.metro.Inject import dev.zacsweers.metro.Inject
import eu.kanade.tachiyomi.data.backup.create.BackupCreateJob import eu.kanade.tachiyomi.data.backup.create.BackupCreateWorker
import mihon.core.migration.Migration import mihon.core.migration.Migration
import mihon.core.migration.MigrationContext import mihon.core.migration.MigrationContext
@@ -16,7 +16,7 @@ class SetupBackupCreateMigration(
override val version: Float = Migration.ALWAYS override val version: Float = Migration.ALWAYS
override suspend fun invoke(migrationContext: MigrationContext): Boolean { override suspend fun invoke(migrationContext: MigrationContext): Boolean {
BackupCreateJob.setupTask(context) BackupCreateWorker.setupTask(context)
return true return true
} }
} }
@@ -4,7 +4,7 @@ import android.content.Context
import dev.zacsweers.metro.AppScope import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesIntoSet import dev.zacsweers.metro.ContributesIntoSet
import dev.zacsweers.metro.Inject import dev.zacsweers.metro.Inject
import eu.kanade.tachiyomi.data.library.LibraryUpdateJob import eu.kanade.tachiyomi.data.library.LibraryUpdateWorker
import mihon.core.migration.Migration import mihon.core.migration.Migration
import mihon.core.migration.MigrationContext import mihon.core.migration.MigrationContext
@@ -16,7 +16,7 @@ class SetupLibraryUpdateMigration(
override val version: Float = Migration.ALWAYS override val version: Float = Migration.ALWAYS
override suspend fun invoke(migrationContext: MigrationContext): Boolean { override suspend fun invoke(migrationContext: MigrationContext): Boolean {
LibraryUpdateJob.setupTask(context) LibraryUpdateWorker.setupTask(context)
return true return true
} }
} }