From 26071dc3cfe6184ea10ee49429a3e499e93e29a0 Mon Sep 17 00:00:00 2001
From: ByteHamster
Date: Thu, 29 Oct 2020 20:10:05 +0100
Subject: Make notification channels consistent between app settings and system
settings
---
app/src/main/res/xml/preferences_notifications.xml | 41 +++++++++------
.../download/DownloadServiceNotification.java | 2 +-
.../core/util/gui/NotificationUtils.java | 61 +++++++++++++++-------
core/src/main/res/values/strings.xml | 16 +++---
4 files changed, 73 insertions(+), 47 deletions(-)
diff --git a/app/src/main/res/xml/preferences_notifications.xml b/app/src/main/res/xml/preferences_notifications.xml
index 3aa907ca8..237ea5c99 100644
--- a/app/src/main/res/xml/preferences_notifications.xml
+++ b/app/src/main/res/xml/preferences_notifications.xml
@@ -2,21 +2,28 @@
-
-
-
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadServiceNotification.java b/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadServiceNotification.java
index 975bc3cb3..2d482c689 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadServiceNotification.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadServiceNotification.java
@@ -148,7 +148,7 @@ public class DownloadServiceNotification {
id = R.id.notification_auto_download_report;
content = createAutoDownloadNotificationContent(reportQueue);
} else {
- channelId = NotificationUtils.CHANNEL_ID_ERROR;
+ channelId = NotificationUtils.CHANNEL_ID_DOWNLOAD_ERROR;
titleId = R.string.download_report_title;
iconId = R.drawable.ic_notification_sync_error;
intent = ClientConfig.downloadServiceCallbacks.getReportNotificationContentIntent(context);
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/gui/NotificationUtils.java b/core/src/main/java/de/danoeh/antennapod/core/util/gui/NotificationUtils.java
index ddbe68938..47975b013 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/util/gui/NotificationUtils.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/util/gui/NotificationUtils.java
@@ -2,6 +2,7 @@ package de.danoeh.antennapod.core.util.gui;
import android.app.NotificationChannel;
+import android.app.NotificationChannelGroup;
import android.app.NotificationManager;
import android.content.Context;
import android.os.Build;
@@ -13,10 +14,13 @@ public class NotificationUtils {
public static final String CHANNEL_ID_USER_ACTION = "user_action";
public static final String CHANNEL_ID_DOWNLOADING = "downloading";
public static final String CHANNEL_ID_PLAYING = "playing";
- public static final String CHANNEL_ID_ERROR = "error";
+ public static final String CHANNEL_ID_DOWNLOAD_ERROR = "error";
public static final String CHANNEL_ID_SYNC_ERROR = "sync_error";
public static final String CHANNEL_ID_AUTO_DOWNLOAD = "auto_download";
+ public static final String GROUP_ID_ERRORS = "group_errors";
+ public static final String GROUP_ID_NEWS = "group_news";
+
public static void createChannels(Context context) {
if (android.os.Build.VERSION.SDK_INT < 26) {
return;
@@ -24,6 +28,9 @@ public class NotificationUtils {
NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
if (mNotificationManager != null) {
+ mNotificationManager.createNotificationChannelGroup(createGroupErrors(context));
+ mNotificationManager.createNotificationChannelGroup(createGroupNews(context));
+
mNotificationManager.createNotificationChannel(createChannelUserAction(context));
mNotificationManager.createNotificationChannel(createChannelDownloading(context));
mNotificationManager.createNotificationChannel(createChannelPlaying(context));
@@ -35,36 +42,38 @@ public class NotificationUtils {
@RequiresApi(api = Build.VERSION_CODES.O)
private static NotificationChannel createChannelUserAction(Context c) {
- NotificationChannel mChannel = new NotificationChannel(CHANNEL_ID_USER_ACTION,
+ NotificationChannel notificationChannel = new NotificationChannel(CHANNEL_ID_USER_ACTION,
c.getString(R.string.notification_channel_user_action), NotificationManager.IMPORTANCE_HIGH);
- mChannel.setDescription(c.getString(R.string.notification_channel_user_action_description));
- return mChannel;
+ notificationChannel.setDescription(c.getString(R.string.notification_channel_user_action_description));
+ notificationChannel.setGroup(GROUP_ID_ERRORS);
+ return notificationChannel;
}
@RequiresApi(api = Build.VERSION_CODES.O)
private static NotificationChannel createChannelDownloading(Context c) {
- NotificationChannel mChannel = new NotificationChannel(CHANNEL_ID_DOWNLOADING,
+ NotificationChannel notificationChannel = new NotificationChannel(CHANNEL_ID_DOWNLOADING,
c.getString(R.string.notification_channel_downloading), NotificationManager.IMPORTANCE_LOW);
- mChannel.setDescription(c.getString(R.string.notification_channel_downloading_description));
- mChannel.setShowBadge(false);
- return mChannel;
+ notificationChannel.setDescription(c.getString(R.string.notification_channel_downloading_description));
+ notificationChannel.setShowBadge(false);
+ return notificationChannel;
}
@RequiresApi(api = Build.VERSION_CODES.O)
private static NotificationChannel createChannelPlaying(Context c) {
- NotificationChannel mChannel = new NotificationChannel(CHANNEL_ID_PLAYING,
+ NotificationChannel notificationChannel = new NotificationChannel(CHANNEL_ID_PLAYING,
c.getString(R.string.notification_channel_playing), NotificationManager.IMPORTANCE_LOW);
- mChannel.setDescription(c.getString(R.string.notification_channel_playing_description));
- mChannel.setShowBadge(false);
- return mChannel;
+ notificationChannel.setDescription(c.getString(R.string.notification_channel_playing_description));
+ notificationChannel.setShowBadge(false);
+ return notificationChannel;
}
@RequiresApi(api = Build.VERSION_CODES.O)
private static NotificationChannel createChannelError(Context c) {
- NotificationChannel mChannel = new NotificationChannel(CHANNEL_ID_ERROR,
- c.getString(R.string.notification_channel_error), NotificationManager.IMPORTANCE_HIGH);
- mChannel.setDescription(c.getString(R.string.notification_channel_error_description));
- return mChannel;
+ NotificationChannel notificationChannel = new NotificationChannel(CHANNEL_ID_DOWNLOAD_ERROR,
+ c.getString(R.string.notification_channel_download_error), NotificationManager.IMPORTANCE_HIGH);
+ notificationChannel.setDescription(c.getString(R.string.notification_channel_download_error_description));
+ notificationChannel.setGroup(GROUP_ID_ERRORS);
+ return notificationChannel;
}
@RequiresApi(api = Build.VERSION_CODES.O)
@@ -72,14 +81,28 @@ public class NotificationUtils {
NotificationChannel notificationChannel = new NotificationChannel(CHANNEL_ID_SYNC_ERROR,
c.getString(R.string.notification_channel_sync_error), NotificationManager.IMPORTANCE_HIGH);
notificationChannel.setDescription(c.getString(R.string.notification_channel_sync_error_description));
+ notificationChannel.setGroup(GROUP_ID_ERRORS);
return notificationChannel;
}
@RequiresApi(api = Build.VERSION_CODES.O)
private static NotificationChannel createChannelAutoDownload(Context c) {
- NotificationChannel mChannel = new NotificationChannel(CHANNEL_ID_AUTO_DOWNLOAD,
+ NotificationChannel notificationChannel = new NotificationChannel(CHANNEL_ID_AUTO_DOWNLOAD,
c.getString(R.string.notification_channel_auto_download), NotificationManager.IMPORTANCE_DEFAULT);
- mChannel.setDescription(c.getString(R.string.notification_channel_episode_auto_download));
- return mChannel;
+ notificationChannel.setDescription(c.getString(R.string.notification_channel_episode_auto_download));
+ notificationChannel.setGroup(GROUP_ID_NEWS);
+ return notificationChannel;
+ }
+
+ @RequiresApi(api = Build.VERSION_CODES.O)
+ private static NotificationChannelGroup createGroupErrors(Context c) {
+ return new NotificationChannelGroup(GROUP_ID_ERRORS,
+ c.getString(R.string.notification_group_errors));
+ }
+
+ @RequiresApi(api = Build.VERSION_CODES.O)
+ private static NotificationChannelGroup createGroupNews(Context c) {
+ return new NotificationChannelGroup(GROUP_ID_NEWS,
+ c.getString(R.string.notification_group_news));
}
}
diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml
index d760052d4..9f536c037 100644
--- a/core/src/main/res/values/strings.xml
+++ b/core/src/main/res/values/strings.xml
@@ -450,8 +450,6 @@
Force full synchronizationSync all subscriptions and episode states with gpodder.net.%1$s with device %2$s]]>
- Synchronization failed
- This setting does not apply to authentication errors.Customize the speeds available for variable speed playbackThe speed to use when starting audio playback for episodes in this podcastAuto Skip
@@ -478,10 +476,6 @@
You can only select a maximum of %1$d items.Set Lockscreen BackgroundSet the lockscreen background to the current episode\'s image. As a side effect, this will also show the image in third party apps.
- Download failed
- If downloads fail, generate a report that shows the details of the failure.
- Automatic download completed
- Show a notification for automatically downloaded episodes.Android versions before 4.1 do not support expanded notifications.Enqueue LocationAdd episodes to: %1$s
@@ -854,17 +848,19 @@
Error playing media. Skipping…
+ Errors
+ NewsAction requiredShown if your action is required, for example if you need to enter a password.DownloadingShown while currently downloading.Currently playingAllows to control playback. This is the main notification you see while playing a podcast.
- Errors
- Shown if something went wrong, for example if download or feed update fails.
- Synchronization Errors
+ Download failed
+ Shown when download or feed update fails.
+ Synchronization failedShown when gpodder synchronization fails.
- Auto Downloads
+ Automatic download completedShown when episodes have been automatically downloaded.
--
cgit v1.2.3
From 151cccce666d7eca4026bd90c64243c0afa92380 Mon Sep 17 00:00:00 2001
From: ByteHamster
Date: Thu, 29 Oct 2020 20:21:43 +0100
Subject: Use system's notification settings on supported devices
---
.../fragment/preferences/MainPreferencesFragment.java | 13 +++++++++++--
.../danoeh/antennapod/core/preferences/UserPreferences.java | 9 +++++++++
.../java/de/danoeh/antennapod/core/sync/SyncService.java | 6 +++++-
.../danoeh/antennapod/core/util/gui/NotificationUtils.java | 2 +-
4 files changed, 26 insertions(+), 4 deletions(-)
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/MainPreferencesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/MainPreferencesFragment.java
index 99fd12021..7b533cf4e 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/MainPreferencesFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/MainPreferencesFragment.java
@@ -1,7 +1,9 @@
package de.danoeh.antennapod.fragment.preferences;
import android.content.Intent;
+import android.os.Build;
import android.os.Bundle;
+import android.provider.Settings;
import androidx.appcompat.app.AppCompatActivity;
import androidx.preference.PreferenceFragmentCompat;
import com.bytehamster.lib.preferencesearch.SearchConfiguration;
@@ -10,6 +12,7 @@ import de.danoeh.antennapod.R;
import de.danoeh.antennapod.activity.BugReportActivity;
import de.danoeh.antennapod.activity.PreferenceActivity;
import de.danoeh.antennapod.core.util.IntentUtils;
+import de.danoeh.antennapod.core.util.gui.NotificationUtils;
import de.danoeh.antennapod.fragment.preferences.about.AboutFragment;
public class MainPreferencesFragment extends PreferenceFragmentCompat {
@@ -70,10 +73,16 @@ public class MainPreferencesFragment extends PreferenceFragmentCompat {
return true;
});
findPreference(PREF_NOTIFICATION).setOnPreferenceClickListener(preference -> {
- ((PreferenceActivity) getActivity()).openScreen(R.xml.preferences_notifications);
+ if (Build.VERSION.SDK_INT >= 26) {
+ Intent intent = new Intent();
+ intent.setAction(Settings.ACTION_APP_NOTIFICATION_SETTINGS);
+ intent.putExtra(Settings.EXTRA_APP_PACKAGE, getActivity().getPackageName());
+ startActivity(intent);
+ } else {
+ ((PreferenceActivity) getActivity()).openScreen(R.xml.preferences_notifications);
+ }
return true;
});
-
findPreference(PREF_ABOUT).setOnPreferenceClickListener(
preference -> {
getParentFragmentManager().beginTransaction().replace(R.id.content, new AboutFragment())
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 56dd95fe6..5ded1d447 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
@@ -301,10 +301,16 @@ public class UserPreferences {
* @return {@code true} if download reports are shown, {@code false} otherwise
*/
public static boolean showDownloadReport() {
+ if (Build.VERSION.SDK_INT >= 26) {
+ return true; // System handles notification preferences
+ }
return prefs.getBoolean(PREF_SHOW_DOWNLOAD_REPORT, true);
}
public static boolean showAutoDownloadReport() {
+ if (Build.VERSION.SDK_INT >= 26) {
+ return true; // System handles notification preferences
+ }
return prefs.getBoolean(PREF_SHOW_AUTO_DOWNLOAD_REPORT, false);
}
@@ -728,6 +734,9 @@ public class UserPreferences {
}
public static boolean gpodnetNotificationsEnabled() {
+ if (Build.VERSION.SDK_INT >= 26) {
+ return true; // System handles notification preferences
+ }
return prefs.getBoolean(PREF_GPODNET_NOTIFICATIONS, true);
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/sync/SyncService.java b/core/src/main/java/de/danoeh/antennapod/core/sync/SyncService.java
index 1f5d9b75f..ffe90eee2 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/sync/SyncService.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/sync/SyncService.java
@@ -485,7 +485,11 @@ public class SyncService extends Worker {
}
private void updateErrorNotification(SyncServiceException exception) {
- Log.d(TAG, "Posting error notification");
+ if (!UserPreferences.gpodnetNotificationsEnabled()) {
+ Log.d(TAG, "Skipping sync error notification because of user setting");
+ return;
+ }
+ Log.d(TAG, "Posting sync error notification");
final String description = getApplicationContext().getString(R.string.gpodnetsync_error_descr)
+ exception.getMessage();
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/gui/NotificationUtils.java b/core/src/main/java/de/danoeh/antennapod/core/util/gui/NotificationUtils.java
index 47975b013..168350b34 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/util/gui/NotificationUtils.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/util/gui/NotificationUtils.java
@@ -22,7 +22,7 @@ public class NotificationUtils {
public static final String GROUP_ID_NEWS = "group_news";
public static void createChannels(Context context) {
- if (android.os.Build.VERSION.SDK_INT < 26) {
+ if (Build.VERSION.SDK_INT < 26) {
return;
}
NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
--
cgit v1.2.3
From 7ac4f1856144d37916eadce03af5957c6d5a2a4f Mon Sep 17 00:00:00 2001
From: ByteHamster
Date: Thu, 29 Oct 2020 20:39:50 +0100
Subject: Migrate notification channel settings
---
.../core/preferences/UserPreferences.java | 21 +++++++++++++++++++++
.../antennapod/core/util/gui/NotificationUtils.java | 18 +++++++++++++++++-
2 files changed, 38 insertions(+), 1 deletion(-)
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 5ded1d447..ed9c519a6 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
@@ -307,6 +307,13 @@ public class UserPreferences {
return prefs.getBoolean(PREF_SHOW_DOWNLOAD_REPORT, true);
}
+ /**
+ * Used for migration of the preference to system notification channels.
+ */
+ public static boolean getShowDownloadReportRaw() {
+ return prefs.getBoolean(PREF_SHOW_DOWNLOAD_REPORT, true);
+ }
+
public static boolean showAutoDownloadReport() {
if (Build.VERSION.SDK_INT >= 26) {
return true; // System handles notification preferences
@@ -314,6 +321,13 @@ public class UserPreferences {
return prefs.getBoolean(PREF_SHOW_AUTO_DOWNLOAD_REPORT, false);
}
+ /**
+ * Used for migration of the preference to system notification channels.
+ */
+ public static boolean getShowAutoDownloadReportRaw() {
+ return prefs.getBoolean(PREF_SHOW_AUTO_DOWNLOAD_REPORT, false);
+ }
+
public static boolean enqueueDownloadedEpisodes() {
return prefs.getBoolean(PREF_ENQUEUE_DOWNLOADED, true);
}
@@ -740,6 +754,13 @@ public class UserPreferences {
return prefs.getBoolean(PREF_GPODNET_NOTIFICATIONS, true);
}
+ /**
+ * Used for migration of the preference to system notification channels.
+ */
+ public static boolean getGpodnetNotificationsEnabledRaw() {
+ return prefs.getBoolean(PREF_GPODNET_NOTIFICATIONS, true);
+ }
+
public static void setGpodnetNotificationsEnabled() {
prefs.edit()
.putBoolean(PREF_GPODNET_NOTIFICATIONS, true)
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/gui/NotificationUtils.java b/core/src/main/java/de/danoeh/antennapod/core/util/gui/NotificationUtils.java
index 168350b34..3101eac34 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/util/gui/NotificationUtils.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/util/gui/NotificationUtils.java
@@ -9,6 +9,7 @@ import android.os.Build;
import androidx.annotation.RequiresApi;
import de.danoeh.antennapod.core.R;
+import de.danoeh.antennapod.core.preferences.UserPreferences;
public class NotificationUtils {
public static final String CHANNEL_ID_USER_ACTION = "user_action";
@@ -73,6 +74,11 @@ public class NotificationUtils {
c.getString(R.string.notification_channel_download_error), NotificationManager.IMPORTANCE_HIGH);
notificationChannel.setDescription(c.getString(R.string.notification_channel_download_error_description));
notificationChannel.setGroup(GROUP_ID_ERRORS);
+
+ if (!UserPreferences.getShowDownloadReportRaw()) {
+ // Migration from app managed setting: disable notification
+ notificationChannel.setImportance(NotificationManager.IMPORTANCE_NONE);
+ }
return notificationChannel;
}
@@ -82,15 +88,25 @@ public class NotificationUtils {
c.getString(R.string.notification_channel_sync_error), NotificationManager.IMPORTANCE_HIGH);
notificationChannel.setDescription(c.getString(R.string.notification_channel_sync_error_description));
notificationChannel.setGroup(GROUP_ID_ERRORS);
+
+ if (!UserPreferences.getGpodnetNotificationsEnabledRaw()) {
+ // Migration from app managed setting: disable notification
+ notificationChannel.setImportance(NotificationManager.IMPORTANCE_NONE);
+ }
return notificationChannel;
}
@RequiresApi(api = Build.VERSION_CODES.O)
private static NotificationChannel createChannelAutoDownload(Context c) {
NotificationChannel notificationChannel = new NotificationChannel(CHANNEL_ID_AUTO_DOWNLOAD,
- c.getString(R.string.notification_channel_auto_download), NotificationManager.IMPORTANCE_DEFAULT);
+ c.getString(R.string.notification_channel_auto_download), NotificationManager.IMPORTANCE_NONE);
notificationChannel.setDescription(c.getString(R.string.notification_channel_episode_auto_download));
notificationChannel.setGroup(GROUP_ID_NEWS);
+
+ if (UserPreferences.getShowAutoDownloadReportRaw()) {
+ // Migration from app managed setting: enable notification
+ notificationChannel.setImportance(NotificationManager.IMPORTANCE_DEFAULT);
+ }
return notificationChannel;
}
--
cgit v1.2.3
From ec9d631d8d4df732d6288431960bca2bdd2fa4a9 Mon Sep 17 00:00:00 2001
From: ByteHamster
Date: Mon, 2 Nov 2020 17:10:20 +0100
Subject: Fixed crash when playing from preferences
---
.../de/danoeh/antennapod/core/feed/util/PlaybackSpeedUtils.java | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/core/src/main/java/de/danoeh/antennapod/core/feed/util/PlaybackSpeedUtils.java b/core/src/main/java/de/danoeh/antennapod/core/feed/util/PlaybackSpeedUtils.java
index 0d5ecbb71..d6740994d 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/feed/util/PlaybackSpeedUtils.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/feed/util/PlaybackSpeedUtils.java
@@ -1,5 +1,6 @@
package de.danoeh.antennapod.core.feed.util;
+import android.util.Log;
import de.danoeh.antennapod.core.feed.Feed;
import de.danoeh.antennapod.core.feed.FeedItem;
import de.danoeh.antennapod.core.feed.FeedMedia;
@@ -14,6 +15,7 @@ import static de.danoeh.antennapod.core.feed.FeedPreferences.SPEED_USE_GLOBAL;
* Utility class to use the appropriate playback speed based on {@link PlaybackPreferences}
*/
public final class PlaybackSpeedUtils {
+ private static final String TAG = "PlaybackSpeedUtils";
private PlaybackSpeedUtils() {
}
@@ -33,8 +35,10 @@ public final class PlaybackSpeedUtils {
FeedItem item = ((FeedMedia) media).getItem();
if (item != null) {
Feed feed = item.getFeed();
- if (feed != null) {
+ if (feed != null && feed.getPreferences() != null) {
playbackSpeed = feed.getPreferences().getFeedPlaybackSpeed();
+ } else {
+ Log.d(TAG, "Can not get feed specific playback speed: " + feed);
}
}
}
--
cgit v1.2.3
From a3a5a936a2c1cc9d9a7b6580be15ed2c19e912f7 Mon Sep 17 00:00:00 2001
From: Anderson Mesquita
Date: Mon, 2 Nov 2020 18:01:32 -0500
Subject: Remove IF NOT EXISTS from index create statements
`onCreate()` should only ever be called once, where the tables and
indices are created. Any other changes need to happen via `onUpgrade()`,
so we can safely remove `IF NOT EXISTS`.
When importing any database into the app (e.g. if it gets corrupted and
is recreated with `sqlite3 old-database.db ".dump"`), it first needs to
be set back to the correct version. This can be done in sqlite with:
$ sqlite3 old-database.db "PRAGMA user_version"
$ sqlite3 new-database.db "PRAGMA user_version = "
For more context, see this PR:
https://github.com/AntennaPod/AntennaPod/pull/4585
---
.../src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
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 935b06cd6..539bedd9f 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
@@ -195,11 +195,11 @@ public class PodDBAdapter {
+ TABLE_NAME_FEED_ITEMS + "_" + KEY_FEED + " ON " + TABLE_NAME_FEED_ITEMS + " ("
+ KEY_FEED + ")";
- static final String CREATE_INDEX_FEEDITEMS_PUBDATE = "CREATE INDEX IF NOT EXISTS "
+ static final String CREATE_INDEX_FEEDITEMS_PUBDATE = "CREATE INDEX "
+ TABLE_NAME_FEED_ITEMS + "_" + KEY_PUBDATE + " ON " + TABLE_NAME_FEED_ITEMS + " ("
+ KEY_PUBDATE + ")";
- static final String CREATE_INDEX_FEEDITEMS_READ = "CREATE INDEX IF NOT EXISTS "
+ static final String CREATE_INDEX_FEEDITEMS_READ = "CREATE INDEX "
+ TABLE_NAME_FEED_ITEMS + "_" + KEY_READ + " ON " + TABLE_NAME_FEED_ITEMS + " ("
+ KEY_READ + ")";
--
cgit v1.2.3
From ed2348570c36b77361a3d064a6676fa923002677 Mon Sep 17 00:00:00 2001
From: ByteHamster
Date: Tue, 3 Nov 2020 23:55:12 +0100
Subject: Use radio buttons for column number on subscriptions screen
---
.../antennapod/fragment/SubscriptionFragment.java | 17 +++++++++---
app/src/main/res/menu/subscriptions.xml | 31 +++++++++++-----------
2 files changed, 28 insertions(+), 20 deletions(-)
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/SubscriptionFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/SubscriptionFragment.java
index 7d3312e8e..3b4246e3a 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/SubscriptionFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/SubscriptionFragment.java
@@ -27,6 +27,7 @@ import android.widget.TextView;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.joanzapata.iconify.Iconify;
+import java.util.Locale;
import java.util.concurrent.Callable;
import de.danoeh.antennapod.R;
@@ -69,6 +70,12 @@ public class SubscriptionFragment extends Fragment implements Toolbar.OnMenuItem
public static final String TAG = "SubscriptionFragment";
private static final String PREFS = "SubscriptionFragment";
private static final String PREF_NUM_COLUMNS = "columns";
+ private static final int MIN_NUM_COLUMNS = 2;
+ private static final int[] COLUMN_CHECKBOX_IDS = {
+ R.id.subscription_num_columns_2,
+ R.id.subscription_num_columns_3,
+ R.id.subscription_num_columns_4,
+ R.id.subscription_num_columns_5};
private GridView subscriptionGridLayout;
private DBReader.NavDrawerData navDrawerData;
@@ -101,6 +108,11 @@ public class SubscriptionFragment extends Fragment implements Toolbar.OnMenuItem
toolbar.setOnMenuItemClickListener(this);
((MainActivity) getActivity()).setupToolbarToggle(toolbar);
toolbar.inflateMenu(R.menu.subscriptions);
+ for (int i = 0; i < COLUMN_CHECKBOX_IDS.length; i++) {
+ // Do this in Java to localize numbers
+ toolbar.getMenu().findItem(COLUMN_CHECKBOX_IDS[i])
+ .setTitle(String.format(Locale.getDefault(), "%d", i + MIN_NUM_COLUMNS));
+ }
refreshToolbarState();
subscriptionGridLayout = root.findViewById(R.id.subscriptions_grid);
@@ -123,10 +135,7 @@ public class SubscriptionFragment extends Fragment implements Toolbar.OnMenuItem
private void refreshToolbarState() {
int columns = prefs.getInt(PREF_NUM_COLUMNS, getDefaultNumOfColumns());
- toolbar.getMenu().findItem(R.id.subscription_num_columns_2).setChecked(columns == 2);
- toolbar.getMenu().findItem(R.id.subscription_num_columns_3).setChecked(columns == 3);
- toolbar.getMenu().findItem(R.id.subscription_num_columns_4).setChecked(columns == 4);
- toolbar.getMenu().findItem(R.id.subscription_num_columns_5).setChecked(columns == 5);
+ toolbar.getMenu().findItem(COLUMN_CHECKBOX_IDS[columns - MIN_NUM_COLUMNS]).setChecked(true);
isUpdatingFeeds = MenuItemUtils.updateRefreshMenuItem(toolbar.getMenu(),
R.id.refresh_item, updateRefreshMenuItemChecker);
diff --git a/app/src/main/res/menu/subscriptions.xml b/app/src/main/res/menu/subscriptions.xml
index b7dc95299..99acc4bb6 100644
--- a/app/src/main/res/menu/subscriptions.xml
+++ b/app/src/main/res/menu/subscriptions.xml
@@ -23,22 +23,21 @@
android:title="@string/subscription_num_columns"
custom:showAsAction="never">
--
cgit v1.2.3
From ad56eed255789bb3ea93ea6523276befab1233a2 Mon Sep 17 00:00:00 2001
From: ByteHamster
Date: Wed, 4 Nov 2020 00:20:56 +0100
Subject: Fixed crash when searching
Search view was set up (and started searching) before other views were
assigned.
---
.../main/java/de/danoeh/antennapod/fragment/OnlineSearchFragment.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/OnlineSearchFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/OnlineSearchFragment.java
index ba817650b..992b6930c 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/OnlineSearchFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/OnlineSearchFragment.java
@@ -90,7 +90,6 @@ public class OnlineSearchFragment extends Fragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
View root = inflater.inflate(R.layout.fragment_itunes_search, container, false);
- setupToolbar(root.findViewById(R.id.toolbar));
root.findViewById(R.id.spinner_country).setVisibility(INVISIBLE);
gridView = root.findViewById(R.id.gridView);
adapter = new ItunesAdapter(getActivity(), new ArrayList<>());
@@ -110,6 +109,7 @@ public class OnlineSearchFragment extends Fragment {
txtvEmpty = root.findViewById(android.R.id.empty);
TextView txtvPoweredBy = root.findViewById(R.id.search_powered_by);
txtvPoweredBy.setText(getString(R.string.search_powered_by, searchProvider.getName()));
+ setupToolbar(root.findViewById(R.id.toolbar));
return root;
}
--
cgit v1.2.3
From adcab6f9832b4a77b888e6e00c3ccf8efd60f64a Mon Sep 17 00:00:00 2001
From: asdoi <36813904+asdoi@users.noreply.github.com>
Date: Wed, 4 Nov 2020 10:18:44 +0100
Subject: Show "include in auto downloads" checkbox on adding podcast (#4627)
---
.../activity/OnlineFeedViewActivity.java | 11 ++++
.../main/res/layout/onlinefeedview_activity.xml | 72 ++++++++++++++--------
2 files changed, 57 insertions(+), 26 deletions(-)
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java
index 3f58e4a92..2fd537159 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java
@@ -13,6 +13,7 @@ import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
+import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.UiThread;
@@ -509,11 +510,21 @@ public class OnlineFeedViewActivity extends AppCompatActivity {
viewBinding.subscribeButton.setEnabled(true);
viewBinding.subscribeButton.setText(R.string.open_podcast);
if (didPressSubscribe) {
+ didPressSubscribe = false;
+ if (UserPreferences.isEnableAutodownload()) {
+ Feed feed1 = DBReader.getFeed(getFeedId(feed));
+ FeedPreferences feedPreferences = feed1.getPreferences();
+ feedPreferences.setAutoDownload(viewBinding.autoDownloadCheckBox.isChecked());
+ feed1.savePreferences();
+ }
openFeed();
}
} else {
viewBinding.subscribeButton.setEnabled(true);
viewBinding.subscribeButton.setText(R.string.subscribe_label);
+ if (UserPreferences.isEnableAutodownload()) {
+ viewBinding.autoDownloadCheckBox.setVisibility(View.VISIBLE);
+ }
}
}
}
diff --git a/app/src/main/res/layout/onlinefeedview_activity.xml b/app/src/main/res/layout/onlinefeedview_activity.xml
index 88ffbb8b6..909d676f0 100644
--- a/app/src/main/res/layout/onlinefeedview_activity.xml
+++ b/app/src/main/res/layout/onlinefeedview_activity.xml
@@ -105,35 +105,55 @@
tools:text="Podcast author"/>
-
-
-
-
-
+ android:orientation="vertical">
+
+
+
+
+
+
+
+
+
+
Date: Wed, 4 Nov 2020 10:49:30 +0100
Subject: Bumped version to 2.1.0-RC1
---
app/build.gradle | 4 ++--
app/src/main/play/release-notes/en-US/default.txt | 14 ++++++++------
2 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/app/build.gradle b/app/build.gradle
index 2880f980f..a9fa9f533 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -22,8 +22,8 @@ android {
// "1.2.3-SNAPSHOT" -> 1020300
// "1.2.3-RC4" -> 1020304
// "1.2.3" -> 1020395
- versionCode 2000395
- versionName "2.0.3"
+ versionCode 2010001
+ versionName "2.1.0-RC1"
multiDexEnabled false
vectorDrawables.useSupportLibrary true
diff --git a/app/src/main/play/release-notes/en-US/default.txt b/app/src/main/play/release-notes/en-US/default.txt
index a27f2d0c0..6baa07d5a 100644
--- a/app/src/main/play/release-notes/en-US/default.txt
+++ b/app/src/main/play/release-notes/en-US/default.txt
@@ -1,7 +1,9 @@
-We are proud to release version 2.0 with a new logo and refreshed user interface.
-Thank you to 6420 users who participated in the vote for the new logo!
+This is a beta release for AntennaPod 2.1.0
-- Support for chapter images (only new episodes, by @ByteHamster)
-- Skip intro and ending per feed (by @tonytamsf)
-- Option to show notifications after episodes have been auto-downloaded (by @shortspider)
-- Bug fixes and improvements (by @ebraminio, @tonytamsf, @JessieVela, @ByteHamster and more)
+- A long-standing wish of many: playing local files! In the 'Add podcast' screen simply tap 'Add local folder' and select a location on your phone! (@ByteHamster, @igoralmeida & @damoasda)
+- Pick a country for the 'Discover' screen (@tonytamsf)
+- Keyboard shortcuts (@asdoi)
+- Search the PodcastIndex.org database (@edwinhere)
+- Pull to refresh (@asdoi)
+- Playback speed & filter dialogs (@ByteHamster & @bws9000)
+- Smooth sleep timer volume (@olivoto)
--
cgit v1.2.3
From dfd2ad49d11fba4fbf499a2f8735f82a5ed43ff2 Mon Sep 17 00:00:00 2001
From: ByteHamster
Date: Fri, 6 Nov 2020 14:32:40 +0100
Subject: Add error message when system file manager is not available
---
.../main/java/de/danoeh/antennapod/fragment/AddFeedFragment.java | 8 ++++++--
core/src/main/res/values/strings.xml | 1 +
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/AddFeedFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/AddFeedFragment.java
index caf489569..9ecfda23e 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/AddFeedFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/AddFeedFragment.java
@@ -88,7 +88,9 @@ public class AddFeedFragment extends Fragment {
intentGetContentAction.setType("*/*");
startActivityForResult(intentGetContentAction, REQUEST_CODE_CHOOSE_OPML_IMPORT_PATH);
} catch (ActivityNotFoundException e) {
- Log.e(TAG, "No activity found. Should never happen...");
+ e.printStackTrace();
+ ((MainActivity) getActivity())
+ .showSnackbarAbovePlayer(R.string.unable_to_start_system_file_manager, Snackbar.LENGTH_LONG);
}
});
root.findViewById(R.id.btn_add_local_folder).setOnClickListener(v -> {
@@ -100,7 +102,9 @@ public class AddFeedFragment extends Fragment {
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivityForResult(intent, REQUEST_CODE_ADD_LOCAL_FOLDER);
} catch (ActivityNotFoundException e) {
- Log.e(TAG, "No activity found. Should never happen...");
+ e.printStackTrace();
+ ((MainActivity) getActivity())
+ .showSnackbarAbovePlayer(R.string.unable_to_start_system_file_manager, Snackbar.LENGTH_LONG);
}
});
if (Build.VERSION.SDK_INT < 21) {
diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml
index 5ad8ec5e9..e70a44b47 100644
--- a/core/src/main/res/values/strings.xml
+++ b/core/src/main/res/values/strings.xml
@@ -745,6 +745,7 @@
Re-connect local folderIn case of permission denials, you can use this to re-connect to the exact same folder. Do not select another folder.This virtual podcast was created by adding a folder to AntennaPod.
+ Unable to start system file managerFilter
--
cgit v1.2.3
From 688f1b370c093abecbd4c17643e8661246fcc6c1 Mon Sep 17 00:00:00 2001
From: ByteHamster
Date: Fri, 6 Nov 2020 21:58:04 +0100
Subject: Fix using wrong playable object
---
.../de/danoeh/antennapod/core/service/playback/PlaybackService.java | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
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 60075dda6..69b35bff5 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
@@ -517,11 +517,12 @@ public class PlaybackService extends MediaBrowserServiceCompat {
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
playableLoaded -> {
- mediaPlayer.playMediaObject(playable, stream, startWhenPrepared,
+ mediaPlayer.playMediaObject(playableLoaded, stream, startWhenPrepared,
prepareImmediately);
- addPlayableToQueue(playable);
+ addPlayableToQueue(playableLoaded);
}, error -> {
Log.d(TAG, "Playable was not found. Stopping service.");
+ error.printStackTrace();
stateManager.stopService();
});
return Service.START_NOT_STICKY;
@@ -729,6 +730,7 @@ public class PlaybackService extends MediaBrowserServiceCompat {
addPlayableToQueue(playable);
}, error -> {
Log.d(TAG, "Playable was not loaded from preferences. Stopping service.");
+ error.printStackTrace();
stateManager.stopService();
});
}
--
cgit v1.2.3
From e3e3ee1ea897c650fa0a2d6b8f8435721e945098 Mon Sep 17 00:00:00 2001
From: ByteHamster
Date: Fri, 6 Nov 2020 22:00:58 +0100
Subject: Fixed clear download log menu item
---
.../main/java/de/danoeh/antennapod/fragment/DownloadLogFragment.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/DownloadLogFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/DownloadLogFragment.java
index 98d6a946b..c2c45c581 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/DownloadLogFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/DownloadLogFragment.java
@@ -176,7 +176,7 @@ public class DownloadLogFragment extends ListFragment {
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
if (!super.onOptionsItemSelected(item)) {
switch (item.getItemId()) {
- case R.id.clear_history_item:
+ case R.id.clear_logs_item:
DBWriter.clearDownloadLog();
return true;
case R.id.refresh_item:
--
cgit v1.2.3
From 6127197314885d4aaa49a19fe229fd20ab35a0ee Mon Sep 17 00:00:00 2001
From: ByteHamster
Date: Fri, 6 Nov 2020 22:12:27 +0100
Subject: Add 'recommended' text to ExoPlayer setting
---
app/src/main/res/xml/preferences_playback.xml | 5 +----
core/src/main/res/values/arrays.xml | 2 +-
core/src/main/res/values/strings.xml | 2 +-
3 files changed, 3 insertions(+), 6 deletions(-)
diff --git a/app/src/main/res/xml/preferences_playback.xml b/app/src/main/res/xml/preferences_playback.xml
index 161332d2f..d2999c59d 100644
--- a/app/src/main/res/xml/preferences_playback.xml
+++ b/app/src/main/res/xml/preferences_playback.xml
@@ -114,7 +114,7 @@
android:title="@string/pref_skip_keeps_episodes_title"/>
-
+
-
-
- @string/media_player_builtin@string/media_player_sonic
- @string/media_player_exoplayer
+ @string/media_player_exoplayer_recommended
diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml
index 5ad8ec5e9..c67d87321 100644
--- a/core/src/main/res/values/strings.xml
+++ b/core/src/main/res/values/strings.xml
@@ -507,7 +507,7 @@
Add downloaded episodes to the queueBuilt-in Android playerSonic Media Player
- ExoPlayer
+ ExoPlayer (recommended)Switch to ExoPlayerSwitched to ExoPlayer.Skip Silence in Audio
--
cgit v1.2.3
From 1e14cacf89668184d6f3c7d0949c5d2da50b5824 Mon Sep 17 00:00:00 2001
From: asdoi
Date: Fri, 6 Nov 2020 18:08:59 +0100
Subject: disable hardware keyboard shortcuts when an EditText is focused
---
app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java | 6 ++++++
.../java/de/danoeh/antennapod/activity/VideoplayerActivity.java | 6 ++++++
2 files changed, 12 insertions(+)
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java
index d39edb9b2..d1716e009 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java
@@ -16,6 +16,7 @@ import android.view.KeyEvent;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.Toast;
import androidx.annotation.NonNull;
@@ -542,6 +543,11 @@ public class MainActivity extends CastEnabledActivity {
//Hardware keyboard support
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
+ View currentFocus = getCurrentFocus();
+ if (currentFocus instanceof EditText) {
+ return super.onKeyUp(keyCode, event);
+ }
+
AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
Integer customKeyCode = null;
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/VideoplayerActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/VideoplayerActivity.java
index 2d4510e8f..9ab1755f5 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/VideoplayerActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/VideoplayerActivity.java
@@ -12,6 +12,7 @@ import android.view.KeyEvent;
import android.view.animation.AlphaAnimation;
import android.view.animation.AnimationSet;
import android.view.animation.ScaleAnimation;
+import android.widget.EditText;
import android.widget.ImageView;
import androidx.appcompat.view.menu.ActionMenuItem;
@@ -489,6 +490,11 @@ public class VideoplayerActivity extends MediaplayerActivity {
//Hardware keyboard support
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
+ View currentFocus = getCurrentFocus();
+ if (currentFocus instanceof EditText) {
+ return super.onKeyUp(keyCode, event);
+ }
+
AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
switch (keyCode) {
--
cgit v1.2.3
From e67e5a35befdc71987c5cdd7eb853f8c0aff6598 Mon Sep 17 00:00:00 2001
From: ByteHamster
Date: Fri, 6 Nov 2020 23:14:03 +0100
Subject: Bumped version to 2.1.0-RC2
---
app/build.gradle | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/app/build.gradle b/app/build.gradle
index a9fa9f533..0651d6809 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -22,8 +22,8 @@ android {
// "1.2.3-SNAPSHOT" -> 1020300
// "1.2.3-RC4" -> 1020304
// "1.2.3" -> 1020395
- versionCode 2010001
- versionName "2.1.0-RC1"
+ versionCode 2010002
+ versionName "2.1.0-RC2"
multiDexEnabled false
vectorDrawables.useSupportLibrary true
--
cgit v1.2.3
From 0ae6ca8d04d046228a4666fdf8f2786c560330f9 Mon Sep 17 00:00:00 2001
From: ByteHamster
Date: Sat, 7 Nov 2020 09:29:11 +0100
Subject: Added support for showing feed item images on Android Auto
---
.../java/de/danoeh/antennapod/core/feed/FeedMedia.java | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
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 88945b930..4857e899d 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
@@ -5,6 +5,7 @@ import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.database.Cursor;
import android.media.MediaMetadataRetriever;
+import android.net.Uri;
import android.os.Parcel;
import android.os.Parcelable;
import androidx.annotation.Nullable;
@@ -165,13 +166,20 @@ public class FeedMedia extends FeedFile implements Playable {
*/
public MediaBrowserCompat.MediaItem getMediaItem() {
Playable p = this;
- MediaDescriptionCompat description = new MediaDescriptionCompat.Builder()
+ MediaDescriptionCompat.Builder builder = new MediaDescriptionCompat.Builder()
.setMediaId(String.valueOf(id))
.setTitle(p.getEpisodeTitle())
.setDescription(p.getFeedTitle())
- .setSubtitle(p.getFeedTitle())
- .build();
- return new MediaBrowserCompat.MediaItem(description, MediaBrowserCompat.MediaItem.FLAG_PLAYABLE);
+ .setSubtitle(p.getFeedTitle());
+ if (item != null) {
+ // getImageLocation() also loads embedded images, which we can not send to external devices
+ if (item.getImageUrl() != null) {
+ builder.setIconUri(Uri.parse(item.getImageUrl()));
+ } else if (item.getFeed() != null && item.getFeed().getImageLocation() != null) {
+ builder.setIconUri(Uri.parse(item.getFeed().getImageLocation()));
+ }
+ }
+ return new MediaBrowserCompat.MediaItem(builder.build(), MediaBrowserCompat.MediaItem.FLAG_PLAYABLE);
}
/**
--
cgit v1.2.3
From 8f25f5830a4620218996dcabb73a4ca923b1750a Mon Sep 17 00:00:00 2001
From: ByteHamster
Date: Thu, 5 Nov 2020 20:58:43 +0100
Subject: Use lazy singleton instead of Bill Pugh singleton
---
.../antennapod/core/storage/PodDBAdapter.java | 40 ++++++++++------------
1 file changed, 19 insertions(+), 21 deletions(-)
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 935b06cd6..ad7f40700 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
@@ -316,46 +316,44 @@ public class PodDBAdapter {
+ JOIN_FEED_ITEM_AND_MEDIA;
private static Context context;
+ private static PodDBAdapter instance;
- private static volatile SQLiteDatabase db;
+ private final SQLiteDatabase db;
+ private final PodDBHelper dbHelper;
public static void init(Context context) {
PodDBAdapter.context = context.getApplicationContext();
}
- // Bill Pugh Singleton Implementation
- private static class SingletonHolder {
- private static final PodDBHelper dbHelper = new PodDBHelper(PodDBAdapter.context, DATABASE_NAME, null);
- private static final PodDBAdapter dbAdapter = new PodDBAdapter();
- }
-
public static PodDBAdapter getInstance() {
- return SingletonHolder.dbAdapter;
+ if (instance == null) {
+ instance = new PodDBAdapter();
+ }
+ return instance;
}
private PodDBAdapter() {
+ dbHelper = new PodDBHelper(PodDBAdapter.context, DATABASE_NAME, null);
+ db = openDb();
}
- public synchronized PodDBAdapter open() {
- if (db == null || !db.isOpen() || db.isReadOnly()) {
- db = openDb();
- }
- return this;
- }
-
- @SuppressLint("NewApi")
private SQLiteDatabase openDb() {
SQLiteDatabase newDb;
try {
- newDb = SingletonHolder.dbHelper.getWritableDatabase();
+ newDb = dbHelper.getWritableDatabase();
newDb.disableWriteAheadLogging();
} catch (SQLException ex) {
Log.e(TAG, Log.getStackTraceString(ex));
- newDb = SingletonHolder.dbHelper.getReadableDatabase();
+ newDb = dbHelper.getReadableDatabase();
}
return newDb;
}
+ public synchronized PodDBAdapter open() {
+ // do nothing
+ return this;
+ }
+
public synchronized void close() {
// do nothing
}
@@ -371,8 +369,8 @@ public class PodDBAdapter {
* robolectric/robolectric#1890.
*/
public static void tearDownTests() {
- db = null;
- SingletonHolder.dbHelper.close();
+ getInstance().dbHelper.close();
+ instance = null;
}
public static boolean deleteDatabase() {
@@ -380,7 +378,7 @@ public class PodDBAdapter {
adapter.open();
try {
for (String tableName : ALL_TABLES) {
- db.delete(tableName, "1", null);
+ adapter.db.delete(tableName, "1", null);
}
return true;
} finally {
--
cgit v1.2.3
From fe3a44d5fa50f9b011c6f0f884566e05b47c7e7a Mon Sep 17 00:00:00 2001
From: ByteHamster
Date: Mon, 9 Nov 2020 12:37:33 +0100
Subject: Fixed updating feeds where some items do not have a pubdate
---
core/src/main/java/de/danoeh/antennapod/core/storage/DBTasks.java | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
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 c059e696a..3f6a56fc8 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
@@ -445,7 +445,8 @@ public final class DBTasks {
// as the most recent item
// (if the most recent date is null then we can assume there are no items
// and this is the first, hence 'new')
- if (priorMostRecentDate == null
+ // New items that do not have a pubDate set are always marked as new
+ if (item.getPubDate() == null || priorMostRecentDate == null
|| priorMostRecentDate.before(item.getPubDate())
|| priorMostRecentDate.equals(item.getPubDate())) {
Log.d(TAG, "Marking item published on " + item.getPubDate()
--
cgit v1.2.3
From 5624ac9ce636b462f32e043520824d4044c0208f Mon Sep 17 00:00:00 2001
From: Richard <44210678+iamrichR@users.noreply.github.com>
Date: Mon, 9 Nov 2020 11:31:58 -0500
Subject: Hide prefExpandNotify from search results (#4673)
---
app/src/main/res/xml/preferences_user_interface.xml | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/app/src/main/res/xml/preferences_user_interface.xml b/app/src/main/res/xml/preferences_user_interface.xml
index 203e14d42..a3cb53307 100644
--- a/app/src/main/res/xml/preferences_user_interface.xml
+++ b/app/src/main/res/xml/preferences_user_interface.xml
@@ -1,6 +1,7 @@
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:search="http://schemas.android.com/apk/com.bytehamster.lib.preferencesearch">
+ android:title="@string/pref_expandNotify_title"
+ search:ignore="true"/>
Date: Mon, 9 Nov 2020 22:52:34 +0100
Subject: Re-added toolbar to gpodder main fragment
and removed unused gpodder search fragment
---
.../fragment/gpodnet/GpodnetMainFragment.java | 47 ++++++++++---
.../fragment/gpodnet/PodcastListFragment.java | 34 ---------
.../fragment/gpodnet/SearchListFragment.java | 80 ----------------------
.../fragment/gpodnet/TagListFragment.java | 41 +----------
app/src/main/res/layout/gpodnet_podcast_list.xml | 11 +--
app/src/main/res/menu/gpodder_podcasts.xml | 13 ----
6 files changed, 38 insertions(+), 188 deletions(-)
delete mode 100644 app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/SearchListFragment.java
delete mode 100644 app/src/main/res/menu/gpodder_podcasts.xml
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/GpodnetMainFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/GpodnetMainFragment.java
index 641e82b5a..ad815c3c9 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/GpodnetMainFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/GpodnetMainFragment.java
@@ -1,11 +1,14 @@
package de.danoeh.antennapod.fragment.gpodnet;
+import android.app.Activity;
import android.os.Bundle;
import android.view.LayoutInflater;
+import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
+import androidx.appcompat.widget.SearchView;
import androidx.appcompat.widget.Toolbar;
import androidx.fragment.app.Fragment;
import androidx.viewpager2.adapter.FragmentStateAdapter;
@@ -15,6 +18,9 @@ import com.google.android.material.tabs.TabLayout;
import com.google.android.material.tabs.TabLayoutMediator;
import de.danoeh.antennapod.R;
+import de.danoeh.antennapod.activity.MainActivity;
+import de.danoeh.antennapod.discovery.GpodnetPodcastSearcher;
+import de.danoeh.antennapod.fragment.OnlineSearchFragment;
/**
* Main navigation hub for gpodder.net podcast directory
@@ -30,9 +36,7 @@ public class GpodnetMainFragment extends Fragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
View root = inflater.inflate(R.layout.pager_fragment, container, false);
- Toolbar toolbar = root.findViewById(R.id.toolbar);
- toolbar.setTitle(R.string.gpodnet_main_label);
- toolbar.setNavigationOnClickListener(v -> getParentFragmentManager().popBackStack());
+ setupToolbar(root.findViewById(R.id.toolbar));
ViewPager2 viewPager = root.findViewById(R.id.viewpager);
GpodnetPagerAdapter pagerAdapter = new GpodnetPagerAdapter(this);
@@ -59,6 +63,33 @@ public class GpodnetMainFragment extends Fragment {
return root;
}
+ private void setupToolbar(Toolbar toolbar) {
+ toolbar.setTitle(R.string.gpodnet_main_label);
+ toolbar.setNavigationOnClickListener(v -> getParentFragmentManager().popBackStack());
+
+ toolbar.inflateMenu(R.menu.search);
+ MenuItem searchItem = toolbar.getMenu().findItem(R.id.action_search);
+ final SearchView sv = (SearchView) searchItem.getActionView();
+ sv.setQueryHint(getString(R.string.gpodnet_search_hint));
+ sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
+ @Override
+ public boolean onQueryTextSubmit(String query) {
+ Activity activity = getActivity();
+ if (activity != null) {
+ searchItem.collapseActionView();
+ ((MainActivity) activity).loadChildFragment(
+ OnlineSearchFragment.newInstance(GpodnetPodcastSearcher.class, query));
+ }
+ return true;
+ }
+
+ @Override
+ public boolean onQueryTextChange(String s) {
+ return false;
+ }
+ });
+ }
+
public static class GpodnetPagerAdapter extends FragmentStateAdapter {
GpodnetPagerAdapter(@NonNull Fragment fragment) {
@@ -68,20 +99,14 @@ public class GpodnetMainFragment extends Fragment {
@NonNull
@Override
public Fragment createFragment(int position) {
- Bundle arguments = new Bundle();
- arguments.putBoolean(PodcastListFragment.ARGUMENT_HIDE_TOOLBAR, true);
switch (position) {
case POS_TAGS:
return new TagListFragment();
case POS_TOPLIST:
- PodcastListFragment topListFragment = new PodcastTopListFragment();
- topListFragment.setArguments(arguments);
- return topListFragment;
+ return new PodcastTopListFragment();
default:
case POS_SUGGESTIONS:
- PodcastListFragment suggestionsFragment = new SuggestionListFragment();
- suggestionsFragment.setArguments(arguments);
- return suggestionsFragment;
+ return new SuggestionListFragment();
}
}
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/PodcastListFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/PodcastListFragment.java
index b3f56941b..e272b2869 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/PodcastListFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/PodcastListFragment.java
@@ -33,7 +33,6 @@ import de.danoeh.antennapod.core.sync.gpoddernet.model.GpodnetPodcast;
* Displays a list of GPodnetPodcast-Objects in a GridView
*/
public abstract class PodcastListFragment extends Fragment {
- public static final String ARGUMENT_HIDE_TOOLBAR = "hideToolbar";
private static final String TAG = "PodcastListFragment";
private GridView gridView;
@@ -44,8 +43,6 @@ public abstract class PodcastListFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View root = inflater.inflate(R.layout.gpodnet_podcast_list, container, false);
- setupToolbar(root.findViewById(R.id.toolbar));
-
gridView = root.findViewById(R.id.gridView);
progressBar = root.findViewById(R.id.progressBar);
txtvError = root.findViewById(R.id.txtvError);
@@ -59,37 +56,6 @@ public abstract class PodcastListFragment extends Fragment {
return root;
}
- private void setupToolbar(Toolbar toolbar) {
- if (getArguments() != null && getArguments().getBoolean(ARGUMENT_HIDE_TOOLBAR, false)) {
- toolbar.setVisibility(View.GONE);
- return;
- }
-
- toolbar.setTitle(R.string.gpodnet_main_label);
- toolbar.setNavigationOnClickListener(v -> getParentFragmentManager().popBackStack());
- toolbar.inflateMenu(R.menu.gpodder_podcasts);
-
- MenuItem searchItem = toolbar.getMenu().findItem(R.id.action_search);
- final SearchView sv = (SearchView) searchItem.getActionView();
- sv.setQueryHint(getString(R.string.gpodnet_search_hint));
- sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
- @Override
- public boolean onQueryTextSubmit(String s) {
- sv.clearFocus();
- MainActivity activity = (MainActivity)getActivity();
- if (activity != null) {
- activity.loadChildFragment(SearchListFragment.newInstance(s));
- }
- return true;
- }
-
- @Override
- public boolean onQueryTextChange(String s) {
- return false;
- }
- });
- }
-
private void onPodcastSelected(GpodnetPodcast selection) {
Log.d(TAG, "Selected podcast: " + selection.toString());
Intent intent = new Intent(getActivity(), OnlineFeedViewActivity.class);
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/SearchListFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/SearchListFragment.java
deleted file mode 100644
index 72a752bf1..000000000
--- a/app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/SearchListFragment.java
+++ /dev/null
@@ -1,80 +0,0 @@
-package de.danoeh.antennapod.fragment.gpodnet;
-
-import android.os.Bundle;
-import androidx.core.view.MenuItemCompat;
-import androidx.appcompat.widget.SearchView;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
-
-import de.danoeh.antennapod.core.sync.gpoddernet.GpodnetService;
-import de.danoeh.antennapod.core.sync.gpoddernet.GpodnetServiceException;
-import de.danoeh.antennapod.core.sync.gpoddernet.model.GpodnetPodcast;
-import org.apache.commons.lang3.Validate;
-
-import de.danoeh.antennapod.R;
-
-import java.util.List;
-
-/**
- * Performs a search on the gpodder.net directory and displays the results.
- */
-public class SearchListFragment extends PodcastListFragment {
- private static final String ARG_QUERY = "query";
-
- private String query;
-
- public static SearchListFragment newInstance(String query) {
- SearchListFragment fragment = new SearchListFragment();
- Bundle args = new Bundle();
- args.putString(ARG_QUERY, query);
- fragment.setArguments(args);
- return fragment;
- }
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- if (getArguments() != null && getArguments().containsKey(ARG_QUERY)) {
- this.query = getArguments().getString(ARG_QUERY);
- } else {
- this.query = "";
- }
- }
-
- @Override
- public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
- super.onCreateOptionsMenu(menu, inflater);
- // parent already inflated menu
- MenuItem searchItem = menu.findItem(R.id.action_search);
- final SearchView sv = (SearchView) searchItem.getActionView();
- sv.setQueryHint(getString(R.string.gpodnet_search_hint));
- sv.setQuery(query, false);
- sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
- @Override
- public boolean onQueryTextSubmit(String s) {
- sv.clearFocus();
- changeQuery(s);
- return true;
- }
-
- @Override
- public boolean onQueryTextChange(String s) {
- return false;
- }
- });
- }
-
- @Override
- protected List loadPodcastData(GpodnetService service) throws GpodnetServiceException {
- return service.searchPodcasts(query, 0);
- }
-
- private void changeQuery(String query) {
- Validate.notNull(query);
-
- this.query = query;
- loadData();
- }
-}
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/TagListFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/TagListFragment.java
index 53a31b68d..2c41ee070 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/TagListFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/TagListFragment.java
@@ -1,19 +1,11 @@
package de.danoeh.antennapod.fragment.gpodnet;
-import android.app.Activity;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
-import androidx.fragment.app.ListFragment;
-import androidx.core.view.MenuItemCompat;
-import androidx.appcompat.widget.SearchView;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
-
-import de.danoeh.antennapod.R;
+import androidx.fragment.app.ListFragment;
import de.danoeh.antennapod.activity.MainActivity;
import de.danoeh.antennapod.adapter.gpodnet.TagListAdapter;
import de.danoeh.antennapod.core.preferences.GpodnetPreferences;
@@ -27,37 +19,6 @@ import java.util.List;
public class TagListFragment extends ListFragment {
private static final int COUNT = 50;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setHasOptionsMenu(true);
- }
-
- @Override
- public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
- super.onCreateOptionsMenu(menu, inflater);
- inflater.inflate(R.menu.gpodder_podcasts, menu);
- MenuItem searchItem = menu.findItem(R.id.action_search);
- final SearchView sv = (SearchView) searchItem.getActionView();
- sv.setQueryHint(getString(R.string.gpodnet_search_hint));
- sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
- @Override
- public boolean onQueryTextSubmit(String s) {
- Activity activity = getActivity();
- if (activity != null) {
- sv.clearFocus();
- ((MainActivity) activity).loadChildFragment(SearchListFragment.newInstance(s));
- }
- return true;
- }
-
- @Override
- public boolean onQueryTextChange(String s) {
- return false;
- }
- });
- }
-
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
diff --git a/app/src/main/res/layout/gpodnet_podcast_list.xml b/app/src/main/res/layout/gpodnet_podcast_list.xml
index ae0a400f1..a6918f8d4 100644
--- a/app/src/main/res/layout/gpodnet_podcast_list.xml
+++ b/app/src/main/res/layout/gpodnet_podcast_list.xml
@@ -2,18 +2,9 @@
-
-
-
-
--
cgit v1.2.3
From 2249e915781fd9f928b01858845b2de3fc984e72 Mon Sep 17 00:00:00 2001
From: ByteHamster
Date: Mon, 9 Nov 2020 23:10:47 +0100
Subject: Update local folder properties on refresh
Fixes updated translations
---
.../de/danoeh/antennapod/fragment/AddFeedFragment.java | 1 -
.../de/danoeh/antennapod/core/feed/LocalFeedUpdater.java | 14 +++++---------
core/src/main/res/values/strings.xml | 3 +++
3 files changed, 8 insertions(+), 10 deletions(-)
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/AddFeedFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/AddFeedFragment.java
index 9ecfda23e..28456c01e 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/AddFeedFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/AddFeedFragment.java
@@ -191,7 +191,6 @@ public class AddFeedFragment extends Fragment {
throw new IllegalArgumentException("Unable to retrieve document tree");
}
Feed dirFeed = new Feed(Feed.PREFIX_LOCAL_FOLDER + uri.toString(), null, documentFile.getName());
- dirFeed.setDescription(getString(R.string.local_feed_description));
dirFeed.setItems(Collections.emptyList());
dirFeed.setSortOrder(SortOrder.EPISODE_TITLE_A_Z);
Feed fromDatabase = DBTasks.updateFeed(getContext(), dirFeed, false);
diff --git a/core/src/main/java/de/danoeh/antennapod/core/feed/LocalFeedUpdater.java b/core/src/main/java/de/danoeh/antennapod/core/feed/LocalFeedUpdater.java
index 971808eb4..e1bad4d93 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/feed/LocalFeedUpdater.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/feed/LocalFeedUpdater.java
@@ -97,15 +97,11 @@ public class LocalFeedUpdater {
// set default feed image
feed.setImageUrl(getDefaultIconUrl(context));
}
- if (feed.getPreferences().getAutoDownload()) {
- feed.getPreferences().setAutoDownload(false);
- feed.getPreferences().setAutoDeleteAction(FeedPreferences.AutoDeleteAction.NO);
- try {
- DBWriter.setFeedPreferences(feed.getPreferences()).get();
- } catch (ExecutionException | InterruptedException e) {
- e.printStackTrace();
- }
- }
+
+ feed.getPreferences().setAutoDownload(false);
+ feed.getPreferences().setAutoDeleteAction(FeedPreferences.AutoDeleteAction.NO);
+ feed.setDescription(context.getString(R.string.local_feed_description));
+ feed.setAuthor(context.getString(R.string.local_folder));
// update items, delete items without existing file;
// only delete items if the folder contains at least one element to avoid accidentally
diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml
index 4e50dc065..1f013ccc7 100644
--- a/core/src/main/res/values/strings.xml
+++ b/core/src/main/res/values/strings.xml
@@ -741,7 +741,10 @@
more »Suggestions by iTunesResults by %1$s
+
+
Add local folder
+ Local folderRe-connect local folderIn case of permission denials, you can use this to re-connect to the exact same folder. Do not select another folder.This virtual podcast was created by adding a folder to AntennaPod.
--
cgit v1.2.3
From ec134fb67f6f36fe862be7a9b4a825c30fa18667 Mon Sep 17 00:00:00 2001
From: ByteHamster
Date: Mon, 9 Nov 2020 23:17:27 +0100
Subject: Hide share link on feed info page for local feeds
---
app/src/main/java/de/danoeh/antennapod/fragment/FeedInfoFragment.java | 1 +
1 file changed, 1 insertion(+)
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/FeedInfoFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/FeedInfoFragment.java
index 4ca08cbdd..abb597e60 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/FeedInfoFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/FeedInfoFragment.java
@@ -285,6 +285,7 @@ public class FeedInfoFragment extends Fragment implements Toolbar.OnMenuItemClic
private void refreshToolbarState() {
toolbar.getMenu().findItem(R.id.reconnect_local_folder).setVisible(feed != null && feed.isLocalFeed());
+ toolbar.getMenu().findItem(R.id.share_download_url_item).setVisible(feed != null && !feed.isLocalFeed());
toolbar.getMenu().findItem(R.id.share_link_item).setVisible(feed != null && feed.getLink() != null);
toolbar.getMenu().findItem(R.id.visit_website_item).setVisible(feed != null && feed.getLink() != null
&& IntentUtils.isCallable(getContext(), new Intent(Intent.ACTION_VIEW, Uri.parse(feed.getLink()))));
--
cgit v1.2.3
From 24c15cfc617a353b329a6a98f22aea1ba439ce68 Mon Sep 17 00:00:00 2001
From: ByteHamster
Date: Mon, 9 Nov 2020 23:27:05 +0100
Subject: Fixed file size statistics
---
core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
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 b218a73f9..4c1f23474 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
@@ -7,6 +7,7 @@ import androidx.collection.ArrayMap;
import android.text.TextUtils;
import android.util.Log;
+import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
@@ -774,7 +775,7 @@ public final class DBReader {
feedTotalTime += media.getDuration() / 1000;
if (media.isDownloaded()) {
- totalDownloadSize = totalDownloadSize + media.getSize();
+ totalDownloadSize += new File(media.getFile_url()).length();
episodesDownloadCount++;
}
--
cgit v1.2.3
From fad5825a8b715344511a2406af8953ce0cc6c680 Mon Sep 17 00:00:00 2001
From: Tony Tam
Date: Tue, 10 Nov 2020 22:53:37 -0800
Subject: hide suggestion by iTunes when the user hides suggestions
---
.../de/danoeh/antennapod/fragment/QuickFeedDiscoveryFragment.java | 4 ++++
app/src/main/res/layout/quick_feed_discovery.xml | 1 +
2 files changed, 5 insertions(+)
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/QuickFeedDiscoveryFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/QuickFeedDiscoveryFragment.java
index c994b4d8b..14f355b52 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/QuickFeedDiscoveryFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/QuickFeedDiscoveryFragment.java
@@ -46,6 +46,7 @@ public class QuickFeedDiscoveryFragment extends Fragment implements AdapterView.
private FeedDiscoverAdapter adapter;
private GridView discoverGridLayout;
private TextView errorTextView;
+ private TextView poweredByTextView;
private LinearLayout errorView;
private Button errorRetry;
@@ -63,6 +64,7 @@ public class QuickFeedDiscoveryFragment extends Fragment implements AdapterView.
errorTextView = root.findViewById(R.id.discover_error_txtV);
errorRetry = root.findViewById(R.id.discover_error_retry_btn);
errorRetry.setOnClickListener((listener) -> loadToplist());
+ poweredByTextView = root.findViewById(R.id.discover_powered_by_itunes);
adapter = new FeedDiscoverAdapter((MainActivity) getActivity());
discoverGridLayout.setAdapter(adapter);
@@ -110,6 +112,7 @@ public class QuickFeedDiscoveryFragment extends Fragment implements AdapterView.
discoverGridLayout.setVisibility(View.INVISIBLE);
errorView.setVisibility(View.GONE);
errorRetry.setVisibility(View.INVISIBLE);
+ poweredByTextView.setVisibility(View.VISIBLE);
ItunesTopListLoader loader = new ItunesTopListLoader(getContext());
SharedPreferences prefs = getActivity().getSharedPreferences(ItunesTopListLoader.PREFS, MODE_PRIVATE);
@@ -122,6 +125,7 @@ public class QuickFeedDiscoveryFragment extends Fragment implements AdapterView.
progressBar.setVisibility(View.GONE);
discoverGridLayout.setVisibility(View.INVISIBLE);
errorRetry.setVisibility(View.INVISIBLE);
+ poweredByTextView.setVisibility(View.INVISIBLE);
return;
}
diff --git a/app/src/main/res/layout/quick_feed_discovery.xml b/app/src/main/res/layout/quick_feed_discovery.xml
index 0c55311e3..48809483c 100644
--- a/app/src/main/res/layout/quick_feed_discovery.xml
+++ b/app/src/main/res/layout/quick_feed_discovery.xml
@@ -85,6 +85,7 @@
Date: Thu, 12 Nov 2020 02:50:29 +0530
Subject: Use of ViewBinding in AddFeedFragment (#4647)
---
.../de/test/antennapod/ui/MainActivityTest.java | 4 +-
.../danoeh/antennapod/dialog/RenameFeedDialog.java | 10 ++--
.../antennapod/fragment/AddFeedFragment.java | 54 +++++++++++++---------
app/src/main/res/layout/addfeed.xml | 18 ++++----
app/src/main/res/layout/edit_text_dialog.xml | 2 +-
5 files changed, 49 insertions(+), 39 deletions(-)
diff --git a/app/src/androidTest/java/de/test/antennapod/ui/MainActivityTest.java b/app/src/androidTest/java/de/test/antennapod/ui/MainActivityTest.java
index be1ed6cc2..c2db974a3 100644
--- a/app/src/androidTest/java/de/test/antennapod/ui/MainActivityTest.java
+++ b/app/src/androidTest/java/de/test/antennapod/ui/MainActivityTest.java
@@ -75,8 +75,8 @@ public class MainActivityTest {
final Feed feed = uiTestUtils.hostedFeeds.get(0);
openNavDrawer();
onView(withText(R.string.add_feed_label)).perform(click());
- onView(withId(R.id.btn_add_via_url)).perform(scrollTo(), click());
- onView(withId(R.id.text)).perform(replaceText(feed.getDownload_url()));
+ onView(withId(R.id.addViaUrlButton)).perform(scrollTo(), click());
+ onView(withId(R.id.urlEditText)).perform(replaceText(feed.getDownload_url()));
onView(withText(R.string.confirm_label)).perform(scrollTo(), click());
Espresso.closeSoftKeyboard();
onView(withText(R.string.subscribe_label)).perform(click());
diff --git a/app/src/main/java/de/danoeh/antennapod/dialog/RenameFeedDialog.java b/app/src/main/java/de/danoeh/antennapod/dialog/RenameFeedDialog.java
index 699c6f492..c875d13ce 100644
--- a/app/src/main/java/de/danoeh/antennapod/dialog/RenameFeedDialog.java
+++ b/app/src/main/java/de/danoeh/antennapod/dialog/RenameFeedDialog.java
@@ -11,6 +11,7 @@ import androidx.appcompat.app.AlertDialog;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.core.feed.Feed;
import de.danoeh.antennapod.core.storage.DBWriter;
+import de.danoeh.antennapod.databinding.EditTextDialogBinding;
public class RenameFeedDialog {
@@ -29,13 +30,14 @@ public class RenameFeedDialog {
}
View content = View.inflate(activity, R.layout.edit_text_dialog, null);
- EditText editText = content.findViewById(R.id.text);
- editText.setText(feed.getTitle());
+ EditTextDialogBinding alertViewBinding = EditTextDialogBinding.bind(content);
+
+ alertViewBinding.urlEditText.setText(feed.getTitle());
AlertDialog dialog = new AlertDialog.Builder(activity)
.setView(content)
.setTitle(de.danoeh.antennapod.core.R.string.rename_feed_label)
.setPositiveButton(android.R.string.ok, (d, input) -> {
- feed.setCustomTitle(editText.getText().toString());
+ feed.setCustomTitle(alertViewBinding.urlEditText.getText().toString());
DBWriter.setFeedCustomTitle(feed);
})
.setNeutralButton(de.danoeh.antennapod.core.R.string.reset, null)
@@ -44,7 +46,7 @@ public class RenameFeedDialog {
// To prevent cancelling the dialog on button click
dialog.getButton(AlertDialog.BUTTON_NEUTRAL).setOnClickListener(
- (view) -> editText.setText(feed.getFeedTitle()));
+ (view) -> alertViewBinding.urlEditText.setText(feed.getFeedTitle()));
}
}
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/AddFeedFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/AddFeedFragment.java
index 9ecfda23e..0086cea8c 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/AddFeedFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/AddFeedFragment.java
@@ -30,6 +30,8 @@ import de.danoeh.antennapod.core.feed.Feed;
import de.danoeh.antennapod.core.storage.DBTasks;
import de.danoeh.antennapod.core.storage.DownloadRequestException;
import de.danoeh.antennapod.core.util.SortOrder;
+import de.danoeh.antennapod.databinding.AddfeedBinding;
+import de.danoeh.antennapod.databinding.EditTextDialogBinding;
import de.danoeh.antennapod.discovery.CombinedSearcher;
import de.danoeh.antennapod.discovery.FyydPodcastSearcher;
import de.danoeh.antennapod.discovery.ItunesPodcastSearcher;
@@ -50,7 +52,6 @@ public class AddFeedFragment extends Fragment {
private static final int REQUEST_CODE_CHOOSE_OPML_IMPORT_PATH = 1;
private static final int REQUEST_CODE_ADD_LOCAL_FOLDER = 2;
- private EditText combinedFeedSearchBox;
private MainActivity activity;
@Override
@@ -59,29 +60,31 @@ public class AddFeedFragment extends Fragment {
@Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
- View root = inflater.inflate(R.layout.addfeed, container, false);
+ AddfeedBinding viewBinding = AddfeedBinding.inflate(getLayoutInflater());
activity = (MainActivity) getActivity();
- Toolbar toolbar = root.findViewById(R.id.toolbar);
+
+ Toolbar toolbar = viewBinding.toolbar;
((MainActivity) getActivity()).setupToolbarToggle(toolbar);
- root.findViewById(R.id.btn_search_itunes).setOnClickListener(v
+ viewBinding.searchItunesButton.setOnClickListener(v
-> activity.loadChildFragment(OnlineSearchFragment.newInstance(ItunesPodcastSearcher.class)));
- root.findViewById(R.id.btn_search_fyyd).setOnClickListener(v
+ viewBinding.searchFyydButton.setOnClickListener(v
-> activity.loadChildFragment(OnlineSearchFragment.newInstance(FyydPodcastSearcher.class)));
- root.findViewById(R.id.btn_search_gpodder).setOnClickListener(v
+ viewBinding.searchGPodderButton.setOnClickListener(v
-> activity.loadChildFragment(new GpodnetMainFragment()));
- root.findViewById(R.id.btn_search_podcastindex).setOnClickListener(v
+ viewBinding.searchPodcastIndexButton.setOnClickListener(v
-> activity.loadChildFragment(OnlineSearchFragment.newInstance(PodcastIndexPodcastSearcher.class)));
- combinedFeedSearchBox = root.findViewById(R.id.combinedFeedSearchBox);
- combinedFeedSearchBox.setOnEditorActionListener((v, actionId, event) -> {
- performSearch();
+ viewBinding.combinedFeedSearchEditText.setOnEditorActionListener((v, actionId, event) -> {
+ String query = viewBinding.combinedFeedSearchEditText.getText().toString();
+ performSearch(query);
return true;
});
- root.findViewById(R.id.btn_add_via_url).setOnClickListener(v
+
+ viewBinding.addViaUrlButton.setOnClickListener(v
-> showAddViaUrlDialog());
- root.findViewById(R.id.btn_opml_import).setOnClickListener(v -> {
+ viewBinding.opmlImportButton.setOnClickListener(v -> {
try {
Intent intentGetContentAction = new Intent(Intent.ACTION_GET_CONTENT);
intentGetContentAction.addCategory(Intent.CATEGORY_OPENABLE);
@@ -93,7 +96,8 @@ public class AddFeedFragment extends Fragment {
.showSnackbarAbovePlayer(R.string.unable_to_start_system_file_manager, Snackbar.LENGTH_LONG);
}
});
- root.findViewById(R.id.btn_add_local_folder).setOnClickListener(v -> {
+
+ viewBinding.addLocalFolderButton.setOnClickListener(v -> {
if (Build.VERSION.SDK_INT < 21) {
return;
}
@@ -108,25 +112,30 @@ public class AddFeedFragment extends Fragment {
}
});
if (Build.VERSION.SDK_INT < 21) {
- root.findViewById(R.id.btn_add_local_folder).setVisibility(View.GONE);
+ viewBinding.addLocalFolderButton.setVisibility(View.GONE);
}
- root.findViewById(R.id.search_icon).setOnClickListener(view -> performSearch());
- return root;
+
+ String query = viewBinding.combinedFeedSearchEditText.getText().toString();
+ viewBinding.searchButton.setOnClickListener(view -> performSearch(query));
+
+ return viewBinding.getRoot();
}
private void showAddViaUrlDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
builder.setTitle(R.string.add_podcast_by_url);
View content = View.inflate(getContext(), R.layout.edit_text_dialog, null);
- EditText editText = content.findViewById(R.id.text);
- editText.setHint(R.string.add_podcast_by_url_hint);
+ EditTextDialogBinding alertViewBinding = EditTextDialogBinding.bind(content);
+ alertViewBinding.urlEditText.setHint(R.string.add_podcast_by_url_hint);
+
ClipboardManager clipboard = (ClipboardManager) getContext().getSystemService(Context.CLIPBOARD_SERVICE);
String clipboardContent = clipboard.getText() != null ? clipboard.getText().toString() : "";
if (clipboardContent.trim().startsWith("http")) {
- editText.setText(clipboardContent.trim());
+ alertViewBinding.urlEditText.setText(clipboardContent.trim());
}
- builder.setView(content);
- builder.setPositiveButton(R.string.confirm_label, (dialog, which) -> addUrl(editText.getText().toString()));
+ builder.setView(alertViewBinding.getRoot());
+ builder.setPositiveButton(R.string.confirm_label,
+ (dialog, which) -> addUrl(alertViewBinding.urlEditText.getText().toString()));
builder.setNegativeButton(R.string.cancel_label, null);
builder.show();
}
@@ -137,8 +146,7 @@ public class AddFeedFragment extends Fragment {
startActivity(intent);
}
- private void performSearch() {
- String query = combinedFeedSearchBox.getText().toString();
+ private void performSearch(String query) {
if (query.matches("http[s]?://.*")) {
addUrl(query);
diff --git a/app/src/main/res/layout/addfeed.xml b/app/src/main/res/layout/addfeed.xml
index ee57fdbed..d6ebd58d7 100644
--- a/app/src/main/res/layout/addfeed.xml
+++ b/app/src/main/res/layout/addfeed.xml
@@ -35,11 +35,11 @@
android:layout_marginRight="8dp"
android:contentDescription="@string/search_podcast_hint"
app:srcCompat="?attr/action_search"
- android:id="@+id/search_icon"
+ android:id="@+id/searchButton"
android:scaleType="center"/>
+ android:id="@+id/urlEditText" />
--
cgit v1.2.3
From cabe1a0f66eb00cf1e73b03f0f27b19eb78cf6dc Mon Sep 17 00:00:00 2001
From: ByteHamster
Date: Wed, 11 Nov 2020 22:43:27 +0100
Subject: Fixed comparator method contract when date is null
---
.../antennapod/core/util/comparator/FeedItemPubdateComparator.java | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/comparator/FeedItemPubdateComparator.java b/core/src/main/java/de/danoeh/antennapod/core/util/comparator/FeedItemPubdateComparator.java
index ad81a1d17..766986bed 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/util/comparator/FeedItemPubdateComparator.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/util/comparator/FeedItemPubdateComparator.java
@@ -14,8 +14,12 @@ public class FeedItemPubdateComparator implements Comparator {
*/
@Override
public int compare(FeedItem lhs, FeedItem rhs) {
- if (rhs.getPubDate() == null || lhs.getPubDate() == null) {
+ if (rhs.getPubDate() == null && lhs.getPubDate() == null) {
return 0;
+ } else if (rhs.getPubDate() == null) {
+ return 1;
+ } else if (lhs.getPubDate() == null) {
+ return -1;
}
return rhs.getPubDate().compareTo(lhs.getPubDate());
}
--
cgit v1.2.3
From 3aa6b378346bd88ed53eb4eb6a6b1b537f917c55 Mon Sep 17 00:00:00 2001
From: Herbert Reiter <46045854+damoasda@users.noreply.github.com>
Date: Sat, 14 Nov 2020 11:32:49 +0100
Subject: Refactoring: Remove interface DBTasksCallbacks and class
DBTasksCallbacksImpl
---
.../test/antennapod/storage/AutoDownloadTest.java | 24 ++++------------------
.../antennapod/config/ClientConfigurator.java | 3 ++-
.../antennapod/config/DBTasksCallbacksImpl.java | 20 ------------------
.../de/danoeh/antennapod/core/ClientConfig.java | 3 ++-
.../danoeh/antennapod/core/DBTasksCallbacks.java | 20 ------------------
.../core/service/download/DownloadService.java | 2 +-
.../de/danoeh/antennapod/core/storage/DBTasks.java | 4 ++--
.../de/danoeh/antennapod/core/ClientConfig.java | 3 ++-
8 files changed, 13 insertions(+), 66 deletions(-)
delete mode 100644 app/src/main/java/de/danoeh/antennapod/config/DBTasksCallbacksImpl.java
delete mode 100644 core/src/main/java/de/danoeh/antennapod/core/DBTasksCallbacks.java
diff --git a/app/src/androidTest/java/de/test/antennapod/storage/AutoDownloadTest.java b/app/src/androidTest/java/de/test/antennapod/storage/AutoDownloadTest.java
index 5396b218d..1d2e3d9e8 100644
--- a/app/src/androidTest/java/de/test/antennapod/storage/AutoDownloadTest.java
+++ b/app/src/androidTest/java/de/test/antennapod/storage/AutoDownloadTest.java
@@ -4,14 +4,12 @@ import android.content.Context;
import androidx.annotation.NonNull;
import androidx.test.core.app.ApplicationProvider;
import de.danoeh.antennapod.core.ClientConfig;
-import de.danoeh.antennapod.core.DBTasksCallbacks;
import de.danoeh.antennapod.core.feed.FeedItem;
import de.danoeh.antennapod.core.feed.FeedMedia;
import de.danoeh.antennapod.core.preferences.PlaybackPreferences;
import de.danoeh.antennapod.core.preferences.UserPreferences;
import de.danoeh.antennapod.core.storage.AutomaticDownloadAlgorithm;
import de.danoeh.antennapod.core.storage.DBReader;
-import de.danoeh.antennapod.core.storage.EpisodeCleanupAlgorithm;
import de.danoeh.antennapod.core.util.playback.PlaybackServiceStarter;
import de.test.antennapod.EspressoTestUtils;
import de.test.antennapod.ui.UITestUtils;
@@ -32,7 +30,7 @@ public class AutoDownloadTest {
private Context context;
private UITestUtils stubFeedsServer;
- private DBTasksCallbacks dbTasksCallbacksOrig;
+ private AutomaticDownloadAlgorithm automaticDownloadAlgorithmOrig;
@Before
public void setUp() throws Exception {
@@ -41,7 +39,7 @@ public class AutoDownloadTest {
stubFeedsServer = new UITestUtils(context);
stubFeedsServer.setup();
- dbTasksCallbacksOrig = ClientConfig.dbTasksCallbacks;
+ automaticDownloadAlgorithmOrig = ClientConfig.automaticDownloadAlgorithm;
EspressoTestUtils.clearPreferences();
EspressoTestUtils.clearDatabase();
@@ -50,7 +48,7 @@ public class AutoDownloadTest {
@After
public void tearDown() throws Exception {
- ClientConfig.dbTasksCallbacks = dbTasksCallbacksOrig;
+ ClientConfig.automaticDownloadAlgorithm = automaticDownloadAlgorithmOrig;
EspressoTestUtils.tryKillPlaybackService();
stubFeedsServer.tearDown();
}
@@ -79,7 +77,7 @@ public class AutoDownloadTest {
// Setup: enable automatic download
// it is not needed, as the actual automatic download is stubbed.
StubDownloadAlgorithm stubDownloadAlgorithm = new StubDownloadAlgorithm();
- useDownloadAlgorithm(stubDownloadAlgorithm);
+ ClientConfig.automaticDownloadAlgorithm = stubDownloadAlgorithm;
// Actual test
// Play the first one in the queue
@@ -113,20 +111,6 @@ public class AutoDownloadTest {
.until(() -> item.getMedia().getId() == PlaybackPreferences.getCurrentlyPlayingFeedMediaId());
}
- private void useDownloadAlgorithm(final AutomaticDownloadAlgorithm downloadAlgorithm) {
- ClientConfig.dbTasksCallbacks = new DBTasksCallbacks() {
- @Override
- public AutomaticDownloadAlgorithm getAutomaticDownloadAlgorithm() {
- return downloadAlgorithm;
- }
-
- @Override
- public EpisodeCleanupAlgorithm getEpisodeCacheCleanupAlgorithm() {
- return dbTasksCallbacksOrig.getEpisodeCacheCleanupAlgorithm();
- }
- };
- }
-
private static class StubDownloadAlgorithm implements AutomaticDownloadAlgorithm {
private long currentlyPlaying = -1;
diff --git a/app/src/main/java/de/danoeh/antennapod/config/ClientConfigurator.java b/app/src/main/java/de/danoeh/antennapod/config/ClientConfigurator.java
index 6e584d34f..7a5cf431f 100644
--- a/app/src/main/java/de/danoeh/antennapod/config/ClientConfigurator.java
+++ b/app/src/main/java/de/danoeh/antennapod/config/ClientConfigurator.java
@@ -2,6 +2,7 @@ package de.danoeh.antennapod.config;
import de.danoeh.antennapod.BuildConfig;
import de.danoeh.antennapod.core.ClientConfig;
+import de.danoeh.antennapod.core.storage.APDownloadAlgorithm;
/**
* Configures the ClientConfig class of the core package.
@@ -15,7 +16,7 @@ class ClientConfigurator {
ClientConfig.applicationCallbacks = new ApplicationCallbacksImpl();
ClientConfig.downloadServiceCallbacks = new DownloadServiceCallbacksImpl();
ClientConfig.playbackServiceCallbacks = new PlaybackServiceCallbacksImpl();
- ClientConfig.dbTasksCallbacks = new DBTasksCallbacksImpl();
+ ClientConfig.automaticDownloadAlgorithm = new APDownloadAlgorithm();
ClientConfig.castCallbacks = new CastCallbackImpl();
}
}
diff --git a/app/src/main/java/de/danoeh/antennapod/config/DBTasksCallbacksImpl.java b/app/src/main/java/de/danoeh/antennapod/config/DBTasksCallbacksImpl.java
deleted file mode 100644
index c3f7ae9c8..000000000
--- a/app/src/main/java/de/danoeh/antennapod/config/DBTasksCallbacksImpl.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package de.danoeh.antennapod.config;
-
-import de.danoeh.antennapod.core.DBTasksCallbacks;
-import de.danoeh.antennapod.core.preferences.UserPreferences;
-import de.danoeh.antennapod.core.storage.APDownloadAlgorithm;
-import de.danoeh.antennapod.core.storage.AutomaticDownloadAlgorithm;
-import de.danoeh.antennapod.core.storage.EpisodeCleanupAlgorithm;
-
-public class DBTasksCallbacksImpl implements DBTasksCallbacks {
-
- @Override
- public AutomaticDownloadAlgorithm getAutomaticDownloadAlgorithm() {
- return new APDownloadAlgorithm();
- }
-
- @Override
- public EpisodeCleanupAlgorithm getEpisodeCacheCleanupAlgorithm() {
- return UserPreferences.getEpisodeCleanupAlgorithm();
- }
-}
diff --git a/core/src/free/java/de/danoeh/antennapod/core/ClientConfig.java b/core/src/free/java/de/danoeh/antennapod/core/ClientConfig.java
index 04d74f2a2..8fd1df35c 100644
--- a/core/src/free/java/de/danoeh/antennapod/core/ClientConfig.java
+++ b/core/src/free/java/de/danoeh/antennapod/core/ClientConfig.java
@@ -9,6 +9,7 @@ import de.danoeh.antennapod.core.preferences.SleepTimerPreferences;
import de.danoeh.antennapod.core.preferences.UsageStatistics;
import de.danoeh.antennapod.core.preferences.UserPreferences;
import de.danoeh.antennapod.core.service.download.AntennapodHttpClient;
+import de.danoeh.antennapod.core.storage.AutomaticDownloadAlgorithm;
import de.danoeh.antennapod.core.storage.PodDBAdapter;
import de.danoeh.antennapod.core.util.NetworkUtils;
import de.danoeh.antennapod.core.util.gui.NotificationUtils;
@@ -32,7 +33,7 @@ public class ClientConfig {
public static PlaybackServiceCallbacks playbackServiceCallbacks;
- public static DBTasksCallbacks dbTasksCallbacks;
+ public static AutomaticDownloadAlgorithm automaticDownloadAlgorithm;
public static CastCallbacks castCallbacks;
diff --git a/core/src/main/java/de/danoeh/antennapod/core/DBTasksCallbacks.java b/core/src/main/java/de/danoeh/antennapod/core/DBTasksCallbacks.java
deleted file mode 100644
index 11a6b2c9f..000000000
--- a/core/src/main/java/de/danoeh/antennapod/core/DBTasksCallbacks.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package de.danoeh.antennapod.core;
-
-import de.danoeh.antennapod.core.storage.AutomaticDownloadAlgorithm;
-import de.danoeh.antennapod.core.storage.EpisodeCleanupAlgorithm;
-
-/**
- * Callbacks for the DBTasks class of the storage module.
- */
-public interface DBTasksCallbacks {
-
- /**
- * Returns the client's implementation of the AutomaticDownloadAlgorithm interface.
- */
- AutomaticDownloadAlgorithm getAutomaticDownloadAlgorithm();
-
- /**
- * Returns the client's implementation of the EpisodeCacheCleanupAlgorithm interface.
- */
- EpisodeCleanupAlgorithm getEpisodeCacheCleanupAlgorithm();
-}
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 de106a01e..a0e1a7041 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
@@ -429,7 +429,7 @@ public class DownloadService extends Service {
+ ", cleanupMedia=" + cleanupMedia);
if (cleanupMedia) {
- ClientConfig.dbTasksCallbacks.getEpisodeCacheCleanupAlgorithm()
+ UserPreferences.getEpisodeCleanupAlgorithm()
.makeRoomForEpisodes(getApplicationContext(), requests.size());
}
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 c059e696a..e857cf610 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
@@ -290,7 +290,7 @@ public final class DBTasks {
*/
public static Future> autodownloadUndownloadedItems(final Context context) {
Log.d(TAG, "autodownloadUndownloadedItems");
- return autodownloadExec.submit(ClientConfig.dbTasksCallbacks.getAutomaticDownloadAlgorithm()
+ return autodownloadExec.submit(ClientConfig.automaticDownloadAlgorithm
.autoDownloadUndownloadedItems(context));
}
@@ -304,7 +304,7 @@ public final class DBTasks {
* @param context Used for accessing the DB.
*/
public static void performAutoCleanup(final Context context) {
- ClientConfig.dbTasksCallbacks.getEpisodeCacheCleanupAlgorithm().performCleanup(context);
+ UserPreferences.getEpisodeCleanupAlgorithm().performCleanup(context);
}
/**
diff --git a/core/src/play/java/de/danoeh/antennapod/core/ClientConfig.java b/core/src/play/java/de/danoeh/antennapod/core/ClientConfig.java
index 41e95d99e..4b5e4d588 100644
--- a/core/src/play/java/de/danoeh/antennapod/core/ClientConfig.java
+++ b/core/src/play/java/de/danoeh/antennapod/core/ClientConfig.java
@@ -12,6 +12,7 @@ import de.danoeh.antennapod.core.preferences.SleepTimerPreferences;
import de.danoeh.antennapod.core.preferences.UsageStatistics;
import de.danoeh.antennapod.core.preferences.UserPreferences;
import de.danoeh.antennapod.core.service.download.AntennapodHttpClient;
+import de.danoeh.antennapod.core.storage.AutomaticDownloadAlgorithm;
import de.danoeh.antennapod.core.storage.PodDBAdapter;
import de.danoeh.antennapod.core.util.NetworkUtils;
import de.danoeh.antennapod.core.util.gui.NotificationUtils;
@@ -38,7 +39,7 @@ public class ClientConfig {
public static PlaybackServiceCallbacks playbackServiceCallbacks;
- public static DBTasksCallbacks dbTasksCallbacks;
+ public static AutomaticDownloadAlgorithm automaticDownloadAlgorithm;
public static CastCallbacks castCallbacks;
--
cgit v1.2.3
From 7936be0270312c1dcb649aa5845bf5cdb188eb87 Mon Sep 17 00:00:00 2001
From: ByteHamster
Date: Sat, 14 Nov 2020 17:46:32 +0100
Subject: Fixed toolbar sometimes not refreshing correctly
---
.../menuhandler/FeedItemMenuHandler.java | 64 +++++++---------------
1 file changed, 21 insertions(+), 43 deletions(-)
diff --git a/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java b/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java
index 3d8f3fe09..1eecccb4c 100644
--- a/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java
+++ b/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedItemMenuHandler.java
@@ -48,65 +48,43 @@ public class FeedItemMenuHandler {
if (menu == null || selectedItem == null) {
return false;
}
- boolean hasMedia = selectedItem.getMedia() != null;
- boolean isPlaying = hasMedia && selectedItem.getState() == FeedItem.State.PLAYING;
-
- if (!isPlaying) {
- setItemVisibility(menu, R.id.skip_episode_item, false);
- }
- boolean isInQueue = selectedItem.isTagged(FeedItem.TAG_QUEUE);
- if (!isInQueue) {
- setItemVisibility(menu, R.id.remove_from_queue_item, false);
- }
- if (!(!isInQueue && selectedItem.getMedia() != null)) {
- setItemVisibility(menu, R.id.add_to_queue_item, false);
- }
- if (!ShareUtils.hasLinkToShare(selectedItem)) {
- setItemVisibility(menu, R.id.visit_website_item, false);
- }
-
- boolean fileDownloaded = hasMedia && selectedItem.getMedia().fileExists();
+ final boolean hasMedia = selectedItem.getMedia() != null;
+ final boolean isPlaying = hasMedia && selectedItem.getState() == FeedItem.State.PLAYING;
+ final boolean isInQueue = selectedItem.isTagged(FeedItem.TAG_QUEUE);
+ final boolean fileDownloaded = hasMedia && selectedItem.getMedia().fileExists();
+ final boolean isFavorite = selectedItem.isTagged(FeedItem.TAG_FAVORITE);
+ setItemVisibility(menu, R.id.skip_episode_item, isPlaying);
+ setItemVisibility(menu, R.id.remove_from_queue_item, isInQueue);
+ setItemVisibility(menu, R.id.add_to_queue_item, !isInQueue && selectedItem.getMedia() != null);
+ setItemVisibility(menu, R.id.visit_website_item, !selectedItem.getFeed().isLocalFeed()
+ && ShareUtils.hasLinkToShare(selectedItem));
+ setItemVisibility(menu, R.id.share_item, !selectedItem.getFeed().isLocalFeed());
setItemVisibility(menu, R.id.remove_new_flag_item, selectedItem.isNew());
- if (selectedItem.isPlayed()) {
- setItemVisibility(menu, R.id.mark_read_item, false);
- } else {
- setItemVisibility(menu, R.id.mark_unread_item, false);
- }
-
- if (selectedItem.getMedia() == null || selectedItem.getMedia().getPosition() == 0) {
- setItemVisibility(menu, R.id.reset_position, false);
- }
+ setItemVisibility(menu, R.id.mark_read_item, !selectedItem.isPlayed());
+ setItemVisibility(menu, R.id.mark_unread_item, selectedItem.isPlayed());
+ setItemVisibility(menu, R.id.reset_position, hasMedia && selectedItem.getMedia().getPosition() != 0);
if (!UserPreferences.isEnableAutodownload() || fileDownloaded || selectedItem.getFeed().isLocalFeed()) {
setItemVisibility(menu, R.id.activate_auto_download, false);
setItemVisibility(menu, R.id.deactivate_auto_download, false);
- } else if (selectedItem.getAutoDownload()) {
- setItemVisibility(menu, R.id.activate_auto_download, false);
} else {
- setItemVisibility(menu, R.id.deactivate_auto_download, false);
+ setItemVisibility(menu, R.id.activate_auto_download, !selectedItem.getAutoDownload());
+ setItemVisibility(menu, R.id.deactivate_auto_download, selectedItem.getAutoDownload());
}
// Display proper strings when item has no media
- if (!hasMedia && !selectedItem.isPlayed()) {
+ if (hasMedia) {
+ setItemTitle(menu, R.id.mark_read_item, R.string.mark_read_label);
+ setItemTitle(menu, R.id.mark_unread_item, R.string.mark_unread_label);
+ } else {
setItemTitle(menu, R.id.mark_read_item, R.string.mark_read_no_media_label);
- }
-
- if (!hasMedia && selectedItem.isPlayed()) {
setItemTitle(menu, R.id.mark_unread_item, R.string.mark_unread_label_no_media);
}
- boolean isFavorite = selectedItem.isTagged(FeedItem.TAG_FAVORITE);
setItemVisibility(menu, R.id.add_to_favorites_item, !isFavorite);
setItemVisibility(menu, R.id.remove_from_favorites_item, isFavorite);
-
setItemVisibility(menu, R.id.remove_item, fileDownloaded);
-
- if (selectedItem.getFeed().isLocalFeed()) {
- setItemVisibility(menu, R.id.visit_website_item, false);
- setItemVisibility(menu, R.id.share_item, false);
- }
-
return true;
}
@@ -134,7 +112,7 @@ public class FeedItemMenuHandler {
* @param id The id of the string that is going to be replaced.
* @param noMedia The id of the new String that is going to be used.
* */
- public static void setItemTitle(Menu menu, int id, int noMedia){
+ public static void setItemTitle(Menu menu, int id, int noMedia) {
MenuItem item = menu.findItem(id);
if (item != null) {
item.setTitle(noMedia);
--
cgit v1.2.3
From f5bbdf1666a93dfbfdc02abcbc1be7ca54033ecb Mon Sep 17 00:00:00 2001
From: ByteHamster
Date: Sat, 14 Nov 2020 18:08:52 +0100
Subject: Stop foreground in DownloadService before calling stop
---
.../de/danoeh/antennapod/core/service/download/DownloadService.java | 2 ++
1 file changed, 2 insertions(+)
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 de106a01e..1df873e14 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
@@ -168,6 +168,7 @@ public class DownloadService extends Service {
startForeground(R.id.notification_downloading, notification);
syncExecutor.execute(() -> onDownloadQueued(intent));
} else if (numberOfDownloads.get() == 0) {
+ stopForeground(true);
stopSelf();
} else {
Log.d(TAG, "onStartCommand: Unknown intent");
@@ -553,6 +554,7 @@ public class DownloadService extends Service {
if (numberOfDownloads.get() <= 0 && DownloadRequester.getInstance().hasNoDownloads()) {
Log.d(TAG, "Number of downloads is " + numberOfDownloads.get() + ", attempting shutdown");
+ stopForeground(true);
stopSelf();
if (notificationUpdater != null) {
notificationUpdater.run();
--
cgit v1.2.3
From 2d242131718dd596217488662f571be677b7392e Mon Sep 17 00:00:00 2001
From: ByteHamster
Date: Sun, 15 Nov 2020 12:18:44 +0100
Subject: Fixed wording of counter>0 filter
---
core/src/main/res/values/strings.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml
index 1f013ccc7..0bfb4e36f 100644
--- a/core/src/main/res/values/strings.xml
+++ b/core/src/main/res/values/strings.xml
@@ -532,7 +532,7 @@
Filter your subscriptions in navigation drawer and subscriptions screen.NoneSubscriptions are filtered.
- Counter greater zero
+ Counter greater than zeroAuto downloadedNot auto downloadedKept updated
--
cgit v1.2.3
From 34f9f01ba16c4e990ad8b7a829d40ca434d4fcc2 Mon Sep 17 00:00:00 2001
From: ByteHamster
Date: Sun, 15 Nov 2020 12:37:00 +0100
Subject: Updated translations
---
core/src/main/res/values-br/strings.xml | 47 +---
core/src/main/res/values-ca/strings.xml | 47 +---
core/src/main/res/values-cs/strings.xml | 47 +---
core/src/main/res/values-da/strings.xml | 146 ++++++----
core/src/main/res/values-de/strings.xml | 68 +++--
core/src/main/res/values-es/strings.xml | 115 +++++---
core/src/main/res/values-et/strings.xml | 47 +---
core/src/main/res/values-eu/strings.xml | 120 +++++---
core/src/main/res/values-fa/strings.xml | 29 +-
core/src/main/res/values-fi/strings.xml | 44 +--
core/src/main/res/values-fr/strings.xml | 108 +++++---
core/src/main/res/values-gl/strings.xml | 112 +++++---
core/src/main/res/values-hu/strings.xml | 47 +---
core/src/main/res/values-it/strings.xml | 53 ++--
core/src/main/res/values-iw/strings.xml | 114 +++++---
core/src/main/res/values-ja/strings.xml | 46 +---
core/src/main/res/values-ko/strings.xml | 47 +---
core/src/main/res/values-lt/strings.xml | 49 +---
core/src/main/res/values-nb/strings.xml | 101 ++++---
core/src/main/res/values-nl/strings.xml | 126 ++++++---
core/src/main/res/values-pl/strings.xml | 47 +---
core/src/main/res/values-pt-rBR/strings.xml | 47 +---
core/src/main/res/values-pt/strings.xml | 117 +++++---
core/src/main/res/values-ru/strings.xml | 47 +---
core/src/main/res/values-sv/strings.xml | 112 +++++---
core/src/main/res/values-tr/strings.xml | 407 ++++++++++++++++++++++++++--
core/src/main/res/values-uk/strings.xml | 41 +--
core/src/main/res/values-zh-rCN/strings.xml | 117 +++++---
core/src/main/res/values-zh-rTW/strings.xml | 47 +---
29 files changed, 1453 insertions(+), 1042 deletions(-)
diff --git a/core/src/main/res/values-br/strings.xml b/core/src/main/res/values-br/strings.xml
index 12fbbdb23..d5d6bde01 100644
--- a/core/src/main/res/values-br/strings.xml
+++ b/core/src/main/res/values-br/strings.xml
@@ -26,16 +26,13 @@
LennPellgargadurioù
- Padelezh selaouet hollek%1$d war %2$d rann kroget.\n\nLennet %3$s war %4$s.Doareoù stadegoùJediñ ar padelezh selaouet e gwirionez. Ar rannoù selaouet div wech a gont doubl hag ar re merket evel anlennet ne gontont ket
- Sammañ an holl bodskignadoù merket evel lennetEvezhiadenn: tizh al lenn n\'eo morse kemeret e kont.Adderaouekaat ar roadennoù stadegoùDilemel a raio roll istor ar padelezh lennet evit an holl rannoù. Sur oc\'h e fell deoc\'h kenderc\'hel?
- Ment pellgarget hollekDigeriñ al lañserSerriñ al lañser
@@ -49,6 +46,7 @@
Niver a rannoù n\'int ket bet lennetNiver a rannoù pelglargetHini ebet
+
Digeriñ er merdeerEilañ an URL
@@ -133,14 +131,7 @@
Arventennoù ar podskignadAdenvel ar podskignadDilemel ar podskignad
- Rannañ...
- Rannañ an ere
- Rannañ an ere gant al lec\'hiadurRannañ ar restr
- Rannañ ere al lec\'hienn
- Rannañ ere ar podskignad
- Rannañ ere ar restr
- Rannañ ere ar restr gant al lec\'hiadurKadarnait e fell deoc\'h dilemel ar podskignad \"%1$s\" hag e holl rannoù pellgarget.O tilemel ar podskignadHizivaat ar podskignad a-bezh
@@ -148,14 +139,9 @@
Diuzañ gant ar re a-usDiuzañ gant ar re dindanAmlennet
- Ehanet
- LennetEl lostN\'emañ ket el lost
- Pellgarget
- N\'eo ket pellgargetGant ur media
- Ur sined eoSilet{fa-exclamation-circle} C\'hwitet war an azgrenaat diwezhañDigeriñ ar podskignad
@@ -268,7 +254,6 @@
O keweriañ ar pellgargadennoùO pellgargañ roadennoù ar podskignad
- %1$d rann pellgarget gant berzh, %2$d c\'hwitetTitl dianavLanvRestr media
@@ -281,7 +266,6 @@
Diweredekaet eo ar pellgargadur war ar c\'hennask hezoug en arventennoù.\n\nFellout a ra deoc\'h aotren ent padennek?\n\nDalc\'het vo soñj eus ho tibab e-pad 10 munutenn.Kadarnaat ar streaming hezougDiweredekaet eo ar streaming war ar c\'hennask hezoug en arventennoù. Stokit da lenn e streaming memestra.
- Aotren atavLakaat el lostAotren ent padennek
@@ -327,7 +311,6 @@
Pellgargañ un enlugelladN\'eo ket bet staliet an enlugelladEvit gallout kemmañ tizh al lenn ez eo erbedet gweredekaat al lenner media diabarzh Sonic.
- Tizh lennGweredekaat SonicRann ebet er roll len
@@ -401,7 +384,6 @@
bep %1$sda %1$sLenn kendalc\'hus
- Digennask ar selaouelloùLugañ ar selaouelloùAdkennaskañ ar bluetoothOber gant ar streaming da gentañ
@@ -414,7 +396,6 @@
Pellgargañ ar rannStreamingKetal arveriad
- Neuz, urzh ar c\'houmanantoù, skramm prennañDibab un neuzKemmañ elfennoù ar stalaf merdeiñKemmañ an elfennoù diskouezet er stalaf merdeiñ
@@ -453,10 +434,7 @@
Rediañ ur goubredañ klokGoubredañ an holl goumanantoù ha stadoù ar rannoù gant gpodder.net.%1$s gant ar benveg %2$s]]>
- Diskouez ar rebuzadurioù fazioù goubredañAn arventenn-mañ na vez ket arloet d\'ar rebuzadurioù fazi.
- Tizhioù lenn
- Dibab an tizhioù a c\'haller dibab pa vez lennet ar sonTizh dre ziouer ar rannoùLamm emgefreekTremen penn-kentañ ha dibenn ar rannoù
@@ -476,15 +454,11 @@
Sañset e brasa ar rebuzadur evit diskouez an afelloù lenn.Afelloù lenn peurzalc\'husMirout ar rebuzadur ha reoliadurioù ar skramm prennañ p\'eo ehanet al lenn.
- Despizañ an afelloù war ar skramm-prennañ
- Kemmañ a ra an afelloù lenn war ar skramm-prennañ. An afell lenn/ehan a vo diskouezet bepred.Dibab %1$d elfenn d\'ar muiañGallout a rit dibab %1$d elfenn d\'ar muiañ.Kemmañ skramm-prennañ an drekleurLakaat skeudenn ar rann e plas skeudenn drekleur ar skramm-prennañ. Diskouez a raio ivez ar skeudenn en arloadoù all.
- Diskouez danevell ar pellgargadurioùMa c\'hwit ar pellgargadurioù, sevel un danevell a ziskouez munudoù ar c\'hwitadenn.
- Rentañ-kont ar pellgargañ emgefreekDiskouez ur rebuzadur evit ar rannoù pellgarget ent emgefreek.Handelvoù Android a-raok 4.1 na skoront ket ar rebuzadurioù astennet.Lec\'hiadur ar rannoù el lost
@@ -583,7 +557,6 @@
Ezporzhiet eo bet ar restr e:\n\n%1$sRet eo aotren haeziñ ar c\'hadaviñ diavaez evit lenn ar restr OPMLDiuzit ar restr da enporzhiañ
- Enporzhiet gant berzh.\n\nPouezit war OK evit adloc\'hañ AntennaPodEnporzhiet eo bet ar stlennvon gant un handelv nevesoc\'h eus AntennPod. Ho staliadur bremanel na oar ket c\'hoazh penaos merañ ar restr-mañ.Ezporzhiañ ar sinedoùEzporzhiañ ar sinedoù en ur restr
@@ -687,7 +660,6 @@
GorrekaatAodioVdeo
- Merdeiñ en nec\'hWar bellgargañ emañ ar ranEl lost emañ ar rannOuzhpennet eo bet ar rann er sinedoù
@@ -717,16 +689,14 @@
Klask war iTunesKlask war fyddAraokaet
- Ouzhpennañ ur podskignad gant e URLKlask war gpodder.netDizoloeiñmuioc\'h »
- Klask gant %1$s
+
SilAn hollDiuzet eo bet an holl rannoù
- Hini ebetDiziuzet eo bet an holl rannoùLennetRannoù lennet diuzet
@@ -736,12 +706,17 @@
Rannoù pellgarget diuzetN\'eo ket pellgargetRannoù n\'int ket pellgarget diuzet
- Lakaet el lostRannoù diuzet el lost
- N\'emañ ket el lostRannoù diuzet n\'int ket el lost
- Gant ur mediaDiuzañ ar rannoù gant media
+ Ur sined eo
+ Pellgarget
+ N\'eo ket pellgarget
+ Lakaet el lost
+ N\'emañ ket el lost
+ Gant ur media
+ Ehanet
+ LennetTitl (A \u2192 Z)Titl (Z \u2192 A)
@@ -761,6 +736,7 @@
Laoskit ac\'hanon e peoc\'hAdlakaat da soñj diwezhatoc\'hDeomp dezhi!
+
Reoliadurioù aodioTizh lenn
@@ -807,7 +783,6 @@
O lennEvit reoliañ al lenn. Ar rebuzadur pennañ an hini eo pa lennit ur podskignat.Fazioù
- Diskouezet eo pa vez ur gudenn, ma c\'hwit ur pellgargadur pe ur goubredañ.Pellgargañ emgefreekDiskouezet eo pa vez pellgarget rannoù ent emgefreek
diff --git a/core/src/main/res/values-ca/strings.xml b/core/src/main/res/values-ca/strings.xml
index 998d06213..f3a62edad 100644
--- a/core/src/main/res/values-ca/strings.xml
+++ b/core/src/main/res/values-ca/strings.xml
@@ -26,16 +26,13 @@
ReproduccióBaixades
- Temps total de podcasts reproduïts%1$d de %2$depisodis començats.\n\nReproduïts %3$s de %4$s.Mode d\'estadístiquesCalcula el temps que realment s\'ha reproduït. La reproducció repetida es comptarà repetides vegades, mentre que no es tindrà en compte si s\'ha marcat com a reproduït.
- Suma tots els podcasts marcats com a reproduïtsAvís: la velocitat de reproducció mai no es té en compte.Resetejar dades estadístiquesAçò esborrarà l\'històric de la duració reproduïda per a tots els episodis. ¿Segur que vols continuar?
- Mida total dels podcasts baixats:Obre menúTanca menú
@@ -49,6 +46,7 @@
Número d\'episodis per reproduirNúmero d\'episodis descarregatsCap
+
Obre en un navegadorCopia l\'enllaç
@@ -124,14 +122,7 @@
Configuració del podcastCanvia el nom al podcastSuprimeix podcast
- Comparteix...
- Comparteix l\'adreça de l\'episodi
- Comparteix l\'adreça de l\'episodi i la posicióComparteix el fitxer
- Comparteix URL de la pàgina
- Comparteix URL de podcast
- Comparteix l\'adreça del fitxer multimèdia
- Comparteix l\'adreça del fitxer multimèdia i la posicióSi us plau, confirmeu que voleu eliminar el podcast \"%1$s\" i tots els seus episodis (fins i tot els ja baixats).Eliminant podcastRefrescar tot el podcast
@@ -139,14 +130,9 @@
Seleccionar tots cap amuntSeleccionar cap a baixPer reproduir
- Pausat
- ReproduitEn cuaNo en cua
- Baixat
- No baixatConté medis
- És preferintFiltrat{fa-exclamation-circle} Darrera actualització fallidaObrir podcast
@@ -238,7 +224,6 @@
S\'estan processant les baixadesS\'estan baixant les dades del podcast
- %1$d baixades finalitzades, %2$d fallidesTítol desconegutCanalFitxer
@@ -251,7 +236,6 @@
La baixada amb connexió de dades mòbils està desactivada.\n\nVols permetre la descàrrega de forma temporal?\n\nLa teva tria es recordarà durant 10 minuts.Confirmar streaming per mòbil.Streaming per xarxa mòbil està deshabilitat als ajustos. Toca la pantalla per a fer-ho de totes maners.
- Permet sempre.En cuaPermetre temporalment
@@ -297,7 +281,6 @@
Baixa el connectorConnector no instal·latPer a que la velocitat de reproducció variable funcione recomanem activar el reproductor de medis Sonic.
- Velocitats de reproduccióActiva SonicNo hi ha episodis a la cua.
@@ -371,7 +354,6 @@
cada %1$sals %1$sReproducció continuada
- Desconnexió d\'auricularsConnexió d\'auricularsConnexió de bluetoothPreferir streaming
@@ -384,7 +366,6 @@
Baixada d\'episodisStreamingInterfície d\'usuari
- Aparença, Ordre de les subscripcions, pantalla de bloqueigSelecciona el temaEstableix els elements del calaix de navegacióCanvia els elements que apareixen al calaix de navegació.
@@ -423,10 +404,7 @@
Força sincronització completaSincronitza amb gpodder.net totes les subscripcions i els estats dels episodis.%1$s amb el dispositiu %2$s]]>
- Notifica els errors de sincronitzacióAquest paràmetre no s\'aplica als errors d\'autenticació.
- Velocitats de reproducció
- Personalitzeu les velocitats disponibles per a una velocitat de reproducció d\'àudio variableLa velocitat a usar quan comence la reproducció per a episodis en aquest podcastAuto OmetreOmet introduccions i crèdits finals
@@ -446,15 +424,11 @@
Açò normalment expandeix la notificació per a mostrar botons de reproduccióBotons de reproducció persistentsManté els controls a l\'àrea de notificacions i pantalla de bloqueig quan la reproducció estigui aturada
- Estableix els botons del bloqueig de pantalla
- Canvia els botons de reproducció al bloqueig de pantalla. Els de pausa i reproducció sempre estan inclosos. Selecciona un màxim de %1$d elements.Només pots seleccionar un màxim de %1$d elements.Estableix el fons del bloqueig de pantallaEstableix el fons del bloqueig de pantalla a la imatge de l\'episodi actual. Com a efecte secundari, això també mostrarà la imatge en aplicacions de tercers.
- Mostra informació de baixadesSi les descàrregues fallen, genera un informe que mostra els detalls de la fallada.
- Mostra Informe de baixades automàtiquesMostra una notificació per a episodis descarregats automàticamentLes versions d\'Android anteriors a la 4.1 no suporten les notificacions ampliades.Posició d\'entrada en cola
@@ -553,7 +527,6 @@
S\'ha exportat el fitxer a:\n\n%1$sPer llegir arxius OPML és necessari accés a la memòria externaTria un fitxer per a importar
- S\'ha importat amb èxit.\n\nPremeu D\'acord per a reiniciar l\'AntennaPod.Aquesta base de dades va ser exportada amb una versió més nova d\'AntennaPod. La versió que tens ara mateixa no sap com processar-la.Exportar preferitsExportar episodis favorits a un arxiu
@@ -648,7 +621,6 @@
Disminueix la velocitatÀudioVídeo
- Navega cap amuntS\'està baixant l\'episodiS\'ha afegit l\'episodi a la cuaL\'episodi està marcat com a favorit
@@ -678,16 +650,14 @@
Cerca a iTunesCerca a fyydAvançat
- Afegir podcast per URLNavega gpodder.netDescobreixmés »
- Cerca feta per %1$s
+
FiltraTotSelecciona tots els episodis
- CapDeselecciona tots els episodisReproduitSelecciona episodis reproduits
@@ -697,12 +667,17 @@
Selecciona episodis descarregatsNo baixatSelecciona episodis sense descarregar
- En cuaEpisodis en cua seleccionats
- No encuatEpisodis seleccionats i no a la cua
- Té mitjansEpisodis amb mitjans seleccionats
+ És preferint
+ Baixat
+ No baixat
+ En cua
+ No encuat
+ Té mitjans
+ Pausat
+ ReproduitTítol (A \u2192 Z)Títol (Z \u2192 A)
@@ -722,6 +697,7 @@
Deixa\'m tranquilPregunta\'m més tardI tant, fem-ho!
+
Controls d\'audioVelocitat de reproducció
@@ -768,7 +744,6 @@
Reproducció actualPermet controlar la reproducció. Aquesta és la notificació principal que veureu durant la reproducció d\'un podcast.Errors
- Mostrar si quelcom va malament, per exemple si una baixada o sincronització fallen.Baixades automàtiquesMostrat quan els episodis han sigut descarregats automàticament
diff --git a/core/src/main/res/values-cs/strings.xml b/core/src/main/res/values-cs/strings.xml
index ec6f20941..3fdcafc7d 100644
--- a/core/src/main/res/values-cs/strings.xml
+++ b/core/src/main/res/values-cs/strings.xml
@@ -26,16 +26,13 @@
PřehráváníStažené
- Celkový čas poslechnutých podcastů:%1$d z %2$d započatých epizod.\n\nPřehraných %3$s z %4$s.Režim statistikPočítat skutečně přehraný čas. Tj. 5 minutová epizoda poslechnutá dvakrát je 10 minut, 7 minutová epizoda pouze označená jako poslechnutá je 0 minut.
- Sečíst délky všech podcastů označených jako poslechnutých.Upozornění: Rychlost přehrávání se nikdy nebere v potaz.Vynulovat statistikyToto smaže veškerou historii přehrávání pro všechny epizody. Vážně chcete pokračovat?
- Celková velikost stažených podcastů:Otevřít menuZavřít menu
@@ -49,6 +46,7 @@
Počet nepřehraných epizodPočet stažených epizodŽádné
+
Otevřít v prohlížečiKopírovat URL
@@ -131,14 +129,7 @@
Nastavení podcastuPřejmenovat podcastOdstranit podcast
- Sdílet
- Sdílet URL epizody
- Sdílet URL epizody s časovou značkouSdílet soubor
- Sdílet URL webu
- Sdílet URL podcastu
- Sdílet URL souboru
- Sdílet URL souboru s časovou značkouPotvrďte prosím, že chcete smazat podcast „%1$s“ a VŠECHNY jeho epizody (včetně stažených epizod).Odstraňování podcastuAktualizovat celý podcast
@@ -146,14 +137,9 @@
Vybrat všechny výšeVybrat všechny nížeNeposlechnuté
- Pozastavené
- PoslechnutéVe frontěMimo frontu
- Stažené
- NestaženéObsahuje média
- Je mezi oblíbenýmiFiltrované{fa-exclamation-circle} Poslední aktualizace selhalaOtevřít podcast
@@ -259,7 +245,6 @@
Probíhá stahováníStahuji podcast data
- %1$d úspěšných stahování, %2$d selhaloNeznámý názevKanálSoubor
@@ -272,7 +257,6 @@
Stahování dat přes mobilní připojení je v nastavení vypnuto.\n\nDočasně povolit?\n\nTato volba bude platná po dalších 10 minut.Potvrďtě prosím streamování přes mobilní dataStreamování přes mobilní data je zakázáno v nastavení. Streamování můžete spustit dotykem, pokud i přesto chcete streamovat přes mobilní data.
- Vždy povolitPouze přidat do frontyDočasně povolit
@@ -318,7 +302,6 @@
Stáhnout modulModul není nainstalovánPro správnou funkci proměnlivé rychlosti přehrávání je doporučeno povolit vestavěný přehrávač Sonic.
- Rychlosti přehráváníPovolit SonicŽádné epizody ve frontě
@@ -392,7 +375,6 @@
každých %1$sv %1$sKontinuální přehrávání
- Sluchátka odpojenaSluchátka připojenaBluetooth připojenoUpřednostnit streamování
@@ -405,7 +387,6 @@
Stahování epizodStreamováníUživatelské rozhraní
- Vzhled, poradí ve sbírce, uzamčená obrazovkaVybrat motivZměnit navigační panelUpravit zobrazení položek v navigačním panelu.
@@ -444,10 +425,7 @@
Synchronizovat vše ihnedSynchronizovat všechny odběry a stav epizod s gpodder.net.%1$s z přístroje %2$s]]>
- Zobrazovat oznámení o chybách synchronizaceToto nastavení se netýká chyb přihlášení.
- Rychlosti přehrávání
- Přizpůsobení rychlosti je dostupné pro přehrávání zvuku různými rychlostmiRychlost, která bude použita při zahájení přehrávání epizod tohoto podcastuAutomatické přeskočeníPřeskočit úvod a závěr.
@@ -467,15 +445,11 @@
Toto obvykle přidá tlačítka ovládání přehrávání do zpráv upozorněníPevné ovládání přehráváníZachovat oznámení a ovládání na obrazovce uzamčení i při pozastaveném přehrávání.
- Nastavení tlačítek uzamčené obrazovky
- Změnit tlačítka ovládání na obrazovce uzamčení. Tlačítka přehrát/pozastavit jsou vždy zobrazena.Vybrat maximálně %1$d položekLze vybrat maximálně %1$d položek.Nastavit pozadí uzamčené obrazovkyNastavit pozadí uzamčené obrazovky na obrázek aktuální epizody. Jako vedlejší efekt zobrazí toto nastavení obrázek i v aplikacích třetích stran.
- Zobrazit report stahováníPokud selže stahování, vygenerovat report zobrazující detaily o chybě.
- Zobrazovat hlášení automatického stahováníZobrazovat oznámení o automaticky stažených epizodách.Verze Androidu nižší než 4.1 nepodporují rozšířená oznámení.Pozice přidávání do fronty
@@ -574,7 +548,6 @@
Exportovaný soubor zapsán do:\n\n%1$sPro přečtení OPML souboru je vyžadován přístup k externímu úložištiVybrat soubor pro import
- Import úspěšný.\n\nPotvrďte restart AntennaPod tlačítkem OKTato databáze byla exportována z novější verze aplikace AntennaPod. Vaše instalovaná verze není schopná ji zpracovat.Export oblíbenýchExportovat oblíbené do souboru
@@ -675,7 +648,6 @@
Snížit rychlostAudioVideo
- Navigovat vzhůruEpizoda je právě stahovánaEpizoda je ve frontěEpizoda je označená jako oblíbená
@@ -705,16 +677,14 @@
Prohledat iTunesProhledat fyydPokročilé
- Přidat podcast pomocí URLProhledávat gpodder.netObjevitvíce »
- Vyhledávání poskytuje %1$s
+
FiltrVšeVybrány všechny epizody
- ŽádnéOdebrány všechny epizodyPřehrányVybrány přehrané epizody
@@ -724,12 +694,17 @@
Vybrány stažené epizodyNestaženéVybrány nestažené epizody
- Ve frontěVybrané epizody ve frontě
- Mimo frontuVybrané epizody mimo frontu
- Obsahuje médiaVybrané epizody s médii
+ Je mezi oblíbenými
+ Stažené
+ Nestažené
+ Ve frontě
+ Mimo frontu
+ Obsahuje média
+ Pozastavené
+ PoslechnutéNázvu (A \u2192 Z)Názvu (Z \u2192 A)
@@ -749,6 +724,7 @@
Neobtěžuj měUpozornit pozdějiJasně, s radostí!
+
Audio ovládáníRychlost přehrávání
@@ -795,7 +771,6 @@
Přehrává seUmožňuje ovládat přehrávání. Toto je to hlavní oznámení, které uvidité při přehrávání podcastu.Chyby
- Zobrazuje se, když se něco nepovedlo. Například pokud selhalo stahování anebo synchronizace gpodder.Automatické stahováníZobrazuje se po automatickém stažení epizod.
diff --git a/core/src/main/res/values-da/strings.xml b/core/src/main/res/values-da/strings.xml
index 01026e021..665623dcb 100644
--- a/core/src/main/res/values-da/strings.xml
+++ b/core/src/main/res/values-da/strings.xml
@@ -25,17 +25,19 @@
Der er ikke mere plads i mellemlageret for udsendelser. Du kan øge størrelsen på mellemlageret i Indstillinger.AfspilningOverførsler
+ Påmindelser
- Samlet varighed for afspillede podcasts:
+ Samlet tid for afspillede udsendelser:%1$d af %2$d udsendelser startet.\n\nAfspillet %3$s af %4$s.StatistiktilstandBeregn den varighed som faktisk blev afspillet. Afspilning af en udsendelse to gange tæller dobbelt, mens en markering som værende afspillet ikke tælles med.
- Opsummer alle podcasts markeret som afspillet
+ Summér alle udsendelser markeret som afspilletBemærk: Afspilningshastigheden har ingen betydningNulstil statistikDette vil slette historikken over hvor meget der er afspillet af alle udsendelser.
+ Siden %s\nhar du afspillet
- Total størrelse af overførte podcasts:
+ Samlet størrelse af udsendelserne på enheden:Åbn menuLuk menu
@@ -49,6 +51,8 @@
Antal uafspillede udsendelserAntal overførte udsendelserIngen
+
+ Ingen kompatible apper fundet.Åbn i browserKopier webadresse
@@ -71,7 +75,7 @@
En fejl er opstået:Tilladelse til lageradgang kræves for denne handlingOpdater
- Ingen ekstern harddisk er tilgængelig. Vær venlig at sørge for at den eksterne hukommelse er monteret så app\'en kan fungere korrekt.
+ Ingen ekstern lagerenhed er tilgængelig. Sørg for at den eksterne lagerenhed er tilsluttet, så appen kan fungere korrekt.KapitlerVarighed: %1$sBeskrivelse
@@ -80,7 +84,7 @@
Gem brugernavn og adgangskodeLukPrøv igen
- Inkluder i Automatisk overførsel
+ Inkludér i automatiske overførslerAnvend på tidligere udsendelserDen nye Automatisk overførsel-indstilling vil automatisk blive anvendt på nye udsendelser.\nVil du også anvende den på tidligere udsendelser?Slet udsendelser automatisk
@@ -124,29 +128,22 @@
Podcast-indstillingerOmdøb podcastFjern podcast
- Del…
- Del udsendelsens webadresse
- Del webadresse for udsendelse med position
+ Del
+ Del...Del fil
- Del webstedets adresse
- Del podcast URL
- Del webadresse for mediefil
- Del webadresse for mediefil med position
+ Netsted adresse
+ Podcast-adresseBekræft venligst at du ønsker at slette podcasten \"%1$s\" og ALLE dens udsendelser (inklusive overførte udsendelser)
+ Bekræft venligst at du vil fjerne podcasten \"%1$s\". Filerne i den lokale kildemappe vil ikke blive slettet.Fjerner podcastOpdater komplet podcastVælg flereVælg alt ovenforVælg alt nedenforUafspillede
- Sat på pause
- AfspilledeSat i køIkke sat i kø
- Overførte
- Ikke overførteHar medier
- Er foretrukkenFiltrerede{fa-exclamation-circle} Sidste opdatering fejledeÅbn podcast
@@ -238,7 +235,10 @@
Bearbejder overførte dataHenter podcast-data
- %1$d overførsler lykkedes, %2$d fejlede
+
+ %d overførsel lykkedes, %d fejlede
+ %d overførsler lykkedes, %d fejlede
+ Ukendt titelFeedMediefil
@@ -251,7 +251,8 @@
Overførsel over mobil dataforbindelse er slået fra i indstillingerne.\n\nVil du tillade overførsel midlertidigt?\n\nDit valg vil blive husket i 10 minutter.Bekræft mobil streamingStreaming via mobildata er slået fra i indstillingerne. Tryk for at streame alligevel.
- Tillad altid
+ Altid
+ Én gangSæt i køTillad midlertidigt
@@ -260,7 +261,7 @@
ForberederKlarSøger
- Server døde
+ Serveren dødeKan ikke afspille denne medietypeHandlingen annulleret fordi den tog for lang tidKunne ikke tilgå mediefil
@@ -297,11 +298,12 @@
Hent pluginPlugin er ikke installeretFor ændring af afspilningshastighed, vi forslår at bruge den indbyggede Sonic medie afspiller.
- AfspilningshastighederSlå Sonic til
+ Forudindstillinger
+ %1$.2fx er allerede gemt som en forudindstilling.Ingen udsendelser i køen
- Tilføj en episode ved at downloade den, eller lang tryk på episoden og klik \"Tilføj til afspilningsliste\"
+ Tilføj en udsendelse ved at downloade den, eller tryk og hold på episoden og vælg \"Føj til kø\".Denne udsendelse har ingen beskrivelse.Ingen overførsler i gangDu kan downloade episode ved podcastens beskrivelse
@@ -349,7 +351,7 @@
Når der trykkes på næste knappen på de tilsluttede høretelefoner, skift til næste episode istedet for at springe frem.Tilbageknap genstarterNår der trykkes på en fysisk tilbageknap, skal den aktuelle udsendelse afspilles forfra i stedet for at der spoles tilbage.
- Spring til næste element i køen når afspilningen er færdig
+ Gå til næste element i køen når afspilningen er færdigSlet udsendelsen når afspilningen er færdigSlet automatiskMarker udsendelser som værende afspillet, selv om op til et angivet antal sekunders spilletid stadig mangler
@@ -361,37 +363,37 @@
AfspilningHovedtelefon kontrol, Overspring intervaller, KøNetværk
- Opdateringsinterval, hente kontroller, mobildata
+ Opdateringsinterval, overførselsindstillinger, mobildataOpdateringsinterval eller -klokkeslæt
- Spicifik interval, eller spicifik tid på dagen, genindlæs podcasts automatisk
- Du kan indstille et interval som \"hver anden time\", indstille et bestemt klokkeslæt som \"7:00\", eller slå automatiske opdateringer helt fra.\n\nBemærk: Opdateringstider er ikke eksakte. Du kan opleve en kort forsinkelse.
+ Angiv et tidsinterval eller et bestemt klokkeslæt hvor podcastene skal opdateres automatisk
+ Du kan indstille et interval som \"hver 2. time\", indstille et bestemt klokkeslæt som \"7:00\", eller slå automatiske opdateringer helt fra.\n\nBemærk: Opdateringstider er ikke eksakte. Du kan opleve en kort forsinkelse.Slå fraIndstil intervalIndstil klokkeslæthver %1$skl. %1$sKontinuerlig afspilning
- Afbrydelse af hovedtelefoner
+ Hovedtelefoner eller bluetooth afbrudtTilslutning af hovedtelefoner igenBluetooth forbundet igenForetræk streamingVis stream knap, i stedet for download knap i listen.Mobile opdateringer
- Vælg hvad der skal være tilladt via mobil data forbindelse
+ Vælg hvad der skal være tilladt via mobil dataforbindelseOpdatere podcast
- Omslag billeder
+ BillederHent automatiskDownload af udsendelserStreamingBrugergrænseflade
- Udseende, abonnements ordre, låseskærm
+ Udseende, abonnementer, låseskærmVælg temaVælg elementer i navigationspaneletVælg hvilke elementer, der skal vises i navigationspanelet.Vælg abonnementsordenÆndr rækkefølgen af dine abonnementerIndstil abonnementstæller
- Ændre informationen vist af abonnoment tæller. Ændre også ved abonnement rækkefølge, hvis abonnement rækkefølge er sat til \'Tæller\'
+ Ændr informationen vist af abonnementstælleren. Påvirker også rækkefølgen af abonnementer, hvis abonnementsrækkefølgen er sat til \'Tæller\'.Ændr AntennaPods udseende.Automatisk overførselKonfigurer automatisk overførsel af udsendelser
@@ -402,8 +404,8 @@
Parallelle overførslerMellemlager for udsendelserTotal nummer af episoder downloades på din enhed. Stop automatisk download, når dette nummer nåes.
- Brug afsnit omslag
- Brug det specifikke episode cover, når muligt. Hvis tændt, vil app\'en altid bruge podcast cover billedet.
+ Brug udsendelsesbillede
+ Brug det udsendelsesspecifikke billede når muligt. Hvis dette slås fra, vil appen altid bruge podcastens billede.Brug systemtemaLysMørk
@@ -423,10 +425,9 @@
Tving fuld synkroniseringSynkroniser tilstande for alle abonnementer og udsendelser med gpodder.net.%1$s med enheden %2$s]]>
- Vis notifikationer med synkroniseringsfejl
+ Synkronisering mislykkedesDenne indstilling vedrører ikke godkendelsesfejl.
- Afspilningshastigheder
- Tilpas tilgængelige hastigheder for lydafspilning med variabel hastighed
+ Tilpas de tilgængelige hastigheder for afspilning med variabel hastighedHastighed, der skal bruges, når lydafspilning startes til afsnit i denne podcastOverspring automatiskOverspring introduktioner og slut kreditter.
@@ -441,20 +442,20 @@
Tidshop for tilbagespolingIndstil antallet af sekunder, der skal springes tilbage, når der trykkes på tilbagespolingsknappenIndstil værtsnavn
- Brug standard vært
+ Brug standardværtHøj prioritet for notifikationDette udvider normalt notifikationen til at vise afspilningsknapper.Vedholdende afspilningsknapperBehold notifikation og knapper på låseskærmen, når afspilningen sættes på pause.
- Indstil knapper på låseskærm
- Vælg afspilningsknapper på låseskærmen. Afspil/pause-knappen medtages altid.
+ Indstil kompakte notifikationsknapper
+ Ændr afspilningsknapperne når notifikationen minimeres. Afspil/pause-knappen vises altid.Vælg højst %1$d knapperDu kan højst vælge %1$d knapper.Indstil baggrund på låseskærmenSæt baggrunden på låseskærmen til billedet for den aktuelle udsendelse. Som en sidevirkning vil det også vise billedet i tredjepartsapps.
- Vis rapport over overførsler
+ Overførsel mislykkedesLav en rapport, som viser detaljer om fejlene, hvis overførsler fejler
- Vis rapport over automatiske overførsler
+ Automatisk overførsel fuldførtVis en notifikation for automatisk overførte udsendelserAndroid-versioner før 4.1 understøtter ikke udvidede notifikationer.Placering i kø
@@ -504,6 +505,14 @@
Vælg sideSlet fjernet fra køFjern automatisk afsnit fra køen, når den slettes.
+ Abonnement filter
+ Filtrer dine abonnementer i navigationspanelet og på abonnementsoversigten.
+ Ingen
+ Abonnementer er filtreret.
+ Automatisk hentet
+ Ikke automatisk hentet
+ Holdt opdateret
+ Ikke holdt opdateretOmAntennaPod version
@@ -538,11 +547,12 @@
Flyt abonnementer, aflyttede afsnit og kø til AntennaPod på en anden enhedImportere AntennaPod database fra anden enhedOPML-import
- Der opstod en fejl, da OPML-dokumentet blev forsøgt indlæst
+ Importere podcast liste (OPML)
+ Der opstod en fejl, da OPML-dokumentet blev forsøgt indlæst:Ingen fil valgt!Vælg alleFravælg alle
- OPML eksport
+ OPML-eksportHTML-eksportEksportere databaseImportere database
@@ -553,14 +563,15 @@
Den eksporterede fil blev skrevet til:\n\n%1$sAdgang til eksternt lager er påkrævet for at læse OPML-filenVælg fil til import
- Importen lykkedes.\n\nTryk venligst OK for at genstarte AntennaPod
+ Importeret
+ Tryk venligst OK for at genstarte AntennaPodDatabasen var exporteret af en nyere version af AntennaPod. Din nuværende installation ved ikke endnu hvordan den skal håndtere denne fil.Foretrukne eksportEksportere gemte foretrukne til filIndstil søvntimerSlå søvntimer fra
- Søvn timer
+ SøvntimerUgyldig indtastning: tid skal være et heltalRyst for at nulstilleVibrere kort før afslutning
@@ -648,7 +659,6 @@
Mindsk hastighedLydVideo
- Naviger opadUdsendelse overføresUdsendelse er i køenAfsnit er markeret som favorit
@@ -669,6 +679,10 @@
Hold opdateretInkludere denne podcast når alle podcast genindlæsesAutomatisk download slået fra i de generelle AntennaPod indstilinger
+ Lytter efter:
+ Afsnit på enhed:
+ Plads brugt:
+ Vis for alle podcasts »Opgraderer databasen
@@ -676,18 +690,27 @@
Søg efter podcast ...Søg i iTunes
+ Søg på Podcastindex.orgSøg i fyydAvanceret
- Tilføje podcast ved URL
+ Tilføj podcast via RSS adresseGennemse gpodder.netOpdag
+ Gem
+ Du valgte at skjule forslag.mere »
- Søgning drevet af %1$s
+ iTunes forslag
+ Resultater fra %1$s
+
+ Tilføj lokal mappe
+ Genforbind lokal mappe
+ I tilfælde af nægtelse af tilladelse kan du bruge denne til at forbinde til præcis den samme mappe. Vælg ikke en anden mappe.
+ Denne virtuelle podcast blev oprettet ved at en mappe blev føjet til AntennaPod.FiltrérAlleMarkerede alle udsendelser
- Ingen
+ IngenAfmarkerede alle udsendelserAfspilledeMarkerede afspillede udsendelser
@@ -697,12 +720,21 @@
Markerede overførte udsendelserIkke-overførteMarkerede ikke-overførte udsendelser
- Sat i køMarkerede udsendelser, der er sat i kø
- Ikke sat i køMarkerede udsendelser, der ikke er sat i kø
- Har medierMarkerede udsendelser med medier
+ Er foretrukken
+ Ikke foretrukken
+ Overførte
+ Ikke overførte
+ Sat i kø
+ Ikke sat i kø
+ Har medier
+ Ingen medier
+ Sat på pause
+ Ikke sat på pause
+ Afspillede
+ Ikke afspilletTitel (A \u2192 Å)Titel (Å \u2192 A)
@@ -722,6 +754,12 @@
Lad mig værePåmind mig senereKlart, lad os gøre det!
+
+ Medtag:
+ Afspilningsposition
+ Adresse på mediefil
+ Afsnit netsted
+ MediefilLydknapperAfspilningshastighed
@@ -768,7 +806,9 @@
Spiller nuGiver adgang til at kontrollere afspilning. Dette er den mest normale notifikation du vil se, mens du afspiller en podcast.Fejl
- Vist hvis noget gik galt, for eksempel ved download eller gpodder synkroniserings fejl.
+ Vises hvis noget gik galt, for eksempel hvis en overførsel eller feed-opdatering fejlede.
+ Synkroniseringsfejl
+ Vises når gpodder-synkronisering fejler.Automatisk hentningerVist når episoder automatisk var blevet downloaded.
diff --git a/core/src/main/res/values-de/strings.xml b/core/src/main/res/values-de/strings.xml
index c9fd04079..dd80c824b 100644
--- a/core/src/main/res/values-de/strings.xml
+++ b/core/src/main/res/values-de/strings.xml
@@ -25,17 +25,17 @@
Der Episodenspeicher ist voll. Du kannst die Größe des Episodenspeichers in den Einstellungen erhöhen.WiedergabeDownloads
+ Benachrichtigungen
- Gesamtzeit gespielter Podcasts:
+ Gesamtzeit aller gespielten Episoden%1$d von %2$d Episoden gestartet.\n\n%3$s von %4$s Episoden gespielt.Statistik-ModusBerechne die tatsächlich gespielte Dauer. Zweimaliges Abspielen wird auch zwei Mal gezählt, als gespielt markierte Episoden jedoch gar nicht
- Aufsummieren aller als gespielt markierter Episoden
+ Alle als gespielt markierten Episoden summierenHinweis: Die Abspielgeschwindigkeit wird nicht berücksichtigt.Statistiken zurücksetzenDie Abspieldauer wird für alle Episoden gelöscht. Möchtest du wirklich fortfahren?
- Gesamtgröße der heruntergeladenen Podcasts:Menü öffnenMenü schließen
@@ -49,6 +49,8 @@
Anzahl ungespielter EpisodenAnzahl heruntergeladener EpisodenKeine
+
+ Keine kompatiblen Apps gefundenIm Browser öffnenURL kopieren
@@ -124,14 +126,8 @@
Podcast-EinstellungenPodcast umbenennenPodcast entfernen
- Teilen…
- Episoden URL Teilen
- Teile Link mit ZeitmarkeTeile Datei
- Teile URL der Website
- Podcast-URL teilen
- Teile URL der Episodendatei
- Teile URL der Episodendatei mit Zeitmarke
+ Podcast feed URLBitte bestätige, dass du den Podcast \"%1$s\" und ALL dessen Episoden entfernen möchtest (auch heruntergeladene).Podcast wird entferntKompletten Podcast aktualisieren
@@ -139,14 +135,9 @@
Alles oberhalb auswählenAlles unterhalb auswählenUngespielt
- Pausiert
- GespieltIn WarteschlangeNicht in Warteschlange
- Heruntergeladen
- Nicht heruntergeladenHat Medien
- FavoritGefiltert{fa-exclamation-circle} Aktualisierung fehlgeschlagenPodcast öffnen
@@ -238,7 +229,6 @@
Verarbeite DownloadsLade Podcast-Daten
- %1$d Downloads erfolgreich, %2$d fehlgeschlagenUnbekannter TitelFeedMediendatei
@@ -251,7 +241,8 @@
Das Herunterladen über die mobile Datenverbindung ist in den Einstellungen deaktiviert.\n\nVorübergehend erlauben?\n\nDeine Entscheidung wird für 10 Minuten gespeichert.Mobiles Streamen bestätigenStreamen über mobile Datenverbindung ist in den Einstellungen deaktiviert. Tippen, um trotzdem zu streamen.
- Immer erlauben
+ Immer
+ EinmaligZur Warteschlange hinzufügenVorübergehend erlauben
@@ -297,8 +288,8 @@
Plugin herunterladenPlugin nicht installiertUm variable Wiedergabegeschwindigkeit benutzen zu können, empfehlen wir, den integrierten Sonic Mediaplayer zu aktivieren.
- WiedergabegeschwindigkeitenSonic aktivieren
+ VoreinstellungLeere WarteschlangeDu kannst Episoden hinzufügen, indem du sie herunterlädst oder sie lange antippst und \"Zur Warteschlange hinzufügen\" auswählst.
@@ -371,7 +362,6 @@
jede %1$sum %1$sDurchgehendes Abspielen
- Kopfhörer-TrennungKopfhörer wieder eingestecktBluetooth wieder verbundenStreamen bevorzugen
@@ -384,7 +374,6 @@
Episoden herunterladenStreamenBenutzeroberfläche
- Erscheinungsbild, Reihenfolge der Abonnements, SperrbildschirmTheme auswählenSeitenleiste ändernÄndere, welche Einträge in der Seitenleiste erscheinen
@@ -423,10 +412,8 @@
Komplette Synchronisation erzwingenKompletten Abonnement- und Episoden-Status mit gpodder.net synchronisieren.%1$s mit dem Gerät %2$s]]>
- Zeige Benachrichtungen bei Synchronisierungsfehlern
+ Synchronisation fehlgeschlagenDiese Einstellung gilt nicht für Authentifizierungsfehler.
- Wiedergabegeschwindigkeiten
- Lege die verfügbaren Werte für die Veränderung der Wiedergabeschwindigkeit festAbspielgeschwindigkeit für Episoden dieses PodcastsAutomatisches ÜberspringenEinleitung und Ende überspringen.
@@ -446,15 +433,13 @@
Dies erweitert normalerweise die Benachrichtigung und zeigt so die Wiedergabe-Buttons an.Persistente WiedergabesteuerungZeige Wiedergabebedienelemente in der Benachrichtigung und im Lockscreen an, während die Wiedergabe pausiert ist.
- Lockscreen-Wiedergabetasten festlegen
- Verändere die Wiedergabetasten auf dem Lockscreen. Die Abspielen-/Pause-Taste wird immer angezeigt.Wähle bis zu %1$d Elemente ausDu kannst maximal %1$d Elemente auswählen.Lockscreen-Hintergrund einstellenVerwende das aktuelle Episodenbild als Lockscreen-Hintergrund. Es wird als Nebeneffekt auch in anderen Apps gezeigt.
- Zeige Download-Bericht
+ Download fehlgeschlagenWenn Downloads fehlschlagen, erstelle einen Bericht, der die Details des Fehlschlages beschreibt.
- Zeige Bericht über Automatische Downloads
+ Automatischer Download abgeschlossenZeige eine Benachrichtigung für automatisch heruntergeladene Episoden.Android-Versionen vor 4.1 unterstützen keine erweiterten Benachrichtigungen.Position beim Einreihen
@@ -504,6 +489,9 @@
Seite auswählenLöschen entfernt aus WarteschlangeEntferne Episoden automatisch aus der Warteschlange, wenn sie gelöscht werden.
+ Automatisch heruntergeladen
+ Aktuell gehalten
+ Nicht aktuell gehaltenÜberAntennaPod-Version
@@ -553,7 +541,7 @@
Die exportierte Datei wurde geschrieben nach:\n\n%1$sZugriff auf externen Speicher wird benötigt, um die OPML Datei zu lesenZu importierende Datei auswählen
- Import erfolgreich.\n\nBitte OK drücken, um AntennaPod neuzustarten
+ Import erfolgreichDiese Datenbank wurde mit einer neueren Version von AntennaPod exportiert. Deine im Moment installierte Version kann die Datei leider nicht bearbeiten.Favoriten exportierenSpeichere Favoriten in einer Datei
@@ -648,7 +636,6 @@
Geschwindigkeit reduzierenAudioVideo
- Nach oben navigierenEpisode wird heruntergeladenEpisode befindet sich in der WarteschlangeEpisode ist als Favorit markiert
@@ -669,6 +656,7 @@
Aktuell haltenDiesen Podcast bei der (automatischen) Aktualisierung berücksichtigenAutomatisches Herunterladen ist in den Einstellungen deaktiviert
+ Verwendeter Speicherplatz:Datenbank wird aktualisiert
@@ -678,16 +666,16 @@
iTunes durchsuchenfyyd durchsuchenFortgeschritten
- Podcast über URL hinzufügengpodder.net durchsuchenEntdeckenmehr »
- Suche bereitgestellt durch %1$s
+
+ Lokalen Ordner hinzufügen
+ Dieser virtuelle Podcast wurde durch einen lokalen Ordner hinzugefügt.FilternAlleAlle Episoden ausgewählt
- KeineAlle Episoden abgewähltGespieltGespielte Episoden ausgewählt
@@ -697,12 +685,18 @@
Heruntergeladene Episoden ausgewähltNicht heruntergeladenNicht heruntergeladene Episoden ausgewählt
- In WarteschlangeEpisoden in der Warteschlange ausgewählt
- Nicht in WarteschlangeEpisoden nicht in der Warteschlange ausgewählt
- Hat MedienEpisoden mit Medien ausgewählt
+ Favorit
+ Heruntergeladen
+ Nicht heruntergeladen
+ In Warteschlange
+ Nicht in Warteschlange
+ Hat Medien
+ Keine Medien
+ Pausiert
+ GespieltTitel (A \u2192 Z)Titel (Z \u2192 A)
@@ -722,6 +716,8 @@
Lass mich in RuheErinnere mich späterSicher, los geht\'s!
+
+ AbspielpositionAudioreglerAbspielgeschwindigkeit
@@ -768,7 +764,7 @@
Jetzt spieltErlaubt es, die Wiedergabe zu steuern. Dies ist die Hauptbenachrichtigung, die du siehst, während ein Podcast abgespielt wird.Fehler
- Wird gezeigt, wenn etwas schief gegangen ist, etwa wenn das Herunterladen oder die gpodder-Synchronisierung fehlschlägt.
+ Fehler bei der SynchronisationAutomatische DownloadsWird angezeigt, wenn Episoden automatisch heruntergeladen worden sind.
diff --git a/core/src/main/res/values-es/strings.xml b/core/src/main/res/values-es/strings.xml
index e3a443991..b7ee03759 100644
--- a/core/src/main/res/values-es/strings.xml
+++ b/core/src/main/res/values-es/strings.xml
@@ -25,17 +25,19 @@
Se ha alcanzado el límite de almacenamiento de episodios. Puede aumentar el tamaño en opciones.ReproducciónDescargas
+ Notificaciones
- Tiempo total de reproducción de pódcast:
+ Tiempo total de reproducción de episodios:%1$d episodios iniciados de %2$d.\n\nReproducidos %3$s de %4$s.Modo de estadísticasCalcula la duración real reproducida. Reproducir dos veces cuenta doble y marcar como leído no cuenta como reproducido
- Suma de todos los pódcast marcados como reproducidos
+ Suma de todos los episodios marcados como reproducidosAviso: La velocidad de reproducción nunca se tiene en cuenta.Borrar estadísticasEsto borrará el historial de duración reproducida de todos los episodios. ¿Confirma que quiere hacerlo?
+ Desde %s,\nhas reproducido
- Tamaño total de pódcast descargados:
+ Tamaño total de episodios en dispositivo:Abrir menúCerrar menú
@@ -49,6 +51,8 @@
Número de episodios no reproducidosNúmero de episodios descargadosNinguno
+
+ No se encontraro apps compatiblesAbrir en el navegadorCopiar URL
@@ -124,29 +128,22 @@
Ajustes del pódcastRenombrar el pódcastEliminar el pódcast
- Compartir…
- Compartir URL del episodio
- Compartir URL del episodio con posición
+ Compartir
+ Compartir…Compartir el archivo
- Compartir URL Web
- Compartir URL del Podcast
- Compartir URL del archivo
- Compartir URL del archivo con posición
+ Dirección web
+ URL del feed del podcastConfirme que quiere borrar el pódcast \"%1$s\" y TODOS los episodios (incluidos los descargados).
+ Confirme que quiere borrar el podcast \"%1$s\". Los archivos en la carpeta origen local no serán borrados.Eliminando el pódcastActualizar el pódcast completoMulti selecciónSeleccionar todo lo anteriorSeleccionar todo lo siguienteNo reproducidos
- Pausados
- ReproducidosEn colaNo en cola
- Descargados
- No descargadosTiene multimedia
- Es favoritoFiltrados{fa-exclamation-circle} Error en la última actualizaciónAbrir pódcast
@@ -238,7 +235,10 @@
Procesando descargasDescargando datos del pódcast
- %1$d descargas exitosas, %2$d fallidas
+
+ %d descarga exitosa, %d fallidas
+ %d descargas exitosas, %d fallidas
+ Título desconocidoCanalArchivo multimedia
@@ -251,7 +251,8 @@
Se desactivaron las descargas por red de datos móviles en la configuración.\n\n¿Quiere permitir las descargas temporalmente?\n\nSe recordará su elección durante 10 minutos.Confirmar streaming por red móvilEl streaming sobre datos móviles está deshabilitado en los ajustes. Toca para hacer el streaming de todas formas.
- Permitir siempre
+ Siempre
+ Una vezAñadir a la colaPermitir temporalmente
@@ -297,8 +298,9 @@
Descargar complementoComplemento no instaladoPara que funcione la reproducción a velocidad variable, recomendamos habilitar el reproductor incorporado Sonic.
- Velocidades de reproducciónActivar Sonic
+ Presets
+ %1$.2fx ya existe como preset.Sin episodios en la colaAñada un episodio descargándolo o presione prolongadamente un episodio y seleccione \"Añadir a la cola\".
@@ -371,7 +373,7 @@
todos los %1$sa las %1$sReproducción continua
- Desconectar sin los auriculares
+ Desconexión de los auricuales o BluetoothReconectar con los auricularesReconectar con BluetoothPreferir Streaming
@@ -384,7 +386,7 @@
Descarga de episodioStreamingInterfaz de usuario
- Apariencia, Orden de suscripción, Pantalla de bloqueo
+ Apariencia, Suscripción, Pantalla de bloqueoElegir un temaCambiar el cajón de navegaciónCambiar los ítems que aparecen en el cajón de navegación
@@ -423,10 +425,9 @@
Forzar la sincronización completaSincronizar todas las suscripciones y episodios con gpodder.net.%1$s con dispositivo %2$s]]>
- Mostrar errores de sincronización
+ Error en la sincronizaciónEste ajuste no afecta a los errores de autenticación.
- Velocidades de reproducción
- Personalice las velocidades disponibles en la reproducción de audio a velocidad variable
+ Personalice las velocidades disponibles en la reproducción a velocidad variableLa velocidad a la que comenzarán los episodios de este podcastSaltar automáticoSaltar introducción y créditos finales.
@@ -446,15 +447,15 @@
Esto suele expandir las notificaciones para mostrar los botones de reproducción.Controles de reproducción persistentesMantener las notificaciones y los controles en pantalla de bloqueo cuando se pausa la reproducción.
- Configurar botones en la pantalla de bloqueo
- Cambiar los botones en la pantalla de bloqueo. El botón reproducir/pausar siempre está incluido.
+ Activar botones de notificación compactos
+ Cambiar los botones cuando la notificación está contraída. El botón reproducir/pausar siempre está incluido.Seleccionar máximo %1$d elementosSólo puede seleccionar un máximo de %1$d elementos.Establecer fondo de pantalla de bloqueoEstablecer el fondo de pantalla de bloqueo desde la imagen del episodio. Como efecto secundario, esto también mostrarán las imagen de aplicaciones de terceros.
- Mostrar informe de descarga
+ Descarga fallidaSi la descarga falla, generar un informe con los detalles del fallo
- Mostrar Informe de Auto Descarga
+ Auto-descarga completadaMostrar una notificación de los episodios descargados automáticamente.Las versiones de Android anteriores a la 4.1 no soportan notificaciones expandidasAñadir a la cola en cierta ubicación
@@ -504,9 +505,19 @@
Seleccionar páginaEliminar quita de la colaQuitar automáticamente un episodio de la cola cuando se elimina.
+ Filtro de suscripción
+ Filtra tus suscripciones en el cajón de navegación y pantallas de suscripción.
+ Ninguno
+ Las suscripciones están filtradas.
+ Auto-descargado
+ No auto-descargado
+ Mantenido actualizado
+ No mantenido actualizadoAcerca deVersión de AntennaPod
+ Contribuidores
+ Todo el mundo puede ayudar a mejorar AntennaPod - con código, traducciones o ayudando a usuarios del foroDesarrolladoresTraductoresGracias especiales
@@ -536,6 +547,7 @@
Transferir suscripciones, episodios escuchados y la cola a AntennaPod en otro dispositivoImportar base de datos de AntennaPod desde otro dispositivoImportar de OPML
+ Importar lista de podcast (OPML)Error al leer el documento OPML:¡Debe seleccionar un archivo!Seleccionar todo
@@ -551,9 +563,11 @@
El archivo exportado fue guardado en:\n\n%1$sNecesita acceso al almacenamiento externo para leer archivos OPMLSeleccionar archivo a importar
- Importación exitosa.\n\nPulse OK para reiniciar AntennaPod
+ Importación exitosa
+ Pulse OK para reiniciar AntennaPodEsta base de datos fue exportada con una versión más moderna de AntennaPod. La versión instalada no puede manejarla.Exportar favoritos
+ Se exportaron los favoritos al archivoEstablecer un temporizadorDesactivar el temporizador
@@ -645,7 +659,6 @@
Reducir velocidadAudioVídeo
- Navegar hacia arribaEl episodio se está descargandoEl episodio está en la colaEpisodio marcado como favorito
@@ -666,6 +679,10 @@
Mantener actualizadoIncluir este podcast cuando se (auto-)refresquen todas las fuentesLa descarga automática está deshabilitada en las preferencias generales de AntennaPod
+ Escuchado durante:
+ Episodios en el dispositivo:
+ Espacio usado:
+ Ver para todos los podcasts »Actualizando la base de datos
@@ -673,18 +690,27 @@
Buscar podcast...Buscar en iTunes
+ Buscar en Podcastindex.orgBuscar en fyydAvanzado
- Añadir Podcast por URL
+ Añadir Podcast por dirección RSSExplorar en gpodder.netDescubrir
+ Esconder
+ Elegiste esconder las sugerencias.más »
- Búsqueda gracias a %1$s
+ Sugerencias de iTunes
+ Resultados de %1$s
+
+ Añadir carpeta local
+ Re-conectar carpeta local
+ En caso de falta de permisos, puedes usar esto para re-conectar la misma carpeta. No selecciones otra carpeta.
+ Este podcast virtual fue creado añadiendo una carpeta a AntennaPod.FiltroTodosTodos los episodios seleccionados
- Ninguno
+ NingunoNingún episodio seleccionadoReproducidosEpisodios reproducidos seleccionados
@@ -694,12 +720,21 @@
Episodios descargados seleccionadosNo descargadoEpisodios no descargados seleccionados
- En colaEpisodios en cola seleccionados
- No están en colaEpisodios que no están en cola seleccionados
- Tiene multimediaEpisodios con multimedia seleccionados
+ Es favorito
+ No favorito
+ Descargados
+ No descargados
+ En cola
+ No están en cola
+ Tiene multimedia
+ Sin medios
+ Pausados
+ No pausado
+ Reproducidos
+ No reproducidoTítulo (A \u2192 Z)Título (Z \u2192 A)
@@ -719,6 +754,12 @@
Déjame en pazRecuérdamelo más tarde¡Venga, hagámoslo!
+
+ Incluir:
+ Posición de reproducción
+ Dirección del archivo de medios
+ Página del episodio
+ Archivo de mediosControles de audioVelocidad de reproducción
@@ -765,7 +806,9 @@
ReproduciendoPermite controlar la reproducción. Es la notificación principal que se ve mientras se reproduce un pódcast.Errores
- Muestra si algo salió mal, por ejemplo, si falla la descarga o la sincronización de gpodder
+ Muestra si algo salió mal, por ejemplo, si falla la descarga o la actualización del feed.
+ Errores de sincronización
+ Mostrar cuando falle la sincronización de gpodder.Descargas automáticasMostrar cuándo los episodios se han descargado automáticamente.
diff --git a/core/src/main/res/values-et/strings.xml b/core/src/main/res/values-et/strings.xml
index db10f6ca4..fef176d42 100644
--- a/core/src/main/res/values-et/strings.xml
+++ b/core/src/main/res/values-et/strings.xml
@@ -26,16 +26,13 @@
EsitamineAllalaadimised
- Kuulatud taskuhäälingute kogupikkus:%1$d %2$d-st saatest on alustatud.\n\nKuulatud on %3$s saadet %4$s-st.Statistika režiimArvuta kuulamise pikkus tegelikult kuulatud aja järgi. Kaks korda kuulatud koht arvestatakse topelt, aga kuulatuks märkimist ei arvestata
- Liidetakse kõik saated, mis on märgitud kuulatuksMärkus: taasesituse kiirust ei arvestata kunagi.Lähtesta statistika andmedSee lähtestab kõigi esitatud saadete kuulamise pikkuse ajaloo. Kas oled kindel, et tahad jätkata?
- Allalaaditud taskuhäälingute kogumaht:Ava menüüSulge menüü
@@ -49,6 +46,7 @@
Kuulamata saadete arvAllalaaditud saadete arvPole
+
Ava veebisirvijasKopeeri URL
@@ -124,14 +122,7 @@
Taskuhäälingu seadedMuuda taskuhäälingu nimeEemalda taskuhääling
- Jaga...
- Jaga saate linki
- Jaga saate linki koos asukohagaJaga faili
- Jaga veebilehe linki
- Jaga taskuhäälingu linki
- Jaga meediafaili linki
- Jaga meediafaili linki koos asukohagaPalun kinnita, et tahad kustutada taskuhäälingu \"%1$s\" ja KÕIK selle saated (ka allalaaditud saated).Taskuhäälingu eemaldamineVärskenda kogu taskuhääling
@@ -139,14 +130,9 @@
Vali kõik ülemisedVali kõik alumisedEsitamata
- Peatatud
- EsitatudJärjekorrasPole järjekorras
- Alla laaditud
- Pole alla laaditudOn meediafaile
- On lemmikFiltreeritud{fa-exclamation-circle} Viimane värskendamine ebaõnnestusAva taskuhääling
@@ -238,7 +224,6 @@
Allalaadimiste töötlemineTaskuhäälingu andmete allalaadimine
- %1$d allalaadimine õnnestus, %2$d nurjusTundmatu pealkiriUudisvoogMeediafail
@@ -251,7 +236,6 @@
Allalaadimine mobiilse andmeside kaudu on seadetest keelatud.\n\nKas tahad allalaadimise ajutiselt lubada?\n\nSinu valikut peetakse meeles 10 minutit.Kinnita voogedastus andmeside kauduVoogedastus andmeside kaudu on seadetest keelatud. Koputa, et ikka striimida.
- Luba alatiJärjekordaLuba ajutiselt
@@ -297,7 +281,6 @@
Laadi plugin allaPluginat pole paigaldatudMuutuva kiirusega taasesituse jaoks soovitame lubada sisseehitatud Sonic meediaesitaja.
- Esitamise kiirusedLuba Sonicu kasutamineJärjekorras ei ole saateid
@@ -371,7 +354,6 @@
iga %1$skell %1$sPidev esitamine
- Kõrvaklappide eemaldamineKõrvaklappide uuesti ühendamineBluetoothi uuesti ühendamineEelista voogedastust
@@ -384,7 +366,6 @@
Saate allalaadimineVoogedastusKasutajaliides
- Välimus, tellimuste järjekord, lukuekraanVali teemaMäära peamenüü osadMäära, mis osad on peamenüüs.
@@ -423,10 +404,7 @@
Nõua täielikku sünkroonimistSünkroniseeri kõiki tellimusi ja saate olekuid gpodder.net-iga.%1$s seadmega %2$s]]>
- Kuva sünkroniseerimise vigu teadaannetenaSee seadistus ei rakendu autentimise vigadele.
- Esitamise kiirused
- Muuda, millised valikud on audio esitamisel kiiruste loendisMillise kiirusega esitatakse selle tellimuse saadete heliAutomaatne vahelejätmineSissejuhatuse ja lõputänu vahele jätmine.
@@ -446,15 +424,11 @@
See tavaliselt kuvab teadet laiemana ning näha on esitusnupud.Püsivad taasesitamise nupudSäilita märguande ja lukustuskuva juhtnupud, kui esitus on pausil.
- Määra lukustusekraani nupud
- Muuda esituse nuppe lukuekraanil. Esitamise/pausi nupp on alati olemas.Vali maksimaalselt %1$d kirjetMaksimaalselt saab valida %1$d kirjet.Määra lukustusekraani taustapiltMäära lukuekraani taustaks selle saate pilt. Kõrvalmõjuna kuvab see pilti ka teistes rakendustes.
- Näita allalaadimise aruannetKui allalaadimised nurjuvad, genereeri raport, mis kuvab vea üksikasju.
- Kuva automaatse allalaadimise raportitTeate kuvamine automaatselt allalaaditud saadete kohta.Vanemad Androidi versioonid kui 4.1 ei toeta laiendatud teavitusi.Järjekorra asukoht
@@ -553,7 +527,6 @@
Eksporditud fail salvestati asukohta:\n\n%1$sOPML faili lugemiseks on vajalik ligipääs välisele salvestusruumileVali fail, mida importida
- Importimine edukas.\n\nAntennaPodi taaskäivitamiseks vajuta OKSee andmebaas on eksporditud AntennaPodi uuemast versioonist. Sinu praegune äpp ei oska seda faili käsitseda.Lemmikute eksportEkspordi salvestatud lemmikud faili
@@ -648,7 +621,6 @@
Vähenda kiirustHeliVideo
- Liigu ülespooleSaade laaditakse allaSaade on järjekorrasSaade on märgitud lemmikuks
@@ -678,16 +650,14 @@
Otsi iTunestSearch fyyd-istTäpsem
- Lisa taskuhääling URL abilSirvi gpodder.net-iAvastaveel »
- Otsingut pakub %1$s
+
FilterKõikVali kõik saated
- PoleTühista kõigi saadete valikEsitatudValitud kuulatud saated
@@ -697,12 +667,17 @@
Valitud allalaaditud saatedPole alla laaditudValitud allalaadimata saated
- JärjekorrasValitud järjekorras olevad saated
- Pole järjekorrasValitud järjekorras mitte olevad saated
- On meediafaileValitud saated meediafailidega
+ On lemmik
+ Alla laaditud
+ Pole alla laaditud
+ Järjekorras
+ Pole järjekorras
+ On meediafaile
+ Peatatud
+ EsitatudPealkiri (A \u2192 Z)Pealkiri (Z \u2192 A)
@@ -722,6 +697,7 @@
Jäta mind rahuleTuleta hiljem meeldeJah, otseloomulikult!
+
Audioesitaja nupudEsitamise kiirus
@@ -768,7 +744,6 @@
Praegu esitatakseVõimaldab esitust juhtida. See on saate kuulamise ajal peamine teade.Vead
- Näidatakse, kui miski läks valesti, näiteks allalaadimine või gpodderiga sükroonimine nurjus.Automaatsed allalaadimisedNäita, kui saateid laaditi automaatselt alla.
diff --git a/core/src/main/res/values-eu/strings.xml b/core/src/main/res/values-eu/strings.xml
index e4b4fe4b6..eb164ba91 100644
--- a/core/src/main/res/values-eu/strings.xml
+++ b/core/src/main/res/values-eu/strings.xml
@@ -22,20 +22,22 @@
gpodder.netSaioa hasi gpodder.net-enSaioen katxea beteta
- Saioen katxeta mugara iritsi da. Ezarpenetan katxearen tamaina handitu dezakezu.
- Irakurketa
+ Saioen katxea mugara iritsi da. Ezarpenetan katxearen tamaina handitu dezakezu.
+ ErreprodukzioaDeskargak
+ Jakinarazpenak
- Ikusitako podcast denen denbora:
+ Ikusitako saio denen denbora:%1$d kanpo %2$d hasitako saioetatik. %3$s \n\nErreproduzituak %4$setatik.Estatistika moduaBenetan ikusitakoen iraupena kalkulatzea. Bi aldiz ikustean bi aldiz kontatzen da; ikusita bezala markatzea, berriz, ez da kontatzen
- Ikusita markatutako podcast guztien laburpena
+ Ikusita markatutako saio guztien laburpenaOharra: erreprodukzioaren abiadura ez da sekula kontutan hartzen.Estatistikak ezabatuHorrek atal guztien iraupenaren historia ezabatuko du. Ziur zaude egin nahi duzula?
+ %s,\n-tik hasita ikusi dituzu
- Deskargatutako podcasten tamaina:
+ Gailuko saioen tamaina guztira:Zabaldu menuaItxi menua
@@ -49,6 +51,8 @@
Ikusi gabeko saioen zenbatekoaDeskargatutako saioen zenbatekoaBat ere ez
+
+ Ez dago app bateragarririkNabigatzailean irekiURLa kopiatu
@@ -124,29 +128,22 @@
Podcastaren ezarpenakBerrizendatu podcastaKendu podcasta
- Partekatu...
- Partekatu URL saioa
- Partekatu URL saioa kokapenaz
+ Partekatu
+ Partekatu...Partekatu fitxategia
- URL web gunea partekatu
- Podcastaren lotura parteatu
- Partekatu media fitxategiaren URLa
- Partekatu Media Fitxategiaren URLa kokapenaz
+ Web gunea
+ Fluxuaren loturaMesedez berretsi \"%1$s\" podcasta eta bere saio \"guztiak\" (deskargatutako saioak barne) ezabatu nahi dituzula.
+ Baieztatu, mesedez, \"%1$s\" podcasta ezabatu nahi duzula. Tokiko karpetako artxiboak ez dira ezabatukoThe files in the local source folder will not be deleted.Podcasta ezabatzenEguneratu osatutako podcastaHautaketa anitzaAukeratu dena goianAukeratu dena beheanIkusi gabe
- Geldirik
- IkusitaIlaranEz dago ilaran
- Deskargatuta
- Deskargatu gabeMedia du
- Gogokoa daIragaziak{fa-exclamation-circle} Errorea azken eguneraketanIreki podcasta
@@ -238,7 +235,10 @@
Deskargak prozesatzenPodcastaren datuak deskargatzen
- %1$d deskarga arrakastatsu, %2$d huts egin dute
+
+ Deskarga arrakastatsu %d , %d (e)k huts egin du(te)
+ %d deskarga arrakastasuak, %d (e)k huts egin du(te)
+ Izenburu ezezagunaKanalaMedia artxibategia
@@ -251,7 +251,8 @@
Datu mugikorren sareko deskargak desaktibatu dira konfigurazioan.\n\n Deskargak aldi baterako baimendu nahi dituzu?\n\n10 minutura haien aukeraketa gogora araziko da.Berretsi datu mugikor bidezko zuzenekoaKonexioaren datu bidezko zuzenekoa desgaiturik dago ezarpenetan. Sakatu halere ikusteko.
- Baimendu beti
+ Beti
+ BehinGehitu ilaranBaimendu aldi baterako
@@ -297,8 +298,9 @@
Deskargatu osagarriaOsagarria instalatu gabeAbiadura aldakorreko erreprodukzioak funtziona dezan, Sonic multimedia-erreproduzitzailea gehitzea gomendatzen dugu.
- Erreprodukzio abiadurakGaitu Sonic
+ Aurrez ezarritakoak
+ %1$.2f dagoeneko aurrez ezarria dago.Saiorik ez ilaranGehitu saio bat deskargatuz edo sakatu luzaro saio bat eta hautatu \"gehitu ilarari\".
@@ -371,7 +373,7 @@
%1$sdenak%1$setanEtengabeko erreprodukzioa
- Deskonektatu entzungailurik gabe
+ Entzungailu edo Bluetootharen deskonexioaBirkonektatu entzungailuezBirkonektatu bluetooth bidezNahiago zuzenean
@@ -384,7 +386,7 @@
Saioaren deskarga ZuzeneanErabiltzailearen interfazea
- Itxura, harpidetzen ordena, blokeatzeko pantaila
+ Itxura, izen emateak, blokeo pantailaGai bat aukeratuAldatu nabigatze kutxaAldatu nabigatze kutxan azaltzen diren elementuak
@@ -423,10 +425,9 @@
Sinkronizazio osoa behartuSinkronizatu harpidetza denak eta saioak gpodder.net-ekin%1$s gailu honekin %2$s]]>
- Erakutsi sinkronizatze erroreak
+ Akatsa sinkronizazioan Ezarpen honek ez du eraginik saio hasierako erroretan eraginik.
- Erreproduzitzeko abiadurak
- Pertsonalizatu eskura dauden abiadurak audio erreproduzitzeko abiadura aldakorrean
+ Pertsonalizatu abiadura aldakorreko erreprodukzioan dauden abiadurakPodcast hauen berezko irakurtze abiaduraSalto automatikoaSaltatu sarrera eta amaiera kredituak.
@@ -448,15 +449,15 @@
Honek jakinarazpenak zabaltzen ditu erreprodukzio botoiak erakustekoErreprodukzio kontrol iraunkorrakEutsi jakinarazpenak eta kontrolak blokeo pantailan erreprodukzioa gelditzean
- Konfiguratu botoiak blokeo pantailan
- Aldatu botoiak blokeatze pantailan. Erreproduzitu/gelditu botoia beti azalduko da.
+ Aktibatu jakinarazpen-botoi trinkoak
+ Aldatu botoiak jakinarazpena hartuta dagoenean. Erreproduzitu/eten botoia beti dago sartuta.Aukeratu gehienez %1$d elementuEzingo duzu %1$d elementu baino gehiago aukeratu.Ezarri blokeo pantailaren atzealdeaEzarri saioaren irudia blokeo pantailarako atzealdea moduan. Horren eraginez, hirugarrenen aplikazio irudiak ere azalduko dira.
- Deskarga txostena erakutsi
+ Deskargak huts egin duDeskargak huts egiten badu, sortu txostena akatsaren xehetasunekin.
- Deskarga automatikoen txostena erakutsi
+ Deskarga automatikoak osatutaErakutsi automatikoki deskargatutako saioen jakinarazpen bat.Android 4.1 aurreko bertsioek ez dituzte zabaldutako jakinarazpenak jasatenIlaran gehitu kokalekuan
@@ -506,6 +507,14 @@
Aukeratu orrialdeaEzabatu ilaratik kendutakoakKendu saio bat automatikoki ilaratik ezabatzean.
+ Harpidetza iragazkia
+ Iragazi harpidetzak nabigazio-kutxan eta harpidetza-pantailetan.
+ Batere ez
+ Harpidetzak iragazita daude.
+ Automatikoki deskargatuta
+ Automatikoki deskargatu gabe
+ Eguneratuta dago
+ Ez dago eguneratutaHoni buruzAntennaPod bertsioa
@@ -540,6 +549,7 @@
Bidali beste gailu batera harpidetzak, ikusitako saioak eta irakur zerrendaEkarri AntennaPodera datu basea beste gailu batetikInportatu OPMLtik
+ Podcasten zerrenda inportatu (OPML)Errorea OPML dokkumentua irakurtzean:Artxibategi bat aukeratu behar duzu!Aukeratu dena
@@ -555,7 +565,8 @@
Esportatutako artxibategia hemen gorde da:\n\n%1$sKanpo biltegirako sarrera behar duzu OPML artxibategiak irakurtzekoAukeratu inportatzeko fitxategia
- Inportazio arrakastatsua.\n\nSakatu OK, AntennaPod berrabiarazteko
+ Inportate arrakastatsua
+ Sakatu OK AntennaPod berrabiaraztekoDatu-basea AntennaPod-en bertsio berriago batekin esportatu zen. Uneko aplikazioak ez daki nola inportatu.Gogokoak esportatuGorde diren gogokoak esportatu artxibatzeko
@@ -587,7 +598,7 @@
KATEGORIAKPODCASTIK ONENAKIRADOKIZUNAK
- Bilatu gpodder.net-en bilatu
+ Bilatu gpodder.net-enHasi saioaOngi etorri gpodder.net saio hasierara. Hasteko zure saio hasierako datuak sartu:Hasi saioa
@@ -650,7 +661,6 @@
Gutxitu abiaduraAudioaBideoa
- Nabigatu gorantz Saioa deskargatzen ari daSaioa ilaran dagoSaioa gogokoa bezala markatu da
@@ -671,6 +681,10 @@
Eguneratuta edukiSartu podcast hau (auto-) freskatzeko podcast guztiakDeskarga automatikoa desgaituta dago AntennaPod-en lehentasun orokorretan
+ Zenbat denboran entzuna:
+ Gailuko saioak:
+ Erabilitako espazioa:
+ Podcast guztietarako ikusi »Datu basea eguneratzen
@@ -678,18 +692,27 @@
Bilatu podcastaBilatu itunes-en
+ Bilatu Podcastindex.org -enBilatu fyyd-enAurreratua
- Gehitu podcasta URL bidez
- Bilatu gpodder.net-en bilatu
+ Gehitu Podcasta RSS helbide bidez
+ Bilatu gpodder.net-enAurkitu
+ Ezkutatu
+ Iradokizunak ezkutatzea erabaki duzu.gehiago »
- Honek bultzatutako bilaketa:%1$s
+ iTunesen iradokizunak
+ %1$s -ren emaitzak
+
+ Gehitu tokiko karpeta
+ Birkonektatu tokiko karpeta
+ Baimenik izan ezean, hau erabil dezakezu karpeta berdina birkonektatzeko. Ez aukeratu beste karpetarik.
+ Podcast birtual hau AntennaPod-i karpeta bat gehituta sortu daIragaziaDenakAukeratutako saio denak
- Bat ere ez
+ Bat ere ezEz dago aukeratutako saiorikIkusitaIkusitako saio denak
@@ -699,12 +722,21 @@
Deskargatutako saio aukeratuakDeskargatu gabeDeskargatu gabeko saio aukeratuak
- IlaranIlarako saio aukeratuak
- Ez dago ilaranIlaran ez dauden saio aukeratuak
- Media duMedia duten saio aukeratuak
+ Gogokoa da
+ Ez da gogokoa
+ Deskargatuta
+ Deskargatu gabe
+ Ilaran
+ Ez dago ilaran
+ Media du
+ Bitartekorik gabe
+ Geldirik
+ Gelditu gabea
+ Ikusita
+ Erreproduzitu gabeaIzenburua (A \u2192 Z)Izenburua (Z \u2192 A)
@@ -724,6 +756,12 @@
Bakean utz nazazuGogoratu geroagoTira, egin dezagun!
+
+ Gehitu:
+ Erreprodukzioaren unea
+ Media artxibategien helbidea
+ Saioaren orrialdea
+ Media artxibategiakAudio kontrolakErreprodukzio abiadura
@@ -770,7 +808,9 @@
ErreproduzitzenErreprodukzioa kontrolatzeko aukera ematen du. Podcast bat erreproduzitzen den bitartean ikusten den jakinarazpen nagusia da.Erroreak
- Zerbait gaizki atera den erakusten du, adibidez, gpodder deskargak edo sinkronizazioak huts egiten duen.
+ Zerbait gaizki irten bada erakusten du, adibidez, jeitsi edo feed-eguneraketak huts egiten badute.
+ Akatsak sinkronizazioan
+ Erakutsi gpoder -en sinkronizazioak huts egitean.Deskarga automatikoakPasarteak automatikoki deskargatu direnean erakusten da.
diff --git a/core/src/main/res/values-fa/strings.xml b/core/src/main/res/values-fa/strings.xml
index 0ac3b684d..11b3cfda0 100644
--- a/core/src/main/res/values-fa/strings.xml
+++ b/core/src/main/res/values-fa/strings.xml
@@ -26,16 +26,13 @@
پخشبارگیریها
- مجموع زمان پادکستهای پخششده:%1$d از %2$d قسمتها شروع شده است.\n\n%3$s از %4$s پخش.حالت آمارمدت زمان واقعی پخش را محاسبه کنید. دو بار پخش کردن دو بار شمارش میشود، در حالیکه علامتگذاریشده بهعنوان پخششده محاسبه نمیشود.
- جمع مجموع پادکستهایی که تعیینشده بهعنوان پخششدهتوجه: سرعت پخش هرگز به حساب نمیآید.بازنشانی دادههای آماریاین همهٔ تاریخچهٔ طول پخش همهٔ قسمتهای را پاک میکند. مطمئنید که میخواید ادامه دهید؟
- جمع کل پادکستهای بارگیری شده:باز کردن منوبستن منو
@@ -49,6 +46,7 @@
تعداد قسمتهای پخشنشدهتعداد قسمتهای بارگیریشدههیچیک
+
باز کردن در مرورگرکپی کردن URL
@@ -124,14 +122,7 @@
تنظیمات پادکستتغییر نام پادکستپاک کردن پادکست
- همرسانی…
- همرسانی نشانی پادکست
- همرسانی URL قسمت با موقعیت پخشهمرسانی پرونده
- همرسانی نشانی تارنما
- همرسانی نشانی پادکست
- همرسانی نشانی پروندهٔ رسانهای
- همرسانی URL فایل قسمت با موقعیت پخشلطفا تأیید کنید که میخواهید پادکست «%1$s» و تمام قسمتهای آن که بارگیری کردهاید را حذف کنید.در حال پاک کردن پادکستتازهسازی تمام پادکست
@@ -139,14 +130,9 @@
انتخاب همهٔ بالاییهاانتخاب همهٔ پایینیهاپخشنشده
- متوقف شد
- پخش شددر صفخارج از صف
- بارگیریشده
- بارگیرینشدهدارای رسانه
- مورد علاقهفیلتر شده{fa-exclamation-circle} آخرین تازهسازی ناموفق بودباز کردن پادکست
@@ -238,7 +224,6 @@
پردازش بارگیریهابارگیری داده پادکست
- %1$d بارگیری موفق شد، %2$d شکست خوردعنوان ناشناختهخوراکپرونده رسانه
@@ -251,7 +236,6 @@
بارگیری بر روی اتصال دادهای همراه در تنظیمات غیر فعال شده است.\n\nمایلید به صورت موقت بارگیری صورت گیرد؟\n\nانتخاب شما برای ۱۰ دقیقهٔ آینده به خاطر سپرده میشود.پخش جریانی همراهپخش جریانی بر روی اتصال دادهای همراه در تنظیمات غیر فعال شده است. برای پخش جریانی به هر روی کلیک کنید.
- همیشه مجاز کندر صف قرار دادناجازهٔ موقت
@@ -297,7 +281,6 @@
بارگیری افزایهافزایه نصبنشدهبرای اینکه سرعت بازپخش متغیر کار کند، پیشنهاد میدهید که پخشکنندهٔ داخلی Sonic را استفاده کنید.
- سرعتهای پخشفعالسازی Sonicبدون قسمت صفشده
@@ -366,11 +349,8 @@
خروجخروج موفقیتآمیز بودتغییر اطلاعات ورود
- سرعتهای پخشتنظیم پسزمینه صفحهٔ قفل
- نمایش گزارش بارگیریدر صورت شکست در بارگیری، گزارشی تولید شود که جزئیات شکست را نشان دهد.
- نمایش گزارش بارگیری خودکاراندرویدهای قدیمیتر از نسخه ۴٫۱ از اعلانهای بسطیافته پشتیبانی نمیکنند.غیرفعالگزارش مشکل
@@ -476,9 +456,16 @@
مرور gpodder.net
+
+ مورد علاقه
+ بارگیریشده
+ بارگیرینشده
+ متوقف شد
+ پخش شد
+
diff --git a/core/src/main/res/values-fi/strings.xml b/core/src/main/res/values-fi/strings.xml
index f30824d7a..2dc804ee3 100644
--- a/core/src/main/res/values-fi/strings.xml
+++ b/core/src/main/res/values-fi/strings.xml
@@ -26,16 +26,13 @@
ToistoLataukset
- Podcasteja soitettu yhteensä:%1$d jakso %2$d:sta aloitettu.\n\nSoitettu %3$s jaksoa %4$s:sta.TilastointitilaLaske oikeasti soitettu aikamäärä. Uudelleensoitto lasketaan kahdesti, mutta soitetuksi merkattua ei lasketa.
- Laske yhteen kaikki soitetuksi merketatut podcastitHuomio: Soittonopeutta ei lasketa mukaan.Nollaa tilastotiedotTämä poistaa kaikkien jaksojen soiton keston historian. Haluatko varmasti jatkaa?
- Ladattujen podcastien yhteiskokoAvaa menuSulje menu
@@ -49,6 +46,7 @@
Soittamattomia jaksojaLadattuja jaksojaEi yhtään
+
Avaa selaimessaKopioi URL
@@ -124,14 +122,7 @@
Podcastin asetuksetUudelleennimeä podcast Poista podcast
- Jaa...
- Jaa jakson URL
- Jaa jakson URL soittoajan kanssaJaa tietodosto
- Jaa verkkosivuston URL
- Jaa podcastin URL
- Jaa mediatiedoston URL
- Jaa mediatiedoston URL toistosijainnin kanssaVahvista, että haluat poistaa podcastin \"%1$s\" ja KAIKKI sen jaksot (mukaan lukien ladatut jaksot).Poistetaan podcastPäivitä podcast
@@ -139,14 +130,9 @@
Valitse kaikki ylläValitse kaikki allaSoittamaton
- Pause
- SoitettuJonossaEi jonossa
- Ladattu
- Ei ladattuSisältää mediaa
- On suosikkiSuodatettu{fa-exclamation-circle} Viimeisin päivitys epäonnistuiAvaa podcast
@@ -238,7 +224,6 @@
Käsitellään latauksiaLadataan podcastin tietoja
- %1$d latausta onnistui, %2$d epäonnistuiTuntematon otsikkoSyöteMediatiedosto
@@ -251,7 +236,6 @@
Lataaminen mobiilidatayhteydellä on estetty asetuksissa.\n\nHaluatko sallia lataamisen väliaikaisesti?\n\nValinta muistetaan 10 minuutin ajan.Vahvista suoratoisto mobiilidatayhteydelläSuoratoisto mobiilidatayhteydellä on estetty asetuksissa. Napsauta suoratoistaaksesi silti.
- Salli ainaLisää jonoonSalli väliaikaisesti
@@ -297,7 +281,6 @@
Lataa laajennusLaajennus ei asennettuVaihtelevan nopeuden toiston toimimiseksi suosittelemme ottamaan käyttöön sisäänrakennetun Sonic-mediasoittimen.
- SoittonopeudetOta Sonic käyttöönEi jaksoja jonossa
@@ -371,7 +354,6 @@
joka %1$saika %1$sJatkuva toisto
- Kuulokkeiden irrotusKuulokkeiden uudelleenyhdistyminenBluetooth uudelleenyhdistyminenSuosi suoratoistoa
@@ -384,7 +366,6 @@
Jaksojen latausSuoratoistoKäyttöliittymä
- Ulkonäkö, tilausten järjestys, lukitusnäyttöValitse teemaAseta navigointihyllyn asiatVaihda navigointihyllyssä esiintyviä asioita.
@@ -420,10 +401,7 @@
Synkronoi tilaukset ja jaksojen tilojen muutokset gpodder.net.Synkronoi kaikki tilaukset ja jaksojen tilastot gpodder.net%1$s laitteella %2$s]]>
- Näytä synkronointivirheet ilmoituksissaTämä asetus ei vaikuta autentikointivirheisiin.
- Soittonopeudet
- Kustomoi muuttuvia soittonopeuksiaMukauta mediatietoja soiton nopeuteenNäytetty aika ja kesto mukautuvat soiton nopeuteenSeuraava skippaa aikaa
@@ -436,13 +414,10 @@
Tämä laajentaa ilmoituksen näyttämään soittonapitPysyvät soittokontrollitSäilytä ilmoitus ja lukituskuvan kontrollit kun soitto on pysäytetty.
- Aseta lukituskuvan napit
- Vaihda lukituskuvan soittonapit. Soitto/Pause napit on aina mukana.Valitse maksimi %1$d asioitaVoit valita vain maksimissaan %1$d asioita.Aseta lukitusruudun taustakuvaAseta lukitusruudun taustakuva nykyisen jakson kuvaan. Tämä kuva näkyy kolmannen osapuolen sovelluksissa.
- Näytä latausraporttiJos lataus epäonnistuu, generoi raportti joka näyttää virheen tiedot.Android versiot ennen 4.1 eivät tue laajenettuja ilmoituksia.Poissa käytöstä
@@ -498,7 +473,6 @@
Viety tiedosto on kirjoitettu:\n\n%1$sPääsy ulkoiseen solvellukseen tarvitaan OPML tiedoston lukemiseenValitse tiedosto tuontiin
- Tuonti onnistui.\n\nPaina OK uudelleenkäynnistääksesi AntennaPodAseta uniajastinLopeta uniajastin
@@ -583,7 +557,6 @@
Hyppää eteenAudioVideo
- Navigoi eteenpäoinJaksoa ladataanJakso on jonossaRaahaa muuttaen tilaa
@@ -610,11 +583,11 @@
Selaa gpodder.netLöydälisää »
+
FilteriKaikkiValitse kaikki jaksot
- Ei mitäänPoista valinta kaikistaSoitettuValitut soitetut jaksot
@@ -624,12 +597,17 @@
Valittut ladatut jaksotEi ladattuValitut ei ladatut jaksot
- JonossaValitut jaksot jonossa
- Ei jonossaValitut jaksot ei jonossa
- On mediaValitut jaksot joissa media
+ On suosikki
+ Ladattu
+ Ei ladattu
+ Jonossa
+ Ei jonossa
+ On media
+ Pause
+ SoitettuOtsikko (A \u2192 Z)Otsikko (Z \u2192 A)
@@ -643,6 +621,7 @@
Jätä minut rauhaanMuistuta minua myöhemminMiksei, tehdään tämä!
+
AudiokontrollitSoittonopeus
@@ -689,7 +668,6 @@
Soittaa nytSallii soiton kontrollit. Tämä on pääilmoitus, jonka näet kun podcast soitetaan.Virheet
- Näytetään kun jotain meni vikaan, esimerkiksi jos lataus tai gpodder synkronointi epäonnistui.
diff --git a/core/src/main/res/values-fr/strings.xml b/core/src/main/res/values-fr/strings.xml
index 04e4eb695..3c44b3091 100644
--- a/core/src/main/res/values-fr/strings.xml
+++ b/core/src/main/res/values-fr/strings.xml
@@ -25,17 +25,19 @@
Le nombre maximal d\'épisodes téléchargés a été atteint. Vous pouvez changer ce nombre dans les paramètres.LectureTéléchargements
+ NotificationsDurée totale d\'écoute :%1$d épisodes démarrés sur %2$d\nsoit %3$s de lues sur %4$s.Type de statistiquesCalculer la durée réellement écoutée. Les épisodes écoutés deux fois comptent double alors que ceux simplement marqués lus ne sont pas comptés
- Additionner tous les podcasts marqués comme lus
+ Compter tous les épisodes marqués comme lusNote : la vitesse de lecture n\'est jamais prise en compte.Réinitialiser les statistiques L\'information des temps de lecture va être effacée. Etes-vous sûr de vouloir continuer ?
+ Depuis le %s,\nvous avez lu
- Volume total des podcasts téléchargés :
+ Volume total des épisodes téléchargés :Ouvrir le menuFermer le menu
@@ -49,6 +51,8 @@
Nombre d\'épisodes non-lusNombre d\'épisodes téléchargésAucun
+
+ Aucune application compatible trouvéeOuvrir dans le navigateurCopier le lien
@@ -124,29 +128,22 @@
Paramètres du podcastRenommer le podcastSupprimer le podcast
- Partager...
- Partager le lien
- Partager le lien avec la position
+ Partager
+ Partager...Partager le fichier
- Partager le lien du site
- Partager le lien du podcast
- Partager le lien du fichier
- Partager le lien du fichier avec la position
+ Lien du site web
+ Lien du podcastConfirmer que vous voulez supprimer le podcast \"%1$s\" et TOUS ses épisodes téléchargés.
+ Merci de confirmer que vous voulez supprimer le podcast \"%1$s\". Les fichiers du dossier source ne seront pas effacés.Podcast en cours de suppressionMettre à jour tout le podcastSélection multipleSélectionner avec ceux au-dessusSélectionner avec ceux en-dessousNon lu
- En pause
- LuDans la liste de lecturePas dans la liste de lecture
- Téléchargé
- Non téléchargéAvec média
- Est un favoriFiltré{fa-exclamation-circle} La dernière mise à jour a échouéOuvrir Podcast
@@ -238,7 +235,10 @@
Traitement des téléchargementsTéléchargement des données du podcast
- %1$d téléchargements réussis, %2$d échoués
+
+ %1$d téléchargement réussi, %2$d échoué
+ %1$d téléchargements réussis, %2$d échoués
+ Titre inconnuFluxFichier média
@@ -251,7 +251,8 @@
Le téléchargement avec la connexion mobile est désactivé dans les options.\n\nVoulez-vous autoriser temporairement le téléchargement?\n\nVotre choix sera retenu pour les 10 prochaines minutes.Toucher pour autoriser le streaming avec la connexion mobileLe streaming avec la connexion mobile est désactivé dans les paramètres. Toucher pour streamer quand même.
- Toujours autoriser
+ Toujours
+ Une seule foisRajouter à la liste de lectureAutoriser temporairement
@@ -297,8 +298,9 @@
Télécharger une extensionExtension non installéePour pouvoir changer la vitesse de lecture il est recommandé d\'activer le lecteur interne Sonic.
- Vitesses de lectureActiver Sonic
+ Enregistrées
+ %1$.2fx est déjà enregistrée.Aucun épisode dans la liste de lecturePour ajouter un épisode, téléchargez le ou faites une pression longue dessus et taper sur \"Ajouter à la liste de lecture\".
@@ -384,7 +386,7 @@
Téléchargement d\'épisodesStreamingInterface utilisateur
- Apparence, ordre des abonnements, écran de verrouillage
+ Apparence, abonnements, écran de verrouillageChoisir un thèmeChanger les éléments du volet de navigationChoisir quels éléments apparaissent dans le volet de navigation
@@ -423,10 +425,9 @@
Forcer une synchronisation totaleSynchroniser tous les abonnements et tous les états des épisodes avec gpodder.net.%1$s avec l\'appareil %2$s]]>
- Notification des erreurs de synchronisation
+ La synchronisation a échouéCe paramètre ne s\'applique pas aux erreurs d\'authentification.
- Vitesses de lecture
- Définir les vitesses disponibles lors de la lecture audio
+ Définir les vitesses disponibles lors de la lectureVitesse de lecture par défaut des épisodesSaut automatiqueSauter le début et la fin des épisodes
@@ -446,15 +447,15 @@
Permet, généralement, d\'étendre la notification pour montrer les boutons de lectureBoutons de lecture permanentsGarder les notifications et les boutons de lecture sur l\'écran de verrouillage quand la lecture est en pause
- Définir les boutons de l\'écran de verrouillage
- Change les boutons de lecture sur l\'écran de verrouillage. Le bouton de lecture/pause est toujours affiché.
+ Boutons pour la notification réduite
+ Définir les boutons de lecture quand la notification est réduite. Le bouton de lecture/pause est toujours affiché.Choisir un maximum de %1$d élémentsVous ne pouvez pas choisir plus de %1$d éléments.Changer l’arrière plan de l\'écran de verrouillagePlacer l\'image de l’épisode en arrière plan de l\'écran de verrouillage. Cela aura aussi pour effet de montrer l\'image dans les autres applications.
- Afficher le rapport des téléchargements
+ Le téléchargement a échouéSi les téléchargements échouent, générer un rapport détaillé des échecs.
- Rapport du téléchargement automatique
+ Le téléchargement automatique est terminéAfficher une notification pour les épisodes téléchargés automatiquement.Les versions d\'Android antérieures à 4.1 ne sont pas compatibles avec les notifications élargiesEmplacement des épisodes téléchargés
@@ -504,6 +505,14 @@
Sélectionner une pageSupprimer retire de la liste de lectureRetirer de la liste de lecture un épisode quand son fichier est supprimé.
+ Filtre des abonnements
+ Filtrer les abonnements dans le volet de navigation et dans l\'écran des abonnements.
+ Aucun
+ Les abonnements sont filtrés.
+ Avec téléchargement auto
+ Sans téléchargement auto
+ Avec mise à jour auto
+ Sans mise à jour autoÀ proposVersion d\'AntennaPod
@@ -538,6 +547,7 @@
Transférer les abonnements, les épisodes écoutés et la liste de lecture sur un autre appareilImporter une base de données AntennaPod d\'un autre appareilImporter un fichier OPML
+ Importer une liste de podcasts (OPML)Une erreur s\'est produite pendant la lecture du fichier OPML :Aucun fichier sélectionné !Tout choisir
@@ -553,7 +563,8 @@
Le fichier a été exporté dans :\n\n%1$sL\'accès au stockage externe est requis pour lire le fichier OPMLSélectionner le fichier à importer
- Import réussi.\n\nAppuyer sur OK pour redémarrer AntennaPod
+ Import réussi
+ Appuyer sur OK pour redémarrer AntennaPodLa base de données a été exportée avec une version plus récente d\'AntennaPod. L\'application actuelle ne sait pas comment l\'importer.Exporter les favorisExporter les favoris dans un fichier
@@ -648,7 +659,6 @@
Diminuer la vitesseAudioVidéo
- Naviguer vers le hautL\'épisode est en train d\'être téléchargéL\'épisode est dans la liste de lectureL\'épisode a été ajouté aux favoris
@@ -669,6 +679,10 @@
Maintenir à jourInclure ce podcast lors de la mise à jour des podcastsLe téléchargement automatique n\'est pas activé dans les préférences
+ Temps d\'écoute :
+ Episodes sur l\'appareil :
+ Place utilisée :
+ Voir les statistiques pour tous les podcasts »Mise à jour de la base de données
@@ -676,18 +690,27 @@
Trouver un podcast...Chercher sur iTunes
+ Chercher sur Podcastindex.orgChercher sur fyydAvancé
- Ajouter un podcast à partir de son lien
+ Ajouter à partir d\'un lien RSSChercher sur gpodder.netDécouvrir
+ Ne pas montrer
+ Vous avez choisi de cacher les suggestions.plus »
- Recherche avec %1$s
+ Suggestions de iTunes
+ Résultats de %1$s
+
+ Ajouter un dossier
+ Se reconnecter au dossier
+ En cas de refus de permission vous pouvez utiliser cette option pour vous reconnecter au même dossier. Ne sélectionnez pas un autre dossier.
+ Ce podcast a été crée à partir d\'un dossier ajouté à AntennaPod.FiltrerTousTous les épisodes ont été sélectionné
- Aucun
+ AucunTous les épisodes ont été désélectionnéLusEpisodes lus sélectionnés
@@ -697,12 +720,21 @@
Episodes téléchargés sélectionnésNon téléchargésÉpisodes non téléchargés sélectionnés
- Dans la liste de lectureÉpisodes présents dans la liste de lecture sélectionnés
- Pas dans la liste de lectureEpisodes absents de la liste de lecture sélectionnés
- Avec médiaSélectionner les épisodes avec des médias
+ Est un favori
+ N\'est pas un favori
+ Téléchargé
+ Non téléchargé
+ Dans la liste de lecture
+ Pas dans la liste de lecture
+ Avec média
+ Sans média
+ En pause
+ Pas en en pause
+ Lu
+ Non luTitre (A \u2192 Z)Titre (Z \u2192 A)
@@ -722,6 +754,12 @@
Laissez moi tranquilleRappelez le moi plus tardOkay, c\'est parti !
+
+ Inclure :
+ Position de lecture
+ Lien du fichier de l\'épisode
+ Lien de la page web de l\'épisode
+ Fichier de l\'épisodeContrôles audioVitesse de lecture
@@ -768,7 +806,9 @@
Lecture en coursPermet de contrôler la lecture. C\'est la notification principale pendant la lecture d\'un podcast.Erreurs
- S\'affiche en cas de problème. Par exemple, un téléchargement ou une synchronisation qui échoue.
+ S\'affiche quand quelque chose c\'est mal passé. Par exemple, un téléchargement ou une mise à jour de flux qui échoue.
+ Erreurs de synchronisation
+ S\'affiche quand la synchronisation avec gpodder échoue.Téléchargement automatiqueS\'affiche lorsque des épisodes ont été téléchargés automatiquement.
diff --git a/core/src/main/res/values-gl/strings.xml b/core/src/main/res/values-gl/strings.xml
index a2756cf07..224e9dd98 100644
--- a/core/src/main/res/values-gl/strings.xml
+++ b/core/src/main/res/values-gl/strings.xml
@@ -25,17 +25,19 @@
Acadouse o límite de espazo na caché de episodios. Podes incrementalo nos Axustes do tamaño da caché.ReproduciónDescargas
+ Notificacións
- Tempo total dos podcast reproducidos:
+ Duración total dos episodios reproducidos:%1$d de %2$d episodios iniciados.\n\nReproducidos %3$s de %4$s.Modo de estatísticasCalcular a duración que foi realmente reproducida. Reproducir dúas veces conta dobre, mentres que marcar como lido non conta
- Sumar todos os podcast marcados como reproducidos
+ Suma todos os episodios marcados como reproducidosAviso: A velocidade de reprodución non se ten en conta en ningún caso.Restablecer estatísticasEsto borrará o histórico de escoita de todos os episodios. Seguro que queres borralo?
+ Desde %s,\nescoitaches
- Tamaño dos podcasts descargados:
+ Tamaño total dos episodios no dispositivo:Abrir menúPechar menú
@@ -49,6 +51,8 @@
Número de episodios non reproducidosNúmero de episodios descargadosNingún
+
+ Non se atopan apps compatiblesAbrir no navegadorCopiar URL
@@ -124,29 +128,22 @@
Axustes do podcastMudar nome do podcastEliminar o podcast
- Compartir...
- Compartir a URL do episodio
- Compartir a URL do ficheiro do episodio coa posición
+ Compartir
+ Compartir...Compartir ficheiro
- Compartir URL da web
- Compartir URL da fonte
- Compartir a URL do ficheiro multimedia
- Compartir a URL do ficheiro multimedia coa posición
+ Enderezo sitio web
+ URL da fonte do podcastPor favor, confirme que quere eliminar o podcast \"%1$s\" e TODOS os seus episodios (incluídos os xa descargados).
+ Confirma que queres eliminar o podcast \"%1$s\". Os ficheiros no cartafol local non serán eliminados.Eliminando o podcastActualizar o podcast completoSelección múltipleSeleccionar todo arribaSeleccionar todo debaixoNon reproducido
- En pausa
- ReproducidoNa colaFora da cola
- Descargado
- Non descargadoTen multimedia
- É favoritoFiltrado{fa-exclamation-circle} Erro na última actualizaciónAbrir podcast
@@ -238,7 +235,10 @@
Procesando as descargasDescargando datos do podcast
- %1$d descargas con éxito, %2$d fallaron
+
+ %d descarga correcta, %d fallou
+ %d descargas correctas, %d fallaron
+ Título descoñecidoFonteFicheiro de medios
@@ -251,7 +251,8 @@
A descarga con datos móbiles está desactivada nos axustes.\n\nQuere permitir a descarga temporalmente?\n\n A súa decisión lembrarase durante 10 minutos.Confirmar retransmisión MóbilDesactivouse nos axustes Retransmitir mediante a conexión de datos. Toque para retransmitir igualmente.
- Permitir sempre
+ Sempre
+ Unha vezEngadir a colaPermitir temporalmente
@@ -297,8 +298,9 @@
Descargar engadidoEngadido non instaladoRecomendamos activar o reprodutor Sonic incluído para que funcione ben a velocidade variable de reprodución.
- Velocidade de reproduciónsHabilitar Sonic
+ Axustes establecidos
+ %1$.2fx xa está gardado como un axuste previo.Sen episodios na colaEngade un episodio descargándoo, ou mantén preso un episodio e escolle \"Engadir a cola\".
@@ -371,7 +373,7 @@
cada %1$sas %1$sReprodución continua
- Desconexión de auriculares
+ Auriculares ou Bluetooth desconectadosReconexión de auricularesReconexión bluetoothPreferir Difusión
@@ -384,7 +386,7 @@
Descarga de episodioRetransmisiónInterface de usuaria
- Aparencia, Orde das subscricións, Bloqueo de pantalla
+ Aparencia, Subscricións, Bloqueo de pantallaEscolle o decoradoEscoller os elementos da Caixa de navegaciónCambie os elementos que aparecerán na Caixa de navegación
@@ -423,10 +425,9 @@
Forzar sincronización completaSincronizar todas as subscricións e estados de episodios con gpodder.net%1$s co dispositivo %2$s]]>
- Mostrar notificacións de erros na sincronización.
+ Fallou a sincronizaciónEsta preferencia non se aplica a fallos na autenticación.
- Velocidades de reprodución
- Personaliza a velocidade variable de reprodución de audio
+ Personaliza as velocidades dispoñibles para reprodución de velocidade variableA velocidade para reproducir o contido dos episodios deste podcastSalto automáticoSaltar introducións e créditos finais.
@@ -446,15 +447,15 @@
Isto expande as notificacións para mostrar os botóns de reproduciónControles persistentes de reproduciónManter notificación e controles na pantalla de bloqueo cando a reprodución está pausada.
- Establecer botóns de pantalla de bloqueo
- Cambiar os botóns de reprodución na pantalla de bloqueo. O botón reproducir/pausa sempre se inclúe.
+ Establecer botóns de notificación compactos
+ Cambia os botóns de reprodución cando a notificación está comprimida. O botón reproducir/pausar sempre se inclúe.Escolle un máximo de %1$d elementosSó podes selecionar un máximo de %1$d elementos.Establecer fondo da pantalla de bloqueoEstablecer o fondo de pantalla de bloqueo coa imaxe do episodio actual. Como consecuencia, esto tamén mostrará a imaxe en aplicacións de terceiros.
- Mostrar informe de descarga
+ Fallou a descargaSi falla a descarga, xerar un informe que informe dos detalles do fallo.
- Mostra informe de descarga automática
+ Descarga automática completadaMostra unha notificación para os episodios descargados automáticamente.As versións de Android anteriores a 4.1 non teñen soporte para notificacións expandidas.Situación na cola
@@ -504,6 +505,14 @@
Seleccionar páxinaEliminar quita da ColaEliminar automáticamente un episodio da cola cando se elimina.
+ Filtro da subscrición
+ Filtra as subscricións no panel de navegación e pantalla de subscricións.
+ Nada
+ As subscricións están filtradas.
+ Descargado automáticamente
+ Non descargado automáticamente
+ Manter actualizado
+ Non manter actualizadoSobreVersión AntennaPod
@@ -538,6 +547,7 @@
Mover as subscricións, episodios escoitados e cola a AntennaPod en outro dispositivoImportar a base de datos AntennaPod desde outro dispositivoImportar OPML
+ Importar lista de podcast (OPML)Houbo un fallo ao ler o documento OPML:Non hai ficheiro seleccionado!Seleccionar todo
@@ -553,7 +563,8 @@
Escribeuse o ficheiro exportado en:\n\n%1$sPrecísase acceso ao almacenamento externo para ler o ficheiro OPMLEscolle o ficheiro a importar
- Importación correcta.\n\nPulse OK para reiniciar AntennaPod
+ Importación correcta
+ Preme OK para reiniciar AntennaPodA base de datos foi exportada cunha versión máis recente de AntennaPod. A instalación actual non sabe como xestionar este ficheiro.Exportar favoritosExportar os favoritos a un ficheiro
@@ -648,7 +659,6 @@
Diminuír velocidadeSonVídeo
- Navegar hacia arribaEstase a descargar o episodioO episodio está na colaEpisodio marcado como favorito
@@ -669,6 +679,10 @@
Manter actualizadoIncluír este podcast ao (auto-)actualizar todos os podcastA descarga automática está desactivada nos axustes principais de AntennaPod
+ Escoitado durante:
+ Episodios no dispositivo:
+ Espazo utilizado:
+ Vista para todos os podcats »Actualizando a base de datos
@@ -676,18 +690,27 @@
Buscar podcast...Buscar en iTunes
+ Buscar en Podcastindex.orgBuscar en fyydAvanzado
- Engadir Podcast por URL
+ Engadir Podcast polo enderezo RSSBuscar en gpodder.netDescubrir
+ Agochar
+ Elexiches agochar as suxestións.máis »
- Busca xestionada por %1$s
+ Suxestións de iTunes
+ Resultados por %1$s
+
+ Engadir cartafol local
+ Reconectar cartafol local
+ En caso de faltar permisos, podes usar esto para reconectar o exactamente o mesmo cartafol. Non elixas outro cartafol.
+ O podcast virtual foi creado ó engadir un cartafol a AntennaPod.FiltradoTodoSeleccionar todos os episodios
- Ningún
+ NadaTodos os episodios deseleccionadosReproducidosEpisodios reproducidos seleccionados
@@ -697,12 +720,21 @@
Episodios descargados seleccionadosNon descargadosEpisodios non descargados seleccionados
- Na colaSeleccionados os episodios na cola
- Fora da colaSeleccionados os episodios fora da cola
- Teñen mediosSeleccionados episodios que inclúen medios
+ É favorito
+ Non favorito
+ Descargado
+ Non descargado
+ Na cola
+ Fora da cola
+ Teñen medios
+ Sen multimedia
+ En pausa
+ Non pausado
+ Reproducido
+ Non reproducidoTítulo (A \u2192 Z)Título (Z \u2192 A)
@@ -722,6 +754,12 @@
Pasa de min oh!Lembrar máis tardeTrato, fagámolo!
+
+ Incluír:
+ Posición da reprodución
+ Enderezo do ficheiro multimedia
+ Sitio web do episodio
+ Ficheiro multimediaControis de audioVelocidade de reprodución
@@ -768,7 +806,9 @@
Soando agoraPermite controlar a reprodución. Esta é a notificación principal que verá mentras reproduce un podcast.Fallos
- Mostrado si algo falla, por exemplo si a descarga ou a sincronización con gpodder fallan.
+ Mostrar se algo fallou, por exemplo se a descarga ou a actualización da fonte fallaron.
+ Erros durante a sincronización
+ Mostrado cando falla a sincronización con gpodder.Descargas AutomáticasMostrado cando os episodios se descargaron automáticamente.
diff --git a/core/src/main/res/values-hu/strings.xml b/core/src/main/res/values-hu/strings.xml
index 55f7a5dbd..63302ec0f 100644
--- a/core/src/main/res/values-hu/strings.xml
+++ b/core/src/main/res/values-hu/strings.xml
@@ -26,16 +26,13 @@
LejátszásLetöltések
- A lejátszott podcastok összideje:%1$d/%2$d epizód elindítva.\n\n%3$s/%4$s lejátszva.Statisztikai módA tényleges lejátszási idő számítása. A kétszeri lejátszás kétszer lesz számolva, míg a lejátszottként megjelölés nem számít bele
- Az összes lejátszottnak jelölt podcast összeszámolásaMegjegyzés: a lejátszási sebesség nem lesz beleszámítva.Statisztikai adatok alaphelyzetbe állításaEz törli az összes epizód lejátszási hosszát. Biztos, hogy folytatja?
- A letöltött podcastok összmérete:Menü megnyitásaMenü bezárása
@@ -49,6 +46,7 @@
Nem játszott epizódok számaLetöltött epizódok számaNincs
+
Megnyitás böngészőbenURL másolása
@@ -124,14 +122,7 @@
Podcast beállításokPodcast átnevezésePodcast eltávolítása
- Megosztás…
- Epizód URL megosztása
- Epizód URL megosztása pozícióvalFájl megosztása
- Honlap URL megosztása
- Podcast URL megosztása
- Médiafájl URL megosztása
- Médiafájl URL megosztása pozícióvalErősítse meg, hogy törli a(z) „%1$s” podcastot, és az ÖSSZES epizódját (a letöltött epizódokat is beleértve).Podcast eltávolításaTeljes podcast frissítése
@@ -139,14 +130,9 @@
Az összes felette lévő kiválasztásaAz összes alatta lévő kiválasztásaNem lejátszott
- Szüneteltetett
- LejátszottSorbaállítottNem sorbaállított
- Letöltött
- Nem letöltöttMédiát tartalmaz
- KedvencSzűrt{fa-exclamation-circle} A legutóbbi frissítés sikertelenPodcast megnyitása
@@ -238,7 +224,6 @@
Letöltések feldolgozásaPodcast adatok letöltése
- %1$d letöltés sikeres, %2$d sikertelenIsmeretlen címCsatornaMédiafájl
@@ -251,7 +236,6 @@
A mobil adatkapcsolaton történő letöltés ki van kapcsolva a beállításokban.\n\nIdeiglenesen engedélyezi a letöltést?\n\nA választása 10 percig lesz megjegyezve.Mobil adatátvitel megerősítéseA mobil adatkapcsolaton történő adatátvitel ki van kapcsolva a beállításokban. Koppintson ha mindenképp szeretné.
- Engedélyezés mindigSorbaállításEngedélyezés átmenetileg
@@ -297,7 +281,6 @@
Bővítmény letöltéseA bővítmény nincs telepítveA változó lejátszási sebesség működéséhez azt javasoljuk, hogy engedélyezze a beépített Sonic médialejátszót.
- Lejátszási sebességSonic engedélyezéseNincsenek epizódok a sorban
@@ -371,7 +354,6 @@
minden %1$sekkor: %1$sFolyamatos lejátszás
- Fejhallgató leválasztásaFejhallgató újracsatlakoztatásaBluetooth újracsatlakoztatásAdatátvitel előnyben részesítése
@@ -384,7 +366,6 @@
EpizódletöltésAdatátvitelFelhasználói felület
- Megjelenés, feliratkozási sorrend, képernyőzárTéma kiválasztásaNavigációs fiók elemeinek beállításaA navigációs fiókban megjelenő elemek módosítása.
@@ -423,10 +404,7 @@
Teljes szinkronizáció kényszerítéseAz összes feliratkozásának és epizódállapotainak szinkronizálása a gpodder.nettel.%1$s, a(z) %2$s eszközzel]]>
- Szinkronizálási hibaértesítések megjelenítéseEz a beállítás a hitelesítési hibákra nem érvényes.
- Lejátszási sebességek
- A változó sebességű hanglejátszáshoz elérhető sebességek testreszabásaA podcast epizódjainak indításakor használandó lejátszási sebességAutomatikus kihagyásBevezetők és lezárások kihagyása
@@ -446,15 +424,11 @@
Ez általában kibővíti az értesítést, hogy megjelenítse a lejátszási gombokat.Állandó lejátszásvezérlőkAz értesítés és a zárképernyőn megjelenő vezérlők megtartása a lejátszás szüneteltetésekor.
- Zárképerny-gombok beállítása
- A zárképernyőn megjelenő lejátszási gombok módosítása. A lejátszás/szüneteltetés gombok mindig szerepelnek.Válasszon legfeljebb %1$d elemetLegfeljebb %1$d elemet választhat.Képernyőzár háttérkép beállításaA képernyőzár háttérképének beállítása a jelenlegi epizód képére. Mellékhatásként, ez a harmadik féltől származó alkalmazásokban is megjeleníti a képet.
- Letöltési jelentés megtekintéseHa a letöltések sikertelenek, előállít egy jelentést, amely részletezi a hibát
- Automatikus letöltési jelentés megjelenítéseÉrtesítés megjelenítése az automatikusan letöltött epizódokhoz.A 4.1 előtti Android verziók nem támogatják a bővített értesítéseket.Hely sorbaállítása
@@ -553,7 +527,6 @@
Az exportált fájl ide lett kiírva:\n\n%1$sA külső tároló elérése szükséges az OPML fájl olvasásáhozImportálandó fájl kiválasztása
- Importálás sikeres.\n\nNyomja meg az OK gombot az AntennaPod újraindításáhozAz adatbázis az AntennaPod egy újabb verziójából lett exportálva. A jelenlegi telepítése még nem tudja, hogyan kezelje ezt a fájlt.Kedvencek exportálásaMentett kedvencek fájlba exportálása
@@ -648,7 +621,6 @@
Sebesség csökkentéseHangVideó
- Navigálás felfeléAz epizód letöltés alatt vanAz epizód sorba van állítva Epizód megjelölve kedvencként
@@ -678,16 +650,14 @@
Keresés az iTunes-onKeresés a fyydenSpeciális
- Podcast hozzáadása URL alapjánA gpodder.net böngészéseFelfedezéstöbb »
- Keresés a(z) %1$s segítségével
+
SzűrőÖsszesÖsszes epizód kiválasztva
- Egyik semAz összes epizód kiválasztásának megszüntetéseLejátszottA lejátszott epizódok kiválasztva
@@ -697,12 +667,17 @@
A letöltött epizódok kiválasztásaNem letöltöttA nem letöltött epizódok kiválasztása
- Sorba állítottA sorba állított epizódok kiválasztva
- Nem sorba állítottA nem sorba állított epizódok kiválasztva
- Médiát tartalmazMédiát tartalmazó kiválasztott epizódok
+ Kedvenc
+ Letöltött
+ Nem letöltött
+ Sorba állított
+ Nem sorba állított
+ Médiát tartalmaz
+ Szüneteltetett
+ LejátszottCím (A \u2192 Z)Cím (Z \u2192 A)
@@ -722,6 +697,7 @@
Hagyjon békénEmlékeztessen későbbRendben, csináljuk!
+
HangvezérlőkLejátszási sebesség
@@ -768,7 +744,6 @@
Most játszottLehetővé teszi a lejátszás vezérlését. Ez a fő értesítés, amit a podcast lejátszásakor lát.Hibák
- Akkor látszik, ha hiba történt, például ha a letöltés vagy a gpodder szinkronizálás sikertelen.Automatikus letöltésekAkkor jelenik meg, ha az epizódok automatikusan letöltésre kerültek.
diff --git a/core/src/main/res/values-it/strings.xml b/core/src/main/res/values-it/strings.xml
index abd08d2cc..2a38c3e1e 100644
--- a/core/src/main/res/values-it/strings.xml
+++ b/core/src/main/res/values-it/strings.xml
@@ -25,17 +25,15 @@
Il limite della cache degli episodi è stato raggiunto. Puoi aumentare la dimensione della cache nelle Impostazioni.RiproduzioneDownload
+ Notifiche
- Tempo totale di riproduzione:%1$d di %2$d episodi iniziati.\n\nRiprodotti %3$s di %4$s.Modalità di calcoloTempo di riproduzione reale. Riprodurre due volte un episodio verrà contato doppio, segnarlo come riprodotto no
- Somma il tempo di riproduzione di tutti i podcast segnati come riprodottiAvviso: la velocità di riproduzione non viene considerata.Resetta statisticheVerranno eliminate le statistiche sul tempo di riproduzione di tutti gli episodi. Procedo?
- Dimensione totale podcast scaricati:Apri il menùChiudi il menù
@@ -49,6 +47,7 @@
Numero di episodi non riprodottiNumero di episodi scaricatiNessuno
+
Apri nel browserCopia URL
@@ -124,14 +123,10 @@
Impostazioni podcastRinomina podcastRimuovi podcast
- Condividi...
- Condividi URL episodio
- Condividi URL episodio con posizione
+ Condividi
+ Condividi...Condividi il file
- Condividi URL del sito
- Condividi URL del podcast
- Condividi URL del media
- Condividi URL del media con posizione
+ URL feed del podcastConferma di voler eliminare il podcast \"%1$s\" e TUTTI i suoi episodi (compresi quelli scaricati).Rimozione podcast in corsoAggiorna podcast completo
@@ -139,14 +134,9 @@
Seleziona tutti in suSeleziona tutti in giùNon riprodotti
- In pausa
- RiprodottiIn codaNon in coda
- Scaricati
- Non scaricatiCon media
- PreferitiFiltrati{fa-exclamation-circle} Ultimo aggiornamento fallitoApri podcast
@@ -238,7 +228,6 @@
Elaborazione dei download in corsoScaricamento podcast in corso
- %1$d download con successo, %2$d fallitiTitolo sconosciutoFeedFile multimediali
@@ -251,7 +240,6 @@
Il download tramite rete mobile è disattivato nelle impostazioni.\n\nVuoi abilitare temporaneamente il download?\n\nLa scelta sarà valida per 10 minuti.Conferma streaming su rete mobileLo streaming su rete mobile è disattivato nelle impostazioni. Tocca per avviare comunque.
- Consenti sempreAggiungi alla codaConsenti temporaneamente
@@ -297,7 +285,6 @@
Scarica pluginPlugin non installatoPer la velocità di riproduzione variabile, raccomandiamo di usare il riproduttore Sonic integrato.
- Velocità di riproduzioneAbilita SonicNessun episodio in coda
@@ -371,7 +358,6 @@
ogni %1$salle %1$sRiproduzione continua
- Disconnessione cuffieRiconnessione cuffieRiconnessione BluetoothPreferisci streaming
@@ -384,7 +370,6 @@
Download episodiStreamingInterfaccia utente
- Aspetto, ordine delle iscrizioni, schermata di bloccoSeleziona un temaSeleziona elementi del menùAggiungi o rimuovi gli elementi che appaiono nel menù laterale.
@@ -423,10 +408,7 @@
Forza sincronizzazione completaSincronizza le iscrizioni e lo stato di tutti gli episodi con gpodder.net.%1$s con il dispositivo %2$s]]>
- Notifica gli errori di sincronizzazioneNon si applica agli errori di autenticazione.
- Velocità di riproduzione
- Personalizza le velocità disponibili per la riproduzione audio a velocità variabileVelocità da usare per la riproduzione degli episodi di questo podcastSalta automaticamenteSalta alcuni secondi all\'inizio o alla fine.
@@ -446,15 +428,11 @@
Di solito espande la notifica per mostrare i tasti di riproduzione.Controlli di riproduzione persistentiMantiene le notifiche e i controlli del blocco schermo anche quando la riproduzione è in pausa.
- Pulsanti schermata di blocco
- Modifica i pulsanti di riproduzione mostrati nella schermata di blocco. Play/Pausa è sempre presente.Seleziona al massimo %1$d vociPuoi selezionare al massimo %1$d voci.Cambia sfondo della schermata di bloccoSostituisce l\'immagine della schermata di blocco con quella dell\'episodio in riproduzione. Mostrerà l\'immagine anche in app di terze parti.
- Mostra il rapporto del downloadSe il download fallisce, genera un report che mostra i dettagli dell\'errore.
- Mostra report download automaticiMostra una notifica per gli episodi scaricati automaticamente.Le versioni Android precedenti alla 4.1 non supportano le notifiche estese.Posizione in coda
@@ -553,7 +531,6 @@
Il file esportato è stato salvato in:\n\n%1$sE\' richiesto l\'accesso alla memoria esterna per leggere il file OPMLScegli file da importare
- Importazione eseguita.\n\nPremi OK per riavviare AntennaPodQuesto database è stato esportato da una versione più recente di AntennaPod. La tua applicazione attuale non sa ancora come gestire questo file.Esporta preferitiEsporta preferiti su file
@@ -648,7 +625,6 @@
Riduci velocitàAudioVideo
- Naviga verso l\'altoL\'episodio sta venendo scaricatoL\'episodio è in codaEpisodio contrassegnato come preferito
@@ -669,6 +645,7 @@
Mantieni aggiornatoIncludi questo podcast nell\'auto-aggiornamento generaleIl download automatico è disabilitato nelle impostazioni generali.
+ Spazio utilizzato:Aggiornamento del database
@@ -678,16 +655,15 @@
Cerca su iTunesCerca su fyydAvanzate
- Aggiungi podcast da URLEsplora gpodder.netScopri
+ Nascondialtro »
- Ricerca fornita da %1$s
+
FiltraTuttoSeleziona tutti gli episodi
- NessunoDeseleziona tutti gli episodiRiprodottiEpisodi riprodotti selezionati
@@ -697,12 +673,17 @@
Episodi scaricati selezionatiNon scaricatiEpisodi non scaricati selezionati
- In codaEpisodi in coda selezionati
- Non in codaEpisodi non in coda selezionati
- Con mediaEpisodi con elementi multimediali selezionati
+ Preferiti
+ Scaricati
+ Non scaricati
+ In coda
+ Non in coda
+ Con media
+ In pausa
+ RiprodottiTitolo (A \u2192 Z)Titolo (Z \u2192 A)
@@ -722,6 +703,7 @@
Lasciatemi in paceRicordamelo più tardiCerto, facciamolo!
+
Controlli audioVelocità di riproduzione
@@ -768,7 +750,6 @@
In riproduzionePermette di controllare la riproduzione. E\' la principale notifica visualizzata quando un podcast è in riproduzione.Errori
- Viene mostrato se qualcosa fallisce, ad esempio il download o la sincronizzazione di gpodder.Download automaticiViene mostrato quando un episodio è stato scaricato automaticamente.
diff --git a/core/src/main/res/values-iw/strings.xml b/core/src/main/res/values-iw/strings.xml
index 1e9f3f246..63fded34e 100644
--- a/core/src/main/res/values-iw/strings.xml
+++ b/core/src/main/res/values-iw/strings.xml
@@ -25,17 +25,19 @@
מטמון הפרקים התמלא. ניתן להגדיל את גודל המטמון בהגדרות.נגינההורדות
+ התראות
- זמן ניגון הפודקאסטים הכולל:
+ זמן הנגינה הכולל של הפרקים:%1$d מתוך %2$d פרקים החלו.\n\nנוגנו %3$s מתוך %4$s.מצב סטטיסטיקהחישוב זמן שנוגן בפועל. נגינה כפולה נספרת פעמיים, בעוד שסימון כנוגן לא נחשב.
- סיכום כל הפודקאסטים שסומנו כנוגנו
+ סכימת כל הפרקים שסומנו שהושמעולתשומת לבך: אין התייחסות למהירות הנגינה.איפוס נתונים סטטיסטייםפעולה זו תמחק את משך הנגינה של כל הפרקים. להמשיך?
+ מאז %s,\nניגנת
- סך גודל הפודקאסטים שהתקבלו:
+ סך גודל כל הפרקים שבמכשיר:פתיחת תפריטסגירת תפריט
@@ -49,6 +51,8 @@
מספר פרקים שעוד לא התנגנומספר פרקים שהתקבלוללא
+
+ לא נמצאו יישומונים תואמיםפתיחה בדפדפןהעתקת כתובת
@@ -130,29 +134,22 @@
הגדרות פודקאסטשינוי שם פודקאסטהסרת פודקאסט
- שיתוף…
- שיתוף כתובת פרק
- שיתוף כתובת הפרק עם מיקום
+ שיתוף
+ שיתוף…שיתוף כתובת
- שיתוף כתובת אתר
- שיתוף כתובת הפודקאסט
- שיתוף כתובת קובץ המדיה
- שיתוף כתובת קובץ המדיה עם מיקום
+ כתובת אתר
+ כתובת הזנת פודקאסטנא לאשר שרצונך הוא למחוק את הפודקאסט „%1$s” על כל פרקיו (לרבות הפרקים שכבר הורדת).
+ נא לאשר כדי להסיר את הפודקאסט „%1$s”. הקבצים בתיקייה המקור המקומית לא יימחקו.הפודקאסט מוסררענון מלא של הפודקאסטלבחור מגווןבחירת כל אלו שלעילבחירת כל אלו שלהלןלא נוגן
- מושהה
- נוגןבתורלא בתור
- הורד
- לא הורדיש מדיה
- עם סימון מועדףמסונן{fa-exclamation-circle} הרענון האחרון נכשלפתיחת פודקאסט
@@ -258,7 +255,12 @@
ההורדות בהליכי עיבודנתוני הפודקאסט מתקבלים
- %1$d הורדות הצליחו, %2$d נכשלו
+
+ הורדה %d הצליחה, %d נכשלו
+ %d הורדות הצליחו, %d נכשלו
+ %d הורדות הצליחו, %d נכשלו
+ %d הורדות הצליחו, %d נכשלו
+ כותרת לא ידועההזנהקובץ מדיה
@@ -271,7 +273,8 @@
הורדה דרך חיבור נתונים של רשת סלולרית מושבת דרך ההגדרות.\n\nלאפשר את ההורדה באופן זמני?\n\nהבחירה שלך תישמר למשך 10 דקות.אישור הזרמה דרך רשת סלולריתהזרמה דרך חיבור רשת סלולרית מושבתת בהגדרות. ניתן לגעת כדי להזרים בכל זאת.
- לאפשר תמיד
+ תמיד
+ פעם אחתהוספה לתורלאפשר לבינתיים
@@ -317,8 +320,9 @@
הורדת תוסףתוסף לא מותקןכדי שתהיה לך אפשרות להשתמש במהירות נגינה משתנה אנו ממליצים להפעיל את נגן המדיה המובנה Sonic.
- מהירויות ניגוןהפעלת Sonic
+ ערכות מוגדרות
+ %1$.2fx כבר נשמרה כערכה מוגדרת.אין פרקים בתורניתן להוסיף פרק על ידי הורדתו או ללחוץ על פרק לחיצה ארוכה ולבחור ב־„הוספה לתור”.
@@ -391,7 +395,7 @@
כל %1$sב־%1$sניגון מתמשך
- ניתוק אוזניות
+ ניתוק אוזניות או Bluetoothחיבור אוזניות מחדשחיבור Bluetooth מחדשהזרמה עדיפה
@@ -404,7 +408,7 @@
הורדת פרקיםהזרמהמנשק משתמש
- מראה, סדר מינויים, מסך נעילה
+ מראה, מינויים, מסך נעילהבחירת ערכת עיצובהגדרת פריטי מגירת ניווטהחלפת הפריטים שמופיעים במגירת הניווט.
@@ -443,10 +447,9 @@
לכפות סנכרון מלאסנכרון כל המינויים ומצבי הפרקים עם gpodder.net.%1$s עם ההתקן %2$s]]>
- הצגת התרעות שגיאות סנכרון
+ הסנכרון נכשלהגדרה זו אינה חלה על שגיאות אימות.
- מהירויות ניגון
- בחירת המהירויות הזמינות למהירות נגינה משתנה
+ התאמת המהירויות הזמינות למהירות נגינה משתנההמהירות שתחול על פרקים בפודקאסט זה כשאלו מתחילים להתנגןלדלג אוטומטיתלדלג על הקדמה ותודות בסיום.
@@ -466,15 +469,15 @@
הגדרה זו מרחיבה את ההתראה כדי שתציג גם כפתורי נגינה.פקדי נגינה קבועיםלהשאיר את פקדי ההתרעות ומסך הנעילה גם כשהנגינה מושהית.
- הגדרת כפתורים במסך נעילה
- החלפת כפתור הנגינה במסך הנעילה. הכפתורים נגינה/השהיה תמיד נכללים.
+ הגדרת כפתורי התראה מוקטנים
+ להחליף את כפתורי הנגינה כאשר ההתראה מצומצמת. כפתור נגינה/השהיה תמיד יופיע.בחירה עד %1$d פריטיםניתן לבחור עד %1$d פריטים.הגדרת רקע מסך הנעילההגדרת רקע מסך הנעילה לתמונה של הפרק שמתנגן כעת. כתופעת לוואי, התמונה תופיע גם ביישומי צד שלישי.
- הצגת דוח הורדה
+ ההורדה נכשלהאם ההורדה נכשלת, יש ליצר דוח שמציג את פרטי הכשל.
- הצגת דוח הורדה אוטומטית
+ הורדה אוטומטית הושלמהלהציג הודעה לפרקים שהתקבלו אוטומטית.גרסאות Android שקדמו ל־4.1 אינן תומכות בהתרעות מתרחבות.הוספת המיקום לתור
@@ -524,6 +527,14 @@
בחירת עמודמחיקה מסירה מהתורהסרת פרק מהתור אוטומטית עם מחיקתו.
+ מסנן מינויים
+ סינון המינויים שלך במגירת הניווט ובמסך המינויים.
+ ללא
+ המינויים מסוננים.
+ התקבלו אוטומטית
+ לא התקבלו אוטומטית
+ נשאר עדכני
+ לא נשאר עדכניעל אודותגרסת אנטנה־פּוֹד
@@ -558,6 +569,7 @@
העברת מינויים, פרקים להם האזנת ותור נגינה לאנטנה־פוֹד במכשיר אחרייבוא מסד הנתונים של אנטנה־פוֹד ממכשיר אחרייבוא OPML
+ לייבא רשימת פודקאסטים (OPML)אירעה שגיאה בעת קריאת מסמך ה־OPML:לא נבחר קובץ!בחירת הכול
@@ -573,7 +585,8 @@
הקובץ שייוצא נכתב אל:\n\n%1$sנדרשת גישה לאחסון חיצוני כדי לקרוא את קובץ ה־OPMLבחירת קובץ לייבוא
- הייבוא הצליח.\n\nנא ללחוץ על אישור כדי להפעיל את אנטנה־פּוֹד מחדש
+ הייבוא הצליח
+ נא ללחוץ על אישור כדי להפעיל את אנטנה־פּוֹד מחדשמסד נתונים זה ייוצא עם גרסה עדכנית יותר של אנטנה־פוֹדייצוא מועדפיםייצור המועדפים השמורים לקובץ
@@ -674,7 +687,6 @@
האטהשמעוידאו
- ניווט כלפי מעלההפרק יורדהפרק בתורהפרק מסומן כמועדף
@@ -695,6 +707,10 @@
לשמור על עדכניותלכלול את הפודקאסט בעת רענון (אוטומטי) של כל הפודקאסטיםהורדה אוטומטית מושבתת בהגדרות הראשיות של אנטנה־פּוֹד
+ הואזן למשך:
+ פרקים על המכשיר הזה:
+ מקום תפוס:
+ להציג לכל הפודקאסטים »מסד הנתונים משתדרג
@@ -702,18 +718,27 @@
חיפוש פודקאסט…חיפוש ב־iTunes
+ חיפוש ב־Podcastindex.orgבחיפוש ב־fyydמתקדם
- הוספת פודקאסט לפי כתובת
+ הוספת פודקאסט לפי כתובת RSSעיון ב־gpodder.netעיון
+ הסתרה
+ בחרת להסתיר הצעות.עוד »
- החיפוש מופעל על ידי %1$s
+ הצעות מ־iTunes
+ תוצאות מאת %1$s
+
+ הוספת תיקייה מקומית
+ חיבור מחדש לתיקייה מקומית
+ במקרה של דחיית הרשה, ניתן להשתמש בזה כדי לחבר את אותה התיקייה בדיוק מחדש. אין לבחור בתיקייה אחרת.
+ הפודקאסט הווירטואלי הזה נוצר על ידי הוספת תיקייה לאנטנה־פּוֹד.מסנןהכולבחירת כל הפרקים
- ללא
+ ללאאף פרק לא נבחרנוגנובחירת פרקים שנוגנו
@@ -723,12 +748,21 @@
בחירת פרקים שהורדולא הורדובחירת פרקים שלא הורדו
- בתורבחירת פרקים בתור
- לא בתורבחירת פרטים שאינם בתור
- יש מדיהבחירת פרקים עם מדיה
+ עם סימון מועדף
+ לא במועדפים
+ הורד
+ לא הורד
+ בתור
+ לא בתור
+ יש מדיה
+ אין מדיה
+ מושהה
+ לא מושהים
+ נוגן
+ לא נוגנוכותרת (א \u2192 ת)כותרת (ת \u2192 א)
@@ -748,6 +782,12 @@
לא תודהפעם אחרתבטח, נלך על זה!
+
+ כולל:
+ מיקום הנגינה
+ כתובת קובץ מדיה
+ עמוד הפרק
+ קובץ מדיהפקדי שמעמהירות נגינה
@@ -794,7 +834,9 @@
מתנגן כעתמאשר לשלוט בנגינה. זאת ההתראה הראשית שמופיעה בעת נגינת פודקאסט.שגיאות
- מופיעות אם משהו משתבש, למשל אם הורדה או סנכרון מול gpodder נכשלים.
+ מופיע אם משהו משתבש, למשל אם הורדה או עדכון הזנה נכשלים.
+ שגיאות סנכרון
+ מופיע כאשר הסנכרון מול gpodder נכשל.הורדות אוטומטיותמופיע כאשר פרקים התקבלו אוטומטית.
diff --git a/core/src/main/res/values-ja/strings.xml b/core/src/main/res/values-ja/strings.xml
index ac9c49a2e..62ceb3418 100644
--- a/core/src/main/res/values-ja/strings.xml
+++ b/core/src/main/res/values-ja/strings.xml
@@ -26,16 +26,13 @@
再生ダウンロード
- ポッドキャストを再生した合計時間:%2$d から %1$d のエピソードが開始しました。\n\n%4$s から%3$s を再生しました。統計情報モード実際に再生された時間を計算します。 2回再生すると2回カウントされ、再生済のマークはカウントされません
- 再生済みとマークされたすべてのポッドキャストを集計する注意: 再生速度は考慮されません。統計情報のデータをリセットこれにより、すべてのエピソードを再生した期間の履歴が消去されます。 続行しますか?
- ダウンロード済のポッドキャストのサイズ合計:メニューを開くメニューを閉じる
@@ -49,6 +46,7 @@
未再生のエピソードの数ダウンロード済のエピソードの数なし
+
ブラウザーで開くURLをコピー
@@ -117,14 +115,7 @@
ポッドキャスト設定ポッドキャストの名前を変更ポッドキャストを削除
- 共有…
- エピソード URLを共有
- エピソード URL を位置と共に共有ファイルを共有
- ウェブサイト URLを共有
- ポッドキャスト URL を共有
- メディアファイル URLを共有
- メディアファイル URL を位置と共に共有ポッドキャスト \"%1$s\" とすべての(ダウンロード済を含む)エピソードを削除することを確認してください。ポッドキャストを削除していますポッドキャストをすべて更新
@@ -132,14 +123,9 @@
上のすべてを選択下のすべてを選択未再生
- 一時停止中
- 再生済みキューに追加済キューに未追加
- ダウンロード済
- 未ダウンロードメディアあり
- お気に入りフィルターしました{fa-exclamation-circle} 前回更新に失敗しましたポッドキャストを開く
@@ -223,7 +209,6 @@
ダウンロード処理中ポッドキャストデータをダウンロード中
- %1$d ダウンロード成功, %2$d 失敗タイトル不明フィードメディアファイル
@@ -236,7 +221,6 @@
モバイルデータ接続でのダウンロードは設定で無効になっています。\n\n一時的に有効にしますか?\n\n選択は 10 分間記憶されます。モバイルストリーミングの確認モバイルデータ接続を介したストリーミングは設定で無効になっています。 タップするととにかくストリーミングします。
- 常に許可キューに追加するだけ一時的に有効にする
@@ -282,7 +266,6 @@
プラグインをダウンロードプラグイン はインストールされていません可変速再生を機能させるには、内蔵のSonicメディアプレーヤーを有効にすることをお勧めします。
- 再生速度Sonic を有効にするエピソードはキューにありません
@@ -354,7 +337,6 @@
%1$s ごと%1$s に連続再生
- ヘッドフォン切断ヘッドフォン再接続Bluetooth再接続ストリーミングを優先する
@@ -367,7 +349,6 @@
エピソードのダウンロードストリーミングインターフェース
- 外観、購読注文、ロック画面テーマを選択ナビゲーションドロワーを変更ナビゲーションドロワーに表示するアイテムを変更します。
@@ -404,10 +385,7 @@
購読とエピソードの状態の変更を gpodder.net で同期します。すべての購読とエピソードの状態を gpodder.net で同期します。%1$s としてデバイス %2$s でログインしました]]>
- 同期エラーの通知を表示この設定は、認証エラーには適用されません。
- 再生速度
- 可変速度音声再生に使用可能な速度をカスタマイズしますこのポッドキャストでエピソードのオーディオ再生を開始するときに使用する速度メディア情報を再生速度に調整表示される位置と時間が再生速度に調整されます
@@ -421,15 +399,11 @@
これは通常再生ボタンを表示するように通知を展開します。永続再生コントロール再生が一時停止された時に、通知およびロック画面のコントロールを保持します。
- ロック画面ボタンを設定
- ロック画面の再生ボタンを変更します。再生/一時停止ボタンを常に含みます。最大 %1$d のアイテムを選択最大 %1$d のアイテムのみを選択できます。ロック画面の背景を設定ロック画面の背景を、現在のエピソードの画像に設定します。副作用として、これはサードパーティのアプリケーションでも画像を表示します。
- ダウンロード レポートを表示ダウンロードが失敗した場合、失敗の詳細を表示するレポートを生成します。
- 自動ダウンロード レポートを表示自動ダウンロードされたエピソードの通知を表示します。Androidバージョン4.1以前では、拡張通知をサポートしていません。キューに入れる場所
@@ -515,7 +489,6 @@
エクスポートしたファイルを書き込みました:\n\n%1$sOPML ファイルを読み込むために、外部ストレージへのアクセスが必要ですインポートするファイルを選択してください
- インポートが成功しました。\n\nOKを押してAntennaPodを再起動してください。このデータベースは、AntennaPodの新しいバージョンでエクスポートされました。 現在インストールされたアプリでは、このファイルの処理方法がまだわかりません。スリープタイマーをセット
@@ -602,7 +575,6 @@
早送り音声動画
- 上に移動エピソードをダウンロード中エピソードはキューの中にありますこのアイテムの場所を変更するにはドラッグしてください
@@ -628,15 +600,14 @@
iTunes を検索fyydを検索詳細
- URLでポッドキャストを追加gpodder.netを参照発見さらに »
+
フィルターすべてすべてのエピソードを選択しました
- なしすべてのエピソードの選択を解除しました再生しました再生済のエピソードを選択しました
@@ -646,12 +617,17 @@
ダウンロード済のエピソードを選択しましたダウンロードしていませんダウンロードしていないエピソードを選択しました
- キューに入れましたキューに入ったエピソードを選択しました
- キューに入っていませんキューに入っていないエピソードを選択しました
- メディアありメディアのあるエピソードを選択しました
+ お気に入り
+ ダウンロード済
+ 未ダウンロード
+ キューに入れました
+ キューに入っていません
+ メディアあり
+ 一時停止中
+ 再生済みタイトル (A \u2192 Z)タイトル (Z \u2192 A)
@@ -665,6 +641,7 @@
構わないで後で確認するもちろん、します!
+
オーディオコントロール再生速度
@@ -711,7 +688,6 @@
現在再生中再生をコントロールできます。これはポッドキャスト再生中のメイン通知です。エラー
- ダウンロードや gpodder の同期に失敗した場合など、何か問題が発生した場合に表示されます。自動ダウンロードエピソードが自動ダウンロードされた時に表示します。
diff --git a/core/src/main/res/values-ko/strings.xml b/core/src/main/res/values-ko/strings.xml
index 28f79aca7..95dd859e9 100644
--- a/core/src/main/res/values-ko/strings.xml
+++ b/core/src/main/res/values-ko/strings.xml
@@ -26,16 +26,13 @@
재생다운로드
- 재생한 팟캐스트의 전체 시간에피소드 %1$d개 (전체 %2$d개) 시작.\n\n%3$s개 재생 (전체 %4$s개).통계 모드실제 재생한 시간을 계산합니다. 두 번 재생하면 두 번 계산되고, 재생한 것으로 표시하면 계산에 안 들어갑니다.
- 재생한 것으로 표시한 모든 팟캐스트 합계주의: 재생 속도는 고려하지 않습니다통계 데이터 초기화모든 에피소드의 재생 시간 기록을 지웁니다. 정말로 계속 하시겠습니까?
- 다운로드한 팟캐스트의 전체 크기:메뉴 열기메뉴 닫기
@@ -49,6 +46,7 @@
재생하지 않은 에피소드 수다운로드한 에피소드 수없음
+
브라우저에서 열기URL 복사
@@ -121,14 +119,7 @@
팟캐스트 설정팟캐스트 이름 바꾸기팟캐스트 제거
- 공유…
- 에피소드 URL 공유
- 에피소드 URL 및 재생 위치 공유파일 공유
- 홈페이지 URL 공유
- 팟캐스트 URL 공유
- 미디어 파일 URL 공유
- 미디어 파일 URL과 재생 위치 공유확인하면 \"%1$s\" 피드를 삭제하고 이 피드에서 다운로드한 모든 에피소드를 삭제합니다.팟캐스트 삭제하는 중전체 팟캐스트 새로 고침
@@ -136,14 +127,9 @@
위 모두 선택아래 모두 선택재생 안 함
- 일시 중지함
- 재생함대기열 추가함대기열 추가 안 함
- 다운로드함
- 다운로드 안 함미디어 있음
- 즐겨찾기 포함필터링함{fa-exclamation-circle} 최근 새로 고침 실패팟캐스트 열기
@@ -228,7 +214,6 @@
다운로드 처리 중팟캐스트 데이터 다운로드 중
- 다운로드 %1$d개 성공, %2$d개 실패알 수 없는 제목피드미디어 파일
@@ -241,7 +226,6 @@
휴대전화망 데이터 연결을 통한 다운로드는 설정에서 막혀 있습니다.\n\n임시로 다운로드를 열 수 있습니다\n\n여기서 선택한 사항은 10분 동안 유지됩니다.휴대전화망 스트리밍 확인휴대전화 데이터 연결을 통한 스트리밍은 사용하지 않게 설정되어 있습니다. 그래도 스트리밍을 하려면 누르십시오.
- 항상 허용대기열에 추가임시로 허용
@@ -287,7 +271,6 @@
플러그인 다운로드플러그인을 설치하지 않았습니다여러가지 속도로 재생이 동작하려면 내부의 소닉 미디어 플레이어 사용을 추천합니다.
- 재생 속도소닉 사용대기열의 에피소드 없음
@@ -361,7 +344,6 @@
매 %1$s%1$s에서연속 재생
- 헤드폰 연결 끊김헤드폰 다시 연결블루투스 다시 연결스트리밍 우선
@@ -374,7 +356,6 @@
에피소드 다운로드스트리밍사용자 인터페이스
- 모양, 구독 순서, 잠금 화면테마 선택네비게이션 드로어 항목 설정네비게이션 드로어에 어떤 항목을 표시할지 바꿉니다.
@@ -413,10 +394,7 @@
전체 동기화 강제gpodder.net의 모든 구독과 에피소드 상태를 동기화합니다.%1$s 사용자로 로그인, %2$s 장치]]>
- 동기화 오류 알림 표시이 설정은 인증 오류에는 적용되지 않습니다.
- 재생 속도
- 여러가지 오디오 재생 속도 직접 설정이 팟캐스트의 에피소드를 재생할 때 사용할 오디오 재생 속도자동 건너뛰기소개 및 마지막 크레디트 건너뛰기
@@ -436,15 +414,11 @@
알림에서 재생 버튼이 표시되도록 확장합니다.재생 조작 항상 표시재생이 일시 중지했을 때에도 알림과 잠금 화면의 조작 기능을 유지합니다.
- 화면잠금 버튼 설정
- 잠금화면의 조작 버튼을 바꿉니다. 재생/일시중지 버튼은 항상 포함됩니다.최대 %1$d개 항목 선택최대 %1$d개 항목만 선택할 수 있습니다.잠금 화면 배경 설정현재 에피소드의 이미지를 잠금 화면의 배경으로 설정합니다. 대신 이는 제3자 앱의 이미지도 표시하게 됩니다.
- 다운로드 보고서 보기다운로드가 실패하면, 실패 이유를 자세히 표시하는 보고서를 만듭니다.
- 자동 다운로드 보고서 표시자동 다운로드 에피소드 에 대해 알림을 표시합니다.안드로이드 4.1 미만의 버전에서는 확장 알림을 지원하지 않습니다.대기열 추가 위치
@@ -543,7 +517,6 @@
내보낸 파일을 다음에 저장했습니다:\n\n%1$sOPML 파일을 읽으려면 외부 저장소 접근이 필요합니다가져올 파일을 선택하십시오
- 내보내기 성공.\n\n안테나팟을 다시 시작하려면 확인을 누르십시오이 데이터베이스는 더 새로운 버전의 안테나팟에서 내보낸 데이터베이스입니다. 현재 설치된 버전의 안테나팟에서는 이 파일을 제대로 처리하지 못할 수도 있습니다.즐겨찾기 내보내기저장한 즐겨찾기를 파일로 내보내기
@@ -635,7 +608,6 @@
속도 감소오디오비디오
- 위 단계로 이동에피소드를 다운로드하는 중입니다에피소드가 대기열에 들어 있습니다에피소드를 좋아한다고 표시되었습니다
@@ -665,16 +637,14 @@
iTunes 검색fyyd 검색고급
- URL로 팟캐스트 추가gpodder.net 둘러보기발견더 보기 »
- 검색 기능 제공 %1$s
+
필터모두모든 에피소드 선택함
- 없음모든 에피소드 선택 해제함재생함재생한 에피소드 선택함
@@ -684,12 +654,17 @@
다운로드한 에피소드 선택함다운로드 안 함다운로드 안 한 에피소드 선택함
- 대기열에 있음대기열의 에피소드 선택함
- 대기열에 없음대기열에 없는 에피소드 선택함
- 미디어 있음미디어가 있는 에피소드 선택함
+ 즐겨찾기 포함
+ 다운로드함
+ 다운로드 안 함
+ 대기열에 있음
+ 대기열에 없음
+ 미디어 있음
+ 일시 중지함
+ 재생함제목 (A \u2192 Z)제목 (Z \u2192 A)
@@ -709,6 +684,7 @@
관심 없음나중에 알림해봅시다!
+
오디오 조작재생 속도
@@ -755,7 +731,6 @@
현재 재생 중재생을 조작할 수 있습니다 .팟캐스트를 재생할 때 볼 수 있는 메인 알림입니다.오류
- 뭔가 잘못될 때 표시됩니다. 예를 들어 다운로드나 gpodder 동기화가 실패했을 경우.자동 다운로드에피소드를 자동으로 다운로드했을 때 표시됩니다.
diff --git a/core/src/main/res/values-lt/strings.xml b/core/src/main/res/values-lt/strings.xml
index 380a68120..442916985 100644
--- a/core/src/main/res/values-lt/strings.xml
+++ b/core/src/main/res/values-lt/strings.xml
@@ -26,16 +26,13 @@
AtkūrimasAtsiuntimai
- Bendra perklausytų tinklalaidžių trukmė:Paleisti %1$d iš %2$d epizodų.\n\nPerklausyta %3$s iš %4$s.Statistikos režimasApskaičiuoti tikrąją atkūrimo trukmę. Perklausa dukart skaičiuojama dvigubai, o pažymėjimas perklausytu neskaičiuojamas
- Sumuoti visas tinklalaides, pažymėtas kaip perklausytasAtkreipkite dėmesį: į atkūrimo spartą neatsižvelgiama.Nustatyti statistikos duomenis iš naujoBus išvalyta visų epizodų perklausytos trukmės istorija. Ar tikrai norite tęsti?
- Bendras atsiųstų tinklalaidžių dydis:Atverti meniuUžverti meniu
@@ -49,6 +46,7 @@
Neperklausytų epizodų skaičiusAtsisiųstų epizodų skaičiusNieko
+
Atverti naršyklėjeKopijuoti URL
@@ -130,14 +128,7 @@
Tinklalaidės nustatymaiPervadinti tinklalaidęPašalinti tinklalaidę
- Dalintis...
- Dalintis epizodo URL
- Dalintis epizodo URL su pozicijaDalintis failu
- Dalintis svetainės URL
- Dalintis tinklalaidės URL
- Dalintis medijos failo URL
- Dalintis medijos failo adresu su pozicijaPatvirtinkite, jog norite ištrinti tinklalaidę „%1$s“ ir VISUS jos epizodus (įskaitant atsiųstus epizodus).Tinklalaidė šalinamaAtnaujinti visą tinklalaidę
@@ -145,14 +136,9 @@
Pažymėti visus aukščiauPažymėti visus žemiauNeperklausyti
- Pristabdyti
- PerklausytiEsantys eilėjeNesantys eilėje
- Atsiųsti
- NeatsiųstiTurintys medijos failų
- MėgstamiFiltruota{fa-exclamation-circle} Paskutinis atnaujinimas nepavykoAtverti tinklalaidę
@@ -258,7 +244,6 @@
Apdorojami atsiuntimaiAtsiunčiami tinklalaidės duomenys
- %1$d atsiuntimai sėkmingi, %2$d nepavykoNežinomas pavadinimasSklaidos kanalasMedijos failas
@@ -271,7 +256,6 @@
Atsiuntimas mobiliuoju internetu išjungtas nustatymuose.\n\nAr norite laikinai leisti atsiuntimą?\n\nJūsų pasirinkimas bus prisimenamas 10 minučių.Patvirtinkite tiesioginį klausymąsi mobiliuoju internetuTiesioginis klausymasis mobiliuoju internetu išjungtas nustatymuose. Spustelėkite, jei vis tiek norite klausytis tiesiogiai.
- Leisti visadaPridėti į eilęLaikinai leisti
@@ -317,7 +301,6 @@
Atsiųsti įskiepįĮskiepis neįdiegtasTinkamam kintamos atkūrimo spartos veikimui rekomenduojame įjungti įtaisytąją „Sonic“ medijos leistuvę.
- Atkūrimo spartosĮjungti „Sonic“Epizodų eilėje nėra
@@ -391,7 +374,6 @@
kas %1$slygiai %1$sNenutrūkstamas atkūrimas
- Ausinių atjungimasPakartotinai prijungus ausinesPakartotinai prisijungus prie „Bluetooth“Teikti pirmenybę klausymuisi tiesiogiai
@@ -404,7 +386,6 @@
Epizodų atsiuntimasKlausymasis tiesiogiaiVartotojo sąsaja
- Išvaizda, prenumeratų tvarka, ekrano užraktasPasirinkti temąNustatyti naršymo stalčiaus elementusKeisti naršymo stalčiuje rodomus elementus.
@@ -443,10 +424,7 @@
Priverstinis pilnas sinchronizavimasSinchronizuoti visas prenumeratas bei epizodų būsenas su „gpodder.net“.%1$s naudojant įrenginį %2$s]]>
- Rodyti sinchronizavimo klaidų pranešimusŠis nustatymas negalioja tapatumo nustatymo klaidoms.
- Atkūrimo sparta
- Derinkite prieinamas garso atkūrimo spartasAtkūrimo sparta, naudojama pradedant šios tinklalaidės epizodų atkūrimąAutomatinis praleidimasPraleisti įvadą ir pabaigos žodį.
@@ -466,15 +444,11 @@
Tai dažniausiai išskleidžia pranešimą, kad būtų rodomi atkūrimo valdymo mygtukai.Pastovūs atkūrimo valdikliaiPristabdžius atkūrimą palikti valdiklius ekrano užrakte bei programų pranešimuose.
- Nustatyti ekrano užrakto mygtukus
- Keisti ekrano užrakte matomus atkūrimo valdymo mygtukus. Atkūrimo/pristabdymo mygtukas matomas visada.Pasirinkite daugiausiai %1$d elementusGalite pasirinkti daugiausiai %1$d elementus.Nustatyti ekrano užrakto fonąAtkuriamo epizodo paveikslėlį naudoti kaip ekrano užrakto foną. Paveikslėlis taip pat bus matomas trečiųjų šalių programėlėse.
- Rodyti atsiuntimų ataskaitąAtsiuntimui nepavykus, sukurti ataskaitą su išsamiu klaidų aprašymu.
- Rodyti automatinių atsiuntimų ataskaitąRodyti pranešimą automatiškai atsiuntus epizodus.Ankstesnės nei 4.1 „Android“ versijos nepalaiko išplėstų programos pranešimų.Pridėjimo į eilę vieta
@@ -573,9 +547,6 @@
Eksporto failas išsaugotas:\n\n%1$sNorint nuskaityti OPML failą reikalinga prieiga prie išorinės laikmenosPasirinkite failą, kurį norite importuoti
- Importuota sėkmingai.
-
-Spauskite „OK“, kad paleisti „AntennaPod“ iš naujo.Ši duomenų bazė buvo eksportuota naudojant naujesnę „AntennaPod“ versija. Dabartinė įdiegtis nežino, kaip apdorotį šį failą.Mėgstamųjų eksportasMėgstamieji išsaugoti faile
@@ -676,7 +647,6 @@ Spauskite „OK“, kad paleisti „AntennaPod“ iš naujo.
Sumažinti spartąGarsasVaizdas
- Eiti aukštynEpizodas atsiunčiamasEpizodas yra eilėjeEpizodas pažymėtas kaip mėgstamas
@@ -706,16 +676,14 @@ Spauskite „OK“, kad paleisti „AntennaPod“ iš naujo.
Ieškoti „iTunes“Ieškoti „fyyd“Išplėstinis
- Pridėti tinklalaidę pagal URL adresąNaršyti gpodder.net svetainėjeAtraskitedaugiau »
- Paiešką įgalina %1$s
+
FiltruotiVisiPažymėti visi epizodai
- JokiePanaikintas visų epizodų žymėjimasPerklausytiPažymėti perklausyti epizodai
@@ -725,12 +693,17 @@ Spauskite „OK“, kad paleisti „AntennaPod“ iš naujo.
Pažymėti atsiųsti epizodaiNeatsiųstiPažymėti neatsiųsti epizodai
- EilėjePažymėti epizodai, esantys eilėje
- Ne eilėjePažymėti epizodai, nesantys eilėje
- Turintys medijos failųPažymėti epizodai, turintys medijos failų
+ Mėgstami
+ Atsiųsti
+ Neatsiųsti
+ Eilėje
+ Ne eilėje
+ Turintys medijos failų
+ Pristabdyti
+ PerklausytiPavadinimas (A \u2192 Z)Pavadinimas (Z \u2192 A)
@@ -750,6 +723,7 @@ Spauskite „OK“, kad paleisti „AntennaPod“ iš naujo.
Palikite mane ramybėjePriminti vėliauŽinoma, padarykime tai!
+
Garso valdikliaiAtkūrimo sparta
@@ -796,7 +770,6 @@ Spauskite „OK“, kad paleisti „AntennaPod“ iš naujo.
Šiuo metu atkuriamaLeidžia valdyti atkūrimą. Tai pagrindinis pranešimas matomas tinklalaidės atkūrimo metu.Klaidos
- Rodomas, kai įvykstą kažkas nenumatyto, pavyzdžiui, nepavykus atsiuntimui ar „gpodder“ sinchronizavimui.Automatiniai atsiuntimaiRodomas automatiškai atsiuntus epizodus.
diff --git a/core/src/main/res/values-nb/strings.xml b/core/src/main/res/values-nb/strings.xml
index ccdc9a28c..b4481adab 100644
--- a/core/src/main/res/values-nb/strings.xml
+++ b/core/src/main/res/values-nb/strings.xml
@@ -9,7 +9,7 @@
AlleNyeFavoritter
- Nye
+ NyInnstillingerNedlastningerKjører
@@ -25,17 +25,16 @@
Grensen for størrelse på hurtigbuffer er nådd. Du kan øke størrelsen på hurtigbuffer i innstillingene.AvspillingNedlastinger
+ Varslinger
- Sum av tid i avspilte podkaster:
+ Total tid, avspilte episoderStartet %1$d av %2$d episoder.\n\nAvspilt %3$s av %4$s.StatistikkmodusBeregn faktisk avspilt varighet. Dobbel avspilling telles to ganger, mens markering som avspilt telles ikke
- Oppsummer alle podkaster merket som avspiltMerk: Avspillingshastighet tas aldri med i betraktningen.Tilbakestill statistikkdataDette vil slette historikk om varighet som er spilt for alle episoder. Er du sikker på at du vil fortsette?
- Total størrelse på nedlastede podkaster:Åpne menyenLukk menyen
@@ -49,6 +48,8 @@
Antall uavspilte episoderAntall nedlastede episoderIngen
+
+ Fant ingen kompatible apperÅpne i nettleserKopier URL
@@ -85,6 +86,7 @@
Den nye Automatisk nedlasting-innstillingen vil automatisk aktiveres for nye episoder.\nØnsker du å aktivere den for tidligere utgitte episoder også?Slett episode automatiskVolumreduksjon
+ Demp volumet for episoder i denne strømmen: %1$sAvLettTung
@@ -119,14 +121,10 @@
PodkastinnstillingerGi nytt navn til podkastFjern podkast
- Del ...
- Del episodens URL
- Del episodens URL med posisjon
+ Del
+ Del…Del fil
- Del nettsidens URL
- Del podkastens URL
- Del mediafilens URL
- Del mediafilens URL med posisjon
+ Nettsidens adresseBekreft at du ønsker å slette podkasten \"%1$s\" og ALLE episodene dens (inkludert nedlastede episoder).Fjerner podkastLast hele podkasten på nytt
@@ -134,14 +132,9 @@
Velg alle overVelg alle underIkke avspilt
- Pauset
- AvspiltI køIkke i kø
- Nedlastet
- Ikke nedlastetHar medier
- Er favorittFiltrert{fa-exclamation-circle} Siste oppdatering mislyktesÅpne podkast
@@ -232,7 +225,6 @@
Behandler nedlastningerLaster ned data til podkast
- %1$d nedlastninger lyktes, %2$d mislyktesUkjent tittelStrømMediafil
@@ -245,7 +237,8 @@
Nedlasting over mobildata er deaktivert i innstillingene.\n\nVil du tillate nedlasting over mobildata midlertidig?\n\nValget ditt vil gjelde i 10 minutter.Bekreft mobil strømmingStrømming over mobildata er deaktivert i innstillingene. Trykk for å strømme likevel.
- Tillat alltid
+ Alltid
+ Én gangLegg til i køTillat midlertidig
@@ -291,7 +284,6 @@
Last ned programtilleggProgramtillegg er ikke installertFor at avspilling med varierende hastighet skal virke, anbefaler vi å bruke den innebygde Sonic-mediespilleren.
- AvspillingshastigheterSkru på SonicIngen episoder i kø
@@ -338,10 +330,10 @@
Sett playback på pause når hodetelefoner eller bluetooth er frakobletGjenoppta avspilling når hodetelefoner gjeninnkoplesFortsett avspilling når bluetooth er tilkoblet igjen
- \"Forover\"-knapp hopper over
- Hopp til neste episode i stedet for å spole når \"Fremover\"-knapp trykkes
+ \"Fremover\" hopper over
+ Hopp til neste episode i stedet for å spole når du trykker på \"Fremover\"-knappenForriv
- Start episoden på nytt i stedet for å spole når \"Tilbake\"-knapp trykkes
+ Start episoden på nytt i stedet for å spole når du trykker på \"Tilbake\"-knappenHopp til neste element i køen når avspillingen er ferdigSlett episode når avspillingen er ferdigAutomatisk sletting
@@ -364,11 +356,11 @@
hver %1$sved %1$sKontinuerlig avspilling
- Frakobling av hodetelefoner
+ Koblet fra hodetelefoner eller BluetoothGjeninnkopling av hodetelefonerBlutetooth tilkoblet igjenForetrekk strømming
- Vis strømmeknapp i stedet for nedlastingsknapp i lister.
+ Vis knapp for å strømme i stedet for for nedlasting i lister.MobiloppdateringerVelg hva som skal tillates over mobildataLast podkast på nytt
@@ -377,7 +369,6 @@
Nedlasting av episoderStrømmingBrukergrensesnitt
- Utseende, rekkefølge på abonnementer, låseskjermVelg temaVelg elementer i navigasjonsskuffenEndre hvilke elementer som vises i navigeringsfanen.
@@ -411,18 +402,22 @@
Utloggelse lyktesEndre innloggingsinformasjonEndre innlogginsinformasjonen til din gpodder.net konto
+ Synkroniser nåSynkroniser abonnement og episoder med gpodder.net.Synkroniser alle abonnement og episoder med gpodder.net.%1$s med enhet %2$s]]>
- Vis synkroniseringsfeil varslerDenne instillingen gjelder ikke autentiseringfeil.
- Avspillingshastigheter
- Egendefiner hastighetene tilgjengelig for variabel avspillingshastighetHastigheten som brukes når episoder av denne podkasten spilles av
+ Automatisk hopp
+ Hopp over introer og \"rulletekster\"
+ Hopp over siste
+ Hopp over første
+ Hoppet over siste %d sekunder
+ Hoppet over første %d sekunderJuster media-info til avspillingshastighetVist posisjon og varighet tilpasses avspillingshastighetHopp fremover
- Velg hvor mange sekunder som skal hoppes når \"Spol fremover\"-knappen trykkes
+ Velg hvor mange sekunder som skal hoppes når du trykker på \"Spol fremover\"-knappenHopp tilbakeVelg hvor mange sekunder som skal hoppes tilbake når \"Spol tilbake\"-knappen trykkesSett vertsnavn
@@ -431,15 +426,12 @@
Dette utvider som regel varslingen for å vise kontroller.Vedvarende avspillingskontrollerBehold varsel- og låseskjermkontroller når avspilling er satt på pause.
- Velg låseskjermsknapper
- Endre kontrollene på låseskjermen. Spill/pause-knappen er alltid inkludert.Velg opp til %1$d tingDu kan kun velge opp til %1$d ting.Angi som bakgrunn på låseskjermenAngir låseskjermbakgrunnsbildet til å være den nåværende episodens bilde. Som en sideeffekt vil dette også vise bildet i tredjepartsapper.
- Vis nedlastingsrapportGenerer en rapport som viser detaljer dersom nedlastinger feiler.
- Vis rapport fra auto-nedlasting
+ Automatisk nedlasting fullførtVis en varsling for automatisk nedlastede episoderAndroid-versjoner tidligere enn 4.1 støtter ikke utvidede varsler.Plassering i køen
@@ -469,6 +461,8 @@
Legg til nedlastede i køenLegg til nedlastede episoder i køenInnebygd Android-spiller
+ Bytt til ExoPlayer
+ Byttet til ExoPlayerHopp over stillhetNår video lukkesOppførsel når video-avspilling lukkes
@@ -490,8 +484,10 @@
OmAntennaPod versjon
+ BidragsytereUtviklereOversettere
+ Spesiell takk tilPersonvernLisenserAntennaPod bruker annen flott programvare
@@ -525,7 +521,7 @@
Den eksporterte filen ble skrevet til:\n\n%1$sTilgang til ekstern lagring er nødvendig for å lese OPML filenVelg fil å importere
- Importering vellykket!\n\nTrykk OK for å starte AntennaPod på nytt
+ Eksportering vellykketDenne databasen ble eksportert fra en nyere versjon av AntennaPod. Din versjon av AntennaPod kan ikke lese denne filen enda.Sett opp sovetimer
@@ -610,19 +606,21 @@
AbonnerAbonnerer...Forhåndsvisning
+ Stopp forhåndsvisningSpol tilbakeSpol fremover
+ Øk hastighet
+ Reduser hastighetenLydVideo
- Naviger oppoverEpisode lastes ned nåEpisoden er i køenDra for å endre posisjonen til dette objektetLast inn neste sideAutentisering
- Endre brukernavnet og passordet for denne podkasten og dens episoder.
+ Endre brukernavnet og passordet for denne podkasten og dens episoderInnstillinger for automatisk nedlastningEpisodefilterNøkkelord som skal brukes for å avgjøre om en episode skal nedlastes automatisk eller ikke
@@ -639,17 +637,22 @@
Søk etter podkast...Søk på iTunes
+ Søk i Podcastindex.orgSøk med fyydAvansert
- Legg til podkast med URLBla gjennom gpodder.netOppdage
+ Skjul
+ Du valgte å skjule forslagmer »
+ Foreslått av iTunes
+
+ Legg til lokal mappe
+ Denne virtuelle podkasten ble laget ved å legge en mappe til i AntennaPod.FilterAlleValgte alle episoder
- IngenFjernet valg av alle episoderAvspiltValgte avspilte episoder
@@ -659,12 +662,17 @@
Valgte nedlastede episoderIkke nedlastetValgte ikke-nedlastede episoder
- I køValgte episoder i køen
- Ikke i køValgte episoder som ikke er i kø
- Har mediaValgte episoder med media
+ Er favoritt
+ Nedlastet
+ Ikke nedlastet
+ I kø
+ Ikke i kø
+ Har media
+ Pauset
+ AvspiltTittel (A \u2192 Z)Tittel (Z \u2192 A)
@@ -672,12 +680,20 @@
Dato (Gammel \u2192 Ny)Lengde (Kort \u2192 Lang)Lengde (Lang \u2192 Kort)
+ A \u2192 Å
+ Å \u2192 A
+ Ny \u2192 Gammel
+ Gammel \u2192 Ny
+ Kort \u2192 Lang
+ Lang \u2192 KortLiker du AntennaPod?Vi ville satt pris på om du tok deg tid til å vurdere AntennaPod.La meg være i fredMinn meg på dette senereNaturligvis, kom igjen!
+
+ Inkluder:Lyd-kontrollerAvspillingshastighet
@@ -724,7 +740,8 @@
Spilles nåKan styrre avspilling. Dette er hoved-varslingen du vil se mens en podkast spilles.Feil
- Vises hvis noe gikk galt, for eksempel hvis en nedlasting eller gpodder-synkronisering ikke kunne fullføres.
+ Feil ved synkronisering
+ Vises når synkronisering mot gpodder feilerAutomatiske nedlastingerVises når episoder har blitt lastet ned automatisk
diff --git a/core/src/main/res/values-nl/strings.xml b/core/src/main/res/values-nl/strings.xml
index 6e7f08ddf..b87732c82 100644
--- a/core/src/main/res/values-nl/strings.xml
+++ b/core/src/main/res/values-nl/strings.xml
@@ -25,17 +25,19 @@
Het maximum aantal gecachete afleveringen is bereikt. Je kunt dit aantal verhogen in de instellingen.AfspelenDownloads
+ Meldingen
- Totale duur van afgespeelde podcasts:
+ Totaalduur van afgespeelde afleveringen:%1$d van %2$d afleveringen gestart.\n\n%3$s van %4$s afgespeeld.RekenmethodeBereken de daadwerkelijke speeltijd. Tweemaal afspelen wordt twee keer gerekend; gemarkeerd als \'afgespeeld\' wordt niet meegeteld.
- Duur van de podcasts optellen die als \'afgespeeld\' gemarkeerd zijn
+ Alle afgespeelde afleveringen opsommenLet op: er wordt geen rekening gehouden met de afspeelsnelheid.Statistieken op nul zettenDit wist alle luistertijden van alle afleveringen. Weet je zeker dat je wilt doorgaan?
+ Sinds %s\nheb je geluisterd:
- Totale grootte van gedownloade podcasts:
+ Totaalgrootte van afleveringen op apparaat:Menu openenMenu sluiten
@@ -49,6 +51,8 @@
Aantal onbeluisterde afleveringenAantal gedownloade afleveringenGeen
+
+ Geen compatibele apps aangetroffenOpenen in browserURL kopiëren
@@ -69,7 +73,7 @@
BeeldFoutEr is een fout opgetreden:
- Machtiging vereist voor gebruik van opslag
+ Recht vereist voor gebruik van opslagVerversenGeen externe opslag beschikbaar. Zorg ervoor dat de externe opslag gekoppeld is zodat de app juist kan functioneren.Hoofdstukken
@@ -124,29 +128,22 @@
PodcastinstellingenPodcastnaam wijzigenPodcast verwijderen
- Delen...
- URL van aflevering delen
- URL van aflevering, incl. afspeelpositie, delen
+ Delen
+ Delen…Bestand delen
- Website-url delen
- Podcast-url delen
- URL van mediabestand delen
- URL van mediabestand, incl. afspeelpositie, delen
+ Website-adres
+ Podcast-feedurlBevestig dat je de podcast \'%1$s\' en ALLE bijbehorende (gedownloade) afleveringen wilt verwijderen.
+ Bevestig dat je de podcast \'%1$s\' wilt verwijderen. De bestanden in de lokale bronmap worden bewaard.Podcast verwijderenGehele podcast verversenMeerdere selecterenAlles hierboven selecterenAlles hieronder selecterenNiet afgespeeld
- Gepauzeerd
- AfgespeeldIn de wachtrijNiet in de wachtrij
- Gedownload
- Niet gedownloadBevat media
- Gemarkeerd als favorietGefilterd{fa-exclamation-circle} Vorige verversing misluktPodcast openen
@@ -238,7 +235,10 @@
Bezig met verwerken van downloadsBezig met downloaden van podcastgegevens
- %1$d downloads voltooid; %2$d mislukt
+
+ %d download voltooid; %d mislukt
+ %d downloads voltooid; %d mislukt
+ Onbekende titelFeedMediabestand
@@ -251,7 +251,8 @@
Downloaden via mobiel internet is uitgeschakeld in de instellingen.\n\nWil je dit tijdelijk toestaan?\nJe keuze wordt 10 minuten onthouden.Bevestig streamen via mobiel internetStreamen via mobiel internet is uitgeschakeld in de instellingen. Druk om tóch te streamen.
- Altijd toestaan
+ Altijd
+ EenmaligToevoegen aan wachtrijTijdelijk toestaan
@@ -297,8 +298,9 @@
Plug-in downloadenPlug-in niet geïnstalleerdAls je variabele afspeelsnelheden aan de praat wilt krijgen, dan raden we aan om de ingebouwde Sonic-mediaspeler te gebruiken.
- AfspeelsnelhedenSonic inschakelen
+ Voorinstellingen
+ %1$.2fx is al opgeslagen als voorinstelling.Geen afleveringen in wachtrijVoeg een aflevering toe door deze te downloaden of houd een aflevering lang ingedrukt en kies \'Toevoegen aan wachtrij\'.
@@ -342,11 +344,11 @@
MediaspelerAutomatisch opschonenAfleveringen die niet in de wachtrij staan én geen favoriet zijn, mogen verwijderd worden als \'Automatisch downloaden\' ruimte nodig heeft voor nieuwe afleveringen
- Afspelen pauzeren als de koptelefoon wordt losgekoppeld of de Bluetooth-verbinding verbroken
+ Afspelen pauzeren als de koptelefoon wordt losgekoppeld of de bluetoothverbinding verbrokenAfspelen hervatten als de koptelefoon weer wordt aangesloten
- Afspelen hervatten als de Bluetooth-verbinding hervat
+ Afspelen hervatten als de bluetoothverbinding hersteld is\'Vooruit\' gebruiken voor overslaan
- Als je op de vooruitknop van een via Bluetooth verbonden apparaat drukt, wordt de volgende aflevering geladen i.p.v. doorgespoeld
+ Als je op de vooruitknop van een via bluetooth verbonden apparaat drukt, wordt de volgende aflevering geladen i.p.v. doorgespoeld\'Vorige\' gebruiken voor opnieuw afspelenAflevering afspelen vanaf het begin i.p.v. terugspoelen als er op een fysieke \'vorige\'-knop wordt gedruktVolgende item in de wachtrij afspelen als de aflevering voltooid is
@@ -371,9 +373,9 @@
elke %1$som %1$sDoorlopend afspelen
- Loskoppelen van hoofdtelefoon
+ Koptelefoon- of bluetoothverbinding verbrokenOpnieuw aansluiten van hoofdtelefoon
- Opnieuw verbinden met Bluetooth
+ Opnieuw verbinden met bluetoothVoorkeur geven aan streamingToon een stream- i.p.v. downloadknop in lijsten.Bijwerken via mobiel internet
@@ -384,7 +386,7 @@
Hoofdstuk downloadenStreamenUiterlijk
- Uiterlijk, abonnementsortering, vergrendelscherm
+ Uiterlijk, abonnementen, vergrendelschermThema kiezenMenu-items kiezenKies welke items moeten worden getoond in het navigatiemenu.
@@ -395,8 +397,8 @@
Pas het uiterlijk van AntennaPod aan.Automatisch downloadenStel het automatisch downloaden van afleveringen in.
- Wi-Fi-filter inschakelen
- Automatisch downloaden alleen toestaan via gekozen Wi-Fi-netwerken.
+ Wifi-filter inschakelen
+ Automatisch downloaden alleen toestaan via gekozen wifi-netwerken.Downloaden als het apparaat niet wordt opgeladenDownloaden toestaan als het apparaat niet wordt opgeladenGelijktijdige downloads
@@ -423,10 +425,9 @@
Volledige synchronisatie afdwingenSynchroniseer alle abonnementen en afleveringsstatussen met gpodder.net.%1$s met apparaat %2$s]]>
- Melding tonen bij synchronisatiefouten
+ Synchronisatie misluktDeze instelling is niet van toepassing op inlogfouten.
- Afspeelsnelheden
- Pas de beschikbare snelheden aan voor de variabele audio-afspeelsnelheid
+ Pas de beschikbare snelheden aan voor de variabele afspeelsnelheidDe te gebruiken snelheid bij het afspelen van afleveringen in deze podcastAutomatisch overslaanSla introducties en aftitelingen over.
@@ -446,15 +447,15 @@
Dit klapt meestal de melding uit zodat de bedieningsknoppen kunnen worden getoond.Bedieningsknoppen behoudenOok bedieningsknoppen op het meldings- en vergrendelscherm behouden als het afspelen gepauzeerd wordt.
- Bedieningsknoppen vergrendelscherm
- Kies de bedieningsknoppen voor het vergrendelscherm. De knop afspelen/pauzeren wordt altijd getoond.
+ Kleine meldingsknoppen gebruiken
+ Kies de bedieningsknoppen voor als de melding is ingeklapt. De knop afspelen/pauzeren wordt altijd getoond.Kies maximaal %1$d knoppenJe kunt maximaal %1$d knoppen kiezen.Achtergrondafbeelding vergrendelschermToon de afbeelding van de huidige aflevering op het vergrendelscherm. Hierdoor is de afbeelding ook beschikbaar voor andere apps.
- Toon downloadverslag
+ Downloaden misluktStel een verslag op met foutdetails als downloads mislukken.
- Toon verslag automatische downloads
+ Automatisch downloaden voltooidToon een melding bij automatisch gedownloade afleveringen.Android-versies lager dan 4.1 ondersteunen geen knoppen op meldingen.Wachtrijlocatie
@@ -504,6 +505,14 @@
Kies een paginaAfleveringen verwijderen uit wachtrij na wissenVerwijder een aflevering uit de wachtrij als de aflevering in kwestie is verwijderd.
+ Abonnementsfilter
+ Filter je abonnementen in het navigatiemenu en op het abonnementenscherm.
+ Geen
+ De abonnementen zijn gefilterd.
+ Automatisch gedownload
+ Niet automatisch gedownload
+ Bijgehouden
+ Niet bijgehoudenOver AntennaPodAntennaPod-versie
@@ -538,6 +547,7 @@
Zet je abonnementen, beluisterde afleveringen en wachtrij over naar Antennapod op een ander apparaatAntennapod-databank importeren van ander apparaatOPML importeren
+ Podcastlijst (opml) importerenEr is iets misgegaan tijdens het lezen van het OPML-bestand:Geen bestand gekozen!Alles selecteren
@@ -553,7 +563,8 @@
Het geëxporteerde bestand is opgeslagen in:\n\n%1$sToegang tot externe locaties is nodig om het OPML-bestand te kunnen lezenKies een te importeren bestand
- Geïmporteerd.\n\nDruk op Oké om AntennaPod opnieuw te starten.
+ Importeren voltooid
+ Druk op \'Oké\' om AntennaPod opnieuw te starten.Deze databank is geëxporteerd door een nieuwere versie van Antennapod. Je huidige versie weet nog niet hoe daar mee om te gaan.Favorieten exporterenExporteer opgeslagen favorieten naar een bestand
@@ -648,7 +659,6 @@
Verlaag snelheidAudioVideo
- Navigeer naar bovenAflevering wordt gedownloadAflevering staat in de wachtrijAflevering als favoriet gemarkeerd
@@ -669,6 +679,10 @@
Bijgewerkt houdenDeze podcast meenemen bij het (automatisch) verversen van alle podcastsAutomatisch downloaden is uitgeschakeld in de AntennaPod-instellingen
+ Luisterduur:
+ Afleveringen op apparaat:
+ Gebruikte ruimte:
+ Alle podcasts tonen »Bezig met upgraden van databank...
@@ -676,18 +690,27 @@
Podcast zoeken...iTunes doorzoeken
+ Podcastindex.org doorzoekenFyyd doorzoekenGeavanceerd
- Podcast toevoegen middels url
+ Podcast toevoegen middels rss-adresVerken gpodder.netOntdekken
+ Verbergen
+ Je hebt er voor gekozen om aanbevelingen te verbergen.meer »
- Zoeken via %1$s
+ Aanbevelingen van iTunes
+ Resultaten van %1$s
+
+ Lokale map toevoegen
+ Lokale map opnieuw koppelen
+ Als je geen rechten hebt, gebruik dan dit om de map opnieuw te koppelen. Kies geen andere map.
+ De virtuele podcast is aangemaakt door een aan AntennaPod toegevoegde map.FilterAlleAlle afleveringen geselecteerd
- Geen
+ GeenAlle afleveringen gede-selecteerdAfgespeeldAlle afgespeelde afleveringen geselecteerd
@@ -697,12 +720,21 @@
Gedownloade afleveringen geselecteerdNiet gedownloadNiet-gedownloade afleveringen geselecteerd
- In de wachtrijAfleveringen in de wachtrij geselecteerd
- Niet in de wachtrijAfleveringen geselecteerd die niet in de wachtrij staan
- Bevat mediaAfleveringen met media geselecteerd
+ Gemarkeerd als favoriet
+ Geen favoriet
+ Gedownload
+ Niet gedownload
+ In de wachtrij
+ Niet in de wachtrij
+ Bevat media
+ Geen media
+ Gepauzeerd
+ Niet gepauzeerd
+ Afgespeeld
+ Niet afgespeeldTitel (A \u2192 Z)Titel (A \u2192 A)
@@ -722,6 +754,12 @@
Nee, bedanktHerinner me laterJa, doen we!
+
+ Opnemen:
+ Afspeelpositie
+ Adres van mediabestand
+ Website van aflevering
+ MediabestandAudio-instellingenAfspeelsnelheid
@@ -768,7 +806,9 @@
Nu aan het afspelenHiermee kun je het afspelen bedienen. Dit is de voornaamste melding tijdens het afspelen van een podcast.Foutmeldingen
- Wordt getoond als er iets is misgegaan, bijvoorbeeld bij het downloaden of synchroniseren.
+ Wordt getoond als er iets misgaat, zoals downloaden of het bijwerken van de feed.
+ Syschronisatiefouten
+ Worden getoond als gpodder-synchronisatie mislukt.Automatisch downloadenWordt getoond als afleveringen automatisch zijn gedownload.
diff --git a/core/src/main/res/values-pl/strings.xml b/core/src/main/res/values-pl/strings.xml
index f5fa5e310..29ab2d19c 100644
--- a/core/src/main/res/values-pl/strings.xml
+++ b/core/src/main/res/values-pl/strings.xml
@@ -26,16 +26,13 @@
OdtwarzaniePobrane
- Całkowity czas odtwarzania podcastów:%1$d z %2$d odcinków rozpoczęto.\n\nOdtworzono %3$s z %4$s.Tryb statystykOblicz łączny czas rzeczywistego odtwarzania. Dwukrotne odtworzenie będzie policzone ale zaznaczenie jako odtworzone nie będzie policzone.
- Podsumuj wszystkie podcasty oznaczone jako odtworzonePowiadomienie: Prędkość odtwarzania nigdy nie jest uwzględniana.Resetuj statystykiOperacja skasuje historię długości odtwarzania wszystkich odcinków. Czy na pewno chcesz kontynuować?
- Całkowita wielkość pobranych podcastów:Otwórz menuZamknij menu
@@ -49,6 +46,7 @@
Liczba nieodtworzonych odcinkówLiczba pobranych odcinkówBrak
+
Otwórz w przeglądarceKopiuj adres
@@ -130,14 +128,7 @@
Ustawienia podcastuZmień nazwę podcastuUsuń podcast
- Udostępnij...
- Udostępnij adres URL odcinka
- Udostępnij adres URL odcinka z aktualną pozycjąUdostępnij plik
- Udostępnij adres URL
- Udostępnij adres URL podcastu
- Udostępnij adres URL odcinka
- Udostępnij adres URL odcinka z pozycjąPotwierdź, że chcesz usunąć kanał \"%1$s\" oraz WSZYSTKIE jego odcinki (również te pobrane).Usuwanie podcastuOdśwież cały podcast
@@ -145,14 +136,9 @@
Zaznacz wszystkie powyżejZaznacz wszystkie poniżejNieodtworzone
- Zatrzymane
- OdtworzoneW kolejceNie w kolejce
- Pobrane
- Nie pobraneMa media
- UlubionePrzefiltrowany{fa-exclamation-circle} Ostatnie odświerzanie nie powiodło sięOtwórz Podcast
@@ -259,7 +245,6 @@
Przetwarzanie pobranychPobieranie danych podcastu
- %1$d pobierania poprawne, %2$d nieudaneNieznany tytułKanałPlik multimedialny
@@ -272,7 +257,6 @@
Pobieranie przez sieć komórkową jest wyłączone w ustawieniach.\n\nCzy chcesz tymczasowo zezwolić na pobieranie?\n\nTwój wybór zostanie zapamiętany na 10 minut.Potwierdź streamowanie przy użyciu danych komórkowychStreamowanie przy użyciu danych komórkowych jest wyłączone w ustawieniach. Naciśnij aby streamować mimo to.
- Pozwalaj zawszeDodaj do kolejkiZezwól tymczasowo
@@ -318,7 +302,6 @@
Pobierz wtyczkęWtyczka nie zainstalowanaAby używać zmiennej prędkości odtwarzania, zalecamy używanie wbudowanego odtwarzacza Sonic.
- Prędkość odtwarzaniaWłącz SonicBrak odcinków w kolejce
@@ -392,7 +375,6 @@
co %1$so %1$sOdtwarzanie ciągłe
- Słuchawki odłączoneSłuchawki podłączone ponownieBluetooth podłączony ponowniePreferuj streamowanie
@@ -405,7 +387,6 @@
Pobieranie odcinkówStreamingInterfejs użytkownika
- Wygląd, Kolejność subskrypcji, Ekran blokadyWybierz motywWybierz pozycje panelu nawigacyjnegoZmienia pozycje widoczne w panelu nawigacyjnym.
@@ -444,10 +425,7 @@
Wymuś pełną synchronizacjęSynchronizuj wszystkie subskrypcje oraz stan odcinków z pomocą gpodder.net.%1$s na urządzeniu %2$s]]>
- Pokaż powiadomienia błędów synchronizacjiTo ustawienie nie dotyczy błędów autoryzacji.
- Prędkość odtwarzania
- Dostosuj prędkości dostępne dla odtwarzania audio o zmiennej prędkościPrędkość używana podczas odtwarzania odcinków z tego kanałuAutomatyczne pomijaniePomijaj wstęp i napisy końcowe
@@ -467,15 +445,11 @@
Rozwija powiadomienie, aby pokazać przyciski odtwarzaniaStałe przyciski odtwarzaczaUtrzymuj powiadomienie i przyciski odtwarzania na ekranie blokady gdy odtwarzanie jest wstrzymane.
- Ustaw przyciski ekranu blokowania
- Zmień przyciski odtwarzania na ekranie blokowania. Przyciski odtwórz/zatrzymaj są zawsze uwzględnione.Wybierz maksimum z %1$d przedmiotówMożesz tylko wybrać maksimum z %1$d przedmiotów.Ustaw tło ekranu blokadyUstaw tło ekranu blokowania na aktualny obraz odcinka. W efekcie będzie zawsze pokazywał obraz w innych aplikacjach.
- Pokaż raport z pobieraniaJeżeli pobieranie się nie powiedzie, pokaż raport ze szczegółami błędu.
- Pokazuj raport z automatycznego pobieraniaPokazuj powiadomienie dla odcinków pobranych automatycznieAndroid starszy niż 4.1 nie wspiera rozszerzonych powiadomień.Pozycja w kolejce
@@ -573,7 +547,6 @@
Wyeksportowany plik został zapisany w:\n\n %1$sDostęp do zewnętrznej pamięci jest potrzebny do odczytywania plików OPMLWybierz plik do Importowania
- Import zakończony powodzeniem.\n\nNaciśnij OK aby zrestartować AntennaPodBaza danych została eksportowana z nowszej wersji AntennaPod. Twoja wersja nie potrafi obsłużyć tego pliku. Eksport ulubionychUlubione wyeksportowano do pliku
@@ -675,7 +648,6 @@ https://gpodder.net/register/
Zmniejsz prędkośćAudioWideo
- Przesuń w góręOdcinek jest pobieranyOdcinek jest w kolejceOdcinek oznaczony jako ulubiony
@@ -705,16 +677,14 @@ https://gpodder.net/register/
Szukaj w iTunesSzukaj w fyydZaawansowane
- Dodaj podcast za pomocą adresu URLPrzeglądaj gpodder.netOdkryjwięcej »
- Wyszukiwanie przy pomocy %1$s
+
FiltrujWszystkieZaznaczono wszystkie odcinki
- BrakOdznaczono wszystkie odcinkiOdtworzoneZaznaczono odtworzone odcinki
@@ -724,12 +694,17 @@ https://gpodder.net/register/
Zaznaczono pobrane odcinkiNie pobraneZaznaczono niepobrane odcinki
- W kolejceWybierz odcinki w kolejce
- Nie w kolejceWybierz odcinki, które nie są w kolejce
- Ma mediaWybrane odcinki z mediami
+ Ulubione
+ Pobrane
+ Nie pobrane
+ W kolejce
+ Nie w kolejce
+ Ma media
+ Zatrzymane
+ OdtworzoneTytuł (A \u2192 Z)Tytuł (Z \u2192 A)
@@ -749,6 +724,7 @@ https://gpodder.net/register/
Daj mi spokójPrzypomnij późniejPewnie, zróbmy to!
+
Sterowanie audioPrędkość odtwarzania
@@ -795,7 +771,6 @@ https://gpodder.net/register/
Teraz odtwarzanePozwala na kontrolowanie odtwarzania. To jest główne powiadomienie, które zobaczysz podczas odtwarzania podcastu.Błędy
- Pokazywane gdy coś pójdzie nie tak, na przykład jeśli nie powiedzie się pobieranie lub synchronizacja z gpodder.Automatyczne pobieraniePokazywane, gdy odcinki zostały pobrane automatycznie
diff --git a/core/src/main/res/values-pt-rBR/strings.xml b/core/src/main/res/values-pt-rBR/strings.xml
index d285f81fb..d6ea45556 100644
--- a/core/src/main/res/values-pt-rBR/strings.xml
+++ b/core/src/main/res/values-pt-rBR/strings.xml
@@ -26,16 +26,13 @@
ReproduçãoDownloads
- Tempo total de podcasts reproduzidos:%1$d de %2$d episódios iniciados.\n\nReproduzidos %3$s de %4$s.Modo EstatísticaCalcular a duração que foi realmente tocada. Tocar duas vezes é contado em dobro, enquanto marcar como tocada não é contado
- Somar todos os podcasts marcados como tocadosNota: A velocidade de reprodução nunca é levada em conta.Limpar dados de estatísticasIsso ira apagar o histórico de reprodução de todos os episódios. Tem certeza que deseja continuar?
- Tamanho total dos episódios baixados:Abrir menuFechar menu
@@ -49,6 +46,7 @@
Número de episódios não reproduzidosNúmero de episódios baixadosNenhum
+
Abrir no navegadorCopiar URL
@@ -124,14 +122,7 @@
Configurações do podcastRenomear podcastRemover podcast
- Compartilhar...
- Compartilhar a URL do episódio
- Compartilhar a URL do episódio com posiçãoCompartilhar arquivo
- Compartilhar link do site
- Compartilhar link do podcast
- Compartilhar a URL do arquivo de mídia
- Compartilhar a URL do arquivo de mídia com posiçãoConfirme se deseja deletar o podcast \"%1$s\" e todos seus episódios (incluindo os baixados).Removendo podcastAtualizar podcast completamente
@@ -139,14 +130,9 @@
Selecionar tudo acimaSelecionar tudo abaixoNão reproduzido
- Pausado
- ReproduzidoEnfileiradoNão enfileirado
- Baixado
- Não baixadoPossui mídia
- É favoritoFiltrado{fa-exclamation-circle} Última Atualização falhouAbrir Podcast
@@ -238,7 +224,6 @@
Processando downloadsBaixando dados do podcast
- %1$d downloads com sucesso, %2$d falharamTítulo desconhecidoFeedArquivo de mídia
@@ -251,7 +236,6 @@
O download sobre plano de dados foi desabilitado nas configurações.\n\n Você deseja permitir o download temporáriamente?\n\nSua escolha será lembrada por 10 minutosConfirmar streaming móvelO streaming pela conexão de dados móveis está desativado nas configurações. Toque para transmitir de qualquer maneira.
- Sempre permitirAdicionar à filaPermitir temporariamente
@@ -297,7 +281,6 @@
Download PluginPlugin Não InstaladoPara que a reprodução de velocidade variável funcione, recomendamos habilitar o reprodutor de mídia Sonic integrado.
- Velocidades de ReproduçãoHabilitar SonicNenhum episódio na fila
@@ -371,7 +354,6 @@
cada %1$sàs %1$sReprodução contínua
- Fones de ouvido desconectadosFones de ouvido reconectadosBluetooth reconectadoPreferir streaming
@@ -384,7 +366,6 @@
Download de episódiosStreamingInterface com usuário
- Aparência, pedidos de assinatura, tela de bloqueioSelecionar temaConfigurar itens da Gaveta de NavegaçãoEscolher quais itens irão aparecer na gaveta de navegação.
@@ -423,10 +404,7 @@
Forçar sincronização completaSincronizar os estados das inscrições e episódios com o gpodder.net.%1$s com o dispositivo %2$s]]>
- Exibir notificações de erros de sincronismoEssa configuração não se aplica a erros de autenticação.
- Velocidades de Reprodução
- Personalize as velocidades variáveis de reprodução de áudio.A velocidade a ser usada ao iniciar a reprodução de áudio para episódios neste podcastSalto automáticoPule as introduções e os créditos finais.
@@ -446,15 +424,11 @@
Isso geralmente expande a notificação para exibir botões de reprodução.Controles de Reprodução PersistentesManter a notificação e controles na tela de bloqueio enquanto a reprodução está pausada.
- Configurar Botões da tela de bloqueio
- Mudar os botões de reprodução na tela de bloqueio. O botão tocar/pausar sempre é incluso.Selecione no máximo %1$d itensVocê só pode selecionar no máximo %1$d itens.Configurar plano de fundo da tela de bloqueioConfigurar o plano de fundo da tela de bloqueio para a imagem do episódio atual. Como um efeito colateral, também ira mostrar imagens de aplicativos de terceiros.
- Mostrar Relatório de DownloadsSe os downloads falharem, gerar um relatório que mostra os detalhes da falha.
- Mostrar relatório de downloads automáticosMostra uma notificação para episódios baixados automaticamente.Versões do Android inferiores a 4.1 não suportam notificações expansíveisLocal da fila
@@ -553,7 +527,6 @@
O arquivo foi exportado para:\n\n%1$sAcesso ao armazenamento externo é necessária para ler o arquivo OPMLSelecione arquivo para importar
- Importado com sucesso.\n\nFavor pressionar OK para reiniciar o AntennaPodEste banco de dados foi exportado com uma versão mais recente do AntennaPod. Sua instalação atual ainda não sabe como lidar com este arquivo.Exportar favoritosExportar favoritos salvos para arquivo
@@ -648,7 +621,6 @@
Diminuir velocidadeÁudioVídeo
- Navegar para cimaO epísódio está sendo baixadoEpisódio está na filaEpisódio está marcado como favorito
@@ -678,16 +650,14 @@
Procurar no iTunesPesquisar em fyydAvançado
- Adicionar podcast usando uma URLPesquisar no gpodder.netDescobrirmais »
- Pesquisa usando %1$s
+
FiltrarTodosSelecionar todos Episódios
- NenhumDesmarcar todos EpisódiosReproduzidoSelecionar episódios reproduzidos
@@ -697,12 +667,17 @@
Episódios baixados selecionadosNão baixadosEpisídios não baixados selecionados
- EnfileiradoEpisódios enfileirados selecionados
- Não enfileiradoEpisódios não enfileirados selecionados
- Possui mídiaEpisódios selecionados com mídia
+ É favorito
+ Baixado
+ Não baixado
+ Enfileirado
+ Não enfileirado
+ Possui mídia
+ Pausado
+ ReproduzidoTítulo (A \u2192 Z)Título (Z \u2192 A)
@@ -722,6 +697,7 @@
Me deixe em pazLembre-me mais tardeClaro, vamos fazer isso!
+
Controles de ÀudioVelocidade da Reprodução
@@ -768,7 +744,6 @@
Reproduzindo agoraPermite controlar a reprodução. Essa é a principal notificação vista ao reproduzir um podcast.Erros
- Exibido caso algo dê errado, por exemplo se houver falha no download ou na sincronização com o gpodder.Downloads automáticosExibido quando os episódios foram baixados automaticamente.
diff --git a/core/src/main/res/values-pt/strings.xml b/core/src/main/res/values-pt/strings.xml
index 64a381953..ef0e0d2a7 100644
--- a/core/src/main/res/values-pt/strings.xml
+++ b/core/src/main/res/values-pt/strings.xml
@@ -25,17 +25,19 @@
Atingido o limite máximo de itens em cache. Pode aumentar o tamanho de cache nas definições.ReproduçãoDescargas
+ Notificações
- Tempo total dos podcasts reproduzidos:
+ Tempo total dos episódios reproduzidos:%1$d de %2$d episódios iniciados.\n\nReproduzidos %3$s de %4$s.Modo estatísticoCalcula a duração dos podcasts reproduzidos. Se os reproduzir duas vezes, serão contados duas vezes mas se os marcar como reproduzidos não serão contados.
- Somar todos os podcasts marcados como reproduzidos
+ Soma todos os episódios que tenham sido marcados como reproduzidosAviso: a velocidade de reprodução nunca será considerada.Reiniciar estatísticas dos dadosIsto irá apagar o histórico do tempo de reprodução para todos os episódios. Tem a certeza de que deseja continuar?
+ Desde %s,\n você reproduziu
- Tamanho total dos podcasts descarregados:
+ Tamanho total dos episódios no dispositivo:Abrir menuFechar menu
@@ -49,6 +51,8 @@
Número de episódios por reproduzirNúmero de episódios descarregadosNenhum
+
+ Não existem aplicações compatíveisAbrir no navegadorCopiar URL
@@ -124,29 +128,22 @@
Definições do podcastRenomear podcastRemover podcast
- Partilhar...
- Partilhar URL do episódio
- Partilhar URL do episódio (com posição)
+ Partilhar
+ Partilhar...Partilhar ficheiro
- Partilhar URL do site
- Partilhar URL do podcast
- Partilhar URL do ficheiro multimédia
- Partilhar URL do ficheiro multimédia (com posição)
+ Endereço web
+ URL da fonte do podcastTem a certeza de que deseja eliminar o podcast \"%1$s\" e TODOS os seus episódios (inclusive descarregados)?
+ Por favor confirme de que deseja remover o podcast \"%1$s\". Os ficheiros existentes na pasta local não serão eliminados.A remover podcastRecarregar podcastSeleção múltiplaMarcar tudo acimaMarcar tudo abaixoNão reproduzidos
- Em pausa
- ReproduzidosNa filaNão na fila
- Descarregados
- Não descarregadosTem ficheiro
- É favoritoFiltrados{fa-exclamation-circle} Última atualização falhadaAbrir podcast
@@ -238,7 +235,10 @@
Processamento de descargasA descarregar dados do podcast
- %1$d descargas efetuadas, %2$d falhadas
+
+ %d descarga com sucesso, %d com falha
+ %d descargas com sucesso, %d com falha
+ Título desconhecidoFonteFicheiro multimédia
@@ -251,7 +251,8 @@
A descarga através de dados móveis está desativada nas definições.\n\nAtivar temporariamente?\n\nA sua decisão será memorizada durante 10 minutos.Confirmação de reprodução em dados móveisA reprodução de podcasts através de dados móveis está desativada nas definições. Toque para, ainda assim, reproduzir o podcast.
- Permitir sempre
+ Sempre
+ Uma vezApenas adicionados à filaAtivar temporariamente
@@ -297,8 +298,9 @@
Descarregar extraExtra não instaladoPara que a velocidade variável de reprodução funcione, recomendamos que ative o Sonic Media Player incorporado na aplicação.
- Velocidades de reproduçãoAtivar Sonic
+ Predefinições
+ %1$.2fx já está definido como predefinição.Não existem episódios na filaPode adicionar um episódio se o descarregar ou com um toque longo no episódio e escolher \"Adicionar à fila\".
@@ -371,7 +373,7 @@
a cada %1$sàs %1$sReprodução contínua
- Auscultadores removidos
+ Auscultadores ou Bluetooth desligadosAuscultadores inseridosLigação bluetoothPreferir transmissão
@@ -384,7 +386,7 @@
Descarga de episódiosReproduçãoInterface
- Aparência, ordem das subscrições, ecrã de bloqueio
+ Aparência, subscrições e ecrã de bloqueioTemaAlterar itens do menuAlterar os itens que aparecem no menu de navegação.
@@ -423,10 +425,9 @@
Impor sincronização totalSincronizar todas as subscrições e estados dos episódios com o gpodder.net.%1$s com o dispositivo %2$s]]>
- Mostrar erros de sincronização
+ Falha de sinconizaçãoEsta definição não é aplicável aos erros de autenticação.
- Velocidades de reprodução
- Personalizar as velocidades de reprodução disponíveis.
+ Personalizar disponibilidade das velocidades variáveis de reproduçãoVelocidade utilizada para a reprodução áudio dos episódios deste podcastIgnorar automaticamenteIgnorar introduções e créditos finais.
@@ -446,15 +447,15 @@
Normalmente, esta opção é utilizada para expandir a notificação e mostrar os botões de reprodução.Controlos de reproduçãoManter controlos de notificação e ecrã de bloqueio ao colocar a reprodução em pausa.
- Definir botões do ecrã de bloqueio
- Alterar botões de reprodução do ecrã de bloqueio. Os botões Reproduzir/Pausa serão sempre incluídos.
+ Definir botões compactos para a notificação
+ Alterar botões de reprodução ao recolher a notificação. Os botões Reproduzir/Pausa serão sempre incluídos.Selecione no máximo %1$d itensApenas pode selecionar um máximo de %1$d itens.Definir fundo do ecrã de bloqueioDefine a imagem do episódio como fundo do ecrã de bloqueio. Efeito colateral: também será mostrada em outras aplicações.
- Mostrar relatório de erros
+ Falha ao descarregarSe a descarga falhar, gera um relatório que mostra os detalhes do erro.
- Mostrar relatório de descargas automáticas
+ Descarga automática terminadaMostrar uma notificação para episódios descarregados automaticamente.As versões Android anteriores à 4.1 não possuem suporte à expansão de notificaçõesLocalização na fila
@@ -504,6 +505,14 @@
Selecionar páginaRemover da filaRemover episódio da fila se este for eliminado.
+ Filtro de subscrições
+ Filtrar subscrições no menu de navegação e no ecrã de subscrições.
+ Nenhum
+ Subscrições filtradas
+ Descarregado automaticamente
+ Não descarregado automaticamente
+ Manter atualizada
+ Não manter atualizadaAcercaVersão do AntennaPod
@@ -538,6 +547,7 @@
Transferir subscrições, episódios e fila de reprodução do AntennaPod para outro dispositivoImportar base de dados AntennaPod de outro dispositivoImportação OPML
+ Importar lista de podcasts (OPML)Ocorreu um erro ao ler o ficheiro OPML:Nenhum ficheiro selecionado!Marcar tudo
@@ -553,7 +563,8 @@
O ficheiro exportado foi guardado em:\n\n%1$sRequer acesso ao armazenamento externo para ler o ficheiro OPMLSelecione o ficheiro a importar
- Importação bem sucedida.\n\nPor favor prima OK para reiniciar o AntennaPod
+ Importação bem sucedida
+ Prima OK para reiniciar a aplicaçãoA base de dados foi exportada de uma versão mais recente do AntennaPod. A sua versão da aplicação não sabe como manipular este ficheiro.Exportação de favoritosExportar favoritos para um ficheiro
@@ -585,7 +596,7 @@
CategoriasMelhoresSugestões
- Pesquisar no gpodder.net
+ Pesquisar em gpodder.netAcessoBem-vindo ao processo de acesso ao gpodder.net. Introduza os dados de acesso:Acesso
@@ -648,7 +659,6 @@
Diminuir velocidadeÁudioVídeo
- Navegar para cimaA descarregar episódioEpisódio está na filaEpisódio marcado como favorito
@@ -669,25 +679,37 @@
Manter atualizadaIncluir este podcast ao recarregar automaticamente todos os podcastsA descarga automática está desativada nas definições do AntennaPod
+ Reproduzido durante:
+ Episódios no dispositivo:
+ Espaço utilizado:
+ Ver para todos os podcasts »Atualizando base de dadosImportar subscrições de aplicações single-purpose...Pesquisar podcast...
- Pesquisar no iTunes
- Pesquisar no fyyd
+ Pesquisar em iTunes
+ Pesquisar em Podcastindex.org
+ Pesquisar em fyydAvançado
- Adicionar podcast via URL
+ Adicionar podcast via endereço RSSProcurar no gPodder.netDescobrir
+ Ocultar
+ Você optou por ocultar sugestões.mais »
- Disponibilizado por %1$s
+ Sugestões de iTunes
+ Resultados de %1$s
+
+ Adicionar pasta local
+ Restabelecer ligação a pasta local
+ Este podcast virtual foi criado através da adição de uma pasta ao AntennaPod.FiltroTodosMarcar todos os episódios
- Nenhum
+ NenhumDesmarcar todos os episódiosReproduzidosSelecionar episódios reproduzidos
@@ -697,12 +719,21 @@
Selecionar episódios descarregadosNão descarregadosSelecionar episódios não descarregados
- Na filaEpisódios selecionados na fila
- Não na filaEpisódios não selecionados na fila
- Tem ficheiroEpisódios selecionados com ficheiros
+ É favorito
+ Não favorito
+ Descarregados
+ Não descarregados
+ Na fila
+ Não na fila
+ Tem ficheiro
+ Sem ficheiro
+ Em pausa
+ Não em pausa
+ Reproduzidos
+ Não reproduzidoTítulo (A \u2192 Z)Título (Z \u2192 A)
@@ -722,6 +753,12 @@
Não avaliarLembrar mais tardeClaro, vamos a isso!
+
+ Incluir:
+ Posição de reprodução
+ Endereço do ficheiro multimédia
+ Página web do episódio
+ Ficheiro multimédiaControlos de áudioVelocidade de reprodução
@@ -768,7 +805,9 @@
Reprodução atualPermite o controlo da reprodução. Esta será a notificação que verá ao reproduzir um podcast.Erros
- Mostrar se ocorrerem erros como, por exemplo, não for possível a descarga.
+ Mostrar se ocorrerem erros como, por exemplo, não for possível descarregar ou atualizar a fonte.
+ Erros de sincronização
+ Mostrar se não for possível sincronizar com gpodder.Descargas automáticasNotificar quando os episódios forem descarregados automaticamente.
diff --git a/core/src/main/res/values-ru/strings.xml b/core/src/main/res/values-ru/strings.xml
index 58c177f95..c4efa6bec 100644
--- a/core/src/main/res/values-ru/strings.xml
+++ b/core/src/main/res/values-ru/strings.xml
@@ -26,16 +26,13 @@
ВоспроизведениеЗагрузки
- Общее время прослушивания подкастов:%1$d из %2$d выпусков начато.\n\nПрослушано %3$s из %4$s.Режим подсчета статистикиРассчитывать длительность действительного воспроизведения. Повторное воспроизведение засчитывается, а отметка о прослушивании — нет
- Прибавлять также все подкасты, отмеченные как прослушанныеЗамечание: Скорость воспроизведения не учитывается никогда.Сбросить статистикуВы уверены, что хотите стереть историю прослушивания?
- Размер всех загруженных подкастов:Открыть менюЗакрыть меню
@@ -49,6 +46,7 @@
Количество непрослушанных выпусковКоличество загруженных выпусковНичего
+
Открыть в браузереСкопировать ссылку
@@ -130,14 +128,7 @@
Настройки подкастаПереименовать подкастУдалить подкаст
- Поделиться…
- Поделиться ссылкой на выпуск
- Поделиться ссылкой на выпуск с отметкой времениПоделиться файлом
- Поделиться ссылкой на сайт
- Поделиться ссылкой на канал
- Поделиться ссылкой на файл
- Поделиться ссылкой на файл с отметкой времениПодтвердите, что хотите удалить подкаст «%1$s» и все его выпуски (включая загруженные).Подкаст удаляетсяОбновить весь подкаст
@@ -145,14 +136,9 @@
Выбрать все вышеВыбрать все нижеНепрослушанное
- Приостановленное
- ПрослушанноеВ очередиНе в очереди
- Загружено
- Не загруженоС файлами
- В ИзбранномОтфильтровано{fa-exclamation-circle} Последнее обновление не удалосьОткрыть подкаст
@@ -258,7 +244,6 @@
Производится загрузкаПолучение данных подкаста
- %1$d загрузок завершено, %2$d не удалосьНеизвестное названиеКаналМедиафайл
@@ -271,7 +256,6 @@
Загрузка через мобильное соединение отключена в настройках.\n\nЖелаете временно разрешить загрузку?\n\nНастройка сохранится на 10 минут.Подтвердите трансляцию через мобильное соединениеТрансляция через мобильное подключение отключена в настройках. Нажмите, чтобы продолжить трансляцию.
- Разрешать всегдаДобавить в очередьРазрешить временно
@@ -317,7 +301,6 @@
Загрузить плагинПлагин не установленЧтобы изменять скорость воспроизведения, рекомендуем включить встроенный проигрыватель Sonic.
- Скорость воспроизведенияВключить SonicНет выпусков в очереди
@@ -391,7 +374,6 @@
каждые %1$sв %1$sНепрерывное воспроизведение
- При отключении наушниковПри подключении наушниковПри подключении BluetoothТрансляция вместо загрузки
@@ -404,7 +386,6 @@
Загрузка выпусковТрансляции по сетиИнтерфейс
- Внешний вид, сортировка подписок, экран блокировкиВыбрать оформлениеВыбрать пункты боковой панелиИзменение отображения пунктов меню боковой панели
@@ -443,10 +424,7 @@
Выполнить полную синхронизациюСинхронизировать состояния всех подписок и выпусков при помощи gpodder.net.%1$s с устройства %2$s]]>
- Показывать уведомления об ошибках синхронизацииНе затрагивает ошибки авторизации.
- Скорости воспроизведения
- Выбрать значения скорости, доступные при воспроизведенииСкорость, с которой будут изначально воспроизводиться выпуски этого подкастаАвтоматический пропускПропускать вступительную и заключительную часть.
@@ -466,15 +444,11 @@
Как правило, разворачивает уведомление, показывая кнопки управления воспроизведением.Постоянные кнопки воспроизведенияСохранять уведомление и кнопки воспроизведения на экране блокировки во время паузы.
- Выбрать кнопки экрана блокировки
- Поменять кнопки управления на экране блокировки. Кнопка воспроизведения/паузы присутствует постоянно.Выберите не более %1$d элементовНельзя выбрать больше %1$d элементов.Менять фон экрана блокировкиИзменяет фон экрана блокировки на обложку выпуска. Кроме того показывает обложку в сторонних приложениях.
- Показывать отчет о загрузкахЕсли загрузка не удается, показывать отчет с подробностями об ошибке.
- Показывать результаты автозагрузкиПоказывать уведомление при автоматической загрузке выпусковВерсии Android ниже 4.1 не поддерживают расширенные уведомления.Размещение в очереди
@@ -573,7 +547,6 @@
Файл экспорта был сохранен в папку:\n\n%1$sДля чтения файла OPML необходим доступ к внешнему хранилищуВыбрать файл для импорта
- Успешно импортировано.\n\nНажмите OK, чтобы перезапустить AntennaPodВыбранная база данных экспортирована из более поздней версии AntennaPod. Установленная версия не сможет воспользоваться этой базой.Экспорт избранногоЭкспортировать сохраненное избранное в файл
@@ -674,7 +647,6 @@
Уменьшить скоростьАудиоВидео
- Перейти вышеВыпуск загружаетсяВыпуск в очередиЭпизод отмечен как избранный
@@ -704,16 +676,14 @@
Поиск в iTunesПоиск в fyydДополнительные
- Добавить подкаст по адресуПросмотр gpodder.netОзнакомитьсяеще »
- Для поиска используется %1$s
+
ФильтроватьВсеВыбраны все выпуски
- НичегоВыбор снят со всех выпусковПрослушанноеВыбраны прослушанные выпуски
@@ -723,12 +693,17 @@
Выбраны загруженные выпускиНе загруженноеВыбраны не загруженные выпуски
- В очередиВыбраны выпуски из очереди
- Не в очередиВыбраны выпуски не из очереди
- С файламиВыбраны выпуски с файлами
+ В Избранном
+ Загружено
+ Не загружено
+ В очереди
+ Не в очереди
+ С файлами
+ Приостановленное
+ Прослушанноеот А к Яот Я к А
@@ -748,6 +723,7 @@
Не дождетесьПозже, не сейчасКонечно, давай!
+
Управление звучаниемСкорость воспроизведения
@@ -794,7 +770,6 @@
Сейчас воспроизводитсяПозволяет управлять воспроизведением. Основное уведомление, показывается при воспроизведении подкаста.Ошибки
- Показывается если что-то пошло не так, к примеру, неудавшаяся загрузка или синхронизация с gpodder.АвтозагрузкаПоказывается, когда новые выпуски были автоматически загружены
diff --git a/core/src/main/res/values-sv/strings.xml b/core/src/main/res/values-sv/strings.xml
index 632d5f94a..fc7a546c2 100644
--- a/core/src/main/res/values-sv/strings.xml
+++ b/core/src/main/res/values-sv/strings.xml
@@ -25,17 +25,19 @@
Episodcachens gräns har nåtts. Du kan öka cachens storlek i inställningarna.UppspelningNedladdningar
+ NotifieringarTotal uppspelningstid:%1$d av %2$d episoder startade.\n\nSpelat %3$s av %4$s.StatistiklägeBeräkna faktisk speltid. Att spela två gånger räknas två gånger, men att markera som spelad räknas inte
- Summera alla podcasts som markerats som spelade
+ Summera alla episoder som är markerade som speladeNotera: Uppspelningshastighet tas inte med i beräkningarna. Återställ statistikdataDetta kommer att radera historiken av spelad tid för alla episoder. Är du säker på att du vill fortsätta?
+ Sedan %s, har du spelat
- Totala storleken av nedladdade podcasts:
+ Totala storleken för alla episoder på enheten:Öppna menyStäng meny
@@ -49,6 +51,8 @@
Antal ospelade episoderAntal nedladdade episoderInga
+
+ Hittade inga kompatibla apparÖppna i webbläsareKopiera URL
@@ -124,29 +128,22 @@
PodcastinställningarByt namn på podcastTa bort podcast
- Dela…
- Dela episod-URL
- Dela episod-URL med position
+ Dela
+ Dela...Dela fil
- Dela Webbsidans URL
- Dela Podcast URL
- Dela mediafilens URL
- Dela mediafilens URL med position
+ Webbsideadress
+ Podcasflödes URLBekräfta att du vill ta bort podcast \"%1$s\" och ALLA dess episoder (inklusive nedladdade episoder).
+ Bekräfta att du vill ta bort alla podcasts \"%1$s\". Filerna i den lokala källkatalogen kommer inte att raderas.Tar bort podcastUppdatera hela podcastenVälj fleraVälj alla ovanförVälj alla nedanförOspelade
- Pausade
- SpeladKöadeInte köade
- Nedladdade
- Ej nedladdadeHar media
- Är favoritFiltrerad{fa-exclamation-circle} Senaste uppdateringen misslyckadesÖppna podcast
@@ -238,7 +235,10 @@
Bearbetar nedladdningarLaddar ner podcastdata
- %1$d nedladdningar lyckades, %2$d misslyckades
+
+ %d nedladdning lyckades, %d misslyckades
+ %dnedladdningar lyckades, %d misslyckades
+ Okänd titelFlödeMediafil
@@ -251,7 +251,8 @@
Nedladdning över mobil dataanslutning är avaktiverat i inställningarna.\n\nVill du tillfälligt tillåta nedladdning?\n\nDitt val gäller i 10 minuter.Bekräfta mobil strömningStrömning över mobilanslutningar är avaktiverat i inställningarna. Tryck för att strömma ändå.
- Tillåt alltid
+ Alltid
+ En gångKöaTillåt tillfälligt
@@ -297,8 +298,9 @@
Ladda ner tilläggTillägg ej installeratVi rekommenderar att den inbyggda Sonic-spelaren används för att kunna variera uppspelningshastigheten.
- UppspelningshastigheterAktivera Sonic
+ Förhandsinställningar
+ %1$.2fx är redan sparad som en förhandsinställning.Inga köade episoderLägg till en episod genom att ladda ner den, eller tryck länge på en episod och väl \"Lägg till i kön\".
@@ -371,7 +373,7 @@
var %1$svid %1$sKontinuerlig uppspelning
- Hörlurar bortkopplas
+ Hörlurar eller Bluetooth kopplas bortHörlurar återanslutnaBlutetooth återanslutsFöredra Strömmning
@@ -384,7 +386,7 @@
EpisodnedladdningStrömningAnvändargränssnitt
- Utseende, Prenumerationsordning, Låsskärm
+ Utseende, Prenumerationer, LåsskärmVälj temaVälj objekt i navigeringsmenynÄndra vilka saker som visas på navigationsmenyn.
@@ -423,10 +425,9 @@
Tvinga full synkroniseringSynkronisera alla prenumerationer och episodstatus med gpodder.net.%1$s med enhet %2$s]]>
- Visa notifieringar om synkroniseringsfel
+ Synkronisering misslyckadesDenna inställning påverkar inte autentiseringsfel.
- Uppspelningshastigheter
- Anpassa de tillgängliga hastigheterna för variabel uppspelningshastighet.
+ Anpassa de tillgängliga hastigheterna för variabel uppspelningshastighetUppspelningshastigheten att använda för episoder i denna podcastAutomatisk överhoppningHoppa över intron och outron.
@@ -446,15 +447,15 @@
Detta expanderar oftast notifieringen och visar uppspelningskontroller.Bestående uppspelningskontrollerBehåll avisering och kontroller på låsskärmen när uppspelningen pausas.
- Val för låsskärmens knappar
- Ändra uppspelningsknapparna på låsskärmen. Spela/pausa knappen är alltid inkluderad.
+ Kompakta Notifieringsknappar
+ Ändra uppspelningsknapparna när notifieringen är kollapsad. Spela/paus-knappen visas alltid.Välj maximalt %1$d st.Du kan bara välja maximalt %1$d st.Välj låsskärmens bakgrundSätt låsskärmens bakgrund till den spelade episodens bild. En bieffekt är att även tredjepartsappar kan visa bilden.
- Visa nedladdningsrapport
+ Nedladdning misslyckadesVisa en rapport med detaljer om felet när nedladdningar misslyckas.
- Visa rapport över automatiska nedladdningar
+ Automatisk nedladdning klarVisa en avisering när episoder laddats ner automatisktAndroidversioner före 4.1 har inte stöd för expanderade aviseringar.Köplats
@@ -495,7 +496,7 @@
Tillbakaknappens beteendeByt tillbakaknappens beteende.Standard
- Öppna navigationsrutan
+ Öppna navigerinsmenynDubbeltryck för att avslutaBekräfta avslutningÄr du säker på att du vill avsluta AntennaPod?
@@ -504,6 +505,14 @@
Välj sidaRadering tar bort från könTa automatiskt bort episoder från kön när de raderas.
+ Prenumerationsfilter
+ Filtrera dina prenumerationer i navigeringsmenyn och på prenumerationsskärmen.
+ Inga
+ Prenumerationer är filtrerade.
+ Automatiskt nedladdad
+ Manuellt nedladdad
+ Hålls uppdaterad
+ Manuell uppdateringOmAntennaPod version
@@ -538,6 +547,7 @@
Överför prenumerationer, spelade episoder och kön till AntennaPod på en annan enhetImportera AntennaPods databas från en annan enhetOPML importering
+ Importera podcastlista (OPML)Ett fel uppstod vid läsning av OPML dokumentet:Ingen fil vald!Välj alla
@@ -553,7 +563,8 @@
Den exporterade filen skrevs till:\n\n%1$sTillgång till extern lagring krävs för att läsa OPML-filenVälj fil att importera
- Importen lyckades.\n\nTryck OK för att starta om AntennaPod
+ Importering lyckades
+ Tryck OK för att starta om AntennaPodDenna databas var exporterad med en nyare version av AntennaPod. Din nuvarande installation vet inte hur den ska hantera filen än.FavoritexportExportera sparade favoriter till fil
@@ -648,7 +659,6 @@
Sänk hastighetenLjudVideo
- Navigera uppEpisoden laddas nerEpisoden är i könEpisoden är markerad som favorit
@@ -669,6 +679,10 @@
Håll uppdateradInkludera detta flöde vid (auto-)uppdatering av alla podcastsAutomatisk nedladdning är avstängt i AntennaPods huvudinställningar
+ Lyssnat i:
+ Episoder på enheten:
+ Använt utrymme:
+ Visa för alla podcasts »Uppgraderar databasen
@@ -676,18 +690,27 @@
Sök podcast...Leta i iTunes
+ Sök Podcastindex.orgSök i fyydAvancerad
- Lägg till podcast med URL
+ Lägg till podcast med RSS adressBläddra på gpodder.netUpptäck
+ Dölj
+ Du valde att dölja förslag.mer »
- Sökt med %1$s
+ Förslag från iTuenes
+ Resultat för %1$s
+
+ Lägg till i lokal katalog
+ Återanslut lokal katalog
+ Om åtkomst nekats kan du använda detta för att återansluta till exakt samma katalog. Välj inte en annan katalog.
+ Denna virtuella podcast skapades genom att lägga till en katalog till AntennaPod.FiltreraAllaVälj alla episoder
- Inga
+ IngaAvmarkera alla episoderSpeladeValde spelade episoder
@@ -697,12 +720,21 @@
Valde nedladdade episoderEj nedladdadeValde ej nedladdade episoder
- KöadValde köade episoder
- Ej köadVälj ej köade episoder
- Har mediaValde episoder med media
+ Är favorit
+ Ej favorit
+ Nedladdade
+ Ej nedladdade
+ Köad
+ Ej köad
+ Har media
+ Ingen media
+ Pausade
+ Ej pausad
+ Spelad
+ Ej speladTitel (A \u2192 Ö)Titel (Ö \u2192 A)
@@ -722,6 +754,12 @@
Lämna mig ifredPåminn mig senareOkej, gör det nu!
+
+ Inkludera:
+ Uppspelningsposition
+ Mediafils adress
+ Episodes webbplats
+ MediafilLjudkontrollerUppspelningshastighet
@@ -768,7 +806,9 @@
Uppspelning pågårMedger kontroll över uppspelning. Detta är huvudnotifieringen som du ser när en podcast spelas.Fel
- Visas om något blev fel, exempelvis om nedladdning eller gpodder synkronisering misslyckas.
+ Visas om något gick fel, till exempel om nedladdning eller flödesuppdatering misslyckas.
+ Synkroniseringsfel
+ Visas när synkronisering med gpodder misslyckas.Automatiska nedladdningarVisas när episoder har laddats ner automatiskt.
diff --git a/core/src/main/res/values-tr/strings.xml b/core/src/main/res/values-tr/strings.xml
index 84d67e5b9..582873f9c 100644
--- a/core/src/main/res/values-tr/strings.xml
+++ b/core/src/main/res/values-tr/strings.xml
@@ -2,6 +2,7 @@
Abonelikleri güncelle
+ PodcastsİstatistiklerCep yayını ekleBölümler
@@ -22,10 +23,21 @@
gpodder.net girişBölüm önbelleği doluBölüm önbelleği limitine ulaşıldı. Ayarlardan önbellek limitini arttırabilirsiniz.
+ Playback
+ Downloads
+ Notifications
- Toplam cep yayını çalma zamanı:
+ Total time of episodes played:
+ %1$d out of %2$d episodes started.\n\nPlayed %3$s out of %4$s.İstatistik modu
+ Calculate duration that was actually played. Playing twice is counted twice, while marking as played is not counted
+ Sum up all episodes marked as played
+ Notice: Playback speed is never taken into account.
+ Reset statistics data
+ This will erase the history of duration played for all episodes. Are you sure you want to proceed?
+ Since %s,\nyou played
+ Total size of episodes on the device:Münüyü açMenüyü kapat
@@ -39,6 +51,8 @@
Çalınmamış bölümlerin sayısıİndirilen bölümlerin sayısıHiçbiri
+
+ No compatible apps foundTarayıcıda açURL\'yi kopyala
@@ -74,6 +88,11 @@
Önceki Bölümlere UygulaYeni Otomatik İndirme ayarı otomatik olarak yeni bölümlere uygulanacak.\nBunu önceki bölümlere de uygulamak ister misiniz?Bölümü Otomatik Sil
+ Volume Reduction
+ Turn down volume for episodes of this feed: %1$s
+ Off
+ Light
+ Heavy\u0020paralel indirmelerVarsayılan ayarlarHer zaman
@@ -82,56 +101,97 @@
Hiçbir zamanSırada değilseBittikten sonra
+
+ 1 hour after finishing
+ %d hours after finishing
+ Bittikten 1 gün sonraBittikten %d gün sonra
+
+ %d selected
+ %d selected
+
+ Loading more…Hepsini oynatıldı olarak işaretleTüm bölümleri oynatıldı olarak işaretleLütfen tüm bölümleri oynatıldı olarak işaretlemek istediğinizi onaylayın.Lütfen bu yayındaki bütün bölümleri oynatıldı olarak işaretlemek istediğinizi onaylayın.
+ Remove all \"new\" flags
+ Removed all \"new\" flags
+ Please confirm that you want to remove the \"new\" flag from all episodes.Bilgiyi gösterCepyayın ayarlarını gösterCepyayın bilgisiCepyayın ayarlarıCepyayını yeniden adlandırCepyayını kaldır
- Paylaş...
- Bölüm Adresini paylaş
- Bölüm Adresini Konumla birlikte paylaş
+ Share
+ Share…Dosyayı paylaş
- Medya Dosyası URL\'si Paylaş
- Medya dosyasının adresini pozisyon ile birlikte paylaş
+ Website address
+ Podcast feed URL
+ Please confirm that you want to delete the podcast \"%1$s\" and ALL its episodes (including downloaded episodes).
+ Please confirm that you want to remove the podcast \"%1$s\". The files in the local source folder will not be deleted.Cepyayını kaldırılıyorTüm Cepyayınını yenile
+ Multi selectÜsttekilerin tümünü seçAlttakilerin tümünü seçOynatılmadı
- Duraklatıldı
- OynatıldıKuyruktaKuyrukta değil
- İndirildi
- İndirilmediMedya var
- FavoriFiltrelendi{fa-exclamation-circle} Son yenileme başarısız olduCep yayını aç
+ Please wait until the data is loadedİndir
+
+ Downloading %d episode.
+ Downloading %d episodes.
+ OynatDuraklatAkışSilDosya silinemiyor. Cihazı yeniden başlatmak yardımcı olabilir.
+ Delete Episode
+
+ %d episode deleted.
+ %d episodes deleted.
+
+ Remove \"new\" flag
+ Removed \"new\" flagOynatıldı olarak işaretleOynatıldı olarak işaretlendi
+ Mark as read
+ Marked as read
+ To jump to positions, you need to play the episode
+
+ %d episode marked as played.
+ %d episodes marked as played.
+ Oynatılmadı olarak işaretle
+ Mark as unread
+
+ %d episode marked as unplayed.
+ %d episodes marked as unplayed.
+ Kuyruğa EkleKuyruğa Eklendi
+
+ %d episode added to queue.
+ %d episodes added to queue.
+ Kuyruktan Kaldır
+
+ %d episode removed from queue.
+ %d episodes removed from queue.
+ Favorilere EkleFavorilere EklendiFavorilerden Kaldır
@@ -142,11 +202,13 @@
Otomatik indirmeyi devre dışı bırakÇalme konumunu sıfırlaÖge kaldırıldı
+ No items selectedbaşarılıİndirme bekleniyorİndiriliyorDetaylar
+ %1$s \n\nFile URL:\n%2$sDepolama aygıtı bulunamadıYetersiz alanHTTP Veri Hatası
@@ -161,6 +223,7 @@
İndirme iptal edildiİndirme iptal edildi\nBu öğe için Otomatik İndirme devre dışıİndirme hata(lar) ile tamamlandı
+ Auto-downloads completedİndirme raporuBozuk URLG/Ç Hatası
@@ -172,16 +235,24 @@
İndirmeler işleniyorCep yayını verileri indiriliyor
- %1$d indirme başarılı, %2$d başarısız
+
+ %d download succeeded, %d failed
+ %d downloads succeeded, %d failed
+ bilinmeyen başlıkBeslemeMedya dosyasıDosyayı indirmeye çalışırken bir hata oluştu:\u0020
+ No podcast was provided that could be shown.Yetkilendirme gerekiyorİstediğiniz kaynak kullanıcı adı ve şifre istiyorMobil İndirmeyi OnaylayınMobil veri ile indirme ayarlarda devre dışıdır.\n\nGeçici olarak açılsın mı yoksa sadece kuyruğa mı eklensin?\n\nBu tercihiniz 10 dakika boyunca hatırlanacak.Mobil veri ile indirme ayarlarda devre dışıdır.\n\nGeçici olarak açılsın mı?\n\nBu tercihiniz 10 dakika boyunca hatırlanacak.
+ Confirm Mobile streaming
+ Streaming over mobile data connection is disabled in the settings. Tap to stream anyway.
+ Always
+ OnceSadece Kuyruğa ekleGeçici olarak aç
@@ -191,21 +262,28 @@
HazırAranıyorSunucu geberdi
+ Unsupported media type
+ Operation timed out
+ Unable to access media fileBilinmeyen HataÇalınan medya yokAra belleğe alınıyorResim içinde Resim moduAntennaPod - Bilinmeyen medya anahtarı: %1$d
+ File not foundKuyruğu kilitleKuyruğun kilidini açKuyruk kilitlendiKuyruk kilidi açıldı
+ If you lock the queue, you can no longer swipe or reorder episodes.
+ Do not show againKuyruğu temizleGeri alEn üste taşıEn alta taşıSırala
+ Keep sortedTarihSüreBlüm başlığı
@@ -219,21 +297,50 @@
Eklentiyi İndirEklenti Yüklenmedi
- Çalma hızları
+ For variable speed playback to work, we recommend to enable the built-in Sonic mediaplayer.Sonic\'i Etkinleştir
+ Presets
+ %1$.2fx is already saved as a preset.
+ No queued episodes
+ Add an episode by downloading it, or long press an episode and select \"Add to queue\".Bu dosya herhangi bir bilgi notu içermiyor.
+ No downloads running
+ You can download episodes on the podcast details screen.
+ No downloaded episodes
+ You can download episodes on the podcast details screen.
+ No download log
+ Download logs will appear here when available.
+ No History
+ After you listen to an episode, it will appear here.
+ No Episodes
+ When you add a podcast, the episodes will be shown here.
+ No new episodes
+ When new episodes arrive, they will be shown here.
+ No favorite episodes
+ You can add episodes to the favorites by long-pressing them.
+ No chaptersBu dosya herhangi bir bölüm içermiyor.
+ No subscriptions
+ To subscribe to a podcast, press the plus icon below.Depolama
+ Episode auto delete, Import, ExportProjeKuyruk
+ Synchronization
+ Synchronize with other devices using gpodder.netOtomasyonDetaylarAl/Aktar
+ backup, restoreGörünümDış elemanlarKesintiler
+ Playback control
+ Search…
+ No results
+ Clear historyMedya oynatıcıBölüm TemizliğiYeni bölümleri otomatik indirme için alan gerekirse, kuyrukta veya favorilerde olmayan bölümler otomatik olarak silinebilir
@@ -254,8 +361,11 @@
Bölümler Favori olarak işaretlendiğinde tutFavori bölümleri tutÇalma
+ Headphone controls, Skip intervals, QueueAğ
+ Update interval, Download controls, Mobile dataGüncelleme Aralığı veya Belirli Zamanı
+ Specify an interval or a specific time of day to refresh the podcasts automaticallyOtomatik güncelleştirmelerin yapılması için \"her 2 saatte bir\" gibi aralık, \"07:00\" gibi \"belirli saat\" ayarlayabilirsiniz veya devre dışı bırakabilirsiniz.\n\nNot: Güncelleme zamanları kesin değildir, kısa gecikmeler yaşanabilir.Devre dışıAralık ayarla
@@ -263,17 +373,27 @@
her%1$ssüre%1$sDevamlı çalma
- Kulaklık bağlı değil
+ Headphones or Bluetooth disconnectKulaklıklar yeniden bağlıBluetooth yeniden bağlandı
+ Prefer Streaming
+ Display stream button instead of download button in lists.Mobil güncellemeler
+ Select what should be allowed over the mobile data connection
+ Podcast refresh
+ Cover images
+ Auto download
+ Episode download
+ StreamingKullanıcı Arayüzü
+ Appearance, Subscriptions, LockscreenTemayı seçUygulama Çekmecesi öğelerini ayarlaHangi öğelerin uygulama çekmecesinde görüneceğini değiştir.Abonelik sıralamasını ayarlaAbonelik sırasını değiştirAbonelik sayacını ayarla
+ Change the information displayed by the subscription counter. Also affects the sorting of subscriptions if \'Subscription Order\' is set to \'Counter\'.AntennaPod\'un görüntüsünü değiştir.Otomatk indirmeBölümlerin otomatik indirilmesini yapılandır.
@@ -283,8 +403,13 @@
Pil şarj olmuyorken otomatik indirmeye izin verParalel indirmelerBölüm ön belleği
+ Total number of downloaded episodes cached on the device. Automatic download will be suspended if this number is reached.
+ Use Episode Cover
+ Use the episode specific cover whenever available. If unchecked, the app will always use the podcast cover image.
+ Use system themeAydınlıkKaranlık
+ Black (AMOLED ready)Sınırsızsaatsaat
@@ -295,36 +420,161 @@
Çıkış başarılıGiriş bilgisini değiştirgpodder.net hesabınız için giriş bilgisini değiştirin.
- Çalma hızları
- Değişken hızlı ses yürütmesi için kullanılabilir hızları özelleştirin
+ Synchronize now
+ Sync subscription and episode state changes with gpodder.net.
+ Force full synchronization
+ Sync all subscriptions and episode states with gpodder.net.
+ %1$s with device %2$s]]>
+ Synchronization failed
+ This setting does not apply to authentication errors.
+ Customize the speeds available for variable speed playback
+ The speed to use when starting audio playback for episodes in this podcast
+ Auto Skip
+ Skip introductions and ending credits.
+ Skip last
+ Skip first
+ Skipped last %d seconds
+ Skipped first %d seconds
+ Adjust media info to playback speed
+ Displayed position and duration are adapted to playback speed
+ Fast Forward Skip Time
+ Customize the number of seconds to jump forward when the fast forward button is clicked
+ Rewind Skip Time
+ Customize the number of seconds to jump backwards when the rewind button is clickedSunucu ismini ayarlaVarsayılan sunucuyu kullan
+ High Notification priority
+ This usually expands the notification to show playback buttons.Kalıcı oynatma kontrolleriÇalma duraklatıldığında bildirim ve ekran kilidi ayarlarını sakla.
- İndirme Raporunu Göster
+ Set Compact Notification Buttons
+ Change the playback buttons when the notification is collapsed. The play/pause button is always included.
+ Select a maximum of %1$d items
+ You can only select a maximum of %1$d items.
+ Set Lockscreen Background
+ Set the lockscreen background to the current episode\'s image. As a side effect, this will also show the image in third party apps.
+ Download failedEğer indirme başarısız olursa, hatanın ayrıntılarını gösteren bir rapor oluştur.
+ Automatic download completed
+ Show a notification for automatically downloaded episodes.Android 4.1 öncesi sürümler genişletilmiş bildirimleri desteklememektedir.
+ Enqueue Location
+ Add episodes to: %1$s
+ Back
+ Front
+ After current episodeDevre dışıGörüntü Önbelleği BoyutuGörüntüler için diskte tutulacak önbelleğin boyutu.
+ User forum
+ Report bug
+ Open bug tracker
+ Export logs
+ Copy to clipboard
+ Copied to clipboardDeneysel
+ Select which media player to use to play files
+ Current value: %1$s
+ Proxy
+ Set a network proxy
+ Frequently Asked Questions
+ No web browser found.
+ Chromecast support
+ Enable support for remote media playback on Cast devices (such as Chromecast, Audio Speakers or Android TV)
+ Chromecast requires third party proprietary libraries that are disabled in this version of AntennaPod
+ Enqueue Downloaded
+ Add downloaded episodes to the queue
+ Built-in Android player
+ Switch to ExoPlayer
+ Switched to ExoPlayer.
+ Skip Silence in Audio
+ Upon exiting video
+ Behavior when leaving video playback
+ Stop playback
+ Continue audio playback
+ Behavior
+ Back Button Behavior
+ Change behavior of the back button.
+ Default
+ Open navigation drawer
+ Double tap to exit
+ Confirm to exit
+ Are you sure you want to close AntennaPod?
+ Tap back button again to exit
+ Go to page…
+ Select page
+ Delete removes from Queue
+ Automatically remove an episode from the queue when it is deleted.
+ Subscription Filter
+ Filter your subscriptions in navigation drawer and subscriptions screen.
+ None
+ Subscriptions are filtered.
+ Auto downloaded
+ Not auto downloaded
+ Kept updated
+ Not kept updatedHakkında
+ AntennaPod version
+ Contributors
+ Everyone can help to make AntennaPod better - with code, translations or by helping users in our forum
+ Developers
+ Translators
+ Special thanks
+ Privacy policy
+ Licenses
+ AntennaPod uses other great softwareSonuç bulunamadıAra
+ No results were found for \"%1$s\"
+ Sync started
+ Uploading episode changes…
+ Downloading episode changes…
+ Uploading played status…
+ Synchronizing subscriptions…
+ Synchronization successful
+ Synchronization failed
+ Move subscriptions and queue to another device
+ Database
+ OPML
+ HTML
+ Show your subscriptions to a friend
+ Transfer your subscriptions to another podcast app
+ Import your subscriptions from another podcast app
+ Transfer subscriptions, listened episodes and queue to AntennaPod on another device
+ Import AntennaPod database from another deviceOPML içe aktar
+ Import podcast list (OPML)
+ An error has occurred while reading the OPML document:
+ No file selected!Hepsini seçTüm seçimleri geri alOPML dışa aktar
+ HTML export
+ Database export
+ Database import
+ Importing a database will replace all of your current subscriptions and playing history. You should export your current database as a backup. Do you want to replace?
+ Please wait…Dışa aktarma hatası
+ Export successful
+ The exported file was written to:\n\n%1$s
+ Access to external storage is required to read the OPML file
+ Select file to import
+ Import successful
+ Please press OK to restart AntennaPod
+ This database was exported with a newer version of AntennaPod. Your current installation does not yet know how to handle this file.
+ Favorites export
+ Export saved favorites to fileZamanlayıcıyı ayarlaZamanlayıcıyı devre dışı bırakZamanlayıcıGeçersiz giriş, zaman bir tam sayı olmalıdır
+ Shake to reset
+ Vibrate shortly before endsaniyedakikasaat
@@ -340,6 +590,8 @@
1 saat%d saat
+ Auto-enable
+ Sleep timer enabledKATEGORİLERPOPÜLER CEP YAYINLARI
@@ -359,6 +611,7 @@
Bir cihaz seç:Cihaz ID\'si boş olamazCihaz ID\'si zaten var
+ Caption must not be emptySeçGiriş başarılıTebrikler! gpodder.net hesabınız cihazınızla ilişkilendirildi. AntennaPod bundan sonra gpodder.net hesabınızla üyeliklerinizi otomatik olarak senkronize edecek.
@@ -368,11 +621,16 @@
Yanlış kullanıcı adı veya şifregpodder.net senkronizasyon hatasıSenkronize edilirken bir hata oluştu:\u0020
+ Successful
+ Failed
+ Usernames may only contain letters, digits, hyphens and underscores.Seçilen dizin:Dizin yaratVeri dizinini seçLütfen verileriniz için ana klasörü seçin. AntennaPod gerekli alt-klasörleri oluşturacaktır.
+ Access to external storage is required to change the data folder
+ %1$s of %2$s free\"%1$s\" isminde yeni dizin oluştur?Yeni dizin yaratıldıBu dizine yazılamadı
@@ -391,31 +649,68 @@
Bu değişikliğin geçerli olması için AntennaPod yeniden başlatılmalıdır.Üye ol
+ Subscribing…
+ Preview
+ Stop previewGeri sarİleri sar
+ Increase speed
+ Decrease speedSesVidyo
- Yukarı çıkBölüm indiriliyorBölüm kuyrukta
+ Episode is marked as favoriteBu öğenin pozisyonunu değiştirmek için sürükleyinSonraki sayfayı yükle
+ Switch pages
+ Position: %1$s
+ Apply actionYetkilendirmeBu cep yayını ve içerdiği bölümler için kullanıcı adı şifreyi değiştir.Otomatik İndirme Seçenekleri
+ Episode Filter
+ List of terms used to decide if an episode should be included or excluded when auto downloading
+ Include
+ Exclude
+ Single words \n\"Multiple Words\"
+ Keep Updated
+ Include this podcast when (auto-)refreshing all podcasts
+ Auto download is disabled in the main AntennaPod settings
+ Listened for:
+ Episodes on the device:
+ Space used:
+ View for all podcasts »Veritabanı yükseltiliyorÜyelikler tek-amaçlı uygulamalardan içe aktarılıyor...
+ Search podcast…iTunes\'da Arama
+ Search Podcastindex.org
+ Search fyyd
+ Advanced
+ Add Podcast by RSS addressgpodder.net\'e gözat
+ Discover
+ Hide
+ You selected to hide suggestions.
+ more »
+ Suggestions by iTunes
+ Results by %1$s
+
+ Add local folder
+ Re-connect local folder
+ In case of permission denials, you can use this to re-connect to the exact same folder. Do not select another folder.
+ This virtual podcast was created by adding a folder to AntennaPod.
+ FilterTümüTüm Bölümler Seçildi
- Hiçbiri
+ NoneTüm Bölümlerin Seçimi KaldırıldıÇalınanÇalınan Bölümler Seçildi
@@ -425,6 +720,21 @@
İndirilen Bölümler Seçildiİndirilmeyenİndirilmeyen Bölümler Seçildi
+ Selected queued Episodes
+ Selected not queued Episodes
+ Selected episodes with media
+ Favori
+ Not favorite
+ İndirildi
+ İndirilmedi
+ Queued
+ Not queued
+ Has media
+ No media
+ Duraklatıldı
+ Not paused
+ Oynatıldı
+ Not playedBaşlık (A \u2192 Z)Başlık (Z \u2192 A)
@@ -432,22 +742,81 @@
Tarih (Eski \u2192 Yeni)Süre (Kısa \u2192 Uzun)Süre (Uzun \u2192 Kısa)
+ A \u2192 Z
+ Z \u2192 A
+ New \u2192 Old
+ Old \u2192 New
+ Short \u2192 Long
+ Long \u2192 ShortAntennaPod\'u beğendiniz mi?Eğer AntennaPod\'a oy vermek için biraz zamanını ayırırsanız memnun oluruz.Bir daha göstermeDaha sonra hatırlatEvet, şimdi yapalım!
+
+ Include:
+ Playback position
+ Media file address
+ Episode webpage
+ Media file
+ Audio controls
+ Playback SpeedSes
+ L
+ R
+ Audio Effects
+ Downmix: Stereo to mono
+ Sonic only
+ ExoPlayer only
+ Type
+ Host
+ Port
+ (Optional)Test
+ Checking…Test başarılıTest başarısız
+ Host can not be empty
+ Host is not a valid IP address or domain
+ Port not valid
+ Number of columns
+ Play on…
+ Disconnect the cast session
+ Media selected is not compatible with cast device
+ Failed to start the playback of media
+ Failed to stop the playback of media
+ Failed to pause the playback of media
+ Failed to set the volume
+ No connection to the cast device is present
+ Connection to the cast device has been lost. Application is trying to re-establish the connection, if possible. Please wait for a few seconds and try again.
+ Failed to sync up with the cast deviceYayın aygıtındaki yeni pozisyona erişilemedi
+ Receiver player has encountered a severe error
+ Error playing media. Skipping…
+ Action required
+ Shown if your action is required, for example if you need to enter a password.
+ Downloading
+ Shown while currently downloading.
+ Currently playing
+ Allows to control playback. This is the main notification you see while playing a podcast.
+ Errors
+ Shown if something went wrong, for example if download or feed update fails.
+ Synchronization Errors
+ Shown when gpodder synchronization fails.
+ Auto Downloads
+ Shown when episodes have been automatically downloaded.
+ Widget settings
+ Create widget
+ Opacity
+ Setting updated successfully.
+ Looks like you stream a lot. Do you want episode lists to show stream buttons?
+ Looks like you download a lot. Do you want episode lists to show download buttons?
diff --git a/core/src/main/res/values-uk/strings.xml b/core/src/main/res/values-uk/strings.xml
index d61cb5977..dd2d0ac62 100644
--- a/core/src/main/res/values-uk/strings.xml
+++ b/core/src/main/res/values-uk/strings.xml
@@ -23,11 +23,9 @@
Кеш епізодів заповненийДосягнута межа розміру кешу епізодів. Розмір кешу можна збільшити в налаштуваннях.
- Загальний час прослуханих подкастів:%1$d з %2$d епізодів почато.\n\nПрослухано %3$s з %4$s.Режим статистикиОбчислити тривалість дійсно прослуханого. Прослухане двічі враховується двічі, але просто позначене як прослухане не враховується
- Підсумувати всі подкасти позначені як прослуханіЗауваження: Швидкість програвання не береться до уваги.Cкинути статистикуЦе зітре історію тривалості відтворення всіх епізодів. Ви впевнені, що хочете продовжити?
@@ -45,6 +43,7 @@
Кількість непрослуханих епізодівКількість завантажених епізодівЖодних
+
Відкрити в браузеріКопіювати URL
@@ -111,27 +110,16 @@
Налаштування подкастуПерейменувати подкастВидалити подкаст
- Поділитися…
- Поділитися URL на епізод
- Поділитися URL на епізод з позицією відтворенняПоділитися файлом
- Поділитися URL на сайт
- Поділитися URL на медіа-файл
- Поділитися URL на медіа-файл з позицією відтворенняБудь ласка, підтвердіть що ви бажаєте видалити подкаст \"%1$s\" і ВСІ його епізоди (разом з завантаженими).Видалення подкастуОновити весь подкастВибрати все вищеВибрати все нижчеНевідтворені
- Призупинені
- ВідтвореніВ черзіНе в черзі
- Завантажені
- Не завантаженіЗі звуком або відео
- В улюбленихФільтровані{fa-exclamation-circle} Останнє оновлення було невдалимВідкрити подкаст
@@ -228,7 +216,6 @@
Обробка завантаженогоЗавантаження даних подкасту
- Завантажилось %1$d успішно, %2$d з помилкамиНевідомий заголовокКаналФайл з медіа
@@ -239,7 +226,6 @@
Підтвердження завантажень через мобільні мережіЗавантаження через мобільні мережі вимкнено в налаштуваннях.\n\nВибрати додавання епізоду до черги чи тимчасове завантаження?\n\nВаш вибір буде дійсним 10 хвилин.Завантаження через мобільні мережі вимкнено в налаштуваннях.\n\nУвімкнути тимчасово?\n\nВаш вибір буде дійсним 10 хвилин.
- Завжди дозволятиЛише додати до чергиУвімкнути тимчасово
@@ -279,7 +265,6 @@
Завантажити додатокДодаток не встановлено
- Швидкість програванняВключити SonicВ черзі немає епізодів.
@@ -346,7 +331,6 @@
кожні %1$sо %1$sГрати безперервно
- Навушники від\'єднаніПовторне під’єднання навушниківПовторне під’єднання блютузМобільне оновлення
@@ -386,10 +370,7 @@
Синхронізувати підписки та зміни стану епізодів з gpodder.netСинхронізувати всі підписки та стан епізодів з gpodder.net.%1$s з пристрою %2$s]]>
- Повідомляти про помилки синхронізаціїЦе налаштування не застосовується до помилок автентифікації.
- Швидкість програвання
- Налаштування швідкості доступно для змінної швидкості програванняЧас, що пропускається кнопкою перемотки впередНалаштувати кількість секунд, які пропускаються при натисканні кнопки перемотки впередЧас, що пропускається кнопкою відмотки назад
@@ -400,13 +381,10 @@
Зазвичай це розширює сповіщення, щоб показати кнопки відтворення.Завжди показувати елементи керування відтвореннямПоказувати повідомлення та елементи керування на екрані блокування в режимі паузи.
- Налаштувати кнопки на екрані блокування
- Змінити кнопки на екрані блокування. Кнопки програвання/пауза завжди включені.Оберіть не більше ніж %1$d кнопокВи можете обрати не більше ніж %1$d кнопок.Встановити фон екрана блокуванняВстановити картинку поточного епізоду як фон екрана блокування. Побічний ефект - це зображення також буде видимим в інших додатках.
- Показати звіт про завантаженняУ разі помилки при завантаженні створити детальний звіт про помилку.Android до версії 4.1 не підтримує розширені повідомлення.Додати епізоди до: %1$s
@@ -475,7 +453,6 @@
Файл було записано в:\n\n%1$sЩоб прочитати файл OPML потрібен доступ до зовнішнього носіяОбрати файл для імпорту
- Імпорт пройшов успішно.\n\nБудь ласка, натисніть ОК щоб перезапустити AntennaPodТаймер снуВимкнути засинання
@@ -567,7 +544,6 @@
Перемотка впередЗвукВідео
- ДогориЕпізод завантажуєтьсяЕпізод чекає в черзіПеретягніть щоб змінити позицію
@@ -594,11 +570,11 @@
Переглянути gpodder.netЗнайдіть каналибільше »
+
ФільтрВсіОбрано всі епізоди
- ЖодногоЖодного епізода не обраноВідтвореніОбрано відтворені епізоди
@@ -608,12 +584,17 @@
Обрано завантажені епізодиНезавантаженіОбрано незавантажені епізоди
- В черзіОбрано епізоди що в черзі
- Не в черзіОбрано епізоди що не в черзі
- Зі звуком або відеоОбрано епізоди зі звуком або відео
+ В улюблених
+ Завантажені
+ Не завантажені
+ В черзі
+ Не в черзі
+ Зі звуком або відео
+ Призупинені
+ ВідтвореніНазва (А \u2192 Я)Назва (Я \u2192 А)
@@ -627,6 +608,7 @@
Не заразНагадати згодомЗвичайно, з задоволенням!
+
Керування звукомШвидкість програвання
@@ -673,7 +655,6 @@
Відтворюється заразДозволяє керувати відтворенням. Це основне сповіщення, яке ви бачите під час відтворення подкасту.Помилки
- Відображається, якщо щось пішло не так, наприклад, якщо не вдалося завантажити або синхронізувати з gpodder.Налаштування віджетуСтворити віджет
diff --git a/core/src/main/res/values-zh-rCN/strings.xml b/core/src/main/res/values-zh-rCN/strings.xml
index 829f63846..c1ce410d7 100644
--- a/core/src/main/res/values-zh-rCN/strings.xml
+++ b/core/src/main/res/values-zh-rCN/strings.xml
@@ -25,17 +25,19 @@
已达到曲目缓存限制,可以在设置中提高缓存大小。回放下载
+ 通知
- 总播放时长:
+ 节目总播放时间:听过了总计 %2$d 期播客中的 %1$d 期。\n\n播放了总计 %4$s 中的 %3$s。统计模式计算实际上的播放次数与时长。播放过两次则将被识别为两次,但是被手动标记为已播放状态的不算。
- 统计播放次数时仅统计所有带有已播放播客标记的数量
+ 计算所有标记为已播放的节目注意:播放速度不在考虑范围之内。重置统计数据这将抹去总播放时间的历史。您确定要进行该操作吗?
+ 自 %s起,\n您播放了
- 已下载播客音频文件的总大小
+ 设备上音频节目的总大小:打开菜单关闭菜单
@@ -49,6 +51,8 @@
未播曲目数已下载曲目数量无
+
+ 没有找到兼容的应用程序在浏览器打开复制 URL
@@ -122,28 +126,21 @@
重命名播客移除播客分享
- 分享剧集地址
- 分享带播放位置的节目地址
+ 分享…分享文件
- 分享网站URL
- 分享播客URL
- 分享媒体文件地址
- 分享带播放位置的媒体文件地址
+ 网站地址
+ 播客订阅源 URL请确认您想删除播客“%1$s” 及其所有节目(包括已经下载的)
+ 请确认你想要移除播客\"%1$s\"。本地源文件夹中的文件不会被删除。正在移除播客刷新所有播客多选选中上面所有选中下面所有未播放
- 已暂停
- 已播放已在播放列表中不在播放列表中
- 已下载
- 未下载包含媒体文件
- 喜爱的已过滤的{fa-exclamation-circle} 上次刷新失败打开播客
@@ -228,7 +225,9 @@
正在处理下载下载播客数据
- %1$d 下载成功, %2$d 失败
+
+ %d个下载成功,%d下载失败
+ 未知标题订阅媒体文件
@@ -241,7 +240,8 @@
移动数据连接下载已于设置中被关闭。\n\n您要暂时允许下载吗?。\n\n您的决定将会在10分钟后被遗忘。确认使用移动数据播放通过移动连接播放在设置中未启用。点击以确认您无论如何都要用移动数据来播放
- 始终允许
+ 始终
+ 一次队列暂时允许
@@ -287,8 +287,9 @@
插件下载插件没有安装为了使变速播放正常工作,我们建议启用内置的Sonic媒体播放器
- 播放速度允许声音
+ 预设定
+ %1$.2fx已被保存为一个预设定。没有处在播放列表的曲目通过下载或者长按一项剧集再选择“添加到播放列表”以添加剧集
@@ -328,7 +329,7 @@
回放控制搜索无结果
- 清楚历史记录
+ 清除历史记录媒体播放器清理曲目如果自动下载需要为新剧集腾出空间时不在列表和收藏里的剧集可以被移除
@@ -361,7 +362,7 @@
每%1$s秒第%1$s秒连续播放
- 耳机断开
+ 耳机或蓝牙断开耳机重新连接蓝牙重新连接偏好在线播放
@@ -374,7 +375,7 @@
曲目下载播放中界面
- 外观、订阅顺序、锁屏
+ 外观、订阅、锁屏主题选择设置侧边栏的选项改变侧边栏中的选项
@@ -414,10 +415,9 @@
强制完整同步与gpodder.net同步所有订阅和节目状态%2$s 上以 %1$s 身份登录]]>
- 显示同步失败的提示信息
+ 同步失败该设置无法适用于验证错误。
- 播放速度
- 自定义音频播放速度
+ 自定义可用于变速播放的速度开始播放此播客中剧集时使用的速度自动跳过跳过开头结尾
@@ -437,15 +437,15 @@
这通常会拓展通知以显示播放按钮。保持播放控制在暂停时保持通知和锁屏界面的控制。
- 设置锁屏按钮
- 修改锁屏界面上的回放按钮(同样会影响播放/暂停按钮)。
- 选择%1$d中的最大值
- 你只能选择%1$d中的最大值
+ 设置紧凑的通知按钮
+ 当通知被折叠时,更改播放按钮。播放/暂停按钮总是包含在内。
+ 最多同时选择%1$d项
+ 你最多只能同时选择%1$d项设置锁屏背景将锁屏背景设置为当前播放节目的封面图(潜在的副作用是图片可能会在出现在第三方应用中)。
- 显示下载报告
+ 下载失败如果下载失败,生成一份显示详细失败信息的报告。
- 显示自动下载报告
+ 自动下载已完成显示有关自动下载的剧集的通知。Android 4.1 之前不支持扩展通知。排队位置
@@ -470,7 +470,7 @@
常见问题无网络浏览器Chromecast 支持
- 启用在 Cast 设备(例如 Chromecast 、 Audio Speakers 和 Android TV )上对于远端媒体回放的支持
+ 启用投影设备(例如 Chromecast 、 Audio Speakers 和 Android TV )上对于远端媒体回放的支持Chromecast 所需要的第三方库文件在这个版本的 AntennaPod 中被禁用已下载队列向队列添加已下载的节目
@@ -495,6 +495,14 @@
选择页面删除队列间距剧集被删除时自动将其移除列表
+ 订阅过滤器
+ 在导航抽屉和订阅屏幕中筛选订阅。
+ 没有
+ 订阅已过滤
+ 自动下载的
+ 非自动下载的
+ 保持更新的
+ 未保持更新的关于AntennaPod版本
@@ -529,6 +537,7 @@
将订阅,听过的剧集和队列转移到另一台设备上的AntennaPod从另一台设备导入AntennaPod数据库 OPML 导入
+ 导入播客列表 (OPML)读取 OPML 文档时发生错误没有选择文件!全选
@@ -544,7 +553,8 @@
导出文件被写入:\n\n %1$s读取 OPML 文件需要访问外部存储的权限选择导入文件
- 成功导入,请按OK重启AntennaPod
+ 导入成功
+ 请按\"确定\"重新启动AntennaPod该数据库是使用较新版本的AntennaPod导出的。您当前安装的版本尚不知如何处理该文件。收藏导出将保存的收藏夹导出到文件
@@ -636,7 +646,6 @@
放慢速度音频视频
- 向上导航曲目正在下载曲目已经在播放列表中节目被标记为收藏
@@ -657,6 +666,10 @@
保持最新(自动)刷新所有播客时包括此播客 AntennaPod主设置中已禁用自动下载
+ 已听了:
+ 设备上的节目:
+ 占用的空间:
+ 所有播客视图 »升级数据库
@@ -664,18 +677,27 @@
搜索播客……搜索 iTunes
+ 搜索 Podcastindex.org搜索 fyyd高级
- 通过URL添加播客
+ 通过 RSS 地址添加播客浏览 gpodder.net发现
+ 隐藏
+ 您选择了隐藏建议更多
- 搜索由%1$s驱动
+ iTunes 建议
+ 按 %1$s 显示结果
+
+ 添加本地文件夹
+ 重新连接本地文件夹
+ 在权限遭拒的情况下,您可以使用它重新连接到完全相同的文件夹。不要选择其他文件夹。
+ 这个虚拟播客是通过向AntennaPod添加一个文件夹创建的过滤器全部全选
- 无
+ 没有取消全选已播放选择已播放的曲目
@@ -685,12 +707,21 @@
选择已下载的曲目未下载选择未下载的曲目
- 已在播放列表中已选曲目
- 不在播放列表中选择不在播放列表的曲目
- 包含媒体已选中含媒体的节目
+ 喜爱的
+ 非喜爱的节目
+ 已下载
+ 未下载
+ 已在播放列表中
+ 不在播放列表中
+ 包含媒体
+ 没有媒体
+ 已暂停
+ 未暂停
+ 已播放
+ 未播放标题 (A \u2192 Z)标题 (Z \u2192 A)
@@ -710,6 +741,12 @@
请勿打扰稍后提醒好的, 就这样!
+
+ 包含:
+ 播放位置
+ 媒体文件地址
+ 节目网页
+ 媒体文件音频控制播放速度
@@ -756,7 +793,9 @@
当前播放允许控制回放。这是播放播客时您所见的主通知。错误
- 发生错误时显示,比如下载或与gpodder的同步失败
+ 出错时显示,比如下载或订阅源更新失败。
+ 同步错误
+ gpodder 同步出错时显示自动下载当节目已自动下载时显示。
diff --git a/core/src/main/res/values-zh-rTW/strings.xml b/core/src/main/res/values-zh-rTW/strings.xml
index c432cab3e..1e455de96 100644
--- a/core/src/main/res/values-zh-rTW/strings.xml
+++ b/core/src/main/res/values-zh-rTW/strings.xml
@@ -26,16 +26,13 @@
播放下載
- Podcast 總播放時長:聽過 %1$d/%2$d集。\n\n播過%3$s/%4$s集。統計模式計算真實的播放時長。如果播放同一劇集兩遍,則會記錄兩遍的時間;如果只是標記為已播放,則不會被計入播放時長
- 累加所有標記為已播放的 Podcast注意:播放速度不被計入。重設統計數據這會清除過去的播放紀錄,您確定要進行嗎?
- Podcast 總下載容量:打開選單關閉選單
@@ -49,6 +46,7 @@
未播放集數已下載集數沒有
+
在瀏覽器中打開複製鏈接
@@ -121,14 +119,7 @@
Podcast 設定重新命名 Podcast移除 Podcast
- 分享
- 分享這一集的網址
- 分享這一集網址及當前播放進度分享文件
- 分享網站網址
- 分享 Podcast 的網址
- 分享該媒體網址
- 分享此媒體網址及當前播放進度請確認您是否要刪除「%1$s」這個 Podcast 及當中下載的每一集。移除 Podcast重新整理 Podcast
@@ -136,14 +127,9 @@
選取以上全部選取以下全部未播放
- 暫停
- 已播放已列入待播清單未列入待播清單
- 已下載
- 未下載包含媒體
- 為最愛已過濾{fa-exclamation-circle} 上次刷新失敗打開 Podcast
@@ -228,7 +214,6 @@
正在下載Podcast 資料下載中
- %1$d 個成功下載, %2$d 個失敗標題不明資料來源媒體檔案
@@ -241,7 +226,6 @@
您目前設定為不以行動網路下載單集。\n\n是否要暫時允許以行動網路下載呢?\n\n1暫時允許的效期為 10 分鐘確認以行動網路串流播放目前您設定為不可使用行動網路串流播放,輕觸後可強制以串流播放。
- 永遠允許列入待播清單臨時允許
@@ -287,7 +271,6 @@
已下載的插件插件未安裝為了方便您以不同速度聆聽節目,我們建議您啟用內建的 Sonic 播放器。
- 播放速度啟用Sonic待播清單裡沒有任何單集
@@ -361,7 +344,6 @@
每 %1$s於 %1$s連續播放
- 拔除耳機時暫停播放接上耳機時繼續播放連上藍牙時繼續播放偏好串流
@@ -374,7 +356,6 @@
下載單集串流播放使用者介面
- 外觀、訂閱排序、鎖定畫面選擇主題設定側邊選單調整側邊選單裡要顯示的項目
@@ -413,10 +394,7 @@
強制全部同步與 gpodder.net 同步所有的訂閱及聆聽狀態。%1$s 登入,設備為 %2$s]]>
- 顯示同步錯誤通知此設定不影響登入驗證錯誤。
- 播放速度
- 自訂可選用的播放速度播放此 Podcast 中各單集時的播放速度自動跳過跳過開場和結尾鳴謝
@@ -436,15 +414,11 @@
此功能通常會加大通知訊息以便顯示控制鈕保留播放控制鈕暫停播放時,在通知列及鎖定畫面上保留播放控制鈕
- 設定鎖定畫面按鈕
- 設定鎖定畫面上的播放控制鈕。「暫停/播放」鈕一定會出現最多可選擇 %1$d 項您最多只能選擇 %1$d 項。設定鎖定畫面背景在鎖定畫面背景採用本單集的圖片,同時也會在第三方 App 裡顯示圖片
- 顯示下載報告如果下載失敗,產生錯誤相關細節的報告
- 顯示自動下載報告顯示自動下載通知Android 4.1 以前尚未支援延伸通知工具。待播清單新增位置
@@ -543,7 +517,6 @@
檔案已匯出至:\n\n%1$s讀取 OPML 檔需要存取外部儲存空間的權限選取要匯入的檔案
- 匯入成功。\n\n請按下 OK 重新啟動 AntennaPod此資料庫是以新版 AntennaPod 匯出的,您目前使用的版本無法使用這份資料。匯出我的最愛將儲存的我的最愛清單匯出為檔案
@@ -635,7 +608,6 @@
放慢聲音影片
- Navigate upwards正在下載這集單集已在待播清單中已將此單集標為最愛
@@ -665,16 +637,14 @@
搜尋 iTunes搜尋 fyyd進階
- 以 URL 新增 Podcast瀏覽gpodder.net探索更多 »
- 搜尋內容來自 %1$s
+
篩選全部全選
- 無不選播過的選擇播放過的單集
@@ -684,12 +654,17 @@
選擇下載過的單集未下載的選擇沒下載過的單集
- 已列入待播清單選擇待播清單中的單集
- 未列入待播清單選擇不在待播清單中的單集
- 有額外媒體檔選擇包含額外媒體的單集
+ 為最愛
+ 已下載
+ 未下載
+ 已列入待播清單
+ 未列入待播清單
+ 有額外媒體檔
+ 暫停
+ 已播放標題 (A \u2192 Z)標題 (Z \u2192 A)
@@ -709,6 +684,7 @@
別吵我以後再說好啊,這就去!
+
聲音控制播放速度
@@ -755,7 +731,6 @@
現正播放允許播放控制。這是您在播放 Podcast 時會看到的主要通知。錯誤通知
- 如果有任何錯誤(比方說下載或 gpodder 同步出錯)時顯示自動下載自動下載後顯示
--
cgit v1.2.3
From 4e12615a2de96357f4df7b9a971bc65792dd48ad Mon Sep 17 00:00:00 2001
From: ByteHamster
Date: Sun, 15 Nov 2020 12:38:25 +0100
Subject: Bumped version to 2.1.0-RC3
---
app/build.gradle | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/app/build.gradle b/app/build.gradle
index 0651d6809..e3f85ccfc 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -22,8 +22,8 @@ android {
// "1.2.3-SNAPSHOT" -> 1020300
// "1.2.3-RC4" -> 1020304
// "1.2.3" -> 1020395
- versionCode 2010002
- versionName "2.1.0-RC2"
+ versionCode 2010003
+ versionName "2.1.0-RC3"
multiDexEnabled false
vectorDrawables.useSupportLibrary true
--
cgit v1.2.3
From d68b45fd3088a48f7ae09da987592d08e08b653d Mon Sep 17 00:00:00 2001
From: Herbert Reiter <46045854+damoasda@users.noreply.github.com>
Date: Sun, 15 Nov 2020 14:26:07 +0100
Subject: Refactoring: Remove callback functions with constant value
---
.../danoeh/antennapod/config/DownloadServiceCallbacksImpl.java | 5 -----
.../danoeh/antennapod/config/PlaybackServiceCallbacksImpl.java | 6 ------
.../de/danoeh/antennapod/core/DownloadServiceCallbacks.java | 10 ++--------
.../de/danoeh/antennapod/core/PlaybackServiceCallbacks.java | 7 -------
.../antennapod/core/service/download/DownloadService.java | 3 +--
.../antennapod/core/service/playback/PlaybackService.java | 4 ----
6 files changed, 3 insertions(+), 32 deletions(-)
diff --git a/app/src/main/java/de/danoeh/antennapod/config/DownloadServiceCallbacksImpl.java b/app/src/main/java/de/danoeh/antennapod/config/DownloadServiceCallbacksImpl.java
index 71442f50b..55bf05e43 100644
--- a/app/src/main/java/de/danoeh/antennapod/config/DownloadServiceCallbacksImpl.java
+++ b/app/src/main/java/de/danoeh/antennapod/config/DownloadServiceCallbacksImpl.java
@@ -54,9 +54,4 @@ public class DownloadServiceCallbacksImpl implements DownloadServiceCallbacks {
return PendingIntent.getActivity(context, R.id.pending_intent_download_service_autodownload_report,
intent, PendingIntent.FLAG_UPDATE_CURRENT);
}
-
- @Override
- public boolean shouldCreateReport() {
- return true;
- }
}
diff --git a/app/src/main/java/de/danoeh/antennapod/config/PlaybackServiceCallbacksImpl.java b/app/src/main/java/de/danoeh/antennapod/config/PlaybackServiceCallbacksImpl.java
index 44f18e9da..5172c4974 100644
--- a/app/src/main/java/de/danoeh/antennapod/config/PlaybackServiceCallbacksImpl.java
+++ b/app/src/main/java/de/danoeh/antennapod/config/PlaybackServiceCallbacksImpl.java
@@ -22,10 +22,4 @@ public class PlaybackServiceCallbacksImpl implements PlaybackServiceCallbacks {
return i;
}
}
-
- @Override
- public boolean useQueue() {
- return true;
- }
-
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/DownloadServiceCallbacks.java b/core/src/main/java/de/danoeh/antennapod/core/DownloadServiceCallbacks.java
index ad3fb8d42..ae9b47629 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/DownloadServiceCallbacks.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/DownloadServiceCallbacks.java
@@ -37,7 +37,7 @@ public interface DownloadServiceCallbacks {
*
* The PendingIntent takes users to an activity where they can look at all successful and failed downloads.
*
- * @return A non-null PendingIntent for the notification or null if shouldCreateReport()==false
+ * @return A non-null PendingIntent for the notification
*/
PendingIntent getReportNotificationContentIntent(Context context);
@@ -47,14 +47,8 @@ public interface DownloadServiceCallbacks {
*
* The PendingIntent takes users to an activity where they can look at their episode queue.
*
- * @return A non-null PendingIntent for the notification or null if shouldCreateReport()==false
+ * @return A non-null PendingIntent for the notification
*/
PendingIntent getAutoDownloadReportNotificationContentIntent(Context context);
-
- /**
- * Returns true if the DownloadService should create a report that shows the number of failed
- * downloads when the service shuts down.
- */
- boolean shouldCreateReport();
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/PlaybackServiceCallbacks.java b/core/src/main/java/de/danoeh/antennapod/core/PlaybackServiceCallbacks.java
index 194ee65ae..3dcaac4dc 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/PlaybackServiceCallbacks.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/PlaybackServiceCallbacks.java
@@ -19,11 +19,4 @@ public interface PlaybackServiceCallbacks {
* @return A non-null activity intent.
*/
Intent getPlayerActivityIntent(Context context, MediaType mediaType, boolean remotePlayback);
-
- /**
- * Returns true if the PlaybackService should load new episodes from the queue when playback ends
- * and false if the PlaybackService should ignore the queue and load no more episodes when playback
- * finishes.
- */
- boolean useQueue();
}
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 a0e1a7041..2fe0aa8a5 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
@@ -205,8 +205,7 @@ public class DownloadService extends Service {
isRunning = false;
boolean showAutoDownloadReport = UserPreferences.showAutoDownloadReport();
- if (ClientConfig.downloadServiceCallbacks.shouldCreateReport()
- && (UserPreferences.showDownloadReport() || showAutoDownloadReport)) {
+ if (UserPreferences.showDownloadReport() || showAutoDownloadReport) {
notificationManager.updateReport(reportQueue, showAutoDownloadReport);
reportQueue.clear();
}
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 69b35bff5..92fd9cb55 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
@@ -973,10 +973,6 @@ public class PlaybackService extends MediaBrowserServiceCompat {
Log.d(TAG, "getNextInQueue(), but playable not an instance of FeedMedia, so not proceeding");
return null;
}
- if (!ClientConfig.playbackServiceCallbacks.useQueue()) {
- Log.d(TAG, "getNextInQueue(), but queue not in use by this app");
- return null;
- }
Log.d(TAG, "getNextInQueue()");
FeedMedia media = (FeedMedia) currentMedia;
try {
--
cgit v1.2.3
From 9989bbff9b2697aecf081e41a2d52d595de46fcd Mon Sep 17 00:00:00 2001
From: ByteHamster
Date: Thu, 19 Nov 2020 11:27:36 +0100
Subject: Increased resolution of notification icon
The expanded media style notification has a higher resolution than
normal large icons
---
.../core/service/playback/PlaybackServiceNotificationBuilder.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceNotificationBuilder.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceNotificationBuilder.java
index 632ac07ea..9d249620d 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceNotificationBuilder.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceNotificationBuilder.java
@@ -69,7 +69,7 @@ public class PlaybackServiceNotificationBuilder {
}
public void loadIcon() {
- int iconSize = context.getResources().getDimensionPixelSize(android.R.dimen.notification_large_icon_width);
+ int iconSize = (int) (128 * context.getResources().getDisplayMetrics().density);
try {
icon = Glide.with(context)
.asBitmap()
--
cgit v1.2.3
From 045790eaa13e55a6396bfe7ddbf6cbb1b1ea1f52 Mon Sep 17 00:00:00 2001
From: ByteHamster
Date: Fri, 20 Nov 2020 12:11:24 +0100
Subject: Write to crash report file if app is unable to open
---
.../de/danoeh/antennapod/activity/SplashActivity.java | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/SplashActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/SplashActivity.java
index d85235cf9..f0c76d545 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/SplashActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/SplashActivity.java
@@ -13,9 +13,9 @@ import android.widget.ProgressBar;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.core.storage.PodDBAdapter;
+import de.danoeh.antennapod.error.CrashReportWriter;
import io.reactivex.Completable;
import io.reactivex.android.schedulers.AndroidSchedulers;
-import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
/**
@@ -44,13 +44,15 @@ public class SplashActivity extends AppCompatActivity {
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
- .subscribe(() -> {
- Intent intent = new Intent(SplashActivity.this, MainActivity.class);
- startActivity(intent);
- overridePendingTransition(0, 0);
- finish();
- }, error -> {
+ .subscribe(
+ () -> {
+ Intent intent = new Intent(SplashActivity.this, MainActivity.class);
+ startActivity(intent);
+ overridePendingTransition(0, 0);
+ finish();
+ }, error -> {
error.printStackTrace();
+ CrashReportWriter.write(error);
Toast.makeText(this, error.getLocalizedMessage(), Toast.LENGTH_LONG).show();
finish();
});
--
cgit v1.2.3
From 9bd0babed52642d681558975b1ae33dfb4162ad0 Mon Sep 17 00:00:00 2001
From: ByteHamster
Date: Sat, 21 Nov 2020 23:02:35 +0100
Subject: Partially revert "Performance improvements"
Some problems with wrong dates might be caused by the
static date parser no longer being thread safe.
This partially reverts commit 77ef2393365e0ff7621321f725a18ac858e50cbf.
---
.../java/de/danoeh/antennapod/core/util/DateUtils.java | 15 ++++++---------
1 file changed, 6 insertions(+), 9 deletions(-)
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/DateUtils.java b/core/src/main/java/de/danoeh/antennapod/core/util/DateUtils.java
index e15ab2fdc..833ff33f1 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/util/DateUtils.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/util/DateUtils.java
@@ -22,14 +22,7 @@ public class DateUtils {
private DateUtils(){}
private static final String TAG = "DateUtils";
-
private static final TimeZone defaultTimezone = TimeZone.getTimeZone("GMT");
- private static final SimpleDateFormat dateFormatParser = new SimpleDateFormat("", Locale.US);
-
- static {
- dateFormatParser.setLenient(false);
- dateFormatParser.setTimeZone(defaultTimezone);
- }
public static Date parse(final String input) {
if (input == null) {
@@ -99,12 +92,16 @@ public class DateUtils {
"EEE d MMM yyyy HH:mm:ss 'GMT'Z (z)"
};
+ SimpleDateFormat parser = new SimpleDateFormat("", Locale.US);
+ parser.setLenient(false);
+ parser.setTimeZone(defaultTimezone);
+
ParsePosition pos = new ParsePosition(0);
for (String pattern : patterns) {
- dateFormatParser.applyPattern(pattern);
+ parser.applyPattern(pattern);
pos.setIndex(0);
try {
- Date result = dateFormatParser.parse(date, pos);
+ Date result = parser.parse(date, pos);
if (result != null && pos.getIndex() == date.length()) {
return result;
}
--
cgit v1.2.3
From d9151351b02e632b55d34f1fac6bada08c59731c Mon Sep 17 00:00:00 2001
From: Tony Tam
Date: Sat, 21 Nov 2020 18:20:17 -0800
Subject: pause button for autos
---
.../de/danoeh/antennapod/core/service/playback/PlaybackService.java | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
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 92fd9cb55..ab989c44b 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
@@ -149,7 +149,7 @@ public class PlaybackService extends MediaBrowserServiceCompat {
public static final String ACTION_PAUSE_PLAY_CURRENT_EPISODE = "action.de.danoeh.antennapod.core.service.pausePlayCurrentEpisode";
/**
- * Custom action used by Android Wear
+ * Custom action used by Android Wear, Android Auto
*/
private static final String CUSTOM_ACTION_FAST_FORWARD = "action.de.danoeh.antennapod.core.service.fastForward";
private static final String CUSTOM_ACTION_REWIND = "action.de.danoeh.antennapod.core.service.rewind";
@@ -1204,6 +1204,7 @@ public class PlaybackService extends MediaBrowserServiceCompat {
sessionState.setState(state, getCurrentPosition(), getCurrentPlaybackSpeed());
long capabilities = PlaybackStateCompat.ACTION_PLAY_PAUSE
| PlaybackStateCompat.ACTION_REWIND
+ | PlaybackStateCompat.ACTION_PAUSE
| PlaybackStateCompat.ACTION_FAST_FORWARD
| PlaybackStateCompat.ACTION_SKIP_TO_NEXT
| PlaybackStateCompat.ACTION_SEEK_TO;
--
cgit v1.2.3
From 69670e2153a5964d80d1ff8381831a5c1495e4c4 Mon Sep 17 00:00:00 2001
From: Tony Tam <149837+tonytamsf@users.noreply.github.com>
Date: Sun, 22 Nov 2020 06:57:47 -0800
Subject: higher contrast color for search bar (#4704)
---
core/src/main/res/values/colors.xml | 1 +
core/src/main/res/values/styles.xml | 3 +++
2 files changed, 4 insertions(+)
diff --git a/core/src/main/res/values/colors.xml b/core/src/main/res/values/colors.xml
index d09f53d64..feee88bb4 100644
--- a/core/src/main/res/values/colors.xml
+++ b/core/src/main/res/values/colors.xml
@@ -5,6 +5,7 @@
#f5f5f5#757575#bfbfbf
+ #afafaf#000000#248800#B00020
diff --git a/core/src/main/res/values/styles.xml b/core/src/main/res/values/styles.xml
index 9ec82215a..6186a8782 100644
--- a/core/src/main/res/values/styles.xml
+++ b/core/src/main/res/values/styles.xml
@@ -20,6 +20,7 @@
@color/black@color/highlight_lightfalse
+ @color/grey600@drawable/ic_storage_black@drawable/ic_network_black
@@ -98,6 +99,7 @@
@color/highlight_dark@color/whitefalse
+ @color/medium_gray@drawable/ic_storage_white@drawable/ic_network_white
@@ -170,6 +172,7 @@
@color/black@color/black@color/black
+ @color/medium_gray
+
+
--
cgit v1.2.3
From e4eacefeb18b0db513dbd9c9a6a305cd5df061e7 Mon Sep 17 00:00:00 2001
From: markamaze
Date: Thu, 3 Dec 2020 13:57:58 -0800
Subject: added readonly message for feed items w/o media (#4711)
---
.../main/java/de/danoeh/antennapod/fragment/ItemFragment.java | 6 ++++--
app/src/main/res/layout/feeditem_fragment.xml | 9 +++++++++
core/src/main/res/values/strings.xml | 1 +
3 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java
index 669dbdac2..07f59bb42 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java
@@ -17,7 +17,6 @@ import android.widget.ProgressBar;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import androidx.core.content.ContextCompat;
import androidx.core.text.TextUtilsCompat;
import androidx.core.util.ObjectsCompat;
import androidx.core.view.ViewCompat;
@@ -71,7 +70,6 @@ import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
-import java.util.Date;
import java.util.List;
import java.util.Locale;
@@ -120,6 +118,7 @@ public class ItemFragment extends Fragment {
private View butAction2;
private ItemActionButton actionButton1;
private ItemActionButton actionButton2;
+ private View noMediaLabel;
private Disposable disposable;
private PlaybackController controller;
@@ -169,6 +168,7 @@ public class ItemFragment extends Fragment {
butAction2Icon = layout.findViewById(R.id.butAction2Icon);
butAction1Text = layout.findViewById(R.id.butAction1Text);
butAction2Text = layout.findViewById(R.id.butAction2Text);
+ noMediaLabel = layout.findViewById(R.id.noMediaLabel);
butAction1.setOnClickListener(v -> {
if (actionButton1 instanceof StreamActionButton && !UserPreferences.isStreamOverDownload()
@@ -319,7 +319,9 @@ public class ItemFragment extends Fragment {
if (media == null) {
actionButton1 = new MarkAsPlayedActionButton(item);
actionButton2 = new VisitWebsiteActionButton(item);
+ noMediaLabel.setVisibility(View.VISIBLE);
} else {
+ noMediaLabel.setVisibility(View.GONE);
if (media.getDuration() > 0) {
txtvDuration.setText(Converter.getDurationStringLong(media.getDuration()));
txtvDuration.setContentDescription(
diff --git a/app/src/main/res/layout/feeditem_fragment.xml b/app/src/main/res/layout/feeditem_fragment.xml
index 72effc585..049182803 100644
--- a/app/src/main/res/layout/feeditem_fragment.xml
+++ b/app/src/main/res/layout/feeditem_fragment.xml
@@ -166,6 +166,15 @@
+
+
Picture-in-picture mode
AntennaPod - Unknown media key: %1$dFile not found
+ Item does not contain a media fileLock Queue
--
cgit v1.2.3
From aeeb6eef37f464b2009f407d1adcf524c5b99c93 Mon Sep 17 00:00:00 2001
From: Mats Wahlberg
Date: Sat, 5 Dec 2020 14:53:28 +0100
Subject: Add the Let's Encrypt (ISRG Root X1) Root Certificate
This adds the ISRG Root X1 certificate to the backported certificates
introduced in #4497. This should solve the issue when DST Root X3
expires in 2021 (https://letsencrypt.org/2020/11/06/own-two-feet.html).
---
.../antennapod/core/ssl/BackportCaCerts.java | 32 ++++++++++++++++++++++
.../antennapod/core/ssl/BackportTrustManager.java | 2 ++
2 files changed, 34 insertions(+)
diff --git a/core/src/main/java/de/danoeh/antennapod/core/ssl/BackportCaCerts.java b/core/src/main/java/de/danoeh/antennapod/core/ssl/BackportCaCerts.java
index 720d6a9d9..78c105e38 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/ssl/BackportCaCerts.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/ssl/BackportCaCerts.java
@@ -70,4 +70,36 @@ public class BackportCaCerts {
+ "0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7ILaZRfyHB\n"
+ "NVOFBkpdn627G190\n"
+ "-----END CERTIFICATE-----";
+
+ public static final String LETSENCRYPT_ISRG = "-----BEGIN CERTIFICATE-----\n"
+ + "MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw\n"
+ + "TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh\n"
+ + "cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4\n"
+ + "WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu\n"
+ + "ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY\n"
+ + "MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc\n"
+ + "h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+\n"
+ + "0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U\n"
+ + "A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW\n"
+ + "T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH\n"
+ + "B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC\n"
+ + "B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv\n"
+ + "KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn\n"
+ + "OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn\n"
+ + "jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw\n"
+ + "qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI\n"
+ + "rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV\n"
+ + "HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq\n"
+ + "hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL\n"
+ + "ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ\n"
+ + "3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK\n"
+ + "NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5\n"
+ + "ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur\n"
+ + "TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC\n"
+ + "jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc\n"
+ + "oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq\n"
+ + "4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA\n"
+ + "mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d\n"
+ + "emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc=\n"
+ + "-----END CERTIFICATE-----";
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/ssl/BackportTrustManager.java b/core/src/main/java/de/danoeh/antennapod/core/ssl/BackportTrustManager.java
index b8fe950b2..81d2a0709 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/ssl/BackportTrustManager.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/ssl/BackportTrustManager.java
@@ -45,6 +45,8 @@ public class BackportTrustManager {
new ByteArrayInputStream(BackportCaCerts.COMODO.getBytes(Charset.forName("UTF-8")))));
keystore.setCertificateEntry("SECTIGO_USER_TRUST_CA", cf.generateCertificate(
new ByteArrayInputStream(BackportCaCerts.SECTIGO_USER_TRUST.getBytes(Charset.forName("UTF-8")))));
+ keystore.setCertificateEntry("LETSENCRYPT_ISRG_CA", cf.generateCertificate(
+ new ByteArrayInputStream(BackportCaCerts.LETSENCRYPT_ISRG.getBytes(Charset.forName("UTF-8")))));
List managers = new ArrayList<>();
managers.add(getSystemTrustManager(keystore));
--
cgit v1.2.3
From f2c26b11c6896a29519c2eb8166ee6e25f9bdd8d Mon Sep 17 00:00:00 2001
From: Keunes <11229646+keunes@users.noreply.github.com>
Date: Thu, 10 Dec 2020 23:15:28 +0100
Subject: Correct website links (#4740)
With our new website, some of the links have changed. Also, the FAQ is no more.
---
.../antennapod/fragment/preferences/MainPreferencesFragment.java | 6 +++---
.../danoeh/antennapod/fragment/preferences/about/AboutFragment.java | 2 +-
app/src/main/res/xml/preferences.xml | 4 ++--
app/src/main/res/xml/preferences_about.xml | 2 +-
core/src/main/res/values/strings.xml | 2 +-
5 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/MainPreferencesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/MainPreferencesFragment.java
index 82e04e301..4694f3d65 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/MainPreferencesFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/MainPreferencesFragment.java
@@ -24,7 +24,7 @@ public class MainPreferencesFragment extends PreferenceFragmentCompat {
private static final String PREF_SCREEN_NETWORK = "prefScreenNetwork";
private static final String PREF_SCREEN_GPODDER = "prefScreenGpodder";
private static final String PREF_SCREEN_STORAGE = "prefScreenStorage";
- private static final String PREF_FAQ = "prefFaq";
+ private static final String PREF_DOCUMENTATION = "prefDocumentation";
private static final String PREF_VIEW_FORUM = "prefViewForum";
private static final String PREF_SEND_BUG_REPORT = "prefSendBugReport";
private static final String PREF_CATEGORY_PROJECT = "project";
@@ -106,8 +106,8 @@ public class MainPreferencesFragment extends PreferenceFragmentCompat {
return true;
}
);
- findPreference(PREF_FAQ).setOnPreferenceClickListener(preference -> {
- IntentUtils.openInBrowser(getContext(), "https://antennapod.org/faq.html");
+ findPreference(PREF_DOCUMENTATION).setOnPreferenceClickListener(preference -> {
+ IntentUtils.openInBrowser(getContext(), "https://antennapod.org/documentation/");
return true;
});
findPreference(PREF_VIEW_FORUM).setOnPreferenceClickListener(preference -> {
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/about/AboutFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/about/AboutFragment.java
index b440d053b..0a64bbe71 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/about/AboutFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/about/AboutFragment.java
@@ -33,7 +33,7 @@ public class AboutFragment extends PreferenceFragmentCompat {
return true;
});
findPreference("about_privacy_policy").setOnPreferenceClickListener((preference) -> {
- IntentUtils.openInBrowser(getContext(), "https://antennapod.org/privacy.html");
+ IntentUtils.openInBrowser(getContext(), "https://antennapod.org/privacy/");
return true;
});
findPreference("about_licenses").setOnPreferenceClickListener((preference) -> {
diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml
index 1630dc2f9..805dff47d 100644
--- a/app/src/main/res/xml/preferences.xml
+++ b/app/src/main/res/xml/preferences.xml
@@ -53,8 +53,8 @@
android:key="project"
android:title="@string/project_pref">
Disabled
Image Cache SizeSize of the disk cache for images.
+ Documentation & SupportUser forumReport bugOpen bug tracker
@@ -500,7 +501,6 @@
Current value: %1$sProxySet a network proxy
- Frequently Asked QuestionsNo web browser found.Chromecast supportEnable support for remote media playback on Cast devices (such as Chromecast, Audio Speakers or Android TV)
--
cgit v1.2.3
From 30a02022fa1edbe89c03348fbeb3482865d54320 Mon Sep 17 00:00:00 2001
From: ByteHamster
Date: Sun, 13 Dec 2020 10:39:25 +0100
Subject: Added tablet screenshots
---
.../de-DE/graphics/large-tablet-screenshots/tablet.png | Bin 0 -> 604491 bytes
.../en-US/graphics/large-tablet-screenshots/tablet.png | Bin 0 -> 605931 bytes
2 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 app/src/main/play/listings/de-DE/graphics/large-tablet-screenshots/tablet.png
create mode 100644 app/src/main/play/listings/en-US/graphics/large-tablet-screenshots/tablet.png
diff --git a/app/src/main/play/listings/de-DE/graphics/large-tablet-screenshots/tablet.png b/app/src/main/play/listings/de-DE/graphics/large-tablet-screenshots/tablet.png
new file mode 100644
index 000000000..5ff81f1e0
Binary files /dev/null and b/app/src/main/play/listings/de-DE/graphics/large-tablet-screenshots/tablet.png differ
diff --git a/app/src/main/play/listings/en-US/graphics/large-tablet-screenshots/tablet.png b/app/src/main/play/listings/en-US/graphics/large-tablet-screenshots/tablet.png
new file mode 100644
index 000000000..2defb5ce9
Binary files /dev/null and b/app/src/main/play/listings/en-US/graphics/large-tablet-screenshots/tablet.png differ
--
cgit v1.2.3
From e712a0eca97d768202d59d4bc613067c968f7932 Mon Sep 17 00:00:00 2001
From: ByteHamster
Date: Sun, 13 Dec 2020 10:49:25 +0100
Subject: Updated translations
---
core/src/main/res/values-fa/strings.xml | 345 ++++++++++++++++++++++++++++
core/src/main/res/values-nb/strings.xml | 16 ++
core/src/main/res/values-zh-rTW/strings.xml | 2 +-
3 files changed, 362 insertions(+), 1 deletion(-)
diff --git a/core/src/main/res/values-fa/strings.xml b/core/src/main/res/values-fa/strings.xml
index 11b3cfda0..afdb51c39 100644
--- a/core/src/main/res/values-fa/strings.xml
+++ b/core/src/main/res/values-fa/strings.xml
@@ -25,14 +25,19 @@
حد مجاز تکمیل شده است. شما میتوانید اندازه حافظه پنهان را در تنظیمات افزایش دهید.پخشبارگیریها
+ اعلان ها
+ مجموع زمان پادکستهای پخششده:%1$d از %2$d قسمتها شروع شده است.\n\n%3$s از %4$s پخش.حالت آمارمدت زمان واقعی پخش را محاسبه کنید. دو بار پخش کردن دو بار شمارش میشود، در حالیکه علامتگذاریشده بهعنوان پخششده محاسبه نمیشود.
+ مجموع اپیزودها را به عنوان پخش شده علامت گذاری کن.توجه: سرعت پخش هرگز به حساب نمیآید.بازنشانی دادههای آماریاین همهٔ تاریخچهٔ طول پخش همهٔ قسمتهای را پاک میکند. مطمئنید که میخواید ادامه دهید؟
+ از %s، شما اجرا نمودید
+ حجم کل پادکستهای بارگیری شده:باز کردن منوبستن منو
@@ -47,6 +52,7 @@
تعداد قسمتهای بارگیریشدههیچیک
+ هیچ اپ سازگاری پیدا نشدباز کردن در مرورگرکپی کردن URL
@@ -122,8 +128,13 @@
تنظیمات پادکستتغییر نام پادکستپاک کردن پادکست
+ همرسانی
+ همرسانی…همرسانی پرونده
+ نشانی وب سایت
+ نشانی فید پادکستلطفا تأیید کنید که میخواهید پادکست «%1$s» و تمام قسمتهای آن که بارگیری کردهاید را حذف کنید.
+ لطفا تایید کنید که مایل به حذف پادکست می باشید. «%1$s » . فایلها در فولدر داخلی حذف نخواهد شد.در حال پاک کردن پادکستتازهسازی تمام پادکستچندانتخابی
@@ -236,6 +247,8 @@
بارگیری بر روی اتصال دادهای همراه در تنظیمات غیر فعال شده است.\n\nمایلید به صورت موقت بارگیری صورت گیرد؟\n\nانتخاب شما برای ۱۰ دقیقهٔ آینده به خاطر سپرده میشود.پخش جریانی همراهپخش جریانی بر روی اتصال دادهای همراه در تنظیمات غیر فعال شده است. برای پخش جریانی به هر روی کلیک کنید.
+ همیشه
+ یکباردر صف قرار دادناجازهٔ موقت
@@ -282,6 +295,8 @@
افزایه نصبنشدهبرای اینکه سرعت بازپخش متغیر کار کند، پیشنهاد میدهید که پخشکنندهٔ داخلی Sonic را استفاده کنید.فعالسازی Sonic
+ از پیش نشاندن
+ %1$.2f قبلاً به عنوان یک پیش تنظیم ذخیره شده است.بدون قسمت صفشدهافزودن یک قسمت با بارگیری آن، یا فرشدن طولانی یک قسمت و انتخاب «افزودن به صف».
@@ -329,15 +344,65 @@
ادامه پخش وقتی که هدفنها دوباره متصل شودادامه پخش هنگامی که بلوتوث دوباره متصل شوددکمه پرشهای به جلو
+ هنگام فشار دادن دکمه جلو بر روی دستگاه متصل به بلوتوث ، به جای فوروارد ، به قسمت بعدی بروید
+ دکمه «قبلی» دوباره راه اندازی شد
+ هنگام فشار دادن دکمه فیزیکی «قبلی» ، قسمت فعلی را دوباره شروع کنید بجای عقب رفتن
+ پس از پایان پخش ، به مورد صف بعدی بروید
+ با پایان پخش ، قسمت حذف شودحذف خودکار
+ قسمتها را به عنوان پخش علامت بزنید حتی اگر چندین ثانیه از زمان پخش باقی مانده باشد
+ علامت گذاری هوشمند به عنوان «اجرا شده»
+ اپیزودها را نگه دار وقتی از روی آنها پرش میشود
+ اپیزودهای پرش شده نگه داشته شده
+ اپیزودها را نگه دار وقتی به عنوان علاقمندی علامت گذاری میشود
+ اپیزودهای مورد علاقه نگه داشته شدهپخش
+ کنترل هدفون ، رد کردن فواصل ، صفشبکه
+ فاصله به روزرسانی ، کنترل های بارگیری ، داده تلفن همراه
+ فاصله یا زمان روز را به روز کنید
+ یک بازه یا زمان مشخص از روز را برای بروزرسازی خودکار پادکست ها مشخص کنید
+ شما می توانید یک بازه مانند \"هر 2 ساعت\" یا یک ساعت خاص از روز را مانند \"7:00 صبح\" تنظیم کنید. شما همچنین می توانید به طور کامل به روزرسانی های خودکار را غیرفعال کنید.\n\n لطفا توجه داشته باشید: زمان بروزرسانی دقیق نیست و شما ممکن است با تأخیر کوتاه روبرو شوید.از کار انداختنتنظیم بازهتنظیم زمان روز
+ هر %1$s
+ در %1$s
+ پخش مداوم
+ قطع اتصال هدفون یا بلوتوث
+ وصل دوباره هدفون
+ وصل دوباره وصل دوباره
+ ترجیح به پخش جریانی
+ دکمه پخش جریان را به جای دکمه بارگیری در لیست ها نمایش بده.
+ به روزرسانی های موبایل
+ آنچه که باید از طریق اتصال داده تلفن همراه مجاز است را انتخاب کنید
+ تازه سازی پادکست
+ تصویر جلد
+ بارگیریهای خودکار
+ دانلود اپیزود
+ جاری شدنرابط کاربری
+ ظاهر ، اشتراک ها ، صفحه قفلانتخاب پوسته
+ تنظیم موارد کشوی پیمایش
+ تغییر موارد قابل نمایش در کشوی پیمایش
+ تنظیم سفارش اشتراک
+ تغییر ترتیب اشتراک هایتان
+ تنظیم پیشخوان اشتراک
+ اطلاعات نمایش داده شده توسط پیشخوان اشتراک را تغییر دهید. همچنین اگر «سفارش اشتراک» روی «پیشخوان» تنظیم شود ، بر مرتب سازی اشتراک ها نیز تأثیر می گذارد.
+ تغییر ظاهر آنتن پاد
+ بارگیری خودکار
+ بارگیری خودکار قسمتها را پیکربندی کنید.
+ فیلتر Wi-Fi را فعال کنید
+ بارگیری خودکار فقط باید از طریق شبکه های Wi-Fi انتخاب شده مجاز باشد.
+ بارگیری زمانی که سیستم شارژ نمیشود مجاز باشد
+ وقتی باتری شارژ نمی شود ، امکان بارگیری خودکار وجود داشته باشد
+ بارگیری موازی
+ قسمت های ذخیره شده
+ تعداد کل قسمتهای قابل بارگیری در ذخیره گاه دستگاه. در صورت رسیدن به این تعداد بارگیری خودکار به حالت تعلیق در می آید.استفاده از عکس قسمت
+ هر زمان که جلد مخصوص قسمت در دسترس بود از آن استفاده کن. در صورت لغو انتخاب ، برنامه همیشه از تصویر جلد پادکست استفاده می کند.
+ از طرح زمینه سیستم استفاده کنیدروشنتاریکسیاه (مناسب AMOLED)
@@ -346,39 +411,161 @@
ساعتدستیورود
+ برای همگام سازی اشتراک های خود با حساب gpodder.net وارد شوید.خروجخروج موفقیتآمیز بودتغییر اطلاعات ورود
+ اطلاعات ورود به سیستم حساب gpodder.net خود را تغییر دهید.
+ اکنون همگام سازی کنید
+ تغییرات اشتراک و وضعیت اپیزود را با gpodder.net همگام سازی کنید.
+ همگام سازی کامل را اجبار کن
+ همه اشتراک ها و حالت های قسمت را با gpodder.net همگام سازی کنید.
+ %1$s با وسیله %2$s]]>
+ همگام سازی انجام نشد
+ این تنظیمات در مورد خطاهای احراز هویت اعمال نمی شود.
+ سرعتهای موجود برای بازپخش با سرعت متغیر را سفارشی کنید
+ سرعت شروع بازپخش صدا برای قسمت های این پادکست
+ پرش خودکار
+ از اجرای قسمت معرفی و پایانی صرف نظر کن.
+ پرش به آخر
+ پرش به اول
+ پرش از %d ثانیه آخر
+ پرش از %d ثانیه اول
+ اطلاعات رسانه را برای سرعت بازپخش تنظیم کنید
+ موقعیت و مدت نمایش داده شده با سرعت پخش سازگار شده
+ زمان پرش برای جلو رفتن سریع
+ با کلیک بر روی دکمه سریع جلو ، تعداد ثانیه ها را برای پرش به جلو تنظیم کنید
+ زمان پرش برای عقب رفتن سریع
+ با کلیک روی دکمه برگشت تعداد ثانیه ها را برای پرش به عقب تنظیم کنید
+ تنظیم نام میزبان
+ استفاده از میزبان پیش فرض
+ اعلان با الویت بالا
+ این معمولاً اعلان را برای نمایش دکمه های پخش گسترش می دهد.
+ کنترلهای پخش مداوم
+ وقتی پخش متوقف شد ، اعلان ها را نگه دار و کنترل های صفحه را قفل کن.
+ تنظیم دکمه های اطلاع رسانی فشرده
+ با باز شدن اعلان ، دکمه های پخش را تغییر دهید. دکمه پخش / مکث همیشه در آن گنجانده شده است.
+ حداکثر %1$d مورد را انتخاب کنید
+ شما فقط می توانید حداکثر %1$d مورد را انتخاب کنید.تنظیم پسزمینه صفحهٔ قفل
+ پس زمینه صفحه قفل را روی تصویر جلد قسمت فعلی تنظیم کن. به عنوان اثر جانبی ، این تصویر در برنامه های شخص ثالث نیز نشان داده خواهد شد.
+ دانلود ناموفقدر صورت شکست در بارگیری، گزارشی تولید شود که جزئیات شکست را نشان دهد.
+ بارگیری خودکار انجام شد
+ اعلانی را برای قسمتهای بارگیری خودکار نشان دهید.اندرویدهای قدیمیتر از نسخه ۴٫۱ از اعلانهای بسطیافته پشتیبانی نمیکنند.
+ مکان را از صف در آور
+ قسمتها را به اضافه کنید به : %1$s
+ عقب
+ جلو
+ بعد از اپیزود فعلیغیرفعال
+ اندازه حافظه پنهان تصویر
+ اندازه حافظه پنهان دیسک برای تصاویر.
+ تالار گفتمان کاربرگزارش مشکل
+ باز کردن ردیاب اشکال
+ خارج کردن گزارشها
+ کپی به کلیپ بورد
+ در کلیپ بورد کپی شدآزمایشی
+ انتخاب کنید از کدام دستگاه پخش کننده رسانه برای پخش فایلها استفاده شود
+ مقدار فعلی: %1$sپروکسیتنظیم پروکسی شبکه
+ سوالات متداولمرورگر وب پیدا نشد.پشتیبانی از کرومکست
+ پشتیبانی از پخش از راه دور رسانه را در دستگاه های Cast فعال کنید (مانند Chromecast ، بلندگوهای صوتی یا Android TV)کرومکست نیازمند کتابخانههای غیرآزاد است که در این نسخه از AntennaPod غیر فعال هستنددر صف نهادن بارگیریشدهها
+ قسمتهای بارگیری شده را به صف اضافه کنیدپخشکننده پیشفرض اندروید
+ ExoPlayer (توصیه می شود)
+ به ExoPlayer بروید
+ به ExoPlayer تغییر وضعیت داده شد.
+ رد کردن سکوت در صدا
+ هنگام خروج از ویدئو
+ رفتار هنگام ترک پخش فیلمتوقف پخشادامه پخش صدا
+ رفتار
+ رفتار دکمه برگشت
+ تغییر رفتار دکمه بازگشت
+ پیش فرض
+ کشوی ناوبری را باز کنید
+ برای خروج دو ضربه سریع بزنید
+ برای خروج تأیید کنید
+ آیا مطمئن هستید که می خواهید انتن پاد را ببندید؟
+ برای خروج دوباره روی دکمه برگشت ضربه بزنید
+ برو به صفحه...
+ انتخاب صفحه
+ حذف باعث پاک شدن از صف شود
+ وقتی اپیزود حذف شد ، به طور خودکار از صف حذف شود.
+ فیلتر اشتراک
+ اشتراک های خود را در کشوی ناوبری و صفحه اشتراک ها فیلتر کنید.
+ هیچ یک
+ اشتراک ها فیلتر می شوند.
+ شمارنده بزرگتر از صفر
+ بارگیری خودکار
+ بارگیری خودکار انجام نشود
+ بروز نگهداری شد
+ بروز نگهداری نشددربارهنسخه AntennaPod
+ همکاران
+ هر کس می تواند به بهتر شدن آنتن پاد کمک کند - با کد ، ترجمه یا با کمک به کاربران در انجمن ماتوسعهدهندگانمترجمان
+ تشکر ویژهسیاست حریم شخصیپروانهها
+ آنتن پاد از نرم افزارهای عالی دیگری نیز استفاده می کندنتیجهای یافت نشدجستجو
+ هیچ نتیجه ای برای \"%1$s\" یافت نشد
+ همگام سازی شروع شد
+ در حال بارگذاری تغییرات قسمت ...
+ در حال بارگیری تغییرات قسمت ...
+ در حال بارگذاری وضعیت پخش شده
+ همگام سازی اشتراک ها ...
+ همگام سازی موفقیت آمیز
+ همگام سازی ناموفقیت آمیز
+ اشتراک ها و صف را به دستگاه دیگری منتقل کنید
+ پایگاه داده
+ OPML
+ HTML
+ اشتراک های خود را به یک دوست نشان دهید
+ اشتراک های خود را به یک برنامه پادکست دیگر منتقل کنید
+ اشتراک های خود را از برنامه پادکست دیگری وارد کنید
+ اشتراک ها ، قسمت های گوش داده شده و صف را به آنتن پاد در یک دستگاه دیگر منتقل کنید
+ پایگاه داده آنتن پاد را از دستگاه دیگری وارد کنید
+ وارد کردن OPML
+ وارد کردن لیست پادکست (OPML)
+ هنگام خواندن سند OPML خطایی رخ داده است:
+ هیچ فایلی انتخاب نشده است!انتخاب همهانتخاب هیچ
+ خارج کردن OPML
+ خارج کردن HTML
+ خارج کردن پایگاه داده
+ وارد کردن پایگاه داده
+ وارد کردن یک پایگاه داده باعث جایگزین تمام اشتراکهای فعلی و سابقه پخش شما خواهد شد. شما باید پایگاه داده فعلی خود را به عنوان پشتیبان خارج کنید. آیا شما میخواهید جایگزین کنید؟
+ صبر کنید لطفا ...
+ خطا در خارج کردن
+ خارج کردن موفقیت آمیز
+ پرونده خارج شده در اینجا نوشته شده است :\n\n %1$s
+ برای خواندن فایل OPML دسترسی به حافظه خارجی لازم است
+ فایل را برای وارد کردن انتخاب کنید
+ وارد کردن موفقیت آمیز
+ لطفاً OK را فشار دهید تا آنتن پاد دوباره راه اندازی شودپایگاه داده با نسخهاز جدیدتر از AntennaPod خروجی گرفته شده است. نسخه نصب شده فعلی شما هنوز نمیداند که چگونه باید با این پرونده کار کند.
+ خارج کردن علاقه مندی ها
+ موارد مورد علاقه ذخیره شده خارج شدتنظیم زمانسنج خواباز کار انداختن زمانسنج خواب
@@ -425,6 +612,7 @@
عنوان نباید خالی باشدگزینشورود موفق!
+ تبریک می گویم! حساب gpodder.net شما اکنون با دستگاه شما پیوند داده شده است. آنتن پاد از این پس اشتراک های دستگاه شما را با حساب gpodder.net خود به طور خودکار همگام سازی می کند.شروع همگامسازیرفتن به صفحهٔ اصلیخطای تأیید هویت gpodder.net
@@ -438,6 +626,9 @@
پوشهٔ انتخابشده:ساخت پوشهانتخاب پوشه دادهها
+ لطفاً مکان اصلی پوشه داده خود را انتخاب کنید. آنتن پاد زیر فهرستهای مناسب را ایجاد می کند.
+ دسترسی به فضای ذخیره سازی خارجی برای تغییر پوشه داده مورد نیاز است
+ %1$s از %2$s آزادایجاد پوشهٔ جدید با نام %1$s؟ساخت پوشه جدیدنمیتوان در این پوشه نوشت
@@ -447,31 +638,185 @@
%1$s قابل خواندن نیست%1$s قابل نوشتن نیستپوشه خالی نیست
+ پوشه ای که انتخاب کرده اید خالی نیست. بارگیری رسانه و سایر پرونده ها مستقیماً در این پوشه قرار می گیرند. ادامه بدهم ؟انتخاب پوشه پیشفرض
+ وقتی برنامه دیگری می خواهد صداها را پخش کند ، به جای کاهش میزان صدا ، پخش را متوقف کن
+ مکث برای وقفه ها
+ پس از اتمام تماس تلفنی ، پخش را از سر بگیرید
+ بعد از تماس ادامه بده
+ برای اینکه این تغییر اعمال شود ، آنتن پاد باید دوباره راه اندازی شود.اشتراک
+ مشترک شدن ...
+ پیش نمایش
+ توقف پیش نمایش
+ عقب زدن
+ حرکت سریع به جلو
+ افزایش سرعت
+ کاهش سرعت
+ سمعی
+ ویدئو
+ قسمت در حال بارگیری است
+ قسمت در صف است
+ قسمت به عنوان موردعلاقه علامت گذاری شده است
+ برای تغییر موقعیت این مورد را بکشید
+ صفحه بعدی را لود کن
+ تغییر صفحات
+ موقعیت: %1$s
+ حرکت را اعمال کن
+ احراز هویت
+ تغییر نام کاربری و رمز ورود خود را برای این پادکست و قسمت های آن
+ تنظیمات بارگیری خودکار
+ فیلتر قسمت
+ لیست اصطلاحاتی که برای تصمیم گیری در مورد درج یا حذف یک قسمت هنگام بارگیری خودکار استفاده می شود
+ شامل
+ مستثنی
+ تک کلمه \n \"چند کلمه\"
+ به روز باش
+ هنگام بازخوانی (خودکار) همه پادکست ها ، این پادکست را وارد کنید
+ بارگیری خودکار در تنظیمات اصلی آنتن پاد غیرفعال است
+ گوش داده شده برای:
+ قسمت های موجود در دستگاه:
+ فضای مورد استفاده:
+ مشاهده همه پادکست ها »
+ به روز رسانی پایگاه داده
+ وارد کردن اشتراک از برنامه های تک منظوره
+ جستجوی پادکست ...
+ در iTunes جستجو کن
+ در Podcastindex.org جستجو کن
+ در fyyd جستجو کن
+ پیشرفته
+ اضافه کردن پادکست توسط آدرس RSSمرور gpodder.net
+ کشف کردن
+ پنهان کردن
+ شما مخفی کردن پیشنهادات را انتخاب کرده اید.
+ بیشتر
+ پیشنهادات توسط iTunes
+ نتایج توسط %1$s
+ پوشه محلی را اضافه کنید
+ پوشه محلی
+ اتصال دوباره پوشه محلی
+ در صورت عدم پذیرش اجازه ، می توانید این را برای اتصال مجدد به همان پوشه قبلی استفاده کنید. پوشه دیگری را انتخاب نکنید.
+ این پادکست مجازی با افزودن پوشه ای به آنتن پاد ایجاد شده است.
+ مدیریت فایل سیستم امکان پذیر نیست
+ فیلتر
+ همه
+ همه قسمت ها انتخاب شد
+ هیچ یک
+ لغو انتخاب همه قسمت ها
+ اجرا شد
+ قسمتهای پخش شده انتخاب شده
+ اجرا نشده
+ قسمتهای پخش نشده انتخاب شده
+ بارگیری شد
+ قسمتهای بارگیری شده انتخاب شد
+ دانلود نشده
+ قسمتهای بارگیری نشده انتخاب شد
+ قسمتهای در صف انتخاب شده
+ قسمتهای خارج صف انتخاب شده
+ قسمتهای با رسانه انتخاب شدهمورد علاقه
+ مورد علاقه نیستبارگیریشدهبارگیرینشده
+ در صف گذاشته شد
+ در صف گذاشته نشد
+ رسانه دارد
+ رسانه نداردمتوقف شد
+ مکث نشدهپخش شد
+ اجرا نشده
+ عنوان (الفبایی معکوس)
+ عنوان (الفبایی)
+ تاریخ (جدید به قدیم)
+ تاریخ (قدیم به جدید)
+ طول (کوتاه به بلند)
+ طول (بلند به کوتاه)
+ برعکس الفبایی
+ الفبایی
+ جدید به قدیم
+ قدیم به جدید
+ کوتاه به بلند
+ بلند به کوتاه
+ علاقهمند به آنتن پاد ؟
+ اگر وقت بگذارید و به آنتن پاد امتیاز دهید ، از آن استقبال می کنیم.
+ دست از سر من بردار
+ بعدا به من یادآوری کن
+ مطمئنا ، بریم این کار را انجام بدیم!
+ عبارتند از:
+ موقعیت پخش
+ آدرس فایل رسانه
+ صفحه وب این قسمت
+ فایل رسانه
+ کنترل های صوتی
+ سرعت پخش
+ درجه صدا
+ L
+ R
+ جلوه های صوتی
+ Downmix: استریو به مونو
+ فقط صوتی
+ فقط ExoPlayer
+ نوع
+ میزبان
+ پورت
+ (اختیاری)
+ تست
+ چک کردن…
+ تست موفق بود
+ تست ناموفق بود
+ میزبان نمی تواند خالی باشد
+ میزبان آدرس IP یا دامنه معتبر نیست
+ پورت معتبر نیست
+ تعداد ستون ها
+ اجرا در ...
+ جلسه cast را قطع کنید
+ رسانه انتخاب شده با دستگاه cast سازگار نیست
+ شروع در پخش رسانه موفقیت آمیر نبود
+ توقف در پخش رسانه موفقیت آمیر نبود
+ مکث در پخش رسانه موفقیت آمیر نبود
+ میزان صدا تنظیم نشد
+ هیچ ارتباطی با دستگاه cast وجود ندارد
+ اتصال به دستگاه cast متوقف شده است. در صورت امکان ، برنامه در تلاش برای برقراری مجدد اتصال است. لطفا چند ثانیه صبر کنید و دوباره امتحان کنید.
+ همگام سازی با دستگاه cast انجام نشد
+ جستجوی موقعیت جدید در دستگاه cast انجام نشد
+ پخش کننده گیرنده با خطای شدیدی روبرو شده است
+ خطا در پخش رسانه. رد شدن
+ نیاز به انجام کاری
+ در صورت نیاز به اقدام به عملی ، به عنوان مثال در صورت نیاز به وارد کردن رمز عبور ، نشان داده شود.
+ درحال بارگیری
+ هنگام بارگیری نشان داده می شود.
+ در حال اجرا
+ امکان کنترل پخش را فراهم می کند. این اعلان اصلی است که هنگام پخش پادکست مشاهده می کنید.
+ خطاها
+ اگر مشکلی پیش آمد ، به عنوان مثال اگر در بارگیری یا به روزرسانی خبره مشکلی پیش آمد ، نشان داده می شود.
+ خطاهای همگام سازی
+ هنگامی که همگام سازی gpodder انجام نشد نشان داده می شود.بارگیریهای خودکار
+ وقتی قسمتها به طور خودکار بارگیری می شوند ، نشان داده می شوند.
+ تنظیمات ویجت
+ ایجاد ویجت
+ تیرگی
+ تنظیم با موفقیت به روز شد.
+ به نظر می رسد که زیاد پخش مستقیم دارید. آیا می خواهید در لیست های قسمت دکمه های پخش مستقیم نشان داده شود؟
+ به نظر می رسد که شما زیاد بارگیری می کنید. آیا می خواهید در لیست قسمت دکمه های بارگیری نشان داده شود؟
diff --git a/core/src/main/res/values-nb/strings.xml b/core/src/main/res/values-nb/strings.xml
index b4481adab..862787354 100644
--- a/core/src/main/res/values-nb/strings.xml
+++ b/core/src/main/res/values-nb/strings.xml
@@ -31,10 +31,13 @@
Startet %1$d av %2$d episoder.\n\nAvspilt %3$s av %4$s.StatistikkmodusBeregn faktisk avspilt varighet. Dobbel avspilling telles to ganger, mens markering som avspilt telles ikke
+ Oppsummer alle podkaster merket som avspiltMerk: Avspillingshastighet tas aldri med i betraktningen.Tilbakestill statistikkdataDette vil slette historikk om varighet som er spilt for alle episoder. Er du sikker på at du vil fortsette?
+ Siden %s,\nhar du spilt
+ Total størrelse på nedlastede podkaster:Åpne menyenLukk menyen
@@ -125,6 +128,7 @@
Del…Del filNettsidens adresse
+ Podcaststrøm-URLBekreft at du ønsker å slette podkasten \"%1$s\" og ALLE episodene dens (inkludert nedlastede episoder).Fjerner podkastLast hele podkasten på nytt
@@ -193,6 +197,7 @@
Deaktiver automatisk nedlastingTilbakestill avspillingsposisjonElement fjernet
+ Ingen ting er valgtvellykketNedlastning venter
@@ -225,6 +230,10 @@
Behandler nedlastningerLaster ned data til podkast
+
+ %1$d nedlastninger lyktes, %2$d mislyktes
+ %d nedlastinger lyktes, %d mislyktes
+ Ukjent tittelStrømMediafil
@@ -285,6 +294,8 @@
Programtillegg er ikke installertFor at avspilling med varierende hastighet skal virke, anbefaler vi å bruke den innebygde Sonic-mediespilleren.Skru på Sonic
+ Ferdiginstillinger
+ %1$.2fx er allerede lagret som en ferdiginstilling.Ingen episoder i køLegg til en episode ved å laste den ned, eller trykk og hold på en episode og velg \"Legg til i køen\".
@@ -313,6 +324,7 @@
ProsjektKøSynkronisering
+ Synkroniser med andre enheter over gpodder.netAutomasjonDetaljerImporter/Eksporter
@@ -369,6 +381,7 @@
Nedlasting av episoderStrømmingBrukergrensesnitt
+ Utseende, Abonnementer, LåsskjermVelg temaVelg elementer i navigasjonsskuffenEndre hvilke elementer som vises i navigeringsfanen.
@@ -404,8 +417,10 @@
Endre innlogginsinformasjonen til din gpodder.net kontoSynkroniser nåSynkroniser abonnement og episoder med gpodder.net.
+ Tving fram full synkroniseringSynkroniser alle abonnement og episoder med gpodder.net.%1$s med enhet %2$s]]>
+ Synkronisering feiletDenne instillingen gjelder ikke autentiseringfeil.Hastigheten som brukes når episoder av denne podkasten spilles avAutomatisk hopp
@@ -426,6 +441,7 @@
Dette utvider som regel varslingen for å vise kontroller.Vedvarende avspillingskontrollerBehold varsel- og låseskjermkontroller når avspilling er satt på pause.
+ Set kompakte notifikasjonsknapperVelg opp til %1$d tingDu kan kun velge opp til %1$d ting.Angi som bakgrunn på låseskjermen
diff --git a/core/src/main/res/values-zh-rTW/strings.xml b/core/src/main/res/values-zh-rTW/strings.xml
index b3973c30b..9ea28fe26 100644
--- a/core/src/main/res/values-zh-rTW/strings.xml
+++ b/core/src/main/res/values-zh-rTW/strings.xml
@@ -93,7 +93,7 @@
關閉輕重
- 目前設定可同步下載 \u0020 集
+ \u0020項同步下載預設值總是不予下載
--
cgit v1.2.3
From ae0758560e024074d70489f75adbbf4fde985d3c Mon Sep 17 00:00:00 2001
From: ByteHamster
Date: Sun, 13 Dec 2020 10:51:37 +0100
Subject: Updated store descriptions
---
app/src/main/play/listings/ca/full-description.txt | 31 ++++++++++++++++++++++
.../main/play/listings/ca/short-description.txt | 1 +
app/src/main/play/listings/ca/title.txt | 1 +
.../main/play/listings/cs-CZ/full-description.txt | 31 ++++++++++++++++++++++
.../main/play/listings/cs-CZ/short-description.txt | 1 +
app/src/main/play/listings/cs-CZ/title.txt | 1 +
.../main/play/listings/es-ES/full-description.txt | 4 +--
7 files changed, 68 insertions(+), 2 deletions(-)
create mode 100644 app/src/main/play/listings/ca/full-description.txt
create mode 100644 app/src/main/play/listings/ca/short-description.txt
create mode 100644 app/src/main/play/listings/ca/title.txt
create mode 100644 app/src/main/play/listings/cs-CZ/full-description.txt
create mode 100644 app/src/main/play/listings/cs-CZ/short-description.txt
create mode 100644 app/src/main/play/listings/cs-CZ/title.txt
diff --git a/app/src/main/play/listings/ca/full-description.txt b/app/src/main/play/listings/ca/full-description.txt
new file mode 100644
index 000000000..90227a4c0
--- /dev/null
+++ b/app/src/main/play/listings/ca/full-description.txt
@@ -0,0 +1,31 @@
+AntennaPod és un reproductor i organitzador de podcasts que et dona accés instantani a milions de podcasts tant de pagament com gratuïts, des de podcasters independents fins a grans publicacions com la BBC, NPR i CNN. Afegeix, importa i exporta els seus feeds sense problemes usant la base de dates de podcasts de iTunes, arxius OPML o simples URLs RSS.
+Descarrega, transmet o posa en cola episodis i disfruta'ls com tu vulgues amb velocitats de reproducció ajustables, suport per a capítols i un temporitzador per a dormir.
+Estalvia esforç, bateria i us de dades mòbils amb controls d'automatització per a descarregar (hores específiques, intervals i xarxes Wi-Fi) i esborrar episodis (basant-se en els teus favorits i els ajustos de retard).
+
+Fet per entusiastes dels podcasts, AntennaPod es lliure en tots els sentits de la paraula: codi obert, sense cost, sense anuncis.
+
+Importa, organitza i reprodueix
+• Organitza la reproducció desde qualsevol lloc: widget a la pantalla principal, notificacions de sistema i controls d'auricular amb fil o bluetooth.
+• Afegeix i importa feeds via iTunes, gPodder.net, fitxers OPML o enllaços RSS o Atom.
+• Disfruta escoltant a la teua manera amb velocitat de reproducció ajustable, suport per a capitols, memòria de posició de reproducció i un avançat temporitzador per a dormir (que pots resetetjar agitant el mòbil)
+• Accedix a feeds i episodis protegits amb contrasenya
+
+Organitza, comparteix i aprecia
+• Recorda als millors dels millors marcant episodis com a favorits.
+• Troba un episodi usant el historial de reproducció o buscant títols i notes.
+• Comparteix episodis i feeds a través d'opcions avançades de medis socials i email, els serveis de gPodder.net i via l'exportació OPML.
+
+Controla el sistema
+• Pren control de les descarregues automàtiques: tria feeds, exclou xarxes mòbils, selecciona xarxes WiFi específiques, requereix que el telèfon estiga carregant i selecciona hores o intervals.
+• Gestioneu l'emmagatzematge ajustant la quantitat d'episodis en emmagatzematge temporal, l'esborrat intel·ligent i triant la vostra ubicació preferida.
+• Adapteu-vos al vostre entorn fent servir el tema clar o el fosc.
+• Feu còpies de seguretat de les vostres subscripcions amb la integració amb gPodder.net i l'exportació a OPML.
+
+Uniu-vos a la comunitat d'AntennaPod!
+L'AntennaPod el desenvolupen voluntaris. Podeu col·laborar, amb codi o comentaris.
+
+Els amigables membres del nostre fòrum estaran contents d'ajudar-vos amb qualsevol pregunta. Esteu convidats a parlar de les features i de podcasting en general, a més.
+https://forum.antennapod.org/
+
+Transifex és el lloc on podeu ajudar amb les traduccions.
+https://www.transifex.com/antennapod/antennapod
\ No newline at end of file
diff --git a/app/src/main/play/listings/ca/short-description.txt b/app/src/main/play/listings/ca/short-description.txt
new file mode 100644
index 000000000..25b884d1b
--- /dev/null
+++ b/app/src/main/play/listings/ca/short-description.txt
@@ -0,0 +1 @@
+Reproductor i organitzador de podcasts, fàcil d'usar, flexible i de codi obert.
\ No newline at end of file
diff --git a/app/src/main/play/listings/ca/title.txt b/app/src/main/play/listings/ca/title.txt
new file mode 100644
index 000000000..31552f353
--- /dev/null
+++ b/app/src/main/play/listings/ca/title.txt
@@ -0,0 +1 @@
+AntennaPod
\ No newline at end of file
diff --git a/app/src/main/play/listings/cs-CZ/full-description.txt b/app/src/main/play/listings/cs-CZ/full-description.txt
new file mode 100644
index 000000000..8411a2e7f
--- /dev/null
+++ b/app/src/main/play/listings/cs-CZ/full-description.txt
@@ -0,0 +1,31 @@
+AntennaPod je správce a přehrávač podcastů, co vám umožňuje okamžitý přístup k milionům podcastů (placené i zdarma) od nezávislých autorů, přes velké zahraniční korporace jako BBC, NPR a CNN, až po české DVTV nebo Český rozhlas. Své podcasty můžete jednoduše přidávat, importovat i exportovat pomocí iTunes, OPML souborů nebo RSS.
+Stahujte, streamujte nebo si vytvořte frontu epizod a užijte si poslech tak, jak ho máte rádi s nastavitelnou rychlostí přehrávání, podporou kapitol a s časovačem vypnutí.
+Ušetři si námahu, baterku i mobilní data s pomocí robustní automatické kontroly nad stahováním epizod (urči časy, intervaly a WIFI sítě) a mazáním epizod (na základě oblíbenosti a nastavení zpoždění).
+
+Vytvořeno nadšenci do podcastů, AntennaPod je otevřený software (OSS), zdarma a bez reklam.
+
+Importujte, zorganizujte a přehrávejte
+• Ovládejte přehrávání odkudkoli: z widgetu na domovské obrazovce, z oznámení nebo pomocí tlačítek na sluchátkách včetně Bluetooth
+• Přidejte a importujte podcasty přes iTunes anebo gPodder.net, OPML soubory a RSS anebo Atom odkazy
+• Užijte si poslech s nastavitelnou rychlostí přehrávání, podporou kapitol, zapamatování poslední pozice přehrávání a pokročilým časovačem vypnutí (restart zatřesením, snížení hlasitosti)
+• Přistupujte k zaheslovaným podcastům a epizodám
+
+Udržovat přehled, sdílet & ocenit
+• Udržujte si seznam toho nejlepšího z nejlepšího přidáním epizod do oblíbených
+• Vyhledej tu správnou epizodu ve své historii přehrávání nebo prohledáním jmen a popisů epizod
+• Sdílej epizody a kanály pomocí pokročilých nastavení pro sociální média a email, gPodder.net službu nebo OPML export
+
+Ovládat systém
+• Převezmi kontrolu nad automatickým stahováním: vybírej kanály, vyluč mobilní sítě, vyber specifické WIFI sítě, vyžaduj stav nabíjení telefonu a nastav časy nebo intervaly
+• Spravujte využití úložiště nastavením množství uložených epizod, chytrého mazání a výběrem místa uložení
+• Přizpůsobte si aplikaci svému prostředí pomocí světlého nebo tmavého motivu
+• Zálohujte své sbírky pomocí služby gPodder.net nebo exportem OPML souborů
+
+Přidejte se do komunity AntennaPodu!
+AntennaPod je aktivně vyvíjen dobrovolníky. Můžete přispět také svým kódem nebo komentáři!
+
+Naše přátelská členská základna vám ráda zodpoví jakékoli dotazy. Zveme vás k diskuzi o AntennaPodu nebo i podcastech obecně.
+https://forum.antennapod.org/
+
+Na Transifexu můžete pomoct s překladem:
+https://www.transifex.com/antennapod/antennapod
\ No newline at end of file
diff --git a/app/src/main/play/listings/cs-CZ/short-description.txt b/app/src/main/play/listings/cs-CZ/short-description.txt
new file mode 100644
index 000000000..e0df116ee
--- /dev/null
+++ b/app/src/main/play/listings/cs-CZ/short-description.txt
@@ -0,0 +1 @@
+Jednoduchý a flexibilní open-source program pro správu a poslech podcastů
\ No newline at end of file
diff --git a/app/src/main/play/listings/cs-CZ/title.txt b/app/src/main/play/listings/cs-CZ/title.txt
new file mode 100644
index 000000000..31552f353
--- /dev/null
+++ b/app/src/main/play/listings/cs-CZ/title.txt
@@ -0,0 +1 @@
+AntennaPod
\ No newline at end of file
diff --git a/app/src/main/play/listings/es-ES/full-description.txt b/app/src/main/play/listings/es-ES/full-description.txt
index b15dd1762..52897ce9c 100644
--- a/app/src/main/play/listings/es-ES/full-description.txt
+++ b/app/src/main/play/listings/es-ES/full-description.txt
@@ -24,8 +24,8 @@ Creado por entusiastas del pódcast, AntennaPod es libre en todos los sentidos:
¡Únete a la comunidad AntennaPod!
AntennaPod es desarrollado por voluntarios. ¡Tú también puedes contribuir, con tu código o con tus comentarios!
-Visita GitHub para solicitar características nuevas, reportar fallos y contribuir con código:
-https://www.github.com/AntennaPod/AntennaPod
+Nuestros amables miembros del foro te ayudarán con cualquier duda que tengas. Estás invitado a discutir sobre las características y el podcasting en general.
+https://forum.antennapod.org/
Ayuda con las traducciones en Transifex:
https://www.transifex.com/antennapod/antennapod
\ No newline at end of file
--
cgit v1.2.3
From a7c6e697c263c60b38ed44165dee5adf9965c27f Mon Sep 17 00:00:00 2001
From: ByteHamster
Date: Sun, 13 Dec 2020 10:29:25 +0100
Subject: Bumped version to 2.1.1
---
app/build.gradle | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/app/build.gradle b/app/build.gradle
index 93d3793bb..183642902 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -22,8 +22,8 @@ android {
// "1.2.3-SNAPSHOT" -> 1020300
// "1.2.3-RC4" -> 1020304
// "1.2.3" -> 1020395
- versionCode 2010095
- versionName "2.1.0"
+ versionCode 2010195
+ versionName "2.1.1"
multiDexEnabled false
vectorDrawables.useSupportLibrary true
--
cgit v1.2.3
From 55f08d0304fbb4b9b98865707c76ee4166e24ea7 Mon Sep 17 00:00:00 2001
From: ByteHamster
Date: Sun, 13 Dec 2020 17:53:44 +0100
Subject: Add Anxhelo to about screen
---
app/src/main/assets/special_thanks.csv | 1 +
1 file changed, 1 insertion(+)
diff --git a/app/src/main/assets/special_thanks.csv b/app/src/main/assets/special_thanks.csv
index 348e3208e..ab44bd7f4 100644
--- a/app/src/main/assets/special_thanks.csv
+++ b/app/src/main/assets/special_thanks.csv
@@ -1,3 +1,4 @@
221 Pixels;Logo design;https://avatars2.githubusercontent.com/u/58243143?s=60&v=4
+Anxhelo Lushka;Website design;https://avatars2.githubusercontent.com/u/25004151?s=60&v=4
ByteHamster;Forum admin;https://avatars2.githubusercontent.com/u/5811634?s=60&v=4
Keunes;Communications;https://avatars2.githubusercontent.com/u/11229646?s=60&v=4
--
cgit v1.2.3
From 1d008317aa6c6f71d8e35936ab1d02802057384a Mon Sep 17 00:00:00 2001
From: Herbert Reiter <46045854+damoasda@users.noreply.github.com>
Date: Sun, 13 Dec 2020 22:55:11 +0100
Subject: Remove unused import statements to reduce dependencies
---
.../main/java/de/danoeh/antennapod/activity/OpmlImportActivity.java | 3 +--
core/src/main/java/de/danoeh/antennapod/core/feed/FeedItemFilter.java | 2 --
.../main/java/de/danoeh/antennapod/core/feed/LocalFeedUpdater.java | 1 -
core/src/main/java/de/danoeh/antennapod/core/glide/ApGlideModule.java | 1 -
.../java/de/danoeh/antennapod/core/glide/ChapterImageModelLoader.java | 4 ----
.../de/danoeh/antennapod/core/service/download/DownloadService.java | 1 -
.../de/danoeh/antennapod/core/service/download/HttpDownloader.java | 3 ---
.../core/service/download/handler/FailedDownloadHandler.java | 1 -
.../java/de/danoeh/antennapod/core/service/playback/LocalPSMP.java | 1 -
.../de/danoeh/antennapod/core/service/playback/PlaybackService.java | 1 -
core/src/main/java/de/danoeh/antennapod/core/storage/DBReader.java | 1 -
core/src/main/java/de/danoeh/antennapod/core/storage/DBTasks.java | 1 -
core/src/main/java/de/danoeh/antennapod/core/storage/DBWriter.java | 1 -
.../src/main/java/de/danoeh/antennapod/core/storage/FeedSearcher.java | 2 --
.../src/main/java/de/danoeh/antennapod/core/storage/PodDBAdapter.java | 1 -
core/src/main/java/de/danoeh/antennapod/core/util/URLChecker.java | 1 -
.../java/de/danoeh/antennapod/core/util/playback/AudioPlayer.java | 1 -
.../danoeh/antennapod/core/util/playback/PlaybackServiceStarter.java | 1 -
.../java/de/danoeh/antennapod/core/feed/LocalFeedUpdaterTest.java | 1 -
19 files changed, 1 insertion(+), 27 deletions(-)
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/OpmlImportActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/OpmlImportActivity.java
index 10292b892..d4e9ee5d9 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/OpmlImportActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/OpmlImportActivity.java
@@ -17,9 +17,8 @@ import de.danoeh.antennapod.asynctask.OpmlFeedQueuer;
import de.danoeh.antennapod.asynctask.OpmlImportWorker;
import de.danoeh.antennapod.core.export.opml.OpmlElement;
import de.danoeh.antennapod.core.preferences.UserPreferences;
-import de.danoeh.antennapod.core.util.LangUtils;
+
import org.apache.commons.io.ByteOrderMark;
-import org.apache.commons.io.IOUtils;
import org.apache.commons.io.input.BOMInputStream;
import org.apache.commons.lang3.ArrayUtils;
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 e8e478a86..787f0e5e7 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
@@ -1,10 +1,8 @@
package de.danoeh.antennapod.core.feed;
import android.text.TextUtils;
-import android.util.Log;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.List;
import de.danoeh.antennapod.core.storage.DBReader;
diff --git a/core/src/main/java/de/danoeh/antennapod/core/feed/LocalFeedUpdater.java b/core/src/main/java/de/danoeh/antennapod/core/feed/LocalFeedUpdater.java
index e1bad4d93..be64a199c 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/feed/LocalFeedUpdater.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/feed/LocalFeedUpdater.java
@@ -22,7 +22,6 @@ import java.util.List;
import java.util.Locale;
import java.util.Set;
import java.util.UUID;
-import java.util.concurrent.ExecutionException;
import de.danoeh.antennapod.core.R;
import de.danoeh.antennapod.core.service.download.DownloadStatus;
diff --git a/core/src/main/java/de/danoeh/antennapod/core/glide/ApGlideModule.java b/core/src/main/java/de/danoeh/antennapod/core/glide/ApGlideModule.java
index ab4247cef..b3adc567e 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/glide/ApGlideModule.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/glide/ApGlideModule.java
@@ -10,7 +10,6 @@ import com.bumptech.glide.annotation.GlideModule;
import com.bumptech.glide.load.DecodeFormat;
import com.bumptech.glide.load.engine.cache.InternalCacheDiskCacheFactory;
import com.bumptech.glide.load.model.StringLoader;
-import com.bumptech.glide.load.model.UriLoader;
import com.bumptech.glide.module.AppGlideModule;
import de.danoeh.antennapod.core.util.EmbeddedChapterImage;
diff --git a/core/src/main/java/de/danoeh/antennapod/core/glide/ChapterImageModelLoader.java b/core/src/main/java/de/danoeh/antennapod/core/glide/ChapterImageModelLoader.java
index 35a9d987b..519d625e2 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/glide/ChapterImageModelLoader.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/glide/ChapterImageModelLoader.java
@@ -10,17 +10,13 @@ import com.bumptech.glide.load.model.ModelLoader;
import com.bumptech.glide.load.model.ModelLoaderFactory;
import com.bumptech.glide.load.model.MultiModelLoaderFactory;
import com.bumptech.glide.signature.ObjectKey;
-import de.danoeh.antennapod.core.ClientConfig;
-import de.danoeh.antennapod.core.feed.Chapter;
import de.danoeh.antennapod.core.service.download.AntennapodHttpClient;
import de.danoeh.antennapod.core.util.EmbeddedChapterImage;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
-import java.net.URL;
import java.nio.ByteBuffer;
-import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import org.apache.commons.io.IOUtils;
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 b8bad7c0a..5a2c653d6 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
@@ -39,7 +39,6 @@ import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
-import de.danoeh.antennapod.core.ClientConfig;
import de.danoeh.antennapod.core.event.DownloadEvent;
import de.danoeh.antennapod.core.event.FeedItemEvent;
import de.danoeh.antennapod.core.feed.Feed;
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/download/HttpDownloader.java b/core/src/main/java/de/danoeh/antennapod/core/service/download/HttpDownloader.java
index 65b7ed7d1..393592cf9 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/download/HttpDownloader.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/download/HttpDownloader.java
@@ -4,7 +4,6 @@ import androidx.annotation.NonNull;
import android.text.TextUtils;
import android.util.Log;
-import de.danoeh.antennapod.core.service.BasicAuthorizationInterceptor;
import okhttp3.CacheControl;
import org.apache.commons.io.IOUtils;
@@ -21,14 +20,12 @@ import java.net.UnknownHostException;
import java.util.Collections;
import java.util.Date;
-import de.danoeh.antennapod.core.ClientConfig;
import de.danoeh.antennapod.core.R;
import de.danoeh.antennapod.core.feed.FeedMedia;
import de.danoeh.antennapod.core.util.DateUtils;
import de.danoeh.antennapod.core.util.DownloadError;
import de.danoeh.antennapod.core.util.StorageUtils;
import de.danoeh.antennapod.core.util.URIUtil;
-import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
import okhttp3.Protocol;
import okhttp3.Request;
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/download/handler/FailedDownloadHandler.java b/core/src/main/java/de/danoeh/antennapod/core/service/download/handler/FailedDownloadHandler.java
index 041d26bd4..386e5e6f7 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/download/handler/FailedDownloadHandler.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/download/handler/FailedDownloadHandler.java
@@ -3,7 +3,6 @@ package de.danoeh.antennapod.core.service.download.handler;
import android.util.Log;
import de.danoeh.antennapod.core.feed.Feed;
import de.danoeh.antennapod.core.service.download.DownloadRequest;
-import de.danoeh.antennapod.core.service.download.DownloadStatus;
import de.danoeh.antennapod.core.storage.DBWriter;
/**
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/LocalPSMP.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/LocalPSMP.java
index ae5d62872..325b04e9a 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/LocalPSMP.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/LocalPSMP.java
@@ -1,7 +1,6 @@
package de.danoeh.antennapod.core.service.playback;
import android.content.Context;
-import android.media.AudioAttributes;
import android.media.AudioManager;
import android.os.PowerManager;
import androidx.annotation.NonNull;
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 ec77ef0be..c1500d78b 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
@@ -52,7 +52,6 @@ import java.util.concurrent.TimeUnit;
import de.danoeh.antennapod.core.ClientConfig;
import de.danoeh.antennapod.core.R;
-import de.danoeh.antennapod.core.event.FeedItemEvent;
import de.danoeh.antennapod.core.event.MessageEvent;
import de.danoeh.antennapod.core.event.PlaybackPositionEvent;
import de.danoeh.antennapod.core.event.ServiceEvent;
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 4c1f23474..2bb0bc574 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
@@ -11,7 +11,6 @@ import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
-import java.util.Date;
import java.util.List;
import java.util.Map;
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 4a0583ff4..ec39e7144 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
@@ -6,7 +6,6 @@ import android.database.Cursor;
import android.os.Looper;
import android.text.TextUtils;
import android.util.Log;
-import androidx.annotation.VisibleForTesting;
import de.danoeh.antennapod.core.ClientConfig;
import de.danoeh.antennapod.core.R;
import de.danoeh.antennapod.core.event.FeedItemEvent;
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 9e6041df3..cb205cbf7 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
@@ -22,7 +22,6 @@ import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
-import de.danoeh.antennapod.core.ClientConfig;
import de.danoeh.antennapod.core.R;
import de.danoeh.antennapod.core.event.DownloadLogEvent;
import de.danoeh.antennapod.core.event.FavoritesEvent;
diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/FeedSearcher.java b/core/src/main/java/de/danoeh/antennapod/core/storage/FeedSearcher.java
index 2f48cfc07..ea62065fc 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/storage/FeedSearcher.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/storage/FeedSearcher.java
@@ -3,10 +3,8 @@ package de.danoeh.antennapod.core.storage;
import android.content.Context;
import androidx.annotation.NonNull;
import de.danoeh.antennapod.core.feed.Feed;
-import de.danoeh.antennapod.core.feed.FeedComponent;
import de.danoeh.antennapod.core.feed.FeedItem;
-import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.ExecutionException;
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 fc431d25d..4a4f94053 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
@@ -1,6 +1,5 @@
package de.danoeh.antennapod.core.storage;
-import android.annotation.SuppressLint;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/URLChecker.java b/core/src/main/java/de/danoeh/antennapod/core/util/URLChecker.java
index ac7f4848c..cb7db1709 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/util/URLChecker.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/util/URLChecker.java
@@ -9,7 +9,6 @@ import de.danoeh.antennapod.core.BuildConfig;
import okhttp3.HttpUrl;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
/**
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 fecb14d25..0467c0a78 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
@@ -1,7 +1,6 @@
package de.danoeh.antennapod.core.util.playback;
import android.content.Context;
-import android.content.SharedPreferences;
import androidx.preference.PreferenceManager;
import android.util.Log;
import android.view.SurfaceHolder;
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/playback/PlaybackServiceStarter.java b/core/src/main/java/de/danoeh/antennapod/core/util/playback/PlaybackServiceStarter.java
index b12967264..107399e60 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/util/playback/PlaybackServiceStarter.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/util/playback/PlaybackServiceStarter.java
@@ -2,7 +2,6 @@ package de.danoeh.antennapod.core.util.playback;
import android.content.Context;
import android.content.Intent;
-import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import de.danoeh.antennapod.core.preferences.PlaybackPreferences;
diff --git a/core/src/test/java/de/danoeh/antennapod/core/feed/LocalFeedUpdaterTest.java b/core/src/test/java/de/danoeh/antennapod/core/feed/LocalFeedUpdaterTest.java
index b4d3b201e..a634833c9 100644
--- a/core/src/test/java/de/danoeh/antennapod/core/feed/LocalFeedUpdaterTest.java
+++ b/core/src/test/java/de/danoeh/antennapod/core/feed/LocalFeedUpdaterTest.java
@@ -33,7 +33,6 @@ import de.danoeh.antennapod.core.storage.DBReader;
import de.danoeh.antennapod.core.storage.PodDBAdapter;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.any;
import static org.mockito.Mockito.mock;
--
cgit v1.2.3
From 63306ee95c7c4b6d0af232f7fba0e456bebc52df Mon Sep 17 00:00:00 2001
From: Herbert Reiter <46045854+damoasda@users.noreply.github.com>
Date: Mon, 14 Dec 2020 23:06:06 +0100
Subject: Remove unused import statements to reduce dependencies
---
.../java/de/test/antennapod/entities/ExternalMediaTest.java | 1 -
.../de/test/antennapod/service/download/DownloadServiceTest.java | 2 --
.../java/de/test/antennapod/storage/DBCleanupTests.java | 1 -
.../de/test/antennapod/storage/DBNullCleanupAlgorithmTest.java | 1 -
.../androidTest/java/de/test/antennapod/ui/QueueFragmentTest.java | 3 ---
.../androidTest/java/de/test/antennapod/ui/SpeedChangeTest.java | 3 ---
.../androidTest/java/de/test/antennapod/ui/UITestUtilsTest.java | 1 -
.../java/de/test/antennapod/util/FilenameGeneratorTest.java | 2 --
.../antennapod/activity/DownloadAuthenticationActivity.java | 1 -
.../java/de/danoeh/antennapod/activity/MediaplayerActivity.java | 1 -
.../de/danoeh/antennapod/activity/OnlineFeedViewActivity.java | 1 -
.../java/de/danoeh/antennapod/activity/VideoplayerActivity.java | 1 -
.../java/de/danoeh/antennapod/activity/WidgetConfigActivity.java | 1 -
.../java/de/danoeh/antennapod/adapter/DownloadLogAdapter.java | 8 --------
.../danoeh/antennapod/adapter/FeedItemlistDescriptionAdapter.java | 2 --
.../java/de/danoeh/antennapod/adapter/QueueRecyclerAdapter.java | 1 -
.../java/de/danoeh/antennapod/adapter/SubscriptionsAdapter.java | 3 ---
.../antennapod/adapter/actionbutton/PlayLocalActionButton.java | 3 ---
.../antennapod/adapter/actionbutton/VisitWebsiteActionButton.java | 2 --
.../de/danoeh/antennapod/config/PlaybackServiceCallbacksImpl.java | 1 -
.../de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java | 1 -
.../main/java/de/danoeh/antennapod/dialog/RenameFeedDialog.java | 2 --
.../main/java/de/danoeh/antennapod/dialog/SleepTimerDialog.java | 1 -
.../de/danoeh/antennapod/discovery/ItunesPodcastSearcher.java | 2 --
.../main/java/de/danoeh/antennapod/discovery/PodcastSearcher.java | 2 --
.../main/java/de/danoeh/antennapod/fragment/AddFeedFragment.java | 1 -
.../java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java | 1 -
.../de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java | 1 -
.../java/de/danoeh/antennapod/fragment/DownloadLogFragment.java | 2 --
.../de/danoeh/antennapod/fragment/ItemDescriptionFragment.java | 2 --
.../java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java | 1 -
.../de/danoeh/antennapod/fragment/RunningDownloadsFragment.java | 1 -
.../danoeh/antennapod/fragment/gpodnet/PodcastListFragment.java | 3 ---
.../fragment/preferences/GpodderPreferencesFragment.java | 3 ---
.../antennapod/fragment/preferences/MainPreferencesFragment.java | 1 -
.../antennapod/fragment/preferences/about/DevelopersFragment.java | 2 --
.../fragment/preferences/about/SpecialThanksFragment.java | 2 --
.../fragment/preferences/about/TranslatorsFragment.java | 2 --
.../java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java | 1 -
app/src/play/java/de/danoeh/antennapod/dialog/RatingDialog.java | 1 -
40 files changed, 71 deletions(-)
diff --git a/app/src/androidTest/java/de/test/antennapod/entities/ExternalMediaTest.java b/app/src/androidTest/java/de/test/antennapod/entities/ExternalMediaTest.java
index 83d7a4d22..70df82fec 100644
--- a/app/src/androidTest/java/de/test/antennapod/entities/ExternalMediaTest.java
+++ b/app/src/androidTest/java/de/test/antennapod/entities/ExternalMediaTest.java
@@ -5,7 +5,6 @@ import android.content.SharedPreferences;
import androidx.preference.PreferenceManager;
import androidx.test.platform.app.InstrumentationRegistry;
-import androidx.test.filters.LargeTest;
import androidx.test.filters.SmallTest;
import de.danoeh.antennapod.core.feed.MediaType;
import de.danoeh.antennapod.core.util.playback.ExternalMedia;
diff --git a/app/src/androidTest/java/de/test/antennapod/service/download/DownloadServiceTest.java b/app/src/androidTest/java/de/test/antennapod/service/download/DownloadServiceTest.java
index fd395f7c1..70cf4166b 100644
--- a/app/src/androidTest/java/de/test/antennapod/service/download/DownloadServiceTest.java
+++ b/app/src/androidTest/java/de/test/antennapod/service/download/DownloadServiceTest.java
@@ -17,10 +17,8 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Date;
import java.util.List;
-import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import de.danoeh.antennapod.core.feed.Feed;
diff --git a/app/src/androidTest/java/de/test/antennapod/storage/DBCleanupTests.java b/app/src/androidTest/java/de/test/antennapod/storage/DBCleanupTests.java
index 6c36da13e..339d3cea9 100644
--- a/app/src/androidTest/java/de/test/antennapod/storage/DBCleanupTests.java
+++ b/app/src/androidTest/java/de/test/antennapod/storage/DBCleanupTests.java
@@ -11,7 +11,6 @@ import java.util.Date;
import java.util.List;
import androidx.test.platform.app.InstrumentationRegistry;
-import androidx.test.filters.LargeTest;
import androidx.test.filters.SmallTest;
import de.danoeh.antennapod.core.feed.Feed;
import de.danoeh.antennapod.core.feed.FeedItem;
diff --git a/app/src/androidTest/java/de/test/antennapod/storage/DBNullCleanupAlgorithmTest.java b/app/src/androidTest/java/de/test/antennapod/storage/DBNullCleanupAlgorithmTest.java
index d7ebf2351..a3f11f842 100644
--- a/app/src/androidTest/java/de/test/antennapod/storage/DBNullCleanupAlgorithmTest.java
+++ b/app/src/androidTest/java/de/test/antennapod/storage/DBNullCleanupAlgorithmTest.java
@@ -11,7 +11,6 @@ import java.util.Date;
import java.util.List;
import androidx.test.platform.app.InstrumentationRegistry;
-import androidx.test.filters.LargeTest;
import androidx.test.filters.SmallTest;
import de.danoeh.antennapod.core.feed.Feed;
import de.danoeh.antennapod.core.feed.FeedItem;
diff --git a/app/src/androidTest/java/de/test/antennapod/ui/QueueFragmentTest.java b/app/src/androidTest/java/de/test/antennapod/ui/QueueFragmentTest.java
index 634904f71..5b291752d 100644
--- a/app/src/androidTest/java/de/test/antennapod/ui/QueueFragmentTest.java
+++ b/app/src/androidTest/java/de/test/antennapod/ui/QueueFragmentTest.java
@@ -1,15 +1,12 @@
package de.test.antennapod.ui;
import android.content.Intent;
-import android.view.View;
-import androidx.test.espresso.Espresso;
import androidx.test.espresso.intent.rule.IntentsTestRule;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.activity.MainActivity;
import de.danoeh.antennapod.fragment.QueueFragment;
import de.test.antennapod.EspressoTestUtils;
-import org.hamcrest.Matcher;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
diff --git a/app/src/androidTest/java/de/test/antennapod/ui/SpeedChangeTest.java b/app/src/androidTest/java/de/test/antennapod/ui/SpeedChangeTest.java
index 5f79e935c..904e17ebf 100644
--- a/app/src/androidTest/java/de/test/antennapod/ui/SpeedChangeTest.java
+++ b/app/src/androidTest/java/de/test/antennapod/ui/SpeedChangeTest.java
@@ -14,7 +14,6 @@ import de.danoeh.antennapod.core.preferences.UserPreferences;
import de.danoeh.antennapod.core.service.playback.PlayerStatus;
import de.danoeh.antennapod.core.storage.DBReader;
import de.danoeh.antennapod.core.util.playback.PlaybackController;
-import de.danoeh.antennapod.fragment.ExternalPlayerFragment;
import de.danoeh.antennapod.fragment.QueueFragment;
import de.test.antennapod.EspressoTestUtils;
import de.test.antennapod.IgnoreOnCi;
@@ -37,8 +36,6 @@ import static androidx.test.espresso.matcher.ViewMatchers.withId;
import static androidx.test.espresso.matcher.ViewMatchers.withText;
import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
import static de.test.antennapod.EspressoTestUtils.waitForView;
-import static de.test.antennapod.NthMatcher.first;
-import static org.hamcrest.Matchers.allOf;
/**
* User interface tests for changing the playback speed.
diff --git a/app/src/androidTest/java/de/test/antennapod/ui/UITestUtilsTest.java b/app/src/androidTest/java/de/test/antennapod/ui/UITestUtilsTest.java
index 60516454f..54592df0b 100644
--- a/app/src/androidTest/java/de/test/antennapod/ui/UITestUtilsTest.java
+++ b/app/src/androidTest/java/de/test/antennapod/ui/UITestUtilsTest.java
@@ -6,7 +6,6 @@ import java.net.URL;
import java.util.List;
import androidx.test.platform.app.InstrumentationRegistry;
-import androidx.test.filters.LargeTest;
import androidx.test.filters.MediumTest;
import de.danoeh.antennapod.core.feed.Feed;
import de.danoeh.antennapod.core.feed.FeedItem;
diff --git a/app/src/androidTest/java/de/test/antennapod/util/FilenameGeneratorTest.java b/app/src/androidTest/java/de/test/antennapod/util/FilenameGeneratorTest.java
index 93e5bcb74..f376c75a5 100644
--- a/app/src/androidTest/java/de/test/antennapod/util/FilenameGeneratorTest.java
+++ b/app/src/androidTest/java/de/test/antennapod/util/FilenameGeneratorTest.java
@@ -1,6 +1,5 @@
package de.test.antennapod.util;
-import android.content.Context;
import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.filters.SmallTest;
import android.text.TextUtils;
@@ -10,7 +9,6 @@ import java.io.IOException;
import de.danoeh.antennapod.core.util.FileNameGenerator;
import org.apache.commons.lang3.StringUtils;
-import org.junit.After;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/DownloadAuthenticationActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/DownloadAuthenticationActivity.java
index 1d3d9bf11..912038e4c 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/DownloadAuthenticationActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/DownloadAuthenticationActivity.java
@@ -5,7 +5,6 @@ import android.content.Intent;
import android.os.Bundle;
import androidx.annotation.NonNull;
-import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import android.widget.Button;
import android.widget.EditText;
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java
index b03d1e5cd..deb2fe0db 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java
@@ -31,7 +31,6 @@ import java.text.NumberFormat;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
-import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.app.ActivityOptionsCompat;
import androidx.core.content.ContextCompat;
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java
index 2fd537159..18620a56a 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java
@@ -13,7 +13,6 @@ import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
-import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.UiThread;
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/VideoplayerActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/VideoplayerActivity.java
index 9ab1755f5..1c8619e99 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/VideoplayerActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/VideoplayerActivity.java
@@ -15,7 +15,6 @@ import android.view.animation.ScaleAnimation;
import android.widget.EditText;
import android.widget.ImageView;
-import androidx.appcompat.view.menu.ActionMenuItem;
import androidx.core.view.WindowCompat;
import androidx.appcompat.app.ActionBar;
import android.text.TextUtils;
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/WidgetConfigActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/WidgetConfigActivity.java
index 474b96c38..4805dba10 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/WidgetConfigActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/WidgetConfigActivity.java
@@ -6,7 +6,6 @@ import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.widget.ImageView;
-import android.widget.RemoteViews;
import androidx.appcompat.app.AppCompatActivity;
import android.appwidget.AppWidgetManager;
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/DownloadLogAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/DownloadLogAdapter.java
index 7d195a9ad..0c4aaf6ed 100644
--- a/app/src/main/java/de/danoeh/antennapod/adapter/DownloadLogAdapter.java
+++ b/app/src/main/java/de/danoeh/antennapod/adapter/DownloadLogAdapter.java
@@ -1,23 +1,15 @@
package de.danoeh.antennapod.adapter;
import android.app.Activity;
-import android.content.Context;
-import android.os.Build;
-import android.text.Layout;
import android.text.format.DateUtils;
import android.util.Log;
-import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
-import android.widget.TextView;
import android.widget.Toast;
import androidx.core.content.ContextCompat;
-import com.joanzapata.iconify.widget.IconButton;
-import com.joanzapata.iconify.widget.IconTextView;
-
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.activity.MainActivity;
import de.danoeh.antennapod.core.dialog.DownloadRequestErrorDialogCreator;
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/FeedItemlistDescriptionAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/FeedItemlistDescriptionAdapter.java
index 6bfd34d5c..8cb0fd30a 100644
--- a/app/src/main/java/de/danoeh/antennapod/adapter/FeedItemlistDescriptionAdapter.java
+++ b/app/src/main/java/de/danoeh/antennapod/adapter/FeedItemlistDescriptionAdapter.java
@@ -13,8 +13,6 @@ import androidx.annotation.Nullable;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.core.feed.MediaType;
-import de.danoeh.antennapod.core.preferences.PlaybackPreferences;
-import de.danoeh.antennapod.core.util.IntentUtils;
import de.danoeh.antennapod.core.util.NetworkUtils;
import de.danoeh.antennapod.core.util.playback.RemoteMedia;
import de.danoeh.antennapod.core.feed.FeedItem;
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/QueueRecyclerAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/QueueRecyclerAdapter.java
index 7ce086694..01712ea29 100644
--- a/app/src/main/java/de/danoeh/antennapod/adapter/QueueRecyclerAdapter.java
+++ b/app/src/main/java/de/danoeh/antennapod/adapter/QueueRecyclerAdapter.java
@@ -6,7 +6,6 @@ import android.view.ContextMenu;
import android.view.MenuInflater;
import android.view.MotionEvent;
import android.view.View;
-import androidx.core.view.MotionEventCompat;
import androidx.recyclerview.widget.ItemTouchHelper;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.activity.MainActivity;
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/SubscriptionsAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/SubscriptionsAdapter.java
index 8c294a9c9..919a4e217 100644
--- a/app/src/main/java/de/danoeh/antennapod/adapter/SubscriptionsAdapter.java
+++ b/app/src/main/java/de/danoeh/antennapod/adapter/SubscriptionsAdapter.java
@@ -13,8 +13,6 @@ import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
-import com.bumptech.glide.Glide;
-
import java.lang.ref.WeakReference;
import java.text.NumberFormat;
import java.util.Locale;
@@ -23,7 +21,6 @@ import de.danoeh.antennapod.R;
import de.danoeh.antennapod.activity.MainActivity;
import de.danoeh.antennapod.core.feed.Feed;
import de.danoeh.antennapod.core.feed.LocalFeedUpdater;
-import de.danoeh.antennapod.fragment.AddFeedFragment;
import de.danoeh.antennapod.fragment.FeedItemlistFragment;
import jp.shts.android.library.TriangleLabelView;
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/PlayLocalActionButton.java b/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/PlayLocalActionButton.java
index 31dfe15da..78ea3b93f 100644
--- a/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/PlayLocalActionButton.java
+++ b/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/PlayLocalActionButton.java
@@ -7,11 +7,8 @@ import de.danoeh.antennapod.R;
import de.danoeh.antennapod.core.feed.FeedItem;
import de.danoeh.antennapod.core.feed.FeedMedia;
import de.danoeh.antennapod.core.feed.MediaType;
-import de.danoeh.antennapod.core.preferences.UsageStatistics;
import de.danoeh.antennapod.core.service.playback.PlaybackService;
-import de.danoeh.antennapod.core.util.NetworkUtils;
import de.danoeh.antennapod.core.util.playback.PlaybackServiceStarter;
-import de.danoeh.antennapod.dialog.StreamingConfirmationDialog;
public class PlayLocalActionButton extends ItemActionButton {
diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/VisitWebsiteActionButton.java b/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/VisitWebsiteActionButton.java
index 7b8659968..e45280eed 100644
--- a/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/VisitWebsiteActionButton.java
+++ b/app/src/main/java/de/danoeh/antennapod/adapter/actionbutton/VisitWebsiteActionButton.java
@@ -1,8 +1,6 @@
package de.danoeh.antennapod.adapter.actionbutton;
import android.content.Context;
-import android.content.Intent;
-import android.net.Uri;
import android.view.View;
import androidx.annotation.AttrRes;
import androidx.annotation.StringRes;
diff --git a/app/src/main/java/de/danoeh/antennapod/config/PlaybackServiceCallbacksImpl.java b/app/src/main/java/de/danoeh/antennapod/config/PlaybackServiceCallbacksImpl.java
index 5172c4974..f70cb26ff 100644
--- a/app/src/main/java/de/danoeh/antennapod/config/PlaybackServiceCallbacksImpl.java
+++ b/app/src/main/java/de/danoeh/antennapod/config/PlaybackServiceCallbacksImpl.java
@@ -3,7 +3,6 @@ package de.danoeh.antennapod.config;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
-import de.danoeh.antennapod.R;
import de.danoeh.antennapod.activity.MainActivity;
import de.danoeh.antennapod.activity.VideoplayerActivity;
import de.danoeh.antennapod.core.PlaybackServiceCallbacks;
diff --git a/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java b/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java
index 6021a7f31..efaff1da3 100644
--- a/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/dialog/EpisodesApplyActionFragment.java
@@ -30,7 +30,6 @@ import de.danoeh.antennapod.core.util.LongList;
import de.danoeh.antennapod.core.util.SortOrder;
import de.danoeh.antennapod.core.util.ThemeUtils;
-import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
diff --git a/app/src/main/java/de/danoeh/antennapod/dialog/RenameFeedDialog.java b/app/src/main/java/de/danoeh/antennapod/dialog/RenameFeedDialog.java
index c875d13ce..a4e49ff96 100644
--- a/app/src/main/java/de/danoeh/antennapod/dialog/RenameFeedDialog.java
+++ b/app/src/main/java/de/danoeh/antennapod/dialog/RenameFeedDialog.java
@@ -1,12 +1,10 @@
package de.danoeh.antennapod.dialog;
import android.app.Activity;
-import android.text.InputType;
import java.lang.ref.WeakReference;
import android.view.View;
-import android.widget.EditText;
import androidx.appcompat.app.AlertDialog;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.core.feed.Feed;
diff --git a/app/src/main/java/de/danoeh/antennapod/dialog/SleepTimerDialog.java b/app/src/main/java/de/danoeh/antennapod/dialog/SleepTimerDialog.java
index 274c3b7bd..7788641cc 100644
--- a/app/src/main/java/de/danoeh/antennapod/dialog/SleepTimerDialog.java
+++ b/app/src/main/java/de/danoeh/antennapod/dialog/SleepTimerDialog.java
@@ -3,7 +3,6 @@ package de.danoeh.antennapod.dialog;
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
-import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
diff --git a/app/src/main/java/de/danoeh/antennapod/discovery/ItunesPodcastSearcher.java b/app/src/main/java/de/danoeh/antennapod/discovery/ItunesPodcastSearcher.java
index 796ec556f..6e894176f 100644
--- a/app/src/main/java/de/danoeh/antennapod/discovery/ItunesPodcastSearcher.java
+++ b/app/src/main/java/de/danoeh/antennapod/discovery/ItunesPodcastSearcher.java
@@ -1,7 +1,5 @@
package de.danoeh.antennapod.discovery;
-import android.content.Context;
-import de.danoeh.antennapod.R;
import de.danoeh.antennapod.core.service.download.AntennapodHttpClient;
import io.reactivex.Single;
import io.reactivex.SingleOnSubscribe;
diff --git a/app/src/main/java/de/danoeh/antennapod/discovery/PodcastSearcher.java b/app/src/main/java/de/danoeh/antennapod/discovery/PodcastSearcher.java
index eeebd2ebf..8fbc8c76b 100644
--- a/app/src/main/java/de/danoeh/antennapod/discovery/PodcastSearcher.java
+++ b/app/src/main/java/de/danoeh/antennapod/discovery/PodcastSearcher.java
@@ -1,8 +1,6 @@
package de.danoeh.antennapod.discovery;
import io.reactivex.Single;
-import io.reactivex.disposables.Disposable;
-import io.reactivex.functions.Consumer;
import java.util.List;
public interface PodcastSearcher {
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/AddFeedFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/AddFeedFragment.java
index 29b197042..a546eb829 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/AddFeedFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/AddFeedFragment.java
@@ -12,7 +12,6 @@ import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import android.widget.EditText;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java
index ae3ba3a54..4423a2ebe 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/AllEpisodesFragment.java
@@ -4,7 +4,6 @@ import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.Menu;
-import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import androidx.annotation.NonNull;
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java
index 59b2cd234..3519a34b4 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/CompletedDownloadsFragment.java
@@ -4,7 +4,6 @@ import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
-import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/DownloadLogFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/DownloadLogFragment.java
index c2c45c581..2e11ea4ec 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/DownloadLogFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/DownloadLogFragment.java
@@ -4,7 +4,6 @@ import android.app.Dialog;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
-import android.content.res.TypedArray;
import android.os.Bundle;
import androidx.annotation.NonNull;
@@ -13,7 +12,6 @@ import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.ListFragment;
import android.util.Log;
import android.view.Menu;
-import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.ListView;
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ItemDescriptionFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ItemDescriptionFragment.java
index fc3052e20..18a61f1e6 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/ItemDescriptionFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/ItemDescriptionFragment.java
@@ -8,10 +8,8 @@ import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
-import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import de.danoeh.antennapod.R;
-import de.danoeh.antennapod.core.util.playback.Playable;
import de.danoeh.antennapod.core.util.playback.PlaybackController;
import de.danoeh.antennapod.core.util.playback.Timeline;
import de.danoeh.antennapod.view.ShownotesWebView;
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java
index d748d14c9..1aa66dcbb 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/NewEpisodesFragment.java
@@ -1,7 +1,6 @@
package de.danoeh.antennapod.fragment;
import android.os.Bundle;
-import android.view.MenuInflater;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.ItemTouchHelper;
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/RunningDownloadsFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/RunningDownloadsFragment.java
index 087abc327..fc500a223 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/RunningDownloadsFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/RunningDownloadsFragment.java
@@ -6,7 +6,6 @@ import androidx.annotation.NonNull;
import androidx.fragment.app.ListFragment;
import android.util.Log;
import android.view.Menu;
-import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.ListView;
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/PodcastListFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/PodcastListFragment.java
index e272b2869..1f5434688 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/PodcastListFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/gpodnet/PodcastListFragment.java
@@ -4,12 +4,9 @@ import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
-import androidx.appcompat.widget.Toolbar;
import androidx.fragment.app.Fragment;
-import androidx.appcompat.widget.SearchView;
import android.util.Log;
import android.view.LayoutInflater;
-import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/GpodderPreferencesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/GpodderPreferencesFragment.java
index bec73894c..eb23a5eb1 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/GpodderPreferencesFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/GpodderPreferencesFragment.java
@@ -1,15 +1,12 @@
package de.danoeh.antennapod.fragment.preferences;
import android.app.Activity;
-import android.content.SharedPreferences;
import android.os.Bundle;
import androidx.core.text.HtmlCompat;
-import androidx.preference.Preference;
import androidx.preference.PreferenceFragmentCompat;
import android.text.Spanned;
import android.text.format.DateUtils;
-import android.widget.Toast;
import com.google.android.material.snackbar.Snackbar;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.activity.PreferenceActivity;
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/MainPreferencesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/MainPreferencesFragment.java
index 4694f3d65..7bf602e35 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/MainPreferencesFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/MainPreferencesFragment.java
@@ -13,7 +13,6 @@ import de.danoeh.antennapod.R;
import de.danoeh.antennapod.activity.BugReportActivity;
import de.danoeh.antennapod.activity.PreferenceActivity;
import de.danoeh.antennapod.core.util.IntentUtils;
-import de.danoeh.antennapod.core.util.gui.NotificationUtils;
import de.danoeh.antennapod.fragment.preferences.about.AboutFragment;
public class MainPreferencesFragment extends PreferenceFragmentCompat {
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/about/DevelopersFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/about/DevelopersFragment.java
index 60d9f95dd..b844234b7 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/about/DevelopersFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/about/DevelopersFragment.java
@@ -6,8 +6,6 @@ import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.ListFragment;
-import de.danoeh.antennapod.R;
-import de.danoeh.antennapod.activity.PreferenceActivity;
import de.danoeh.antennapod.adapter.SimpleIconListAdapter;
import io.reactivex.Single;
import io.reactivex.SingleOnSubscribe;
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/about/SpecialThanksFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/about/SpecialThanksFragment.java
index 6db1389ea..d759a5ff2 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/about/SpecialThanksFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/about/SpecialThanksFragment.java
@@ -6,8 +6,6 @@ import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.ListFragment;
-import de.danoeh.antennapod.R;
-import de.danoeh.antennapod.activity.PreferenceActivity;
import de.danoeh.antennapod.adapter.SimpleIconListAdapter;
import io.reactivex.Single;
import io.reactivex.SingleOnSubscribe;
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/about/TranslatorsFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/about/TranslatorsFragment.java
index e8d8e113b..b77c74de6 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/about/TranslatorsFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/about/TranslatorsFragment.java
@@ -6,8 +6,6 @@ import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.ListFragment;
-import de.danoeh.antennapod.R;
-import de.danoeh.antennapod.activity.PreferenceActivity;
import de.danoeh.antennapod.adapter.SimpleIconListAdapter;
import io.reactivex.Single;
import io.reactivex.SingleOnSubscribe;
diff --git a/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java b/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java
index 9ceed9369..0086a75ab 100644
--- a/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java
+++ b/app/src/main/java/de/danoeh/antennapod/menuhandler/FeedMenuHandler.java
@@ -4,7 +4,6 @@ import android.content.Context;
import android.content.DialogInterface;
import android.util.Log;
import android.view.Menu;
-import android.view.MenuInflater;
import android.view.MenuItem;
import androidx.annotation.NonNull;
diff --git a/app/src/play/java/de/danoeh/antennapod/dialog/RatingDialog.java b/app/src/play/java/de/danoeh/antennapod/dialog/RatingDialog.java
index cfadf0772..66072e2fa 100644
--- a/app/src/play/java/de/danoeh/antennapod/dialog/RatingDialog.java
+++ b/app/src/play/java/de/danoeh/antennapod/dialog/RatingDialog.java
@@ -7,7 +7,6 @@ import android.content.SharedPreferences;
import androidx.annotation.VisibleForTesting;
import android.util.Log;
-import android.widget.Toast;
import java.lang.ref.WeakReference;
import java.util.concurrent.TimeUnit;
--
cgit v1.2.3
From 3e56e1bd64b781556cf3042419e9b754ef62c471 Mon Sep 17 00:00:00 2001
From: Herbert Reiter <46045854+damoasda@users.noreply.github.com>
Date: Mon, 14 Dec 2020 23:07:44 +0100
Subject: Add Checkstyle rule to check for unused imports
---
config/checkstyle/checkstyle-new-code.xml | 1 +
config/checkstyle/checkstyle.xml | 1 +
2 files changed, 2 insertions(+)
diff --git a/config/checkstyle/checkstyle-new-code.xml b/config/checkstyle/checkstyle-new-code.xml
index cb2129a60..3bb35f2cc 100644
--- a/config/checkstyle/checkstyle-new-code.xml
+++ b/config/checkstyle/checkstyle-new-code.xml
@@ -34,6 +34,7 @@
+
diff --git a/config/checkstyle/checkstyle.xml b/config/checkstyle/checkstyle.xml
index d36c1585a..e23962381 100644
--- a/config/checkstyle/checkstyle.xml
+++ b/config/checkstyle/checkstyle.xml
@@ -26,6 +26,7 @@
+
--
cgit v1.2.3
From 6ef80bd69eb19a4193b60ee40c729107ce6c8e73 Mon Sep 17 00:00:00 2001
From: ByteHamster
Date: Tue, 15 Dec 2020 16:51:45 +0100
Subject: Added number to parallel downloads string
---
.../antennapod/fragment/preferences/NetworkPreferencesFragment.java | 3 +--
core/src/main/res/values/strings.xml | 2 +-
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/NetworkPreferencesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/NetworkPreferencesFragment.java
index fcc37f644..e854af934 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/NetworkPreferencesFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/NetworkPreferencesFragment.java
@@ -97,8 +97,7 @@ public class NetworkPreferencesFragment extends PreferenceFragmentCompat {
private void setParallelDownloadsText(int downloads) {
final Resources res = getActivity().getResources();
- String s = String.format(Locale.getDefault(), "%d%s",
- downloads, res.getString(R.string.parallel_downloads_suffix));
+ String s = res.getString(R.string.parallel_downloads, downloads);
findPreference(UserPreferences.PREF_PARALLEL_DOWNLOADS).setSummary(s);
}
diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml
index 4e7cfdfe5..b73e48bc4 100644
--- a/core/src/main/res/values/strings.xml
+++ b/core/src/main/res/values/strings.xml
@@ -105,7 +105,7 @@
OffLightHeavy
- \u0020parallel downloads
+ %1$d parallel downloadsGlobal defaultAlwaysNever
--
cgit v1.2.3
From 14f60328fdba1f54839d873639b24a0284c948c6 Mon Sep 17 00:00:00 2001
From: ByteHamster
Date: Tue, 15 Dec 2020 23:25:26 +0100
Subject: Removed unused import
---
.../antennapod/fragment/preferences/NetworkPreferencesFragment.java | 1 -
1 file changed, 1 deletion(-)
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/NetworkPreferencesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/NetworkPreferencesFragment.java
index e854af934..77f8063f2 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/NetworkPreferencesFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/NetworkPreferencesFragment.java
@@ -15,7 +15,6 @@ import org.apache.commons.lang3.ArrayUtils;
import java.util.Calendar;
import java.util.GregorianCalendar;
-import java.util.Locale;
import java.util.concurrent.TimeUnit;
public class NetworkPreferencesFragment extends PreferenceFragmentCompat {
--
cgit v1.2.3
From c10d1a1d79eec326569dbcc8cb7e863b739a9284 Mon Sep 17 00:00:00 2001
From: Herbert Reiter <46045854+damoasda@users.noreply.github.com>
Date: Wed, 16 Dec 2020 21:06:50 +0100
Subject: Refactoring: Remove class LangUtils (#4763)
---
.../asynctask/DocumentFileExportWorker.java | 4 +-
.../danoeh/antennapod/asynctask/ExportWorker.java | 4 +-
.../antennapod/core/backup/OpmlBackupAgent.java | 10 +-
.../de/danoeh/antennapod/core/util/LangUtils.java | 124 ---------------------
4 files changed, 9 insertions(+), 133 deletions(-)
delete mode 100644 core/src/main/java/de/danoeh/antennapod/core/util/LangUtils.java
diff --git a/app/src/main/java/de/danoeh/antennapod/asynctask/DocumentFileExportWorker.java b/app/src/main/java/de/danoeh/antennapod/asynctask/DocumentFileExportWorker.java
index 3ac05e842..906d50c61 100644
--- a/app/src/main/java/de/danoeh/antennapod/asynctask/DocumentFileExportWorker.java
+++ b/app/src/main/java/de/danoeh/antennapod/asynctask/DocumentFileExportWorker.java
@@ -9,10 +9,10 @@ import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
+import java.nio.charset.Charset;
import de.danoeh.antennapod.core.export.ExportWriter;
import de.danoeh.antennapod.core.storage.DBReader;
-import de.danoeh.antennapod.core.util.LangUtils;
import io.reactivex.Observable;
/**
@@ -44,7 +44,7 @@ public class DocumentFileExportWorker {
if (outputStream == null) {
throw new IOException();
}
- writer = new OutputStreamWriter(outputStream, LangUtils.UTF_8);
+ writer = new OutputStreamWriter(outputStream, Charset.forName("UTF-8"));
exportWriter.writeDocument(DBReader.getFeedList(), writer, context);
subscriber.onNext(output);
} catch (IOException e) {
diff --git a/app/src/main/java/de/danoeh/antennapod/asynctask/ExportWorker.java b/app/src/main/java/de/danoeh/antennapod/asynctask/ExportWorker.java
index f81a52402..0930b59eb 100644
--- a/app/src/main/java/de/danoeh/antennapod/asynctask/ExportWorker.java
+++ b/app/src/main/java/de/danoeh/antennapod/asynctask/ExportWorker.java
@@ -8,11 +8,11 @@ import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
+import java.nio.charset.Charset;
import de.danoeh.antennapod.core.export.ExportWriter;
import de.danoeh.antennapod.core.preferences.UserPreferences;
import de.danoeh.antennapod.core.storage.DBReader;
-import de.danoeh.antennapod.core.util.LangUtils;
import io.reactivex.Observable;
/**
@@ -47,7 +47,7 @@ public class ExportWorker {
return Observable.create(subscriber -> {
OutputStreamWriter writer = null;
try {
- writer = new OutputStreamWriter(new FileOutputStream(output), LangUtils.UTF_8);
+ writer = new OutputStreamWriter(new FileOutputStream(output), Charset.forName("UTF-8"));
exportWriter.writeDocument(DBReader.getFeedList(), writer, context);
subscriber.onNext(output);
} catch (IOException e) {
diff --git a/core/src/main/java/de/danoeh/antennapod/core/backup/OpmlBackupAgent.java b/core/src/main/java/de/danoeh/antennapod/core/backup/OpmlBackupAgent.java
index 4c11d0489..c05e2e9f1 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/backup/OpmlBackupAgent.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/backup/OpmlBackupAgent.java
@@ -20,6 +20,7 @@ import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;
import java.math.BigInteger;
+import java.nio.charset.Charset;
import java.security.DigestInputStream;
import java.security.DigestOutputStream;
import java.security.MessageDigest;
@@ -34,7 +35,6 @@ import de.danoeh.antennapod.core.feed.Feed;
import de.danoeh.antennapod.core.storage.DBReader;
import de.danoeh.antennapod.core.storage.DownloadRequestException;
import de.danoeh.antennapod.core.storage.DownloadRequester;
-import de.danoeh.antennapod.core.util.LangUtils;
public class OpmlBackupAgent extends BackupAgentHelper {
private static final String OPML_BACKUP_KEY = "opml";
@@ -73,9 +73,9 @@ public class OpmlBackupAgent extends BackupAgentHelper {
try {
digester = MessageDigest.getInstance("MD5");
writer = new OutputStreamWriter(new DigestOutputStream(byteStream, digester),
- LangUtils.UTF_8);
+ Charset.forName("UTF-8"));
} catch (NoSuchAlgorithmException e) {
- writer = new OutputStreamWriter(byteStream, LangUtils.UTF_8);
+ writer = new OutputStreamWriter(byteStream, Charset.forName("UTF-8"));
}
try {
@@ -138,9 +138,9 @@ public class OpmlBackupAgent extends BackupAgentHelper {
try {
digester = MessageDigest.getInstance("MD5");
reader = new InputStreamReader(new DigestInputStream(data, digester),
- LangUtils.UTF_8);
+ Charset.forName("UTF-8"));
} catch (NoSuchAlgorithmException e) {
- reader = new InputStreamReader(data, LangUtils.UTF_8);
+ reader = new InputStreamReader(data, Charset.forName("UTF-8"));
}
try {
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/LangUtils.java b/core/src/main/java/de/danoeh/antennapod/core/util/LangUtils.java
deleted file mode 100644
index 20af6415e..000000000
--- a/core/src/main/java/de/danoeh/antennapod/core/util/LangUtils.java
+++ /dev/null
@@ -1,124 +0,0 @@
-package de.danoeh.antennapod.core.util;
-
-import androidx.collection.ArrayMap;
-
-import java.nio.charset.Charset;
-
-public class LangUtils {
-
- private LangUtils(){}
-
- public static final Charset UTF_8 = Charset.forName("UTF-8");
-
- private static final ArrayMap languages;
- static {
- languages = new ArrayMap<>();
- languages.put("af", "Afrikaans");
- languages.put("sq", "Albanian");
- languages.put("sq", "Albanian");
- languages.put("eu", "Basque");
- languages.put("be", "Belarusian");
- languages.put("bg", "Bulgarian");
- languages.put("ca", "Catalan");
- languages.put("Chinese (Simplified)", "zh-cn");
- languages.put("Chinese (Traditional)", "zh-tw");
- languages.put("hr", "Croatian");
- languages.put("cs", "Czech");
- languages.put("da", "Danish");
- languages.put("nl", "Dutch");
- languages.put("nl-be", "Dutch (Belgium)");
- languages.put("nl-nl", "Dutch (Netherlands)");
- languages.put("en", "English");
- languages.put("en-au", "English (Australia)");
- languages.put("en-bz", "English (Belize)");
- languages.put("en-ca", "English (Canada)");
- languages.put("en-ie", "English (Ireland)");
- languages.put("en-jm", "English (Jamaica)");
- languages.put("en-nz", "English (New Zealand)");
- languages.put("en-ph", "English (Phillipines)");
- languages.put("en-za", "English (South Africa)");
- languages.put("en-tt", "English (Trinidad)");
- languages.put("en-gb", "English (United Kingdom)");
- languages.put("en-us", "English (United States)");
- languages.put("en-zw", "English (Zimbabwe)");
- languages.put("et", "Estonian");
- languages.put("fo", "Faeroese");
- languages.put("fi", "Finnish");
- languages.put("fr", "French");
- languages.put("fr-be", "French (Belgium)");
- languages.put("fr-ca", "French (Canada)");
- languages.put("fr-fr", "French (France)");
- languages.put("fr-lu", "French (Luxembourg)");
- languages.put("fr-mc", "French (Monaco)");
- languages.put("fr-ch", "French (Switzerland)");
- languages.put("gl", "Galician");
- languages.put("gd", "Gaelic");
- languages.put("de", "German");
- languages.put("de-at", "German (Austria)");
- languages.put("de-de", "German (Germany)");
- languages.put("de-li", "German (Liechtenstein)");
- languages.put("de-lu", "German (Luxembourg)");
- languages.put("de-ch", "German (Switzerland)");
- languages.put("el", "Greek");
- languages.put("haw", "Hawaiian");
- languages.put("hu", "Hungarian");
- languages.put("is", "Icelandic");
- languages.put("in", "Indonesian");
- languages.put("ga", "Irish");
- languages.put("it", "Italian");
- languages.put("it-it", "Italian (Italy)");
- languages.put("it-ch", "Italian (Switzerland)");
- languages.put("ja", "Japanese");
- languages.put("ko", "Korean");
- languages.put("mk", "Macedonian");
- languages.put("no", "Norwegian");
- languages.put("pl", "Polish");
- languages.put("pt", "Portugese");
- languages.put("pt-br", "Portugese (Brazil)");
- languages.put("pt-pt", "Portugese (Portugal");
- languages.put("ro", "Romanian");
- languages.put("ro-mo", "Romanian (Moldova)");
- languages.put("ro-ro", "Romanian (Romania");
- languages.put("ru", "Russian");
- languages.put("ru-mo", "Russian (Moldova)");
- languages.put("ru-ru", "Russian (Russia)");
- languages.put("sr", "Serbian");
- languages.put("sk", "Slovak");
- languages.put("sl", "Slovenian");
- languages.put("es", "Spanish");
- languages.put("es-ar", "Spanish (Argentinia)");
- languages.put("es=bo", "Spanish (Bolivia)");
- languages.put("es-cl", "Spanish (Chile)");
- languages.put("es-co", "Spanish (Colombia)");
- languages.put("es-cr", "Spanish (Costa Rica)");
- languages.put("es-do", "Spanish (Dominican Republic)");
- languages.put("es-ec", "Spanish (Ecuador)");
- languages.put("es-sv", "Spanish (El Salvador)");
- languages.put("es-gt", "Spanish (Guatemala)");
- languages.put("es-hn", "Spanish (Honduras)");
- languages.put("es-mx", "Spanish (Mexico)");
- languages.put("es-ni", "Spanish (Nicaragua)");
- languages.put("es-pa", "Spanish (Panama)");
- languages.put("es-py", "Spanish (Paraguay)");
- languages.put("es-pe", "Spanish (Peru)");
- languages.put("es-pr", "Spanish (Puerto Rico)");
- languages.put("es-es", "Spanish (Spain)");
- languages.put("es-uy", "Spanish (Uruguay)");
- languages.put("es-ve", "Spanish (Venezuela)");
- languages.put("sv", "Swedish");
- languages.put("sv-fi", "Swedish (Finland)");
- languages.put("sv-se", "Swedish (Sweden)");
- languages.put("tr", "Turkish");
- languages.put("uk", "Ukranian");
- }
-
- /** Finds language string for key or returns the language key if it can't be found. */
- public static String getLanguageString(String key) {
- String language = languages.get(key);
- if (language != null) {
- return language;
- } else {
- return key;
- }
- }
-}
--
cgit v1.2.3
From f6c39ad0fea242e7d53c12d0b09d6c8ab7944968 Mon Sep 17 00:00:00 2001
From: Herbert Reiter <46045854+damoasda@users.noreply.github.com>
Date: Sat, 19 Dec 2020 15:29:54 +0100
Subject: Run DownloadRequestTest with Robolectric
---
.../core/service/download/DownloadRequestTest.java | 122 ---------------------
.../core/service/download/DownloadRequestTest.java | 122 +++++++++++++++++++++
2 files changed, 122 insertions(+), 122 deletions(-)
delete mode 100644 core/src/androidTest/java/de/danoeh/antennapod/core/service/download/DownloadRequestTest.java
create mode 100644 core/src/test/java/de/danoeh/antennapod/core/service/download/DownloadRequestTest.java
diff --git a/core/src/androidTest/java/de/danoeh/antennapod/core/service/download/DownloadRequestTest.java b/core/src/androidTest/java/de/danoeh/antennapod/core/service/download/DownloadRequestTest.java
deleted file mode 100644
index fc7e26820..000000000
--- a/core/src/androidTest/java/de/danoeh/antennapod/core/service/download/DownloadRequestTest.java
+++ /dev/null
@@ -1,122 +0,0 @@
-package de.danoeh.antennapod.core.service.download;
-
-import android.os.Bundle;
-import android.os.Parcel;
-
-import androidx.test.filters.SmallTest;
-
-import org.junit.Test;
-
-import java.util.ArrayList;
-
-import de.danoeh.antennapod.core.feed.FeedFile;
-
-import static org.junit.Assert.assertEquals;
-
-@SmallTest
-public class DownloadRequestTest {
-
- @Test
- public void parcelInArrayListTest_WithAuth() {
- doTestParcelInArrayList("case has authentication",
- "usr1", "pass1", "usr2", "pass2");
- }
-
- @Test
- public void parcelInArrayListTest_NoAuth() {
- doTestParcelInArrayList("case no authentication",
- null, null, null, null);
- }
-
- @Test
- public void parcelInArrayListTest_MixAuth() {
- doTestParcelInArrayList("case mixed authentication",
- null, null, "usr2", "pass2");
- }
-
- // Test to ensure parcel using put/getParcelableArrayList() API work
- // based on: https://stackoverflow.com/a/13507191
- private void doTestParcelInArrayList(String message,
- String username1, String password1,
- String username2, String password2) {
- ArrayList toParcel;
- { // test DownloadRequests to parcel
- String destStr = "file://location/media.mp3";
- FeedFile item1 = createFeedItem(1);
- Bundle arg1 = new Bundle();
- arg1.putString("arg1", "value1");
- DownloadRequest request1 = new DownloadRequest.Builder(destStr, item1, false)
- .withAuthentication(username1, password1)
- .withArguments(arg1)
- .build();
-
- FeedFile item2 = createFeedItem(2);
- DownloadRequest request2 = new DownloadRequest.Builder(destStr, item2, true)
- .withAuthentication(username2, password2)
- .build();
-
- toParcel = new ArrayList<>();
- toParcel.add(request1);
- toParcel.add(request2);
- }
-
- // parcel the download requests
- Bundle bundleIn = new Bundle();
- bundleIn.putParcelableArrayList("r", toParcel);
-
- Parcel parcel = Parcel.obtain();
- bundleIn.writeToParcel(parcel, 0);
-
- Bundle bundleOut = new Bundle();
- bundleOut.setClassLoader(DownloadRequest.class.getClassLoader());
- parcel.setDataPosition(0); // to read the parcel from the beginning.
- bundleOut.readFromParcel(parcel);
-
- ArrayList fromParcel = bundleOut.getParcelableArrayList("r");
-
- // spot-check contents to ensure they are the same
- // DownloadRequest.equals() implementation doesn't quite work
- // for DownloadRequest.argument (a Bundle)
- assertEquals(message + " - size", toParcel.size(), fromParcel.size());
- assertEquals(message + " - source", toParcel.get(1).getSource(), fromParcel.get(1).getSource());
- assertEquals(message + " - password", toParcel.get(0).getPassword(), fromParcel.get(0).getPassword());
- assertEquals(message + " - argument", toString(toParcel.get(0).getArguments()),
- toString(fromParcel.get(0).getArguments()));
- }
-
- private static String toString(Bundle b) {
- StringBuilder sb = new StringBuilder();
- sb.append("{");
- for (String key: b.keySet()) {
- Object val = b.get(key);
- sb.append("(").append(key).append(":").append(val).append(") ");
- }
- sb.append("}");
- return sb.toString();
- }
-
- private FeedFile createFeedItem(final int id) {
- // Use mockito would be less verbose, but it'll take extra 1 second for this tiny test
- return new FeedFile() {
- @Override
- public long getId() {
- return id;
- }
-
- @Override
- public String getDownload_url() {
- return "http://example.com/episode" + id;
- }
-
- @Override
- public int getTypeAsInt() {
- return 0;
- }
-
- @Override
- public String getHumanReadableIdentifier() {
- return "human-id-" + id;
- }
- };
- }
-}
diff --git a/core/src/test/java/de/danoeh/antennapod/core/service/download/DownloadRequestTest.java b/core/src/test/java/de/danoeh/antennapod/core/service/download/DownloadRequestTest.java
new file mode 100644
index 000000000..8c7ecbc52
--- /dev/null
+++ b/core/src/test/java/de/danoeh/antennapod/core/service/download/DownloadRequestTest.java
@@ -0,0 +1,122 @@
+package de.danoeh.antennapod.core.service.download;
+
+import android.os.Bundle;
+import android.os.Parcel;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+
+import java.util.ArrayList;
+
+import de.danoeh.antennapod.core.feed.FeedFile;
+
+import static org.junit.Assert.assertEquals;
+
+@RunWith(RobolectricTestRunner.class)
+public class DownloadRequestTest {
+
+ @Test
+ public void parcelInArrayListTest_WithAuth() {
+ doTestParcelInArrayList("case has authentication",
+ "usr1", "pass1", "usr2", "pass2");
+ }
+
+ @Test
+ public void parcelInArrayListTest_NoAuth() {
+ doTestParcelInArrayList("case no authentication",
+ null, null, null, null);
+ }
+
+ @Test
+ public void parcelInArrayListTest_MixAuth() {
+ doTestParcelInArrayList("case mixed authentication",
+ null, null, "usr2", "pass2");
+ }
+
+ // Test to ensure parcel using put/getParcelableArrayList() API work
+ // based on: https://stackoverflow.com/a/13507191
+ private void doTestParcelInArrayList(String message,
+ String username1, String password1,
+ String username2, String password2) {
+ ArrayList toParcel;
+ { // test DownloadRequests to parcel
+ String destStr = "file://location/media.mp3";
+ FeedFile item1 = createFeedItem(1);
+ Bundle arg1 = new Bundle();
+ arg1.putString("arg1", "value1");
+ DownloadRequest request1 = new DownloadRequest.Builder(destStr, item1, false)
+ .withAuthentication(username1, password1)
+ .withArguments(arg1)
+ .build();
+
+ FeedFile item2 = createFeedItem(2);
+ DownloadRequest request2 = new DownloadRequest.Builder(destStr, item2, true)
+ .withAuthentication(username2, password2)
+ .build();
+
+ toParcel = new ArrayList<>();
+ toParcel.add(request1);
+ toParcel.add(request2);
+ }
+
+ // parcel the download requests
+ Bundle bundleIn = new Bundle();
+ bundleIn.putParcelableArrayList("r", toParcel);
+
+ Parcel parcel = Parcel.obtain();
+ bundleIn.writeToParcel(parcel, 0);
+
+ Bundle bundleOut = new Bundle();
+ bundleOut.setClassLoader(DownloadRequest.class.getClassLoader());
+ parcel.setDataPosition(0); // to read the parcel from the beginning.
+ bundleOut.readFromParcel(parcel);
+
+ ArrayList fromParcel = bundleOut.getParcelableArrayList("r");
+
+ // spot-check contents to ensure they are the same
+ // DownloadRequest.equals() implementation doesn't quite work
+ // for DownloadRequest.argument (a Bundle)
+ assertEquals(message + " - size", toParcel.size(), fromParcel.size());
+ assertEquals(message + " - source", toParcel.get(1).getSource(), fromParcel.get(1).getSource());
+ assertEquals(message + " - password", toParcel.get(0).getPassword(), fromParcel.get(0).getPassword());
+ assertEquals(message + " - argument", toString(toParcel.get(0).getArguments()),
+ toString(fromParcel.get(0).getArguments()));
+ }
+
+ private static String toString(Bundle b) {
+ StringBuilder sb = new StringBuilder();
+ sb.append("{");
+ for (String key: b.keySet()) {
+ Object val = b.get(key);
+ sb.append("(").append(key).append(":").append(val).append(") ");
+ }
+ sb.append("}");
+ return sb.toString();
+ }
+
+ private FeedFile createFeedItem(final int id) {
+ // Use mockito would be less verbose, but it'll take extra 1 second for this tiny test
+ return new FeedFile() {
+ @Override
+ public long getId() {
+ return id;
+ }
+
+ @Override
+ public String getDownload_url() {
+ return "http://example.com/episode" + id;
+ }
+
+ @Override
+ public int getTypeAsInt() {
+ return 0;
+ }
+
+ @Override
+ public String getHumanReadableIdentifier() {
+ return "human-id-" + id;
+ }
+ };
+ }
+}
--
cgit v1.2.3
From 72f4296150e565061a0816c7685fae9daaf30e2c Mon Sep 17 00:00:00 2001
From: Herbert Reiter <46045854+damoasda@users.noreply.github.com>
Date: Sun, 20 Dec 2020 16:06:14 +0100
Subject: Run AtomTextTest with Robolectric (#4771)
---
.../syndication/namespace/atom/AtomTextTest.java | 49 ----------------------
.../syndication/namespace/atom/AtomTextTest.java | 35 ++++++++++++++++
2 files changed, 35 insertions(+), 49 deletions(-)
delete mode 100644 core/src/androidTest/java/de/danoeh/antennapod/core/syndication/namespace/atom/AtomTextTest.java
create mode 100644 core/src/test/java/de/danoeh/antennapod/core/syndication/namespace/atom/AtomTextTest.java
diff --git a/core/src/androidTest/java/de/danoeh/antennapod/core/syndication/namespace/atom/AtomTextTest.java b/core/src/androidTest/java/de/danoeh/antennapod/core/syndication/namespace/atom/AtomTextTest.java
deleted file mode 100644
index 1ab194133..000000000
--- a/core/src/androidTest/java/de/danoeh/antennapod/core/syndication/namespace/atom/AtomTextTest.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package de.danoeh.antennapod.core.syndication.namespace.atom;
-
-import androidx.test.filters.SmallTest;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import java.util.Arrays;
-import java.util.Collection;
-
-import static org.junit.runners.Parameterized.Parameter;
-import static org.junit.runners.Parameterized.Parameters;
-import static org.junit.Assert.assertEquals;
-
-/**
- * Unit test for {@link AtomText}.
- */
-@SmallTest
-@RunWith(Parameterized.class)
-public class AtomTextTest {
-
- @Parameter(value = 0)
- public String input;
-
- @Parameter(value = 1)
- public String expectedOutput;
-
- @Parameters
- public static Collection