@@ -39,6 +39,8 @@ import androidx.compose.ui.ExperimentalComposeUiApi
3939import androidx.compose.ui.Modifier
4040import androidx.compose.ui.draw.drawWithContent
4141import androidx.compose.ui.platform.LocalContext
42+ import androidx.compose.ui.semantics.semantics
43+ import androidx.compose.ui.semantics.testTagsAsResourceId
4244import androidx.navigation3.runtime.entryProvider
4345import androidx.navigation3.ui.NavDisplay
4446import io.sentry.compose.navigation3.SentryBackStackEntry
@@ -75,9 +77,6 @@ class Nav3Activity : ComponentActivity() {
7577
7678 private var routeWorkOptions by mutableStateOf(setOf (RouteWorkOption .MANUAL_CHILD_SPAN ))
7779
78- private var isTransactionHistoryActive = false
79- private val transactionHistory =
80- NavigationTransactionHistory (isActive = { isTransactionHistoryActive })
8180 private var showTransactionHistorySheet by mutableStateOf(false )
8281
8382 private var showActivityUiLoadTransactionDelayMessage = false
@@ -99,14 +98,14 @@ class Nav3Activity : ComponentActivity() {
9998 cancelCurrentActivityUiLoadTransaction()
10099 }
101100
102- transactionHistory .install()
101+ NavigationTransactionHistory .install()
103102
104103 setContent {
105104 Nav3SampleTheme {
106105 Nav3SampleApp (
107106 performanceState = performanceState,
108107 configuration = configuration,
109- transactions = transactionHistory .transactions,
108+ transactions = NavigationTransactionHistory .transactions,
110109 showActivityUiLoadTransactionDelayMessage = showActivityUiLoadTransactionDelayMessage,
111110 routeWorkOptions = routeWorkOptions,
112111 showTransactionHistorySheet = showTransactionHistorySheet,
@@ -124,13 +123,7 @@ class Nav3Activity : ComponentActivity() {
124123 }
125124 }
126125
127- override fun onStart () {
128- super .onStart()
129- isTransactionHistoryActive = true
130- }
131-
132126 override fun onStop () {
133- isTransactionHistoryActive = false
134127 performanceState.stopAutomaticWork()
135128 super .onStop()
136129 }
@@ -139,7 +132,6 @@ class Nav3Activity : ComponentActivity() {
139132 if (isFinishing) {
140133 previousConfig.applyToCurrentOptions()
141134 }
142- transactionHistory.uninstall()
143135 super .onDestroy()
144136 }
145137
@@ -361,7 +353,9 @@ private fun Nav3SampleApp(
361353 }
362354
363355 Scaffold (
364- modifier = Modifier .fillMaxSize().safeDrawingPadding(),
356+ // Expose test tags as resource IDs so adb/uiautomator can target them.
357+ modifier =
358+ Modifier .fillMaxSize().safeDrawingPadding().semantics { testTagsAsResourceId = true },
365359 containerColor = MaterialTheme .colorScheme.background,
366360 topBar = {
367361 Nav3TopBar (
@@ -464,6 +458,28 @@ private fun Nav3SampleApp(
464458 )
465459 }
466460 }
461+ entry<Nav3Route .MultiActivity > { route ->
462+ TracedNav3Route (route, selectedScenario) {
463+ Nav3RouteWorkEffect (route, routeWorkOptions)
464+ MultiActivityRoute {
465+ activity?.startActivity(
466+ Intent (activity, Nav3ProductsActivity ::class .java)
467+ .putExtras(Bundle ().apply { putNav3SampleConfiguration(configuration) })
468+ )
469+ }
470+ }
471+ }
472+ entry<Nav3Route .MultiFragment > { route ->
473+ TracedNav3Route (route, selectedScenario) {
474+ Nav3RouteWorkEffect (route, routeWorkOptions)
475+ MultiFragmentRoute {
476+ activity?.startActivity(
477+ Intent (activity, Nav3FragmentsActivity ::class .java)
478+ .putExtras(Bundle ().apply { putNav3SampleConfiguration(configuration) })
479+ )
480+ }
481+ }
482+ }
467483 entry<Nav3Route .Landing > { route ->
468484 TracedNav3Route (route, selectedScenario) {
469485 Nav3RouteWorkEffect (route, routeWorkOptions)
0 commit comments