summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java4
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java18
-rw-r--r--app/src/main/java/de/danoeh/antennapod/dialog/PlaybackControlsDialog.java19
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java2
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java28
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/playback/LocalPSMP.java14
6 files changed, 33 insertions, 52 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 d2e929d20..2f2981dac 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java
@@ -80,7 +80,7 @@ public class AudioplayerActivity extends MediaplayerInfoActivity {
}
float speed = 1.0f;
if(controller.canSetPlaybackSpeed()) {
- speed = getPlaybackSpeedForMedia();
+ speed = UserPreferences.getPlaybackSpeed(controller.getMedia());
}
String speedStr = new DecimalFormat("0.00x").format(speed);
butPlaybackSpeed.setText(speedStr);
@@ -107,7 +107,7 @@ public class AudioplayerActivity extends MediaplayerInfoActivity {
float currentSpeedValue = controller.getCurrentPlaybackSpeedMultiplier();
if (currentSpeedValue == -1) {
- currentSpeedValue = getPlaybackSpeedForMedia();
+ currentSpeedValue = UserPreferences.getPlaybackSpeed(controller.getMedia());
}
String currentSpeed = new DecimalFormat("0.00", format).format(currentSpeedValue);
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 d5801265f..a907c738a 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java
@@ -874,22 +874,4 @@ public abstract class MediaplayerActivity extends CastEnabledActivity implements
}
}
}
-
- float getPlaybackSpeedForMedia() {
- float playbackSpeed = SPEED_USE_GLOBAL;
- if (controller != null) {
- Playable media = controller.getMedia();
- boolean isFeedMedia = media instanceof FeedMedia;
-
- if (isFeedMedia) {
- playbackSpeed = ((FeedMedia) media).getMediaPlaybackSpeed();
- }
- }
-
- if (playbackSpeed == SPEED_USE_GLOBAL) {
- playbackSpeed = UserPreferences.getPlaybackSpeed();
- }
-
- return playbackSpeed;
- }
}
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 a8b58a757..3dc8abbbe 100644
--- a/app/src/main/java/de/danoeh/antennapod/dialog/PlaybackControlsDialog.java
+++ b/app/src/main/java/de/danoeh/antennapod/dialog/PlaybackControlsDialog.java
@@ -212,24 +212,11 @@ public class PlaybackControlsDialog extends DialogFragment {
}
private float getCurrentSpeed() {
- float playbackSpeed = SPEED_USE_GLOBAL;
+ Playable media = null;
if (controller != null) {
- Playable media = controller.getMedia();
- boolean isFeedMedia = media instanceof FeedMedia;
-
- if (isFeedMedia) {
- playbackSpeed = ((FeedMedia) media).getMediaPlaybackSpeed();
- }
- }
-
- if (playbackSpeed == SPEED_USE_GLOBAL) {
- if (isPlayingVideo) {
- playbackSpeed = UserPreferences.getVideoPlaybackSpeed();
- } else {
- playbackSpeed = UserPreferences.getPlaybackSpeed();
- }
+ media = controller.getMedia();
}
- return playbackSpeed;
+ return UserPreferences.getPlaybackSpeed(media);
}
}
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java
index 0f51d4622..19e84fb19 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java
@@ -606,7 +606,7 @@ public class QueueFragment extends Fragment {
playbackSpeed = feed.getPreferences().getCurrentPlaybackSpeed();
}
if (playbackSpeed == SPEED_USE_GLOBAL) {
- playbackSpeed = UserPreferences.getPlaybackSpeed();
+ playbackSpeed = UserPreferences.getPlaybackSpeed(item.getMedia());
}
if(item.getMedia() != null) {
timeLeft +=
diff --git a/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java b/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java
index b8ab1c888..80f0fd454 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java
@@ -22,6 +22,8 @@ import java.util.List;
import java.util.Set;
import java.util.concurrent.TimeUnit;
+import de.danoeh.antennapod.core.feed.FeedMedia;
+import de.danoeh.antennapod.core.feed.MediaType;
import de.danoeh.antennapod.core.R;
import de.danoeh.antennapod.core.service.download.ProxyConfig;
import de.danoeh.antennapod.core.storage.APCleanupAlgorithm;
@@ -29,9 +31,12 @@ import de.danoeh.antennapod.core.storage.APNullCleanupAlgorithm;
import de.danoeh.antennapod.core.storage.APQueueCleanupAlgorithm;
import de.danoeh.antennapod.core.storage.EpisodeCleanupAlgorithm;
import de.danoeh.antennapod.core.util.Converter;
+import de.danoeh.antennapod.core.util.playback.Playable;
import de.danoeh.antennapod.core.util.SortOrder;
import de.danoeh.antennapod.core.util.download.AutoUpdateManager;
+import static de.danoeh.antennapod.core.feed.FeedPreferences.SPEED_USE_GLOBAL;
+
/**
* Provides access to preferences set by the user in the settings screen. A
* private instance of this class must first be instantiated via
@@ -320,7 +325,26 @@ public class UserPreferences {
return prefs.getBoolean(PREF_DELETE_REMOVES_FROM_QUEUE, false);
}
- public static float getPlaybackSpeed() {
+ public static float getPlaybackSpeed(Playable media) {
+ float playbackSpeed = SPEED_USE_GLOBAL;
+ if (media != null) {
+ if (media instanceof FeedMedia) {
+ playbackSpeed = ((FeedMedia) media).getMediaPlaybackSpeed();
+ }
+
+ if (playbackSpeed == SPEED_USE_GLOBAL && media.getMediaType() == MediaType.VIDEO) {
+ playbackSpeed = getVideoPlaybackSpeed();
+ }
+ }
+
+ if (playbackSpeed == SPEED_USE_GLOBAL) {
+ playbackSpeed = getAudioPlaybackSpeed();
+ }
+
+ return playbackSpeed;
+ }
+
+ private static float getAudioPlaybackSpeed() {
try {
return Float.parseFloat(prefs.getString(PREF_PLAYBACK_SPEED, "1.00"));
} catch (NumberFormatException e) {
@@ -330,7 +354,7 @@ public class UserPreferences {
}
}
- public static float getVideoPlaybackSpeed() {
+ private static float getVideoPlaybackSpeed() {
try {
return Float.parseFloat(prefs.getString(PREF_VIDEO_PLAYBACK_SPEED, "1.00"));
} catch (NumberFormatException e) {
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/LocalPSMP.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/LocalPSMP.java
index fe3b5223e..0788a05e8 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/LocalPSMP.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/LocalPSMP.java
@@ -308,19 +308,7 @@ public class LocalPSMP extends PlaybackServiceMediaPlayer {
Log.d(TAG, "Resuming/Starting playback");
acquireWifiLockIfNecessary();
- float playbackSpeed = SPEED_USE_GLOBAL;
- if (media instanceof FeedMedia) {
- playbackSpeed = ((FeedMedia) media).getMediaPlaybackSpeed();
- }
- if (playbackSpeed == SPEED_USE_GLOBAL) {
- if (media.getMediaType() == MediaType.VIDEO) {
- playbackSpeed = UserPreferences.getVideoPlaybackSpeed();
- } else {
- playbackSpeed = UserPreferences.getPlaybackSpeed();
- }
- }
-
- setPlaybackParams(playbackSpeed, UserPreferences.isSkipSilence());
+ setPlaybackParams(UserPreferences.getPlaybackSpeed(media), UserPreferences.isSkipSilence());
setVolume(UserPreferences.getLeftVolume(), UserPreferences.getRightVolume());
if (playerStatus == PlayerStatus.PREPARED && media.getPosition() > 0) {