From ba9e66f0eb770a6b7ddc01298604a15c4b50c1ea Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Wed, 3 Dec 2025 11:53:26 +0800 Subject: [PATCH] compose: onboarding: Switch to a simple enum class Signed-off-by: Aayush Gupta --- .../compose/ui/onboarding/OnboardingScreen.kt | 14 +++++----- .../ui/onboarding/navigation/ExtraScreen.kt | 27 ------------------- .../onboarding/navigation/OnboardingPage.kt | 11 ++++++++ 3 files changed, 18 insertions(+), 34 deletions(-) delete mode 100644 app/src/main/java/com/aurora/store/compose/ui/onboarding/navigation/ExtraScreen.kt create mode 100644 app/src/main/java/com/aurora/store/compose/ui/onboarding/navigation/OnboardingPage.kt diff --git a/app/src/main/java/com/aurora/store/compose/ui/onboarding/OnboardingScreen.kt b/app/src/main/java/com/aurora/store/compose/ui/onboarding/OnboardingScreen.kt index ea4104a01..0a8714169 100644 --- a/app/src/main/java/com/aurora/store/compose/ui/onboarding/OnboardingScreen.kt +++ b/app/src/main/java/com/aurora/store/compose/ui/onboarding/OnboardingScreen.kt @@ -30,15 +30,15 @@ import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel import com.aurora.store.R import com.aurora.store.compose.composable.PageIndicator import com.aurora.store.compose.preview.PreviewTemplate -import com.aurora.store.compose.ui.onboarding.navigation.ExtraScreen +import com.aurora.store.compose.ui.onboarding.navigation.OnboardingPage import com.aurora.store.viewmodel.onboarding.OnboardingViewModel import kotlinx.coroutines.launch @Composable fun OnboardingScreen(viewModel: OnboardingViewModel = hiltViewModel()) { val pages = listOfNotNull( - ExtraScreen.Welcome, - ExtraScreen.Permissions + OnboardingPage.WELCOME, + OnboardingPage.PERMISSIONS ) ScreenContent( @@ -49,7 +49,7 @@ fun OnboardingScreen(viewModel: OnboardingViewModel = hiltViewModel()) { @Composable private fun ScreenContent( - pages: List = emptyList(), + pages: List = emptyList(), onFinishOnboarding: () -> Unit = {} ) { val pagerState = rememberPagerState { pages.size } @@ -80,8 +80,8 @@ private fun ScreenContent( verticalAlignment = Alignment.Top ) { page -> when (pages[page]) { - ExtraScreen.Welcome -> WelcomePage() - ExtraScreen.Permissions -> PermissionsPage() + OnboardingPage.WELCOME -> WelcomePage() + OnboardingPage.PERMISSIONS -> PermissionsPage() } } @@ -146,7 +146,7 @@ private fun ScreenContent( private fun OnboardingScreenPreview() { PreviewTemplate { ScreenContent( - pages = listOf(ExtraScreen.Welcome, ExtraScreen.Permissions) + pages = listOf(OnboardingPage.WELCOME, OnboardingPage.PERMISSIONS) ) } } diff --git a/app/src/main/java/com/aurora/store/compose/ui/onboarding/navigation/ExtraScreen.kt b/app/src/main/java/com/aurora/store/compose/ui/onboarding/navigation/ExtraScreen.kt deleted file mode 100644 index 3b4406716..000000000 --- a/app/src/main/java/com/aurora/store/compose/ui/onboarding/navigation/ExtraScreen.kt +++ /dev/null @@ -1,27 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2025 The Calyx Institute - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -package com.aurora.store.compose.ui.onboarding.navigation - -import android.os.Parcelable -import androidx.navigation3.runtime.NavKey -import kotlinx.parcelize.Parcelize -import kotlinx.serialization.Serializable - -/** - * Extra destinations for onboarding - * - * All of these destinations are child destinations of onboarding screen are shown inside it. - */ -@Parcelize -@Serializable -sealed class ExtraScreen : NavKey, Parcelable { - - @Serializable - data object Welcome : ExtraScreen() - - @Serializable - data object Permissions : ExtraScreen() -} diff --git a/app/src/main/java/com/aurora/store/compose/ui/onboarding/navigation/OnboardingPage.kt b/app/src/main/java/com/aurora/store/compose/ui/onboarding/navigation/OnboardingPage.kt new file mode 100644 index 000000000..26779529a --- /dev/null +++ b/app/src/main/java/com/aurora/store/compose/ui/onboarding/navigation/OnboardingPage.kt @@ -0,0 +1,11 @@ +/* + * SPDX-FileCopyrightText: 2025 Aurora OSS + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +package com.aurora.store.compose.ui.onboarding.navigation + +enum class OnboardingPage { + WELCOME, + PERMISSIONS, +}