@@ -23,8 +23,6 @@ import com.mifos.core.domain.useCases.PasswordValidationUseCase
2323import com.mifos.core.domain.useCases.UsernameValidationUseCase
2424import com.mifos.core.model.objects.users.User
2525import com.mifos.core.network.model.PostAuthenticationResponse
26- import kotlinx.coroutines.Dispatchers
27- import kotlinx.coroutines.IO
2826import kotlinx.coroutines.flow.MutableStateFlow
2927import kotlinx.coroutines.flow.SharingStarted
3028import kotlinx.coroutines.flow.StateFlow
@@ -39,7 +37,6 @@ import kotlinx.coroutines.launch
3937
4038class LoginViewModel (
4139 private val prefManager : UserPreferencesRepository ,
42- // private val context: Context,
4340 private val usernameValidationUseCase : UsernameValidationUseCase ,
4441 private val passwordValidationUseCase : PasswordValidationUseCase ,
4542 private val loginUseCase : LoginUseCase ,
@@ -71,43 +68,12 @@ class LoginViewModel(
7168 return
7269 }
7370 viewModelScope.launch {
74- setupPrefManger (username, password)
71+ login (username, password)
7572 }
7673 }
7774
78- private fun setupPrefManger (username : String , password : String ) {
75+ private fun login (username : String , password : String ) {
7976 viewModelScope.launch {
80- _loginUiState .value = LoginUiState .ShowProgress
81-
82- loginUseCase(username, password).collect { result ->
83- when (result) {
84- is DataState .Error -> {
85- _loginUiState .value =
86- LoginUiState .ShowError (Res .string.feature_auth_error_login_failed)
87- Logger .e(" Login Error" , result.exception)
88- }
89-
90- is DataState .Loading -> {
91- _loginUiState .value = LoginUiState .ShowProgress
92- }
93-
94- is DataState .Success -> {
95- result.data.let { user ->
96- if (user.userId != null && user.authenticated == true ) {
97- onLoginSuccessful(user, username, password)
98- } else {
99- _loginUiState .value =
100- LoginUiState .ShowError (Res .string.feature_auth_error_login_failed)
101- }
102- }
103- }
104- }
105- }
106- }
107- }
108-
109- fun login (username : String , password : String ) {
110- viewModelScope.launch(Dispatchers .IO ) {
11177 loginUseCase(username, password).collect { result ->
11278 when (result) {
11379 is DataState .Error -> {
@@ -121,10 +87,13 @@ class LoginViewModel(
12187 }
12288
12389 is DataState .Success -> {
124- result.data.let {
125- if (it.userId != null && it.authenticated == true ) {
126- onLoginSuccessful(it, username, password)
127- }
90+ if (result.data.authenticated == true ) {
91+ onLoginSuccessful(result.data, username, password)
92+ } else {
93+ _loginUiState .value =
94+ LoginUiState .ShowError (Res .string.feature_auth_error_login_failed)
95+
96+ Logger .d(" @@@" , Throwable (" login: ${result.data} " ))
12897 }
12998 }
13099 }
@@ -156,7 +125,7 @@ class LoginViewModel(
156125 if (passcode.value != null ) {
157126 _loginUiState .value = LoginUiState .HomeActivityIntent
158127 } else {
159- _loginUiState .value = LoginUiState .PassCodeActivityIntent
128+ _loginUiState .value = LoginUiState .HomeActivityIntent
160129 }
161130 }
162131}
0 commit comments