summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/view/viewholder
diff options
context:
space:
mode:
authorByteHamster <info@bytehamster.com>2022-12-03 12:33:59 +0100
committerByteHamster <info@bytehamster.com>2022-12-03 12:42:49 +0100
commit655e3c6e4e424bebaf77b903cae60ffaea5d1416 (patch)
tree5fb070d99745986b41d7190a3881439a49874966 /app/src/main/java/de/danoeh/antennapod/view/viewholder
parentbc3b7179112e986958bbb4773419ec94eb3aa67f (diff)
downloadAntennaPod-655e3c6e4e424bebaf77b903cae60ffaea5d1416.zip
Hide progress bar when there is no progress
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/view/viewholder')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/view/viewholder/HorizontalItemViewHolder.java21
1 files changed, 17 insertions, 4 deletions
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 42b0cb57c..83d589518 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
@@ -1,6 +1,7 @@
package de.danoeh.antennapod.view.viewholder;
import android.view.LayoutInflater;
+import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.ProgressBar;
@@ -31,6 +32,7 @@ public class HorizontalItemViewHolder extends RecyclerView.ViewHolder {
private final TextView date;
private final ProgressBar progressBar;
private final CircularProgressBar circularProgressBar;
+ private final View progressBarReplacementSpacer;
private final MainActivity activity;
private FeedItem item;
@@ -46,6 +48,7 @@ public class HorizontalItemViewHolder extends RecyclerView.ViewHolder {
secondaryActionIcon = itemView.findViewById(R.id.secondaryActionIcon);
circularProgressBar = itemView.findViewById(R.id.circularProgressBar);
progressBar = itemView.findViewById(R.id.progressBar);
+ progressBarReplacementSpacer = itemView.findViewById(R.id.progressBarReplacementSpacer);
itemView.setTag(this);
}
@@ -67,6 +70,7 @@ public class HorizontalItemViewHolder extends RecyclerView.ViewHolder {
FeedMedia media = item.getMedia();
if (media == null) {
circularProgressBar.setPercentage(0, item);
+ setProgressBar(false, 0);
} else {
if (PlaybackStatus.isCurrentlyPlaying(media)) {
card.setCardBackgroundColor(ThemeUtils.getColorFromAttr(activity, R.attr.card_background_playing));
@@ -74,9 +78,12 @@ public class HorizontalItemViewHolder extends RecyclerView.ViewHolder {
card.setCardBackgroundColor(ThemeUtils.getColorFromAttr(activity, R.attr.card_background));
}
- if (item.getMedia().getDuration() > 0) {
- progressBar.setProgress(100 * item.getMedia().getPosition() / item.getMedia().getDuration());
+ if (item.getMedia().getDuration() > 0 && item.getMedia().getPosition() > 0) {
+ setProgressBar(true, 100.0f * item.getMedia().getPosition() / item.getMedia().getDuration());
+ } else {
+ setProgressBar(false, 0);
}
+
if (DownloadService.isDownloadingFile(media.getDownload_url())) {
final DownloadRequest downloadRequest = DownloadService.findRequest(media.getDownload_url());
float percent = 0.01f * downloadRequest.getProgressPercent();
@@ -99,7 +106,7 @@ public class HorizontalItemViewHolder extends RecyclerView.ViewHolder {
date.setText("███");
secondaryActionIcon.setImageDrawable(null);
circularProgressBar.setPercentage(0, null);
- progressBar.setProgress(50);
+ setProgressBar(true, 50);
}
public boolean isCurrentlyPlayingItem() {
@@ -107,6 +114,12 @@ public class HorizontalItemViewHolder extends RecyclerView.ViewHolder {
}
public void notifyPlaybackPositionUpdated(PlaybackPositionEvent event) {
- progressBar.setProgress((int) (100.0 * event.getPosition() / event.getDuration()));
+ setProgressBar(true, 100.0f * event.getPosition() / event.getDuration());
+ }
+
+ private void setProgressBar(boolean visible, float progress) {
+ progressBar.setVisibility(visible ? ViewGroup.VISIBLE : ViewGroup.GONE);
+ progressBarReplacementSpacer.setVisibility(visible ? View.GONE : ViewGroup.VISIBLE);
+ progressBar.setProgress(Math.max(5, (int) progress)); // otherwise invisible below the edge radius
}
}