diff options
Diffstat (limited to 'app/src/main')
4 files changed, 80 insertions, 53 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/PreferenceActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/PreferenceActivity.java index 5fe5bc334..271fc667d 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/PreferenceActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/PreferenceActivity.java @@ -5,6 +5,7 @@ import android.content.Intent; import android.os.Bundle; import android.preference.Preference; import android.preference.PreferenceFragment; +import android.preference.PreferenceScreen; import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; import android.view.Menu; @@ -41,6 +42,11 @@ public class PreferenceActivity extends AppCompatActivity { } @Override + public PreferenceScreen getPreferenceScreen() { + return fragment.getPreferenceScreen(); + } + + @Override public Activity getActivity() { return PreferenceActivity.this; } @@ -135,6 +141,8 @@ public class PreferenceActivity extends AppCompatActivity { switch (preferences) { case R.xml.preferences_downloads: return R.string.downloads_label; + case R.xml.preferences_autodownload: + return R.string.pref_automatic_download_title; case R.xml.preferences_playback: return R.string.playback_pref; case R.xml.preferences_storage: diff --git a/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java b/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java index 407ab0bdb..58ddc07c7 100644 --- a/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java +++ b/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceController.java @@ -22,6 +22,7 @@ import android.preference.CheckBoxPreference; import android.preference.EditTextPreference; import android.preference.ListPreference; import android.preference.Preference; +import android.preference.PreferenceCategory; import android.preference.PreferenceFragment; import android.preference.PreferenceManager; import android.preference.PreferenceScreen; @@ -166,6 +167,9 @@ public class PreferenceController implements SharedPreferences.OnSharedPreferenc break; case R.xml.preferences_downloads: setupDownloadsScreen(); + break; + case R.xml.preferences_autodownload: + setupAutoDownloadScreen(); buildAutodownloadSelectedNetworsPreference(); setSelectedNetworksEnabled(UserPreferences.isEnableAutodownloadWifiFilter()); buildEpisodeCleanupPreference(); @@ -398,12 +402,7 @@ public class PreferenceController implements SharedPreferences.OnSharedPreferenc } } - private void setupDownloadsScreen() { - ui.findPreference(UserPreferences.PREF_UPDATE_INTERVAL) - .setOnPreferenceClickListener(preference -> { - showUpdateIntervalTimePreferencesDialog(); - return true; - }); + private void setupAutoDownloadScreen() { ui.findPreference(UserPreferences.PREF_ENABLE_AUTODL).setOnPreferenceChangeListener( (preference, newValue) -> { if (newValue instanceof Boolean) { @@ -426,6 +425,26 @@ public class PreferenceController implements SharedPreferences.OnSharedPreferenc } } ); + ui.findPreference(UserPreferences.PREF_EPISODE_CACHE_SIZE) + .setOnPreferenceChangeListener( + (preference, o) -> { + if (o instanceof String) { + setEpisodeCacheSizeText(UserPreferences.readEpisodeCacheSize((String) o)); + } + return true; + } + ); + } + + private void setupDownloadsScreen() { + final Activity activity = ui.getActivity(); + ui.findPreference(AUTO_DL_PREF_SCREEN).setOnPreferenceClickListener(preference -> + openScreen(R.xml.preferences_autodownload, activity)); + ui.findPreference(UserPreferences.PREF_UPDATE_INTERVAL) + .setOnPreferenceClickListener(preference -> { + showUpdateIntervalTimePreferencesDialog(); + return true; + }); ui.findPreference(UserPreferences.PREF_PARALLEL_DOWNLOADS) .setOnPreferenceChangeListener( (preference, o) -> { @@ -471,15 +490,6 @@ public class PreferenceController implements SharedPreferences.OnSharedPreferenc } } }); - ui.findPreference(UserPreferences.PREF_EPISODE_CACHE_SIZE) - .setOnPreferenceChangeListener( - (preference, o) -> { - if (o instanceof String) { - setEpisodeCacheSizeText(UserPreferences.readEpisodeCacheSize((String) o)); - } - return true; - } - ); ui.findPreference(PREF_PROXY).setOnPreferenceClickListener(preference -> { ProxyDialog dialog = new ProxyDialog(ui.getActivity()); dialog.createDialog().show(); @@ -614,6 +624,8 @@ public class PreferenceController implements SharedPreferences.OnSharedPreferenc case R.xml.preferences_downloads: setUpdateIntervalText(); setParallelDownloadsText(UserPreferences.getParallelDownloads()); + break; + case R.xml.preferences_autodownload: setEpisodeCacheSizeText(UserPreferences.getEpisodeCacheSize()); checkAutodownloadItemVisibility(); break; @@ -897,7 +909,7 @@ public class PreferenceController implements SharedPreferences.OnSharedPreferenc selectedNetworks = new CheckBoxPreference[networks.size()]; List<String> prefValues = Arrays.asList(UserPreferences .getAutodownloadSelectedNetworks()); - PreferenceScreen prefScreen = (PreferenceScreen) ui.findPreference(PreferenceController.AUTO_DL_PREF_SCREEN); + PreferenceScreen prefScreen = ui.getPreferenceScreen(); Preference.OnPreferenceClickListener clickListener = preference -> { if (preference instanceof CheckBoxPreference) { String key = preference.getKey(); @@ -944,7 +956,7 @@ public class PreferenceController implements SharedPreferences.OnSharedPreferenc private void clearAutodownloadSelectedNetworsPreference() { if (selectedNetworks != null) { - PreferenceScreen prefScreen = (PreferenceScreen) ui.findPreference(PreferenceController.AUTO_DL_PREF_SCREEN); + PreferenceScreen prefScreen = ui.getPreferenceScreen(); for (CheckBoxPreference network : selectedNetworks) { if (network != null) { @@ -1116,6 +1128,8 @@ public class PreferenceController implements SharedPreferences.OnSharedPreferenc */ Preference findPreference(CharSequence key); + PreferenceScreen getPreferenceScreen(); + Activity getActivity(); } } diff --git a/app/src/main/res/xml/preferences_autodownload.xml b/app/src/main/res/xml/preferences_autodownload.xml new file mode 100644 index 000000000..2257db3eb --- /dev/null +++ b/app/src/main/res/xml/preferences_autodownload.xml @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="utf-8"?> +<PreferenceScreen + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto"> + + <de.danoeh.antennapod.preferences.SwitchCompatPreference + android:key="prefEnableAutoDl" + android:title="@string/pref_automatic_download_title" + android:defaultValue="false"/> + <com.afollestad.materialdialogs.prefs.MaterialListPreference + android:defaultValue="25" + android:entries="@array/episode_cache_size_entries" + android:key="prefEpisodeCacheSize" + android:title="@string/pref_episode_cache_title" + android:entryValues="@array/episode_cache_size_values" + app:useStockLayout="true"/> + <com.afollestad.materialdialogs.prefs.MaterialListPreference + android:defaultValue="-1" + android:entries="@array/episode_cleanup_entries" + android:key="prefEpisodeCleanup" + android:title="@string/pref_episode_cleanup_title" + android:summary="@string/pref_episode_cleanup_summary" + android:entryValues="@array/episode_cleanup_values" + app:useStockLayout="true"/> + <de.danoeh.antennapod.preferences.SwitchCompatPreference + android:key="prefEnableAutoDownloadOnBattery" + android:title="@string/pref_automatic_download_on_battery_title" + android:summary="@string/pref_automatic_download_on_battery_sum" + android:defaultValue="true"/> + <de.danoeh.antennapod.preferences.SwitchCompatPreference + android:key="prefEnableAutoDownloadOnMobile" + android:title="@string/pref_autodl_allow_on_mobile_title" + android:summary="@string/pref_autodl_allow_on_mobile_sum" + android:defaultValue="false"/> + <de.danoeh.antennapod.preferences.SwitchCompatPreference + android:key="prefEnableAutoDownloadWifiFilter" + android:title="@string/pref_autodl_wifi_filter_title" + android:summary="@string/pref_autodl_wifi_filter_sum"/> +</PreferenceScreen> diff --git a/app/src/main/res/xml/preferences_downloads.xml b/app/src/main/res/xml/preferences_downloads.xml index 2e9b8fcdb..d084a614c 100644 --- a/app/src/main/res/xml/preferences_downloads.xml +++ b/app/src/main/res/xml/preferences_downloads.xml @@ -23,44 +23,10 @@ android:key="prefAutoUpdateIntervall" android:summary="@string/pref_autoUpdateIntervallOrTime_sum" android:title="@string/pref_autoUpdateIntervallOrTime_title"/> - <PreferenceScreen + <Preference android:summary="@string/pref_automatic_download_sum" android:key="prefAutoDownloadSettings" - android:title="@string/pref_automatic_download_title"> - <de.danoeh.antennapod.preferences.SwitchCompatPreference - android:key="prefEnableAutoDl" - android:title="@string/pref_automatic_download_title" - android:defaultValue="false"/> - <com.afollestad.materialdialogs.prefs.MaterialListPreference - android:defaultValue="25" - android:entries="@array/episode_cache_size_entries" - android:key="prefEpisodeCacheSize" - android:title="@string/pref_episode_cache_title" - android:entryValues="@array/episode_cache_size_values" - app:useStockLayout="true"/> - <com.afollestad.materialdialogs.prefs.MaterialListPreference - android:defaultValue="-1" - android:entries="@array/episode_cleanup_entries" - android:key="prefEpisodeCleanup" - android:title="@string/pref_episode_cleanup_title" - android:summary="@string/pref_episode_cleanup_summary" - android:entryValues="@array/episode_cleanup_values" - app:useStockLayout="true"/> - <de.danoeh.antennapod.preferences.SwitchCompatPreference - android:key="prefEnableAutoDownloadOnBattery" - android:title="@string/pref_automatic_download_on_battery_title" - android:summary="@string/pref_automatic_download_on_battery_sum" - android:defaultValue="true"/> - <de.danoeh.antennapod.preferences.SwitchCompatPreference - android:key="prefEnableAutoDownloadOnMobile" - android:title="@string/pref_autodl_allow_on_mobile_title" - android:summary="@string/pref_autodl_allow_on_mobile_sum" - android:defaultValue="false"/> - <de.danoeh.antennapod.preferences.SwitchCompatPreference - android:key="prefEnableAutoDownloadWifiFilter" - android:title="@string/pref_autodl_wifi_filter_title" - android:summary="@string/pref_autodl_wifi_filter_sum"/> - </PreferenceScreen> + android:title="@string/pref_automatic_download_title" /> </PreferenceCategory> <PreferenceCategory android:title="@string/download_pref_details"> |