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
}
}
-