diff options
author | ByteHamster <ByteHamster@users.noreply.github.com> | 2023-05-05 23:09:03 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-05 23:09:03 +0200 |
commit | 6d7bfef8a5fe8180f13904739996bb2b8de8a0d4 (patch) | |
tree | 84f246b74fe7254678788e9f206d81d1a30ffa5e /app/src/main/java/de/danoeh/antennapod/view | |
parent | 4c286931cd2dbd9038022f808f9d8a73ccbb6759 (diff) | |
download | AntennaPod-6d7bfef8a5fe8180f13904739996bb2b8de8a0d4.zip |
Download Service Rewrite (#6420)
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/view')
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/view/viewholder/EpisodeItemViewHolder.java | 14 | ||||
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/view/viewholder/HorizontalItemViewHolder.java | 13 |
2 files changed, 17 insertions, 10 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/view/viewholder/EpisodeItemViewHolder.java b/app/src/main/java/de/danoeh/antennapod/view/viewholder/EpisodeItemViewHolder.java index fd3ec9299..03df844b1 100644 --- a/app/src/main/java/de/danoeh/antennapod/view/viewholder/EpisodeItemViewHolder.java +++ b/app/src/main/java/de/danoeh/antennapod/view/viewholder/EpisodeItemViewHolder.java @@ -21,8 +21,6 @@ import de.danoeh.antennapod.R; import de.danoeh.antennapod.activity.MainActivity; import de.danoeh.antennapod.adapter.CoverLoader; import de.danoeh.antennapod.adapter.actionbutton.ItemActionButton; -import de.danoeh.antennapod.net.download.serviceinterface.DownloadRequest; -import de.danoeh.antennapod.core.service.download.DownloadService; import de.danoeh.antennapod.core.util.PlaybackStatus; import de.danoeh.antennapod.core.util.download.MediaSizeLoader; import de.danoeh.antennapod.event.playback.PlaybackPositionEvent; @@ -31,6 +29,7 @@ import de.danoeh.antennapod.model.feed.FeedItem; import de.danoeh.antennapod.model.feed.FeedMedia; import de.danoeh.antennapod.model.playback.MediaType; import de.danoeh.antennapod.core.feed.util.ImageResourceUtils; +import de.danoeh.antennapod.net.download.serviceinterface.DownloadServiceInterface; import de.danoeh.antennapod.storage.preferences.UserPreferences; import de.danoeh.antennapod.core.util.Converter; import de.danoeh.antennapod.core.util.NetworkUtils; @@ -117,6 +116,7 @@ public class EpisodeItemViewHolder extends RecyclerView.ViewHolder { bind(item.getMedia()); } else { secondaryActionProgress.setPercentage(0, item); + secondaryActionProgress.setIndeterminate(false); isVideo.setVisibility(View.GONE); progressBar.setVisibility(View.GONE); duration.setVisibility(View.GONE); @@ -145,14 +145,17 @@ public class EpisodeItemViewHolder extends RecyclerView.ViewHolder { itemView.setBackgroundResource(ThemeUtils.getDrawableFromAttr(activity, R.attr.selectableItemBackground)); } - if (DownloadService.isDownloadingFile(media.getDownload_url())) { - final DownloadRequest downloadRequest = DownloadService.findRequest(media.getDownload_url()); - float percent = 0.01f * downloadRequest.getProgressPercent(); + if (DownloadServiceInterface.get().isDownloadingEpisode(media.getDownload_url())) { + float percent = 0.01f * DownloadServiceInterface.get().getProgress(media.getDownload_url()); secondaryActionProgress.setPercentage(Math.max(percent, 0.01f), item); + secondaryActionProgress.setIndeterminate( + DownloadServiceInterface.get().isEpisodeQueued(media.getDownload_url())); } else if (media.isDownloaded()) { secondaryActionProgress.setPercentage(1, item); // Do not animate 100% -> 0% + secondaryActionProgress.setIndeterminate(false); } else { secondaryActionProgress.setPercentage(0, item); // Animate X% -> 0% + secondaryActionProgress.setIndeterminate(false); } duration.setText(Converter.getDurationStringLong(media.getDuration())); @@ -210,6 +213,7 @@ public class EpisodeItemViewHolder extends RecyclerView.ViewHolder { pubDate.setText("████"); duration.setText("████"); secondaryActionProgress.setPercentage(0, null); + secondaryActionProgress.setIndeterminate(false); progressBar.setVisibility(View.GONE); position.setVisibility(View.GONE); dragHandle.setVisibility(View.GONE); diff --git a/app/src/main/java/de/danoeh/antennapod/view/viewholder/HorizontalItemViewHolder.java b/app/src/main/java/de/danoeh/antennapod/view/viewholder/HorizontalItemViewHolder.java index 05240b371..f809de175 100644 --- a/app/src/main/java/de/danoeh/antennapod/view/viewholder/HorizontalItemViewHolder.java +++ b/app/src/main/java/de/danoeh/antennapod/view/viewholder/HorizontalItemViewHolder.java @@ -14,13 +14,12 @@ import de.danoeh.antennapod.activity.MainActivity; import de.danoeh.antennapod.adapter.CoverLoader; import de.danoeh.antennapod.adapter.actionbutton.ItemActionButton; import de.danoeh.antennapod.core.feed.util.ImageResourceUtils; -import de.danoeh.antennapod.net.download.serviceinterface.DownloadRequest; -import de.danoeh.antennapod.core.service.download.DownloadService; import de.danoeh.antennapod.core.util.DateFormatter; import de.danoeh.antennapod.core.util.PlaybackStatus; import de.danoeh.antennapod.event.playback.PlaybackPositionEvent; import de.danoeh.antennapod.model.feed.FeedItem; import de.danoeh.antennapod.model.feed.FeedMedia; +import de.danoeh.antennapod.net.download.serviceinterface.DownloadServiceInterface; import de.danoeh.antennapod.ui.common.CircularProgressBar; import de.danoeh.antennapod.ui.common.SquareImageView; import de.danoeh.antennapod.ui.common.ThemeUtils; @@ -85,14 +84,17 @@ public class HorizontalItemViewHolder extends RecyclerView.ViewHolder { setProgressBar(false, 0); } - if (DownloadService.isDownloadingFile(media.getDownload_url())) { - final DownloadRequest downloadRequest = DownloadService.findRequest(media.getDownload_url()); - float percent = 0.01f * downloadRequest.getProgressPercent(); + if (DownloadServiceInterface.get().isDownloadingEpisode(media.getDownload_url())) { + float percent = 0.01f * DownloadServiceInterface.get().getProgress(media.getDownload_url()); circularProgressBar.setPercentage(Math.max(percent, 0.01f), item); + circularProgressBar.setIndeterminate( + DownloadServiceInterface.get().isEpisodeQueued(media.getDownload_url())); } else if (media.isDownloaded()) { circularProgressBar.setPercentage(1, item); // Do not animate 100% -> 0% + circularProgressBar.setIndeterminate(false); } else { circularProgressBar.setPercentage(0, item); // Animate X% -> 0% + circularProgressBar.setIndeterminate(false); } } } @@ -107,6 +109,7 @@ public class HorizontalItemViewHolder extends RecyclerView.ViewHolder { date.setText("███"); secondaryActionIcon.setImageDrawable(null); circularProgressBar.setPercentage(0, null); + circularProgressBar.setIndeterminate(false); setProgressBar(true, 50); } |