summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/fragment/FeedSettingsFragment.java
diff options
context:
space:
mode:
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.java34
1 files changed, 27 insertions, 7 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 a82c60d6c..31abd4c7b 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/FeedSettingsFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/FeedSettingsFragment.java
@@ -15,6 +15,7 @@ import androidx.fragment.app.Fragment;
import androidx.preference.ListPreference;
import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.SwitchPreferenceCompat;
+import androidx.recyclerview.widget.RecyclerView;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.core.dialog.ConfirmationDialog;
import de.danoeh.antennapod.core.event.settings.SkipIntroEndingChangedEvent;
@@ -100,6 +101,9 @@ public class FeedSettingsFragment extends Fragment {
public static class FeedSettingsPreferenceFragment extends PreferenceFragmentCompat {
private static final CharSequence PREF_EPISODE_FILTER = "episodeFilter";
private static final CharSequence PREF_SCREEN = "feedSettingsScreen";
+ private static final CharSequence PREF_AUTHENTICATION = "authentication";
+ private static final CharSequence PREF_AUTO_DELETE = "autoDelete";
+ private static final CharSequence PREF_CATEGORY_AUTO_DOWNLOAD = "autoDownloadCategory";
private static final String PREF_FEED_PLAYBACK_SPEED = "feedPlaybackSpeed";
private static final String PREF_AUTO_SKIP = "feedAutoSkip";
private static final DecimalFormat SPEED_FORMAT =
@@ -118,10 +122,19 @@ public class FeedSettingsFragment extends Fragment {
}
@Override
+ public RecyclerView onCreateRecyclerView (LayoutInflater inflater, ViewGroup parent, Bundle state) {
+ final RecyclerView view = super.onCreateRecyclerView(inflater, parent, state);
+ // To prevent transition animation because of summary update
+ view.setItemAnimator(null);
+ view.setLayoutAnimation(null);
+ return view;
+ }
+
+ @Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
addPreferencesFromResource(R.xml.feed_settings);
- findPreference(PREF_SCREEN).setEnabled(false);
- setupAutoDownloadGlobalPreference(); // To prevent transition animation because of summary update
+ // To prevent displaying partially loaded data
+ findPreference(PREF_SCREEN).setVisible(false);
long feedId = getArguments().getLong(EXTRA_FEED_ID);
disposable = Maybe.create((MaybeOnSubscribe<Feed>) emitter -> {
@@ -138,6 +151,7 @@ public class FeedSettingsFragment extends Fragment {
feed = result;
feedPreferences = feed.getPreferences();
+ setupAutoDownloadGlobalPreference();
setupAutoDownloadPreference();
setupKeepUpdatedPreference();
setupAutoDeletePreference();
@@ -151,7 +165,14 @@ public class FeedSettingsFragment extends Fragment {
updateVolumeReductionValue();
updateAutoDownloadEnabled();
updatePlaybackSpeedPreference();
- findPreference(PREF_SCREEN).setEnabled(true);
+
+ if (feed.isLocalFeed()) {
+ findPreference(PREF_AUTHENTICATION).setVisible(false);
+ findPreference(PREF_AUTO_DELETE).setVisible(false);
+ findPreference(PREF_CATEGORY_AUTO_DOWNLOAD).setVisible(false);
+ }
+
+ findPreference(PREF_SCREEN).setVisible(true);
}, error -> Log.d(TAG, Log.getStackTraceString(error)), () -> { });
}
@@ -222,7 +243,7 @@ public class FeedSettingsFragment extends Fragment {
}
private void setupAuthentificationPreference() {
- findPreference("authentication").setOnPreferenceClickListener(preference -> {
+ findPreference(PREF_AUTHENTICATION).setOnPreferenceClickListener(preference -> {
new AuthenticationDialog(getContext(),
R.string.authentication_label, true,
feedPreferences.getUsername(), feedPreferences.getPassword()) {
@@ -238,8 +259,7 @@ public class FeedSettingsFragment extends Fragment {
}
private void setupAutoDeletePreference() {
- ListPreference autoDeletePreference = findPreference("autoDelete");
- autoDeletePreference.setOnPreferenceChangeListener((preference, newValue) -> {
+ findPreference(PREF_AUTO_DELETE).setOnPreferenceChangeListener((preference, newValue) -> {
switch ((String) newValue) {
case "global":
feedPreferences.setAutoDeleteAction(FeedPreferences.AutoDeleteAction.GLOBAL);
@@ -265,7 +285,7 @@ public class FeedSettingsFragment extends Fragment {
}
private void updateAutoDeleteSummary() {
- ListPreference autoDeletePreference = findPreference("autoDelete");
+ ListPreference autoDeletePreference = findPreference(PREF_AUTO_DELETE);
switch (feedPreferences.getAutoDeleteAction()) {
case GLOBAL: