Prevent backing out from initial onboarding

This commit is contained in:
arkon 2023-12-17 18:30:43 -05:00
parent c62cd6e997
commit c10cd6c808

View file

@ -1,6 +1,8 @@
package eu.kanade.tachiyomi.ui.more
import androidx.activity.compose.BackHandler
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember
import cafe.adriel.voyager.navigator.LocalNavigator
import cafe.adriel.voyager.navigator.currentOrThrow
@ -8,6 +10,7 @@ import eu.kanade.domain.base.BasePreferences
import eu.kanade.presentation.more.onboarding.OnboardingScreen
import eu.kanade.presentation.util.Screen
import eu.kanade.tachiyomi.ui.setting.SettingsScreen
import tachiyomi.presentation.core.util.collectAsState
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
@ -18,14 +21,22 @@ class OnboardingScreen : Screen() {
val navigator = LocalNavigator.currentOrThrow
val basePreferences = remember { Injekt.get<BasePreferences>() }
val shownOnboardingFlow by basePreferences.shownOnboardingFlow().collectAsState()
val finishOnboarding = {
val finishOnboarding: () -> Unit = {
basePreferences.shownOnboardingFlow().set(true)
navigator.pop()
}
BackHandler(
enabled = !shownOnboardingFlow,
onBack = {
// Prevent exiting if onboarding hasn't been completed
},
)
OnboardingScreen(
onComplete = { finishOnboarding() },
onComplete = finishOnboarding,
onRestoreBackup = {
finishOnboarding()
navigator.push(SettingsScreen(SettingsScreen.Destination.DataAndStorage))