Move from kizitonwose time to kotlin duration

This commit is contained in:
Jobobby04 2020-09-06 14:33:16 -04:00
parent d83f938e07
commit f20e5d864d
4 changed files with 23 additions and 19 deletions

View File

@ -314,11 +314,6 @@ dependencies {
// Better logging (EH) // Better logging (EH)
implementation 'com.elvishew:xlog:1.6.1' implementation 'com.elvishew:xlog:1.6.1'
// Time utils (EH)
final def typed_time_version = '1.0.4'
implementation "com.github.kizitonwose.time:time:$typed_time_version"
implementation "com.github.kizitonwose.time:time-android:$typed_time_version"
// Debug utils (EH) // Debug utils (EH)
final def debug_overlay_version = '1.1.3' final def debug_overlay_version = '1.1.3'
debugImplementation "com.ms-square:debugoverlay:$debug_overlay_version" debugImplementation "com.ms-square:debugoverlay:$debug_overlay_version"

View File

@ -26,7 +26,6 @@ import com.google.android.gms.security.ProviderInstaller
import com.google.firebase.analytics.FirebaseAnalytics import com.google.firebase.analytics.FirebaseAnalytics
import com.google.firebase.analytics.ktx.analytics import com.google.firebase.analytics.ktx.analytics
import com.google.firebase.ktx.Firebase import com.google.firebase.ktx.Firebase
import com.kizitonwose.time.days
import com.ms_square.debugoverlay.DebugOverlay import com.ms_square.debugoverlay.DebugOverlay
import com.ms_square.debugoverlay.modules.FpsModule import com.ms_square.debugoverlay.modules.FpsModule
import eu.kanade.tachiyomi.data.notification.Notifications import eu.kanade.tachiyomi.data.notification.Notifications
@ -45,6 +44,8 @@ import java.security.NoSuchAlgorithmException
import java.security.Security import java.security.Security
import javax.net.ssl.SSLContext import javax.net.ssl.SSLContext
import kotlin.concurrent.thread import kotlin.concurrent.thread
import kotlin.time.ExperimentalTime
import kotlin.time.days
import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import org.conscrypt.Conscrypt import org.conscrypt.Conscrypt
@ -193,6 +194,7 @@ open class App : Application(), LifecycleObserver {
"logs" "logs"
) )
@OptIn(ExperimentalTime::class)
printers += FilePrinter printers += FilePrinter
.Builder(logFolder.absolutePath) .Builder(logFolder.absolutePath)
.fileNameGenerator(object : DateFileNameGenerator() { .fileNameGenerator(object : DateFileNameGenerator() {
@ -200,7 +202,7 @@ open class App : Application(), LifecycleObserver {
return super.generateFileName(logLevel, timestamp) + "-${BuildConfig.BUILD_TYPE}.log" return super.generateFileName(logLevel, timestamp) + "-${BuildConfig.BUILD_TYPE}.log"
} }
}) })
.cleanStrategy(FileLastModifiedCleanStrategy(7.days.inMilliseconds.longValue)) .cleanStrategy(FileLastModifiedCleanStrategy(7.days.toLongMilliseconds()))
.backupStrategy(NeverBackupStrategy()) .backupStrategy(NeverBackupStrategy())
.build() .build()

View File

