feat: material you settings monet theme
This commit is contained in:
@@ -31,7 +31,22 @@ FloatBallAppWM.prototype.applySettingsTheme = function(T, isDark, C, cfgTpl) {
|
||||
} catch(e) { safeLog(null, 'e', "catch " + String(e)); }
|
||||
};
|
||||
|
||||
FloatBallAppWM.prototype.isSettingsMonetTheme = function(cfgTpl) {
|
||||
try { return String((cfgTpl || this.config).SETTINGS_THEME || "animal") === "monet"; } catch(e) { return false; }
|
||||
};
|
||||
|
||||
FloatBallAppWM.prototype.getSettingsGroupDefs = function() {
|
||||
var cfgTpl = null;
|
||||
try { cfgTpl = this.state.pendingUserCfg ? this.state.pendingUserCfg : this.config; } catch(eCfg) { cfgTpl = this.config; }
|
||||
if (this.isSettingsMonetTheme && this.isSettingsMonetTheme(cfgTpl)) {
|
||||
return [
|
||||
{ key: "ball", title: "悬浮球", desc: "大小、图标、颜色和跟随距离", sections: ["悬浮球"] },
|
||||
{ key: "panel", title: "面板", desc: "排列、文字、位置和吸边行为", sections: ["面板布局", "面板文字", "吸边与位置"] },
|
||||
{ key: "theme", title: "外观", desc: "颜色、背景、透明度和动态取色", sections: ["外观"] },
|
||||
{ key: "motion", title: "动作与手势", desc: "点击、长按、动画和贴边回弹", sections: ["动画", "触摸与手势"] },
|
||||
{ key: "debug", title: "运行记录", desc: "查看日志与当前状态", sections: ["日志"] }
|
||||
];
|
||||
}
|
||||
return [
|
||||
{ key: "ball", title: "漂浮气球", desc: "调整气球大小、图标和跟随距离", sections: ["悬浮球"] },
|
||||
{ key: "panel", title: "面板小屋", desc: "调整面板排列、文字、位置和吸边", sections: ["面板布局", "面板文字", "吸边与位置"] },
|
||||
@@ -72,6 +87,7 @@ FloatBallAppWM.prototype.createSettingsHomeEntry = function(parent, title, desc,
|
||||
var T = this.getAnimalIslandTheme();
|
||||
var cfgTpl = this.state.pendingUserCfg ? this.state.pendingUserCfg : this.config;
|
||||
this.applySettingsTheme(T, isDark, C, cfgTpl);
|
||||
var useMonet = this.isSettingsMonetTheme ? this.isSettingsMonetTheme(cfgTpl) : false;
|
||||
var cardColor = T.card;
|
||||
var textColor = T.text;
|
||||
var subTextColor = T.sub;
|
||||
@@ -80,18 +96,28 @@ FloatBallAppWM.prototype.createSettingsHomeEntry = function(parent, title, desc,
|
||||
row.setGravity(android.view.Gravity.CENTER_VERTICAL);
|
||||
row.setPadding(this.dp(16), this.dp(14), this.dp(14), this.dp(14));
|
||||
row.setBackground(this.ui.createRippleDrawable(cardColor, this.withAlpha(T.primary, isDark ? 0.20 : 0.14), this.dp(20)));
|
||||
try { row.setElevation(this.dp(4)); } catch(eElev) { safeLog(null, 'e', "catch " + String(eElev)); }
|
||||
try { row.setElevation(this.dp(useMonet ? 1 : 4)); } catch(eElev) { safeLog(null, 'e', "catch " + String(eElev)); }
|
||||
|
||||
var badge = new android.widget.TextView(context);
|
||||
var icon = "✦";
|
||||
var titleStr = String(title || "");
|
||||
if (titleStr.indexOf("工具伙伴") >= 0) icon = "⌂";
|
||||
else if (titleStr.indexOf("蓝图") >= 0) icon = "□";
|
||||
else if (titleStr.indexOf("气球") >= 0) icon = "●";
|
||||
else if (titleStr.indexOf("面板") >= 0 || titleStr.indexOf("小屋") >= 0) icon = "▦";
|
||||
else if (titleStr.indexOf("换装") >= 0 || titleStr.indexOf("装饰") >= 0) icon = "◐";
|
||||
else if (titleStr.indexOf("动作") >= 0 || titleStr.indexOf("手势") >= 0) icon = "↝";
|
||||
else if (titleStr.indexOf("记录") >= 0) icon = "≋";
|
||||
if (useMonet) {
|
||||
if (titleStr.indexOf("工具") >= 0) icon = "▦";
|
||||
else if (titleStr.indexOf("蓝图") >= 0 || titleStr.indexOf("配置") >= 0) icon = "▤";
|
||||
else if (titleStr.indexOf("悬浮") >= 0 || titleStr.indexOf("球") >= 0) icon = "◉";
|
||||
else if (titleStr.indexOf("面板") >= 0) icon = "▣";
|
||||
else if (titleStr.indexOf("外观") >= 0) icon = "◌";
|
||||
else if (titleStr.indexOf("动作") >= 0 || titleStr.indexOf("手势") >= 0) icon = "↔";
|
||||
else if (titleStr.indexOf("记录") >= 0) icon = "≡";
|
||||
} else {
|
||||
if (titleStr.indexOf("工具伙伴") >= 0) icon = "⌂";
|
||||
else if (titleStr.indexOf("蓝图") >= 0) icon = "□";
|
||||
else if (titleStr.indexOf("气球") >= 0) icon = "●";
|
||||
else if (titleStr.indexOf("面板") >= 0 || titleStr.indexOf("小屋") >= 0) icon = "▦";
|
||||
else if (titleStr.indexOf("换装") >= 0 || titleStr.indexOf("装饰") >= 0) icon = "◐";
|
||||
else if (titleStr.indexOf("动作") >= 0 || titleStr.indexOf("手势") >= 0) icon = "↝";
|
||||
else if (titleStr.indexOf("记录") >= 0) icon = "≋";
|
||||
}
|
||||
badge.setText(icon);
|
||||
badge.setTextColor(T.primaryDeep);
|
||||
badge.setTextSize(android.util.TypedValue.COMPLEX_UNIT_SP, 19);
|
||||
@@ -147,6 +173,7 @@ FloatBallAppWM.prototype.buildSettingsHomePanelView = function() {
|
||||
var T = this.getAnimalIslandTheme();
|
||||
var cfgTpl = this.state.pendingUserCfg ? this.state.pendingUserCfg : this.config;
|
||||
this.applySettingsTheme(T, isDark, C, cfgTpl);
|
||||
var useMonetHome = this.isSettingsMonetTheme ? this.isSettingsMonetTheme(cfgTpl) : false;
|
||||
var bgColor = T.bg;
|
||||
var subTextColor = T.sub;
|
||||
var panel = this.ui.createStyledPanel(this, 16);
|
||||
@@ -172,7 +199,7 @@ FloatBallAppWM.prototype.buildSettingsHomePanelView = function() {
|
||||
}
|
||||
quick.addView(this.ui.createSpacer(this));
|
||||
|
||||
var btnDoc = this.ui.createFlatButton(this, "岛务手册", T.brown, function() {
|
||||
var btnDoc = this.ui.createFlatButton(this, useMonetHome ? "文档" : "岛务手册", T.brown, function() {
|
||||
try {
|
||||
var intent = new android.content.Intent(android.content.Intent.ACTION_VIEW);
|
||||
intent.setData(android.net.Uri.parse("https://xin-blog.com/114.html"));
|
||||
@@ -182,7 +209,7 @@ FloatBallAppWM.prototype.buildSettingsHomePanelView = function() {
|
||||
});
|
||||
quick.addView(btnDoc);
|
||||
|
||||
var btnSave = this.ui.createSolidButton(this, "保存布置", T.primary, T.onPrimary, function() {
|
||||
var btnSave = this.ui.createSolidButton(this, useMonetHome ? "保存" : "保存布置", T.primary, T.onPrimary, function() {
|
||||
try {
|
||||
self.touchActivity();
|
||||
var r = self.commitPendingUserCfg();
|
||||
@@ -218,14 +245,14 @@ FloatBallAppWM.prototype.buildSettingsHomePanelView = function() {
|
||||
titleCard.setPadding(this.dp(12), 0, this.dp(12), 0);
|
||||
titleCard.setBackground(this.ui.createStrokeDrawable(T.card, this.withAlpha(T.stroke, isDark ? 0.34 : 0.55), this.dp(1), this.dp(20)));
|
||||
var titleMain = new android.widget.TextView(context);
|
||||
titleMain.setText("欢迎回来,岛主");
|
||||
titleMain.setText(useMonetHome ? "ToolHub" : "欢迎回来,岛主");
|
||||
titleMain.setTextColor(T.text);
|
||||
titleMain.setTextSize(android.util.TypedValue.COMPLEX_UNIT_SP, 22);
|
||||
titleMain.setTypeface(null, android.graphics.Typeface.BOLD);
|
||||
titleMain.setGravity(android.view.Gravity.CENTER);
|
||||
titleCard.addView(titleMain, new android.widget.LinearLayout.LayoutParams(-1, -2));
|
||||
var titleSub = new android.widget.TextView(context);
|
||||
titleSub.setText("今天也来整理你的小工具吧");
|
||||
titleSub.setText(useMonetHome ? "管理悬浮工具与交互设置" : "今天也来整理你的小工具吧");
|
||||
titleSub.setTextColor(T.sub);
|
||||
titleSub.setTextSize(android.util.TypedValue.COMPLEX_UNIT_SP, 12);
|
||||
titleSub.setGravity(android.view.Gravity.CENTER);
|
||||
@@ -266,12 +293,17 @@ FloatBallAppWM.prototype.buildSettingsHomePanelView = function() {
|
||||
scroll.addView(box);
|
||||
scroll.setOnTouchListener(new JavaAdapter(android.view.View.OnTouchListener, { onTouch: function(v, e) { self.touchActivity(); return false; }}));
|
||||
|
||||
this.createSettingsHomeEntry(box, "工具伙伴", "添加、整理和安排你的工具伙伴", "整理", function() { self.pushToolAppPage("btn_editor"); });
|
||||
this.createSettingsHomeEntry(box, "岛屿蓝图", "自定义岛屿布局,适合进阶布置", "编辑", function() { self.pushToolAppPage("schema_editor"); });
|
||||
if (useMonetHome) {
|
||||
this.createSettingsHomeEntry(box, "工具", "添加、整理和排序工具入口", "管理", function() { self.pushToolAppPage("btn_editor"); });
|
||||
this.createSettingsHomeEntry(box, "配置结构", "编辑分组、布局和高级结构", "编辑", function() { self.pushToolAppPage("schema_editor"); });
|
||||
} else {
|
||||
this.createSettingsHomeEntry(box, "工具伙伴", "添加、整理和安排你的工具伙伴", "整理", function() { self.pushToolAppPage("btn_editor"); });
|
||||
this.createSettingsHomeEntry(box, "岛屿蓝图", "自定义岛屿布局,适合进阶布置", "编辑", function() { self.pushToolAppPage("schema_editor"); });
|
||||
}
|
||||
var defs = this.getSettingsGroupDefs();
|
||||
for (var i = 0; i < defs.length; i++) {
|
||||
(function(d) {
|
||||
self.createSettingsHomeEntry(box, d.title, d.desc, (d.key === "ball" ? "调整" : (d.key === "panel" ? "布置" : (d.key === "theme" ? "换装" : (d.key === "debug" ? "查看" : "设置")))), function() {
|
||||
self.createSettingsHomeEntry(box, d.title, d.desc, useMonetHome ? (d.key === "debug" ? "查看" : "打开") : (d.key === "ball" ? "调整" : (d.key === "panel" ? "布置" : (d.key === "theme" ? "换装" : (d.key === "debug" ? "查看" : "设置")))), function() {
|
||||
if (self.pushToolAppSettingsGroup) self.pushToolAppSettingsGroup(d.key);
|
||||
});
|
||||
})(defs[i]);
|
||||
|
||||
@@ -54,8 +54,8 @@
|
||||
"size": 21198
|
||||
},
|
||||
"th_14_panels.js": {
|
||||
"sha256": "e1d40451a3096530931b6eace1bbf1edb4ff01b3a213efb302e68e6fb42c5c0c",
|
||||
"size": 246276
|
||||
"sha256": "7b8e60d9f1467c909d9d6de8f776715c73ff41b625bce77c0c8c4514fd653611",
|
||||
"size": 248639
|
||||
},
|
||||
"th_15_extra.js": {
|
||||
"sha256": "b607620f1900c1bd93ccbec8d901d4de53b3d36e9373877f4264442f79b9b956",
|
||||
@@ -68,5 +68,5 @@
|
||||
},
|
||||
"keyId": "toolhub-targets-2026-rsa3072",
|
||||
"schema": 2,
|
||||
"version": 20260517194928
|
||||
"version": 20260518055238
|
||||
}
|
||||
|
||||
@@ -1 +1 @@
|
||||
HnPhwCpOpEQZvfeHZQ58Aw/ogq+BpXi7IWBDv+KESF8KK8AMv3ak51W2clw51PHH4MSI+2OJh4mKtcYk22urmkIkL2g/k6+mFbKf3GFNfBQADJjbJj6yrRHXMG55fAomSntmvw+SeLSSbSGKNONl50wbSgZvbbFFUnZ2+rx6HgdF70xpSadjaIl3+YeCRoZuxye6Z9cMveAQHfQWM/F9Ley46zeEKZRKXV+t7eP8ErEqZxG2DNqqLodJG88NB5x+CTdmNcsBVqNgUwHjpTImJyjVtxr/wt9E/f83WB6LTc6hugX5ccu3P4cjYsItcWujmcnnnrreHckBHCjbimdrL5j6skssRUKgFNC1VKwSsBF8fu2bDa3vxP7h2dCcVvFLgbisP8hSgGj8PPbezjMYCxmF1WmdK+CLMPWD9khpDu9VqPle3IdxII0VmCUVMZXaY81awLgsdocI9dkofmJvEDLHPILC2PPkf7gsc8yfHmSWFW4ZqbhuavGzye0PhpDQ
|
||||
cTkK9cHf20yLd5l0w16g/qounXtIVi+XYKu0u4XBIS5GnutBQOzKa5Tkuml+AU+1yhKDQUO3d266tUYOMw1sn/jpiivB2w8td55ERoPOrAmNwJ/IvEHgZ60NQdR9PHNmpmvFkRQDhns0hS1d8eEE3AWf6cFFVjBG9iC98OTmLdJMC4MqGjtYalq1dfZFelXFM4oCL5RxcOB2FHf8trG+v44Fdw8olAveDx1aFtFD43VHabANDkwRnhfVhVNGL54QN/Gozf3QYA+IdQDPG6vq0i9MwBXjDAYybBY/edl33oZ68Aj0CbUP+hkhdVh7+OWbOCcHFrnBzW40Nbn1HGjv81B6XkLGC3srYtY/0bXdyiZJvLNHQocK4w2aVv7EaJUNJhtE8liVvTHuqgveKx428ZioJclDcNp7TOPxQ1up0bab5aDQcKAOQ6ITmTLAghDtBAnPsjviprqYulM1MhBe5VMLpVyw6xPAFK6s/b4gJpWVDsK/oiZnlb5EDvut3Usx
|
||||
|
||||
Reference in New Issue
Block a user