summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorByteHamster <ByteHamster@users.noreply.github.com>2020-10-26 14:04:59 +0100
committerGitHub <noreply@github.com>2020-10-26 14:04:59 +0100
commit7e9363a0f7966a85fdc3b983eadc331fb8a2b971 (patch)
tree2fa2bc179f06b3f5428536f5132493297b8da677
parent73bae5502208dfd2fa0a716498c9f8aca47a7120 (diff)
parent2da36919b394681a1a96b9d9f478de15d0c6c871 (diff)
downloadAntennaPod-7e9363a0f7966a85fdc3b983eadc331fb8a2b971.zip
Merge pull request #4603 from ByteHamster/fix-service-running
Only accept media control buttons while actually playing
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java21
1 files changed, 16 insertions, 5 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java
index 585510ef8..f284f2988 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java
@@ -623,7 +623,9 @@ public class PlaybackService extends MediaBrowserServiceCompat {
}
return false;
case KeyEvent.KEYCODE_MEDIA_NEXT:
- if (notificationButton || UserPreferences.shouldHardwareButtonSkip()) {
+ if (getStatus() != PlayerStatus.PLAYING && getStatus() != PlayerStatus.PAUSED) {
+ return false;
+ } else if (notificationButton || UserPreferences.shouldHardwareButtonSkip()) {
// assume the skip command comes from a notification or the lockscreen
// a >| skip button should actually skip
mediaPlayer.skip();
@@ -634,10 +636,15 @@ public class PlaybackService extends MediaBrowserServiceCompat {
}
return true;
case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD:
- mediaPlayer.seekDelta(UserPreferences.getFastForwardSecs() * 1000);
- return true;
+ if (getStatus() == PlayerStatus.PLAYING || getStatus() == PlayerStatus.PAUSED) {
+ mediaPlayer.seekDelta(UserPreferences.getFastForwardSecs() * 1000);
+ return true;
+ }
+ return false;
case KeyEvent.KEYCODE_MEDIA_PREVIOUS:
- if (UserPreferences.shouldHardwarePreviousButtonRestart()) {
+ if (getStatus() != PlayerStatus.PLAYING && getStatus() != PlayerStatus.PAUSED) {
+ return false;
+ } else if (UserPreferences.shouldHardwarePreviousButtonRestart()) {
// user wants to restart current episode
mediaPlayer.seekTo(0);
} else {
@@ -646,7 +653,11 @@ public class PlaybackService extends MediaBrowserServiceCompat {
}
return true;
case KeyEvent.KEYCODE_MEDIA_REWIND:
- mediaPlayer.seekDelta(-UserPreferences.getRewindSecs() * 1000);
+ if (getStatus() == PlayerStatus.PLAYING || getStatus() == PlayerStatus.PAUSED) {
+ mediaPlayer.seekDelta(-UserPreferences.getRewindSecs() * 1000);
+ } else {
+ return false;
+ }
return true;
case KeyEvent.KEYCODE_MEDIA_STOP:
if (status == PlayerStatus.PLAYING) {