althaf
08/21/2022, 4:28 AMlifecycleScope.launch {
lifecycle.repeatOnLifecycle(Lifecycle.State.STARTED) {
loginAuthorizationViewModel.onLoginSuccessful.collect {
startActivity(HomeActivity.getDefaultIntent(this@LoginActivity))
finish()
}
}
lifecycle.repeatOnLifecycle(Lifecycle.State.STARTED) {
loginInputValidationViewModel.onPasswordInvalid.collect {
enableViews(true)
et_password.error = it
}
}
lifecycle.repeatOnLifecycle(Lifecycle.State.STARTED) {
loginAuthorizationViewModel.onLoginFailure.collect {
enableViews(true)
showMessage(it.toString())
}
}
lifecycle.repeatOnLifecycle(Lifecycle.State.STARTED) {
loginInputValidationViewModel.onUserNameInvalid.collect {
enableViews(true)
tv_user_name.error = it
}
}
lifecycle.repeatOnLifecycle(Lifecycle.State.STARTED) {
loginInputValidationViewModel.onValidationSuccessful.collect {
loginAuthorizationViewModel.requestLogin(
userName = it.first,
password = it.second
)
}
}
Stylianos Gakis
09/01/2022, 9:25 AMrepeatOnLifecycle
is a suspending function, meaning that in this code snippet, the first loginAuthorizationViewModel.onLoginSuccessful.collect
will run and nothing else.repeatOnLifecycle
call with a lifecycleScope.launch