Make Dynamic Feature Navigation Runtime tests adhere to explicit API mode

Test: test & connectedAndroidTest

Change-Id: I4cc5a4cdf2045c837e98ffefa0f58cf4517e938a
diff --git a/navigation/navigation-dynamic-features-fragment/build.gradle b/navigation/navigation-dynamic-features-fragment/build.gradle
index 60cf4908..5448fa7 100644
--- a/navigation/navigation-dynamic-features-fragment/build.gradle
+++ b/navigation/navigation-dynamic-features-fragment/build.gradle
@@ -39,6 +39,7 @@
     testImplementation(libs.testRunner)
     testImplementation(libs.junit)
     testImplementation(libs.mockitoCore)
+    testImplementation(libs.robolectric)
     testImplementation(libs.truth)
 
     androidTestImplementation(libs.testCore)
@@ -53,7 +54,6 @@
     androidTestImplementation(project(":internal-testutils-runtime"), {
         exclude group: "androidx.fragment", module: "fragment"
     })
-    androidTestImplementation(libs.multidex)
 }
 
 android {
diff --git a/navigation/navigation-dynamic-features-fragment/src/androidTest/java/androidx/navigation/dynamicfeatures/fragment/DynamicFragmentNavigatorDestinationBuilderTest.kt b/navigation/navigation-dynamic-features-fragment/src/androidTest/java/androidx/navigation/dynamicfeatures/fragment/DynamicFragmentNavigatorDestinationBuilderTest.kt
index 9a18178..6f6d8d7 100644
--- a/navigation/navigation-dynamic-features-fragment/src/androidTest/java/androidx/navigation/dynamicfeatures/fragment/DynamicFragmentNavigatorDestinationBuilderTest.kt
+++ b/navigation/navigation-dynamic-features-fragment/src/androidTest/java/androidx/navigation/dynamicfeatures/fragment/DynamicFragmentNavigatorDestinationBuilderTest.kt
@@ -33,7 +33,7 @@
 @MediumTest
 @RunWith(AndroidJUnit4::class)
 public class DynamicFragmentNavigatorDestinationBuilderTest {
-    @Suppress("DEPRECATION")
+
     @get:Rule
     public val rule: ActivityScenarioRule<TestActivity> = ActivityScenarioRule(
         TestActivity::class.java
diff --git a/navigation/navigation-dynamic-features-fragment/src/androidTest/java/androidx/navigation/dynamicfeatures/fragment/DynamicNavHostFragmentTest.kt b/navigation/navigation-dynamic-features-fragment/src/androidTest/java/androidx/navigation/dynamicfeatures/fragment/DynamicNavHostFragmentTest.kt
index 3d0cde7..c1a8f7d 100644
--- a/navigation/navigation-dynamic-features-fragment/src/androidTest/java/androidx/navigation/dynamicfeatures/fragment/DynamicNavHostFragmentTest.kt
+++ b/navigation/navigation-dynamic-features-fragment/src/androidTest/java/androidx/navigation/dynamicfeatures/fragment/DynamicNavHostFragmentTest.kt
@@ -35,9 +35,8 @@
 @RunWith(AndroidJUnit4::class)
 public class DynamicNavHostFragmentTest {
 
-    @Suppress("DEPRECATION")
     @get:Rule
-    public val activityTestRule: ActivityScenarioRule<NavigationActivity> = ActivityScenarioRule(
+    public val rule: ActivityScenarioRule<NavigationActivity> = ActivityScenarioRule(
         NavigationActivity::class.java
     )
 
diff --git a/navigation/navigation-dynamic-features-runtime/build.gradle b/navigation/navigation-dynamic-features-runtime/build.gradle
index bc5ae9a..e1fc340 100644
--- a/navigation/navigation-dynamic-features-runtime/build.gradle
+++ b/navigation/navigation-dynamic-features-runtime/build.gradle
@@ -32,7 +32,6 @@
 dependencies {
     api(project(":navigation:navigation-runtime"))
     api(libs.playCore)
-    api(libs.kotlinStdlib)
 
     testImplementation(project(":navigation:navigation-testing"))
     testImplementation("androidx.arch.core:core-testing:2.1.0")
@@ -53,6 +52,9 @@
     androidTestImplementation(libs.mockitoCore, excludes.bytebuddy)
     androidTestImplementation(libs.truth)
     androidTestImplementation(libs.multidex)
+    androidTestImplementation(project(":internal-testutils-runtime"), {
+        exclude group: "androidx.fragment", module: "fragment"
+    })
 }
 
 androidx {
diff --git a/navigation/navigation-dynamic-features-runtime/src/androidTest/java/androidx/navigation/dynamicfeatures/DynamicActivityNavigatorDestinationBuilderTest.kt b/navigation/navigation-dynamic-features-runtime/src/androidTest/java/androidx/navigation/dynamicfeatures/DynamicActivityNavigatorDestinationBuilderTest.kt
index 613d5b3..f8eb54b 100644
--- a/navigation/navigation-dynamic-features-runtime/src/androidTest/java/androidx/navigation/dynamicfeatures/DynamicActivityNavigatorDestinationBuilderTest.kt
+++ b/navigation/navigation-dynamic-features-runtime/src/androidTest/java/androidx/navigation/dynamicfeatures/DynamicActivityNavigatorDestinationBuilderTest.kt
@@ -29,7 +29,7 @@
 
 @SmallTest
 @RunWith(AndroidJUnit4::class)
-class DynamicActivityNavigatorDestinationBuilderTest {
+public class DynamicActivityNavigatorDestinationBuilderTest {
 
     private val context: Context = ApplicationProvider.getApplicationContext()
 
@@ -48,7 +48,7 @@
 
     @Suppress("DEPRECATION")
     @Test
-    fun module() {
+    public fun module() {
         val graph = navController.createGraph(startDestination = DESTINATION_ID) {
             activity(DESTINATION_ID) {
                 moduleName = MODULE_NAME
@@ -63,7 +63,7 @@
 
     @Suppress("DEPRECATION")
     @Test
-    fun noModule() {
+    public fun noModule() {
         val graph = navController.createGraph(startDestination = DESTINATION_ID) {
             activity(DESTINATION_ID) {
             }
@@ -75,7 +75,7 @@
 
     @Suppress("DEPRECATION")
     @Test
-    fun activity() {
+    public fun activity() {
         val graph = navController.createGraph(startDestination = DESTINATION_ID) {
             activity(DESTINATION_ID) {
                 moduleName = MODULE_NAME
@@ -95,7 +95,7 @@
 
     @Suppress("DEPRECATION")
     @Test
-    fun noActivity() {
+    public fun noActivity() {
         val graph = navController.createGraph(startDestination = DESTINATION_ID) {
             activity(DESTINATION_ID) {
             }
@@ -108,7 +108,7 @@
 
     @Suppress("DEPRECATION")
     @Test
-    fun modulePackage() {
+    public fun modulePackage() {
         val graph = navController.createGraph(startDestination = DESTINATION_ID) {
             activity(DESTINATION_ID) {
                 moduleName = MODULE_NAME
@@ -121,7 +121,7 @@
     }
 
     @Test
-    fun moduleRoute() {
+    public fun moduleRoute() {
         val graph = navController.createGraph(startDestination = DESTINATION_ROUTE) {
             activity(DESTINATION_ROUTE) {
                 moduleName = MODULE_NAME
@@ -135,7 +135,7 @@
     }
 
     @Test
-    fun noModuleRoute() {
+    public fun noModuleRoute() {
         val graph = navController.createGraph(startDestination = DESTINATION_ROUTE) {
             activity(DESTINATION_ROUTE) {
             }
@@ -146,7 +146,7 @@
     }
 
     @Test
-    fun activityRoute() {
+    public fun activityRoute() {
         val graph = navController.createGraph(startDestination = DESTINATION_ROUTE) {
             activity(DESTINATION_ROUTE) {
                 moduleName = MODULE_NAME
@@ -165,7 +165,7 @@
     }
 
     @Test
-    fun noActivityRoute() {
+    public fun noActivityRoute() {
         val graph = navController.createGraph(startDestination = DESTINATION_ROUTE) {
             activity(DESTINATION_ROUTE) {
             }
@@ -177,7 +177,7 @@
     }
 
     @Test
-    fun modulePackageRoute() {
+    public fun modulePackageRoute() {
         val graph = navController.createGraph(startDestination = DESTINATION_ROUTE) {
             activity(DESTINATION_ROUTE) {
                 moduleName = MODULE_NAME
diff --git a/navigation/navigation-dynamic-features-runtime/src/androidTest/java/androidx/navigation/dynamicfeatures/DynamicActivityNavigatorTest.kt b/navigation/navigation-dynamic-features-runtime/src/androidTest/java/androidx/navigation/dynamicfeatures/DynamicActivityNavigatorTest.kt
index 06fcce8..c072251 100644
--- a/navigation/navigation-dynamic-features-runtime/src/androidTest/java/androidx/navigation/dynamicfeatures/DynamicActivityNavigatorTest.kt
+++ b/navigation/navigation-dynamic-features-runtime/src/androidTest/java/androidx/navigation/dynamicfeatures/DynamicActivityNavigatorTest.kt
@@ -20,8 +20,10 @@
 import android.content.Intent
 import androidx.navigation.NavigatorProvider
 import androidx.navigation.NoOpNavigator
+import androidx.test.ext.junit.rules.ActivityScenarioRule
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.SmallTest
+import androidx.testutils.withActivity
 import com.google.android.play.core.splitinstall.SplitInstallManager
 import org.junit.Assert.assertNotNull
 import org.junit.Before
@@ -31,11 +33,12 @@
 import org.mockito.Mockito.mock
 /* ktlint-disable no-unused-imports */ // https://github.com/pinterest/ktlint/issues/937
 import org.mockito.Mockito.`when` as mockWhen
+
 /* ktlint-enable unused-imports */
 
 @SmallTest
 @RunWith(AndroidJUnit4::class)
-class DynamicActivityNavigatorTest {
+public class DynamicActivityNavigatorTest {
 
     private lateinit var navigator: DynamicActivityNavigator
     private lateinit var installManager: DynamicInstallManager
@@ -46,44 +49,54 @@
 
     @Suppress("DEPRECATION")
     @get:Rule
-    val activityTestRule = androidx.test.rule.ActivityTestRule(NavigationActivity::class.java)
+    public val activityRule: ActivityScenarioRule<NavigationActivity> =
+        ActivityScenarioRule(NavigationActivity::class.java)
 
     @Before
-    fun setup() {
+    public fun setup() {
         splitInstallManager = mock(SplitInstallManager::class.java)
-        installManager = DynamicInstallManager(activityTestRule.activity, splitInstallManager)
-        navigator = DynamicActivityNavigator(activityTestRule.activity, installManager)
+        activityRule.withActivity {
+            installManager = DynamicInstallManager(
+                this,
+                splitInstallManager
+            )
+            navigator = DynamicActivityNavigator(this, installManager)
+            dynamicDestination = navigator.createDestination()
+            dynamicDestination.setIntent(
+                Intent(this, DestinationActivity::class.java)
+            )
+        }
         provider = NavigatorProvider()
         noOpNavigator = NoOpNavigator()
         provider.addNavigator(noOpNavigator)
-        dynamicDestination = navigator.createDestination()
-        dynamicDestination.setIntent(
-            Intent(activityTestRule.activity, DestinationActivity::class.java)
-        )
     }
 
     @Test
-    fun navigate_DynamicActivityDestination() {
+    public fun navigate_DynamicActivityDestination() {
         navigator.navigate(dynamicDestination, null, null, null)
     }
 
     @Test(expected = IllegalStateException::class)
-    fun navigate_DynamicActivityDestination_NoDynamicNavGraph() {
+    public fun navigate_DynamicActivityDestination_NoDynamicNavGraph() {
+        lateinit var activity: NavigationActivity
+        activityRule.scenario.onActivity {
+            activity = it
+        }
         @Suppress("UNUSED_VARIABLE")
         val destination = DynamicActivityNavigator.Destination(NavigatorProvider())
         val navDestination = mock(DynamicActivityNavigator.Destination::class.java).apply {
             mockWhen(moduleName).thenReturn("module")
-            setIntent(Intent(activityTestRule.activity, DestinationActivity::class.java))
+            setIntent(Intent(activity, DestinationActivity::class.java))
         }
         navigator.navigate(navDestination, null, null, null)
     }
 
     @Test
-    fun createDestination() {
+    public fun createDestination() {
         assertNotNull(navigator.createDestination())
     }
 }
 
-class NavigationActivity : Activity()
+public class NavigationActivity : Activity()
 
-class DestinationActivity : Activity()
+public class DestinationActivity : Activity()
diff --git a/navigation/navigation-dynamic-features-runtime/src/androidTest/java/androidx/navigation/dynamicfeatures/DynamicIncludeGraphNavigatorTest.kt b/navigation/navigation-dynamic-features-runtime/src/androidTest/java/androidx/navigation/dynamicfeatures/DynamicIncludeGraphNavigatorTest.kt
index ab2697a..9b562d7 100644
--- a/navigation/navigation-dynamic-features-runtime/src/androidTest/java/androidx/navigation/dynamicfeatures/DynamicIncludeGraphNavigatorTest.kt
+++ b/navigation/navigation-dynamic-features-runtime/src/androidTest/java/androidx/navigation/dynamicfeatures/DynamicIncludeGraphNavigatorTest.kt
@@ -16,13 +16,16 @@
 
 package androidx.navigation.dynamicfeatures
 
+import android.content.Context
 import android.os.Bundle
 import androidx.navigation.NavController
 import androidx.navigation.NoOpNavigator
 import androidx.navigation.dynamicfeatures.shared.AndroidTestDynamicInstallManager
 import androidx.navigation.dynamicfeatures.test.R
+import androidx.test.ext.junit.rules.ActivityScenarioRule
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.filters.MediumTest
+import androidx.testutils.withActivity
 import com.google.common.truth.Truth.assertThat
 import org.junit.Assert.assertNotNull
 import org.junit.Assert.fail
@@ -34,21 +37,26 @@
 
 @MediumTest
 @RunWith(AndroidJUnit4::class)
-class DynamicIncludeGraphNavigatorTest {
+public class DynamicIncludeGraphNavigatorTest {
 
     private lateinit var navigator: DynamicIncludeGraphNavigator
+    private lateinit var context: Context
 
-    @Suppress("DEPRECATION")
     @get:Rule
-    val rule = androidx.test.rule.ActivityTestRule(NavigationActivity::class.java)
+    public val rule: ActivityScenarioRule<NavigationActivity> =
+        ActivityScenarioRule(NavigationActivity::class.java)
 
     @Before
-    fun setup() {
+    public fun setup() {
         setupInternal()
     }
 
     private fun setupInternal(navGraphId: Int = R.navigation.nav_graph) {
-        val context = rule.activity
+
+        rule.withActivity {
+            context = this
+        }
+
         val navController = NavController(context)
         val navigatorProvider = navController.navigatorProvider
         val installManager = AndroidTestDynamicInstallManager(context).also {
@@ -72,13 +80,12 @@
     }
 
     @Test
-    fun createDestination() {
+    public fun createDestination() {
         assertNotNull(navigator.createDestination())
     }
 
     @Test
-    fun testReplacePackagePlaceholder() {
-        val context = rule.activity
+    public fun testReplacePackagePlaceholder() {
         val packageName = context.packageName
         val dynamicNavGraph = navigator.createDestination().apply {
             moduleName = FEATURE_NAME
@@ -105,7 +112,7 @@
     }
 
     @Test
-    fun invalidGraphId() {
+    public fun invalidGraphId() {
         try {
             setupInternal(R.navigation.nav_invalid_id)
             fail("Inflating nav_invalid_id should fail with an IllegalStateException")
@@ -120,23 +127,23 @@
     }
 
     @Test
-    fun onSaveState() {
+    public fun onSaveState() {
         assertThat(navigator.onSaveState()).isEqualTo(Bundle.EMPTY)
     }
 
     @Test
-    fun onRestoreState() {
+    public fun onRestoreState() {
         navigator.onRestoreState(Bundle.EMPTY)
     }
 
     @Test
-    fun onRestoreState_nestedInclusion() {
+    public fun onRestoreState_nestedInclusion() {
         setupInternal(R.navigation.nav_graph_nested_include_dynamic)
         navigator.onRestoreState(Bundle.EMPTY)
     }
 
     @Test
-    fun popBackStack() {
+    public fun popBackStack() {
         assertThat(navigator.popBackStack()).isTrue()
     }
 }
diff --git a/navigation/navigation-dynamic-features-runtime/src/androidTest/java/androidx/navigation/dynamicfeatures/DynamicIncludeNavGraphBuilderTest.kt b/navigation/navigation-dynamic-features-runtime/src/androidTest/java/androidx/navigation/dynamicfeatures/DynamicIncludeNavGraphBuilderTest.kt
index fe10518..d90be5f 100644
--- a/navigation/navigation-dynamic-features-runtime/src/androidTest/java/androidx/navigation/dynamicfeatures/DynamicIncludeNavGraphBuilderTest.kt
+++ b/navigation/navigation-dynamic-features-runtime/src/androidTest/java/androidx/navigation/dynamicfeatures/DynamicIncludeNavGraphBuilderTest.kt
@@ -33,7 +33,7 @@
 
 @SmallTest
 @RunWith(AndroidJUnit4::class)
-class DynamicIncludeNavGraphBuilderTest {
+public class DynamicIncludeNavGraphBuilderTest {
 
     private val context: Context = ApplicationProvider.getApplicationContext()
     private val navController = NavController(context).apply {
@@ -46,7 +46,7 @@
 
     @Suppress("DEPRECATION")
     @Test
-    fun includeDynamic() {
+    public fun includeDynamic() {
         val graph = navController.navigatorProvider.navigation(startDestination = GRAPH_ID) {
             includeDynamic(GRAPH_ID, MODULE_NAME, GRAPH_RESOURCE_NAME) {
                 graphPackage = GRAPH_PACKAGE
@@ -67,7 +67,8 @@
     }
 
     @Suppress("DEPRECATION")
-    fun includeDynamic_emptyModuleName() {
+    @Test
+    public fun includeDynamic_emptyModuleName() {
         navController.navigatorProvider.navigation(startDestination = GRAPH_ID) {
             try {
                 includeDynamic(GRAPH_ID, "", GRAPH_RESOURCE_NAME)
@@ -80,7 +81,7 @@
 
     @Suppress("DEPRECATION")
     @Test
-    fun includeDynamic_graphPackage_null() {
+    public fun includeDynamic_graphPackage_null() {
         val graph = navController.navigatorProvider.navigation(startDestination = GRAPH_ID) {
             includeDynamic(GRAPH_ID, MODULE_NAME, GRAPH_RESOURCE_NAME)
         }
@@ -92,7 +93,7 @@
 
     @Suppress("DEPRECATION")
     @Test
-    fun includeDynamic_graphPackage_empty() {
+    public fun includeDynamic_graphPackage_empty() {
         navController.navigatorProvider.navigation(startDestination = GRAPH_ID) {
             try {
                 includeDynamic(GRAPH_ID, MODULE_NAME, GRAPH_RESOURCE_NAME) {
@@ -107,7 +108,7 @@
 
     @Suppress("DEPRECATION")
     @Test
-    fun includeDynamic_graphResourceName_empty() {
+    public fun includeDynamic_graphResourceName_empty() {
         navController.navigatorProvider.navigation(startDestination = GRAPH_ID) {
             try {
                 includeDynamic(GRAPH_ID, MODULE_NAME, "")
@@ -119,7 +120,7 @@
     }
 
     @Test
-    fun includeDynamicRoute() {
+    public fun includeDynamicRoute() {
         val graph = navController.navigatorProvider.navigation(startDestination = GRAPH_ROUTE) {
             includeDynamic(GRAPH_ROUTE, MODULE_NAME, GRAPH_RESOURCE_NAME) {
                 graphPackage = GRAPH_PACKAGE
@@ -140,7 +141,7 @@
             .isEqualTo(GRAPH_RESOURCE_NAME)
     }
 
-    fun includeDynamic_emptyModuleNameRoute() {
+    public fun includeDynamic_emptyModuleNameRoute() {
         navController.navigatorProvider.navigation(startDestination = GRAPH_ROUTE) {
             try {
                 includeDynamic(GRAPH_ROUTE, "", GRAPH_RESOURCE_NAME)
@@ -152,7 +153,7 @@
     }
 
     @Test
-    fun includeDynamic_graphPackage_nullRoute() {
+    public fun includeDynamic_graphPackage_nullRoute() {
         val graph = navController.navigatorProvider.navigation(startDestination = GRAPH_ROUTE) {
             includeDynamic(GRAPH_ROUTE, MODULE_NAME, GRAPH_RESOURCE_NAME)
         }
@@ -164,7 +165,7 @@
     }
 
     @Test
-    fun includeDynamic_graphPackage_emptyRoute() {
+    public fun includeDynamic_graphPackage_emptyRoute() {
         navController.navigatorProvider.navigation(startDestination = GRAPH_ROUTE) {
             try {
                 includeDynamic(GRAPH_ROUTE, MODULE_NAME, GRAPH_RESOURCE_NAME) {
@@ -178,7 +179,7 @@
     }
 
     @Test
-    fun includeDynamic_graphResourceName_emptyRoute() {
+    public fun includeDynamic_graphResourceName_emptyRoute() {
         navController.navigatorProvider.navigation(startDestination = GRAPH_ROUTE) {
             try {
                 includeDynamic(GRAPH_ROUTE, MODULE_NAME, "")
diff --git a/navigation/navigation-dynamic-features-runtime/src/androidTest/java/androidx/navigation/dynamicfeatures/DynamicNavGraphBuilderTest.kt b/navigation/navigation-dynamic-features-runtime/src/androidTest/java/androidx/navigation/dynamicfeatures/DynamicNavGraphBuilderTest.kt
index b190825..cbbcf25 100644
--- a/navigation/navigation-dynamic-features-runtime/src/androidTest/java/androidx/navigation/dynamicfeatures/DynamicNavGraphBuilderTest.kt
+++ b/navigation/navigation-dynamic-features-runtime/src/androidTest/java/androidx/navigation/dynamicfeatures/DynamicNavGraphBuilderTest.kt
@@ -32,7 +32,7 @@
 
 @SmallTest
 @RunWith(AndroidJUnit4::class)
-class DynamicNavGraphBuilderTest {
+public class DynamicNavGraphBuilderTest {
 
     private val provider = NavigatorProvider().apply {
         addNavigator(
@@ -46,7 +46,7 @@
 
     @Suppress("DEPRECATION")
     @Test
-    fun navigation() {
+    public fun navigation() {
         val graph = provider.navigation(startDestination = DESTINATION_ID) {
             moduleName = MODULE_NAME
             navDestination(DESTINATION_ID) {}
@@ -61,7 +61,7 @@
     }
 
     @Suppress("DEPRECATION")
-    fun navigation_emptyModuleName() {
+    public fun navigation_emptyModuleName() {
         val graph = provider.navigation(startDestination = DESTINATION_ID) {
         }
         assertWithMessage("Without a moduleName the graph should be a NavGraph")
@@ -70,7 +70,7 @@
 
     @Suppress("DEPRECATION")
     @Test
-    fun progressDestination() {
+    public fun progressDestination() {
         val graph = provider.navigation(startDestination = DESTINATION_ID) {
             moduleName = MODULE_NAME
             progressDestination = PROGRESS_DESTINATION_ID
@@ -88,7 +88,7 @@
 
     @Suppress("DEPRECATION")
     @Test
-    fun progressDestination_notSet() {
+    public fun progressDestination_notSet() {
         val graph = provider.navigation(startDestination = DESTINATION_ID) {
             moduleName = MODULE_NAME
         } as DynamicGraphNavigator.DynamicNavGraph
@@ -99,7 +99,7 @@
     }
 
     @Test
-    fun navigationRoute() {
+    public fun navigationRoute() {
         val graph = provider.navigation(startDestination = DESTINATION_ROUTE) {
             moduleName = MODULE_NAME
             navDestination(DESTINATION_ROUTE) {}
@@ -113,7 +113,7 @@
             .isEqualTo(MODULE_NAME)
     }
 
-    fun navigation_emptyModuleNameRoute() {
+    public fun navigation_emptyModuleNameRoute() {
         val graph = provider.navigation(startDestination = DESTINATION_ROUTE) {
         }
         assertWithMessage("Without a moduleName the graph should be a NavGraph")
@@ -121,7 +121,7 @@
     }
 
     @Test
-    fun progressDestinationRoute() {
+    public fun progressDestinationRoute() {
         val graph = provider.navigation(startDestination = DESTINATION_ROUTE) {
             moduleName = MODULE_NAME
             progressDestinationRoute = PROGRESS_DESTINATION_ROUTE
@@ -138,7 +138,7 @@
     }
 
     @Test
-    fun progressDestination_notSetRoute() {
+    public fun progressDestination_notSetRoute() {
         val graph = provider.navigation(startDestination = DESTINATION_ROUTE) {
             moduleName = MODULE_NAME
         } as DynamicGraphNavigator.DynamicNavGraph
@@ -160,16 +160,16 @@
  * added to a NavGraph (hence why this is not in the common-ktx library)
  */
 @Suppress("DEPRECATION")
-fun DynamicNavGraphBuilder.navDestination(
+public fun DynamicNavGraphBuilder.navDestination(
     @IdRes id: Int,
     builder: NavDestinationBuilder<NavDestination>.() -> Unit
-) = destination(NavDestinationBuilder(provider[NoOpNavigator::class], id).apply(builder))
+): Unit = destination(NavDestinationBuilder(provider[NoOpNavigator::class], id).apply(builder))
 
 /**
  * Create a base NavDestination. Generally, only subtypes of NavDestination should be
  * added to a NavGraph (hence why this is not in the common-ktx library)
  */
-fun DynamicNavGraphBuilder.navDestination(
+public fun DynamicNavGraphBuilder.navDestination(
     route: String,
     builder: NavDestinationBuilder<NavDestination>.() -> Unit
-) = destination(NavDestinationBuilder(provider[NoOpNavigator::class], route).apply(builder))
+): Unit = destination(NavDestinationBuilder(provider[NoOpNavigator::class], route).apply(builder))
\ No newline at end of file
diff --git a/navigation/navigation-dynamic-features-runtime/src/androidTest/java/androidx/navigation/dynamicfeatures/shared/AndroidTestDynamicInstallManager.kt b/navigation/navigation-dynamic-features-runtime/src/androidTest/java/androidx/navigation/dynamicfeatures/shared/AndroidTestDynamicInstallManager.kt
index 60580b4..c400233 100644
--- a/navigation/navigation-dynamic-features-runtime/src/androidTest/java/androidx/navigation/dynamicfeatures/shared/AndroidTestDynamicInstallManager.kt
+++ b/navigation/navigation-dynamic-features-runtime/src/androidTest/java/androidx/navigation/dynamicfeatures/shared/AndroidTestDynamicInstallManager.kt
@@ -24,7 +24,7 @@
 /**
  * A dynamic install manager used for testing.
  */
-class AndroidTestDynamicInstallManager(
+public class AndroidTestDynamicInstallManager(
     context: Context,
-    val splitInstallManager: SplitInstallManager = mock(SplitInstallManager::class.java)
+    public val splitInstallManager: SplitInstallManager = mock(SplitInstallManager::class.java)
 ) : DynamicInstallManager(context, splitInstallManager)
diff --git a/navigation/navigation-dynamic-features-runtime/src/test/java/androidx/navigation/dynamicfeatures/DynamicExtrasTest.kt b/navigation/navigation-dynamic-features-runtime/src/test/java/androidx/navigation/dynamicfeatures/DynamicExtrasTest.kt
index 74bc039..0502397 100644
--- a/navigation/navigation-dynamic-features-runtime/src/test/java/androidx/navigation/dynamicfeatures/DynamicExtrasTest.kt
+++ b/navigation/navigation-dynamic-features-runtime/src/test/java/androidx/navigation/dynamicfeatures/DynamicExtrasTest.kt
@@ -23,12 +23,12 @@
 import org.junit.runners.JUnit4
 
 @RunWith(JUnit4::class)
-class DynamicExtrasTest {
+public class DynamicExtrasTest {
 
-    class TestNavigatorExtras : Navigator.Extras
+    public class TestNavigatorExtras : Navigator.Extras
 
     @Test
-    fun build_withMonitorAndExtras() {
+    public fun build_withMonitorAndExtras() {
         val monitor = DynamicInstallMonitor()
         val navExtras = TestNavigatorExtras()
         val extras = DynamicExtras(monitor, navExtras)
@@ -37,7 +37,7 @@
     }
 
     @Test
-    fun build_withoutMonitorOrExtras() {
+    public fun build_withoutMonitorOrExtras() {
         val extras = DynamicExtras()
         assertThat(extras.destinationExtras).isNull()
         assertThat(extras.installMonitor).isNull()
diff --git a/navigation/navigation-dynamic-features-runtime/src/test/java/androidx/navigation/dynamicfeatures/DynamicGraphNavigatorTest.kt b/navigation/navigation-dynamic-features-runtime/src/test/java/androidx/navigation/dynamicfeatures/DynamicGraphNavigatorTest.kt
index f62db26..cc94ec6 100644
--- a/navigation/navigation-dynamic-features-runtime/src/test/java/androidx/navigation/dynamicfeatures/DynamicGraphNavigatorTest.kt
+++ b/navigation/navigation-dynamic-features-runtime/src/test/java/androidx/navigation/dynamicfeatures/DynamicGraphNavigatorTest.kt
@@ -27,7 +27,7 @@
 import org.mockito.Mockito.mock
 
 @RunWith(JUnit4::class)
-class DynamicGraphNavigatorTest {
+public class DynamicGraphNavigatorTest {
 
     private val navigator =
         DynamicGraphNavigator(
@@ -36,12 +36,12 @@
         )
 
     @Test
-    fun testCreateDestination() {
+    public fun testCreateDestination() {
         assertNotNull(navigator.createDestination())
     }
 
     @Test
-    fun testInstallDefaultProgressDestination() {
+    public fun testInstallDefaultProgressDestination() {
         val navDestination = mock(NavDestination::class.java)
         navigator.installDefaultProgressDestination { navDestination }
         assertEquals(navDestination, navigator.defaultProgressDestinationSupplier!!.invoke())
diff --git a/navigation/navigation-dynamic-features-runtime/src/test/java/androidx/navigation/dynamicfeatures/DynamicInstallManagerTest.kt b/navigation/navigation-dynamic-features-runtime/src/test/java/androidx/navigation/dynamicfeatures/DynamicInstallManagerTest.kt
index 72ca243..d54950a 100644
--- a/navigation/navigation-dynamic-features-runtime/src/test/java/androidx/navigation/dynamicfeatures/DynamicInstallManagerTest.kt
+++ b/navigation/navigation-dynamic-features-runtime/src/test/java/androidx/navigation/dynamicfeatures/DynamicInstallManagerTest.kt
@@ -30,7 +30,7 @@
 import org.mockito.Mockito.spy
 
 @RunWith(JUnit4::class)
-class DynamicInstallManagerTest {
+public class DynamicInstallManagerTest {
 
     private val splitInstallManager = mock(SplitInstallManager::class.java)
     private var manager = DynamicInstallManager(
@@ -39,13 +39,13 @@
     )
 
     @Test
-    fun testNeedsInstall_InstallNeeded() {
+    public fun testNeedsInstall_InstallNeeded() {
         mockWhen(splitInstallManager.installedModules).thenReturn(setOf("not-module"))
         assertTrue(manager.needsInstall("module"))
     }
 
     @Test
-    fun testNeedsInstall_NoInstallNeeded() {
+    public fun testNeedsInstall_NoInstallNeeded() {
         mockWhen(splitInstallManager.installedModules).thenReturn(setOf("module"))
         assertFalse(manager.needsInstall("module"))
     }
diff --git a/navigation/navigation-dynamic-features-runtime/src/test/java/androidx/navigation/dynamicfeatures/DynamicInstallMonitorTest.kt b/navigation/navigation-dynamic-features-runtime/src/test/java/androidx/navigation/dynamicfeatures/DynamicInstallMonitorTest.kt
index caed9ac..b6046f5 100644
--- a/navigation/navigation-dynamic-features-runtime/src/test/java/androidx/navigation/dynamicfeatures/DynamicInstallMonitorTest.kt
+++ b/navigation/navigation-dynamic-features-runtime/src/test/java/androidx/navigation/dynamicfeatures/DynamicInstallMonitorTest.kt
@@ -26,9 +26,9 @@
 import org.mockito.Mockito.verify
 
 @RunWith(JUnit4::class)
-class DynamicInstallMonitorTest {
+public class DynamicInstallMonitorTest {
     @Test
-    fun testCancelInstall_sessionIdZero() {
+    public fun testCancelInstall_sessionIdZero() {
         val monitor = DynamicInstallMonitor()
         val manager = mock(SplitInstallManager::class.java)
 
@@ -39,7 +39,7 @@
     }
 
     @Test
-    fun testCancelInstall_sessionIdNotZero() {
+    public fun testCancelInstall_sessionIdNotZero() {
         val monitor = DynamicInstallMonitor()
         val manager = mock(SplitInstallManager::class.java)
 
diff --git a/navigation/navigation-dynamic-features-runtime/src/test/java/androidx/navigation/dynamicfeatures/DynamicNavGraphTest.kt b/navigation/navigation-dynamic-features-runtime/src/test/java/androidx/navigation/dynamicfeatures/DynamicNavGraphTest.kt
index f48fdbb..4d48ad3 100644
--- a/navigation/navigation-dynamic-features-runtime/src/test/java/androidx/navigation/dynamicfeatures/DynamicNavGraphTest.kt
+++ b/navigation/navigation-dynamic-features-runtime/src/test/java/androidx/navigation/dynamicfeatures/DynamicNavGraphTest.kt
@@ -32,10 +32,10 @@
 import org.junit.runners.JUnit4
 
 @RunWith(JUnit4::class)
-class DynamicNavGraphTest {
+public class DynamicNavGraphTest {
 
     @get:Rule
-    val instantTaskExecutorRule = InstantTaskExecutorRule()
+    public val instantTaskExecutorRule: InstantTaskExecutorRule = InstantTaskExecutorRule()
 
     private val progressId = 1
     private lateinit var provider: NavigatorProvider
@@ -46,7 +46,7 @@
     private lateinit var noOpNavigator: NoOpNavigator
 
     @Before
-    fun setup() {
+    public fun setup() {
         provider = NavigatorProvider()
         noOpNavigator = NoOpNavigator()
         navigator = DynamicGraphNavigator(
@@ -60,12 +60,12 @@
     }
 
     @Test(expected = IllegalStateException::class)
-    fun testGetOrThrow_NoParent() {
+    public fun testGetOrThrow_NoParent() {
         DynamicNavGraph.getOrThrow(noOpNavigator.createDestination())
     }
 
     @Test
-    fun testGetOrThrow_CorrectParent() {
+    public fun testGetOrThrow_CorrectParent() {
         setupProgressDestination(
             noOpNavigator.createDestination().apply {
                 id = progressId
@@ -81,13 +81,13 @@
     }
 
     @Test(expected = IllegalStateException::class)
-    fun testNavigateToProgressDestination_withoutProgressDestination() {
+    public fun testNavigateToProgressDestination_withoutProgressDestination() {
         setupProgressDestination(null)
         navigator.navigateToProgressDestination(dynamicNavGraph, null)
     }
 
     @Test
-    fun testNavigateToProgressDestination_withProviderAndDestination() {
+    public fun testNavigateToProgressDestination_withProviderAndDestination() {
         setupProgressDestination(
             noOpNavigator.createDestination().apply {
                 id = progressId
diff --git a/navigation/navigation-dynamic-features-runtime/src/test/java/androidx/navigation/dynamicfeatures/shared/TestDynamicInstallManager.kt b/navigation/navigation-dynamic-features-runtime/src/test/java/androidx/navigation/dynamicfeatures/shared/TestDynamicInstallManager.kt
index e511f56..cbdf11a 100644
--- a/navigation/navigation-dynamic-features-runtime/src/test/java/androidx/navigation/dynamicfeatures/shared/TestDynamicInstallManager.kt
+++ b/navigation/navigation-dynamic-features-runtime/src/test/java/androidx/navigation/dynamicfeatures/shared/TestDynamicInstallManager.kt
@@ -24,7 +24,7 @@
 /**
  * A dynamic install manager used for testing.
  */
-class TestDynamicInstallManager :
+public class TestDynamicInstallManager :
     DynamicInstallManager(
         Mockito.spy(Context::class.java),
         Mockito.mock(SplitInstallManager::class.java)