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.ListPreference;
|
||||||
import androidx.preference.PreferenceFragmentCompat;
|
import androidx.preference.PreferenceFragmentCompat;
|
||||||
import androidx.preference.SwitchPreferenceCompat;
|
import androidx.preference.SwitchPreferenceCompat;
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
import de.danoeh.antennapod.R;
|
import de.danoeh.antennapod.R;
|
||||||
import de.danoeh.antennapod.core.dialog.ConfirmationDialog;
|
import de.danoeh.antennapod.core.dialog.ConfirmationDialog;
|
||||||
import de.danoeh.antennapod.core.event.settings.SkipIntroEndingChangedEvent;
|
import de.danoeh.antennapod.core.event.settings.SkipIntroEndingChangedEvent;
|
||||||
@ -100,6 +101,9 @@ public class FeedSettingsFragment extends Fragment {
|
|||||||
public static class FeedSettingsPreferenceFragment extends PreferenceFragmentCompat {
|
public static class FeedSettingsPreferenceFragment extends PreferenceFragmentCompat {
|
||||||
private static final CharSequence PREF_EPISODE_FILTER = "episodeFilter";
|
private static final CharSequence PREF_EPISODE_FILTER = "episodeFilter";
|
||||||
private static final CharSequence PREF_SCREEN = "feedSettingsScreen";
|
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_FEED_PLAYBACK_SPEED = "feedPlaybackSpeed";
|
||||||
private static final String PREF_AUTO_SKIP = "feedAutoSkip";
|
private static final String PREF_AUTO_SKIP = "feedAutoSkip";
|
||||||
private static final DecimalFormat SPEED_FORMAT =
|
private static final DecimalFormat SPEED_FORMAT =
|
||||||
@ -117,11 +121,20 @@ public class FeedSettingsFragment extends Fragment {
|
|||||||
return 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
|
@Override
|
||||||
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||||
addPreferencesFromResource(R.xml.feed_settings);
|
addPreferencesFromResource(R.xml.feed_settings);
|
||||||
findPreference(PREF_SCREEN).setEnabled(false);
|
// To prevent displaying partially loaded data
|
||||||
setupAutoDownloadGlobalPreference(); // To prevent transition animation because of summary update
|
findPreference(PREF_SCREEN).setVisible(false);
|
||||||
|
|
||||||
long feedId = getArguments().getLong(EXTRA_FEED_ID);
|
long feedId = getArguments().getLong(EXTRA_FEED_ID);
|
||||||
disposable = Maybe.create((MaybeOnSubscribe<Feed>) emitter -> {
|
disposable = Maybe.create((MaybeOnSubscribe<Feed>) emitter -> {
|
||||||
@ -138,6 +151,7 @@ public class FeedSettingsFragment extends Fragment {
|
|||||||
feed = result;
|
feed = result;
|
||||||
feedPreferences = feed.getPreferences();
|
feedPreferences = feed.getPreferences();
|
||||||
|
|
||||||
|
setupAutoDownloadGlobalPreference();
|
||||||
setupAutoDownloadPreference();
|
setupAutoDownloadPreference();
|
||||||
setupKeepUpdatedPreference();
|
setupKeepUpdatedPreference();
|
||||||
setupAutoDeletePreference();
|
setupAutoDeletePreference();
|
||||||
@ -151,7 +165,14 @@ public class FeedSettingsFragment extends Fragment {
|
|||||||
updateVolumeReductionValue();
|
updateVolumeReductionValue();
|
||||||
updateAutoDownloadEnabled();
|
updateAutoDownloadEnabled();
|
||||||
updatePlaybackSpeedPreference();
|
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)), () -> { });
|
}, error -> Log.d(TAG, Log.getStackTraceString(error)), () -> { });
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -222,7 +243,7 @@ public class FeedSettingsFragment extends Fragment {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void setupAuthentificationPreference() {
|
private void setupAuthentificationPreference() {
|
||||||
findPreference("authentication").setOnPreferenceClickListener(preference -> {
|
findPreference(PREF_AUTHENTICATION).setOnPreferenceClickListener(preference -> {
|
||||||
new AuthenticationDialog(getContext(),
|
new AuthenticationDialog(getContext(),
|
||||||
R.string.authentication_label, true,
|
R.string.authentication_label, true,
|
||||||
feedPreferences.getUsername(), feedPreferences.getPassword()) {
|
feedPreferences.getUsername(), feedPreferences.getPassword()) {
|
||||||
@ -238,8 +259,7 @@ public class FeedSettingsFragment extends Fragment {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void setupAutoDeletePreference() {
|
private void setupAutoDeletePreference() {
|
||||||
ListPreference autoDeletePreference = findPreference("autoDelete");
|
findPreference(PREF_AUTO_DELETE).setOnPreferenceChangeListener((preference, newValue) -> {
|
||||||
autoDeletePreference.setOnPreferenceChangeListener((preference, newValue) -> {
|
|
||||||
switch ((String) newValue) {
|
switch ((String) newValue) {
|
||||||
case "global":
|
case "global":
|
||||||
feedPreferences.setAutoDeleteAction(FeedPreferences.AutoDeleteAction.GLOBAL);
|
feedPreferences.setAutoDeleteAction(FeedPreferences.AutoDeleteAction.GLOBAL);
|
||||||
@ -265,7 +285,7 @@ public class FeedSettingsFragment extends Fragment {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void updateAutoDeleteSummary() {
|
private void updateAutoDeleteSummary() {
|
||||||
ListPreference autoDeletePreference = findPreference("autoDelete");
|
ListPreference autoDeletePreference = findPreference(PREF_AUTO_DELETE);
|
||||||
|
|
||||||
switch (feedPreferences.getAutoDeleteAction()) {
|
switch (feedPreferences.getAutoDeleteAction()) {
|
||||||
case GLOBAL:
|
case GLOBAL:
|
||||||
|
@ -44,7 +44,9 @@
|
|||||||
android:defaultValue="off"
|
android:defaultValue="off"
|
||||||
android:key="volumeReduction"/>
|
android:key="volumeReduction"/>
|
||||||
|
|
||||||
<PreferenceCategory android:title="@string/auto_download_settings_label">
|
<PreferenceCategory
|
||||||
|
android:title="@string/auto_download_settings_label"
|
||||||
|
android:key="autoDownloadCategory">
|
||||||
<SwitchPreferenceCompat
|
<SwitchPreferenceCompat
|
||||||
android:key="autoDownload"
|
android:key="autoDownload"
|
||||||
android:title="@string/auto_download_label"/>
|
android:title="@string/auto_download_label"/>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user