summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--res/layout/external_itemlist_item.xml45
-rw-r--r--src/de/danoeh/antennapod/adapter/ExternalEpisodesListAdapter.java48
2 files changed, 91 insertions, 2 deletions
diff --git a/res/layout/external_itemlist_item.xml b/res/layout/external_itemlist_item.xml
index 347a75e24..4367b5d9f 100644
--- a/res/layout/external_itemlist_item.xml
+++ b/res/layout/external_itemlist_item.xml
@@ -80,4 +80,49 @@
android:layout_marginTop="4dp"
android:layout_toLeftOf="@id/butAction" />
+ <TextView
+ android:id="@+id/statusUnread"
+ android:layout_width="wrap_content"
+ android:layout_height="18dp"
+ android:layout_alignParentRight="true"
+ android:layout_alignParentTop="true"
+ android:layout_margin="8dp"
+ android:background="@color/status_unread"
+ android:gravity="center"
+ android:minWidth="@dimen/status_indicator_width"
+ android:text="@string/new_label"
+ android:textAlignment="center"
+ android:textColor="@color/white"
+ android:textSize="@dimen/text_size_micro"
+ android:textStyle="bold" />
+
+ <ImageView
+ android:id="@+id/statusPlaying"
+ android:layout_width="@dimen/status_indicator_width"
+ android:layout_height="18dp"
+ android:layout_alignParentRight="true"
+ android:layout_alignParentTop="true"
+ android:layout_margin="8dp"
+ android:background="@color/status_playing"
+ android:gravity="center"
+ android:padding="2dp"
+ android:src="@drawable/av_play_dark" />
+
+ <TextView
+ android:id="@+id/statusInProgress"
+ android:layout_width="wrap_content"
+ android:layout_height="18dp"
+ android:layout_alignParentRight="true"
+ android:layout_alignParentTop="true"
+ android:layout_margin="8dp"
+ android:background="@color/status_progress"
+ android:gravity="center"
+ android:minWidth="@dimen/status_indicator_width"
+ android:paddingLeft="2dp"
+ android:paddingRight="2dp"
+ android:textAlignment="center"
+ android:textColor="@color/white"
+ android:textSize="@dimen/text_size_micro"
+ android:textStyle="bold" />
+
</RelativeLayout> \ No newline at end of file
diff --git a/src/de/danoeh/antennapod/adapter/ExternalEpisodesListAdapter.java b/src/de/danoeh/antennapod/adapter/ExternalEpisodesListAdapter.java
index 75ae96ebe..2670dfa44 100644
--- a/src/de/danoeh/antennapod/adapter/ExternalEpisodesListAdapter.java
+++ b/src/de/danoeh/antennapod/adapter/ExternalEpisodesListAdapter.java
@@ -106,6 +106,12 @@ public class ExternalEpisodesListAdapter extends BaseExpandableListAdapter {
.findViewById(R.id.imgvFeedimage);
holder.butAction = (ImageButton) convertView
.findViewById(R.id.butAction);
+ holder.statusPlaying = (View) convertView
+ .findViewById(R.id.statusPlaying);
+ holder.statusUnread = (View) convertView
+ .findViewById(R.id.statusUnread);
+ holder.statusInProgress = (TextView) convertView
+ .findViewById(R.id.statusInProgress);
convertView.setTag(holder);
} else {
holder = (Holder) convertView.getTag();
@@ -113,6 +119,39 @@ public class ExternalEpisodesListAdapter extends BaseExpandableListAdapter {
holder.title.setText(item.getTitle());
holder.feedTitle.setText(item.getFeed().getTitle());
+
+ if (groupPosition == GROUP_POS_QUEUE) {
+ FeedItem.State state = item.getState();
+ switch (state) {
+ case PLAYING:
+ holder.statusPlaying.setVisibility(View.VISIBLE);
+ holder.statusUnread.setVisibility(View.GONE);
+ holder.statusInProgress.setVisibility(View.GONE);
+ break;
+ case IN_PROGRESS:
+ holder.statusPlaying.setVisibility(View.GONE);
+ holder.statusUnread.setVisibility(View.GONE);
+ holder.statusInProgress.setVisibility(View.VISIBLE);
+ holder.statusInProgress.setText(Converter
+ .getDurationStringLong(item.getMedia().getPosition()));
+ break;
+ case NEW:
+ holder.statusPlaying.setVisibility(View.GONE);
+ holder.statusUnread.setVisibility(View.VISIBLE);
+ holder.statusInProgress.setVisibility(View.GONE);
+ break;
+ default:
+ holder.statusPlaying.setVisibility(View.GONE);
+ holder.statusUnread.setVisibility(View.GONE);
+ holder.statusInProgress.setVisibility(View.GONE);
+ break;
+ }
+ } else {
+ holder.statusPlaying.setVisibility(View.GONE);
+ holder.statusUnread.setVisibility(View.GONE);
+ holder.statusInProgress.setVisibility(View.GONE);
+ }
+
FeedMedia media = item.getMedia();
if (media != null) {
TypedArray drawables = context.obtainStyledAttributes(new int[] {
@@ -121,7 +160,8 @@ public class ExternalEpisodesListAdapter extends BaseExpandableListAdapter {
if (!media.isDownloaded()) {
if (DownloadRequester.getInstance().isDownloadingFile(media)) {
holder.downloadStatus.setVisibility(View.VISIBLE);
- holder.downloadStatus.setImageDrawable(drawables.getDrawable(1));
+ holder.downloadStatus.setImageDrawable(drawables
+ .getDrawable(1));
} else {
holder.downloadStatus.setVisibility(View.GONE);
}
@@ -129,7 +169,8 @@ public class ExternalEpisodesListAdapter extends BaseExpandableListAdapter {
+ Converter.byteToString(media.getSize()));
} else {
holder.downloadStatus.setVisibility(View.VISIBLE);
- holder.downloadStatus.setImageDrawable(drawables.getDrawable(0));
+ holder.downloadStatus
+ .setImageDrawable(drawables.getDrawable(0));
holder.lenSize.setText(context
.getString(R.string.length_prefix)
+ Converter.getDurationStringLong(media.getDuration()));
@@ -165,6 +206,9 @@ public class ExternalEpisodesListAdapter extends BaseExpandableListAdapter {
ImageView downloadStatus;
ImageView feedImage;
ImageButton butAction;
+ View statusUnread;
+ View statusPlaying;
+ TextView statusInProgress;
}
@Override