в котором вы можете проверить авторизован ли пользователь дернув данные из любого внутреннего хранилища. Можете дополнительно пройтись проверкой на доступность к интернету, обновить токен и что угодно. И на основе имеющегося результата навигироваться на конкретный экран вытесняя сплеш из бэкстека. Разве это не так?
Все звучит максимально логично, что я даже начинаю подозревать, что упустил какую-то очевидную деталь. Сложность возникла вот с чем: сплеш скрин после проверки навигирует на Main экран, который является вкладкой bottomNavBar-а. На скрине пример кода навигации. И в данном случае сплеш остается в стеке, т.к. он и явлется startDestinations, до которого производится popUpTo. Не совсем улавлию, как его удалить
Можно избавиться от сплэш скрина динамическим startDestination. Авторизацию я так реализовывал. Грубо говоря: @Composable fun MainScreen(viewModel: MainViewModel) { MyNavHost(..., startDestination = if (viewModel.isAuthorized) "profile_route" else "auth_route) }
Обсуждают сегодня