Move from kizitonwose time to kotlin duration
This commit is contained in:
parent
d83f938e07
commit
f20e5d864d
@ -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"
|
||||||
|
@ -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()
|
||||||
|
|
||||||
|
@ -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),
|
||||||
|
@ -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()
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user