mirror of
https://gitlab.futo.org/keyboard/latinime.git
synced 2024-09-28 14:54:30 +01:00
Update Dynamic System theme preview and rename to Dynamic Auto
This commit is contained in:
parent
5865dde3d7
commit
7de251b71d
@ -15,7 +15,7 @@
|
|||||||
<string name="classic_material_light_theme_name">AOSP Material Light</string>
|
<string name="classic_material_light_theme_name">AOSP Material Light</string>
|
||||||
<string name="voice_input_theme_name">FUTO VI Theme</string>
|
<string name="voice_input_theme_name">FUTO VI Theme</string>
|
||||||
|
|
||||||
<string name="dynamic_system_theme_name">Dynamic System</string>
|
<string name="dynamic_system_theme_name">Dynamic Auto</string>
|
||||||
<string name="dynamic_light_theme_name">Dynamic Light</string>
|
<string name="dynamic_light_theme_name">Dynamic Light</string>
|
||||||
<string name="dynamic_dark_theme_name">Dynamic Dark</string>
|
<string name="dynamic_dark_theme_name">Dynamic Dark</string>
|
||||||
|
|
||||||
|
@ -15,6 +15,7 @@ import androidx.compose.foundation.layout.width
|
|||||||
import androidx.compose.foundation.lazy.grid.GridCells
|
import androidx.compose.foundation.lazy.grid.GridCells
|
||||||
import androidx.compose.foundation.lazy.grid.GridItemSpan
|
import androidx.compose.foundation.lazy.grid.GridItemSpan
|
||||||
import androidx.compose.foundation.lazy.grid.LazyVerticalGrid
|
import androidx.compose.foundation.lazy.grid.LazyVerticalGrid
|
||||||
|
import androidx.compose.foundation.shape.GenericShape
|
||||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||||
import androidx.compose.material.icons.Icons
|
import androidx.compose.material.icons.Icons
|
||||||
import androidx.compose.material.icons.filled.Add
|
import androidx.compose.material.icons.filled.Add
|
||||||
@ -26,7 +27,9 @@ import androidx.compose.runtime.Composable
|
|||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
|
import androidx.compose.ui.draw.clip
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
|
import androidx.compose.ui.graphics.Path
|
||||||
import androidx.compose.ui.platform.LocalContext
|
import androidx.compose.ui.platform.LocalContext
|
||||||
import androidx.compose.ui.platform.LocalInspectionMode
|
import androidx.compose.ui.platform.LocalInspectionMode
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
@ -48,12 +51,16 @@ import org.futo.inputmethod.latin.uix.theme.Typography
|
|||||||
import org.futo.inputmethod.latin.uix.theme.UixThemeWrapper
|
import org.futo.inputmethod.latin.uix.theme.UixThemeWrapper
|
||||||
import org.futo.inputmethod.latin.uix.theme.presets.AMOLEDDarkPurple
|
import org.futo.inputmethod.latin.uix.theme.presets.AMOLEDDarkPurple
|
||||||
import org.futo.inputmethod.latin.uix.theme.presets.ClassicMaterialDark
|
import org.futo.inputmethod.latin.uix.theme.presets.ClassicMaterialDark
|
||||||
|
import org.futo.inputmethod.latin.uix.theme.presets.DynamicDarkTheme
|
||||||
|
import org.futo.inputmethod.latin.uix.theme.presets.DynamicLightTheme
|
||||||
|
import org.futo.inputmethod.latin.uix.theme.presets.DynamicSystemTheme
|
||||||
import org.futo.inputmethod.latin.uix.theme.presets.VoiceInputTheme
|
import org.futo.inputmethod.latin.uix.theme.presets.VoiceInputTheme
|
||||||
import kotlin.math.roundToInt
|
import kotlin.math.roundToInt
|
||||||
|
|
||||||
// TODO: For Dynamic System we need to show the user that it switches between light/dark
|
|
||||||
@Composable
|
@Composable
|
||||||
fun ThemePreview(theme: ThemeOption, isSelected: Boolean = false, onClick: () -> Unit = { }) {
|
fun ThemePreview(theme: ThemeOption, isSelected: Boolean = false, overrideName: String? = null, modifier: Modifier = Modifier, onClick: () -> Unit = { }) {
|
||||||
|
if(theme == DynamicSystemTheme) return DynamicThemePreview(isSelected, onClick)
|
||||||
|
|
||||||
val context = LocalContext.current
|
val context = LocalContext.current
|
||||||
val colors = remember { theme.obtainColors(context) }
|
val colors = remember { theme.obtainColors(context) }
|
||||||
|
|
||||||
@ -80,7 +87,7 @@ fun ThemePreview(theme: ThemeOption, isSelected: Boolean = false, onClick: () ->
|
|||||||
val keyboardShape = RoundedCornerShape(8.dp)
|
val keyboardShape = RoundedCornerShape(8.dp)
|
||||||
|
|
||||||
Surface(
|
Surface(
|
||||||
modifier = Modifier
|
modifier = modifier
|
||||||
.padding(12.dp)
|
.padding(12.dp)
|
||||||
.width(172.dp)
|
.width(172.dp)
|
||||||
.height(128.dp)
|
.height(128.dp)
|
||||||
@ -92,7 +99,7 @@ fun ThemePreview(theme: ThemeOption, isSelected: Boolean = false, onClick: () ->
|
|||||||
Box(modifier = Modifier.fillMaxSize()) {
|
Box(modifier = Modifier.fillMaxSize()) {
|
||||||
// Theme name and action bar
|
// Theme name and action bar
|
||||||
Text(
|
Text(
|
||||||
text = stringResource(theme.name),
|
text = overrideName ?: stringResource(theme.name),
|
||||||
textAlign = TextAlign.Center,
|
textAlign = TextAlign.Center,
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.align(Alignment.TopCenter)
|
.align(Alignment.TopCenter)
|
||||||
@ -134,6 +141,46 @@ fun ThemePreview(theme: ThemeOption, isSelected: Boolean = false, onClick: () ->
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Special case to demonstrate the light and dark mode
|
||||||
|
@Preview
|
||||||
|
@Composable
|
||||||
|
fun DynamicThemePreview(isSelected: Boolean = false, onClick: () -> Unit = { }) {
|
||||||
|
Box {
|
||||||
|
ThemePreview(
|
||||||
|
DynamicLightTheme,
|
||||||
|
isSelected = isSelected,
|
||||||
|
onClick = onClick,
|
||||||
|
overrideName = stringResource(DynamicSystemTheme.name),
|
||||||
|
modifier = Modifier.clip(GenericShape { size, _ ->
|
||||||
|
val path = Path().apply {
|
||||||
|
moveTo(0f, 0f)
|
||||||
|
lineTo(size.width * 0.75f, 0f)
|
||||||
|
lineTo(size.width * 0.25f, size.height)
|
||||||
|
lineTo(0f, size.height)
|
||||||
|
close()
|
||||||
|
}
|
||||||
|
addPath(path)
|
||||||
|
})
|
||||||
|
)
|
||||||
|
ThemePreview(
|
||||||
|
DynamicDarkTheme,
|
||||||
|
isSelected = isSelected,
|
||||||
|
onClick = onClick,
|
||||||
|
overrideName = stringResource(DynamicSystemTheme.name),
|
||||||
|
modifier = Modifier.clip(GenericShape { size, _ ->
|
||||||
|
val path = Path().apply {
|
||||||
|
moveTo(size.width * 0.75f, 0f)
|
||||||
|
lineTo(size.width, 0f)
|
||||||
|
lineTo(size.width, size.height)
|
||||||
|
lineTo(size.width * 0.25f, size.height)
|
||||||
|
close()
|
||||||
|
}
|
||||||
|
addPath(path)
|
||||||
|
})
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun AddCustomThemeButton(onClick: () -> Unit = { }) {
|
fun AddCustomThemeButton(onClick: () -> Unit = { }) {
|
||||||
val context = LocalContext.current
|
val context = LocalContext.current
|
||||||
|
Loading…
Reference in New Issue
Block a user