datastore fixed
This commit is contained in:
parent
aa918de503
commit
51c0c32628
@ -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
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user