From 4746b16b12b1a8b70e0fcad6c381e5f4d66f491a Mon Sep 17 00:00:00 2001 From: Jonas Kalderstam Date: Fri, 13 Sep 2019 00:16:22 +0200 Subject: Changed type of media last playback speed to float from string Also sets default to "magic" -1 value --- .../de/danoeh/antennapod/activity/AudioplayerActivity.java | 6 +++++- .../de/danoeh/antennapod/activity/MediaplayerActivity.java | 13 ++++++++++--- .../de/danoeh/antennapod/dialog/PlaybackControlsDialog.java | 11 +++++++++-- .../java/de/danoeh/antennapod/fragment/QueueFragment.java | 4 ++++ 4 files changed, 28 insertions(+), 6 deletions(-) (limited to 'app/src/main/java/de') 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 5e81295b1..d2e929d20 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java @@ -152,7 +152,11 @@ public class AudioplayerActivity extends MediaplayerInfoActivity { private void storeNewMediaPlaybackSpeed(String speed) { Playable media = controller.getMedia(); if (media instanceof FeedMedia) { - ((FeedMedia) media).updateLastPlaybackSpeed(speed); + try { + ((FeedMedia) media).updateLastPlaybackSpeed(Float.parseFloat(speed)); + } catch (NumberFormatException e) { + // Well this was awkward... + } } } } 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 b6697ef52..d5801265f 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java @@ -64,6 +64,8 @@ import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.Disposable; import io.reactivex.schedulers.Schedulers; +import static de.danoeh.antennapod.core.feed.FeedPreferences.SPEED_USE_GLOBAL; + /** * Provides general features which are both needed for playing audio and video @@ -873,16 +875,21 @@ public abstract class MediaplayerActivity extends CastEnabledActivity implements } } - protected float getPlaybackSpeedForMedia() { + float getPlaybackSpeedForMedia() { + float playbackSpeed = SPEED_USE_GLOBAL; if (controller != null) { Playable media = controller.getMedia(); boolean isFeedMedia = media instanceof FeedMedia; if (isFeedMedia) { - return ((FeedMedia) media).getMediaPlaybackSpeed(); + playbackSpeed = ((FeedMedia) media).getMediaPlaybackSpeed(); } } - return UserPreferences.getPlaybackSpeed(); + 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 86720f40a..5afebb22e 100644 --- a/app/src/main/java/de/danoeh/antennapod/dialog/PlaybackControlsDialog.java +++ b/app/src/main/java/de/danoeh/antennapod/dialog/PlaybackControlsDialog.java @@ -20,6 +20,8 @@ import de.danoeh.antennapod.core.util.Converter; import de.danoeh.antennapod.core.util.playback.Playable; import de.danoeh.antennapod.core.util.playback.PlaybackController; +import static de.danoeh.antennapod.core.feed.FeedPreferences.SPEED_USE_GLOBAL; + public class PlaybackControlsDialog extends DialogFragment { private static final float PLAYBACK_SPEED_STEP = 0.05f; private static final float DEFAULT_MIN_PLAYBACK_SPEED = 0.5f; @@ -214,15 +216,20 @@ public class PlaybackControlsDialog extends DialogFragment { return UserPreferences.getVideoPlaybackSpeed(); } + float playbackSpeed = SPEED_USE_GLOBAL; if (controller != null) { Playable media = controller.getMedia(); boolean isFeedMedia = media instanceof FeedMedia; if (isFeedMedia) { - return ((FeedMedia) media).getMediaPlaybackSpeed(); + playbackSpeed = ((FeedMedia) media).getMediaPlaybackSpeed(); } } - return UserPreferences.getPlaybackSpeed(); + if (playbackSpeed == SPEED_USE_GLOBAL) { + playbackSpeed = UserPreferences.getPlaybackSpeed(); + } + + return playbackSpeed; } } 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 902708e9a..238d9c7ca 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/QueueFragment.java @@ -63,6 +63,7 @@ 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; import static de.danoeh.antennapod.dialog.EpisodesApplyActionFragment.ACTION_DELETE; import static de.danoeh.antennapod.dialog.EpisodesApplyActionFragment.ACTION_REMOVE_FROM_QUEUE; @@ -600,6 +601,9 @@ public class QueueFragment extends Fragment { long timeLeft = 0; for(FeedItem item : queue) { float playbackSpeed = item.getFeedPlaybackSpeed(); + if (playbackSpeed == SPEED_USE_GLOBAL) { + playbackSpeed = UserPreferences.getPlaybackSpeed(); + } if(item.getMedia() != null) { timeLeft += (long) ((item.getMedia().getDuration() - item.getMedia().getPosition()) -- cgit v1.2.3