summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/fragment/FeedSettingsFragment.java
diff options
context:
space:
mode:
authorJonas Kalderstam <jonas@cowboyprogrammer.org>2019-09-12 00:50:07 +0200
committerJonas Kalderstam <jonas@cowboyprogrammer.org>2019-09-12 00:50:07 +0200
commit4054c330acce74976a3e42e7ccc1f0d1dcb69c14 (patch)
tree5a04d66cbb52b26889f5d893f022845b2604eaf6 /app/src/main/java/de/danoeh/antennapod/fragment/FeedSettingsFragment.java
parentada0101b0754cf4b34a1719f90f0b20571dab8db (diff)
downloadAntennaPod-4054c330acce74976a3e42e7ccc1f0d1dcb69c14.zip
Added per-feed playback speed setting
Fixes #375
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/fragment/FeedSettingsFragment.java')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/FeedSettingsFragment.java43
1 files changed, 43 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 4fb3d90f5..56d58d1db 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/FeedSettingsFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/FeedSettingsFragment.java
@@ -22,6 +22,7 @@ import static de.danoeh.antennapod.activity.FeedSettingsActivity.EXTRA_FEED_ID;
public class FeedSettingsFragment extends PreferenceFragmentCompat {
private static final CharSequence PREF_EPISODE_FILTER = "episodeFilter";
+ private static final String PREF_FEED_PLAYBACK_SPEED = "feedPlaybackSpeed";
private Feed feed;
private FeedPreferences feedPreferences;
@@ -40,12 +41,41 @@ public class FeedSettingsFragment extends PreferenceFragmentCompat {
setupAutoDeletePreference();
setupAuthentificationPreference();
setupEpisodeFilterPreference();
+ setupPlaybackSpeedPreference();
updateAutoDeleteSummary();
updateAutoDownloadEnabled();
+ updatePlaybackSpeedPreference();
}).dispose();
}
+ private void setupPlaybackSpeedPreference() {
+ ListPreference feedPlaybackSpeedPreference = (ListPreference) findPreference(PREF_FEED_PLAYBACK_SPEED);
+
+ String[] speeds = UserPreferences.getPlaybackSpeedArray();
+
+ String[] values = new String[speeds.length + 1];
+ values[0] = "global";
+
+ String[] entries = new String[speeds.length + 1];
+ entries[0] = getString(R.string.feed_auto_download_global);
+
+ for (int i = 0; i < speeds.length; i++) {
+ values[i + 1] = speeds[i];
+ entries[i + 1] = speeds[i];
+ }
+
+ feedPlaybackSpeedPreference.setEntryValues(values);
+ feedPlaybackSpeedPreference.setEntries(entries);
+
+ feedPlaybackSpeedPreference.setOnPreferenceChangeListener((preference, newValue) -> {
+ feedPreferences.setFeedPlaybackSpeed((String) newValue);
+ feed.savePreferences();
+ updatePlaybackSpeedPreference();
+ return false;
+ });
+ }
+
private void setupEpisodeFilterPreference() {
findPreference(PREF_EPISODE_FILTER).setOnPreferenceClickListener(preference -> {
new EpisodeFilterDialog(getContext(), feedPreferences.getFilter()) {
@@ -95,6 +125,19 @@ public class FeedSettingsFragment extends PreferenceFragmentCompat {
});
}
+ private void updatePlaybackSpeedPreference() {
+ ListPreference feedPlaybackSpeedPreference = (ListPreference) findPreference(PREF_FEED_PLAYBACK_SPEED);
+
+ String summary = feedPreferences.getFeedPlaybackSpeed();
+
+ feedPlaybackSpeedPreference.setValue(summary);
+ if (summary.equals("global")) {
+ summary = getString(R.string.feed_auto_download_global);
+ }
+
+ feedPlaybackSpeedPreference.setSummary(summary);
+ }
+
private void updateAutoDeleteSummary() {
ListPreference autoDeletePreference = (ListPreference) findPreference("autoDelete");