π₯οΈ Navigation, modules, theme (Android)
After connect, AzeooSDK.shared exposes:
sdk.navigate(...)+ back operations β typed navigationsdk.setModuleContainer(...)β adaptive native UI coordinationsdk.modules.nutrition/sdk.modules.trainingβ embedding (Fragment / View / Compose)sdk.themeβ theme runtime control
Typed navigationβ
sdk.navigate(AzeooDestination.Nutrition.Plan(id = "abc-123"))
sdk.navigate(AzeooDestination.Training.Workouts)
sdk.back()
sdk.backToRoot()
sdk.canGoBack { result -> /* Boolean */ }
sdk.getCurrentRoute { result -> /* String? */ }
Full catalogue: Destination catalogue (nutrition + training).
Module coordinators (setModuleContainer)β
Install once at startup so cross-module navigation flips your bottom nav / rail / drawer:
sdk.setModuleContainer(AzeooBottomNavCoordinator(
bottomNav = findViewById(R.id.bottom_nav),
mapping = mapOf(
AzeooDestination.Module.NUTRITION to R.id.nav_nutrition,
AzeooDestination.Module.TRAINING to R.id.nav_training,
),
))
Built-in coordinators:
AzeooBottomNavCoordinatorβ for MaterialBottomNavigationViewAzeooNavigationRailCoordinatorβ for MaterialNavigationRailViewAzeooNavComponentCoordinatorβ for Jetpack Navigation Component
Custom containers (drawer / ViewPager2 / fragment swap / anything else): implement AzeooModuleContainer directly β one method.
Clear in Activity.onDestroy:
override fun onDestroy() {
AzeooSDK.shared.setModuleContainer(null)
super.onDestroy()
}
Embeddingβ
// Fragment
val frag = sdk.modules.nutrition.getFragment(bottomSafeArea = false)
supportFragmentManager.beginTransaction()
.replace(R.id.container, frag)
.commitNow()
// View
val view = sdk.modules.nutrition.getView(context)
// Compose
sdk.modules.nutrition.ComposeView(bottomSafeArea = true)
Theme (sdk.theme)β
setMode, setLightMode, setDarkMode, setSystemMode, toggleMode, setPrimaryColor, setSecondaryColor, setLightColors, setDarkColors, setTheme, resetToDefault, getCurrentTheme.