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