summaryrefslogtreecommitdiff
path: root/core/src
diff options
context:
space:
mode:
Diffstat (limited to 'core/src')
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/feed/Feed.java2
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/feed/FeedFilter.java111
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/feed/FeedItem.java4
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/feed/FeedItemFilter.java76
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/feed/FeedMedia.java5
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/feed/FeedPreferences.java40
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java47
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java9
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java28
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceMediaPlayer.java61
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceTaskManager.java2
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/storage/APDownloadAlgorithm.java6
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java4
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/storage/DBTasks.java32
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java3
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java83
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/NSITunes.java23
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/atom/NSAtom.java20
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/util/playback/AudioPlayer.java5
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/util/playback/IPlayer.java4
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/util/playback/PlaybackController.java140
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/util/playback/Timeline.java2
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/util/playback/VideoPlayer.java11
-rw-r--r--core/src/main/res/drawable-hdpi-v11/stat_notify_sync.pngbin1012 -> 0 bytes
-rw-r--r--core/src/main/res/drawable-hdpi-v11/stat_notify_sync_error.pngbin1103 -> 0 bytes
-rwxr-xr-xcore/src/main/res/drawable-hdpi/ic_av_fast_forward_80dp.pngbin0 -> 1228 bytes
-rwxr-xr-xcore/src/main/res/drawable-hdpi/ic_av_rewind_80dp.pngbin0 -> 1277 bytes
-rw-r--r--core/src/main/res/drawable-hdpi/ic_check_box_grey600_24dp.pngbin0 -> 584 bytes
-rw-r--r--core/src/main/res/drawable-hdpi/ic_check_box_outline_blank_grey600_24dp.pngbin0 -> 397 bytes
-rw-r--r--core/src/main/res/drawable-hdpi/ic_check_box_outline_blank_white_24dp.pngbin0 -> 340 bytes
-rw-r--r--core/src/main/res/drawable-hdpi/ic_check_box_white_24dp.pngbin0 -> 505 bytes
-rw-r--r--core/src/main/res/drawable-hdpi/ic_drag_vertical_grey600_48dp.9.pngbin0 -> 389 bytes
-rw-r--r--core/src/main/res/drawable-hdpi/ic_drag_vertical_grey600_48dp.pngbin246 -> 0 bytes
-rw-r--r--core/src/main/res/drawable-hdpi/ic_drag_vertical_white_48dp.9.pngbin0 -> 361 bytes
-rw-r--r--core/src/main/res/drawable-hdpi/ic_drag_vertical_white_48dp.pngbin242 -> 0 bytes
-rwxr-xr-xcore/src/main/res/drawable-hdpi/ic_feed_grey600_24dp.pngbin2359 -> 1159 bytes
-rwxr-xr-xcore/src/main/res/drawable-hdpi/ic_feed_white_24dp.pngbin1663 -> 727 bytes
-rw-r--r--core/src/main/res/drawable-hdpi/ic_indeterminate_check_box_grey600_24dp.pngbin0 -> 405 bytes
-rw-r--r--core/src/main/res/drawable-hdpi/ic_indeterminate_check_box_white_24dp.pngbin0 -> 348 bytes
-rw-r--r--core/src/main/res/drawable-hdpi/ic_skip_grey600_36dp.pngbin0 -> 302 bytes
-rw-r--r--core/src/main/res/drawable-hdpi/ic_skip_white_36dp.pngbin0 -> 304 bytes
-rw-r--r--core/src/main/res/drawable-hdpi/ic_sleep_grey600_24dp.pngbin0 -> 421 bytes
-rw-r--r--core/src/main/res/drawable-hdpi/ic_sleep_off_grey600_24dp.pngbin0 -> 659 bytes
-rw-r--r--core/src/main/res/drawable-hdpi/ic_sleep_off_white_24dp.pngbin0 -> 431 bytes
-rw-r--r--core/src/main/res/drawable-hdpi/ic_sleep_white_24dp.pngbin0 -> 361 bytes
-rw-r--r--core/src/main/res/drawable-hdpi/ic_sort_grey600_24dp.pngbin0 -> 264 bytes
-rw-r--r--core/src/main/res/drawable-hdpi/ic_sort_white_24dp.pngbin0 -> 238 bytes
-rw-r--r--core/src/main/res/drawable-hdpi/ic_star_border_grey600_24dp.pngbin0 -> 637 bytes
-rw-r--r--core/src/main/res/drawable-hdpi/ic_star_border_white_24dp.pngbin0 -> 637 bytes
-rw-r--r--core/src/main/res/drawable-hdpi/ic_star_grey600_24dp.pngbin0 -> 460 bytes
-rw-r--r--core/src/main/res/drawable-hdpi/ic_star_white_24dp.pngbin0 -> 454 bytes
-rw-r--r--core/src/main/res/drawable-hdpi/stat_notify_sync.pngbin674 -> 421 bytes
-rw-r--r--core/src/main/res/drawable-hdpi/stat_notify_sync_error.pngbin708 -> 436 bytes
-rw-r--r--core/src/main/res/drawable-mdpi-v11/stat_notify_sync.pngbin732 -> 0 bytes
-rw-r--r--core/src/main/res/drawable-mdpi-v11/stat_notify_sync_error.pngbin746 -> 0 bytes
-rwxr-xr-xcore/src/main/res/drawable-mdpi/ic_av_fast_forward_80dp.pngbin0 -> 760 bytes
-rwxr-xr-xcore/src/main/res/drawable-mdpi/ic_av_rewind_80dp.pngbin0 -> 853 bytes
-rw-r--r--core/src/main/res/drawable-mdpi/ic_check_box_grey600_24dp.pngbin0 -> 397 bytes
-rw-r--r--core/src/main/res/drawable-mdpi/ic_check_box_outline_blank_grey600_24dp.pngbin0 -> 254 bytes
-rw-r--r--core/src/main/res/drawable-mdpi/ic_check_box_outline_blank_white_24dp.pngbin0 -> 230 bytes
-rw-r--r--core/src/main/res/drawable-mdpi/ic_check_box_white_24dp.pngbin0 -> 331 bytes
-rw-r--r--core/src/main/res/drawable-mdpi/ic_drag_vertical_grey600_48dp.9.pngbin0 -> 253 bytes
-rw-r--r--core/src/main/res/drawable-mdpi/ic_drag_vertical_grey600_48dp.pngbin197 -> 0 bytes
-rw-r--r--core/src/main/res/drawable-mdpi/ic_drag_vertical_white_48dp.9.pngbin0 -> 231 bytes
-rw-r--r--core/src/main/res/drawable-mdpi/ic_drag_vertical_white_48dp.pngbin193 -> 0 bytes
-rwxr-xr-xcore/src/main/res/drawable-mdpi/ic_feed_grey600_24dp.pngbin1566 -> 773 bytes
-rwxr-xr-xcore/src/main/res/drawable-mdpi/ic_feed_white_24dp.pngbin1156 -> 492 bytes
-rw-r--r--core/src/main/res/drawable-mdpi/ic_indeterminate_check_box_grey600_24dp.pngbin0 -> 259 bytes
-rw-r--r--core/src/main/res/drawable-mdpi/ic_indeterminate_check_box_white_24dp.pngbin0 -> 241 bytes
-rw-r--r--core/src/main/res/drawable-mdpi/ic_skip_grey600_36dp.pngbin0 -> 218 bytes
-rw-r--r--core/src/main/res/drawable-mdpi/ic_skip_white_36dp.pngbin0 -> 216 bytes
-rw-r--r--core/src/main/res/drawable-mdpi/ic_sleep_grey600_24dp.pngbin0 -> 336 bytes
-rw-r--r--core/src/main/res/drawable-mdpi/ic_sleep_off_grey600_24dp.pngbin0 -> 472 bytes
-rw-r--r--core/src/main/res/drawable-mdpi/ic_sleep_off_white_24dp.pngbin0 -> 323 bytes
-rw-r--r--core/src/main/res/drawable-mdpi/ic_sleep_white_24dp.pngbin0 -> 252 bytes
-rw-r--r--core/src/main/res/drawable-mdpi/ic_sort_grey600_24dp.pngbin0 -> 193 bytes
-rw-r--r--core/src/main/res/drawable-mdpi/ic_sort_white_24dp.pngbin0 -> 192 bytes
-rw-r--r--core/src/main/res/drawable-mdpi/ic_star_border_grey600_24dp.pngbin0 -> 410 bytes
-rw-r--r--core/src/main/res/drawable-mdpi/ic_star_border_white_24dp.pngbin0 -> 410 bytes
-rw-r--r--core/src/main/res/drawable-mdpi/ic_star_grey600_24dp.pngbin0 -> 307 bytes
-rw-r--r--core/src/main/res/drawable-mdpi/ic_star_white_24dp.pngbin0 -> 302 bytes
-rw-r--r--core/src/main/res/drawable-mdpi/stat_notify_sync.pngbin628 -> 272 bytes
-rw-r--r--core/src/main/res/drawable-mdpi/stat_notify_sync_error.pngbin627 -> 274 bytes
-rw-r--r--core/src/main/res/drawable-xhdpi-v11/stat_notify_sync.pngbin1306 -> 0 bytes
-rw-r--r--core/src/main/res/drawable-xhdpi-v11/stat_notify_sync_error.pngbin1434 -> 0 bytes
-rwxr-xr-xcore/src/main/res/drawable-xhdpi/ic_av_fast_forward_80dp.pngbin0 -> 1968 bytes
-rwxr-xr-xcore/src/main/res/drawable-xhdpi/ic_av_rewind_80dp.pngbin0 -> 1992 bytes
-rw-r--r--core/src/main/res/drawable-xhdpi/ic_check_box_grey600_24dp.pngbin0 -> 658 bytes
-rw-r--r--core/src/main/res/drawable-xhdpi/ic_check_box_outline_blank_grey600_24dp.pngbin0 -> 406 bytes
-rw-r--r--core/src/main/res/drawable-xhdpi/ic_check_box_outline_blank_white_24dp.pngbin0 -> 364 bytes
-rw-r--r--core/src/main/res/drawable-xhdpi/ic_check_box_white_24dp.pngbin0 -> 526 bytes
-rw-r--r--core/src/main/res/drawable-xhdpi/ic_drag_vertical_grey600_48dp.9.pngbin0 -> 548 bytes
-rw-r--r--core/src/main/res/drawable-xhdpi/ic_drag_vertical_grey600_48dp.pngbin291 -> 0 bytes
-rw-r--r--core/src/main/res/drawable-xhdpi/ic_drag_vertical_white_48dp.9.pngbin0 -> 517 bytes
-rw-r--r--core/src/main/res/drawable-xhdpi/ic_drag_vertical_white_48dp.pngbin286 -> 0 bytes
-rwxr-xr-xcore/src/main/res/drawable-xhdpi/ic_feed_grey600_24dp.pngbin3200 -> 1420 bytes
-rwxr-xr-xcore/src/main/res/drawable-xhdpi/ic_feed_white_24dp.pngbin2314 -> 910 bytes
-rw-r--r--core/src/main/res/drawable-xhdpi/ic_indeterminate_check_box_grey600_24dp.pngbin0 -> 407 bytes
-rw-r--r--core/src/main/res/drawable-xhdpi/ic_indeterminate_check_box_white_24dp.pngbin0 -> 370 bytes
-rw-r--r--core/src/main/res/drawable-xhdpi/ic_skip_grey600_36dp.pngbin0 -> 364 bytes
-rw-r--r--core/src/main/res/drawable-xhdpi/ic_skip_white_36dp.pngbin0 -> 368 bytes
-rw-r--r--core/src/main/res/drawable-xhdpi/ic_sleep_grey600_24dp.pngbin0 -> 494 bytes
-rw-r--r--core/src/main/res/drawable-xhdpi/ic_sleep_off_grey600_24dp.pngbin0 -> 769 bytes
-rw-r--r--core/src/main/res/drawable-xhdpi/ic_sleep_off_white_24dp.pngbin0 -> 486 bytes
-rw-r--r--core/src/main/res/drawable-xhdpi/ic_sleep_white_24dp.pngbin0 -> 367 bytes
-rw-r--r--core/src/main/res/drawable-xhdpi/ic_sort_grey600_24dp.pngbin0 -> 215 bytes
-rw-r--r--core/src/main/res/drawable-xhdpi/ic_sort_white_24dp.pngbin0 -> 212 bytes
-rw-r--r--core/src/main/res/drawable-xhdpi/ic_star_border_grey600_24dp.pngbin0 -> 828 bytes
-rw-r--r--core/src/main/res/drawable-xhdpi/ic_star_border_white_24dp.pngbin0 -> 821 bytes
-rw-r--r--core/src/main/res/drawable-xhdpi/ic_star_grey600_24dp.pngbin0 -> 593 bytes
-rw-r--r--core/src/main/res/drawable-xhdpi/ic_star_white_24dp.pngbin0 -> 582 bytes
-rw-r--r--core/src/main/res/drawable-xhdpi/stat_notify_sync.pngbin0 -> 475 bytes
-rw-r--r--core/src/main/res/drawable-xhdpi/stat_notify_sync_error.pngbin0 -> 533 bytes
-rwxr-xr-xcore/src/main/res/drawable-xxhdpi/ic_av_fast_forward_80dp.pngbin0 -> 3207 bytes
-rwxr-xr-xcore/src/main/res/drawable-xxhdpi/ic_av_rewind_80dp.pngbin0 -> 3502 bytes
-rw-r--r--core/src/main/res/drawable-xxhdpi/ic_check_box_grey600_24dp.pngbin0 -> 920 bytes
-rw-r--r--core/src/main/res/drawable-xxhdpi/ic_check_box_outline_blank_grey600_24dp.pngbin0 -> 582 bytes
-rw-r--r--core/src/main/res/drawable-xxhdpi/ic_check_box_outline_blank_white_24dp.pngbin0 -> 502 bytes
-rw-r--r--core/src/main/res/drawable-xxhdpi/ic_check_box_white_24dp.pngbin0 -> 800 bytes
-rw-r--r--core/src/main/res/drawable-xxhdpi/ic_drag_vertical_grey600_48dp.9.pngbin0 -> 853 bytes
-rw-r--r--core/src/main/res/drawable-xxhdpi/ic_drag_vertical_grey600_48dp.pngbin389 -> 0 bytes
-rw-r--r--core/src/main/res/drawable-xxhdpi/ic_drag_vertical_white_48dp.9.pngbin0 -> 809 bytes
-rw-r--r--core/src/main/res/drawable-xxhdpi/ic_drag_vertical_white_48dp.pngbin386 -> 0 bytes
-rwxr-xr-xcore/src/main/res/drawable-xxhdpi/ic_feed_grey600_24dp.pngbin4754 -> 2087 bytes
-rwxr-xr-xcore/src/main/res/drawable-xxhdpi/ic_feed_white_24dp.pngbin3406 -> 1366 bytes
-rw-r--r--core/src/main/res/drawable-xxhdpi/ic_indeterminate_check_box_grey600_24dp.pngbin0 -> 580 bytes
-rw-r--r--core/src/main/res/drawable-xxhdpi/ic_indeterminate_check_box_white_24dp.pngbin0 -> 514 bytes
-rw-r--r--core/src/main/res/drawable-xxhdpi/ic_skip_grey600_36dp.pngbin0 -> 533 bytes
-rw-r--r--core/src/main/res/drawable-xxhdpi/ic_skip_white_36dp.pngbin0 -> 543 bytes
-rw-r--r--core/src/main/res/drawable-xxhdpi/ic_sleep_grey600_24dp.pngbin0 -> 737 bytes
-rw-r--r--core/src/main/res/drawable-xxhdpi/ic_sleep_off_grey600_24dp.pngbin0 -> 1113 bytes
-rw-r--r--core/src/main/res/drawable-xxhdpi/ic_sleep_off_white_24dp.pngbin0 -> 664 bytes
-rw-r--r--core/src/main/res/drawable-xxhdpi/ic_sleep_white_24dp.pngbin0 -> 509 bytes
-rw-r--r--core/src/main/res/drawable-xxhdpi/ic_sort_grey600_24dp.pngbin0 -> 244 bytes
-rw-r--r--core/src/main/res/drawable-xxhdpi/ic_sort_white_24dp.pngbin0 -> 241 bytes
-rw-r--r--core/src/main/res/drawable-xxhdpi/ic_star_border_grey600_24dp.pngbin0 -> 1227 bytes
-rw-r--r--core/src/main/res/drawable-xxhdpi/ic_star_border_white_24dp.pngbin0 -> 1222 bytes
-rw-r--r--core/src/main/res/drawable-xxhdpi/ic_star_grey600_24dp.pngbin0 -> 877 bytes
-rw-r--r--core/src/main/res/drawable-xxhdpi/ic_star_white_24dp.pngbin0 -> 870 bytes
-rw-r--r--core/src/main/res/drawable-xxhdpi/stat_notify_sync.pngbin0 -> 705 bytes
-rw-r--r--core/src/main/res/drawable-xxhdpi/stat_notify_sync_error.pngbin0 -> 761 bytes
-rwxr-xr-xcore/src/main/res/drawable-xxxhdpi/ic_av_fast_forward_80dp.pngbin0 -> 5878 bytes
-rwxr-xr-xcore/src/main/res/drawable-xxxhdpi/ic_av_rewind_80dp.pngbin0 -> 6299 bytes
-rw-r--r--core/src/main/res/drawable-xxxhdpi/ic_drag_vertical_grey600_48dp.pngbin501 -> 0 bytes
-rw-r--r--core/src/main/res/drawable-xxxhdpi/ic_drag_vertical_white_48dp.pngbin498 -> 0 bytes
-rw-r--r--core/src/main/res/drawable-xxxhdpi/ic_skip_grey600_36dp.pngbin0 -> 737 bytes
-rw-r--r--core/src/main/res/drawable-xxxhdpi/ic_skip_white_36dp.pngbin0 -> 749 bytes
-rw-r--r--core/src/main/res/drawable-xxxhdpi/ic_sleep_grey600_24dp.pngbin0 -> 955 bytes
-rw-r--r--core/src/main/res/drawable-xxxhdpi/ic_sleep_off_grey600_24dp.pngbin0 -> 1514 bytes
-rw-r--r--core/src/main/res/drawable-xxxhdpi/ic_sleep_off_white_24dp.pngbin0 -> 882 bytes
-rw-r--r--core/src/main/res/drawable-xxxhdpi/ic_sleep_white_24dp.pngbin0 -> 647 bytes
-rw-r--r--core/src/main/res/drawable-xxxhdpi/ic_star_border_grey600_24dp.pngbin0 -> 1675 bytes
-rw-r--r--core/src/main/res/drawable-xxxhdpi/ic_star_border_white_24dp.pngbin0 -> 1684 bytes
-rw-r--r--core/src/main/res/drawable-xxxhdpi/ic_star_grey600_24dp.pngbin0 -> 1179 bytes
-rw-r--r--core/src/main/res/drawable-xxxhdpi/ic_star_white_24dp.pngbin0 -> 1183 bytes
-rw-r--r--core/src/main/res/values-az/strings.xml5
-rw-r--r--core/src/main/res/values-ca/strings.xml13
-rw-r--r--core/src/main/res/values-cs-rCZ/strings.xml48
-rw-r--r--core/src/main/res/values-da/strings.xml5
-rw-r--r--core/src/main/res/values-de/strings.xml53
-rw-r--r--core/src/main/res/values-es-rES/strings.xml55
-rw-r--r--core/src/main/res/values-es/strings.xml77
-rw-r--r--core/src/main/res/values-fr/strings.xml49
-rw-r--r--core/src/main/res/values-hi-rIN/strings.xml5
-rw-r--r--core/src/main/res/values-it-rIT/strings.xml8
-rw-r--r--core/src/main/res/values-iw-rIL/strings.xml6
-rw-r--r--core/src/main/res/values-ja/strings.xml46
-rw-r--r--core/src/main/res/values-ko/strings.xml46
-rw-r--r--core/src/main/res/values-nb/strings.xml15
-rw-r--r--core/src/main/res/values-nl/strings.xml47
-rw-r--r--core/src/main/res/values-pl-rPL/strings.xml13
-rw-r--r--core/src/main/res/values-pt-rBR/strings.xml7
-rw-r--r--core/src/main/res/values-pt/strings.xml133
-rw-r--r--core/src/main/res/values-ro-rRO/strings.xml5
-rw-r--r--core/src/main/res/values-ru/strings.xml32
-rw-r--r--core/src/main/res/values-sv-rSE/strings.xml49
-rw-r--r--core/src/main/res/values-tr/strings.xml12
-rw-r--r--core/src/main/res/values-uk-rUA/strings.xml13
-rw-r--r--core/src/main/res/values-zh-rCN/strings.xml10
-rw-r--r--core/src/main/res/values/arrays.xml16
-rw-r--r--core/src/main/res/values/attrs.xml12
-rw-r--r--core/src/main/res/values/dimens.xml4
-rw-r--r--core/src/main/res/values/strings.xml33
-rw-r--r--core/src/main/res/values/styles.xml46
184 files changed, 1098 insertions, 483 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/feed/Feed.java b/core/src/main/java/de/danoeh/antennapod/core/feed/Feed.java
index 0de046fe5..4be788f33 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/feed/Feed.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/feed/Feed.java
@@ -544,7 +544,7 @@ public class Feed extends FeedFile implements FlattrThing, ImageResource {
return itemfilter;
}
- public void setHiddenItemProperties(String[] properties) {
+ public void setItemFilter(String[] properties) {
if (properties != null) {
this.itemfilter = new FeedItemFilter(properties);
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/feed/FeedFilter.java b/core/src/main/java/de/danoeh/antennapod/core/feed/FeedFilter.java
new file mode 100644
index 000000000..35abb8de6
--- /dev/null
+++ b/core/src/main/java/de/danoeh/antennapod/core/feed/FeedFilter.java
@@ -0,0 +1,111 @@
+package de.danoeh.antennapod.core.feed;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+public class FeedFilter {
+
+ private static final String TAG = "FeedFilter";
+
+ private String includeFilter;
+ private String excludeFilter;
+
+ public FeedFilter() {
+ this("", "");
+ }
+
+ public FeedFilter(String includeFilter, String excludeFilter) {
+ // We're storing the strings and not the parsed terms because
+ // 1. It's easier to show the user exactly what they typed in this way
+ // (we don't have to recreate it)
+ // 2. We don't know if we'll actually be asked to parse anything anyways.
+ this.includeFilter = includeFilter;
+ this.excludeFilter = excludeFilter;
+ }
+
+ /**
+ * Parses the text in to a list of single words or quoted strings.
+ * Example: "One "Two Three"" returns ["One", "Two Three"]
+ * @param filter string to parse in to terms
+ * @return list of terms
+ */
+ private List<String> parseTerms(String filter) {
+ // from http://stackoverflow.com/questions/7804335/split-string-on-spaces-in-java-except-if-between-quotes-i-e-treat-hello-wor
+ List<String> list = new ArrayList<>();
+ Matcher m = Pattern.compile("([^\"]\\S*|\".+?\")\\s*").matcher(filter);
+ while (m.find())
+ list.add(m.group(1).replace("\"", ""));
+ return list;
+ }
+
+ /**
+ * @param item
+ * @return true if the item should be downloaded
+ */
+ public boolean shouldAutoDownload(FeedItem item) {
+
+ List<String> includeTerms = parseTerms(includeFilter);
+ List<String> excludeTerms = parseTerms(excludeFilter);
+
+ if (includeTerms.size() == 0 && excludeTerms.size() == 0) {
+ // nothing has been specified, so include everything
+ return true;
+ }
+
+ // check using lowercase so the users don't have to worry about case.
+ String title = item.getTitle().toLowerCase();
+
+ // if it's explicitly excluded, it shouldn't be autodownloaded
+ // even if it has include terms
+ for (String term : excludeTerms) {
+ if (title.contains(term.trim().toLowerCase())) {
+ return false;
+ }
+ }
+
+ for (String term : includeTerms) {
+ if (title.contains(term.trim().toLowerCase())) {
+ return true;
+ }
+ }
+
+ // now's the tricky bit
+ // if they haven't set an include filter, but they have set an exclude filter
+ // default to including, but if they've set both, then exclude
+ if (!hasIncludeFilter() && hasExcludeFilter()) {
+ return true;
+ }
+
+ return false;
+ }
+
+ public String getIncludeFilter() {
+ return includeFilter;
+ }
+
+ public String getExcludeFilter() { return excludeFilter; }
+
+ /**
+ * @return true if only include is set
+ */
+ public boolean includeOnly() {
+ return hasIncludeFilter() && !hasExcludeFilter();
+ }
+
+ /**
+ * @return true if only exclude is set
+ */
+ public boolean excludeOnly() {
+ return hasExcludeFilter() && !hasIncludeFilter();
+ }
+
+ public boolean hasIncludeFilter() {
+ return includeFilter.length() > 0;
+ }
+
+ public boolean hasExcludeFilter() {
+ return excludeFilter.length() > 0;
+ }
+}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/feed/FeedItem.java b/core/src/main/java/de/danoeh/antennapod/core/feed/FeedItem.java
index 00b32de5f..d8c32f55e 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/feed/FeedItem.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/feed/FeedItem.java
@@ -78,11 +78,11 @@ public class FeedItem extends FeedComponent implements ShownotesProvider, Flattr
/*
* 0: auto download disabled
- * 1: auto download enabled
+ * 1: auto download enabled (default)
* > 1: auto download enabled, (approx.) timestamp of the last failed attempt
* where last digit denotes the number of failed attempts
*/
- private long autoDownload = 0;
+ private long autoDownload = 1;
/**
* Any tags assigned to this item
diff --git a/core/src/main/java/de/danoeh/antennapod/core/feed/FeedItemFilter.java b/core/src/main/java/de/danoeh/antennapod/core/feed/FeedItemFilter.java
index 8636ac50a..fdde4b34c 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/feed/FeedItemFilter.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/feed/FeedItemFilter.java
@@ -8,73 +8,87 @@ import java.util.List;
import de.danoeh.antennapod.core.storage.DBReader;
public class FeedItemFilter {
+ private final String[] mProperties;
- private final String[] properties;
-
- private boolean hideUnplayed = false;
- private boolean hidePaused = false;
- private boolean hidePlayed = false;
- private boolean hideQueued = false;
- private boolean hideNotQueued = false;
- private boolean hideDownloaded = false;
- private boolean hideNotDownloaded = false;
+ private boolean showPlayed = false;
+ private boolean showUnplayed = false;
+ private boolean showPaused = false;
+ private boolean showQueued = false;
+ private boolean showNotQueued = false;
+ private boolean showDownloaded = false;
+ private boolean showNotDownloaded = false;
public FeedItemFilter(String properties) {
this(TextUtils.split(properties, ","));
}
public FeedItemFilter(String[] properties) {
- this.properties = properties;
+ this.mProperties = properties;
for(String property : properties) {
// see R.arrays.feed_filter_values
switch(property) {
case "unplayed":
- hideUnplayed = true;
+ showUnplayed = true;
break;
case "paused":
- hidePaused = true;
+ showPaused = true;
break;
case "played":
- hidePlayed = true;
+ showPlayed = true;
break;
case "queued":
- hideQueued = true;
+ showQueued = true;
break;
case "not_queued":
- hideNotQueued = true;
+ showNotQueued = true;
break;
case "downloaded":
- hideDownloaded = true;
+ showDownloaded = true;
break;
case "not_downloaded":
- hideNotDownloaded = true;
+ showNotDownloaded = true;
break;
}
}
}
+ /**
+ * Run a list of feed items through the filter.
+ */
public List<FeedItem> filter(List<FeedItem> items) {
- if(properties.length == 0) {
- return items;
- }
- List<FeedItem> result = new ArrayList<FeedItem>();
+ if(mProperties.length == 0) return items;
+
+ List<FeedItem> result = new ArrayList<>();
+
+ // Check for filter combinations that will always return an empty list
+ // (e.g. requiring played and unplayed at the same time)
+ if (showPlayed && showUnplayed) return result;
+ if (showQueued && showNotQueued) return result;
+ if (showDownloaded && showNotDownloaded) return result;
+
for(FeedItem item : items) {
- if(hideUnplayed && false == item.isPlayed()) continue;
- if(hidePaused && item.getState() == FeedItem.State.IN_PROGRESS) continue;
- if(hidePlayed && item.isPlayed()) continue;
- boolean isQueued = DBReader.getQueueIDList().contains(item.getId());
- if(hideQueued && isQueued) continue;
- if(hideNotQueued && false == isQueued) continue;
- boolean isDownloaded = item.getMedia() != null && item.getMedia().isDownloaded();
- if(hideDownloaded && isDownloaded) continue;
- if(hideNotDownloaded && false == isDownloaded) continue;
+ // If the item does not meet a requirement, skip it.
+ if (showPlayed && !item.isPlayed()) continue;
+ if (showUnplayed && item.isPlayed()) continue;
+ if (showPaused && item.getState() != FeedItem.State.IN_PROGRESS) continue;
+
+ boolean queued = DBReader.getQueueIDList().contains(item.getId());
+ if (showQueued && !queued) continue;
+ if (showNotQueued && queued) continue;
+
+ boolean downloaded = item.getMedia() != null && item.getMedia().isDownloaded();
+ if (showDownloaded && !downloaded) continue;
+ if (showNotDownloaded && downloaded) continue;
+
+ // If the item reaches here, it meets all criteria
result.add(item);
}
+
return result;
}
public String[] getValues() {
- return properties.clone();
+ return mProperties.clone();
}
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/feed/FeedMedia.java b/core/src/main/java/de/danoeh/antennapod/core/feed/FeedMedia.java
index a7d553120..56b996d1c 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/feed/FeedMedia.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/feed/FeedMedia.java
@@ -8,6 +8,7 @@ import android.net.Uri;
import android.os.Parcel;
import android.os.Parcelable;
import android.support.annotation.Nullable;
+import android.text.TextUtils;
import java.util.Date;
import java.util.List;
@@ -167,6 +168,10 @@ public class FeedMedia extends FeedFile implements Playable {
}
public void updateFromOther(FeedMedia other) {
+ // reset to new if feed item did link to a file before
+ if(TextUtils.isEmpty(download_url) && !TextUtils.isEmpty(other.download_url)) {
+ item.setNew();
+ }
super.updateFromOther(other);
if (other.size > 0) {
size = other.size;
diff --git a/core/src/main/java/de/danoeh/antennapod/core/feed/FeedPreferences.java b/core/src/main/java/de/danoeh/antennapod/core/feed/FeedPreferences.java
index ed568a6e5..faf23a37a 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/feed/FeedPreferences.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/feed/FeedPreferences.java
@@ -2,6 +2,7 @@ package de.danoeh.antennapod.core.feed;
import android.content.Context;
import android.database.Cursor;
+import android.support.annotation.NonNull;
import android.text.TextUtils;
import de.danoeh.antennapod.core.preferences.UserPreferences;
@@ -13,8 +14,12 @@ import de.danoeh.antennapod.core.storage.PodDBAdapter;
*/
public class FeedPreferences {
+ @NonNull
+ private FeedFilter filter;
private long feedID;
private boolean autoDownload;
+ private boolean keepUpdated;
+
public enum AutoDeleteAction {
GLOBAL,
YES,
@@ -25,30 +30,63 @@ public class FeedPreferences {
private String password;
public FeedPreferences(long feedID, boolean autoDownload, AutoDeleteAction auto_delete_action, String username, String password) {
+ this(feedID, autoDownload, true, auto_delete_action, username, password, new FeedFilter());
+ }
+
+ public FeedPreferences(long feedID, boolean autoDownload, boolean keepUpdated, AutoDeleteAction auto_delete_action, String username, String password, @NonNull FeedFilter filter) {
this.feedID = feedID;
this.autoDownload = autoDownload;
+ this.keepUpdated = keepUpdated;
this.auto_delete_action = auto_delete_action;
this.username = username;
this.password = password;
+ this.filter = filter;
}
public static FeedPreferences fromCursor(Cursor cursor) {
int indexId = cursor.getColumnIndex(PodDBAdapter.KEY_ID);
int indexAutoDownload = cursor.getColumnIndex(PodDBAdapter.KEY_AUTO_DOWNLOAD);
+ int indexAutoRefresh = cursor.getColumnIndex(PodDBAdapter.KEY_KEEP_UPDATED);
int indexAutoDeleteAction = cursor.getColumnIndex(PodDBAdapter.KEY_AUTO_DELETE_ACTION);
int indexUsername = cursor.getColumnIndex(PodDBAdapter.KEY_USERNAME);
int indexPassword = cursor.getColumnIndex(PodDBAdapter.KEY_PASSWORD);
+ int indexIncludeFilter = cursor.getColumnIndex(PodDBAdapter.KEY_INCLUDE_FILTER);
+ int indexExcludeFilter = cursor.getColumnIndex(PodDBAdapter.KEY_EXCLUDE_FILTER);
long feedId = cursor.getLong(indexId);
boolean autoDownload = cursor.getInt(indexAutoDownload) > 0;
+ boolean autoRefresh = cursor.getInt(indexAutoRefresh) > 0;
int autoDeleteActionIndex = cursor.getInt(indexAutoDeleteAction);
AutoDeleteAction autoDeleteAction = AutoDeleteAction.values()[autoDeleteActionIndex];
String username = cursor.getString(indexUsername);
String password = cursor.getString(indexPassword);
- return new FeedPreferences(feedId, autoDownload, autoDeleteAction, username, password);
+ String includeFilter = cursor.getString(indexIncludeFilter);
+ String excludeFilter = cursor.getString(indexExcludeFilter);
+ return new FeedPreferences(feedId, autoDownload, autoRefresh, autoDeleteAction, username, password, new FeedFilter(includeFilter, excludeFilter));
}
+ /**
+ * @return the filter for this feed
+ */
+ public FeedFilter getFilter() {
+ return filter;
+ }
+ public void setFilter(@NonNull FeedFilter filter) {
+ this.filter = filter;
+ }
+
+ /**
+ * @return true if this feed should be refreshed when everything else is being refreshed
+ * if false the feed should only be refreshed if requested directly.
+ */
+ public boolean getKeepUpdated() {
+ return keepUpdated;
+ }
+
+ public void setKeepUpdated(boolean keepUpdated) {
+ this.keepUpdated = keepUpdated;
+ }
/**
* Compare another FeedPreferences with this one. The feedID, autoDownload and AutoDeleteAction attribute are excluded from the
diff --git a/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java b/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java
index d6ac8496b..6c0aff15e 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java
@@ -20,7 +20,6 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
-import java.util.LinkedList;
import java.util.List;
import java.util.concurrent.TimeUnit;
@@ -95,9 +94,12 @@ public class UserPreferences {
public static final String PREF_QUEUE_LOCKED = "prefQueueLocked";
public static final String IMAGE_CACHE_DEFAULT_VALUE = "100";
public static final int IMAGE_CACHE_SIZE_MINIMUM = 20;
+ public static final String PREF_LEFT_VOLUME = "prefLeftVolume";
+ public static final String PREF_RIGHT_VOLUME = "prefRightVolume";
// Experimental
public static final String PREF_SONIC = "prefSonic";
+ public static final String PREF_STEREO_TO_MONO = "PrefStereoToMono";
public static final String PREF_NORMALIZER = "prefNormalizer";
public static final int EPISODE_CLEANUP_QUEUE = -1;
public static final int EPISODE_CLEANUP_NULL = -2;
@@ -249,17 +251,37 @@ public class UserPreferences {
}
public static String getPlaybackSpeed() {
- return prefs.getString(PREF_PLAYBACK_SPEED, "1.0");
+ return prefs.getString(PREF_PLAYBACK_SPEED, "1.00");
}
public static String[] getPlaybackSpeedArray() {
return readPlaybackSpeedArray(prefs.getString(PREF_PLAYBACK_SPEED_ARRAY, null));
}
+ public static float getLeftVolume() {
+ int volume = prefs.getInt(PREF_LEFT_VOLUME, 100);
+ if(volume == 100) {
+ return 1.0f;
+ } else {
+ return (float) (1 - (Math.log(100 - volume) / Math.log(100)));
+ }
+ }
+
+ public static float getRightVolume() {
+ int volume = prefs.getInt(PREF_RIGHT_VOLUME, 100);
+ if(volume == 100) {
+ return 1.0f;
+ } else {
+ return (float) (1 - (Math.log(100 - volume) / Math.log(100)));
+ }
+ }
+
public static boolean shouldPauseForFocusLoss() {
return prefs.getBoolean(PREF_PAUSE_PLAYBACK_FOR_FOCUS_LOSS, false);
}
+
+
public static long getUpdateInterval() {
String updateInterval = prefs.getString(PREF_UPDATE_INTERVAL, "0");
if(false == updateInterval.contains(":")) {
@@ -385,6 +407,15 @@ public class UserPreferences {
.apply();
}
+ public static void setVolume(int leftVolume, int rightVolume) {
+ assert(0 <= leftVolume && leftVolume <= 100);
+ assert(0 <= rightVolume && rightVolume <= 100);
+ prefs.edit()
+ .putInt(PREF_LEFT_VOLUME, leftVolume)
+ .putInt(PREF_RIGHT_VOLUME, rightVolume)
+ .apply();
+ }
+
public static void setAutodownloadSelectedNetworks(String[] value) {
prefs.edit()
.putString(PREF_AUTODL_SELECTED_NETWORKS, TextUtils.join(",", value))
@@ -472,7 +503,7 @@ public class UserPreferences {
// If this preference hasn't been set yet, return the default options
if (valueFromPrefs == null) {
String[] allSpeeds = context.getResources().getStringArray(R.array.playback_speed_values);
- List<String> speedList = new LinkedList<String>();
+ List<String> speedList = new ArrayList<>();
for (String speedStr : allSpeeds) {
float speed = Float.parseFloat(speedStr);
if (speed < 2.0001 && speed * 10 % 1 == 0) {
@@ -505,6 +536,16 @@ public class UserPreferences {
.apply();
}
+ public static boolean stereoToMono() {
+ return prefs.getBoolean(PREF_STEREO_TO_MONO, false);
+ }
+
+ public static void stereoToMono(boolean enable) {
+ prefs.edit()
+ .putBoolean(PREF_STEREO_TO_MONO, enable)
+ .apply();
+ }
+
public static EpisodeCleanupAlgorithm getEpisodeCleanupAlgorithm() {
int cleanupValue = Integer.valueOf(prefs.getString(PREF_EPISODE_CLEANUP, "-1"));
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java b/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java
index c3afff276..d69228ceb 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java
@@ -204,8 +204,10 @@ public class DownloadService extends Service {
return;
}
FeedItem item = media.getItem();
- if (status.getReason() == DownloadError.ERROR_HTTP_DATA_ERROR &&
- Integer.valueOf(status.getReasonDetailed()) == HttpURLConnection.HTTP_NOT_FOUND) {
+ boolean httpNotFound = status.getReason() == DownloadError.ERROR_HTTP_DATA_ERROR
+ && String.valueOf(HttpURLConnection.HTTP_NOT_FOUND).equals(status.getReasonDetailed());
+ boolean notEnoughSpace = status.getReason() == DownloadError.ERROR_NOT_ENOUGH_SPACE;
+ if (httpNotFound || notEnoughSpace) {
DBWriter.saveFeedItemAutoDownloadFailed(item).get();
}
// to make lists reload the failed item, we fake an item update
@@ -361,7 +363,8 @@ public class DownloadService extends Service {
int numDownloads = requester.getNumberOfDownloads();
String downloadsLeft;
if (numDownloads > 0) {
- downloadsLeft = requester.getNumberOfDownloads() + getString(R.string.downloads_left);
+ downloadsLeft = getResources()
+ .getQuantityString(R.plurals.downloads_left, numDownloads, numDownloads);
} else {
downloadsLeft = getString(R.string.downloads_processing);
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java
index 129055f92..2be075a92 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackService.java
@@ -398,19 +398,25 @@ public class PlaybackService extends Service {
@Override
public void onSleepTimerAlmostExpired() {
- mediaPlayer.setVolume(0.1f);
+ float leftVolume = 0.1f * UserPreferences.getLeftVolume();
+ float rightVolume = 0.1f * UserPreferences.getRightVolume();
+ mediaPlayer.setVolume(leftVolume, rightVolume);
}
@Override
public void onSleepTimerExpired() {
mediaPlayer.pause(true, true);
- mediaPlayer.setVolume(1.0f);
+ float leftVolume = UserPreferences.getLeftVolume();
+ float rightVolume = UserPreferences.getRightVolume();
+ mediaPlayer.setVolume(leftVolume, rightVolume);
sendNotificationBroadcast(NOTIFICATION_TYPE_SLEEPTIMER_UPDATE, 0);
}
@Override
public void onSleepTimerReset() {
- mediaPlayer.setVolume(1.0f);
+ float leftVolume = UserPreferences.getLeftVolume();
+ float rightVolume = UserPreferences.getRightVolume();
+ mediaPlayer.setVolume(leftVolume, rightVolume);
}
@Override
@@ -1165,18 +1171,30 @@ public class PlaybackService extends Service {
public Playable getPlayable() { return mediaPlayer.getPlayable(); }
+ public boolean canSetSpeed() {
+ return mediaPlayer.canSetSpeed();
+ }
+
public void setSpeed(float speed) {
mediaPlayer.setSpeed(speed);
}
- public boolean canSetSpeed() {
- return mediaPlayer.canSetSpeed();
+ public void setVolume(float leftVolume, float rightVolume) {
+ mediaPlayer.setVolume(leftVolume, rightVolume);
}
public float getCurrentPlaybackSpeed() {
return mediaPlayer.getPlaybackSpeed();
}
+ public boolean canDownmix() {
+ return mediaPlayer.canDownmix();
+ }
+
+ public void setDownmix(boolean enable) {
+ mediaPlayer.setDownmix(enable);
+ }
+
public boolean isStartWhenPrepared() {
return mediaPlayer.isStartWhenPrepared();
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceMediaPlayer.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceMediaPlayer.java
index e26ee32cb..a82e82506 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceMediaPlayer.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceMediaPlayer.java
@@ -293,6 +293,7 @@ public class PlaybackServiceMediaPlayer implements SharedPreferences.OnSharedPre
builder.putLong(MediaMetadataCompat.METADATA_KEY_DURATION, p.getDuration());
builder.putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_TITLE, p.getEpisodeTitle());
builder.putString(MediaMetadataCompat.METADATA_KEY_ALBUM, p.getFeedTitle());
+
if (p.getImageUri() != null && UserPreferences.setLockscreenBackground()) {
builder.putString(MediaMetadataCompat.METADATA_KEY_ART_URI, p.getImageUri().toString());
try {
@@ -322,13 +323,10 @@ public class PlaybackServiceMediaPlayer implements SharedPreferences.OnSharedPre
* This method is executed on an internal executor service.
*/
public void resume() {
- executor.submit(new Runnable() {
- @Override
- public void run() {
- playerLock.lock();
- resumeSync();
- playerLock.unlock();
- }
+ executor.submit(() -> {
+ playerLock.lock();
+ resumeSync();
+ playerLock.unlock();
});
}
@@ -339,7 +337,15 @@ public class PlaybackServiceMediaPlayer implements SharedPreferences.OnSharedPre
AudioManager.AUDIOFOCUS_GAIN);
if (focusGained == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
acquireWifiLockIfNecessary();
- setSpeed(Float.parseFloat(UserPreferences.getPlaybackSpeed()));
+ float speed = 1.0f;
+ try {
+ speed = Float.parseFloat(UserPreferences.getPlaybackSpeed());
+ } catch(NumberFormatException e) {
+ Log.e(TAG, Log.getStackTraceString(e));
+ UserPreferences.setPlaybackSpeed(String.valueOf(speed));
+ }
+ setSpeed(speed);
+ setVolume(UserPreferences.getLeftVolume(), UserPreferences.getRightVolume());
if (playerStatus == PlayerStatus.PREPARED && media.getPosition() > 0) {
int newPosition = RewindAfterPauseUtils.calculatePositionWithRewind(
@@ -690,24 +696,39 @@ public class PlaybackServiceMediaPlayer implements SharedPreferences.OnSharedPre
* Sets the playback speed.
* This method is executed on an internal executor service.
*/
- public void setVolume(final float volume) {
- executor.submit(new Runnable() {
- @Override
- public void run() {
- setVolumeSync(volume);
- }
- });
+ public void setVolume(final float volumeLeft, float volumeRight) {
+ executor.submit(() -> setVolumeSync(volumeLeft, volumeRight));
}
/**
* Sets the playback speed.
* This method is executed on the caller's thread.
*/
- private void setVolumeSync(float volume) {
+ private void setVolumeSync(float volumeLeft, float volumeRight) {
playerLock.lock();
if (media != null && media.getMediaType() == MediaType.AUDIO) {
- mediaPlayer.setVolume(volume, volume);
- Log.d(TAG, "Media player volume was set to " + volume);
+ mediaPlayer.setVolume(volumeLeft, volumeRight);
+ Log.d(TAG, "Media player volume was set to " + volumeLeft + " " + volumeRight);
+ }
+ playerLock.unlock();
+ }
+
+ /**
+ * Returns true if the mediaplayer can mix stereo down to mono
+ */
+ public boolean canDownmix() {
+ boolean retVal = false;
+ if (mediaPlayer != null && media != null && media.getMediaType() == MediaType.AUDIO) {
+ retVal = mediaPlayer.canDownmix();
+ }
+ return retVal;
+ }
+
+ public void setDownmix(boolean enable) {
+ playerLock.lock();
+ if (media != null && media.getMediaType() == MediaType.AUDIO) {
+ mediaPlayer.setDownmix(enable);
+ Log.d(TAG, "Media player downmix was set to " + enable);
}
playerLock.unlock();
}
@@ -960,6 +981,8 @@ public class PlaybackServiceMediaPlayer implements SharedPreferences.OnSharedPre
playerLock.lock();
releaseWifiLockIfNecessary();
+ boolean isPlaying = playerStatus == PlayerStatus.PLAYING;
+
if (playerStatus != PlayerStatus.INDETERMINATE) {
setPlayerStatus(PlayerStatus.INDETERMINATE, media);
}
@@ -968,7 +991,7 @@ public class PlaybackServiceMediaPlayer implements SharedPreferences.OnSharedPre
}
audioManager.abandonAudioFocus(audioFocusChangeListener);
- callback.endPlayback(true, wasSkipped);
+ callback.endPlayback(isPlaying, wasSkipped);
playerLock.unlock();
});
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceTaskManager.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceTaskManager.java
index 4e0c8a109..680fb8777 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceTaskManager.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceTaskManager.java
@@ -39,7 +39,7 @@ public class PlaybackServiceTaskManager {
/**
* Notification interval of widget updater in milliseconds.
*/
- public static final int WIDGET_UPDATER_NOTIFICATION_INTERVAL = 1500;
+ public static final int WIDGET_UPDATER_NOTIFICATION_INTERVAL = 1000;
private static final int SCHED_EX_POOL_SIZE = 2;
private final ScheduledThreadPoolExecutor schedExecutor;
diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/APDownloadAlgorithm.java b/core/src/main/java/de/danoeh/antennapod/core/storage/APDownloadAlgorithm.java
index 9e21a55f2..26dc027bf 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/storage/APDownloadAlgorithm.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/storage/APDownloadAlgorithm.java
@@ -7,7 +7,9 @@ import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
+import de.danoeh.antennapod.core.feed.FeedFilter;
import de.danoeh.antennapod.core.feed.FeedItem;
+import de.danoeh.antennapod.core.feed.FeedPreferences;
import de.danoeh.antennapod.core.preferences.UserPreferences;
import de.danoeh.antennapod.core.util.NetworkUtils;
import de.danoeh.antennapod.core.util.PowerUtils;
@@ -54,7 +56,9 @@ public class APDownloadAlgorithm implements AutomaticDownloadAlgorithm {
candidates = new ArrayList<FeedItem>(queue.size() + newItems.size());
candidates.addAll(queue);
for(FeedItem newItem : newItems) {
- if(candidates.contains(newItem) == false) {
+ FeedPreferences feedPrefs = newItem.getFeed().getPreferences();
+ FeedFilter feedFilter = feedPrefs.getFilter();
+ if(candidates.contains(newItem) == false && feedFilter.shouldAutoDownload(newItem)) {
candidates.add(newItem);
}
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java b/core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java
index 16e65f9f3..0563f878f 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java
@@ -371,7 +371,7 @@ public final class DBReader {
/**
* Loads a list of FeedItems that are considered new.
- *
+ * Excludes items from feeds that do not have keep updated enabled.
* @return A list of FeedItems that are considered new.
*/
public static List<FeedItem> getNewItemsList() {
@@ -408,7 +408,7 @@ public final class DBReader {
return items;
}
- static LongList getFavoriteIDList() {
+ public static LongList getFavoriteIDList() {
Log.d(TAG, "getFavoriteIDList() called");
PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/DBTasks.java b/core/src/main/java/de/danoeh/antennapod/core/storage/DBTasks.java
index 157e6d28c..efc60bfc2 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/storage/DBTasks.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/storage/DBTasks.java
@@ -26,6 +26,7 @@ import de.danoeh.antennapod.core.feed.EventDistributor;
import de.danoeh.antennapod.core.feed.Feed;
import de.danoeh.antennapod.core.feed.FeedItem;
import de.danoeh.antennapod.core.feed.FeedMedia;
+import de.danoeh.antennapod.core.feed.FeedPreferences;
import de.danoeh.antennapod.core.service.GpodnetSyncService;
import de.danoeh.antennapod.core.service.download.DownloadStatus;
import de.danoeh.antennapod.core.service.playback.PlaybackService;
@@ -186,21 +187,30 @@ public final class DBTasks {
}
}
+ /**
+ * @param context
+ * @param feedList the list of feeds to refresh
+ */
private static void refreshFeeds(final Context context,
final List<Feed> feedList) {
for (Feed feed : feedList) {
- try {
- refreshFeed(context, feed);
- } catch (DownloadRequestException e) {
- e.printStackTrace();
- DBWriter.addDownloadStatus(
- new DownloadStatus(feed, feed
- .getHumanReadableIdentifier(),
- DownloadError.ERROR_REQUEST_ERROR, false, e
- .getMessage()
- )
- );
+ FeedPreferences prefs = feed.getPreferences();
+ // feeds with !getKeepUpdated can only be refreshed
+ // directly from the FeedActivity
+ if (prefs.getKeepUpdated()) {
+ try {
+ refreshFeed(context, feed);
+ } catch (DownloadRequestException e) {
+ e.printStackTrace();
+ DBWriter.addDownloadStatus(
+ new DownloadStatus(feed, feed
+ .getHumanReadableIdentifier(),
+ DownloadError.ERROR_REQUEST_ERROR, false, e
+ .getMessage()
+ )
+ );
+ }
}
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java b/core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java
index d1d6bd750..e728abc3b 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java
@@ -993,7 +993,6 @@ public class DBWriter {
public static Future<?> saveFeedItemAutoDownloadFailed(final FeedItem feedItem) {
return dbExec.submit(() -> {
int failedAttempts = feedItem.getFailedAutoDownloadAttempts() + 1;
- Log.d(TAG, "failedAttempts: " + failedAttempts);
long autoDownload;
if(!feedItem.getAutoDownload() || failedAttempts >= 10) {
autoDownload = 0; // giving up, disable auto download
@@ -1001,8 +1000,6 @@ public class DBWriter {
} else {
long now = System.currentTimeMillis();
autoDownload = (now / 10) * 10 + failedAttempts;
- Log.d(TAG, "now: " + now);
- Log.d(TAG, "autoDownload: " + autoDownload);
}
final PodDBAdapter adapter = PodDBAdapter.getInstance();
adapter.open();
diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java b/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java
index 915ca14c7..85ff8fc8c 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java
@@ -92,6 +92,7 @@ public class PodDBAdapter {
public static final String KEY_CHAPTER_TYPE = "type";
public static final String KEY_PLAYBACK_COMPLETION_DATE = "playback_completion_date";
public static final String KEY_AUTO_DOWNLOAD = "auto_download";
+ public static final String KEY_KEEP_UPDATED = "keep_updated";
public static final String KEY_AUTO_DELETE_ACTION = "auto_delete_action";
public static final String KEY_PLAYED_DURATION = "played_duration";
public static final String KEY_USERNAME = "username";
@@ -102,6 +103,8 @@ public class PodDBAdapter {
public static final String KEY_LAST_UPDATE_FAILED = "last_update_failed";
public static final String KEY_HAS_EMBEDDED_PICTURE = "has_embedded_picture";
public static final String KEY_LAST_PLAYED_TIME = "last_played_time";
+ public static final String KEY_INCLUDE_FILTER = "include_filter";
+ public static final String KEY_EXCLUDE_FILTER = "exclude_filter";
// Table names
public static final String TABLE_NAME_FEEDS = "Feeds";
@@ -128,6 +131,9 @@ public class PodDBAdapter {
+ KEY_FLATTR_STATUS + " INTEGER,"
+ KEY_USERNAME + " TEXT,"
+ KEY_PASSWORD + " TEXT,"
+ + KEY_INCLUDE_FILTER + " TEXT DEFAULT '',"
+ + KEY_EXCLUDE_FILTER + " TEXT DEFAULT '',"
+ + KEY_KEEP_UPDATED + " INTEGER DEFAULT 1,"
+ KEY_IS_PAGED + " INTEGER DEFAULT 0,"
+ KEY_NEXT_PAGE_LINK + " TEXT,"
+ KEY_HIDE + " TEXT,"
@@ -230,6 +236,7 @@ public class PodDBAdapter {
TABLE_NAME_FEEDS + "." + KEY_TYPE,
TABLE_NAME_FEEDS + "." + KEY_FEED_IDENTIFIER,
TABLE_NAME_FEEDS + "." + KEY_AUTO_DOWNLOAD,
+ TABLE_NAME_FEEDS + "." + KEY_KEEP_UPDATED,
TABLE_NAME_FEEDS + "." + KEY_FLATTR_STATUS,
TABLE_NAME_FEEDS + "." + KEY_IS_PAGED,
TABLE_NAME_FEEDS + "." + KEY_NEXT_PAGE_LINK,
@@ -238,6 +245,8 @@ public class PodDBAdapter {
TABLE_NAME_FEEDS + "." + KEY_HIDE,
TABLE_NAME_FEEDS + "." + KEY_LAST_UPDATE_FAILED,
TABLE_NAME_FEEDS + "." + KEY_AUTO_DELETE_ACTION,
+ TABLE_NAME_FEEDS + "." + KEY_INCLUDE_FILTER,
+ TABLE_NAME_FEEDS + "." + KEY_EXCLUDE_FILTER
};
/**
@@ -392,9 +401,12 @@ public class PodDBAdapter {
}
ContentValues values = new ContentValues();
values.put(KEY_AUTO_DOWNLOAD, prefs.getAutoDownload());
+ values.put(KEY_KEEP_UPDATED, prefs.getKeepUpdated());
values.put(KEY_AUTO_DELETE_ACTION,prefs.getAutoDeleteAction().ordinal());
values.put(KEY_USERNAME, prefs.getUsername());
values.put(KEY_PASSWORD, prefs.getPassword());
+ values.put(KEY_INCLUDE_FILTER, prefs.getFilter().getIncludeFilter());
+ values.put(KEY_EXCLUDE_FILTER, prefs.getFilter().getExcludeFilter());
db.update(TABLE_NAME_FEEDS, values, KEY_ID + "=?", new String[]{String.valueOf(prefs.getFeedID())});
}
@@ -1119,13 +1131,6 @@ public class PodDBAdapter {
return c;
}
- public final Cursor getNewItemIdsCursor() {
- final String query = "SELECT " + KEY_ID
- + " FROM " + TABLE_NAME_FEED_ITEMS
- + " WHERE " + KEY_READ + "=" + FeedItem.NEW;
- return db.rawQuery(query, null);
- }
-
/**
* Returns a cursor which contains all items of a feed that are considered new.
* The returned cursor uses the FEEDITEM_SEL_FI_SMALL selection.
@@ -1142,13 +1147,19 @@ public class PodDBAdapter {
/**
* Returns a cursor which contains all feed items that are considered new.
+ * Excludes those feeds that do not have 'Keep Updated' enabled.
* The returned cursor uses the FEEDITEM_SEL_FI_SMALL selection.
*/
public final Cursor getNewItemsCursor() {
- final String query = "SELECT " + SEL_FI_SMALL_STR
- + " FROM " + TABLE_NAME_FEED_ITEMS
- + " WHERE " + KEY_READ + "=" + FeedItem.NEW
- + " ORDER BY " + KEY_PUBDATE + " DESC";
+ String[] args = new String[] {
+ SEL_FI_SMALL_STR,
+ TABLE_NAME_FEED_ITEMS,
+ TABLE_NAME_FEEDS,
+ TABLE_NAME_FEED_ITEMS + "." + KEY_FEED + "=" + TABLE_NAME_FEEDS + "." + KEY_ID,
+ TABLE_NAME_FEED_ITEMS + "." + KEY_READ + "=" + FeedItem.NEW + " AND " + TABLE_NAME_FEEDS + "." + KEY_KEEP_UPDATED + " > 0",
+ KEY_PUBDATE + " DESC"
+ };
+ final String query = String.format("SELECT %s FROM %s INNER JOIN %s ON %s WHERE %s ORDER BY %s", args);
Cursor c = db.rawQuery(query, null);
return c;
}
@@ -1501,7 +1512,7 @@ public class PodDBAdapter {
*/
private static class PodDBHelper extends SQLiteOpenHelper {
- private final static int VERSION = 1040013;
+ private final static int VERSION = 1050003;
private Context context;
@@ -1746,6 +1757,54 @@ public class PodDBAdapter {
db.execSQL(PodDBAdapter.CREATE_INDEX_FEEDITEMS_READ);
}
+ if (oldVersion < 1050003) {
+ // Migrates feed list filter data
+
+ db.beginTransaction();
+
+ // Change to intermediate values to avoid overwriting in the following find/replace
+ db.execSQL("UPDATE " + TABLE_NAME_FEEDS + "\n" +
+ "SET " + KEY_HIDE + " = replace(" + KEY_HIDE + ", 'unplayed', 'noplay')");
+ db.execSQL("UPDATE " + TABLE_NAME_FEEDS + "\n" +
+ "SET " + KEY_HIDE + " = replace(" + KEY_HIDE + ", 'not_queued', 'noqueue')");
+ db.execSQL("UPDATE " + TABLE_NAME_FEEDS + "\n" +
+ "SET " + KEY_HIDE + " = replace(" + KEY_HIDE + ", 'not_downloaded', 'nodl')");
+
+ // Replace played, queued, and downloaded with their opposites
+ db.execSQL("UPDATE " + TABLE_NAME_FEEDS + "\n" +
+ "SET " + KEY_HIDE + " = replace(" + KEY_HIDE + ", 'played', 'unplayed')");
+ db.execSQL("UPDATE " + TABLE_NAME_FEEDS + "\n" +
+ "SET " + KEY_HIDE + " = replace(" + KEY_HIDE + ", 'queued', 'not_queued')");
+ db.execSQL("UPDATE " + TABLE_NAME_FEEDS + "\n" +
+ "SET " + KEY_HIDE + " = replace(" + KEY_HIDE + ", 'downloaded', 'not_downloaded')");
+
+ // Now replace intermediates for unplayed, not queued, etc. with their opposites
+ db.execSQL("UPDATE " + TABLE_NAME_FEEDS + "\n" +
+ "SET " + KEY_HIDE + " = replace(" + KEY_HIDE + ", 'noplay', 'played')");
+ db.execSQL("UPDATE " + TABLE_NAME_FEEDS + "\n" +
+ "SET " + KEY_HIDE + " = replace(" + KEY_HIDE + ", 'noqueue', 'queued')");
+ db.execSQL("UPDATE " + TABLE_NAME_FEEDS + "\n" +
+ "SET " + KEY_HIDE + " = replace(" + KEY_HIDE + ", 'nodl', 'downloaded')");
+
+ // Paused doesn't have an opposite, so unplayed is the next best option
+ db.execSQL("UPDATE " + TABLE_NAME_FEEDS + "\n" +
+ "SET " + KEY_HIDE + " = replace(" + KEY_HIDE + ", 'paused', 'unplayed')");
+
+ db.setTransactionSuccessful();
+ db.endTransaction();
+
+ // and now get ready for autodownload filters
+ db.execSQL("ALTER TABLE " + PodDBAdapter.TABLE_NAME_FEEDS
+ + " ADD COLUMN " + PodDBAdapter.KEY_INCLUDE_FILTER + " TEXT DEFAULT ''");
+
+ db.execSQL("ALTER TABLE " + PodDBAdapter.TABLE_NAME_FEEDS
+ + " ADD COLUMN " + PodDBAdapter.KEY_EXCLUDE_FILTER + " TEXT DEFAULT ''");
+
+ // and now auto refresh
+ db.execSQL("ALTER TABLE " + PodDBAdapter.TABLE_NAME_FEEDS
+ + " ADD COLUMN " + PodDBAdapter.KEY_KEEP_UPDATED + " INTEGER DEFAULT 1");
+ }
+
EventBus.getDefault().post(ProgressEvent.end());
}
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/NSITunes.java b/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/NSITunes.java
index 9b9849c49..99c4cd67a 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/NSITunes.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/NSITunes.java
@@ -19,6 +19,8 @@ public class NSITunes extends Namespace {
private static final String AUTHOR = "author";
public static final String DURATION = "duration";
+ public static final String SUBTITLE = "subtitle";
+ public static final String SUMMARY = "summary";
@Override
@@ -67,13 +69,28 @@ public class NSITunes extends Namespace {
} else {
return;
}
-
state.getTempObjects().put(DURATION, duration);
} catch (NumberFormatException e) {
e.printStackTrace();
}
+ } else if (localName.equals(SUBTITLE)) {
+ String subtitle = state.getContentBuf().toString();
+ if (state.getCurrentItem() != null) {
+ if (TextUtils.isEmpty(state.getCurrentItem().getDescription())) {
+ state.getCurrentItem().setDescription(subtitle);
+ }
+ } else {
+ if (TextUtils.isEmpty(state.getFeed().getDescription())) {
+ state.getFeed().setDescription(subtitle);
+ }
+ }
+ } else if (localName.equals(SUMMARY)) {
+ String summary = state.getContentBuf().toString();
+ if (state.getCurrentItem() != null) {
+ state.getCurrentItem().setDescription(summary);
+ } else {
+ state.getFeed().setDescription(summary);
+ }
}
-
}
-
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/atom/NSAtom.java b/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/atom/NSAtom.java
index a690e7646..b23a142af 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/atom/NSAtom.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/atom/NSAtom.java
@@ -4,7 +4,6 @@ import android.util.Log;
import org.xml.sax.Attributes;
-import de.danoeh.antennapod.core.BuildConfig;
import de.danoeh.antennapod.core.feed.FeedImage;
import de.danoeh.antennapod.core.feed.FeedItem;
import de.danoeh.antennapod.core.feed.FeedMedia;
@@ -88,16 +87,15 @@ public class NSAtom extends Namespace {
size = Long.parseLong(strSize);
}
} catch (NumberFormatException e) {
- if (BuildConfig.DEBUG) Log.d(TAG, "Length attribute could not be parsed.");
+ Log.d(TAG, "Length attribute could not be parsed.");
}
String type = attributes.getValue(LINK_TYPE);
if (SyndTypeUtils.enclosureTypeValid(type)
- || (type = SyndTypeUtils
- .getValidMimeTypeFromUrl(href)) != null) {
- state.getCurrentItem().setMedia(
- new FeedMedia(state.getCurrentItem(), href,
- size, type)
- );
+ || (type = SyndTypeUtils.getValidMimeTypeFromUrl(href)) != null) {
+ FeedItem currItem = state.getCurrentItem();
+ if(!currItem.hasMedia()) {
+ currItem.setMedia(new FeedMedia(currItem, href, size, type));
+ }
}
} else if (rel.equals(LINK_REL_PAYMENT)) {
state.getCurrentItem().setPaymentLink(href);
@@ -111,9 +109,11 @@ public class NSAtom extends Namespace {
* LINK_TYPE_HTML or LINK_TYPE_XHTML
*/
if ((type == null && state.getFeed().getLink() == null)
- || (type != null && (type.equals(LINK_TYPE_HTML) || type.equals(LINK_TYPE_XHTML)))) {
+ || (type != null && (type.equals(LINK_TYPE_HTML)
+ || type.equals(LINK_TYPE_XHTML)))) {
state.getFeed().setLink(href);
- } else if (type != null && (type.equals(LINK_TYPE_ATOM) || type.equals(LINK_TYPE_RSS))) {
+ } else if (type != null && (type.equals(LINK_TYPE_ATOM)
+ || type.equals(LINK_TYPE_RSS))) {
// treat as podlove alternate feed
String title = attributes.getValue(LINK_TITLE);
if (title == null) {
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/playback/AudioPlayer.java b/core/src/main/java/de/danoeh/antennapod/core/util/playback/AudioPlayer.java
index b6beb5bf1..f0850e6df 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/util/playback/AudioPlayer.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/util/playback/AudioPlayer.java
@@ -37,4 +37,9 @@ public class AudioPlayer extends MediaPlayer implements IPlayer {
protected boolean useSonic() {
return UserPreferences.useSonic();
}
+
+ @Override
+ protected boolean downmix() {
+ return UserPreferences.stereoToMono();
+ }
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/playback/IPlayer.java b/core/src/main/java/de/danoeh/antennapod/core/util/playback/IPlayer.java
index 147c7848d..d67153a4e 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/util/playback/IPlayer.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/util/playback/IPlayer.java
@@ -10,6 +10,8 @@ public interface IPlayer {
boolean canSetSpeed();
+ boolean canDownmix();
+
float getCurrentPitchStepsAdjustment();
int getCurrentPosition();
@@ -57,6 +59,8 @@ public interface IPlayer {
void setPlaybackSpeed(float f);
+ void setDownmix(boolean enable);
+
void setVolume(float left, float right);
void start();
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/playback/PlaybackController.java b/core/src/main/java/de/danoeh/antennapod/core/util/playback/PlaybackController.java
index a519fb555..27935978c 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/util/playback/PlaybackController.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/util/playback/PlaybackController.java
@@ -11,6 +11,7 @@ import android.content.SharedPreferences;
import android.content.res.TypedArray;
import android.media.MediaPlayer;
import android.os.AsyncTask;
+import android.os.Build;
import android.os.IBinder;
import android.preference.PreferenceManager;
import android.support.annotation.NonNull;
@@ -18,7 +19,6 @@ import android.text.TextUtils;
import android.util.Log;
import android.util.Pair;
import android.view.SurfaceHolder;
-import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.SeekBar;
@@ -27,7 +27,6 @@ import android.widget.TextView;
import java.util.concurrent.RejectedExecutionHandler;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.ScheduledThreadPoolExecutor;
-import java.util.concurrent.ThreadFactory;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
@@ -36,6 +35,7 @@ import de.danoeh.antennapod.core.feed.Chapter;
import de.danoeh.antennapod.core.feed.FeedMedia;
import de.danoeh.antennapod.core.feed.MediaType;
import de.danoeh.antennapod.core.preferences.PlaybackPreferences;
+import de.danoeh.antennapod.core.preferences.UserPreferences;
import de.danoeh.antennapod.core.service.playback.PlaybackService;
import de.danoeh.antennapod.core.service.playback.PlaybackServiceMediaPlayer;
import de.danoeh.antennapod.core.service.playback.PlayerStatus;
@@ -48,6 +48,7 @@ import de.danoeh.antennapod.core.util.playback.Playable.PlayableUtils;
* control playback instead of communicating with the PlaybackService directly.
*/
public abstract class PlaybackController {
+
private static final String TAG = "PlaybackController";
public static final int INVALID_TIME = -1;
@@ -78,16 +79,11 @@ public abstract class PlaybackController {
this.activity = activity;
this.reinitOnPause = reinitOnPause;
schedExecutor = new ScheduledThreadPoolExecutor(SCHED_EX_POOLSIZE,
- new ThreadFactory() {
-
- @Override
- public Thread newThread(Runnable r) {
- Thread t = new Thread(r);
- t.setPriority(Thread.MIN_PRIORITY);
- return t;
- }
+ r -> {
+ Thread t = new Thread(r);
+ t.setPriority(Thread.MIN_PRIORITY);
+ return t;
}, new RejectedExecutionHandler() {
-
@Override
public void rejectedExecution(Runnable r,
ThreadPoolExecutor executor) {
@@ -104,10 +100,10 @@ public abstract class PlaybackController {
*/
public void init() {
activity.registerReceiver(statusUpdate, new IntentFilter(
- PlaybackService.ACTION_PLAYER_STATUS_CHANGED));
+ PlaybackService.ACTION_PLAYER_STATUS_CHANGED));
activity.registerReceiver(notificationReceiver, new IntentFilter(
- PlaybackService.ACTION_PLAYER_NOTIFICATION));
+ PlaybackService.ACTION_PLAYER_NOTIFICATION));
activity.registerReceiver(shutdownReceiver, new IntentFilter(
PlaybackService.ACTION_SHUTDOWN_PLAYBACK_SERVICE));
@@ -239,7 +235,7 @@ public abstract class PlaybackController {
return null;
}
- public abstract void setupGUI();
+
private void setupPositionObserver() {
if ((positionObserverFuture != null && positionObserverFuture
@@ -263,8 +259,6 @@ public abstract class PlaybackController {
}
}
- public abstract void onPositionObserverUpdate();
-
private ServiceConnection mConnection = new ServiceConnection() {
public void onServiceConnected(ComponentName className, IBinder service) {
playbackService = ((PlaybackService.LocalBinder) service)
@@ -367,26 +361,31 @@ public abstract class PlaybackController {
}
};
- public abstract void onPlaybackSpeedChange();
+ public void setupGUI() {};
+
+ public void onPositionObserverUpdate() {};
+
- public abstract void onShutdownNotification();
+ public void onPlaybackSpeedChange() {};
+
+ public void onShutdownNotification() {};
/**
* Called when the currently displayed information should be refreshed.
*/
- public abstract void onReloadNotification(int code);
+ public void onReloadNotification(int code) {};
- public abstract void onBufferStart();
+ public void onBufferStart() {};
- public abstract void onBufferEnd();
+ public void onBufferEnd() {};
- public abstract void onBufferUpdate(float progress);
+ public void onBufferUpdate(float progress) {};
- public abstract void onSleepTimerUpdate();
+ public void onSleepTimerUpdate() {};
- public abstract void handleError(int code);
+ public void handleError(int code) {};
- public abstract void onPlaybackEnd();
+ public void onPlaybackEnd() {};
public void repeatHandleStatus() {
if (status != null && playbackService != null) {
@@ -417,7 +416,6 @@ public abstract class PlaybackController {
Log.d(TAG, "status: " + status.toString());
switch (status) {
-
case ERROR:
postStatusMsg(R.string.player_error_msg);
handleError(MediaPlayer.MEDIA_ERROR_UNKNOWN);
@@ -484,15 +482,19 @@ public abstract class PlaybackController {
}
}
- public abstract ImageButton getPlayButton();
+ public ImageButton getPlayButton() {
+ return null;
+ };
- public abstract void postStatusMsg(int msg);
+ public void postStatusMsg(int msg) {};
- public abstract void clearStatusMsg();
+ public void clearStatusMsg() {};
- public abstract boolean loadMediaInfo();
+ public boolean loadMediaInfo() {
+ return false;
+ };
- public abstract void onAwaitingVideoSurface();
+ public void onAwaitingVideoSurface() {};
/**
* Called when connection to playback service has been established or
@@ -526,7 +528,7 @@ public abstract class PlaybackController {
}
}
- public abstract void onServiceQueried();
+ public void onServiceQueried() {};
/**
* Should be used by classes which implement the OnSeekBarChanged interface.
@@ -573,37 +575,32 @@ public abstract class PlaybackController {
}
public OnClickListener newOnPlayButtonClickListener() {
- return new OnClickListener() {
- @Override
- public void onClick(View v) {
- if (playbackService != null) {
- switch (status) {
- case PLAYING:
- playbackService.pause(true, reinitOnPause);
- break;
- case PAUSED:
- case PREPARED:
- playbackService.resume();
- break;
- case PREPARING:
- playbackService.setStartWhenPrepared(!playbackService
- .isStartWhenPrepared());
- if (reinitOnPause
- && playbackService.isStartWhenPrepared() == false) {
- playbackService.reinit();
- }
- break;
- case INITIALIZED:
- playbackService.setStartWhenPrepared(true);
- playbackService.prepare();
- break;
+ return v -> {
+ if (playbackService == null) {
+ Log.w(TAG, "Play/Pause button was pressed, but playbackservice was null!");
+ return;
+ }
+ switch (status) {
+ case PLAYING:
+ playbackService.pause(true, reinitOnPause);
+ break;
+ case PAUSED:
+ case PREPARED:
+ playbackService.resume();
+ break;
+ case PREPARING:
+ playbackService.setStartWhenPrepared(!playbackService
+ .isStartWhenPrepared());
+ if (reinitOnPause
+ && playbackService.isStartWhenPrepared() == false) {
+ playbackService.reinit();
}
- } else {
- Log.w(TAG,
- "Play/Pause button was pressed, but playbackservice was null!");
- }
+ break;
+ case INITIALIZED:
+ playbackService.setStartWhenPrepared(true);
+ playbackService.prepare();
+ break;
}
-
};
}
@@ -682,6 +679,11 @@ public abstract class PlaybackController {
}
public boolean canSetPlaybackSpeed() {
+ if (org.antennapod.audio.MediaPlayer.isPrestoLibraryInstalled(activity.getApplicationContext())
+ || UserPreferences.useSonic()
+ || Build.VERSION.SDK_INT >= 23) {
+ return true;
+ }
return playbackService != null && playbackService.canSetSpeed();
}
@@ -691,6 +693,12 @@ public abstract class PlaybackController {
}
}
+ public void setVolume(float leftVolume, float rightVolume) {
+ if (playbackService != null) {
+ playbackService.setVolume(leftVolume, rightVolume);
+ }
+ }
+
public float getCurrentPlaybackSpeedMultiplier() {
if (canSetPlaybackSpeed()) {
return playbackService.getCurrentPlaybackSpeed();
@@ -699,6 +707,16 @@ public abstract class PlaybackController {
}
}
+ public boolean canDownmix() {
+ return playbackService != null && playbackService.canDownmix();
+ }
+
+ public void setDownmix(boolean enable) {
+ if(playbackService != null) {
+ playbackService.setDownmix(enable);
+ }
+ }
+
public boolean isPlayingVideo() {
if (playbackService != null) {
return PlaybackService.getCurrentMediaType() == MediaType.VIDEO;
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/playback/Timeline.java b/core/src/main/java/de/danoeh/antennapod/core/util/playback/Timeline.java
index 00f2e6f57..2eee1ac87 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/util/playback/Timeline.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/util/playback/Timeline.java
@@ -88,7 +88,7 @@ public class Timeline {
}
// replace ASCII line breaks with HTML ones if shownotes don't contain HTML line breaks already
- if(!LINE_BREAK_REGEX.matcher(shownotes).find()) {
+ if(!LINE_BREAK_REGEX.matcher(shownotes).find() && !shownotes.contains("<p>")) {
shownotes = shownotes.replace("\n", "<br />");
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/playback/VideoPlayer.java b/core/src/main/java/de/danoeh/antennapod/core/util/playback/VideoPlayer.java
index dc5270d8f..368379509 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/util/playback/VideoPlayer.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/util/playback/VideoPlayer.java
@@ -17,6 +17,11 @@ public class VideoPlayer extends MediaPlayer implements IPlayer {
}
@Override
+ public boolean canDownmix() {
+ return false;
+ }
+
+ @Override
public float getCurrentPitchStepsAdjustment() {
return 1;
}
@@ -60,6 +65,12 @@ public class VideoPlayer extends MediaPlayer implements IPlayer {
throw new UnsupportedOperationException("Setting playback speed unsupported in video player");
}
+ @Override
+ public void setDownmix(boolean b) {
+ Log.e(TAG, "Setting downmix unsupported in video player");
+ throw new UnsupportedOperationException("Setting downmix unsupported in video player");
+ }
+
@Override
public void setVideoScalingMode(int mode) {
super.setVideoScalingMode(mode);
diff --git a/core/src/main/res/drawable-hdpi-v11/stat_notify_sync.png b/core/src/main/res/drawable-hdpi-v11/stat_notify_sync.png
deleted file mode 100644
index 90b39c958..000000000
--- a/core/src/main/res/drawable-hdpi-v11/stat_notify_sync.png
+++ /dev/null
Binary files differ
diff --git a/core/src/main/res/drawable-hdpi-v11/stat_notify_sync_error.png b/core/src/main/res/drawable-hdpi-v11/stat_notify_sync_error.png
deleted file mode 100644
index 074cdee27..000000000
--- a/core/src/main/res/drawable-hdpi-v11/stat_notify_sync_error.png
+++ /dev/null
Binary files differ
diff --git a/core/src/main/res/drawable-hdpi/ic_av_fast_forward_80dp.png b/core/src/main/res/drawable-hdpi/ic_av_fast_forward_80dp.png
new file mode 100755
index 000000000..a32968a19
--- /dev/null
+++ b/core/src/main/res/drawable-hdpi/ic_av_fast_forward_80dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-hdpi/ic_av_rewind_80dp.png b/core/src/main/res/drawable-hdpi/ic_av_rewind_80dp.png
new file mode 100755
index 000000000..e39de4dcf
--- /dev/null
+++ b/core/src/main/res/drawable-hdpi/ic_av_rewind_80dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-hdpi/ic_check_box_grey600_24dp.png b/core/src/main/res/drawable-hdpi/ic_check_box_grey600_24dp.png
new file mode 100644
index 000000000..e4e833242
--- /dev/null
+++ b/core/src/main/res/drawable-hdpi/ic_check_box_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-hdpi/ic_check_box_outline_blank_grey600_24dp.png b/core/src/main/res/drawable-hdpi/ic_check_box_outline_blank_grey600_24dp.png
new file mode 100644
index 000000000..4f1a804b3
--- /dev/null
+++ b/core/src/main/res/drawable-hdpi/ic_check_box_outline_blank_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-hdpi/ic_check_box_outline_blank_white_24dp.png b/core/src/main/res/drawable-hdpi/ic_check_box_outline_blank_white_24dp.png
new file mode 100644
index 000000000..6dbf83c58
--- /dev/null
+++ b/core/src/main/res/drawable-hdpi/ic_check_box_outline_blank_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-hdpi/ic_check_box_white_24dp.png b/core/src/main/res/drawable-hdpi/ic_check_box_white_24dp.png
new file mode 100644
index 000000000..d3f636f13
--- /dev/null
+++ b/core/src/main/res/drawable-hdpi/ic_check_box_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-hdpi/ic_drag_vertical_grey600_48dp.9.png b/core/src/main/res/drawable-hdpi/ic_drag_vertical_grey600_48dp.9.png
new file mode 100644
index 000000000..f2d9906c6
--- /dev/null
+++ b/core/src/main/res/drawable-hdpi/ic_drag_vertical_grey600_48dp.9.png
Binary files differ
diff --git a/core/src/main/res/drawable-hdpi/ic_drag_vertical_grey600_48dp.png b/core/src/main/res/drawable-hdpi/ic_drag_vertical_grey600_48dp.png
deleted file mode 100644
index 17202c8d1..000000000
--- a/core/src/main/res/drawable-hdpi/ic_drag_vertical_grey600_48dp.png
+++ /dev/null
Binary files differ
diff --git a/core/src/main/res/drawable-hdpi/ic_drag_vertical_white_48dp.9.png b/core/src/main/res/drawable-hdpi/ic_drag_vertical_white_48dp.9.png
new file mode 100644
index 000000000..a2a91938d
--- /dev/null
+++ b/core/src/main/res/drawable-hdpi/ic_drag_vertical_white_48dp.9.png
Binary files differ
diff --git a/core/src/main/res/drawable-hdpi/ic_drag_vertical_white_48dp.png b/core/src/main/res/drawable-hdpi/ic_drag_vertical_white_48dp.png
deleted file mode 100644
index 48e221b86..000000000
--- a/core/src/main/res/drawable-hdpi/ic_drag_vertical_white_48dp.png
+++ /dev/null
Binary files differ
diff --git a/core/src/main/res/drawable-hdpi/ic_feed_grey600_24dp.png b/core/src/main/res/drawable-hdpi/ic_feed_grey600_24dp.png
index 0c3bb0757..d1ad6629d 100755
--- a/core/src/main/res/drawable-hdpi/ic_feed_grey600_24dp.png
+++ b/core/src/main/res/drawable-hdpi/ic_feed_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-hdpi/ic_feed_white_24dp.png b/core/src/main/res/drawable-hdpi/ic_feed_white_24dp.png
index 667300129..9ff662fca 100755
--- a/core/src/main/res/drawable-hdpi/ic_feed_white_24dp.png
+++ b/core/src/main/res/drawable-hdpi/ic_feed_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-hdpi/ic_indeterminate_check_box_grey600_24dp.png b/core/src/main/res/drawable-hdpi/ic_indeterminate_check_box_grey600_24dp.png
new file mode 100644
index 000000000..62dd8ef48
--- /dev/null
+++ b/core/src/main/res/drawable-hdpi/ic_indeterminate_check_box_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-hdpi/ic_indeterminate_check_box_white_24dp.png b/core/src/main/res/drawable-hdpi/ic_indeterminate_check_box_white_24dp.png
new file mode 100644
index 000000000..5bb43b464
--- /dev/null
+++ b/core/src/main/res/drawable-hdpi/ic_indeterminate_check_box_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-hdpi/ic_skip_grey600_36dp.png b/core/src/main/res/drawable-hdpi/ic_skip_grey600_36dp.png
new file mode 100644
index 000000000..edbc95b05
--- /dev/null
+++ b/core/src/main/res/drawable-hdpi/ic_skip_grey600_36dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-hdpi/ic_skip_white_36dp.png b/core/src/main/res/drawable-hdpi/ic_skip_white_36dp.png
new file mode 100644
index 000000000..cbfb262d8
--- /dev/null
+++ b/core/src/main/res/drawable-hdpi/ic_skip_white_36dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-hdpi/ic_sleep_grey600_24dp.png b/core/src/main/res/drawable-hdpi/ic_sleep_grey600_24dp.png
new file mode 100644
index 000000000..809066499
--- /dev/null
+++ b/core/src/main/res/drawable-hdpi/ic_sleep_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-hdpi/ic_sleep_off_grey600_24dp.png b/core/src/main/res/drawable-hdpi/ic_sleep_off_grey600_24dp.png
new file mode 100644
index 000000000..4496a320d
--- /dev/null
+++ b/core/src/main/res/drawable-hdpi/ic_sleep_off_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-hdpi/ic_sleep_off_white_24dp.png b/core/src/main/res/drawable-hdpi/ic_sleep_off_white_24dp.png
new file mode 100644
index 000000000..79684ab65
--- /dev/null
+++ b/core/src/main/res/drawable-hdpi/ic_sleep_off_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-hdpi/ic_sleep_white_24dp.png b/core/src/main/res/drawable-hdpi/ic_sleep_white_24dp.png
new file mode 100644
index 000000000..f0df6032c
--- /dev/null
+++ b/core/src/main/res/drawable-hdpi/ic_sleep_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-hdpi/ic_sort_grey600_24dp.png b/core/src/main/res/drawable-hdpi/ic_sort_grey600_24dp.png
new file mode 100644
index 000000000..0a52de9fe
--- /dev/null
+++ b/core/src/main/res/drawable-hdpi/ic_sort_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-hdpi/ic_sort_white_24dp.png b/core/src/main/res/drawable-hdpi/ic_sort_white_24dp.png
new file mode 100644
index 000000000..26014a542
--- /dev/null
+++ b/core/src/main/res/drawable-hdpi/ic_sort_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-hdpi/ic_star_border_grey600_24dp.png b/core/src/main/res/drawable-hdpi/ic_star_border_grey600_24dp.png
new file mode 100644
index 000000000..006410bc3
--- /dev/null
+++ b/core/src/main/res/drawable-hdpi/ic_star_border_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-hdpi/ic_star_border_white_24dp.png b/core/src/main/res/drawable-hdpi/ic_star_border_white_24dp.png
new file mode 100644
index 000000000..27831192f
--- /dev/null
+++ b/core/src/main/res/drawable-hdpi/ic_star_border_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-hdpi/ic_star_grey600_24dp.png b/core/src/main/res/drawable-hdpi/ic_star_grey600_24dp.png
new file mode 100644
index 000000000..93f70a024
--- /dev/null
+++ b/core/src/main/res/drawable-hdpi/ic_star_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-hdpi/ic_star_white_24dp.png b/core/src/main/res/drawable-hdpi/ic_star_white_24dp.png
new file mode 100644
index 000000000..e8619b780
--- /dev/null
+++ b/core/src/main/res/drawable-hdpi/ic_star_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-hdpi/stat_notify_sync.png b/core/src/main/res/drawable-hdpi/stat_notify_sync.png
index bfb8110fe..ca6c68e4e 100644
--- a/core/src/main/res/drawable-hdpi/stat_notify_sync.png
+++ b/core/src/main/res/drawable-hdpi/stat_notify_sync.png
Binary files differ
diff --git a/core/src/main/res/drawable-hdpi/stat_notify_sync_error.png b/core/src/main/res/drawable-hdpi/stat_notify_sync_error.png
index b340a313e..84f19cd4e 100644
--- a/core/src/main/res/drawable-hdpi/stat_notify_sync_error.png
+++ b/core/src/main/res/drawable-hdpi/stat_notify_sync_error.png
Binary files differ
diff --git a/core/src/main/res/drawable-mdpi-v11/stat_notify_sync.png b/core/src/main/res/drawable-mdpi-v11/stat_notify_sync.png
deleted file mode 100644
index 1be8677f1..000000000
--- a/core/src/main/res/drawable-mdpi-v11/stat_notify_sync.png
+++ /dev/null
Binary files differ
diff --git a/core/src/main/res/drawable-mdpi-v11/stat_notify_sync_error.png b/core/src/main/res/drawable-mdpi-v11/stat_notify_sync_error.png
deleted file mode 100644
index 30658c583..000000000
--- a/core/src/main/res/drawable-mdpi-v11/stat_notify_sync_error.png
+++ /dev/null
Binary files differ
diff --git a/core/src/main/res/drawable-mdpi/ic_av_fast_forward_80dp.png b/core/src/main/res/drawable-mdpi/ic_av_fast_forward_80dp.png
new file mode 100755
index 000000000..69b81c10d
--- /dev/null
+++ b/core/src/main/res/drawable-mdpi/ic_av_fast_forward_80dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-mdpi/ic_av_rewind_80dp.png b/core/src/main/res/drawable-mdpi/ic_av_rewind_80dp.png
new file mode 100755
index 000000000..5355abfd6
--- /dev/null
+++ b/core/src/main/res/drawable-mdpi/ic_av_rewind_80dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-mdpi/ic_check_box_grey600_24dp.png b/core/src/main/res/drawable-mdpi/ic_check_box_grey600_24dp.png
new file mode 100644
index 000000000..a6bdce736
--- /dev/null
+++ b/core/src/main/res/drawable-mdpi/ic_check_box_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-mdpi/ic_check_box_outline_blank_grey600_24dp.png b/core/src/main/res/drawable-mdpi/ic_check_box_outline_blank_grey600_24dp.png
new file mode 100644
index 000000000..cd90223d1
--- /dev/null
+++ b/core/src/main/res/drawable-mdpi/ic_check_box_outline_blank_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-mdpi/ic_check_box_outline_blank_white_24dp.png b/core/src/main/res/drawable-mdpi/ic_check_box_outline_blank_white_24dp.png
new file mode 100644
index 000000000..8a014bda1
--- /dev/null
+++ b/core/src/main/res/drawable-mdpi/ic_check_box_outline_blank_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-mdpi/ic_check_box_white_24dp.png b/core/src/main/res/drawable-mdpi/ic_check_box_white_24dp.png
new file mode 100644
index 000000000..0811a3493
--- /dev/null
+++ b/core/src/main/res/drawable-mdpi/ic_check_box_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-mdpi/ic_drag_vertical_grey600_48dp.9.png b/core/src/main/res/drawable-mdpi/ic_drag_vertical_grey600_48dp.9.png
new file mode 100644
index 000000000..0d8277204
--- /dev/null
+++ b/core/src/main/res/drawable-mdpi/ic_drag_vertical_grey600_48dp.9.png
Binary files differ
diff --git a/core/src/main/res/drawable-mdpi/ic_drag_vertical_grey600_48dp.png b/core/src/main/res/drawable-mdpi/ic_drag_vertical_grey600_48dp.png
deleted file mode 100644
index 31ef36bde..000000000
--- a/core/src/main/res/drawable-mdpi/ic_drag_vertical_grey600_48dp.png
+++ /dev/null
Binary files differ
diff --git a/core/src/main/res/drawable-mdpi/ic_drag_vertical_white_48dp.9.png b/core/src/main/res/drawable-mdpi/ic_drag_vertical_white_48dp.9.png
new file mode 100644
index 000000000..15d016e89
--- /dev/null
+++ b/core/src/main/res/drawable-mdpi/ic_drag_vertical_white_48dp.9.png
Binary files differ
diff --git a/core/src/main/res/drawable-mdpi/ic_drag_vertical_white_48dp.png b/core/src/main/res/drawable-mdpi/ic_drag_vertical_white_48dp.png
deleted file mode 100644
index 1c0e89e60..000000000
--- a/core/src/main/res/drawable-mdpi/ic_drag_vertical_white_48dp.png
+++ /dev/null
Binary files differ
diff --git a/core/src/main/res/drawable-mdpi/ic_feed_grey600_24dp.png b/core/src/main/res/drawable-mdpi/ic_feed_grey600_24dp.png
index d46b325d8..3932b6eef 100755
--- a/core/src/main/res/drawable-mdpi/ic_feed_grey600_24dp.png
+++ b/core/src/main/res/drawable-mdpi/ic_feed_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-mdpi/ic_feed_white_24dp.png b/core/src/main/res/drawable-mdpi/ic_feed_white_24dp.png
index ac94476c2..9c2a1eb6e 100755
--- a/core/src/main/res/drawable-mdpi/ic_feed_white_24dp.png
+++ b/core/src/main/res/drawable-mdpi/ic_feed_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-mdpi/ic_indeterminate_check_box_grey600_24dp.png b/core/src/main/res/drawable-mdpi/ic_indeterminate_check_box_grey600_24dp.png
new file mode 100644
index 000000000..52812c42f
--- /dev/null
+++ b/core/src/main/res/drawable-mdpi/ic_indeterminate_check_box_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-mdpi/ic_indeterminate_check_box_white_24dp.png b/core/src/main/res/drawable-mdpi/ic_indeterminate_check_box_white_24dp.png
new file mode 100644
index 000000000..20a9fe5d7
--- /dev/null
+++ b/core/src/main/res/drawable-mdpi/ic_indeterminate_check_box_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-mdpi/ic_skip_grey600_36dp.png b/core/src/main/res/drawable-mdpi/ic_skip_grey600_36dp.png
new file mode 100644
index 000000000..be0fcc765
--- /dev/null
+++ b/core/src/main/res/drawable-mdpi/ic_skip_grey600_36dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-mdpi/ic_skip_white_36dp.png b/core/src/main/res/drawable-mdpi/ic_skip_white_36dp.png
new file mode 100644
index 000000000..893cf2c64
--- /dev/null
+++ b/core/src/main/res/drawable-mdpi/ic_skip_white_36dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-mdpi/ic_sleep_grey600_24dp.png b/core/src/main/res/drawable-mdpi/ic_sleep_grey600_24dp.png
new file mode 100644
index 000000000..ea511bf2a
--- /dev/null
+++ b/core/src/main/res/drawable-mdpi/ic_sleep_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-mdpi/ic_sleep_off_grey600_24dp.png b/core/src/main/res/drawable-mdpi/ic_sleep_off_grey600_24dp.png
new file mode 100644
index 000000000..7f631ad86
--- /dev/null
+++ b/core/src/main/res/drawable-mdpi/ic_sleep_off_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-mdpi/ic_sleep_off_white_24dp.png b/core/src/main/res/drawable-mdpi/ic_sleep_off_white_24dp.png
new file mode 100644
index 000000000..795e318e3
--- /dev/null
+++ b/core/src/main/res/drawable-mdpi/ic_sleep_off_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-mdpi/ic_sleep_white_24dp.png b/core/src/main/res/drawable-mdpi/ic_sleep_white_24dp.png
new file mode 100644
index 000000000..4304a6bca
--- /dev/null
+++ b/core/src/main/res/drawable-mdpi/ic_sleep_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-mdpi/ic_sort_grey600_24dp.png b/core/src/main/res/drawable-mdpi/ic_sort_grey600_24dp.png
new file mode 100644
index 000000000..f527d0094
--- /dev/null
+++ b/core/src/main/res/drawable-mdpi/ic_sort_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-mdpi/ic_sort_white_24dp.png b/core/src/main/res/drawable-mdpi/ic_sort_white_24dp.png
new file mode 100644
index 000000000..e28dd4592
--- /dev/null
+++ b/core/src/main/res/drawable-mdpi/ic_sort_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-mdpi/ic_star_border_grey600_24dp.png b/core/src/main/res/drawable-mdpi/ic_star_border_grey600_24dp.png
new file mode 100644
index 000000000..dd9d11ba0
--- /dev/null
+++ b/core/src/main/res/drawable-mdpi/ic_star_border_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-mdpi/ic_star_border_white_24dp.png b/core/src/main/res/drawable-mdpi/ic_star_border_white_24dp.png
new file mode 100644
index 000000000..104fb3c9d
--- /dev/null
+++ b/core/src/main/res/drawable-mdpi/ic_star_border_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-mdpi/ic_star_grey600_24dp.png b/core/src/main/res/drawable-mdpi/ic_star_grey600_24dp.png
new file mode 100644
index 000000000..af84b71f2
--- /dev/null
+++ b/core/src/main/res/drawable-mdpi/ic_star_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-mdpi/ic_star_white_24dp.png b/core/src/main/res/drawable-mdpi/ic_star_white_24dp.png
new file mode 100644
index 000000000..0ccebc7c8
--- /dev/null
+++ b/core/src/main/res/drawable-mdpi/ic_star_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-mdpi/stat_notify_sync.png b/core/src/main/res/drawable-mdpi/stat_notify_sync.png
index 03ce57a47..516b65bd9 100644
--- a/core/src/main/res/drawable-mdpi/stat_notify_sync.png
+++ b/core/src/main/res/drawable-mdpi/stat_notify_sync.png
Binary files differ
diff --git a/core/src/main/res/drawable-mdpi/stat_notify_sync_error.png b/core/src/main/res/drawable-mdpi/stat_notify_sync_error.png
index f849b5040..c3ed306cf 100644
--- a/core/src/main/res/drawable-mdpi/stat_notify_sync_error.png
+++ b/core/src/main/res/drawable-mdpi/stat_notify_sync_error.png
Binary files differ
diff --git a/core/src/main/res/drawable-xhdpi-v11/stat_notify_sync.png b/core/src/main/res/drawable-xhdpi-v11/stat_notify_sync.png
deleted file mode 100644
index b3bf21ffe..000000000
--- a/core/src/main/res/drawable-xhdpi-v11/stat_notify_sync.png
+++ /dev/null
Binary files differ
diff --git a/core/src/main/res/drawable-xhdpi-v11/stat_notify_sync_error.png b/core/src/main/res/drawable-xhdpi-v11/stat_notify_sync_error.png
deleted file mode 100644
index 33582ef10..000000000
--- a/core/src/main/res/drawable-xhdpi-v11/stat_notify_sync_error.png
+++ /dev/null
Binary files differ
diff --git a/core/src/main/res/drawable-xhdpi/ic_av_fast_forward_80dp.png b/core/src/main/res/drawable-xhdpi/ic_av_fast_forward_80dp.png
new file mode 100755
index 000000000..ed34e22a1
--- /dev/null
+++ b/core/src/main/res/drawable-xhdpi/ic_av_fast_forward_80dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xhdpi/ic_av_rewind_80dp.png b/core/src/main/res/drawable-xhdpi/ic_av_rewind_80dp.png
new file mode 100755
index 000000000..3dc7bf5cb
--- /dev/null
+++ b/core/src/main/res/drawable-xhdpi/ic_av_rewind_80dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xhdpi/ic_check_box_grey600_24dp.png b/core/src/main/res/drawable-xhdpi/ic_check_box_grey600_24dp.png
new file mode 100644
index 000000000..f7c205dd2
--- /dev/null
+++ b/core/src/main/res/drawable-xhdpi/ic_check_box_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xhdpi/ic_check_box_outline_blank_grey600_24dp.png b/core/src/main/res/drawable-xhdpi/ic_check_box_outline_blank_grey600_24dp.png
new file mode 100644
index 000000000..ea2ff8671
--- /dev/null
+++ b/core/src/main/res/drawable-xhdpi/ic_check_box_outline_blank_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xhdpi/ic_check_box_outline_blank_white_24dp.png b/core/src/main/res/drawable-xhdpi/ic_check_box_outline_blank_white_24dp.png
new file mode 100644
index 000000000..a615ee436
--- /dev/null
+++ b/core/src/main/res/drawable-xhdpi/ic_check_box_outline_blank_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xhdpi/ic_check_box_white_24dp.png b/core/src/main/res/drawable-xhdpi/ic_check_box_white_24dp.png
new file mode 100644
index 000000000..946cfea57
--- /dev/null
+++ b/core/src/main/res/drawable-xhdpi/ic_check_box_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xhdpi/ic_drag_vertical_grey600_48dp.9.png b/core/src/main/res/drawable-xhdpi/ic_drag_vertical_grey600_48dp.9.png
new file mode 100644
index 000000000..8f335e274
--- /dev/null
+++ b/core/src/main/res/drawable-xhdpi/ic_drag_vertical_grey600_48dp.9.png
Binary files differ
diff --git a/core/src/main/res/drawable-xhdpi/ic_drag_vertical_grey600_48dp.png b/core/src/main/res/drawable-xhdpi/ic_drag_vertical_grey600_48dp.png
deleted file mode 100644
index 3fd70af80..000000000
--- a/core/src/main/res/drawable-xhdpi/ic_drag_vertical_grey600_48dp.png
+++ /dev/null
Binary files differ
diff --git a/core/src/main/res/drawable-xhdpi/ic_drag_vertical_white_48dp.9.png b/core/src/main/res/drawable-xhdpi/ic_drag_vertical_white_48dp.9.png
new file mode 100644
index 000000000..ae9972926
--- /dev/null
+++ b/core/src/main/res/drawable-xhdpi/ic_drag_vertical_white_48dp.9.png
Binary files differ
diff --git a/core/src/main/res/drawable-xhdpi/ic_drag_vertical_white_48dp.png b/core/src/main/res/drawable-xhdpi/ic_drag_vertical_white_48dp.png
deleted file mode 100644
index 38a3dc3f4..000000000
--- a/core/src/main/res/drawable-xhdpi/ic_drag_vertical_white_48dp.png
+++ /dev/null
Binary files differ
diff --git a/core/src/main/res/drawable-xhdpi/ic_feed_grey600_24dp.png b/core/src/main/res/drawable-xhdpi/ic_feed_grey600_24dp.png
index b25d64863..995aafb5c 100755
--- a/core/src/main/res/drawable-xhdpi/ic_feed_grey600_24dp.png
+++ b/core/src/main/res/drawable-xhdpi/ic_feed_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xhdpi/ic_feed_white_24dp.png b/core/src/main/res/drawable-xhdpi/ic_feed_white_24dp.png
index 3c3e74c1d..1495c4fa6 100755
--- a/core/src/main/res/drawable-xhdpi/ic_feed_white_24dp.png
+++ b/core/src/main/res/drawable-xhdpi/ic_feed_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xhdpi/ic_indeterminate_check_box_grey600_24dp.png b/core/src/main/res/drawable-xhdpi/ic_indeterminate_check_box_grey600_24dp.png
new file mode 100644
index 000000000..e67d41cc1
--- /dev/null
+++ b/core/src/main/res/drawable-xhdpi/ic_indeterminate_check_box_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xhdpi/ic_indeterminate_check_box_white_24dp.png b/core/src/main/res/drawable-xhdpi/ic_indeterminate_check_box_white_24dp.png
new file mode 100644
index 000000000..48e52d596
--- /dev/null
+++ b/core/src/main/res/drawable-xhdpi/ic_indeterminate_check_box_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xhdpi/ic_skip_grey600_36dp.png b/core/src/main/res/drawable-xhdpi/ic_skip_grey600_36dp.png
new file mode 100644
index 000000000..2e291dd19
--- /dev/null
+++ b/core/src/main/res/drawable-xhdpi/ic_skip_grey600_36dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xhdpi/ic_skip_white_36dp.png b/core/src/main/res/drawable-xhdpi/ic_skip_white_36dp.png
new file mode 100644
index 000000000..fa85f1899
--- /dev/null
+++ b/core/src/main/res/drawable-xhdpi/ic_skip_white_36dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xhdpi/ic_sleep_grey600_24dp.png b/core/src/main/res/drawable-xhdpi/ic_sleep_grey600_24dp.png
new file mode 100644
index 000000000..ae0787a26
--- /dev/null
+++ b/core/src/main/res/drawable-xhdpi/ic_sleep_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xhdpi/ic_sleep_off_grey600_24dp.png b/core/src/main/res/drawable-xhdpi/ic_sleep_off_grey600_24dp.png
new file mode 100644
index 000000000..026224c5e
--- /dev/null
+++ b/core/src/main/res/drawable-xhdpi/ic_sleep_off_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xhdpi/ic_sleep_off_white_24dp.png b/core/src/main/res/drawable-xhdpi/ic_sleep_off_white_24dp.png
new file mode 100644
index 000000000..ef39d7279
--- /dev/null
+++ b/core/src/main/res/drawable-xhdpi/ic_sleep_off_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xhdpi/ic_sleep_white_24dp.png b/core/src/main/res/drawable-xhdpi/ic_sleep_white_24dp.png
new file mode 100644
index 000000000..07e156172
--- /dev/null
+++ b/core/src/main/res/drawable-xhdpi/ic_sleep_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xhdpi/ic_sort_grey600_24dp.png b/core/src/main/res/drawable-xhdpi/ic_sort_grey600_24dp.png
new file mode 100644
index 000000000..f2ef499ef
--- /dev/null
+++ b/core/src/main/res/drawable-xhdpi/ic_sort_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xhdpi/ic_sort_white_24dp.png b/core/src/main/res/drawable-xhdpi/ic_sort_white_24dp.png
new file mode 100644
index 000000000..68b0b7ad3
--- /dev/null
+++ b/core/src/main/res/drawable-xhdpi/ic_sort_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xhdpi/ic_star_border_grey600_24dp.png b/core/src/main/res/drawable-xhdpi/ic_star_border_grey600_24dp.png
new file mode 100644
index 000000000..5160319b5
--- /dev/null
+++ b/core/src/main/res/drawable-xhdpi/ic_star_border_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xhdpi/ic_star_border_white_24dp.png b/core/src/main/res/drawable-xhdpi/ic_star_border_white_24dp.png
new file mode 100644
index 000000000..33f9727d3
--- /dev/null
+++ b/core/src/main/res/drawable-xhdpi/ic_star_border_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xhdpi/ic_star_grey600_24dp.png b/core/src/main/res/drawable-xhdpi/ic_star_grey600_24dp.png
new file mode 100644
index 000000000..7a09ebc33
--- /dev/null
+++ b/core/src/main/res/drawable-xhdpi/ic_star_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xhdpi/ic_star_white_24dp.png b/core/src/main/res/drawable-xhdpi/ic_star_white_24dp.png
new file mode 100644
index 000000000..288799f93
--- /dev/null
+++ b/core/src/main/res/drawable-xhdpi/ic_star_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xhdpi/stat_notify_sync.png b/core/src/main/res/drawable-xhdpi/stat_notify_sync.png
new file mode 100644
index 000000000..ab02927fb
--- /dev/null
+++ b/core/src/main/res/drawable-xhdpi/stat_notify_sync.png
Binary files differ
diff --git a/core/src/main/res/drawable-xhdpi/stat_notify_sync_error.png b/core/src/main/res/drawable-xhdpi/stat_notify_sync_error.png
new file mode 100644
index 000000000..c1f483f71
--- /dev/null
+++ b/core/src/main/res/drawable-xhdpi/stat_notify_sync_error.png
Binary files differ
diff --git a/core/src/main/res/drawable-xxhdpi/ic_av_fast_forward_80dp.png b/core/src/main/res/drawable-xxhdpi/ic_av_fast_forward_80dp.png
new file mode 100755
index 000000000..f90617f45
--- /dev/null
+++ b/core/src/main/res/drawable-xxhdpi/ic_av_fast_forward_80dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xxhdpi/ic_av_rewind_80dp.png b/core/src/main/res/drawable-xxhdpi/ic_av_rewind_80dp.png
new file mode 100755
index 000000000..81709e0ae
--- /dev/null
+++ b/core/src/main/res/drawable-xxhdpi/ic_av_rewind_80dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xxhdpi/ic_check_box_grey600_24dp.png b/core/src/main/res/drawable-xxhdpi/ic_check_box_grey600_24dp.png
new file mode 100644
index 000000000..5e52fa65e
--- /dev/null
+++ b/core/src/main/res/drawable-xxhdpi/ic_check_box_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xxhdpi/ic_check_box_outline_blank_grey600_24dp.png b/core/src/main/res/drawable-xxhdpi/ic_check_box_outline_blank_grey600_24dp.png
new file mode 100644
index 000000000..9c8615618
--- /dev/null
+++ b/core/src/main/res/drawable-xxhdpi/ic_check_box_outline_blank_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xxhdpi/ic_check_box_outline_blank_white_24dp.png b/core/src/main/res/drawable-xxhdpi/ic_check_box_outline_blank_white_24dp.png
new file mode 100644
index 000000000..565a755f3
--- /dev/null
+++ b/core/src/main/res/drawable-xxhdpi/ic_check_box_outline_blank_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xxhdpi/ic_check_box_white_24dp.png b/core/src/main/res/drawable-xxhdpi/ic_check_box_white_24dp.png
new file mode 100644
index 000000000..7b1d9ea34
--- /dev/null
+++ b/core/src/main/res/drawable-xxhdpi/ic_check_box_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xxhdpi/ic_drag_vertical_grey600_48dp.9.png b/core/src/main/res/drawable-xxhdpi/ic_drag_vertical_grey600_48dp.9.png
new file mode 100644
index 000000000..88a800f24
--- /dev/null
+++ b/core/src/main/res/drawable-xxhdpi/ic_drag_vertical_grey600_48dp.9.png
Binary files differ
diff --git a/core/src/main/res/drawable-xxhdpi/ic_drag_vertical_grey600_48dp.png b/core/src/main/res/drawable-xxhdpi/ic_drag_vertical_grey600_48dp.png
deleted file mode 100644
index 048b39f0e..000000000
--- a/core/src/main/res/drawable-xxhdpi/ic_drag_vertical_grey600_48dp.png
+++ /dev/null
Binary files differ
diff --git a/core/src/main/res/drawable-xxhdpi/ic_drag_vertical_white_48dp.9.png b/core/src/main/res/drawable-xxhdpi/ic_drag_vertical_white_48dp.9.png
new file mode 100644
index 000000000..148891e6c
--- /dev/null
+++ b/core/src/main/res/drawable-xxhdpi/ic_drag_vertical_white_48dp.9.png
Binary files differ
diff --git a/core/src/main/res/drawable-xxhdpi/ic_drag_vertical_white_48dp.png b/core/src/main/res/drawable-xxhdpi/ic_drag_vertical_white_48dp.png
deleted file mode 100644
index 1c79c9731..000000000
--- a/core/src/main/res/drawable-xxhdpi/ic_drag_vertical_white_48dp.png
+++ /dev/null
Binary files differ
diff --git a/core/src/main/res/drawable-xxhdpi/ic_feed_grey600_24dp.png b/core/src/main/res/drawable-xxhdpi/ic_feed_grey600_24dp.png
index aacf24d28..ddfe32b53 100755
--- a/core/src/main/res/drawable-xxhdpi/ic_feed_grey600_24dp.png
+++ b/core/src/main/res/drawable-xxhdpi/ic_feed_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xxhdpi/ic_feed_white_24dp.png b/core/src/main/res/drawable-xxhdpi/ic_feed_white_24dp.png
index 625dbaa1f..4929a6a11 100755
--- a/core/src/main/res/drawable-xxhdpi/ic_feed_white_24dp.png
+++ b/core/src/main/res/drawable-xxhdpi/ic_feed_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xxhdpi/ic_indeterminate_check_box_grey600_24dp.png b/core/src/main/res/drawable-xxhdpi/ic_indeterminate_check_box_grey600_24dp.png
new file mode 100644
index 000000000..c2300b53b
--- /dev/null
+++ b/core/src/main/res/drawable-xxhdpi/ic_indeterminate_check_box_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xxhdpi/ic_indeterminate_check_box_white_24dp.png b/core/src/main/res/drawable-xxhdpi/ic_indeterminate_check_box_white_24dp.png
new file mode 100644
index 000000000..66a710d8c
--- /dev/null
+++ b/core/src/main/res/drawable-xxhdpi/ic_indeterminate_check_box_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xxhdpi/ic_skip_grey600_36dp.png b/core/src/main/res/drawable-xxhdpi/ic_skip_grey600_36dp.png
new file mode 100644
index 000000000..00a55a0f8
--- /dev/null
+++ b/core/src/main/res/drawable-xxhdpi/ic_skip_grey600_36dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xxhdpi/ic_skip_white_36dp.png b/core/src/main/res/drawable-xxhdpi/ic_skip_white_36dp.png
new file mode 100644
index 000000000..ac38e6d42
--- /dev/null
+++ b/core/src/main/res/drawable-xxhdpi/ic_skip_white_36dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xxhdpi/ic_sleep_grey600_24dp.png b/core/src/main/res/drawable-xxhdpi/ic_sleep_grey600_24dp.png
new file mode 100644
index 000000000..f4bd9e94d
--- /dev/null
+++ b/core/src/main/res/drawable-xxhdpi/ic_sleep_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xxhdpi/ic_sleep_off_grey600_24dp.png b/core/src/main/res/drawable-xxhdpi/ic_sleep_off_grey600_24dp.png
new file mode 100644
index 000000000..6c42d6051
--- /dev/null
+++ b/core/src/main/res/drawable-xxhdpi/ic_sleep_off_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xxhdpi/ic_sleep_off_white_24dp.png b/core/src/main/res/drawable-xxhdpi/ic_sleep_off_white_24dp.png
new file mode 100644
index 000000000..b8e06f9b3
--- /dev/null
+++ b/core/src/main/res/drawable-xxhdpi/ic_sleep_off_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xxhdpi/ic_sleep_white_24dp.png b/core/src/main/res/drawable-xxhdpi/ic_sleep_white_24dp.png
new file mode 100644
index 000000000..e2249c357
--- /dev/null
+++ b/core/src/main/res/drawable-xxhdpi/ic_sleep_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xxhdpi/ic_sort_grey600_24dp.png b/core/src/main/res/drawable-xxhdpi/ic_sort_grey600_24dp.png
new file mode 100644
index 000000000..6cdc649ea
--- /dev/null
+++ b/core/src/main/res/drawable-xxhdpi/ic_sort_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xxhdpi/ic_sort_white_24dp.png b/core/src/main/res/drawable-xxhdpi/ic_sort_white_24dp.png
new file mode 100644
index 000000000..56ea13fe2
--- /dev/null
+++ b/core/src/main/res/drawable-xxhdpi/ic_sort_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xxhdpi/ic_star_border_grey600_24dp.png b/core/src/main/res/drawable-xxhdpi/ic_star_border_grey600_24dp.png
new file mode 100644
index 000000000..6348e1997
--- /dev/null
+++ b/core/src/main/res/drawable-xxhdpi/ic_star_border_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xxhdpi/ic_star_border_white_24dp.png b/core/src/main/res/drawable-xxhdpi/ic_star_border_white_24dp.png
new file mode 100644
index 000000000..aab4831ff
--- /dev/null
+++ b/core/src/main/res/drawable-xxhdpi/ic_star_border_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xxhdpi/ic_star_grey600_24dp.png b/core/src/main/res/drawable-xxhdpi/ic_star_grey600_24dp.png
new file mode 100644
index 000000000..ef0294931
--- /dev/null
+++ b/core/src/main/res/drawable-xxhdpi/ic_star_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xxhdpi/ic_star_white_24dp.png b/core/src/main/res/drawable-xxhdpi/ic_star_white_24dp.png
new file mode 100644
index 000000000..de4b7b29d
--- /dev/null
+++ b/core/src/main/res/drawable-xxhdpi/ic_star_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xxhdpi/stat_notify_sync.png b/core/src/main/res/drawable-xxhdpi/stat_notify_sync.png
new file mode 100644
index 000000000..9cd2a53b4
--- /dev/null
+++ b/core/src/main/res/drawable-xxhdpi/stat_notify_sync.png
Binary files differ
diff --git a/core/src/main/res/drawable-xxhdpi/stat_notify_sync_error.png b/core/src/main/res/drawable-xxhdpi/stat_notify_sync_error.png
new file mode 100644
index 000000000..bb76c2756
--- /dev/null
+++ b/core/src/main/res/drawable-xxhdpi/stat_notify_sync_error.png
Binary files differ
diff --git a/core/src/main/res/drawable-xxxhdpi/ic_av_fast_forward_80dp.png b/core/src/main/res/drawable-xxxhdpi/ic_av_fast_forward_80dp.png
new file mode 100755
index 000000000..c9b68abf0
--- /dev/null
+++ b/core/src/main/res/drawable-xxxhdpi/ic_av_fast_forward_80dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xxxhdpi/ic_av_rewind_80dp.png b/core/src/main/res/drawable-xxxhdpi/ic_av_rewind_80dp.png
new file mode 100755
index 000000000..87b0756eb
--- /dev/null
+++ b/core/src/main/res/drawable-xxxhdpi/ic_av_rewind_80dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xxxhdpi/ic_drag_vertical_grey600_48dp.png b/core/src/main/res/drawable-xxxhdpi/ic_drag_vertical_grey600_48dp.png
deleted file mode 100644
index 4819da3c1..000000000
--- a/core/src/main/res/drawable-xxxhdpi/ic_drag_vertical_grey600_48dp.png
+++ /dev/null
Binary files differ
diff --git a/core/src/main/res/drawable-xxxhdpi/ic_drag_vertical_white_48dp.png b/core/src/main/res/drawable-xxxhdpi/ic_drag_vertical_white_48dp.png
deleted file mode 100644
index b5820d4fe..000000000
--- a/core/src/main/res/drawable-xxxhdpi/ic_drag_vertical_white_48dp.png
+++ /dev/null
Binary files differ
diff --git a/core/src/main/res/drawable-xxxhdpi/ic_skip_grey600_36dp.png b/core/src/main/res/drawable-xxxhdpi/ic_skip_grey600_36dp.png
new file mode 100644
index 000000000..94836e0c8
--- /dev/null
+++ b/core/src/main/res/drawable-xxxhdpi/ic_skip_grey600_36dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xxxhdpi/ic_skip_white_36dp.png b/core/src/main/res/drawable-xxxhdpi/ic_skip_white_36dp.png
new file mode 100644
index 000000000..a84f34228
--- /dev/null
+++ b/core/src/main/res/drawable-xxxhdpi/ic_skip_white_36dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xxxhdpi/ic_sleep_grey600_24dp.png b/core/src/main/res/drawable-xxxhdpi/ic_sleep_grey600_24dp.png
new file mode 100644
index 000000000..9c0116c60
--- /dev/null
+++ b/core/src/main/res/drawable-xxxhdpi/ic_sleep_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xxxhdpi/ic_sleep_off_grey600_24dp.png b/core/src/main/res/drawable-xxxhdpi/ic_sleep_off_grey600_24dp.png
new file mode 100644
index 000000000..e8141d0df
--- /dev/null
+++ b/core/src/main/res/drawable-xxxhdpi/ic_sleep_off_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xxxhdpi/ic_sleep_off_white_24dp.png b/core/src/main/res/drawable-xxxhdpi/ic_sleep_off_white_24dp.png
new file mode 100644
index 000000000..ca41ad5e6
--- /dev/null
+++ b/core/src/main/res/drawable-xxxhdpi/ic_sleep_off_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xxxhdpi/ic_sleep_white_24dp.png b/core/src/main/res/drawable-xxxhdpi/ic_sleep_white_24dp.png
new file mode 100644
index 000000000..29782e155
--- /dev/null
+++ b/core/src/main/res/drawable-xxxhdpi/ic_sleep_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xxxhdpi/ic_star_border_grey600_24dp.png b/core/src/main/res/drawable-xxxhdpi/ic_star_border_grey600_24dp.png
new file mode 100644
index 000000000..1109e95c8
--- /dev/null
+++ b/core/src/main/res/drawable-xxxhdpi/ic_star_border_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xxxhdpi/ic_star_border_white_24dp.png b/core/src/main/res/drawable-xxxhdpi/ic_star_border_white_24dp.png
new file mode 100644
index 000000000..086cb677c
--- /dev/null
+++ b/core/src/main/res/drawable-xxxhdpi/ic_star_border_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xxxhdpi/ic_star_grey600_24dp.png b/core/src/main/res/drawable-xxxhdpi/ic_star_grey600_24dp.png
new file mode 100644
index 000000000..dda3262ed
--- /dev/null
+++ b/core/src/main/res/drawable-xxxhdpi/ic_star_grey600_24dp.png
Binary files differ
diff --git a/core/src/main/res/drawable-xxxhdpi/ic_star_white_24dp.png b/core/src/main/res/drawable-xxxhdpi/ic_star_white_24dp.png
new file mode 100644
index 000000000..ba29292b0
--- /dev/null
+++ b/core/src/main/res/drawable-xxxhdpi/ic_star_white_24dp.png
Binary files differ
diff --git a/core/src/main/res/values-az/strings.xml b/core/src/main/res/values-az/strings.xml
index a2fbdd825..d305e8127 100644
--- a/core/src/main/res/values-az/strings.xml
+++ b/core/src/main/res/values-az/strings.xml
@@ -37,7 +37,6 @@
<string name="length_prefix">Müddət:\u0020</string>
<string name="size_prefix">Ölçü:\u0020</string>
<string name="processing_label">Hazırlaşma</string>
- <string name="loading_label">Yükləmə...</string>
<string name="close_label">Bağla</string>
<!--'Add Feed' Activity labels-->
<string name="feedurl_label">Kanalın URLı</string>
@@ -79,7 +78,6 @@
<string name="download_error_malformed_url">Yanlış URL</string>
<string name="download_error_io_error">IO xətasi</string>
<string name="download_error_request_error">Tələbin xətası</string>
- <string name="downloads_left">\u0020yükləmə galdı</string>
<string name="download_notification_title">Podkast məlumatların yüklənişi</string>
<string name="download_report_content">%1$d yükləmə uğurludur, %2$d uğursuzdur</string>
<string name="download_log_title_unknown">Naməlum başliğ</string>
@@ -177,7 +175,6 @@
<string name="select_all_label">Hamısını seç</string>
<string name="deselect_all_label">Seçimi ləğv et</string>
<string name="opml_export_label">OPML ixraçı</string>
- <string name="exporting_label">İxrac...</string>
<string name="export_error_label">İxracın xətası</string>
<string name="opml_export_success_sum">OPML fayl:\u0020 yazılıb</string>
<!--Sleep timer-->
@@ -202,10 +199,10 @@
<string name="folder_not_empty_dialog_msg">Seçilən qovluq boş deyil. Mediya yükləmələr və başka fayllar bu qovluqa yazılacaqlar. Necə olsa davam olsunmu?</string>
<string name="set_to_default_folder">Başlanğıc qovluqu seç</string>
<!--Online feed view-->
- <string name="downloading_label">Yükləmə...</string>
<!--Content descriptions for image buttons-->
<!--Feed information screen-->
<!--Progress information-->
<!--AntennaPodSP-->
<!--Rating dialog-->
+ <!--Audio controls-->
</resources>
diff --git a/core/src/main/res/values-ca/strings.xml b/core/src/main/res/values-ca/strings.xml
index 772742753..290c16176 100644
--- a/core/src/main/res/values-ca/strings.xml
+++ b/core/src/main/res/values-ca/strings.xml
@@ -66,7 +66,6 @@
<string name="length_prefix">Durada:\u0020</string>
<string name="size_prefix">Mida:\u0020</string>
<string name="processing_label">S\'està processant</string>
- <string name="loading_label">S\'està carregant...</string>
<string name="save_username_password_label">Desa nom d\'usuari i contrasenya</string>
<string name="close_label">Tanca</string>
<string name="retry_label">Reintenta</string>
@@ -78,7 +77,6 @@
<string name="feed_auto_download_global">Global</string>
<string name="feed_auto_download_always">Sempre</string>
<string name="feed_auto_download_never">Mai</string>
- <string name="send_label">Envia...</string>
<string name="episode_cleanup_never">Mai</string>
<string name="episode_cleanup_queue_removal">Quan no està a la cua</string>
<string name="episode_cleanup_after_listening">Després d\'acabar</string>
@@ -101,7 +99,6 @@
<string name="mark_all_seen_label">Marca tot com a llegit</string>
<string name="show_info_label">Mostra informació</string>
<string name="remove_feed_label">Esborra podcast</string>
- <string name="share_label">Comparteix...</string>
<string name="share_link_label">Comparteix l\'enllaç</string>
<string name="share_link_with_position_label">Comparteix enllaç amb posició</string>
<string name="share_feed_url_label">Comparteix adreça del canal</string>
@@ -170,7 +167,6 @@
<string name="download_error_io_error">Error d\'E/S</string>
<string name="download_error_request_error">Error de petició</string>
<string name="download_error_db_access">Error d\'accés a la base de dades</string>
- <string name="downloads_left">\u0020Baixades pendents</string>
<string name="downloads_processing">S\'estan processant les baixades</string>
<string name="download_notification_title">S\'estan baixant les dades del podcast</string>
<string name="download_report_content">%1$d baixades finalitzades, %2$d fallides</string>
@@ -243,7 +239,6 @@
<!--Variable Speed-->
<string name="download_plugin_label">Baixa el connector</string>
<string name="no_playback_plugin_title">Connector no instal·lat</string>
- <string name="no_playback_plugin_or_sonic_msg">Perque la reproducció de velocitat variable funcioni, ha d\'instal lar el connector de tercers o activar el reproductor experimental Sonic [Android 4.1+].\n\nPrem \'Baixa el connector\' per baixar el connector gratuït de la Play Store.\n\nQualsevol problema que us trobeu amb l\'ús d\'aquest connector no són responsabilitat d\'AntennaPod i han de ser reportats al propietari del connector.</string>
<string name="set_playback_speed_label">Velocitats de reproducció</string>
<string name="enable_sonic">Activa Sonic</string>
<!--Empty list labels-->
@@ -256,7 +251,6 @@
<string name="services_label">Serveis</string>
<string name="flattr_label">Flattr</string>
<string name="pref_episode_cleanup_title">Neteja l\'episodi</string>
- <string name="pref_episode_cleanup_summary">Episodis que no estan a la cua i no són favorits haurien de ser escollits per eliminar-los si es requereix espai</string>
<string name="pref_unpauseOnHeadsetReconnect_sum">Continua la reproducció en connectar novament els auriculars</string>
<string name="pref_followQueue_sum">Salta al següent element de la cua en acabar la reproducció</string>
<string name="pref_auto_delete_sum">Suprimeix l\'episodi quan s\'acabi de reproduir</string>
@@ -341,7 +335,6 @@
<string name="pref_image_cache_size_sum">Mida de la memòria cau en el disc de les imatges.</string>
<string name="experimental_pref">Experimental</string>
<string name="pref_sonic_title">Reproductor multimèdia Sonic</string>
- <string name="pref_sonic_message">Utilitzeu la funció incorporada del reproductor multimèdia Sonic com a reemplaçament per Prestissimo</string>
<!--Auto-Flattr dialog-->
<string name="auto_flattr_enable">Activa la compartició automàtica per Flattr</string>
<string name="auto_flattr_after_percent">Comparteix per Flattr l\'episodi en haver-ne reproduït el %d per cent</string>
@@ -368,11 +361,9 @@
<string name="opml_import_error_dir_empty">El directori d\'importacions és buit.</string>
<string name="select_all_label">Selecciona-ho tot</string>
<string name="deselect_all_label">Deselecciona-ho tot</string>
- <string name="select_options_label">Sel·lecciona...</string>
<string name="choose_file_from_filesystem">Des de sistema d\'arxius local</string>
<string name="choose_file_from_external_application">Utilitza aplicació externa</string>
<string name="opml_export_label">Exportació OPML</string>
- <string name="exporting_label">S\'està exportant...</string>
<string name="export_error_label">Error d\'exportació</string>
<string name="opml_export_success_title">S\'ha exportat l\'OPML correctament.</string>
<string name="opml_export_success_sum">El fitxer OPML s\'ha escrit a:\u0020</string>
@@ -449,7 +440,6 @@
<!--Online feed view-->
<string name="subscribe_label">Subscriu</string>
<string name="subscribed_label">Subscrit</string>
- <string name="downloading_label">S\'està baixant...</string>
<!--Content descriptions for image buttons-->
<string name="show_chapters_label">Mostra els capítols</string>
<string name="show_shownotes_label">Mostra les notes del programa</string>
@@ -477,7 +467,6 @@
<!--AntennaPodSP-->
<string name="sp_apps_importing_feeds_msg">S\'estan important les subscripcions des de les apps de propòsit únic...</string>
<string name="search_itunes_label">Cerca a iTunes</string>
- <string name="select_label"><b>Seleccionar...</b></string>
<string name="all_label">Tot</string>
<string name="selected_all_label">Selecciona tots els episodis</string>
<string name="none_label">Cap</string>
@@ -490,7 +479,6 @@
<string name="selected_downloaded_label">Selecciona episodis descarregats</string>
<string name="not_downloaded_label">No baixat</string>
<string name="selected_not_downloaded_label">Selecciona episodis sense descarregar</string>
- <string name="sort_title"><b>Ordena per...</b></string>
<string name="sort_title_a_z">Títol (A \u2192 Z)</string>
<string name="sort_title_z_a">Títol (Z \u2192 A)</string>
<string name="sort_date_new_old">Data (Nou \u2192 Antic)</string>
@@ -498,4 +486,5 @@
<string name="sort_duration_short_long">Duració (Curt \u2192 Llarg)</string>
<string name="sort_duration_long_short">Duration (Llarg \u2192 Curt)</string>
<!--Rating dialog-->
+ <!--Audio controls-->
</resources>
diff --git a/core/src/main/res/values-cs-rCZ/strings.xml b/core/src/main/res/values-cs-rCZ/strings.xml
index 987b2e7b5..335232675 100644
--- a/core/src/main/res/values-cs-rCZ/strings.xml
+++ b/core/src/main/res/values-cs-rCZ/strings.xml
@@ -23,6 +23,8 @@
<string name="gpodnet_main_label">gpodder.net</string>
<string name="gpodnet_auth_label">Login pro gpodder.net</string>
<string name="free_space_label">%1$s volné</string>
+ <string name="episode_cache_full_title">Odkládací prostor pro epizody je plný</string>
+ <string name="episode_cache_full_message">Došlo k zaplnění limitu odkládacího prostoru pro epizody. Můžete navýšit vyhrazený prostor v Nastavení.</string>
<!--New episodes fragment-->
<string name="recently_published_episodes_label">Nedávno zveřejněné</string>
<string name="episode_filter_label">Zobrazit pouze nové epizody</string>
@@ -68,7 +70,7 @@
<string name="length_prefix">Délka:\u0020</string>
<string name="size_prefix">Velikost:\u0020</string>
<string name="processing_label">Zpracovávám</string>
- <string name="loading_label">Načítám...</string>
+ <string name="loading_label">Načítání</string>
<string name="save_username_password_label">Uložit uživatelské jméno a heslo</string>
<string name="close_label">Zavřít</string>
<string name="retry_label">Zkusit znovu</string>
@@ -80,7 +82,7 @@
<string name="feed_auto_download_global">Globální</string>
<string name="feed_auto_download_always">Vždy</string>
<string name="feed_auto_download_never">Nikdy</string>
- <string name="send_label">Odeslat...</string>
+ <string name="send_label">Odeslat</string>
<string name="episode_cleanup_never">Nikdy</string>
<string name="episode_cleanup_queue_removal">Pokud není ve frontě</string>
<string name="episode_cleanup_after_listening">Po dokončení</string>
@@ -104,7 +106,7 @@
<string name="mark_all_seen_label">Označit vše jako zobrazené</string>
<string name="show_info_label">Informace o zdroji</string>
<string name="remove_feed_label">Odstranit podcast</string>
- <string name="share_label">Sdílet...</string>
+ <string name="share_label">Sdílet</string>
<string name="share_link_label">Sdílet odkaz</string>
<string name="share_link_with_position_label">Sdílet odkaz s pozicí</string>
<string name="share_feed_url_label">Sdílet URL kanálu</string>
@@ -139,7 +141,9 @@
<string name="added_to_queue_label">Přidáno do fronty</string>
<string name="remove_from_queue_label">Odebrat z fronty</string>
<string name="add_to_favorite_label">Přidat k oblíbeným</string>
+ <string name="added_to_favorites">Přidáno k oblíbeným</string>
<string name="remove_from_favorite_label">Odebrat z obíbených</string>
+ <string name="removed_from_favorites">Odebráno z oblíbených</string>
<string name="visit_website_label">Navštívit stránku</string>
<string name="support_label">Flattrovat</string>
<string name="enqueue_all_new">Vše do fronty</string>
@@ -173,7 +177,11 @@
<string name="download_error_io_error">IO chyba</string>
<string name="download_error_request_error">Chyba požadavku</string>
<string name="download_error_db_access">Chyba přístupu do databáze</string>
- <string name="downloads_left">\u0020Stahování zbývá</string>
+ <plurals name="downloads_left">
+ <item quantity="one">%d čekající na stažení</item>
+ <item quantity="few">%d čekající na stažení</item>
+ <item quantity="other">%d čekajících na stažení</item>
+ </plurals>
<string name="downloads_processing">Probíhá stahování</string>
<string name="download_notification_title">Stahuji podcast data</string>
<string name="download_report_content">%1$d úspěšných stahování, %2$d selhalo</string>
@@ -205,6 +213,8 @@
<!--Queue operations-->
<string name="lock_queue">Zamknout frontu</string>
<string name="unlock_queue">Odemknout frontu</string>
+ <string name="queue_locked">Fronta zamknuta</string>
+ <string name="queue_unlocked">Fronta odemknuta</string>
<string name="clear_queue_label">Vyprázdnit frontu</string>
<string name="undo">Zpět</string>
<string name="removed_from_queue">Položka odebrána</string>
@@ -246,12 +256,13 @@
<!--Variable Speed-->
<string name="download_plugin_label">Stáhnout modul</string>
<string name="no_playback_plugin_title">Modul není nainstalován</string>
- <string name="no_playback_plugin_or_sonic_msg">Pro možnost měnit rychlost přehrávání musí být nainstalovaná knihovna třetí strany nebo povolen experimentální přehrávač Sonic [Android 4.1+].\n\nKlikněte na \"Stáhnout modul\" k jeho stažení z Obchodu Play.\n\nAntennaPod nenese žádnou odpovědnost za jakékoliv problémy způsobené tímto modulem. Chyby hlaste jeho vývojářům.</string>
+ <string name="no_playback_plugin_or_sonic_msg">Pro fungující proměnné rychlosti přehrávání doporučujeme povolit zabudovaný Sonic mediaplayer [Android 4.1+].\n\nAlternativně je možné z Obchodu Play stáhnout zásuvný modul třetí strany <i>Prestissimo</i>.\nAntennaPod nenese zodpovědnost za jakékoliv problémy s modulem Prestissimo a ty by měly být hlášeny jeho vývojářům.</string>
<string name="set_playback_speed_label">Rychlosti přehrávání</string>
<string name="enable_sonic">Povolit Sonic</string>
<!--Empty list labels-->
<string name="no_items_label">Žádné položky v seznamu.</string>
<string name="no_feeds_label">Zatím nebyly přidány žádné kanály.</string>
+ <string name="no_chapters_label">Tato epizoda nemá žádné kapitoly.</string>
<!--Preferences-->
<string name="other_pref">Ostatní</string>
<string name="about_pref">O aplikaci</string>
@@ -259,7 +270,7 @@
<string name="services_label">Služby</string>
<string name="flattr_label">Flattr</string>
<string name="pref_episode_cleanup_title">Vyčistit epizody</string>
- <string name="pref_episode_cleanup_summary">Epizody které nejsou ve frontě a nejsou označeny jako oblíbené lze smazat pro uvolnění místa</string>
+ <string name="pref_episode_cleanup_summary">Epizody, které nejsou ve frontě a nejsou označeny za oblíbené by mělo být možné smazat, pokud bude funkce automatického stahování potřebovat místo pro nové epizody</string>
<string name="pref_pauseOnDisconnect_sum">Při odpojení sluchátek nebo bluetooth připojení pozastavit přehrávání.</string>
<string name="pref_unpauseOnHeadsetReconnect_sum">Pokračovat v přehrávání po připojení sluchátek</string>
<string name="pref_unpauseOnBluetoothReconnect_sum">Pokračovat v přehrávání po připojení bluetooth</string>
@@ -280,6 +291,8 @@
<string name="pref_autoUpdateIntervallOrTime_Disable">Vypnout</string>
<string name="pref_autoUpdateIntervallOrTime_Interval">Nastavit interval</string>
<string name="pref_autoUpdateIntervallOrTime_TimeOfDay">Nastavit čas v průběhu dne</string>
+ <string name="pref_autoUpdateIntervallOrTime_every">každých %1$s</string>
+ <string name="pref_autoUpdateIntervallOrTime_at">v %1$s</string>
<string name="pref_downloadMediaOnWifiOnly_sum">Stahovat soubory pouze pomocí WiFi</string>
<string name="pref_followQueue_title">Kontinuální přehrávání</string>
<string name="pref_downloadMediaOnWifiOnly_title">WiFi stahování</string>
@@ -354,7 +367,8 @@
<string name="send_email">Poslat email</string>
<string name="experimental_pref">Experimentální</string>
<string name="pref_sonic_title">Přehrávač médií Sonic</string>
- <string name="pref_sonic_message">Použít vestavěný přehrávač médií Sonic, jako náhradu za Prestissimo</string>
+ <string name="pref_sonic_message">Použít připojený sonic media player jako náhradu za výchozí přehrávač médií pro Android a Prestissimo</string>
+ <string name="pref_current_value">Aktuální hodnota: %1$s</string>
<!--Auto-Flattr dialog-->
<string name="auto_flattr_enable">Povolit automatické flattrování</string>
<string name="auto_flattr_after_percent">Flattrovat díl jakmile bude odehráno %d procent</string>
@@ -381,11 +395,11 @@
<string name="opml_import_error_dir_empty">Adresář importu je prázdný.</string>
<string name="select_all_label">Označit vše</string>
<string name="deselect_all_label">Zrušit výběr</string>
- <string name="select_options_label">Vybrat ...</string>
+ <string name="select_options_label">Vybrat</string>
<string name="choose_file_from_filesystem">Z místního souborového systému</string>
<string name="choose_file_from_external_application">Použít externí aplikaci</string>
<string name="opml_export_label">OPML export</string>
- <string name="exporting_label">Exportuji...</string>
+ <string name="exporting_label">Export</string>
<string name="export_error_label">Chyba exportu</string>
<string name="opml_export_success_title">OPML export byl úspěšný.</string>
<string name="opml_export_success_sum">OPML soubor byl zapsán do:\u0020</string>
@@ -469,7 +483,7 @@
<!--Online feed view-->
<string name="subscribe_label">Odebírat</string>
<string name="subscribed_label">Odebíráno</string>
- <string name="downloading_label">Stahuji...</string>
+ <string name="downloading_label">Stahování</string>
<!--Content descriptions for image buttons-->
<string name="show_chapters_label">Zobrazit kapitoly</string>
<string name="show_shownotes_label">Zobrazit poznámky o pořadu</string>
@@ -497,7 +511,8 @@
<!--AntennaPodSP-->
<string name="sp_apps_importing_feeds_msg">Importuji odběry z jednoúčelových aplikací...</string>
<string name="search_itunes_label">Prohledat iTunes</string>
- <string name="select_label"><b>Vybrat ...</b></string>
+ <string name="select_label"><b>Vybrat…</b></string>
+ <string name="filter">Filtr</string>
<string name="all_label">Vše</string>
<string name="selected_all_label">Vybrány všechny epizody</string>
<string name="none_label">Žádné</string>
@@ -510,7 +525,7 @@
<string name="selected_downloaded_label">Vybrány stažené epizody</string>
<string name="not_downloaded_label">Nestažené</string>
<string name="selected_not_downloaded_label">Vybrány nestažené epizody</string>
- <string name="sort_title"><b>Řadit podle ...</b></string>
+ <string name="sort_title"><b>Řadit dle</b></string>
<string name="sort_title_a_z">Názvu (A \u2192 Z)</string>
<string name="sort_title_z_a">Názvu (Z \u2192 A)</string>
<string name="sort_date_new_old">Data (Nové \u2192 Staré)</string>
@@ -523,4 +538,13 @@
<string name="rating_never_label">Neobtěžuj mě</string>
<string name="rating_later_label">Upozornit později</string>
<string name="rating_now_label">Jasně, s radostí!</string>
+ <!--Audio controls-->
+ <string name="audio_controls">Audio ovládání</string>
+ <string name="playback_speed">Rychlost přehrávání</string>
+ <string name="volume">Hlasitost</string>
+ <string name="left_short">L</string>
+ <string name="right_short">P</string>
+ <string name="audio_effects">Audio efekty</string>
+ <string name="stereo_to_mono">Downmix: Stereo na mono</string>
+ <string name="sonic_only">Pouze Sonic</string>
</resources>
diff --git a/core/src/main/res/values-da/strings.xml b/core/src/main/res/values-da/strings.xml
index 2c32ad5de..13f576bfe 100644
--- a/core/src/main/res/values-da/strings.xml
+++ b/core/src/main/res/values-da/strings.xml
@@ -52,7 +52,6 @@
<string name="length_prefix">Længde:\u0020</string>
<string name="size_prefix">Størrelse:\u0020</string>
<string name="processing_label">Behandler</string>
- <string name="loading_label">Indlæser...</string>
<string name="save_username_password_label">Gem brugernavn og kodeord</string>
<string name="close_label">Luk</string>
<string name="retry_label">Prøv igen</string>
@@ -112,7 +111,6 @@
<string name="download_error_io_error">IO fejl</string>
<string name="download_error_request_error">Anmode fejl</string>
<string name="download_error_db_access">Adgangsfejl i database</string>
- <string name="downloads_left">\u0020Downloads tilbage</string>
<string name="downloads_processing">Bearbejder downloads</string>
<string name="download_notification_title">Downloader podcast data</string>
<string name="download_report_content">%1$d downloads lykkedes, %2$d fejlet</string>
@@ -264,7 +262,6 @@
<string name="select_all_label">Vælg alt</string>
<string name="deselect_all_label">Fravælg alt</string>
<string name="opml_export_label">OPML eksport</string>
- <string name="exporting_label">Eksporterer...</string>
<string name="export_error_label">Eksport fejl</string>
<string name="opml_export_success_title">Opml eksport lykkedes.</string>
<string name="opml_export_success_sum">.opml filen var skrevet til:\u0020</string>
@@ -320,7 +317,6 @@
<!--Online feed view-->
<string name="subscribe_label">Abonner</string>
<string name="subscribed_label">Abonneret</string>
- <string name="downloading_label">Downloader...</string>
<!--Content descriptions for image buttons-->
<string name="show_chapters_label">Vis kapitler</string>
<string name="show_shownotes_label">Vis shownoter</string>
@@ -347,4 +343,5 @@
<!--AntennaPodSP-->
<string name="sp_apps_importing_feeds_msg">Importerer abonnementer fra single-purpose apps…</string>
<!--Rating dialog-->
+ <!--Audio controls-->
</resources>
diff --git a/core/src/main/res/values-de/strings.xml b/core/src/main/res/values-de/strings.xml
index 001f869aa..7432f5537 100644
--- a/core/src/main/res/values-de/strings.xml
+++ b/core/src/main/res/values-de/strings.xml
@@ -23,6 +23,8 @@
<string name="gpodnet_main_label">gpodder.net</string>
<string name="gpodnet_auth_label">gpodder.net Anmeldung</string>
<string name="free_space_label">%1$s frei</string>
+ <string name="episode_cache_full_title">Episodenspeicher voll</string>
+ <string name="episode_cache_full_message">Der Episodenspeicher ist voll. Du kannst die Größe des Episodenspeichers in den Einstellungen erhöhen.</string>
<!--New episodes fragment-->
<string name="recently_published_episodes_label">Zuletzt veröffentlicht</string>
<string name="episode_filter_label">Nur neue Episoden anzeigen</string>
@@ -67,7 +69,7 @@
<string name="length_prefix">Länge:\u0020</string>
<string name="size_prefix">Größe:\u0020</string>
<string name="processing_label">Verarbeite</string>
- <string name="loading_label">Lade ...</string>
+ <string name="loading_label">Wird geladen…</string>
<string name="save_username_password_label">Benutzername und Password merken</string>
<string name="close_label">Schließen</string>
<string name="retry_label">Erneut versuchen</string>
@@ -79,7 +81,7 @@
<string name="feed_auto_download_global">Global</string>
<string name="feed_auto_download_always">Immer</string>
<string name="feed_auto_download_never">Nie</string>
- <string name="send_label">Senden...</string>
+ <string name="send_label">Senden…</string>
<string name="episode_cleanup_never">Nie</string>
<string name="episode_cleanup_queue_removal">Wenn nicht in der Abspielliste</string>
<string name="episode_cleanup_after_listening">wenn fertig gespielt gespielt</string>
@@ -102,7 +104,7 @@
<string name="mark_all_seen_label">Alle als gesehen markieren</string>
<string name="show_info_label">Informationen anzeigen</string>
<string name="remove_feed_label">Podcast entfernen</string>
- <string name="share_label">Teile...</string>
+ <string name="share_label">Teilen…</string>
<string name="share_link_label">Webseiten-Link teilen</string>
<string name="share_link_with_position_label">Teile Link mit Zeitmarke</string>
<string name="share_feed_url_label">Teile URL des Podcasts</string>
@@ -137,7 +139,9 @@
<string name="added_to_queue_label">Zur Abspielliste hinzugefügt</string>
<string name="remove_from_queue_label">Aus der Abspielliste entfernen</string>
<string name="add_to_favorite_label">Zu Favoriten hinzufügen</string>
+ <string name="added_to_favorites">Zu Favoriten hinzugefügt</string>
<string name="remove_from_favorite_label">Aus Favoriten entfernen</string>
+ <string name="removed_from_favorites">Aus Favoriten entfernt</string>
<string name="visit_website_label">Webseite besuchen</string>
<string name="support_label">Flattrn</string>
<string name="enqueue_all_new">Alle zur Abspielliste hinzufügen</string>
@@ -171,7 +175,10 @@
<string name="download_error_io_error">E/A Error</string>
<string name="download_error_request_error">Anfragefehler</string>
<string name="download_error_db_access">Datenbankzugriffsfehler</string>
- <string name="downloads_left">\u0020Downloads übrig</string>
+ <plurals name="downloads_left">
+ <item quantity="one">%d Download übrig</item>
+ <item quantity="other">%d Downloads übrig</item>
+ </plurals>
<string name="downloads_processing">Verarbeite Downloads</string>
<string name="download_notification_title">Lade Podcast-Daten</string>
<string name="download_report_content">%1$d Downloads erfolgreich, %2$d fehlgeschlagen</string>
@@ -203,6 +210,8 @@
<!--Queue operations-->
<string name="lock_queue">Abspielliste sperren</string>
<string name="unlock_queue">Abspielliste entsperren</string>
+ <string name="queue_locked">Abspielliste gesperrt</string>
+ <string name="queue_unlocked">Abspielliste entsperrt</string>
<string name="clear_queue_label">Abspielliste leeren</string>
<string name="undo">Rückgängig</string>
<string name="removed_from_queue">Element entfernt</string>
@@ -244,20 +253,21 @@
<!--Variable Speed-->
<string name="download_plugin_label">Plugin herunterladen</string>
<string name="no_playback_plugin_title">Plugin nicht installiert</string>
- <string name="no_playback_plugin_or_sonic_msg">Damit die variable Wiedergabegeschwindigkeit funktioniert, musst du eine Drittanbieterbibliothek oder den experimentellen Sonic Player [Android 4.1+] heruntegeladen.\n\n Drücke \"Plugin herunterladen\", um ein kostenloses Plugin aus dem Play Store zu installieren.\n\nProbleme, die bei der Benutzung des Plugins auftreten, liegen nicht im Verantwortungsbereich von AntennaPod, und sollten dem Entwickler des Plugins gemeldet werden.</string>
+ <string name="no_playback_plugin_or_sonic_msg">Um variable Wiedergabegeschwindigkeit benutzen zu können, empfehlen wir, den integrierten Sonic Mediaplayer [Android 4.1+] zu aktivieren.\n\nAlternativ kannst du das kostenlose Plugin <i>Prestissimo</i> eines Drittanbieters aus dem Play Store herunterladen.\nProbleme mit Prestissimo liegen nicht im Verantwortungsbereich von AntennaPod und sollten dem Entwickler des Plugins gemeldet werden.</string>
<string name="set_playback_speed_label">Wiedergabegeschwindigkeiten</string>
<string name="enable_sonic">Sonic aktivieren</string>
<!--Empty list labels-->
<string name="no_items_label">Es sind keine Einträge in dieser Liste.</string>
<string name="no_feeds_label">Du hast noch keine Feeds abonniert.</string>
+ <string name="no_chapters_label">Diese Episode hat keine Kapitel.</string>
<!--Preferences-->
<string name="other_pref">Anderes</string>
<string name="about_pref">Über</string>
<string name="queue_label">Abspielliste</string>
<string name="services_label">Dienste</string>
<string name="flattr_label">Flattr</string>
- <string name="pref_episode_cleanup_title">Episodenaufräumer</string>
- <string name="pref_episode_cleanup_summary">Episoden, die nicht in der Abspielliste und nicht favorisiert sind, werden zum Aufräumen freigegeben, wenn Speicherplatz benötigt wird</string>
+ <string name="pref_episode_cleanup_title">Automatisches Löschen</string>
+ <string name="pref_episode_cleanup_summary">Episoden, die weder in Abspielliste noch favorisiert sind, können gelöscht werden, wenn beim automatischen Herunterladen Speicherplatz für neue Episoden gebraucht wird</string>
<string name="pref_pauseOnDisconnect_sum">Wiedergabe pausieren, wenn Kopfhörer ausgesteckt oder Bluetooth getrennt wird</string>
<string name="pref_unpauseOnHeadsetReconnect_sum">Wiedergabe fortsetzen, wenn Kopfhörer wieder eingesteckt werden</string>
<string name="pref_unpauseOnBluetoothReconnect_sum">Wiedergabe fortsetzen, wenn Bluetooth wieder verbunden ist</string>
@@ -278,6 +288,8 @@
<string name="pref_autoUpdateIntervallOrTime_Disable">Deaktivieren</string>
<string name="pref_autoUpdateIntervallOrTime_Interval">Intervall einstellen</string>
<string name="pref_autoUpdateIntervallOrTime_TimeOfDay">Tageszeit festlegen</string>
+ <string name="pref_autoUpdateIntervallOrTime_every">jede %1$s</string>
+ <string name="pref_autoUpdateIntervallOrTime_at">um %1$s</string>
<string name="pref_downloadMediaOnWifiOnly_sum">Lade Mediendateien nur über WiFi</string>
<string name="pref_followQueue_title">Durchgehendes Abspielen</string>
<string name="pref_downloadMediaOnWifiOnly_title">WiFi Medien-Download</string>
@@ -335,7 +347,7 @@
<string name="pref_gpodnet_sethostname_use_default_host">Standard-Host verwenden</string>
<string name="pref_expandNotify_title">Benachrichtigung erweitern</string>
<string name="pref_expandNotify_sum">Erweiterte Wiedergabebenachrichtigung mit Abspiel-, Pause- und Stop-Knöpfen anzeigen.</string>
- <string name="pref_persistNotify_title">Persistente Wiedergabesteurung</string>
+ <string name="pref_persistNotify_title">Persistente Wiedergabesteuerung</string>
<string name="pref_persistNotify_sum">Zeige Wiedergabebedienelemente in der Benachrichtigung und im Lockscreen an, während die Wiedergabe pausiert ist.</string>
<string name="pref_lockscreen_background_title">Lockscreen-Hintergrund einstellen</string>
<string name="pref_lockscreen_background_sum">Verwende das aktuelle Episodenbild als Lockscreen-Hintergrund. Es wird als Nebeneffekt auch in anderen Apps gezeigt.</string>
@@ -351,8 +363,9 @@
<string name="crash_report_sum">Sende den aktuellen Absturzbericht per E-Mail</string>
<string name="send_email">E-Mail senden</string>
<string name="experimental_pref">Experimentell</string>
- <string name="pref_sonic_title">Sonic Media Player</string>
- <string name="pref_sonic_message">Benutze den eingebauten Sonic Media Player als Ersatz für Prestissimo</string>
+ <string name="pref_sonic_title">Sonic Mediaplayer</string>
+ <string name="pref_sonic_message">Benutze den integrierten Sonic Mediaplayer als Ersatz für Androids eigenen Mediaplayer und Prestissimo</string>
+ <string name="pref_current_value">Aktueller Wert: %1$s</string>
<!--Auto-Flattr dialog-->
<string name="auto_flattr_enable">Automatisches Flattrn aktivieren</string>
<string name="auto_flattr_after_percent">Flattr eine Episode, sobald %d Prozent gespielt worden sind</string>
@@ -379,11 +392,11 @@
<string name="opml_import_error_dir_empty">Der Import-Ordner ist leer.</string>
<string name="select_all_label">Alle auswählen</string>
<string name="deselect_all_label">Auswahl zurücksetzen</string>
- <string name="select_options_label">Wähle aus ...</string>
+ <string name="select_options_label">Auswählen…</string>
<string name="choose_file_from_filesystem">Vom lokalen Dateisystem</string>
<string name="choose_file_from_external_application">Verwende externe Anwendung</string>
<string name="opml_export_label">OPML Export</string>
- <string name="exporting_label">Exportiere...</string>
+ <string name="exporting_label">Exportiere…</string>
<string name="export_error_label">Exportfehler</string>
<string name="opml_export_success_title">OPML Export erfolgreich</string>
<string name="opml_export_success_sum">Die OPML Datei wurde unter dem folgenden Pfad gespeichert:\u0020</string>
@@ -464,7 +477,7 @@
<!--Online feed view-->
<string name="subscribe_label">Abonnieren</string>
<string name="subscribed_label">Abonniert</string>
- <string name="downloading_label">Lade herunter...</string>
+ <string name="downloading_label">Lade herunter…</string>
<!--Content descriptions for image buttons-->
<string name="show_chapters_label">Kapitel anzeigen</string>
<string name="show_shownotes_label">Sendungsnotizen anzeigen</string>
@@ -492,7 +505,8 @@
<!--AntennaPodSP-->
<string name="sp_apps_importing_feeds_msg">Importiere Abonnements aus Single-Purpose Apps</string>
<string name="search_itunes_label">iTunes durchsuchen</string>
- <string name="select_label"><b>Wähle aus ...</b></string>
+ <string name="select_label"><b>Wähle aus…</b></string>
+ <string name="filter">Filtern</string>
<string name="all_label">Alle</string>
<string name="selected_all_label">Alle Episoden ausgewählt</string>
<string name="none_label">Keine</string>
@@ -505,7 +519,7 @@
<string name="selected_downloaded_label">Heruntergeladene Episoden ausgewählt</string>
<string name="not_downloaded_label">Nicht heruntergeladen</string>
<string name="selected_not_downloaded_label">Nicht heruntergeladene Episoden ausgewählt</string>
- <string name="sort_title"><b>Sortieren nach ...</b></string>
+ <string name="sort_title"><b>Sortiere nach…</b></string>
<string name="sort_title_a_z">Titel (A \u2192 Z)</string>
<string name="sort_title_z_a">Titel (Z \u2192 A)</string>
<string name="sort_date_new_old">Datum (neu \u2192 alt)</string>
@@ -518,4 +532,13 @@
<string name="rating_never_label">Lass mich in Ruhe</string>
<string name="rating_later_label">Erinnere mich später</string>
<string name="rating_now_label">Sicher, los geht\'s!</string>
+ <!--Audio controls-->
+ <string name="audio_controls">Audioregler</string>
+ <string name="playback_speed">Abspielgeschwindigkeit</string>
+ <string name="volume">Lautstärke</string>
+ <string name="left_short">L</string>
+ <string name="right_short">R</string>
+ <string name="audio_effects">Audioeffekte</string>
+ <string name="stereo_to_mono">Heruntermischen: Stereo zu Mono</string>
+ <string name="sonic_only">nur Sonic</string>
</resources>
diff --git a/core/src/main/res/values-es-rES/strings.xml b/core/src/main/res/values-es-rES/strings.xml
index 3cff046d0..7c851db62 100644
--- a/core/src/main/res/values-es-rES/strings.xml
+++ b/core/src/main/res/values-es-rES/strings.xml
@@ -3,43 +3,90 @@
<!--Activitiy and fragment titles-->
<string name="app_name">AntennaPod</string>
<string name="feeds_label">Canales</string>
+ <string name="add_feed_label">Añadir podcast</string>
<string name="podcasts_label">PODCASTS</string>
+ <string name="episodes_label">Episodios</string>
+ <string name="new_episodes_label">Nuevos episodios</string>
+ <string name="all_episodes_label">Todos los episodios</string>
+ <string name="all_episodes_short_label">Todos</string>
+ <string name="favorite_episodes_label">Favoritos</string>
<string name="new_label">Nuevos</string>
<string name="waiting_list_label">Lista de espera</string>
<string name="settings_label">Ajustes</string>
+ <string name="add_new_feed_label">Añadir podcast</string>
<string name="downloads_label">Descargas</string>
<string name="cancel_download_label">Cancelar descarga</string>
<string name="playback_history_label">Historial de reproducción</string>
+ <string name="gpodnet_main_label">gpodder.net</string>
+ <string name="gpodnet_auth_label">gpodder.net Login</string>
+ <string name="free_space_label">%1$s disponible</string>
<!--New episodes fragment-->
+ <string name="recently_published_episodes_label">Publicado recientemente</string>
+ <string name="episode_filter_label">Mostrar solo episodios nuevos</string>
<!--Main activity-->
+ <string name="drawer_open">Abrir menu</string>
+ <string name="drawer_close">Cerrar menu</string>
+ <string name="drawer_feed_order_unplayed_episodes">Ordenar por contador</string>
+ <string name="drawer_feed_order_alphabetical">Ordenar alfabéticamente</string>
+ <string name="drawer_feed_order_last_update">Ordenar por fecha de publicación</string>
+ <string name="drawer_feed_counter_new_unplayed">Numero de episodios nuevos y no escuchados</string>
+ <string name="drawer_feed_counter_new">Numero de nuevos episodios</string>
+ <string name="drawer_feed_counter_unplayed">Numero de episodios no escuchados</string>
+ <string name="drawer_feed_counter_none">Ningun</string>
<!--Webview actions-->
<string name="open_in_browser_label">Abrir en el navegador</string>
<string name="copy_url_label">Copiar URL</string>
<string name="share_url_label">Compartir URL</string>
<string name="copied_url_msg">URL copiada al portapapeles.</string>
+ <string name="go_to_position_label">Ir a esta posición</string>
<!--Playback history-->
<string name="clear_history_label">Limpiar el historial</string>
<!--Other-->
<string name="confirm_label">Confirmar</string>
<string name="cancel_label">Cancelar</string>
+ <string name="yes">Si</string>
+ <string name="no">No</string>
<string name="author_label">Autor</string>
<string name="language_label">Idioma</string>
+ <string name="url_label">URL</string>
<string name="error_label">Error</string>
<string name="error_msg_prefix">Ha ocurrido un error:</string>
<string name="refresh_label">Actualizar</string>
<string name="external_storage_error_msg">No se encuentra un almacenamiento externo. Asegúrese de que su almacenamiento externo esté montado para que la aplicación funcione correctamente.</string>
<string name="chapters_label">Capítulos</string>
<string name="shownotes_label">Notas del programa</string>
+ <string name="description_label">Descripción</string>
+ <string name="most_recent_prefix">Episodio mas recién:\u0020</string>
<string name="episodes_suffix">\u0020episodios</string>
<string name="length_prefix">Duración:\u0020</string>
<string name="size_prefix">Tamaño:\u0020</string>
<string name="processing_label">Procesando</string>
- <string name="loading_label">Cargando...</string>
+ <string name="save_username_password_label">Guardar nombre de usuario y contraseña</string>
+ <string name="close_label">Cerrar</string>
+ <string name="retry_label">Intentar de nuevo</string>
+ <string name="auto_download_label">Incluir en descargas automaticas</string>
+ <string name="auto_download_apply_to_items_title">Aplicar a los previos episodios</string>
+ <string name="feed_auto_download_global">Global</string>
+ <string name="feed_auto_download_always">Siempre</string>
+ <string name="feed_auto_download_never">Nunca</string>
+ <string name="episode_cleanup_never">Nunca</string>
+ <string name="episode_cleanup_queue_removal">Cuando no en la lista</string>
+ <string name="episode_cleanup_after_listening">Despues de terminar</string>
+ <plurals name="episode_cleanup_days_after_listening">
+ <item quantity="one">1 día después de terminar</item>
+ <item quantity="other">%d días después de terminar</item>
+ </plurals>
<!--'Add Feed' Activity labels-->
<string name="feedurl_label">URL del canal</string>
+ <string name="etxtFeedurlHint">www.example.com/feed</string>
+ <string name="txtvfeedurl_label">Añadir podcast por URL</string>
+ <string name="podcastdirectories_label">Buscar podcast en directorio</string>
+ <string name="browse_gpoddernet_label">Navegar gpodder.net</string>
<!--Actions on feeds-->
<string name="mark_all_read_label">Marcar todo como leído</string>
+ <string name="mark_all_seen_label">Marcar todos como visto</string>
<string name="show_info_label">Información del programa</string>
+ <string name="remove_feed_label">Eliminar podcast</string>
<string name="share_link_label">Compartir el enlace de la web</string>
<string name="feed_delete_confirmation_msg">Confirme que quiere eliminar este canal y TODOS los episodios descargados del mismo.</string>
<!--actions on feeditems-->
@@ -75,7 +122,6 @@
<string name="download_error_malformed_url">URL malformada</string>
<string name="download_error_io_error">Error de E/S</string>
<string name="download_error_request_error">Error de petición</string>
- <string name="downloads_left">\u0020descargas restantes</string>
<string name="download_notification_title">Descargando datos del podcast</string>
<string name="download_report_content">%1$d descargas exitosas, %2$d fallidas</string>
<string name="download_log_title_unknown">Título desconocido</string>
@@ -162,7 +208,6 @@
<string name="select_all_label">Seleccionar todo</string>
<string name="deselect_all_label">Deseleccionar todo</string>
<string name="opml_export_label">Exportar a OPML</string>
- <string name="exporting_label">Exportando...</string>
<string name="export_error_label">Error en la exportación</string>
<string name="opml_export_success_sum">El archivo OPML se ha escrito en:\u0020</string>
<!--Sleep timer-->
@@ -187,8 +232,12 @@
<string name="set_to_default_folder">Elegir carpeta predeterminada</string>
<!--Online feed view-->
<!--Content descriptions for image buttons-->
+ <string name="new_episodes_count_label">Numero de nuevos episodios</string>
<!--Feed information screen-->
<!--Progress information-->
<!--AntennaPodSP-->
+ <string name="all_label">Todos</string>
+ <string name="none_label">Ningun</string>
<!--Rating dialog-->
+ <!--Audio controls-->
</resources>
diff --git a/core/src/main/res/values-es/strings.xml b/core/src/main/res/values-es/strings.xml
index a99a052d4..a2abd5d85 100644
--- a/core/src/main/res/values-es/strings.xml
+++ b/core/src/main/res/values-es/strings.xml
@@ -18,7 +18,7 @@
<string name="downloads_running_label">En curso</string>
<string name="downloads_completed_label">Completadas</string>
<string name="downloads_log_label">Registro</string>
- <string name="cancel_download_label">Cancelar descarga</string>
+ <string name="cancel_download_label">Cancelar\ndescarga</string>
<string name="playback_history_label">Historial de reproducciones</string>
<string name="gpodnet_main_label">gpodder.net</string>
<string name="gpodnet_auth_label">Iniciar sesión en gpodder.net</string>
@@ -41,7 +41,7 @@
<string name="open_in_browser_label">Abrir en el navegador</string>
<string name="copy_url_label">Copiar URL</string>
<string name="share_url_label">Compartir URL</string>
- <string name="copied_url_msg">URL copiada en el portapapeles.</string>
+ <string name="copied_url_msg">URL copiado en el portapapeles</string>
<string name="go_to_position_label">Ir a esta posición</string>
<!--Playback history-->
<string name="clear_history_label">Vaciar el historial</string>
@@ -67,19 +67,19 @@
<string name="length_prefix">Duración:\u0020</string>
<string name="size_prefix">Tamaño:\u0020</string>
<string name="processing_label">Procesando</string>
- <string name="loading_label">Cargando...</string>
+ <string name="loading_label">Cargando…</string>
<string name="save_username_password_label">Guardar usuario y contraseña</string>
<string name="close_label">Cerrar</string>
<string name="retry_label">Reintentar</string>
<string name="auto_download_label">Incluir en descargas automáticas</string>
<string name="auto_download_apply_to_items_title">Aplicar a episodios anteriores</string>
<string name="auto_download_apply_to_items_message">La nueva opción <i>Auto Descarga</i> se aplicará automáticamente a episodios nuevos.\n¿También desea aplicarlo a episodios anteriores?</string>
- <string name="auto_delete_label">Auto borrar episodio\n(Ignorando los ajustes globales)</string>
+ <string name="auto_delete_label">Eliminar episodio automáticamente\n(ignorar config. global)</string>
<string name="parallel_downloads_suffix">\u0020descargas paralelas</string>
<string name="feed_auto_download_global">Global</string>
<string name="feed_auto_download_always">Siempre</string>
<string name="feed_auto_download_never">Nunca</string>
- <string name="send_label">Enviar...</string>
+ <string name="send_label">Enviar…</string>
<string name="episode_cleanup_never">Nunca</string>
<string name="episode_cleanup_queue_removal">Cuando no esté en cola</string>
<string name="episode_cleanup_after_listening">Después de acabar</string>
@@ -89,7 +89,7 @@
</plurals>
<!--'Add Feed' Activity labels-->
<string name="feedurl_label">URL del canal</string>
- <string name="etxtFeedurlHint">URL del canal o del sitio web</string>
+ <string name="etxtFeedurlHint">www.ejemplo.com/feed</string>
<string name="txtvfeedurl_label">Añadir podcast por URL</string>
<string name="podcastdirectories_label">Buscar podcast en directorio</string>
<string name="podcastdirectories_descr">Es posible buscar podcasts nuevos por nombre, categoría o popularidad en el directorio de gpodder.net.</string>
@@ -97,12 +97,12 @@
<!--Actions on feeds-->
<string name="mark_all_read_label">Marcar todos como escuchado</string>
<string name="mark_all_read_msg">Se marcaron todos los episodios como escuchados</string>
- <string name="mark_all_read_confirmation_msg">Por favor, confirme que desea marcar todos los episodios como escuchados.</string>
- <string name="mark_all_read_feed_confirmation_msg">Por favor, confirme que desea marcar todos los episodios de este feed como escuchados.</string>
+ <string name="mark_all_read_confirmation_msg">Confirme que quiere marcar todos los episodios como escuchados.</string>
+ <string name="mark_all_read_feed_confirmation_msg">Confirme que quiere marcar todos los episodios de este canal como escuchados.</string>
<string name="mark_all_seen_label">Marcar todos como vistos</string>
<string name="show_info_label">Información del programa</string>
<string name="remove_feed_label">Eliminar podcast</string>
- <string name="share_label">Compartir...</string>
+ <string name="share_label">Compartir…</string>
<string name="share_link_label">Compartir el enlace de la web</string>
<string name="share_link_with_position_label">Compartir enlace con posición</string>
<string name="share_feed_url_label">Compartir URL del canal</string>
@@ -136,8 +136,10 @@
<string name="add_to_queue_label">Añadir a la cola</string>
<string name="added_to_queue_label">Añadido a la cola</string>
<string name="remove_from_queue_label">Quitar de la cola</string>
- <string name="add_to_favorite_label">Agregar a Favoritos</string>
+ <string name="add_to_favorite_label">Añadir a Favoritos</string>
+ <string name="added_to_favorites">Añadido a Favoritos</string>
<string name="remove_from_favorite_label">Eliminar de Favoritos</string>
+ <string name="removed_from_favorites">Quitado de Favoritos</string>
<string name="visit_website_label">Visitar el sitio web</string>
<string name="support_label">Añadir a Flattr</string>
<string name="enqueue_all_new">Ponerlos todos en cola</string>
@@ -164,14 +166,17 @@
<string name="download_error_unauthorized">Error de autenticación</string>
<string name="cancel_all_downloads_label">Cancelar todas las descargas</string>
<string name="download_canceled_msg">Descarga cancelada</string>
- <string name="download_canceled_autodownload_enabled_msg">Cancelada descarga\nDeshabilitada <i>Descarga Automática</i> para este ítem</string>
+ <string name="download_canceled_autodownload_enabled_msg">Descarga cancelada\nSe desactivó <i>Descarga automática</i> en este elemento</string>
<string name="download_report_title">Descargas completadas con error(es)</string>
<string name="download_report_content_title">Informe de descarga</string>
<string name="download_error_malformed_url">URL con formato incorrecto</string>
<string name="download_error_io_error">Error de E/S</string>
<string name="download_error_request_error">Error de solicitud</string>
<string name="download_error_db_access">Error de acceso a la base de datos</string>
- <string name="downloads_left">\u0020descargas restantes</string>
+ <plurals name="downloads_left">
+ <item quantity="one">Queda %d descarga</item>
+ <item quantity="other">Quedan %d descargas</item>
+ </plurals>
<string name="downloads_processing">Procesando descargas</string>
<string name="download_notification_title">Descargando datos del podcast</string>
<string name="download_report_content">%1$d descargas exitosas, %2$d fallidas</string>
@@ -183,10 +188,10 @@
<string name="authentication_notification_title">Se necesita autenticación</string>
<string name="authentication_notification_msg">Para acceder al recurso solicitado debe proporcionar un usuario y contraseña</string>
<string name="confirm_mobile_download_dialog_title">Confirmar descarga por red móvil</string>
- <string name="confirm_mobile_download_dialog_message_not_in_queue">Las descargas sobre la red móvil están deshabilitadas en ajustes.\n\nHabilitar temporalmente o sólo agregar a la cola?\n\n<small>Esta elección será recordada por 10 minutos.</small></string>
- <string name="confirm_mobile_download_dialog_message">Las descargas sobre la red móvil están deshabilitadas en ajustes.\n\nHabilitar temporalmente?\n\n<small>Esta elección será recordada por 10 minutos.</small></string>
- <string name="confirm_mobile_download_dialog_only_add_to_queue">Sólo agregar a la cola</string>
- <string name="confirm_mobile_download_dialog_enable_temporarily">Habilitar temporalmente</string>
+ <string name="confirm_mobile_download_dialog_message_not_in_queue">Se desactivaron las descargas por red de datos móviles en la configuración.\n\nPuede elegir entre añadir el episodio a la cola o permitir las descargas temporalmente.\n\n<small>Se recordará la elección por 10 minutos.</small></string>
+ <string name="confirm_mobile_download_dialog_message">Se desactivaron las descargas por red de datos móviles en la configuración.\n\n¿Quiere permitir las descargas temporalmente?\n\n<small>Se recordará la elección por 10 minutos.</small></string>
+ <string name="confirm_mobile_download_dialog_only_add_to_queue">Añadir a la cola</string>
+ <string name="confirm_mobile_download_dialog_enable_temporarily">Permitir temporalmente</string>
<!--Mediaplayer messages-->
<string name="player_error_msg">Error</string>
<string name="player_stopped_msg">No hay medios en reproducción</string>
@@ -203,9 +208,11 @@
<!--Queue operations-->
<string name="lock_queue">Bloquear cola</string>
<string name="unlock_queue">Desbloquear cola</string>
+ <string name="queue_locked">Cola bloqueada</string>
+ <string name="queue_unlocked">Cola desbloqueada</string>
<string name="clear_queue_label">Vaciar la cola</string>
<string name="undo">Deshacer</string>
- <string name="removed_from_queue">Artículo eliminado</string>
+ <string name="removed_from_queue">Se quitó el elemento</string>
<string name="move_to_top_label">Mover al principio</string>
<string name="move_to_bottom_label">Mover al final</string>
<string name="sort">Ordenar</string>
@@ -214,7 +221,7 @@
<string name="duration">Duración</string>
<string name="ascending">Ascendente</string>
<string name="descending">Descendente</string>
- <string name="clear_queue_confirmation_msg">Por favor, confirme que desea borrar TODOS los episodios de la cola</string>
+ <string name="clear_queue_confirmation_msg">Confirme que quiere borrar TODOS los episodios de la cola</string>
<!--Flattr-->
<string name="flattr_auth_label">Identificarse en Flattr</string>
<string name="flattr_auth_explanation">Pulse el botón inferior para comenzar la autenticación. Su navegador abrirá la pantalla de identificación de Flattr y le preguntará si quiere conceder permiso a AntennaPod para valorar cosas. Tras concederlo, volverá a esta pantalla automáticamente.</string>
@@ -222,7 +229,7 @@
<string name="return_home_label">Volver a la pantalla principal</string>
<string name="flattr_auth_success">Autentificación exitosa. Ya puede valorar cosas en Flattr desde la aplicación.</string>
<string name="no_flattr_token_title">No se ha encontrado un token de Flattr</string>
- <string name="no_flattr_token_notification_msg">Tu cuenta Flatter parece no estar conectada con AntennaPod. Pulsa aquí para autenticar.</string>
+ <string name="no_flattr_token_notification_msg">Parece que su cuenta de Flattr no está conectada con AntennaPod. Toque aquí para autenticarse.</string>
<string name="no_flattr_token_msg">Su cuenta de Flattr no está conectada con AntennaPod. Puede conectarla o puede visitar la página web de cada cosa para valorarla desde allí.</string>
<string name="authenticate_now_label">Autenticarse</string>
<string name="action_forbidden_title">Acción prohibida</string>
@@ -230,10 +237,10 @@
<string name="access_revoked_title">Acceso revocado</string>
<string name="access_revoked_info">Ha revocado el token de acceso de AntennaPod a su cuenta. Para completar el proceso debe eliminar esta aplicación de la lista de aplicaciones aprobadas, en los ajustes de Flattr.</string>
<!--Flattr-->
- <string name="flattr_click_success">¡Flattr una cosa!</string>
- <string name="flattr_click_success_count">¡Flattr %d cosas!</string>
+ <string name="flattr_click_success">Ha hecho Flattr en un elemento.</string>
+ <string name="flattr_click_success_count">Ha hecho Flattr en %d elementos.</string>
<string name="flattr_click_success_queue">Flattr: %s.</string>
- <string name="flattr_click_failure_count">¡Falló Flattr de %d cosas!</string>
+ <string name="flattr_click_failure_count">No se pudo hacer Flattr en %d elementos.</string>
<string name="flattr_click_failure">No se hizo Flattr: %s.</string>
<string name="flattr_click_enqueued">Se hará Flattr de esta cosa más tarde</string>
<string name="flattring_thing">Haciendo Flattr de %s</string>
@@ -244,12 +251,12 @@
<!--Variable Speed-->
<string name="download_plugin_label">Descargar complemento</string>
<string name="no_playback_plugin_title">Complemento no instalado</string>
- <string name="no_playback_plugin_or_sonic_msg">Para que funcione la reproducción a velocidad variable, es necesaria una librería de terceros o habilitar el reproductor experimental Sonic Player [Android 4.1+].\n\nPulsa «Descargar plugin» para descargar un plugin gratuito desde el Play Store\n\nCualquier problema relacionado con este plugin no es responsabilidad de AntennaPod y deberían ser reportados al autor del plugin.</string>
<string name="set_playback_speed_label">Velocidades de reproducción</string>
- <string name="enable_sonic">Habilitar Sonic</string>
+ <string name="enable_sonic">Activar Sonic</string>
<!--Empty list labels-->
<string name="no_items_label">Esta lista no tiene elementos.</string>
<string name="no_feeds_label">No se ha suscrito a ningún canal.</string>
+ <string name="no_chapters_label">Este episodio no tiene capítulos.</string>
<!--Preferences-->
<string name="other_pref">Otros</string>
<string name="about_pref">Acerca de</string>
@@ -257,7 +264,7 @@
<string name="services_label">Servicios</string>
<string name="flattr_label">Flattr</string>
<string name="pref_episode_cleanup_title">Limpieza de episodios</string>
- <string name="pref_episode_cleanup_summary">Los episodios que no están en la cola ni son favoritos serían candidatos a eliminarse si hace falta espacio</string>
+ <string name="pref_episode_cleanup_summary">Los episodios que no estén en la cola ni en Favoritos pueden eliminarse si Descarga automática necesita espacio para episodios nuevos</string>
<string name="pref_pauseOnDisconnect_sum">Pausar la reproducción al desconectar los auriculares o el bluetooth</string>
<string name="pref_unpauseOnHeadsetReconnect_sum">Reanudar reproducción cuando se reconecten los auriculares</string>
<string name="pref_unpauseOnBluetoothReconnect_sum">Reanudar reproducción cuando se reconecte el bluetooth</string>
@@ -278,6 +285,8 @@
<string name="pref_autoUpdateIntervallOrTime_Disable">Deshabilitar</string>
<string name="pref_autoUpdateIntervallOrTime_Interval">Ajustar intervalo</string>
<string name="pref_autoUpdateIntervallOrTime_TimeOfDay">Ajustar hora del día</string>
+ <string name="pref_autoUpdateIntervallOrTime_every">todos los %1$s</string>
+ <string name="pref_autoUpdateIntervallOrTime_at">a las %1$s</string>
<string name="pref_downloadMediaOnWifiOnly_sum">Solo descargar los contenidos por WiFi</string>
<string name="pref_followQueue_title">Reproducción continua</string>
<string name="pref_downloadMediaOnWifiOnly_title">Descarga de contenidos por WiFi</string>
@@ -352,7 +361,7 @@
<string name="send_email">Enviar e-mail</string>
<string name="experimental_pref">Experimental</string>
<string name="pref_sonic_title">Sonic media player</string>
- <string name="pref_sonic_message">Usar sonic media player integrado como sustitución de Prestissimo</string>
+ <string name="pref_current_value">Valor actual: %1$s</string>
<!--Auto-Flattr dialog-->
<string name="auto_flattr_enable">Habilitar Flattr automático</string>
<string name="auto_flattr_after_percent">Hacer Flattr del episodio en cuanto se haya reproducido el %d por ciento</string>
@@ -379,11 +388,11 @@
<string name="opml_import_error_dir_empty">El directorio de importación está vacío.</string>
<string name="select_all_label">Seleccionar todo</string>
<string name="deselect_all_label">Deseleccionar todo</string>
- <string name="select_options_label">Seleccionar...</string>
+ <string name="select_options_label">Seleccionar…</string>
<string name="choose_file_from_filesystem">Desde el sistema de ficheros local</string>
<string name="choose_file_from_external_application">Usar aplicación externa</string>
<string name="opml_export_label">Exportar a OPML</string>
- <string name="exporting_label">Exportando...</string>
+ <string name="exporting_label">Exportando…</string>
<string name="export_error_label">Error en la exportación</string>
<string name="opml_export_success_title">Exportación a OPML exitosa</string>
<string name="opml_export_success_sum">El archivo OPML se ha escrito en:\u0020</string>
@@ -492,7 +501,8 @@
<!--AntennaPodSP-->
<string name="sp_apps_importing_feeds_msg">Importando subscripciones de aplicaciones de uso específico...</string>
<string name="search_itunes_label">Buscar en iTunes</string>
- <string name="select_label"><b>Seleccionar...</b></string>
+ <string name="select_label"><b>Seleccionar…</b></string>
+ <string name="filter">Filtro</string>
<string name="all_label">Todo</string>
<string name="selected_all_label">Seleccionados todos los episodios</string>
<string name="none_label">Ninguno</string>
@@ -505,7 +515,7 @@
<string name="selected_downloaded_label">Seleccionados episodios descargados</string>
<string name="not_downloaded_label">No descargado</string>
<string name="selected_not_downloaded_label">Seleccionados episodios no descargados</string>
- <string name="sort_title"><b>Ordenar por...</b></string>
+ <string name="sort_title"><b>Ordenar por…</b></string>
<string name="sort_title_a_z">Título (A \u2192 Z)</string>
<string name="sort_title_z_a">Título (Z \u2192 A)</string>
<string name="sort_date_new_old">Fecha (Nuevo \u2192 Antiguo)</string>
@@ -518,4 +528,11 @@
<string name="rating_never_label">Déjame en paz</string>
<string name="rating_later_label">Recuérdamelo después</string>
<string name="rating_now_label">¡Venga, hagámoslo!</string>
+ <!--Audio controls-->
+ <string name="audio_controls">Controles de audio</string>
+ <string name="playback_speed">Velocidad de reproducción</string>
+ <string name="volume">Volumen</string>
+ <string name="left_short">I</string>
+ <string name="right_short">D</string>
+ <string name="audio_effects">Efectos de audio</string>
</resources>
diff --git a/core/src/main/res/values-fr/strings.xml b/core/src/main/res/values-fr/strings.xml
index c1a8a03fe..38eef41df 100644
--- a/core/src/main/res/values-fr/strings.xml
+++ b/core/src/main/res/values-fr/strings.xml
@@ -22,7 +22,9 @@
<string name="playback_history_label">Journal des lectures</string>
<string name="gpodnet_main_label">gpodder.net</string>
<string name="gpodnet_auth_label">Identifiants gpodder.net</string>
- <string name="free_space_label">%1$s libre</string>
+ <string name="free_space_label">%1$s d\'espace libre</string>
+ <string name="episode_cache_full_title">L\'emplacement pour stocker les épisodes est plein</string>
+ <string name="episode_cache_full_message">Le volume maximum d\'épisode à stocker a été atteint. Vous pouvez augmenter la taille du cache dans les paramètres.</string>
<!--New episodes fragment-->
<string name="recently_published_episodes_label">Publié récemment</string>
<string name="episode_filter_label">N\'afficher que les nouveaux épisodes</string>
@@ -67,7 +69,7 @@
<string name="length_prefix">Durée :\u0020</string>
<string name="size_prefix">Taille :\u0020</string>
<string name="processing_label">Traitement en cours</string>
- <string name="loading_label">En chargement...</string>
+ <string name="loading_label">Chargement...</string>
<string name="save_username_password_label">Sauvegarder votre identifiant et votre mot de passe</string>
<string name="close_label">Fermer</string>
<string name="retry_label">Réessayer</string>
@@ -79,7 +81,7 @@
<string name="feed_auto_download_global">Global</string>
<string name="feed_auto_download_always">Toujours</string>
<string name="feed_auto_download_never">Jamais</string>
- <string name="send_label">Envoyer....</string>
+ <string name="send_label">Envoyer...</string>
<string name="episode_cleanup_never">Jamais</string>
<string name="episode_cleanup_queue_removal">Quand l’épisode n\'est pas dans la liste</string>
<string name="episode_cleanup_after_listening">Après avoir terminé</string>
@@ -121,7 +123,7 @@
<string name="hide_downloaded_episodes_label">Téléchargé</string>
<string name="hide_not_downloaded_episodes_label">Non téléchargé</string>
<string name="filtered_label">Filtré</string>
- <string name="refresh_failed_msg">{fa-exclamation-circle} La dernière mise à jour a échouée</string>
+ <string name="refresh_failed_msg">{fa-exclamation-circle} La dernière mise à jour a échoué</string>
<!--actions on feeditems-->
<string name="download_label">Télécharger</string>
<string name="play_label">Lire</string>
@@ -137,7 +139,9 @@
<string name="added_to_queue_label">Ajouté à la liste</string>
<string name="remove_from_queue_label">Supprimer de la liste</string>
<string name="add_to_favorite_label">Ajouter aux Favoris</string>
+ <string name="added_to_favorites">Ajouter aux Favoris</string>
<string name="remove_from_favorite_label">Supprimer des Favoris</string>
+ <string name="removed_from_favorites">Supprimer des Favoris</string>
<string name="visit_website_label">Visiter le site</string>
<string name="support_label">Flattr ça!</string>
<string name="enqueue_all_new">Ajouter tous à la liste</string>
@@ -171,7 +175,10 @@
<string name="download_error_io_error">Erreur d\'E/S</string>
<string name="download_error_request_error">Erreur de requête</string>
<string name="download_error_db_access">Problème d\'accès à la base de données</string>
- <string name="downloads_left">\u0020téléchargements restants</string>
+ <plurals name="downloads_left">
+ <item quantity="one">%d téléchargement restant</item>
+ <item quantity="other">%d téléchargements restants</item>
+ </plurals>
<string name="downloads_processing">Traitement des téléchargements</string>
<string name="download_notification_title">Téléchargement des données du podcast</string>
<string name="download_report_content">%1$d téléchargements réussis, %2$d échoués</string>
@@ -203,6 +210,8 @@
<!--Queue operations-->
<string name="lock_queue">Bloquer la liste</string>
<string name="unlock_queue">Débloquer la liste</string>
+ <string name="queue_locked">Liste de lecture verrouillée</string>
+ <string name="queue_unlocked">Liste de lecture déverrouillée</string>
<string name="clear_queue_label">Effacer la liste</string>
<string name="undo">Annuler</string>
<string name="removed_from_queue">Élément retiré</string>
@@ -244,12 +253,13 @@
<!--Variable Speed-->
<string name="download_plugin_label">Télécharger une extension</string>
<string name="no_playback_plugin_title">Extension non installée</string>
- <string name="no_playback_plugin_or_sonic_msg">Pour pouvoir changer la vitesse de lecture il est nécessaire d\'installer une librairie tierce ou d\'activer le lecteur expérimental Sonic [Android 4.1+].\n\nSélectionnez \"Télécharger une extension\" pour télécharger une extension gratuite depuis le Play Store.\n\nLes problème rencontrés avec cette extension ne sont pas de la responsabilité d\'AntennaPod. Veillez à notifier le créateur de l\'extension pour tout problème.</string>
+ <string name="no_playback_plugin_or_sonic_msg">Pour pouvoir changer la vitesse de lecture il est recommandé d\'activer le lecteur interne Sonic [Android 4.1+].\n\nSinon vous pouvez télécharger l\'extension <i>Prestissimo</i> depuis le Play Store.\nLes problème rencontrés avec Prestissimo ne sont pas de la responsabilité d\'AntennaPod et sont à communiquer au créateur de l\'extension.</string>
<string name="set_playback_speed_label">Vitesses de lecture</string>
<string name="enable_sonic">Activer Sonic</string>
<!--Empty list labels-->
<string name="no_items_label">Cette liste est vide.</string>
<string name="no_feeds_label">Vous n\'êtes encore abonné à aucun flux.</string>
+ <string name="no_chapters_label">Cet épisode n\'a pas de chapitres.</string>
<!--Preferences-->
<string name="other_pref">Autres</string>
<string name="about_pref">À propos</string>
@@ -257,7 +267,7 @@
<string name="services_label">Services</string>
<string name="flattr_label">Flattr</string>
<string name="pref_episode_cleanup_title">Nettoyage des épisodes</string>
- <string name="pref_episode_cleanup_summary">Les épisodes qui ne sont ni dans la liste ni dans les favoris peuvent être supprimés si l\'espace disque devient faible</string>
+ <string name="pref_episode_cleanup_summary">Les épisodes qui ne sont pas dans la liste de lecture et qui ne sont pas marqués comme favoris peuvent être supprimés si l\'espace est insuffisant pour le téléchargement automatique de nouveaux épisodes</string>
<string name="pref_pauseOnDisconnect_sum">Interrompre la lecture lorsque le casque ou le bluetooth sont déconnectés</string>
<string name="pref_unpauseOnHeadsetReconnect_sum">Reprendre la lecture quand les écouteurs sont reconnectés</string>
<string name="pref_unpauseOnBluetoothReconnect_sum">Reprendre la lecture quand le Bluetooth se reconnecte</string>
@@ -278,6 +288,8 @@
<string name="pref_autoUpdateIntervallOrTime_Disable">Désactiver</string>
<string name="pref_autoUpdateIntervallOrTime_Interval">Définir intervalle</string>
<string name="pref_autoUpdateIntervallOrTime_TimeOfDay">Régler l\'heure</string>
+ <string name="pref_autoUpdateIntervallOrTime_every">toutes les %1$s</string>
+ <string name="pref_autoUpdateIntervallOrTime_at">à %1$s</string>
<string name="pref_downloadMediaOnWifiOnly_sum">Ne télécharger les épisodes que par Wi-Fi</string>
<string name="pref_followQueue_title">Lecture continue</string>
<string name="pref_downloadMediaOnWifiOnly_title">Téléchargement en Wi-Fi</string>
@@ -352,7 +364,8 @@
<string name="send_email">Envoyer e-mail</string>
<string name="experimental_pref">Expérimental</string>
<string name="pref_sonic_title">Lecteur multimédia Sonic</string>
- <string name="pref_sonic_message">Utiliser le lecteur multimédia interne Sonic au lieu de Prestissimo</string>
+ <string name="pref_sonic_message">Utiliser le lecteur interne Sonic au lieu du lecteur natif d\'Android et de Prestissimo</string>
+ <string name="pref_current_value">Valeur actuelle : %1$s</string>
<!--Auto-Flattr dialog-->
<string name="auto_flattr_enable">Activer le paiement flattr automatique</string>
<string name="auto_flattr_after_percent">Lancer un paiement flattr pour un épisode dès que %d de l\'épisode a été joué</string>
@@ -379,11 +392,11 @@
<string name="opml_import_error_dir_empty">Le répertoire d\'importation est vide.</string>
<string name="select_all_label">Tout choisir</string>
<string name="deselect_all_label">Ne rien choisir</string>
- <string name="select_options_label">Sélectionner...</string>
+ <string name="select_options_label">Choisir...</string>
<string name="choose_file_from_filesystem">Depuis le système de fichier local</string>
<string name="choose_file_from_external_application">Utiliser une application tierce</string>
<string name="opml_export_label">Exportation OPML</string>
- <string name="exporting_label">Exportation en cours...</string>
+ <string name="exporting_label">Export en cours...</string>
<string name="export_error_label">Erreur d\'exportation</string>
<string name="opml_export_success_title">Exportation OPML réussie.</string>
<string name="opml_export_success_sum">Le fichier .opml a été écrit ici :\u0020</string>
@@ -464,7 +477,7 @@
<!--Online feed view-->
<string name="subscribe_label">S\'abonner</string>
<string name="subscribed_label">Abonné</string>
- <string name="downloading_label">Téléchargement en cours</string>
+ <string name="downloading_label">En cours de téléchargement...</string>
<!--Content descriptions for image buttons-->
<string name="show_chapters_label">Afficher chapitres</string>
<string name="show_shownotes_label">Afficher notes d\'épisode</string>
@@ -492,7 +505,8 @@
<!--AntennaPodSP-->
<string name="sp_apps_importing_feeds_msg">Importation des abonnements à partir d\'applications à usage unique...</string>
<string name="search_itunes_label">Chercher sur iTunes</string>
- <string name="select_label"><b>Sélectionner ...</b></string>
+ <string name="select_label"><b>Sélectionner…</b></string>
+ <string name="filter">Filtrer</string>
<string name="all_label">Tout</string>
<string name="selected_all_label">Tous les épisodes ont été sélectionné</string>
<string name="none_label">Aucun</string>
@@ -505,7 +519,7 @@
<string name="selected_downloaded_label">Episodes téléchargés sélectionnés</string>
<string name="not_downloaded_label">Non téléchargés</string>
<string name="selected_not_downloaded_label">Épisodes non téléchargés sélectionnés</string>
- <string name="sort_title"><b>Trier par ...</b></string>
+ <string name="sort_title"><b>Trier par...</b></string>
<string name="sort_title_a_z">Titre (A \u2192 Z)</string>
<string name="sort_title_z_a">Titre (Z \u2192 A)</string>
<string name="sort_date_new_old">Date (Nouveau \u2192 Ancien)</string>
@@ -518,4 +532,13 @@
<string name="rating_never_label">Laissez moi tranquille</string>
<string name="rating_later_label">Rappelez le moi plus tard</string>
<string name="rating_now_label">Okay, c\'est parti !</string>
+ <!--Audio controls-->
+ <string name="audio_controls">Contrôles audio</string>
+ <string name="playback_speed">Vitesse de lecture</string>
+ <string name="volume">Volume</string>
+ <string name="left_short">G</string>
+ <string name="right_short">D</string>
+ <string name="audio_effects">Effets audio</string>
+ <string name="stereo_to_mono">Mixage : stéréo à mono</string>
+ <string name="sonic_only">Sonic seulement</string>
</resources>
diff --git a/core/src/main/res/values-hi-rIN/strings.xml b/core/src/main/res/values-hi-rIN/strings.xml
index 9fa3d716f..87aa77caf 100644
--- a/core/src/main/res/values-hi-rIN/strings.xml
+++ b/core/src/main/res/values-hi-rIN/strings.xml
@@ -41,7 +41,6 @@
<string name="length_prefix">लंबाई:\u0020</string>
<string name="size_prefix">साइज:\u0020</string>
<string name="processing_label">प्रसंस्करण</string>
- <string name="loading_label">लोड हो रहा है ...</string>
<string name="save_username_password_label">यूज़रनेम और पासवर्ड सहेजें</string>
<string name="close_label">बंद करें</string>
<string name="retry_label">पुन: प्रयास</string>
@@ -95,7 +94,6 @@
<string name="download_error_io_error">आईओ त्रुटि</string>
<string name="download_error_request_error">अनुरोध त्रुटि</string>
<string name="download_error_db_access">डेटाबेस का उपयोग त्रुटि</string>
- <string name="downloads_left">\u0020Downloads छोड़ा</string>
<string name="download_notification_title">पॉडकास्ट डेटा डाउनलोड करें</string>
<string name="download_report_content">%1$d डाउनलोड सफल रहा, %2$d में विफल रहा है</string>
<string name="download_log_title_unknown">अज्ञात शीर्षक</string>
@@ -212,7 +210,6 @@
<string name="select_all_label">सभी का चयन करें</string>
<string name="deselect_all_label">सभी का चयन रद्द करें</string>
<string name="opml_export_label">OPML निर्यात</string>
- <string name="exporting_label">निर्यात ...</string>
<string name="export_error_label">निर्यात त्रुटि</string>
<string name="opml_export_success_sum">.ompl फ़ाइल लिखा गया था:\u0020</string>
<!--Sleep timer-->
@@ -266,10 +263,10 @@
<!--Online feed view-->
<string name="subscribe_label">सदस्यता लें</string>
<string name="subscribed_label">सदस्यता ली गई</string>
- <string name="downloading_label">डाउनलोड कर रहा है ...</string>
<!--Content descriptions for image buttons-->
<!--Feed information screen-->
<!--Progress information-->
<!--AntennaPodSP-->
<!--Rating dialog-->
+ <!--Audio controls-->
</resources>
diff --git a/core/src/main/res/values-it-rIT/strings.xml b/core/src/main/res/values-it-rIT/strings.xml
index adf4bd748..d7aff71cf 100644
--- a/core/src/main/res/values-it-rIT/strings.xml
+++ b/core/src/main/res/values-it-rIT/strings.xml
@@ -63,7 +63,6 @@
<string name="length_prefix">Durata:\u0020</string>
<string name="size_prefix">Dimensione:\u0020</string>
<string name="processing_label">Elaborazione in corso</string>
- <string name="loading_label">Caricamento in corso...</string>
<string name="save_username_password_label">Salva nome utente e password</string>
<string name="close_label">Chiudi</string>
<string name="retry_label">Riprova</string>
@@ -73,7 +72,6 @@
<string name="feed_auto_download_global">Globale</string>
<string name="feed_auto_download_always">Sempre</string>
<string name="feed_auto_download_never">Mai</string>
- <string name="send_label">Invia...</string>
<string name="episode_cleanup_never">Mai</string>
<plurals name="episode_cleanup_days_after_listening">
<item quantity="one">1 giorno dopo il completamento</item>
@@ -92,7 +90,6 @@
<string name="mark_all_seen_label">Segna tutti come visti</string>
<string name="show_info_label">Informazioni</string>
<string name="remove_feed_label">Rimuovi un podcast</string>
- <string name="share_label">Condividi...</string>
<string name="share_link_label">Condividi il link al sito</string>
<string name="share_link_with_position_label">Condividi il Link con la Posizione</string>
<string name="share_feed_url_label">Condividi URL del Feed</string>
@@ -159,7 +156,6 @@
<string name="download_error_io_error">Errore IO</string>
<string name="download_error_request_error">Errore della richiesta</string>
<string name="download_error_db_access">Errore di accesso al database</string>
- <string name="downloads_left">\u0020Download rimasti</string>
<string name="downloads_processing">Elaborazione dei download in corso</string>
<string name="download_notification_title">Download podcast in corso</string>
<string name="download_report_content">%1$d download con successo, %2$d falliti</string>
@@ -323,7 +319,6 @@
<string name="choose_file_from_filesystem">Dal filesystem locale</string>
<string name="choose_file_from_external_application">Utilizza un\'applicazione esterna</string>
<string name="opml_export_label">Esportazione su OPML</string>
- <string name="exporting_label">Esportazione in corso...</string>
<string name="export_error_label">Errore di esportazione</string>
<string name="opml_export_success_title">Esportazione OPML avvenuta con successo.</string>
<string name="opml_export_success_sum">Il file .opml è stato scritto su:\u0020</string>
@@ -395,7 +390,6 @@
<!--Online feed view-->
<string name="subscribe_label">Abbonati</string>
<string name="subscribed_label">Abbonato</string>
- <string name="downloading_label">Download in corso...</string>
<!--Content descriptions for image buttons-->
<string name="show_chapters_label">Mostra i capitoli</string>
<string name="show_shownotes_label">Mostra le note dell\'episodio</string>
@@ -422,7 +416,6 @@
<!--AntennaPodSP-->
<string name="sp_apps_importing_feeds_msg">Importazione di sottoscrizioni da applicazioni monouso in corso...</string>
<string name="search_itunes_label">Cerca su iTunes</string>
- <string name="select_label"><b>Seleziona ...</b></string>
<string name="all_label">Tutti</string>
<string name="selected_all_label">Tutti gli Episodi Selezionati</string>
<string name="none_label">Nessuno</string>
@@ -436,4 +429,5 @@
<string name="sort_duration_short_long">Durata (Short \u2192 Long)</string>
<string name="sort_duration_long_short">Durata (Long \u2192 Short)</string>
<!--Rating dialog-->
+ <!--Audio controls-->
</resources>
diff --git a/core/src/main/res/values-iw-rIL/strings.xml b/core/src/main/res/values-iw-rIL/strings.xml
index 52a6a170a..6adc16fd6 100644
--- a/core/src/main/res/values-iw-rIL/strings.xml
+++ b/core/src/main/res/values-iw-rIL/strings.xml
@@ -56,7 +56,6 @@
<string name="length_prefix">אורך:\u0020</string>
<string name="size_prefix">גודל:\u0020</string>
<string name="processing_label">מעבד</string>
- <string name="loading_label">טוען...</string>
<string name="save_username_password_label">שמור שם משתמש וססמה</string>
<string name="close_label">סגור</string>
<string name="retry_label">נסה שוב</string>
@@ -81,7 +80,6 @@
<string name="mark_all_read_feed_confirmation_msg">אנא אשר שאתה רוצה לסמן את כל פרקים בהזנה זו כנקראים.</string>
<string name="show_info_label">הצג מידע</string>
<string name="remove_feed_label">הסר פודקאסט</string>
- <string name="share_label">שתף...</string>
<string name="share_link_label">שתף קישור אתר</string>
<string name="feed_delete_confirmation_msg">אשר מחיקת הזנה זו ואת כל פרקי ההזנה שהורדת.</string>
<string name="feed_remover_msg">הסר הזנה</string>
@@ -128,7 +126,6 @@
<string name="download_error_io_error">שגיאת קלט פלט</string>
<string name="download_error_request_error">שגיאת בקשה</string>
<string name="download_error_db_access">שגיאת גישה למסד הנתונים</string>
- <string name="downloads_left">הורדות נותרוu0020\</string>
<string name="downloads_processing">מעבד הורדות</string>
<string name="download_notification_title">מוריד פודקאסט</string>
<string name="download_report_content">%1$d הורדות הצליחו, %2$d ניכשלו</string>
@@ -289,7 +286,6 @@
<string name="choose_file_from_filesystem">ממערכת הקבצים המקומית</string>
<string name="choose_file_from_external_application">השתמש באפליקציה חיצונית</string>
<string name="opml_export_label">יצוא OPML</string>
- <string name="exporting_label">מייצא...</string>
<string name="export_error_label">שגיאת יצוא</string>
<string name="opml_export_success_title">יצוא OPML הצליח.</string>
<string name="opml_export_success_sum">קובץ OPML נכתב ל:\u0020</string>
@@ -345,7 +341,6 @@
<!--Online feed view-->
<string name="subscribe_label">הרשם</string>
<string name="subscribed_label">נרשם</string>
- <string name="downloading_label">מוריד...</string>
<!--Content descriptions for image buttons-->
<string name="show_chapters_label">הצג פרקים</string>
<string name="show_shownotes_label">הצג הערות פרק</string>
@@ -373,4 +368,5 @@
<string name="sp_apps_importing_feeds_msg">מייבא רישום מאפליקציות יעודיות...</string>
<string name="search_itunes_label">חפש בiTunes</string>
<!--Rating dialog-->
+ <!--Audio controls-->
</resources>
diff --git a/core/src/main/res/values-ja/strings.xml b/core/src/main/res/values-ja/strings.xml
index 0bedd912f..3e3b5b97f 100644
--- a/core/src/main/res/values-ja/strings.xml
+++ b/core/src/main/res/values-ja/strings.xml
@@ -23,6 +23,8 @@
<string name="gpodnet_main_label">gpodder.net</string>
<string name="gpodnet_auth_label">gpodder.net ログイン</string>
<string name="free_space_label">%1$s 空き</string>
+ <string name="episode_cache_full_title">エピソードキャッシュが一杯です</string>
+ <string name="episode_cache_full_message">エピソードキャッシュが制限に達しました。設定でキャッシュサイズを増やすことができます。</string>
<!--New episodes fragment-->
<string name="recently_published_episodes_label">最近公開された</string>
<string name="episode_filter_label">新しいエピソードのみ表示</string>
@@ -67,7 +69,7 @@
<string name="length_prefix">長さ:\u0020</string>
<string name="size_prefix">サイズ:\u0020</string>
<string name="processing_label">処理中</string>
- <string name="loading_label">読み込み中...</string>
+ <string name="loading_label">ロード中…</string>
<string name="save_username_password_label">ユーザ名とパスワードを保存する</string>
<string name="close_label">閉じる</string>
<string name="retry_label">再試行</string>
@@ -79,7 +81,7 @@
<string name="feed_auto_download_global">全般</string>
<string name="feed_auto_download_always">常に</string>
<string name="feed_auto_download_never">しない</string>
- <string name="send_label">送信...</string>
+ <string name="send_label">送信…</string>
<string name="episode_cleanup_never">しない</string>
<string name="episode_cleanup_queue_removal">キューにない時</string>
<string name="episode_cleanup_after_listening">完了後</string>
@@ -101,7 +103,7 @@
<string name="mark_all_seen_label">参照済としてマーク</string>
<string name="show_info_label">情報を表示</string>
<string name="remove_feed_label">ポッドキャストを削除</string>
- <string name="share_label">共有...</string>
+ <string name="share_label">共有…</string>
<string name="share_link_label">Webサイトのリンクを共有</string>
<string name="share_link_with_position_label">場所とリンクを共有</string>
<string name="share_feed_url_label">フィード URLを共有</string>
@@ -136,7 +138,9 @@
<string name="added_to_queue_label">キューに追加しました</string>
<string name="remove_from_queue_label">キューから削除</string>
<string name="add_to_favorite_label">お気に入りに追加</string>
+ <string name="added_to_favorites">お気に入りに追加</string>
<string name="remove_from_favorite_label">お気に入りから削除</string>
+ <string name="removed_from_favorites">お気に入りから削除</string>
<string name="visit_website_label">Webサイトを訪問</string>
<string name="support_label">これをFlattr</string>
<string name="enqueue_all_new">すべてキューに入れる</string>
@@ -170,7 +174,9 @@
<string name="download_error_io_error">IOエラー</string>
<string name="download_error_request_error">リクエストエラー</string>
<string name="download_error_db_access">データベース アクセスエラー</string>
- <string name="downloads_left">\u0020ダウンロード残</string>
+ <plurals name="downloads_left">
+ <item quantity="other">%d ダウンロード残</item>
+ </plurals>
<string name="downloads_processing">ダウンロード処理中</string>
<string name="download_notification_title">ポッドキャストデータをダウンロード中</string>
<string name="download_report_content">%1$d ダウンロード成功, %2$d 失敗</string>
@@ -202,6 +208,8 @@
<!--Queue operations-->
<string name="lock_queue">キューをロック</string>
<string name="unlock_queue">キューのロックを解除</string>
+ <string name="queue_locked">キューをロックしました</string>
+ <string name="queue_unlocked">キューのロックを解除しました</string>
<string name="clear_queue_label">キューをクリア</string>
<string name="undo">元に戻す</string>
<string name="removed_from_queue">アイテムを削除しました</string>
@@ -243,12 +251,13 @@
<!--Variable Speed-->
<string name="download_plugin_label">プラグインをダウンロード</string>
<string name="no_playback_plugin_title">プラグイン はインストールされていません</string>
- <string name="no_playback_plugin_or_sonic_msg">再生速度の変更が機能するには、サードパーティのライブラリをインストールするか、実験的に Sonic プレーヤー [Android 4.1+] を有効にする必要があります。\n\n\'プラグインをダウンロード\' をタップして、Google Playから無料のプラグインをダウンロードしてください\n\nこのプラグインを使用して見つかったすべての問題は AntennaPodの責任ではなく、プラグインのオーナーに報告すべきです。</string>
+ <string name="no_playback_plugin_or_sonic_msg">再生速度の変更を機能させるには、内蔵の Sonic メディアプレーヤーを有効にすることを推奨します [Android 4.1+]。代わりに、Google Play からサードパーティのプラグイン <i>Prestissimo</i> をダウンロードすることができます。\nPrestissimo での問題は AntennaPod の責任ではなく、プラグインのオーナーに報告すべきです。</string>
<string name="set_playback_speed_label">再生速度</string>
<string name="enable_sonic">Sonic を有効にする</string>
<!--Empty list labels-->
<string name="no_items_label">このリストにはアイテムがありません。</string>
<string name="no_feeds_label">まだフィードを何も購読していません。</string>
+ <string name="no_chapters_label">このエピソードにチャプターはありません。</string>
<!--Preferences-->
<string name="other_pref">その他</string>
<string name="about_pref">について</string>
@@ -256,7 +265,7 @@
<string name="services_label">サービス</string>
<string name="flattr_label">Flattr</string>
<string name="pref_episode_cleanup_title">エピソード クリーンアップ</string>
- <string name="pref_episode_cleanup_summary">空き容量が必要な場合、キューに含まれていおらず、お気に入りでもないエピソードは、削除の対象になります</string>
+ <string name="pref_episode_cleanup_summary">キューに含まれておらず、お気に入りではないエピソードは、自動ダウンロードで新しいエピソードのためにスペースが必要な場合、除去の対象になります</string>
<string name="pref_pauseOnDisconnect_sum">ヘッドフォンまたはBluetoothの接続が切断された時、再生を一時停止します</string>
<string name="pref_unpauseOnHeadsetReconnect_sum">ヘッドフォンが再接続された時に再生を再開します</string>
<string name="pref_unpauseOnBluetoothReconnect_sum">Bluetoothが再接続された時に再生を再開します</string>
@@ -277,6 +286,8 @@
<string name="pref_autoUpdateIntervallOrTime_Disable">無効</string>
<string name="pref_autoUpdateIntervallOrTime_Interval">間隔をセット</string>
<string name="pref_autoUpdateIntervallOrTime_TimeOfDay">時間をセット</string>
+ <string name="pref_autoUpdateIntervallOrTime_every">%1$s ごと</string>
+ <string name="pref_autoUpdateIntervallOrTime_at">%1$s に</string>
<string name="pref_downloadMediaOnWifiOnly_sum">WiFi接続時のみメディアファイルをダウンロードします</string>
<string name="pref_followQueue_title">連続再生</string>
<string name="pref_downloadMediaOnWifiOnly_title">WiFiメディアダウンロード</string>
@@ -351,7 +362,8 @@
<string name="send_email">メールを送信</string>
<string name="experimental_pref">実験的</string>
<string name="pref_sonic_title">Sonic メディアプレーヤー</string>
- <string name="pref_sonic_message">Prestissimo の代わりに、内蔵の Sonic メディアプレーヤーを使用します</string>
+ <string name="pref_sonic_message">Android 標準のメディアプレーヤーと Prestissimo の代わりに、内蔵のソニックメディアプレーヤーを使用します</string>
+ <string name="pref_current_value">現在の値: %1$s</string>
<!--Auto-Flattr dialog-->
<string name="auto_flattr_enable">自動Flattrを有効にする</string>
<string name="auto_flattr_after_percent">%d %再生したらエピソードをFlattr </string>
@@ -378,11 +390,11 @@
<string name="opml_import_error_dir_empty">インポートディレクトリが空です。</string>
<string name="select_all_label">すべてを選択</string>
<string name="deselect_all_label">選択解除</string>
- <string name="select_options_label">選択 ...</string>
+ <string name="select_options_label">選択…</string>
<string name="choose_file_from_filesystem">ローカル ファイルシステムから</string>
<string name="choose_file_from_external_application">外部アプリケーションを使用する</string>
<string name="opml_export_label">OPMLエクスポート</string>
- <string name="exporting_label">エクスポート中...</string>
+ <string name="exporting_label">エクスポート中…</string>
<string name="export_error_label">エクスポートエラー</string>
<string name="opml_export_success_title">OPMLをエクスポートしました。</string>
<string name="opml_export_success_sum">.opml ファイルを書き込みました:\u0020</string>
@@ -460,7 +472,7 @@
<!--Online feed view-->
<string name="subscribe_label">購読</string>
<string name="subscribed_label">購読しました</string>
- <string name="downloading_label">ダウンロード中...</string>
+ <string name="downloading_label">ダウンロード中…</string>
<!--Content descriptions for image buttons-->
<string name="show_chapters_label">チャプターを表示</string>
<string name="show_shownotes_label">ショーノートを表示</string>
@@ -488,7 +500,8 @@
<!--AntennaPodSP-->
<string name="sp_apps_importing_feeds_msg">単一目的のアプリから購読をインポート中…</string>
<string name="search_itunes_label">iTunes を検索</string>
- <string name="select_label"><b>選択 ...</b></string>
+ <string name="select_label"><b>選択…</b></string>
+ <string name="filter">フィルター</string>
<string name="all_label">すべて</string>
<string name="selected_all_label">すべてのエピソードを選択しました</string>
<string name="none_label">なし</string>
@@ -501,7 +514,7 @@
<string name="selected_downloaded_label">ダウンロード済のエピソードを選択しました</string>
<string name="not_downloaded_label">ダウンロードしていません</string>
<string name="selected_not_downloaded_label">ダウンロードしていないエピソードを選択しました</string>
- <string name="sort_title"><b>並び替え順 ...</b></string>
+ <string name="sort_title"><b>並び替え…</b></string>
<string name="sort_title_a_z">タイトル (A \u2192 Z)</string>
<string name="sort_title_z_a">タイトル (Z \u2192 A)</string>
<string name="sort_date_new_old">日付 (新 \u2192 旧)</string>
@@ -514,4 +527,13 @@
<string name="rating_never_label">構わないで</string>
<string name="rating_later_label">後で確認する</string>
<string name="rating_now_label">もちろん、します!</string>
+ <!--Audio controls-->
+ <string name="audio_controls">自動コントロール</string>
+ <string name="playback_speed">再生速度</string>
+ <string name="volume">音量</string>
+ <string name="left_short">左</string>
+ <string name="right_short">右</string>
+ <string name="audio_effects">オーディオエフェクト</string>
+ <string name="stereo_to_mono">ダウンミックス: ステレオからモノラル</string>
+ <string name="sonic_only">Sonic のみ</string>
</resources>
diff --git a/core/src/main/res/values-ko/strings.xml b/core/src/main/res/values-ko/strings.xml
index e7ac3b08b..6802cc36d 100644
--- a/core/src/main/res/values-ko/strings.xml
+++ b/core/src/main/res/values-ko/strings.xml
@@ -23,6 +23,8 @@
<string name="gpodnet_main_label">gpodder.net</string>
<string name="gpodnet_auth_label">gpodder.net 로그인</string>
<string name="free_space_label">%1$s 남음</string>
+ <string name="episode_cache_full_title">에피소드 캐시 꽉 참</string>
+ <string name="episode_cache_full_message">에피소드 캐시 한계값에 도달했습니다. 설정에서 캐시 크기를 늘릴 수 있습니다.</string>
<!--New episodes fragment-->
<string name="recently_published_episodes_label">최근에 발표</string>
<string name="episode_filter_label">새 에피소드만 표시</string>
@@ -67,7 +69,7 @@
<string name="length_prefix">길이:\u0020</string>
<string name="size_prefix">크기:\u0020</string>
<string name="processing_label">처리 중</string>
- <string name="loading_label">읽어들이는 중...</string>
+ <string name="loading_label">읽어들이는 중…</string>
<string name="save_username_password_label">사용자 이름 및 암호 저장</string>
<string name="close_label">닫기</string>
<string name="retry_label">다시 시도</string>
@@ -79,7 +81,7 @@
<string name="feed_auto_download_global">전체 설정</string>
<string name="feed_auto_download_always">항상</string>
<string name="feed_auto_download_never">안 함</string>
- <string name="send_label">보내기...</string>
+ <string name="send_label">보내기…</string>
<string name="episode_cleanup_never">안 함</string>
<string name="episode_cleanup_queue_removal">대기열에 없을 때</string>
<string name="episode_cleanup_after_listening">재생이 끝나고 나서</string>
@@ -101,7 +103,7 @@
<string name="mark_all_seen_label">모두 봤다고 표시</string>
<string name="show_info_label">정보 표시</string>
<string name="remove_feed_label">팟캐스트 제거</string>
- <string name="share_label">공유...</string>
+ <string name="share_label">공유…</string>
<string name="share_link_label">홈페이지 링크 공유</string>
<string name="share_link_with_position_label">위치와 같이 링크 공유</string>
<string name="share_feed_url_label">피드 URL 공유</string>
@@ -136,7 +138,9 @@
<string name="added_to_queue_label">대기열에 추가함</string>
<string name="remove_from_queue_label">대기열에서 제거</string>
<string name="add_to_favorite_label">즐겨찾기에 추가</string>
+ <string name="added_to_favorites">즐겨찾기에 추가함</string>
<string name="remove_from_favorite_label">즐겨찾기에서 제거</string>
+ <string name="removed_from_favorites">즐겨찾기에서 제거함</string>
<string name="visit_website_label">홈페이지 보기</string>
<string name="support_label">Flattr하기</string>
<string name="enqueue_all_new">모두 대기열에 추가</string>
@@ -170,7 +174,9 @@
<string name="download_error_io_error">입출력 오류</string>
<string name="download_error_request_error">요청 오류</string>
<string name="download_error_db_access">데이터베이스 접근 오류</string>
- <string name="downloads_left">개\u0020다운로드 남음</string>
+ <plurals name="downloads_left">
+ <item quantity="other">다운로드 %d개 남음</item>
+ </plurals>
<string name="downloads_processing">다운로드 처리 중</string>
<string name="download_notification_title">팟캐스트 데이터 다운로드 중</string>
<string name="download_report_content">다운로드 %1$d개 성공, %2$d개 실패</string>
@@ -202,6 +208,8 @@
<!--Queue operations-->
<string name="lock_queue">대기열 잠그기</string>
<string name="unlock_queue">대기열 잠금 해제</string>
+ <string name="queue_locked">대기열 잠겨짐</string>
+ <string name="queue_unlocked">대기열 잠금 풀림</string>
<string name="clear_queue_label">대기열 지우기</string>
<string name="undo">실행 취소</string>
<string name="removed_from_queue">항목을 제거했습니다</string>
@@ -243,12 +251,13 @@
<!--Variable Speed-->
<string name="download_plugin_label">플러그인 다운로드</string>
<string name="no_playback_plugin_title">플러그인을 설치하지 않았습니다</string>
- <string name="no_playback_plugin_or_sonic_msg">가변 재생 속도를 사용하려면 제3자 라이브러리를 설치하거나 실험적인 \'소닉 플레이어[Android 4.1 이상]\'를 사용해야 합니다. \'플러그인 다운로드\'를 눌러 Play Store에서 무료 플러그인을 다운로드하십시오. 플러그인을 사용해서 발생하는 모든 문제는 AntennaPod의 책임이 아니며 플러그인 제작자에게 보고하십시오.</string>
+ <string name="no_playback_plugin_or_sonic_msg">여러가지 속도로 재생이 동작하려면 내부의 소닉 미디어 플레이어를 활성화해야 합니다. [Android 4.1 이상]\n\n아니면, 서드파티 플러그인 <i>Prestissimo</i>를 플레이스토어에서 다운로드할 수도 있습니다.\nPrestissimo에서 발생하는 문제는 안테나팟의 책임이 아니므로 플러그인 개발자에게 문의하십시오.</string>
<string name="set_playback_speed_label">재생 속도</string>
<string name="enable_sonic">소닉 플레이어 사용</string>
<!--Empty list labels-->
<string name="no_items_label">이 목록에 항목이 없습니다.</string>
<string name="no_feeds_label">아직 어떤 피드도 구독하지 않았습니다.</string>
+ <string name="no_chapters_label">에피소드에 챕터가 없습니다.</string>
<!--Preferences-->
<string name="other_pref">기타</string>
<string name="about_pref">정보</string>
@@ -256,7 +265,7 @@
<string name="services_label">서비스</string>
<string name="flattr_label">Flattr</string>
<string name="pref_episode_cleanup_title">에피소드 정리</string>
- <string name="pref_episode_cleanup_summary">여유 공간이 필요할 때, 대기열에 있지 않고 즐겨찾기도 아닌 에피소드가 삭제 대상이 됩니다.</string>
+ <string name="pref_episode_cleanup_summary">대기열에 없고 즐겨찾기에 넣지 않은 에피소드는 자동 다운로드에서 새 에피소드에 공간이 필요할 경우 제거될 수 있습니다.</string>
<string name="pref_pauseOnDisconnect_sum">헤드폰이나 블루투스가 연결 해제되었을 경우 일시정지</string>
<string name="pref_unpauseOnHeadsetReconnect_sum">헤드폰 다시 연결할 때 재생 계속</string>
<string name="pref_unpauseOnBluetoothReconnect_sum">블루투스가 다시 연결되면 재생 재개 </string>
@@ -277,6 +286,8 @@
<string name="pref_autoUpdateIntervallOrTime_Disable">사용 안 함</string>
<string name="pref_autoUpdateIntervallOrTime_Interval">주기 지정</string>
<string name="pref_autoUpdateIntervallOrTime_TimeOfDay">하루 중 시각 지정</string>
+ <string name="pref_autoUpdateIntervallOrTime_every">매 %1$s</string>
+ <string name="pref_autoUpdateIntervallOrTime_at">%1$s에서</string>
<string name="pref_downloadMediaOnWifiOnly_sum">Wi-Fi를 통해서만 미디어 파일 다운로드</string>
<string name="pref_followQueue_title">연속 재생</string>
<string name="pref_downloadMediaOnWifiOnly_title">Wi-Fi 미디어 다운로드</string>
@@ -351,7 +362,8 @@
<string name="send_email">전자메일 보내기</string>
<string name="experimental_pref">실험적 기능</string>
<string name="pref_sonic_title">소닉 미디어 플레이어</string>
- <string name="pref_sonic_message">Prestissimo 대신 내장 소닉 미디어 플레이어 사용</string>
+ <string name="pref_sonic_message">내장 소닉 미디어 플레이어를 안드로이드 고유 미디어 플레이어와 Prestissimo 대신 사용합니다.</string>
+ <string name="pref_current_value">현재 값: %1$s</string>
<!--Auto-Flattr dialog-->
<string name="auto_flattr_enable">자동 flattr 사용</string>
<string name="auto_flattr_after_percent">%d 퍼센트를 재생하면 에피소드에 flattr합니다</string>
@@ -378,11 +390,11 @@
<string name="opml_import_error_dir_empty">가져오기 디렉터리가 비어 있습니다.</string>
<string name="select_all_label">모두 선택</string>
<string name="deselect_all_label">모두 선택 해제</string>
- <string name="select_options_label">선택...</string>
+ <string name="select_options_label">선택…</string>
<string name="choose_file_from_filesystem">로컬 파일시스템에서</string>
<string name="choose_file_from_external_application">외부 앱 사용</string>
<string name="opml_export_label">OPML 내보내기</string>
- <string name="exporting_label">내보내는 중...</string>
+ <string name="exporting_label">내보내는 중…</string>
<string name="export_error_label">내보내기 오류</string>
<string name="opml_export_success_title">OPML 내보내기가 성공했습니다.</string>
<string name="opml_export_success_sum">OPML 파일을 다음에 저장했습니다:\u0020</string>
@@ -460,7 +472,7 @@
<!--Online feed view-->
<string name="subscribe_label">구독</string>
<string name="subscribed_label">구독함</string>
- <string name="downloading_label">다운로드하는 중...</string>
+ <string name="downloading_label">다운로드하는 중…</string>
<!--Content descriptions for image buttons-->
<string name="show_chapters_label">챕터 보이기</string>
<string name="show_shownotes_label">프로그램 메모 표시</string>
@@ -488,7 +500,8 @@
<!--AntennaPodSP-->
<string name="sp_apps_importing_feeds_msg">단일 용도 앱에서 구독 정보를 가져옵니다...</string>
<string name="search_itunes_label">iTunes 검색</string>
- <string name="select_label"><b>선택 ...</b></string>
+ <string name="select_label"><b>선택…</b></string>
+ <string name="filter">필터</string>
<string name="all_label">모두</string>
<string name="selected_all_label">모든 에피소드 선택</string>
<string name="none_label">없음</string>
@@ -501,7 +514,7 @@
<string name="selected_downloaded_label">다운로드한 에피소드 선택</string>
<string name="not_downloaded_label">다운로드 안 함</string>
<string name="selected_not_downloaded_label">다운로드 안 한 에피소드 선택</string>
- <string name="sort_title"><b>정렬 ...</b></string>
+ <string name="sort_title"><b>정렬…</b></string>
<string name="sort_title_a_z">제목 (A \u2192 Z)</string>
<string name="sort_title_z_a">제목 (Z \u2192 A)</string>
<string name="sort_date_new_old">시각 (최근 \u2192 과거)</string>
@@ -514,4 +527,13 @@
<string name="rating_never_label">안 할래요</string>
<string name="rating_later_label">나중에 알림</string>
<string name="rating_now_label">해봅시다!</string>
+ <!--Audio controls-->
+ <string name="audio_controls">오디오 조정</string>
+ <string name="playback_speed">재생 속도</string>
+ <string name="volume">볼륨</string>
+ <string name="left_short">좌</string>
+ <string name="right_short">우</string>
+ <string name="audio_effects">오디오 효과</string>
+ <string name="stereo_to_mono">다운믹스: 스테레오에서 모노로</string>
+ <string name="sonic_only">소닉 전용</string>
</resources>
diff --git a/core/src/main/res/values-nb/strings.xml b/core/src/main/res/values-nb/strings.xml
index c8264ad19..e3aa1ca5d 100644
--- a/core/src/main/res/values-nb/strings.xml
+++ b/core/src/main/res/values-nb/strings.xml
@@ -22,7 +22,7 @@
<string name="playback_history_label">Avspillingshistorikk</string>
<string name="gpodnet_main_label">gpodder.net</string>
<string name="gpodnet_auth_label">gpodder.net-innlogging</string>
- <string name="free_space_label">%1$s tilgjengelig</string>
+ <string name="free_space_label">%1$s ledig</string>
<!--New episodes fragment-->
<string name="recently_published_episodes_label">Nylig publisert</string>
<string name="episode_filter_label">Vis kun nye episoder</string>
@@ -67,7 +67,6 @@
<string name="length_prefix">Lengde:\u0020</string>
<string name="size_prefix">Størrelse:\u0020</string>
<string name="processing_label">Behandler</string>
- <string name="loading_label">Laster opp...</string>
<string name="save_username_password_label">Lagre brukernavn og passord</string>
<string name="close_label">Lukk</string>
<string name="retry_label">Prøv igjen</string>
@@ -79,7 +78,6 @@
<string name="feed_auto_download_global">Global</string>
<string name="feed_auto_download_always">Alltid</string>
<string name="feed_auto_download_never">Aldri</string>
- <string name="send_label">Send ...</string>
<string name="episode_cleanup_never">AldriAldri</string>
<string name="episode_cleanup_queue_removal">Når ikke i kø</string>
<string name="episode_cleanup_after_listening">Etter den er ferdig</string>
@@ -102,7 +100,6 @@
<string name="mark_all_seen_label">Marker alle som sett</string>
<string name="show_info_label">Vis informasjon</string>
<string name="remove_feed_label">Fjern podcast</string>
- <string name="share_label">Del ...</string>
<string name="share_link_label">Del lenke</string>
<string name="share_link_with_position_label">Del lenke med plassering</string>
<string name="share_feed_url_label">Del strømmens URL</string>
@@ -171,7 +168,6 @@
<string name="download_error_io_error">IO feil</string>
<string name="download_error_request_error">Forespørselfeil</string>
<string name="download_error_db_access">Tilgangsfeil for database</string>
- <string name="downloads_left">\u0020Nedlastninger igjen</string>
<string name="downloads_processing">Behandler nedlastninger</string>
<string name="download_notification_title">Laster ned data til podcast</string>
<string name="download_report_content">%1$d nedlastninger lyktes, %2$d mislyktes</string>
@@ -244,7 +240,6 @@
<!--Variable Speed-->
<string name="download_plugin_label">Last ned programtillegg</string>
<string name="no_playback_plugin_title">Programtillegg er ikke installert</string>
- <string name="no_playback_plugin_or_sonic_msg">For at variabel avspillingshastighet skal fungere må du installere et tredjepartsbibliotek eller aktivere den eksperimentelle Sonic-avspilleren [Android 4.1+].\n\nTrykk på «Last ned programtillegg» for å laste ned en gratis tilleggsmodul fra Google Play.\n\nEventuelle problemer som måtte oppstå på grunn av denne modulen er ikke AntennaPods ansvar og skal rapporteres til eieren av modulen.</string>
<string name="set_playback_speed_label">Avspillingshastigheter</string>
<string name="enable_sonic">Skru på Sonic</string>
<!--Empty list labels-->
@@ -257,7 +252,6 @@
<string name="services_label">Tjenester</string>
<string name="flattr_label">Flattr</string>
<string name="pref_episode_cleanup_title">Episodeopprydding</string>
- <string name="pref_episode_cleanup_summary">Episoder som ikke er i køen og ikke er merket som favoritt vil være markert for sletting dersom lagringsplass trengs</string>
<string name="pref_pauseOnDisconnect_sum">Sett playback på pause når hodetelefoner eller bluetooth er frakoblet</string>
<string name="pref_unpauseOnHeadsetReconnect_sum">Gjenoppta avspilling når hodetelefoner gjeninnkoples</string>
<string name="pref_unpauseOnBluetoothReconnect_sum">Fortsett avspilling når bluetooth er tilkoblet igjen</string>
@@ -352,7 +346,6 @@
<string name="send_email">Send e-post</string>
<string name="experimental_pref">Eksperimentell</string>
<string name="pref_sonic_title">Sonic medieavspiller</string>
- <string name="pref_sonic_message">Bruk den innebygde Sonic medieavspilleren som en erstatning for Prestissimo</string>
<!--Auto-Flattr dialog-->
<string name="auto_flattr_enable">Aktiver automatisk flattring</string>
<string name="auto_flattr_after_percent">Flattre episode så snart %d prosent er avspilt</string>
@@ -379,11 +372,9 @@
<string name="opml_import_error_dir_empty">Importkatalogen er tom.</string>
<string name="select_all_label">Velg alle</string>
<string name="deselect_all_label">Opphev alle markeringene</string>
- <string name="select_options_label">Velg ...</string>
<string name="choose_file_from_filesystem">Fra lokalt filsystem</string>
<string name="choose_file_from_external_application">Bruk ekstern applikasjon</string>
<string name="opml_export_label">OPML-eksportering</string>
- <string name="exporting_label">Eksporterer...</string>
<string name="export_error_label">Eksporteringserror</string>
<string name="opml_export_success_title">OPML-import vellykket.</string>
<string name="opml_export_success_sum">.opml-filen ble skrevet til:\u0020</string>
@@ -464,7 +455,6 @@
<!--Online feed view-->
<string name="subscribe_label">Abonner</string>
<string name="subscribed_label">Abonnert</string>
- <string name="downloading_label">Laster ned...</string>
<!--Content descriptions for image buttons-->
<string name="show_chapters_label">Vis kapitler</string>
<string name="show_shownotes_label">Vis notater</string>
@@ -492,7 +482,6 @@
<!--AntennaPodSP-->
<string name="sp_apps_importing_feeds_msg">Importerer abbonementer fra enkeltstående applikasjoner ...</string>
<string name="search_itunes_label">Søk på iTunes</string>
- <string name="select_label"><b>Velg ...</b></string>
<string name="all_label">Alle</string>
<string name="selected_all_label">Valgte alle episoder</string>
<string name="none_label">Ingen</string>
@@ -505,7 +494,6 @@
<string name="selected_downloaded_label">Valgte nedlastede episoder</string>
<string name="not_downloaded_label">Ikke nedlastet</string>
<string name="selected_not_downloaded_label">Valgte ikke-nedlastede episoder</string>
- <string name="sort_title"><b>Sorter på ...</b></string>
<string name="sort_title_a_z">Tittel (A \u2192 Z)</string>
<string name="sort_title_z_a">Tittel (Z \u2192 A)</string>
<string name="sort_date_new_old">Dato (Ny \u2192 Gammel)</string>
@@ -518,4 +506,5 @@
<string name="rating_never_label">La meg være i fred</string>
<string name="rating_later_label">Minn meg på dette senere</string>
<string name="rating_now_label">Naturligvis, kom igjen!</string>
+ <!--Audio controls-->
</resources>
diff --git a/core/src/main/res/values-nl/strings.xml b/core/src/main/res/values-nl/strings.xml
index 5ffed7a79..5cbc40d78 100644
--- a/core/src/main/res/values-nl/strings.xml
+++ b/core/src/main/res/values-nl/strings.xml
@@ -23,6 +23,8 @@
<string name="gpodnet_main_label">gpodder.net</string>
<string name="gpodnet_auth_label">gpodder.net login</string>
<string name="free_space_label">%1$s beschikbaar</string>
+ <string name="episode_cache_full_title">Afleveringen cache is vol</string>
+ <string name="episode_cache_full_message">Het maximum aantal gecachte afleveringen is bereikt. U kunt het maximum verhogen in de instellingen.</string>
<!--New episodes fragment-->
<string name="recently_published_episodes_label">Recent gepubliceerd</string>
<string name="episode_filter_label">Alleen nieuwe afleveringen weergeven</string>
@@ -67,7 +69,7 @@
<string name="length_prefix">Lengte:\u0020</string>
<string name="size_prefix">Grootte:\u0020</string>
<string name="processing_label">Aan het verwerken</string>
- <string name="loading_label">Laden...</string>
+ <string name="loading_label">Laden…</string>
<string name="save_username_password_label">Gebruikersnaam en wachtwoord opslaan</string>
<string name="close_label">Sluiten</string>
<string name="retry_label">Opnieuw proberen</string>
@@ -79,7 +81,7 @@
<string name="feed_auto_download_global">Standaardinstelling</string>
<string name="feed_auto_download_always">Altijd</string>
<string name="feed_auto_download_never">Nooit</string>
- <string name="send_label">Versturen...</string>
+ <string name="send_label">Versturen…</string>
<string name="episode_cleanup_never">Nooit</string>
<string name="episode_cleanup_queue_removal">Wanneer niet in de wachtrij</string>
<string name="episode_cleanup_after_listening">Wanneer aflevering volledig is afgespeeld</string>
@@ -102,7 +104,7 @@
<string name="mark_all_seen_label">\'Nieuw\' label van alle afleveringen verwijderen.</string>
<string name="show_info_label">Toon informatie</string>
<string name="remove_feed_label">Podcast verwijderen</string>
- <string name="share_label">Delen...</string>
+ <string name="share_label">Delen…</string>
<string name="share_link_label">Link van de aflevering delen</string>
<string name="share_link_with_position_label">Link van de aflevering met tijdstip delen</string>
<string name="share_feed_url_label">URL van de feed delen</string>
@@ -137,7 +139,9 @@
<string name="added_to_queue_label">Aan wachtrij toegevoegd</string>
<string name="remove_from_queue_label">Verwijder van wachtrij</string>
<string name="add_to_favorite_label">Toevoegen aan favorieten</string>
+ <string name="added_to_favorites">Aan favorieten toegevoegd</string>
<string name="remove_from_favorite_label">Verwijderen uit favorieten</string>
+ <string name="removed_from_favorites">Verwijderd uit favorieten</string>
<string name="visit_website_label">Website bezoeken</string>
<string name="support_label">Flattr dit</string>
<string name="enqueue_all_new">Alle aan wachtrij toevoegen</string>
@@ -171,7 +175,10 @@
<string name="download_error_io_error">IO fout</string>
<string name="download_error_request_error">Fout in de aanvraag</string>
<string name="download_error_db_access">Databasetoegangsfout</string>
- <string name="downloads_left">Nog \u0020 downloads</string>
+ <plurals name="downloads_left">
+ <item quantity="one">Nog %d download</item>
+ <item quantity="other">Nog %d downloads</item>
+ </plurals>
<string name="downloads_processing">Downloads verwerken</string>
<string name="download_notification_title">Podcast gegevens aan het downloaden</string>
<string name="download_report_content">%1$d downloads geslaagd, %2$d mislukt</string>
@@ -203,6 +210,8 @@
<!--Queue operations-->
<string name="lock_queue">Wachtrij vastzetten</string>
<string name="unlock_queue">Wachtrij ontgrendelen</string>
+ <string name="queue_locked">Wachtrij vergrendeld</string>
+ <string name="queue_unlocked">Wachtrij ontgrendeld</string>
<string name="clear_queue_label">Wachtrij leeg maken</string>
<string name="undo">Ongedaan maken</string>
<string name="removed_from_queue">Item verwijderd</string>
@@ -244,12 +253,13 @@
<!--Variable Speed-->
<string name="download_plugin_label">Plugin downloaden</string>
<string name="no_playback_plugin_title">Plugin niet geïnstalleerd</string>
- <string name="no_playback_plugin_or_sonic_msg">Om variabele afspeelsnelheid te kunnen gebruiken, moet een bibliotheek van derden worden geïnstalleerd of de experimentele Sonic Player worden geactiveerd (beschikbaar voor Android 4.1 en hoger).\n\nKies \'Plugin Downloaden\' om de gratis plugin via de Play Store te installeren.\n\nProblemen bij het gebruik van deze plugin zijn niet de verantwoordelijkheid van AntennaPod en moeten gemeld worden bij de ontwikkelaar van de plugin.</string>
+ <string name="no_playback_plugin_or_sonic_msg">Om variabele afspeelsnelheid te kunnen gebruiken, raden wij u aan om de ingebouwde Sonic mediaspeler te activeren [Android 4.1+]\n\nEventueel kunt u de externe plugin <i>Prestissimo</i> downloaden van de Play Store.\nProblemen bij het gebruik van deze plugin zijn niet de verantwoordelijkheid van AntennaPod en moeten gemeld worden bij de ontwikkelaar van de plugin.</string>
<string name="set_playback_speed_label">Afspeelsnelheden</string>
<string name="enable_sonic">Sonic instellen</string>
<!--Empty list labels-->
<string name="no_items_label">Er zijn geen items in deze lijst.</string>
<string name="no_feeds_label">U bent nog tot geen enkele feed geabonneerd.</string>
+ <string name="no_chapters_label">Deze aflevering heeft geen hoofdstukken.</string>
<!--Preferences-->
<string name="other_pref">Overig</string>
<string name="about_pref">Over AntennaPod</string>
@@ -257,7 +267,7 @@
<string name="services_label">Services</string>
<string name="flattr_label">Flattr</string>
<string name="pref_episode_cleanup_title">Automatisch opschonen</string>
- <string name="pref_episode_cleanup_summary">Afleveringen die niet in de wachtrij staan en niet zijn gemarkeerd zijn als favoriet, komen in aanmerking voor verwijdering bij automatisch opschonen.</string>
+ <string name="pref_episode_cleanup_summary">Afleveringen die niet in de wachtrij staan en die niet als favoriet zijn gemarkeerd, mogen verwijderd worden als Automatisch Downloaden ruimte nodig heeft voor nieuwe afleveringen.</string>
<string name="pref_pauseOnDisconnect_sum">Afspelen pauzeren wanneer de koptelefoon wordt losgekoppeld of de bluetooth verbinding wordt verbroken</string>
<string name="pref_unpauseOnHeadsetReconnect_sum">Afspelen hervatten wanneer de koptelefoon opnieuw wordt aangesloten</string>
<string name="pref_unpauseOnBluetoothReconnect_sum">Afspelen hervatten wanneer de bluetooth verbinding hervat wordt</string>
@@ -278,6 +288,8 @@
<string name="pref_autoUpdateIntervallOrTime_Disable">Uitschakelen</string>
<string name="pref_autoUpdateIntervallOrTime_Interval">Interval instellen</string>
<string name="pref_autoUpdateIntervallOrTime_TimeOfDay">Tijdstip instellen</string>
+ <string name="pref_autoUpdateIntervallOrTime_every">elke %1$s</string>
+ <string name="pref_autoUpdateIntervallOrTime_at">op %1$s</string>
<string name="pref_downloadMediaOnWifiOnly_sum">Download mediabestanden alleen via WiFi</string>
<string name="pref_followQueue_title">Continu afspelen</string>
<string name="pref_downloadMediaOnWifiOnly_title">WiFi download van media</string>
@@ -352,7 +364,8 @@
<string name="send_email">Verstuur email</string>
<string name="experimental_pref">Experimentele functie</string>
<string name="pref_sonic_title">Sonic mediaspeler</string>
- <string name="pref_sonic_message">Sonic, de standaard mediaspeler van Android, gebruiken als alternatief voor Prestissimo</string>
+ <string name="pref_sonic_message">Gebruik AntennaPod\'s ingebouwde Sonic mediaspeler als een alternatief voor Prestissimo en de mediaspeler van Android.</string>
+ <string name="pref_current_value">Huidige instelling: %1$s</string>
<!--Auto-Flattr dialog-->
<string name="auto_flattr_enable">Automatisch flattr\'en aanzetten</string>
<string name="auto_flattr_after_percent">Flattr een aflevering zodra %d procent is afgespeeld</string>
@@ -379,11 +392,11 @@
<string name="opml_import_error_dir_empty">De import map is leeg.</string>
<string name="select_all_label">Selecteer alles</string>
<string name="deselect_all_label">Deselecteer alles</string>
- <string name="select_options_label">Selecteren …</string>
+ <string name="select_options_label">Selecteren…</string>
<string name="choose_file_from_filesystem">Via bestandsbeheer</string>
<string name="choose_file_from_external_application">Via externe app</string>
<string name="opml_export_label">OPML export</string>
- <string name="exporting_label">Aan het exporteren...</string>
+ <string name="exporting_label">Exporteren…</string>
<string name="export_error_label">Export fout</string>
<string name="opml_export_success_title">OPML bestand succesvol geëxporteerd.</string>
<string name="opml_export_success_sum"> Het OPML-bestand is in \u0020 geplaatst</string>
@@ -464,7 +477,7 @@
<!--Online feed view-->
<string name="subscribe_label">Abonneren</string>
<string name="subscribed_label">Geabonneerd</string>
- <string name="downloading_label">Aan het downloaden</string>
+ <string name="downloading_label">Downloaden…</string>
<!--Content descriptions for image buttons-->
<string name="show_chapters_label">Hoofdstukken tonen</string>
<string name="show_shownotes_label">Shownotes tonen</string>
@@ -492,7 +505,8 @@
<!--AntennaPodSP-->
<string name="sp_apps_importing_feeds_msg">Abonnementen aan het importeren vanuit single-purpose apps...</string>
<string name="search_itunes_label">Zoeken in iTunes</string>
- <string name="select_label"><b>Selecteren …</b></string>
+ <string name="select_label"><b>Selecteren…</b></string>
+ <string name="filter">Filter</string>
<string name="all_label">Alle</string>
<string name="selected_all_label">Alle afleveringen selecteren</string>
<string name="none_label">Geen</string>
@@ -505,7 +519,7 @@
<string name="selected_downloaded_label">Gedownloadde afleveringen geselecteerd</string>
<string name="not_downloaded_label">Niet gedownload</string>
<string name="selected_not_downloaded_label">Niet gedownloadde afleveringen geselecteerd</string>
- <string name="sort_title"><b>Sorteren op ...</b></string>
+ <string name="sort_title"><b>Sorteren op…</b></string>
<string name="sort_title_a_z">Titel (A \u2192 Z)</string>
<string name="sort_title_z_a">Titel (A \u2192 A)</string>
<string name="sort_date_new_old">Datum (nieuw \u2192 oud)</string>
@@ -518,4 +532,13 @@
<string name="rating_never_label">Nee, bedankt.</string>
<string name="rating_later_label">Herinner me later</string>
<string name="rating_now_label">Ja, doen we!</string>
+ <!--Audio controls-->
+ <string name="audio_controls">Audio-instellingen</string>
+ <string name="playback_speed">Afspeelsnelheid</string>
+ <string name="volume">Volume</string>
+ <string name="left_short">L</string>
+ <string name="right_short">R</string>
+ <string name="audio_effects">Terugmixen</string>
+ <string name="stereo_to_mono">Stereo terugmixen tot monogeluid op beide kanalen</string>
+ <string name="sonic_only">Alleen Sonic</string>
</resources>
diff --git a/core/src/main/res/values-pl-rPL/strings.xml b/core/src/main/res/values-pl-rPL/strings.xml
index c786c511f..81d9ebec4 100644
--- a/core/src/main/res/values-pl-rPL/strings.xml
+++ b/core/src/main/res/values-pl-rPL/strings.xml
@@ -22,7 +22,6 @@
<string name="playback_history_label">Historia odtwarzania</string>
<string name="gpodnet_main_label">gpodder.net</string>
<string name="gpodnet_auth_label">gpodder.net login</string>
- <string name="free_space_label">%1$s wolne</string>
<!--New episodes fragment-->
<string name="recently_published_episodes_label">Ostatnio opublikowane</string>
<string name="episode_filter_label">Pokaż tylko nowe odcinki</string>
@@ -66,7 +65,6 @@
<string name="length_prefix">Długość:\u0020</string>
<string name="size_prefix">Rozmiar:\u0020</string>
<string name="processing_label">Przetwarzanie</string>
- <string name="loading_label">Ładowanie...</string>
<string name="save_username_password_label">Zapisz nazwę użytkownika i hasło</string>
<string name="close_label">Zamknij</string>
<string name="retry_label">Spróbuj ponownie</string>
@@ -78,7 +76,6 @@
<string name="feed_auto_download_global">Globalnie</string>
<string name="feed_auto_download_always">Zawsze</string>
<string name="feed_auto_download_never">Nigdy</string>
- <string name="send_label">Wyślij...</string>
<string name="episode_cleanup_never">Nigdy</string>
<string name="episode_cleanup_queue_removal">Kiedy nie są w kolejce</string>
<string name="episode_cleanup_after_listening">Po odtworzeniu</string>
@@ -100,7 +97,6 @@
<string name="mark_all_seen_label">Oznacz wszystkie jako widziane</string>
<string name="show_info_label">Pokaż informacje</string>
<string name="remove_feed_label">Usuń podcast</string>
- <string name="share_label">Udostępnij...</string>
<string name="share_link_label">Udostępnij stronę</string>
<string name="share_link_with_position_label">Udostępnij link z aktualną pozycją</string>
<string name="share_feed_url_label">Udostępnij adres kanału</string>
@@ -164,7 +160,6 @@
<string name="download_error_io_error">Błąd wejścia/wyjścia</string>
<string name="download_error_request_error">Błąd żądania</string>
<string name="download_error_db_access">Błąd dostępu do bazy danych</string>
- <string name="downloads_left">:\u0020pobrań pozostało</string>
<string name="downloads_processing">Przetwarzanie pobranych</string>
<string name="download_notification_title">Pobieranie danych podcastu</string>
<string name="download_report_content">%1$d pobierania poprawne, %2$d nieudane</string>
@@ -248,7 +243,6 @@
<string name="services_label">Usługi</string>
<string name="flattr_label">Flattr</string>
<string name="pref_episode_cleanup_title">Usuwanie odcinków</string>
- <string name="pref_episode_cleanup_summary">Odcinki nie będące w Kolejce lub Ulubionych mogą zostać usunięte, gdy brakuje miejsca</string>
<string name="pref_pauseOnDisconnect_sum">Wstrzymaj odtwarzanie po rozłączeniu słuchawek lub Bluetooth</string>
<string name="pref_unpauseOnHeadsetReconnect_sum">Wznów odtwarzanie kiedy słuchawki zostaną podłączone ponownie</string>
<string name="pref_unpauseOnBluetoothReconnect_sum">Wznów odtwarzanie po przywróceniu połączenia Bluetooth</string>
@@ -334,7 +328,6 @@
<string name="send_email">Wyślij e-mail</string>
<string name="experimental_pref">Eksperymentalne</string>
<string name="pref_sonic_title">Odtwarzacz mediów Sonic</string>
- <string name="pref_sonic_message">Użyj wbudowanego odtwarzacza mediów Sonic jako zamiennika dla Prestissimo</string>
<!--Auto-Flattr dialog-->
<string name="auto_flattr_enable">Włącz automatyczne wspieranie na flattr.</string>
<string name="auto_flattr_after_percent">Z-flattr-uj odcinki odegrane %d procentach.</string>
@@ -358,10 +351,8 @@
<string name="opml_import_error_dir_empty">Katalog importowania jest pusty.</string>
<string name="select_all_label">Zaznacz wszystko</string>
<string name="deselect_all_label">Odznacz wszystko</string>
- <string name="select_options_label">Wybierz...</string>
<string name="choose_file_from_external_application">Użyj zewnętrznej aplikacji</string>
<string name="opml_export_label">Eksport OPML</string>
- <string name="exporting_label">Eksportowanie...</string>
<string name="export_error_label">Błąd eksportu</string>
<string name="opml_export_success_title">Eksport OPML udany.</string>
<string name="opml_export_success_sum">Plik .opml został zapisany do:\u0020</string>
@@ -446,7 +437,6 @@ https://gpodder.net/register/</string>
<!--Online feed view-->
<string name="subscribe_label">Subskrybuj</string>
<string name="subscribed_label">Subskrybowane</string>
- <string name="downloading_label">Pobieranie...</string>
<!--Content descriptions for image buttons-->
<string name="show_chapters_label">Pokaż rozdziały</string>
<string name="show_shownotes_label">Pokaż opis odcinka</string>
@@ -474,7 +464,6 @@ https://gpodder.net/register/</string>
<!--AntennaPodSP-->
<string name="sp_apps_importing_feeds_msg">Importowanie subskrybcji z jednozadaniowych aplikacji</string>
<string name="search_itunes_label">Szukaj w iTunes</string>
- <string name="select_label"><b>Zaznacz...</b></string>
<string name="all_label">Wszystkie</string>
<string name="selected_all_label">Zaznaczono wszystkie odcinki</string>
<string name="none_label">Brak</string>
@@ -487,7 +476,6 @@ https://gpodder.net/register/</string>
<string name="selected_downloaded_label">Zaznaczono pobrane odcinki</string>
<string name="not_downloaded_label">Nie pobrane</string>
<string name="selected_not_downloaded_label">Zaznaczono niepobrane odcinki</string>
- <string name="sort_title"><b>Sortuj według...</b></string>
<string name="sort_title_a_z">Tytuł (A \u2192 Z)</string>
<string name="sort_title_z_a">Tytuł (Z \u2192 A)</string>
<string name="sort_date_new_old">Data (Nowe \u2192 Stare)</string>
@@ -500,4 +488,5 @@ https://gpodder.net/register/</string>
<string name="rating_never_label">Daj mi spokój</string>
<string name="rating_later_label">Przypomnij później</string>
<string name="rating_now_label">Pewnie, zróbmy to!</string>
+ <!--Audio controls-->
</resources>
diff --git a/core/src/main/res/values-pt-rBR/strings.xml b/core/src/main/res/values-pt-rBR/strings.xml
index c57f20177..95b279022 100644
--- a/core/src/main/res/values-pt-rBR/strings.xml
+++ b/core/src/main/res/values-pt-rBR/strings.xml
@@ -53,7 +53,6 @@
<string name="length_prefix">Duração:\u0020</string>
<string name="size_prefix">Tamanho:\u0020</string>
<string name="processing_label">Processando</string>
- <string name="loading_label">Carregando...</string>
<string name="save_username_password_label">Salvar nome do usuário e senha</string>
<string name="close_label">Fechar</string>
<string name="retry_label">Tentar novamente</string>
@@ -69,7 +68,6 @@
<string name="mark_all_seen_label">Marcar todos como lido</string>
<string name="show_info_label">Mostrar informação</string>
<string name="remove_feed_label">Remover Podcast</string>
- <string name="share_label">Compartilhar...</string>
<string name="share_link_label">Compartilhar link do site</string>
<string name="share_link_with_position_label">Compartilhar link com posição</string>
<string name="share_item_url_label">Compartilhar url do episódio</string>
@@ -124,7 +122,6 @@
<string name="download_error_io_error">Erro de IO</string>
<string name="download_error_request_error">Erro de requisição</string>
<string name="download_error_db_access">Erro no acesso ao Banco de dados</string>
- <string name="downloads_left">\u0020Downloads restantes</string>
<string name="downloads_processing">Processando downloads</string>
<string name="download_notification_title">Baixando dados do podcast</string>
<string name="download_report_content">%1$d downloads com sucesso, %2$d falharam</string>
@@ -244,9 +241,7 @@
<string name="opml_import_error_dir_empty">O diretório de importação está vazio.</string>
<string name="select_all_label">Selecionar todos</string>
<string name="deselect_all_label">Remover seleção</string>
- <string name="select_options_label">Selecionar</string>
<string name="opml_export_label">Exportar OPML</string>
- <string name="exporting_label">Exportando...</string>
<string name="export_error_label">Erro na exportação</string>
<string name="opml_export_success_sum">O arquivo .opml foi gravado em:\u0020</string>
<!--Sleep timer-->
@@ -304,7 +299,6 @@
<!--Online feed view-->
<string name="subscribe_label">Assinar</string>
<string name="subscribed_label">Assinado</string>
- <string name="downloading_label">Baixando...</string>
<!--Content descriptions for image buttons-->
<string name="show_cover_label">Mostrar imagem</string>
<string name="butAction_label">Mais ações</string>
@@ -317,4 +311,5 @@
<!--Progress information-->
<!--AntennaPodSP-->
<!--Rating dialog-->
+ <!--Audio controls-->
</resources>
diff --git a/core/src/main/res/values-pt/strings.xml b/core/src/main/res/values-pt/strings.xml
index c8b669f43..f3fbc0623 100644
--- a/core/src/main/res/values-pt/strings.xml
+++ b/core/src/main/res/values-pt/strings.xml
@@ -14,15 +14,17 @@
<string name="waiting_list_label">Lista de espera</string>
<string name="settings_label">Definições</string>
<string name="add_new_feed_label">Adicionar podcast</string>
- <string name="downloads_label">Transferências</string>
+ <string name="downloads_label">Descargas</string>
<string name="downloads_running_label">Em curso</string>
<string name="downloads_completed_label">Terminada</string>
<string name="downloads_log_label">Registo</string>
- <string name="cancel_download_label">Cancelar\ntransferência</string>
+ <string name="cancel_download_label">Cancelar\ndescarga</string>
<string name="playback_history_label">Histórico de reprodução</string>
<string name="gpodnet_main_label">gpodder.net</string>
<string name="gpodnet_auth_label">Dados gpodder.net</string>
- <string name="free_space_label">%1$s livre</string>
+ <string name="free_space_label">%1$s disponível</string>
+ <string name="episode_cache_full_title">Cache de episódios cheia</string>
+ <string name="episode_cache_full_message">Atingido o limite máximo de itens em cache. Pode aumentar o tamanho de cache nas definições.</string>
<!--New episodes fragment-->
<string name="recently_published_episodes_label">Publicados recentemente</string>
<string name="episode_filter_label">Mostrar apenas novos episódios</string>
@@ -46,7 +48,7 @@
<!--Playback history-->
<string name="clear_history_label">Limpar histórico</string>
<!--Other-->
- <string name="confirm_label">Confirmar</string>
+ <string name="confirm_label">Confirmação</string>
<string name="cancel_label">Cancelar</string>
<string name="yes">Sim</string>
<string name="no">Não</string>
@@ -71,11 +73,11 @@
<string name="save_username_password_label">Guardar utilizador e palavra-passe</string>
<string name="close_label">Fechar</string>
<string name="retry_label">Tentar novamente</string>
- <string name="auto_download_label">Incluir nas transferências automáticas</string>
+ <string name="auto_download_label">Incluir nas descargas automáticas</string>
<string name="auto_download_apply_to_items_title">Aplicar aos episódios anteriores</string>
- <string name="auto_download_apply_to_items_message">A definição <i>Transferência automática</i> será aplicada a todos os novos episódios.\nGostaria de também a aplicar aos episódios anteriores?</string>
+ <string name="auto_download_apply_to_items_message">A definição <i>Descarga automática</i> será aplicada a todos os novos episódios.\nGostaria de também a aplicar aos episódios anteriores?</string>
<string name="auto_delete_label">Apagar episódio automaticamente\n(altera a definição global)</string>
- <string name="parallel_downloads_suffix">\u0020transferências simultâneas</string>
+ <string name="parallel_downloads_suffix">\u0020descargas simultâneas</string>
<string name="feed_auto_download_global">Global</string>
<string name="feed_auto_download_always">Sempre</string>
<string name="feed_auto_download_never">Nunca</string>
@@ -108,7 +110,7 @@
<string name="share_feed_url_label">Partilhar URL da fonte</string>
<string name="share_item_url_label">Partilhar URL do episódio</string>
<string name="share_item_url_with_position_label">Partilhar URL do episódio com posição</string>
- <string name="feed_delete_confirmation_msg">Por favor confirme que deseja apagar esta fonte e todos os episódios transferidos</string>
+ <string name="feed_delete_confirmation_msg">Confirma a remoção desta fonte e de todos os episódios descarregados?</string>
<string name="feed_remover_msg">Remover fonte</string>
<string name="load_complete_feed">Atualizar todas as páginas da fonte</string>
<string name="hide_episodes_title">Ocultar episódios</string>
@@ -118,12 +120,12 @@
<string name="hide_played_episodes_label">Reproduzidos</string>
<string name="hide_queued_episodes_label">Na fila</string>
<string name="hide_not_queued_episodes_label">Não na fila</string>
- <string name="hide_downloaded_episodes_label">Transferidos</string>
- <string name="hide_not_downloaded_episodes_label">Não transferidos</string>
+ <string name="hide_downloaded_episodes_label">Descarregados</string>
+ <string name="hide_not_downloaded_episodes_label">Não descarregados</string>
<string name="filtered_label">Filtrados</string>
<string name="refresh_failed_msg">{fa-exclamation-circle} Última atualização falhada</string>
<!--actions on feeditems-->
- <string name="download_label">Transferir</string>
+ <string name="download_label">Descarregar</string>
<string name="play_label">Reproduzir</string>
<string name="pause_label">Pausa</string>
<string name="stop_label">Parar</string>
@@ -137,21 +139,23 @@
<string name="added_to_queue_label">Adicionado à fila</string>
<string name="remove_from_queue_label">Remover da fila</string>
<string name="add_to_favorite_label">Adicionar aos favoritos</string>
+ <string name="added_to_favorites">Adicionado aos favoritos</string>
<string name="remove_from_favorite_label">Remover dos favoritos</string>
+ <string name="removed_from_favorites">Removido dos favoritos</string>
<string name="visit_website_label">Aceder ao sítio web</string>
<string name="support_label">Flattr</string>
<string name="enqueue_all_new">Colocar tudo na fila</string>
- <string name="download_all">Transferir tudo</string>
+ <string name="download_all">Descarregar tudo</string>
<string name="skip_episode_label">Ignorar episódio</string>
- <string name="activate_auto_download">Ativar transferência automática</string>
- <string name="deactivate_auto_download">Desativar transferência automática</string>
+ <string name="activate_auto_download">Ativar descarga automática</string>
+ <string name="deactivate_auto_download">Desativar descarga automática</string>
<string name="reset_position">Repor posição de reprodução</string>
<string name="removed_item">Item removido</string>
<!--Download messages and labels-->
<string name="download_successful">sucesso</string>
<string name="download_failed">falha</string>
- <string name="download_pending">Transferência pendente</string>
- <string name="download_running">Transferência atual</string>
+ <string name="download_pending">Descarga pendente</string>
+ <string name="download_running">Descarga atual</string>
<string name="download_error_device_not_found">Cartão SD não encontrado</string>
<string name="download_error_insufficient_space">Espaço insuficiente</string>
<string name="download_error_file_error">Erro no ficheiro</string>
@@ -162,29 +166,32 @@
<string name="download_error_connection_error">Erro de ligação</string>
<string name="download_error_unknown_host">Servidor desconhecido</string>
<string name="download_error_unauthorized">Erro de autenticação</string>
- <string name="cancel_all_downloads_label">Cancelar transferências</string>
- <string name="download_canceled_msg">Transferência cancelada</string>
- <string name="download_canceled_autodownload_enabled_msg">Transferência cancelada\n<i>Transferência automática</i> desativada para este item</string>
- <string name="download_report_title">Transferências terminadas com erros</string>
- <string name="download_report_content_title">Relatório de transferências</string>
+ <string name="cancel_all_downloads_label">Cancelar descargas</string>
+ <string name="download_canceled_msg">Descarga cancelada</string>
+ <string name="download_canceled_autodownload_enabled_msg">Descarga cancelada\n<i>Descarga automática</i> desativada para este item</string>
+ <string name="download_report_title">Descargas terminadas com erros</string>
+ <string name="download_report_content_title">Relatório de descargas</string>
<string name="download_error_malformed_url">URL inválido</string>
<string name="download_error_io_error">Erro I/O</string>
<string name="download_error_request_error">Erro de pedido</string>
<string name="download_error_db_access">Erro de acesso à base de dados</string>
- <string name="downloads_left">\u0020Transferências em falta</string>
- <string name="downloads_processing">Processamento de transferências</string>
- <string name="download_notification_title">A transferir dados do podcast</string>
- <string name="download_report_content">%1$d transferências efetuadas, %2$d falhadas</string>
+ <plurals name="downloads_left">
+ <item quantity="one">%d descarga em curso</item>
+ <item quantity="other">%d descargas em curso</item>
+ </plurals>
+ <string name="downloads_processing">Processamento de descargas</string>
+ <string name="download_notification_title">A descarregar dados do podcast</string>
+ <string name="download_report_content">%1$d descargas efetuadas, %2$d falhadas</string>
<string name="download_log_title_unknown">Título desconhecido</string>
<string name="download_type_feed">Fonte</string>
<string name="download_type_media">Ficheiro multimédia</string>
<string name="download_type_image">Imagem</string>
- <string name="download_request_error_dialog_message_prefix">Ocorreu um erro ao transferir o ficheiro:\u0020</string>
+ <string name="download_request_error_dialog_message_prefix">Ocorreu um erro ao tentar descarregar o ficheiro:\u0020</string>
<string name="authentication_notification_title">Requer autenticação</string>
<string name="authentication_notification_msg">O recurso solicitado requer um utilizador e uma palavra-passe</string>
- <string name="confirm_mobile_download_dialog_title">Confirmação de transferência</string>
- <string name="confirm_mobile_download_dialog_message_not_in_queue">A transferência através de dados móveis está desativada nas definições.\n\nAtivar temporariamente ou apenas adicionar à fila?\n\n<small>A sua decisão será memorizada durante 10 minutos.</small></string>
- <string name="confirm_mobile_download_dialog_message">A transferência através de dados móveis está desativada nas definições.\n\nAtivar temporariamente?\n\n<small>A sua decisão será memorizada durante 10 minutos.</small></string>
+ <string name="confirm_mobile_download_dialog_title">Confirmação de descarga</string>
+ <string name="confirm_mobile_download_dialog_message_not_in_queue">A descarga através de dados móveis está desativada nas definições.\n\nAtivar temporariamente ou apenas adicionar à fila?\n\n<small>A sua decisão será memorizada durante 10 minutos.</small></string>
+ <string name="confirm_mobile_download_dialog_message">A descarga através de dados móveis está desativada nas definições.\n\nAtivar temporariamente?\n\n<small>A sua decisão será memorizada durante 10 minutos.</small></string>
<string name="confirm_mobile_download_dialog_only_add_to_queue">Apenas adicionados à fila</string>
<string name="confirm_mobile_download_dialog_enable_temporarily">Ativar temporariamente</string>
<!--Mediaplayer messages-->
@@ -203,6 +210,8 @@
<!--Queue operations-->
<string name="lock_queue">Bloquear fila</string>
<string name="unlock_queue">Desbloquear fila</string>
+ <string name="queue_locked">Fila bloqueada</string>
+ <string name="queue_unlocked">Fila desbloqueada</string>
<string name="clear_queue_label">Limpar fila</string>
<string name="undo">Anular</string>
<string name="removed_from_queue">Item removido</string>
@@ -242,14 +251,15 @@
<string name="flattrd_failed_label">O AntennaPod não fez o flattr</string>
<string name="flattr_retrieving_status">A obter itens com flattr</string>
<!--Variable Speed-->
- <string name="download_plugin_label">Transferir extra</string>
+ <string name="download_plugin_label">Descarregar extra</string>
<string name="no_playback_plugin_title">Extra não instalado</string>
- <string name="no_playback_plugin_or_sonic_msg">Para que a velocidade variável de reprodução funcione, tem que instalar um biblioteca de terceiros ou ativar o reprodutor Sonic [Android 4.1+].\n\nClique em \'Transferir extra\' para a transferir no Google Play.\n\nQuaisquer erros que ocorram na utilização do extra não são da responsabilidade do AntennaPod e devem ser reportados diretamente ao seu programador.</string>
+ <string name="no_playback_plugin_or_sonic_msg">Para que a velocidade variável de reprodução funcione, recomendamos que ative o Sonic Media Player incorporado [Android 4.1+].\n\nEm alternativa, pode transferir o extra <i>Prestissimo</i>, disponível na Google Play.\nQuaisquer problemas que ocorram com o Prestissimo não são da responsabilidade dos programadores do AntennaPod e devem ser reportados ao dono do extra.</string>
<string name="set_playback_speed_label">Velocidades de reprodução</string>
<string name="enable_sonic">Ativar Sonic</string>
<!--Empty list labels-->
<string name="no_items_label">Não existem itens nesta lista</string>
<string name="no_feeds_label">Ainda não possui quaisquer fontes</string>
+ <string name="no_chapters_label">Este episódio não tem capítulos.</string>
<!--Preferences-->
<string name="other_pref">Outras</string>
<string name="about_pref">Sobre</string>
@@ -257,18 +267,18 @@
<string name="services_label">Serviços</string>
<string name="flattr_label">Flattr</string>
<string name="pref_episode_cleanup_title">Limpeza de episódios</string>
- <string name="pref_episode_cleanup_summary">Os episódios que não estiverem na fila ou que não sejam favoritos são elegiveis para remoção se necessitar de espaço</string>
+ <string name="pref_episode_cleanup_summary">Os episódios que não estejam na fila e não sejam favoritos podem ser elegíveis para serem removidos se a Descarga automática necessitar de espaço para novos episódios.</string>
<string name="pref_pauseOnDisconnect_sum">Pausa na reprodução ao desligar os auscultadores ou o bluetooth</string>
<string name="pref_unpauseOnHeadsetReconnect_sum">Continuar reprodução ao ligar os auscultadores</string>
<string name="pref_unpauseOnBluetoothReconnect_sum">Continuar reprodução ao estabelecer a ligação bluetooth</string>
<string name="pref_hardwareForwardButtonSkips_title">Botão para avançar</string>
<string name="pref_hardwareForwardButtonSkips_sum">Ao premir o botão Avançar, ir para o episódio seguinte em vez de avançar a reprodução</string>
- <string name="pref_followQueue_sum">Ir para a faixa seguinte ao terminar a reprodução</string>
+ <string name="pref_followQueue_sum">Ir para a episódio seguinte ao terminar a reprodução</string>
<string name="pref_auto_delete_sum">Apagar episódio ao terminar a reprodução</string>
<string name="pref_auto_delete_title">Eliminação automática</string>
- <string name="pref_smart_mark_as_played_sum">Marcar episódios como reproduzidos mesmo que restem alguns segundos de reprodução</string>
+ <string name="pref_smart_mark_as_played_sum">Marcar episódio como reproduzido mesmo que restem alguns segundos de reprodução</string>
<string name="pref_smart_mark_as_played_title">Marcar como reproduzido (inteligente)</string>
- <string name="pref_skip_keeps_episodes_sum">Manter episódio mesmo que tenham sido ignorados</string>
+ <string name="pref_skip_keeps_episodes_sum">Manter episódios mesmo que tenham sido ignorados</string>
<string name="pref_skip_keeps_episodes_title">Manter episódios ignorados</string>
<string name="playback_pref">Reprodução</string>
<string name="network_pref">Rede</string>
@@ -278,9 +288,11 @@
<string name="pref_autoUpdateIntervallOrTime_Disable">Desativar</string>
<string name="pref_autoUpdateIntervallOrTime_Interval">Definir intervalo</string>
<string name="pref_autoUpdateIntervallOrTime_TimeOfDay">Definir hora do dia</string>
- <string name="pref_downloadMediaOnWifiOnly_sum">Apenas transferir através de redes sem fios</string>
+ <string name="pref_autoUpdateIntervallOrTime_every">a cada %1$s</string>
+ <string name="pref_autoUpdateIntervallOrTime_at">às %1$s</string>
+ <string name="pref_downloadMediaOnWifiOnly_sum">Apenas descarregar através de redes sem fios</string>
<string name="pref_followQueue_title">Reprodução contínua</string>
- <string name="pref_downloadMediaOnWifiOnly_title">Transferir por Wi-Fi</string>
+ <string name="pref_downloadMediaOnWifiOnly_title">Descarregar por Wi-Fi</string>
<string name="pref_pauseOnHeadsetDisconnect_title">Auscultadores removidos</string>
<string name="pref_unpauseOnHeadsetReconnect_title">Auscultadores inseridos</string>
<string name="pref_unpauseOnBluetoothReconnect_title">Ligação bluetooth</string>
@@ -307,13 +319,13 @@
<string name="pref_nav_drawer_feed_counter_title">Definir contador de subscrições</string>
<string name="pref_nav_drawer_feed_counter_sum">Alterar a informação mostrada no contador de subscrições</string>
<string name="pref_set_theme_sum">Alterar a aparência do AntennaPod</string>
- <string name="pref_automatic_download_title">Transferência automática</string>
- <string name="pref_automatic_download_sum">Configure a transferência automática dos episódios</string>
+ <string name="pref_automatic_download_title">Descarga automática</string>
+ <string name="pref_automatic_download_sum">Configure a descarga automática dos episódios</string>
<string name="pref_autodl_wifi_filter_title">Ativar filtro Wi-Fi</string>
- <string name="pref_autodl_wifi_filter_sum">Apenas permitir transferências automáticas através de redes sem fios</string>
- <string name="pref_automatic_download_on_battery_title">Transferir se não estiver a carregar</string>
- <string name="pref_automatic_download_on_battery_sum">Permitir transferência automática se a bateria não estiver a ser carregada</string>
- <string name="pref_parallel_downloads_title">Transferências simultâneas</string>
+ <string name="pref_autodl_wifi_filter_sum">Apenas permitir descargas automáticas através de redes sem fios</string>
+ <string name="pref_automatic_download_on_battery_title">Descarregar se não estiver a carregar</string>
+ <string name="pref_automatic_download_on_battery_sum">Permitir descarga automática se a bateria não estiver a ser carregada</string>
+ <string name="pref_parallel_downloads_title">Descargas simultâneas</string>
<string name="pref_episode_cache_title">Cache de episódios</string>
<string name="pref_theme_title_light">Claro</string>
<string name="pref_theme_title_dark">Escuro</string>
@@ -340,7 +352,7 @@
<string name="pref_lockscreen_background_title">Definir fundo do ecrã de bloqueio</string>
<string name="pref_lockscreen_background_sum">Define a imagem do episódio como fundo do ecrã de bloqueio. Efeito colateral: também será mostrada em outras aplicações</string>
<string name="pref_showDownloadReport_title">Mostrar relatório de erros</string>
- <string name="pref_showDownloadReport_sum">Se a transferência falhar, gera um relatório que mostra os detalhes do erro</string>
+ <string name="pref_showDownloadReport_sum">Se a descarga falhar, gera um relatório que mostra os detalhes do erro</string>
<string name="pref_expand_notify_unsupport_toast">As versões Android anteriores à 4.1 não possuem suporte à expansão de notificações</string>
<string name="pref_queueAddToFront_sum">Colocar novos episódios no início da fila</string>
<string name="pref_queueAddToFront_title">Novos episódios no início</string>
@@ -352,7 +364,8 @@
<string name="send_email">Enviar e-mail</string>
<string name="experimental_pref">Experimental</string>
<string name="pref_sonic_title">Reprodutor Sonic</string>
- <string name="pref_sonic_message">Utilizar reprodutor multimédia Sonic como substituto de Prestissimo</string>
+ <string name="pref_sonic_message">Utilizar o Sonic Media Player como substituto do reprodutor nativo do Android e do Prestissimo</string>
+ <string name="pref_current_value">Valor atual: %1$s</string>
<!--Auto-Flattr dialog-->
<string name="auto_flattr_enable">Ativar flattr automático</string>
<string name="auto_flattr_after_percent">Flattr de episódios ao atingir %d porcento de reprodução</string>
@@ -383,7 +396,7 @@
<string name="choose_file_from_filesystem">Do sistema local de ficheiros</string>
<string name="choose_file_from_external_application">Utilizar aplicação externa</string>
<string name="opml_export_label">Exportação OPML</string>
- <string name="exporting_label">Exportação...</string>
+ <string name="exporting_label">A exportar...</string>
<string name="export_error_label">Erro de exportação</string>
<string name="opml_export_success_title">Exportação efetuada</string>
<string name="opml_export_success_sum">O ficheiro .opml foi guardado em:\u0020</string>
@@ -454,7 +467,7 @@
<string name="folder_not_readable_error">\"%1$s\" não permite leitura</string>
<string name="folder_not_writable_error">\"%1$s\" não permite escrita</string>
<string name="folder_not_empty_dialog_title">A pasta não está vazia</string>
- <string name="folder_not_empty_dialog_msg">A pasta escolhida não está vazia. As transferências multimédia e os ficheiros serão colocados nesta pasta. Continuar?</string>
+ <string name="folder_not_empty_dialog_msg">A pasta escolhida não está vazia. Os dados multimédia e os outros ficheiros serão colocados nesta pasta. Continuar?</string>
<string name="set_to_default_folder">Escolha a pasta pré-definida</string>
<string name="pref_pausePlaybackForFocusLoss_sum">Pausa na reprodução em vez de baixar o volume se outra aplicação quiser reproduzir sons</string>
<string name="pref_pausePlaybackForFocusLoss_title">Pausa nas interrupções</string>
@@ -464,7 +477,7 @@
<!--Online feed view-->
<string name="subscribe_label">Subscrever</string>
<string name="subscribed_label">Subscrito</string>
- <string name="downloading_label">A transferir...</string>
+ <string name="downloading_label">A descarregar...</string>
<!--Content descriptions for image buttons-->
<string name="show_chapters_label">Mostrar capítulos</string>
<string name="show_shownotes_label">Mostrar notas</string>
@@ -476,8 +489,8 @@
<string name="navigate_upwards_label">Navegar para cima</string>
<string name="butAction_label">Mais ações</string>
<string name="status_playing_label">Episódio em reprodução</string>
- <string name="status_downloading_label">Episódio a ser transferido</string>
- <string name="status_downloaded_label">Episódio transferido</string>
+ <string name="status_downloading_label">Episódio a ser descarregado</string>
+ <string name="status_downloaded_label">Episódio descarregado</string>
<string name="status_unread_label">Novo item</string>
<string name="in_queue_label">Episódio está na fila</string>
<string name="new_episodes_count_label">Número de novos episódios</string>
@@ -493,6 +506,7 @@
<string name="sp_apps_importing_feeds_msg">Importar subscrições de aplicações single-purpose...</string>
<string name="search_itunes_label">Procurar no iTunes</string>
<string name="select_label"><b>Selecionar...</b></string>
+ <string name="filter">Filtro</string>
<string name="all_label">Todos</string>
<string name="selected_all_label">Marcar todos os episódios</string>
<string name="none_label">Nenhum</string>
@@ -501,11 +515,11 @@
<string name="selected_played_label">Selecionar episódios reproduzidos</string>
<string name="unplayed_label">Não reproduzidos</string>
<string name="selected_unplayed_label">Selecionar episódios não reproduzidos</string>
- <string name="downloaded_label">Transferidos</string>
- <string name="selected_downloaded_label">Selecionar episódios transferidos</string>
- <string name="not_downloaded_label">Não transferidos</string>
- <string name="selected_not_downloaded_label">Selecionar episódios não transferidos</string>
- <string name="sort_title"><b>Ordenar por...</b></string>
+ <string name="downloaded_label">Descarregados</string>
+ <string name="selected_downloaded_label">Selecionar episódios descarregados</string>
+ <string name="not_downloaded_label">Não descarregados</string>
+ <string name="selected_not_downloaded_label">Selecionar episódios não descarregados</string>
+ <string name="sort_title"><b>Ordenar por…</b></string>
<string name="sort_title_a_z">Título (A \u2192 Z)</string>
<string name="sort_title_z_a">Título (Z \u2192 A)</string>
<string name="sort_date_new_old">Data (Recente \u2192 Antiga)</string>
@@ -518,4 +532,13 @@
<string name="rating_never_label">Não avaliar</string>
<string name="rating_later_label">Lembrar mais tarde</string>
<string name="rating_now_label">Claro, vamos a isso!</string>
+ <!--Audio controls-->
+ <string name="audio_controls">Controlos de áudio</string>
+ <string name="playback_speed">Velocidade de reprodução</string>
+ <string name="volume">Volume</string>
+ <string name="left_short">E</string>
+ <string name="right_short">D</string>
+ <string name="audio_effects">Efeitos áudio</string>
+ <string name="stereo_to_mono">Mistura: estéreo para mono</string>
+ <string name="sonic_only">Apenas Sonic</string>
</resources>
diff --git a/core/src/main/res/values-ro-rRO/strings.xml b/core/src/main/res/values-ro-rRO/strings.xml
index 0512a989b..a112db8dd 100644
--- a/core/src/main/res/values-ro-rRO/strings.xml
+++ b/core/src/main/res/values-ro-rRO/strings.xml
@@ -39,7 +39,6 @@
<string name="length_prefix">Durată:\u0020</string>
<string name="size_prefix">Dimensiune:\u0020</string>
<string name="processing_label">Procesează</string>
- <string name="loading_label">Încărcare...</string>
<string name="save_username_password_label">Salvează numele de utilizator și parola</string>
<string name="close_label">închide</string>
<string name="retry_label">Reîncearcă</string>
@@ -83,7 +82,6 @@
<string name="download_error_malformed_url">URL malformat</string>
<string name="download_error_io_error">Eroare IO</string>
<string name="download_error_request_error">Eroare cerere</string>
- <string name="downloads_left">\u0020descărcări rămase</string>
<string name="download_notification_title">Descarcă date podcast</string>
<string name="download_report_content">%1$d descărcari cu succes, %2$d eșuate</string>
<string name="download_log_title_unknown">Titlu necunoscut</string>
@@ -186,7 +184,6 @@
<string name="select_all_label">Selectează toate</string>
<string name="deselect_all_label">Deselectează toate</string>
<string name="opml_export_label">Exportă OPML</string>
- <string name="exporting_label">Exportă...</string>
<string name="export_error_label">Eroare exportare</string>
<string name="opml_export_success_sum">Fișierul .opml a fost scris în:\u0020</string>
<!--Sleep timer-->
@@ -229,10 +226,10 @@
<!--Online feed view-->
<string name="subscribe_label">Abonează-te</string>
<string name="subscribed_label">Abonat</string>
- <string name="downloading_label">Se descarcă...</string>
<!--Content descriptions for image buttons-->
<!--Feed information screen-->
<!--Progress information-->
<!--AntennaPodSP-->
<!--Rating dialog-->
+ <!--Audio controls-->
</resources>
diff --git a/core/src/main/res/values-ru/strings.xml b/core/src/main/res/values-ru/strings.xml
index a3aee0f03..46a9d5feb 100644
--- a/core/src/main/res/values-ru/strings.xml
+++ b/core/src/main/res/values-ru/strings.xml
@@ -66,7 +66,6 @@
<string name="length_prefix">Продолжительность:\u0020</string>
<string name="size_prefix">Размер:\u0020</string>
<string name="processing_label">Обработка</string>
- <string name="loading_label">Загрузка...</string>
<string name="save_username_password_label">Сохранить имя пользователя и пароль</string>
<string name="close_label">Закрыть</string>
<string name="retry_label">Повторить</string>
@@ -78,7 +77,6 @@
<string name="feed_auto_download_global">Общие</string>
<string name="feed_auto_download_always">Всегда</string>
<string name="feed_auto_download_never">Никогда</string>
- <string name="send_label">Отправить...</string>
<string name="episode_cleanup_never">Никогда</string>
<string name="episode_cleanup_queue_removal">Когда не в очереди</string>
<string name="episode_cleanup_after_listening">После прослушивания</string>
@@ -97,7 +95,6 @@
<string name="mark_all_seen_label">Отметить все как про</string>
<string name="show_info_label">Показать информацию</string>
<string name="remove_feed_label">Удалить подкаст</string>
- <string name="share_label">Поделиться...</string>
<string name="share_link_label">Поделиться ссылкой</string>
<string name="share_link_with_position_label">Поделиться ссылкой с отметкой времени</string>
<string name="share_feed_url_label">Поделиться ссылкой на канал</string>
@@ -165,7 +162,6 @@
<string name="download_error_io_error">Ошибка ввода-вывода</string>
<string name="download_error_request_error">Ошибка запроса</string>
<string name="download_error_db_access">Ошибка доступа к базе данных</string>
- <string name="downloads_left">Осталось\u0020загрузок</string>
<string name="downloads_processing">Производится загрузка</string>
<string name="download_notification_title">Получение данных подкаста</string>
<string name="download_report_content">%1$d загрузок завершено, %2$d не удалось</string>
@@ -238,7 +234,6 @@
<!--Variable Speed-->
<string name="download_plugin_label">Загрузить плагин</string>
<string name="no_playback_plugin_title">Плагин не установлен</string>
- <string name="no_playback_plugin_or_sonic_msg">Для изменения скорости воспроизведения нужно установить библиотеку стороннего разработчика или включить экспериментальный Sonic player [Android 4.1+].\n\nНажмите \"Загрузить плагин\", чтобы скачать бесплатный плагин из Play Store\n\nЛюбые вопросы по работе плагина находятся вне ответственности AntennaPod и должны быть направлены владельцу плагина.</string>
<string name="set_playback_speed_label">Скорость воспроизведения</string>
<string name="enable_sonic">Включить Sonic</string>
<!--Empty list labels-->
@@ -251,7 +246,6 @@
<string name="services_label">Сервисы</string>
<string name="flattr_label">Flattr</string>
<string name="pref_episode_cleanup_title">Удаление выпусков</string>
- <string name="pref_episode_cleanup_summary">Выпуски, которые не стоят в очереди и не отмечены как избранные могут быть удалены для освобождения места.</string>
<string name="pref_pauseOnDisconnect_sum">Приостановить воспроизведение, когда наушники или bluetooth отключены</string>
<string name="pref_unpauseOnHeadsetReconnect_sum">Продолжать воспроизведение после подключения наушников</string>
<string name="pref_unpauseOnBluetoothReconnect_sum">Продолжать воспроизведение после подключения наушников или восстановления bluetooth-соединения</string>
@@ -340,9 +334,9 @@
<string name="pref_image_cache_size_title">Размер кэша для изображений</string>
<string name="pref_image_cache_size_sum">Размер дискового кэша для изображений</string>
<string name="crash_report_title">Отчет о сбое</string>
+ <string name="send_email">Отправить Email</string>
<string name="experimental_pref">Экспериментальные настройки</string>
<string name="pref_sonic_title">Проигрыватель Sonic</string>
- <string name="pref_sonic_message">Использовать встроенный проигрыватель Sonic вместо Prestissimo.</string>
<!--Auto-Flattr dialog-->
<string name="auto_flattr_enable">Включить автоматическую поддержку через Flattr</string>
<string name="auto_flattr_after_percent">Поддерживать через Flattr эпизоды, прослушанные на %d процентов</string>
@@ -369,11 +363,9 @@
<string name="opml_import_error_dir_empty">Каталог для импорта пуст.</string>
<string name="select_all_label">Отметить все</string>
<string name="deselect_all_label">Снять все отметки</string>
- <string name="select_options_label">Выбрать...</string>
<string name="choose_file_from_filesystem">Из файловой системы</string>
<string name="choose_file_from_external_application">С помощью внешнего приложения</string>
<string name="opml_export_label">Экспорт в OPML</string>
- <string name="exporting_label">Экспортируется...</string>
<string name="export_error_label">Ошибка экспорта</string>
<string name="opml_export_success_title">OPML успешно экспортирован.</string>
<string name="opml_export_success_sum">Файл OPML был записан в:\u0020</string>
@@ -390,6 +382,24 @@
<string name="time_seconds">с</string>
<string name="time_minutes">м</string>
<string name="time_hours">ч</string>
+ <plurals name="time_seconds_quantified">
+ <item quantity="one">1 секунда</item>
+ <item quantity="few">%d сек.</item>
+ <item quantity="many">%d секунд</item>
+ <item quantity="other">%d секунд</item>
+ </plurals>
+ <plurals name="time_minutes_quantified">
+ <item quantity="one">1 минута</item>
+ <item quantity="few">%d мин.</item>
+ <item quantity="many">%d минут</item>
+ <item quantity="other">%d минут</item>
+ </plurals>
+ <plurals name="time_hours_quantified">
+ <item quantity="one">1 час</item>
+ <item quantity="few">%d ч.</item>
+ <item quantity="many">%d часов</item>
+ <item quantity="other">%d часов</item>
+ </plurals>
<!--gpodder.net-->
<string name="gpodnet_taglist_header">Категории</string>
<string name="gpodnet_toplist_header">Лучшее</string>
@@ -441,7 +451,6 @@
<!--Online feed view-->
<string name="subscribe_label">Подписаться</string>
<string name="subscribed_label">Подписка оформлена</string>
- <string name="downloading_label">Загрузка...</string>
<!--Content descriptions for image buttons-->
<string name="show_chapters_label">Показать главы</string>
<string name="show_shownotes_label">Показать примечания к выпуску</string>
@@ -469,7 +478,6 @@
<!--AntennaPodSP-->
<string name="sp_apps_importing_feeds_msg">Импорт подписок из одноцелевых приложений…</string>
<string name="search_itunes_label">Поиск в iTunes</string>
- <string name="select_label"><b>Выбрать ...</b></string>
<string name="all_label">Все</string>
<string name="selected_all_label">Отмечены все выпуски</string>
<string name="none_label">Нет</string>
@@ -482,7 +490,6 @@
<string name="selected_downloaded_label">Выбраны загруженные выпуски</string>
<string name="not_downloaded_label">Не загружено</string>
<string name="selected_not_downloaded_label">Выбраны незагруженные выпуски</string>
- <string name="sort_title"><b>Сортировать по ...</b></string>
<string name="sort_title_a_z">Заголовку (А \u2192 Я)</string>
<string name="sort_title_z_a">Заголовку (Я \u2192 А)</string>
<string name="sort_date_new_old">Дате (Новое \u2192 Старое)</string>
@@ -495,4 +502,5 @@
<string name="rating_never_label">Отстань от меня</string>
<string name="rating_later_label">Напомни позже</string>
<string name="rating_now_label">Конечно, давай!</string>
+ <!--Audio controls-->
</resources>
diff --git a/core/src/main/res/values-sv-rSE/strings.xml b/core/src/main/res/values-sv-rSE/strings.xml
index 51a75a3e7..b91b030d6 100644
--- a/core/src/main/res/values-sv-rSE/strings.xml
+++ b/core/src/main/res/values-sv-rSE/strings.xml
@@ -23,6 +23,8 @@
<string name="gpodnet_main_label">gpodder.net</string>
<string name="gpodnet_auth_label">Inloggning till gpodder.net</string>
<string name="free_space_label">%1$s kvar</string>
+ <string name="episode_cache_full_title">Episodcachen är full</string>
+ <string name="episode_cache_full_message">Episodcachens gräns har nåtts. Du kan öka cachens storlek i inställningarna.</string>
<!--New episodes fragment-->
<string name="recently_published_episodes_label">Nyligen publicerade</string>
<string name="episode_filter_label">Visa bara nya Episoder</string>
@@ -67,7 +69,7 @@
<string name="length_prefix">Längd:\u0020</string>
<string name="size_prefix">Storlek:\u0020</string>
<string name="processing_label">Bearbetar</string>
- <string name="loading_label">Laddar...</string>
+ <string name="loading_label">Laddar…</string>
<string name="save_username_password_label">Spara användarnamn och lösenord</string>
<string name="close_label">Stäng</string>
<string name="retry_label">Försök igen</string>
@@ -79,7 +81,7 @@
<string name="feed_auto_download_global">Global</string>
<string name="feed_auto_download_always">Alltid</string>
<string name="feed_auto_download_never">Aldrig</string>
- <string name="send_label">Skicka...</string>
+ <string name="send_label">Skicka…</string>
<string name="episode_cleanup_never">Aldrig</string>
<string name="episode_cleanup_queue_removal">Om inte köad</string>
<string name="episode_cleanup_after_listening">Efter färdigspelad</string>
@@ -102,7 +104,7 @@
<string name="mark_all_seen_label">Markera alla som sedda</string>
<string name="show_info_label">Visa information</string>
<string name="remove_feed_label">Ta bort Podcast</string>
- <string name="share_label">Dela...</string>
+ <string name="share_label">Dela…</string>
<string name="share_link_label">Dela Länk</string>
<string name="share_link_with_position_label">Dela Länk med Position</string>
<string name="share_feed_url_label">Dela Flödets URL</string>
@@ -137,7 +139,9 @@
<string name="added_to_queue_label">Lägg till i Kö</string>
<string name="remove_from_queue_label">Ta bort från Kön</string>
<string name="add_to_favorite_label">Lägg till i Favoriter</string>
+ <string name="added_to_favorites">Tillagd i Favoriter</string>
<string name="remove_from_favorite_label">Ta bort från Favoriter</string>
+ <string name="removed_from_favorites">Borrtagen ur Favoriter</string>
<string name="visit_website_label">Besök websidan</string>
<string name="support_label">Flattra det här</string>
<string name="enqueue_all_new">Lägg till alla i kön</string>
@@ -171,7 +175,10 @@
<string name="download_error_io_error">IO fel</string>
<string name="download_error_request_error">Förfrågningsfel</string>
<string name="download_error_db_access">Åtkomstfel till databasen</string>
- <string name="downloads_left">\u0020Nedladdningar kvar</string>
+ <plurals name="downloads_left">
+ <item quantity="one">%d nedladdning kvar</item>
+ <item quantity="other">%d nedladdningar kvar</item>
+ </plurals>
<string name="downloads_processing">Bearbetar nedladdningar</string>
<string name="download_notification_title">Laddar ner podcastdata</string>
<string name="download_report_content">%1$d nedladdningar lyckades, %2$d misslyckades</string>
@@ -203,6 +210,8 @@
<!--Queue operations-->
<string name="lock_queue">Lås Kön</string>
<string name="unlock_queue">Lås upp Kön</string>
+ <string name="queue_locked">Kön låst</string>
+ <string name="queue_unlocked">Kön upplåst</string>
<string name="clear_queue_label">Rensa Kön</string>
<string name="undo">Ångra</string>
<string name="removed_from_queue">Föremålet avlägsnades</string>
@@ -244,12 +253,13 @@
<!--Variable Speed-->
<string name="download_plugin_label">Ladda ner tillägg</string>
<string name="no_playback_plugin_title">Tillägg ej installerat</string>
- <string name="no_playback_plugin_or_sonic_msg">För att variabel uppspelningshastighet ska funger måste du installera ett tredjepartsbibliotek eller aktivera den experimentella spelaren Sonic [Android 4.1+].\n\nTryck på \'Ladda ner Plugin\' för att ladda ner en gratis plugin från Play Store.\n\nAntennaPod ansvarar inte för eventualla problem som upptäcks vid användning av denna plugin och de bör rapporteras till pluginens ägare.</string>
+ <string name="no_playback_plugin_or_sonic_msg">För att variabel uppspelningshastighet ska fungera rekommenderas att aktivera den inbyggda Sonic mediaspelaren [Android 4.1+].\n\nAlternativt kan du ladda ner tredjepartstillägget <i>Prestissimo</i> från Google Play.\nProblem med Prestissimo är inte AntennaPods ansvar och bör rapporteras till tilläggets ägare.</string>
<string name="set_playback_speed_label">Uppspelningshastigheter</string>
<string name="enable_sonic">Aktivera Sonic</string>
<!--Empty list labels-->
<string name="no_items_label">Det finns inget i denna lista.</string>
<string name="no_feeds_label">Du har inte prenumererat på något flöde ännu.</string>
+ <string name="no_chapters_label">Denna episod har inga kapitel.</string>
<!--Preferences-->
<string name="other_pref">Annat</string>
<string name="about_pref">Om</string>
@@ -257,7 +267,7 @@
<string name="services_label">Tjänster</string>
<string name="flattr_label">Flattr</string>
<string name="pref_episode_cleanup_title">Episodupprensning</string>
- <string name="pref_episode_cleanup_summary">Episoder som inte ligger i kön och inte är favoriter ska kunna tas bort om det behövs utrymme</string>
+ <string name="pref_episode_cleanup_summary">Episoder som inte är i kön och inte är favoriter kan tas bort om Automatisk Nedladdning behöver utrymme för nya episoder</string>
<string name="pref_pauseOnDisconnect_sum">Pausa uppspelningen när hörlurar eller bluetooth kopplas ifrån.</string>
<string name="pref_unpauseOnHeadsetReconnect_sum">Fortsätt uppspelningen när hörlurarna återansluts</string>
<string name="pref_unpauseOnBluetoothReconnect_sum">Fortsätt uppspelningen när bluetooth återansluts</string>
@@ -278,6 +288,8 @@
<string name="pref_autoUpdateIntervallOrTime_Disable">Avaktivera</string>
<string name="pref_autoUpdateIntervallOrTime_Interval">Sätt intervall</string>
<string name="pref_autoUpdateIntervallOrTime_TimeOfDay">Sätt Tid på Dagen</string>
+ <string name="pref_autoUpdateIntervallOrTime_every">var %1$s</string>
+ <string name="pref_autoUpdateIntervallOrTime_at">vid %1$s</string>
<string name="pref_downloadMediaOnWifiOnly_sum">Hämta mediefiler endast över WiFi</string>
<string name="pref_followQueue_title">Kontinuerlig Uppspelning</string>
<string name="pref_downloadMediaOnWifiOnly_title">WiFi nedladdning</string>
@@ -352,7 +364,8 @@
<string name="send_email">Sänd e-post</string>
<string name="experimental_pref">Experimentellt</string>
<string name="pref_sonic_title">Sonic mediaspelare</string>
- <string name="pref_sonic_message">Använd inbyggda mediaspelaren Sonic som en ersättning för Prestissimo</string>
+ <string name="pref_sonic_message">Använd den inbyggda Sonic mediaspelare som ersättning för Androids egna mediaspelare och Prestissimo</string>
+ <string name="pref_current_value">Nuvarande värde: %1$s</string>
<!--Auto-Flattr dialog-->
<string name="auto_flattr_enable">Aktivera automatisk Flattring</string>
<string name="auto_flattr_after_percent">Flattra episoden så snart %d procent har spelats</string>
@@ -379,11 +392,11 @@
<string name="opml_import_error_dir_empty">Katalogen är tom.</string>
<string name="select_all_label">Välj alla</string>
<string name="deselect_all_label">Avmarkera alla</string>
- <string name="select_options_label">Välj ...</string>
+ <string name="select_options_label">Välj…</string>
<string name="choose_file_from_filesystem">Från lokalt filsystem</string>
<string name="choose_file_from_external_application">Använd extern applikation</string>
<string name="opml_export_label">OPML export</string>
- <string name="exporting_label">Exporterar...</string>
+ <string name="exporting_label">Exporterar…</string>
<string name="export_error_label">Exporteringsfel</string>
<string name="opml_export_success_title">OPML Exportering lyckades.</string>
<string name="opml_export_success_sum">.opml filen skrevs till:\u0020</string>
@@ -464,7 +477,7 @@
<!--Online feed view-->
<string name="subscribe_label">Prenumerera</string>
<string name="subscribed_label">Prenumererar</string>
- <string name="downloading_label">Laddar ner...</string>
+ <string name="downloading_label">Laddar ner…</string>
<!--Content descriptions for image buttons-->
<string name="show_chapters_label">Visa kapitel</string>
<string name="show_shownotes_label">Visa shownotes</string>
@@ -490,9 +503,10 @@
<!--Progress information-->
<string name="progress_upgrading_database">Uppgraderar databasen</string>
<!--AntennaPodSP-->
- <string name="sp_apps_importing_feeds_msg">Importerar prenumerationer från appar gjorda för ett enda syfte...</string>
+ <string name="sp_apps_importing_feeds_msg">Importerar prenumerationer från appar gjorda för ett enda syfte…</string>
<string name="search_itunes_label">Leta i iTunes</string>
- <string name="select_label"><b>Välj ...</b></string>
+ <string name="select_label"><b>Välj…</b></string>
+ <string name="filter">Filtrera</string>
<string name="all_label">Alla</string>
<string name="selected_all_label">Välj alla Episoder</string>
<string name="none_label">Inga</string>
@@ -505,7 +519,7 @@
<string name="selected_downloaded_label">Valde nedladdade Episoder</string>
<string name="not_downloaded_label">Ej nedladdade</string>
<string name="selected_not_downloaded_label">Valde ej nedladdade Episoder</string>
- <string name="sort_title"><b>Sortera efter ...</b></string>
+ <string name="sort_title"><b>Sortera efter…</b></string>
<string name="sort_title_a_z">Titel (A \u2192 Ö)</string>
<string name="sort_title_z_a">Titel (Ö \u2192 A)</string>
<string name="sort_date_new_old">Datum (Ny \u2192 Gammal)</string>
@@ -518,4 +532,13 @@
<string name="rating_never_label">Lämna mig ifred</string>
<string name="rating_later_label">Påminn mig senare</string>
<string name="rating_now_label">Okej, gör det nu!</string>
+ <!--Audio controls-->
+ <string name="audio_controls">Ljudkontroller</string>
+ <string name="playback_speed">Uppspelningshastighet</string>
+ <string name="volume">Volym</string>
+ <string name="left_short">V</string>
+ <string name="right_short">H</string>
+ <string name="audio_effects">Ljudeffekter</string>
+ <string name="stereo_to_mono">Nedmixning: Stereo till mono</string>
+ <string name="sonic_only">Bara Sonic</string>
</resources>
diff --git a/core/src/main/res/values-tr/strings.xml b/core/src/main/res/values-tr/strings.xml
index 5494dd48c..6dca19d57 100644
--- a/core/src/main/res/values-tr/strings.xml
+++ b/core/src/main/res/values-tr/strings.xml
@@ -66,7 +66,6 @@
<string name="length_prefix">Uzunluk:\u0020</string>
<string name="size_prefix">Boyut:\u0020</string>
<string name="processing_label">İşleniyor</string>
- <string name="loading_label">Yükleniyor...</string>
<string name="save_username_password_label">Kullanıcı adı ve şifreyi kaydet</string>
<string name="close_label">Kapat</string>
<string name="retry_label">Yeniden dene</string>
@@ -77,7 +76,6 @@
<string name="feed_auto_download_global">Genel</string>
<string name="feed_auto_download_always">Her zaman</string>
<string name="feed_auto_download_never">Hiçbir zaman</string>
- <string name="send_label">Gönder...</string>
<string name="episode_cleanup_never">Hiçbir zaman</string>
<string name="episode_cleanup_queue_removal">Sırada değilse</string>
<string name="episode_cleanup_after_listening">Bittikten sonra</string>
@@ -100,7 +98,6 @@
<string name="mark_all_seen_label">Hepsini görüldü olarak işaretle</string>
<string name="show_info_label">Bilgiyi göster</string>
<string name="remove_feed_label">Cep yayını kaldır</string>
- <string name="share_label">Paylaş...</string>
<string name="share_link_label">Link\'i paylaş</string>
<string name="share_link_with_position_label">Link\'i Konumla birlikte paylaş</string>
<string name="share_feed_url_label">Besleme Adresini Paylaş</string>
@@ -169,7 +166,6 @@
<string name="download_error_io_error">G/Ç Hatası</string>
<string name="download_error_request_error">İstek hatası</string>
<string name="download_error_db_access">Veritabanı erişim hatası</string>
- <string name="downloads_left">\u0020Kalan indirme</string>
<string name="downloads_processing">İndirmeler işleniyor</string>
<string name="download_notification_title">Cep yayını verileri indiriliyor</string>
<string name="download_report_content">%1$d indirme başarılı, %2$d başarısız</string>
@@ -254,7 +250,6 @@
<string name="services_label">Servisler</string>
<string name="flattr_label">Flattr</string>
<string name="pref_episode_cleanup_title">Bölüm Temizliği</string>
- <string name="pref_episode_cleanup_summary">Daha fazla yer gerektiğinde kuyrukta olmayan ve favorilere eklenmemiş bölümler kaldırılmak için uygundur</string>
<string name="pref_pauseOnDisconnect_sum">Kulaklıklar çıkarıldığında veya bluetooth bağlantısı kesildiğinde çalmayı duraklat</string>
<string name="pref_unpauseOnHeadsetReconnect_sum">Kulaklıklar yeniden bağlandığında çalmaya devam et</string>
<string name="pref_unpauseOnBluetoothReconnect_sum">Bluetooth yeniden bağlandığında çalmaya devam et</string>
@@ -337,7 +332,6 @@
<string name="send_email">E-posta gönder</string>
<string name="experimental_pref">Deneysel</string>
<string name="pref_sonic_title">Sonic ortam yürütücüsü</string>
- <string name="pref_sonic_message">Prestissimo yerine sonic ortam yürütücüsünü kullan</string>
<!--Auto-Flattr dialog-->
<string name="auto_flattr_enable">Otomatik Flattr\'lamayı etkinleştir</string>
<string name="auto_flattr_after_percent">Bölümün yüzde %d kısmı oynatıldığında Flattr\'la</string>
@@ -364,11 +358,9 @@
<string name="opml_import_error_dir_empty">İça aktarma dizini boş</string>
<string name="select_all_label">Hepsini seç</string>
<string name="deselect_all_label">Tüm seçimleri geri al</string>
- <string name="select_options_label">Seç ...</string>
<string name="choose_file_from_filesystem">Yerel dosya sisteminden</string>
<string name="choose_file_from_external_application">Harici uygulama kullan</string>
<string name="opml_export_label">OPML dışa aktar</string>
- <string name="exporting_label">Dışa aktarılıyor...</string>
<string name="export_error_label">Dışa aktarma hatası</string>
<string name="opml_export_success_title">Opml dışa aktarma başarılı.</string>
<string name="opml_export_success_sum">.opml dosyasy yazıldı: \u0020</string>
@@ -449,7 +441,6 @@
<!--Online feed view-->
<string name="subscribe_label">Üye ol</string>
<string name="subscribed_label">Üye olundu</string>
- <string name="downloading_label">İndiriliyor...</string>
<!--Content descriptions for image buttons-->
<string name="show_chapters_label">Kısımları göster</string>
<string name="show_shownotes_label">Notları göster</string>
@@ -477,7 +468,6 @@
<!--AntennaPodSP-->
<string name="sp_apps_importing_feeds_msg">Üyelikler tek-amaçlı uygulamalardan içe aktarılıyor...</string>
<string name="search_itunes_label">iTunes\'da Arama</string>
- <string name="select_label"><b>Seç ...</b></string>
<string name="all_label">Tümü</string>
<string name="selected_all_label">Tüm Bölümler Seçildi</string>
<string name="none_label">Hiçbiri</string>
@@ -490,7 +480,6 @@
<string name="selected_downloaded_label">İndirilen Bölümler Seçildi</string>
<string name="not_downloaded_label">İndirilmeyen</string>
<string name="selected_not_downloaded_label">İndirilmeyen Bölümler Seçildi</string>
- <string name="sort_title"><b>Sırala ...</b></string>
<string name="sort_title_a_z">Başlık (A \u2192 Z)</string>
<string name="sort_title_z_a">Başlık (Z \u2192 A)</string>
<string name="sort_date_new_old">Tarih (Yeni \u2192 Eski)</string>
@@ -503,4 +492,5 @@
<string name="rating_never_label">Bir daha gösterme</string>
<string name="rating_later_label">Daha sonra hatırlat</string>
<string name="rating_now_label">Evet, şimdi yapalım!</string>
+ <!--Audio controls-->
</resources>
diff --git a/core/src/main/res/values-uk-rUA/strings.xml b/core/src/main/res/values-uk-rUA/strings.xml
index 4fcd811b0..abc5fcec1 100644
--- a/core/src/main/res/values-uk-rUA/strings.xml
+++ b/core/src/main/res/values-uk-rUA/strings.xml
@@ -66,7 +66,6 @@
<string name="length_prefix">Довжина:\u0020</string>
<string name="size_prefix">Розмір:\u0020</string>
<string name="processing_label">Обробка</string>
- <string name="loading_label">Завантаження категорій ...</string>
<string name="save_username_password_label">Зберегти ім\'я користувача та пароль</string>
<string name="close_label">Закрити</string>
<string name="retry_label">Повторити знову</string>
@@ -78,7 +77,6 @@
<string name="feed_auto_download_global">Для всіх</string>
<string name="feed_auto_download_always">Завжди</string>
<string name="feed_auto_download_never">Ніколи</string>
- <string name="send_label">Надіслати...</string>
<string name="episode_cleanup_never">Ніколи</string>
<string name="episode_cleanup_queue_removal">Якщо не в черзі</string>
<string name="episode_cleanup_after_listening">Після закінчення</string>
@@ -102,7 +100,6 @@
<string name="mark_all_seen_label">Позначити всі як переглянуті</string>
<string name="show_info_label">Інформація</string>
<string name="remove_feed_label">Видалити подкаст</string>
- <string name="share_label">Поділитись...</string>
<string name="share_link_label">Поділитися URL сайту</string>
<string name="share_link_with_position_label">Поділитись посиланням на позицію</string>
<string name="share_feed_url_label">Поділитись посиланням на канал</string>
@@ -171,7 +168,6 @@
<string name="download_error_io_error">Помилка IO</string>
<string name="download_error_request_error">Помилка запиту</string>
<string name="download_error_db_access">Помилка бази даних</string>
- <string name="downloads_left">\0020 залишилось завантажити</string>
<string name="downloads_processing">Обробка завантаженого</string>
<string name="download_notification_title">Завантаження даних подкасту</string>
<string name="download_report_content">Завантажилось %1$d успішно, %2$d з помилками</string>
@@ -244,7 +240,6 @@
<!--Variable Speed-->
<string name="download_plugin_label">Завантажити додаток</string>
<string name="no_playback_plugin_title">Додаток не встановлено</string>
- <string name="no_playback_plugin_or_sonic_msg">Для керування швидкістю програвання потрібно встановити додаток або включити експериментальний програвач Sonic [Android 4.1+].\n\nНатисніть \"Завантажити додаток\" для завантаження безкоштовного додатку з Play Store\n\nЯкщо при використанні plugin виникнуть будь які проблеми - це відповідальність автора додатка, а не автора AntennaPod.</string>
<string name="set_playback_speed_label">Швидкість програвання</string>
<string name="enable_sonic">Включити Sonic</string>
<!--Empty list labels-->
@@ -257,7 +252,6 @@
<string name="services_label">Сервіси</string>
<string name="flattr_label">Flattr</string>
<string name="pref_episode_cleanup_title">Чищення епізодів</string>
- <string name="pref_episode_cleanup_summary">У разі нестачі пам\'яті видалять епізоди які не знаходяться ні в списку улюблених ні в черзі.</string>
<string name="pref_pauseOnDisconnect_sum">Зупинятись коли навушники або блютуз від’єднано</string>
<string name="pref_unpauseOnHeadsetReconnect_sum">Поновити відтворення коли навушники повторно під’єднано</string>
<string name="pref_unpauseOnBluetoothReconnect_sum">Поновити відтворення коли блютуз повторно під’єднано</string>
@@ -347,7 +341,6 @@
<string name="pref_image_cache_size_sum">Розмір дискового кеша для зображень.</string>
<string name="experimental_pref">Експериментальні</string>
<string name="pref_sonic_title">Програвач Sonic</string>
- <string name="pref_sonic_message">Використовивать вбудований програвач sonic media player замість Prestissimo</string>
<!--Auto-Flattr dialog-->
<string name="auto_flattr_enable">Включити автоматичне заохочення авторів через сервіс flattr</string>
<string name="auto_flattr_after_percent">Заохотити автора через Flattr щойно %d відсотків епізода було відтворено</string>
@@ -374,11 +367,9 @@
<string name="opml_import_error_dir_empty">Директорія імпорту пуста</string>
<string name="select_all_label">Обрати все</string>
<string name="deselect_all_label">Убрати виділення</string>
- <string name="select_options_label">Обрати ...</string>
<string name="choose_file_from_filesystem">З локальної файлової системи</string>
<string name="choose_file_from_external_application">За допомогою додатка</string>
<string name="opml_export_label">OPML экспорт</string>
- <string name="exporting_label">Експорт ...</string>
<string name="export_error_label">Помилка експорту</string>
<string name="opml_export_success_title">OPML експорт успішний</string>
<string name="opml_export_success_sum">OPML файл записаний в:\u0020</string>
@@ -458,7 +449,6 @@
<!--Online feed view-->
<string name="subscribe_label">Підписатися</string>
<string name="subscribed_label">Підписано</string>
- <string name="downloading_label">Завантаження...</string>
<!--Content descriptions for image buttons-->
<string name="show_chapters_label">Показати глави</string>
<string name="show_shownotes_label">Показати нотатки</string>
@@ -486,7 +476,6 @@
<!--AntennaPodSP-->
<string name="sp_apps_importing_feeds_msg">Імпорт подкастів з інших програм...</string>
<string name="search_itunes_label">Пошук в iTunes</string>
- <string name="select_label"><b>Обрати ...</b></string>
<string name="all_label">Всі</string>
<string name="selected_all_label">Обрано всі епізоди</string>
<string name="none_label">Жодного</string>
@@ -499,7 +488,6 @@
<string name="selected_downloaded_label">Обрано завантажені епізоди</string>
<string name="not_downloaded_label">Незавантажені</string>
<string name="selected_not_downloaded_label">Обрано незавантажені епізоди</string>
- <string name="sort_title"><b>Сортувати за ...</b></string>
<string name="sort_title_a_z">Назва (А \u2192 Я)</string>
<string name="sort_title_z_a">Назва (Я \u2192 А)</string>
<string name="sort_date_new_old">Дата (Нові \u2192 Старі)</string>
@@ -507,4 +495,5 @@
<string name="sort_duration_short_long">Тривалість (Короткі \u2192 Довгі)</string>
<string name="sort_duration_long_short">Тривалість (Довгі \u2192 Короткі)</string>
<!--Rating dialog-->
+ <!--Audio controls-->
</resources>
diff --git a/core/src/main/res/values-zh-rCN/strings.xml b/core/src/main/res/values-zh-rCN/strings.xml
index 8347de9ee..78017b383 100644
--- a/core/src/main/res/values-zh-rCN/strings.xml
+++ b/core/src/main/res/values-zh-rCN/strings.xml
@@ -66,7 +66,6 @@
<string name="length_prefix">长度:\u0020</string>
<string name="size_prefix">大小:\u0020</string>
<string name="processing_label">处理中</string>
- <string name="loading_label">加载中...</string>
<string name="save_username_password_label">保存用户名密码</string>
<string name="close_label">关闭</string>
<string name="retry_label">重试</string>
@@ -77,7 +76,6 @@
<string name="feed_auto_download_global">全局</string>
<string name="feed_auto_download_always"> 总是</string>
<string name="feed_auto_download_never">从不</string>
- <string name="send_label">发送……</string>
<string name="episode_cleanup_never">从不</string>
<string name="episode_cleanup_queue_removal">当不在队列中</string>
<string name="episode_cleanup_after_listening">结束后</string>
@@ -99,7 +97,6 @@
<string name="mark_all_seen_label">所有可见</string>
<string name="show_info_label">查看信息</string>
<string name="remove_feed_label">删除播客</string>
- <string name="share_label">分享到...</string>
<string name="share_link_label">分享网站链接</string>
<string name="share_link_with_position_label">分享网站链接与位置</string>
<string name="share_feed_url_label">分享订阅地址</string>
@@ -168,7 +165,6 @@
<string name="download_error_io_error">IO 错误</string>
<string name="download_error_request_error">请求出错</string>
<string name="download_error_db_access">数据库访问错误</string>
- <string name="downloads_left">\u0020 下载剩余</string>
<string name="downloads_processing">正在处理下载</string>
<string name="download_notification_title">下载播客数据</string>
<string name="download_report_content">%1$d 下载成功, %2$d 失败</string>
@@ -356,11 +352,9 @@
<string name="opml_import_error_dir_empty">导入目录为空.</string>
<string name="select_all_label">全选</string>
<string name="deselect_all_label">取消所有选择</string>
- <string name="select_options_label">选择 ...</string>
<string name="choose_file_from_filesystem">来自本地文件系统</string>
<string name="choose_file_from_external_application">使用外部应用</string>
<string name="opml_export_label">OPML 导出</string>
- <string name="exporting_label">导出中...</string>
<string name="export_error_label">导出出错</string>
<string name="opml_export_success_title">OPML 导出成功.</string>
<string name="opml_export_success_sum">.opml 文件已保存到:\u0020</string>
@@ -436,7 +430,6 @@
<!--Online feed view-->
<string name="subscribe_label">订阅</string>
<string name="subscribed_label">已订阅</string>
- <string name="downloading_label">下载中...</string>
<!--Content descriptions for image buttons-->
<string name="show_chapters_label">显示章节</string>
<string name="show_shownotes_label">显示笔记</string>
@@ -464,7 +457,6 @@
<!--AntennaPodSP-->
<string name="sp_apps_importing_feeds_msg">正在从选定的应用中导入订阅...</string>
<string name="search_itunes_label">搜索 iTunes</string>
- <string name="select_label"><b>选择 ...</b></string>
<string name="all_label">全部</string>
<string name="selected_all_label">全选</string>
<string name="none_label">无</string>
@@ -477,7 +469,6 @@
<string name="selected_downloaded_label">选择已下载的曲目</string>
<string name="not_downloaded_label">未下载</string>
<string name="selected_not_downloaded_label">选择未下载的曲目</string>
- <string name="sort_title"><b>排序 ...</b></string>
<string name="sort_title_a_z">标题 (A \u2192 Z)</string>
<string name="sort_title_z_a">标题 (Z \u2192 A)</string>
<string name="sort_date_new_old">日期 (新 \u2192 旧)</string>
@@ -489,4 +480,5 @@
<string name="rating_never_label">请勿打扰</string>
<string name="rating_later_label">稍后提醒</string>
<string name="rating_now_label">好的, 就这样!</string>
+ <!--Audio controls-->
</resources>
diff --git a/core/src/main/res/values/arrays.xml b/core/src/main/res/values/arrays.xml
index 6e885c0bb..0de515292 100644
--- a/core/src/main/res/values/arrays.xml
+++ b/core/src/main/res/values/arrays.xml
@@ -76,15 +76,15 @@
</string-array>
<string-array name="playback_speed_values">
- <item>0.5</item>
- <item>0.6</item>
- <item>0.7</item>
+ <item>0.50</item>
+ <item>0.60</item>
+ <item>0.70</item>
<item>0.75</item>
- <item>0.8</item>
+ <item>0.80</item>
<item>0.85</item>
- <item>0.9</item>
+ <item>0.90</item>
<item>0.95</item>
- <item>1.0</item>
+ <item>1.00</item>
<item>1.05</item>
<item>1.10</item>
<item>1.15</item>
@@ -175,7 +175,7 @@
<item>3</item>
</string-array>
- <string-array name="episode_hide_options">
+ <string-array name="episode_filter_options">
<item>@string/hide_unplayed_episodes_label</item>
<item>@string/hide_paused_episodes_label</item>
<item>@string/hide_played_episodes_label</item>
@@ -185,7 +185,7 @@
<item>@string/hide_not_downloaded_episodes_label</item>
</string-array>
- <string-array name="episode_hide_values">
+ <string-array name="episode_filter_values">
<item>unplayed</item>
<item>paused</item>
<item>played</item>
diff --git a/core/src/main/res/values/attrs.xml b/core/src/main/res/values/attrs.xml
index 4e444c990..0eb4d581e 100644
--- a/core/src/main/res/values/attrs.xml
+++ b/core/src/main/res/values/attrs.xml
@@ -13,7 +13,6 @@
<attr name="content_discard" format="reference"/>
<attr name="content_new" format="reference"/>
<attr name="feed" format="reference"/>
- <attr name="device_access_time" format="reference"/>
<attr name="location_web_site" format="reference"/>
<attr name="navigation_accept" format="reference"/>
<attr name="navigation_cancel" format="reference"/>
@@ -37,15 +36,24 @@
<attr name="av_pause_big" format="reference"/>
<attr name="av_ff_big" format="reference"/>
<attr name="av_rew_big" format="reference"/>
+ <attr name="av_skip_big" format="reference"/>
<attr name="ic_settings" format="reference"/>
<attr name="ic_lock_open" format="reference"/>
<attr name="ic_lock_closed" format="reference"/>
<attr name="ic_filter" format="reference"/>
<attr name="progressBarTheme" format="reference"/>
+ <attr name="ic_fav" format="reference"/>
+ <attr name="ic_unfav" format="reference"/>
+ <attr name="ic_sleep" format="reference"/>
+ <attr name="ic_sleep_off" format="reference"/>
+ <attr name="ic_check_box" format="reference"/>
+ <attr name="ic_check_box_outline" format="reference"/>
+ <attr name="ic_indeterminate_check_box" format="reference"/>
+ <attr name="ic_sort" format="reference"/>
<!-- Used in itemdescription -->
<attr name="non_transparent_background" format="reference"/>
<attr name="overlay_background" format="color"/>
<attr name="nav_drawer_background" format="color"/>
-</resources> \ No newline at end of file
+</resources>
diff --git a/core/src/main/res/values/dimens.xml b/core/src/main/res/values/dimens.xml
index aa57e3051..9aafd14e3 100644
--- a/core/src/main/res/values/dimens.xml
+++ b/core/src/main/res/values/dimens.xml
@@ -33,6 +33,6 @@
<dimen name="listitem_icon_leftpadding">16dp</dimen>
<dimen name="listitem_icon_rightpadding">16dp</dimen>
- <dimen name="audioplayer_playercontrols_length">64dp</dimen>
+ <dimen name="audioplayer_playercontrols_length">48dp</dimen>
-</resources> \ No newline at end of file
+</resources>
diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml
index 74d5822ce..27900feab 100644
--- a/core/src/main/res/values/strings.xml
+++ b/core/src/main/res/values/strings.xml
@@ -150,7 +150,9 @@
<string name="added_to_queue_label">Added to Queue</string>
<string name="remove_from_queue_label">Remove from Queue</string>
<string name="add_to_favorite_label">Add to Favorites</string>
+ <string name="added_to_favorites">Added to Favorites</string>
<string name="remove_from_favorite_label">Remove from Favorites</string>
+ <string name="removed_from_favorites">Removed from Favorites</string>
<string name="visit_website_label">Visit Website</string>
<string name="support_label">Flattr this</string>
<string name="enqueue_all_new">Enqueue all</string>
@@ -185,7 +187,10 @@
<string name="download_error_io_error">IO Error</string>
<string name="download_error_request_error">Request Error</string>
<string name="download_error_db_access">Database Access Error</string>
- <string name="downloads_left">\u0020Downloads left</string>
+ <plurals name="downloads_left">
+ <item quantity="one">%d download left</item>
+ <item quantity="other">%d downloads left</item>
+ </plurals>
<string name="downloads_processing">Processing downloads</string>
<string name="download_notification_title">Downloading podcast data</string>
<string name="download_report_content">%1$d downloads succeeded, %2$d failed</string>
@@ -265,13 +270,14 @@
<!-- Variable Speed -->
<string name="download_plugin_label">Download Plugin</string>
<string name="no_playback_plugin_title">Plugin Not Installed</string>
- <string name="no_playback_plugin_or_sonic_msg">For variable speed playback to work, you have to install a third party library or enable the experimental Sonic player [Android 4.1+].\n\nTap \'Download Plugin\' to download a free plugin from the Play Store.\n\nAny problems found using this plugin are not the responsibility of AntennaPod and should be reported to the plugin owner.</string>
+ <string name="no_playback_plugin_or_sonic_msg">For variable speed playback to work, we recommend to enable the built-in Sonic mediaplayer [Android 4.1+].\n\nAlternatively, you can download the third party plugin <i>Prestissimo</i> from the Play Store.\nAny problems with Prestissimo are not the responsibility of AntennaPod and should be reported to the plugin owner.</string>
<string name="set_playback_speed_label">Playback Speeds</string>
<string name="enable_sonic">Enable Sonic</string>
<!-- Empty list labels -->
<string name="no_items_label">There are no items in this list.</string>
<string name="no_feeds_label">You haven\'t subscribed to any feeds yet.</string>
+ <string name="no_chapters_label">This episode has no chapters.</string>
<!-- Preferences -->
<string name="other_pref">Other</string>
@@ -280,7 +286,7 @@
<string name="services_label">Services</string>
<string name="flattr_label">Flattr</string>
<string name="pref_episode_cleanup_title">Episode Cleanup</string>
- <string name="pref_episode_cleanup_summary">Episodes that aren\'t in the queue and aren\'t favorites should be eligible for removal if space is needed</string>
+ <string name="pref_episode_cleanup_summary">Episodes that aren\'t in the queue and aren\'t favorites should be eligible for removal if Auto Download needs space for new episodes</string>
<string name="pref_pauseOnDisconnect_sum">Pause playback when headphones or bluetooth are disconnected</string>
<string name="pref_unpauseOnHeadsetReconnect_sum">Resume playback when the headphones are reconnected</string>
<string name="pref_unpauseOnBluetoothReconnect_sum">Resume playback when bluetooth reconnects</string>
@@ -377,7 +383,7 @@
<string name="send_email">Send e-mail</string>
<string name="experimental_pref">Experimental</string>
<string name="pref_sonic_title">Sonic media player</string>
- <string name="pref_sonic_message">Use built-in sonic media player as a replacement for Prestissimo</string>
+ <string name="pref_sonic_message">Use built-in sonic media player as a replacement for Android\'s native mediaplayer and Prestissimo</string>
<string name="pref_current_value">Current value: %1$s</string>
<!-- Auto-Flattr dialog -->
@@ -525,7 +531,13 @@
<!-- Feed information screen -->
<string name="authentication_label">Authentication</string>
<string name="authentication_descr">Change your username and password for this podcast and its episodes.</string>
-
+ <string name="auto_download_settings_label">Auto Download Settings</string>
+ <string name="episode_filters_label">Episode Filter</string>
+ <string name="episode_filters_description">List of terms used to decide if an episode should be included or excluded when auto downloading</string>
+ <string name="episode_filters_include">Include</string>
+ <string name="episode_filters_exclude">Exclude</string>
+ <string name="episode_filters_hint">Single words \n\"Multiple Words\"</string>
+ <string name="keep_updated">Keep Updated</string>
<!-- Progress information -->
<string name="progress_upgrading_database">Upgrading the database</string>
@@ -536,6 +548,7 @@
<string name="search_itunes_label">Search iTunes</string>
<string name="select_label"><b>Select&#8230;</b></string>
+ <string name="filter">Filter</string>
<string name="all_label">All</string>
<string name="selected_all_label">Selected all Episodes</string>
<string name="none_label">None</string>
@@ -563,4 +576,14 @@
<string name="rating_later_label">Remind me later</string>
<string name="rating_now_label">Sure, let\'s do this!</string>
+ <!-- Audio controls -->
+ <string name="audio_controls">Audio controls</string>
+ <string name="playback_speed">Playback Speed</string>
+ <string name="volume">Volume</string>
+ <string name="left_short">L</string>
+ <string name="right_short">R</string>
+ <string name="audio_effects">Audio Effects</string>
+ <string name="stereo_to_mono">Downmix: Stereo to mono</string>
+ <string name="sonic_only">Sonic only</string>
+
</resources>
diff --git a/core/src/main/res/values/styles.xml b/core/src/main/res/values/styles.xml
index 1f73fbba2..d3718a460 100644
--- a/core/src/main/res/values/styles.xml
+++ b/core/src/main/res/values/styles.xml
@@ -18,7 +18,6 @@
<item name="attr/av_rewind">@drawable/ic_fast_rewind_grey600_24dp</item>
<item name="attr/content_discard">@drawable/ic_delete_grey600_24dp</item>
<item name="attr/content_new">@drawable/ic_add_grey600_24dp</item>
- <item name="attr/device_access_time">@drawable/ic_timer_grey600_24dp</item>
<item name="attr/feed">@drawable/ic_feed_grey600_24dp</item>
<item name="attr/location_web_site">@drawable/ic_web_grey600_24dp</item>
<item name="attr/navigation_accept">@drawable/ic_done_grey600_24dp</item>
@@ -45,10 +44,19 @@
<item name="attr/av_pause_big">@drawable/ic_pause_grey600_36dp</item>
<item name="attr/av_ff_big">@drawable/ic_fast_forward_grey600_36dp</item>
<item name="attr/av_rew_big">@drawable/ic_fast_rewind_grey600_36dp</item>
+ <item name="attr/av_skip_big">@drawable/ic_skip_grey600_36dp</item>
+ <item name="attr/ic_fav">@drawable/ic_star_border_grey600_24dp</item>
+ <item name="attr/ic_unfav">@drawable/ic_star_grey600_24dp</item>
<item name="attr/ic_settings">@drawable/ic_settings_grey600_24dp</item>
<item name="attr/ic_lock_open">@drawable/ic_lock_open_grey600_24dp</item>
<item name="attr/ic_lock_closed">@drawable/ic_lock_closed_grey600_24dp</item>
<item name="attr/ic_filter">@drawable/ic_filter_grey600_24dp</item>
+ <item name="attr/ic_sleep">@drawable/ic_sleep_grey600_24dp</item>
+ <item name="attr/ic_sleep_off">@drawable/ic_sleep_off_grey600_24dp</item>
+ <item name="attr/ic_check_box">@drawable/ic_check_box_grey600_24dp</item>
+ <item name="attr/ic_check_box_outline">@drawable/ic_check_box_outline_blank_grey600_24dp</item>
+ <item name="attr/ic_indeterminate_check_box">@drawable/ic_indeterminate_check_box_grey600_24dp</item>
+ <item name="attr/ic_sort">@drawable/ic_sort_grey600_24dp</item>
</style>
<style name="Theme.AntennaPod.Dark" parent="Theme.AppCompat">
@@ -67,7 +75,6 @@
<item name="attr/av_rewind">@drawable/ic_fast_rewind_white_24dp</item>
<item name="attr/content_discard">@drawable/ic_delete_white_24dp</item>
<item name="attr/content_new">@drawable/ic_add_white_24dp</item>
- <item name="attr/device_access_time">@drawable/ic_timer_white_24dp</item>
<item name="attr/feed">@drawable/ic_feed_white_24dp</item>
<item name="attr/location_web_site">@drawable/ic_web_white_24dp</item>
<item name="attr/navigation_accept">@drawable/ic_done_white_24dp</item>
@@ -94,10 +101,19 @@
<item name="attr/av_pause_big">@drawable/ic_pause_white_36dp</item>
<item name="attr/av_ff_big">@drawable/ic_fast_forward_white_36dp</item>
<item name="attr/av_rew_big">@drawable/ic_fast_rewind_white_36dp</item>
+ <item name="attr/av_skip_big">@drawable/ic_skip_white_36dp</item>
+ <item name="attr/ic_fav">@drawable/ic_star_border_white_24dp</item>
+ <item name="attr/ic_unfav">@drawable/ic_star_white_24dp</item>
<item name="attr/ic_settings">@drawable/ic_settings_white_24dp</item>
<item name="attr/ic_lock_open">@drawable/ic_lock_open_white_24dp</item>
<item name="attr/ic_lock_closed">@drawable/ic_lock_closed_white_24dp</item>
<item name="attr/ic_filter">@drawable/ic_filter_white_24dp</item>
+ <item name="attr/ic_sleep">@drawable/ic_sleep_white_24dp</item>
+ <item name="attr/ic_sleep_off">@drawable/ic_sleep_off_white_24dp</item>
+ <item name="attr/ic_check_box">@drawable/ic_check_box_white_24dp</item>
+ <item name="attr/ic_check_box_outline">@drawable/ic_check_box_outline_blank_white_24dp</item>
+ <item name="attr/ic_indeterminate_check_box">@drawable/ic_indeterminate_check_box_white_24dp</item>
+ <item name="attr/ic_sort">@drawable/ic_sort_white_24dp</item>
</style>
<style name="Theme.AntennaPod.Light.NoTitle" parent="Theme.AppCompat.Light.NoActionBar">
@@ -118,7 +134,6 @@
<item name="attr/av_rewind">@drawable/ic_fast_rewind_grey600_24dp</item>
<item name="attr/content_discard">@drawable/ic_delete_grey600_24dp</item>
<item name="attr/content_new">@drawable/ic_add_grey600_24dp</item>
- <item name="attr/device_access_time">@drawable/ic_timer_grey600_24dp</item>
<item name="attr/feed">@drawable/ic_feed_grey600_24dp</item>
<item name="attr/location_web_site">@drawable/ic_web_grey600_24dp</item>
<item name="attr/navigation_accept">@drawable/ic_done_grey600_24dp</item>
@@ -145,10 +160,19 @@
<item name="attr/av_pause_big">@drawable/ic_pause_grey600_36dp</item>
<item name="attr/av_ff_big">@drawable/ic_fast_forward_grey600_36dp</item>
<item name="attr/av_rew_big">@drawable/ic_fast_rewind_grey600_36dp</item>
+ <item name="attr/av_skip_big">@drawable/ic_skip_grey600_36dp</item>
+ <item name="attr/ic_fav">@drawable/ic_star_border_grey600_24dp</item>
+ <item name="attr/ic_unfav">@drawable/ic_star_grey600_24dp</item>
<item name="attr/ic_settings">@drawable/ic_settings_grey600_24dp</item>
<item name="attr/ic_lock_open">@drawable/ic_lock_open_grey600_24dp</item>
<item name="attr/ic_lock_closed">@drawable/ic_lock_closed_grey600_24dp</item>
<item name="attr/ic_filter">@drawable/ic_filter_grey600_24dp</item>
+ <item name="attr/ic_sleep">@drawable/ic_sleep_grey600_24dp</item>
+ <item name="attr/ic_sleep_off">@drawable/ic_sleep_off_grey600_24dp</item>
+ <item name="attr/ic_check_box">@drawable/ic_check_box_grey600_24dp</item>
+ <item name="attr/ic_check_box_outline">@drawable/ic_check_box_outline_blank_grey600_24dp</item>
+ <item name="attr/ic_indeterminate_check_box">@drawable/ic_indeterminate_check_box_grey600_24dp</item>
+ <item name="attr/ic_sort">@drawable/ic_sort_grey600_24dp</item>
</style>
<style name="Theme.AntennaPod.Dark.NoTitle" parent="Theme.AppCompat.NoActionBar">
@@ -168,7 +192,6 @@
<item name="attr/av_rewind">@drawable/ic_fast_rewind_white_24dp</item>
<item name="attr/content_discard">@drawable/ic_delete_white_24dp</item>
<item name="attr/content_new">@drawable/ic_add_white_24dp</item>
- <item name="attr/device_access_time">@drawable/ic_timer_white_24dp</item>
<item name="attr/feed">@drawable/ic_feed_white_24dp</item>
<item name="attr/location_web_site">@drawable/ic_web_white_24dp</item>
<item name="attr/navigation_accept">@drawable/ic_done_white_24dp</item>
@@ -195,10 +218,19 @@
<item name="attr/av_pause_big">@drawable/ic_pause_white_36dp</item>
<item name="attr/av_ff_big">@drawable/ic_fast_forward_white_36dp</item>
<item name="attr/av_rew_big">@drawable/ic_fast_rewind_white_36dp</item>
+ <item name="attr/av_skip_big">@drawable/ic_skip_white_36dp</item>
+ <item name="attr/ic_fav">@drawable/ic_star_border_white_24dp</item>
+ <item name="attr/ic_unfav">@drawable/ic_star_white_24dp</item>
<item name="attr/ic_settings">@drawable/ic_settings_white_24dp</item>
<item name="attr/ic_lock_open">@drawable/ic_lock_open_white_24dp</item>
<item name="attr/ic_lock_closed">@drawable/ic_lock_closed_white_24dp</item>
<item name="attr/ic_filter">@drawable/ic_filter_white_24dp</item>
+ <item name="attr/ic_sleep">@drawable/ic_sleep_white_24dp</item>
+ <item name="attr/ic_sleep_off">@drawable/ic_sleep_off_white_24dp</item>
+ <item name="attr/ic_check_box">@drawable/ic_check_box_white_24dp</item>
+ <item name="attr/ic_check_box_outline">@drawable/ic_check_box_outline_blank_white_24dp</item>
+ <item name="attr/ic_indeterminate_check_box">@drawable/ic_indeterminate_check_box_white_24dp</item>
+ <item name="attr/ic_sort">@drawable/ic_sort_white_24dp</item>
</style>
<style name="Theme.AntennaPod.VideoPlayer" parent="@style/Theme.AntennaPod.Dark">
@@ -217,6 +249,12 @@
<item name="android:ellipsize">end</item>
</style>
+ <style name="AntennaPod.TextView.ListItemPrimaryTitle2" parent="@android:style/TextAppearance.Small">
+ <item name="android:textSize">16sp</item>
+ <item name="android:textColor">?android:attr/textColorPrimary</item>
+ <item name="android:ellipsize">end</item>
+ </style>
+
<style name="AntennaPod.TextView.ListItemSecondaryTitle" parent="@android:style/TextAppearance.Small">
<item name="android:textSize">14sp</item>
<item name="android:textColor">?android:attr/textColorSecondary</item>