Add update frequency restriction debug toggle

This commit is contained in:
NerdNumber9 2019-08-04 22:55:38 -04:00
parent cd5545284e
commit 46636b537c
2 changed files with 11 additions and 11 deletions

View File

@ -6,7 +6,8 @@ import uy.kohesive.injekt.injectLazy
enum class DebugToggles(val default: Boolean) {
ENABLE_EXH_ROOT_REDIRECT(true),
ENABLE_DEBUG_OVERLAY(true),
PULL_TO_ROOT_WHEN_LOADING_EXH_MANGA_DETAILS(true);
PULL_TO_ROOT_WHEN_LOADING_EXH_MANGA_DETAILS(true),
RESTRICT_EXH_GALLERY_UPDATE_CHECK_FREQUENCY(true);
val prefKey = "eh_debug_toggle_${name.toLowerCase()}"

View File

@ -23,6 +23,7 @@ import eu.kanade.tachiyomi.util.jobScheduler
import eu.kanade.tachiyomi.util.syncChaptersWithSource
import exh.EH_SOURCE_ID
import exh.EXH_SOURCE_ID
import exh.debug.DebugToggles
import exh.eh.EHentaiUpdateWorkerConstants.UPDATES_PER_ITERATION
import exh.metadata.metadata.EHentaiSearchMetadata
import exh.metadata.metadata.base.*
@ -136,7 +137,7 @@ class EHentaiUpdateWorker: JobService(), CoroutineScope {
val raisedMeta = meta.raise<EHentaiSearchMetadata>()
// Don't update galleries too frequently
if (raisedMeta.aged || curTime - raisedMeta.lastUpdateCheck < MIN_BACKGROUND_UPDATE_FREQ)
if (raisedMeta.aged || (curTime - raisedMeta.lastUpdateCheck < MIN_BACKGROUND_UPDATE_FREQ && DebugToggles.RESTRICT_EXH_GALLERY_UPDATE_CHECK_FREQUENCY.enabled))
return@mapNotNull null
val chapter = db.getChaptersByMangaId(manga.id!!).asRxSingle().await().minBy {
@ -269,12 +270,6 @@ class EHentaiUpdateWorker: JobService(), CoroutineScope {
return JobInfo.Builder(
if(isTest) JOB_ID_UPDATE_BACKGROUND_TEST
else JOB_ID_UPDATE_BACKGROUND, componentName())
.apply {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
setEstimatedNetworkBytes(15000L * UPDATES_PER_ITERATION,
1000L * UPDATES_PER_ITERATION)
}
}
}
private fun Context.periodicBackgroundJobInfo(period: Long,
@ -283,15 +278,19 @@ class EHentaiUpdateWorker: JobService(), CoroutineScope {
return baseBackgroundJobInfo(false)
.setPeriodic(period)
.setPersisted(true)
.setRequiredNetworkType(
if(requireUnmetered) JobInfo.NETWORK_TYPE_UNMETERED
else JobInfo.NETWORK_TYPE_ANY)
.apply {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
setRequiresBatteryNotLow(true)
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
setEstimatedNetworkBytes(15000L * UPDATES_PER_ITERATION,
1000L * UPDATES_PER_ITERATION)
}
}
.setRequiresCharging(requireCharging)
.setRequiredNetworkType(
if(requireUnmetered) JobInfo.NETWORK_TYPE_UNMETERED
else JobInfo.NETWORK_TYPE_ANY)
// .setRequiresDeviceIdle(true) Job never seems to run with this
.build()
}