mirror of
https://github.com/BetterAndroid/FlexiUI.git
synced 2025-09-08 11:34:18 +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.LazyListScreen
|
||||||
import com.highcapable.flexiui.demo.screen.MainScreen
|
import com.highcapable.flexiui.demo.screen.MainScreen
|
||||||
import com.highcapable.flexiui.demo.screen.SecondaryScreen
|
import com.highcapable.flexiui.demo.screen.SecondaryScreen
|
||||||
|
import com.highcapable.flexiui.toColors
|
||||||
|
|
||||||
const val PROJECT_URL = "https://github.com/BetterAndroid/FlexiUI"
|
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.MutableState
|
||||||
import androidx.compose.runtime.Stable
|
import androidx.compose.runtime.Stable
|
||||||
import androidx.compose.runtime.mutableStateOf
|
import androidx.compose.runtime.mutableStateOf
|
||||||
|
import com.highcapable.flexiui.ColorScheme
|
||||||
|
|
||||||
@Stable
|
@Stable
|
||||||
data class AppPreferences(
|
data class AppPreferences(
|
||||||
|
@@ -46,6 +46,7 @@ import androidx.compose.ui.Alignment
|
|||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.platform.LocalUriHandler
|
import androidx.compose.ui.platform.LocalUriHandler
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
|
import com.highcapable.flexiui.availableColorSchemes
|
||||||
import com.highcapable.flexiui.component.AreaBox
|
import com.highcapable.flexiui.component.AreaBox
|
||||||
import com.highcapable.flexiui.component.AreaColumn
|
import com.highcapable.flexiui.component.AreaColumn
|
||||||
import com.highcapable.flexiui.component.Button
|
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.SecondarySpacer
|
||||||
import com.highcapable.flexiui.demo.SecondaryText
|
import com.highcapable.flexiui.demo.SecondaryText
|
||||||
import com.highcapable.flexiui.demo.Style
|
import com.highcapable.flexiui.demo.Style
|
||||||
import com.highcapable.flexiui.demo.colorSchemes
|
|
||||||
import com.highcapable.flexiui.demo.locales
|
import com.highcapable.flexiui.demo.locales
|
||||||
import com.highcapable.flexiui.demo.rememberRouter
|
import com.highcapable.flexiui.demo.rememberRouter
|
||||||
import com.highcapable.flexiui.demo.strings
|
import com.highcapable.flexiui.demo.strings
|
||||||
import com.highcapable.flexiui.demo.toName
|
import com.highcapable.flexiui.demo.toName
|
||||||
|
import com.highcapable.flexiui.displayName
|
||||||
import com.highcapable.flexiui.resources.FlexiIcons
|
import com.highcapable.flexiui.resources.FlexiIcons
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
|
||||||
@@ -191,6 +192,7 @@ fun MainHomePage(modifier: Modifier) {
|
|||||||
}
|
}
|
||||||
PrimarySpacer()
|
PrimarySpacer()
|
||||||
AreaColumn(modifier = Modifier.fillMaxWidth()) {
|
AreaColumn(modifier = Modifier.fillMaxWidth()) {
|
||||||
|
val colorSchemes = availableColorSchemes()
|
||||||
var colorScheme by remember { Preferences.colorScheme }
|
var colorScheme by remember { Preferences.colorScheme }
|
||||||
var darkMode by remember { Preferences.darkMode }
|
var darkMode by remember { Preferences.darkMode }
|
||||||
var followSystemDarkMode by remember { Preferences.followSystemDarkMode }
|
var followSystemDarkMode by remember { Preferences.followSystemDarkMode }
|
||||||
@@ -229,16 +231,16 @@ fun MainHomePage(modifier: Modifier) {
|
|||||||
modifier = Modifier.fillMaxWidth(),
|
modifier = Modifier.fillMaxWidth(),
|
||||||
expanded = expanded,
|
expanded = expanded,
|
||||||
onExpandedChange = { expanded = it },
|
onExpandedChange = { expanded = it },
|
||||||
text = { Text(colorScheme.toName()) },
|
text = { Text(colorScheme.displayName) },
|
||||||
) {
|
) {
|
||||||
colorSchemes().forEach {
|
colorSchemes.forEach {
|
||||||
DropdownMenuItem(
|
DropdownMenuItem(
|
||||||
actived = colorScheme == it,
|
actived = colorScheme == it,
|
||||||
onClick = {
|
onClick = {
|
||||||
expanded = false
|
expanded = false
|
||||||
colorScheme = it
|
colorScheme = it
|
||||||
}
|
}
|
||||||
) { Text(it.toName()) }
|
) { Text(it.displayName) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user