diff options
Diffstat (limited to 'core/src/main/java')
-rw-r--r-- | core/src/main/java/de/danoeh/antennapod/core/event/settings/SpeedPresetChangedEvent.java | 19 | ||||
-rw-r--r-- | core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java | 19 |
2 files changed, 37 insertions, 1 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/event/settings/SpeedPresetChangedEvent.java b/core/src/main/java/de/danoeh/antennapod/core/event/settings/SpeedPresetChangedEvent.java new file mode 100644 index 000000000..0ac7e1316 --- /dev/null +++ b/core/src/main/java/de/danoeh/antennapod/core/event/settings/SpeedPresetChangedEvent.java @@ -0,0 +1,19 @@ +package de.danoeh.antennapod.core.event.settings; + +public class SpeedPresetChangedEvent { + private final float speed; + private final long feedId; + + public SpeedPresetChangedEvent(float speed, long feedId) { + this.speed = speed; + this.feedId = feedId; + } + + public float getSpeed() { + return speed; + } + + public long getFeedId() { + return feedId; + } +} 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 edcaacefc..3a8302be7 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 @@ -50,6 +50,7 @@ import de.danoeh.antennapod.core.R; import de.danoeh.antennapod.core.event.MessageEvent; import de.danoeh.antennapod.core.event.PlaybackPositionEvent; import de.danoeh.antennapod.core.event.ServiceEvent; +import de.danoeh.antennapod.core.event.settings.SpeedPresetChangedEvent; import de.danoeh.antennapod.core.event.settings.VolumeAdaptionChangedEvent; import de.danoeh.antennapod.core.feed.Chapter; import de.danoeh.antennapod.core.feed.Feed; @@ -79,6 +80,9 @@ import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.Disposable; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; +import org.greenrobot.eventbus.ThreadMode; + +import static de.danoeh.antennapod.core.feed.FeedPreferences.SPEED_USE_GLOBAL; /** * Controls the MediaPlayer that plays a FeedMedia-file @@ -1436,12 +1440,25 @@ public class PlaybackService extends MediaBrowserServiceCompat { } }; - @Subscribe + @Subscribe(threadMode = ThreadMode.MAIN) public void volumeAdaptionChanged(VolumeAdaptionChangedEvent event) { PlaybackVolumeUpdater playbackVolumeUpdater = new PlaybackVolumeUpdater(); playbackVolumeUpdater.updateVolumeIfNecessary(mediaPlayer, event.getFeedId(), event.getVolumeAdaptionSetting()); } + @Subscribe(threadMode = ThreadMode.MAIN) + public void speedPresetChanged(SpeedPresetChangedEvent event) { + if (getPlayable() instanceof FeedMedia) { + if (((FeedMedia) getPlayable()).getItem().getFeed().getId() == event.getFeedId()) { + if (event.getSpeed() == SPEED_USE_GLOBAL) { + setSpeed(UserPreferences.getPlaybackSpeed(getPlayable().getMediaType())); + } else { + setSpeed(event.getSpeed()); + } + } + } + } + public static MediaType getCurrentMediaType() { return currentMediaType; } |