Prevent backing out from initial onboarding
This commit is contained in:
parent
c62cd6e997
commit
c10cd6c808
1 changed files with 13 additions and 2 deletions
|
@ -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))
|
||||
|
|
Reference in a new issue