diff --git a/app/src/main/kotlin/com/google/samples/apps/nowinandroid/navigation/NiaNavHost.kt b/app/src/main/kotlin/com/google/samples/apps/nowinandroid/navigation/NiaNavHost.kt index c81365a81..c702e9c6d 100644 --- a/app/src/main/kotlin/com/google/samples/apps/nowinandroid/navigation/NiaNavHost.kt +++ b/app/src/main/kotlin/com/google/samples/apps/nowinandroid/navigation/NiaNavHost.kt @@ -73,7 +73,7 @@ fun NiaNavHost( } composable {} composable {} - interestsListDetailScreen() + composable{} } } }, @@ -96,6 +96,7 @@ fun NiaNavHost( onInterestsClick = { appState.navigateToTopLevelDestination(INTERESTS) }, onTopicClick = navController::navigateToInterests, ) + interestsListDetailScreen() }, ) } diff --git a/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/NiaAppState.kt b/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/NiaAppState.kt index a77b3c2dd..7b65ca4f1 100644 --- a/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/NiaAppState.kt +++ b/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/NiaAppState.kt @@ -39,6 +39,7 @@ import com.google.samples.apps.nowinandroid.core.data.util.TimeZoneMonitor import com.google.samples.apps.nowinandroid.core.ui.TrackDisposableJank import com.google.samples.apps.nowinandroid.feature.bookmarks.api.navigation.BookmarksRoute import com.google.samples.apps.nowinandroid.feature.foryou.navigation.navigateToForYou +import com.google.samples.apps.nowinandroid.feature.interests.navigation.InterestsRoute import com.google.samples.apps.nowinandroid.feature.interests.navigation.navigateToInterests import com.google.samples.apps.nowinandroid.feature.search.navigation.SearchRoute import com.google.samples.apps.nowinandroid.feature.search.navigation.navigateToSearch @@ -47,6 +48,7 @@ import com.google.samples.apps.nowinandroid.navigation.TopLevelDestination import com.google.samples.apps.nowinandroid.navigation.TopLevelDestination.BOOKMARKS import com.google.samples.apps.nowinandroid.navigation.TopLevelDestination.FOR_YOU import com.google.samples.apps.nowinandroid.navigation.TopLevelDestination.INTERESTS +import com.google.samples.apps.nowinandroid.ui.interests2pane.interestsListDetailScreen import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job @@ -217,7 +219,8 @@ class Nav3NavigatorSimple(val navController: NavHostController){ private val migratedRoutes = listOf( BookmarksRoute::class, TopicRoute::class, - SearchRoute::class + SearchRoute::class, + InterestsRoute::class, ).associateBy { it.qualifiedName } // TODO: We are using Dispatchers.Main so that we can access SavedStateHandle in toRoute, @@ -235,18 +238,16 @@ class Nav3NavigatorSimple(val navController: NavHostController){ if (backStack.isNotEmpty()){ clear() val entriesToAdd = nav2BackStack.mapNotNull { entry -> - - val className = entry.destination.route?.substringBefore('/') - println("Evaluating: $className") // Ignore nav graph root entries if (entry.destination::class.qualifiedName == "androidx.navigation.compose.ComposeNavGraphNavigator.ComposeNavGraph"){ null } else { - when (className) { - BookmarksRoute::class.qualifiedName -> entry.toRoute() - TopicRoute::class.qualifiedName -> entry.toRoute() - SearchRoute::class.qualifiedName -> entry.toRoute() - else -> entry + with(entry.destination) { + if (hasRoute()) { entry.toRoute() } + else if (hasRoute()) { entry.toRoute() } + else if (hasRoute()) { entry.toRoute() } + else if (hasRoute()) { entry.toRoute() } + else { entry } } } } diff --git a/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/interests2pane/InterestsListDetailScreen.kt b/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/interests2pane/InterestsListDetailScreen.kt index c0f425c65..a95e4b4f8 100644 --- a/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/interests2pane/InterestsListDetailScreen.kt +++ b/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/interests2pane/InterestsListDetailScreen.kt @@ -50,8 +50,8 @@ import androidx.compose.ui.layout.layout import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle -import androidx.navigation.NavGraphBuilder -import androidx.navigation.compose.composable +import androidx.navigation3.runtime.EntryProviderBuilder +import androidx.navigation3.runtime.entry import com.google.samples.apps.nowinandroid.feature.interests.InterestsRoute import com.google.samples.apps.nowinandroid.feature.interests.navigation.InterestsRoute import com.google.samples.apps.nowinandroid.feature.topic.TopicDetailPlaceholder @@ -64,8 +64,8 @@ import kotlin.math.max @Serializable internal object TopicPlaceholderRoute -fun NavGraphBuilder.interestsListDetailScreen() { - composable { +fun EntryProviderBuilder.interestsListDetailScreen() { + entry { InterestsListDetailScreen() } } diff --git a/feature/interests/build.gradle.kts b/feature/interests/build.gradle.kts index 2b84b135f..55f4290d1 100644 --- a/feature/interests/build.gradle.kts +++ b/feature/interests/build.gradle.kts @@ -26,6 +26,7 @@ android { dependencies { implementation(projects.core.data) implementation(projects.core.domain) + implementation(projects.core.navigation) testImplementation(projects.core.testing) testImplementation(libs.robolectric)