summaryrefslogtreecommitdiff
path: root/core/src
diff options
context:
space:
mode:
Diffstat (limited to 'core/src')
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/playback/ExoPlayerWrapper.java19
-rw-r--r--core/src/test/java/de/danoeh/antennapod/core/feed/VolumeAdaptionSettingTest.java13
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;