hi , It ok to do this in a single launch ? or do w...
# flow
a
hi , It ok to do this in a single launch ? or do we have to use separate launch for repeat on life cylce ?
Copy code
lifecycleScope.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
            )
        }
    }
s
repeatOnLifecycle
is a suspending function, meaning that in this code snippet, the first
loginAuthorizationViewModel.onLoginSuccessful.collect
will run and nothing else.
I’d personally wrap each individual
repeatOnLifecycle
call with a
lifecycleScope.launch