mirror of
https://github.com/fromchat-messenger/app.git
synced 2026-09-23 03:25:06 +03:00
Improve settings interface, move iOS project
This commit is contained in:
+18
-36
@@ -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<Preferences>
|
||||
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<String>) = runBlocking {
|
||||
override suspend fun putStringSet(key: String, value: Set<String>) {
|
||||
dataStore.edit { preferences ->
|
||||
preferences[stringSetPreferencesKey(key)] = value
|
||||
}
|
||||
Unit
|
||||
}
|
||||
|
||||
override fun getStringSet(key: String, default: Set<String>) = runBlocking {
|
||||
override suspend fun getStringSet(key: String, default: Set<String>) =
|
||||
dataStore.data.map { preferences ->
|
||||
preferences[stringSetPreferencesKey(key)] ?: default
|
||||
}.first()
|
||||
}
|
||||
|
||||
override fun putStringList(key: String, value: List<String>) = putStringSet(key, value.toSet())
|
||||
override suspend fun putStringList(key: String, value: List<String>) = putStringSet(key, value.toSet())
|
||||
|
||||
override fun getStringList(key: String, default: List<String>) = getStringSet(key, default.toSet()).toList()
|
||||
override suspend fun getStringList(key: String, default: List<String>) = 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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user