Browse Source

fix(mobile): Improve vertical swipe detection in gallery viewer (#3486)

* Improve vertical swipe detection in gallery viewer

* Use final
PyKen 2 years ago
parent
commit
a9cd3609dd
1 changed files with 4 additions and 2 deletions
  1. 4 2
      mobile/lib/modules/asset_viewer/views/gallery_viewer.dart

+ 4 - 2
mobile/lib/modules/asset_viewer/views/gallery_viewer.dart

@@ -239,6 +239,7 @@ class GalleryViewerPage extends HookConsumerWidget {
     void handleSwipeUpDown(DragUpdateDetails details) {
       int sensitivity = 15;
       int dxThreshold = 50;
+      double ratioThreshold = 3.0;
 
       if (isZoomed.value) {
         return;
@@ -256,9 +257,10 @@ class GalleryViewerPage extends HookConsumerWidget {
         return;
       }
 
-      if (details.delta.dy > sensitivity) {
+      final ratio = d.dy / max(d.dx.abs(), 1);
+      if (d.dy > sensitivity && ratio > ratioThreshold) {
         AutoRouter.of(context).pop();
-      } else if (details.delta.dy < -sensitivity) {
+      } else if (d.dy < -sensitivity && ratio < -ratioThreshold) {
         showInfo();
       }
     }