Estou fazendo um código a parte seguindo as aulas e meu código não funciona como esperado. Eu configuro a ação do navation dentro de um observer e ele funciona mas quando eu tento voltar para a tela anterior ele não volta. Creio que é por causa do observer, mas não entendo o motivo. Queria que funcionasse pois o observer serve para validar o login e não vejo outro jeito de fazer isso.
Meu código:
private fun configureObserver(view: View) {
viewModel.login.observe(viewLifecycleOwner, Observer { loginStade ->
when (loginStade) {
is LoginStade.ErroLogin -> {
mensageRegistration(view, loginStade.mensage)
}
is LoginStade.SuccessLogin -> {
if(loginStade.user.seg.equals(GetChaves.CHAVES_LOGIN.nutri)){
controller?.navigate(R.id.action_login_to_lista_pacientes)
}
else if (loginStade.user.seg.equals(GetChaves.CHAVES_LOGIN.user)) {
controller?.navigate(R.id.action_login_to_menu)
}
}
}
})
}