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