| commit | 812fe658e564bb57b0bea0ae79946d04e2b85610 | [log] [tgz] |
|---|---|---|
| author | Simon Marquis <[email protected]> | Tue Dec 19 21:46:01 2023 +0000 |
| committer | Copybara-Service <[email protected]> | Tue Dec 19 13:47:45 2023 -0800 |
| tree | 3395743f01d4681cb70588e4a5781a8e9bdb7409 | |
| parent | d3436b4abbbcbaf3f6967225ff0b329cb0a34d92 [diff] |
[GH] Fix regression in dynamic labels with non-string typed arguments Regression introduced in https://github.com/androidx/androidx/commit/76f9009e6cfc1cba5314cad87a6f1923203c54fa Reported in https://issuetracker.google.com/issues/316676794 Test: ./gradlew navigation:navigation-ui:cC Fixes: 316676794 [AndroidX Navigation 2.6.0 broke dynamic app bar title for non String arguments](https://issuetracker.google.com/issues/316676794) This is an imported pull request from https://github.com/androidx/androidx/pull/636. Resolves #636 Github-Pr-Head-Sha: f455c6d1e641cc72cc1bd371b1f47b7d87ec8eff GitOrigin-RevId: 3ad8f763f17acb22678f1a87e183ef4e7dac5a9d Change-Id: I94b4e28bb847632663be32b11e481d13789e8c1b
diff --git a/navigation/navigation-common/src/main/java/androidx/navigation/NavDestination.kt b/navigation/navigation-common/src/main/java/androidx/navigation/NavDestination.kt index e23ffae..0bdc6e1 100644 --- a/navigation/navigation-common/src/main/java/androidx/navigation/NavDestination.kt +++ b/navigation/navigation-common/src/main/java/androidx/navigation/NavDestination.kt
@@ -635,7 +635,8 @@ val value = context.getString(bundle.getInt(argName)) builder.append(value) } else { - builder.append(bundle.getString(argName)) + @Suppress("DEPRECATION") + builder.append(bundle[argName].toString()) } } else { throw IllegalArgumentException(
diff --git a/navigation/navigation-ui/src/androidTest/java/androidx/navigation/ui/NavigationUITest.kt b/navigation/navigation-ui/src/androidTest/java/androidx/navigation/ui/NavigationUITest.kt index 992ee49..77714ce 100644 --- a/navigation/navigation-ui/src/androidTest/java/androidx/navigation/ui/NavigationUITest.kt +++ b/navigation/navigation-ui/src/androidTest/java/androidx/navigation/ui/NavigationUITest.kt
@@ -193,6 +193,33 @@ assertThat(toolbar.title.toString()).isEqualTo(labelString) } + @UiThreadTest + @Test + fun navigateWithNonStringArg() { + val context = ApplicationProvider.getApplicationContext<Context>() + val navController = NavHostController(context) + navController.navigatorProvider.addNavigator(TestNavigator()) + + val startDestination = "start_destination" + val endDestination = "end_destination" + + navController.graph = navController.createGraph(startDestination = startDestination) { + test(startDestination) + test("$endDestination/{test}") { + label = "{test}" + argument(name = "test") { + type = NavType.LongType + } + } + } + + val toolbar = Toolbar(context).apply { setupWithNavController(navController) } + navController.navigate("$endDestination/123") + + val expected = "123" + assertThat(toolbar.title.toString()).isEqualTo(expected) + } + private fun createToolbarOnDestinationChangedListener( toolbar: Toolbar, bundle: Bundle?,