Track and manage user onboarding status for the Central Hub.
CentralHubOnboardingProvider helps track whether users have completed the Central Hub onboarding flow.
Use this to show tutorial screens or welcome messages to new users only once.
The onboarding status persists across app launches.
class OnboardingViewModel : ViewModel(), KoinComponent {
private val onboardingProvider:
CentralHubOnboardingProvider = get()
fun shouldShowOnboarding(): Boolean {
return !onboardingProvider.isOnboardingFinished()
}
fun completeOnboarding() {
onboardingProvider.setOnboardingFinished()
}
}Compose UI:
@Composable
fun CentralHubScreen(
viewModel: OnboardingViewModel = viewModel()
) {
var showOnboarding by remember {
mutableStateOf(viewModel.shouldShowOnboarding())
}
if (showOnboarding) {
OnboardingFlow(
onComplete = {
viewModel.completeOnboarding()
showOnboarding = false
}
)
} else {
CentralHubContent()
}
}