diff --git a/lib/views/image_view.dart b/lib/views/image_view.dart index 84637f0b..56ca2acb 100644 --- a/lib/views/image_view.dart +++ b/lib/views/image_view.dart @@ -3,8 +3,8 @@ import 'package:famedlysdk/famedlysdk.dart'; import 'package:fluffychat/components/image_bubble.dart'; import 'package:fluffychat/components/matrix.dart'; import 'package:flutter/material.dart'; -import 'package:photo_view/photo_view.dart'; import '../utils/event_extension.dart'; +import '../utils/platform_infos.dart'; class ImageView extends StatelessWidget { final Event event; @@ -19,6 +19,8 @@ class ImageView extends StatelessWidget { @override Widget build(BuildContext context) { + var calcVelocity = MediaQuery.of(context).size.height * 1.50; + return Scaffold( backgroundColor: Colors.black, extendBodyBehindAppBar: true, @@ -43,19 +45,28 @@ class ImageView extends StatelessWidget { ), ], ), - body: PhotoView.customChild( + body: InteractiveViewer( + child: Center( + child: ImageBubble( + event, + tapToView: false, + onLoaded: onLoaded, + fit: BoxFit.contain, + backgroundColor: Colors.black, + maxSize: false, + radius: 0.0, + thumbnailOnly: false, + ), + ), minScale: 1.0, maxScale: 10.0, - child: ImageBubble( - event, - tapToView: false, - onLoaded: onLoaded, - fit: BoxFit.contain, - backgroundColor: Colors.black, - maxSize: false, - radius: 0.0, - thumbnailOnly: false, - ), + onInteractionEnd: (ScaleEndDetails endDetails) { + if (PlatformInfos.usesTouchscreen == false) { + if (endDetails.velocity.pixelsPerSecond.dy > calcVelocity) { + Navigator.of(context).pop(); + } + } + }, ), ); }