mirror of
https://github.com/BetterAndroid/FlexiUI.git
synced 2025-09-07 11:09:53 +08:00
feat: update demo
This commit is contained in:
@@ -34,6 +34,7 @@ import com.highcapable.flexiui.component.Surface
|
||||
import com.highcapable.flexiui.demo.screen.LazyListScreen
|
||||
import com.highcapable.flexiui.demo.screen.MainScreen
|
||||
import com.highcapable.flexiui.demo.screen.SecondaryScreen
|
||||
import com.highcapable.flexiui.toColors
|
||||
|
||||
const val PROJECT_URL = "https://github.com/BetterAndroid/FlexiUI"
|
||||
|
||||
|
@@ -1,134 +0,0 @@
|
||||
/*
|
||||
* Flexi UI - A flexible and useful UI component library.
|
||||
* Copyright (C) 2019-2024 HighCapable
|
||||
* https://github.com/BetterAndroid/FlexiUI
|
||||
*
|
||||
* Apache License Version 2.0
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* This file is created by fankes on 2024/1/16.
|
||||
*/
|
||||
package com.highcapable.flexiui.demo
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.Stable
|
||||
import com.highcapable.flexiui.blueColors
|
||||
import com.highcapable.flexiui.defaultColors
|
||||
import com.highcapable.flexiui.greenColors
|
||||
import com.highcapable.flexiui.isSystemColorAvailable
|
||||
import com.highcapable.flexiui.orangeColors
|
||||
import com.highcapable.flexiui.pinkColors
|
||||
import com.highcapable.flexiui.purpleColors
|
||||
import com.highcapable.flexiui.redColors
|
||||
import com.highcapable.flexiui.systemColors
|
||||
import com.highcapable.flexiui.yellowColors
|
||||
|
||||
// TODO: Include ColorScheme to Flexi UI's Colors.kt
|
||||
|
||||
@Stable
|
||||
enum class ColorScheme {
|
||||
Default,
|
||||
DefaultBlack,
|
||||
System,
|
||||
SystemBlack,
|
||||
Red,
|
||||
RedBlack,
|
||||
Pink,
|
||||
PinkBlack,
|
||||
Purple,
|
||||
PurpleBlack,
|
||||
Orange,
|
||||
OrangeBlack,
|
||||
Yellow,
|
||||
YellowBlack,
|
||||
Green,
|
||||
GreenBlack,
|
||||
Blue,
|
||||
BlueBlack
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun colorSchemes(): Array<ColorScheme> {
|
||||
val defaultColors = arrayOf(
|
||||
ColorScheme.Default,
|
||||
ColorScheme.DefaultBlack
|
||||
)
|
||||
val systemColors = arrayOf(
|
||||
ColorScheme.System,
|
||||
ColorScheme.SystemBlack
|
||||
)
|
||||
val presetColors = arrayOf(
|
||||
ColorScheme.Red,
|
||||
ColorScheme.RedBlack,
|
||||
ColorScheme.Pink,
|
||||
ColorScheme.PinkBlack,
|
||||
ColorScheme.Purple,
|
||||
ColorScheme.PurpleBlack,
|
||||
ColorScheme.Orange,
|
||||
ColorScheme.OrangeBlack,
|
||||
ColorScheme.Yellow,
|
||||
ColorScheme.YellowBlack,
|
||||
ColorScheme.Green,
|
||||
ColorScheme.GreenBlack,
|
||||
ColorScheme.Blue,
|
||||
ColorScheme.BlueBlack
|
||||
)
|
||||
return if (isSystemColorAvailable())
|
||||
defaultColors + systemColors + presetColors
|
||||
else defaultColors + presetColors
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun ColorScheme.toColors(darkMode: Boolean) = when (this) {
|
||||
ColorScheme.Default -> defaultColors(darkMode)
|
||||
ColorScheme.DefaultBlack -> defaultColors(darkMode, blackDarkMode = true)
|
||||
ColorScheme.System -> systemColors(darkMode)
|
||||
ColorScheme.SystemBlack -> systemColors(darkMode, blackDarkMode = true)
|
||||
ColorScheme.Red -> redColors(darkMode)
|
||||
ColorScheme.RedBlack -> redColors(darkMode, blackDarkMode = true)
|
||||
ColorScheme.Pink -> pinkColors(darkMode)
|
||||
ColorScheme.PinkBlack -> pinkColors(darkMode, blackDarkMode = true)
|
||||
ColorScheme.Purple -> purpleColors(darkMode)
|
||||
ColorScheme.PurpleBlack -> purpleColors(darkMode, blackDarkMode = true)
|
||||
ColorScheme.Orange -> orangeColors(darkMode)
|
||||
ColorScheme.OrangeBlack -> orangeColors(darkMode, blackDarkMode = true)
|
||||
ColorScheme.Yellow -> yellowColors(darkMode)
|
||||
ColorScheme.YellowBlack -> yellowColors(darkMode, blackDarkMode = true)
|
||||
ColorScheme.Green -> greenColors(darkMode)
|
||||
ColorScheme.GreenBlack -> greenColors(darkMode, blackDarkMode = true)
|
||||
ColorScheme.Blue -> blueColors(darkMode)
|
||||
ColorScheme.BlueBlack -> blueColors(darkMode, blackDarkMode = true)
|
||||
}
|
||||
|
||||
@Stable
|
||||
fun ColorScheme.toName() = when (this) {
|
||||
ColorScheme.Default -> "Default"
|
||||
ColorScheme.DefaultBlack -> "Default (Black)"
|
||||
ColorScheme.System -> "System"
|
||||
ColorScheme.SystemBlack -> "System (Black)"
|
||||
ColorScheme.Red -> "Red"
|
||||
ColorScheme.RedBlack -> "Red (Black)"
|
||||
ColorScheme.Pink -> "Pink"
|
||||
ColorScheme.PinkBlack -> "Pink (Black)"
|
||||
ColorScheme.Purple -> "Purple"
|
||||
ColorScheme.PurpleBlack -> "Purple (Black)"
|
||||
ColorScheme.Orange -> "Orange"
|
||||
ColorScheme.OrangeBlack -> "Orange (Black)"
|
||||
ColorScheme.Yellow -> "Yellow"
|
||||
ColorScheme.YellowBlack -> "Yellow (Black)"
|
||||
ColorScheme.Green -> "Green"
|
||||
ColorScheme.GreenBlack -> "Green (Black)"
|
||||
ColorScheme.Blue -> "Blue"
|
||||
ColorScheme.BlueBlack -> "Blue (Black)"
|
||||
}
|
@@ -24,6 +24,7 @@ package com.highcapable.flexiui.demo
|
||||
import androidx.compose.runtime.MutableState
|
||||
import androidx.compose.runtime.Stable
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import com.highcapable.flexiui.ColorScheme
|
||||
|
||||
@Stable
|
||||
data class AppPreferences(
|
||||
|
@@ -46,6 +46,7 @@ import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.platform.LocalUriHandler
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.highcapable.flexiui.availableColorSchemes
|
||||
import com.highcapable.flexiui.component.AreaBox
|
||||
import com.highcapable.flexiui.component.AreaColumn
|
||||
import com.highcapable.flexiui.component.Button
|
||||
@@ -73,11 +74,11 @@ import com.highcapable.flexiui.demo.Screen
|
||||
import com.highcapable.flexiui.demo.SecondarySpacer
|
||||
import com.highcapable.flexiui.demo.SecondaryText
|
||||
import com.highcapable.flexiui.demo.Style
|
||||
import com.highcapable.flexiui.demo.colorSchemes
|
||||
import com.highcapable.flexiui.demo.locales
|
||||
import com.highcapable.flexiui.demo.rememberRouter
|
||||
import com.highcapable.flexiui.demo.strings
|
||||
import com.highcapable.flexiui.demo.toName
|
||||
import com.highcapable.flexiui.displayName
|
||||
import com.highcapable.flexiui.resources.FlexiIcons
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
@@ -191,6 +192,7 @@ fun MainHomePage(modifier: Modifier) {
|
||||
}
|
||||
PrimarySpacer()
|
||||
AreaColumn(modifier = Modifier.fillMaxWidth()) {
|
||||
val colorSchemes = availableColorSchemes()
|
||||
var colorScheme by remember { Preferences.colorScheme }
|
||||
var darkMode by remember { Preferences.darkMode }
|
||||
var followSystemDarkMode by remember { Preferences.followSystemDarkMode }
|
||||
@@ -229,16 +231,16 @@ fun MainHomePage(modifier: Modifier) {
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
expanded = expanded,
|
||||
onExpandedChange = { expanded = it },
|
||||
text = { Text(colorScheme.toName()) },
|
||||
text = { Text(colorScheme.displayName) },
|
||||
) {
|
||||
colorSchemes().forEach {
|
||||
colorSchemes.forEach {
|
||||
DropdownMenuItem(
|
||||
actived = colorScheme == it,
|
||||
onClick = {
|
||||
expanded = false
|
||||
colorScheme = it
|
||||
}
|
||||
) { Text(it.toName()) }
|
||||
) { Text(it.displayName) }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user