diff options
-rw-r--r-- | res/layout/external_itemlist_item.xml | 45 | ||||
-rw-r--r-- | src/de/danoeh/antennapod/adapter/ExternalEpisodesListAdapter.java | 48 |
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 |