Skip to content

Commit 5aacfc7

Browse files
committed
[gallery] support disable font icon for testing gallery vector icon.
1 parent feb44e1 commit 5aacfc7

File tree

3 files changed

+26
-7
lines changed

3 files changed

+26
-7
lines changed

gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/GalleryTheme.kt

+18-3
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,24 @@ import androidx.compose.runtime.*
66
import androidx.compose.ui.Modifier
77
import com.konyaco.fluent.*
88
import com.konyaco.fluent.background.Mica
9+
import com.konyaco.fluent.gallery.component.LocalFontIconFontFamily
910
import com.konyaco.fluent.gallery.component.ProvideFontIcon
1011

1112
val LocalStore = compositionLocalOf<Store> { error("Not provided") }
1213

1314
class Store(
1415
systemDarkMode: Boolean,
1516
enabledAcrylicPopup: Boolean,
16-
compactMode: Boolean
17+
compactMode: Boolean,
18+
fontIconEnabled: Boolean
1719
) {
1820
var darkMode by mutableStateOf(systemDarkMode)
1921

2022
var enabledAcrylicPopup by mutableStateOf(enabledAcrylicPopup)
2123

2224
var compactMode by mutableStateOf(compactMode)
25+
26+
var fontIconEnabled by mutableStateOf(fontIconEnabled)
2327
}
2428

2529
@OptIn(ExperimentalFluentApi::class)
@@ -34,7 +38,8 @@ fun GalleryTheme(
3438
Store(
3539
systemDarkMode = systemDarkMode,
3640
enabledAcrylicPopup = true,
37-
compactMode = true
41+
compactMode = true,
42+
fontIconEnabled = true
3843
)
3944
}
4045

@@ -44,7 +49,7 @@ fun GalleryTheme(
4449
CompositionLocalProvider(
4550
LocalStore provides store
4651
) {
47-
ProvideFontIcon {
52+
ProvideFontIcon(store.fontIconEnabled) {
4853
FluentTheme(
4954
colors = if (store.darkMode) darkColors() else lightColors(),
5055
useAcrylicPopup = store.enabledAcrylicPopup,
@@ -63,4 +68,14 @@ fun GalleryTheme(
6368
}
6469
}
6570
}
71+
}
72+
73+
@Composable
74+
private fun ProvideFontIcon(enabled: Boolean, content: @Composable () -> Unit) {
75+
ProvideFontIcon {
76+
CompositionLocalProvider(
77+
LocalFontIconFontFamily provides if (enabled) LocalFontIconFontFamily.current else null,
78+
content = content
79+
)
80+
}
6681
}

gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/component/FontIcon.kt

+1-2
Original file line numberDiff line numberDiff line change
@@ -68,5 +68,4 @@ internal expect fun ProvideFontIcon(
6868
content: @Composable () -> Unit
6969
)
7070

71-
internal val LocalFontIconFontFamily =
72-
staticCompositionLocalOf<FontFamily?> { error("No Font provide for load font icon") }
71+
internal val LocalFontIconFontFamily = staticCompositionLocalOf<FontFamily?> { null }

gallery/src/commonMain/kotlin/com/konyaco/fluent/gallery/screen/settings/SettingsScreen.kt

+7-2
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,9 @@ fun SettingsScreen() {
8989
acrylicPopupEnabled = store.enabledAcrylicPopup,
9090
onAcrylicPopupChange = { store.enabledAcrylicPopup = it },
9191
compactModeEnabled = store.compactMode,
92-
onCompactModeChange = { store.compactMode = it }
92+
onCompactModeChange = { store.compactMode = it },
93+
fontIconEnabled = store.fontIconEnabled,
94+
onFontIconEnabledChanged = { store.fontIconEnabled = it }
9395
)
9496

9597
CompositionLocalProvider(LocalDensity provides Density(scale)) {
@@ -259,7 +261,9 @@ private fun Controller(
259261
acrylicPopupEnabled: Boolean,
260262
onAcrylicPopupChange: (Boolean) -> Unit,
261263
compactModeEnabled: Boolean,
262-
onCompactModeChange: (Boolean) -> Unit
264+
onCompactModeChange: (Boolean) -> Unit,
265+
fontIconEnabled: Boolean,
266+
onFontIconEnabledChanged: (Boolean) -> Unit,
263267
) {
264268
Row(
265269
verticalAlignment = Alignment.CenterVertically,
@@ -271,6 +275,7 @@ private fun Controller(
271275
Switcher(darkMode, text = "Dark Mode", onCheckStateChange = { onDarkModeChange(it) })
272276
Switcher(acrylicPopupEnabled, text = "Acrylic Popup", onCheckStateChange = { onAcrylicPopupChange(it) })
273277
Switcher(compactModeEnabled, text = "Compact Mode", onCheckStateChange = { onCompactModeChange(it) })
278+
Switcher(fontIconEnabled, text = "Font Icon", onCheckStateChange = { onFontIconEnabledChanged(it) })
274279
}
275280
Slider(
276281
modifier = Modifier.width(200.dp),

0 commit comments

Comments
 (0)