diff options
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java | 23 | ||||
-rw-r--r-- | app/src/main/res/layout/queue_fragment.xml | 29 |
2 files changed, 45 insertions, 7 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java index 46148a214..8e3313db4 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java @@ -66,6 +66,7 @@ public class QueueFragment extends Fragment { EventDistributor.DOWNLOAD_QUEUED | EventDistributor.PLAYER_STATUS_UPDATE; + private TextView statusBar; private DragSortListView listView; private QueueListAdapter listAdapter; private TextView txtvEmpty; @@ -363,6 +364,7 @@ public class QueueFragment extends Fragment { ((MainActivity) getActivity()).getSupportActionBar().setTitle(R.string.queue_label); View root = inflater.inflate(R.layout.queue_fragment, container, false); + statusBar = (TextView) root.findViewById(R.id.status_bar); listView = (DragSortListView) root.findViewById(android.R.id.list); txtvEmpty = (TextView) root.findViewById(android.R.id.empty); progLoading = (ProgressBar) root.findViewById(R.id.progLoading); @@ -469,6 +471,27 @@ public class QueueFragment extends Fragment { // we need to refresh the options menu because it sometimes // needs data that may have just been loaded. getActivity().supportInvalidateOptionsMenu(); + + // refresh status bar + if(queue.size() > 0) { + int durationSec = 0; + for(FeedItem item : queue) { + if(item.getMedia() != null) { + durationSec += item.getMedia().getDuration() / 1000; + } + } + String duration = ""; + if(durationSec > 3600) { + duration += durationSec / 3600 + " " + getString(R.string.time_unit_hours) + " " + + (durationSec % 3600) / 60 + " " + getString(R.string.time_unit_minutes); + } else { + duration = durationSec / 60 + " " + getString(R.string.time_unit_minutes); + } + statusBar.setText(queue.size() + getString(R.string.episodes_suffix) + " \u2022 " + duration); + } else { + statusBar.setText("0" + getString(R.string.episodes_suffix)); + } + } private DownloadObserver.Callback downloadObserverCallback = new DownloadObserver.Callback() { diff --git a/app/src/main/res/layout/queue_fragment.xml b/app/src/main/res/layout/queue_fragment.xml index 307d95a8d..7e2c64d03 100644 --- a/app/src/main/res/layout/queue_fragment.xml +++ b/app/src/main/res/layout/queue_fragment.xml @@ -1,18 +1,32 @@ <?xml version="1.0" encoding="utf-8"?> -<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:dslv="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> + <TextView + android:id="@+id/status_bar" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_alignParentTop="true" + android:gravity="center" + android:text="42 episodes \u2022 5 hours 17 minutes"/> + + <View + android:id="@+id/divider" + android:layout_width="match_parent" + android:layout_height="1dp" + android:layout_below="@id/status_bar" + android:background="?android:attr/listDivider"/> + <com.mobeta.android.dslv.DragSortListView android:id="@android:id/list" android:layout_width="match_parent" - android:layout_height="match_parent" + android:layout_height="wrap_content" android:clipToPadding="false" - android:paddingBottom="@dimen/list_vertical_padding" - android:paddingTop="@dimen/list_vertical_padding" android:scrollbarStyle="outsideOverlay" + android:layout_below="@+id/divider" dslv:collapsed_height="2dp" dslv:drag_enabled="true" dslv:drag_handle_id="@id/drag_handle" @@ -31,7 +45,7 @@ android:id="@id/android:empty" android:layout_width="match_parent" android:layout_height="match_parent" - android:layout_gravity="center" + android:layout_centerInParent="true" android:gravity="center" android:text="@string/no_items_label" /> @@ -39,12 +53,13 @@ android:id="@+id/progLoading" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_gravity="center" + android:layout_centerInParent="true" android:indeterminateOnly="true" android:visibility="gone" /> <LinearLayout android:id="@+id/undobar" + android:layout_alignParentBottom="true" style="@style/UndoBar"> <TextView @@ -57,4 +72,4 @@ </LinearLayout> -</FrameLayout> +</RelativeLayout> |