mirror of
https://github.com/tachiyomiorg/tachiyomi.git
synced 2024-06-28 12:46:03 +02:00
63 lines
2.4 KiB
Kotlin
63 lines
2.4 KiB
Kotlin
package eu.kanade.presentation.theme
|
|
|
|
import androidx.compose.foundation.isSystemInDarkTheme
|
|
import androidx.compose.material3.ColorScheme
|
|
import androidx.compose.material3.MaterialTheme
|
|
import androidx.compose.runtime.Composable
|
|
import androidx.compose.runtime.ReadOnlyComposable
|
|
import androidx.compose.ui.platform.LocalContext
|
|
import eu.kanade.domain.ui.UiPreferences
|
|
import eu.kanade.domain.ui.model.AppTheme
|
|
import eu.kanade.presentation.theme.colorscheme.GreenAppleColorScheme
|
|
import eu.kanade.presentation.theme.colorscheme.LavenderColorScheme
|
|
import eu.kanade.presentation.theme.colorscheme.MidnightDuskColorScheme
|
|
import eu.kanade.presentation.theme.colorscheme.MonetColorScheme
|
|
import eu.kanade.presentation.theme.colorscheme.StrawberryColorScheme
|
|
import eu.kanade.presentation.theme.colorscheme.TachiyomiColorScheme
|
|
import eu.kanade.presentation.theme.colorscheme.TakoColorScheme
|
|
import eu.kanade.presentation.theme.colorscheme.TealTurqoiseColorScheme
|
|
import eu.kanade.presentation.theme.colorscheme.TidalWaveColorScheme
|
|
import eu.kanade.presentation.theme.colorscheme.YinYangColorScheme
|
|
import eu.kanade.presentation.theme.colorscheme.YotsubaColorScheme
|
|
import uy.kohesive.injekt.Injekt
|
|
import uy.kohesive.injekt.api.get
|
|
|
|
@Composable
|
|
fun TachiyomiTheme(
|
|
appTheme: AppTheme? = null,
|
|
amoled: Boolean? = null,
|
|
content: @Composable () -> Unit,
|
|
) {
|
|
MaterialTheme(
|
|
colorScheme = getThemeColorScheme(appTheme, amoled),
|
|
content = content,
|
|
)
|
|
}
|
|
|
|
@Composable
|
|
@ReadOnlyComposable
|
|
private fun getThemeColorScheme(
|
|
appTheme: AppTheme?,
|
|
amoled: Boolean?,
|
|
): ColorScheme {
|
|
val uiPreferences = Injekt.get<UiPreferences>()
|
|
val colorScheme = when (appTheme ?: uiPreferences.appTheme().get()) {
|
|
AppTheme.DEFAULT -> TachiyomiColorScheme
|
|
AppTheme.MONET -> MonetColorScheme(LocalContext.current)
|
|
AppTheme.GREEN_APPLE -> GreenAppleColorScheme
|
|
AppTheme.LAVENDER -> LavenderColorScheme
|
|
AppTheme.MIDNIGHT_DUSK -> MidnightDuskColorScheme
|
|
AppTheme.STRAWBERRY_DAIQUIRI -> StrawberryColorScheme
|
|
AppTheme.TAKO -> TakoColorScheme
|
|
AppTheme.TEALTURQUOISE -> TealTurqoiseColorScheme
|
|
AppTheme.TIDAL_WAVE -> TidalWaveColorScheme
|
|
AppTheme.YINYANG -> YinYangColorScheme
|
|
AppTheme.YOTSUBA -> YotsubaColorScheme
|
|
else -> TachiyomiColorScheme
|
|
}
|
|
return colorScheme.getColorScheme(
|
|
isSystemInDarkTheme(),
|
|
amoled ?: uiPreferences.themeDarkAmoled().get(),
|
|
)
|
|
}
|