Hello Android devs! I'm looking into writing a navigation library (expressing navigation routes as a Kotlin DSL), and I'm interested to hear what kind of funky situations you get your navigation stack into. Obviously there's "go to X" or "go back", but the more complicated examples that I'm interested in are about screens presenting nested screens, back-stack manipulations, and understanding the "types" of navigation. The examples I can think of off the top of my head are:
• A bottom tab bar Activity presenting several different fragments
• An activity presenting two fragments in a Master/Detail flow
• A "sign up" flow that tracks and displays progress through completing several child forms
• A dialog that pops over a screen and tracks some kind of navigation through a flow or tabs as above
• An Activity/Fragment that wants its parent Activity/Fragment to display a snackbar after it has completed (i.e. "XXX has been saved [view]")
• Navigation "types" of "forward from this screen" or "on top of this screen" or "replace this screen"
If you're not doing anything interesting with your navigation, I'm also interested in hearing whether or not you often pass messages back to a parent screen once the child has finished doing something (via onActivityResult, a message bus, or any other way).
Your thoughts and examples are much appreciated!