Replace Network+Storage preferences with Downloads (#6434)

This commit is contained in:
ByteHamster 2023-04-15 17:33:21 +02:00 committed by GitHub
parent 84e1ff248f
commit 8396a34670
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 129 additions and 192 deletions

View File

@ -193,7 +193,7 @@ public class PreferencesTest {
@Test
public void testAutoDelete() {
clickPreference(R.string.storage_pref);
clickPreference(R.string.downloads_pref);
final boolean autoDelete = UserPreferences.isAutoDelete();
onView(withText(R.string.pref_auto_delete_title)).perform(click());
Awaitility.await().atMost(1000, MILLISECONDS)
@ -225,7 +225,7 @@ public class PreferencesTest {
@Test
public void testSetSequentialDownload() {
clickPreference(R.string.network_pref);
clickPreference(R.string.downloads_pref);
clickPreference(R.string.pref_parallel_downloads_title);
onView(isRoot()).perform(waitForView(withClassName(endsWith("EditText")), 1000));
onView(withClassName(endsWith("EditText"))).perform(replaceText("1"));
@ -236,7 +236,7 @@ public class PreferencesTest {
@Test
public void testSetParallelDownloads() {
clickPreference(R.string.network_pref);
clickPreference(R.string.downloads_pref);
clickPreference(R.string.pref_parallel_downloads_title);
onView(isRoot()).perform(waitForView(withClassName(endsWith("EditText")), 1000));
onView(withClassName(endsWith("EditText"))).perform(replaceText("10"));
@ -248,7 +248,7 @@ public class PreferencesTest {
@Test
public void testSetParallelDownloadsInvalidInput() {
clickPreference(R.string.network_pref);
clickPreference(R.string.downloads_pref);
clickPreference(R.string.pref_parallel_downloads_title);
onView(isRoot()).perform(waitForView(withClassName(endsWith("EditText")), 1000));
onView(withClassName(endsWith("EditText"))).perform(replaceText("0"));
@ -263,7 +263,7 @@ public class PreferencesTest {
String[] values = res.getStringArray(R.array.episode_cache_size_values);
String entry = entries[entries.length / 2];
final int value = Integer.parseInt(values[values.length / 2]);
clickPreference(R.string.network_pref);
clickPreference(R.string.downloads_pref);
clickPreference(R.string.pref_automatic_download_title);
clickPreference(R.string.pref_episode_cache_title);
onView(isRoot()).perform(waitForView(withText(entry), 1000));
@ -279,7 +279,7 @@ public class PreferencesTest {
String minEntry = entries[0];
final int minValue = Integer.parseInt(values[0]);
clickPreference(R.string.network_pref);
clickPreference(R.string.downloads_pref);
clickPreference(R.string.pref_automatic_download_title);
clickPreference(R.string.pref_episode_cache_title);
onView(withId(R.id.select_dialog_listview)).perform(swipeDown());
@ -294,7 +294,7 @@ public class PreferencesTest {
String[] values = res.getStringArray(R.array.episode_cache_size_values);
String maxEntry = entries[entries.length - 1];
final int maxValue = Integer.parseInt(values[values.length - 1]);
onView(withText(R.string.network_pref)).perform(click());
onView(withText(R.string.downloads_pref)).perform(click());
onView(withText(R.string.pref_automatic_download_title)).perform(click());
onView(withText(R.string.pref_episode_cache_title)).perform(click());
onView(withId(R.id.select_dialog_listview)).perform(swipeUp());
@ -306,7 +306,7 @@ public class PreferencesTest {
@Test
public void testAutomaticDownload() {
final boolean automaticDownload = UserPreferences.isEnableAutodownload();
clickPreference(R.string.network_pref);
clickPreference(R.string.downloads_pref);
clickPreference(R.string.pref_automatic_download_title);
clickPreference(R.string.pref_automatic_download_title);
Awaitility.await().atMost(1000, MILLISECONDS)
@ -327,7 +327,7 @@ public class PreferencesTest {
@Test
public void testEpisodeCleanupFavoriteOnly() {
clickPreference(R.string.network_pref);
clickPreference(R.string.downloads_pref);
onView(withText(R.string.pref_automatic_download_title)).perform(click());
onView(withText(R.string.pref_episode_cleanup_title)).perform(click());
onView(withId(R.id.select_dialog_listview)).perform(swipeDown());
@ -338,7 +338,7 @@ public class PreferencesTest {
@Test
public void testEpisodeCleanupQueueOnly() {
clickPreference(R.string.network_pref);
clickPreference(R.string.downloads_pref);
onView(withText(R.string.pref_automatic_download_title)).perform(click());
onView(withText(R.string.pref_episode_cleanup_title)).perform(click());
onView(withId(R.id.select_dialog_listview)).perform(swipeDown());
@ -349,7 +349,7 @@ public class PreferencesTest {
@Test
public void testEpisodeCleanupNeverAlg() {
clickPreference(R.string.network_pref);
clickPreference(R.string.downloads_pref);
onView(withText(R.string.pref_automatic_download_title)).perform(click());
onView(withText(R.string.pref_episode_cleanup_title)).perform(click());
onView(withId(R.id.select_dialog_listview)).perform(swipeUp());
@ -360,7 +360,7 @@ public class PreferencesTest {
@Test
public void testEpisodeCleanupClassic() {
clickPreference(R.string.network_pref);
clickPreference(R.string.downloads_pref);
onView(withText(R.string.pref_automatic_download_title)).perform(click());
onView(withText(R.string.pref_episode_cleanup_title)).perform(click());
onView(withText(R.string.episode_cleanup_after_listening)).perform(click());
@ -377,7 +377,7 @@ public class PreferencesTest {
@Test
public void testEpisodeCleanupNumDays() {
clickPreference(R.string.network_pref);
clickPreference(R.string.downloads_pref);
clickPreference(R.string.pref_automatic_download_title);
clickPreference(R.string.pref_episode_cleanup_title);
String search = res.getQuantityString(R.plurals.episode_cleanup_days_after_listening, 3, 3);
@ -437,7 +437,7 @@ public class PreferencesTest {
@Test
public void testDeleteRemovesFromQueue() {
clickPreference(R.string.storage_pref);
clickPreference(R.string.downloads_pref);
if (!UserPreferences.shouldDeleteRemoveFromQueue()) {
clickPreference(R.string.pref_delete_removes_from_queue_title);
Awaitility.await().atMost(1000, MILLISECONDS)

View File

@ -23,10 +23,9 @@ import de.danoeh.antennapod.databinding.SettingsActivityBinding;
import de.danoeh.antennapod.fragment.preferences.AutoDownloadPreferencesFragment;
import de.danoeh.antennapod.fragment.preferences.ImportExportPreferencesFragment;
import de.danoeh.antennapod.fragment.preferences.MainPreferencesFragment;
import de.danoeh.antennapod.fragment.preferences.NetworkPreferencesFragment;
import de.danoeh.antennapod.fragment.preferences.DownloadsPreferencesFragment;
import de.danoeh.antennapod.fragment.preferences.NotificationPreferencesFragment;
import de.danoeh.antennapod.fragment.preferences.PlaybackPreferencesFragment;
import de.danoeh.antennapod.fragment.preferences.StoragePreferencesFragment;
import de.danoeh.antennapod.fragment.preferences.synchronization.SynchronizationPreferencesFragment;
import de.danoeh.antennapod.fragment.preferences.SwipePreferencesFragment;
import de.danoeh.antennapod.fragment.preferences.UserInterfacePreferencesFragment;
@ -69,10 +68,8 @@ public class PreferenceActivity extends AppCompatActivity implements SearchPrefe
if (screen == R.xml.preferences_user_interface) {
prefFragment = new UserInterfacePreferencesFragment();
} else if (screen == R.xml.preferences_network) {
prefFragment = new NetworkPreferencesFragment();
} else if (screen == R.xml.preferences_storage) {
prefFragment = new StoragePreferencesFragment();
} else if (screen == R.xml.preferences_downloads) {
prefFragment = new DownloadsPreferencesFragment();
} else if (screen == R.xml.preferences_import_export) {
prefFragment = new ImportExportPreferencesFragment();
} else if (screen == R.xml.preferences_autodownload) {
@ -90,14 +87,12 @@ public class PreferenceActivity extends AppCompatActivity implements SearchPrefe
}
public static int getTitleOfPage(int preferences) {
if (preferences == R.xml.preferences_network) {
return R.string.network_pref;
if (preferences == R.xml.preferences_downloads) {
return R.string.downloads_pref;
} else if (preferences == R.xml.preferences_autodownload) {
return R.string.pref_automatic_download_title;
} else if (preferences == R.xml.preferences_playback) {
return R.string.playback_pref;
} else if (preferences == R.xml.preferences_storage) {
return R.string.storage_pref;
} else if (preferences == R.xml.preferences_import_export) {
return R.string.import_export_pref;
} else if (preferences == R.xml.preferences_user_interface) {

View File

@ -8,25 +8,29 @@ import androidx.preference.PreferenceManager;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.activity.PreferenceActivity;
import de.danoeh.antennapod.core.util.download.FeedUpdateManager;
import de.danoeh.antennapod.dialog.ChooseDataFolderDialog;
import de.danoeh.antennapod.dialog.ProxyDialog;
import de.danoeh.antennapod.storage.preferences.UserPreferences;
import java.io.File;
public class NetworkPreferencesFragment extends PreferenceFragmentCompat
public class DownloadsPreferencesFragment extends PreferenceFragmentCompat
implements SharedPreferences.OnSharedPreferenceChangeListener {
private static final String PREF_SCREEN_AUTODL = "prefAutoDownloadSettings";
private static final String PREF_PROXY = "prefProxy";
private static final String PREF_CHOOSE_DATA_DIR = "prefChooseDataDir";
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
addPreferencesFromResource(R.xml.preferences_network);
addPreferencesFromResource(R.xml.preferences_downloads);
setupNetworkScreen();
}
@Override
public void onStart() {
super.onStart();
((PreferenceActivity) getActivity()).getSupportActionBar().setTitle(R.string.network_pref);
((PreferenceActivity) getActivity()).getSupportActionBar().setTitle(R.string.downloads_pref);
PreferenceManager.getDefaultSharedPreferences(getContext()).registerOnSharedPreferenceChangeListener(this);
}
@ -40,6 +44,7 @@ public class NetworkPreferencesFragment extends PreferenceFragmentCompat
public void onResume() {
super.onResume();
setParallelDownloadsText(UserPreferences.getParallelDownloads());
setDataFolderText();
}
private void setupNetworkScreen() {
@ -59,6 +64,13 @@ public class NetworkPreferencesFragment extends PreferenceFragmentCompat
dialog.show();
return true;
});
findPreference(PREF_CHOOSE_DATA_DIR).setOnPreferenceClickListener(preference -> {
ChooseDataFolderDialog.showDialog(getContext(), path -> {
UserPreferences.setDataFolder(path);
setDataFolderText();
});
return true;
});
}
private void setParallelDownloadsText(int downloads) {
@ -67,6 +79,13 @@ public class NetworkPreferencesFragment extends PreferenceFragmentCompat
findPreference(UserPreferences.PREF_PARALLEL_DOWNLOADS).setSummary(s);
}
private void setDataFolderText() {
File f = UserPreferences.getDataFolder(null);
if (f != null) {
findPreference(PREF_CHOOSE_DATA_DIR).setSummary(f.getAbsolutePath());
}
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
if (UserPreferences.PREF_UPDATE_INTERVAL.equals(key)) {

View File

@ -29,9 +29,9 @@ public class MainPreferencesFragment extends PreferenceFragmentCompat {
private static final String PREF_SCREEN_USER_INTERFACE = "prefScreenInterface";
private static final String PREF_SCREEN_PLAYBACK = "prefScreenPlayback";
private static final String PREF_SCREEN_NETWORK = "prefScreenNetwork";
private static final String PREF_SCREEN_DOWNLOADS = "prefScreenDownloads";
private static final String PREF_SCREEN_IMPORT_EXPORT = "prefScreenImportExport";
private static final String PREF_SCREEN_SYNCHRONIZATION = "prefScreenSynchronization";
private static final String PREF_SCREEN_STORAGE = "prefScreenStorage";
private static final String PREF_DOCUMENTATION = "prefDocumentation";
private static final String PREF_VIEW_FORUM = "prefViewForum";
private static final String PREF_SEND_BUG_REPORT = "prefSendBugReport";
@ -88,16 +88,16 @@ public class MainPreferencesFragment extends PreferenceFragmentCompat {
((PreferenceActivity) getActivity()).openScreen(R.xml.preferences_playback);
return true;
});
findPreference(PREF_SCREEN_NETWORK).setOnPreferenceClickListener(preference -> {
((PreferenceActivity) getActivity()).openScreen(R.xml.preferences_network);
findPreference(PREF_SCREEN_DOWNLOADS).setOnPreferenceClickListener(preference -> {
((PreferenceActivity) getActivity()).openScreen(R.xml.preferences_downloads);
return true;
});
findPreference(PREF_SCREEN_SYNCHRONIZATION).setOnPreferenceClickListener(preference -> {
((PreferenceActivity) getActivity()).openScreen(R.xml.preferences_synchronization);
return true;
});
findPreference(PREF_SCREEN_STORAGE).setOnPreferenceClickListener(preference -> {
((PreferenceActivity) getActivity()).openScreen(R.xml.preferences_storage);
findPreference(PREF_SCREEN_IMPORT_EXPORT).setOnPreferenceClickListener(preference -> {
((PreferenceActivity) getActivity()).openScreen(R.xml.preferences_import_export);
return true;
});
findPreference(PREF_NOTIFICATION).setOnPreferenceClickListener(preference -> {
@ -155,15 +155,12 @@ public class MainPreferencesFragment extends PreferenceFragmentCompat {
.addBreadcrumb(PreferenceActivity.getTitleOfPage(R.xml.preferences_user_interface));
config.index(R.xml.preferences_playback)
.addBreadcrumb(PreferenceActivity.getTitleOfPage(R.xml.preferences_playback));
config.index(R.xml.preferences_network)
.addBreadcrumb(PreferenceActivity.getTitleOfPage(R.xml.preferences_network));
config.index(R.xml.preferences_storage)
.addBreadcrumb(PreferenceActivity.getTitleOfPage(R.xml.preferences_storage));
config.index(R.xml.preferences_downloads)
.addBreadcrumb(PreferenceActivity.getTitleOfPage(R.xml.preferences_downloads));
config.index(R.xml.preferences_import_export)
.addBreadcrumb(PreferenceActivity.getTitleOfPage(R.xml.preferences_storage))
.addBreadcrumb(PreferenceActivity.getTitleOfPage(R.xml.preferences_import_export));
config.index(R.xml.preferences_autodownload)
.addBreadcrumb(PreferenceActivity.getTitleOfPage(R.xml.preferences_network))
.addBreadcrumb(PreferenceActivity.getTitleOfPage(R.xml.preferences_downloads))
.addBreadcrumb(R.string.automation)
.addBreadcrumb(PreferenceActivity.getTitleOfPage(R.xml.preferences_autodownload));
config.index(R.xml.preferences_synchronization)

View File

@ -1,58 +0,0 @@
package de.danoeh.antennapod.fragment.preferences;
import android.os.Bundle;
import androidx.preference.PreferenceFragmentCompat;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.activity.PreferenceActivity;
import de.danoeh.antennapod.storage.preferences.UserPreferences;
import de.danoeh.antennapod.dialog.ChooseDataFolderDialog;
import java.io.File;
public class StoragePreferencesFragment extends PreferenceFragmentCompat {
private static final String PREF_CHOOSE_DATA_DIR = "prefChooseDataDir";
private static final String PREF_IMPORT_EXPORT = "prefImportExport";
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
addPreferencesFromResource(R.xml.preferences_storage);
setupStorageScreen();
}
@Override
public void onStart() {
super.onStart();
((PreferenceActivity) getActivity()).getSupportActionBar().setTitle(R.string.storage_pref);
}
@Override
public void onResume() {
super.onResume();
setDataFolderText();
}
private void setupStorageScreen() {
findPreference(PREF_CHOOSE_DATA_DIR).setOnPreferenceClickListener(
preference -> {
ChooseDataFolderDialog.showDialog(getContext(), path -> {
UserPreferences.setDataFolder(path);
setDataFolderText();
});
return true;
}
);
findPreference(PREF_IMPORT_EXPORT).setOnPreferenceClickListener(
preference -> {
((PreferenceActivity) getActivity()).openScreen(R.xml.preferences_import_export);
return true;
}
);
}
private void setDataFolderText() {
File f = UserPreferences.getDataFolder(null);
if (f != null) {
findPreference(PREF_CHOOSE_DATA_DIR).setSummary(f.getAbsolutePath());
}
}
}

View File

@ -22,10 +22,10 @@
android:icon="@drawable/ic_play_24dp" />
<Preference
android:key="prefScreenNetwork"
android:title="@string/network_pref"
android:summary="@string/network_pref_sum"
android:icon="@drawable/ic_network" />
android:key="prefScreenDownloads"
android:title="@string/downloads_pref"
android:summary="@string/downloads_pref_sum"
android:icon="@drawable/ic_download_black" />
<Preference
android:key="prefScreenSynchronization"
@ -34,9 +34,9 @@
android:icon="@drawable/ic_cloud" />
<Preference
android:key="prefScreenStorage"
android:title="@string/storage_pref"
android:summary="@string/storage_sum"
android:key="prefScreenImportExport"
android:title="@string/import_export_pref"
android:summary="@string/import_export_summary"
android:icon="@drawable/ic_storage" />
<Preference

View File

@ -0,0 +1,70 @@
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:numberpicker="http://schemas.android.com/apk/de.danoeh.antennapod"
xmlns:search="http://schemas.android.com/apk/com.bytehamster.lib.preferencesearch">
<Preference
android:title="@string/choose_data_directory"
android:key="prefChooseDataDir"/>
<PreferenceCategory android:title="@string/automation">
<de.danoeh.antennapod.preferences.MaterialListPreference
android:entryValues="@array/feed_refresh_interval_values"
android:entries="@array/feed_refresh_interval_entries"
android:key="prefAutoUpdateIntervall"
android:title="@string/feed_refresh_title"
android:summary="@string/feed_refresh_sum"
android:defaultValue="12"/>
<de.danoeh.antennapod.preferences.MaterialListPreference
android:entryValues="@array/globalNewEpisodesActionValues"
android:entries="@array/globalNewEpisodesActionItems"
android:key="prefNewEpisodesAction"
android:title="@string/pref_new_episodes_action_title"
android:summary="@string/pref_new_episodes_action_sum"
android:defaultValue="1"/>
<Preference
android:summary="@string/pref_automatic_download_sum"
android:key="prefAutoDownloadSettings"
android:title="@string/pref_automatic_download_title"
search:ignore="true" />
<SwitchPreferenceCompat
android:defaultValue="false"
android:enabled="true"
android:key="prefAutoDelete"
android:summary="@string/pref_auto_delete_sum"
android:title="@string/pref_auto_delete_title"/>
<SwitchPreferenceCompat
android:defaultValue="true"
android:enabled="true"
android:key="prefFavoriteKeepsEpisode"
android:summary="@string/pref_favorite_keeps_episodes_sum"
android:title="@string/pref_favorite_keeps_episodes_title"/>
<SwitchPreferenceCompat
android:defaultValue="false"
android:enabled="true"
android:key="prefDeleteRemovesFromQueue"
android:summary="@string/pref_delete_removes_from_queue_sum"
android:title="@string/pref_delete_removes_from_queue_title"/>
</PreferenceCategory>
<PreferenceCategory android:title="@string/download_pref_details">
<MultiSelectListPreference
android:defaultValue="@array/mobile_update_default_value"
android:entries="@array/mobile_update_entries"
android:entryValues="@array/mobile_update_values"
android:key="prefMobileUpdateTypes"
android:summary="@string/pref_mobileUpdate_sum"
android:title="@string/pref_mobileUpdate_title"/>
<de.danoeh.antennapod.preferences.NumberPickerPreference
android:defaultValue="4"
numberpicker:minValue="1"
numberpicker:maxValue="50"
android:key="prefParallelDownloads"
android:title="@string/pref_parallel_downloads_title"/>
<Preference
android:key="prefProxy"
android:summary="@string/pref_proxy_sum"
android:title="@string/pref_proxy_title"/>
</PreferenceCategory>
</PreferenceScreen>

View File

@ -1,47 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:numberpicker="http://schemas.android.com/apk/de.danoeh.antennapod"
xmlns:search="http://schemas.android.com/apk/com.bytehamster.lib.preferencesearch">
<PreferenceCategory android:title="@string/automation">
<de.danoeh.antennapod.preferences.MaterialListPreference
android:entryValues="@array/feed_refresh_interval_values"
android:entries="@array/feed_refresh_interval_entries"
android:key="prefAutoUpdateIntervall"
android:title="@string/feed_refresh_title"
android:summary="@string/feed_refresh_sum"
android:defaultValue="12"/>
<Preference
android:summary="@string/pref_automatic_download_sum"
android:key="prefAutoDownloadSettings"
android:title="@string/pref_automatic_download_title"
search:ignore="true" />
<de.danoeh.antennapod.preferences.MaterialListPreference
android:entryValues="@array/globalNewEpisodesActionValues"
android:entries="@array/globalNewEpisodesActionItems"
android:key="prefNewEpisodesAction"
android:title="@string/pref_new_episodes_action_title"
android:summary="@string/pref_new_episodes_action_sum"
android:defaultValue="1"/>
</PreferenceCategory>
<PreferenceCategory android:title="@string/download_pref_details">
<MultiSelectListPreference
android:defaultValue="@array/mobile_update_default_value"
android:entries="@array/mobile_update_entries"
android:entryValues="@array/mobile_update_values"
android:key="prefMobileUpdateTypes"
android:summary="@string/pref_mobileUpdate_sum"
android:title="@string/pref_mobileUpdate_title"/>
<de.danoeh.antennapod.preferences.NumberPickerPreference
android:defaultValue="4"
numberpicker:minValue="1"
numberpicker:maxValue="50"
android:key="prefParallelDownloads"
android:title="@string/pref_parallel_downloads_title"/>
<Preference
android:key="prefProxy"
android:summary="@string/pref_proxy_sum"
android:title="@string/pref_proxy_title"/>
</PreferenceCategory>
</PreferenceScreen>

View File

@ -1,32 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:search="http://schemas.android.com/apk/com.bytehamster.lib.preferencesearch">
<Preference
android:title="@string/choose_data_directory"
android:key="prefChooseDataDir"/>
<SwitchPreferenceCompat
android:defaultValue="false"
android:enabled="true"
android:key="prefAutoDelete"
android:summary="@string/pref_auto_delete_sum"
android:title="@string/pref_auto_delete_title"/>
<SwitchPreferenceCompat
android:defaultValue="true"
android:enabled="true"
android:key="prefFavoriteKeepsEpisode"
android:summary="@string/pref_favorite_keeps_episodes_sum"
android:title="@string/pref_favorite_keeps_episodes_title"/>
<SwitchPreferenceCompat
android:defaultValue="false"
android:enabled="true"
android:key="prefDeleteRemovesFromQueue"
android:summary="@string/pref_delete_removes_from_queue_sum"
android:title="@string/pref_delete_removes_from_queue_title"/>
<Preference
android:title="@string/import_export_pref"
android:summary="@string/import_export_summary"
android:key="prefImportExport"
search:ignore="true"/>
</PreferenceScreen>

View File

@ -1,5 +0,0 @@
<vector android:height="24dp"
android:viewportHeight="24.0" android:viewportWidth="24.0"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="?attr/action_icon_color" android:pathData="M16,17.01V10h-2v7.01h-3L15,21l4,-3.99h-3zM9,3L5,6.99h3V14h2V6.99h3L9,3z"/>
</vector>

View File

@ -370,8 +370,6 @@
<string name="no_subscriptions_label">To subscribe to a podcast, press the plus icon below.</string>
<!-- Preferences -->
<string name="storage_pref">Storage</string>
<string name="storage_sum">Episode auto delete, Import, Export</string>
<string name="project_pref">Project</string>
<string name="synchronization_pref">Synchronization</string>
<string name="synchronization_sum">Synchronize with other devices</string>
@ -411,8 +409,8 @@
<string name="pref_favorite_keeps_episodes_title">Keep Favorite Episodes</string>
<string name="playback_pref">Playback</string>
<string name="playback_pref_sum">Headphone controls, Skip intervals, Queue</string>
<string name="network_pref">Network</string>
<string name="network_pref_sum">Update interval, Download controls, Mobile data</string>
<string name="downloads_pref">Downloads</string>
<string name="downloads_pref_sum">Update interval, Mobile data, Automatic download, Automatic deletion</string>
<string name="feed_refresh_title">Refresh podcasts</string>
<string name="feed_refresh_sum">Specify an interval at which AntennaPod looks for new episodes automatically</string>
<string name="feed_refresh_never">Never</string>