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