Merge branch 'kmmiio99o:main' into main
This commit is contained in:
commit
79a215d318
6 changed files with 84 additions and 5 deletions
|
|
@ -42,6 +42,7 @@ class MainActivity : ComponentActivity() {
|
||||||
ManagerTheme(
|
ManagerTheme(
|
||||||
theme = preferences.theme,
|
theme = preferences.theme,
|
||||||
dynamicColor = preferences.dynamicColor,
|
dynamicColor = preferences.dynamicColor,
|
||||||
|
amoled = preferences.amoled,
|
||||||
) {
|
) {
|
||||||
if (BuildConfig.RELEASE) {
|
if (BuildConfig.RELEASE) {
|
||||||
UpdaterDialog()
|
UpdaterDialog()
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ import com.aliucord.manager.ui.theme.Theme
|
||||||
@Stable
|
@Stable
|
||||||
class PreferencesManager(preferences: SharedPreferences) : BasePreferenceManager(preferences) {
|
class PreferencesManager(preferences: SharedPreferences) : BasePreferenceManager(preferences) {
|
||||||
var theme by enumPreference("theme", Theme.System)
|
var theme by enumPreference("theme", Theme.System)
|
||||||
|
var amoled by booleanPreference("amoled", false)
|
||||||
var dynamicColor by booleanPreference("dynamic_color", true)
|
var dynamicColor by booleanPreference("dynamic_color", true)
|
||||||
var devMode by booleanPreference("dev_mode", false)
|
var devMode by booleanPreference("dev_mode", false)
|
||||||
var installer by enumPreference<InstallerSetting>("installer", InstallerSetting.PM)
|
var installer by enumPreference<InstallerSetting>("installer", InstallerSetting.PM)
|
||||||
|
|
|
||||||
|
|
@ -98,6 +98,14 @@ class SettingsScreen : Screen, Parcelable {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
SettingsSwitch(
|
||||||
|
label = stringResource(R.string.setting_amoled),
|
||||||
|
secondaryLabel = stringResource(R.string.setting_amoled_desc),
|
||||||
|
pref = preferences.amoled,
|
||||||
|
icon = { Icon(painterResource(R.drawable.ic_night), null) },
|
||||||
|
onPrefChange = { preferences.amoled = it },
|
||||||
|
)
|
||||||
|
|
||||||
// Material You theming on Android 12+
|
// Material You theming on Android 12+
|
||||||
if (Build.VERSION.SDK_INT >= 31) {
|
if (Build.VERSION.SDK_INT >= 31) {
|
||||||
SettingsSwitch(
|
SettingsSwitch(
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@ import dev.goon.manager.R
|
||||||
fun ManagerTheme(
|
fun ManagerTheme(
|
||||||
theme: Theme = Theme.System,
|
theme: Theme = Theme.System,
|
||||||
dynamicColor: Boolean = true,
|
dynamicColor: Boolean = true,
|
||||||
|
amoled: Boolean = false,
|
||||||
content: @Composable () -> Unit,
|
content: @Composable () -> Unit,
|
||||||
) {
|
) {
|
||||||
val dynamicColor = dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S
|
val dynamicColor = dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S
|
||||||
|
|
@ -28,12 +29,63 @@ fun ManagerTheme(
|
||||||
Theme.Dark -> true
|
Theme.Dark -> true
|
||||||
Theme.Light -> false
|
Theme.Light -> false
|
||||||
}
|
}
|
||||||
val colorScheme = when {
|
|
||||||
dynamicColor && darkTheme -> dynamicDarkColorScheme(LocalContext.current)
|
val context = LocalContext.current
|
||||||
dynamicColor && !darkTheme -> dynamicLightColorScheme(LocalContext.current)
|
|
||||||
|
val baseScheme = when {
|
||||||
|
dynamicColor && darkTheme -> dynamicDarkColorScheme(context)
|
||||||
|
dynamicColor && !darkTheme -> dynamicLightColorScheme(context)
|
||||||
darkTheme -> darkColorScheme()
|
darkTheme -> darkColorScheme()
|
||||||
else -> lightColorScheme()
|
else -> lightColorScheme()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val colorScheme = if (amoled && darkTheme) {
|
||||||
|
baseScheme.copy(
|
||||||
|
// Core surfaces: true black with white content
|
||||||
|
background = Color(0xFF000000),
|
||||||
|
onBackground = Color(0xFFFFFFFF),
|
||||||
|
surface = Color(0xFF000000),
|
||||||
|
onSurface = Color(0xFFFFFFFF),
|
||||||
|
|
||||||
|
// Surface variants / tints for containers and subtle surfaces
|
||||||
|
surfaceVariant = Color(0xFF000000),
|
||||||
|
onSurfaceVariant = Color(0xFFFFFFFF),
|
||||||
|
surfaceTint = Color(0xFF000000),
|
||||||
|
|
||||||
|
// Primary (controls). Set both primary and primaryContainer to white so
|
||||||
|
// Filled / FilledTonal controls and other components using either token
|
||||||
|
// will have a white container with black text/icons.
|
||||||
|
primary = Color(0xFFFFFFFF),
|
||||||
|
onPrimary = Color(0xFF000000),
|
||||||
|
primaryContainer = Color(0xFFFFFFFF),
|
||||||
|
onPrimaryContainer = Color(0xFF000000),
|
||||||
|
|
||||||
|
// Secondary / tertiary: match primary behavior for consistency across different control types
|
||||||
|
secondary = Color(0xFFFFFFFF),
|
||||||
|
onSecondary = Color(0xFF000000),
|
||||||
|
secondaryContainer = Color(0xFFFFFFFF),
|
||||||
|
onSecondaryContainer = Color(0xFF000000),
|
||||||
|
|
||||||
|
tertiary = Color(0xFFFFFFFF),
|
||||||
|
onTertiary = Color(0xFF000000),
|
||||||
|
tertiaryContainer = Color(0xFFFFFFFF),
|
||||||
|
onTertiaryContainer = Color(0xFF000000),
|
||||||
|
|
||||||
|
// Inverse surfaces for components that might use them
|
||||||
|
inverseSurface = Color(0xFF121212),
|
||||||
|
inverseOnSurface = Color(0xFFFFFFFF),
|
||||||
|
|
||||||
|
// Outline and subtle elements: semi-transparent white for edges/highlights
|
||||||
|
outline = Color(0x66FFFFFF),
|
||||||
|
|
||||||
|
// Preserve error semantics from base (keeps readable error colors)
|
||||||
|
error = baseScheme.error,
|
||||||
|
onError = baseScheme.onError,
|
||||||
|
errorContainer = baseScheme.errorContainer,
|
||||||
|
onErrorContainer = baseScheme.onErrorContainer,
|
||||||
|
)
|
||||||
|
} else baseScheme
|
||||||
|
|
||||||
val customColors = when (darkTheme) {
|
val customColors = when (darkTheme) {
|
||||||
true -> DarkCustomColors
|
true -> DarkCustomColors
|
||||||
false -> LightCustomColors
|
false -> LightCustomColors
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,10 @@ data class CustomColors(
|
||||||
val onWarning: Color,
|
val onWarning: Color,
|
||||||
val warningContainer: Color,
|
val warningContainer: Color,
|
||||||
val onWarningContainer: Color,
|
val onWarningContainer: Color,
|
||||||
|
val instanceCardBackground: Color,
|
||||||
|
val instanceCardContent: Color,
|
||||||
|
val instanceCardButtonContainer: Color,
|
||||||
|
val instanceCardButtonContent: Color,
|
||||||
)
|
)
|
||||||
|
|
||||||
private val YellowAlt1 = Color(0xFFE9C414)
|
private val YellowAlt1 = Color(0xFFE9C414)
|
||||||
|
|
@ -32,6 +36,10 @@ val DarkCustomColors = CustomColors(
|
||||||
onWarning = DarkBrown,
|
onWarning = DarkBrown,
|
||||||
warningContainer = DarkBronze,
|
warningContainer = DarkBronze,
|
||||||
onWarningContainer = Shandy,
|
onWarningContainer = Shandy,
|
||||||
|
instanceCardBackground = Color(0xFF0E0E0E),
|
||||||
|
instanceCardContent = Color(0xFFFFFFFF),
|
||||||
|
instanceCardButtonContainer = Color(0xFFF2F2F2),
|
||||||
|
instanceCardButtonContent = Color(0xFF000000),
|
||||||
)
|
)
|
||||||
|
|
||||||
val LightCustomColors = CustomColors(
|
val LightCustomColors = CustomColors(
|
||||||
|
|
@ -39,4 +47,8 @@ val LightCustomColors = CustomColors(
|
||||||
onWarning = Color.White,
|
onWarning = Color.White,
|
||||||
warningContainer = Shandy,
|
warningContainer = Shandy,
|
||||||
onWarningContainer = DarkerBrown,
|
onWarningContainer = DarkerBrown,
|
||||||
|
instanceCardBackground = Color(0xFFFFFFFF),
|
||||||
|
instanceCardContent = Color(0xFF000000),
|
||||||
|
instanceCardButtonContainer = Color(0xFFFAFAFA),
|
||||||
|
instanceCardButtonContent = Color(0xFF000000),
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -51,8 +51,12 @@
|
||||||
<string name="settings_header_info">Info</string>
|
<string name="settings_header_info">Info</string>
|
||||||
<string name="setting_theme">Theme</string>
|
<string name="setting_theme">Theme</string>
|
||||||
<string name="setting_theme_desc">The theme to apply to this app</string>
|
<string name="setting_theme_desc">The theme to apply to this app</string>
|
||||||
|
<string name="setting_amoled">Amoled mode</string>
|
||||||
|
<string name="setting_amoled_desc">Force true-black backgrounds for AMOLED displays</string>
|
||||||
<string name="setting_dynamic_color">Dynamic color</string>
|
<string name="setting_dynamic_color">Dynamic color</string>
|
||||||
<string name="setting_dynamic_color_desc">Enables Material You theming on Android 12+</string>
|
<string
|
||||||
|
name="setting_dynamic_color_desc"
|
||||||
|
>Enables Material You theming on Android 12+; dynamic colors will also be applied to the Amoled theme when enabled</string>
|
||||||
<string name="setting_installer">Installer</string>
|
<string name="setting_installer">Installer</string>
|
||||||
<string name="setting_installer_desc">The method to use for installing Goon</string>
|
<string name="setting_installer_desc">The method to use for installing Goon</string>
|
||||||
<string name="setting_developer_options">Developer options</string>
|
<string name="setting_developer_options">Developer options</string>
|
||||||
|
|
@ -72,6 +76,7 @@
|
||||||
<string name="theme_system">System</string>
|
<string name="theme_system">System</string>
|
||||||
<string name="theme_dark">Dark</string>
|
<string name="theme_dark">Dark</string>
|
||||||
<string name="theme_light">Light</string>
|
<string name="theme_light">Light</string>
|
||||||
|
<string name="theme_amoled">Amoled</string>
|
||||||
|
|
||||||
<string name="navigation_back">Back</string>
|
<string name="navigation_back">Back</string>
|
||||||
<string name="navigation_about">About</string>
|
<string name="navigation_about">About</string>
|
||||||
|
|
@ -84,7 +89,7 @@
|
||||||
<string name="lead_role_kettu">Kettu - Creator</string>
|
<string name="lead_role_kettu">Kettu - Creator</string>
|
||||||
<string name="lead_role_shiggycord">GoonCord - Creator</string>
|
<string name="lead_role_shiggycord">GoonCord - Creator</string>
|
||||||
<string name="lead_role_bunny">Bunny - Creator</string>
|
<string name="lead_role_bunny">Bunny - Creator</string>
|
||||||
<string name="role_creator_vendetta">Creator of Vendetta</string>
|
<string name="role_creator_vendetta">Vendetta - Creator</string>
|
||||||
<string name="role_original_manager_creator">Original Manager Creator</string>
|
<string name="role_original_manager_creator">Original Manager Creator</string>
|
||||||
|
|
||||||
<string name="network_load_fail">Failed to load</string>
|
<string name="network_load_fail">Failed to load</string>
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue