diff options
author | Matej Drobnič <services+github@matejdro.com> | 2023-12-29 17:15:21 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-29 17:15:21 +0100 |
commit | f476086114a56d214558f37b066849150a141390 (patch) | |
tree | b1b19c004915e7a953e2b416d9cd27dd5efd607e /core | |
parent | 58081fe5bf7d9ad28f089cf10b2c17bfcfc8bbc7 (diff) | |
download | AntennaPod-f476086114a56d214558f37b066849150a141390.zip |
Check if volume boost effect is supported on the device (#6808)
Diffstat (limited to 'core')
-rw-r--r-- | core/src/main/java/de/danoeh/antennapod/core/service/playback/ExoPlayerWrapper.java | 19 | ||||
-rw-r--r-- | core/src/test/java/de/danoeh/antennapod/core/feed/VolumeAdaptionSettingTest.java | 13 |
2 files changed, 28 insertions, 4 deletions
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 79cd97fd2..1900ed7f2 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 @@ -7,6 +7,7 @@ import android.text.TextUtils; import android.util.Log; import android.view.SurfaceHolder; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.core.util.Consumer; import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.DefaultLoadControl; @@ -37,6 +38,7 @@ import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory; import com.google.android.exoplayer2.upstream.HttpDataSource; import de.danoeh.antennapod.core.ClientConfig; import de.danoeh.antennapod.core.R; +import de.danoeh.antennapod.model.feed.VolumeAdaptionSetting; import de.danoeh.antennapod.storage.preferences.UserPreferences; import de.danoeh.antennapod.core.service.download.AntennapodHttpClient; import de.danoeh.antennapod.core.service.download.HttpCredentialEncoder; @@ -69,7 +71,8 @@ public class ExoPlayerWrapper { private PlaybackParameters playbackParameters; private DefaultTrackSelector trackSelector; - private LoudnessEnhancer loudnessEnhancer; + @Nullable + private LoudnessEnhancer loudnessEnhancer = null; ExoPlayerWrapper(Context context) { this.context = context; @@ -247,11 +250,15 @@ public class ExoPlayerWrapper { public void setVolume(float v, float v1) { if (v > 1) { exoPlayer.setVolume(1f); - loudnessEnhancer.setEnabled(true); - loudnessEnhancer.setTargetGain((int) (1000 * (v - 1))); + if (loudnessEnhancer != null) { + loudnessEnhancer.setEnabled(true); + loudnessEnhancer.setTargetGain((int) (1000 * (v - 1))); + } } else { exoPlayer.setVolume(v); - loudnessEnhancer.setEnabled(false); + if (loudnessEnhancer != null) { + loudnessEnhancer.setEnabled(false); + } } } @@ -354,6 +361,10 @@ public class ExoPlayerWrapper { } private void initLoudnessEnhancer(int audioStreamId) { + if (!VolumeAdaptionSetting.isBoostSupported()) { + return; + } + LoudnessEnhancer newEnhancer = new LoudnessEnhancer(audioStreamId); LoudnessEnhancer oldEnhancer = this.loudnessEnhancer; if (oldEnhancer != null) { diff --git a/core/src/test/java/de/danoeh/antennapod/core/feed/VolumeAdaptionSettingTest.java b/core/src/test/java/de/danoeh/antennapod/core/feed/VolumeAdaptionSettingTest.java index 30767bdc8..966351a5e 100644 --- a/core/src/test/java/de/danoeh/antennapod/core/feed/VolumeAdaptionSettingTest.java +++ b/core/src/test/java/de/danoeh/antennapod/core/feed/VolumeAdaptionSettingTest.java @@ -1,6 +1,9 @@ package de.danoeh.antennapod.core.feed; import de.danoeh.antennapod.model.feed.VolumeAdaptionSetting; + +import org.junit.After; +import org.junit.Before; import org.junit.Test; import static org.hamcrest.Matchers.equalTo; @@ -11,6 +14,16 @@ import static org.junit.Assert.assertTrue; public class VolumeAdaptionSettingTest { + @Before + public void setUp() throws Exception { + VolumeAdaptionSetting.setBoostSupported(false); + } + + @After + public void tearDown() throws Exception { + VolumeAdaptionSetting.setBoostSupported(null); + } + @Test public void mapOffToInteger() { VolumeAdaptionSetting setting = VolumeAdaptionSetting.OFF; |