summaryrefslogtreecommitdiff
path: root/src/de/danoeh/antennapod/adapter
diff options
context:
space:
mode:
authordaniel oeh <daniel.oeh@gmail.com>2014-07-13 10:31:13 +0200
committerdaniel oeh <daniel.oeh@gmail.com>2014-07-13 10:31:13 +0200
commitb87db6841955995d7963ae4899e7d404ab06da2e (patch)
tree030158eb4ce21cc74d3578c2d2c2ad71fb348330 /src/de/danoeh/antennapod/adapter
parentaf4929728fb0c43008cef6a659de45f32fe12788 (diff)
downloadAntennaPod-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.java12
-rw-r--r--src/de/danoeh/antennapod/adapter/DefaultActionButtonCallback.java39
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);
}
}
}