fix(icon): 确定按钮绕过 guardClick 冷却,避免被其他按钮点击拦截

- createSolidButton/createFlatButton 内部使用 guardClick('ui_btn') 共享同一个 key
- 如果用户在短时间内点击了多个按钮(分类/翻页/关闭),确定按钮的点击可能被忽略
- 确定按钮现在直接创建 TextView + OnClickListener,不经 guardClick
- 添加 try-catch 捕获 onSelect 回调异常
This commit is contained in:
Hermes
2026-04-20 19:33:51 +08:00
parent c67c0ccaf2
commit e5d540d1a5

View File

@@ -4016,11 +4016,27 @@ FloatBallAppWM.prototype.showShortXIconPickerPopup = function(opts) {
selectNameTv.setPadding(self.dp(8), 0, 0, 0);
selectRow.addView(selectNameTv);
var selectConfirm = self.ui.createSolidButton(self, "\u786e\u5b9a", C.primary, android.graphics.Color.WHITE, function() {
var selectConfirm = new android.widget.TextView(context);
selectConfirm.setText("\u786e\u5b9a");
selectConfirm.setTextColor(android.graphics.Color.WHITE);
selectConfirm.setTextSize(android.util.TypedValue.COMPLEX_UNIT_SP, 14);
selectConfirm.setTypeface(null, android.graphics.Typeface.BOLD);
selectConfirm.setPadding(self.dp(16), self.dp(8), self.dp(16), self.dp(8));
selectConfirm.setGravity(android.view.Gravity.CENTER);
var pressedColor = self.withAlpha(C.primary, 0.8);
selectConfirm.setBackground(self.ui.createRippleDrawable(C.primary, pressedColor, self.dp(24)));
try { selectConfirm.setElevation(self.dp(2)); } catch(e){}
selectConfirm.setOnClickListener(new android.view.View.OnClickListener({
onClick: function(v) {
self.touchActivity();
try {
if (typeof onSelect === "function") onSelect(selectedName);
} catch(eSelect) {
safeLog(self.L, 'e', "icon onSelect err=" + String(eSelect));
}
dismiss();
});
}
}));
selectRow.addView(selectConfirm);
card.addView(selectRow);