Hi there I am using <https://github.com/Tlaster/P...
# multiplatform
s
Hi there I am using https://github.com/Tlaster/PreCompose for my new KMM project, with the latest
v1.6.0-beta02
. Started seeing this issue while running android build cc : @Tlaster
t
It seems like your main activity is not extend from FragmentActivity, which is required by moko-permissions.
s
I was extending with ComponentActivity instead FragmentActivity. Thanks @Tlaster
we can also use the AppCompactActivity...
i
Can we make several graphs with the PreCompose lib ?
s
Yes
i
Do you have an example ?
s
Copy code
fun RouteBuilder.featureNavGraph(
    featureRoute: String,
    initialSceneRoute: String,
    routeBuilder: RouteBuilder.() -> Unit,
) {
    group(
        route = featureRoute,
        initialRoute = initialSceneRoute,
    ) {
        routeBuilder() // routes specific to feature.
    }
}
Copy code
@Composable
fun AppNavigation(navigator: Navigator) {
    val koin = getKoin()
    val userAuthViewModel = koin.get<UserAuthViewModel>()
    val viewModel: DashboardViewModel = koinInject()
    val deepLinkStateManager: DeepLinkStateManager = koinInject()

    //Observe deeplink state and navigate accordingly.
    val deepLinkState by deepLinkStateManager.deepLinkInfo.collectAsState()
    deepLinkState?.route?.let {
        navigator.navigate(route = it)
    }

    NavHost(
        navigator = navigator,
        initialRoute = OnboardingRoutes.ROOT.route,
    ) {
        featureNavGraph(
            featureRoute = OnboardingRoutes.ROOT.route,
            initialSceneRoute = OnboardingRoutes.LANDING.route,
        ) {
            onboardingRoutes(navigator)
        }

        // User authentication navigation
        featureNavGraph(
            featureRoute = UserAuthRoutes.ROOT.route,
            initialSceneRoute = UserAuthRoutes.LANDING.route,
        ) {
            userAuthRoutes(navigator, userAuthViewModel)
        }

        // nested navigation graph, this should be used per module
        featureNavGraph(
            featureRoute = DashboardRoutes.DASHBOARD_ROOT.route,
            initialSceneRoute = DashboardRoutes.DASHBOARD_LAUNCHER.route,
        ) {
            dashboardRoutes(navigator,viewModel)
        }

        // nested navigation graph, this should be used per module
        featureNavGraph(
            featureRoute = ReelsRoutes.ROOT.route,
            initialSceneRoute = ReelsRoutes.REELS_LIST.route
                .plus("/{${ReelRoutesParams.DISCOVER_CATEGORY_ID.param}}?")
                .plus("/{${ReelRoutesParams.SELECTED_REEL_INDEX.param}}?")
                .plus("/{${ReelRoutesParams.INITIAL_REELS_IDS.param}}?")
                .plus("/{${ReelRoutesParams.ENC_FEED_POST_ID.param}}?")
        ) {
            reelsRoutes(navigator)
        }

    }
}
i
Merci