From 527ca254ac58f6cf41b8c9d5c04f188b87897e66 Mon Sep 17 00:00:00 2001 From: Kingkor Roy Tirtho Date: Sun, 12 Nov 2023 18:52:26 +0600 Subject: [PATCH] fix: download not working other than jiosaavn --- .../library/user_downloads/download_item.dart | 16 +++++++------- lib/provider/download_manager_provider.dart | 21 ++++++++++--------- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/lib/components/library/user_downloads/download_item.dart b/lib/components/library/user_downloads/download_item.dart index a05695d1..10dec410 100644 --- a/lib/components/library/user_downloads/download_item.dart +++ b/lib/components/library/user_downloads/download_item.dart @@ -28,21 +28,21 @@ class DownloadItem extends HookConsumerWidget { final notifier = downloadManager.getStatusNotifier(track as SourcedTrack); taskStatus.value = notifier?.value; - listener() { + + void listener() { taskStatus.value = notifier?.value; } - downloadManager - .getStatusNotifier(track as SourcedTrack) - ?.addListener(listener); + notifier?.addListener(listener); return () { - downloadManager - .getStatusNotifier(track as SourcedTrack) - ?.removeListener(listener); + notifier?.removeListener(listener); }; }, [track]); + final isQueryingSourceInfo = + taskStatus.value == null || track is! SourcedTrack; + return ListTile( leading: Padding( padding: const EdgeInsets.symmetric(horizontal: 5), @@ -63,7 +63,7 @@ class DownloadItem extends HookConsumerWidget { track.artists ?? [], mainAxisAlignment: WrapAlignment.start, ), - trailing: taskStatus.value == null || track is! SourcedTrack + trailing: isQueryingSourceInfo ? Text( context.l10n.querying_info, style: Theme.of(context).textTheme.labelMedium, diff --git a/lib/provider/download_manager_provider.dart b/lib/provider/download_manager_provider.dart index 246ee02c..67141c41 100644 --- a/lib/provider/download_manager_provider.dart +++ b/lib/provider/download_manager_provider.dart @@ -141,9 +141,9 @@ class DownloadManagerProvider extends ChangeNotifier { bool isActive(Track track) { if ($backHistory.contains(track)) return true; - final SourcedTrack = mapToSourcedTrack(track); + final sourcedTrack = mapToSourcedTrack(track); - if (SourcedTrack == null) return false; + if (sourcedTrack == null) return false; return dl .getAllDownloads() @@ -154,7 +154,7 @@ class DownloadManagerProvider extends ChangeNotifier { download.status.value == DownloadStatus.queued, ) .map((e) => e.request.url) - .contains(SourcedTrack.url); + .contains(sourcedTrack.getUrlOfCodec(downloadCodec)); } /// For singular downloads @@ -171,7 +171,8 @@ class DownloadManagerProvider extends ChangeNotifier { } if (track is SourcedTrack && track.codec == downloadCodec) { - final downloadTask = await dl.addDownload(track.url, savePath); + final downloadTask = + await dl.addDownload(track.getUrlOfCodec(downloadCodec), savePath); if (downloadTask != null) { $history.add(track); } @@ -219,16 +220,16 @@ class DownloadManagerProvider extends ChangeNotifier { } Future removeFromQueue(SourcedTrack track) async { - await dl.removeDownload(track.url); + await dl.removeDownload(track.getUrlOfCodec(downloadCodec)); $history.remove(track); } Future pause(SourcedTrack track) { - return dl.pauseDownload(track.url); + return dl.pauseDownload(track.getUrlOfCodec(downloadCodec)); } Future resume(SourcedTrack track) { - return dl.resumeDownload(track.url); + return dl.resumeDownload(track.getUrlOfCodec(downloadCodec)); } Future retry(SourcedTrack track) { @@ -236,7 +237,7 @@ class DownloadManagerProvider extends ChangeNotifier { } void cancel(SourcedTrack track) { - dl.cancelDownload(track.url); + dl.cancelDownload(track.getUrlOfCodec(downloadCodec)); } void cancelAll() { @@ -255,11 +256,11 @@ class DownloadManagerProvider extends ChangeNotifier { } ValueNotifier? getStatusNotifier(SourcedTrack track) { - return dl.getDownload(track.url)?.status; + return dl.getDownload(track.getUrlOfCodec(downloadCodec))?.status; } ValueNotifier? getProgressNotifier(SourcedTrack track) { - return dl.getDownload(track.url)?.progress; + return dl.getDownload(track.getUrlOfCodec(downloadCodec))?.progress; } }