style: soften animal island ToolApp copy

This commit is contained in:
7015725
2026-05-14 23:17:09 +08:00
parent edb26dc593
commit 8907a2d5d8
6 changed files with 56 additions and 59 deletions

View File

@@ -17,22 +17,22 @@ FloatBallAppWM.prototype.getAnimalIslandTheme = function() {
var Color = android.graphics.Color; var Color = android.graphics.Color;
if (isDark) { if (isDark) {
return { return {
bg: Color.parseColor("#1F2E29"), bg: Color.parseColor("#2F4034"),
bg2: Color.parseColor("#263A33"), bg2: Color.parseColor("#3C5142"),
leaf: Color.parseColor("#31564A"), leaf: Color.parseColor("#4E6F5B"),
card: Color.parseColor("#2F4037"), card: Color.parseColor("#405243"),
card2: Color.parseColor("#3A4B40"), card2: Color.parseColor("#4A5D4E"),
cream: Color.parseColor("#FFF4D8"), cream: Color.parseColor("#FFF1D2"),
text: Color.parseColor("#FFF4D8"), text: Color.parseColor("#FFF1D2"),
sub: Color.parseColor("#D8C6A6"), sub: Color.parseColor("#E3CFA8"),
brown: Color.parseColor("#A9855E"), brown: Color.parseColor("#D0AE7A"),
primary: Color.parseColor("#62D7C6"), primary: Color.parseColor("#8BD7A8"),
primaryDeep: Color.parseColor("#19A89A"), primaryDeep: Color.parseColor("#5FB980"),
primarySoft: Color.parseColor("#2C5C55"), primarySoft: Color.parseColor("#3F684F"),
danger: Color.parseColor("#F08A86"), danger: Color.parseColor("#F0A08F"),
dangerSoft: Color.parseColor("#5A3432"), dangerSoft: Color.parseColor("#68453C"),
stroke: Color.parseColor("#66563F"), stroke: Color.parseColor("#8B754E"),
onPrimary: Color.parseColor("#17352F") onPrimary: Color.parseColor("#173524")
}; };
} }
return { return {

View File

@@ -1,11 +1,11 @@
// @version 1.0.0 // @version 1.0.0
FloatBallAppWM.prototype.getSettingsGroupDefs = function() { FloatBallAppWM.prototype.getSettingsGroupDefs = function() {
return [ return [
{ key: "ball", title: "悬浮球", desc: "大小、图标、透明度、球与面板间距", sections: ["悬浮球"] }, { key: "ball", title: "漂浮气球", desc: "设置小球伙伴的大小、图标和跟随距离", sections: ["悬浮球"] },
{ key: "panel", title: "面板", desc: "行列、间距、文字、位置吸边", sections: ["面板布局", "面板文字", "吸边与位置"] }, { key: "panel", title: "工具小屋", desc: "调整面板排列、文字、位置吸边", sections: ["面板布局", "面板文字", "吸边与位置"] },
{ key: "theme", title: "主题与外观", desc: "明暗主题、文字色、背景透明度", sections: ["外观"] }, { key: "theme", title: "换装与装饰", desc: "更换明暗主题、文字色、背景透明度", sections: ["外观"] },
{ key: "motion", title: "动与手势", desc: "吸边动画、回弹、点击/长按手势", sections: ["动画", "触摸与手势"] }, { key: "motion", title: "动与手势", desc: "设置点击长按、回弹和吸边动画", sections: ["动画", "触摸与手势"] },
{ key: "debug", title: "日志与调试", desc: "日志开关、DEBUG 与保留天数", sections: ["日志"] } { key: "debug", title: "岛务记录", desc: "查看运行记录和高级调试选项", sections: ["日志"] }
]; ];
}; };
@@ -133,12 +133,9 @@ FloatBallAppWM.prototype.buildSettingsHomePanelView = function() {
memTv.setText("Mem " + used.toFixed(0) + "/" + max.toFixed(0) + "M"); memTv.setText("Mem " + used.toFixed(0) + "/" + max.toFixed(0) + "M");
} catch(e) { memTv.setText("Mem ?"); } } catch(e) { memTv.setText("Mem ?"); }
} }
updateMem();
memTv.setOnClickListener(new android.view.View.OnClickListener({ onClick: function() { updateMem(); self.toast("内存已刷新"); }}));
quick.addView(memTv);
quick.addView(this.ui.createSpacer(this)); quick.addView(this.ui.createSpacer(this));
var btnDoc = this.ui.createFlatButton(this, "文档", T.brown, function() { var btnDoc = this.ui.createFlatButton(this, "岛务手册", T.brown, function() {
try { try {
var intent = new android.content.Intent(android.content.Intent.ACTION_VIEW); var intent = new android.content.Intent(android.content.Intent.ACTION_VIEW);
intent.setData(android.net.Uri.parse("https://xin-blog.com/114.html")); intent.setData(android.net.Uri.parse("https://xin-blog.com/114.html"));
@@ -148,7 +145,7 @@ FloatBallAppWM.prototype.buildSettingsHomePanelView = function() {
}); });
quick.addView(btnDoc); quick.addView(btnDoc);
var btnSave = this.ui.createSolidButton(this, "保存", T.primary, T.onPrimary, function() { var btnSave = this.ui.createSolidButton(this, "保存布置", T.primary, T.onPrimary, function() {
try { try {
self.touchActivity(); self.touchActivity();
var r = self.commitPendingUserCfg(); var r = self.commitPendingUserCfg();
@@ -191,7 +188,7 @@ FloatBallAppWM.prototype.buildSettingsHomePanelView = function() {
titleMain.setGravity(android.view.Gravity.CENTER); titleMain.setGravity(android.view.Gravity.CENTER);
titleCard.addView(titleMain, new android.widget.LinearLayout.LayoutParams(-1, -2)); titleCard.addView(titleMain, new android.widget.LinearLayout.LayoutParams(-1, -2));
var titleSub = new android.widget.TextView(context); var titleSub = new android.widget.TextView(context);
titleSub.setText("温暖风格控制中心"); titleSub.setText("今天也来整理你的小工具吧");
titleSub.setTextColor(T.sub); titleSub.setTextColor(T.sub);
titleSub.setTextSize(android.util.TypedValue.COMPLEX_UNIT_SP, 12); titleSub.setTextSize(android.util.TypedValue.COMPLEX_UNIT_SP, 12);
titleSub.setGravity(android.view.Gravity.CENTER); titleSub.setGravity(android.view.Gravity.CENTER);
@@ -206,7 +203,7 @@ FloatBallAppWM.prototype.buildSettingsHomePanelView = function() {
statCard.setPadding(this.dp(10), 0, this.dp(10), 0); statCard.setPadding(this.dp(10), 0, this.dp(10), 0);
statCard.setBackground(this.ui.createStrokeDrawable(T.primarySoft, this.withAlpha(T.primaryDeep, isDark ? 0.34 : 0.24), this.dp(1), this.dp(20))); statCard.setBackground(this.ui.createStrokeDrawable(T.primarySoft, this.withAlpha(T.primaryDeep, isDark ? 0.34 : 0.24), this.dp(1), this.dp(20)));
var statLabel = new android.widget.TextView(context); var statLabel = new android.widget.TextView(context);
statLabel.setText("按钮启用"); statLabel.setText("工具伙伴");
statLabel.setTextColor(T.sub); statLabel.setTextColor(T.sub);
statLabel.setTextSize(android.util.TypedValue.COMPLEX_UNIT_SP, 12); statLabel.setTextSize(android.util.TypedValue.COMPLEX_UNIT_SP, 12);
statLabel.setGravity(android.view.Gravity.CENTER); statLabel.setGravity(android.view.Gravity.CENTER);
@@ -232,8 +229,8 @@ FloatBallAppWM.prototype.buildSettingsHomePanelView = function() {
scroll.addView(box); scroll.addView(box);
scroll.setOnTouchListener(new JavaAdapter(android.view.View.OnTouchListener, { onTouch: function(v, e) { self.touchActivity(); return false; }})); 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("btn_editor"); });
this.createSettingsHomeEntry(box, "布局管理", "自定义设置项 schema,适合高级调整", "管理", function() { self.pushToolAppPage("schema_editor"); }); this.createSettingsHomeEntry(box, "岛屿蓝图", "调整设置项蓝图,适合高级布置", "管理", function() { self.pushToolAppPage("schema_editor"); });
var defs = this.getSettingsGroupDefs(); var defs = this.getSettingsGroupDefs();
for (var i = 0; i < defs.length; i++) { for (var i = 0; i < defs.length; i++) {
(function(d) { (function(d) {
@@ -858,7 +855,7 @@ FloatBallAppWM.prototype.buildButtonEditorPanelView = function() {
// 提示文字 (左侧) // 提示文字 (左侧)
var hintTv = new android.widget.TextView(context); var hintTv = new android.widget.TextView(context);
hintTv.setText("共 " + buttons.length + " 个按钮"); hintTv.setText("共 " + buttons.length + " 个工具伙伴");
hintTv.setTextColor(subTextColor); hintTv.setTextColor(subTextColor);
hintTv.setTextSize(android.util.TypedValue.COMPLEX_UNIT_SP, 12); hintTv.setTextSize(android.util.TypedValue.COMPLEX_UNIT_SP, 12);
header.addView(hintTv); header.addView(hintTv);
@@ -867,7 +864,7 @@ FloatBallAppWM.prototype.buildButtonEditorPanelView = function() {
header.addView(self.ui.createSpacer(self)); header.addView(self.ui.createSpacer(self));
// 新增按钮 (右侧) // 新增按钮 (右侧)
var btnAdd = self.ui.createSolidButton(self, "新增", T.primary, T.onPrimary, function() { var btnAdd = self.ui.createSolidButton(self, "添加", T.primary, T.onPrimary, function() {
self.state.editingButtonIndex = -1; self.state.editingButtonIndex = -1;
if (self.state.toolAppActive && self.pushToolAppPage) self.pushToolAppPage("btn_editor"); if (self.state.toolAppActive && self.pushToolAppPage) self.pushToolAppPage("btn_editor");
else refreshPanel(); else refreshPanel();
@@ -898,7 +895,7 @@ FloatBallAppWM.prototype.buildButtonEditorPanelView = function() {
var searchRow = new android.widget.LinearLayout(context); var searchRow = new android.widget.LinearLayout(context);
searchRow.setOrientation(android.widget.LinearLayout.HORIZONTAL); searchRow.setOrientation(android.widget.LinearLayout.HORIZONTAL);
searchRow.setGravity(android.view.Gravity.CENTER_VERTICAL); searchRow.setGravity(android.view.Gravity.CENTER_VERTICAL);
var searchInput = self.ui.createInputGroup(self, "搜索按钮", self.state.buttonManagerQuery || "", false, "标题 / 类型 / 包名 / 命令"); var searchInput = self.ui.createInputGroup(self, "寻找工具", self.state.buttonManagerQuery || "", false, "名称 / 类型 / 包名 / 命令");
var searchInputLp = new android.widget.LinearLayout.LayoutParams(0, android.widget.LinearLayout.LayoutParams.WRAP_CONTENT); var searchInputLp = new android.widget.LinearLayout.LayoutParams(0, android.widget.LinearLayout.LayoutParams.WRAP_CONTENT);
searchInputLp.weight = 1; searchInputLp.weight = 1;
searchRow.addView(searchInput.view, searchInputLp); searchRow.addView(searchInput.view, searchInputLp);
@@ -910,7 +907,7 @@ FloatBallAppWM.prototype.buildButtonEditorPanelView = function() {
var btnSearchLp = new android.widget.LinearLayout.LayoutParams(android.widget.LinearLayout.LayoutParams.WRAP_CONTENT, android.widget.LinearLayout.LayoutParams.WRAP_CONTENT); var btnSearchLp = new android.widget.LinearLayout.LayoutParams(android.widget.LinearLayout.LayoutParams.WRAP_CONTENT, android.widget.LinearLayout.LayoutParams.WRAP_CONTENT);
btnSearchLp.leftMargin = self.dp(8); btnSearchLp.leftMargin = self.dp(8);
searchRow.addView(btnSearch, btnSearchLp); searchRow.addView(btnSearch, btnSearchLp);
var btnClearSearch = self.createButtonManagerActionChip("清空", subTextColor, self.withAlpha(subTextColor, 0.24), function() { var btnClearSearch = self.createButtonManagerActionChip("重置", subTextColor, self.withAlpha(subTextColor, 0.24), function() {
self.state.buttonManagerQuery = ""; self.state.buttonManagerQuery = "";
self.state.btnEditorListScrollY = 0; self.state.btnEditorListScrollY = 0;
refreshPanel(); refreshPanel();
@@ -1035,7 +1032,7 @@ FloatBallAppWM.prototype.buildButtonEditorPanelView = function() {
actions.setPadding(self.dp(42), 0, 0, 0); actions.setPadding(self.dp(42), 0, 0, 0);
var canUp = (idx > 0); var canUp = (idx > 0);
var btnUp = self.createButtonManagerTextAction("上", canUp ? subTextColor : self.withAlpha(subTextColor, 0.25), canUp ? function() { var btnUp = self.createButtonManagerTextAction("上", canUp ? subTextColor : self.withAlpha(subTextColor, 0.25), canUp ? function() {
var temp = buttons[idx]; var temp = buttons[idx];
buttons[idx] = buttons[idx - 1]; buttons[idx] = buttons[idx - 1];
buttons[idx - 1] = temp; buttons[idx - 1] = temp;
@@ -1045,7 +1042,7 @@ FloatBallAppWM.prototype.buildButtonEditorPanelView = function() {
actions.addView(btnUp); actions.addView(btnUp);
var canDown = (idx < buttons.length - 1); var canDown = (idx < buttons.length - 1);
var btnDown = self.createButtonManagerTextAction("下", canDown ? subTextColor : self.withAlpha(subTextColor, 0.25), canDown ? function() { var btnDown = self.createButtonManagerTextAction("下", canDown ? subTextColor : self.withAlpha(subTextColor, 0.25), canDown ? function() {
var temp = buttons[idx]; var temp = buttons[idx];
buttons[idx] = buttons[idx + 1]; buttons[idx] = buttons[idx + 1];
buttons[idx + 1] = temp; buttons[idx + 1] = temp;
@@ -1059,7 +1056,7 @@ FloatBallAppWM.prototype.buildButtonEditorPanelView = function() {
} catch(eDownLp) {} } catch(eDownLp) {}
actions.addView(btnDown); actions.addView(btnDown);
var btnToggle = self.createButtonManagerTextAction(__enabled ? "禁用" : "启用", __enabled ? self.withAlpha(subTextColor, 0.9) : self.withAlpha(C.success, 0.9), function() { var btnToggle = self.createButtonManagerTextAction(__enabled ? "暂停" : "启用", __enabled ? self.withAlpha(subTextColor, 0.9) : self.withAlpha(C.success, 0.9), function() {
try { try {
btnCfg.enabled = (btnCfg.enabled === false) ? true : false; btnCfg.enabled = (btnCfg.enabled === false) ? true : false;
ConfigManager.saveButtons(buttons); ConfigManager.saveButtons(buttons);
@@ -1073,7 +1070,7 @@ FloatBallAppWM.prototype.buildButtonEditorPanelView = function() {
} catch(eLpTg) {} } catch(eLpTg) {}
actions.addView(btnToggle); actions.addView(btnToggle);
var btnDel = self.createButtonManagerTextAction("除", self.withAlpha(C.danger, 0.85), function() { var btnDel = self.createButtonManagerTextAction("除", self.withAlpha(C.danger, 0.85), function() {
buttons.splice(idx, 1); buttons.splice(idx, 1);
refreshPanel(); refreshPanel();
}); });
@@ -1140,7 +1137,7 @@ FloatBallAppWM.prototype.buildButtonEditorPanelView = function() {
bottomBar.setPadding(self.dp(4), self.dp(8), self.dp(4), self.dp(8)); bottomBar.setPadding(self.dp(4), self.dp(8), self.dp(4), self.dp(8));
bottomBar.setBackground(self.ui.createRoundDrawable(isDark ? C.bgDark : C.bgLight, self.dp(12))); bottomBar.setBackground(self.ui.createRoundDrawable(isDark ? C.bgDark : C.bgLight, self.dp(12)));
var btnListCancel = self.ui.createFlatButton(self, "取消更改", subTextColor, function() { var btnListCancel = self.ui.createFlatButton(self, "不改了", subTextColor, function() {
self.state.tempButtons = null; self.state.tempButtons = null;
self.toast("已取消更改"); self.toast("已取消更改");
self.hideAllPanels(); self.hideAllPanels();
@@ -1150,7 +1147,7 @@ FloatBallAppWM.prototype.buildButtonEditorPanelView = function() {
btnListCancelLp.rightMargin = self.dp(8); btnListCancelLp.rightMargin = self.dp(8);
bottomBar.addView(btnListCancel, btnListCancelLp); bottomBar.addView(btnListCancel, btnListCancelLp);
var btnListSave = self.ui.createSolidButton(self, "保存所有", C.primary, android.graphics.Color.WHITE, function() { var btnListSave = self.ui.createSolidButton(self, "保存布置", T.primary, T.onPrimary, function() {
try { try {
ConfigManager.saveButtons(buttons); ConfigManager.saveButtons(buttons);
self.panels.main = buttons; self.panels.main = buttons;
@@ -1196,7 +1193,7 @@ FloatBallAppWM.prototype.buildButtonEditorPanelView = function() {
// titleLp.rightMargin = self.dp(16); // No need for margin if no icon area // titleLp.rightMargin = self.dp(16); // No need for margin if no icon area
titleArea.setLayoutParams(titleLp); titleArea.setLayoutParams(titleLp);
var inputTitle = self.ui.createInputGroup(self, "标题 (Title)", targetBtn.title, false, "按钮上显示的文字"); var inputTitle = self.ui.createInputGroup(self, "按钮名字", targetBtn.title, false, "写在按钮上的名字");
self.addButtonEditorField(titleArea, inputTitle.view); self.addButtonEditorField(titleArea, inputTitle.view);
topArea.addView(titleArea); topArea.addView(titleArea);
@@ -2418,7 +2415,7 @@ FloatBallAppWM.prototype.buildButtonEditorPanelView = function() {
} catch(eLpTW) { safeLog(null, 'e', "catch " + String(eLpTW)); } } catch(eLpTW) { safeLog(null, 'e', "catch " + String(eLpTW)); }
var typeLbl = new android.widget.TextView(context); var typeLbl = new android.widget.TextView(context);
typeLbl.setText("动作类型 (Action Type)"); typeLbl.setText("按下后要做什么");
typeLbl.setTextColor(subTextColor); typeLbl.setTextColor(subTextColor);
typeLbl.setTextSize(android.util.TypedValue.COMPLEX_UNIT_SP, 12); typeLbl.setTextSize(android.util.TypedValue.COMPLEX_UNIT_SP, 12);
typeWrap.addView(typeLbl); typeWrap.addView(typeLbl);
@@ -2598,7 +2595,7 @@ FloatBallAppWM.prototype.buildButtonEditorPanelView = function() {
shellWrap.setOrientation(android.widget.LinearLayout.VERTICAL); shellWrap.setOrientation(android.widget.LinearLayout.VERTICAL);
var initCmd = targetBtn.cmd || ""; var initCmd = targetBtn.cmd || "";
if (targetBtn.cmd_b64) initCmd = decodeBase64Utf8(targetBtn.cmd_b64) || initCmd; if (targetBtn.cmd_b64) initCmd = decodeBase64Utf8(targetBtn.cmd_b64) || initCmd;
var inputShell = self.ui.createInputGroup(self, "Shell 命令", initCmd, true, "支持常规 Shell 命令 (input, am, pm...)"); var inputShell = self.ui.createInputGroup(self, "Shell 命令", initCmd, true, "input / am / pm 等命令");
shellWrap.addView(inputShell.view); shellWrap.addView(inputShell.view);
// # Root 开关已移除:广播桥接收端默认以 root 执行,开关无意义 // # Root 开关已移除:广播桥接收端默认以 root 执行,开关无意义
@@ -3655,7 +3652,7 @@ shortcutWrap.addView(scBody);
bottomBar.setPadding(self.dp(4), self.dp(8), self.dp(4), self.dp(8)); bottomBar.setPadding(self.dp(4), self.dp(8), self.dp(4), self.dp(8));
bottomBar.setBackground(self.ui.createRoundDrawable(isDark ? C.bgDark : C.bgLight, self.dp(12))); bottomBar.setBackground(self.ui.createRoundDrawable(isDark ? C.bgDark : C.bgLight, self.dp(12)));
var btnCancel = self.ui.createFlatButton(self, "取消", subTextColor, function() { var btnCancel = self.ui.createFlatButton(self, "不改了", subTextColor, function() {
self.state.editingButtonIndex = null; self.state.editingButtonIndex = null;
if (self.state.toolAppActive && self.popToolAppPage) { if (self.state.toolAppActive && self.popToolAppPage) {
self.state.keepBtnEditorState = true; self.state.keepBtnEditorState = true;
@@ -3667,7 +3664,7 @@ shortcutWrap.addView(scBody);
btnCancelLp.rightMargin = self.dp(8); btnCancelLp.rightMargin = self.dp(8);
bottomBar.addView(btnCancel, btnCancelLp); bottomBar.addView(btnCancel, btnCancelLp);
var btnSave = self.ui.createSolidButton(self, "暂存修改", C.primary, android.graphics.Color.WHITE, function() { var btnSave = self.ui.createSolidButton(self, "先存起来", T.primary, T.onPrimary, function() {
try { try {
var newBtn = targetBtn; var newBtn = targetBtn;
newBtn.title = inputTitle.getValue(); newBtn.title = inputTitle.getValue();

View File

@@ -490,19 +490,19 @@ FloatBallAppWM.prototype.isToolAppRoute = function(route) {
FloatBallAppWM.prototype.getToolAppTitle = function(route) { FloatBallAppWM.prototype.getToolAppTitle = function(route) {
var r = String(route || "settings"); var r = String(route || "settings");
if (r === "settings") return "ToolHub 设置"; if (r === "settings") return "ToolHub 岛屿设置";
if (r === "settings_group") return this.getSettingsGroupTitle ? this.getSettingsGroupTitle(this.state.settingsGroupKey) : "设置分组"; if (r === "settings_group") return this.getSettingsGroupTitle ? this.getSettingsGroupTitle(this.state.settingsGroupKey) : "岛屿分区";
if (r === "btn_editor") { if (r === "btn_editor") {
if (this.state.editingButtonIndex !== null && this.state.editingButtonIndex !== undefined) { if (this.state.editingButtonIndex !== null && this.state.editingButtonIndex !== undefined) {
return (this.state.editingButtonIndex === -1) ? "新增按钮" : "编辑按钮"; return (this.state.editingButtonIndex === -1) ? "添加工具伙伴" : "整理工具伙伴";
} }
return "按钮管理"; return "工具小屋";
} }
if (r === "schema_editor") { if (r === "schema_editor") {
if (this.state.editingSchemaIndex !== null && this.state.editingSchemaIndex !== undefined) { if (this.state.editingSchemaIndex !== null && this.state.editingSchemaIndex !== undefined) {
return (this.state.editingSchemaIndex === -1) ? "新增布局项" : "编辑布局项"; return (this.state.editingSchemaIndex === -1) ? "新增蓝图项" : "编辑蓝图项";
} }
return "布局管理"; return "岛屿蓝图";
} }
return "ToolHub"; return "ToolHub";
}; };

View File

@@ -14,7 +14,7 @@
"size": 5598 "size": 5598
}, },
"th_04_theme.js": { "th_04_theme.js": {
"sha256": "8e82b6095f55bbf406f82f7a9c01a77919354a67e38dd6f666676b680a2410a0", "sha256": "b56b9013de31bf191a786359f1371b07375c3aa60bbb15bdf318dd39945858d7",
"size": 38293 "size": 38293
}, },
"th_05_persistence.js": { "th_05_persistence.js": {
@@ -54,12 +54,12 @@
"size": 20386 "size": 20386
}, },
"th_14_panels.js": { "th_14_panels.js": {
"sha256": "d89af917e8a594c5da78fa1e77203da8eddd3f49648e18de320d40b1a5e4a522", "sha256": "1ea35e0167661b5bba0652e672acad45e8cecb09d174763ae6bbcf3f8a8a582e",
"size": 244218 "size": 244019
}, },
"th_15_extra.js": { "th_15_extra.js": {
"sha256": "a95432faf7a8622b74107ea175154c903061dea362981a96554bb7bf78f8a428", "sha256": "1e5a52de2475980da593d7d6f8bf0bdda6966ba3b9688bb5eb8b4343c8734f3f",
"size": 90762 "size": 90780
}, },
"th_16_entry.js": { "th_16_entry.js": {
"sha256": "e7c99c3dfbd6aedab05551426955081ae6cae034754f2f557cefa01dc75dc001", "sha256": "e7c99c3dfbd6aedab05551426955081ae6cae034754f2f557cefa01dc75dc001",
@@ -68,5 +68,5 @@
}, },
"keyId": "toolhub-targets-2026-rsa3072", "keyId": "toolhub-targets-2026-rsa3072",
"schema": 2, "schema": 2,
"version": 20260514142843 "version": 20260514151539
} }

View File

@@ -1 +1 @@
j0oTSR5ZVRDOvqR9jOi5IcvH7KDrHCDMRhZCDAivu7fCuudETXv/mwgActNQB8ouzPEeZ74JwVqWYdmaLrDI2tygFHBJX3arxilpzLiXl+d/abJR/Y5/h3eU715JHcoeuQ58ZdH6fm2yHyeUsKqwcYGyuoiQs5kC11xcZSOK5y7O3X/TFRaTjC4WNcZYdHAwVW9Flfw9+40k+LE6HeBBOKUqG00NE1rnjmPGAsZzU9/Gp6UjuNlyOYLQ+Ds7HnLX+SeK2IcK5uOqQqgZuz8YsgayTZ3xp4RQws7tteptZUv+2cUfsFpqfrMp/zqon0SW/oiF/VspV/yS1PfrcgKXqhxNhS/CyPZESmhB4nkinsGeAfz+nvpi9mWmtc2g8ij8S5oPKuSZ1VsD9XVH0J3z6GI9XGmheTgTKxmd45+FICaGRngxk+WR7l1akfPo3olmqaycFTExyswUZpx2Cct6Dj6Na5I92tbJ57rwT8E8P5IOhdHINLDXtBrV5NSFRil7 YHDfLmzWffqmb4iPzy6Fh7pS0q6Ye2nDTqg+aHukOCghBrzwYHf5CCGHADxmzJYx78aPh1EZzJ1ykxVuN7peD4ipLrzYq7D88/IkVCxtt2pEJEfQuuPX2rUGKpmIeVvoxGMN5aHWdNFmR4W/bfc0f2lVDPWQNkdZz2VkmK49Krv1LZXaWaIAvHqma2NGdIAC/ZTuycQYmT7KRTsh7SdMEKbg8lGHM53ABwtzKgMK73bXXaU3rzv/36wpVilPWND/Xkdo/dmuh3yQkt0NY7WuLSu1ETrnKy75rQHbculPU6gzHFEO7kY5OGiNfceyc1en7F+f5WciyRxGuGSX4kcC6dkc3I/TBmsH47FhEmo2ieF5Lyck5b32Mucjwjv5uIOY7tny3Yw0sc9MFd4r5fIM7nnNTZvroWmuZ9HuIxv/um1ZGVtOS2Wp/D5YT3Ej25B6aGOJaLmSs3/6ECqfhFIwXzBCyUQE7V6fasTrM5yTUx51YrWo80fD+Nf7z4Dlxgvm

View File

@@ -12,7 +12,7 @@ checks = [
("manager has search surface marker", "按钮管理搜索卡片" in text), ("manager has search surface marker", "按钮管理搜索卡片" in text),
("manager no false long-press sort text", "长按卡片排序" not in text), ("manager no false long-press sort text", "长按卡片排序" not in text),
("manager no homepage block text", "按钮管理首页" not in text), ("manager no homepage block text", "按钮管理首页" not in text),
("manager header count only", "\" + buttons.length + \" 个按钮" in text), ("manager header count only", '" + buttons.length + " 个按钮' in text or '" + buttons.length + " 个工具伙伴' in text),
("manager list footer uses remaining-height scroll", "避免“取消更改/保存所有”被挤到屏幕外" in text and "scrollLp.weight = 1" in text), ("manager list footer uses remaining-height scroll", "避免“取消更改/保存所有”被挤到屏幕外" in text and "scrollLp.weight = 1" in text),
("manager list footer has equal buttons and bottom gap", "btnListCancelLp.weight = 1" in text and "btnListSaveLp.weight = 1" in text and "listBottomLp.setMargins(0, self.dp(6), 0, self.dp(12))" in text), ("manager list footer has equal buttons and bottom gap", "btnListCancelLp.weight = 1" in text and "btnListSaveLp.weight = 1" in text and "listBottomLp.setMargins(0, self.dp(6), 0, self.dp(12))" in text),
("editor no useless workbench", "按钮编辑工作台" not in text and "createButtonEditorHeroCard" not in text), ("editor no useless workbench", "按钮编辑工作台" not in text and "createButtonEditorHeroCard" not in text),