title: Android Architecture Navigation - How to navigate to specific place in Nav Graph building back stack
body: <p>I have a linear wizard created with Android Arch Navigation and I would like to start it at specific location building back stack as with natural user navigation. 
  So I have tried this deep link building: </p>
  
  <pre><code>Bundle args = new Bundle();
  args.putString("myarg", "From Widget");
   new NavDeepLinkBuilder(context)
      .setGraph(R.navigation.mobile_navigation)
      .setDestination(R.id.step_fragment)
      .setArguments(args)
      .createPendingIntent().send(); 
  </code></pre>
  
  <p>The problem with this approach is that it doesn't build back stack correctly as user will be build navigating  Step 1 -> Step 2 -> ... -> Step N 
  It only holds Step 1 -> Step N, i.e. start destination and target destination of navigation graph. This is not what I want. </p>
  
  <p>Second simple approach is to just call multiple times <code>navigate()</code> on <code>navController</code>. But as it seems simple it doesn't work </p>
  
  <pre><code> protected fun navigateTo(step: Int) {
          val navController = findNavController(R.id.nav_host_fragment)
  
          if(step &gt;= 0 &amp;&amp; step &lt; stepFragments.count()) {
              // go to step-th fragment
              if(navController.currentDestination.id != stepFragments.first()) return
  
              for(i in 0 until step) {
                  navController.navigate(stepFragments[i])
              }
              navController.navigate(stepFragments[step])
          } else if(step == stepFragments.count()) {
              // go to confirm fragment
              navController.navigate(confirmFragment)
          } else {
              throw IndexOutOfBoundsException("Step index is out of wizard bounds!")
          }
      }
  </code></pre>
  
  <p>It navigates correctly but then the created back stack is odd, i.e.  Back button seems to work, but <strong>onNavigatedListener</strong> listener from </p>
  
  <pre><code>navController.addOnNavigatedListener(this::onNavigatedListener)
  </code></pre>
  
  <p>is not called correctly. So I cannot listen for fragment changes in wizard. Moreover NavController seems to be break, as consecutive button listener's navController.navigate(actionId) throws error. </p>
  
  <blockquote>
    <p>java.lang.IllegalArgumentException: navigation destination 
    is unknown to this NavController</p>
  </blockquote>
  
  <p><strong>UPDATE!</strong></p>
  
  <p>Intercepting onBackPressed() with debugger seems to show that Back Button Press doesn't call navController.popBackStack() and the navController.currentDestination property doesn't change. But inside NavHostFragment the fragment is changing. </p>