andrew
enum class DarkTheme(private val _enabled: @Composable () -> Boolean) { NO({ false }), YES({ true }), AUTO({ isSystemInDarkTheme() }); val enabled: Boolean @Composable get() = _enabled() }
ephemient
enum class DarkTheme(private val overrideSystemInDarkTheme: Boolean?) { ForceLight(false), ForceDark(true), FollowSystem(null); val isDarkTheme: Boolean @Composable get() = overrideSystemInDarkTheme ?: isSystemInDarkTheme() } enum class DarkTheme { ForceLight, ForceDark, FollowSystem; val isDarkTheme: Boolean @Composable get() = when (this) { ForceLight -> false ForceDark -> true FollowSystem -> isSystemInDarkTheme() } } enum class DarkTheme { ForceLight { override val isDarkTheme: Boolean @Composable get() = false }, ForceDark { override val isDarkTheme: Boolean @Composable get() = true }, FollowSystem { override val isDarkTheme: Boolean @Composable get() = isSystemInDarkTheme() }; @get:Composable abstract val isDarkTheme: Boolean }
A modern programming language that makes developers happier.