From 4e185f2895d773ae3a966597ab8cc65e4d1c576d Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Thu, 29 Jul 2021 21:37:34 +0200 Subject: [PATCH] Removed left/right volume controls The setting does not work in our default player anyway and just clutters the interface with yet another setting that nobody uses. --- .../dialog/PlaybackControlsDialog.java | 49 +------------ app/src/main/res/layout/audio_controls.xml | 69 +++---------------- .../core/preferences/UserPreferences.java | 28 -------- .../core/service/playback/LocalPSMP.java | 12 +--- .../service/playback/PlaybackService.java | 16 +---- .../antennapod/core/util/Converter.java | 16 ----- .../util/playback/PlaybackController.java | 6 -- core/src/main/res/values/strings.xml | 3 - 8 files changed, 16 insertions(+), 183 deletions(-) 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 195891499..3186cbe2e 100644 --- a/app/src/main/java/de/danoeh/antennapod/dialog/PlaybackControlsDialog.java +++ b/app/src/main/java/de/danoeh/antennapod/dialog/PlaybackControlsDialog.java @@ -10,11 +10,9 @@ import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.DialogFragment; import android.widget.Button; import android.widget.CheckBox; -import android.widget.SeekBar; import android.widget.TextView; import de.danoeh.antennapod.R; import de.danoeh.antennapod.core.preferences.UserPreferences; -import de.danoeh.antennapod.core.util.Converter; import de.danoeh.antennapod.core.util.playback.PlaybackController; import de.danoeh.antennapod.view.PlaybackSpeedSeekBar; @@ -63,11 +61,7 @@ public class PlaybackControlsDialog extends DialogFragment { dialog = new AlertDialog.Builder(getContext()) .setTitle(R.string.audio_controls) .setView(R.layout.audio_controls) - .setPositiveButton(R.string.close_label, (dialog1, which) -> { - final SeekBar left = dialog.findViewById(R.id.volume_left); - final SeekBar right = dialog.findViewById(R.id.volume_right); - UserPreferences.setVolume(left.getProgress(), right.getProgress()); - }).create(); + .setPositiveButton(R.string.close_label, null).create(); return dialog; } @@ -79,10 +73,6 @@ public class PlaybackControlsDialog extends DialogFragment { speedSeekBar.setProgressChangedListener(speed -> txtvPlaybackSpeed.setText(String.format(Locale.getDefault(), "%.2fx", speed))); - final SeekBar barLeftVolume = dialog.findViewById(R.id.volume_left); - barLeftVolume.setProgress(UserPreferences.getLeftVolumePercentage()); - final SeekBar barRightVolume = dialog.findViewById(R.id.volume_right); - barRightVolume.setProgress(UserPreferences.getRightVolumePercentage()); final CheckBox stereoToMono = dialog.findViewById(R.id.stereo_to_mono); stereoToMono.setChecked(UserPreferences.stereoToMono()); if (controller != null && !controller.canDownmix()) { @@ -91,10 +81,6 @@ public class PlaybackControlsDialog extends DialogFragment { stereoToMono.setText(getString(R.string.stereo_to_mono) + " [" + sonicOnly + "]"); } - if (UserPreferences.useExoplayer()) { - barRightVolume.setEnabled(false); - } - final CheckBox skipSilence = dialog.findViewById(R.id.skipSilence); skipSilence.setChecked(UserPreferences.isSkipSilence()); if (!UserPreferences.useExoplayer()) { @@ -106,39 +92,6 @@ public class PlaybackControlsDialog extends DialogFragment { UserPreferences.setSkipSilence(isChecked); controller.setSkipSilence(isChecked); }); - - barLeftVolume.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { - @Override - public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { - controller.setVolume( - Converter.getVolumeFromPercentage(progress), - Converter.getVolumeFromPercentage(barRightVolume.getProgress())); - } - - @Override - public void onStartTrackingTouch(SeekBar seekBar) { - } - - @Override - public void onStopTrackingTouch(SeekBar seekBar) { - } - }); - barRightVolume.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { - @Override - public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { - controller.setVolume( - Converter.getVolumeFromPercentage(barLeftVolume.getProgress()), - Converter.getVolumeFromPercentage(progress)); - } - - @Override - public void onStartTrackingTouch(SeekBar seekBar) { - } - - @Override - public void onStopTrackingTouch(SeekBar seekBar) { - } - }); stereoToMono.setOnCheckedChangeListener((buttonView, isChecked) -> { UserPreferences.stereoToMono(isChecked); if (controller != null) { diff --git a/app/src/main/res/layout/audio_controls.xml b/app/src/main/res/layout/audio_controls.xml index 2c9665aad..0bfa4f521 100644 --- a/app/src/main/res/layout/audio_controls.xml +++ b/app/src/main/res/layout/audio_controls.xml @@ -1,9 +1,9 @@ + android:layout_marginBottom="8dp" /> + android:text="@string/playback_speed" + style="@style/AntennaPod.TextView.ListItemPrimaryTitle" /> - - - - - - - - - - - - - - - - - - + android:layout_height="wrap_content" /> + android:text="@string/audio_effects" + style="@style/AntennaPod.TextView.ListItemPrimaryTitle" /> + + 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 046e5a5a7..63414800d 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 @@ -8,7 +8,6 @@ import android.text.TextUtils; import android.util.Log; import android.view.KeyEvent; -import androidx.annotation.IntRange; import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; import androidx.core.app.NotificationCompat; @@ -40,7 +39,6 @@ import de.danoeh.antennapod.core.storage.ExceptFavoriteCleanupAlgorithm; 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.model.feed.SortOrder; import de.danoeh.antennapod.core.util.download.AutoUpdateManager; @@ -471,24 +469,6 @@ public class UserPreferences { return readPlaybackSpeedArray(prefs.getString(PREF_PLAYBACK_SPEED_ARRAY, null)); } - public static float getLeftVolume() { - int volume = prefs.getInt(PREF_LEFT_VOLUME, 100); - return Converter.getVolumeFromPercentage(volume); - } - - public static float getRightVolume() { - int volume = prefs.getInt(PREF_RIGHT_VOLUME, 100); - return Converter.getVolumeFromPercentage(volume); - } - - public static int getLeftVolumePercentage() { - return prefs.getInt(PREF_LEFT_VOLUME, 100); - } - - public static int getRightVolumePercentage() { - return prefs.getInt(PREF_RIGHT_VOLUME, 100); - } - public static boolean shouldPauseForFocusLoss() { return prefs.getBoolean(PREF_PAUSE_PLAYBACK_FOR_FOCUS_LOSS, false); } @@ -727,14 +707,6 @@ public class UserPreferences { .apply(); } - public static void setVolume(@IntRange(from = 0, to = 100) int leftVolume, - @IntRange(from = 0, to = 100) int rightVolume) { - prefs.edit() - .putInt(PREF_LEFT_VOLUME, leftVolume) - .putInt(PREF_RIGHT_VOLUME, rightVolume) - .apply(); - } - public static void setAutodownloadSelectedNetworks(String[] value) { prefs.edit() .putString(PREF_AUTODL_SELECTED_NETWORKS, TextUtils.join(",", value)) 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 dc29f53d4..3016b96d5 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 @@ -322,10 +322,7 @@ public class LocalPSMP extends PlaybackServiceMediaPlayer { acquireWifiLockIfNecessary(); setPlaybackParams(PlaybackSpeedUtils.getCurrentPlaybackSpeed(media), UserPreferences.isSkipSilence()); - - float leftVolume = UserPreferences.getLeftVolume(); - float rightVolume = UserPreferences.getRightVolume(); - setVolume(leftVolume, rightVolume); + setVolume(1.0f, 1.0f); if (playerStatus == PlayerStatus.PREPARED && media.getPosition() > 0) { int newPosition = RewindAfterPauseUtils.calculatePositionWithRewind( @@ -891,16 +888,13 @@ public class LocalPSMP extends PlaybackServiceMediaPlayer { if (pausedBecauseOfTransientAudiofocusLoss) { // we paused => play now resume(); } else { // we ducked => raise audio level back - setVolumeSync(UserPreferences.getLeftVolume(), - UserPreferences.getRightVolume()); + setVolumeSync(1.0f, 1.0f); } } else if (focusChange == AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK) { if (playerStatus == PlayerStatus.PLAYING) { if (!UserPreferences.shouldPauseForFocusLoss()) { Log.d(TAG, "Lost audio focus temporarily. Ducking..."); - final float DUCK_FACTOR = 0.25f; - setVolumeSync(DUCK_FACTOR * UserPreferences.getLeftVolume(), - DUCK_FACTOR * UserPreferences.getRightVolume()); + setVolumeSync(0.25f, 0.25f); pausedBecauseOfTransientAudiofocusLoss = false; } else { Log.d(TAG, "Lost audio focus temporarily. Could duck, but won't, pausing..."); 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 ef4e28448..679d8c3b6 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 @@ -779,25 +779,19 @@ public class PlaybackService extends MediaBrowserServiceCompat { final float[] multiplicators = {0.1f, 0.2f, 0.3f, 0.3f, 0.3f, 0.4f, 0.4f, 0.4f, 0.6f, 0.8f}; float multiplicator = multiplicators[Math.max(0, (int) timeLeft / 1000)]; Log.d(TAG, "onSleepTimerAlmostExpired: " + multiplicator); - float leftVolume = multiplicator * UserPreferences.getLeftVolume(); - float rightVolume = multiplicator * UserPreferences.getRightVolume(); - mediaPlayer.setVolume(leftVolume, rightVolume); + mediaPlayer.setVolume(multiplicator, multiplicator); } @Override public void onSleepTimerExpired() { mediaPlayer.pause(true, true); - float leftVolume = UserPreferences.getLeftVolume(); - float rightVolume = UserPreferences.getRightVolume(); - mediaPlayer.setVolume(leftVolume, rightVolume); + mediaPlayer.setVolume(1.0f, 1.0f); sendNotificationBroadcast(NOTIFICATION_TYPE_SLEEPTIMER_UPDATE, 0); } @Override public void onSleepTimerReset() { - float leftVolume = UserPreferences.getLeftVolume(); - float rightVolume = UserPreferences.getRightVolume(); - mediaPlayer.setVolume(leftVolume, rightVolume); + mediaPlayer.setVolume(1.0f, 1.0f); } @Override @@ -1705,10 +1699,6 @@ public class PlaybackService extends MediaBrowserServiceCompat { mediaPlayer.setPlaybackParams(getCurrentPlaybackSpeed(), skipSilence); } - public void setVolume(float leftVolume, float rightVolume) { - mediaPlayer.setVolume(leftVolume, rightVolume); - } - public float getCurrentPlaybackSpeed() { if(mediaPlayer == null) { return 1.0f; diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/Converter.java b/core/src/main/java/de/danoeh/antennapod/core/util/Converter.java index 8f9b8ce2f..4014937bd 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/util/Converter.java +++ b/core/src/main/java/de/danoeh/antennapod/core/util/Converter.java @@ -12,9 +12,6 @@ public final class Converter { private Converter() { } - /** Logging tag. */ - private static final String TAG = "Converter"; - private static final int HOURS_MIL = 3600000; private static final int MINUTES_MIL = 60000; private static final int SECONDS_MIL = 1000; @@ -108,17 +105,4 @@ public final class Converter { float hours = (float) time / 3600f; return String.format(Locale.getDefault(), "%.1f ", hours) + context.getString(R.string.time_hours); } - - /** - * Converts the volume as read as the progress from a SeekBar scaled to 100 and as saved in - * UserPreferences to the format taken by setVolume methods. - * @param progress integer between 0 to 100 taken from the SeekBar progress - * @return the appropriate volume as float taken by setVolume methods - */ - public static float getVolumeFromPercentage(int progress) { - if (progress == 100) { - return 1f; - } - return (float) (1 - (Math.log(101 - progress) / Math.log(101))); - } } 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 6fe2502ab..cd69147a6 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 @@ -496,12 +496,6 @@ public abstract class PlaybackController { } } - public void setVolume(float leftVolume, float rightVolume) { - if (playbackService != null) { - playbackService.setVolume(leftVolume, rightVolume); - } - } - public float getCurrentPlaybackSpeedMultiplier() { if (playbackService != null) { return playbackService.getCurrentPlaybackSpeed(); diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml index 9523ff5f2..0f4b78de7 100644 --- a/core/src/main/res/values/strings.xml +++ b/core/src/main/res/values/strings.xml @@ -777,9 +777,6 @@ Audio controls Playback Speed - Volume - L - R Audio Effects Downmix: Stereo to mono Sonic only