diff --git a/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadService.java b/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadService.java index 0a6bc062f1..7593d8083c 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadService.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadService.java @@ -16,19 +16,14 @@ package com.google.android.exoplayer2.offline; import android.app.Notification; -import android.app.Notification.Builder; -import android.app.NotificationChannel; -import android.app.NotificationManager; import android.app.Service; import android.content.Context; import android.content.Intent; import android.os.Handler; import android.os.IBinder; import android.os.Looper; -import android.support.annotation.CallSuper; import android.support.annotation.Nullable; import android.util.Log; -import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.offline.DownloadManager.DownloadState; import com.google.android.exoplayer2.scheduler.Requirements; import com.google.android.exoplayer2.scheduler.RequirementsWatcher; @@ -42,7 +37,7 @@ import java.io.IOException; *

To start the service, create an instance of one of the subclasses of {@link DownloadAction} * and call {@link #addDownloadAction(Context, Class, DownloadAction)} with it. */ -public abstract class DownloadService extends Service implements DownloadManager.DownloadListener { +public abstract class DownloadService extends Service { /** Use this action to initialize {@link DownloadManager}. */ public static final String ACTION_INIT = @@ -62,8 +57,8 @@ public abstract class DownloadService extends Service implements DownloadManager /** A {@link DownloadAction} to be executed. */ public static final String DOWNLOAD_ACTION = "DownloadAction"; - /** Default progress update interval in milliseconds. */ - public static final long DEFAULT_PROGRESS_UPDATE_INTERVAL_MILLIS = 1000; + /** Default foreground notification update interval in milliseconds. */ + public static final long DEFAULT_FOREGROUND_NOTIFICATION_UPDATE_INTERVAL = 1000; private static final String TAG = "DownloadService"; private static final boolean DEBUG = false; @@ -73,27 +68,35 @@ public abstract class DownloadService extends Service implements DownloadManager private static RequirementsWatcher requirementsWatcher; private static Scheduler scheduler; - private final int notificationIdOffset; - private final long progressUpdateIntervalMillis; + private final ForegroundNotificationUpdater foregroundNotificationUpdater; private DownloadManager downloadManager; - private ProgressUpdater progressUpdater; + private DownloadListener downloadListener; private int lastStartId; - /** @param notificationIdOffset Value to offset notification ids. Must be greater than 0. */ - protected DownloadService(int notificationIdOffset) { - this(notificationIdOffset, DEFAULT_PROGRESS_UPDATE_INTERVAL_MILLIS); + /** + * Creates a DownloadService with {@link #DEFAULT_FOREGROUND_NOTIFICATION_UPDATE_INTERVAL}. + * + * @param foregroundNotificationId The notification id for the foreground notification, must not + * be 0. + */ + protected DownloadService(int foregroundNotificationId) { + this(foregroundNotificationId, DEFAULT_FOREGROUND_NOTIFICATION_UPDATE_INTERVAL); } /** - * @param notificationIdOffset Value to offset notification ids. Must be greater than 0. - * @param progressUpdateIntervalMillis {@link #onProgressUpdate(DownloadState[])} is called using - * this interval. If it's {@link C#TIME_UNSET}, then {@link - * #onProgressUpdate(DownloadState[])} isn't called. + * Creates a DownloadService. + * + * @param foregroundNotificationId The notification id for the foreground notification, must not + * be 0. + * @param foregroundNotificationUpdateInterval The maximum interval to update foreground + * notification, in milliseconds. */ - protected DownloadService(int notificationIdOffset, long progressUpdateIntervalMillis) { - this.notificationIdOffset = notificationIdOffset; - this.progressUpdateIntervalMillis = progressUpdateIntervalMillis; + protected DownloadService( + int foregroundNotificationId, long foregroundNotificationUpdateInterval) { + foregroundNotificationUpdater = + new ForegroundNotificationUpdater( + foregroundNotificationId, foregroundNotificationUpdateInterval); } /** @@ -130,7 +133,8 @@ public abstract class DownloadService extends Service implements DownloadManager public void onCreate() { logd("onCreate"); downloadManager = getDownloadManager(); - downloadManager.addListener(this); + downloadListener = new DownloadListener(); + downloadManager.addListener(downloadListener); if (requirementsWatcher == null) { Requirements requirements = getRequirements(); @@ -143,15 +147,13 @@ public abstract class DownloadService extends Service implements DownloadManager requirementsWatcher.start(); } } - - progressUpdater = new ProgressUpdater(this, progressUpdateIntervalMillis); } @Override public void onDestroy() { logd("onDestroy"); - progressUpdater.stop(); - downloadManager.removeListener(this); + foregroundNotificationUpdater.stopPeriodicUpdates(); + downloadManager.removeListener(downloadListener); if (downloadManager.getTaskCount() == 0) { if (requirementsWatcher != null) { requirementsWatcher.stop(); @@ -186,12 +188,12 @@ public abstract class DownloadService extends Service implements DownloadManager case ACTION_ADD: byte[] actionData = intent.getByteArrayExtra(DOWNLOAD_ACTION); if (actionData == null) { - onCommandError(intent, new IllegalArgumentException("DownloadAction is missing.")); + onCommandError(new IllegalArgumentException("DownloadAction is missing.")); } else { try { - onNewTask(intent, downloadManager.handleAction(actionData)); + downloadManager.handleAction(actionData); } catch (IOException e) { - onCommandError(intent, e); + onCommandError(e); } } break; @@ -202,11 +204,11 @@ public abstract class DownloadService extends Service implements DownloadManager downloadManager.startDownloads(); break; default: - onCommandError(intent, new IllegalArgumentException("Unknown action: " + intentAction)); + onCommandError(new IllegalArgumentException("Unknown action: " + intentAction)); break; } if (downloadManager.isIdle()) { - onIdle(null); + stop(); } return START_STICKY; } @@ -227,130 +229,110 @@ public abstract class DownloadService extends Service implements DownloadManager /** Returns requirements for downloads to take place, or null. */ protected abstract @Nullable Requirements getRequirements(); - /** Called on error in start command. */ - protected void onCommandError(Intent intent, Exception error) { + /** + * Returns a notification to be displayed when this service running in the foreground. + * + *

This method is called when there is a download task state change and periodically while + * there is an active download. Update interval can be set using {@link #DownloadService(int, + * long)}. + * + *

On API level 26 and above, it may be also called just before the service stops with an empty + * {@code downloadStates} array, returned notification is used to satisfy system requirements for + * foreground services. + * + * @param downloadStates DownloadState for all tasks. + * @return A notification to be displayed when this service running in the foreground. + */ + protected abstract Notification getForegroundNotification(DownloadState[] downloadStates); + + /** Called when the download state changes. */ + protected void onStateChange(DownloadState downloadState) { // Do nothing. } - /** Called when a new task is added to the {@link DownloadManager}. */ - protected void onNewTask(Intent intent, int taskId) { - // Do nothing. + private void onCommandError(Exception error) { + Log.e(TAG, "Command error", error); } - /** Returns a notification channelId. See {@link NotificationChannel}. */ - protected abstract String getNotificationChannelId(); - - /** - * Helper method which calls {@link #startForeground(int, Notification)} with {@code - * notificationIdOffset} and {@code foregroundNotification}. - */ - public void startForeground(Notification foregroundNotification) { - // logd("start foreground"); - startForeground(notificationIdOffset, foregroundNotification); - } - - /** - * Sets/replaces or cancels the notification for the given id. - * - * @param id A unique id for the notification. This value is offset by {@code - * notificationIdOffset}. - * @param notification If not null, it's showed, replacing any previous notification. Otherwise - * any previous notification is canceled. - */ - public void setNotification(int id, @Nullable Notification notification) { - NotificationManager notificationManager = - (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); - if (notification != null) { - notificationManager.notify(notificationIdOffset + 1 + id, notification); - } else { - notificationManager.cancel(notificationIdOffset + 1 + id); - } - } - - /** - * Override this method to get notified. - * - *

{@inheritDoc} - */ - @CallSuper - @Override - public void onStateChange(DownloadManager downloadManager, DownloadState downloadState) { - if (downloadState.state == DownloadState.STATE_STARTED) { - progressUpdater.start(); - } - } - - /** - * Override this method to get notified. - * - *

{@inheritDoc} - */ - @CallSuper - @Override - public void onIdle(DownloadManager downloadManager) { + private void stop() { + foregroundNotificationUpdater.stopPeriodicUpdates(); // Make sure startForeground is called before stopping. + // Workaround for [Internal: b/69424260] if (Util.SDK_INT >= 26) { - Builder notificationBuilder = new Builder(this, getNotificationChannelId()); - Notification foregroundNotification = notificationBuilder.build(); - startForeground(foregroundNotification); + foregroundNotificationUpdater.showNotificationIfNotAlready(); } boolean stopSelfResult = stopSelfResult(lastStartId); logd("stopSelf(" + lastStartId + ") result: " + stopSelfResult); } - /** Override this method to get notified on every second while there are active downloads. */ - protected void onProgressUpdate(DownloadState[] activeDownloadTasks) { - // Do nothing. - } - private void logd(String message) { if (DEBUG) { Log.d(TAG, message); } } - private static final class ProgressUpdater implements Runnable { + private final class DownloadListener implements DownloadManager.DownloadListener { + @Override + public void onStateChange(DownloadManager downloadManager, DownloadState downloadState) { + DownloadService.this.onStateChange(downloadState); + if (downloadState.state == DownloadState.STATE_STARTED) { + foregroundNotificationUpdater.startPeriodicUpdates(); + } else { + foregroundNotificationUpdater.update(); + } + } - private final DownloadService downloadService; - private final long progressUpdateIntervalMillis; + @Override + public final void onIdle(DownloadManager downloadManager) { + stop(); + } + } + + private final class ForegroundNotificationUpdater implements Runnable { + + private final int notificationId; + private final long updateInterval; private final Handler handler; - private boolean stopped; - public ProgressUpdater(DownloadService downloadService, long progressUpdateIntervalMillis) { - this.downloadService = downloadService; - this.progressUpdateIntervalMillis = progressUpdateIntervalMillis; + private boolean periodicUpdatesStarted; + private boolean notificationDisplayed; + + public ForegroundNotificationUpdater(int notificationId, long updateInterval) { + this.notificationId = notificationId; + this.updateInterval = updateInterval; this.handler = new Handler(Looper.getMainLooper()); - stopped = true; + } + + public void startPeriodicUpdates() { + periodicUpdatesStarted = true; + update(); + } + + public void stopPeriodicUpdates() { + periodicUpdatesStarted = false; + handler.removeCallbacks(this); + } + + public void update() { + DownloadState[] downloadStates = downloadManager.getDownloadStates(); + startForeground(notificationId, getForegroundNotification(downloadStates)); + notificationDisplayed = true; + if (periodicUpdatesStarted) { + handler.removeCallbacks(this); + handler.postDelayed(this, updateInterval); + } + } + + public void showNotificationIfNotAlready() { + if (!notificationDisplayed) { + update(); + } } @Override public void run() { - DownloadState[] activeDownloadTasks = - downloadService.downloadManager.getActiveDownloadStates(); - if (activeDownloadTasks.length > 0) { - downloadService.onProgressUpdate(activeDownloadTasks); - if (progressUpdateIntervalMillis != C.TIME_UNSET) { - handler.postDelayed(this, progressUpdateIntervalMillis); - } - } else { - stop(); - } + update(); } - - public void stop() { - stopped = true; - handler.removeCallbacks(this); - } - - public void start() { - if (stopped) { - stopped = false; - if (progressUpdateIntervalMillis != C.TIME_UNSET) { - handler.post(this); - } - } - } - } private static final class RequirementsListener implements RequirementsWatcher.Listener { diff --git a/library/dash/src/test/java/com/google/android/exoplayer2/source/dash/offline/DownloadServiceDashTest.java b/library/dash/src/test/java/com/google/android/exoplayer2/source/dash/offline/DownloadServiceDashTest.java index e8044e57c1..7c01170f45 100644 --- a/library/dash/src/test/java/com/google/android/exoplayer2/source/dash/offline/DownloadServiceDashTest.java +++ b/library/dash/src/test/java/com/google/android/exoplayer2/source/dash/offline/DownloadServiceDashTest.java @@ -20,9 +20,12 @@ import static com.google.android.exoplayer2.source.dash.offline.DashDownloadTest import static com.google.android.exoplayer2.testutil.CacheAsserts.assertCacheEmpty; import static com.google.android.exoplayer2.testutil.CacheAsserts.assertCachedData; +import android.app.Notification; import android.content.Context; import android.content.Intent; +import android.support.annotation.Nullable; import com.google.android.exoplayer2.offline.DownloadManager; +import com.google.android.exoplayer2.offline.DownloadManager.DownloadState; import com.google.android.exoplayer2.offline.DownloadService; import com.google.android.exoplayer2.offline.DownloaderConstructorHelper; import com.google.android.exoplayer2.scheduler.Requirements; @@ -44,6 +47,7 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.Mockito; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; @@ -107,7 +111,7 @@ public class DownloadServiceDashTest { new Runnable() { @Override public void run() { - File actionFile = null; + File actionFile; try { actionFile = Util.createTempFile(context, "ExoPlayerTest"); } catch (IOException e) { @@ -126,7 +130,7 @@ public class DownloadServiceDashTest { dashDownloadManager.startDownloads(); dashDownloadService = - new DownloadService(101010) { + new DownloadService(/*foregroundNotificationId=*/ 1) { @Override protected DownloadManager getDownloadManager() { @@ -134,15 +138,18 @@ public class DownloadServiceDashTest { } @Override - protected String getNotificationChannelId() { - return ""; + protected Notification getForegroundNotification( + DownloadState[] downloadStates) { + return Mockito.mock(Notification.class); } + @Nullable @Override protected Scheduler getScheduler() { return null; } + @Nullable @Override protected Requirements getRequirements() { return null; @@ -216,7 +223,7 @@ public class DownloadServiceDashTest { callDownloadServiceOnStart(new DashDownloadAction(TEST_MPD_URI, false, null, keys)); } - private void callDownloadServiceOnStart(final DashDownloadAction action) throws Throwable { + private void callDownloadServiceOnStart(final DashDownloadAction action) { dummyMainThread.runOnMainThread( new Runnable() { @Override diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/DownloadNotificationUtil.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/DownloadNotificationUtil.java index b4f69809a5..9085397f14 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/DownloadNotificationUtil.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/DownloadNotificationUtil.java @@ -16,23 +16,71 @@ package com.google.android.exoplayer2.ui; import android.app.Notification; -import android.app.Notification.BigTextStyle; -import android.app.Notification.Builder; import android.content.Context; import android.support.annotation.Nullable; +import android.support.v4.app.NotificationCompat; import com.google.android.exoplayer2.offline.DownloadManager; import com.google.android.exoplayer2.offline.DownloadManager.DownloadState; import com.google.android.exoplayer2.util.ErrorMessageProvider; -import com.google.android.exoplayer2.util.Util; /** Helper class to create notifications for downloads using {@link DownloadManager}. */ public final class DownloadNotificationUtil { + private static final int NULL_STRING_ID = 0; + private DownloadNotificationUtil() {} /** - * Returns a notification for the given {@link DownloadState}, or null if no notification should - * be displayed. + * Returns a progress notification for the given {@link DownloadState}s. + * + * @param downloadStates States of the downloads. + * @param context Used to access resources. + * @param smallIcon A small icon for the notification. + * @param channelId The id of the notification channel to use. Only required for API level 26 and + * above. + * @param message An optional message to display on the notification. + * @return A progress notification for the given {@link DownloadState}s. + */ + public static @Nullable Notification createProgressNotification( + DownloadState[] downloadStates, + Context context, + int smallIcon, + String channelId, + @Nullable String message) { + float totalPercentage = 0; + int determinatePercentageCount = 0; + boolean isAnyDownloadActive = false; + for (DownloadState downloadState : downloadStates) { + if (downloadState.downloadAction.isRemoveAction() + || downloadState.state != DownloadState.STATE_STARTED) { + continue; + } + float percentage = downloadState.downloadPercentage; + if (!Float.isNaN(percentage)) { + totalPercentage += percentage; + determinatePercentageCount++; + } + isAnyDownloadActive = true; + } + + int titleStringId = isAnyDownloadActive ? R.string.exo_downloading : NULL_STRING_ID; + NotificationCompat.Builder notificationBuilder = + createNotificationBuilder(context, smallIcon, channelId, message, titleStringId); + + notificationBuilder.setOngoing(true); + int max = 100; + int progress = (int) (totalPercentage / determinatePercentageCount); + boolean indeterminate = determinatePercentageCount == 0; + notificationBuilder.setProgress(max, progress, indeterminate); + + notificationBuilder.setShowWhen(false); + return notificationBuilder.build(); + } + + /** + * Returns a notification for a {@link DownloadState} which is in either {@link + * DownloadState#STATE_ENDED} or {@link DownloadState#STATE_ERROR} states. Returns null if it's + * some other state or it's state of a remove action. * * @param downloadState State of the download. * @param context Used to access resources. @@ -43,10 +91,11 @@ public final class DownloadNotificationUtil { * @param errorMessageProvider An optional {@link ErrorMessageProvider} for translating download * errors into readable error messages. If not null and there is a download error then the * error message is displayed instead of {@code message}. - * @return A notification for the given {@link DownloadState}, or null if no notification should - * be displayed. + * @return A notification for a {@link DownloadState} which is in either {@link + * DownloadState#STATE_ENDED} or {@link DownloadState#STATE_ERROR} states. Returns null if + * it's some other state or it's state of a remove action. */ - public static @Nullable Notification createNotification( + public static @Nullable Notification createDownloadFinishedNotification( DownloadState downloadState, Context context, int smallIcon, @@ -54,63 +103,36 @@ public final class DownloadNotificationUtil { @Nullable String message, @Nullable ErrorMessageProvider errorMessageProvider) { if (downloadState.downloadAction.isRemoveAction() - || downloadState.state == DownloadState.STATE_CANCELED) { + || (downloadState.state != DownloadState.STATE_ENDED + && downloadState.state != DownloadState.STATE_ERROR)) { return null; } - - Builder notificationBuilder = new Builder(context); - if (Util.SDK_INT >= 26) { - notificationBuilder.setChannelId(channelId); - } - notificationBuilder.setSmallIcon(smallIcon); - - int titleStringId = getTitleStringId(downloadState); - notificationBuilder.setContentTitle(context.getResources().getString(titleStringId)); - - if (downloadState.state == DownloadState.STATE_STARTED) { - notificationBuilder.setOngoing(true); - float percentage = downloadState.downloadPercentage; - boolean indeterminate = Float.isNaN(percentage); - notificationBuilder.setProgress(100, indeterminate ? 0 : (int) percentage, indeterminate); - } - if (Util.SDK_INT >= 17) { - // Hide timestamp on the notification while download progresses. - notificationBuilder.setShowWhen(downloadState.state != DownloadState.STATE_STARTED); - } - if (downloadState.error != null && errorMessageProvider != null) { message = errorMessageProvider.getErrorMessage(downloadState.error).second; } - if (message != null) { - if (Util.SDK_INT >= 16) { - notificationBuilder.setStyle(new BigTextStyle().bigText(message)); - } else { - notificationBuilder.setContentText(message); - } - } - return notificationBuilder.getNotification(); + int titleStringId = + downloadState.state == DownloadState.STATE_ENDED + ? R.string.exo_download_completed + : R.string.exo_download_failed; + NotificationCompat.Builder notificationBuilder = + createNotificationBuilder(context, smallIcon, channelId, message, titleStringId); + return notificationBuilder.build(); } - private static int getTitleStringId(DownloadState downloadState) { - int titleStringId; - switch (downloadState.state) { - case DownloadState.STATE_QUEUED: - titleStringId = R.string.exo_download_queued; - break; - case DownloadState.STATE_STARTED: - titleStringId = R.string.exo_downloading; - break; - case DownloadState.STATE_ENDED: - titleStringId = R.string.exo_download_completed; - break; - case DownloadState.STATE_ERROR: - titleStringId = R.string.exo_download_failed; - break; - case DownloadState.STATE_CANCELED: - default: - // Never happens. - throw new IllegalStateException(); + private static NotificationCompat.Builder createNotificationBuilder( + Context context, + int smallIcon, + String channelId, + @Nullable String message, + int titleStringId) { + NotificationCompat.Builder notificationBuilder = + new NotificationCompat.Builder(context, channelId).setSmallIcon(smallIcon); + if (titleStringId != NULL_STRING_ID) { + notificationBuilder.setContentTitle(context.getResources().getString(titleStringId)); } - return titleStringId; + if (message != null) { + notificationBuilder.setStyle(new NotificationCompat.BigTextStyle().bigText(message)); + } + return notificationBuilder; } } diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/NotificationUtil.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/NotificationUtil.java new file mode 100644 index 0000000000..ab665bcc01 --- /dev/null +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/NotificationUtil.java @@ -0,0 +1,76 @@ +/* + * Copyright (C) 2018 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.android.exoplayer2.ui; + +import android.app.Notification; +import android.app.NotificationChannel; +import android.app.NotificationManager; +import android.content.Context; +import android.content.Intent; +import android.support.annotation.Nullable; +import com.google.android.exoplayer2.util.Util; + +/** Utility methods for displaying {@link android.app.Notification}s. */ +public final class NotificationUtil { + + private NotificationUtil() {} + + /** + * Creates a notification channel that notifications can be posted to. See {@link + * NotificationChannel} and {@link + * NotificationManager#createNotificationChannel(NotificationChannel)} for details. + * + * @param context A {@link Context} to retrieve {@link NotificationManager}. + * @param id The id of the channel. Must be unique per package. The value may be truncated if it + * is too long. + * @param name The user visible name of the channel. You can rename this channel when the system + * locale changes by listening for the {@link Intent#ACTION_LOCALE_CHANGED} broadcast. The + * recommended maximum length is 40 characters; the value may be truncated if it is too long. + * @param importance The importance of the channel. This controls how interruptive notifications + * posted to this channel are. + */ + public static void createNotificationChannel( + Context context, String id, int name, int importance) { + if (Util.SDK_INT >= 26) { + NotificationManager notificationManager = + (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); + NotificationChannel mChannel = + new NotificationChannel(id, context.getString(name), importance); + notificationManager.createNotificationChannel(mChannel); + } + } + + /** + * Post a notification to be shown in the status bar. If a notification with the same id has + * already been posted by your application and has not yet been canceled, it will be replaced by + * the updated information. If {@code notification} is null, then cancels a previously shown + * notification. + * + * @param context A {@link Context} to retrieve {@link NotificationManager}. + * @param id An identifier for this notification unique within your application. + * @param notification A {@link Notification} object describing what to show the user. If null, + * then cancels a previously shown notification. + */ + public static void setNotification(Context context, int id, @Nullable Notification notification) { + NotificationManager notificationManager = + (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); + if (notification != null) { + notificationManager.notify(id, notification); + } else { + notificationManager.cancel(id); + } + } +} diff --git a/library/ui/src/main/res/values-af/strings.xml b/library/ui/src/main/res/values-af/strings.xml index 0ede570914..e98f065a33 100644 --- a/library/ui/src/main/res/values-af/strings.xml +++ b/library/ui/src/main/res/values-af/strings.xml @@ -12,7 +12,6 @@ Herhaal alles Skommel Volskermmodus - Aflaai op waglys Laai tans af Aflaai is voltooi Kon nie aflaai nie diff --git a/library/ui/src/main/res/values-am/strings.xml b/library/ui/src/main/res/values-am/strings.xml index 80c4fd1fb6..fc7793a7dd 100644 --- a/library/ui/src/main/res/values-am/strings.xml +++ b/library/ui/src/main/res/values-am/strings.xml @@ -12,7 +12,6 @@ ሁሉንም ድገም በውዝ የሙሉ ማያ ሁነታ - ማውረድ ወረፋ ይዟል በማውረድ ላይ ማውረድ ተጠናቋል ማውረድ አልተሳካም diff --git a/library/ui/src/main/res/values-ar/strings.xml b/library/ui/src/main/res/values-ar/strings.xml index 5ccc6b3145..a25d8d863a 100644 --- a/library/ui/src/main/res/values-ar/strings.xml +++ b/library/ui/src/main/res/values-ar/strings.xml @@ -12,7 +12,6 @@ تكرار الكل ترتيب عشوائي وضع ملء الشاشة - التنزيل قيد الانتظار تحميل اكتمل التنزيل تعذّر التنزيل diff --git a/library/ui/src/main/res/values-az/strings.xml b/library/ui/src/main/res/values-az/strings.xml index cb1328f0ba..81b5db725c 100644 --- a/library/ui/src/main/res/values-az/strings.xml +++ b/library/ui/src/main/res/values-az/strings.xml @@ -12,7 +12,6 @@ Hamısı təkrarlansın Qarışdırın Tam ekran rejimi - Endirmə gözlənilir Endirilir Endirmə tamamlandı Endirmə alınmadı diff --git a/library/ui/src/main/res/values-b+sr+Latn/strings.xml b/library/ui/src/main/res/values-b+sr+Latn/strings.xml index be0223898b..90f82ba488 100644 --- a/library/ui/src/main/res/values-b+sr+Latn/strings.xml +++ b/library/ui/src/main/res/values-b+sr+Latn/strings.xml @@ -12,7 +12,6 @@ Ponovi sve Pusti nasumično Režim celog ekrana - Preuzimanje je na čekanju Preuzimanje Preuzimanje je završeno Preuzimanje nije uspelo diff --git a/library/ui/src/main/res/values-be/strings.xml b/library/ui/src/main/res/values-be/strings.xml index ce6d8b1cc8..cb7ec16a76 100644 --- a/library/ui/src/main/res/values-be/strings.xml +++ b/library/ui/src/main/res/values-be/strings.xml @@ -12,7 +12,6 @@ Паўтарыць усе Перамяшаць Поўнаэкранны рэжым - Спампоўка пастаўлена ў чаргу Спампоўка Спампоўка завершана Збой спампоўкі diff --git a/library/ui/src/main/res/values-bg/strings.xml b/library/ui/src/main/res/values-bg/strings.xml index 14cc2c8fcc..d13e98eea6 100644 --- a/library/ui/src/main/res/values-bg/strings.xml +++ b/library/ui/src/main/res/values-bg/strings.xml @@ -12,7 +12,6 @@ Повтаряне на всички Разбъркване Режим на цял екран - Изтеглянето е в опашката Изтегля се Изтеглянето завърши Изтеглянето не бе успешно diff --git a/library/ui/src/main/res/values-bn/strings.xml b/library/ui/src/main/res/values-bn/strings.xml index 539837dc04..98ca3c05db 100644 --- a/library/ui/src/main/res/values-bn/strings.xml +++ b/library/ui/src/main/res/values-bn/strings.xml @@ -12,7 +12,6 @@ সবগুলি আইটেম আবার চালান শাফেল করুন পূর্ণ স্ক্রিন মোড - ডাউনলোড অপেক্ষমান ডাউনলোড হচ্ছে ডাউনলোড হয়ে গেছে ডাউনলোড করা যায়নি diff --git a/library/ui/src/main/res/values-bs/strings.xml b/library/ui/src/main/res/values-bs/strings.xml index f7f4bf5cbb..3504767263 100644 --- a/library/ui/src/main/res/values-bs/strings.xml +++ b/library/ui/src/main/res/values-bs/strings.xml @@ -12,7 +12,6 @@ Ponovi sve Izmiješaj Način rada preko cijelog ekrana - Preuzimanje je na čekanju Preuzimanje Preuzimanje je završeno Preuzimanje nije uspjelo diff --git a/library/ui/src/main/res/values-ca/strings.xml b/library/ui/src/main/res/values-ca/strings.xml index 31fc1c59b3..c4212c590c 100644 --- a/library/ui/src/main/res/values-ca/strings.xml +++ b/library/ui/src/main/res/values-ca/strings.xml @@ -12,7 +12,6 @@ Repeteix tot Reprodueix aleatòriament Mode de pantalla completa - La baixada s\'ha posat a la cua S\'està baixant S\'ha completat la baixada No s\'ha pogut baixar diff --git a/library/ui/src/main/res/values-cs/strings.xml b/library/ui/src/main/res/values-cs/strings.xml index 75d5f6c1c1..e0f4771a1a 100644 --- a/library/ui/src/main/res/values-cs/strings.xml +++ b/library/ui/src/main/res/values-cs/strings.xml @@ -12,7 +12,6 @@ Opakovat vše Náhodně Režim celé obrazovky - Zařazeno do fronty stahování Stahování Stahování bylo dokončeno Stažení se nezdařilo diff --git a/library/ui/src/main/res/values-da/strings.xml b/library/ui/src/main/res/values-da/strings.xml index ce9c9e7da7..e96c37b9c4 100644 --- a/library/ui/src/main/res/values-da/strings.xml +++ b/library/ui/src/main/res/values-da/strings.xml @@ -12,7 +12,6 @@ Gentag alle Bland Fuld skærm - Downloaden er i kø Download Downloaden er udført Download mislykkedes diff --git a/library/ui/src/main/res/values-de/strings.xml b/library/ui/src/main/res/values-de/strings.xml index 3fd38a784b..7bfc01c0a8 100644 --- a/library/ui/src/main/res/values-de/strings.xml +++ b/library/ui/src/main/res/values-de/strings.xml @@ -12,7 +12,6 @@ Alle wiederholen Zufallsmix Vollbildmodus - Download in der Warteschlange Wird heruntergeladen Download abgeschlossen Download fehlgeschlagen diff --git a/library/ui/src/main/res/values-el/strings.xml b/library/ui/src/main/res/values-el/strings.xml index c4d15a55d6..d926c455b6 100644 --- a/library/ui/src/main/res/values-el/strings.xml +++ b/library/ui/src/main/res/values-el/strings.xml @@ -12,7 +12,6 @@ Επανάληψη όλων Τυχαία αναπαραγωγή Λειτουργία πλήρους οθόνης - Η λήψη προστέθηκε στην ουρά Λήψη Η λήψη ολοκληρώθηκε Η λήψη απέτυχε diff --git a/library/ui/src/main/res/values-en-rAU/strings.xml b/library/ui/src/main/res/values-en-rAU/strings.xml index cfb09d7f65..fddba2245c 100644 --- a/library/ui/src/main/res/values-en-rAU/strings.xml +++ b/library/ui/src/main/res/values-en-rAU/strings.xml @@ -12,7 +12,6 @@ Repeat all Shuffle Full-screen mode - Download queued Downloading Download completed Download failed diff --git a/library/ui/src/main/res/values-en-rGB/strings.xml b/library/ui/src/main/res/values-en-rGB/strings.xml index cfb09d7f65..fddba2245c 100644 --- a/library/ui/src/main/res/values-en-rGB/strings.xml +++ b/library/ui/src/main/res/values-en-rGB/strings.xml @@ -12,7 +12,6 @@ Repeat all Shuffle Full-screen mode - Download queued Downloading Download completed Download failed diff --git a/library/ui/src/main/res/values-en-rIN/strings.xml b/library/ui/src/main/res/values-en-rIN/strings.xml index cfb09d7f65..fddba2245c 100644 --- a/library/ui/src/main/res/values-en-rIN/strings.xml +++ b/library/ui/src/main/res/values-en-rIN/strings.xml @@ -12,7 +12,6 @@ Repeat all Shuffle Full-screen mode - Download queued Downloading Download completed Download failed diff --git a/library/ui/src/main/res/values-es-rUS/strings.xml b/library/ui/src/main/res/values-es-rUS/strings.xml index 990c2cc6ff..e4ef802db4 100644 --- a/library/ui/src/main/res/values-es-rUS/strings.xml +++ b/library/ui/src/main/res/values-es-rUS/strings.xml @@ -12,7 +12,6 @@ Repetir todo Reproducir aleatoriamente Modo de pantalla completa - Descarga en fila Descargando Se completó la descarga No se pudo descargar diff --git a/library/ui/src/main/res/values-es/strings.xml b/library/ui/src/main/res/values-es/strings.xml index 2210475e48..fdf98310b3 100644 --- a/library/ui/src/main/res/values-es/strings.xml +++ b/library/ui/src/main/res/values-es/strings.xml @@ -12,7 +12,6 @@ Repetir todo Reproducir aleatoriamente Modo de pantalla completa - Descarga en cola Descarga de archivos Descarga de archivos completado No se ha podido descargar diff --git a/library/ui/src/main/res/values-et/strings.xml b/library/ui/src/main/res/values-et/strings.xml index 79242a3f45..eb7662e0be 100644 --- a/library/ui/src/main/res/values-et/strings.xml +++ b/library/ui/src/main/res/values-et/strings.xml @@ -12,7 +12,6 @@ Korda kõiki Esita juhuslikus järjekorras Täisekraani režiim - Allalaadimine on järjekorras Allalaadimine Allalaadimine lõpetati Allalaadimine ebaõnnestus diff --git a/library/ui/src/main/res/values-eu/strings.xml b/library/ui/src/main/res/values-eu/strings.xml index 1358f57059..3f3e6e1a43 100644 --- a/library/ui/src/main/res/values-eu/strings.xml +++ b/library/ui/src/main/res/values-eu/strings.xml @@ -12,7 +12,6 @@ Errepikatu guztiak Erreproduzitu ausaz Pantaila osoko modua - Ilaran dago deskarga Deskargatzen Osatu da deskarga Ezin izan da deskargatu diff --git a/library/ui/src/main/res/values-fa/strings.xml b/library/ui/src/main/res/values-fa/strings.xml index c31f9dafa8..bcc8a884bc 100644 --- a/library/ui/src/main/res/values-fa/strings.xml +++ b/library/ui/src/main/res/values-fa/strings.xml @@ -12,7 +12,6 @@ تکرار همه درهم حالت تمام‌صفحه - درانتظار بارگیری درحال بارگیری بارگیری کامل شد بارگیری نشد diff --git a/library/ui/src/main/res/values-fi/strings.xml b/library/ui/src/main/res/values-fi/strings.xml index 4e2b6aaad0..b9eb2e1529 100644 --- a/library/ui/src/main/res/values-fi/strings.xml +++ b/library/ui/src/main/res/values-fi/strings.xml @@ -12,7 +12,6 @@ Toista kaikki uudelleen Satunnaistoisto Koko näytön tila - Lataus jonossa Ladataan Lataus valmis Lataus epäonnistui diff --git a/library/ui/src/main/res/values-fr-rCA/strings.xml b/library/ui/src/main/res/values-fr-rCA/strings.xml index 06fff296af..08a94dc696 100644 --- a/library/ui/src/main/res/values-fr-rCA/strings.xml +++ b/library/ui/src/main/res/values-fr-rCA/strings.xml @@ -12,7 +12,6 @@ Tout lire en boucle Lecture aléatoire Mode Plein écran - File d\'attente de télécharg. Téléchargement en cours… Téléchargement terminé Échec du téléchargement diff --git a/library/ui/src/main/res/values-fr/strings.xml b/library/ui/src/main/res/values-fr/strings.xml index 2a6c79df5e..07fc39bf71 100644 --- a/library/ui/src/main/res/values-fr/strings.xml +++ b/library/ui/src/main/res/values-fr/strings.xml @@ -12,7 +12,6 @@ Tout lire en boucle Aléatoire Mode plein écran - Téléchargement en attente Téléchargement… Téléchargement terminé Échec du téléchargement diff --git a/library/ui/src/main/res/values-gl/strings.xml b/library/ui/src/main/res/values-gl/strings.xml index 5a0e83fbf7..f46b00b9ec 100644 --- a/library/ui/src/main/res/values-gl/strings.xml +++ b/library/ui/src/main/res/values-gl/strings.xml @@ -12,7 +12,6 @@ Repetir todas as pistas Reprodución aleatoria Modo de pantalla completa - A descarga está na cola Descargando Completouse a descarga Produciuse un erro na descarga diff --git a/library/ui/src/main/res/values-gu/strings.xml b/library/ui/src/main/res/values-gu/strings.xml index ae1618d830..b129bc87ff 100644 --- a/library/ui/src/main/res/values-gu/strings.xml +++ b/library/ui/src/main/res/values-gu/strings.xml @@ -12,7 +12,6 @@ બધાને રિપીટ કરો શફલ કરો પૂર્ણસ્ક્રીન મોડ - ડાઉનલોડ માટે કતારમાં છે ડાઉનલોડ કરી રહ્યાં છીએ ડાઉનલોડ પૂર્ણ થયું ડાઉનલોડ નિષ્ફળ થયું diff --git a/library/ui/src/main/res/values-hi/strings.xml b/library/ui/src/main/res/values-hi/strings.xml index e5b7554acf..200f1ad140 100644 --- a/library/ui/src/main/res/values-hi/strings.xml +++ b/library/ui/src/main/res/values-hi/strings.xml @@ -12,7 +12,6 @@ सभी को दोहराएं शफ़ल करें फ़ुलस्क्रीन मोड - डाउनलोड को कतार में लगाया गया डाउनलोड हो रहा है डाउनलोड पूरा हुआ डाउनलोड नहीं हो सका diff --git a/library/ui/src/main/res/values-hr/strings.xml b/library/ui/src/main/res/values-hr/strings.xml index 324dedf417..6cec5d5074 100644 --- a/library/ui/src/main/res/values-hr/strings.xml +++ b/library/ui/src/main/res/values-hr/strings.xml @@ -12,7 +12,6 @@ Ponovi sve Reproduciraj nasumično Prikaz na cijelom zaslonu - Preuzimanje na čekanju Preuzimanje datoteka Preuzimanje je dovršeno Preuzimanje nije uspjelo diff --git a/library/ui/src/main/res/values-hu/strings.xml b/library/ui/src/main/res/values-hu/strings.xml index dd898ff22f..f3932ac085 100644 --- a/library/ui/src/main/res/values-hu/strings.xml +++ b/library/ui/src/main/res/values-hu/strings.xml @@ -12,7 +12,6 @@ Összes szám ismétlése Keverés Teljes képernyős mód - Letöltés várólistára helyezve Letöltés folyamatban A letöltés befejeződött Nem sikerült a letöltés diff --git a/library/ui/src/main/res/values-hy/strings.xml b/library/ui/src/main/res/values-hy/strings.xml index 73f8bff5e0..321bf61894 100644 --- a/library/ui/src/main/res/values-hy/strings.xml +++ b/library/ui/src/main/res/values-hy/strings.xml @@ -12,7 +12,6 @@ Կրկնել բոլորը Խառնել Լիաէկրան ռեժիմ - Ներբեռնումը շուտով կսկսվի Ներբեռնում Ներբեռնումն ավարտվեց Չհաջողվեց ներբեռնել diff --git a/library/ui/src/main/res/values-in/strings.xml b/library/ui/src/main/res/values-in/strings.xml index 6bc073d1fa..a4becda244 100644 --- a/library/ui/src/main/res/values-in/strings.xml +++ b/library/ui/src/main/res/values-in/strings.xml @@ -12,7 +12,6 @@ Ulangi semua Acak Mode layar penuh - Download masih dalam antrean Mendownload Download selesai Download gagal diff --git a/library/ui/src/main/res/values-is/strings.xml b/library/ui/src/main/res/values-is/strings.xml index e54fa9d7d4..02cee0d275 100644 --- a/library/ui/src/main/res/values-is/strings.xml +++ b/library/ui/src/main/res/values-is/strings.xml @@ -12,7 +12,6 @@ Endurtaka allt Stokka Allur skjárinn - Niðurhal í bið Sækir Niðurhali lokið Niðurhal mistókst diff --git a/library/ui/src/main/res/values-it/strings.xml b/library/ui/src/main/res/values-it/strings.xml index 9d84c760d1..9719029c12 100644 --- a/library/ui/src/main/res/values-it/strings.xml +++ b/library/ui/src/main/res/values-it/strings.xml @@ -12,7 +12,6 @@ Ripeti tutto Riproduzione casuale Modalità a schermo intero - Download aggiunto alla coda Download Download completato Download non riuscito diff --git a/library/ui/src/main/res/values-iw/strings.xml b/library/ui/src/main/res/values-iw/strings.xml index 5e08c74969..fb5eea4d9c 100644 --- a/library/ui/src/main/res/values-iw/strings.xml +++ b/library/ui/src/main/res/values-iw/strings.xml @@ -12,7 +12,6 @@ חזור על הכול ערבוב מצב מסך מלא - ההורדה עדיין לא התחילה מתבצעת הורדה ההורדה הושלמה ההורדה לא הושלמה diff --git a/library/ui/src/main/res/values-ja/strings.xml b/library/ui/src/main/res/values-ja/strings.xml index ae1578204e..678c042e25 100644 --- a/library/ui/src/main/res/values-ja/strings.xml +++ b/library/ui/src/main/res/values-ja/strings.xml @@ -12,7 +12,6 @@ 全曲をリピート シャッフル 全画面モード - ダウンロードを待機しています ダウンロードしています ダウンロードが完了しました ダウンロードに失敗しました diff --git a/library/ui/src/main/res/values-ka/strings.xml b/library/ui/src/main/res/values-ka/strings.xml index 772137785f..b04e660d52 100644 --- a/library/ui/src/main/res/values-ka/strings.xml +++ b/library/ui/src/main/res/values-ka/strings.xml @@ -12,7 +12,6 @@ ყველას გამეორება არეულად დაკვრა სრულეკრანიანი რეჟიმი - ჩამოტვირთვა რიგს ელოდება მიმდინარეობს ჩამოტვირთვა ჩამოტვირთვა დასრულდა ჩამოტვირთვა ვერ მოხერხდა diff --git a/library/ui/src/main/res/values-kk/strings.xml b/library/ui/src/main/res/values-kk/strings.xml index 62958a6315..f66e4ede58 100644 --- a/library/ui/src/main/res/values-kk/strings.xml +++ b/library/ui/src/main/res/values-kk/strings.xml @@ -12,7 +12,6 @@ Барлығын қайталау Араластыру Толық экран режимі - Жүктеп алу кезегіне қойылды Жүктеп алынуда Жүктеп алынды Жүктеп алынбады diff --git a/library/ui/src/main/res/values-km/strings.xml b/library/ui/src/main/res/values-km/strings.xml index 8e0360a1d7..72ddcb4c57 100644 --- a/library/ui/src/main/res/values-km/strings.xml +++ b/library/ui/src/main/res/values-km/strings.xml @@ -12,7 +12,6 @@ លេង​ឡើងវិញ​ទាំងអស់ ច្របល់ មុខងារពេញ​អេក្រង់ - បាន​ដាក់ការទាញយក​​ក្នុងជួរ កំពុង​ទាញ​យក បាន​បញ្ចប់​ការទាញយក មិន​អាច​ទាញយក​បាន​ទេ diff --git a/library/ui/src/main/res/values-kn/strings.xml b/library/ui/src/main/res/values-kn/strings.xml index ff3d29450a..5507d8ecff 100644 --- a/library/ui/src/main/res/values-kn/strings.xml +++ b/library/ui/src/main/res/values-kn/strings.xml @@ -12,7 +12,6 @@ ಎಲ್ಲವನ್ನು ಪುನರಾವರ್ತಿಸಿ ಶಫಲ್‌ ಪೂರ್ಣ ಪರದೆ ಮೋಡ್ - ಡೌನ್‌ಲೋಡ್ ಸರದಿಯಲ್ಲಿದೆ ಡೌನ್‌ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ ಡೌನ್‌ಲೋಡ್ ಪೂರ್ಣಗೊಂಡಿದೆ ಡೌನ್‌ಲೋಡ್‌ ವಿಫಲಗೊಂಡಿದೆ diff --git a/library/ui/src/main/res/values-ko/strings.xml b/library/ui/src/main/res/values-ko/strings.xml index 21e2bece31..a9abec2e7a 100644 --- a/library/ui/src/main/res/values-ko/strings.xml +++ b/library/ui/src/main/res/values-ko/strings.xml @@ -12,7 +12,6 @@ 모두 반복 셔플 전체화면 모드 - 다운로드 대기 중 다운로드하는 중 다운로드 완료 다운로드 실패 diff --git a/library/ui/src/main/res/values-ky/strings.xml b/library/ui/src/main/res/values-ky/strings.xml index 0582cce53c..93bd751893 100644 --- a/library/ui/src/main/res/values-ky/strings.xml +++ b/library/ui/src/main/res/values-ky/strings.xml @@ -12,7 +12,6 @@ Баарын кайталоо Аралаштыруу Толук экран режими - Жүктөп алуу кезекке коюлду Жүктөлүп алынууда Жүктөп алуу аяктады Жүктөлүп алынбай калды diff --git a/library/ui/src/main/res/values-lo/strings.xml b/library/ui/src/main/res/values-lo/strings.xml index ef888ab7f0..a72cefcc8e 100644 --- a/library/ui/src/main/res/values-lo/strings.xml +++ b/library/ui/src/main/res/values-lo/strings.xml @@ -12,7 +12,6 @@ ຫຼິ້ນຊ້ຳທັງໝົດ ຫຼີ້ນແບບສຸ່ມ ໂໝດເຕັມຈໍ - ຈັດຄິວດາວໂຫລດໄວ້ແລ້ວ ກຳລັງດາວໂຫລດ ດາວໂຫລດສຳເລັດແລ້ວ ດາວໂຫຼດບໍ່ສຳເລັດ diff --git a/library/ui/src/main/res/values-lt/strings.xml b/library/ui/src/main/res/values-lt/strings.xml index e756bd1019..3593a8080e 100644 --- a/library/ui/src/main/res/values-lt/strings.xml +++ b/library/ui/src/main/res/values-lt/strings.xml @@ -12,7 +12,6 @@ Kartoti viską Maišyti Viso ekrano režimas - Atsisiunč. elem. laukia eilėje Atsisiunčiama Atsisiuntimo procesas baigtas Nepavyko atsisiųsti diff --git a/library/ui/src/main/res/values-lv/strings.xml b/library/ui/src/main/res/values-lv/strings.xml index e330620e8b..e90977913d 100644 --- a/library/ui/src/main/res/values-lv/strings.xml +++ b/library/ui/src/main/res/values-lv/strings.xml @@ -12,7 +12,6 @@ Atkārtot visu Atskaņot jauktā secībā Pilnekrāna režīms - Lejupielāde gaida rindā Notiek lejupielāde Lejupielāde ir pabeigta Lejupielāde neizdevās diff --git a/library/ui/src/main/res/values-mk/strings.xml b/library/ui/src/main/res/values-mk/strings.xml index a014e1c0d1..b89c516ffa 100644 --- a/library/ui/src/main/res/values-mk/strings.xml +++ b/library/ui/src/main/res/values-mk/strings.xml @@ -12,7 +12,6 @@ Повтори ги сите Измешај Режим на цел екран - Преземањето чека на ред Се презема Преземањето заврши Неуспешно преземање diff --git a/library/ui/src/main/res/values-ml/strings.xml b/library/ui/src/main/res/values-ml/strings.xml index 37ea2be5e6..4eef4bb1d2 100644 --- a/library/ui/src/main/res/values-ml/strings.xml +++ b/library/ui/src/main/res/values-ml/strings.xml @@ -12,7 +12,6 @@ എല്ലാം ആവർത്തിക്കുക ഇടകലര്‍ത്തുക പൂർണ്ണ സ്‌ക്രീൻ മോഡ് - ഡൗൺലോഡ് ‌ക്യൂവിലാണ് ഡൗൺലോഡ് ചെയ്യുന്നു ഡൗൺലോഡ് പൂർത്തിയായി ഡൗൺലോഡ് പരാജയപ്പെട്ടു diff --git a/library/ui/src/main/res/values-mn/strings.xml b/library/ui/src/main/res/values-mn/strings.xml index 883489b53c..22f7c0c286 100644 --- a/library/ui/src/main/res/values-mn/strings.xml +++ b/library/ui/src/main/res/values-mn/strings.xml @@ -12,7 +12,6 @@ Бүгдийг нь дахин тоглуулах Холих Бүтэн дэлгэцийн горим - Татан авалтыг жагсаасан Татаж байна Татаж дууссан Татаж чадсангүй diff --git a/library/ui/src/main/res/values-mr/strings.xml b/library/ui/src/main/res/values-mr/strings.xml index ed9e44bbce..7e661b67ab 100644 --- a/library/ui/src/main/res/values-mr/strings.xml +++ b/library/ui/src/main/res/values-mr/strings.xml @@ -12,7 +12,6 @@ सर्व रीपीट करा शफल करा पूर्ण स्क्रीन मोड - रांगेत लावलेले डाउनलोड करा डाउनलोड होत आहे डाउनलोड पूर्ण झाले डाउनलोड अयशस्वी झाले diff --git a/library/ui/src/main/res/values-ms/strings.xml b/library/ui/src/main/res/values-ms/strings.xml index aedb67fe92..6bc72513cc 100644 --- a/library/ui/src/main/res/values-ms/strings.xml +++ b/library/ui/src/main/res/values-ms/strings.xml @@ -12,7 +12,6 @@ Ulang semua Rombak Mod skrin penuh - Muat turun dibaris gilir Memuat turun Muat turun selesai Muat turun gagal diff --git a/library/ui/src/main/res/values-my/strings.xml b/library/ui/src/main/res/values-my/strings.xml index fe509be395..d49258e90d 100644 --- a/library/ui/src/main/res/values-my/strings.xml +++ b/library/ui/src/main/res/values-my/strings.xml @@ -12,7 +12,6 @@ အားလုံး ပြန်ကျော့ရန် ရောသမမွှေ မျက်နှာပြင်အပြည့် မုဒ် - ဒေါင်းလုဒ်လုပ်ရန် စီထားသည် ဒေါင်းလုဒ်လုပ်နေသည် ဒေါင်းလုဒ်လုပ်ပြီးပါပြီ ဒေါင်းလုဒ်လုပ်၍ မရပါ diff --git a/library/ui/src/main/res/values-nb/strings.xml b/library/ui/src/main/res/values-nb/strings.xml index 267a82994e..e140fa4b94 100644 --- a/library/ui/src/main/res/values-nb/strings.xml +++ b/library/ui/src/main/res/values-nb/strings.xml @@ -12,7 +12,6 @@ Gjenta alle Tilfeldig rekkefølge Fullskjermmodus - Nedlasting står i kø Laster ned Nedlastingen er fullført Nedlastingen mislyktes diff --git a/library/ui/src/main/res/values-ne/strings.xml b/library/ui/src/main/res/values-ne/strings.xml index ac3d71d356..292e3ad362 100644 --- a/library/ui/src/main/res/values-ne/strings.xml +++ b/library/ui/src/main/res/values-ne/strings.xml @@ -12,7 +12,6 @@ सबै दोहोर्‍याउनुहोस् मिसाउनुहोस् पूर्ण स्क्रिन मोड - डाउनलोडलाई लाइनमा राखियो डाउनलोड गरिँदै छ डाउनलोड सम्पन्न भयो डाउनलोड गर्न सकिएन diff --git a/library/ui/src/main/res/values-nl/strings.xml b/library/ui/src/main/res/values-nl/strings.xml index 70bda2fdcc..20a5089729 100644 --- a/library/ui/src/main/res/values-nl/strings.xml +++ b/library/ui/src/main/res/values-nl/strings.xml @@ -12,7 +12,6 @@ Alles herhalen Shuffle Modus \'Volledig scherm\' - Download in de wachtrij Downloaden Downloaden voltooid Downloaden mislukt diff --git a/library/ui/src/main/res/values-pa/strings.xml b/library/ui/src/main/res/values-pa/strings.xml index 59affc3aa9..7a95d0b26a 100644 --- a/library/ui/src/main/res/values-pa/strings.xml +++ b/library/ui/src/main/res/values-pa/strings.xml @@ -12,7 +12,6 @@ ਸਾਰਿਆਂ ਨੂੰ ਦੁਹਰਾਓ ਬੇਤਰਤੀਬ ਕਰੋ ਪੂਰੀ-ਸਕ੍ਰੀਨ ਮੋਡ - ਡਾਊਨਲੋਡ ਕਤਾਰਬੱਧ ਕੀਤਾ ਗਿਆ ਡਾਊਨਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ ਡਾਊਨਲੋਡ ਮੁਕੰਮਲ ਹੋਇਆ ਡਾਊਨਲੋਡ ਅਸਫਲ ਰਿਹਾ diff --git a/library/ui/src/main/res/values-pl/strings.xml b/library/ui/src/main/res/values-pl/strings.xml index ef341f88e4..6beca2d401 100644 --- a/library/ui/src/main/res/values-pl/strings.xml +++ b/library/ui/src/main/res/values-pl/strings.xml @@ -12,7 +12,6 @@ Powtórz wszystkie Odtwarzanie losowe Tryb pełnoekranowy - W kolejce pobierania Pobieranie Zakończono pobieranie Nie udało się pobrać diff --git a/library/ui/src/main/res/values-pt-rPT/strings.xml b/library/ui/src/main/res/values-pt-rPT/strings.xml index 06fc3cc5eb..0251ce5bb6 100644 --- a/library/ui/src/main/res/values-pt-rPT/strings.xml +++ b/library/ui/src/main/res/values-pt-rPT/strings.xml @@ -12,7 +12,6 @@ Repetir tudo Reproduzir aleatoriamente Modo de ecrã inteiro - Transfer. em fila de espera A transferir… Transferência concluída Falha na transferência diff --git a/library/ui/src/main/res/values-pt/strings.xml b/library/ui/src/main/res/values-pt/strings.xml index 9c25f7de5f..af55905723 100644 --- a/library/ui/src/main/res/values-pt/strings.xml +++ b/library/ui/src/main/res/values-pt/strings.xml @@ -12,7 +12,6 @@ Repetir tudo Aleatório Modo de tela cheia - Item na fila de download Fazendo download Download concluído Falha no download diff --git a/library/ui/src/main/res/values-ro/strings.xml b/library/ui/src/main/res/values-ro/strings.xml index 4541a6c6e8..144049d231 100644 --- a/library/ui/src/main/res/values-ro/strings.xml +++ b/library/ui/src/main/res/values-ro/strings.xml @@ -12,7 +12,6 @@ Repetați-le pe toate Redați aleatoriu Modul Ecran complet - Descărcarea este în lista de așteptare Se descarcă Descărcarea a fost finalizată Descărcarea nu a reușit diff --git a/library/ui/src/main/res/values-ru/strings.xml b/library/ui/src/main/res/values-ru/strings.xml index 4e030ef5a4..53a91a08c5 100644 --- a/library/ui/src/main/res/values-ru/strings.xml +++ b/library/ui/src/main/res/values-ru/strings.xml @@ -12,7 +12,6 @@ Повторять все Перемешать Полноэкранный режим - В очереди на скачивание Загрузка файлов Скачивание завершено Ошибка скачивания diff --git a/library/ui/src/main/res/values-si/strings.xml b/library/ui/src/main/res/values-si/strings.xml index 0ccc0b9d26..0d5e334b6c 100644 --- a/library/ui/src/main/res/values-si/strings.xml +++ b/library/ui/src/main/res/values-si/strings.xml @@ -12,7 +12,6 @@ සියල්ල පුනරාවර්තනය කරන්න කලවම් කරන්න සම්පූර්ණ තිර ප්‍රකාරය - බාගැනීම පේළියට තබන ලදී බාගනිමින් බාගැනීම සම්පූර්ණ කරන ලදී බාගැනීම අසමත් විය diff --git a/library/ui/src/main/res/values-sk/strings.xml b/library/ui/src/main/res/values-sk/strings.xml index c827282b95..1ae27b1e4a 100644 --- a/library/ui/src/main/res/values-sk/strings.xml +++ b/library/ui/src/main/res/values-sk/strings.xml @@ -12,7 +12,6 @@ Opakovať všetko Náhodne prehrávať Režim celej obrazovky - Sťahovanie je v poradí Sťahuje sa Sťahovanie bolo dokončené Nepodarilo sa stiahnuť diff --git a/library/ui/src/main/res/values-sl/strings.xml b/library/ui/src/main/res/values-sl/strings.xml index c26a91826e..0a3a013ee0 100644 --- a/library/ui/src/main/res/values-sl/strings.xml +++ b/library/ui/src/main/res/values-sl/strings.xml @@ -12,7 +12,6 @@ Ponavljanje vseh Naključno predvajanje Celozaslonski način - Prenos je v čakalni vrsti Prenašanje Prenos je končan Prenos ni uspel diff --git a/library/ui/src/main/res/values-sq/strings.xml b/library/ui/src/main/res/values-sq/strings.xml index 56868ce503..0611398306 100644 --- a/library/ui/src/main/res/values-sq/strings.xml +++ b/library/ui/src/main/res/values-sq/strings.xml @@ -12,7 +12,6 @@ Përsërit të gjitha Përziej Modaliteti me ekran të plotë - Shkarkimi u vendos në radhë Po shkarkohet Shkarkimi përfundoi Shkarkimi dështoi diff --git a/library/ui/src/main/res/values-sr/strings.xml b/library/ui/src/main/res/values-sr/strings.xml index 8ba19a51a6..9e7b3918d5 100644 --- a/library/ui/src/main/res/values-sr/strings.xml +++ b/library/ui/src/main/res/values-sr/strings.xml @@ -12,7 +12,6 @@ Понови све Пусти насумично Режим целог екрана - Преузимање је на чекању Преузимање Преузимање је завршено Преузимање није успело diff --git a/library/ui/src/main/res/values-sv/strings.xml b/library/ui/src/main/res/values-sv/strings.xml index 6840738ba1..e7bcc05f6d 100644 --- a/library/ui/src/main/res/values-sv/strings.xml +++ b/library/ui/src/main/res/values-sv/strings.xml @@ -12,7 +12,6 @@ Upprepa alla Blanda spår Helskärmsläge - Nedladdningen har köplacerats Laddar ned Nedladdningen är klar Nedladdningen misslyckades diff --git a/library/ui/src/main/res/values-sw/strings.xml b/library/ui/src/main/res/values-sw/strings.xml index 5db4ee5995..5ee3613e8b 100644 --- a/library/ui/src/main/res/values-sw/strings.xml +++ b/library/ui/src/main/res/values-sw/strings.xml @@ -12,7 +12,6 @@ Rudia zote Changanya Hali ya skrini nzima - Inasubiri kupakuliwa Inapakua Imepakuliwa Imeshindwa kupakua diff --git a/library/ui/src/main/res/values-ta/strings.xml b/library/ui/src/main/res/values-ta/strings.xml index 65f02a38a2..7fa7a1e298 100644 --- a/library/ui/src/main/res/values-ta/strings.xml +++ b/library/ui/src/main/res/values-ta/strings.xml @@ -12,7 +12,6 @@ அனைத்தையும் மீண்டும் இயக்கு கலைத்துப் போடு முழுத்திரைப் பயன்முறை - பதிவிறக்கம், வரிசையில் உள்ளது பதிவிறக்கப்படுகிறது பதிவிறக்கப்பட்டது பதிவிறக்க முடியவில்லை diff --git a/library/ui/src/main/res/values-te/strings.xml b/library/ui/src/main/res/values-te/strings.xml index d27afe9ce7..038ac32afa 100644 --- a/library/ui/src/main/res/values-te/strings.xml +++ b/library/ui/src/main/res/values-te/strings.xml @@ -12,7 +12,6 @@ అన్నింటినీ పునరావృతం చేయండి షఫుల్ చేయండి పూర్తి స్క్రీన్ మోడ్ - డౌన్‌లోడ్ క్రమవరుసలో ఉంది డౌన్‌లోడ్ చేస్తోంది డౌన్‌లోడ్ పూర్తయింది డౌన్‌లోడ్ విఫలమైంది diff --git a/library/ui/src/main/res/values-th/strings.xml b/library/ui/src/main/res/values-th/strings.xml index bb5edb211c..f472433913 100644 --- a/library/ui/src/main/res/values-th/strings.xml +++ b/library/ui/src/main/res/values-th/strings.xml @@ -12,7 +12,6 @@ เล่นซ้ำทั้งหมด สุ่ม โหมดเต็มหน้าจอ - การดาวน์โหลดอยู่ในคิว กำลังดาวน์โหลด การดาวน์โหลดเสร็จสมบูรณ์ การดาวน์โหลดล้มเหลว diff --git a/library/ui/src/main/res/values-tl/strings.xml b/library/ui/src/main/res/values-tl/strings.xml index 4807026e05..31779c8172 100644 --- a/library/ui/src/main/res/values-tl/strings.xml +++ b/library/ui/src/main/res/values-tl/strings.xml @@ -12,7 +12,6 @@ Ulitin lahat I-shuffle Fullscreen mode - Naka-queue ang download Nagda-download Tapos na ang pag-download Hindi na-download diff --git a/library/ui/src/main/res/values-tr/strings.xml b/library/ui/src/main/res/values-tr/strings.xml index a8a409676f..66f7870839 100644 --- a/library/ui/src/main/res/values-tr/strings.xml +++ b/library/ui/src/main/res/values-tr/strings.xml @@ -12,7 +12,6 @@ Tümünü tekrarla Karıştır Tam ekran modu - İndirme işlemi sıraya alındı İndiriliyor İndirme işlemi tamamlandı İndirilemedi diff --git a/library/ui/src/main/res/values-uk/strings.xml b/library/ui/src/main/res/values-uk/strings.xml index 44190c4dde..a73379572d 100644 --- a/library/ui/src/main/res/values-uk/strings.xml +++ b/library/ui/src/main/res/values-uk/strings.xml @@ -12,7 +12,6 @@ Повторити всі Перемішати Повноекранний режим - Завантаження розміщено в черзі Завантажується Завантаження завершено Не вдалося завантажити diff --git a/library/ui/src/main/res/values-ur/strings.xml b/library/ui/src/main/res/values-ur/strings.xml index 26e1b0e060..99451aa622 100644 --- a/library/ui/src/main/res/values-ur/strings.xml +++ b/library/ui/src/main/res/values-ur/strings.xml @@ -12,7 +12,6 @@ سبھی کو دہرائیں شفل کریں پوری اسکرین والی وضع - ڈاؤن لوڈ قطار بند ہے ڈاؤن لوڈ کیا جا رہا ہے ڈاؤن لوڈ مکمل ہو گیا ڈاؤن لوڈ ناکام ہو گیا diff --git a/library/ui/src/main/res/values-uz/strings.xml b/library/ui/src/main/res/values-uz/strings.xml index 26d37380d7..fbc30c1de2 100644 --- a/library/ui/src/main/res/values-uz/strings.xml +++ b/library/ui/src/main/res/values-uz/strings.xml @@ -12,7 +12,6 @@ Hammasini takrorlash Aralash Butun ekran rejimi - Yuklab olish navbatga olindi Yuklab olinmoqda Yuklab olindi Yuklab olinmadi diff --git a/library/ui/src/main/res/values-vi/strings.xml b/library/ui/src/main/res/values-vi/strings.xml index 2754eec898..c9cc4d910a 100644 --- a/library/ui/src/main/res/values-vi/strings.xml +++ b/library/ui/src/main/res/values-vi/strings.xml @@ -12,7 +12,6 @@ Lặp lại tất cả Phát ngẫu nhiên Chế độ toàn màn hình - Đã đưa tài nguyên đã tải xuống vào hàng đợi Đang tải xuống Đã hoàn tất tải xuống Không tải xuống được diff --git a/library/ui/src/main/res/values-zh-rCN/strings.xml b/library/ui/src/main/res/values-zh-rCN/strings.xml index cb8beae7b9..84868e8746 100644 --- a/library/ui/src/main/res/values-zh-rCN/strings.xml +++ b/library/ui/src/main/res/values-zh-rCN/strings.xml @@ -12,7 +12,6 @@ 全部重复播放 随机播放 全屏模式 - 已加入待下载队列 正在下载 下载完毕 下载失败 diff --git a/library/ui/src/main/res/values-zh-rHK/strings.xml b/library/ui/src/main/res/values-zh-rHK/strings.xml index a61c20a847..8cc210b1ef 100644 --- a/library/ui/src/main/res/values-zh-rHK/strings.xml +++ b/library/ui/src/main/res/values-zh-rHK/strings.xml @@ -12,7 +12,6 @@ 全部重複播放 隨機播放 全螢幕模式 - 已加入下載列 正在下載 下載完畢 下載失敗 diff --git a/library/ui/src/main/res/values-zh-rTW/strings.xml b/library/ui/src/main/res/values-zh-rTW/strings.xml index cd6a8c1703..a30fea1c04 100644 --- a/library/ui/src/main/res/values-zh-rTW/strings.xml +++ b/library/ui/src/main/res/values-zh-rTW/strings.xml @@ -12,7 +12,6 @@ 重複播放所有項目 隨機播放 全螢幕模式 - 已排入下載佇列 下載中 下載完成 無法下載 diff --git a/library/ui/src/main/res/values-zu/strings.xml b/library/ui/src/main/res/values-zu/strings.xml index 19bfab08fc..de9a39d3bd 100644 --- a/library/ui/src/main/res/values-zu/strings.xml +++ b/library/ui/src/main/res/values-zu/strings.xml @@ -12,7 +12,6 @@ Phinda konke Shova Imodi yesikrini esigcwele - Ukulanda kukulayini Iyalanda Ukulanda kuqedile Ukulanda kuhlulekile diff --git a/library/ui/src/main/res/values/strings.xml b/library/ui/src/main/res/values/strings.xml index c5967a260a..2675445d7f 100644 --- a/library/ui/src/main/res/values/strings.xml +++ b/library/ui/src/main/res/values/strings.xml @@ -38,8 +38,6 @@ Shuffle Fullscreen mode - - Download queued Downloading