diff --git a/mobile/lib/presentation/widgets/asset_viewer/asset_page.widget.dart b/mobile/lib/presentation/widgets/asset_viewer/asset_page.widget.dart index a294adb669cb8..42954f5b58e12 100644 --- a/mobile/lib/presentation/widgets/asset_viewer/asset_page.widget.dart +++ b/mobile/lib/presentation/widgets/asset_viewer/asset_page.widget.dart @@ -57,7 +57,6 @@ class _AssetPageState extends ConsumerState { DragStartDetails? _dragStart; _DragIntent _dragIntent = _DragIntent.none; Drag? _drag; - bool _shouldPopOnDrag = false; @override void initState() { @@ -115,7 +114,6 @@ class _AssetPageState extends ConsumerState { void _beginDrag(DragStartDetails details) { _dragStart = details; - _shouldPopOnDrag = false; _lastScrollOffset = _proxyScrollController.hasClients ? _proxyScrollController.offset : 0.0; if (_viewController != null) { @@ -158,6 +156,7 @@ class _AssetPageState extends ConsumerState { void _endDrag(DragEndDetails details) { if (_dragStart == null) return; + final start = _dragStart; _dragStart = null; final intent = _dragIntent; @@ -173,7 +172,8 @@ class _AssetPageState extends ConsumerState { _drag?.end(details); _drag = null; case _DragIntent.dismiss: - if (_shouldPopOnDrag) { + const popThreshold = 75.0; + if (details.localPosition.dy - start!.localPosition.dy > popThreshold) { context.maybePop(); return; } @@ -206,12 +206,8 @@ class _AssetPageState extends ConsumerState { void _handleDragDown(BuildContext context, Offset delta) { const dragRatio = 0.2; - const popThreshold = 75.0; - - _shouldPopOnDrag = delta.dy > popThreshold; final distance = delta.dy.abs(); - final maxScaleDistance = context.height * 0.5; final scaleReduction = (distance / maxScaleDistance).clamp(0.0, dragRatio); final initialScale = _viewController?.initialScale ?? _initialPhotoViewState.scale;