From 7adfbcf00330c0fe920ae15231fe492e94c455e3 Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Fri, 28 Feb 2020 14:04:08 +0100 Subject: Show pause button for currently streamed episode --- .../adapter/actionbutton/ItemActionButton.java | 4 ++- .../adapter/actionbutton/PauseActionButton.java | 42 ++++++++++++++++++++++ .../adapter/actionbutton/PlayActionButton.java | 34 ++++-------------- 3 files changed, 51 insertions(+), 29 deletions(-) create mode 100644 app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/PauseActionButton.java (limited to 'app/src/main/java/de/danoeh/antennapod/adapter') diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/ItemActionButton.java b/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/ItemActionButton.java index 47eab7d05..e5bb04391 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/ItemActionButton.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/ItemActionButton.java @@ -41,7 +41,9 @@ public abstract class ItemActionButton { } final boolean isDownloadingMedia = DownloadRequester.getInstance().isDownloadingFile(media); - if (media.isDownloaded()) { + if (media.isCurrentlyPlaying()) { + return new PauseActionButton(item); + } else if (media.isDownloaded()) { return new PlayActionButton(item); } else if (isDownloadingMedia) { return new CancelDownloadActionButton(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 new file mode 100644 index 000000000..b839f7788 --- /dev/null +++ b/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/PauseActionButton.java @@ -0,0 +1,42 @@ +package de.danoeh.antennapod.adapter.actionbutton; + +import android.content.Context; +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.util.IntentUtils; + +import static de.danoeh.antennapod.core.service.playback.PlaybackService.ACTION_PAUSE_PLAY_CURRENT_EPISODE; + +class PauseActionButton extends ItemActionButton { + + PauseActionButton(FeedItem item) { + super(item); + } + + @Override + @StringRes + public int getLabel() { + return R.string.pause_label; + } + + @Override + @AttrRes + public int getDrawable() { + return R.attr.av_pause; + } + + @Override + public void onClick(Context context) { + FeedMedia media = item.getMedia(); + if (media == null) { + return; + } + + if (media.isCurrentlyPlaying()) { + IntentUtils.sendLocalBroadcast(context, ACTION_PAUSE_PLAY_CURRENT_EPISODE); + } + } +} 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 0d314b5eb..3432f1deb 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 @@ -3,16 +3,11 @@ package de.danoeh.antennapod.adapter.actionbutton; import android.content.Context; 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.DBTasks; -import de.danoeh.antennapod.core.util.IntentUtils; import de.danoeh.antennapod.core.util.playback.PlaybackServiceStarter; -import static de.danoeh.antennapod.core.service.playback.PlaybackService.ACTION_PAUSE_PLAY_CURRENT_EPISODE; - class PlayActionButton extends ItemActionButton { PlayActionButton(FeedItem item) { @@ -28,12 +23,7 @@ class PlayActionButton extends ItemActionButton { @Override @AttrRes public int getDrawable() { - FeedMedia media = item.getMedia(); - if (media != null && media.isCurrentlyPlaying()) { - return R.attr.av_pause; - } else { - return R.attr.av_play; - } + return R.attr.av_play; } @Override @@ -43,22 +33,10 @@ class PlayActionButton extends ItemActionButton { return; } - if (media.isPlaying()) { - togglePlayPause(context, media); - } else { - DBTasks.playMedia(context, media, false, true, false); - } - } - - private void togglePlayPause(Context context, FeedMedia media) { - if (media.isCurrentlyPlaying()) { - IntentUtils.sendLocalBroadcast(context, ACTION_PAUSE_PLAY_CURRENT_EPISODE); - } else { - new PlaybackServiceStarter(context, media) - .callEvenIfRunning(true) - .startWhenPrepared(true) - .shouldStream(false) - .start(); - } + new PlaybackServiceStarter(context, media) + .callEvenIfRunning(true) + .startWhenPrepared(true) + .shouldStream(false) + .start(); } } -- cgit v1.2.3