diff --git a/code/th_04_theme.js b/code/th_04_theme.js index 93d387f..01f8f85 100644 --- a/code/th_04_theme.js +++ b/code/th_04_theme.js @@ -210,7 +210,12 @@ FloatBallAppWM.prototype.ui = { var rippleColor = app.withAlpha ? app.withAlpha(txtColor, 0.1) : 0x22888888; btn.setBackground(this.createTransparentRippleDrawable(rippleColor, app.dp(8))); btn.setOnClickListener(new android.view.View.OnClickListener({ - onClick: function(v) { app.touchActivity(); app.guardClick("ui_btn", INTERACTION_CONSTANTS.CLICK_COOLDOWN_MS, function(){ if(onClick) onClick(v); }); } + onClick: function(v) { + app.touchActivity(); + var guardKey = "ui_btn"; + try { guardKey = "ui_btn_" + String(java.lang.System.identityHashCode(v || btn)); } catch(eKey) {} + app.guardClick(guardKey, INTERACTION_CONSTANTS.CLICK_COOLDOWN_MS, function(){ if(onClick) onClick(v); }); + } })); return btn; }, @@ -228,7 +233,12 @@ FloatBallAppWM.prototype.ui = { btn.setBackground(this.createRippleDrawable(bgColor, pressedColor, app.dp(24))); try { btn.setElevation(app.dp(2)); } catch(e) { safeLog(null, 'e', "catch " + String(e)); } btn.setOnClickListener(new android.view.View.OnClickListener({ - onClick: function(v) { app.touchActivity(); app.guardClick("ui_btn", INTERACTION_CONSTANTS.CLICK_COOLDOWN_MS, function(){ if(onClick) onClick(v); }); } + onClick: function(v) { + app.touchActivity(); + var guardKey = "ui_btn"; + try { guardKey = "ui_btn_" + String(java.lang.System.identityHashCode(v || btn)); } catch(eKey) {} + app.guardClick(guardKey, INTERACTION_CONSTANTS.CLICK_COOLDOWN_MS, function(){ if(onClick) onClick(v); }); + } })); return btn; }, diff --git a/manifest.json b/manifest.json index 5209eb7..4cdc27a 100644 --- a/manifest.json +++ b/manifest.json @@ -14,8 +14,8 @@ "size": 5598 }, "th_04_theme.js": { - "sha256": "dbfce3c493438843dc7285765f61007b24df5db972b8877a81c4b86ae7b9f7ec", - "size": 42168 + "sha256": "16a7121c734fccae17b9f8a23c1f0758d3a765541d1de4d6159747fc92bc26a4", + "size": 42568 }, "th_05_persistence.js": { "sha256": "8cc52d3dacc8ac3c1b5aecf6fc399a2fe516402955799eddbd07dc9195c10d40", @@ -68,5 +68,5 @@ }, "keyId": "toolhub-targets-2026-rsa3072", "schema": 2, - "version": 20260521205945 + "version": 20260521210640 } diff --git a/manifest.sig b/manifest.sig index 8f16008..f6d9144 100644 --- a/manifest.sig +++ b/manifest.sig @@ -1 +1 @@ -NgnUXqGR4ldz62G8+pQBYI2C+RXgU06Tuy9BlhXswjiyDCcRUgON/nMLk4Vo99qeDHgrvyG/sqeE2RAUBAFWmBJbEF0t1Wbo/rBV43CviYaHthC7P/5mt17oA7Z2jU5L67wT9l4CvZ5qQ0a0R/7dUinAjUt2WLV23ZAZOp+RuEXP29x6VSuh+HmGa01sP4Rg/kZn2HL+mv5nQ67ZcIZBjEoxPYIbXlnUnlVGzaN8CqtBgkB5AE+IODjkBfA3Mrkn/n6nzUOnmpYNBCLEsQuQ/P3yhTiX4NqYvD2PFxViJWsivzDKvQcWbOxqRd3QGk8GwVt8/FOZnj29sUTUz9s+qIFz0MdWSyMXAH0NVtOyxNcz+pjIWtCdj7lhbgcOTJtz1Keqvv6fbBbpe92Q+e5+egusOTUzjWZIStnqygPSjvsV/jOxt7gFhBthujoLgZ2VfQdP/yXZ2uMLen1RO4kPwfgO37NYXYFodMgbqlopR8KJziMN5fM5/k+C4BaX+KPU +X1m1Kq0cC137nSen7CwXEodW4fD29TnwczflnH6hXlmwSfOw8+GaNx/kOqfUWxOwxJF7AlzBBOh8bxpc8iVq2SuPfm4qIz4SwW38YSGzTu0gFBNjO9DH1woN33rt3RhIEN2uYQCIef8W8JbtZkcgjS9sOnC42thixgdzmxZkaZPVnw3siIL9bdKyzKNTiro++A4ZRjf3rSuv4cGJ38kBqOu0w0D/dR7S+/iiSqGL710cEJtWXnfgzFcLzewOACUc7XfWT9k3dJraqc/OuvgIQUIuToIaPzIccxBoSppW7OlYXpc4EdR2vspMjlIjyMsaOMn2B3LxCK+BLqp6l0iCQ8HNkHIKlTzk9Fgzz86USf0DwrW7/SNNYNUkyepHnk13O6Dx9CE3j96Qb4V8nKK4HGvMUAg2MRx5yEvbqmgN2P6ogi55OfAlR2kXdhCeMkrpB0wPKg5AtJ0l/d7uJzKgys1vAaXACN6NzSJVSOyVq16qBgk5yH2sD6M/AQ8ykZdn