diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsEhController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsEhController.kt index 035a7312c..ad93b8ead 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsEhController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsEhController.kt @@ -18,8 +18,8 @@ import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.database.DatabaseHelper import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.preference.CHARGING +import eu.kanade.tachiyomi.data.preference.ONLY_ON_WIFI import eu.kanade.tachiyomi.data.preference.PreferenceKeys -import eu.kanade.tachiyomi.data.preference.UNMETERED_NETWORK import eu.kanade.tachiyomi.data.preference.asImmediateFlow import eu.kanade.tachiyomi.databinding.DialogStubTextinputBinding import eu.kanade.tachiyomi.ui.setting.eh.FrontPageCategoriesDialog @@ -443,15 +443,15 @@ class SettingsEhController : SettingsController() { multiSelectListPreference { key = PreferenceKeys.eh_autoUpdateRestrictions titleRes = R.string.auto_update_restrictions - entriesRes = arrayOf(R.string.network_unmetered, R.string.charging) - entryValues = arrayOf(UNMETERED_NETWORK, CHARGING) + entriesRes = arrayOf(R.string.connected_to_wifi, R.string.charging) + entryValues = arrayOf(ONLY_ON_WIFI, CHARGING) fun updateSummary() { val restrictions = preferences.exhAutoUpdateRequirements().get() .sorted() .map { when (it) { - UNMETERED_NETWORK -> context.getString(R.string.network_unmetered) + ONLY_ON_WIFI -> context.getString(R.string.connected_to_wifi) CHARGING -> context.getString(R.string.charging) else -> it } diff --git a/app/src/main/java/exh/eh/EHentaiUpdateWorker.kt b/app/src/main/java/exh/eh/EHentaiUpdateWorker.kt index e9d7bf2c3..96fe1a5c6 100644 --- a/app/src/main/java/exh/eh/EHentaiUpdateWorker.kt +++ b/app/src/main/java/exh/eh/EHentaiUpdateWorker.kt @@ -17,13 +17,14 @@ import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.toMangaInfo import eu.kanade.tachiyomi.data.library.LibraryUpdateNotifier import eu.kanade.tachiyomi.data.preference.CHARGING +import eu.kanade.tachiyomi.data.preference.ONLY_ON_WIFI import eu.kanade.tachiyomi.data.preference.PreferencesHelper -import eu.kanade.tachiyomi.data.preference.UNMETERED_NETWORK import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.source.model.toSChapter import eu.kanade.tachiyomi.source.model.toSManga import eu.kanade.tachiyomi.source.online.all.EHentai import eu.kanade.tachiyomi.util.chapter.syncChaptersWithSource +import eu.kanade.tachiyomi.util.system.isConnectedToWifi import exh.debug.DebugToggles import exh.eh.EHentaiUpdateWorkerConstants.UPDATES_PER_ITERATION import exh.log.xLog @@ -57,9 +58,14 @@ class EHentaiUpdateWorker(private val context: Context, workerParams: WorkerPara override suspend fun doWork(): Result { return try { - startUpdating() - logger.d("Update job completed!") - Result.success() + val preferences = Injekt.get() + if (requiresWifiConnection(preferences) && !context.isConnectedToWifi()) { + Result.failure() + } else { + startUpdating() + logger.d("Update job completed!") + Result.success() + } } catch (e: Exception) { Result.failure() } @@ -240,14 +246,9 @@ class EHentaiUpdateWorker(private val context: Context, workerParams: WorkerPara if (interval > 0) { val restrictions = preferences.exhAutoUpdateRequirements().get() val acRestriction = CHARGING in restrictions - val wifiRestriction = if (UNMETERED_NETWORK in restrictions) { - NetworkType.UNMETERED - } else { - NetworkType.CONNECTED - } val constraints = Constraints.Builder() - .setRequiredNetworkType(wifiRestriction) + .setRequiredNetworkType(NetworkType.CONNECTED) .setRequiresCharging(acRestriction) .build() @@ -272,6 +273,11 @@ class EHentaiUpdateWorker(private val context: Context, workerParams: WorkerPara WorkManager.getInstance(context).cancelAllWorkByTag(TAG) } } + + fun requiresWifiConnection(preferences: PreferencesHelper): Boolean { + val restrictions = preferences.exhAutoUpdateRequirements().get() + return ONLY_ON_WIFI in restrictions + } } data class UpdateEntry(val manga: Manga, val meta: EHentaiSearchMetadata, val rootChapter: Chapter?)