diff options
Diffstat (limited to 'app')
3 files changed, 15 insertions, 11 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java index 222923448..5e81295b1 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java @@ -11,9 +11,11 @@ import java.text.DecimalFormatSymbols; import java.util.Locale; import java.util.concurrent.atomic.AtomicBoolean; +import de.danoeh.antennapod.core.feed.FeedMedia; import de.danoeh.antennapod.core.feed.MediaType; import de.danoeh.antennapod.core.preferences.UserPreferences; import de.danoeh.antennapod.core.service.playback.PlaybackService; +import de.danoeh.antennapod.core.util.playback.Playable; import de.danoeh.antennapod.dialog.VariableSpeedDialog; /** @@ -24,9 +26,6 @@ public class AudioplayerActivity extends MediaplayerInfoActivity { private final AtomicBoolean isSetup = new AtomicBoolean(false); - // Used to work around race condition in updating the controller speed and receiving the callback that it has changed - private float playbackSpeed = -1; - @Override protected void onResume() { super.onResume(); @@ -81,10 +80,7 @@ public class AudioplayerActivity extends MediaplayerInfoActivity { } float speed = 1.0f; if(controller.canSetPlaybackSpeed()) { - speed = playbackSpeed; - if (speed == -1) { - speed = getPlaybackSpeedForMedia(); - } + speed = getPlaybackSpeedForMedia(); } String speedStr = new DecimalFormat("0.00x").format(speed); butPlaybackSpeed.setText(speedStr); @@ -136,9 +132,10 @@ public class AudioplayerActivity extends MediaplayerInfoActivity { break; } } - playbackSpeed = Float.parseFloat(newSpeed); + + storeNewMediaPlaybackSpeed(newSpeed); UserPreferences.setPlaybackSpeed(newSpeed); - controller.setPlaybackSpeed(playbackSpeed); + controller.setPlaybackSpeed(Float.parseFloat(newSpeed)); onPositionObserverUpdate(); } else { VariableSpeedDialog.showGetPluginDialog(this); @@ -151,4 +148,11 @@ public class AudioplayerActivity extends MediaplayerInfoActivity { butPlaybackSpeed.setVisibility(View.VISIBLE); } } + + private void storeNewMediaPlaybackSpeed(String speed) { + Playable media = controller.getMedia(); + if (media instanceof FeedMedia) { + ((FeedMedia) media).updateLastPlaybackSpeed(speed); + } + } } diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java index 9f364fec1..b6697ef52 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java @@ -879,7 +879,7 @@ public abstract class MediaplayerActivity extends CastEnabledActivity implements boolean isFeedMedia = media instanceof FeedMedia; if (isFeedMedia) { - return ((FeedMedia) media).getFeedPlaybackSpeed(); + return ((FeedMedia) media).getMediaPlaybackSpeed(); } } diff --git a/app/src/main/java/de/danoeh/antennapod/dialog/PlaybackControlsDialog.java b/app/src/main/java/de/danoeh/antennapod/dialog/PlaybackControlsDialog.java index 4c52e7c75..86720f40a 100644 --- a/app/src/main/java/de/danoeh/antennapod/dialog/PlaybackControlsDialog.java +++ b/app/src/main/java/de/danoeh/antennapod/dialog/PlaybackControlsDialog.java @@ -219,7 +219,7 @@ public class PlaybackControlsDialog extends DialogFragment { boolean isFeedMedia = media instanceof FeedMedia; if (isFeedMedia) { - return ((FeedMedia) media).getFeedPlaybackSpeed(); + return ((FeedMedia) media).getMediaPlaybackSpeed(); } } |