@@ -26,8 +26,9 @@ import com.mifos.core.network.model.PostAuthenticationResponse
26
26
import kotlinx.coroutines.flow.MutableStateFlow
27
27
import kotlinx.coroutines.flow.SharingStarted
28
28
import kotlinx.coroutines.flow.StateFlow
29
- import kotlinx.coroutines.flow.asStateFlow
29
+ import kotlinx.coroutines.flow.first
30
30
import kotlinx.coroutines.flow.map
31
+ import kotlinx.coroutines.flow.onStart
31
32
import kotlinx.coroutines.flow.stateIn
32
33
import kotlinx.coroutines.launch
33
34
@@ -43,7 +44,23 @@ class LoginViewModel(
43
44
) : ViewModel() {
44
45
45
46
private val _loginUiState = MutableStateFlow <LoginUiState >(LoginUiState .Empty )
46
- val loginUiState = _loginUiState .asStateFlow()
47
+ val loginUiState = _loginUiState
48
+ .onStart { checkLoginStatus() }
49
+ .stateIn(
50
+ viewModelScope,
51
+ SharingStarted .WhileSubscribed (5000 ),
52
+ LoginUiState .Empty ,
53
+ )
54
+ private fun checkLoginStatus () {
55
+ viewModelScope.launch {
56
+ val user = prefManager.userData.first()
57
+ if (user.isAuthenticated) {
58
+ _loginUiState .value = LoginUiState .HomeActivityIntent
59
+ } else {
60
+ _loginUiState .value = LoginUiState .Empty
61
+ }
62
+ }
63
+ }
47
64
48
65
private val passcode: StateFlow <String ?> = prefManager.settingsInfo
49
66
.map { it.passcode }
@@ -122,10 +139,12 @@ class LoginViewModel(
122
139
)
123
140
}
124
141
125
- if (passcode.value != null ) {
126
- _loginUiState .value = LoginUiState .HomeActivityIntent
127
- } else {
128
- _loginUiState .value = LoginUiState .HomeActivityIntent
129
- }
142
+ _loginUiState .value = LoginUiState .HomeActivityIntent
143
+
144
+ // if (passcode.value != null) {
145
+ // TODO() navigate to passcode screen
146
+ // } else {
147
+ // TODO() navigate to home screen
148
+ // }
130
149
}
131
150
}
0 commit comments