--- a/gradle/libs.versions.toml Sun Apr 27 16:24:34 2025 -0400
+++ b/gradle/libs.versions.toml Sun Apr 27 16:28:55 2025 -0400
@@ -34,7 +34,6 @@
androidx-compose-bom = "2025.04.01"
androidx-lifecycle = "2.8.7"
org-jetbrains-androidx-lifecycle = "2.9.0-alpha07"
-org-jetbrains-androidx-core-uri = "1.1.0-alpha03"
org-jetbrains-androidx-navigation = "2.9.0-alpha17"
org-jetbrains-androidx-compose-material3-adaptive-navigation = "1.1.0-rc01"
org-jetbrains-compose-material-icons-core = "1.7.3"
@@ -81,8 +80,6 @@
kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinx-serialization" }
-org-jetbrains-androidx-core-uri = { module = "org.jetbrains.androidx.core:core-uri", version.ref = "org-jetbrains-androidx-core-uri" }
-
[plugins]
com-android-application = { id = "com.android.application", version.ref = "android-gradle-plugin" }
--- a/ui/material3/build.gradle.kts Sun Apr 27 16:24:34 2025 -0400
+++ b/ui/material3/build.gradle.kts Sun Apr 27 16:28:55 2025 -0400
@@ -26,6 +26,7 @@
kotlin("multiplatform")
alias(libs.plugins.org.jetbrains.kotlin.compose.compiler)
alias(libs.plugins.org.jetbrains.compose.multiplatform)
+ alias(libs.plugins.org.jetbrains.kotlinx.serialization)
id("com.geekorum.build.source-license-checker")
`maven-publish`
}
@@ -62,9 +63,9 @@
implementation(compose.components.resources)
implementation(compose.components.uiToolingPreview)
implementation(libs.org.jetbrains.androidx.navigation.compose)
- implementation(libs.org.jetbrains.androidx.core.uri)
implementation(libs.org.jetbrains.androidx.compose.material3.adaptive.navigation)
implementation(libs.org.jetbrains.compose.ui.backhandler)
+ implementation(libs.org.jetbrains.androidx.lifecycle.viewmodel.compose)
}
androidMain.dependencies {
--- a/ui/material3/src/commonMain/kotlin/com/geekorum/aboutoss/ui/material3/OpenSourceDependenciesNavHost.kt Sun Apr 27 16:24:34 2025 -0400
+++ b/ui/material3/src/commonMain/kotlin/com/geekorum/aboutoss/ui/material3/OpenSourceDependenciesNavHost.kt Sun Apr 27 16:28:55 2025 -0400
@@ -22,11 +22,20 @@
package com.geekorum.aboutoss.ui.material3
import androidx.compose.runtime.Composable
-import androidx.core.uri.UriUtils
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.compose.rememberNavController
+import androidx.navigation.toRoute
import com.geekorum.aboutoss.ui.common.OpenSourceLicensesViewModel
+import kotlinx.serialization.Serializable
+
+@Serializable
+private object DependenciesList
+
+@Serializable
+private data class DependencyLicense(
+ val dependency: String
+)
@Composable
fun OpenSourceDependenciesNavHost(
@@ -34,18 +43,19 @@
navigateUp: () -> Unit
) {
val navController = rememberNavController()
- NavHost(navController, startDestination = "dependencies") {
- composable("dependencies") {
+ NavHost(navController, startDestination = DependenciesList) {
+ composable<DependenciesList> {
OpenSourceDependenciesListScreen(
viewModel = openSourceLicensesViewModel,
onDependencyClick = {
- navController.navigate("dependency_license/${UriUtils.encode(it)}")
+ navController.navigate(DependencyLicense(it))
},
onUpClick = navigateUp
)
}
- composable("dependency_license/{dependency}") {
- val dependency = requireNotNull(it.arguments?.getString("dependency"))
+ composable<DependencyLicense> {
+ val route = it.toRoute<DependencyLicense>()
+ val dependency = route.dependency
OpenSourceLicenseScreen(
viewModel = openSourceLicensesViewModel,
dependency = dependency,