У меня рабочий процесс с 3 экранами. От «экрана 1» до доступа к «экрану 2» пользователь должен принять какие-то условия, которые я называю на моем изображении «модальными». Но он должен принять эти условия только один раз. В следующий раз, когда он будет на первом экране, он может перейти непосредственно к экрану 2. Пользователь может выбрать НЕ принимать условия, и поэтому мы возвращаемся к «экрану 1» и не пытаемся перейти к «экрану 2».
Мне интересно, как это сделать с помощью нового компонента навигации.
Раньше что бы я делал:
- На экране 1 проверьте, должен ли пользователь принять условия
- Если нет, начните действие "Экран 2".
- Если да, используйте
startActivityForResult()
и дождитесь результата модального окна. Отметьте условия как принятые. Пуск "экран 2"
Но с навигационным графом нет возможности запустить фрагмент для получения результата.
Я мог бы отметить условия как принятые на «модальном» экране и запустить «экран 2» оттуда. Дело в том, что для доступа к экрану 2 мне нужно сделать сетевой запрос. Я не хочу дублировать вызов API и обработку его результата как в «экране 1», так и в «модальном».
Есть ли способ вернуться с «модального» режима на «экран 1» с некоторой информацией (пользователь принял условия) с помощью навигации Jetpack?
Изменить: в настоящее время я обхожу это, используя тот же алгоритм, который Яхья предлагает ниже: используя Activity только для модального окна и используя startActivityForResult
из «экрана 1». Мне просто интересно, могу ли я продолжать использовать навигационный график для всего потока.