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 2617ed7..390cc3b 100644 --- a/app/src/main/java/com/example/nto_minipigs/MainActivity.kt +++ b/app/src/main/java/com/example/nto_minipigs/MainActivity.kt @@ -9,6 +9,7 @@ import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue import androidx.compose.runtime.remember import androidx.datastore.core.DataStore import androidx.datastore.preferences.core.Preferences @@ -17,6 +18,7 @@ import androidx.datastore.preferences.core.intPreferencesKey import androidx.datastore.preferences.core.stringPreferencesKey import androidx.datastore.preferences.preferencesDataStore import androidx.lifecycle.ViewModelProvider +import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable import androidx.navigation.compose.rememberNavController @@ -35,16 +37,21 @@ class MainActivity : ComponentActivity() { setContent { Nto_minipigsTheme { val dataStore = remember { - UserData(this) + UserData(applicationContext) } + val navController = rememberNavController() val loginViewModel = ViewModelProvider(this)[LoginViewModel::class.java] + val token by dataStore.token.collectAsStateWithLifecycle("") + + Log.d("tokenn", token.toString()) + NavHost( navController = navController, startDestination = Login ) { - composable { LoginScreen( onNavigateToMain = { navController.navigate(route = Main)}, viewModel = loginViewModel ) } + composable { LoginScreen( onNavigateToMain = { navController.navigate(route = Main)}, viewModel = loginViewModel, dataStore = dataStore ) } composable
{ MainScreen() } } } @@ -59,7 +66,7 @@ class UserData(private val context: Context) { preferences[tokenKey] } - suspend fun updateName(data:String) = + suspend fun updateToken(data:String) = context.dataStore.edit { settings -> settings[tokenKey] = data } diff --git a/app/src/main/java/com/example/nto_minipigs/ui/screens/LoginScreen.kt b/app/src/main/java/com/example/nto_minipigs/ui/screens/LoginScreen.kt index 968e105..523d6c2 100644 --- a/app/src/main/java/com/example/nto_minipigs/ui/screens/LoginScreen.kt +++ b/app/src/main/java/com/example/nto_minipigs/ui/screens/LoginScreen.kt @@ -17,13 +17,19 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import com.example.nto_minipigs.ui.theme.Nto_minipigsTheme import androidx.compose.runtime.getValue +import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import androidx.compose.ui.unit.dp +import androidx.datastore.core.DataStore import com.example.nto_minipigs.LoginViewModel +import com.example.nto_minipigs.UserData +import kotlinx.coroutines.coroutineScope +import kotlinx.coroutines.launch @Composable -fun LoginScreen( onNavigateToMain: () -> Unit, viewModel: LoginViewModel) { +fun LoginScreen( onNavigateToMain: () -> Unit, viewModel: LoginViewModel, dataStore: UserData) { Nto_minipigsTheme { + val cor = rememberCoroutineScope() Surface { Column( modifier = Modifier.fillMaxSize(), @@ -56,7 +62,12 @@ fun LoginScreen( onNavigateToMain: () -> Unit, viewModel: LoginViewModel) { ) Button( - onClick = { viewModel.getData(login, onNavigateToMain) }, + onClick = { + viewModel.getData(login, onNavigateToMain) + cor.launch { + dataStore.updateToken("yenis") + } + }, shape = RoundedCornerShape(12.dp), ) { Text(text = "Sign In", style = MaterialTheme.typography.bodyLarge)