feat: add floating ball background color setting
This commit is contained in:
@@ -130,6 +130,7 @@ var ConfigValidator = {
|
|||||||
BALL_ICON_PKG: { type: "string", default: "" },
|
BALL_ICON_PKG: { type: "string", default: "" },
|
||||||
BALL_ICON_RES_NAME: { type: "string", default: "" },
|
BALL_ICON_RES_NAME: { type: "string", default: "" },
|
||||||
BALL_ICON_TINT_HEX: { type: "string", default: "" },
|
BALL_ICON_TINT_HEX: { type: "string", default: "" },
|
||||||
|
BALL_BG_COLOR_HEX: { type: "string", default: "" },
|
||||||
|
|
||||||
// 回弹动画配置
|
// 回弹动画配置
|
||||||
BOUNCE_DECAY: { type: "float", min: 0.3, max: 0.95, default: 0.72 },
|
BOUNCE_DECAY: { type: "float", min: 0.3, max: 0.95, default: 0.72 },
|
||||||
@@ -741,6 +742,7 @@ var ConfigManager = {
|
|||||||
BALL_ICON_RES_NAME: "",
|
BALL_ICON_RES_NAME: "",
|
||||||
BALL_ICON_SIZE_DP: 22,
|
BALL_ICON_SIZE_DP: 22,
|
||||||
BALL_ICON_TINT_HEX: "",
|
BALL_ICON_TINT_HEX: "",
|
||||||
|
BALL_BG_COLOR_HEX: "",
|
||||||
BALL_IDLE_ALPHA: 0.6,
|
BALL_IDLE_ALPHA: 0.6,
|
||||||
PANEL_POS_GRAVITY: "bottom",
|
PANEL_POS_GRAVITY: "bottom",
|
||||||
PANEL_CUSTOM_OFFSET_Y: 0,
|
PANEL_CUSTOM_OFFSET_Y: 0,
|
||||||
@@ -793,7 +795,8 @@ var ConfigManager = {
|
|||||||
]},
|
]},
|
||||||
{ key: "BALL_ICON_FILE_PATH", name: "已选择的图标文件", type: "text" },
|
{ key: "BALL_ICON_FILE_PATH", name: "已选择的图标文件", type: "text" },
|
||||||
{ key: "BALL_ICON_RES_NAME", name: "岛上图标", type: "ball_shortx_icon" },
|
{ key: "BALL_ICON_RES_NAME", name: "岛上图标", type: "ball_shortx_icon" },
|
||||||
{ key: "BALL_ICON_TINT_HEX", name: "气球颜色", type: "ball_color" },
|
{ key: "BALL_ICON_TINT_HEX", name: "徽章颜色", type: "ball_color" },
|
||||||
|
{ key: "BALL_BG_COLOR_HEX", name: "球体背景", type: "ball_color" },
|
||||||
{ key: "BALL_IDLE_ALPHA", name: "安静时透明度", type: "float", min: 0.1, max: 1.0, step: 0.05 },
|
{ key: "BALL_IDLE_ALPHA", name: "安静时透明度", type: "float", min: 0.1, max: 1.0, step: 0.05 },
|
||||||
|
|
||||||
{ type: "section", name: "面板布局" },
|
{ type: "section", name: "面板布局" },
|
||||||
@@ -870,7 +873,7 @@ var ConfigManager = {
|
|||||||
var needReset = false;
|
var needReset = false;
|
||||||
if (s) {
|
if (s) {
|
||||||
var sStr = JSON.stringify(s);
|
var sStr = JSON.stringify(s);
|
||||||
if (sStr.indexOf("ENABLE_SNAP_TO_EDGE") < 0 || sStr.indexOf("ENABLE_ANIMATIONS") < 0 || sStr.indexOf("BALL_IDLE_ALPHA") < 0 || sStr.indexOf("PANEL_POS_GRAVITY") < 0 || sStr.indexOf("single_choice") < 0 || sStr.indexOf("ball_shortx_icon") < 0 || sStr.indexOf("ball_color") < 0 || sStr.indexOf("SETTINGS_THEME") < 0) {
|
if (sStr.indexOf("ENABLE_SNAP_TO_EDGE") < 0 || sStr.indexOf("ENABLE_ANIMATIONS") < 0 || sStr.indexOf("BALL_IDLE_ALPHA") < 0 || sStr.indexOf("PANEL_POS_GRAVITY") < 0 || sStr.indexOf("single_choice") < 0 || sStr.indexOf("ball_shortx_icon") < 0 || sStr.indexOf("ball_color") < 0 || sStr.indexOf("SETTINGS_THEME") < 0 || sStr.indexOf("BALL_BG_COLOR_HEX") < 0) {
|
||||||
needReset = true;
|
needReset = true;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -719,6 +719,14 @@ FloatBallAppWM.prototype.getMonetAccentForBall = function() {
|
|||||||
FloatBallAppWM.prototype.updateBallContentBackground = function(contentView) {
|
FloatBallAppWM.prototype.updateBallContentBackground = function(contentView) {
|
||||||
try {
|
try {
|
||||||
var ballColor = this.getMonetAccentForBall();
|
var ballColor = this.getMonetAccentForBall();
|
||||||
|
try {
|
||||||
|
var bgHex = String(this.config.BALL_BG_COLOR_HEX || "").trim();
|
||||||
|
if (bgHex.length > 0) {
|
||||||
|
ballColor = android.graphics.Color.parseColor(bgHex);
|
||||||
|
}
|
||||||
|
} catch(eCustomBg) {
|
||||||
|
safeLog(this.L, 'e', "BALL_BG_COLOR_HEX parse failed, fallback Monet accent: " + String(eCustomBg));
|
||||||
|
}
|
||||||
var dark = this.isDarkTheme();
|
var dark = this.isDarkTheme();
|
||||||
var alpha01 = dark ? this.config.BALL_RIPPLE_ALPHA_DARK : this.config.BALL_RIPPLE_ALPHA_LIGHT;
|
var alpha01 = dark ? this.config.BALL_RIPPLE_ALPHA_DARK : this.config.BALL_RIPPLE_ALPHA_LIGHT;
|
||||||
var rippleColor = this.withAlpha(ballColor, alpha01);
|
var rippleColor = this.withAlpha(ballColor, alpha01);
|
||||||
|
|||||||
@@ -317,7 +317,7 @@ FloatBallAppWM.prototype.applyImmediateEffectsForKey = function(k) {
|
|||||||
} catch(eLK) { safeLog(null, 'e', "catch " + String(eLK)); }
|
} catch(eLK) { safeLog(null, 'e', "catch " + String(eLK)); }
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (k === "BALL_SIZE_DP" || k === "BALL_PNG_MODE" || k === "BALL_ICON_TYPE" || k === "BALL_ICON_FILE_PATH" || k === "BALL_ICON_RES_ID" || k === "BALL_ICON_RES_NAME" || k === "BALL_ICON_SIZE_DP" || k === "BALL_ICON_TINT_HEX") { this.rebuildBallForNewSize(); return; }
|
if (k === "BALL_SIZE_DP" || k === "BALL_PNG_MODE" || k === "BALL_ICON_TYPE" || k === "BALL_ICON_FILE_PATH" || k === "BALL_ICON_RES_ID" || k === "BALL_ICON_RES_NAME" || k === "BALL_ICON_SIZE_DP" || k === "BALL_ICON_TINT_HEX" || k === "BALL_BG_COLOR_HEX") { this.rebuildBallForNewSize(); return; }
|
||||||
|
|
||||||
if (k === "PANEL_ROWS" || k === "PANEL_COLS" ||
|
if (k === "PANEL_ROWS" || k === "PANEL_COLS" ||
|
||||||
k === "PANEL_ITEM_SIZE_DP" || k === "PANEL_GAP_DP" ||
|
k === "PANEL_ITEM_SIZE_DP" || k === "PANEL_GAP_DP" ||
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
"alg": "SHA256withRSA",
|
"alg": "SHA256withRSA",
|
||||||
"files": {
|
"files": {
|
||||||
"th_01_base.js": {
|
"th_01_base.js": {
|
||||||
"sha256": "df8a72de4da16452d19ed6a1f704b42e1f090356af52d2d4769f4ea66300313e",
|
"sha256": "f275c5964348a06601258d96ede4de9040f1e1d47076bedb405bb1a8ce8465ac",
|
||||||
"size": 52885
|
"size": 53093
|
||||||
},
|
},
|
||||||
"th_02_core.js": {
|
"th_02_core.js": {
|
||||||
"sha256": "15bb9bfbd19a673d442e221b0a00a456ed5f87af2666b9c73b117d6223faeecd",
|
"sha256": "15bb9bfbd19a673d442e221b0a00a456ed5f87af2666b9c73b117d6223faeecd",
|
||||||
@@ -14,12 +14,12 @@
|
|||||||
"size": 5598
|
"size": 5598
|
||||||
},
|
},
|
||||||
"th_04_theme.js": {
|
"th_04_theme.js": {
|
||||||
"sha256": "02e83c839a54c24fa9c178eab4f165e3181294750dd4bda57a0e7ff5eb23a52d",
|
"sha256": "11f5971378f2ded631a5066ba158452f5a030aa2efac26f6b16928ce779f193b",
|
||||||
"size": 39909
|
"size": 40227
|
||||||
},
|
},
|
||||||
"th_05_persistence.js": {
|
"th_05_persistence.js": {
|
||||||
"sha256": "2b5b667912c8c1a808d7925fc619e917b46244a73405af1eca9dd567312f9b9d",
|
"sha256": "24f42d714342f6a7f8a726d5acf3670bfaa280937e75f1319cca53794fcd5a56",
|
||||||
"size": 14790
|
"size": 14819
|
||||||
},
|
},
|
||||||
"th_06_icon_parser.js": {
|
"th_06_icon_parser.js": {
|
||||||
"sha256": "25b95a5df634a7ee359f3ab798e4d3154a71c24016f7b4bf8a658096644b2484",
|
"sha256": "25b95a5df634a7ee359f3ab798e4d3154a71c24016f7b4bf8a658096644b2484",
|
||||||
@@ -68,5 +68,5 @@
|
|||||||
},
|
},
|
||||||
"keyId": "toolhub-targets-2026-rsa3072",
|
"keyId": "toolhub-targets-2026-rsa3072",
|
||||||
"schema": 2,
|
"schema": 2,
|
||||||
"version": 20260518155413
|
"version": 20260518161003
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
HHRMBUQsD50aKZlC9fmYAI5i3/5azoXBAcdjGR/Rx/SxPmqysV0ir09/bt2j33RWp7lWMarJYwl+eOslRKdohERSWxi5Ksjjb688gDexyCV3RUxYN6e/beWO7+TZHduw7vOqaanhc+VN61RBsMqgvR0KKfJLGnBKoYmOjKslBqwKukUbXgweTGRaa5PkOgRqSyAejvX5DWXNDhK0Na/+m3etjAZx0QIccJWy38e9bijtuX6PWGdRcd1EtMOiF1r9gg11vAYy18rf4EI/gpjLUTAWZY4LVyoarkixxW7IEsq7ia1Ru9vEQRpvZr61Sx6IGVZADqU93VCpSS2lCVYKU+q+YCxcBYiq1a54spbb2ys4j89xJnFDTX+UluoSrUzy1CqxSy2/SluXX2+zhj30sYOICbyerKYXKliZPEVghMqhicK35pK4ojFmTIyk1fqQX2zs1nVoKmFbrwHlh0ZxFwSMKoHCpKlJwVNP4MOEPkJenrByCt0dKxai3ZPvIQl3
|
CfuxxR8N3bqjMiymTDYCSFfTmNWxGDbMpCT3FYUSznB3mJueI0ajadduxg1tDCV6X5ssh+4pCE0jwql9+MTH2hJLYJLsaaI8uswaVAUnsTbV9OdLLc6vtXscNaVm54hJ0eg1UyReQinxaqRKqNsMrqkftIDDAw0QGfZPF3ehqvB/wp6cK1jfcLtPiVcnORXUwVntyeiEQqpkVDTK0ovz8eOOYS1kCW3b21tqDwuJ7BvvNM9sDuXF8wdmayxD7vi98IOIeJcw9KnRhHcHxQCOVQ3UUQ115H4V4fA0GHQ6Ae2BzVQ68XQ0nTrZDh2tYF1u7aj1Dg+vnEL9hk/2LJK9wdtPFOCpMrygUVqSN7lLe7tTaCOMwUavV2TmMvwKPBvoIQCdd9gh47j54FsmW1srwHjtWIsGkiwBglc1aiDsq33kcuSc7F7+PCrXNkEB0pk3pS0ZQ66Q0AsxVN48e3iJ0iuHemzZn8fyanRfW8u7hazT3tK89RjlA5OqXkO4j1Gb
|
||||||
|
|||||||
Reference in New Issue
Block a user