summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/de/podfetcher/activity/ItemviewActivity.java76
1 files 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);
}
}