zwischenstand
This commit is contained in:
1 parent
e89bb29070
commit
231132dd9e
12 files changed
+191
-13
No files matched your search
@@ -1,3 +1,3 @@
|
|||||||
#auto generated
|
#auto generated
|
||||||
#Tue Feb 03 00:28:14 CET 2026
|
#Thu Feb 05 01:16:28 CET 2026
|
||||||
build.number=174
|
build.number=190
|
||||||
@@ -4,13 +4,13 @@ import net.keinekekse.version.Version
|
|||||||
|
|
||||||
object VERSION: Version {
|
object VERSION: Version {
|
||||||
override val version = "1.0.0"
|
override val version = "1.0.0"
|
||||||
override val fullVersion = "1.0.0+build.174"
|
override val fullVersion = "1.0.0+build.190"
|
||||||
override val major = 1
|
override val major = 1
|
||||||
override val minor = 0
|
override val minor = 0
|
||||||
override val patch = 0
|
override val patch = 0
|
||||||
override val preRelease = ""
|
override val preRelease = ""
|
||||||
override val buildMetadata = "build.174"
|
override val buildMetadata = "build.190"
|
||||||
override val buildDate = "2026-02-02T23:28:14.786916Z"
|
override val buildDate = "2026-02-05T00:16:28.206204Z"
|
||||||
override val displayName = "Books App"
|
override val displayName = "Books App"
|
||||||
override val copyright = "Copyright (c) 2026 Hartmut Bauer"
|
override val copyright = "Copyright (c) 2026 Hartmut Bauer"
|
||||||
override val name = "books"
|
override val name = "books"
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
package net.keinekekse.app.config
|
||||||
|
|
||||||
|
// das interface kann in shared, aber der expect/actual-Teil muss in die Anwendung
|
||||||
|
// damit konkrete Werte, z.B. für die Preferences gesetzt werden können.
|
||||||
|
expect fun settingsFactory(): Settings
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package net.keinekekse.app.config
|
||||||
|
|
||||||
|
import net.keinekekse.app.books.VERSION
|
||||||
|
import org.koin.core.annotation.Singleton
|
||||||
|
|
||||||
|
@Singleton
|
||||||
|
actual fun settingsFactory(): Settings {
|
||||||
|
return JvmSettings(VERSION::class.java)
|
||||||
|
}
|
||||||
@@ -19,6 +19,7 @@ import kotlinx.coroutines.withContext
|
|||||||
import net.keinekekse.app.auth.AuthResult
|
import net.keinekekse.app.auth.AuthResult
|
||||||
import net.keinekekse.app.auth.Authenticator
|
import net.keinekekse.app.auth.Authenticator
|
||||||
import net.keinekekse.app.books.di.KoinApp
|
import net.keinekekse.app.books.di.KoinApp
|
||||||
|
import net.keinekekse.app.config.Settings
|
||||||
import net.keinekekse.app.ui.ProgressIndicator
|
import net.keinekekse.app.ui.ProgressIndicator
|
||||||
import org.koin.compose.koinInject
|
import org.koin.compose.koinInject
|
||||||
import org.koin.plugin.module.dsl.startKoin
|
import org.koin.plugin.module.dsl.startKoin
|
||||||
@@ -36,6 +37,18 @@ fun main() = application {
|
|||||||
|
|
||||||
startKoin<KoinApp>()
|
startKoin<KoinApp>()
|
||||||
|
|
||||||
|
val settings: Settings = koinInject()
|
||||||
|
|
||||||
|
// val settings: Settings = PreferencesSettings(delegate)
|
||||||
|
//
|
||||||
|
// settings.put("kc_server", "kec.keinekekse.net")
|
||||||
|
println(settings.get("kc_server", "default"))
|
||||||
|
// println(Preferences.userRoot())
|
||||||
|
|
||||||
|
// println("System properties:")
|
||||||
|
// System.getProperties().forEach { println("${it.key}=${it.value}") }
|
||||||
|
// println("")
|
||||||
|
|
||||||
// keycloakServer = "kec.keinekekse.net"
|
// keycloakServer = "kec.keinekekse.net"
|
||||||
// keycloakRealm = "app-server-realm"
|
// keycloakRealm = "app-server-realm"
|
||||||
// keycloakClient = "pkce-book-app"
|
// keycloakClient = "pkce-book-app"
|
||||||
@@ -164,3 +177,63 @@ fun main() = application {
|
|||||||
// strokeWidth = strokewidth
|
// strokeWidth = strokewidth
|
||||||
// )
|
// )
|
||||||
//}
|
//}
|
||||||
|
|
||||||
|
/*
|
||||||
|
System properties:
|
||||||
|
------------------
|
||||||
|
java.specification.version=21
|
||||||
|
sun.jnu.encoding=UTF-8
|
||||||
|
java.class.path=/Users/hb/Workspaces/Kotlin/app/books/build/classes/kotlin/jvm/main:/Users/hb/Workspaces/Kotlin/app/books/build/classes/java/jvmMain:/Users/hb/Workspaces/Kotlin/app/books/build/processedResources/jvm/main:/Users/hb/Workspaces/Kotlin/app/shared/build/libs/shared-jvm.jar:/Users/hb/.gradle/caches/modules-2/files-2.1/io.ktor/ktor-client-cio-jvm/3.4.0/84786f75d08fe5042f17c246380eb8381d125a6b/ktor-client-cio-jvm-3.4.0.jar:/Users/hb/.gradle/caches/modules-2/files-2.1/io.ktor/ktor-client-auth-jvm/3.4.0/14d75d5e7552a8e26a2ad4dd511a76d4a0c5502f/ktor-client-auth-jvm-3.4.0.jar:/Users/hb/.gradle/caches/modules-2/files-2.1/io.ktor/ktor-client-logging-jvm/3.4.0/278d41697d9194d36290842bfdae03d674b3f365/ktor-client-logging-jvm-3.4.0.jar:/Users/hb/.gradle/caches/modules-2/files-2.1/io.ktor/ktor-client-content-negotiation-jvm/3.4.0/266c1aef9d340c22cd859dd5c9174c2e1d86489f/ktor-client-content-negotiation-jvm-3.4.0.jar:/Users/hb/.gradle/caches/modules-2/files-2.1/io.ktor/ktor-client-java-jvm/3.4.0/4fcb8ec3488c8529773562d45e475533ab46f8ee/ktor-client-java-jvm-3.4.0.jar:/Users/hb/.gradle/caches/modules-2/files-2.1/io.ktor/ktor-server-auth-jwt-jvm/3.4.0/f9c667cf2b122debb0081d0d69edb4caaa047d09/ktor-server-auth-jwt-jvm-3.4.0.jar:/Users/hb/.gradle/caches/modules-2/files-2.1/io.ktor/ktor-server-auth-jvm/3.4.0/6c5fd0cb490bc7efabda621873c07b30b2e7f686/ktor-server-auth-jvm-3.4.0.jar:/Users/hb/.gradle/caches/modules-2/files-2.1/io.ktor/ktor-client-core-jvm/3.4.0/1f017fc4dcf7e3ff5152a28923b7639a9ba82123/ktor-client-core-jvm-3.4.0.jar:/Users/hb/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlinx/kotlinx-coroutines-slf4j/1.10.2/1271f9d4a929150bb87ab8d1dc1e86d4bcf039f3/kotlinx-coroutines-slf4j-1.10.2.jar:/Users/hb/.gradle/caches/modules-2/files-2.1/org.jetbrains.compose.components/components-resources-desktop/1.10.0/c6115b607f77e9d033de360f989850d3824bf112/library-desktop-1.10.0.jar:/Users/hb/.gradle/caches/modules-2/files-2.1/org.jetbrains.compose.material3/material3-desktop/1.10.0-alpha05/ebcf3065e9f7d408f8be2854b6542fb1dd51356f/material3-desktop-1.10.0-alpha05.jar:/Users/hb/.gradle/caches/modules-2/files-2.1/io.insert-koin/koin-compose-viewmodel-jvm/4.2.0-RC1/635720e57068e85996de14fe99262210bd373bf9/koin-compose-viewmodel-jvm-4.2.0-RC1.jar:/Users/hb/.gradle/caches/modules-2/files-2.1/io.insert-koin/koin-compose-jvm/4.2.0-RC1/f8d7e9c3bc6ab356961774f56a9e844158b1de42/koin-compose-jvm-4.2.0-RC1.jar:/Users/hb/.gradle/caches/modules-2/files-2.1/org.jetbrains.compose.desktop/desktop-jvm/1.10.0/42facd9840309ac4eb841a986c5d1b97d2780471/desktop-jvm-1.10.0.jar:/Users/hb/.gradle/caches/modules-2/files-2.1/org.jetbrains.compose.material/material-desktop/1.10.0/63e1c3c6705d111bf84e41110e7729df5b85163e/material-desktop-1.10.0.jar:/Users/hb/.gradle/caches/modules-2/files-2.1/org.jetbrains.compose.material/material-ripple-desktop/1.10.0/74a14824f086339703264689c5a7cf4ceb39ed40/material-ripple-desktop-1.10.0.jar:/Users/hb/.gradle/caches/modules-2/files-2.1/org.jetbrains.compose.foundation/foundation-desktop/1.10.0/439630673394b12a406fe398faaca548a13fdb72/foundation-desktop-1.10.0.jar:/Users/hb/.gradle/caches/modules-2/files-2.1/org.jetbrains.compose.material/material-icons-extended-desktop/1.7.0/c7c5465dd754043076875b32bce0dd7f5a354fe8/material-icons-extended-desktop-1.7.0.jar:/Users/hb/.gradle/caches/modules-2/files-2.1/org.jetbrains.androidx.lifecycle/lifecycle-viewmodel-compose-desktop/2.9.6/5cf03bfbc0f7139a4d7081d5da78c97287f3c65f/lifecycle-viewmodel-compose-desktop-2.9.6.jar:/Users/hb/.gradle/caches/modules-2/files-2.1/org.jetbrains.compose.animation/animation-desktop/1.10.0/17f777e04f7fe5dff2fe7992d0c0bda81c3a3897/animation-desktop-1.10.0.jar:/Users/hb/.gradle/caches/modules-2/files-2.1/org.jetbrains.compose.foundation/foundation-layout-desktop/1.10.0/263364f922ef14fb64f1313a384a0c31cd6f3fa5/foundation-layout-desktop-1.10.0.jar:/Users/hb/.gradle/caches/modules-2/files-2.1/org.jetbrains.compose.material/material-icons-core-desktop/1.7.0/414b3096050fe647b0638832eace80f22c06b85c/material-icons-core-desktop-1.7.0.jar:/Users/hb/.gradle/caches/modules-2/files-2.1/org.jetbrains.compose.animation/animation-core-desktop/1.10.0/5dd98c5745e548644b7657901bbcc4c2c8f9ec59/animation-core-desktop-1.10.0.jar:/Users/hb/.gradle/caches/modules-2/files-2.1/org.jetbrains.compose.ui/ui-desktop/1.10.0/361220f423057a8dae48d6ba8a0294f0948caf8a/ui-desktop-1.10.0.jar:/Users/hb/.gradle/caches/modules-2/files-2.1/io.ktor/ktor-serialization-kotlinx-json-jvm/3.4.0/2a09f17d70b6e61623fd8aff9bdce6d7877892/ktor-serialization-kotlinx-json-jvm-3.4.0.jar:/Users/hb/.gradle/caches/modules-2/files-2.1/io.ktor/ktor-server-cio-jvm/3.4.0/16a50d239963841ae64e8e207f93ae7a5fdd7062/ktor-server-cio-jvm-3.4.0.jar:/Users/hb/.gradle/caches/modules-2/files-2.1/io.ktor/ktor-server-sessions-jvm/3.4.0/35d3bb0535b2a6429b1eb73390cd4de9c541e654/ktor-server-sessions-jvm-3.4.0.jar:/Users/hb/.gradle/caches/modules-2/files-2.1/io.ktor/ktor-server-core-jvm/3.4.0/97aba0f5e3cd539679907382a3f57Line truncated
|
||||||
|
sun.awt.enableExtraMouseButtons=true
|
||||||
|
java.vm.vendor=Eclipse Adoptium
|
||||||
|
sun.arch.data.model=64
|
||||||
|
user.variant=
|
||||||
|
java.vendor.url=https://adoptium.net/
|
||||||
|
java.vm.specification.version=21
|
||||||
|
os.name=Mac OS X
|
||||||
|
user.country=DE
|
||||||
|
sun.java.launcher=SUN_STANDARD
|
||||||
|
sun.boot.library.path=/Library/Java/JavaVirtualMachines/temurin-21.jdk/Contents/Home/lib
|
||||||
|
sun.java.command=net.keinekekse.app.MainKt
|
||||||
|
http.nonProxyHosts=local|*.local|169.254/16|*.169.254/16
|
||||||
|
jdk.debug=release
|
||||||
|
sun.cpu.endian=little
|
||||||
|
user.home=/Users/hb
|
||||||
|
user.language=de
|
||||||
|
java.specification.vendor=Oracle Corporation
|
||||||
|
java.version.date=2025-10-21
|
||||||
|
java.home=/Library/Java/JavaVirtualMachines/temurin-21.jdk/Contents/Home
|
||||||
|
file.separator=/
|
||||||
|
java.vm.compressedOopsMode=Non-zero disjoint base
|
||||||
|
line.separator=
|
||||||
|
|
||||||
|
java.vm.specification.vendor=Oracle Corporation
|
||||||
|
java.specification.name=Java Platform API Specification
|
||||||
|
apple.awt.application.name=MainKt
|
||||||
|
sun.management.compiler=HotSpot 64-Bit Tiered Compilers
|
||||||
|
ftp.nonProxyHosts=local|*.local|169.254/16|*.169.254/16
|
||||||
|
java.runtime.version=21.0.9+10-LTS
|
||||||
|
user.name=hb
|
||||||
|
stdout.encoding=UTF-8
|
||||||
|
path.separator=:
|
||||||
|
os.version=26.2
|
||||||
|
java.runtime.name=OpenJDK Runtime Environment
|
||||||
|
file.encoding=UTF-8
|
||||||
|
java.vm.name=OpenJDK 64-Bit Server VM
|
||||||
|
java.vendor.version=Temurin-21.0.9+10
|
||||||
|
java.vendor.url.bug=https://github.com/adoptium/adoptium-support/issues
|
||||||
|
java.io.tmpdir=/var/folders/tb/nj4p1kpn1fn__rhr8k1gvfhw0000gn/T/
|
||||||
|
java.version=21.0.9
|
||||||
|
user.dir=/Users/hb/Workspaces/Kotlin/app/books
|
||||||
|
os.arch=aarch64
|
||||||
|
java.vm.specification.name=Java Virtual Machine Specification
|
||||||
|
native.encoding=UTF-8
|
||||||
|
java.library.path=/Users/hb/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
|
||||||
|
java.vm.info=mixed mode, sharing
|
||||||
|
stderr.encoding=UTF-8
|
||||||
|
java.vendor=Eclipse Adoptium
|
||||||
|
java.vm.version=21.0.9+10-LTS
|
||||||
|
sun.io.unicode.encoding=UnicodeBig
|
||||||
|
socksNonProxyHosts=local|*.local|169.254/16|*.169.254/16
|
||||||
|
java.class.version=65.0
|
||||||
|
*/
|
||||||
Whitespace-only changes.
@@ -18,6 +18,8 @@ koin-plugin = "0.3.0"
|
|||||||
ktor = "3.4.0"
|
ktor = "3.4.0"
|
||||||
logback = "1.5.26"
|
logback = "1.5.26"
|
||||||
material3 = "1.10.0-alpha05"
|
material3 = "1.10.0-alpha05"
|
||||||
|
settings = "1.3.0"
|
||||||
|
dataStore = "1.2.0"
|
||||||
uiDesktop = "1.7.0"
|
uiDesktop = "1.7.0"
|
||||||
|
|
||||||
[libraries]
|
[libraries]
|
||||||
@@ -34,7 +36,7 @@ compose-materialIcons = { module = "org.jetbrains.compose.material:material-icon
|
|||||||
compose-ui = { module = "org.jetbrains.compose.ui:ui", version.ref = "composeMultiplatform" }
|
compose-ui = { module = "org.jetbrains.compose.ui:ui", version.ref = "composeMultiplatform" }
|
||||||
compose-components-resources = { module = "org.jetbrains.compose.components:components-resources", version.ref = "composeMultiplatform" }
|
compose-components-resources = { module = "org.jetbrains.compose.components:components-resources", version.ref = "composeMultiplatform" }
|
||||||
compose-uiToolingPreview = { module = "org.jetbrains.compose.ui:ui-tooling-preview", version.ref = "composeMultiplatform" }
|
compose-uiToolingPreview = { module = "org.jetbrains.compose.ui:ui-tooling-preview", version.ref = "composeMultiplatform" }
|
||||||
# --
|
# ----
|
||||||
kotlinx-coroutinesSwing = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-swing", version.ref = "kotlinx-coroutines" }
|
kotlinx-coroutinesSwing = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-swing", version.ref = "kotlinx-coroutines" }
|
||||||
kotlinx-html = { module = "org.jetbrains.kotlinx:kotlinx-html", version.ref = "kotlinx-html" }
|
kotlinx-html = { module = "org.jetbrains.kotlinx:kotlinx-html", version.ref = "kotlinx-html" }
|
||||||
kotlin-wrappersCss = { module = "org.jetbrains.kotlin-wrappers:kotlin-css-jvm", version.ref = "kotlin-wrappers-css" }
|
kotlin-wrappersCss = { module = "org.jetbrains.kotlin-wrappers:kotlin-css-jvm", version.ref = "kotlin-wrappers-css" }
|
||||||
@@ -77,7 +79,12 @@ koin-compose-viewmodel-navigation = { module = "io.insert-koin:koin-compose-view
|
|||||||
#koin-compose-viewmodel-navigation3 = { module = "io.insert-koin:koin-compose-viewmodel-navigation3" }
|
#koin-compose-viewmodel-navigation3 = { module = "io.insert-koin:koin-compose-viewmodel-navigation3" }
|
||||||
koin-ktor = { module = "io.insert-koin:koin-ktor" }
|
koin-ktor = { module = "io.insert-koin:koin-ktor" }
|
||||||
koin-test = { module = "io.insert-koin:koin-test" }
|
koin-test = { module = "io.insert-koin:koin-test" }
|
||||||
# --
|
# ----
|
||||||
|
|
||||||
|
# Settings vorerst ohne externe Hilfe
|
||||||
|
#multiplatformSettings = { module = "com.russhwolf:multiplatform-settings", version.ref = "settings" }
|
||||||
|
#androidx-datastore = { module = "androidx.datastore:datastore", version.ref = "dataStore" }
|
||||||
|
#androidx-datastore-preferences = { module = "androidx.datastore:datastore-preferences", version.ref = "dataStore" }
|
||||||
|
|
||||||
[bundles]
|
[bundles]
|
||||||
kotlin-compose = [
|
kotlin-compose = [
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
#auto generated
|
#auto generated
|
||||||
#Tue Feb 03 00:47:38 CET 2026
|
#Wed Feb 04 23:56:00 CET 2026
|
||||||
build.number=19
|
build.number=20
|
||||||
@@ -3,14 +3,14 @@ package net.keinekekse.app.server
|
|||||||
import net.keinekekse.version.Version
|
import net.keinekekse.version.Version
|
||||||
|
|
||||||
object VERSION: Version {
|
object VERSION: Version {
|
||||||
override val version = "0.1.0-beta.1+build.19"
|
override val version = "0.1.0-beta.1+build.20"
|
||||||
override val fullVersion = "0.1.0-beta.1+build.19"
|
override val fullVersion = "0.1.0-beta.1+build.20"
|
||||||
override val major = 0
|
override val major = 0
|
||||||
override val minor = 1
|
override val minor = 1
|
||||||
override val patch = 0
|
override val patch = 0
|
||||||
override val preRelease = "beta.1"
|
override val preRelease = "beta.1"
|
||||||
override val buildMetadata = "build.19"
|
override val buildMetadata = "build.20"
|
||||||
override val buildDate = "2026-02-02T23:47:38.629893Z"
|
override val buildDate = "2026-02-04T22:56:00.753833Z"
|
||||||
override val displayName = "kAS"
|
override val displayName = "kAS"
|
||||||
override val copyright = "Copyright (c) 2026 Hartmut Bauer"
|
override val copyright = "Copyright (c) 2026 Hartmut Bauer"
|
||||||
override val name = "server"
|
override val name = "server"
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package net.keinekekse.app.config
|
||||||
|
|
||||||
|
interface Settings {
|
||||||
|
fun get(key: String): String?
|
||||||
|
fun get(key: String, default: String): String = get(key) ?: default
|
||||||
|
fun getInt(key: String): Int? = get(key)?.toIntOrNull()
|
||||||
|
fun getInt(key: String, default: Int): Int = getInt(key) ?: default
|
||||||
|
fun getLong(key: String): Long? = get(key)?.toLongOrNull()
|
||||||
|
fun getLong(key: String, default: Long): Long = getLong(key) ?: default
|
||||||
|
fun getFloat(key: String): Float? = get(key)?.toFloatOrNull()
|
||||||
|
fun getFloat(key: String, default: Float): Float = getFloat(key) ?: default
|
||||||
|
fun getBoolean(key: String): Boolean? = get(key)?.toBooleanStrictOrNull()
|
||||||
|
fun getBoolean(key: String, default: Boolean): Boolean = getBoolean(key) ?: default
|
||||||
|
|
||||||
|
fun put(key: String, value: String)
|
||||||
|
fun putInt(key: String, value: Int)
|
||||||
|
fun putLong(key: String, value: Long)
|
||||||
|
fun putFloat(key: String, value: Float)
|
||||||
|
fun putBoolean(key: String, value: Boolean)
|
||||||
|
|
||||||
|
fun hasKey(key: String): Boolean = get(key) != null
|
||||||
|
fun remove(key: String)
|
||||||
|
fun clear()
|
||||||
|
|
||||||
|
fun size(): Int
|
||||||
|
fun keys(): Set<String>
|
||||||
|
}
|
||||||
@@ -10,6 +10,8 @@ import androidx.compose.ui.draw.drawBehind
|
|||||||
import androidx.compose.ui.graphics.drawscope.Stroke
|
import androidx.compose.ui.graphics.drawscope.Stroke
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
|
|
||||||
|
// TODO (ProgressIndicator.() -> Unit) --> { animationSize = ....
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun ProgressIndicator(animationSize: Int = 48, paddingTop: Int = 16, strokeWidth: Int = 5) {
|
fun ProgressIndicator(animationSize: Int = 48, paddingTop: Int = 16, strokeWidth: Int = 5) {
|
||||||
val primaryColor = MaterialTheme.colorScheme.primary
|
val primaryColor = MaterialTheme.colorScheme.primary
|
||||||
|
|||||||
@@ -0,0 +1,55 @@
|
|||||||
|
package net.keinekekse.app.config
|
||||||
|
|
||||||
|
import java.util.prefs.Preferences
|
||||||
|
|
||||||
|
class JvmSettings(clazz: Class<*>? = null) : Settings {
|
||||||
|
private val preferences: Preferences
|
||||||
|
|
||||||
|
init {
|
||||||
|
if (clazz != null) {
|
||||||
|
preferences = Preferences.userNodeForPackage(clazz)
|
||||||
|
} else {
|
||||||
|
preferences = Preferences.userRoot()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun get(key: String): String? {
|
||||||
|
return preferences.get(key, null)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun put(key: String, value: String) {
|
||||||
|
preferences.put(key, value)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun putInt(key: String, value: Int) {
|
||||||
|
preferences.putInt(key, value)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun putLong(key: String, value: Long) {
|
||||||
|
preferences.putLong(key, value)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun putFloat(key: String, value: Float) {
|
||||||
|
preferences.putFloat(key, value)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun putBoolean(key: String, value: Boolean) {
|
||||||
|
preferences.putBoolean(key, value)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun remove(key: String) {
|
||||||
|
preferences.remove(key)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun clear() {
|
||||||
|
preferences.clear()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun size(): Int {
|
||||||
|
return preferences.keys().size
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun keys(): Set<String> {
|
||||||
|
return preferences.keys().toSet()
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in new issue
Block a user