Skip to main content

πŸ–₯️ Navigation, modules, theme (Android)

After connect, AzeooSDK.shared exposes:

  • sdk.navigate(...) + back operations β€” typed navigation
  • sdk.setModuleContainer(...) β€” adaptive native UI coordination
  • sdk.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 Material BottomNavigationView
  • AzeooNavigationRailCoordinator β€” for Material NavigationRailView
  • AzeooNavComponentCoordinator β€” 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.

See also​