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
This commit is contained in:
Caleb Morris 2024-01-11 16:22:21 -07:00 committed by GitHub
parent c6601c1f94
commit cf6f7c521c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
23 changed files with 79 additions and 54 deletions

View File

@ -6,7 +6,7 @@ import androidx.compose.material.icons.outlined.Refresh
import androidx.compose.material3.Surface import androidx.compose.material3.Surface
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.tooling.preview.PreviewLightDark import androidx.compose.ui.tooling.preview.PreviewLightDark
import eu.kanade.presentation.theme.TachiyomiTheme import eu.kanade.presentation.theme.TachiyomiPreviewTheme
import kotlinx.collections.immutable.persistentListOf import kotlinx.collections.immutable.persistentListOf
import tachiyomi.i18n.MR import tachiyomi.i18n.MR
import tachiyomi.presentation.core.screens.EmptyScreen import tachiyomi.presentation.core.screens.EmptyScreen
@ -15,7 +15,7 @@ import tachiyomi.presentation.core.screens.EmptyScreenAction
@PreviewLightDark @PreviewLightDark
@Composable @Composable
private fun NoActionPreview() { private fun NoActionPreview() {
TachiyomiTheme { TachiyomiPreviewTheme {
Surface { Surface {
EmptyScreen( EmptyScreen(
stringRes = MR.strings.empty_screen, stringRes = MR.strings.empty_screen,
@ -27,7 +27,7 @@ private fun NoActionPreview() {
@PreviewLightDark @PreviewLightDark
@Composable @Composable
private fun WithActionPreview() { private fun WithActionPreview() {
TachiyomiTheme { TachiyomiPreviewTheme {
Surface { Surface {
EmptyScreen( EmptyScreen(
stringRes = MR.strings.empty_screen, stringRes = MR.strings.empty_screen,

View File

@ -14,7 +14,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.clip
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.tooling.preview.PreviewLightDark import androidx.compose.ui.tooling.preview.PreviewLightDark
import eu.kanade.presentation.theme.TachiyomiTheme import eu.kanade.presentation.theme.TachiyomiPreviewTheme
import eu.kanade.tachiyomi.util.CrashLogUtil import eu.kanade.tachiyomi.util.CrashLogUtil
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import tachiyomi.i18n.MR import tachiyomi.i18n.MR
@ -63,7 +63,7 @@ fun CrashScreen(
@PreviewLightDark @PreviewLightDark
@Composable @Composable
private fun CrashScreenPreview() { private fun CrashScreenPreview() {
TachiyomiTheme { TachiyomiPreviewTheme {
CrashScreen(exception = RuntimeException("Dummy")) {} CrashScreen(exception = RuntimeException("Dummy")) {}
} }
} }

View File

@ -17,7 +17,7 @@ import eu.kanade.presentation.components.AppBarTitle
import eu.kanade.presentation.components.SearchToolbar import eu.kanade.presentation.components.SearchToolbar
import eu.kanade.presentation.components.relativeDateText import eu.kanade.presentation.components.relativeDateText
import eu.kanade.presentation.history.components.HistoryItem import eu.kanade.presentation.history.components.HistoryItem
import eu.kanade.presentation.theme.TachiyomiTheme import eu.kanade.presentation.theme.TachiyomiPreviewTheme
import eu.kanade.tachiyomi.ui.history.HistoryScreenModel import eu.kanade.tachiyomi.ui.history.HistoryScreenModel
import kotlinx.collections.immutable.persistentListOf import kotlinx.collections.immutable.persistentListOf
import tachiyomi.domain.history.model.HistoryWithRelations import tachiyomi.domain.history.model.HistoryWithRelations
@ -143,7 +143,7 @@ internal fun HistoryScreenPreviews(
@PreviewParameter(HistoryScreenModelStateProvider::class) @PreviewParameter(HistoryScreenModelStateProvider::class)
historyState: HistoryScreenModel.State, historyState: HistoryScreenModel.State,
) { ) {
TachiyomiTheme { TachiyomiPreviewTheme {
HistoryScreen( HistoryScreen(
state = historyState, state = historyState,
snackbarHostState = SnackbarHostState(), snackbarHostState = SnackbarHostState(),

View File

@ -12,7 +12,7 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue import androidx.compose.runtime.setValue
import androidx.compose.ui.tooling.preview.PreviewLightDark import androidx.compose.ui.tooling.preview.PreviewLightDark
import eu.kanade.presentation.theme.TachiyomiTheme import eu.kanade.presentation.theme.TachiyomiPreviewTheme
import tachiyomi.i18n.MR import tachiyomi.i18n.MR
import tachiyomi.presentation.core.components.LabeledCheckbox import tachiyomi.presentation.core.components.LabeledCheckbox
import tachiyomi.presentation.core.components.material.padding import tachiyomi.presentation.core.components.material.padding
@ -91,7 +91,7 @@ fun HistoryDeleteAllDialog(
@PreviewLightDark @PreviewLightDark
@Composable @Composable
private fun HistoryDeleteDialogPreview() { private fun HistoryDeleteDialogPreview() {
TachiyomiTheme { TachiyomiPreviewTheme {
HistoryDeleteDialog( HistoryDeleteDialog(
onDismissRequest = {}, onDismissRequest = {},
onDelete = {}, onDelete = {},

View File

@ -23,7 +23,7 @@ import androidx.compose.ui.tooling.preview.PreviewLightDark
import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import eu.kanade.presentation.manga.components.MangaCover import eu.kanade.presentation.manga.components.MangaCover
import eu.kanade.presentation.theme.TachiyomiTheme import eu.kanade.presentation.theme.TachiyomiPreviewTheme
import eu.kanade.presentation.util.formatChapterNumber import eu.kanade.presentation.util.formatChapterNumber
import eu.kanade.tachiyomi.util.lang.toTimestampString import eu.kanade.tachiyomi.util.lang.toTimestampString
import tachiyomi.domain.history.model.HistoryWithRelations import tachiyomi.domain.history.model.HistoryWithRelations
@ -98,7 +98,7 @@ private fun HistoryItemPreviews(
@PreviewParameter(HistoryWithRelationsProvider::class) @PreviewParameter(HistoryWithRelationsProvider::class)
historyWithRelations: HistoryWithRelations, historyWithRelations: HistoryWithRelations,
) { ) {
TachiyomiTheme { TachiyomiPreviewTheme {
Surface { Surface {
HistoryItem( HistoryItem(
history = historyWithRelations, history = historyWithRelations,

View File

@ -6,7 +6,7 @@ import androidx.compose.material.icons.outlined.Folder
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.tooling.preview.PreviewLightDark import androidx.compose.ui.tooling.preview.PreviewLightDark
import eu.kanade.presentation.theme.TachiyomiTheme import eu.kanade.presentation.theme.TachiyomiPreviewTheme
import tachiyomi.presentation.core.components.Badge import tachiyomi.presentation.core.components.Badge
@Composable @Composable
@ -50,7 +50,7 @@ internal fun LanguageBadge(
@PreviewLightDark @PreviewLightDark
@Composable @Composable
private fun BadgePreview() { private fun BadgePreview() {
TachiyomiTheme { TachiyomiPreviewTheme {
Column { Column {
DownloadsBadge(count = 10) DownloadsBadge(count = 10)
UnreadBadge(count = 10) UnreadBadge(count = 10)

View File

@ -11,7 +11,7 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.PreviewLightDark import androidx.compose.ui.tooling.preview.PreviewLightDark
import eu.kanade.presentation.theme.TachiyomiTheme import eu.kanade.presentation.theme.TachiyomiPreviewTheme
import tachiyomi.i18n.MR import tachiyomi.i18n.MR
import tachiyomi.presentation.core.components.material.padding import tachiyomi.presentation.core.components.material.padding
import tachiyomi.presentation.core.i18n.pluralStringResource import tachiyomi.presentation.core.i18n.pluralStringResource
@ -44,7 +44,7 @@ fun MissingChapterCountListItem(
@PreviewLightDark @PreviewLightDark
@Composable @Composable
private fun Preview() { private fun Preview() {
TachiyomiTheme { TachiyomiPreviewTheme {
Surface { Surface {
MissingChapterCountListItem(count = 42) MissingChapterCountListItem(count = 42)
} }

View File

@ -19,7 +19,7 @@ import com.halilibo.richtext.markdown.Markdown
import com.halilibo.richtext.ui.RichTextStyle import com.halilibo.richtext.ui.RichTextStyle
import com.halilibo.richtext.ui.material3.RichText import com.halilibo.richtext.ui.material3.RichText
import com.halilibo.richtext.ui.string.RichTextStringStyle import com.halilibo.richtext.ui.string.RichTextStringStyle
import eu.kanade.presentation.theme.TachiyomiTheme import eu.kanade.presentation.theme.TachiyomiPreviewTheme
import tachiyomi.i18n.MR import tachiyomi.i18n.MR
import tachiyomi.presentation.core.components.material.padding import tachiyomi.presentation.core.components.material.padding
import tachiyomi.presentation.core.i18n.stringResource import tachiyomi.presentation.core.i18n.stringResource
@ -69,7 +69,7 @@ fun NewUpdateScreen(
@PreviewLightDark @PreviewLightDark
@Composable @Composable
private fun NewUpdateScreenPreview() { private fun NewUpdateScreenPreview() {
TachiyomiTheme { TachiyomiPreviewTheme {
NewUpdateScreen( NewUpdateScreen(
versionName = "v0.99.9", versionName = "v0.99.9",
changelogInfo = """ changelogInfo = """

View File

@ -13,7 +13,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.platform.LocalUriHandler
import androidx.compose.ui.tooling.preview.PreviewLightDark import androidx.compose.ui.tooling.preview.PreviewLightDark
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import eu.kanade.presentation.theme.TachiyomiTheme import eu.kanade.presentation.theme.TachiyomiPreviewTheme
import tachiyomi.i18n.MR import tachiyomi.i18n.MR
import tachiyomi.presentation.core.components.material.padding import tachiyomi.presentation.core.components.material.padding
import tachiyomi.presentation.core.i18n.stringResource import tachiyomi.presentation.core.i18n.stringResource
@ -61,7 +61,7 @@ const val GETTING_STARTED_URL = "https://tachiyomi.org/docs/guides/getting-start
@PreviewLightDark @PreviewLightDark
@Composable @Composable
private fun GuidesStepPreview() { private fun GuidesStepPreview() {
TachiyomiTheme { TachiyomiPreviewTheme {
GuidesStep( GuidesStep(
onRestoreBackup = {}, onRestoreBackup = {},
).Content() ).Content()

View File

@ -42,15 +42,19 @@ import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.PreviewLightDark import androidx.compose.ui.tooling.preview.PreviewLightDark
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.core.app.ActivityCompat import androidx.core.app.ActivityCompat
import eu.kanade.domain.ui.UiPreferences
import eu.kanade.domain.ui.model.AppTheme import eu.kanade.domain.ui.model.AppTheme
import eu.kanade.presentation.manga.components.MangaCover import eu.kanade.presentation.manga.components.MangaCover
import eu.kanade.presentation.theme.TachiyomiTheme import eu.kanade.presentation.theme.TachiyomiTheme
import eu.kanade.tachiyomi.util.system.DeviceUtil import eu.kanade.tachiyomi.util.system.DeviceUtil
import eu.kanade.tachiyomi.util.system.isDynamicColorAvailable import eu.kanade.tachiyomi.util.system.isDynamicColorAvailable
import tachiyomi.core.preference.InMemoryPreferenceStore
import tachiyomi.i18n.MR import tachiyomi.i18n.MR
import tachiyomi.presentation.core.components.material.padding import tachiyomi.presentation.core.components.material.padding
import tachiyomi.presentation.core.i18n.stringResource import tachiyomi.presentation.core.i18n.stringResource
import tachiyomi.presentation.core.util.secondaryItemAlpha import tachiyomi.presentation.core.util.secondaryItemAlpha
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.fullType
@Composable @Composable
internal fun AppThemePreferenceWidget( internal fun AppThemePreferenceWidget(
@ -258,7 +262,8 @@ fun AppThemePreviewItem(
@Composable @Composable
private fun AppThemesListPreview() { private fun AppThemesListPreview() {
var appTheme by remember { mutableStateOf(AppTheme.DEFAULT) } var appTheme by remember { mutableStateOf(AppTheme.DEFAULT) }
TachiyomiTheme { Injekt.addSingleton(fullType<UiPreferences>(), UiPreferences(InMemoryPreferenceStore()))
TachiyomiTheme(appTheme = appTheme) {
Surface { Surface {
AppThemesList( AppThemesList(
currentTheme = appTheme, currentTheme = appTheme,

View File

@ -12,7 +12,7 @@ import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.PreviewLightDark import androidx.compose.ui.tooling.preview.PreviewLightDark
import eu.kanade.presentation.theme.TachiyomiTheme import eu.kanade.presentation.theme.TachiyomiPreviewTheme
import tachiyomi.i18n.MR import tachiyomi.i18n.MR
import tachiyomi.presentation.core.components.material.padding import tachiyomi.presentation.core.components.material.padding
import tachiyomi.presentation.core.i18n.stringResource import tachiyomi.presentation.core.i18n.stringResource
@ -43,7 +43,7 @@ internal fun InfoWidget(text: String) {
@PreviewLightDark @PreviewLightDark
@Composable @Composable
private fun InfoWidgetPreview() { private fun InfoWidgetPreview() {
TachiyomiTheme { TachiyomiPreviewTheme {
Surface { Surface {
InfoWidget(text = stringResource(MR.strings.download_ahead_info)) InfoWidget(text = stringResource(MR.strings.download_ahead_info))
} }

View File

@ -10,7 +10,7 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.tooling.preview.PreviewLightDark import androidx.compose.ui.tooling.preview.PreviewLightDark
import eu.kanade.presentation.theme.TachiyomiTheme import eu.kanade.presentation.theme.TachiyomiPreviewTheme
@Composable @Composable
fun SwitchPreferenceWidget( fun SwitchPreferenceWidget(
@ -40,7 +40,7 @@ fun SwitchPreferenceWidget(
@PreviewLightDark @PreviewLightDark
@Composable @Composable
private fun SwitchPreferenceWidgetPreview() { private fun SwitchPreferenceWidgetPreview() {
TachiyomiTheme { TachiyomiPreviewTheme {
Surface { Surface {
Column { Column {
SwitchPreferenceWidget( SwitchPreferenceWidget(

View File

@ -13,7 +13,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.tooling.preview.PreviewLightDark import androidx.compose.ui.tooling.preview.PreviewLightDark
import eu.kanade.presentation.theme.TachiyomiTheme import eu.kanade.presentation.theme.TachiyomiPreviewTheme
import tachiyomi.presentation.core.util.secondaryItemAlpha import tachiyomi.presentation.core.util.secondaryItemAlpha
@Composable @Composable
@ -62,7 +62,7 @@ fun TextPreferenceWidget(
@PreviewLightDark @PreviewLightDark
@Composable @Composable
private fun TextPreferenceWidgetPreview() { private fun TextPreferenceWidgetPreview() {
TachiyomiTheme { TachiyomiPreviewTheme {
Surface { Surface {
Column { Column {
TextPreferenceWidget( TextPreferenceWidget(

View File

@ -33,7 +33,7 @@ import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.tooling.preview.PreviewLightDark import androidx.compose.ui.tooling.preview.PreviewLightDark
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import eu.kanade.presentation.theme.TachiyomiTheme import eu.kanade.presentation.theme.TachiyomiPreviewTheme
import eu.kanade.tachiyomi.data.database.models.toDomainChapter import eu.kanade.tachiyomi.data.database.models.toDomainChapter
import eu.kanade.tachiyomi.ui.reader.model.ChapterTransition import eu.kanade.tachiyomi.ui.reader.model.ChapterTransition
import eu.kanade.tachiyomi.ui.reader.model.ReaderChapter import eu.kanade.tachiyomi.ui.reader.model.ReaderChapter
@ -306,7 +306,7 @@ private val FakeChapterLongTitle = previewChapter(
@PreviewLightDark @PreviewLightDark
@Composable @Composable
private fun TransitionTextPreview() { private fun TransitionTextPreview() {
TachiyomiTheme { TachiyomiPreviewTheme {
Surface(modifier = Modifier.padding(48.dp)) { Surface(modifier = Modifier.padding(48.dp)) {
ChapterTransition( ChapterTransition(
transition = ChapterTransition.Next(ReaderChapter(FakeChapter), ReaderChapter(FakeChapter)), transition = ChapterTransition.Next(ReaderChapter(FakeChapter), ReaderChapter(FakeChapter)),
@ -320,7 +320,7 @@ private fun TransitionTextPreview() {
@PreviewLightDark @PreviewLightDark
@Composable @Composable
private fun TransitionTextLongTitlePreview() { private fun TransitionTextLongTitlePreview() {
TachiyomiTheme { TachiyomiPreviewTheme {
Surface(modifier = Modifier.padding(48.dp)) { Surface(modifier = Modifier.padding(48.dp)) {
ChapterTransition( ChapterTransition(
transition = ChapterTransition.Next(ReaderChapter(FakeChapterLongTitle), ReaderChapter(FakeChapter)), transition = ChapterTransition.Next(ReaderChapter(FakeChapterLongTitle), ReaderChapter(FakeChapter)),
@ -334,7 +334,7 @@ private fun TransitionTextLongTitlePreview() {
@PreviewLightDark @PreviewLightDark
@Composable @Composable
private fun TransitionTextWithGapPreview() { private fun TransitionTextWithGapPreview() {
TachiyomiTheme { TachiyomiPreviewTheme {
Surface(modifier = Modifier.padding(48.dp)) { Surface(modifier = Modifier.padding(48.dp)) {
ChapterTransition( ChapterTransition(
transition = ChapterTransition.Next(ReaderChapter(FakeChapter), ReaderChapter(FakeGapChapter)), transition = ChapterTransition.Next(ReaderChapter(FakeChapter), ReaderChapter(FakeGapChapter)),
@ -348,7 +348,7 @@ private fun TransitionTextWithGapPreview() {
@PreviewLightDark @PreviewLightDark
@Composable @Composable
private fun TransitionTextNoNextPreview() { private fun TransitionTextNoNextPreview() {
TachiyomiTheme { TachiyomiPreviewTheme {
Surface(modifier = Modifier.padding(48.dp)) { Surface(modifier = Modifier.padding(48.dp)) {
ChapterTransition( ChapterTransition(
transition = ChapterTransition.Next(ReaderChapter(FakeChapter), null), transition = ChapterTransition.Next(ReaderChapter(FakeChapter), null),
@ -362,7 +362,7 @@ private fun TransitionTextNoNextPreview() {
@PreviewLightDark @PreviewLightDark
@Composable @Composable
private fun TransitionTextNoPreviousPreview() { private fun TransitionTextNoPreviousPreview() {
TachiyomiTheme { TachiyomiPreviewTheme {
Surface(modifier = Modifier.padding(48.dp)) { Surface(modifier = Modifier.padding(48.dp)) {
ChapterTransition( ChapterTransition(
transition = ChapterTransition.Prev(ReaderChapter(FakeChapter), null), transition = ChapterTransition.Prev(ReaderChapter(FakeChapter), null),

View File

@ -16,7 +16,7 @@ import dev.icerock.moko.resources.StringResource
import eu.kanade.domain.manga.model.readerOrientation import eu.kanade.domain.manga.model.readerOrientation
import eu.kanade.presentation.components.AdaptiveSheet import eu.kanade.presentation.components.AdaptiveSheet
import eu.kanade.presentation.reader.components.ModeSelectionDialog import eu.kanade.presentation.reader.components.ModeSelectionDialog
import eu.kanade.presentation.theme.TachiyomiTheme import eu.kanade.presentation.theme.TachiyomiPreviewTheme
import eu.kanade.tachiyomi.ui.reader.setting.ReaderOrientation import eu.kanade.tachiyomi.ui.reader.setting.ReaderOrientation
import eu.kanade.tachiyomi.ui.reader.setting.ReaderSettingsScreenModel import eu.kanade.tachiyomi.ui.reader.setting.ReaderSettingsScreenModel
import tachiyomi.i18n.MR import tachiyomi.i18n.MR
@ -81,7 +81,7 @@ private fun DialogContent(
@PreviewLightDark @PreviewLightDark
@Composable @Composable
private fun DialogContentPreview() { private fun DialogContentPreview() {
TachiyomiTheme { TachiyomiPreviewTheme {
Surface { Surface {
Column { Column {
DialogContent( DialogContent(

View File

@ -12,7 +12,7 @@ import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.tooling.preview.PreviewLightDark import androidx.compose.ui.tooling.preview.PreviewLightDark
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import eu.kanade.presentation.theme.TachiyomiTheme import eu.kanade.presentation.theme.TachiyomiPreviewTheme
@Composable @Composable
fun PageIndicatorText( fun PageIndicatorText(
@ -51,7 +51,7 @@ fun PageIndicatorText(
@PreviewLightDark @PreviewLightDark
@Composable @Composable
private fun PageIndicatorTextPreview() { private fun PageIndicatorTextPreview() {
TachiyomiTheme { TachiyomiPreviewTheme {
Surface { Surface {
PageIndicatorText(currentPage = 10, totalPages = 69) PageIndicatorText(currentPage = 10, totalPages = 69)
} }

View File

@ -18,7 +18,7 @@ import dev.icerock.moko.resources.StringResource
import eu.kanade.domain.manga.model.readingMode import eu.kanade.domain.manga.model.readingMode
import eu.kanade.presentation.components.AdaptiveSheet import eu.kanade.presentation.components.AdaptiveSheet
import eu.kanade.presentation.reader.components.ModeSelectionDialog import eu.kanade.presentation.reader.components.ModeSelectionDialog
import eu.kanade.presentation.theme.TachiyomiTheme import eu.kanade.presentation.theme.TachiyomiPreviewTheme
import eu.kanade.tachiyomi.ui.reader.setting.ReaderSettingsScreenModel import eu.kanade.tachiyomi.ui.reader.setting.ReaderSettingsScreenModel
import eu.kanade.tachiyomi.ui.reader.setting.ReadingMode import eu.kanade.tachiyomi.ui.reader.setting.ReadingMode
import tachiyomi.i18n.MR import tachiyomi.i18n.MR
@ -79,7 +79,7 @@ private fun DialogContent(
@PreviewLightDark @PreviewLightDark
@Composable @Composable
private fun DialogContentPreview() { private fun DialogContentPreview() {
TachiyomiTheme { TachiyomiPreviewTheme {
Surface { Surface {
Column { Column {
DialogContent( DialogContent(

View File

@ -19,7 +19,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.PreviewLightDark import androidx.compose.ui.tooling.preview.PreviewLightDark
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import eu.kanade.presentation.theme.TachiyomiTheme import eu.kanade.presentation.theme.TachiyomiPreviewTheme
import tachiyomi.i18n.MR import tachiyomi.i18n.MR
import tachiyomi.presentation.core.components.SettingsItemsPaddings import tachiyomi.presentation.core.components.SettingsItemsPaddings
import tachiyomi.presentation.core.components.material.padding import tachiyomi.presentation.core.components.material.padding
@ -70,7 +70,7 @@ fun ModeSelectionDialog(
@PreviewLightDark @PreviewLightDark
@Composable @Composable
private fun Preview() { private fun Preview() {
TachiyomiTheme { TachiyomiPreviewTheme {
Surface { Surface {
Column { Column {
ModeSelectionDialog( ModeSelectionDialog(

View File

@ -28,9 +28,30 @@ fun TachiyomiTheme(
appTheme: AppTheme? = null, appTheme: AppTheme? = null,
amoled: Boolean? = null, amoled: Boolean? = null,
content: @Composable () -> Unit, content: @Composable () -> Unit,
) {
val uiPreferences = Injekt.get<UiPreferences>()
BaseTachiyomiTheme(
appTheme = appTheme ?: uiPreferences.appTheme().get(),
isAmoled = amoled ?: uiPreferences.themeDarkAmoled().get(),
content = content,
)
}
@Composable
fun TachiyomiPreviewTheme(
appTheme: AppTheme = AppTheme.DEFAULT,
isAmoled: Boolean = false,
content: @Composable () -> Unit,
) = BaseTachiyomiTheme(appTheme, isAmoled, content)
@Composable
private fun BaseTachiyomiTheme(
appTheme: AppTheme,
isAmoled: Boolean,
content: @Composable () -> Unit,
) { ) {
MaterialTheme( MaterialTheme(
colorScheme = getThemeColorScheme(appTheme, amoled), colorScheme = getThemeColorScheme(appTheme, isAmoled),
content = content, content = content,
) )
} }
@ -38,11 +59,10 @@ fun TachiyomiTheme(
@Composable @Composable
@ReadOnlyComposable @ReadOnlyComposable
private fun getThemeColorScheme( private fun getThemeColorScheme(
appTheme: AppTheme?, appTheme: AppTheme,
amoled: Boolean?, isAmoled: Boolean,
): ColorScheme { ): ColorScheme {
val uiPreferences = Injekt.get<UiPreferences>() val colorScheme = when (appTheme) {
val colorScheme = when (appTheme ?: uiPreferences.appTheme().get()) {
AppTheme.DEFAULT -> TachiyomiColorScheme AppTheme.DEFAULT -> TachiyomiColorScheme
AppTheme.MONET -> MonetColorScheme(LocalContext.current) AppTheme.MONET -> MonetColorScheme(LocalContext.current)
AppTheme.GREEN_APPLE -> GreenAppleColorScheme AppTheme.GREEN_APPLE -> GreenAppleColorScheme
@ -59,6 +79,6 @@ private fun getThemeColorScheme(
} }
return colorScheme.getColorScheme( return colorScheme.getColorScheme(
isSystemInDarkTheme(), isSystemInDarkTheme(),
amoled ?: uiPreferences.themeDarkAmoled().get(), isAmoled,
) )
} }

View File

@ -48,7 +48,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import dev.icerock.moko.resources.StringResource import dev.icerock.moko.resources.StringResource
import eu.kanade.presentation.components.DropdownMenu import eu.kanade.presentation.components.DropdownMenu
import eu.kanade.presentation.theme.TachiyomiTheme import eu.kanade.presentation.theme.TachiyomiPreviewTheme
import eu.kanade.presentation.track.components.TrackLogoIcon import eu.kanade.presentation.track.components.TrackLogoIcon
import eu.kanade.tachiyomi.data.track.Tracker import eu.kanade.tachiyomi.data.track.Tracker
import eu.kanade.tachiyomi.ui.manga.track.TrackItem import eu.kanade.tachiyomi.ui.manga.track.TrackItem
@ -323,7 +323,7 @@ private fun TrackInfoDialogHomePreviews(
@PreviewParameter(TrackInfoDialogHomePreviewProvider::class) @PreviewParameter(TrackInfoDialogHomePreviewProvider::class)
content: @Composable () -> Unit, content: @Composable () -> Unit,
) { ) {
TachiyomiTheme { TachiyomiPreviewTheme {
Surface { Surface {
content() content()
} }

View File

@ -32,7 +32,7 @@ import androidx.compose.ui.draw.clip
import androidx.compose.ui.tooling.preview.PreviewLightDark import androidx.compose.ui.tooling.preview.PreviewLightDark
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import dev.icerock.moko.resources.StringResource import dev.icerock.moko.resources.StringResource
import eu.kanade.presentation.theme.TachiyomiTheme import eu.kanade.presentation.theme.TachiyomiPreviewTheme
import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.ImmutableList
import kotlinx.collections.immutable.persistentMapOf import kotlinx.collections.immutable.persistentMapOf
import kotlinx.collections.immutable.toImmutableList import kotlinx.collections.immutable.toImmutableList
@ -229,7 +229,7 @@ private fun BaseSelector(
@PreviewLightDark @PreviewLightDark
@Composable @Composable
private fun TrackStatusSelectorPreviews() { private fun TrackStatusSelectorPreviews() {
TachiyomiTheme { TachiyomiPreviewTheme {
Surface { Surface {
TrackStatusSelector( TrackStatusSelector(
selection = 1, selection = 1,

View File

@ -68,7 +68,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import eu.kanade.presentation.components.DropdownMenu import eu.kanade.presentation.components.DropdownMenu
import eu.kanade.presentation.manga.components.MangaCover import eu.kanade.presentation.manga.components.MangaCover
import eu.kanade.presentation.theme.TachiyomiTheme import eu.kanade.presentation.theme.TachiyomiPreviewTheme
import eu.kanade.tachiyomi.data.track.model.TrackSearch import eu.kanade.tachiyomi.data.track.model.TrackSearch
import eu.kanade.tachiyomi.util.system.openInBrowser import eu.kanade.tachiyomi.util.system.openInBrowser
import tachiyomi.i18n.MR import tachiyomi.i18n.MR
@ -380,5 +380,5 @@ private fun TrackerSearchPreviews(
@PreviewParameter(TrackerSearchPreviewProvider::class) @PreviewParameter(TrackerSearchPreviewProvider::class)
content: @Composable () -> Unit, content: @Composable () -> Unit,
) { ) {
TachiyomiTheme { content() } TachiyomiPreviewTheme { content() }
} }

View File

@ -14,7 +14,7 @@ import androidx.compose.ui.res.painterResource
import androidx.compose.ui.tooling.preview.PreviewLightDark import androidx.compose.ui.tooling.preview.PreviewLightDark
import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import eu.kanade.presentation.theme.TachiyomiTheme import eu.kanade.presentation.theme.TachiyomiPreviewTheme
import eu.kanade.tachiyomi.data.track.Tracker import eu.kanade.tachiyomi.data.track.Tracker
import tachiyomi.presentation.core.util.clickableNoIndication import tachiyomi.presentation.core.util.clickableNoIndication
@ -49,7 +49,7 @@ private fun TrackLogoIconPreviews(
@PreviewParameter(TrackLogoIconPreviewProvider::class) @PreviewParameter(TrackLogoIconPreviewProvider::class)
tracker: Tracker, tracker: Tracker,
) { ) {
TachiyomiTheme { TachiyomiPreviewTheme {
TrackLogoIcon( TrackLogoIcon(
tracker = tracker, tracker = tracker,
onClick = null, onClick = null,