From 39e62ddaa05a01a2e00a6aaeca67530169b51cbc Mon Sep 17 00:00:00 2001 From: 7015725 Date: Sat, 23 May 2026 06:22:59 +0800 Subject: [PATCH] fix: reduce color picker swipe ghosting --- code/th_14_panels.js | 32 ++++++++++++++++++++++++++++---- manifest.json | 6 +++--- manifest.sig | 2 +- 3 files changed, 32 insertions(+), 8 deletions(-) diff --git a/code/th_14_panels.js b/code/th_14_panels.js index 0e3b973..587fc4c 100644 --- a/code/th_14_panels.js +++ b/code/th_14_panels.js @@ -4673,6 +4673,29 @@ FloatBallAppWM.prototype.showPopupOverlay = function(opts) { var popupBackEligible = false; var popupBackActive = false; var popupBackMoved = false; + var popupBackVisualActive = false; + function beginPopupBackVisual(v) { + try { + if (popupBackVisualActive || !v) return; + popupBackVisualActive = true; + // ColorOS overlay 上拖动带 elevation 的圆角卡片容易留下阴影/拖影;拖动期间临时去掉阴影。 + try { v.animate().cancel(); } catch(eAnimCancel) {} + try { v.setAlpha(1); v.setScaleX(1); v.setScaleY(1); } catch(eResetVisual) {} + try { v.setElevation(0); } catch(eElev0) {} + try { v.setLayerType(android.view.View.LAYER_TYPE_NONE, null); } catch(eLayer0) {} + try { v.invalidate(); root.invalidate(); } catch(eInv0) {} + } catch(eBeginVisual) {} + } + function endPopupBackVisual(v) { + try { + popupBackVisualActive = false; + if (!v) return; + try { v.setAlpha(1); v.setScaleX(1); v.setScaleY(1); } catch(eResetVisual2) {} + try { v.setElevation(self.dp(10)); } catch(eElevRestore) {} + try { v.setLayerType(android.view.View.LAYER_TYPE_NONE, null); } catch(eLayerRestore) {} + try { v.invalidate(); root.invalidate(); } catch(eInvRestore) {} + } catch(eEndVisual) {} + } var card = new JavaAdapter(android.widget.LinearLayout, { onInterceptTouchEvent: function(ev) { try { @@ -4703,7 +4726,7 @@ FloatBallAppWM.prototype.showPopupOverlay = function(opts) { if (validDir && adx > slop && adx > ady * 0.9) { popupBackActive = true; popupBackMoved = true; - try { this.animate().cancel(); } catch(eCancel) {} + beginPopupBackVisual(this); try { this.setTranslationX(dx); } catch(eTx) {} return true; } @@ -4740,9 +4763,10 @@ FloatBallAppWM.prototype.showPopupOverlay = function(opts) { popupBackMoved = false; popupBackEdge = -1; if (ok) { - this.animate().translationX(dir * panelWidth).alpha(0.96).setDuration(150).withEndAction(new java.lang.Runnable({ run: function() { closePopup(); } })).start(); + this.animate().translationX(dir * panelWidth).setDuration(130).withEndAction(new java.lang.Runnable({ run: function() { endPopupBackVisual(card); closePopup(); } })).start(); } else { - this.animate().translationX(0).alpha(1).setDuration(160).start(); + var that = this; + this.animate().translationX(0).setDuration(140).withEndAction(new java.lang.Runnable({ run: function() { endPopupBackVisual(that); } })).start(); } return true; } @@ -4752,7 +4776,7 @@ FloatBallAppWM.prototype.showPopupOverlay = function(opts) { popupBackEligible = false; popupBackMoved = false; popupBackEdge = -1; - try { this.setTranslationX(0); this.setAlpha(1); } catch(eReset) {} + try { this.setTranslationX(0); this.setAlpha(1); endPopupBackVisual(this); } catch(eReset) {} try { safeLog(self.L, 'w', 'popup back touch fail: ' + String(eTouch)); } catch(eLog2) {} } return false; diff --git a/manifest.json b/manifest.json index 97a4f34..619b817 100644 --- a/manifest.json +++ b/manifest.json @@ -62,8 +62,8 @@ "size": 23906 }, "th_14_panels.js": { - "sha256": "c014e103cccc083c47e1bd6646e9bf56621f3696b1db2f9a81fa6e37fd5991fd", - "size": 274859 + "sha256": "41936972f45eb010d3138acc2462ec29e99c2ae64ecdcf085539ded5b66224da", + "size": 276108 }, "th_14_schema_editor.js": { "sha256": "5669d0b5a16f770bed24eedee24203df57f7cbc7910c840931e533adac1ef146", @@ -80,5 +80,5 @@ }, "keyId": "toolhub-targets-2026-rsa3072", "schema": 2, - "version": 20260522221302 + "version": 20260522222253 } diff --git a/manifest.sig b/manifest.sig index 9ea9d0d..f9a0508 100644 --- a/manifest.sig +++ b/manifest.sig @@ -1 +1 @@ -jrjLCzwfZFg36cyiTezt+pUr5KLOjP8TdEQvnw4Kh2hAWxwhIM3spgt7sIhspiD9bGeeR7NlRpNiNslxpW7PtT/cVdQS7fq11ZtrEK59ZgWLMcFIioZwsAYO1kdFkgzfMshW9Gb8RCOJkk1TofUNf7LCe/S69S5qb2LA14S0/yihHbFwQg6uIf9yLqPS6HHyUCDWta9csivRng9PHrOtGpPZ7hqJMdIQlzvZzH28ahqb13CIdrcgJcLK3jR67LjmePuzB4Z+CUKmDJ4bkhwnl8IsDGxOnuc4q8iCbe+p6aRrU2yaeeT3z2/9EkdQ+iwWjcp1krsqURtY1Zw8yFiUWSDKTo6ejUWbvgY0Y/0YUlcNcIeIuJEx1PuRcvDMQ5YrkvsG9WWruXvMXP8zWxqkHa2WYeqSuqpDwl1JaPiDeT5b0PJz59NxyMlBqe0yJJ6N1Ae+9fVXzWN4PiB6zFjNW5P61g8t5c67mt4l1891gsN3UOReoj/6NBesatjmJJoo +F/qTOCzsNyLTRjDB9xB1/fxhSja2q8SY/vbMoIahSZZSbB0tggzzc5rsr0o61HyGiw9zGzkUDfcKy44rAjCEIlhtFt5kFRMrxnPThp1k7/n15jUCaOaY7X0OMxqqeb3hv/1+CXTBUP0a0sQxflqWu5NK1aKIkuRCMLM3kX4d5F9Q9yEDJwtcUDt2cBSSvfhKgs9yik3uHvnhJIWjrszBSjQt3PADdBzInzp3vmpM79ZogG9omF9lcJaKna47iG1BppsIjKK7R6Qw28uv4UfPG1hdfsEb2RzpRR7S/vhVZnpejjCveDNowEanpP+GmYutz7dt4Zr+gvtdFppmzmK6UjtNxSdu7LTVdibST7AQo6qRWnLI1ckjFCchsMSqCRu3XUVXDgBk17V82rt0Y8st1MQhsqvdPs86X063inGmBFyev2XwXrXwGZefZz2PDAUrVnkzyrmGGaF8G6Fm+BX7GQS1gINBnJ7hsEAOX5HYRT2HU/Qrsl/UIPjkO/jkmfhx