summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton
diff options
context:
space:
mode:
authorH. Lehmann <ByteHamster@users.noreply.github.com>2020-03-01 00:10:39 +0100
committerGitHub <noreply@github.com>2020-03-01 00:10:39 +0100
commit3dae17beff1f8338bbc88716e70e7234d0dd3be4 (patch)
treedba51ab00e9d58c78b690951ae2c60813b2424fc /app/src/main/java/de/danoeh/antennapod/adapter/actionbutton
parentb80bb03d273749a1768f1d6502aab7a990a7b90b (diff)
downloadAntennaPod-3dae17beff1f8338bbc88716e70e7234d0dd3be4.zip
Refactor action button in ItemFragment (#3898)
Much more readable to have decision for action and action itself in one place.
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/adapter/actionbutton')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/CancelDownloadActionButton.java4
-rw-r--r--app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/DeleteActionButton.java43
-rw-r--r--app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/DownloadActionButton.java11
-rw-r--r--app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/MarkAsPlayedActionButton.java4
-rw-r--r--app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/PauseActionButton.java4
-rw-r--r--app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/PlayActionButton.java4
-rw-r--r--app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/StreamActionButton.java2
-rw-r--r--app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/VisitWebsiteActionButton.java40
8 files changed, 101 insertions, 11 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/CancelDownloadActionButton.java b/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/CancelDownloadActionButton.java
index 10458ed46..3b5baadef 100644
--- a/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/CancelDownloadActionButton.java
+++ b/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/CancelDownloadActionButton.java
@@ -12,9 +12,9 @@ import de.danoeh.antennapod.core.preferences.UserPreferences;
import de.danoeh.antennapod.core.storage.DBWriter;
import de.danoeh.antennapod.core.storage.DownloadRequester;
-class CancelDownloadActionButton extends ItemActionButton {
+public class CancelDownloadActionButton extends ItemActionButton {
- CancelDownloadActionButton(FeedItem item) {
+ public CancelDownloadActionButton(FeedItem item) {
super(item);
}
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/DeleteActionButton.java b/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/DeleteActionButton.java
new file mode 100644
index 000000000..7831c6450
--- /dev/null
+++ b/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/DeleteActionButton.java
@@ -0,0 +1,43 @@
+package de.danoeh.antennapod.adapter.actionbutton;
+
+import android.content.Context;
+import android.view.View;
+import androidx.annotation.AttrRes;
+import androidx.annotation.StringRes;
+import de.danoeh.antennapod.R;
+import de.danoeh.antennapod.core.feed.FeedItem;
+import de.danoeh.antennapod.core.feed.FeedMedia;
+import de.danoeh.antennapod.core.storage.DBWriter;
+
+public class DeleteActionButton extends ItemActionButton {
+
+ public DeleteActionButton(FeedItem item) {
+ super(item);
+ }
+
+ @Override
+ @StringRes
+ public int getLabel() {
+ return R.string.delete_label;
+ }
+
+ @Override
+ @AttrRes
+ public int getDrawable() {
+ return R.attr.content_discard;
+ }
+
+ @Override
+ public void onClick(Context context) {
+ final FeedMedia media = item.getMedia();
+ if (media == null) {
+ return;
+ }
+ DBWriter.deleteFeedMediaOfItem(context, media.getId());
+ }
+
+ @Override
+ public int getVisibility() {
+ return (item.isPlayed()) ? View.INVISIBLE : View.VISIBLE;
+ }
+}
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/DownloadActionButton.java b/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/DownloadActionButton.java
index 026386cf9..0a1199e9b 100644
--- a/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/DownloadActionButton.java
+++ b/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/DownloadActionButton.java
@@ -1,6 +1,7 @@
package de.danoeh.antennapod.adapter.actionbutton;
import android.content.Context;
+import android.view.View;
import android.widget.Toast;
import androidx.annotation.AttrRes;
@@ -16,10 +17,10 @@ import de.danoeh.antennapod.core.storage.DownloadRequestException;
import de.danoeh.antennapod.core.storage.DownloadRequester;
import de.danoeh.antennapod.core.util.NetworkUtils;
-class DownloadActionButton extends ItemActionButton {
+public class DownloadActionButton extends ItemActionButton {
private boolean isInQueue;
- DownloadActionButton(FeedItem item, boolean isInQueue) {
+ public DownloadActionButton(FeedItem item, boolean isInQueue) {
super(item);
this.isInQueue = isInQueue;
}
@@ -37,6 +38,12 @@ class DownloadActionButton extends ItemActionButton {
}
@Override
+ public int getVisibility() {
+ return (item.getMedia() != null && DownloadRequester.getInstance().isDownloadingFile(item.getMedia()))
+ ? View.INVISIBLE : View.VISIBLE;
+ }
+
+ @Override
public void onClick(Context context) {
final FeedMedia media = item.getMedia();
if (media == null || shouldNotDownload(media)) {
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/MarkAsPlayedActionButton.java b/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/MarkAsPlayedActionButton.java
index 71ac07c47..14fa94f7a 100644
--- a/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/MarkAsPlayedActionButton.java
+++ b/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/MarkAsPlayedActionButton.java
@@ -9,9 +9,9 @@ import de.danoeh.antennapod.R;
import de.danoeh.antennapod.core.feed.FeedItem;
import de.danoeh.antennapod.core.storage.DBWriter;
-class MarkAsPlayedActionButton extends ItemActionButton {
+public class MarkAsPlayedActionButton extends ItemActionButton {
- MarkAsPlayedActionButton(FeedItem item) {
+ public MarkAsPlayedActionButton(FeedItem item) {
super(item);
}
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/PauseActionButton.java b/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/PauseActionButton.java
index b839f7788..4ac03c50e 100644
--- a/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/PauseActionButton.java
+++ b/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/PauseActionButton.java
@@ -10,9 +10,9 @@ import de.danoeh.antennapod.core.util.IntentUtils;
import static de.danoeh.antennapod.core.service.playback.PlaybackService.ACTION_PAUSE_PLAY_CURRENT_EPISODE;
-class PauseActionButton extends ItemActionButton {
+public class PauseActionButton extends ItemActionButton {
- PauseActionButton(FeedItem item) {
+ public PauseActionButton(FeedItem item) {
super(item);
}
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/PlayActionButton.java b/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/PlayActionButton.java
index 3432f1deb..0c6924469 100644
--- a/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/PlayActionButton.java
+++ b/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/PlayActionButton.java
@@ -8,9 +8,9 @@ import de.danoeh.antennapod.core.feed.FeedItem;
import de.danoeh.antennapod.core.feed.FeedMedia;
import de.danoeh.antennapod.core.util.playback.PlaybackServiceStarter;
-class PlayActionButton extends ItemActionButton {
+public class PlayActionButton extends ItemActionButton {
- PlayActionButton(FeedItem item) {
+ public PlayActionButton(FeedItem item) {
super(item);
}
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/StreamActionButton.java b/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/StreamActionButton.java
index c1e619fdf..3a43d3217 100644
--- a/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/StreamActionButton.java
+++ b/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/StreamActionButton.java
@@ -16,7 +16,7 @@ import static de.danoeh.antennapod.core.service.playback.PlaybackService.ACTION_
public class StreamActionButton extends ItemActionButton {
- StreamActionButton(FeedItem item) {
+ public StreamActionButton(FeedItem item) {
super(item);
}
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/VisitWebsiteActionButton.java b/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/VisitWebsiteActionButton.java
new file mode 100644
index 000000000..5eb8c1fb6
--- /dev/null
+++ b/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/VisitWebsiteActionButton.java
@@ -0,0 +1,40 @@
+package de.danoeh.antennapod.adapter.actionbutton;
+
+import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
+import android.view.View;
+import androidx.annotation.AttrRes;
+import androidx.annotation.StringRes;
+import de.danoeh.antennapod.R;
+import de.danoeh.antennapod.core.feed.FeedItem;
+
+public class VisitWebsiteActionButton extends ItemActionButton {
+
+ public VisitWebsiteActionButton(FeedItem item) {
+ super(item);
+ }
+
+ @Override
+ @StringRes
+ public int getLabel() {
+ return R.string.visit_website_label;
+ }
+
+ @Override
+ @AttrRes
+ public int getDrawable() {
+ return R.attr.location_web_site;
+ }
+
+ @Override
+ public void onClick(Context context) {
+ Uri uri = Uri.parse(item.getLink());
+ context.startActivity(new Intent(Intent.ACTION_VIEW, uri));
+ }
+
+ @Override
+ public int getVisibility() {
+ return (item.getLink() != null) ? View.INVISIBLE : View.VISIBLE;
+ }
+}