diff options
author | ByteHamster <ByteHamster@users.noreply.github.com> | 2021-05-14 21:22:22 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-14 21:22:22 +0200 |
commit | fcb75fc38202e6f93e787955a330f333724b3081 (patch) | |
tree | 4d357f530b2e26a11c6fa653fec5d8a187216e94 /core/src | |
parent | 292c9bf15136f76fea8928ed7abb2b55fb316678 (diff) | |
parent | f56ce1ea529e90637b80f4f20853d63ccbbff5fd (diff) | |
download | AntennaPod-fcb75fc38202e6f93e787955a330f333724b3081.zip |
Merge pull request #5161 from ByteHamster/reduce-playback-controller
Remove some unnecessary code from playback controller
Diffstat (limited to 'core/src')
10 files changed, 7 insertions, 107 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/event/ServiceEvent.java b/core/src/main/java/de/danoeh/antennapod/core/event/ServiceEvent.java index b3241a8b6..2230ee84f 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/event/ServiceEvent.java +++ b/core/src/main/java/de/danoeh/antennapod/core/event/ServiceEvent.java @@ -2,7 +2,8 @@ package de.danoeh.antennapod.core.event; public class ServiceEvent { public enum Action { - SERVICE_STARTED + SERVICE_STARTED, + SERVICE_SHUT_DOWN } public final Action action; diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/ExoPlayerWrapper.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/ExoPlayerWrapper.java index 0d289bee6..0a9bf5f43 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/ExoPlayerWrapper.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/ExoPlayerWrapper.java @@ -114,11 +114,6 @@ public class ExoPlayerWrapper implements IPlayer { } @Override - public boolean canSetSpeed() { - return true; - } - - @Override public boolean canDownmix() { return false; } 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 1a9f472bb..dc29f53d4 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 @@ -608,23 +608,13 @@ public class LocalPSMP extends PlaybackServiceMediaPlayer { } /** - * Returns true if the playback speed can be adjusted. - */ - @Override - public boolean canSetSpeed() { - return mediaPlayer != null && mediaPlayer.canSetSpeed(); - } - - /** * Sets the playback speed. * This method is executed on the caller's thread. */ private void setSpeedSyncAndSkipSilence(float speed, boolean skipSilence) { playerLock.lock(); - if (mediaPlayer.canSetSpeed()) { - Log.d(TAG, "Playback speed was set to " + speed); - callback.playbackSpeedChanged(speed); - } + Log.d(TAG, "Playback speed was set to " + speed); + callback.playbackSpeedChanged(speed); mediaPlayer.setPlaybackParams(speed, skipSilence); playerLock.unlock(); } @@ -651,7 +641,7 @@ public class LocalPSMP extends PlaybackServiceMediaPlayer { if ((playerStatus == PlayerStatus.PLAYING || playerStatus == PlayerStatus.PAUSED || playerStatus == PlayerStatus.INITIALIZED - || playerStatus == PlayerStatus.PREPARED) && mediaPlayer.canSetSpeed()) { + || playerStatus == PlayerStatus.PREPARED)) { retVal = mediaPlayer.getCurrentSpeedMultiplier(); } playerLock.unlock(); @@ -1048,7 +1038,6 @@ public class LocalPSMP extends PlaybackServiceMediaPlayer { ap.setOnErrorListener(audioErrorListener); ap.setOnBufferingUpdateListener(audioBufferingUpdateListener); ap.setOnInfoListener(audioInfoListener); - ap.setOnSpeedAdjustmentAvailableChangedListener(audioSetSpeedAbilityListener); } else if (mp instanceof ExoPlayerWrapper) { ExoPlayerWrapper ap = (ExoPlayerWrapper) mp; ap.setOnCompletionListener(audioCompletionListener); @@ -1092,10 +1081,6 @@ public class LocalPSMP extends PlaybackServiceMediaPlayer { return callback.onMediaPlayerInfo(what, 0); } - private final MediaPlayer.OnSpeedAdjustmentAvailableChangedListener audioSetSpeedAbilityListener = - (arg0, speedAdjustmentAvailable) -> callback.setSpeedAbilityChanged(); - - private final MediaPlayer.OnErrorListener audioErrorListener = (mp, what, extra) -> { if(mp != null && mp.canFallback()) { diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java index 77c40f32a..89a947fdc 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java @@ -189,11 +189,6 @@ public class PlaybackService extends MediaBrowserServiceCompat { public static final int NOTIFICATION_TYPE_PLAYBACK_SPEED_CHANGE = 8; /** - * Ability to set the playback speed has changed - */ - public static final int NOTIFICATION_TYPE_SET_SPEED_ABILITY_CHANGED = 9; - - /** * Returned by getPositionSafe() or getDurationSafe() if the playbackService * is in an invalid state. */ @@ -894,10 +889,6 @@ public class PlaybackService extends MediaBrowserServiceCompat { sendNotificationBroadcast(NOTIFICATION_TYPE_PLAYBACK_SPEED_CHANGE, 0); } - public void setSpeedAbilityChanged() { - sendNotificationBroadcast(NOTIFICATION_TYPE_SET_SPEED_ABILITY_CHANGED, 0); - } - @Override public void onBufferingUpdate(int percent) { sendNotificationBroadcast(NOTIFICATION_TYPE_BUFFER_UPDATE, percent); @@ -1604,6 +1595,7 @@ public class PlaybackService extends MediaBrowserServiceCompat { @Override public void onReceive(Context context, Intent intent) { if (TextUtils.equals(intent.getAction(), ACTION_SHUTDOWN_PLAYBACK_SERVICE)) { + EventBus.getDefault().post(new ServiceEvent(ServiceEvent.Action.SERVICE_SHUT_DOWN)); stateManager.stopService(); } } @@ -1705,10 +1697,6 @@ public class PlaybackService extends MediaBrowserServiceCompat { return mediaPlayer.getPlayable(); } - public boolean canSetSpeed() { - return mediaPlayer.canSetSpeed(); - } - public void setSpeed(float speed) { mediaPlayer.setPlaybackParams(speed, UserPreferences.isSkipSilence()); } diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceMediaPlayer.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceMediaPlayer.java index c393820b1..8d9135a3a 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceMediaPlayer.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceMediaPlayer.java @@ -144,11 +144,6 @@ public abstract class PlaybackServiceMediaPlayer { public abstract void setStartWhenPrepared(boolean startWhenPrepared); /** - * Returns true if the playback speed can be adjusted. - */ - public abstract boolean canSetSpeed(); - - /** * Sets the playback parameters. * - Speed * - SkipSilence (ExoPlayer only) @@ -349,8 +344,6 @@ public abstract class PlaybackServiceMediaPlayer { void playbackSpeedChanged(float s); - void setSpeedAbilityChanged(); - void onBufferingUpdate(int percent); void onMediaChanged(boolean reloadUI); diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/playback/IPlayer.java b/core/src/main/java/de/danoeh/antennapod/core/util/playback/IPlayer.java index a511916fa..c726c5b5e 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/util/playback/IPlayer.java +++ b/core/src/main/java/de/danoeh/antennapod/core/util/playback/IPlayer.java @@ -7,9 +7,6 @@ import java.io.IOException; import java.util.List; public interface IPlayer { - - boolean canSetSpeed(); - boolean canDownmix(); int getCurrentPosition(); diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/playback/PlaybackController.java b/core/src/main/java/de/danoeh/antennapod/core/util/playback/PlaybackController.java index c6166264b..717af4186 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/util/playback/PlaybackController.java +++ b/core/src/main/java/de/danoeh/antennapod/core/util/playback/PlaybackController.java @@ -8,9 +8,7 @@ import android.content.Intent; import android.content.IntentFilter; import android.content.ServiceConnection; import android.media.MediaPlayer; -import android.os.Build; import android.os.IBinder; -import android.text.TextUtils; import android.util.Log; import android.util.Pair; import android.view.SurfaceHolder; @@ -18,7 +16,6 @@ import androidx.annotation.NonNull; import de.danoeh.antennapod.core.R; import de.danoeh.antennapod.core.event.MessageEvent; import de.danoeh.antennapod.core.event.ServiceEvent; -import de.danoeh.antennapod.model.feed.Chapter; import de.danoeh.antennapod.model.playback.MediaType; import de.danoeh.antennapod.core.feed.util.PlaybackSpeedUtils; import de.danoeh.antennapod.core.preferences.PlaybackPreferences; @@ -91,9 +88,6 @@ public abstract class PlaybackController { activity.registerReceiver(notificationReceiver, new IntentFilter( PlaybackService.ACTION_PLAYER_NOTIFICATION)); - activity.registerReceiver(shutdownReceiver, new IntentFilter( - PlaybackService.ACTION_SHUTDOWN_PLAYBACK_SERVICE)); - if (!released) { bindToService(); } else { @@ -121,12 +115,6 @@ public abstract class PlaybackController { // ignore } unbind(); - - try { - activity.unregisterReceiver(shutdownReceiver); - } catch (IllegalArgumentException e) { - // ignore - } media = null; released = true; @@ -252,35 +240,16 @@ public abstract class PlaybackController { case PlaybackService.NOTIFICATION_TYPE_PLAYBACK_SPEED_CHANGE: onPlaybackSpeedChange(); break; - case PlaybackService.NOTIFICATION_TYPE_SET_SPEED_ABILITY_CHANGED: - onSetSpeedAbilityChanged(); - break; } } }; - private final BroadcastReceiver shutdownReceiver = new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - if (playbackService != null) { - if (TextUtils.equals(intent.getAction(), PlaybackService.ACTION_SHUTDOWN_PLAYBACK_SERVICE)) { - unbind(); - onShutdownNotification(); - } - } - } - }; - public void onPositionObserverUpdate() {} public void onPlaybackSpeedChange() {} - public void onSetSpeedAbilityChanged() {} - - public void onShutdownNotification() {} - /** * Called when the currently displayed information should be refreshed. */ @@ -488,12 +457,6 @@ public abstract class PlaybackController { } } - public void seekToChapter(Chapter chapter) { - if (playbackService != null) { - playbackService.seekToChapter(chapter); - } - } - public void seekTo(int time) { if (playbackService != null) { playbackService.seekTo(time); @@ -510,13 +473,6 @@ public abstract class PlaybackController { return status; } - public boolean canSetPlaybackSpeed() { - return UserPreferences.useSonic() - || UserPreferences.useExoplayer() - || Build.VERSION.SDK_INT >= 23 - || (playbackService != null && playbackService.canSetSpeed()); - } - public void setPlaybackSpeed(float speed) { PlaybackPreferences.setCurrentlyPlayingTemporaryPlaybackSpeed(speed); if (getMedia() != null && getMedia().getMediaType() == MediaType.VIDEO) { @@ -545,7 +501,7 @@ public abstract class PlaybackController { } public float getCurrentPlaybackSpeedMultiplier() { - if (playbackService != null && canSetPlaybackSpeed()) { + if (playbackService != null) { return playbackService.getCurrentPlaybackSpeed(); } else { return PlaybackSpeedUtils.getCurrentPlaybackSpeed(getMedia()); diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/playback/VideoPlayer.java b/core/src/main/java/de/danoeh/antennapod/core/util/playback/VideoPlayer.java index 6728c027d..ecf47f8ae 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/util/playback/VideoPlayer.java +++ b/core/src/main/java/de/danoeh/antennapod/core/util/playback/VideoPlayer.java @@ -11,11 +11,6 @@ public class VideoPlayer extends MediaPlayer implements IPlayer { private static final String TAG = "VideoPlayer"; @Override - public boolean canSetSpeed() { - return false; - } - - @Override public boolean canDownmix() { return false; } diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml index 48f7f7c69..c8ec07292 100644 --- a/core/src/main/res/values/strings.xml +++ b/core/src/main/res/values/strings.xml @@ -320,9 +320,6 @@ <string name="time_left_label">Time left:\u0020</string> <!-- Variable Speed --> - <string name="no_playback_plugin_title">Plugin Not Installed</string> - <string name="no_playback_plugin_or_sonic_msg">For variable speed playback to work, we recommend to enable the built-in Sonic mediaplayer.</string> - <string name="enable_sonic">Enable Sonic</string> <string name="speed_presets">Presets</string> <string name="preset_already_exists">%1$.2fx is already saved as a preset.</string> diff --git a/core/src/play/java/de/danoeh/antennapod/core/service/playback/RemotePSMP.java b/core/src/play/java/de/danoeh/antennapod/core/service/playback/RemotePSMP.java index b114663f0..9fd99f236 100644 --- a/core/src/play/java/de/danoeh/antennapod/core/service/playback/RemotePSMP.java +++ b/core/src/play/java/de/danoeh/antennapod/core/service/playback/RemotePSMP.java @@ -511,13 +511,6 @@ public class RemotePSMP extends PlaybackServiceMediaPlayer { this.startWhenPrepared.set(startWhenPrepared); } - // As things are right now, changing the return value of this function is not enough to ensure - // all other components recognize it. - @Override - public boolean canSetSpeed() { - return false; - } - @Override public void setPlaybackParams(float speed, boolean skipSilence) { //Can be safely ignored as neither set speed not skipSilence is supported |