Fix long-press move jitter closing settings
This commit is contained in:
@@ -97,6 +97,7 @@ var ConfigValidator = {
|
||||
|
||||
// 交互配置
|
||||
LONG_PRESS_MS: { type: "int", min: 200, max: 2000, default: 600 },
|
||||
LONG_PRESS_TRIGGERED_MOVE_SLOP_DP: { type: "int", min: 8, max: 80, default: 28 },
|
||||
LONG_PRESS_VIBRATE_MS: { type: "int", min: 10, max: 100, default: 40 },
|
||||
CLICK_SLOP_DP: { type: "int", min: 2, max: 20, default: 6 },
|
||||
TOOLAPP_BACK_EDGE_WIDTH_DP: { type: "int", min: 1, max: 120, default: 22 },
|
||||
@@ -731,6 +732,7 @@ var ConfigManager = {
|
||||
LONG_PRESS_VIBRATE_MS: 18,
|
||||
ENABLE_LONG_PRESS: true,
|
||||
LONG_PRESS_MS: 520,
|
||||
LONG_PRESS_TRIGGERED_MOVE_SLOP_DP: 28,
|
||||
CLICK_SLOP_DP: 6,
|
||||
TOOLAPP_BACK_EDGE_WIDTH_DP: 22,
|
||||
TOOLAPP_BACK_COMMIT_DISTANCE_DP: 72,
|
||||
@@ -849,6 +851,7 @@ var ConfigManager = {
|
||||
{ key: "TOOLAPP_BACK_PROGRESS_DISTANCE_DP", name: "设置页返回动画距离", type: "int", min: 1, max: 720, step: 1 },
|
||||
{ key: "ENABLE_LONG_PRESS", name: "启用长按", type: "bool" },
|
||||
{ key: "LONG_PRESS_MS", name: "长按判定(ms)", type: "int", min: 200, max: 2000, step: 10 },
|
||||
{ key: "LONG_PRESS_TRIGGERED_MOVE_SLOP_DP", name: "长按后抖动容忍距离", type: "int", min: 8, max: 80, step: 1 },
|
||||
{ key: "LONG_PRESS_HAPTIC_ENABLE", name: "长按震动反馈", type: "bool" },
|
||||
{ key: "LONG_PRESS_VIBRATE_MS", name: "震动时长(ms)", type: "int", min: 1, max: 120, step: 1 },
|
||||
|
||||
@@ -883,7 +886,7 @@ var ConfigManager = {
|
||||
var needReset = false;
|
||||
if (s) {
|
||||
var sStr = JSON.stringify(s);
|
||||
if (sStr.indexOf("ENABLE_SNAP_TO_EDGE") < 0 || sStr.indexOf("ENABLE_ANIMATIONS") < 0 || sStr.indexOf("BALL_IDLE_ALPHA") < 0 || sStr.indexOf("PANEL_POS_GRAVITY") < 0 || sStr.indexOf("single_choice") < 0 || sStr.indexOf("ball_shortx_icon") < 0 || sStr.indexOf("ball_color") < 0 || sStr.indexOf("SETTINGS_THEME") < 0 || sStr.indexOf("BALL_BG_COLOR_HEX") < 0 || sStr.indexOf("BALL_ICON_SIZE_DP") < 0 || sStr.indexOf("TOOLAPP_BACK_EDGE_WIDTH_DP") < 0 || sStr.indexOf("TOOLAPP_BACK_COMMIT_DISTANCE_DP") < 0 || sStr.indexOf("TOOLAPP_BACK_PROGRESS_DISTANCE_DP") < 0) {
|
||||
if (sStr.indexOf("ENABLE_SNAP_TO_EDGE") < 0 || sStr.indexOf("ENABLE_ANIMATIONS") < 0 || sStr.indexOf("BALL_IDLE_ALPHA") < 0 || sStr.indexOf("PANEL_POS_GRAVITY") < 0 || sStr.indexOf("single_choice") < 0 || sStr.indexOf("ball_shortx_icon") < 0 || sStr.indexOf("ball_color") < 0 || sStr.indexOf("SETTINGS_THEME") < 0 || sStr.indexOf("BALL_BG_COLOR_HEX") < 0 || sStr.indexOf("BALL_ICON_SIZE_DP") < 0 || sStr.indexOf("TOOLAPP_BACK_EDGE_WIDTH_DP") < 0 || sStr.indexOf("TOOLAPP_BACK_COMMIT_DISTANCE_DP") < 0 || sStr.indexOf("TOOLAPP_BACK_PROGRESS_DISTANCE_DP") < 0 || sStr.indexOf("LONG_PRESS_TRIGGERED_MOVE_SLOP_DP") < 0) {
|
||||
needReset = true;
|
||||
}
|
||||
|
||||
@@ -916,7 +919,8 @@ var ConfigManager = {
|
||||
schemaItemDiffers("BALL_BG_COLOR_HEX", ["name", "type"]) ||
|
||||
schemaItemDiffers("TOOLAPP_BACK_EDGE_WIDTH_DP", ["name", "type", "min", "max", "step"]) ||
|
||||
schemaItemDiffers("TOOLAPP_BACK_COMMIT_DISTANCE_DP", ["name", "type", "min", "max", "step"]) ||
|
||||
schemaItemDiffers("TOOLAPP_BACK_PROGRESS_DISTANCE_DP", ["name", "type", "min", "max", "step"])) {
|
||||
schemaItemDiffers("TOOLAPP_BACK_PROGRESS_DISTANCE_DP", ["name", "type", "min", "max", "step"]) ||
|
||||
schemaItemDiffers("LONG_PRESS_TRIGGERED_MOVE_SLOP_DP", ["name", "type", "min", "max", "step"])) {
|
||||
needReset = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2052,6 +2052,20 @@ FloatBallAppWM.prototype.setupTouchListener = function() {
|
||||
var dx = Math.round(curRawX - startRawX);
|
||||
var dy = Math.round(curRawY - startRawY);
|
||||
|
||||
var longPressMoveSlopDp = Number(self.config.LONG_PRESS_TRIGGERED_MOVE_SLOP_DP || 28);
|
||||
if (isNaN(longPressMoveSlopDp)) longPressMoveSlopDp = 28;
|
||||
if (longPressMoveSlopDp < 8) longPressMoveSlopDp = 8;
|
||||
if (longPressMoveSlopDp > 80) longPressMoveSlopDp = 80;
|
||||
var longPressMoveSlop = self.dp(longPressMoveSlopDp);
|
||||
|
||||
if (self.state.longPressTriggered) {
|
||||
// 长按已经触发设置页后,手指未抬起期间的移动全部消费,避免进入普通拖动逻辑并误关设置页。
|
||||
if (Math.abs(dx) <= longPressMoveSlop && Math.abs(dy) <= longPressMoveSlop) {
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!self.state.dragging) {
|
||||
if (Math.abs(dx) > slop || Math.abs(dy) > slop) {
|
||||
self.state.dragging = true;
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
"alg": "SHA256withRSA",
|
||||
"files": {
|
||||
"th_01_base.js": {
|
||||
"sha256": "ea06cb734ad4ccdcec06d746771f6e3c71154d1acf02192edd2b9664109a8e31",
|
||||
"size": 55958
|
||||
"sha256": "6b7a51c97f76b797b176c8fcf712dbafb8d33ebab448d0c7574f26568dcd14df",
|
||||
"size": 56392
|
||||
},
|
||||
"th_02_core.js": {
|
||||
"sha256": "15bb9bfbd19a673d442e221b0a00a456ed5f87af2666b9c73b117d6223faeecd",
|
||||
@@ -58,8 +58,8 @@
|
||||
"size": 262019
|
||||
},
|
||||
"th_15_extra.js": {
|
||||
"sha256": "bf28b503ea5e2f023952016a57a421ecc8f8ff57844f39571f01ca18ebbcdad4",
|
||||
"size": 97293
|
||||
"sha256": "36a7adf784921de6f4c66a772175ec99e61c9f5be8545cc6cb394c0f96601033",
|
||||
"size": 97990
|
||||
},
|
||||
"th_16_entry.js": {
|
||||
"sha256": "e7c99c3dfbd6aedab05551426955081ae6cae034754f2f557cefa01dc75dc001",
|
||||
@@ -68,5 +68,5 @@
|
||||
},
|
||||
"keyId": "toolhub-targets-2026-rsa3072",
|
||||
"schema": 2,
|
||||
"version": 20260518170217
|
||||
"version": 20260518190147
|
||||
}
|
||||
|
||||
@@ -1 +1 @@
|
||||
auvFOg4qSLMH+ut6SdgXK8I8smXZZfdI00iUQbFrf7pWIJz/mCzNBJf4DO4B5jn4Xf/TWyNHx956nGPnW9hYc79hehc217udD1f0xuWgoLynMRMqgwKKAd+pSz6gZ6zHZtkr/VXsjROBpoXJ8Z5ei2NHbxbPhYJssF2OLSoznhWYHOLENgWjul6M8zBrEn63GfyYp04p2kmXr6EeHyvK4qMSUmC9wfjgfBnKFt/LJcUsQaS1ZeZsJ7h95IC1vPymDfhcxulh/wkiOqRwjKyGJhWD1ChfEMH8+A9RowG2DTZv4tetvmr4xlXiL//MJDdW9wSH7u8oIkH+2oKni0XWIP3egMcATE/wkIOEQEgyJZiC/pnxpuYqZzOjHIsud7xyDlCbouFyAbEoZ1h1YZTCFbl93Y4Kn2pXigfa7YJoCtJRskqInGCY8Kpggi10XK1OMU8b9r3h33cBUwQyQpa22q8FqQQEDX4lsGq5oj6kFZJMf1i7DKzKKMwSX+PVTTTc
|
||||
VZkj5FB7IIEkKImiDaunHarfhGsZ8aXkVOeGHBdwrapSZJ9AZZ/7CMt6qSG3PI4GBHfcp229jIWWOI5T6rCND1piKdLmYAkPNjXW47X0xaB6YMvyXKALuPVvm+mFcAqNXBtOlQNjWPAnimdypVmlnzc1wIkGAPWTJRpDRD2bSvHFbZeFyZp8qhyAu5pR4GisecgEZ5gqTgE+BDo+gs3LjpLphekeg9bZWzKX4p1hsttPM2oC6rMLW4SkPaqVsOWJOxJgOAaoZP9dR2bh4/W97WM1dGqxrdANmofg+wpwA2p7KH9DUxPdJqwIe6adCiLP/jXwb2twLuZvY5AuMWj8Im4c4yAmUrE2RdocHl6NStykcx3b9WlQPHPHBfYHFka47+3qHSYPnB5IyxCGMC1d4XxZ34nhbc7yE9aFarjQC9ky1KtBS2hvM58MzE87GiudEb2DJRNYbebdh0/pocnDSXb1rKy16TQWFBk9r1xS7F/mviDN9vKsL1My47q6kLrd
|
||||
|
||||
Reference in New Issue
Block a user