@ -14,9 +14,6 @@ import com.bluelinelabs.conductor.RouterTransaction
import com.bluelinelabs.conductor.changehandler.FadeChangeHandler import com.bluelinelabs.conductor.changehandler.FadeChangeHandler
import com.github.salomonbrys.kotson.fromJson import com.github.salomonbrys.kotson.fromJson
import com.google.gson.Gson import com.google.gson.Gson
import com.kizitonwose.time.Interval
import com.kizitonwose.time.days
import com.kizitonwose.time.hours
import com.tfcporciuncula.flow.Preference import com.tfcporciuncula.flow.Preference
import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.database.DatabaseHelper import eu.kanade.tachiyomi.data.database.DatabaseHelper
@ -51,6 +48,10 @@ import exh.util.nullIfBlank
import exh.util.trans import exh.util.trans
import humanize.Humanize import humanize.Humanize
import java.util.Date import java.util.Date
import kotlin.time.Duration
import kotlin.time.ExperimentalTime
import kotlin.time.days
import kotlin.time.hours
import kotlinx.android.synthetic.main.eh_dialog_categories.view.artist_cg_checkbox import kotlinx.android.synthetic.main.eh_dialog_categories.view.artist_cg_checkbox
import kotlinx.android.synthetic.main.eh_dialog_categories.view.asian_porn_checkbox import kotlinx.android.synthetic.main.eh_dialog_categories.view.asian_porn_checkbox
import kotlinx.android.synthetic.main.eh_dialog_categories.view.cosplay_checkbox import kotlinx.android.synthetic.main.eh_dialog_categories.view.cosplay_checkbox
@ -663,13 +664,15 @@ class SettingsEhController : SettingsController() {
?.raise<EHentaiSearchMetadata>() ?.raise<EHentaiSearchMetadata>()
}.toList() }.toList()
fun metaInRelativeDuration(duration: Interval<*>): Int { @OptIn(ExperimentalTime::class)
val durationMs = duration.inMilliseconds.longValue fun metaInRelativeDuration(duration: Duration): Int {
val durationMs = duration.toLongMilliseconds()
return allMeta.asSequence().filter { return allMeta.asSequence().filter {
System.currentTimeMillis() - it.lastUpdateCheck < durationMs System.currentTimeMillis() - it.lastUpdateCheck < durationMs
}.count() }.count()
} }
@OptIn(ExperimentalTime::class)
statsText + "\n\n" + context.getString( statsText + "\n\n" + context.getString(
R.string.gallery_updater_stats_time, R.string.gallery_updater_stats_time,
metaInRelativeDuration(1.hours), metaInRelativeDuration(1.hours),

View File

@ -9,8 +9,6 @@ import android.content.Context
import android.os.Build import android.os.Build
import com.elvishew.xlog.XLog import com.elvishew.xlog.XLog
import com.google.gson.Gson import com.google.gson.Gson
import com.kizitonwose.time.days
import com.kizitonwose.time.hours
import eu.kanade.tachiyomi.data.database.DatabaseHelper import eu.kanade.tachiyomi.data.database.DatabaseHelper
import eu.kanade.tachiyomi.data.database.models.Chapter import eu.kanade.tachiyomi.data.database.models.Chapter
import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.database.models.Manga
@ -31,6 +29,9 @@ import exh.util.cancellable
import exh.util.jobScheduler import exh.util.jobScheduler
import java.util.ArrayList import java.util.ArrayList
import kotlin.coroutines.CoroutineContext import kotlin.coroutines.CoroutineContext
import kotlin.time.ExperimentalTime
import kotlin.time.days
import kotlin.time.hours
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job import kotlinx.coroutines.Job
@ -284,7 +285,8 @@ class EHentaiUpdateWorker : JobService(), CoroutineScope {
companion object { companion object {
private const val MAX_UPDATE_FAILURES = 5 private const val MAX_UPDATE_FAILURES = 5
private val MIN_BACKGROUND_UPDATE_FREQ = 1.days.inMilliseconds.longValue @OptIn(ExperimentalTime::class)
private val MIN_BACKGROUND_UPDATE_FREQ = 1.days.toLongMilliseconds()
private const val JOB_ID_UPDATE_BACKGROUND = 700000 private const val JOB_ID_UPDATE_BACKGROUND = 700000
private const val JOB_ID_UPDATE_BACKGROUND_TEST = 700001 private const val JOB_ID_UPDATE_BACKGROUND_TEST = 700001
@ -352,14 +354,15 @@ class EHentaiUpdateWorker : JobService(), CoroutineScope {
cancelBackground(context) cancelBackground(context)
val preferences = Injekt.get<PreferencesHelper>() val preferences = Injekt.get<PreferencesHelper>()
val interval = prefInterval ?: preferences.eh_autoUpdateFrequency().get() val duration = prefInterval ?: preferences.eh_autoUpdateFrequency().get()
if (interval > 0) { if (duration > 0) {
val restrictions = preferences.eh_autoUpdateRequirements()!! val restrictions = preferences.eh_autoUpdateRequirements()!!
val acRestriction = "ac" in restrictions val acRestriction = "ac" in restrictions
val wifiRestriction = "wifi" in restrictions val wifiRestriction = "wifi" in restrictions
@OptIn(ExperimentalTime::class)
val jobInfo = context.periodicBackgroundJobInfo( val jobInfo = context.periodicBackgroundJobInfo(
interval.hours.inMilliseconds.longValue, duration.hours.toLongMilliseconds(),
acRestriction, acRestriction,
wifiRestriction wifiRestriction
) )
@ -382,5 +385,6 @@ data class UpdateEntry(val manga: Manga, val meta: EHentaiSearchMetadata, val ro
object EHentaiUpdateWorkerConstants { object EHentaiUpdateWorkerConstants {
const val UPDATES_PER_ITERATION = 50 const val UPDATES_PER_ITERATION = 50
val GALLERY_AGE_TIME = 365.days.inMilliseconds.longValue @OptIn(ExperimentalTime::class)
val GALLERY_AGE_TIME = 365.days.toLongMilliseconds()
} }