summaryrefslogtreecommitdiff
path: root/app/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java3
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/FeedSettingsFragment.java51
2 files changed, 53 insertions, 1 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java
index c38eb7d47..732570d8a 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java
@@ -53,6 +53,7 @@ import de.danoeh.antennapod.core.feed.EventDistributor;
import de.danoeh.antennapod.core.feed.Feed;
import de.danoeh.antennapod.core.feed.FeedItem;
import de.danoeh.antennapod.core.feed.FeedPreferences;
+import de.danoeh.antennapod.core.feed.VolumeReductionSetting;
import de.danoeh.antennapod.core.glide.ApGlideSettings;
import de.danoeh.antennapod.core.glide.FastBlurTransformation;
import de.danoeh.antennapod.core.preferences.UserPreferences;
@@ -270,7 +271,7 @@ public class OnlineFeedViewActivity extends AppCompatActivity {
url = URLChecker.prepareURL(url);
feed = new Feed(url, null);
if (username != null && password != null) {
- feed.setPreferences(new FeedPreferences(0, false, FeedPreferences.AutoDeleteAction.GLOBAL, username, password));
+ feed.setPreferences(new FeedPreferences(0, false, FeedPreferences.AutoDeleteAction.GLOBAL, VolumeReductionSetting.OFF, username, password));
}
String fileUrl = new File(getExternalCacheDir(),
FileNameGenerator.generateFileName(feed.getDownload_url())).toString();
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 4fb3d90f5..9fe989d40 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/FeedSettingsFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/FeedSettingsFragment.java
@@ -3,6 +3,7 @@ package de.danoeh.antennapod.fragment;
import android.arch.lifecycle.ViewModelProviders;
import android.content.Context;
import android.content.DialogInterface;
+import android.content.Intent;
import android.os.Bundle;
import android.support.v14.preference.SwitchPreference;
import android.support.v7.preference.ListPreference;
@@ -12,7 +13,9 @@ import de.danoeh.antennapod.core.dialog.ConfirmationDialog;
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.VolumeReductionSetting;
import de.danoeh.antennapod.core.preferences.UserPreferences;
+import de.danoeh.antennapod.core.service.playback.PlaybackService;
import de.danoeh.antennapod.core.storage.DBWriter;
import de.danoeh.antennapod.dialog.AuthenticationDialog;
import de.danoeh.antennapod.dialog.EpisodeFilterDialog;
@@ -38,10 +41,12 @@ public class FeedSettingsFragment extends PreferenceFragmentCompat {
setupAutoDownloadPreference();
setupKeepUpdatedPreference();
setupAutoDeletePreference();
+ setupVolumeReductionPreferences();
setupAuthentificationPreference();
setupEpisodeFilterPreference();
updateAutoDeleteSummary();
+ updateVolumeReductionValue();
updateAutoDownloadEnabled();
}).dispose();
}
@@ -114,6 +119,52 @@ public class FeedSettingsFragment extends PreferenceFragmentCompat {
}
}
+ private void setupVolumeReductionPreferences() {
+ ListPreference volumeReductionPreference = (ListPreference) findPreference("volumeReduction");
+ volumeReductionPreference.setOnPreferenceChangeListener((preference, newValue) -> {
+ switch ((String) newValue) {
+ case "off":
+ feedPreferences.setVolumeReductionSetting(VolumeReductionSetting.OFF);
+ break;
+ case "light":
+ feedPreferences.setVolumeReductionSetting(VolumeReductionSetting.LIGHT);
+ break;
+ case "heavy":
+ feedPreferences.setVolumeReductionSetting(VolumeReductionSetting.HEAVY);
+ break;
+ }
+ feed.savePreferences();
+ updateVolumeReductionValue();
+ sendVolumeReductionChangedIntent();
+
+ return false;
+ });
+ }
+
+ private void sendVolumeReductionChangedIntent() {
+ Context context = getContext();
+ Intent intent = new Intent(PlaybackService.ACTION_VOLUME_REDUCTION_CHANGED).setPackage(context.getPackageName());
+ intent.putExtra(PlaybackService.EXTRA_VOLUME_REDUCTION_AFFECTED_FEED, feed.getIdentifyingValue());
+ intent.putExtra(PlaybackService.EXTRA_VOLUME_REDUCTION_SETTING, feedPreferences.getVolumeReductionSetting());
+ context.sendBroadcast(intent);
+ }
+
+ private void updateVolumeReductionValue() {
+ ListPreference volumeReductionPreference = (ListPreference) findPreference("volumeReduction");
+
+ switch (feedPreferences.getVolumeReductionSetting()) {
+ case OFF:
+ volumeReductionPreference.setValue("off");
+ break;
+ case LIGHT:
+ volumeReductionPreference.setValue("light");
+ break;
+ case HEAVY:
+ volumeReductionPreference.setValue("heavy");
+ break;
+ }
+ }
+
private void setupKeepUpdatedPreference() {
SwitchPreference pref = (SwitchPreference) findPreference("keepUpdated");