Skip to content

Commit 8176be6

Browse files
committed
Implement dynamic color scheme
1 parent dfde95a commit 8176be6

4 files changed

Lines changed: 37 additions & 7 deletions

File tree

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package site.remlit.snowdrop.component
2+
3+
import android.os.Build
4+
import androidx.annotation.RequiresApi
5+
import androidx.compose.material3.ColorScheme
6+
import androidx.compose.material3.dynamicDarkColorScheme
7+
import androidx.compose.material3.dynamicLightColorScheme
8+
import androidx.compose.runtime.Composable
9+
import androidx.compose.ui.platform.LocalContext
10+
11+
@Composable
12+
@RequiresApi(Build.VERSION_CODES.S)
13+
actual fun getLightColorScheme(): ColorScheme = dynamicLightColorScheme(LocalContext.current)
14+
15+
@Composable
16+
@RequiresApi(Build.VERSION_CODES.S)
17+
actual fun getDarkColorScheme(): ColorScheme = dynamicDarkColorScheme(LocalContext.current)

shared/src/commonMain/kotlin/site/remlit/snowdrop/App.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ data class ComposeRoute(
132132
val inReplyToId: String? = null,
133133
val cw: String = "",
134134
val content: String = ""
135-
) : Destination(9)
135+
) : Destination(10)
136136

137137
@Serializable
138138
object SettingsRoute : Destination(100)
Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,22 @@
11
package site.remlit.snowdrop.component
22

33
import androidx.compose.foundation.isSystemInDarkTheme
4+
import androidx.compose.material3.ColorScheme
45
import androidx.compose.material3.MaterialTheme
5-
import androidx.compose.material3.darkColorScheme
6-
import androidx.compose.material3.lightColorScheme
76
import androidx.compose.runtime.Composable
87

9-
private val LightColorScheme = lightColorScheme()
10-
private val DarkColorScheme = darkColorScheme()
8+
@Composable
9+
expect fun getLightColorScheme(): ColorScheme
10+
@Composable
11+
expect fun getDarkColorScheme(): ColorScheme
1112

1213
@Composable
1314
fun AppTheme(
1415
darkTheme: Boolean = isSystemInDarkTheme(),
1516
content: @Composable () -> Unit
1617
) {
1718
MaterialTheme(
18-
colorScheme = if (darkTheme) DarkColorScheme else LightColorScheme,
19+
colorScheme = if (darkTheme) getDarkColorScheme() else getLightColorScheme(),
1920
content = content
2021
)
21-
}
22+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package site.remlit.snowdrop.component
2+
3+
import androidx.compose.material3.ColorScheme
4+
import androidx.compose.material3.darkColorScheme
5+
import androidx.compose.material3.lightColorScheme
6+
import androidx.compose.runtime.Composable
7+
8+
@Composable
9+
actual fun getLightColorScheme(): ColorScheme = lightColorScheme()
10+
11+
@Composable
12+
actual fun getDarkColorScheme(): ColorScheme = darkColorScheme()

0 commit comments

Comments
 (0)