Update WI-FI restriction for EXH update worker
This commit is contained in:
parent
0b3a4e651e
commit
f2c881cb42
@ -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
|
||||
}
|
||||
|
@ -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<PreferencesHelper>()
|
||||
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?)
|
||||
|
Loading…
x
Reference in New Issue
Block a user