summaryrefslogtreecommitdiff
path: root/src/de/danoeh/antennapod/activity/DownloadLogActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/danoeh/antennapod/activity/DownloadLogActivity.java')
-rw-r--r--src/de/danoeh/antennapod/activity/DownloadLogActivity.java56
1 files changed, 48 insertions, 8 deletions
diff --git a/src/de/danoeh/antennapod/activity/DownloadLogActivity.java b/src/de/danoeh/antennapod/activity/DownloadLogActivity.java
index 232a7ba1d..ec5b0c980 100644
--- a/src/de/danoeh/antennapod/activity/DownloadLogActivity.java
+++ b/src/de/danoeh/antennapod/activity/DownloadLogActivity.java
@@ -1,35 +1,39 @@
package de.danoeh.antennapod.activity;
+import android.os.AsyncTask;
import android.os.Bundle;
+import android.util.Log;
import com.actionbarsherlock.app.SherlockListActivity;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
import de.danoeh.antennapod.adapter.DownloadLogAdapter;
import de.danoeh.antennapod.feed.EventDistributor;
-import de.danoeh.antennapod.feed.FeedManager;
import de.danoeh.antennapod.preferences.UserPreferences;
+import de.danoeh.antennapod.service.download.DownloadStatus;
+import de.danoeh.antennapod.storage.DBReader;
+
+import java.util.List;
/**
- * Displays completed and failed downloads in a list. The data comes from the
- * FeedManager.
+ * Displays completed and failed downloads in a list.
*/
public class DownloadLogActivity extends SherlockListActivity {
private static final String TAG = "DownloadLogActivity";
- DownloadLogAdapter dla;
- FeedManager manager;
+ private List<DownloadStatus> downloadLog;
+ private DownloadLogAdapter dla;
@Override
protected void onCreate(Bundle savedInstanceState) {
setTheme(UserPreferences.getTheme());
super.onCreate(savedInstanceState);
- manager = FeedManager.getInstance();
- dla = new DownloadLogAdapter(this);
+ dla = new DownloadLogAdapter(this, itemAccess);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
setListAdapter(dla);
+ loadData();
}
@Override
@@ -62,12 +66,48 @@ public class DownloadLogActivity extends SherlockListActivity {
return true;
}
+ private void loadData() {
+ AsyncTask<Void, Void, List<DownloadStatus>> loadTask = new AsyncTask<Void, Void, List<DownloadStatus>>() {
+ @Override
+ protected List<DownloadStatus> doInBackground(Void... voids) {
+ return DBReader.getDownloadLog(DownloadLogActivity.this);
+ }
+
+ @Override
+ protected void onPostExecute(List<DownloadStatus> downloadStatuses) {
+ super.onPostExecute(downloadStatuses);
+ if (downloadStatuses != null) {
+ downloadLog = downloadStatuses;
+ if (dla != null) {
+ dla.notifyDataSetChanged();
+ }
+ } else {
+ Log.e(TAG, "Could not load download log");
+ }
+ }
+ };
+ loadTask.execute();
+ }
+
+ private DownloadLogAdapter.ItemAccess itemAccess = new DownloadLogAdapter.ItemAccess() {
+
+ @Override
+ public int getCount() {
+ return (downloadLog != null) ? downloadLog.size() : 0;
+ }
+
+ @Override
+ public DownloadStatus getItem(int position) {
+ return (downloadLog != null) ? downloadLog.get(position) : null;
+ }
+ };
+
private EventDistributor.EventListener contentUpdate = new EventDistributor.EventListener() {
@Override
public void update(EventDistributor eventDistributor, Integer arg) {
if ((arg & EventDistributor.DOWNLOADLOG_UPDATE) != 0) {
- dla.notifyDataSetChanged();
+ loadData();
}
}
};