datastore fixed

This commit is contained in:
pedro 2025-02-19 15:43:49 +03:00
parent aa918de503
commit 51c0c32628

View File

@ -9,10 +9,12 @@ import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.datastore.core.DataStore
import androidx.datastore.preferences.core.Preferences
import androidx.datastore.preferences.core.edit
import androidx.datastore.preferences.core.intPreferencesKey
import androidx.datastore.preferences.core.stringPreferencesKey
import androidx.datastore.preferences.preferencesDataStore
import androidx.lifecycle.ViewModelProvider
import androidx.navigation.compose.NavHost
@ -25,23 +27,16 @@ import kotlinx.coroutines.flow.map
import kotlinx.serialization.Serializable
class MainActivity : ComponentActivity() {
val Context.dataStore: DataStore<Preferences> by preferencesDataStore(name = "settings")
val context = applicationContext
val EXAMPLE_COUNTER = intPreferencesKey("example_counter")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val exampleCounterFlow: Flow<Int> = context.dataStore.data
.map { preferences ->
// No type safety.
preferences[EXAMPLE_COUNTER] ?: 0
}
enableEdgeToEdge()
setContent {
Nto_minipigsTheme {
val dataStore = remember {
UserData(this)
}
val navController = rememberNavController()
val loginViewModel = ViewModelProvider(this)[LoginViewModel::class.java]
@ -57,6 +52,23 @@ class MainActivity : ComponentActivity() {
}
}
class UserData(private val context: Context) {
val Context.dataStore by preferencesDataStore("user_data")
val token = context.dataStore.data.map { preferences ->
preferences[tokenKey]
}
suspend fun updateName(data:String) =
context.dataStore.edit { settings ->
settings[tokenKey] = data
}
companion object {
val tokenKey = stringPreferencesKey("Bearer")
}
}
@Serializable
object Login