diff options
author | daniel oeh <daniel.oeh@gmail.com> | 2014-07-13 10:31:13 +0200 |
---|---|---|
committer | daniel oeh <daniel.oeh@gmail.com> | 2014-07-13 10:31:13 +0200 |
commit | b87db6841955995d7963ae4899e7d404ab06da2e (patch) | |
tree | 030158eb4ce21cc74d3578c2d2c2ad71fb348330 /src/de/danoeh/antennapod/adapter | |
parent | af4929728fb0c43008cef6a659de45f32fe12788 (diff) | |
download | AntennaPod-b87db6841955995d7963ae4899e7d404ab06da2e.zip |
Added buttons to FeedItemDialog and the episode lists for items without an episode.
fixes #470, fixes #464
Diffstat (limited to 'src/de/danoeh/antennapod/adapter')
-rw-r--r-- | src/de/danoeh/antennapod/adapter/ActionButtonUtils.java | 12 | ||||
-rw-r--r-- | src/de/danoeh/antennapod/adapter/DefaultActionButtonCallback.java | 39 |
2 files changed, 31 insertions, 20 deletions
diff --git a/src/de/danoeh/antennapod/adapter/ActionButtonUtils.java b/src/de/danoeh/antennapod/adapter/ActionButtonUtils.java index 4308f4f2c..1de071a73 100644 --- a/src/de/danoeh/antennapod/adapter/ActionButtonUtils.java +++ b/src/de/danoeh/antennapod/adapter/ActionButtonUtils.java @@ -27,8 +27,8 @@ public class ActionButtonUtils { this.context = context; drawables = context.obtainStyledAttributes(new int[]{ - R.attr.av_play, R.attr.navigation_cancel, R.attr.av_download, R.attr.navigation_chapters}); - labels = new int[]{R.string.play_label, R.string.cancel_download_label, R.string.download_label}; + R.attr.av_play, R.attr.navigation_cancel, R.attr.av_download, R.attr.navigation_chapters, R.attr.navigation_accept}); + labels = new int[]{R.string.play_label, R.string.cancel_download_label, R.string.download_label, R.string.mark_read_label}; } /** @@ -66,7 +66,13 @@ public class ActionButtonUtils { butSecondary.setContentDescription(context.getString(labels[0])); } } else { - butSecondary.setVisibility(View.INVISIBLE); + if (item.isRead()) { + butSecondary.setVisibility(View.INVISIBLE); + } else { + butSecondary.setVisibility(View.VISIBLE); + butSecondary.setImageDrawable(drawables.getDrawable(4)); + butSecondary.setContentDescription(context.getString(labels[3])); + } } } } diff --git a/src/de/danoeh/antennapod/adapter/DefaultActionButtonCallback.java b/src/de/danoeh/antennapod/adapter/DefaultActionButtonCallback.java index 801cd1e12..0c4cbe685 100644 --- a/src/de/danoeh/antennapod/adapter/DefaultActionButtonCallback.java +++ b/src/de/danoeh/antennapod/adapter/DefaultActionButtonCallback.java @@ -10,6 +10,7 @@ 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.DBWriter; import de.danoeh.antennapod.storage.DownloadRequestException; import de.danoeh.antennapod.storage.DownloadRequester; @@ -28,25 +29,29 @@ public class DefaultActionButtonCallback implements ActionButtonCallback { @Override public void onActionButtonPressed(final FeedItem item) { - final FeedMedia media = item.getMedia(); - if (media == null) { - return; - } - 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()); + + if (item.hasMedia()) { + 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); + } + } else { + if (!item.isRead()) { + DBWriter.markItemRead(context, item, true, true); } - } 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); } } } |