diff --git a/app/src/main/java/com/example/nto_minipigs/MainActivity.kt b/app/src/main/java/com/example/nto_minipigs/MainActivity.kt index 7221dd6..2617ed7 100644 --- a/app/src/main/java/com/example/nto_minipigs/MainActivity.kt +++ b/app/src/main/java/com/example/nto_minipigs/MainActivity.kt @@ -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 by preferencesDataStore(name = "settings") - val context = applicationContext - - val EXAMPLE_COUNTER = intPreferencesKey("example_counter") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - val exampleCounterFlow: Flow = 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