summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java22
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java2
-rw-r--r--app/src/main/java/de/danoeh/antennapod/dialog/PlaybackControlsDialog.java2
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();
}
}