Как сделать переход на другой фрагмент только если ошибок от сервера не приходит? Android Kotlin

Сервер реализован так, что при авторизации в объекте User одно из полей - это массив стрингов errors. Если при авторизации пользователь ввел что то не так или не ввел ничего от сервера в этом массиве (вместе с объектом юзер) приходит информация что не так.

Мне нужно чтобы когда информация есть она отображалась в тосте, но когда ее нет приложение переходило на другой фрагмент.

Ответы от сервера в любом случае 200OK, если есть ошибка то это выглядит вот так:

{"errors":["\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u043b\u043e\u0433\u0438\u043d \u0438\u043b\u0438 \u043f\u0430\u0440\u043e\u043b\u044c"]}

В текущей реализации сохраняю юзера в репозитории, потом прокидываю во вьюмодель а потом во фрагмент. Во фрагменте:

signInViewModel.userData.observe(viewLifecycleOwner) {
    if (it.errors.isNotEmpty()) {
        val toast = Toast.makeText(
            context,
            it.errors.toString(),
            Toast.LENGTH_SHORT
        )
        toast.setGravity(Gravity.CENTER_HORIZONTAL, 0, 0)
        toast.show()
    }
    else {
        findNavController().navigate(R.id.searchFragment)
    }

}

Переход проходит, но например если в прошлый раз была ошибка, она отобразится и при переходе.

Подскажите пожалуйста что я делаю не так? Как исправить чтобы старые данные не попадали в тост?


Ответы (0 шт):