summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/view
diff options
context:
space:
mode:
authorByteHamster <ByteHamster@users.noreply.github.com>2023-05-05 23:09:03 +0200
committerGitHub <noreply@github.com>2023-05-05 23:09:03 +0200
commit6d7bfef8a5fe8180f13904739996bb2b8de8a0d4 (patch)
tree84f246b74fe7254678788e9f206d81d1a30ffa5e /app/src/main/java/de/danoeh/antennapod/view
parent4c286931cd2dbd9038022f808f9d8a73ccbb6759 (diff)
downloadAntennaPod-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.java14
-rw-r--r--app/src/main/java/de/danoeh/antennapod/view/viewholder/HorizontalItemViewHolder.java13
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);
}