fix: improve ToolApp landscape edge back handling
This commit is contained in:
@@ -368,7 +368,7 @@ FloatBallAppWM.prototype.applyPanelPredictiveBackProgress = function(panel, even
|
||||
if (p > 1) p = 1;
|
||||
var edge = 0;
|
||||
try { edge = Number(event.getSwipeEdge()); } catch (eE) { edge = 0; }
|
||||
if (panel && this.state && this.state.toolAppRoot === panel && this.applyToolAppBackPreviewProgress && this.getToolAppPreviousStackEntry && this.getToolAppPreviousStackEntry()) {
|
||||
if (panel && this.state && this.state.toolAppRoot === panel && this.applyToolAppBackPreviewProgress && this.hasToolAppBackTarget && this.hasToolAppBackTarget()) {
|
||||
this.state.toolAppBackEdge = edge;
|
||||
this.applyToolAppBackPreviewProgress(edge, p);
|
||||
return;
|
||||
@@ -429,7 +429,7 @@ FloatBallAppWM.prototype.registerPanelPredictiveBack = function(panel, which) {
|
||||
var usedAnimation = false;
|
||||
|
||||
function finishBack(reason) {
|
||||
if (String(which || "") === "tool_app" && self.finishToolAppBackPreview && self.getToolAppPreviousStackEntry && self.getToolAppPreviousStackEntry()) {
|
||||
if (String(which || "") === "tool_app" && self.finishToolAppBackPreview && self.hasToolAppBackTarget && self.hasToolAppBackTarget()) {
|
||||
var edge = 0;
|
||||
try { edge = Number(self.state.toolAppBackEdge || 0); } catch (eEdge) { edge = 0; }
|
||||
self.finishToolAppBackPreview(edge, true);
|
||||
|
||||
@@ -587,6 +587,25 @@ FloatBallAppWM.prototype.getToolAppPreviousStackEntry = function() {
|
||||
return null;
|
||||
};
|
||||
|
||||
FloatBallAppWM.prototype.hasToolAppPaneBackTarget = function() {
|
||||
try {
|
||||
var r = String(this.state.toolAppRoute || "");
|
||||
if (r !== "settings") return false;
|
||||
if (!this.state.settingsHomeSelectedItemId) return false;
|
||||
var spec = this.getSettingsResponsiveSpec ? this.getSettingsResponsiveSpec() : (this.getToolAppResponsiveSpec ? this.getToolAppResponsiveSpec() : null);
|
||||
return !!(spec && spec.useSideBySide);
|
||||
} catch (e) {}
|
||||
return false;
|
||||
};
|
||||
|
||||
FloatBallAppWM.prototype.hasToolAppBackTarget = function() {
|
||||
try {
|
||||
if (this.getToolAppPreviousStackEntry && this.getToolAppPreviousStackEntry()) return true;
|
||||
if (this.hasToolAppPaneBackTarget && this.hasToolAppPaneBackTarget()) return true;
|
||||
} catch (e) {}
|
||||
return false;
|
||||
};
|
||||
|
||||
FloatBallAppWM.prototype.makeToolAppStackEntry = function(route) {
|
||||
return {
|
||||
route: String(route || "settings"),
|
||||
@@ -687,9 +706,28 @@ FloatBallAppWM.prototype.prepareToolAppBackPreview = function(edge) {
|
||||
var root = this.state.toolAppRoot;
|
||||
var body = this.state.toolAppBody;
|
||||
var prevEntry = this.getToolAppPreviousStackEntry();
|
||||
var isPaneBack = false;
|
||||
if ((!prevEntry || !prevEntry.route) && this.hasToolAppPaneBackTarget && this.hasToolAppPaneBackTarget()) {
|
||||
prevEntry = this.makeToolAppStackEntry ? this.makeToolAppStackEntry("settings") : { route: "settings", settingsGroupKey: "" };
|
||||
isPaneBack = true;
|
||||
}
|
||||
if (!root || !body || !prevEntry || !prevEntry.route) return false;
|
||||
var prevRoute = String(prevEntry.route || "settings");
|
||||
var prevBody = this.buildToolAppPreviewBody(prevEntry);
|
||||
var prevRoute = isPaneBack ? "settings:pane" : String(prevEntry.route || "settings");
|
||||
var oldPaneItem = null;
|
||||
var hasOldPaneItem = false;
|
||||
var prevBody = null;
|
||||
try {
|
||||
if (isPaneBack) {
|
||||
oldPaneItem = this.state.settingsHomeSelectedItemId;
|
||||
hasOldPaneItem = true;
|
||||
this.state.settingsHomeSelectedItemId = null;
|
||||
}
|
||||
prevBody = this.buildToolAppPreviewBody(prevEntry);
|
||||
} finally {
|
||||
if (hasOldPaneItem) {
|
||||
try { this.state.settingsHomeSelectedItemId = oldPaneItem; } catch(eRestorePane) {}
|
||||
}
|
||||
}
|
||||
if (!prevBody) return false;
|
||||
var lp = new android.widget.FrameLayout.LayoutParams(-1, -1);
|
||||
prevBody.setAlpha(0.88);
|
||||
@@ -803,7 +841,7 @@ FloatBallAppWM.prototype.createToolAppEdgeBackStrip = function(edge) {
|
||||
if (action === android.view.MotionEvent.ACTION_DOWN) {
|
||||
downX = event.getRawX();
|
||||
downY = event.getRawY();
|
||||
active = !!(self.state && self.state.toolAppActive && self.getToolAppPreviousStackEntry());
|
||||
active = !!(self.state && self.state.toolAppActive && self.hasToolAppBackTarget && self.hasToolAppBackTarget());
|
||||
moved = false;
|
||||
if (active) self.prepareToolAppBackPreview(edge);
|
||||
return active;
|
||||
@@ -875,7 +913,7 @@ FloatBallAppWM.prototype.getToolAppBackEdgeWidthPx = function() {
|
||||
FloatBallAppWM.prototype.showToolAppScreenBackStrips = function() {
|
||||
try {
|
||||
if (!this.state.wm || !this.state.toolAppActive) return false;
|
||||
if (!this.getToolAppPreviousStackEntry || !this.getToolAppPreviousStackEntry()) {
|
||||
if (!this.hasToolAppBackTarget || !this.hasToolAppBackTarget()) {
|
||||
this.hideToolAppScreenBackStrips();
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -34,8 +34,8 @@
|
||||
"size": 7938
|
||||
},
|
||||
"th_09_animation.js": {
|
||||
"sha256": "2a991cbf4bf38bfb3d1dda876c0c86778e5dbbe75d6eb268a068e3f200ce0c13",
|
||||
"size": 40229
|
||||
"sha256": "56c53d9b8ba4bb9547dd4c939555a10ab1911220ac7b2188db87ec6f4203c326",
|
||||
"size": 40197
|
||||
},
|
||||
"th_10_shell.js": {
|
||||
"sha256": "0ed793079c2f6ba7d29f4c0d411705cb72419f45f572cbe37ed32ac16527a8bc",
|
||||
@@ -58,8 +58,8 @@
|
||||
"size": 290242
|
||||
},
|
||||
"th_15_extra.js": {
|
||||
"sha256": "a78f59de13c283c9b796e2be3c80d7303e82805cd438a82ba6697c964aa01b7a",
|
||||
"size": 102533
|
||||
"sha256": "59dfd82376d4515515b0596f3cf87d28f24655571d9502cd0b57913363741729",
|
||||
"size": 104045
|
||||
},
|
||||
"th_16_entry.js": {
|
||||
"sha256": "6c59d9891cd010647f84c3db93f1cf95c7bbfb758470ea21044bf72eb8ff73d1",
|
||||
@@ -68,5 +68,5 @@
|
||||
},
|
||||
"keyId": "toolhub-targets-2026-rsa3072",
|
||||
"schema": 2,
|
||||
"version": 20260521171952
|
||||
"version": 20260521173354
|
||||
}
|
||||
|
||||
@@ -1 +1 @@
|
||||
Oi5qaFfuPUyGJheCEN7PQ2M76xQNa49VD7xdrkxeZMPgq5AcpYdZzKFSH/KMn7c5UOFpw0QRZWDqRXjUzAOcBoufHBRFEgfhtz2GUgATG62WmWJo8g8+Y754TGYvgNLc5yh+bpRWgPU8h01yMsMwoiJR/U8MB33b2ZjGivPFS/UybpSnMkwj9c4MoVlPCWjP5K+BzDVJRNWq3gzC9yYLDZIXn+R/skMpR84B6vUANY4LMpIdKTmJ+KPCxPp2VrMPccKXnYAl86XB2Nkn583xsRDMhfHMJrCLXNgp66xN2Vg1Fk50QS8d5DyX2jDzxfwX9af6BxItO2MEjvCRdSKB21eD0nFkESv2dEpxqsa+tPlcvc4vgbPBdOXY3hoPxdjPdAN7HMXy9bXjRnq9OqUaJe0ncFVFD31WdC9s/j3f68Nu1n32Rcjuxe3vHci2eD8pVhWUs7DJdHoh0YTVUt7ou/Vwr7Y8wmfpuiz5CDTfGg+XlIsggJrUjEPL5SlbBo2A
|
||||
jD282Cje59qA6AFxv37U8SI8QYFYil277JHBo0doz+HFMhNR/6eKAvsXjK/roCAil9qQwjeohiCCZPKwvPJziI9ZyQn8Tp+QFfBLfB3IXI7QnaCedxhpQoHBK5YQ8BanwdUkRodcWAEoG12C1U5g4cUPRP8jdxHdJo1ATgpEOu8XSg4AprFxyDCtbcQVuPllGqEQsSg4FMwPCyOQ5WuPEx02NEvJBTpRne1dYQ5SZg8bRt39syY0YY0AkMqiFM+IX7MEEv0b8ZRoauxz2kYmHek6oVFWbzkq84BY/c6lYRw/gF7dFpRD2nJxFsT/FhjnghY6cLfCTPSEzqAIiATRdRqnb06Ae2Z88Sfcjy0QQnbguCVQt6hZ/qd5ZBZ4X57dL0Isshg5Zj8hivTrzwciHdm6lPQ/R9xn+7ABWSz1NxOO+zrs9J/Loje7tRiz8rTcg/AnzfZd3WRd9qfFHX36QrwnFf8S1XfQjc28Cx8+afnD+l/YAZeepg1uMAlJJxym
|
||||
|
||||
Reference in New Issue
Block a user