summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/view/EpisodeItemViewHolder.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/view/EpisodeItemViewHolder.java')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/view/EpisodeItemViewHolder.java54
1 files changed, 27 insertions, 27 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/view/EpisodeItemViewHolder.java b/app/src/main/java/de/danoeh/antennapod/view/EpisodeItemViewHolder.java
index 6fb3c9d86..c3a007d5d 100644
--- a/app/src/main/java/de/danoeh/antennapod/view/EpisodeItemViewHolder.java
+++ b/app/src/main/java/de/danoeh/antennapod/view/EpisodeItemViewHolder.java
@@ -3,17 +3,14 @@ package de.danoeh.antennapod.view;
import android.graphics.Color;
import android.os.Build;
import android.text.Layout;
-import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import android.widget.FrameLayout;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;
-import androidx.core.view.LayoutInflaterCompat;
import androidx.recyclerview.widget.RecyclerView;
import com.joanzapata.iconify.Iconify;
import de.danoeh.antennapod.R;
@@ -55,6 +52,7 @@ public class EpisodeItemViewHolder extends RecyclerView.ViewHolder
public final ImageView isFavorite;
private final ProgressBar progressBar;
public final ImageButton butSecondary;
+ private final CircularProgressBar secondaryActionProgress;
private final MainActivity activity;
private final TextView separatorIcons;
@@ -82,6 +80,7 @@ public class EpisodeItemViewHolder extends RecyclerView.ViewHolder
isFavorite = itemView.findViewById(R.id.isFavorite);
size = itemView.findViewById(R.id.size);
separatorIcons = itemView.findViewById(R.id.separatorIcons);
+ secondaryActionProgress = itemView.findViewById(R.id.secondaryActionProgress);
itemView.setTag(this);
}
@@ -106,15 +105,17 @@ public class EpisodeItemViewHolder extends RecyclerView.ViewHolder
isInQueue.setVisibility(item.isTagged(FeedItem.TAG_QUEUE) ? View.VISIBLE : View.GONE);
itemView.setAlpha(item.isPlayed() /*&& makePlayedItemsTransparent*/ ? 0.5f : 1.0f);
- if (item.getMedia() != null) {
- bind(item.getMedia());
- }
-
ItemActionButton actionButton = ItemActionButton.forItem(item, true);
actionButton.configure(butSecondary, activity);
butSecondary.setFocusable(false);
butSecondary.setTag(item);
+ if (item.getMedia() != null) {
+ bind(item.getMedia());
+ } else {
+ secondaryActionProgress.setPercentage(0, item);
+ }
+
new CoverLoader(activity)
.withUri(ImageResourceUtils.getImageLocation(item))
.withFallbackUri(item.getFeed().getImageLocation())
@@ -133,28 +134,27 @@ public class EpisodeItemViewHolder extends RecyclerView.ViewHolder
container.setBackgroundColor(Color.TRANSPARENT);
}
- final DownloadRequest downloadRequest = DownloadRequester.getInstance().getRequestFor(media);
- progressBar.setVisibility(View.GONE);
- position.setVisibility(View.GONE);
- if (downloadRequest != null) {
- position.setText(Converter.byteToString(downloadRequest.getSoFar()));
- if (downloadRequest.getSize() > 0) {
- duration.setText(Converter.byteToString(downloadRequest.getSize()));
- } else {
- duration.setText(Converter.byteToString(media.getSize()));
- }
- progressBar.setProgress(downloadRequest.getProgressPercent());
+ if (DownloadRequester.getInstance().isDownloadingFile(media)) {
+ final DownloadRequest downloadRequest = DownloadRequester.getInstance().getRequestFor(media);
+ float percent = 0.01f * downloadRequest.getProgressPercent();
+ secondaryActionProgress.setPercentage(Math.max(percent, 0.01f), item);
+ } else if (media.isDownloaded()) {
+ secondaryActionProgress.setPercentage(1, item); // Do not animate 100% -> 0%
+ } else {
+ secondaryActionProgress.setPercentage(0, item); // Animate X% -> 0%
+ }
+
+ if (media.getDuration() > 0
+ && (item.getState() == FeedItem.State.PLAYING || item.getState() == FeedItem.State.IN_PROGRESS)) {
+ int progress = (int) (100.0 * media.getPosition() / media.getDuration());
+ progressBar.setProgress(progress);
+ position.setText(Converter.getDurationStringLong(media.getPosition()));
+ duration.setText(Converter.getDurationStringLong(media.getDuration()));
progressBar.setVisibility(View.VISIBLE);
position.setVisibility(View.VISIBLE);
- } else if (item.getState() == FeedItem.State.PLAYING || item.getState() == FeedItem.State.IN_PROGRESS) {
- if (media.getDuration() > 0) {
- int progress = (int) (100.0 * media.getPosition() / media.getDuration());
- progressBar.setProgress(progress);
- progressBar.setVisibility(View.VISIBLE);
- position.setVisibility(View.VISIBLE);
- position.setText(Converter.getDurationStringLong(media.getPosition()));
- duration.setText(Converter.getDurationStringLong(media.getDuration()));
- }
+ } else {
+ progressBar.setVisibility(View.GONE);
+ position.setVisibility(View.GONE);
}
if (media.getSize() > 0) {