From 0c7697aef825600515b87d83d4e0a1616c357294 Mon Sep 17 00:00:00 2001 From: denis0001-dev Date: Sun, 21 Dec 2025 13:47:17 +0300 Subject: [PATCH] Improve settings interface, move iOS project --- .gitignore | 7 +- .idea/xcode.xml | 2 +- app/android/build.gradle.kts | 8 +- .../ios}/Configuration/Config.xcconfig | 0 .../ios}/iosApp.xcodeproj/project.pbxproj | 7 +- .../contents.xcworkspacedata | 0 .../UserInterfaceState.xcuserstate | Bin 0 -> 212442 bytes .../xcschemes/xcschememanagement.plist | 0 .../AccentColor.colorset/Contents.json | 0 .../AppIcon.appiconset/Contents.json | 0 .../AppIcon.appiconset/logo_square.png | Bin .../ios}/iosApp/Assets.xcassets/Contents.json | 0 {iosApp => app/ios}/iosApp/ContentView.swift | 0 {iosApp => app/ios}/iosApp/Info.plist | 0 .../Preview Assets.xcassets/Contents.json | 0 {iosApp => app/ios}/iosApp/iOSApp.swift | 0 .../kotlin/ru/fromchat/core/Settings.kt | 21 +++-- .../UserInterfaceState.xcuserstate | Bin 57101 -> 0 bytes .../xcschemes/iOS.xcscheme | 70 -------------- .../xcschemes/xcschememanagement.plist | 22 ----- .../utils/settings/AndroidSettings.kt | 54 ++++------- .../pr0gramm3r101/utils/settings/Settings.kt | 30 +++--- .../utils/settings/IosSettings.kt | 89 +++++++----------- 23 files changed, 95 insertions(+), 215 deletions(-) rename {iosApp => app/ios}/Configuration/Config.xcconfig (100%) rename {iosApp => app/ios}/iosApp.xcodeproj/project.pbxproj (97%) rename {iosApp => app/ios}/iosApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata (100%) create mode 100644 app/ios/iosApp.xcodeproj/project.xcworkspace/xcuserdata/denis0001-dev.xcuserdatad/UserInterfaceState.xcuserstate rename {iosApp => app/ios}/iosApp.xcodeproj/project.xcworkspace/xcuserdata/denis0001-dev.xcuserdatad/xcschemes/xcschememanagement.plist (100%) rename {iosApp => app/ios}/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json (100%) rename {iosApp => app/ios}/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json (100%) rename {iosApp => app/ios}/iosApp/Assets.xcassets/AppIcon.appiconset/logo_square.png (100%) rename {iosApp => app/ios}/iosApp/Assets.xcassets/Contents.json (100%) rename {iosApp => app/ios}/iosApp/ContentView.swift (100%) rename {iosApp => app/ios}/iosApp/Info.plist (100%) rename {iosApp => app/ios}/iosApp/Preview Content/Preview Assets.xcassets/Contents.json (100%) rename {iosApp => app/ios}/iosApp/iOSApp.swift (100%) delete mode 100644 iosApp/iosApp.xcodeproj/project.xcworkspace/xcuserdata/denis0001-dev.xcuserdatad/UserInterfaceState.xcuserstate delete mode 100644 iosApp/iosApp.xcodeproj/xcuserdata/denis0001-dev.xcuserdatad/xcschemes/iOS.xcscheme delete mode 100644 iosApp/iosApp.xcodeproj/xcuserdata/denis0001-dev.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/.gitignore b/.gitignore index 74e3a25..ef060bf 100644 --- a/.gitignore +++ b/.gitignore @@ -18,6 +18,9 @@ build .cxx local.properties -keys +app/android/keys releases -release \ No newline at end of file +release + +*.xcuserstate +xcuserdata \ No newline at end of file diff --git a/.idea/xcode.xml b/.idea/xcode.xml index 4eb3242..6d89145 100644 --- a/.idea/xcode.xml +++ b/.idea/xcode.xml @@ -1,4 +1,4 @@ - + \ No newline at end of file diff --git a/app/android/build.gradle.kts b/app/android/build.gradle.kts index df67770..642ec6c 100644 --- a/app/android/build.gradle.kts +++ b/app/android/build.gradle.kts @@ -1,4 +1,5 @@ +import com.android.build.gradle.tasks.MergeSourceSetFolders import org.jetbrains.kotlin.gradle.dsl.JvmTarget import java.io.FileInputStream import java.util.Properties @@ -50,9 +51,10 @@ android { signingConfigs { create("release") { val keystoreProperties = Properties().apply { - load(FileInputStream(rootProject.file("keys/keystore.properties"))) + load(FileInputStream(file("keys/keystore.properties"))) } - storeFile = rootProject.file("keys/release.jks") + + storeFile = file("keys/release.jks") keyAlias = "release" storePassword = keystoreProperties["storePassword"].toString() keyPassword = keystoreProperties["keyPassword"].toString() @@ -91,7 +93,7 @@ android { } } -tasks.withType().configureEach { +tasks.withType().configureEach { dependsOn(fixComposeResourcesStructure) } diff --git a/iosApp/Configuration/Config.xcconfig b/app/ios/Configuration/Config.xcconfig similarity index 100% rename from iosApp/Configuration/Config.xcconfig rename to app/ios/Configuration/Config.xcconfig diff --git a/iosApp/iosApp.xcodeproj/project.pbxproj b/app/ios/iosApp.xcodeproj/project.pbxproj similarity index 97% rename from iosApp/iosApp.xcodeproj/project.pbxproj rename to app/ios/iosApp.xcodeproj/project.pbxproj index b70fb0f..322058f 100644 --- a/iosApp/iosApp.xcodeproj/project.pbxproj +++ b/app/ios/iosApp.xcodeproj/project.pbxproj @@ -161,6 +161,7 @@ /* Begin PBXShellScriptBuildPhase section */ F36B1CEB2AD83DDC00CB74D5 /* Compile Kotlin Framework */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); @@ -175,7 +176,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "if [ \"YES\" = \"$OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED\" ]; then\n echo \"Skipping Gradle build task invocation due to OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED environment variable set to \\\"YES\\\"\"\n exit 0\nfi\ncd \"$SRCROOT/..\"\n./gradlew :composeApp:embedAndSignAppleFrameworkForXcode\n"; + shellScript = "if [ \"YES\" = \"$OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED\" ]; then\n echo \"Skipping Gradle build task invocation due to OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED environment variable set to \\\"YES\\\"\"\n exit 0\nfi\ncd \"$SRCROOT/../../\"\n./gradlew :app:shared:embedAndSignAppleFrameworkForXcode\n"; }; /* End PBXShellScriptBuildPhase section */ @@ -327,7 +328,7 @@ ENABLE_PREVIEWS = YES; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", - "$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)\n$(SRCROOT)/../composeApp/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)", + "$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)", ); INFOPLIST_FILE = iosApp/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = FromChat; @@ -359,7 +360,7 @@ ENABLE_PREVIEWS = YES; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", - "$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)\n$(SRCROOT)/../composeApp/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)", + "$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)", ); INFOPLIST_FILE = iosApp/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = FromChat; diff --git a/iosApp/iosApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/app/ios/iosApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from iosApp/iosApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to app/ios/iosApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/app/ios/iosApp.xcodeproj/project.xcworkspace/xcuserdata/denis0001-dev.xcuserdatad/UserInterfaceState.xcuserstate b/app/ios/iosApp.xcodeproj/project.xcworkspace/xcuserdata/denis0001-dev.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..2b08ce5cf47df9bec7de9b1045e0ae95e0abb096 GIT binary patch literal 212442 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 L{r~?CD^LGFrDCQp literal 0 HcmV?d00001 diff --git a/iosApp/iosApp.xcodeproj/project.xcworkspace/xcuserdata/denis0001-dev.xcuserdatad/xcschemes/xcschememanagement.plist b/app/ios/iosApp.xcodeproj/project.xcworkspace/xcuserdata/denis0001-dev.xcuserdatad/xcschemes/xcschememanagement.plist similarity index 100% rename from iosApp/iosApp.xcodeproj/project.xcworkspace/xcuserdata/denis0001-dev.xcuserdatad/xcschemes/xcschememanagement.plist rename to app/ios/iosApp.xcodeproj/project.xcworkspace/xcuserdata/denis0001-dev.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/iosApp/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json b/app/ios/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json similarity index 100% rename from iosApp/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json rename to app/ios/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json diff --git a/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json b/app/ios/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json rename to app/ios/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/logo_square.png b/app/ios/iosApp/Assets.xcassets/AppIcon.appiconset/logo_square.png similarity index 100% rename from iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/logo_square.png rename to app/ios/iosApp/Assets.xcassets/AppIcon.appiconset/logo_square.png diff --git a/iosApp/iosApp/Assets.xcassets/Contents.json b/app/ios/iosApp/Assets.xcassets/Contents.json similarity index 100% rename from iosApp/iosApp/Assets.xcassets/Contents.json rename to app/ios/iosApp/Assets.xcassets/Contents.json diff --git a/iosApp/iosApp/ContentView.swift b/app/ios/iosApp/ContentView.swift similarity index 100% rename from iosApp/iosApp/ContentView.swift rename to app/ios/iosApp/ContentView.swift diff --git a/iosApp/iosApp/Info.plist b/app/ios/iosApp/Info.plist similarity index 100% rename from iosApp/iosApp/Info.plist rename to app/ios/iosApp/Info.plist diff --git a/iosApp/iosApp/Preview Content/Preview Assets.xcassets/Contents.json b/app/ios/iosApp/Preview Content/Preview Assets.xcassets/Contents.json similarity index 100% rename from iosApp/iosApp/Preview Content/Preview Assets.xcassets/Contents.json rename to app/ios/iosApp/Preview Content/Preview Assets.xcassets/Contents.json diff --git a/iosApp/iosApp/iOSApp.swift b/app/ios/iosApp/iOSApp.swift similarity index 100% rename from iosApp/iosApp/iOSApp.swift rename to app/ios/iosApp/iOSApp.swift diff --git a/app/shared/src/commonMain/kotlin/ru/fromchat/core/Settings.kt b/app/shared/src/commonMain/kotlin/ru/fromchat/core/Settings.kt index 4cf302d..cd26482 100644 --- a/app/shared/src/commonMain/kotlin/ru/fromchat/core/Settings.kt +++ b/app/shared/src/commonMain/kotlin/ru/fromchat/core/Settings.kt @@ -1,17 +1,26 @@ package ru.fromchat.core -import ru.fromchat.ui.Theme import com.pr0gramm3r101.utils.settings.Settings +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.IO +import kotlinx.coroutines.launch +import kotlinx.coroutines.runBlocking +import ru.fromchat.ui.Theme object Settings { - private val settings = Settings.Companion() + private val settings = Settings() + + private fun runIO(block: suspend CoroutineScope.() -> Unit) { + CoroutineScope(Dispatchers.IO).launch(block = block) + } var materialYou: Boolean - get() = settings.getBoolean("materialYou", true) - set(value) = settings.putBoolean("materialYou", value) + get() = runBlocking { settings.getBoolean("materialYou", true) } + set(value) = runIO { settings.putBoolean("materialYou", value) } var theme: Theme - get() = Theme.entries[settings.getInt("theme", Theme.AsSystem.ordinal)] - set(value) = settings.putInt("theme", value.ordinal) + get() = runBlocking { Theme.entries[settings.getInt("theme", Theme.AsSystem.ordinal)] } + set(value) = runIO { settings.putInt("theme", value.ordinal) } } diff --git a/iosApp/iosApp.xcodeproj/project.xcworkspace/xcuserdata/denis0001-dev.xcuserdatad/UserInterfaceState.xcuserstate b/iosApp/iosApp.xcodeproj/project.xcworkspace/xcuserdata/denis0001-dev.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index f73e8b45ddf402c8e8fdcd5c8f672ac014b8952f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57101 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 diff --git a/iosApp/iosApp.xcodeproj/xcuserdata/denis0001-dev.xcuserdatad/xcschemes/iOS.xcscheme b/iosApp/iosApp.xcodeproj/xcuserdata/denis0001-dev.xcuserdatad/xcschemes/iOS.xcscheme deleted file mode 100644 index 0825f85..0000000 --- a/iosApp/iosApp.xcodeproj/xcuserdata/denis0001-dev.xcuserdatad/xcschemes/iOS.xcscheme +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/iosApp/iosApp.xcodeproj/xcuserdata/denis0001-dev.xcuserdatad/xcschemes/xcschememanagement.plist b/iosApp/iosApp.xcodeproj/xcuserdata/denis0001-dev.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index 2732651..0000000 --- a/iosApp/iosApp.xcodeproj/xcuserdata/denis0001-dev.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - SchemeUserState - - iOS.xcscheme - - orderHint - 0 - - - SuppressBuildableAutocreation - - 7555FF7A242A565900829871 - - primary - - - - - diff --git a/utils/shared/src/androidMain/kotlin/com/pr0gramm3r101/utils/settings/AndroidSettings.kt b/utils/shared/src/androidMain/kotlin/com/pr0gramm3r101/utils/settings/AndroidSettings.kt index 5f23d9b..fe8d7b2 100644 --- a/utils/shared/src/androidMain/kotlin/com/pr0gramm3r101/utils/settings/AndroidSettings.kt +++ b/utils/shared/src/androidMain/kotlin/com/pr0gramm3r101/utils/settings/AndroidSettings.kt @@ -1,7 +1,5 @@ package com.pr0gramm3r101.utils.settings -import androidx.datastore.core.DataStore -import androidx.datastore.preferences.core.Preferences import androidx.datastore.preferences.core.booleanPreferencesKey import androidx.datastore.preferences.core.edit import androidx.datastore.preferences.core.floatPreferencesKey @@ -11,96 +9,81 @@ import androidx.datastore.preferences.core.stringPreferencesKey import androidx.datastore.preferences.core.stringSetPreferencesKey import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.map -import kotlinx.coroutines.runBlocking class AndroidSettings(): Settings { - private val dataStore: DataStore - get() = DataStoreSingleton.dataStore + private val dataStore get() = DataStoreSingleton.dataStore - override fun putString(key: String, value: String) { - runBlocking { - dataStore.edit { preferences -> - preferences[stringPreferencesKey(key)] = value - } + override suspend fun putString(key: String, value: String) { + dataStore.edit { preferences -> + preferences[stringPreferencesKey(key)] = value } } - override fun getString(key: String, default: String) = runBlocking { + override suspend fun getString(key: String, default: String) = dataStore.data.map { preferences -> preferences[stringPreferencesKey(key)] ?: default }.first() - } - override fun putInt(key: String, value: Int) = runBlocking { + override suspend fun putInt(key: String, value: Int) { dataStore.edit { preferences -> preferences[intPreferencesKey(key)] = value } - Unit } - override fun getInt(key: String, default: Int) = runBlocking { + override suspend fun getInt(key: String, default: Int) = dataStore.data.map { preferences -> preferences[intPreferencesKey(key)] ?: default }.first() - } - override fun putLong(key: String, value: Long) = runBlocking { + override suspend fun putLong(key: String, value: Long) { dataStore.edit { preferences -> preferences[longPreferencesKey(key)] = value } - Unit } - override fun getLong(key: String, default: Long) = runBlocking { + override suspend fun getLong(key: String, default: Long) = dataStore.data.map { preferences -> preferences[longPreferencesKey(key)] ?: default }.first() - } - override fun putFloat(key: String, value: Float) = runBlocking { + override suspend fun putFloat(key: String, value: Float) { dataStore.edit { preferences -> preferences[floatPreferencesKey(key)] = value } - Unit } - override fun getFloat(key: String, default: Float) = runBlocking { + override suspend fun getFloat(key: String, default: Float) = dataStore.data.map { preferences -> preferences[floatPreferencesKey(key)] ?: default }.first() - } - override fun putBoolean(key: String, value: Boolean) = runBlocking { + override suspend fun putBoolean(key: String, value: Boolean) { dataStore.edit { preferences -> preferences[booleanPreferencesKey(key)] = value } - Unit } - override fun getBoolean(key: String, default: Boolean) = runBlocking { + override suspend fun getBoolean(key: String, default: Boolean) = dataStore.data.map { preferences -> preferences[booleanPreferencesKey(key)] ?: default }.first() - } - override fun putStringSet(key: String, value: Set) = runBlocking { + override suspend fun putStringSet(key: String, value: Set) { dataStore.edit { preferences -> preferences[stringSetPreferencesKey(key)] = value } - Unit } - override fun getStringSet(key: String, default: Set) = runBlocking { + override suspend fun getStringSet(key: String, default: Set) = dataStore.data.map { preferences -> preferences[stringSetPreferencesKey(key)] ?: default }.first() - } - override fun putStringList(key: String, value: List) = putStringSet(key, value.toSet()) + override suspend fun putStringList(key: String, value: List) = putStringSet(key, value.toSet()) - override fun getStringList(key: String, default: List) = getStringSet(key, default.toSet()).toList() + override suspend fun getStringList(key: String, default: List) = getStringSet(key, default.toSet()).toList() - override fun remove(key: String) = runBlocking { + override suspend fun remove(key: String) { dataStore.edit { preferences -> preferences.remove(stringPreferencesKey(key)) preferences.remove(intPreferencesKey(key)) @@ -109,6 +92,5 @@ class AndroidSettings(): Settings { preferences.remove(booleanPreferencesKey(key)) preferences.remove(stringSetPreferencesKey(key)) } - Unit } } \ No newline at end of file diff --git a/utils/shared/src/commonMain/kotlin/com/pr0gramm3r101/utils/settings/Settings.kt b/utils/shared/src/commonMain/kotlin/com/pr0gramm3r101/utils/settings/Settings.kt index 343c5cc..19ea352 100644 --- a/utils/shared/src/commonMain/kotlin/com/pr0gramm3r101/utils/settings/Settings.kt +++ b/utils/shared/src/commonMain/kotlin/com/pr0gramm3r101/utils/settings/Settings.kt @@ -8,26 +8,26 @@ interface Settings { inline operator fun invoke() = settings } - fun putString(key: String, value: String) - fun getString(key: String, default: String = ""): String + suspend fun putString(key: String, value: String) + suspend fun getString(key: String, default: String = ""): String - fun putInt(key: String, value: Int) - fun getInt(key: String, default: Int = 0): Int + suspend fun putInt(key: String, value: Int) + suspend fun getInt(key: String, default: Int = 0): Int - fun putLong(key: String, value: Long) - fun getLong(key: String, default: Long = 0L): Long + suspend fun putLong(key: String, value: Long) + suspend fun getLong(key: String, default: Long = 0L): Long - fun putFloat(key: String, value: Float) - fun getFloat(key: String, default: Float = 0f): Float + suspend fun putFloat(key: String, value: Float) + suspend fun getFloat(key: String, default: Float = 0f): Float - fun putBoolean(key: String, value: Boolean) - fun getBoolean(key: String, default: Boolean = false): Boolean + suspend fun putBoolean(key: String, value: Boolean) + suspend fun getBoolean(key: String, default: Boolean = false): Boolean - fun putStringSet(key: String, value: Set) - fun getStringSet(key: String, default: Set = emptySet()): Set + suspend fun putStringSet(key: String, value: Set) + suspend fun getStringSet(key: String, default: Set = emptySet()): Set - fun putStringList(key: String, value: List) - fun getStringList(key: String, default: List = emptyList()): List + suspend fun putStringList(key: String, value: List) + suspend fun getStringList(key: String, default: List = emptyList()): List - fun remove(key: String) + suspend fun remove(key: String) } \ No newline at end of file diff --git a/utils/shared/src/iosMain/kotlin/com/pr0gramm3r101/utils/settings/IosSettings.kt b/utils/shared/src/iosMain/kotlin/com/pr0gramm3r101/utils/settings/IosSettings.kt index 4d82e55..333b769 100644 --- a/utils/shared/src/iosMain/kotlin/com/pr0gramm3r101/utils/settings/IosSettings.kt +++ b/utils/shared/src/iosMain/kotlin/com/pr0gramm3r101/utils/settings/IosSettings.kt @@ -6,65 +6,40 @@ import platform.Foundation.NSUserDefaults class IosSettings : Settings { private val defaults: NSUserDefaults = NSUserDefaults.standardUserDefaults - override fun putString(key: String, value: String) { - defaults.setObject(value, key) + override suspend fun putString(key: String, value: String) = defaults.setObject(value, key) + + override suspend fun getString(key: String, default: String) = defaults.stringForKey(key) ?: default + + override suspend fun putInt(key: String, value: Int) = defaults.setInteger(value.toLong(), key) + + override suspend fun getInt(key: String, default: Int) = defaults.integerForKey(key).toInt() + + override suspend fun putLong(key: String, value: Long) = defaults.setObject(value, key) + + override suspend fun getLong(key: String, default: Long) = defaults.objectForKey(key) as? Long ?: default + + override suspend fun putFloat(key: String, value: Float) = defaults.setFloat(value, key) + + override suspend fun getFloat(key: String, default: Float) = defaults.floatForKey(key) + + override suspend fun putBoolean(key: String, value: Boolean) = defaults.setBool(value, key) + + override suspend fun getBoolean(key: String, default: Boolean) = defaults.boolForKey(key) + + override suspend fun putStringSet(key: String, value: Set) = defaults.setObject(value.toList(), key) + + override suspend fun getStringSet(key: String, default: Set): Set { + return (defaults.objectForKey(key) as? List<*> ?: return default) + .filterIsInstance() + .toSet() } - override fun getString(key: String, default: String): String { - return defaults.stringForKey(key) ?: default + override suspend fun putStringList(key: String, value: List) = defaults.setObject(value, key) + + override suspend fun getStringList(key: String, default: List): List { + return (defaults.objectForKey(key) as? List<*> ?: return default) + .filterIsInstance() } - override fun putInt(key: String, value: Int) { - defaults.setInteger(value.toLong(), key) - } - - override fun getInt(key: String, default: Int): Int { - return defaults.integerForKey(key).toInt() - } - - override fun putLong(key: String, value: Long) { - defaults.setObject(value, key) - } - - override fun getLong(key: String, default: Long): Long { - return defaults.objectForKey(key) as? Long ?: default - } - - override fun putFloat(key: String, value: Float) { - defaults.setFloat(value, key) - } - - override fun getFloat(key: String, default: Float): Float { - return defaults.floatForKey(key) - } - - override fun putBoolean(key: String, value: Boolean) { - defaults.setBool(value, key) - } - - override fun getBoolean(key: String, default: Boolean): Boolean { - return defaults.boolForKey(key) - } - - override fun putStringSet(key: String, value: Set) { - defaults.setObject(value.toList(), key) - } - - override fun getStringSet(key: String, default: Set): Set { - val list = defaults.objectForKey(key) as? List<*> ?: return default - return list.filterIsInstance().toSet() - } - - override fun putStringList(key: String, value: List) { - defaults.setObject(value, key) - } - - override fun getStringList(key: String, default: List): List { - val list = defaults.objectForKey(key) as? List<*> ?: return default - return list.filterIsInstance() - } - - override fun remove(key: String) { - defaults.removeObjectForKey(key) - } + override suspend fun remove(key: String) = defaults.removeObjectForKey(key) } \ No newline at end of file