summaryrefslogtreecommitdiff
path: root/app/src
diff options
context:
space:
mode:
authorByteHamster <info@bytehamster.com>2021-10-24 18:52:26 +0200
committerByteHamster <info@bytehamster.com>2021-10-24 18:52:26 +0200
commita859b3bbc595689217d3d934011580be49cbcb39 (patch)
tree7411f1a2fada7aa0803b2a8bbf215f9711a69b31 /app/src
parent8a4b0361485a0f0953af7b13d74c13dc06bd0ca7 (diff)
downloadAntennaPod-a859b3bbc595689217d3d934011580be49cbcb39.zip
Convert speed update to event
Diffstat (limited to 'app/src')
-rw-r--r--app/src/androidTest/java/de/test/antennapod/service/playback/CancelablePSMPCallback.java8
-rw-r--r--app/src/androidTest/java/de/test/antennapod/service/playback/DefaultPSMPCallback.java5
-rw-r--r--app/src/main/java/de/danoeh/antennapod/dialog/PlaybackControlsDialog.java26
-rw-r--r--app/src/main/java/de/danoeh/antennapod/dialog/VariableSpeedDialog.java25
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/AudioPlayerFragment.java19
5 files changed, 31 insertions, 52 deletions
diff --git a/app/src/androidTest/java/de/test/antennapod/service/playback/CancelablePSMPCallback.java b/app/src/androidTest/java/de/test/antennapod/service/playback/CancelablePSMPCallback.java
index a4d1c2bc9..2c164f131 100644
--- a/app/src/androidTest/java/de/test/antennapod/service/playback/CancelablePSMPCallback.java
+++ b/app/src/androidTest/java/de/test/antennapod/service/playback/CancelablePSMPCallback.java
@@ -35,14 +35,6 @@ public class CancelablePSMPCallback implements PlaybackServiceMediaPlayer.PSMPCa
}
@Override
- public void playbackSpeedChanged(float s) {
- if (isCancelled) {
- return;
- }
- originalCallback.playbackSpeedChanged(s);
- }
-
- @Override
public void onMediaChanged(boolean reloadUI) {
if (isCancelled) {
return;
diff --git a/app/src/androidTest/java/de/test/antennapod/service/playback/DefaultPSMPCallback.java b/app/src/androidTest/java/de/test/antennapod/service/playback/DefaultPSMPCallback.java
index ddc8cb29b..090a94d6e 100644
--- a/app/src/androidTest/java/de/test/antennapod/service/playback/DefaultPSMPCallback.java
+++ b/app/src/androidTest/java/de/test/antennapod/service/playback/DefaultPSMPCallback.java
@@ -18,11 +18,6 @@ public class DefaultPSMPCallback implements PlaybackServiceMediaPlayer.PSMPCallb
}
@Override
- public void playbackSpeedChanged(float s) {
-
- }
-
- @Override
public void onMediaChanged(boolean reloadUI) {
}
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 31c2d3369..f4b3b1bfa 100644
--- a/app/src/main/java/de/danoeh/antennapod/dialog/PlaybackControlsDialog.java
+++ b/app/src/main/java/de/danoeh/antennapod/dialog/PlaybackControlsDialog.java
@@ -12,9 +12,13 @@ import android.widget.Button;
import android.widget.CheckBox;
import android.widget.TextView;
import de.danoeh.antennapod.R;
+import de.danoeh.antennapod.core.event.playback.SpeedChangedEvent;
import de.danoeh.antennapod.core.preferences.UserPreferences;
import de.danoeh.antennapod.core.util.playback.PlaybackController;
import de.danoeh.antennapod.view.PlaybackSpeedSeekBar;
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
import java.util.List;
import java.util.Locale;
@@ -44,16 +48,12 @@ public class PlaybackControlsDialog extends DialogFragment {
public void loadMediaInfo() {
setupUi();
setupAudioTracks();
- updateSpeed();
- }
-
- @Override
- public void onPlaybackSpeedChange() {
- updateSpeed();
+ updateSpeed(new SpeedChangedEvent(getCurrentPlaybackSpeedMultiplier()));
}
};
controller.init();
setupUi();
+ EventBus.getDefault().register(this);
}
@Override
@@ -61,6 +61,7 @@ public class PlaybackControlsDialog extends DialogFragment {
super.onStop();
controller.release();
controller = null;
+ EventBus.getDefault().unregister(this);
}
@NonNull
@@ -79,10 +80,9 @@ public class PlaybackControlsDialog extends DialogFragment {
speedSeekBar.setProgressChangedListener(speed -> {
if (controller != null) {
controller.setPlaybackSpeed(speed);
- updateSpeed();
}
});
- updateSpeed();
+ updateSpeed(new SpeedChangedEvent(controller.getCurrentPlaybackSpeedMultiplier()));
final CheckBox stereoToMono = dialog.findViewById(R.id.stereo_to_mono);
stereoToMono.setChecked(UserPreferences.stereoToMono());
@@ -111,12 +111,10 @@ public class PlaybackControlsDialog extends DialogFragment {
});
}
- private void updateSpeed() {
- if (controller != null) {
- txtvPlaybackSpeed.setText(String.format(
- Locale.getDefault(), "%.2fx", controller.getCurrentPlaybackSpeedMultiplier()));
- speedSeekBar.updateSpeed(controller.getCurrentPlaybackSpeedMultiplier());
- }
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ public void updateSpeed(SpeedChangedEvent event) {
+ txtvPlaybackSpeed.setText(String.format(Locale.getDefault(), "%.2fx", event.getNewSpeed()));
+ speedSeekBar.updateSpeed(event.getNewSpeed());
}
private void setupAudioTracks() {
diff --git a/app/src/main/java/de/danoeh/antennapod/dialog/VariableSpeedDialog.java b/app/src/main/java/de/danoeh/antennapod/dialog/VariableSpeedDialog.java
index 5d13f6f00..12cb26409 100644
--- a/app/src/main/java/de/danoeh/antennapod/dialog/VariableSpeedDialog.java
+++ b/app/src/main/java/de/danoeh/antennapod/dialog/VariableSpeedDialog.java
@@ -15,10 +15,14 @@ import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
import com.google.android.material.chip.Chip;
import com.google.android.material.snackbar.Snackbar;
import de.danoeh.antennapod.R;
+import de.danoeh.antennapod.core.event.playback.SpeedChangedEvent;
import de.danoeh.antennapod.core.preferences.UserPreferences;
import de.danoeh.antennapod.core.util.playback.PlaybackController;
import de.danoeh.antennapod.view.ItemOffsetDecoration;
import de.danoeh.antennapod.view.PlaybackSpeedSeekBar;
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
@@ -47,22 +51,12 @@ public class VariableSpeedDialog extends BottomSheetDialogFragment {
super.onStart();
controller = new PlaybackController(getActivity()) {
@Override
- public void onPlaybackSpeedChange() {
- updateSpeed();
- }
-
- @Override
public void loadMediaInfo() {
- updateSpeed();
+ updateSpeed(new SpeedChangedEvent(controller.getCurrentPlaybackSpeedMultiplier()));
}
};
controller.init();
- updateSpeed();
- }
-
- private void updateSpeed() {
- speedSeekBar.updateSpeed(controller.getCurrentPlaybackSpeedMultiplier());
- addCurrentSpeedChip.setText(speedFormat.format(controller.getCurrentPlaybackSpeedMultiplier()));
+ EventBus.getDefault().register(this);
}
@Override
@@ -70,6 +64,13 @@ public class VariableSpeedDialog extends BottomSheetDialogFragment {
super.onStop();
controller.release();
controller = null;
+ EventBus.getDefault().unregister(this);
+ }
+
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ public void updateSpeed(SpeedChangedEvent event) {
+ speedSeekBar.updateSpeed(event.getNewSpeed());
+ addCurrentSpeedChip.setText(speedFormat.format(event.getNewSpeed()));
}
@Nullable
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/AudioPlayerFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/AudioPlayerFragment.java
index 469a48a39..94326efe8 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/AudioPlayerFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/AudioPlayerFragment.java
@@ -28,6 +28,7 @@ import com.google.android.material.snackbar.Snackbar;
import de.danoeh.antennapod.core.event.playback.BufferUpdateEvent;
import de.danoeh.antennapod.core.event.playback.PlaybackServiceEvent;
import de.danoeh.antennapod.core.event.PlayerErrorEvent;
+import de.danoeh.antennapod.core.event.playback.SpeedChangedEvent;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
@@ -244,14 +245,11 @@ public class AudioPlayerFragment extends Fragment implements
});
}
- protected void updatePlaybackSpeedButton(Playable media) {
- if (butPlaybackSpeed == null || controller == null) {
- return;
- }
- float speed = PlaybackSpeedUtils.getCurrentPlaybackSpeed(media);
- String speedStr = new DecimalFormat("0.00").format(speed);
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ public void updatePlaybackSpeedButton(SpeedChangedEvent event) {
+ String speedStr = new DecimalFormat("0.00").format(event.getNewSpeed());
txtvPlaybackSpeed.setText(speedStr);
- butPlaybackSpeed.setSpeed(speed);
+ butPlaybackSpeed.setSpeed(event.getNewSpeed());
}
private void loadMediaInfo(boolean includingChapters) {
@@ -301,11 +299,6 @@ public class AudioPlayerFragment extends Fragment implements
public void onPlaybackEnd() {
((MainActivity) getActivity()).getBottomSheet().setState(BottomSheetBehavior.STATE_COLLAPSED);
}
-
- @Override
- public void onPlaybackSpeedChange() {
- updatePlaybackSpeedButton(getMedia());
- }
};
}
@@ -315,7 +308,7 @@ public class AudioPlayerFragment extends Fragment implements
}
duration = controller.getDuration();
updatePosition(new PlaybackPositionEvent(controller.getPosition(), duration));
- updatePlaybackSpeedButton(media);
+ updatePlaybackSpeedButton(new SpeedChangedEvent(PlaybackSpeedUtils.getCurrentPlaybackSpeed(media)));
setChapterDividers(media);
setupOptionsMenu(media);
}