diff options
author | daniel oeh <daniel.oeh@gmail.com> | 2014-04-18 17:46:13 +0200 |
---|---|---|
committer | daniel oeh <daniel.oeh@gmail.com> | 2014-04-18 17:46:13 +0200 |
commit | 9a86c6651a2335f3385777c99a3943ac52d555f0 (patch) | |
tree | 8d9b206f0b3029c1e98703a5e4f3d85576e0b519 /src/de/danoeh/antennapod/adapter/DefaultActionButtonCallback.java | |
parent | a03b076a32bc8df94345daa5a00a5ad4e3b35a13 (diff) | |
download | AntennaPod-9a86c6651a2335f3385777c99a3943ac52d555f0.zip |
Added action button functionality
Diffstat (limited to 'src/de/danoeh/antennapod/adapter/DefaultActionButtonCallback.java')
-rw-r--r-- | src/de/danoeh/antennapod/adapter/DefaultActionButtonCallback.java | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/de/danoeh/antennapod/adapter/DefaultActionButtonCallback.java b/src/de/danoeh/antennapod/adapter/DefaultActionButtonCallback.java new file mode 100644 index 000000000..7c023d2c2 --- /dev/null +++ b/src/de/danoeh/antennapod/adapter/DefaultActionButtonCallback.java @@ -0,0 +1,45 @@ +package de.danoeh.antennapod.adapter; + +import android.content.Context; +import android.widget.Toast; +import de.danoeh.antennapod.R; +import de.danoeh.antennapod.dialog.DownloadRequestErrorDialogCreator; +import de.danoeh.antennapod.feed.FeedItem; +import de.danoeh.antennapod.feed.FeedMedia; +import de.danoeh.antennapod.storage.DBTasks; +import de.danoeh.antennapod.storage.DownloadRequestException; +import de.danoeh.antennapod.storage.DownloadRequester; + +/** + * Default implementation of an ActionButtonCallback + */ +public class DefaultActionButtonCallback implements ActionButtonCallback { + private static final String TAG = "DefaultActionButtonCallback"; + + private final Context context; + + public DefaultActionButtonCallback(Context context) { + if (context == null) throw new IllegalArgumentException("context = null"); + this.context = context; + } + + @Override + public void onActionButtonPressed(final FeedItem item) { + final FeedMedia media = item.getMedia(); + boolean isDownloading = DownloadRequester.getInstance().isDownloadingFile(media); + if (!isDownloading && !media.isDownloaded()) { + try { + DBTasks.downloadFeedItems(context, item); + Toast.makeText(context, R.string.status_downloading_label, Toast.LENGTH_SHORT).show(); + } catch (DownloadRequestException e) { + e.printStackTrace(); + DownloadRequestErrorDialogCreator.newRequestErrorDialog(context, e.getMessage()); + } + } else if (isDownloading) { + DownloadRequester.getInstance().cancelDownload(context, media); + Toast.makeText(context, R.string.download_cancelled_msg, Toast.LENGTH_SHORT).show(); + } else { // media is downloaded + DBTasks.playMedia(context, media, true, true, false); + } + } +} |