diff options
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) { |