瀏覽代碼

Video download progress: Fix dispose behaviour (#1567)

Neeraj Gupta 1 年之前
父節點
當前提交
6a8a33c14e
共有 1 個文件被更改,包括 5 次插入1 次删除
  1. 5 1
      lib/ui/viewer/file/video_widget_new.dart

+ 5 - 1
lib/ui/viewer/file/video_widget_new.dart

@@ -90,10 +90,11 @@ class _VideoWidgetNewState extends State<VideoWidgetNew>
 
 
   @override
   @override
   void dispose() {
   void dispose() {
+    removeCallBack(widget.file);
+    _progressNotifier.dispose();
     WidgetsBinding.instance.removeObserver(this);
     WidgetsBinding.instance.removeObserver(this);
     playingStreamSubscription.cancel();
     playingStreamSubscription.cancel();
     player.dispose();
     player.dispose();
-    _progressNotifier.dispose();
     super.dispose();
     super.dispose();
   }
   }
 
 
@@ -159,6 +160,9 @@ class _VideoWidgetNewState extends State<VideoWidgetNew>
     getFileFromServer(
     getFileFromServer(
       widget.file,
       widget.file,
       progressCallback: (count, total) {
       progressCallback: (count, total) {
+        if(!mounted) {
+          return;
+        }
         _progressNotifier.value = count / (widget.file.fileSize ?? total);
         _progressNotifier.value = count / (widget.file.fileSize ?? total);
         if (_progressNotifier.value == 1) {
         if (_progressNotifier.value == 1) {
           if (mounted) {
           if (mounted) {