summaryrefslogtreecommitdiff
path: root/core/src/main/java/de
diff options
context:
space:
mode:
authorByteHamster <info@bytehamster.com>2020-02-04 14:53:49 +0100
committerByteHamster <info@bytehamster.com>2020-02-04 14:53:52 +0100
commitcae04b5b138f8dd232c19062ec115c81ed818ae2 (patch)
tree8bb4f74111be7eb154847118a4b475d9d947049c /core/src/main/java/de
parent7e2fd0b1d744e01759c4a5feb697eeb32553e3a7 (diff)
downloadAntennaPod-cae04b5b138f8dd232c19062ec115c81ed818ae2.zip
Extract queue item holder to new class
First step to use a single item holder in the future
Diffstat (limited to 'core/src/main/java/de')
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/download/handler/PostDownloaderTask.java2
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/storage/DownloadRequester.java20
2 files changed, 22 insertions, 0 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/download/handler/PostDownloaderTask.java b/core/src/main/java/de/danoeh/antennapod/core/service/download/handler/PostDownloaderTask.java
index 5d2c48679..7c998146d 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/download/handler/PostDownloaderTask.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/download/handler/PostDownloaderTask.java
@@ -2,6 +2,7 @@ package de.danoeh.antennapod.core.service.download.handler;
import de.danoeh.antennapod.core.event.DownloadEvent;
import de.danoeh.antennapod.core.service.download.Downloader;
+import de.danoeh.antennapod.core.storage.DownloadRequester;
import org.greenrobot.eventbus.EventBus;
import java.util.ArrayList;
@@ -23,6 +24,7 @@ public class PostDownloaderTask implements Runnable {
runningDownloads.add(downloader);
}
}
+ DownloadRequester.getInstance().updateProgress(downloads);
List<Downloader> list = Collections.unmodifiableList(runningDownloads);
EventBus.getDefault().postSticky(DownloadEvent.refresh(list));
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/DownloadRequester.java b/core/src/main/java/de/danoeh/antennapod/core/storage/DownloadRequester.java
index 3d4ee443b..8bd9afe38 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/storage/DownloadRequester.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/storage/DownloadRequester.java
@@ -12,6 +12,7 @@ import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
import androidx.core.content.ContextCompat;
+import de.danoeh.antennapod.core.service.download.Downloader;
import org.apache.commons.io.FilenameUtils;
import java.io.File;
@@ -344,6 +345,16 @@ public class DownloadRequester implements DownloadStateProvider {
}
/**
+ * Get the downloader for this item.
+ */
+ public synchronized DownloadRequest getRequestFor(FeedFile item) {
+ if (isDownloadingFile(item)) {
+ return downloads.get(item.getDownload_url());
+ }
+ return null;
+ }
+
+ /**
* Checks if feedfile with the given download url is in the downloads list
*/
public synchronized boolean isDownloadingFile(String downloadUrl) {
@@ -428,4 +439,13 @@ public class DownloadRequester implements DownloadStateProvider {
}
return filename;
}
+
+ public void updateProgress(List<Downloader> newDownloads) {
+ for (Downloader downloader : newDownloads) {
+ DownloadRequest request = downloader.getDownloadRequest();
+ if (downloads.containsKey(request.getSource())) {
+ downloads.put(request.getSource(), request);
+ }
+ }
+ }
}