diff --git a/sample-compose/app/src/main/AndroidManifest.xml b/sample-compose/app/src/main/AndroidManifest.xml index 52d952c5f..ae40d2156 100644 --- a/sample-compose/app/src/main/AndroidManifest.xml +++ b/sample-compose/app/src/main/AndroidManifest.xml @@ -26,6 +26,25 @@ + + + + + + + + + + + + + + + + + + + diff --git a/sample-compose/app/src/main/java/co/nimblehq/sample/compose/ui/AppNavGraph.kt b/sample-compose/app/src/main/java/co/nimblehq/sample/compose/ui/AppNavGraph.kt index b9a9048a6..4782b215d 100644 --- a/sample-compose/app/src/main/java/co/nimblehq/sample/compose/ui/AppNavGraph.kt +++ b/sample-compose/app/src/main/java/co/nimblehq/sample/compose/ui/AppNavGraph.kt @@ -2,11 +2,11 @@ package co.nimblehq.sample.compose.ui import androidx.compose.runtime.Composable import androidx.navigation.NavBackStackEntry -import androidx.navigation.NavDeepLink import androidx.navigation.NavGraphBuilder import androidx.navigation.NavHostController import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable +import androidx.navigation.navDeepLink import co.nimblehq.sample.compose.ui.base.BaseDestination import co.nimblehq.sample.compose.ui.screens.main.mainNavGraph @@ -25,13 +25,16 @@ fun AppNavGraph( fun NavGraphBuilder.composable( destination: BaseDestination, - deepLinks: List = emptyList(), content: @Composable (NavBackStackEntry) -> Unit, ) { composable( route = destination.route, arguments = destination.arguments, - deepLinks = deepLinks, + deepLinks = destination.deepLinks.map { + navDeepLink { + uriPattern = it + } + }, content = content ) } diff --git a/sample-compose/app/src/main/java/co/nimblehq/sample/compose/ui/base/BaseDestination.kt b/sample-compose/app/src/main/java/co/nimblehq/sample/compose/ui/base/BaseDestination.kt index b8eae02ba..03af800b4 100644 --- a/sample-compose/app/src/main/java/co/nimblehq/sample/compose/ui/base/BaseDestination.kt +++ b/sample-compose/app/src/main/java/co/nimblehq/sample/compose/ui/base/BaseDestination.kt @@ -8,6 +8,11 @@ abstract class BaseDestination(val route: String = "") { open val arguments: List = emptyList() + open val deepLinks: List = listOf( + "https://android.nimblehq.co/$route", + "android://$route", + ) + open var destination: String = route open var parcelableArgument: Pair = "" to null diff --git a/template-compose/app/src/main/java/co/nimblehq/template/compose/ui/AppNavGraph.kt b/template-compose/app/src/main/java/co/nimblehq/template/compose/ui/AppNavGraph.kt index 6dd922c48..e2c662a68 100644 --- a/template-compose/app/src/main/java/co/nimblehq/template/compose/ui/AppNavGraph.kt +++ b/template-compose/app/src/main/java/co/nimblehq/template/compose/ui/AppNavGraph.kt @@ -2,11 +2,11 @@ package co.nimblehq.template.compose.ui import androidx.compose.runtime.Composable import androidx.navigation.NavBackStackEntry -import androidx.navigation.NavDeepLink import androidx.navigation.NavGraphBuilder import androidx.navigation.NavHostController import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable +import androidx.navigation.navDeepLink import co.nimblehq.template.compose.ui.base.BaseDestination import co.nimblehq.template.compose.ui.screens.main.mainNavGraph @@ -25,13 +25,16 @@ fun AppNavGraph( fun NavGraphBuilder.composable( destination: BaseDestination, - deepLinks: List = emptyList(), content: @Composable (NavBackStackEntry) -> Unit, ) { composable( route = destination.route, arguments = destination.arguments, - deepLinks = deepLinks, + deepLinks = destination.deepLinks.map { + navDeepLink { + uriPattern = it + } + }, content = content ) } diff --git a/template-compose/app/src/main/java/co/nimblehq/template/compose/ui/base/BaseDestination.kt b/template-compose/app/src/main/java/co/nimblehq/template/compose/ui/base/BaseDestination.kt index a56152cfa..9efb868b2 100644 --- a/template-compose/app/src/main/java/co/nimblehq/template/compose/ui/base/BaseDestination.kt +++ b/template-compose/app/src/main/java/co/nimblehq/template/compose/ui/base/BaseDestination.kt @@ -6,6 +6,8 @@ abstract class BaseDestination(val route: String = "") { open val arguments: List = emptyList() + open val deepLinks: List = emptyList() + open var destination: String = route data class Up(val results: HashMap = hashMapOf()) : BaseDestination() {