Split sync feature part 1

Co-authored-by: KaiserBh <kaiserbh@proton.me>
This commit is contained in:
Aria Moradi
2023-07-06 14:06:23 +03:30
parent 4d67066de3
commit 84eb68e1ba
35 changed files with 1090 additions and 35 deletions

View File

@ -1,5 +1,7 @@
package tachiyomi.core.preference
import java.time.Instant
interface PreferenceStore {
fun getString(key: String, defaultValue: String = ""): Preference<String>
@ -14,6 +16,15 @@ interface PreferenceStore {
fun getStringSet(key: String, defaultValue: Set<String> = emptySet()): Preference<Set<String>>
fun getInstant(key: String, defaultValue: Instant = Instant.EPOCH): Preference<Instant> {
return getObject(
key = key,
defaultValue = defaultValue,
serializer = { it.epochSecond.toString() },
deserializer = { Instant.ofEpochSecond(it.toLong()) },
)
}
fun <T> getObject(
key: String,
defaultValue: T,