Skip to content

Commit cf6f7c5

Browse files
authored
Fixed dev UI preview (#10385)
The TachiyomiTheme introduced a dependency-injection construct that didn't exist at the time of rendering previews, so I've changed the preview function to use a preview version of the theme that uses declarative configuration over dependency injection
1 parent c6601c1 commit cf6f7c5

23 files changed

+79
-54
lines changed

‎app/src/main/java/eu/kanade/presentation/components/EmptyScreen.kt‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import androidx.compose.material.icons.outlined.Refresh
66
import androidx.compose.material3.Surface
77
import androidx.compose.runtime.Composable
88
import androidx.compose.ui.tooling.preview.PreviewLightDark
9-
import eu.kanade.presentation.theme.TachiyomiTheme
9+
import eu.kanade.presentation.theme.TachiyomiPreviewTheme
1010
import kotlinx.collections.immutable.persistentListOf
1111
import tachiyomi.i18n.MR
1212
import tachiyomi.presentation.core.screens.EmptyScreen
@@ -15,7 +15,7 @@ import tachiyomi.presentation.core.screens.EmptyScreenAction
1515
@PreviewLightDark
1616
@Composable
1717
private fun NoActionPreview() {
18-
TachiyomiTheme {
18+
TachiyomiPreviewTheme {
1919
Surface {
2020
EmptyScreen(
2121
stringRes = MR.strings.empty_screen,
@@ -27,7 +27,7 @@ private fun NoActionPreview() {
2727
@PreviewLightDark
2828
@Composable
2929
private fun WithActionPreview() {
30-
TachiyomiTheme {
30+
TachiyomiPreviewTheme {
3131
Surface {
3232
EmptyScreen(
3333
stringRes = MR.strings.empty_screen,

‎app/src/main/java/eu/kanade/presentation/crash/CrashScreen.kt‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import androidx.compose.ui.Modifier
1414
import androidx.compose.ui.draw.clip
1515
import androidx.compose.ui.platform.LocalContext
1616
import androidx.compose.ui.tooling.preview.PreviewLightDark
17-
import eu.kanade.presentation.theme.TachiyomiTheme
17+
import eu.kanade.presentation.theme.TachiyomiPreviewTheme
1818
import eu.kanade.tachiyomi.util.CrashLogUtil
1919
import kotlinx.coroutines.launch
2020
import tachiyomi.i18n.MR
@@ -63,7 +63,7 @@ fun CrashScreen(
6363
@PreviewLightDark
6464
@Composable
6565
private fun CrashScreenPreview() {
66-
TachiyomiTheme {
66+
TachiyomiPreviewTheme {
6767
CrashScreen(exception = RuntimeException("Dummy")) {}
6868
}
6969
}

‎app/src/main/java/eu/kanade/presentation/history/HistoryScreen.kt‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import eu.kanade.presentation.components.AppBarTitle
1717
import eu.kanade.presentation.components.SearchToolbar
1818
import eu.kanade.presentation.components.relativeDateText
1919
import eu.kanade.presentation.history.components.HistoryItem
20-
import eu.kanade.presentation.theme.TachiyomiTheme
20+
import eu.kanade.presentation.theme.TachiyomiPreviewTheme
2121
import eu.kanade.tachiyomi.ui.history.HistoryScreenModel
2222
import kotlinx.collections.immutable.persistentListOf
2323
import tachiyomi.domain.history.model.HistoryWithRelations
@@ -143,7 +143,7 @@ internal fun HistoryScreenPreviews(
143143
@PreviewParameter(HistoryScreenModelStateProvider::class)
144144
historyState: HistoryScreenModel.State,
145145
) {
146-
TachiyomiTheme {
146+
TachiyomiPreviewTheme {
147147
HistoryScreen(
148148
state = historyState,
149149
snackbarHostState = SnackbarHostState(),

‎app/src/main/java/eu/kanade/presentation/history/components/HistoryDialogs.kt‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import androidx.compose.runtime.mutableStateOf
1212
import androidx.compose.runtime.remember
1313
import androidx.compose.runtime.setValue
1414
import androidx.compose.ui.tooling.preview.PreviewLightDark
15-
import eu.kanade.presentation.theme.TachiyomiTheme
15+
import eu.kanade.presentation.theme.TachiyomiPreviewTheme
1616
import tachiyomi.i18n.MR
1717
import tachiyomi.presentation.core.components.LabeledCheckbox
1818
import tachiyomi.presentation.core.components.material.padding
@@ -91,7 +91,7 @@ fun HistoryDeleteAllDialog(
9191
@PreviewLightDark
9292
@Composable
9393
private fun HistoryDeleteDialogPreview() {
94-
TachiyomiTheme {
94+
TachiyomiPreviewTheme {
9595
HistoryDeleteDialog(
9696
onDismissRequest = {},
9797
onDelete = {},

‎app/src/main/java/eu/kanade/presentation/history/components/HistoryItem.kt‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import androidx.compose.ui.tooling.preview.PreviewLightDark
2323
import androidx.compose.ui.tooling.preview.PreviewParameter
2424
import androidx.compose.ui.unit.dp
2525
import eu.kanade.presentation.manga.components.MangaCover
26-
import eu.kanade.presentation.theme.TachiyomiTheme
26+
import eu.kanade.presentation.theme.TachiyomiPreviewTheme
2727
import eu.kanade.presentation.util.formatChapterNumber
2828
import eu.kanade.tachiyomi.util.lang.toTimestampString
2929
import tachiyomi.domain.history.model.HistoryWithRelations
@@ -98,7 +98,7 @@ private fun HistoryItemPreviews(
9898
@PreviewParameter(HistoryWithRelationsProvider::class)
9999
historyWithRelations: HistoryWithRelations,
100100
) {
101-
TachiyomiTheme {
101+
TachiyomiPreviewTheme {
102102
Surface {
103103
HistoryItem(
104104
history = historyWithRelations,

‎app/src/main/java/eu/kanade/presentation/library/components/LibraryBadges.kt‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import androidx.compose.material.icons.outlined.Folder
66
import androidx.compose.material3.MaterialTheme
77
import androidx.compose.runtime.Composable
88
import androidx.compose.ui.tooling.preview.PreviewLightDark
9-
import eu.kanade.presentation.theme.TachiyomiTheme
9+
import eu.kanade.presentation.theme.TachiyomiPreviewTheme
1010
import tachiyomi.presentation.core.components.Badge
1111

1212
@Composable
@@ -50,7 +50,7 @@ internal fun LanguageBadge(
5050
@PreviewLightDark
5151
@Composable
5252
private fun BadgePreview() {
53-
TachiyomiTheme {
53+
TachiyomiPreviewTheme {
5454
Column {
5555
DownloadsBadge(count = 10)
5656
UnreadBadge(count = 10)

‎app/src/main/java/eu/kanade/presentation/manga/components/MissingChapterCountListItem.kt‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import androidx.compose.runtime.Composable
1111
import androidx.compose.ui.Alignment
1212
import androidx.compose.ui.Modifier
1313
import androidx.compose.ui.tooling.preview.PreviewLightDark
14-
import eu.kanade.presentation.theme.TachiyomiTheme
14+
import eu.kanade.presentation.theme.TachiyomiPreviewTheme
1515
import tachiyomi.i18n.MR
1616
import tachiyomi.presentation.core.components.material.padding
1717
import tachiyomi.presentation.core.i18n.pluralStringResource
@@ -44,7 +44,7 @@ fun MissingChapterCountListItem(
4444
@PreviewLightDark
4545
@Composable
4646
private fun Preview() {
47-
TachiyomiTheme {
47+
TachiyomiPreviewTheme {
4848
Surface {
4949
MissingChapterCountListItem(count = 42)
5050
}

‎app/src/main/java/eu/kanade/presentation/more/NewUpdateScreen.kt‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import com.halilibo.richtext.markdown.Markdown
1919
import com.halilibo.richtext.ui.RichTextStyle
2020
import com.halilibo.richtext.ui.material3.RichText
2121
import com.halilibo.richtext.ui.string.RichTextStringStyle
22-
import eu.kanade.presentation.theme.TachiyomiTheme
22+
import eu.kanade.presentation.theme.TachiyomiPreviewTheme
2323
import tachiyomi.i18n.MR
2424
import tachiyomi.presentation.core.components.material.padding
2525
import tachiyomi.presentation.core.i18n.stringResource
@@ -69,7 +69,7 @@ fun NewUpdateScreen(
6969
@PreviewLightDark
7070
@Composable
7171
private fun NewUpdateScreenPreview() {
72-
TachiyomiTheme {
72+
TachiyomiPreviewTheme {
7373
NewUpdateScreen(
7474
versionName = "v0.99.9",
7575
changelogInfo = """

‎app/src/main/java/eu/kanade/presentation/more/onboarding/GuidesStep.kt‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import androidx.compose.ui.Modifier
1313
import androidx.compose.ui.platform.LocalUriHandler
1414
import androidx.compose.ui.tooling.preview.PreviewLightDark
1515
import androidx.compose.ui.unit.dp
16-
import eu.kanade.presentation.theme.TachiyomiTheme
16+
import eu.kanade.presentation.theme.TachiyomiPreviewTheme
1717
import tachiyomi.i18n.MR
1818
import tachiyomi.presentation.core.components.material.padding
1919
import tachiyomi.presentation.core.i18n.stringResource
@@ -61,7 +61,7 @@ const val GETTING_STARTED_URL = "https://tachiyomi.org/docs/guides/getting-start
6161
@PreviewLightDark
6262
@Composable
6363
private fun GuidesStepPreview() {
64-
TachiyomiTheme {
64+
TachiyomiPreviewTheme {
6565
GuidesStep(
6666
onRestoreBackup = {},
6767
).Content()

‎app/src/main/java/eu/kanade/presentation/more/settings/widget/AppThemePreferenceWidget.kt‎

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,15 +42,19 @@ import androidx.compose.ui.text.style.TextAlign
4242
import androidx.compose.ui.tooling.preview.PreviewLightDark
4343
import androidx.compose.ui.unit.dp
4444
import androidx.core.app.ActivityCompat
45+
import eu.kanade.domain.ui.UiPreferences
4546
import eu.kanade.domain.ui.model.AppTheme
4647
import eu.kanade.presentation.manga.components.MangaCover
4748
import eu.kanade.presentation.theme.TachiyomiTheme
4849
import eu.kanade.tachiyomi.util.system.DeviceUtil
4950
import eu.kanade.tachiyomi.util.system.isDynamicColorAvailable
51+
import tachiyomi.core.preference.InMemoryPreferenceStore
5052
import tachiyomi.i18n.MR
5153
import tachiyomi.presentation.core.components.material.padding
5254
import tachiyomi.presentation.core.i18n.stringResource
5355
import tachiyomi.presentation.core.util.secondaryItemAlpha
56+
import uy.kohesive.injekt.Injekt
57+
import uy.kohesive.injekt.api.fullType
5458

5559
@Composable
5660
internal fun AppThemePreferenceWidget(
@@ -258,7 +262,8 @@ fun AppThemePreviewItem(
258262
@Composable
259263
private fun AppThemesListPreview() {
260264
var appTheme by remember { mutableStateOf(AppTheme.DEFAULT) }
261-
TachiyomiTheme {
265+
Injekt.addSingleton(fullType<UiPreferences>(), UiPreferences(InMemoryPreferenceStore()))
266+
TachiyomiTheme(appTheme = appTheme) {
262267
Surface {
263268
AppThemesList(
264269
currentTheme = appTheme,

0 commit comments

Comments
 (0)