The use case is the following:
- I have a back queue with already several destinations.
? -> ... -> ?
- A new destination, let's call it Foo screen, is shown and is currently at the top.
? -> ... -> ? -> F
- From the Foo screen I want to navigate to a new Bar screen but, depending on a certain condition, when navigating back I want to either go back to the Foo screen or skip the Foo screen and go directly to the previous screen in the queue.
if (skipFoo)
? -> ... -> ? -> B
else
? -> ... -> ? -> F -> B
Can this be achieved using the NavOptionsBuilder from androidx.navigation?
I know that I can use popUpTo(0) { inclusive = true } to remove everything but the new destination from the stack but I just want to prevent the current screen to be added when I'm navigating out of it, and only when a certain condition is satisfied.
Also, the content of the stack of destinations is dynamic (the Foo screen can be added at any time) so I can't simply hardcode a popUpToId with a fixed destination, since I don't know what is the destination immediately before Foo screen on the stack.