More onboarding screen additions 2: Electric Boogaloo

(cherry picked from commit f7c5b4243533374f6751055fd4bc037e022db8a8)

# Conflicts:
#	app/build.gradle.kts
This commit is contained in:
arkon
2023-12-09 18:20:58 -05:00
committed by Jobobby04
parent 40f8910cbe
commit 314eb0a02e
6 changed files with 49 additions and 19 deletions
@@ -6,11 +6,14 @@ import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Button
import androidx.compose.material3.HorizontalDivider
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalUriHandler
import androidx.compose.ui.tooling.preview.PreviewLightDark
import androidx.compose.ui.unit.dp
import eu.kanade.presentation.theme.TachiyomiTheme
import tachiyomi.i18n.MR
import tachiyomi.presentation.core.i18n.stringResource
@@ -32,7 +35,9 @@ internal fun GuidesStep(
Text(stringResource(MR.strings.getting_started_guide))
}
HorizontalDivider()
HorizontalDivider(
color = MaterialTheme.colorScheme.onPrimaryContainer,
)
Text(stringResource(MR.strings.onboarding_guides_returning_user, stringResource(MR.strings.app_name)))
Button(
@@ -45,3 +50,13 @@ internal fun GuidesStep(
}
const val GETTING_STARTED_URL = "https://tachiyomi.org/docs/guides/getting-started"
@PreviewLightDark
@Composable
private fun GuidesStepPreview() {
TachiyomiTheme {
GuidesStep(
onRestoreBackup = {},
)
}
}
@@ -16,7 +16,9 @@ import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.platform.LocalContext
import eu.kanade.domain.ui.UiPreferences
import eu.kanade.tachiyomi.util.system.toast
import soup.compose.material.motion.animation.materialSharedAxisX
import soup.compose.material.motion.animation.rememberSlideDistance
import tachiyomi.domain.storage.service.StoragePreferences
@@ -32,16 +34,20 @@ fun OnboardingScreen(
onComplete: () -> Unit,
onRestoreBackup: () -> Unit,
) {
var currentStep by remember { mutableIntStateOf(0) }
val steps: List<@Composable () -> Unit> = listOf(
{ ThemeStep(uiPreferences = uiPreferences) },
{ StorageStep(storagePref = storagePreferences.baseStorageDirectory()) },
// TODO: prompt for notification permissions when bumping target to Android 13
{ GuidesStep(onRestoreBackup = onRestoreBackup) },
)
val isLastStep = currentStep == steps.size - 1
val context = LocalContext.current
val slideDistance = rememberSlideDistance()
var currentStep by remember { mutableIntStateOf(0) }
val steps: List<@Composable () -> Unit> = remember {
listOf(
{ ThemeStep(uiPreferences = uiPreferences) },
{ StorageStep(storagePref = storagePreferences.baseStorageDirectory()) },
// TODO: prompt for notification permissions when bumping target to Android 13
{ GuidesStep(onRestoreBackup = onRestoreBackup) },
)
}
val isLastStep = currentStep == steps.size - 1
BackHandler(enabled = currentStep != 0, onBack = { currentStep-- })
InfoScreen(
@@ -56,10 +62,15 @@ fun OnboardingScreen(
},
),
onAcceptClick = {
if (!isLastStep) {
currentStep++
} else {
if (isLastStep) {
onComplete()
} else {
// TODO: this is kind of janky
if (currentStep == 1 && !storagePreferences.baseStorageDirectory().isSet()) {
context.toast(MR.strings.onboarding_storage_selection_required)
} else {
currentStep++
}
}
},
rejectText = stringResource(MR.strings.onboarding_action_skip),
@@ -399,7 +399,12 @@ object Migrations {
newKey = { Preference.privateKey(it) },
)
}
if (oldVersion < 110) {
if (oldVersion < 111) {
File(context.cacheDir, "dl_index_cache")
.takeIf { it.exists() }
?.delete()
}
if (oldVersion < 112) {
val prefsToReplace = listOf(
"pref_download_only",
"incognito_mode",
@@ -412,6 +417,7 @@ object Migrations {
"last_app_check",
"last_ext_check",
"last_version_code",
"storage_dir",
)
replacePreferences(
preferenceStore = preferenceStore,
@@ -419,11 +425,6 @@ object Migrations {
newKey = { Preference.appStateKey(it) },
)
}
if (oldVersion < 111) {
File(context.cacheDir, "dl_index_cache")
.takeIf { it.exists() }
?.delete()
}
return true
}
+1
View File
@@ -636,6 +636,7 @@ object EXHMigrations {
"last_version_code",
"skip_pre_migration",
"eh_auto_update_stats",
"storage_dir",
)
replacePreferences(
preferenceStore = preferenceStore,