diff --git a/lib/pages/download/controller.dart b/lib/pages/download/controller.dart index ae8bf0265..a05c0d84e 100644 --- a/lib/pages/download/controller.dart +++ b/lib/pages/download/controller.dart @@ -78,7 +78,7 @@ class DownloadPageController extends GetxController title: '确定删除选中视频?', onConfirm: () async { SmartDialog.showLoading(); - final allChecked = this.allChecked.toList(); + final allChecked = this.allChecked.toSet(); final watchProgress = GStorage.watchProgress; for (var page in allChecked) { await watchProgress.deleteAll( diff --git a/lib/pages/download/downloading/view.dart b/lib/pages/download/downloading/view.dart index a7a7a0b30..09cb2eb8f 100644 --- a/lib/pages/download/downloading/view.dart +++ b/lib/pages/download/downloading/view.dart @@ -84,6 +84,9 @@ class _DownloadingPageState extends State onDelete: () => _downloadService.deleteDownload( entry: entry, removeQueue: true, + downloadNext: + isCurr && + entry.status == DownloadStatus.downloading, ), controller: this, ); @@ -107,7 +110,10 @@ class _DownloadingPageState extends State title: '确定删除选中视频?', onConfirm: () async { SmartDialog.showLoading(); - final allChecked = this.allChecked.toList(); + final allChecked = this.allChecked.toSet(); + final isDownloading = + _downloadService.curDownload.value?.status == + DownloadStatus.downloading; for (var entry in allChecked) { await _downloadService.deleteDownload( entry: entry, @@ -116,7 +122,7 @@ class _DownloadingPageState extends State ); } _downloadService.waitDownloadQueue.removeWhere(allChecked.contains); - if (_downloadService.curDownload.value == null) { + if (isDownloading && _downloadService.curDownload.value == null) { _downloadService.nextDownload(); } if (enableMultiSelect.value) { diff --git a/lib/pages/download/search/controller.dart b/lib/pages/download/search/controller.dart index 029ea445b..4c023d319 100644 --- a/lib/pages/download/search/controller.dart +++ b/lib/pages/download/search/controller.dart @@ -55,7 +55,7 @@ class DownloadSearchController title: '确定删除选中视频?', onConfirm: () async { SmartDialog.showLoading(); - final allChecked = this.allChecked.toList(); + final allChecked = this.allChecked.toSet(); for (var entry in allChecked) { await GStorage.watchProgress.delete(entry.cid.toString()); await _downloadService.deleteDownload(