From 1cc9ce4352005d79cfc597e43b8b100eee3bc15c Mon Sep 17 00:00:00 2001 From: Daniel Oeh Date: Wed, 30 May 2012 17:34:04 +0200 Subject: Reimplemented DownloadObserver in ItemviewActivity --- src/de/podfetcher/activity/ItemviewActivity.java | 76 ++++++++++++++---------- 1 file changed, 44 insertions(+), 32 deletions(-) diff --git a/src/de/podfetcher/activity/ItemviewActivity.java b/src/de/podfetcher/activity/ItemviewActivity.java index 91439879d..6ecb754b4 100644 --- a/src/de/podfetcher/activity/ItemviewActivity.java +++ b/src/de/podfetcher/activity/ItemviewActivity.java @@ -97,40 +97,52 @@ public class ItemviewActivity extends SherlockActivity { } private void getDownloadStatus() { - /* - if(item.getMedia().getFile_url() == null) { - butPlay.setEnabled(false); - butDownload.setEnabled(true); - butRemove.setEnabled(false); + FeedMedia media = item.getMedia(); + if (media.getFile_url() == null) { + setNotDownloadedState(); + } else if (media.isDownloaded()) { + setDownloadedState(); } else { - final DownloadObserver observer = new DownloadObserver( - item.getMedia().getDownloadId(), DownloadObserver.TYPE_MEDIA, this); - - final Callable client = new Callable() { - public Object call() { - runOnUiThread(new Runnable() { - public void run() { - if(observer.getDone() && - // Download successful - observer.getResult() == R.string.download_successful) { - butDownload.setEnabled(false); - butPlay.setEnabled(true); - butRemove.setEnabled(true); - } else { - // Download running - butDownload.setEnabled(false); - butPlay.setEnabled(false); - butRemove.setEnabled(false); - } - } - }); - return null; - } - }; - observer.setClient(client); - observer.start(); + // observe + setDownloadingState(); + downloadObserver.execute(media); + } + } + + final DownloadObserver downloadObserver = new DownloadObserver(this) { + @Override + protected void onProgressUpdate(Integer... values) { + + } + + @Override + protected void onPostExecute(Boolean result) { + boolean r = result.booleanValue(); + if (r) { + setDownloadedState(); + } else { + setNotDownloadedState(); + } } - */ + }; + + + private void setDownloadingState() { + butDownload.setEnabled(false); + butPlay.setEnabled(false); + butRemove.setEnabled(false); + } + + private void setDownloadedState() { + butDownload.setEnabled(false); + butPlay.setEnabled(true); + butRemove.setEnabled(true); + } + + private void setNotDownloadedState() { + butPlay.setEnabled(false); + butDownload.setEnabled(true); + butRemove.setEnabled(false); } } -- cgit v1.2.3