From 80eb10f01881513961bc53adea966bcf1594fcfa Mon Sep 17 00:00:00 2001 From: Reinout Meliesie Date: Fri, 22 Nov 2024 23:42:24 +0100 Subject: [PATCH] Replace DataStore delegate magic with direct usage --- app/src/main/java/com/kernelmaft/zanbur/main.kt | 11 +++++++---- .../main/java/com/kernelmaft/zanbur/persistence.kt | 10 ---------- 2 files changed, 7 insertions(+), 14 deletions(-) delete mode 100644 app/src/main/java/com/kernelmaft/zanbur/persistence.kt diff --git a/app/src/main/java/com/kernelmaft/zanbur/main.kt b/app/src/main/java/com/kernelmaft/zanbur/main.kt index 6b65411..13339d4 100644 --- a/app/src/main/java/com/kernelmaft/zanbur/main.kt +++ b/app/src/main/java/com/kernelmaft/zanbur/main.kt @@ -6,6 +6,7 @@ import androidx.compose.foundation.layout.* import androidx.compose.runtime.* import androidx.compose.ui.* import androidx.compose.ui.unit.* +import androidx.datastore.preferences.* import androidx.datastore.preferences.core.* import androidx.lifecycle.* import kotlinx.coroutines.* @@ -15,13 +16,15 @@ import kotlinx.coroutines.flow.* class MainActivity : EdgeToEdgeActivity () { + val dataStore = PreferenceDataStoreFactory . create { preferencesDataStoreFile ("state") } + override fun onCreate ( savedInstanceState : Bundle ? ) { super . onCreate (savedInstanceState) Config . groups . forEach { AppState . addGroup (it) } - var groups by mutableStateOf ( AppState . groups ) - AppState . subscribe { groups = it } + val groups = mutableStateOf ( AppState . groups ) + AppState . subscribe { groups . value = it } lifecycleScope . launch (IO) { val prefs = dataStore . data . firstOrNull () @@ -35,7 +38,7 @@ class MainActivity : EdgeToEdgeActivity () { setContent { AppFrame { Column ( Modifier . width ( 300 . dp ) ) { - groups . forEach { group -> + groups . value . forEach { group -> SceneSwitcher (group) { newScene -> AppState . setCurrentScene ( group . id , newScene ) publishSceneChange ( group , newScene ) @@ -53,7 +56,7 @@ class MainActivity : EdgeToEdgeActivity () { val currentScene = AppState . groups [0] . currentScene if ( currentScene != null ) lifecycleScope . launch (IO) { - applicationContext . dataStore . edit { + dataStore . edit { it [ stringPreferencesKey ("scene") ] = currentScene . name } } diff --git a/app/src/main/java/com/kernelmaft/zanbur/persistence.kt b/app/src/main/java/com/kernelmaft/zanbur/persistence.kt deleted file mode 100644 index 9110f71..0000000 --- a/app/src/main/java/com/kernelmaft/zanbur/persistence.kt +++ /dev/null @@ -1,10 +0,0 @@ -package com.kernelmaft.zanbur - -import android.content.* -import androidx.datastore.core.* -import androidx.datastore.preferences.* -import androidx.datastore.preferences.core.* - - - -val Context . dataStore : DataStore by preferencesDataStore ("state")