Hide irrelevant options for local feeds
This commit is contained in:
parent
bce1fb9513
commit
4996d46851
@ -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 =
|
||||
@ -117,11 +121,20 @@ public class FeedSettingsFragment extends Fragment {
|
||||
return 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:
|
||||
|
@ -44,7 +44,9 @@
|
||||
android:defaultValue="off"
|
||||
android:key="volumeReduction"/>
|
||||
|
||||
<PreferenceCategory android:title="@string/auto_download_settings_label">
|
||||
<PreferenceCategory
|
||||
android:title="@string/auto_download_settings_label"
|
||||
android:key="autoDownloadCategory">
|
||||
<SwitchPreferenceCompat
|
||||
android:key="autoDownload"
|
||||
android:title="@string/auto_download_label"/>
|
||||
|
Loading…
x
Reference in New Issue
Block a user