diff options
author | H. Lehmann <ByteHamster@users.noreply.github.com> | 2020-03-01 00:10:39 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-01 00:10:39 +0100 |
commit | 3dae17beff1f8338bbc88716e70e7234d0dd3be4 (patch) | |
tree | dba51ab00e9d58c78b690951ae2c60813b2424fc /app/src/main/java/de/danoeh/antennapod/adapter/actionbutton | |
parent | b80bb03d273749a1768f1d6502aab7a990a7b90b (diff) | |
download | AntennaPod-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')
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; + } +} |