summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java42
1 files changed, 16 insertions, 26 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java
index df48c9a98..94877811e 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java
@@ -37,10 +37,7 @@ import de.danoeh.antennapod.adapter.actionbutton.PlayActionButton;
import de.danoeh.antennapod.adapter.actionbutton.PlayLocalActionButton;
import de.danoeh.antennapod.adapter.actionbutton.StreamActionButton;
import de.danoeh.antennapod.adapter.actionbutton.VisitWebsiteActionButton;
-import de.danoeh.antennapod.core.event.DownloadEvent;
-import de.danoeh.antennapod.core.event.DownloaderUpdate;
-import de.danoeh.antennapod.net.download.serviceinterface.DownloadRequest;
-import de.danoeh.antennapod.core.service.download.DownloadService;
+import de.danoeh.antennapod.event.EpisodeDownloadEvent;
import de.danoeh.antennapod.core.util.PlaybackStatus;
import de.danoeh.antennapod.event.FeedItemEvent;
import de.danoeh.antennapod.event.PlayerStatusEvent;
@@ -49,8 +46,8 @@ import de.danoeh.antennapod.model.feed.FeedItem;
import de.danoeh.antennapod.model.feed.FeedMedia;
import de.danoeh.antennapod.core.feed.util.ImageResourceUtils;
import de.danoeh.antennapod.core.preferences.UsageStatistics;
+import de.danoeh.antennapod.net.download.serviceinterface.DownloadServiceInterface;
import de.danoeh.antennapod.storage.preferences.UserPreferences;
-import de.danoeh.antennapod.core.service.download.Downloader;
import de.danoeh.antennapod.core.storage.DBReader;
import de.danoeh.antennapod.core.util.Converter;
import de.danoeh.antennapod.core.util.DateFormatter;
@@ -63,12 +60,10 @@ import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
-import org.apache.commons.lang3.ArrayUtils;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
-import java.util.List;
import java.util.Locale;
import java.util.Objects;
@@ -98,7 +93,6 @@ public class ItemFragment extends Fragment {
private long itemId;
private FeedItem item;
private String webviewData;
- private List<Downloader> downloaderList;
private ViewGroup root;
private ShownotesWebView webvDescription;
@@ -309,14 +303,13 @@ public class ItemFragment extends Fragment {
private void updateButtons() {
progbarDownload.setVisibility(View.GONE);
- if (item.hasMedia() && downloaderList != null) {
- for (Downloader downloader : downloaderList) {
- DownloadRequest request = downloader.getDownloadRequest();
- if (request.getFeedfileType() == FeedMedia.FEEDFILETYPE_FEEDMEDIA
- && request.getFeedfileId() == item.getMedia().getId()) {
- progbarDownload.setVisibility(View.VISIBLE);
- progbarDownload.setPercentage(0.01f * Math.max(1, request.getProgressPercent()), request);
- }
+ if (item.hasMedia()) {
+ if (DownloadServiceInterface.get().isDownloadingEpisode(item.getMedia().getDownload_url())) {
+ progbarDownload.setVisibility(View.VISIBLE);
+ progbarDownload.setPercentage(0.01f * Math.max(1,
+ DownloadServiceInterface.get().getProgress(item.getMedia().getDownload_url())), item);
+ progbarDownload.setIndeterminate(
+ DownloadServiceInterface.get().isEpisodeQueued(item.getMedia().getDownload_url()));
}
}
@@ -341,7 +334,7 @@ public class ItemFragment extends Fragment {
} else {
actionButton1 = new StreamActionButton(item);
}
- if (DownloadService.isDownloadingFile(media.getDownload_url())) {
+ if (DownloadServiceInterface.get().isDownloadingEpisode(media.getDownload_url())) {
actionButton2 = new CancelDownloadActionButton(item);
} else if (!media.isDownloaded()) {
actionButton2 = new DownloadActionButton(item);
@@ -386,18 +379,15 @@ public class ItemFragment extends Fragment {
}
@Subscribe(sticky = true, threadMode = ThreadMode.MAIN)
- public void onEventMainThread(DownloadEvent event) {
- Log.d(TAG, "onEventMainThread() called with: " + "event = [" + event + "]");
- DownloaderUpdate update = event.update;
- downloaderList = update.downloaders;
+ public void onEventMainThread(EpisodeDownloadEvent event) {
if (item == null || item.getMedia() == null) {
return;
}
- long mediaId = item.getMedia().getId();
- if (ArrayUtils.contains(update.mediaIds, mediaId)) {
- if (itemsLoaded && getActivity() != null) {
- updateButtons();
- }
+ if (!event.getUrls().contains(item.getMedia().getDownload_url())) {
+ return;
+ }
+ if (itemsLoaded && getActivity() != null) {
+ updateButtons();
}
}