fix: 设置页所有 UI 元素统一跟随 SETTINGS_THEME 切换
之前只有 buildSettingsGroupPanelView(分组页)检查了 SETTINGS_THEME,但首页面板 buildSettingsHomePanelView 和入口卡片 createSettingsHomeEntry 直接硬编码 getAnimalIslandTheme(),导致切换到 Monet 后首页仍是 动物岛风。 修复: 提取公共方法 applySettingsTheme(T, isDark, C, cfgTpl), 在三个构建位置统一调用: - createSettingsHomeEntry (入口卡片:徽章/标题/按钮颜色) - buildSettingsHomePanelView (设置首页:背景/统计卡/按钮) - buildSettingsGroupPanelView (分组页:背景/卡片/预览开关)
This commit is contained in:
@@ -1,4 +1,33 @@
|
|||||||
// @version 1.0.0
|
// @version 1.0.0
|
||||||
|
|
||||||
|
// 根据当前 SETTINGS_THEME 覆盖 T(Animal Island 配色对象),
|
||||||
|
// 使设置页所有 UI 元素(首页/分组页/入口卡片)统一跟随主题切换。
|
||||||
|
// 传入 T、isDark、C(this.ui.colors)、cfgTpl(配置源),直接修改 T 的字段。
|
||||||
|
FloatBallAppWM.prototype.applySettingsTheme = function(T, isDark, C, cfgTpl) {
|
||||||
|
var settTheme = String((cfgTpl || this.config).SETTINGS_THEME || "animal");
|
||||||
|
if (settTheme !== "monet") return;
|
||||||
|
try {
|
||||||
|
var Color = android.graphics.Color;
|
||||||
|
var monetBg = isDark ? C.bgDark : C.bgLight;
|
||||||
|
var monetTxt = isDark ? C.textPriDark : C.textPriLight;
|
||||||
|
var monetCard = isDark ? C.cardDark : C.cardLight;
|
||||||
|
var monetSub = isDark ? C.textSecDark : C.textSecLight;
|
||||||
|
var monetPrimary = C.primary;
|
||||||
|
var monetOnP = C._monetOnPrimary || (isDark ? Color.parseColor("#062E6F") : Color.WHITE);
|
||||||
|
T.bg = monetBg;
|
||||||
|
T.card = monetCard;
|
||||||
|
T.card2 = monetCard;
|
||||||
|
T.text = monetTxt;
|
||||||
|
T.sub = monetSub;
|
||||||
|
T.primary = monetPrimary;
|
||||||
|
T.primaryDeep = monetPrimary;
|
||||||
|
T.primarySoft = isDark ? this.withAlpha(monetPrimary, 0.20) : this.withAlpha(monetPrimary, 0.10);
|
||||||
|
T.brown = monetSub;
|
||||||
|
T.stroke = isDark ? this.withAlpha(monetTxt, 0.16) : this.withAlpha(monetTxt, 0.12);
|
||||||
|
T.onPrimary = monetOnP;
|
||||||
|
} catch(e) { safeLog(null, 'e', "catch " + String(e)); }
|
||||||
|
};
|
||||||
|
|
||||||
FloatBallAppWM.prototype.getSettingsGroupDefs = function() {
|
FloatBallAppWM.prototype.getSettingsGroupDefs = function() {
|
||||||
return [
|
return [
|
||||||
{ key: "ball", title: "漂浮气球", desc: "调整气球大小、图标和跟随距离", sections: ["悬浮球"] },
|
{ key: "ball", title: "漂浮气球", desc: "调整气球大小、图标和跟随距离", sections: ["悬浮球"] },
|
||||||
@@ -38,6 +67,8 @@ FloatBallAppWM.prototype.createSettingsHomeEntry = function(parent, title, desc,
|
|||||||
var isDark = this.isDarkTheme();
|
var isDark = this.isDarkTheme();
|
||||||
var C = this.ui.colors;
|
var C = this.ui.colors;
|
||||||
var T = this.getAnimalIslandTheme();
|
var T = this.getAnimalIslandTheme();
|
||||||
|
var cfgTpl = this.state.pendingUserCfg ? this.state.pendingUserCfg : this.config;
|
||||||
|
this.applySettingsTheme(T, isDark, C, cfgTpl);
|
||||||
var cardColor = T.card;
|
var cardColor = T.card;
|
||||||
var textColor = T.text;
|
var textColor = T.text;
|
||||||
var subTextColor = T.sub;
|
var subTextColor = T.sub;
|
||||||
@@ -111,6 +142,8 @@ FloatBallAppWM.prototype.buildSettingsHomePanelView = function() {
|
|||||||
var isDark = this.isDarkTheme();
|
var isDark = this.isDarkTheme();
|
||||||
var C = this.ui.colors;
|
var C = this.ui.colors;
|
||||||
var T = this.getAnimalIslandTheme();
|
var T = this.getAnimalIslandTheme();
|
||||||
|
var cfgTpl = this.state.pendingUserCfg ? this.state.pendingUserCfg : this.config;
|
||||||
|
this.applySettingsTheme(T, isDark, C, cfgTpl);
|
||||||
var bgColor = T.bg;
|
var bgColor = T.bg;
|
||||||
var subTextColor = T.sub;
|
var subTextColor = T.sub;
|
||||||
var panel = this.ui.createStyledPanel(this, 16);
|
var panel = this.ui.createStyledPanel(this, 16);
|
||||||
@@ -259,29 +292,7 @@ FloatBallAppWM.prototype.buildSettingsGroupPanelView = function() {
|
|||||||
|
|
||||||
// 设置页主题切换:animal(默认动物岛风)或 monet(系统莫奈色)
|
// 设置页主题切换:animal(默认动物岛风)或 monet(系统莫奈色)
|
||||||
var cfgTpl = this.state.pendingUserCfg ? this.state.pendingUserCfg : this.config;
|
var cfgTpl = this.state.pendingUserCfg ? this.state.pendingUserCfg : this.config;
|
||||||
var settTheme = String(cfgTpl.SETTINGS_THEME || "animal");
|
this.applySettingsTheme(T, isDark, C, cfgTpl);
|
||||||
if (settTheme === "monet") {
|
|
||||||
try {
|
|
||||||
var Color = android.graphics.Color;
|
|
||||||
var monetBg = isDark ? C.bgDark : C.bgLight;
|
|
||||||
var monetTxt = isDark ? C.textPriDark : C.textPriLight;
|
|
||||||
var monetCard = isDark ? C.cardDark : C.cardLight;
|
|
||||||
var monetSub = isDark ? C.textSecDark : C.textSecLight;
|
|
||||||
var monetPrimary = C.primary;
|
|
||||||
var monetOnP = C._monetOnPrimary || (isDark ? Color.parseColor("#062E6F") : Color.WHITE);
|
|
||||||
T.bg = monetBg;
|
|
||||||
T.card = monetCard;
|
|
||||||
T.card2 = monetCard;
|
|
||||||
T.text = monetTxt;
|
|
||||||
T.sub = monetSub;
|
|
||||||
T.primary = monetPrimary;
|
|
||||||
T.primaryDeep = monetPrimary;
|
|
||||||
T.primarySoft = isDark ? this.withAlpha(monetPrimary, 0.20) : this.withAlpha(monetPrimary, 0.10);
|
|
||||||
T.brown = monetSub;
|
|
||||||
T.stroke = isDark ? this.withAlpha(monetTxt, 0.16) : this.withAlpha(monetTxt, 0.12);
|
|
||||||
T.onPrimary = monetOnP;
|
|
||||||
} catch(eM) { safeLog(null, 'e', "catch " + String(eM)); }
|
|
||||||
}
|
|
||||||
|
|
||||||
var bgColor = T.bg;
|
var bgColor = T.bg;
|
||||||
var cardColor = T.card;
|
var cardColor = T.card;
|
||||||
|
|||||||
@@ -54,8 +54,8 @@
|
|||||||
"size": 20392
|
"size": 20392
|
||||||
},
|
},
|
||||||
"th_14_panels.js": {
|
"th_14_panels.js": {
|
||||||
"sha256": "9e8200cd2b4855484952501aa5e838e0ee57da83251c57ad7a8ca85c0f169e64",
|
"sha256": "a998d4d73051d2c9b5be57e570a51fa9cb4ffff1a9c8d5cff6f15a5c717311bb",
|
||||||
"size": 244802
|
"size": 245438
|
||||||
},
|
},
|
||||||
"th_15_extra.js": {
|
"th_15_extra.js": {
|
||||||
"sha256": "b607620f1900c1bd93ccbec8d901d4de53b3d36e9373877f4264442f79b9b956",
|
"sha256": "b607620f1900c1bd93ccbec8d901d4de53b3d36e9373877f4264442f79b9b956",
|
||||||
@@ -68,5 +68,5 @@
|
|||||||
},
|
},
|
||||||
"keyId": "toolhub-targets-2026-rsa3072",
|
"keyId": "toolhub-targets-2026-rsa3072",
|
||||||
"schema": 2,
|
"schema": 2,
|
||||||
"version": 20260514182651
|
"version": 20260514182858
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
CTWxWiKLfuIdWR5aH+sgiWC947wRH4pwSxMikOJ6uazbLqUYPijmC3J5l6QgQXnhV1GBDhTgLi3vseHqybCZ0L2eZFAAN9unxV17kRs5dyy+TUCBA3BWwkWLwHASNN4d6EqO7fTf5LhhcHd87yUKJjhSgTYvjr2Shb+qO0vOgaWUYE6C/H73MO82FcaiyGF3KXcLonWexojrwskwu5SZ8NF8mXIoobfm2Um5m81pDbzDa1s/q0SZzAvPE9a3Yx0Y7xJuxYJW/ssSLq9IvQ8s4eNQOrU7Te9kXFn4b7N5k8RM9YjxSnAQV01wvLOWn3dIqs+iDormLXqyL0HKOrUPxIKB83oUI3yl9Vg2mNrwm2ucNXqrvErQ/NK4b2vmHo6G+dddacSFRIx+jHKTmETfHk0e7+J2iSQKnQx5AsfNR+CP7JKoteZypI6yb+LP0GyYY3M9lkwGtD9kNc4f/YdbVMRdWVwXpnXjBhvmqXZsUV5U6Veb4g+TssH3MhsTpZ27
|
dnlTNj0xaNuD3ovfDT5K25pIf3pe9cFqkgSVAUPO9NVReyXhJt2GU5S4H1OeayT2QF4GEB2SjsvDCLfmN4RFYrP99yhOdJ66zz1mgI8BNNorjRmR9kqs3REdDrZqUuMD50Nqebr01RrHUnksDIESf7Li9fnsFCpPSco+HEzU8tqkJiBv9en7R5rh7dYuMa1Hz7WVc7jRQsqWgnaPSH7czL5Ffv0R889Sa/PRwUJvWb462rDM0YMrjXJPcTCueX10ycgvvzPKfIBCAkG2MeWSfuL9TbDn+Dbe9am8og7bH3kMCduU7SyV7avVAo8M+x2NP4osVgageMAe8O4HLUXxUeDfAreoPSSHtSCYwd7bP7sjr1RS8s8WxubKUAc1Koqwf82kLar4ODPmLVgCW3U9O7pBNIdsZ3hpj4K+o35+Nn7X0vmeUfwVtNG8nOSQFGMshT60dasmOdefkU8OxdAc9rlS44QK8H/GS+6E7WAONUFYZxncgDh8ibHa7SFz8BKm
|
||||||
|
|||||||
Reference in New Issue
Block a user