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 eu.kanade.domain.track.model.toDbTrack
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.tachiyomi.data.track.TrackerManager
import kotlinx.coroutines.async
@@ -46,7 +46,7 @@ class TrackChapter(
} catch (e: Exception) {
delayedTrackingStore.add(track.id, chapterNumber)
if (setupJobOnFailure) {
DelayedTrackingUpdateJob.setupTask(context)
DelayedTrackingUpdateWorker.setupTask(context)
}
throw e
}
@@ -20,7 +20,7 @@ import tachiyomi.core.common.util.system.logcat
import tachiyomi.domain.track.interactor.GetTracks
import java.util.concurrent.TimeUnit
class DelayedTrackingUpdateJob(private val context: Context, workerParams: WorkerParameters) :
class DelayedTrackingUpdateWorker(private val context: Context, workerParams: WorkerParameters) :
CoroutineWorker(context, workerParams) {
private val graph: AppGraph = context.metroGraph()
@@ -66,7 +66,7 @@ class DelayedTrackingUpdateJob(private val context: Context, workerParams: Worke
requiredNetworkType = NetworkType.CONNECTED,
)
val request = OneTimeWorkRequestBuilder<DelayedTrackingUpdateJob>()
val request = OneTimeWorkRequestBuilder<DelayedTrackingUpdateWorker>()
.setConstraints(constraints)
.setBackoffCriteria(BackoffPolicy.EXPONENTIAL, 5, TimeUnit.MINUTES)
.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.screen.advanced.ClearDatabaseScreen
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.PREF_DOH_360
import eu.kanade.tachiyomi.network.PREF_DOH_ADGUARD
@@ -289,7 +289,7 @@ object SettingsAdvancedScreen : SearchableSettings {
preferenceItems = listOf(
Preference.PreferenceItem.TextPreference(
title = stringResource(MR.strings.pref_refresh_library_covers),
onClick = { MetadataUpdateJob.startNow(context.workManager) },
onClick = { MetadataUpdateWorker.startNow(context.workManager) },
),
Preference.PreferenceItem.TextPreference(
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.PrefsHorizontalPadding
import eu.kanade.presentation.util.relativeTimeSpanString
import eu.kanade.tachiyomi.data.backup.create.BackupCreateJob
import eu.kanade.tachiyomi.data.backup.restore.BackupRestoreJob
import eu.kanade.tachiyomi.data.backup.create.BackupCreateWorker
import eu.kanade.tachiyomi.data.backup.restore.BackupRestoreWorker
import eu.kanade.tachiyomi.data.export.LibraryExporter
import eu.kanade.tachiyomi.data.export.LibraryExporter.ExportOptions
import eu.kanade.tachiyomi.util.system.DeviceUtil
@@ -231,7 +231,7 @@ object SettingsDataScreen : SearchableSettings {
modifier = Modifier.fillMaxHeight(),
checked = false,
onCheckedChange = {
if (!BackupRestoreJob.isRunning(context.workManager)) {
if (!BackupRestoreWorker.isRunning(context.workManager)) {
if (DeviceUtil.isMiui && DeviceUtil.isMiuiOptimizationDisabled()) {
context.toast(MR.strings.restore_miui_warning)
}
@@ -262,7 +262,7 @@ object SettingsDataScreen : SearchableSettings {
),
title = stringResource(MR.strings.pref_backup_interval),
onValueChanged = {
BackupCreateJob.setupTask(context, it)
BackupCreateWorker.setupTask(context, it)
true
},
),
@@ -18,7 +18,7 @@ import cafe.adriel.voyager.navigator.currentOrThrow
import eu.kanade.presentation.category.visualName
import eu.kanade.presentation.more.settings.Preference
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 kotlinx.coroutines.launch
import mihon.app.di.appGraph
@@ -155,7 +155,7 @@ object SettingsLibraryScreen : SearchableSettings {
),
title = stringResource(MR.strings.pref_library_update_interval),
onValueChanged = {
LibraryUpdateJob.setupTask(context, it)
LibraryUpdateWorker.setupTask(context, it)
true
},
),
@@ -172,7 +172,7 @@ object SettingsLibraryScreen : SearchableSettings {
onValueChanged = {
// Post to event looper to allow the preference to be updated.
ContextCompat.getMainExecutor(context).execute {
LibraryUpdateJob.setupTask(context)
LibraryUpdateWorker.setupTask(context)
}
true
},
@@ -23,7 +23,7 @@ import dev.zacsweers.metrox.viewmodel.metroViewModel
import eu.kanade.presentation.components.AppBar
import eu.kanade.presentation.components.WarningBanner
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.BackupOptions
import eu.kanade.tachiyomi.util.system.DeviceUtil
@@ -75,7 +75,7 @@ class CreateBackupScreen : Screen() {
actionLabel = stringResource(MR.strings.action_create),
actionEnabled = state.options.canCreate(),
onClickAction = {
if (!BackupCreateJob.isManualJobRunning(context)) {
if (!BackupCreateWorker.isManualJobRunning(context)) {
try {
chooseBackupDir.launch(BackupCreator.getFilename())
} catch (_: ActivityNotFoundException) {
@@ -143,7 +143,7 @@ class CreateBackupViewModel : ViewModel() {
}
fun createBackup(context: Context, uri: Uri) {
BackupCreateJob.startNow(context, uri, state.value.options)
BackupCreateWorker.startNow(context, uri, state.value.options)
}
@Immutable
@@ -35,7 +35,7 @@ import eu.kanade.presentation.components.AppBar
import eu.kanade.presentation.components.WarningBanner
import eu.kanade.presentation.util.Screen
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.util.system.DeviceUtil
import eu.kanade.tachiyomi.util.system.workManager
@@ -207,7 +207,7 @@ class RestoreBackupViewModel(
}
fun startRestore() {
BackupRestoreJob.start(
BackupRestoreWorker.start(
workManager = context.workManager,
uri = uri.toUri(),
options = state.value.options,
@@ -18,7 +18,7 @@ import androidx.work.workDataOf
import com.hippo.unifile.UniFile
import dev.zacsweers.metro.Inject
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.util.system.cancelNotification
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 java.util.concurrent.TimeUnit
class BackupCreateJob(private val context: Context, workerParams: WorkerParameters) :
class BackupCreateWorker(private val context: Context, workerParams: WorkerParameters) :
CoroutineWorker(context, workerParams) {
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)
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()
?: getAutomaticBackupLocation()
@@ -105,7 +105,7 @@ class BackupCreateJob(private val context: Context, workerParams: WorkerParamete
requiresBatteryNotLow = true,
)
val request = PeriodicWorkRequestBuilder<BackupCreateJob>(
val request = PeriodicWorkRequestBuilder<BackupCreateWorker>(
interval.toLong(),
TimeUnit.HOURS,
10,
@@ -129,7 +129,7 @@ class BackupCreateJob(private val context: Context, workerParams: WorkerParamete
LOCATION_URI_KEY to uri.toString(),
OPTIONS_KEY to options.asBooleanArray(),
)
val request = OneTimeWorkRequestBuilder<BackupCreateJob>()
val request = OneTimeWorkRequestBuilder<BackupCreateWorker>()
.addTag(TAG_MANUAL)
.setInputData(inputData)
.build()
@@ -26,7 +26,7 @@ import tachiyomi.core.common.i18n.stringResource
import tachiyomi.core.common.util.system.logcat
import tachiyomi.i18n.MR
class BackupRestoreJob(private val context: Context, workerParams: WorkerParameters) :
class BackupRestoreWorker(private val context: Context, workerParams: WorkerParameters) :
CoroutineWorker(context, workerParams) {
private val graph: AppGraph = context.metroGraph()
@@ -94,7 +94,7 @@ class BackupRestoreJob(private val context: Context, workerParams: WorkerParamet
SYNC_KEY to sync,
OPTIONS_KEY to options.asBooleanArray(),
)
val request = OneTimeWorkRequestBuilder<BackupRestoreJob>()
val request = OneTimeWorkRequestBuilder<BackupRestoreWorker>()
.addTag(TAG)
.setInputData(inputData)
.build()
@@ -3,7 +3,7 @@ package eu.kanade.tachiyomi.data.backup.restore.restorers
import android.content.Context
import android.util.Log
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.BackupPreference
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.StringPreferenceValue
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 tachiyomi.core.common.preference.AndroidPreferenceStore
import tachiyomi.core.common.preference.PreferenceStore
@@ -39,8 +39,8 @@ class PreferenceRestorer(
backupCategories,
)
LibraryUpdateJob.setupTask(context)
BackupCreateJob.setupTask(context)
LibraryUpdateWorker.setupTask(context)
BackupCreateWorker.setupTask(context)
}
suspend fun restoreSource(preferences: List<BackupSourcePreferences>) {
@@ -56,7 +56,7 @@ class DownloadManager(
get() = downloader.queueState
val isDownloaderRunning
get() = DownloadJob.isRunningFlow(context)
get() = DownloadWorker.isRunningFlow(context)
/**
* Starts the download worker, which runs the downloader.
@@ -64,7 +64,7 @@ class DownloadManager(
fun startDownloads() {
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
* 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()
@@ -94,7 +94,7 @@ class DownloadJob(context: Context, workerParams: WorkerParameters) : CoroutineW
private const val TAG = "Downloader"
fun start(context: Context) {
val request = OneTimeWorkRequestBuilder<DownloadJob>()
val request = OneTimeWorkRequestBuilder<DownloadWorker>()
.addTag(TAG)
.build()
WorkManager.getInstance(context)
@@ -78,7 +78,7 @@ import kotlin.concurrent.atomics.incrementAndFetch
import kotlin.time.Clock
@OptIn(ExperimentalAtomicApi::class)
class LibraryUpdateJob(private val context: Context, workerParams: WorkerParameters) :
class LibraryUpdateWorker(private val context: Context, workerParams: WorkerParameters) :
CoroutineWorker(context, workerParams) {
private val graph: AppGraph = context.metroGraph()
@@ -458,7 +458,7 @@ class LibraryUpdateJob(private val context: Context, workerParams: WorkerParamet
.setRequiresBatteryNotLow(true)
.build()
val request = PeriodicWorkRequestBuilder<LibraryUpdateJob>(
val request = PeriodicWorkRequestBuilder<LibraryUpdateWorker>(
interval.toLong(),
TimeUnit.HOURS,
10,
@@ -492,7 +492,7 @@ class LibraryUpdateJob(private val context: Context, workerParams: WorkerParamet
val inputData = workDataOf(
KEY_CATEGORY to category?.id,
)
val request = OneTimeWorkRequestBuilder<LibraryUpdateJob>()
val request = OneTimeWorkRequestBuilder<LibraryUpdateWorker>()
.addTag(TAG)
.addTag(WORK_NAME_MANUAL)
.setInputData(inputData)
@@ -36,7 +36,7 @@ import kotlin.concurrent.atomics.ExperimentalAtomicApi
import kotlin.concurrent.atomics.fetchAndIncrement
@OptIn(ExperimentalAtomicApi::class)
class MetadataUpdateJob(private val context: Context, workerParams: WorkerParameters) :
class MetadataUpdateWorker(context: Context, workerParams: WorkerParameters) :
CoroutineWorker(context, workerParams) {
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
return false
}
val request = OneTimeWorkRequestBuilder<MetadataUpdateJob>()
val request = OneTimeWorkRequestBuilder<MetadataUpdateWorker>()
.addTag(TAG)
.addTag(WORK_NAME_MANUAL)
.build()
@@ -7,9 +7,9 @@ import android.content.Intent
import android.net.Uri
import androidx.core.net.toUri
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.library.LibraryUpdateJob
import eu.kanade.tachiyomi.data.library.LibraryUpdateWorker
import eu.kanade.tachiyomi.ui.main.MainActivity
import eu.kanade.tachiyomi.ui.reader.ReaderActivity
import eu.kanade.tachiyomi.util.system.cancelNotification
@@ -170,7 +170,7 @@ class NotificationReceiver : BroadcastReceiver() {
* @param context context of application
*/
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
*/
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.util.Tab
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.category.CategoryScreen
import eu.kanade.tachiyomi.ui.home.HomeScreen
@@ -94,7 +94,7 @@ data object LibraryTab : Tab {
val snackbarHostState = remember { SnackbarHostState() }
val onClickRefresh: (Category?) -> Boolean = { category ->
val started = LibraryUpdateJob.startNow(context.workManager, category)
val started = LibraryUpdateWorker.startNow(context.workManager, category)
scope.launch {
val msgRes = when {
!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.DownloadManager
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.system.workManager
import kotlinx.coroutines.Dispatchers
@@ -235,7 +235,7 @@ class UpdatesViewModel(
}
fun updateLibrary(): Boolean {
val started = LibraryUpdateJob.startNow(context.workManager)
val started = LibraryUpdateWorker.startNow(context.workManager)
viewModelScope.launch {
_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.source.service.SourcePreferences
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.ui.UiPreferences
import eu.kanade.tachiyomi.App
import eu.kanade.tachiyomi.core.security.PrivacyPreferences
import eu.kanade.tachiyomi.core.security.SecurityPreferences
import eu.kanade.tachiyomi.data.backup.create.BackupCreateJob
import eu.kanade.tachiyomi.data.backup.restore.BackupRestoreJob
import eu.kanade.tachiyomi.data.backup.create.BackupCreateWorker
import eu.kanade.tachiyomi.data.backup.restore.BackupRestoreWorker
import eu.kanade.tachiyomi.data.cache.ChapterCache
import eu.kanade.tachiyomi.data.cache.CoverCache
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.library.LibraryUpdateJob
import eu.kanade.tachiyomi.data.library.MetadataUpdateJob
import eu.kanade.tachiyomi.data.download.DownloadWorker
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.track.TrackerManager
import eu.kanade.tachiyomi.data.updater.AppUpdateChecker
@@ -67,12 +67,12 @@ interface AppGraph : ViewModelGraph {
fun inject(readerActivity: ReaderActivity)
fun inject(webViewActivity: WebViewActivity)
fun inject(baseOAuthLoginActivity: BaseOAuthLoginActivity)
fun inject(libraryUpdateJob: LibraryUpdateJob)
fun inject(metadataUpdateJob: MetadataUpdateJob)
fun inject(backupRestoreJob: BackupRestoreJob)
fun inject(backupCreateJob: BackupCreateJob)
fun inject(delayedTrackingUpdateJob: DelayedTrackingUpdateJob)
fun inject(downloadJob: DownloadJob)
fun inject(libraryUpdateWorker: LibraryUpdateWorker)
fun inject(metadataUpdateWorker: MetadataUpdateWorker)
fun inject(backupRestoreWorker: BackupRestoreWorker)
fun inject(backupCreateWorker: BackupCreateWorker)
fun inject(delayedTrackingUpdateWorker: DelayedTrackingUpdateWorker)
fun inject(downloadWorker: DownloadWorker)
fun inject(notificationReceiver: NotificationReceiver)
fun inject(notificationReceiver: SecureActivityDelegateImpl)
fun inject(extensionInstallActivity: ExtensionInstallActivity)
@@ -4,7 +4,7 @@ import android.content.Context
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesIntoSet
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.MigrationContext
@@ -16,7 +16,7 @@ class SetupBackupCreateMigration(
override val version: Float = Migration.ALWAYS
override suspend fun invoke(migrationContext: MigrationContext): Boolean {
BackupCreateJob.setupTask(context)
BackupCreateWorker.setupTask(context)
return true
}
}
@@ -4,7 +4,7 @@ import android.content.Context
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.ContributesIntoSet
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.MigrationContext
@@ -16,7 +16,7 @@ class SetupLibraryUpdateMigration(
override val version: Float = Migration.ALWAYS
override suspend fun invoke(migrationContext: MigrationContext): Boolean {
LibraryUpdateJob.setupTask(context)
LibraryUpdateWorker.setupTask(context)
return true
}
}