summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Fietz <Martin.Fietz@gmail.com>2016-03-16 20:52:50 +0100
committerMartin Fietz <Martin.Fietz@gmail.com>2016-03-16 20:52:50 +0100
commit49d4e2de157a00e0405cd7625c408adee6aab157 (patch)
treeb6eb3fe42b49829cf842133546bc33aaf65c92bb
parent8dd6ddb702f12e191df042ddc01c34e299ba3c21 (diff)
parentc878bc4e873e686936fd0c16dccfb8d8f724c35d (diff)
downloadAntennaPod-49d4e2de157a00e0405cd7625c408adee6aab157.zip
Merge pull request #1703 from domingos86/volume-converter-fix
fix the volume conversion upon user interaction
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java26
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java21
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/util/Converter.java13
3 files changed, 31 insertions, 29 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java
index dce3d2172..48ed270cb 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java
@@ -486,9 +486,9 @@ public abstract class MediaplayerActivity extends AppCompatActivity implements O
barPlaybackSpeed.setProgress((int) (20 * currentSpeed) - 10);
final SeekBar barLeftVolume = (SeekBar) dialog.findViewById(R.id.volume_left);
- barLeftVolume.setProgress(100);
+ barLeftVolume.setProgress(UserPreferences.getLeftVolumePercentage());
final SeekBar barRightVolume = (SeekBar) dialog.findViewById(R.id.volume_right);
- barRightVolume.setProgress(100);
+ barRightVolume.setProgress(UserPreferences.getRightVolumePercentage());
final CheckBox stereoToMono = (CheckBox) dialog.findViewById(R.id.stereo_to_mono);
stereoToMono.setChecked(UserPreferences.stereoToMono());
if (controller != null && !controller.canDownmix()) {
@@ -500,14 +500,9 @@ public abstract class MediaplayerActivity extends AppCompatActivity implements O
barLeftVolume.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
- float leftVolume = 1.0f, rightVolume = 1.0f;
- if (progress < 100) {
- leftVolume = progress / 100.0f;
- }
- if (barRightVolume.getProgress() < 100) {
- rightVolume = barRightVolume.getProgress() / 100.0f;
- }
- controller.setVolume(leftVolume, rightVolume);
+ controller.setVolume(
+ Converter.getVolumeFromPercentage(progress),
+ Converter.getVolumeFromPercentage(barRightVolume.getProgress()));
}
@Override
@@ -521,14 +516,9 @@ public abstract class MediaplayerActivity extends AppCompatActivity implements O
barRightVolume.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
- float leftVolume = 1.0f, rightVolume = 1.0f;
- if (progress < 100) {
- rightVolume = progress / 100.0f;
- }
- if (barLeftVolume.getProgress() < 100) {
- leftVolume = barLeftVolume.getProgress() / 100.0f;
- }
- controller.setVolume(leftVolume, rightVolume);
+ controller.setVolume(
+ Converter.getVolumeFromPercentage(barLeftVolume.getProgress()),
+ Converter.getVolumeFromPercentage(progress));
}
@Override
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 3631f881b..aa20b69b6 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
@@ -31,6 +31,7 @@ import de.danoeh.antennapod.core.storage.APCleanupAlgorithm;
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;
/**
* Provides access to preferences set by the user in the settings screen. A
@@ -267,20 +268,20 @@ public class UserPreferences {
public static float getLeftVolume() {
int volume = prefs.getInt(PREF_LEFT_VOLUME, 100);
- if(volume == 100) {
- return 1.0f;
- } else {
- return (float) (1 - (Math.log(100 - volume) / Math.log(100)));
- }
+ return Converter.getVolumeFromPercentage(volume);
}
public static float getRightVolume() {
int volume = prefs.getInt(PREF_RIGHT_VOLUME, 100);
- if(volume == 100) {
- return 1.0f;
- } else {
- return (float) (1 - (Math.log(100 - volume) / Math.log(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() {
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 2e3afefa9..5b046d7a7 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
@@ -118,5 +118,16 @@ public final class Converter {
result += minutes;
return result;
}
-
+
+ /**
+ * 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)));
+ }
}