Browse Source

feat(media_kit): swipe down to close video

ashilkn 1 year ago
parent
commit
5f6397c849
2 changed files with 20 additions and 14 deletions
  1. 8 8
      lib/ui/viewer/file/file_widget.dart
  2. 12 6
      lib/ui/viewer/file/video_widget_new.dart

+ 8 - 8
lib/ui/viewer/file/file_widget.dart

@@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
 import 'package:logging/logging.dart';
 import 'package:photos/models/file/file.dart';
 import 'package:photos/models/file/file_type.dart';
-import "package:photos/ui/viewer/file/video_widget.dart";
+import "package:photos/ui/viewer/file/video_widget_new.dart";
 import "package:photos/ui/viewer/file/zoomable_live_image_new.dart";
 
 class FileWidget extends StatelessWidget {
@@ -38,16 +38,16 @@ class FileWidget extends StatelessWidget {
         key: key ?? ValueKey(fileKey),
       );
     } else if (file.fileType == FileType.video) {
-      return VideoWidget(
-        file,
-        autoPlay: autoPlay ?? false, // Autoplay if it was opened directly
-        tagPrefix: tagPrefix,
-        playbackCallback: playbackCallback,
-      );
-      // return VideoWidgetNew(
+      // return VideoWidget(
       //   file,
+      //   autoPlay: autoPlay ?? false, // Autoplay if it was opened directly
       //   tagPrefix: tagPrefix,
+      //   playbackCallback: playbackCallback,
       // );
+      return VideoWidgetNew(
+        file,
+        tagPrefix: tagPrefix,
+      );
     } else {
       Logger('FileWidget').severe('unsupported file type ${file.fileType}');
       return const Icon(Icons.error);

+ 12 - 6
lib/ui/viewer/file/video_widget_new.dart

@@ -4,6 +4,7 @@ import "package:flutter/cupertino.dart";
 import "package:flutter/material.dart";
 import "package:media_kit/media_kit.dart";
 import "package:media_kit_video/media_kit_video.dart";
+import "package:photos/core/constants.dart";
 import "package:photos/generated/l10n.dart";
 import "package:photos/models/file/extensions/file_props.dart";
 import "package:photos/models/file/file.dart";
@@ -105,12 +106,17 @@ class _VideoWidgetNewState extends State<VideoWidgetNew> {
           primaryButtonBar: [],
         ),
         fullscreen: const MaterialVideoControlsThemeData(),
-        child: Center(
-          child: controller != null
-              ? Video(
-                  controller: controller!,
-                )
-              : _getLoadingWidget(),
+        child: GestureDetector(
+          onVerticalDragUpdate: (d) => {
+            if (d.delta.dy > dragSensitivity) {Navigator.of(context).pop()},
+          },
+          child: Center(
+            child: controller != null
+                ? Video(
+                    controller: controller!,
+                  )
+                : _getLoadingWidget(),
+          ),
         ),
       ),
     );