Seperate Navigation-Testing from navigation package
This migrates all Navigation-Testing artifacts to a
androidx.navigation.testing package rather than using the
androidx.navigation package.
Test: ./gradleW bOS
Change-Id: Ic0654d613e29590bc2d43c8dac8cca3dc124888f
diff --git a/navigation/navigation-runtime/api/restricted_2.3.0-alpha01.txt b/navigation/navigation-runtime/api/restricted_2.3.0-alpha01.txt
index 29acd59..4f49e23 100644
--- a/navigation/navigation-runtime/api/restricted_2.3.0-alpha01.txt
+++ b/navigation/navigation-runtime/api/restricted_2.3.0-alpha01.txt
@@ -51,6 +51,7 @@
ctor public NavController(android.content.Context);
method public void addOnDestinationChangedListener(androidx.navigation.NavController.OnDestinationChangedListener);
method public androidx.navigation.NavDeepLinkBuilder createDeepLink();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.Deque<androidx.navigation.NavBackStackEntry!> getBackStack();
method public androidx.navigation.NavBackStackEntry getBackStackEntry(@IdRes int);
method public androidx.navigation.NavDestination? getCurrentDestination();
method public androidx.navigation.NavGraph getGraph();
diff --git a/navigation/navigation-runtime/api/restricted_current.txt b/navigation/navigation-runtime/api/restricted_current.txt
index 29acd59..4f49e23 100644
--- a/navigation/navigation-runtime/api/restricted_current.txt
+++ b/navigation/navigation-runtime/api/restricted_current.txt
@@ -51,6 +51,7 @@
ctor public NavController(android.content.Context);
method public void addOnDestinationChangedListener(androidx.navigation.NavController.OnDestinationChangedListener);
method public androidx.navigation.NavDeepLinkBuilder createDeepLink();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.Deque<androidx.navigation.NavBackStackEntry!> getBackStack();
method public androidx.navigation.NavBackStackEntry getBackStackEntry(@IdRes int);
method public androidx.navigation.NavDestination? getCurrentDestination();
method public androidx.navigation.NavGraph getGraph();
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 71e6e58..221ba97 100644
--- a/navigation/navigation-runtime/src/main/java/androidx/navigation/NavController.java
+++ b/navigation/navigation-runtime/src/main/java/androidx/navigation/NavController.java
@@ -170,6 +170,18 @@
mNavigatorProvider.addNavigator(new ActivityNavigator(mContext));
}
+ /**
+ * Retrieve the current back stack.
+ *
+ * @return The current back stack.
+ * @hide
+ */
+ @NonNull
+ @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
+ public Deque<NavBackStackEntry> getBackStack() {
+ return mBackStack;
+ }
+
@NonNull
Context getContext() {
return mContext;
diff --git a/navigation/navigation-testing/src/androidTest/java/androidx/navigation/testing/TestNavHostControllerTest.kt b/navigation/navigation-testing/src/androidTest/java/androidx/navigation/testing/TestNavHostControllerTest.kt
index ce9673d..92b1a11 100644
--- a/navigation/navigation-testing/src/androidTest/java/androidx/navigation/testing/TestNavHostControllerTest.kt
+++ b/navigation/navigation-testing/src/androidTest/java/androidx/navigation/testing/TestNavHostControllerTest.kt
@@ -16,9 +16,8 @@
package androidx.navigation.testing
-import androidx.navigation.testing.test.R
-import androidx.navigation.TestNavHostController
import androidx.navigation.plusAssign
+import androidx.navigation.testing.test.R
import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
diff --git a/navigation/navigation-testing/src/main/java/androidx/navigation/testing/TestNavHostController.kt b/navigation/navigation-testing/src/main/java/androidx/navigation/testing/TestNavHostController.kt
index 3aeeb38..192655e 100644
--- a/navigation/navigation-testing/src/main/java/androidx/navigation/testing/TestNavHostController.kt
+++ b/navigation/navigation-testing/src/main/java/androidx/navigation/testing/TestNavHostController.kt
@@ -14,9 +14,11 @@
* limitations under the License.
*/
-package androidx.navigation
+package androidx.navigation.testing
import android.content.Context
+import androidx.navigation.NavBackStackEntry
+import androidx.navigation.NavHostController
/**
* Subclass of [NavHostController] that offers additional APIs for testing Navigation.
@@ -26,7 +28,7 @@
/**
* Gets an immutable copy of the [elements][NavBackStackEntry] currently on the back stack.
*/
- val backStack get(): List<NavBackStackEntry> = mBackStack.toList()
+ val backStack get(): List<NavBackStackEntry> = getBackStack().toList()
init {
navigatorProvider = TestNavigatorProvider()
diff --git a/navigation/navigation-testing/src/main/java/androidx/navigation/testing/TestNavigatorProvider.kt b/navigation/navigation-testing/src/main/java/androidx/navigation/testing/TestNavigatorProvider.kt
index d2a757f..62e9ba8 100644
--- a/navigation/navigation-testing/src/main/java/androidx/navigation/testing/TestNavigatorProvider.kt
+++ b/navigation/navigation-testing/src/main/java/androidx/navigation/testing/TestNavigatorProvider.kt
@@ -14,14 +14,19 @@
* limitations under the License.
*/
-package androidx.navigation
+package androidx.navigation.testing
import android.os.Bundle
+import androidx.navigation.NavDestination
+import androidx.navigation.NavGraphNavigator
+import androidx.navigation.NavOptions
+import androidx.navigation.Navigator
+import androidx.navigation.NavigatorProvider
import java.lang.IllegalStateException
/**
- * A [NavigatorProvider] for testing that only parses [navigation graphs][NavGraph] and
- * [destinations][NavDestination].
+ * A [NavigatorProvider] for testing that only parses
+ * [navigation graphs][androidx.navigation.NavGraph] and [destinations][NavDestination].
*/
internal class TestNavigatorProvider : NavigatorProvider() {