diff options
author | H. Lehmann <ByteHamster@users.noreply.github.com> | 2020-01-26 17:08:50 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-26 17:08:50 +0100 |
commit | 8dd595e0e8a80e5502d42315eada06add32e00d6 (patch) | |
tree | be730e8e33890636e08ca0871e3a850b2982bfdd /app/src/main/java/de/danoeh/antennapod/fragment | |
parent | 429499d418d3c1e9d8756942bbc0bb6871cdc392 (diff) | |
parent | 964a519b8ccfc2f4c8835a15018d81407768e11f (diff) | |
download | AntennaPod-8dd595e0e8a80e5502d42315eada06add32e00d6.zip |
Merge pull request #3248 from maxbechtold/feat/simple-adjust-volume-per-feed
Feat/simple adjust volume per feed
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/fragment')
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/fragment/FeedSettingsFragment.java | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/FeedSettingsFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/FeedSettingsFragment.java index bb1f8f8e9..bd5381df6 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/FeedSettingsFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/FeedSettingsFragment.java @@ -2,6 +2,7 @@ package de.danoeh.antennapod.fragment; import android.content.Context; import android.content.DialogInterface; +import android.content.Intent; import android.os.Bundle; import androidx.preference.SwitchPreference; import androidx.preference.ListPreference; @@ -10,10 +11,13 @@ import android.util.Log; import de.danoeh.antennapod.R; import de.danoeh.antennapod.activity.MainActivity; import de.danoeh.antennapod.core.dialog.ConfirmationDialog; +import de.danoeh.antennapod.core.event.settings.VolumeAdaptionChangedEvent; import de.danoeh.antennapod.core.feed.Feed; import de.danoeh.antennapod.core.feed.FeedFilter; import de.danoeh.antennapod.core.feed.FeedPreferences; +import de.danoeh.antennapod.core.feed.VolumeAdaptionSetting; import de.danoeh.antennapod.core.preferences.UserPreferences; +import de.danoeh.antennapod.core.service.playback.PlaybackService; import de.danoeh.antennapod.core.storage.DBReader; import de.danoeh.antennapod.core.storage.DBWriter; import de.danoeh.antennapod.dialog.AuthenticationDialog; @@ -23,6 +27,8 @@ import io.reactivex.MaybeOnSubscribe; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.Disposable; import io.reactivex.schedulers.Schedulers; +import org.greenrobot.eventbus.EventBus; + import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; import java.util.Locale; @@ -73,11 +79,13 @@ public class FeedSettingsFragment extends PreferenceFragmentCompat { setupAutoDownloadPreference(); setupKeepUpdatedPreference(); setupAutoDeletePreference(); + setupVolumeReductionPreferences(); setupAuthentificationPreference(); setupEpisodeFilterPreference(); setupPlaybackSpeedPreference(); updateAutoDeleteSummary(); + updateVolumeReductionValue(); updateAutoDownloadEnabled(); updatePlaybackSpeedPreference(); }, error -> Log.d(TAG, Log.getStackTraceString(error)), () -> { }); @@ -206,6 +214,49 @@ public class FeedSettingsFragment extends PreferenceFragmentCompat { } } + private void setupVolumeReductionPreferences() { + ListPreference volumeReductionPreference = (ListPreference) findPreference("volumeReduction"); + volumeReductionPreference.setOnPreferenceChangeListener((preference, newValue) -> { + switch ((String) newValue) { + case "off": + feedPreferences.setVolumeAdaptionSetting(VolumeAdaptionSetting.OFF); + break; + case "light": + feedPreferences.setVolumeAdaptionSetting(VolumeAdaptionSetting.LIGHT_REDUCTION); + break; + case "heavy": + feedPreferences.setVolumeAdaptionSetting(VolumeAdaptionSetting.HEAVY_REDUCTION); + break; + } + feed.savePreferences(); + updateVolumeReductionValue(); + sendVolumeAdaptionChangedIntent(); + + return false; + }); + } + + private void sendVolumeAdaptionChangedIntent() { + EventBus.getDefault().post( + new VolumeAdaptionChangedEvent(feedPreferences.getVolumeAdaptionSetting(), feed.getId())); + } + + private void updateVolumeReductionValue() { + ListPreference volumeReductionPreference = (ListPreference) findPreference("volumeReduction"); + + switch (feedPreferences.getVolumeAdaptionSetting()) { + case OFF: + volumeReductionPreference.setValue("off"); + break; + case LIGHT_REDUCTION: + volumeReductionPreference.setValue("light"); + break; + case HEAVY_REDUCTION: + volumeReductionPreference.setValue("heavy"); + break; + } + } + private void setupKeepUpdatedPreference() { SwitchPreference pref = (SwitchPreference) findPreference("keepUpdated"); |