Fix deep linking when using nested start destinations

Ensure that findInvalidDestinationDisplayNameInDeepLink
correctly handles nested start destinations.

Test: new NavControllerTest passes
BUG: 154532067
Change-Id: I95b84ea1ca0f8901c3af5447a3f60fae29daa8d0
diff --git a/navigation/navigation-runtime/src/androidTest/java/androidx/navigation/NavControllerTest.kt b/navigation/navigation-runtime/src/androidTest/java/androidx/navigation/NavControllerTest.kt
index f7dd01a..de448ce 100644
--- a/navigation/navigation-runtime/src/androidTest/java/androidx/navigation/NavControllerTest.kt
+++ b/navigation/navigation-runtime/src/androidTest/java/androidx/navigation/NavControllerTest.kt
@@ -1045,6 +1045,41 @@
     }
 
     @Test
+    fun testHandleDeepLinkNestedStartDestination() {
+        val navController = createNavController()
+        navController.setGraph(R.navigation.nav_nested_start_destination)
+        val onDestinationChangedListener =
+            mock(NavController.OnDestinationChangedListener::class.java)
+        navController.addOnDestinationChangedListener(onDestinationChangedListener)
+        val startDestination = navController.findDestination(R.id.nested_test)
+        verify(onDestinationChangedListener).onDestinationChanged(
+            eq(navController),
+            eq(startDestination),
+            any())
+
+        val taskStackBuilder = navController.createDeepLink()
+            .setDestination(R.id.second_test)
+            .createTaskStackBuilder()
+
+        val intent = taskStackBuilder.editIntentAt(0)
+        assertNotNull(intent)
+        assertWithMessage("NavController should handle deep links to its own graph")
+            .that(navController.handleDeepLink(intent))
+            .isTrue()
+
+        // Verify that we navigated down to the deep link
+        verify(onDestinationChangedListener, times(2)).onDestinationChanged(
+            eq(navController),
+            eq(startDestination),
+            any())
+        verify(onDestinationChangedListener).onDestinationChanged(
+            eq(navController),
+            eq(navController.findDestination(R.id.second_test)),
+            any())
+        verifyNoMoreInteractions(onDestinationChangedListener)
+    }
+
+    @Test
     fun testHandleDeepLinkInvalid() {
         val navController = createNavController()
         navController.setGraph(R.navigation.nav_simple)
diff --git a/navigation/navigation-runtime/src/main/java/androidx/navigation/NavController.java b/navigation/navigation-runtime/src/main/java/androidx/navigation/NavController.java
index 96b0b0f..ec324d2 100644
--- a/navigation/navigation-runtime/src/main/java/androidx/navigation/NavController.java
+++ b/navigation/navigation-runtime/src/main/java/androidx/navigation/NavController.java
@@ -758,7 +758,7 @@
             int destinationId = deepLink[i];
             NavDestination node = i == 0
                     ? (mGraph.getId() == destinationId ? mGraph : null)
-                    : graph.findNode(destinationId, false);
+                    : graph.findNode(destinationId);
             if (node == null) {
                 return NavDestination.getDisplayName(mContext, destinationId);
             }