diff --git a/app/src/main/java/de/danoeh/antennapod/ui/screen/feed/preferences/FeedSettingsPreferenceFragment.java b/app/src/main/java/de/danoeh/antennapod/ui/screen/feed/preferences/FeedSettingsPreferenceFragment.java index 20a22d044..d64612d2e 100644 --- a/app/src/main/java/de/danoeh/antennapod/ui/screen/feed/preferences/FeedSettingsPreferenceFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/ui/screen/feed/preferences/FeedSettingsPreferenceFragment.java @@ -22,6 +22,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.google.android.material.dialog.MaterialAlertDialogBuilder; import de.danoeh.antennapod.R; import de.danoeh.antennapod.databinding.PlaybackSpeedFeedSettingDialogBinding; +import de.danoeh.antennapod.event.MessageEvent; import de.danoeh.antennapod.event.settings.SkipIntroEndingChangedEvent; import de.danoeh.antennapod.event.settings.SpeedPresetChangedEvent; import de.danoeh.antennapod.event.settings.VolumeAdaptionChangedEvent; @@ -213,6 +214,14 @@ public class FeedSettingsPreferenceFragment extends PreferenceFragmentCompat { EventBus.getDefault().post(new VolumeAdaptionChangedEvent(newSetting, feed.getId())); return false; }); + findPreference(PREF_NEW_EPISODES_ACTION).setOnPreferenceClickListener(preference -> { + boolean isAutoDownload = feed.getPreferences().isAutoDownload(UserPreferences.isEnableAutodownloadGlobal()); + if (isAutoDownload && !feed.isLocalFeed()) { + EventBus.getDefault().post(new MessageEvent(getString(R.string.feed_new_episodes_action_snackbar))); + return true; + } + return false; + }); findPreference(PREF_NEW_EPISODES_ACTION).setOnPreferenceChangeListener((preference, newValue) -> { int code = Integer.parseInt((String) newValue); feedPreferences.setNewEpisodesAction(FeedPreferences.NewEpisodesAction.fromCode(code)); @@ -284,7 +293,6 @@ public class FeedSettingsPreferenceFragment extends PreferenceFragmentCompat { ListPreference newEpisodesAction = findPreference(PREF_NEW_EPISODES_ACTION); boolean isAutoDownload = feed.getPreferences().isAutoDownload(UserPreferences.isEnableAutodownloadGlobal()); if (isAutoDownload && !feed.isLocalFeed()) { - newEpisodesAction.setEnabled(false); newEpisodesAction.setSummary(R.string.feed_new_episodes_action_summary_autodownload); return; } diff --git a/ui/i18n/src/main/res/values/strings.xml b/ui/i18n/src/main/res/values/strings.xml index 93c079172..03e313575 100644 --- a/ui/i18n/src/main/res/values/strings.xml +++ b/ui/i18n/src/main/res/values/strings.xml @@ -159,6 +159,7 @@ Add to queue Nothing Automatic download enabled. Episodes are added to the inbox and then moved to the queue once downloaded. + Cannot be changed when automatic download is enabled. Never When not favorited When not in queue diff --git a/ui/preferences/src/main/java/de/danoeh/antennapod/ui/preferences/preference/MaterialListPreference.java b/ui/preferences/src/main/java/de/danoeh/antennapod/ui/preferences/preference/MaterialListPreference.java index a1264c569..103b3be40 100644 --- a/ui/preferences/src/main/java/de/danoeh/antennapod/ui/preferences/preference/MaterialListPreference.java +++ b/ui/preferences/src/main/java/de/danoeh/antennapod/ui/preferences/preference/MaterialListPreference.java @@ -17,6 +17,9 @@ public class MaterialListPreference extends ListPreference { @Override protected void onClick() { + if (getOnPreferenceClickListener() != null && getOnPreferenceClickListener().onPreferenceClick(this)) { + return; + } MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(getContext()); builder.setTitle(getTitle()); builder.setIcon(getDialogIcon());