summaryrefslogtreecommitdiff
path: root/src/de/danoeh/antennapod/fragment/RunningDownloadsFragment.java
diff options
context:
space:
mode:
authordaniel oeh <daniel.oeh@gmail.com>2014-05-19 00:04:19 +0200
committerdaniel oeh <daniel.oeh@gmail.com>2014-05-19 00:04:19 +0200
commit0f3b77ed8e9a738039cd4f4fbd11919b1f2c6f93 (patch)
treebfee5104dadcf27b6f78a4561de1827c0e38d545 /src/de/danoeh/antennapod/fragment/RunningDownloadsFragment.java
parent81fd465276cb9369fa7e82830e97b747d61b4f7e (diff)
parentf5cbd52fdc8edec26a5df4ee6add616b9273e437 (diff)
downloadAntennaPod-0f3b77ed8e9a738039cd4f4fbd11919b1f2c6f93.zip
Merge branch 'newgui' into develop. closes #407
Conflicts: res/layout/feedinfo.xml
Diffstat (limited to 'src/de/danoeh/antennapod/fragment/RunningDownloadsFragment.java')
-rw-r--r--src/de/danoeh/antennapod/fragment/RunningDownloadsFragment.java69
1 files changed, 69 insertions, 0 deletions
diff --git a/src/de/danoeh/antennapod/fragment/RunningDownloadsFragment.java b/src/de/danoeh/antennapod/fragment/RunningDownloadsFragment.java
new file mode 100644
index 000000000..89c30e34b
--- /dev/null
+++ b/src/de/danoeh/antennapod/fragment/RunningDownloadsFragment.java
@@ -0,0 +1,69 @@
+package de.danoeh.antennapod.fragment;
+
+import android.os.Bundle;
+import android.os.Handler;
+import android.support.v4.app.ListFragment;
+import android.view.View;
+import de.danoeh.antennapod.adapter.DownloadlistAdapter;
+import de.danoeh.antennapod.asynctask.DownloadObserver;
+import de.danoeh.antennapod.service.download.Downloader;
+import de.danoeh.antennapod.storage.DownloadRequester;
+
+import java.util.List;
+
+/**
+ * Displays all running downloads and provides actions to cancel them
+ */
+public class RunningDownloadsFragment extends ListFragment {
+ private static final String TAG = "RunningDownloadsFragment";
+
+ private DownloadObserver downloadObserver;
+ private List<Downloader> downloaderList;
+
+
+ @Override
+ public void onDetach() {
+ super.onDetach();
+ if (downloadObserver != null) {
+ downloadObserver.onPause();
+ }
+ }
+
+ @Override
+ public void onViewCreated(View view, Bundle savedInstanceState) {
+ super.onViewCreated(view, savedInstanceState);
+ final DownloadlistAdapter downloadlistAdapter = new DownloadlistAdapter(getActivity(), itemAccess);
+ setListAdapter(downloadlistAdapter);
+
+ downloadObserver = new DownloadObserver(getActivity(), new Handler(), new DownloadObserver.Callback() {
+ @Override
+ public void onContentChanged() {
+ downloadlistAdapter.notifyDataSetChanged();
+ }
+
+ @Override
+ public void onDownloadDataAvailable(List<Downloader> downloaderList) {
+ RunningDownloadsFragment.this.downloaderList = downloaderList;
+ downloadlistAdapter.notifyDataSetChanged();
+ }
+ });
+ downloadObserver.onResume();
+ }
+
+ private DownloadlistAdapter.ItemAccess itemAccess = new DownloadlistAdapter.ItemAccess() {
+ @Override
+ public int getCount() {
+ return (downloaderList != null) ? downloaderList.size() : 0;
+ }
+
+ @Override
+ public Downloader getItem(int position) {
+ return (downloaderList != null) ? downloaderList.get(position) : null;
+ }
+
+ @Override
+ public void onSecondaryActionClick(Downloader downloader) {
+ DownloadRequester.getInstance().cancelDownload(getActivity(), downloader.getDownloadRequest().getSource());
+ }
+ };
+}