Add card darkness adjustment function
- Updated some string translations
This commit is contained in:
@@ -40,6 +40,7 @@ import androidx.compose.material.icons.filled.DarkMode
|
||||
import androidx.compose.material.icons.filled.KeyboardArrowDown
|
||||
import androidx.compose.material.icons.filled.KeyboardArrowUp
|
||||
import androidx.compose.material.icons.filled.Language
|
||||
import androidx.compose.material.icons.filled.LightMode
|
||||
import androidx.compose.material.icons.filled.Opacity
|
||||
import androidx.compose.material.icons.filled.Palette
|
||||
import androidx.compose.material.icons.filled.Security
|
||||
@@ -345,6 +346,7 @@ fun MoreSettingsScreen(navigator: DestinationsNavigator) {
|
||||
|
||||
// 卡片配置状态
|
||||
var cardAlpha by rememberSaveable { mutableFloatStateOf(CardConfig.cardAlpha) }
|
||||
var cardDim by rememberSaveable { mutableFloatStateOf(CardConfig.cardDim) }
|
||||
var isCustomBackgroundEnabled by rememberSaveable {
|
||||
mutableStateOf(ThemeConfig.customBackgroundUri != null)
|
||||
}
|
||||
@@ -393,6 +395,7 @@ fun MoreSettingsScreen(navigator: DestinationsNavigator) {
|
||||
// 加载设置
|
||||
CardConfig.load(context)
|
||||
cardAlpha = CardConfig.cardAlpha
|
||||
cardDim = CardConfig.cardDim
|
||||
isCustomBackgroundEnabled = ThemeConfig.customBackgroundUri != null
|
||||
|
||||
// 设置主题模式
|
||||
@@ -699,10 +702,13 @@ fun MoreSettingsScreen(navigator: DestinationsNavigator) {
|
||||
isCustomBackgroundEnabled = false
|
||||
CardConfig.cardElevation
|
||||
CardConfig.cardAlpha = 1f
|
||||
CardConfig.cardDim = 0f
|
||||
CardConfig.isCustomAlphaSet = false
|
||||
CardConfig.isCustomDimSet = false
|
||||
CardConfig.isCustomBackgroundEnabled = false
|
||||
saveCardConfig(context)
|
||||
cardAlpha = 1f
|
||||
cardDim = 0f
|
||||
|
||||
// 重置其他相关设置
|
||||
ThemeConfig.needsResetOnThemeChange = true
|
||||
@@ -730,7 +736,7 @@ fun MoreSettingsScreen(navigator: DestinationsNavigator) {
|
||||
)
|
||||
)
|
||||
|
||||
// 透明度 Slider
|
||||
// 透明度和亮度调节滑动条
|
||||
AnimatedVisibility(
|
||||
visible = ThemeConfig.customBackgroundUri != null,
|
||||
enter = fadeIn() + expandVertically(),
|
||||
@@ -738,6 +744,7 @@ fun MoreSettingsScreen(navigator: DestinationsNavigator) {
|
||||
modifier = Modifier.padding(horizontal = 32.dp)
|
||||
) {
|
||||
Column(modifier = Modifier.padding(vertical = 8.dp)) {
|
||||
// 透明度滑动条
|
||||
Row(
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
modifier = Modifier.padding(bottom = 4.dp)
|
||||
@@ -785,6 +792,55 @@ fun MoreSettingsScreen(navigator: DestinationsNavigator) {
|
||||
inactiveTrackColor = MaterialTheme.colorScheme.surfaceVariant
|
||||
)
|
||||
)
|
||||
|
||||
// 亮度调节滑动条
|
||||
Row(
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
modifier = Modifier.padding(top = 16.dp, bottom = 4.dp)
|
||||
) {
|
||||
Icon(
|
||||
Icons.Filled.LightMode,
|
||||
contentDescription = null,
|
||||
modifier = Modifier.size(20.dp),
|
||||
tint = MaterialTheme.colorScheme.primary
|
||||
)
|
||||
Spacer(modifier = Modifier.width(8.dp))
|
||||
Text(
|
||||
text = stringResource(R.string.settings_card_dim),
|
||||
style = MaterialTheme.typography.titleSmall
|
||||
)
|
||||
Spacer(modifier = Modifier.weight(1f))
|
||||
Text(
|
||||
text = "${(cardDim * 100).roundToInt()}%",
|
||||
style = MaterialTheme.typography.labelMedium,
|
||||
color = MaterialTheme.colorScheme.onSurfaceVariant
|
||||
)
|
||||
}
|
||||
|
||||
Slider(
|
||||
value = cardDim,
|
||||
onValueChange = { newValue ->
|
||||
cardDim = newValue
|
||||
CardConfig.cardDim = newValue
|
||||
CardConfig.isCustomDimSet = true
|
||||
prefs.edit {
|
||||
putBoolean("is_custom_dim_set", true)
|
||||
putFloat("card_dim", newValue)
|
||||
}
|
||||
},
|
||||
onValueChangeFinished = {
|
||||
coroutineScope.launch(Dispatchers.IO) {
|
||||
saveCardConfig(context)
|
||||
}
|
||||
},
|
||||
valueRange = 0f..1f,
|
||||
steps = 20,
|
||||
colors = SliderDefaults.colors(
|
||||
thumbColor = MaterialTheme.colorScheme.primary,
|
||||
activeTrackColor = MaterialTheme.colorScheme.primary,
|
||||
inactiveTrackColor = MaterialTheme.colorScheme.surfaceVariant
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1144,6 +1200,9 @@ fun MoreSettingsScreen(navigator: DestinationsNavigator) {
|
||||
if (!CardConfig.isCustomAlphaSet) {
|
||||
CardConfig.cardAlpha = 1f
|
||||
}
|
||||
if (!CardConfig.isCustomDimSet) {
|
||||
CardConfig.cardDim = 0.5f
|
||||
}
|
||||
CardConfig.save(context)
|
||||
}
|
||||
1 -> { // 浅色
|
||||
@@ -1153,6 +1212,9 @@ fun MoreSettingsScreen(navigator: DestinationsNavigator) {
|
||||
if (!CardConfig.isCustomAlphaSet) {
|
||||
CardConfig.cardAlpha = 1f
|
||||
}
|
||||
if (!CardConfig.isCustomDimSet) {
|
||||
CardConfig.cardDim = 0f
|
||||
}
|
||||
CardConfig.save(context)
|
||||
}
|
||||
0 -> { // 跟随系统
|
||||
|
||||
@@ -5,6 +5,7 @@ import androidx.compose.foundation.isSystemInDarkTheme
|
||||
import androidx.compose.material3.CardDefaults
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableFloatStateOf
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.graphics.Color
|
||||
@@ -16,10 +17,15 @@ object CardConfig {
|
||||
val settingElevation: Dp = 4.dp
|
||||
val customBackgroundElevation: Dp = 0.dp
|
||||
|
||||
var cardAlpha by mutableStateOf(1f)
|
||||
// 卡片透明度
|
||||
var cardAlpha by mutableFloatStateOf(1f)
|
||||
// 卡片亮度
|
||||
var cardDim by mutableFloatStateOf(0f)
|
||||
// 卡片阴影
|
||||
var cardElevation by mutableStateOf(settingElevation)
|
||||
var isShadowEnabled by mutableStateOf(true)
|
||||
var isCustomAlphaSet by mutableStateOf(false)
|
||||
var isCustomDimSet by mutableStateOf(false)
|
||||
var isUserDarkModeEnabled by mutableStateOf(false)
|
||||
var isUserLightModeEnabled by mutableStateOf(false)
|
||||
var isCustomBackgroundEnabled by mutableStateOf(false)
|
||||
@@ -31,9 +37,11 @@ object CardConfig {
|
||||
val prefs = context.getSharedPreferences("settings", Context.MODE_PRIVATE)
|
||||
prefs.edit().apply {
|
||||
putFloat("card_alpha", cardAlpha)
|
||||
putFloat("card_dim", cardDim)
|
||||
putBoolean("custom_background_enabled", isCustomBackgroundEnabled)
|
||||
putBoolean("is_shadow_enabled", isShadowEnabled)
|
||||
putBoolean("is_custom_alpha_set", isCustomAlphaSet)
|
||||
putBoolean("is_custom_dim_set", isCustomDimSet)
|
||||
putBoolean("is_user_dark_mode_enabled", isUserDarkModeEnabled)
|
||||
putBoolean("is_user_light_mode_enabled", isUserLightModeEnabled)
|
||||
apply()
|
||||
@@ -46,9 +54,11 @@ object CardConfig {
|
||||
fun load(context: Context) {
|
||||
val prefs = context.getSharedPreferences("settings", Context.MODE_PRIVATE)
|
||||
cardAlpha = prefs.getFloat("card_alpha", 1f)
|
||||
cardDim = prefs.getFloat("card_dim", 0f)
|
||||
isCustomBackgroundEnabled = prefs.getBoolean("custom_background_enabled", false)
|
||||
isShadowEnabled = prefs.getBoolean("is_shadow_enabled", true)
|
||||
isCustomAlphaSet = prefs.getBoolean("is_custom_alpha_set", false)
|
||||
isCustomDimSet = prefs.getBoolean("is_custom_dim_set", false)
|
||||
isUserDarkModeEnabled = prefs.getBoolean("is_user_dark_mode_enabled", false)
|
||||
isUserLightModeEnabled = prefs.getBoolean("is_user_light_mode_enabled", false)
|
||||
updateShadowEnabled(isShadowEnabled)
|
||||
@@ -72,9 +82,25 @@ object CardConfig {
|
||||
* 设置深色模式默认值
|
||||
*/
|
||||
fun setDarkModeDefaults() {
|
||||
if (!isCustomAlphaSet) {
|
||||
cardAlpha = 0.70f
|
||||
}
|
||||
if (!isCustomDimSet) {
|
||||
cardDim = 0.5f
|
||||
}
|
||||
updateShadowEnabled(isShadowEnabled)
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置浅色模式默认值
|
||||
*/
|
||||
fun setLightModeDefaults() {
|
||||
if (!isCustomAlphaSet) {
|
||||
cardAlpha = 1f
|
||||
}
|
||||
if (!isCustomDimSet) {
|
||||
cardDim = 0f
|
||||
}
|
||||
updateShadowEnabled(isShadowEnabled)
|
||||
}
|
||||
}
|
||||
@@ -104,4 +130,4 @@ private fun determineContentColor(originalColor: Color): Color {
|
||||
isDarkTheme -> Color.White
|
||||
else -> if (originalColor.luminance() > 0.5f) Color.Black else Color.White
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -110,6 +110,9 @@ fun KernelSUTheme(
|
||||
if (!isCustomAlphaSet) {
|
||||
cardAlpha = if (systemIsDark) 0.50f else 1f
|
||||
}
|
||||
if (!isCustomDimSet) {
|
||||
cardDim = if (systemIsDark) 0.5f else 0f
|
||||
}
|
||||
save(context)
|
||||
}
|
||||
}
|
||||
@@ -148,6 +151,8 @@ fun KernelSUTheme(
|
||||
val isDarkModeWithCustomBackground = darkTheme && ThemeConfig.customBackgroundUri != null
|
||||
if (darkTheme && !dynamicColor) {
|
||||
CardConfig.setDarkModeDefaults()
|
||||
} else if (!darkTheme && !dynamicColor) {
|
||||
CardConfig.setLightModeDefaults()
|
||||
}
|
||||
CardConfig.updateShadowEnabled(!isDarkModeWithCustomBackground)
|
||||
|
||||
@@ -199,6 +204,9 @@ fun KernelSUTheme(
|
||||
}
|
||||
}
|
||||
|
||||
// 计算适用的暗化值
|
||||
val dimFactor = CardConfig.cardDim
|
||||
|
||||
MaterialTheme(
|
||||
colorScheme = colorScheme,
|
||||
typography = Typography
|
||||
@@ -234,13 +242,13 @@ fun KernelSUTheme(
|
||||
)
|
||||
}
|
||||
|
||||
// 亮度调节层
|
||||
// 亮度调节层 (根据cardDim调整)
|
||||
Box(
|
||||
modifier = Modifier
|
||||
.fillMaxSize()
|
||||
.background(
|
||||
if (darkTheme) Color.Black.copy(alpha = 0.6f)
|
||||
else Color.White.copy(alpha = 0.1f)
|
||||
if (darkTheme) Color.Black.copy(alpha = 0.6f + dimFactor * 0.3f)
|
||||
else Color.White.copy(alpha = 0.1f + dimFactor * 0.2f)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -252,8 +260,8 @@ fun KernelSUTheme(
|
||||
Brush.radialGradient(
|
||||
colors = listOf(
|
||||
Color.Transparent,
|
||||
if (darkTheme) Color.Black.copy(alpha = 0.5f)
|
||||
else Color.Black.copy(alpha = 0.2f)
|
||||
if (darkTheme) Color.Black.copy(alpha = 0.5f + dimFactor * 0.2f)
|
||||
else Color.Black.copy(alpha = 0.2f + dimFactor * 0.1f)
|
||||
),
|
||||
radius = 1200f
|
||||
)
|
||||
|
||||
@@ -305,23 +305,50 @@
|
||||
<string name="app_settings">アプリの設定</string>
|
||||
<string name="tools">ツール</string>
|
||||
<string name="currently_selected">現在</string>
|
||||
<!-- String resources used in SuperUser -->
|
||||
<string name="clear">削除</string>
|
||||
<string name="apps_with_root">root アプリの権限</string>
|
||||
<string name="apps_with_custom_profile">カスタマイズされたアプリ構成</string>
|
||||
<!-- SuperUser 里用到的字符串资源 -->
|
||||
<string name="clear">クリア</string>
|
||||
<string name="apps_with_root">ルートアクセスの許可</string>
|
||||
<string name="apps_with_custom_profile">カスタムアプリの設定</string>
|
||||
<string name="other_apps">その他のアプリ</string>
|
||||
<string name="no_apps_found">アプリがありません</string>
|
||||
<string name="selinux_enabled_toast">SELinux 有効</string>
|
||||
<string name="selinux_disabled_toast">SELinux 無効</string>
|
||||
<string name="selinux_change_failed">SELinux ステータスの変更に失敗しました</string>
|
||||
<string name="advanced_settings">高度な設定</string>
|
||||
<string name="appearance_settings">ツールバーをカスタマイズ</string>
|
||||
<string name="no_apps_found">アプリが見つかりません</string>
|
||||
<string name="selinux_enabled_toast">SELinux を有効にするステータスを設定します</string>
|
||||
<string name="selinux_disabled_toast">SELinux は Permissive に設定されています</string>
|
||||
<string name="selinux_change_failed">SELinux 状態の変更に失敗しました</string>
|
||||
<string name="advanced_settings">詳細設定</string>
|
||||
<string name="appearance_settings">外観設定</string>
|
||||
<string name="back">戻る</string>
|
||||
<string name="expand">最高の状態</string>
|
||||
<string name="collapse">設置</string>
|
||||
<string name="expand">表示する</string>
|
||||
<string name="collapse">收起</string>
|
||||
<string name="susfs_enabled">SuSFS 有効</string>
|
||||
<string name="susfs_disabled">SuSFS 無効</string>
|
||||
<string name="background_set_success">背景の設定が成功しました</string>
|
||||
<string name="background_removed">カスタム背景を削除しました</string>
|
||||
<string name="root_require_for_install">root 権限が必要</string>
|
||||
<string name="background_set_success">設定は正常に更新されました</string>
|
||||
<string name="background_removed">カスタム背景を削除しています</string>
|
||||
<string name="root_require_for_install">Root権限が必要です</string>
|
||||
<!-- KPM 显示设置相关 -->
|
||||
<string name="show_kpm_info">KPMを表示</string>
|
||||
<string name="show_kpm_info_summary">ホーム画面と底バーで KPM に関する情報を表示します(アプリを再度開く必要があります)</string>
|
||||
<!-- Webui X 设置相关 -->
|
||||
<string name="use_webuix">WebUI X を使用</string>
|
||||
<string name="use_webuix_summary">WebUIではなく、より API をサポートする Web UI X</string>
|
||||
<string name="use_webuix_eruda">Eruda に Web UI X を注入</string>
|
||||
<string name="use_webuix_eruda_summary">WebUI Xでデバッグコンソールの注入ができます。デバッグが簡単になりやすいように、WebView のデバッグを有効にする必要があります</string>
|
||||
<!-- DPI设置相关字符串 -->
|
||||
<string name="dpi_settings">DPI 設定</string>
|
||||
<string name="app_dpi_title">DPI を使用</string>
|
||||
<string name="app_dpi_summary">画面密度を現在のアプリの画面解像度に合わせる</string>
|
||||
<string name="dpi_size_small">小</string>
|
||||
<string name="dpi_size_medium">中</string>
|
||||
<string name="dpi_size_large">大きく</string>
|
||||
<string name="dpi_size_extra_large">特大</string>
|
||||
<string name="dpi_size_custom">カスタム</string>
|
||||
<string name="dpi_apply_settings">DPI 設定のセットアップ</string>
|
||||
<string name="dpi_confirm_title">画素密度を変更確認</string>
|
||||
<string name="dpi_confirm_message">DPI を %1$d から %2$d に変更してもよろしいですか?</string>
|
||||
<string name="dpi_confirm_summary">アプリの再起動が必要です DPIの設定はシステムステータスバーや他のアプリには影響しません</string>
|
||||
<string name="dpi_applied_success">DPI は %1$dに設定され、アプリを再起動後に適用されます</string>
|
||||
<!-- 语言设置相关字符串 -->
|
||||
<string name="language_setting">アプリの言語</string>
|
||||
<string name="language_follow_system">システムに従う</string>
|
||||
<string name="language_changed">変更を適用するには言語の再起動が必要です</string>
|
||||
<string name="settings_card_dim">暗さされたカード(暗い部分)</string>
|
||||
</resources>
|
||||
|
||||
@@ -36,11 +36,11 @@
|
||||
<string name="settings">Cài đặt</string>
|
||||
<string name="reboot_userspace">Khởi động lại không gian người dùng</string>
|
||||
<string name="reboot_recovery">Khởi động lại vào Recovery</string>
|
||||
<string name="reboot_bootloader">hởi động lại vào Bootloader</string>
|
||||
<string name="reboot_bootloader">Khởi động lại vào Bootloader</string>
|
||||
<string name="reboot_download">Khởi động lại vào Download Mode</string>
|
||||
<string name="reboot_edl">Khởi động lại vào EDL</string>
|
||||
<string name="about">Thông tin</string>
|
||||
<string name="module_uninstall_confirm">Bạn có THẬT SỰ muốn gỡ module %s?</string>
|
||||
<string name="module_uninstall_confirm">Bạn có THẬT SỰ muốn gỡ cài đặt module %s không?</string>
|
||||
<string name="module_uninstall_success">%s đã được gỡ cài đặt</string>
|
||||
<string name="module_uninstall_failed">Gỡ cài đặt thất bại: %s</string>
|
||||
<string name="module_version">Phiên bản</string>
|
||||
@@ -58,7 +58,7 @@
|
||||
<string name="home_support_title">Hỗ trợ chúng tôi</string>
|
||||
<string name="home_support_content">KernelSU sẽ luôn là miễn phí và mã nguồn mở. Tuy nhiên, bạn có thể cho chúng tôi thấy rằng bạn quan tâm bằng cách quyên góp.</string>
|
||||
<string name="about_source_code"><![CDATA[Xem mã nguồn tại %1$s<br/>Tham gia kênh %2$s của chúng tôi]]></string>
|
||||
<string name="profile" translatable="false">App Profile</string>
|
||||
<string name="profile" translatable="false">Hồ sơ ứng dụng</string>
|
||||
<string name="profile_default">Mặc định</string>
|
||||
<string name="profile_template">Bản mẫu</string>
|
||||
<string name="profile_custom">Tuỳ chỉnh</string>
|
||||
@@ -139,7 +139,7 @@
|
||||
<string name="log_saved">Logs đã được lưu</string>
|
||||
<string name="status_supported">Được hỗ trợ</string>
|
||||
<string name="status_not_supported">Không được hỗ trợ</string>
|
||||
<string name="status_unknown">Unknown</string>
|
||||
<string name="status_unknown">Không rõ</string>
|
||||
<string name="sus_su_mode">Chế độ SU của SuS:</string>
|
||||
<!-- Module related -->
|
||||
<string name="module_install_confirm">Xác nhận cài đặt Module %1$s?</string>
|
||||
@@ -180,7 +180,7 @@
|
||||
<string name="settings_disable_su">Vô hiệu hoá khả năng của lệnh SU</string>
|
||||
<string name="settings_disable_su_summary">Vô hiệu hoá khả năng thực thi lệnh SU để lấy quyền root (những app đã cấp trước đó không bị ảnh hưởng).</string>
|
||||
<string name="using_mksu_manager">Bạn đang sử dụng trình quản lý SukiSU Beta</string>
|
||||
<string name="module_install_multiple_confirm">Bạn có chắc muốn cài đặt các Module %d đã chọn không??</string>
|
||||
<string name="module_install_multiple_confirm">Bạn có chắc muốn cài đặt các Module %d đã chọn không?</string>
|
||||
<string name="module_install_multiple_confirm_with_names">Bạn có chắc muốn cài đặt các module %1$d sau không? \n\n%2$s</string>
|
||||
<string name="more_settings">Nhiều thiết lập hơn</string>
|
||||
<string name="selinux">SELinux</string>
|
||||
@@ -247,7 +247,7 @@
|
||||
<string name="home_click_to_ContributionCard_kernelsu">SukiSU Ultra sẽ là một nhánh tương đối độc lập của KSU trong tương lai, nhưng chúng tôi xin cảm ơn KernelSU và MKSU,... vì những đóng góp của họ!</string>
|
||||
<string name="not_supported">Không được hỗ trợ</string>
|
||||
<string name="supported">Được hỗ trợ</string>
|
||||
<string name="home_kpm_module">"Module KPM: %d "</string>
|
||||
<string name="home_kpm_module">Module KPM: %d</string>
|
||||
<string name="kpm_invalid_file">Tệp KPM không hợp lệ</string>
|
||||
<string name="kernel_patched">Kernel chưa được vá</string>
|
||||
<string name="kernel_not_enabled">Kernel chưa được cấu hình</string>
|
||||
@@ -350,4 +350,5 @@
|
||||
<string name="language_setting">Ngôn ngữ ứng dụng</string>
|
||||
<string name="language_follow_system">Theo dõi hệ thống</string>
|
||||
<string name="language_changed">Ngôn ngữ đã thay đổi, khởi động lại để áp dụng thay đổi</string>
|
||||
<string name="settings_card_dim">Điều chỉnh độ tối của thẻ</string>
|
||||
</resources>
|
||||
|
||||
@@ -346,4 +346,5 @@
|
||||
<string name="language_setting">应用语言</string>
|
||||
<string name="language_follow_system">跟随系统</string>
|
||||
<string name="language_changed">语言已更改,重启应用以应用更改</string>
|
||||
<string name="settings_card_dim">卡片暗度调节</string>
|
||||
</resources>
|
||||
|
||||
@@ -350,4 +350,5 @@
|
||||
<string name="language_setting">App Language</string>
|
||||
<string name="language_follow_system">Follow System</string>
|
||||
<string name="language_changed">Language changed, restarting to apply changes</string>
|
||||
<string name="settings_card_dim">Card Darkness Adjustment</string>
|
||||
</resources>
|
||||
|
||||
Reference in New Issue
Block a user