diff options
author | ByteHamster <info@bytehamster.com> | 2020-09-13 23:40:29 +0200 |
---|---|---|
committer | ByteHamster <info@bytehamster.com> | 2020-09-13 23:40:29 +0200 |
commit | 4996d4685197d8a7e7813a88e19a183c27c9a794 (patch) | |
tree | 90ab6af3b39fdd556fe04ba8c81adf479bb6296e /app/src/main/java/de/danoeh | |
parent | bce1fb9513e5b57a3f38802e532a010bd31d7244 (diff) | |
download | AntennaPod-4996d4685197d8a7e7813a88e19a183c27c9a794.zip |
Hide irrelevant options for local feeds
Diffstat (limited to 'app/src/main/java/de/danoeh')
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/fragment/FeedSettingsFragment.java | 34 |
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: |