diff options
author | daniel oeh <daniel.oeh@gmail.com> | 2014-06-07 13:51:01 +0200 |
---|---|---|
committer | daniel oeh <daniel.oeh@gmail.com> | 2014-06-07 13:51:01 +0200 |
commit | 998d3f16280c6a84dc10a138e5eb4fd4f4355f7e (patch) | |
tree | 410e42c4eea2d90accb6de570e16f251e0378ac7 /src/de/danoeh/antennapod | |
parent | d058b474601f373d2e6682e5d4a79f019f993923 (diff) | |
download | AntennaPod-998d3f16280c6a84dc10a138e5eb4fd4f4355f7e.zip |
Added progress bar to queue items
Diffstat (limited to 'src/de/danoeh/antennapod')
-rw-r--r-- | src/de/danoeh/antennapod/adapter/AdapterUtils.java | 57 | ||||
-rw-r--r-- | src/de/danoeh/antennapod/adapter/FeedItemlistAdapter.java | 25 | ||||
-rw-r--r-- | src/de/danoeh/antennapod/adapter/QueueListAdapter.java | 17 |
3 files changed, 66 insertions, 33 deletions
diff --git a/src/de/danoeh/antennapod/adapter/AdapterUtils.java b/src/de/danoeh/antennapod/adapter/AdapterUtils.java new file mode 100644 index 000000000..f393fb7d7 --- /dev/null +++ b/src/de/danoeh/antennapod/adapter/AdapterUtils.java @@ -0,0 +1,57 @@ +package de.danoeh.antennapod.adapter; + +import android.content.res.Resources; +import android.view.View; +import android.widget.ProgressBar; +import android.widget.TextView; +import de.danoeh.antennapod.R; +import de.danoeh.antennapod.feed.FeedItem; +import de.danoeh.antennapod.feed.FeedMedia; +import de.danoeh.antennapod.util.Converter; + +/** + * Utility methods for adapters + */ +public class AdapterUtils { + + private AdapterUtils() { + + } + + /** + * Updates the contents of the TextView that shows the current playback position and the ProgressBar. + */ + public static void updateEpisodePlaybackProgress(FeedItem item, Resources res, TextView txtvPos, ProgressBar episodeProgress) { + FeedMedia media = item.getMedia(); + episodeProgress.setVisibility(View.GONE); + if (media == null) { + txtvPos.setVisibility(View.GONE); + return; + } else { + txtvPos.setVisibility(View.VISIBLE); + } + + FeedItem.State state = item.getState(); + if (state == FeedItem.State.PLAYING + || state == FeedItem.State.IN_PROGRESS) { + if (media.getDuration() > 0) { + episodeProgress.setVisibility(View.VISIBLE); + episodeProgress + .setProgress((int) (((double) media + .getPosition()) / media.getDuration() * 100)); + txtvPos.setText(Converter + .getDurationStringLong(media.getDuration() + - media.getPosition())); + } + } else if (!media.isDownloaded()) { + txtvPos.setText(res.getString( + R.string.size_prefix) + + Converter.byteToString(media.getSize())); + } else { + txtvPos.setText(res.getString( + R.string.length_prefix) + + Converter.getDurationStringLong(media + .getDuration())); + } + } +} diff --git a/src/de/danoeh/antennapod/adapter/FeedItemlistAdapter.java b/src/de/danoeh/antennapod/adapter/FeedItemlistAdapter.java index 5475f122f..c4a16d4db 100644 --- a/src/de/danoeh/antennapod/adapter/FeedItemlistAdapter.java +++ b/src/de/danoeh/antennapod/adapter/FeedItemlistAdapter.java @@ -134,28 +134,8 @@ public class FeedItemlistAdapter extends BaseAdapter { holder.lenSize.setVisibility(View.INVISIBLE); } else { - if (state == FeedItem.State.PLAYING - || state == FeedItem.State.IN_PROGRESS) { - if (media.getDuration() > 0) { - holder.episodeProgress - .setProgress((int) (((double) media - .getPosition()) / media.getDuration() * 100)); - holder.lenSize.setText(Converter - .getDurationStringLong(media.getDuration() - - media.getPosition())); - } - } else if (!media.isDownloaded()) { - holder.lenSize.setText(context.getString( - R.string.size_prefix) - + Converter.byteToString(media.getSize())); - } else { - holder.lenSize.setText(context.getString( - R.string.length_prefix) - + Converter.getDurationStringLong(media - .getDuration())); - } + AdapterUtils.updateEpisodePlaybackProgress(item, context.getResources(), holder.lenSize, holder.episodeProgress); - holder.lenSize.setVisibility(View.VISIBLE); if (((ItemAccess) itemAccess).isInQueue(item)) { holder.inPlaylist.setVisibility(View.VISIBLE); } else { @@ -166,9 +146,6 @@ public class FeedItemlistAdapter extends BaseAdapter { item.getMedia())) { holder.episodeProgress.setVisibility(View.VISIBLE); holder.episodeProgress.setProgress(((ItemAccess) itemAccess).getItemDownloadProgressPercent(item)); - } else if (!(state == FeedItem.State.IN_PROGRESS - || state == FeedItem.State.PLAYING)) { - holder.episodeProgress.setVisibility(View.GONE); } TypedArray typeDrawables = context.obtainStyledAttributes( diff --git a/src/de/danoeh/antennapod/adapter/QueueListAdapter.java b/src/de/danoeh/antennapod/adapter/QueueListAdapter.java index fb6848a1e..ecce1b473 100644 --- a/src/de/danoeh/antennapod/adapter/QueueListAdapter.java +++ b/src/de/danoeh/antennapod/adapter/QueueListAdapter.java @@ -61,7 +61,8 @@ public class QueueListAdapter extends BaseAdapter { holder.title = (TextView) convertView.findViewById(R.id.txtvTitle); holder.butSecondary = (ImageButton) convertView .findViewById(R.id.butSecondaryAction); - holder.downloadProgress = (ProgressBar) convertView + holder.position = (TextView) convertView.findViewById(R.id.txtvPosition); + holder.progress = (ProgressBar) convertView .findViewById(R.id.pbar_download_progress); holder.imageView = (ImageView) convertView.findViewById(R.id.imgvImage); convertView.setTag(holder); @@ -71,20 +72,17 @@ public class QueueListAdapter extends BaseAdapter { holder.title.setText(item.getTitle()); + AdapterUtils.updateEpisodePlaybackProgress(item, context.getResources(), holder.position, holder.progress); + FeedMedia media = item.getMedia(); if (media != null) { final boolean isDownloadingMedia = DownloadRequester.getInstance().isDownloadingFile(media); - - if (isDownloadingMedia) { - holder.downloadProgress.setVisibility(View.VISIBLE); - } else { - holder.downloadProgress.setVisibility(View.GONE); - } if (!media.isDownloaded()) { if (isDownloadingMedia) { // item is being downloaded - holder.downloadProgress.setProgress(itemAccess.getItemDownloadProgressPercent(item)); + holder.progress.setVisibility(View.VISIBLE); + holder.progress.setProgress(itemAccess.getItemDownloadProgressPercent(item)); } } } @@ -116,7 +114,8 @@ public class QueueListAdapter extends BaseAdapter { static class Holder { TextView title; ImageView imageView; - ProgressBar downloadProgress; + TextView position; + ProgressBar progress; ImageButton butSecondary; } |