diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml index b268ef3..eb19885 100644 --- a/.idea/deploymentTargetSelector.xml +++ b/.idea/deploymentTargetSelector.xml @@ -4,6 +4,14 @@ diff --git a/app/src/main/java/com/delecrode/devhub/ui/home/HomeScreen.kt b/app/src/main/java/com/delecrode/devhub/ui/home/HomeScreen.kt index ee2ad5e..14792c4 100644 --- a/app/src/main/java/com/delecrode/devhub/ui/home/HomeScreen.kt +++ b/app/src/main/java/com/delecrode/devhub/ui/home/HomeScreen.kt @@ -154,7 +154,7 @@ fun HomeScreen(navController: NavController, homeViewModel: HomeViewModel) { text = { Text("Meu Perfil") }, onClick = { expanded = false - navController.navigate("profile") + navController.navigate(AppDestinations.Profile.route) } ) DropdownMenuItem( @@ -162,7 +162,7 @@ fun HomeScreen(navController: NavController, homeViewModel: HomeViewModel) { onClick = { expanded = false homeViewModel.signOut() - navController.navigate("login") { + navController.navigate(AppDestinations.Profile.route) { popUpTo(0) } } diff --git a/app/src/main/java/com/delecrode/devhub/ui/login/LoginScreen.kt b/app/src/main/java/com/delecrode/devhub/ui/login/LoginScreen.kt index 236184d..9f86180 100644 --- a/app/src/main/java/com/delecrode/devhub/ui/login/LoginScreen.kt +++ b/app/src/main/java/com/delecrode/devhub/ui/login/LoginScreen.kt @@ -67,6 +67,7 @@ fun LoginScreen(navController: NavController, viewModel: AuthViewModel) { navController.navigate(AppDestinations.Home.createRoute(state.userUid ?: "")) { popUpTo(AppDestinations.Login.route) { inclusive = true } } + viewModel.clearState() } } diff --git a/app/src/main/java/com/delecrode/devhub/ui/profile/ProfileScreen.kt b/app/src/main/java/com/delecrode/devhub/ui/profile/ProfileScreen.kt index 1108783..256cda3 100644 --- a/app/src/main/java/com/delecrode/devhub/ui/profile/ProfileScreen.kt +++ b/app/src/main/java/com/delecrode/devhub/ui/profile/ProfileScreen.kt @@ -1,6 +1,5 @@ package com.delecrode.devhub.ui.profile -import android.util.Log import android.widget.Toast import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box @@ -68,10 +67,8 @@ fun ProfileScreen(navController: NavController, viewModel: ProfileViewModel) { val userName = state.value.userForFirebase.username val repos = state.value.repos - Log.i("ProfileScreen", "ProfileScreen: $userName") LaunchedEffect(Unit) { - viewModel.getUserForGit(userName) - viewModel.getRepos(userName) + viewModel.getUserForFirebase() } LaunchedEffect(state.value.error) { @@ -121,7 +118,7 @@ fun ProfileScreen(navController: NavController, viewModel: ProfileViewModel) { onClick = { expanded = false viewModel.signOut() - navController.navigate("login") { + navController.navigate(AppDestinations.Login.route) { popUpTo(0) } } diff --git a/app/src/main/java/com/delecrode/devhub/ui/profile/ProfileViewModel.kt b/app/src/main/java/com/delecrode/devhub/ui/profile/ProfileViewModel.kt index 69ee5a0..1562025 100644 --- a/app/src/main/java/com/delecrode/devhub/ui/profile/ProfileViewModel.kt +++ b/app/src/main/java/com/delecrode/devhub/ui/profile/ProfileViewModel.kt @@ -28,9 +28,16 @@ class ProfileViewModel(private val userRepository: UserRepository, private val a try { val userForFirebase = userRepository.getUserForFirebase() _uiState.value = _uiState.value.copy( - userForFirebase = userForFirebase, - isLoading = false + userForFirebase = userForFirebase ) + + if (userForFirebase.username.isNotBlank()) { + getUserForGit(userForFirebase.username) + getRepos(userForFirebase.username) + } else { + _uiState.value = _uiState.value.copy(isLoading = false) + } + } catch (e: Exception) { _uiState.value = _uiState.value.copy( error = e.message, @@ -41,13 +48,9 @@ class ProfileViewModel(private val userRepository: UserRepository, private val a } fun getUserForGit(userName: String) { - _uiState.value = _uiState.value.copy( - isLoading = true - ) viewModelScope.launch { try { - val userForGit = - userRepository.getUserForGitHub(userName) + val userForGit = userRepository.getUserForGitHub(userName) _uiState.value = _uiState.value.copy( userForGit = userForGit, isLoading = false @@ -63,10 +66,6 @@ class ProfileViewModel(private val userRepository: UserRepository, private val a fun getRepos(userName: String) { viewModelScope.launch { - _uiState.value = _uiState.value.copy( - isLoading = true, - error = null - ) try { val repos: List = userRepository.getRepos(userName) _uiState.value = _uiState.value.copy( @@ -105,4 +104,3 @@ class ProfileViewModel(private val userRepository: UserRepository, private val a } } -