11package love.forte.simbot.codegen
22
3+ import androidx.compose.animation.AnimatedContent
34import androidx.compose.animation.ExperimentalSharedTransitionApi
45import androidx.compose.foundation.isSystemInDarkTheme
6+ import androidx.compose.foundation.layout.Arrangement
57import androidx.compose.foundation.layout.Box
8+ import androidx.compose.foundation.layout.Column
9+ import androidx.compose.foundation.layout.Spacer
610import androidx.compose.foundation.layout.fillMaxSize
11+ import androidx.compose.foundation.layout.padding
712import androidx.compose.material3.CircularProgressIndicator
813import androidx.compose.material3.MaterialTheme
14+ import androidx.compose.material3.Text
915import androidx.compose.material3.darkColorScheme
1016import androidx.compose.material3.lightColorScheme
1117import androidx.compose.runtime.Composable
@@ -14,9 +20,11 @@ import androidx.compose.ui.Alignment
1420import androidx.compose.ui.Modifier
1521import androidx.compose.ui.graphics.Color
1622import androidx.compose.ui.text.font.FontFamily
23+ import androidx.compose.ui.unit.dp
1724import love.forte.simbot.codegen.gen.view.GradleSettingsView
1825import org.jetbrains.compose.resources.ExperimentalResourceApi
1926import org.jetbrains.compose.resources.preloadFont
27+ import simbot_codegen.composeapp.generated.resources.JetBrainsMono_Medium
2028import simbot_codegen.composeapp.generated.resources.LXGWNeoXiHeiScreen
2129import simbot_codegen.composeapp.generated.resources.Res
2230
@@ -26,8 +34,8 @@ import simbot_codegen.composeapp.generated.resources.Res
2634@Composable
2735fun App () {
2836 @OptIn(ExperimentalResourceApi ::class )
29- val font by preloadFont(resource = Res .font.LXGWNeoXiHeiScreen )
30- val fm = font ?.let { FontFamily (it) }
37+ val lxgwNeo by preloadFont(resource = Res .font.LXGWNeoXiHeiScreen )
38+ val fm = lxgwNeo ?.let { FontFamily (it) }
3139
3240 val darkTheme = isSystemInDarkTheme()
3341
@@ -67,32 +75,43 @@ fun App() {
6775 )
6876 }
6977
70- if (fm == null ) {
71- Box (modifier = Modifier .fillMaxSize()) {
72- CircularProgressIndicator (modifier = Modifier .align(Alignment .Center ))
73- }
74- } else {
75- MaterialTheme (
76- colorScheme = colorScheme,
77- typography = MaterialTheme .typography.copy(
78- displayLarge = MaterialTheme .typography.displayLarge.copy(fontFamily = fm),
79- displayMedium = MaterialTheme .typography.displayMedium.copy(fontFamily = fm),
80- displaySmall = MaterialTheme .typography.displaySmall.copy(fontFamily = fm),
81- headlineLarge = MaterialTheme .typography.headlineLarge.copy(fontFamily = fm),
82- headlineMedium = MaterialTheme .typography.headlineMedium.copy(fontFamily = fm),
83- headlineSmall = MaterialTheme .typography.headlineSmall.copy(fontFamily = fm),
84- titleLarge = MaterialTheme .typography.titleLarge.copy(fontFamily = fm),
85- titleMedium = MaterialTheme .typography.titleMedium.copy(fontFamily = fm),
86- titleSmall = MaterialTheme .typography.titleSmall.copy(fontFamily = fm),
87- bodyLarge = MaterialTheme .typography.bodyLarge.copy(fontFamily = fm),
88- bodyMedium = MaterialTheme .typography.bodyMedium.copy(fontFamily = fm),
89- bodySmall = MaterialTheme .typography.bodySmall.copy(fontFamily = fm),
90- labelLarge = MaterialTheme .typography.labelLarge.copy(fontFamily = fm),
91- labelMedium = MaterialTheme .typography.labelMedium.copy(fontFamily = fm),
92- labelSmall = MaterialTheme .typography.labelSmall.copy(fontFamily = fm),
93- )
94- ) {
95- GradleSettingsView ()
78+ AnimatedContent (fm) { fm ->
79+ if (fm == null ) {
80+ Box (modifier = Modifier .fillMaxSize()) {
81+ Column (
82+ modifier = Modifier .align(Alignment .Center ),
83+ verticalArrangement = Arrangement .Center ,
84+ horizontalAlignment = Alignment .CenterHorizontally ,
85+ ) {
86+ CircularProgressIndicator (modifier = Modifier .align(Alignment .CenterHorizontally ))
87+ Spacer (Modifier .padding(8 .dp))
88+ Text (" Font loading..." )
89+ }
90+ }
91+ } else {
92+ MaterialTheme (
93+ colorScheme = colorScheme,
94+ typography = MaterialTheme .typography.copy(
95+ displayLarge = MaterialTheme .typography.displayLarge.copy(fontFamily = fm),
96+ displayMedium = MaterialTheme .typography.displayMedium.copy(fontFamily = fm),
97+ displaySmall = MaterialTheme .typography.displaySmall.copy(fontFamily = fm),
98+ headlineLarge = MaterialTheme .typography.headlineLarge.copy(fontFamily = fm),
99+ headlineMedium = MaterialTheme .typography.headlineMedium.copy(fontFamily = fm),
100+ headlineSmall = MaterialTheme .typography.headlineSmall.copy(fontFamily = fm),
101+ titleLarge = MaterialTheme .typography.titleLarge.copy(fontFamily = fm),
102+ titleMedium = MaterialTheme .typography.titleMedium.copy(fontFamily = fm),
103+ titleSmall = MaterialTheme .typography.titleSmall.copy(fontFamily = fm),
104+ bodyLarge = MaterialTheme .typography.bodyLarge.copy(fontFamily = fm),
105+ bodyMedium = MaterialTheme .typography.bodyMedium.copy(fontFamily = fm),
106+ bodySmall = MaterialTheme .typography.bodySmall.copy(fontFamily = fm),
107+ labelLarge = MaterialTheme .typography.labelLarge.copy(fontFamily = fm),
108+ labelMedium = MaterialTheme .typography.labelMedium.copy(fontFamily = fm),
109+ labelSmall = MaterialTheme .typography.labelSmall.copy(fontFamily = fm),
110+ )
111+ ) {
112+ GradleSettingsView ()
113+ }
96114 }
97115 }
116+
98117}
0 commit comments