Provide popUpToId for NavOptions Adding an expect for popUpToId and implementing it in nonAndroid targets. RelNote: N/A Test: all tests pass Bug: 403616316 Change-Id: I9a354359828786be54268096859bf8b3b35b51ac
diff --git a/navigation/navigation-common/bcv/native/current.txt b/navigation/navigation-common/bcv/native/current.txt index 0ba5ef6..fa1427e 100644 --- a/navigation/navigation-common/bcv/native/current.txt +++ b/navigation/navigation-common/bcv/native/current.txt
@@ -299,6 +299,9 @@ final class androidx.navigation/NavOptions { // androidx.navigation/NavOptions|null[0] constructor <init>() // androidx.navigation/NavOptions.<init>|<init>(){}[0] + final val popUpToId // androidx.navigation/NavOptions.popUpToId|{}popUpToId[0] + final fun <get-popUpToId>(): kotlin/Int // androidx.navigation/NavOptions.popUpToId.<get-popUpToId>|<get-popUpToId>(){}[0] + final var popUpToRoute // androidx.navigation/NavOptions.popUpToRoute|{}popUpToRoute[0] final fun <get-popUpToRoute>(): kotlin/String? // androidx.navigation/NavOptions.popUpToRoute.<get-popUpToRoute>|<get-popUpToRoute>(){}[0] final fun <set-popUpToRoute>(kotlin/String?) // androidx.navigation/NavOptions.popUpToRoute.<set-popUpToRoute>|<set-popUpToRoute>(kotlin.String?){}[0]
diff --git a/navigation/navigation-common/src/androidMain/kotlin/androidx/navigation/NavOptions.android.kt b/navigation/navigation-common/src/androidMain/kotlin/androidx/navigation/NavOptions.android.kt index fd6787c..9e69b7a 100644 --- a/navigation/navigation-common/src/androidMain/kotlin/androidx/navigation/NavOptions.android.kt +++ b/navigation/navigation-common/src/androidMain/kotlin/androidx/navigation/NavOptions.android.kt
@@ -19,7 +19,6 @@ import androidx.annotation.AnimatorRes import androidx.annotation.IdRes import androidx.navigation.NavDestination.Companion.createRoute -import androidx.navigation.NavOptions.Builder import androidx.navigation.serialization.generateHashCode import kotlin.reflect.KClass import kotlinx.serialization.InternalSerializationApi @@ -38,7 +37,7 @@ * @see isPopUpToInclusive * @see shouldPopUpToSaveState */ - @field:IdRes @get:IdRes @param:IdRes public val popUpToId: Int, + @field:IdRes @get:IdRes @param:IdRes public actual val popUpToId: Int, private val popUpToInclusive: Boolean, private val popUpToSaveState: Boolean, /**
diff --git a/navigation/navigation-common/src/commonMain/kotlin/androidx/navigation/NavOptions.kt b/navigation/navigation-common/src/commonMain/kotlin/androidx/navigation/NavOptions.kt index 86a8d9d..9ffc891 100644 --- a/navigation/navigation-common/src/commonMain/kotlin/androidx/navigation/NavOptions.kt +++ b/navigation/navigation-common/src/commonMain/kotlin/androidx/navigation/NavOptions.kt
@@ -23,6 +23,17 @@ public expect class NavOptions { /** + * The destination to pop up to before navigating. When set, all non-matching destinations + * should be popped from the back stack. + * + * @return the destinationId to pop up to, clearing all intervening destinations + * @see Builder.setPopUpTo + * @see isPopUpToInclusive + * @see shouldPopUpToSaveState + */ + public val popUpToId: Int + + /** * Route for the destination to pop up to before navigating. When set, all non-matching * destinations should be popped from the back stack. *
diff --git a/navigation/navigation-common/src/nonAndroidMain/kotlin/androidx/navigation/NavOptions.nonAndroid.kt b/navigation/navigation-common/src/nonAndroidMain/kotlin/androidx/navigation/NavOptions.nonAndroid.kt index 62e4252..db38ef4 100644 --- a/navigation/navigation-common/src/nonAndroidMain/kotlin/androidx/navigation/NavOptions.nonAndroid.kt +++ b/navigation/navigation-common/src/nonAndroidMain/kotlin/androidx/navigation/NavOptions.nonAndroid.kt
@@ -20,6 +20,8 @@ import kotlin.reflect.KClass public actual class NavOptions { + public actual val popUpToId: Int = 0 + public actual var popUpToRoute: String? get() = implementedInJetBrainsFork() set(_) {