diff --git a/core_settings.gradle b/core_settings.gradle index 20a7c87bde..7a8320b1a1 100644 --- a/core_settings.gradle +++ b/core_settings.gradle @@ -28,7 +28,6 @@ include modulePrefix + 'extension-ffmpeg' include modulePrefix + 'extension-flac' include modulePrefix + 'extension-gvr' include modulePrefix + 'extension-ima' -include modulePrefix + 'extension-cast' include modulePrefix + 'extension-mediasession' include modulePrefix + 'extension-okhttp' include modulePrefix + 'extension-opus' @@ -47,7 +46,6 @@ project(modulePrefix + 'extension-ffmpeg').projectDir = new File(rootDir, 'exten project(modulePrefix + 'extension-flac').projectDir = new File(rootDir, 'extensions/flac') project(modulePrefix + 'extension-gvr').projectDir = new File(rootDir, 'extensions/gvr') project(modulePrefix + 'extension-ima').projectDir = new File(rootDir, 'extensions/ima') -project(modulePrefix + 'extension-cast').projectDir = new File(rootDir, 'extensions/cast') project(modulePrefix + 'extension-mediasession').projectDir = new File(rootDir, 'extensions/mediasession') project(modulePrefix + 'extension-okhttp').projectDir = new File(rootDir, 'extensions/okhttp') project(modulePrefix + 'extension-opus').projectDir = new File(rootDir, 'extensions/opus') diff --git a/demos/main/proguard-rules.txt b/demos/main/proguard-rules.txt deleted file mode 100644 index de5e0a4203..0000000000 --- a/demos/main/proguard-rules.txt +++ /dev/null @@ -1,6 +0,0 @@ -# Proguard rules specific to the main demo app. - -# Constructor accessed via reflection in PlayerActivity --keepclassmembers class com.google.android.exoplayer2.ext.ima.ImaAdsLoader { - (android.content.Context, android.net.Uri); -} diff --git a/demos/main/src/main/proguard-rules.txt b/demos/main/src/main/proguard-rules.txt deleted file mode 100644 index de5e0a4203..0000000000 --- a/demos/main/src/main/proguard-rules.txt +++ /dev/null @@ -1,6 +0,0 @@ -# Proguard rules specific to the main demo app. - -# Constructor accessed via reflection in PlayerActivity --keepclassmembers class com.google.android.exoplayer2.ext.ima.ImaAdsLoader { - (android.content.Context, android.net.Uri); -} diff --git a/extensions/ima/proguard-rules.txt b/extensions/ima/proguard-rules.txt deleted file mode 100644 index feef3daf7a..0000000000 --- a/extensions/ima/proguard-rules.txt +++ /dev/null @@ -1,6 +0,0 @@ -# Proguard rules specific to the IMA extension. - --keep class com.google.ads.interactivemedia.** { *; } --keep interface com.google.ads.interactivemedia.** { *; } --keep class com.google.obf.** { *; } --keep interface com.google.obf.** { *; } diff --git a/extensions/ima/src/main/proguard-rules.txt b/extensions/ima/src/main/proguard-rules.txt deleted file mode 100644 index feef3daf7a..0000000000 --- a/extensions/ima/src/main/proguard-rules.txt +++ /dev/null @@ -1,6 +0,0 @@ -# Proguard rules specific to the IMA extension. - --keep class com.google.ads.interactivemedia.** { *; } --keep interface com.google.ads.interactivemedia.** { *; } --keep class com.google.obf.** { *; } --keep interface com.google.obf.** { *; } diff --git a/library/core/proguard-rules.txt b/library/core/proguard-rules.txt deleted file mode 100644 index 9eefd64d62..0000000000 --- a/library/core/proguard-rules.txt +++ /dev/null @@ -1,25 +0,0 @@ -# Proguard rules specific to the core module. - -# Constructors accessed via reflection in DefaultRenderersFactory --keepclassmembers class com.google.android.exoplayer2.ext.vp9.LibvpxVideoRenderer { - (boolean, long, android.os.Handler, com.google.android.exoplayer2.video.VideoRendererEventListener, int); -} --keepclassmembers class com.google.android.exoplayer2.ext.opus.LibopusAudioRenderer { - (android.os.Handler, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.audio.AudioProcessor[]); -} --keepclassmembers class com.google.android.exoplayer2.ext.flac.LibflacAudioRenderer { - (android.os.Handler, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.audio.AudioProcessor[]); -} --keepclassmembers class com.google.android.exoplayer2.ext.ffmpeg.FfmpegAudioRenderer { - (android.os.Handler, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.audio.AudioProcessor[]); -} - -# Constructors accessed via reflection in DefaultExtractorsFactory --keepclassmembers class com.google.android.exoplayer2.ext.flac.FlacExtractor { - (); -} - -# Constructors accessed via reflection in DefaultDataSource --keepclassmembers class com.google.android.exoplayer2.ext.rtmp.RtmpDataSource { - (); -} diff --git a/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImplInternal.java b/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImplInternal.java index f955b000db..977620c5de 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImplInternal.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImplInternal.java @@ -72,10 +72,10 @@ import java.util.Collections; private static final int MSG_PERIOD_PREPARED = 9; private static final int MSG_SOURCE_CONTINUE_LOADING_REQUESTED = 10; private static final int MSG_TRACK_SELECTION_INVALIDATED = 11; - private static final int MSG_CUSTOM = 12; - private static final int MSG_SET_REPEAT_MODE = 13; - private static final int MSG_SET_SHUFFLE_ENABLED = 14; - private static final int MSG_SEND_MESSAGE_TO_TARGET = 15; + private static final int MSG_SET_REPEAT_MODE = 12; + private static final int MSG_SET_SHUFFLE_ENABLED = 13; + private static final int MSG_SEND_MESSAGE = 14; + private static final int MSG_SEND_MESSAGE_TO_TARGET_THREAD = 15; private static final int PREPARING_SOURCE_INTERVAL_MS = 10; private static final int RENDERING_INTERVAL_MS = 10; @@ -104,7 +104,7 @@ import java.util.Collections; private final boolean retainBackBufferFromKeyframe; private final DefaultMediaClock mediaClock; private final PlaybackInfoUpdate playbackInfoUpdate; - private final ArrayList customMessageInfos; + private final ArrayList pendingMessages; private final Clock clock; private final MediaPeriodQueue queue; @@ -123,7 +123,7 @@ import java.util.Collections; private int pendingPrepareCount; private SeekPosition pendingInitialSeekPosition; private long rendererPositionUs; - private int nextCustomMessageInfoIndex; + private int nextPendingMessageIndex; public ExoPlayerImplInternal( Renderer[] renderers, @@ -162,7 +162,7 @@ import java.util.Collections; rendererCapabilities[i] = renderers[i].getCapabilities(); } mediaClock = new DefaultMediaClock(this, clock); - customMessageInfos = new ArrayList<>(); + pendingMessages = new ArrayList<>(); enabledRenderers = new Renderer[0]; window = new Timeline.Window(); period = new Timeline.Period(); @@ -217,7 +217,7 @@ import java.util.Collections; message.markAsProcessed(/* isDelivered= */ false); return; } - handler.obtainMessage(MSG_CUSTOM, message).sendToTarget(); + handler.obtainMessage(MSG_SEND_MESSAGE, message).sendToTarget(); } public synchronized void release() { @@ -324,11 +324,11 @@ import java.util.Collections; case MSG_TRACK_SELECTION_INVALIDATED: reselectTracksInternal(); break; - case MSG_CUSTOM: + case MSG_SEND_MESSAGE: sendMessageInternal((PlayerMessage) msg.obj); break; - case MSG_SEND_MESSAGE_TO_TARGET: - sendCustomMessageToTargetThread((PlayerMessage) msg.obj); + case MSG_SEND_MESSAGE_TO_TARGET_THREAD: + sendMessageToTargetThread((PlayerMessage) msg.obj); break; case MSG_RELEASE: releaseInternal(); @@ -504,7 +504,7 @@ import java.util.Collections; } else { rendererPositionUs = mediaClock.syncAndGetPositionUs(); periodPositionUs = playingPeriodHolder.toPeriodTime(rendererPositionUs); - maybeTriggerCustomMessages(playbackInfo.positionUs, periodPositionUs); + maybeTriggerPendingMessages(playbackInfo.positionUs, periodPositionUs); playbackInfo.positionUs = periodPositionUs; } @@ -805,11 +805,11 @@ import java.util.Collections; } if (resetState) { queue.setTimeline(null); - for (CustomMessageInfo customMessageInfo : customMessageInfos) { - customMessageInfo.message.markAsProcessed(/* isDelivered= */ false); + for (PendingMessageInfo pendingMessageInfo : pendingMessages) { + pendingMessageInfo.message.markAsProcessed(/* isDelivered= */ false); } - customMessageInfos.clear(); - nextCustomMessageInfoIndex = 0; + pendingMessages.clear(); + nextPendingMessageIndex = 0; } playbackInfo = new PlaybackInfo( @@ -833,48 +833,48 @@ import java.util.Collections; private void sendMessageInternal(PlayerMessage message) { if (message.getPositionMs() == C.TIME_UNSET) { // If no delivery time is specified, trigger immediate message delivery. - sendCustomMessageToTarget(message); + sendMessageToTarget(message); } else if (playbackInfo.timeline == null) { // Still waiting for initial timeline to resolve position. - customMessageInfos.add(new CustomMessageInfo(message)); + pendingMessages.add(new PendingMessageInfo(message)); } else { - CustomMessageInfo customMessageInfo = new CustomMessageInfo(message); - if (resolveCustomMessagePosition(customMessageInfo)) { - customMessageInfos.add(customMessageInfo); + PendingMessageInfo pendingMessageInfo = new PendingMessageInfo(message); + if (resolvePendingMessagePosition(pendingMessageInfo)) { + pendingMessages.add(pendingMessageInfo); // Ensure new message is inserted according to playback order. - Collections.sort(customMessageInfos); + Collections.sort(pendingMessages); } else { message.markAsProcessed(/* isDelivered= */ false); } } } - private void sendCustomMessageToTarget(PlayerMessage message) { + private void sendMessageToTarget(PlayerMessage message) { if (message.getHandler().getLooper() == handler.getLooper()) { - deliverCustomMessage(message); + deliverMessage(message); if (playbackInfo.playbackState == Player.STATE_READY || playbackInfo.playbackState == Player.STATE_BUFFERING) { // The message may have caused something to change that now requires us to do work. handler.sendEmptyMessage(MSG_DO_SOME_WORK); } } else { - handler.obtainMessage(MSG_SEND_MESSAGE_TO_TARGET, message).sendToTarget(); + handler.obtainMessage(MSG_SEND_MESSAGE_TO_TARGET_THREAD, message).sendToTarget(); } } - private void sendCustomMessageToTargetThread(final PlayerMessage message) { + private void sendMessageToTargetThread(final PlayerMessage message) { message .getHandler() .post( new Runnable() { @Override public void run() { - deliverCustomMessage(message); + deliverMessage(message); } }); } - private void deliverCustomMessage(PlayerMessage message) { + private void deliverMessage(PlayerMessage message) { try { message.getTarget().handleMessage(message.getType(), message.getPayload()); } catch (ExoPlaybackException e) { @@ -884,48 +884,48 @@ import java.util.Collections; } } - private void resolveCustomMessagePositions() { - for (int i = customMessageInfos.size() - 1; i >= 0; i--) { - if (!resolveCustomMessagePosition(customMessageInfos.get(i))) { - // Remove messages if new position can't be resolved. - customMessageInfos.get(i).message.markAsProcessed(/* isDelivered= */ false); - customMessageInfos.remove(i); + private void resolvePendingMessagePositions() { + for (int i = pendingMessages.size() - 1; i >= 0; i--) { + if (!resolvePendingMessagePosition(pendingMessages.get(i))) { + // Unable to resolve a new position for the message. Remove it. + pendingMessages.get(i).message.markAsProcessed(/* isDelivered= */ false); + pendingMessages.remove(i); } } // Re-sort messages by playback order. - Collections.sort(customMessageInfos); + Collections.sort(pendingMessages); } - private boolean resolveCustomMessagePosition(CustomMessageInfo customMessageInfo) { - if (customMessageInfo.resolvedPeriodUid == null) { + private boolean resolvePendingMessagePosition(PendingMessageInfo pendingMessageInfo) { + if (pendingMessageInfo.resolvedPeriodUid == null) { // Position is still unresolved. Try to find window in current timeline. Pair periodPosition = resolveSeekPosition( new SeekPosition( - customMessageInfo.message.getTimeline(), - customMessageInfo.message.getWindowIndex(), - C.msToUs(customMessageInfo.message.getPositionMs())), + pendingMessageInfo.message.getTimeline(), + pendingMessageInfo.message.getWindowIndex(), + C.msToUs(pendingMessageInfo.message.getPositionMs())), /* trySubsequentPeriods= */ false); if (periodPosition == null) { return false; } - customMessageInfo.setResolvedPosition( + pendingMessageInfo.setResolvedPosition( periodPosition.first, periodPosition.second, playbackInfo.timeline.getPeriod(periodPosition.first, period, true).uid); } else { // Position has been resolved for a previous timeline. Try to find the updated period index. - int index = playbackInfo.timeline.getIndexOfPeriod(customMessageInfo.resolvedPeriodUid); + int index = playbackInfo.timeline.getIndexOfPeriod(pendingMessageInfo.resolvedPeriodUid); if (index == C.INDEX_UNSET) { return false; } - customMessageInfo.resolvedPeriodIndex = index; + pendingMessageInfo.resolvedPeriodIndex = index; } return true; } - private void maybeTriggerCustomMessages(long oldPeriodPositionUs, long newPeriodPositionUs) { - if (customMessageInfos.isEmpty() || playbackInfo.periodId.isAd()) { + private void maybeTriggerPendingMessages(long oldPeriodPositionUs, long newPeriodPositionUs) { + if (pendingMessages.isEmpty() || playbackInfo.periodId.isAd()) { return; } // If this is the first call from the start position, include oldPeriodPositionUs in potential @@ -935,33 +935,29 @@ import java.util.Collections; } // Correct next index if necessary (e.g. after seeking, timeline changes, or new messages) int currentPeriodIndex = playbackInfo.periodId.periodIndex; - CustomMessageInfo prevInfo = - nextCustomMessageInfoIndex > 0 - ? customMessageInfos.get(nextCustomMessageInfoIndex - 1) - : null; - while (prevInfo != null - && (prevInfo.resolvedPeriodIndex > currentPeriodIndex - || (prevInfo.resolvedPeriodIndex == currentPeriodIndex - && prevInfo.resolvedPeriodTimeUs > oldPeriodPositionUs))) { - nextCustomMessageInfoIndex--; - prevInfo = - nextCustomMessageInfoIndex > 0 - ? customMessageInfos.get(nextCustomMessageInfoIndex - 1) - : null; + PendingMessageInfo previousInfo = + nextPendingMessageIndex > 0 ? pendingMessages.get(nextPendingMessageIndex - 1) : null; + while (previousInfo != null + && (previousInfo.resolvedPeriodIndex > currentPeriodIndex + || (previousInfo.resolvedPeriodIndex == currentPeriodIndex + && previousInfo.resolvedPeriodTimeUs > oldPeriodPositionUs))) { + nextPendingMessageIndex--; + previousInfo = + nextPendingMessageIndex > 0 ? pendingMessages.get(nextPendingMessageIndex - 1) : null; } - CustomMessageInfo nextInfo = - nextCustomMessageInfoIndex < customMessageInfos.size() - ? customMessageInfos.get(nextCustomMessageInfoIndex) + PendingMessageInfo nextInfo = + nextPendingMessageIndex < pendingMessages.size() + ? pendingMessages.get(nextPendingMessageIndex) : null; while (nextInfo != null && nextInfo.resolvedPeriodUid != null && (nextInfo.resolvedPeriodIndex < currentPeriodIndex || (nextInfo.resolvedPeriodIndex == currentPeriodIndex && nextInfo.resolvedPeriodTimeUs <= oldPeriodPositionUs))) { - nextCustomMessageInfoIndex++; + nextPendingMessageIndex++; nextInfo = - nextCustomMessageInfoIndex < customMessageInfos.size() - ? customMessageInfos.get(nextCustomMessageInfoIndex) + nextPendingMessageIndex < pendingMessages.size() + ? pendingMessages.get(nextPendingMessageIndex) : null; } // Check if any message falls within the covered time span. @@ -970,15 +966,15 @@ import java.util.Collections; && nextInfo.resolvedPeriodIndex == currentPeriodIndex && nextInfo.resolvedPeriodTimeUs > oldPeriodPositionUs && nextInfo.resolvedPeriodTimeUs <= newPeriodPositionUs) { - sendCustomMessageToTarget(nextInfo.message); + sendMessageToTarget(nextInfo.message); if (nextInfo.message.getDeleteAfterDelivery()) { - customMessageInfos.remove(nextCustomMessageInfoIndex); + pendingMessages.remove(nextPendingMessageIndex); } else { - nextCustomMessageInfoIndex++; + nextPendingMessageIndex++; } nextInfo = - nextCustomMessageInfoIndex < customMessageInfos.size() - ? customMessageInfos.get(nextCustomMessageInfoIndex) + nextPendingMessageIndex < pendingMessages.size() + ? pendingMessages.get(nextPendingMessageIndex) : null; } } @@ -1157,7 +1153,7 @@ import java.util.Collections; Object manifest = sourceRefreshInfo.manifest; queue.setTimeline(timeline); playbackInfo = playbackInfo.copyWithTimeline(timeline, manifest); - resolveCustomMessagePositions(); + resolvePendingMessagePositions(); if (oldTimeline == null) { playbackInfoUpdate.incrementPendingOperationAcks(pendingPrepareCount); @@ -1689,7 +1685,7 @@ import java.util.Collections; } } - private static final class CustomMessageInfo implements Comparable { + private static final class PendingMessageInfo implements Comparable { public final PlayerMessage message; @@ -1697,7 +1693,7 @@ import java.util.Collections; public long resolvedPeriodTimeUs; public @Nullable Object resolvedPeriodUid; - public CustomMessageInfo(PlayerMessage message) { + public PendingMessageInfo(PlayerMessage message) { this.message = message; } @@ -1708,9 +1704,9 @@ import java.util.Collections; } @Override - public int compareTo(@NonNull CustomMessageInfo other) { + public int compareTo(@NonNull PendingMessageInfo other) { if ((resolvedPeriodUid == null) != (other.resolvedPeriodUid == null)) { - // CustomMessageInfos with a resolved period position are always smaller. + // PendingMessageInfos with a resolved period position are always smaller. return resolvedPeriodUid != null ? -1 : 1; } if (resolvedPeriodUid == null) { diff --git a/library/core/src/main/java/com/google/android/exoplayer2/mediacodec/MediaCodecRenderer.java b/library/core/src/main/java/com/google/android/exoplayer2/mediacodec/MediaCodecRenderer.java index 99d96865af..832b2a9870 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/mediacodec/MediaCodecRenderer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/mediacodec/MediaCodecRenderer.java @@ -224,6 +224,7 @@ public abstract class MediaCodecRenderer extends BaseRenderer { private long codecHotswapDeadlineMs; private int inputIndex; private int outputIndex; + private ByteBuffer outputBuffer; private boolean shouldSkipOutputBuffer; private boolean codecReconfigured; private @ReconfigurationState int codecReconfigurationState; @@ -322,7 +323,6 @@ public abstract class MediaCodecRenderer extends BaseRenderer { protected abstract void configureCodec(MediaCodecInfo codecInfo, MediaCodec codec, Format format, MediaCrypto crypto) throws DecoderQueryException; - @SuppressWarnings("deprecation") protected final void maybeInitCodec() throws ExoPlaybackException { if (codec != null || format == null) { // We have a codec already, or we don't have a format with which to instantiate one. @@ -402,16 +402,15 @@ public abstract class MediaCodecRenderer extends BaseRenderer { long codecInitializedTimestamp = SystemClock.elapsedRealtime(); onCodecInitialized(codecName, codecInitializedTimestamp, codecInitializedTimestamp - codecInitializingTimestamp); - inputBuffers = codec.getInputBuffers(); - outputBuffers = codec.getOutputBuffers(); + getCodecBuffers(); } catch (Exception e) { throwDecoderInitError(new DecoderInitializationException(format, e, drmSessionRequiresSecureDecoder, codecName)); } codecHotswapDeadlineMs = getState() == STATE_STARTED ? (SystemClock.elapsedRealtime() + MAX_CODEC_HOTSWAP_TIME_MS) : C.TIME_UNSET; - inputIndex = C.INDEX_UNSET; - outputIndex = C.INDEX_UNSET; + resetInputBuffer(); + resetOutputBuffer(); waitingForFirstSyncFrame = true; decoderCounters.decoderInitCount++; } @@ -487,13 +486,12 @@ public abstract class MediaCodecRenderer extends BaseRenderer { protected void releaseCodec() { codecHotswapDeadlineMs = C.TIME_UNSET; - inputIndex = C.INDEX_UNSET; - outputIndex = C.INDEX_UNSET; + resetInputBuffer(); + resetOutputBuffer(); waitingForKeys = false; shouldSkipOutputBuffer = false; decodeOnlyPresentationTimestamps.clear(); - inputBuffers = null; - outputBuffers = null; + resetCodecBuffers(); codecInfo = null; codecReconfigured = false; codecReceivedBuffers = false; @@ -508,7 +506,6 @@ public abstract class MediaCodecRenderer extends BaseRenderer { codecReceivedEos = false; codecReconfigurationState = RECONFIGURATION_STATE_NONE; codecReinitializationState = REINITIALIZATION_STATE_NONE; - buffer.data = null; if (codec != null) { decoderCounters.decoderReleaseCount++; try { @@ -591,8 +588,8 @@ public abstract class MediaCodecRenderer extends BaseRenderer { protected void flushCodec() throws ExoPlaybackException { codecHotswapDeadlineMs = C.TIME_UNSET; - inputIndex = C.INDEX_UNSET; - outputIndex = C.INDEX_UNSET; + resetInputBuffer(); + resetOutputBuffer(); waitingForFirstSyncFrame = true; waitingForKeys = false; shouldSkipOutputBuffer = false; @@ -635,7 +632,7 @@ public abstract class MediaCodecRenderer extends BaseRenderer { if (inputIndex < 0) { return false; } - buffer.data = inputBuffers[inputIndex]; + buffer.data = getInputBuffer(inputIndex); buffer.clear(); } @@ -647,7 +644,7 @@ public abstract class MediaCodecRenderer extends BaseRenderer { } else { codecReceivedEos = true; codec.queueInputBuffer(inputIndex, 0, 0, 0, MediaCodec.BUFFER_FLAG_END_OF_STREAM); - inputIndex = C.INDEX_UNSET; + resetInputBuffer(); } codecReinitializationState = REINITIALIZATION_STATE_WAIT_END_OF_STREAM; return false; @@ -657,7 +654,7 @@ public abstract class MediaCodecRenderer extends BaseRenderer { codecNeedsAdaptationWorkaroundBuffer = false; buffer.data.put(ADAPTATION_WORKAROUND_BUFFER); codec.queueInputBuffer(inputIndex, 0, ADAPTATION_WORKAROUND_BUFFER.length, 0, 0); - inputIndex = C.INDEX_UNSET; + resetInputBuffer(); codecReceivedBuffers = true; return true; } @@ -715,7 +712,7 @@ public abstract class MediaCodecRenderer extends BaseRenderer { } else { codecReceivedEos = true; codec.queueInputBuffer(inputIndex, 0, 0, 0, MediaCodec.BUFFER_FLAG_END_OF_STREAM); - inputIndex = C.INDEX_UNSET; + resetInputBuffer(); } } catch (CryptoException e) { throw ExoPlaybackException.createForRenderer(e, getIndex()); @@ -760,7 +757,7 @@ public abstract class MediaCodecRenderer extends BaseRenderer { } else { codec.queueInputBuffer(inputIndex, 0, buffer.data.limit(), presentationTimeUs, 0); } - inputIndex = C.INDEX_UNSET; + resetInputBuffer(); codecReceivedBuffers = true; codecReconfigurationState = RECONFIGURATION_STATE_NONE; decoderCounters.inputBufferCount++; @@ -770,6 +767,56 @@ public abstract class MediaCodecRenderer extends BaseRenderer { return true; } + private void getCodecBuffers() { + if (Util.SDK_INT < 21) { + inputBuffers = codec.getInputBuffers(); + outputBuffers = codec.getOutputBuffers(); + } + } + + private void resetCodecBuffers() { + if (Util.SDK_INT < 21) { + inputBuffers = null; + outputBuffers = null; + } + } + + private ByteBuffer getInputBuffer(int inputIndex) { + if (Util.SDK_INT >= 21) { + return codec.getInputBuffer(inputIndex); + } else { + return inputBuffers[inputIndex]; + } + } + + private void setOutputBuffer(int outputIndex) { + this.outputIndex = outputIndex; + if (Util.SDK_INT >= 21) { + outputBuffer = codec.getOutputBuffer(outputIndex); + } else { + outputBuffer = outputBuffers[outputIndex]; + } + // The dequeued buffer is a media buffer. Do some initial setup. + if (outputBuffer != null) { + outputBuffer.position(outputBufferInfo.offset); + outputBuffer.limit(outputBufferInfo.offset + outputBufferInfo.size); + } + } + + private boolean hasOutputBuffer() { + return outputIndex >= 0; + } + + private void resetInputBuffer() { + inputIndex = C.INDEX_UNSET; + buffer.data = null; + } + + private void resetOutputBuffer() { + outputIndex = C.INDEX_UNSET; + outputBuffer = null; + } + private static MediaCodec.CryptoInfo getFrameworkCryptoInfo(DecoderInputBuffer buffer, int adaptiveReconfigurationBytes) { MediaCodec.CryptoInfo cryptoInfo = buffer.cryptoInfo.getFrameworkCryptoInfoV16(); @@ -922,9 +969,12 @@ public abstract class MediaCodecRenderer extends BaseRenderer { @Override public boolean isReady() { - return format != null && !waitingForKeys && (isSourceReady() || outputIndex >= 0 - || (codecHotswapDeadlineMs != C.TIME_UNSET - && SystemClock.elapsedRealtime() < codecHotswapDeadlineMs)); + return format != null + && !waitingForKeys + && (isSourceReady() + || hasOutputBuffer() + || (codecHotswapDeadlineMs != C.TIME_UNSET + && SystemClock.elapsedRealtime() < codecHotswapDeadlineMs)); } /** @@ -940,14 +990,14 @@ public abstract class MediaCodecRenderer extends BaseRenderer { * @return Whether it may be possible to drain more output data. * @throws ExoPlaybackException If an error occurs draining the output buffer. */ - @SuppressWarnings("deprecation") private boolean drainOutputBuffer(long positionUs, long elapsedRealtimeUs) throws ExoPlaybackException { - if (outputIndex < 0) { + if (!hasOutputBuffer()) { + int outputIndex; if (codecNeedsEosOutputExceptionWorkaround && codecReceivedEos) { try { - outputIndex = codec.dequeueOutputBuffer(outputBufferInfo, - getDequeueOutputBufferTimeoutUs()); + outputIndex = + codec.dequeueOutputBuffer(outputBufferInfo, getDequeueOutputBufferTimeoutUs()); } catch (IllegalStateException e) { processEndOfStream(); if (outputStreamEnded) { @@ -957,30 +1007,24 @@ public abstract class MediaCodecRenderer extends BaseRenderer { return false; } } else { - outputIndex = codec.dequeueOutputBuffer(outputBufferInfo, - getDequeueOutputBufferTimeoutUs()); + outputIndex = + codec.dequeueOutputBuffer(outputBufferInfo, getDequeueOutputBufferTimeoutUs()); } + if (outputIndex >= 0) { // We've dequeued a buffer. if (shouldSkipAdaptationWorkaroundOutputBuffer) { shouldSkipAdaptationWorkaroundOutputBuffer = false; codec.releaseOutputBuffer(outputIndex, false); - outputIndex = C.INDEX_UNSET; return true; - } - if ((outputBufferInfo.flags & MediaCodec.BUFFER_FLAG_END_OF_STREAM) != 0) { + } else if ((outputBufferInfo.flags & MediaCodec.BUFFER_FLAG_END_OF_STREAM) != 0) { // The dequeued buffer indicates the end of the stream. Process it immediately. processEndOfStream(); - outputIndex = C.INDEX_UNSET; return false; } else { - // The dequeued buffer is a media buffer. Do some initial setup. The buffer will be - // processed by calling processOutputBuffer (possibly multiple times) below. - ByteBuffer outputBuffer = outputBuffers[outputIndex]; - if (outputBuffer != null) { - outputBuffer.position(outputBufferInfo.offset); - outputBuffer.limit(outputBufferInfo.offset + outputBufferInfo.size); - } + // The dequeued buffer is a media buffer. It will be processed by calling + // processOutputBuffer (possibly multiple times). + setOutputBuffer(outputIndex); shouldSkipOutputBuffer = shouldSkipOutputBuffer(outputBufferInfo.presentationTimeUs); } } else if (outputIndex == MediaCodec.INFO_OUTPUT_FORMAT_CHANGED /* (-2) */) { @@ -990,8 +1034,9 @@ public abstract class MediaCodecRenderer extends BaseRenderer { processOutputBuffersChanged(); return true; } else /* MediaCodec.INFO_TRY_AGAIN_LATER (-1) or unknown negative return value */ { - if (codecNeedsEosPropagationWorkaround && (inputStreamEnded - || codecReinitializationState == REINITIALIZATION_STATE_WAIT_END_OF_STREAM)) { + if (codecNeedsEosPropagationWorkaround + && (inputStreamEnded + || codecReinitializationState == REINITIALIZATION_STATE_WAIT_END_OF_STREAM)) { processEndOfStream(); } return false; @@ -1001,9 +1046,16 @@ public abstract class MediaCodecRenderer extends BaseRenderer { boolean processedOutputBuffer; if (codecNeedsEosOutputExceptionWorkaround && codecReceivedEos) { try { - processedOutputBuffer = processOutputBuffer(positionUs, elapsedRealtimeUs, codec, - outputBuffers[outputIndex], outputIndex, outputBufferInfo.flags, - outputBufferInfo.presentationTimeUs, shouldSkipOutputBuffer); + processedOutputBuffer = + processOutputBuffer( + positionUs, + elapsedRealtimeUs, + codec, + outputBuffer, + outputIndex, + outputBufferInfo.flags, + outputBufferInfo.presentationTimeUs, + shouldSkipOutputBuffer); } catch (IllegalStateException e) { processEndOfStream(); if (outputStreamEnded) { @@ -1013,14 +1065,21 @@ public abstract class MediaCodecRenderer extends BaseRenderer { return false; } } else { - processedOutputBuffer = processOutputBuffer(positionUs, elapsedRealtimeUs, codec, - outputBuffers[outputIndex], outputIndex, outputBufferInfo.flags, - outputBufferInfo.presentationTimeUs, shouldSkipOutputBuffer); + processedOutputBuffer = + processOutputBuffer( + positionUs, + elapsedRealtimeUs, + codec, + outputBuffer, + outputIndex, + outputBufferInfo.flags, + outputBufferInfo.presentationTimeUs, + shouldSkipOutputBuffer); } if (processedOutputBuffer) { onProcessedOutputBuffer(outputBufferInfo.presentationTimeUs); - outputIndex = C.INDEX_UNSET; + resetOutputBuffer(); return true; } @@ -1048,9 +1107,10 @@ public abstract class MediaCodecRenderer extends BaseRenderer { /** * Processes a change in the output buffers. */ - @SuppressWarnings("deprecation") private void processOutputBuffersChanged() { - outputBuffers = codec.getOutputBuffers(); + if (Util.SDK_INT < 21) { + outputBuffers = codec.getOutputBuffers(); + } } /** diff --git a/library/ui/src/main/res/drawable-anydpi-v21/exo_controls_fullscreen_enter.xml b/library/ui/src/main/res/drawable-anydpi-v21/exo_controls_fullscreen_enter.xml deleted file mode 100644 index db11f299be..0000000000 --- a/library/ui/src/main/res/drawable-anydpi-v21/exo_controls_fullscreen_enter.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - diff --git a/library/ui/src/main/res/drawable-anydpi-v21/exo_controls_fullscreen_exit.xml b/library/ui/src/main/res/drawable-anydpi-v21/exo_controls_fullscreen_exit.xml deleted file mode 100644 index 782d9ff34d..0000000000 --- a/library/ui/src/main/res/drawable-anydpi-v21/exo_controls_fullscreen_exit.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - diff --git a/library/ui/src/main/res/drawable-hdpi/exo_controls_fullscreen_enter.png b/library/ui/src/main/res/drawable-hdpi/exo_controls_fullscreen_enter.png deleted file mode 100644 index 9b8131124d..0000000000 Binary files a/library/ui/src/main/res/drawable-hdpi/exo_controls_fullscreen_enter.png and /dev/null differ diff --git a/library/ui/src/main/res/drawable-hdpi/exo_controls_fullscreen_exit.png b/library/ui/src/main/res/drawable-hdpi/exo_controls_fullscreen_exit.png deleted file mode 100644 index 159bea7fd8..0000000000 Binary files a/library/ui/src/main/res/drawable-hdpi/exo_controls_fullscreen_exit.png and /dev/null differ diff --git a/library/ui/src/main/res/drawable-ldpi/exo_controls_fullscreen_enter.png b/library/ui/src/main/res/drawable-ldpi/exo_controls_fullscreen_enter.png deleted file mode 100644 index 9b8131124d..0000000000 Binary files a/library/ui/src/main/res/drawable-ldpi/exo_controls_fullscreen_enter.png and /dev/null differ diff --git a/library/ui/src/main/res/drawable-ldpi/exo_controls_fullscreen_exit.png b/library/ui/src/main/res/drawable-ldpi/exo_controls_fullscreen_exit.png deleted file mode 100644 index 159bea7fd8..0000000000 Binary files a/library/ui/src/main/res/drawable-ldpi/exo_controls_fullscreen_exit.png and /dev/null differ diff --git a/library/ui/src/main/res/drawable-mdpi/exo_controls_fullscreen_enter.png b/library/ui/src/main/res/drawable-mdpi/exo_controls_fullscreen_enter.png deleted file mode 100644 index 4423c7ce99..0000000000 Binary files a/library/ui/src/main/res/drawable-mdpi/exo_controls_fullscreen_enter.png and /dev/null differ diff --git a/library/ui/src/main/res/drawable-mdpi/exo_controls_fullscreen_exit.png b/library/ui/src/main/res/drawable-mdpi/exo_controls_fullscreen_exit.png deleted file mode 100644 index 364bad0b84..0000000000 Binary files a/library/ui/src/main/res/drawable-mdpi/exo_controls_fullscreen_exit.png and /dev/null differ diff --git a/library/ui/src/main/res/drawable-xhdpi/exo_controls_fullscreen_enter.png b/library/ui/src/main/res/drawable-xhdpi/exo_controls_fullscreen_enter.png deleted file mode 100644 index c1dcfb2902..0000000000 Binary files a/library/ui/src/main/res/drawable-xhdpi/exo_controls_fullscreen_enter.png and /dev/null differ diff --git a/library/ui/src/main/res/drawable-xhdpi/exo_controls_fullscreen_exit.png b/library/ui/src/main/res/drawable-xhdpi/exo_controls_fullscreen_exit.png deleted file mode 100644 index ef360fe40c..0000000000 Binary files a/library/ui/src/main/res/drawable-xhdpi/exo_controls_fullscreen_exit.png and /dev/null differ diff --git a/library/ui/src/main/res/drawable-xxhdpi/exo_controls_fullscreen_enter.png b/library/ui/src/main/res/drawable-xxhdpi/exo_controls_fullscreen_enter.png deleted file mode 100644 index a0a1b4d4f3..0000000000 Binary files a/library/ui/src/main/res/drawable-xxhdpi/exo_controls_fullscreen_enter.png and /dev/null differ diff --git a/library/ui/src/main/res/drawable-xxhdpi/exo_controls_fullscreen_exit.png b/library/ui/src/main/res/drawable-xxhdpi/exo_controls_fullscreen_exit.png deleted file mode 100644 index b7f4133fd9..0000000000 Binary files a/library/ui/src/main/res/drawable-xxhdpi/exo_controls_fullscreen_exit.png and /dev/null differ diff --git a/library/ui/src/main/res/values-af/strings.xml b/library/ui/src/main/res/values-af/strings.xml index f1c45cd7f7..7d32aaa99f 100644 --- a/library/ui/src/main/res/values-af/strings.xml +++ b/library/ui/src/main/res/values-af/strings.xml @@ -19,12 +19,10 @@ "Volgende snit" "Wag" "Speel" - "Stop" "Spoel terug" "Vinnig vorentoe" "Herhaal alles" "Herhaal niks" "Herhaal een" "Skommel" - Volskermmodus diff --git a/library/ui/src/main/res/values-am/strings.xml b/library/ui/src/main/res/values-am/strings.xml index 14d3ff0242..47dc757982 100644 --- a/library/ui/src/main/res/values-am/strings.xml +++ b/library/ui/src/main/res/values-am/strings.xml @@ -19,12 +19,10 @@ "ቀጣይ ትራክ" "ለአፍታ አቁም" "አጫውት" - "አቁም" - "ወደኋላ አጠንጥን" + "ወደኋላ አጠንጥን" "በፍጥነት አሳልፍ" "ሁሉንም ድገም" "ምንም አትድገም" "አንዱን ድገም" "በው" - ባለ ሙሉ ማያ ገጽ ሁኔታ diff --git a/library/ui/src/main/res/values-ar/strings.xml b/library/ui/src/main/res/values-ar/strings.xml index 2cc56abbfa..d5f3d889fe 100644 --- a/library/ui/src/main/res/values-ar/strings.xml +++ b/library/ui/src/main/res/values-ar/strings.xml @@ -19,12 +19,10 @@ "المقطع الصوتي التالي" "إيقاف مؤقت" "تشغيل" - "إيقاف" - "إرجاع" + "إرجاع" "تقديم سريع" "تكرار الكل" "عدم التكرار" "تكرار مقطع واحد" "ترتيب عشوائي" - وضع ملء الشاشة diff --git a/library/ui/src/main/res/values-az-rAZ/strings.xml b/library/ui/src/main/res/values-az-rAZ/strings.xml index 1071cd5542..51230912b8 100644 --- a/library/ui/src/main/res/values-az-rAZ/strings.xml +++ b/library/ui/src/main/res/values-az-rAZ/strings.xml @@ -19,8 +19,7 @@ "Növbəti trek" "Pauza" "Oyun" - "Dayandır" - "Geri sarıma" + "Geri sarıma" "Sürətlə irəli" "Bütün təkrarlayın" "Təkrar bir" 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 a9d35e5cb6..1726942109 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 @@ -19,8 +19,7 @@ "Sledeća pesma" "Pauza" "Pusti" - "Zaustavi" - "Premotaj unazad" + "Premotaj unazad" "Premotaj unapred" "Ponovi sve" "Ne ponavljaj nijednu" diff --git a/library/ui/src/main/res/values-be-rBY/strings.xml b/library/ui/src/main/res/values-be-rBY/strings.xml index 69b24ad5e9..6a6a08d814 100644 --- a/library/ui/src/main/res/values-be-rBY/strings.xml +++ b/library/ui/src/main/res/values-be-rBY/strings.xml @@ -19,8 +19,7 @@ "Наступны трэк" "Прыпыніць" "Прайграць" - "Спыніць" - "Перамотка назад" + "Перамотка назад" "Перамотка ўперад" "Паўтарыць усё" "Паўтараць ні" diff --git a/library/ui/src/main/res/values-bg/strings.xml b/library/ui/src/main/res/values-bg/strings.xml index e350479788..644fa7bbd4 100644 --- a/library/ui/src/main/res/values-bg/strings.xml +++ b/library/ui/src/main/res/values-bg/strings.xml @@ -19,8 +19,7 @@ "Следващ запис" "Пауза" "Пускане" - "Спиране" - "Превъртане назад" + "Превъртане назад" "Превъртане напред" "Повтаряне на всички" "Без повтаряне" diff --git a/library/ui/src/main/res/values-bn-rBD/strings.xml b/library/ui/src/main/res/values-bn-rBD/strings.xml index 446ef982a3..782845ce73 100644 --- a/library/ui/src/main/res/values-bn-rBD/strings.xml +++ b/library/ui/src/main/res/values-bn-rBD/strings.xml @@ -19,8 +19,7 @@ "পরবর্তী ট্র্যাক" "বিরাম দিন" "প্লে করুন" - "থামান" - "গুটিয়ে নিন" + "গুটিয়ে নিন" "দ্রুত সামনে এগোন" "সবগুলির পুনরাবৃত্তি করুন" "একটিরও পুনরাবৃত্তি করবেন না" diff --git a/library/ui/src/main/res/values-bs-rBA/strings.xml b/library/ui/src/main/res/values-bs-rBA/strings.xml index 186b1058d9..06403989b4 100644 --- a/library/ui/src/main/res/values-bs-rBA/strings.xml +++ b/library/ui/src/main/res/values-bs-rBA/strings.xml @@ -19,8 +19,7 @@ "Sljedeća numera" "Pauziraj" "Reproduciraj" - "Zaustavi" - "Premotaj" + "Premotaj" "Ubrzaj" "Ponovite sve" "Ne ponavljaju" diff --git a/library/ui/src/main/res/values-ca/strings.xml b/library/ui/src/main/res/values-ca/strings.xml index fd76a8e08e..9f92d3ba95 100644 --- a/library/ui/src/main/res/values-ca/strings.xml +++ b/library/ui/src/main/res/values-ca/strings.xml @@ -19,8 +19,7 @@ "Ruta següent" "Posa en pausa" "Reprodueix" - "Atura" - "Rebobina" + "Rebobina" "Avança ràpidament" "Repeteix-ho tot" "No en repeteixis cap" diff --git a/library/ui/src/main/res/values-cs/strings.xml b/library/ui/src/main/res/values-cs/strings.xml index 087ab79c25..36d14a663b 100644 --- a/library/ui/src/main/res/values-cs/strings.xml +++ b/library/ui/src/main/res/values-cs/strings.xml @@ -19,8 +19,7 @@ "Další skladba" "Pozastavit" "Přehrát" - "Zastavit" - "Přetočit zpět" + "Přetočit zpět" "Přetočit vpřed" "Opakovat vše" "Neopakovat" diff --git a/library/ui/src/main/res/values-da/strings.xml b/library/ui/src/main/res/values-da/strings.xml index 0ae23ee288..f3883b3006 100644 --- a/library/ui/src/main/res/values-da/strings.xml +++ b/library/ui/src/main/res/values-da/strings.xml @@ -19,8 +19,7 @@ "Næste nummer" "Pause" "Afspil" - "Stop" - "Spol tilbage" + "Spol tilbage" "Spol frem" "Gentag alle" "Gentag ingen" diff --git a/library/ui/src/main/res/values-de/strings.xml b/library/ui/src/main/res/values-de/strings.xml index b31ecc93e8..76b6514cb4 100644 --- a/library/ui/src/main/res/values-de/strings.xml +++ b/library/ui/src/main/res/values-de/strings.xml @@ -19,12 +19,10 @@ "Nächster Titel" "Pausieren" "Wiedergabe" - "Beenden" - "Zurückspulen" + "Zurückspulen" "Vorspulen" "Alle wiederholen" "Keinen Titel wiederholen" "Einen Titel wiederholen" "Zufallsmix" - Vollbildmodus diff --git a/library/ui/src/main/res/values-el/strings.xml b/library/ui/src/main/res/values-el/strings.xml index 9bc6a87889..29d8fce169 100644 --- a/library/ui/src/main/res/values-el/strings.xml +++ b/library/ui/src/main/res/values-el/strings.xml @@ -19,12 +19,10 @@ "Επόμενο κομμάτι" "Παύση" "Αναπαραγωγή" - "Διακοπή" - "Επαναφορά" + "Επαναφορά" "Γρήγορη προώθηση" "Επανάληψη όλων" "Καμία επανάληψη" "Επανάληψη ενός στοιχείου" "Τυχαία αναπαραγωγή" - Λειτουργία πλήρους οθόνης 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 0b4c465853..51d565152f 100644 --- a/library/ui/src/main/res/values-en-rAU/strings.xml +++ b/library/ui/src/main/res/values-en-rAU/strings.xml @@ -19,8 +19,7 @@ "Next track" "Pause" "Play" - "Stop" - "Rewind" + "Rewind" "Fast-forward" "Repeat all" "Repeat none" 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 e80b2c70c6..1e5faa6f43 100644 --- a/library/ui/src/main/res/values-en-rGB/strings.xml +++ b/library/ui/src/main/res/values-en-rGB/strings.xml @@ -19,12 +19,10 @@ "Next track" "Pause" "Play" - "Stop" - "Rewind" + "Rewind" "Fast-forward" "Repeat all" "Repeat none" "Repeat one" "Shuffle" - Fullscreen mode 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 e80b2c70c6..1e5faa6f43 100644 --- a/library/ui/src/main/res/values-en-rIN/strings.xml +++ b/library/ui/src/main/res/values-en-rIN/strings.xml @@ -19,12 +19,10 @@ "Next track" "Pause" "Play" - "Stop" - "Rewind" + "Rewind" "Fast-forward" "Repeat all" "Repeat none" "Repeat one" "Shuffle" - Fullscreen mode 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 e6cf3fc6f2..fc9f13b8af 100644 --- a/library/ui/src/main/res/values-es-rUS/strings.xml +++ b/library/ui/src/main/res/values-es-rUS/strings.xml @@ -19,8 +19,7 @@ "Siguiente pista" "Pausar" "Reproducir" - "Detener" - "Retroceder" + "Retroceder" "Avanzar" "Repetir todo" "No repetir" diff --git a/library/ui/src/main/res/values-es/strings.xml b/library/ui/src/main/res/values-es/strings.xml index 2029ab833e..3ec468d273 100644 --- a/library/ui/src/main/res/values-es/strings.xml +++ b/library/ui/src/main/res/values-es/strings.xml @@ -19,12 +19,10 @@ "Siguiente canción" "Pausar" "Reproducir" - "Detener" - "Rebobinar" + "Rebobinar" "Avance rápido" "Repetir todo" "No repetir" "Repetir uno" "Reproducción aleatoria" - Modo de pantalla completa diff --git a/library/ui/src/main/res/values-et-rEE/strings.xml b/library/ui/src/main/res/values-et-rEE/strings.xml index 004ec7e6c3..1da5f86dbe 100644 --- a/library/ui/src/main/res/values-et-rEE/strings.xml +++ b/library/ui/src/main/res/values-et-rEE/strings.xml @@ -19,8 +19,7 @@ "Järgmine lugu" "Peata" "Esita" - "Peata" - "Keri tagasi" + "Keri tagasi" "Keri edasi" "Korda kõike" "Ära korda midagi" diff --git a/library/ui/src/main/res/values-eu-rES/strings.xml b/library/ui/src/main/res/values-eu-rES/strings.xml index 6a3345303a..b58c2bd6dd 100644 --- a/library/ui/src/main/res/values-eu-rES/strings.xml +++ b/library/ui/src/main/res/values-eu-rES/strings.xml @@ -19,8 +19,7 @@ "Hurrengo pista" "Pausatu" "Erreproduzitu" - "Gelditu" - "Atzeratu" + "Atzeratu" "Aurreratu" "Errepikatu guztiak" "Ez errepikatu" diff --git a/library/ui/src/main/res/values-fa/strings.xml b/library/ui/src/main/res/values-fa/strings.xml index c2303a6e62..1a16fa913f 100644 --- a/library/ui/src/main/res/values-fa/strings.xml +++ b/library/ui/src/main/res/values-fa/strings.xml @@ -19,12 +19,10 @@ "آهنگ بعدی" "مکث" "پخش" - "توقف" - "عقب بردن" + "عقب بردن" "جلو بردن سریع" "تکرار همه" "تکرار هیچ‌کدام" "یک‌بار تکرار" "پخش درهم" - حالت تمام صفحه diff --git a/library/ui/src/main/res/values-fi/strings.xml b/library/ui/src/main/res/values-fi/strings.xml index 92feb86683..07d0f6c8bb 100644 --- a/library/ui/src/main/res/values-fi/strings.xml +++ b/library/ui/src/main/res/values-fi/strings.xml @@ -19,8 +19,7 @@ "Seuraava raita" "Tauko" "Toista" - "Seis" - "Kelaa taakse" + "Kelaa taakse" "Kelaa eteen" "Toista kaikki" "Toista ei mitään" 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 45fc0a86f9..321f8b8f13 100644 --- a/library/ui/src/main/res/values-fr-rCA/strings.xml +++ b/library/ui/src/main/res/values-fr-rCA/strings.xml @@ -19,8 +19,7 @@ "Chanson suivante" "Pause" "Lecture" - "Arrêter" - "Reculer" + "Reculer" "Avance rapide" "Tout lire en boucle" "Aucune répétition" diff --git a/library/ui/src/main/res/values-fr/strings.xml b/library/ui/src/main/res/values-fr/strings.xml index 6617fd6e6a..39b0804c7a 100644 --- a/library/ui/src/main/res/values-fr/strings.xml +++ b/library/ui/src/main/res/values-fr/strings.xml @@ -19,12 +19,10 @@ "Piste suivante" "Interrompre" "Lire" - "Arrêter" - "Retour arrière" + "Retour arrière" "Avance rapide" "Tout lire en boucle" "Ne rien lire en boucle" "Lire en boucle un élément" "Lire en mode aléatoire" - Mode plein écran diff --git a/library/ui/src/main/res/values-gl-rES/strings.xml b/library/ui/src/main/res/values-gl-rES/strings.xml index 7062d8d023..38c2ee358a 100644 --- a/library/ui/src/main/res/values-gl-rES/strings.xml +++ b/library/ui/src/main/res/values-gl-rES/strings.xml @@ -19,8 +19,7 @@ "Seguinte pista" "Pausar" "Reproducir" - "Deter" - "Rebobinar" + "Rebobinar" "Avance rápido" "Repetir todo" "Non repetir" diff --git a/library/ui/src/main/res/values-gu-rIN/strings.xml b/library/ui/src/main/res/values-gu-rIN/strings.xml index ed78b1ee30..50275d2aac 100644 --- a/library/ui/src/main/res/values-gu-rIN/strings.xml +++ b/library/ui/src/main/res/values-gu-rIN/strings.xml @@ -19,8 +19,7 @@ "આગલો ટ્રૅક" "થોભો" "ચલાવો" - "રોકો" - "રીવાઇન્ડ કરો" + "રીવાઇન્ડ કરો" "ઝડપી ફોરવર્ડ કરો" "બધા પુનરાવર્તન કરો" "કંઈ પુનરાવર્તન કરો" diff --git a/library/ui/src/main/res/values-hi/strings.xml b/library/ui/src/main/res/values-hi/strings.xml index 6545307e8c..1794faaa31 100644 --- a/library/ui/src/main/res/values-hi/strings.xml +++ b/library/ui/src/main/res/values-hi/strings.xml @@ -19,12 +19,10 @@ "अगला ट्रैक" "रोकें" "चलाएं" - "बंद करें" - "रिवाइंड करें" + "रिवाइंड करें" "फ़ास्ट फ़ॉरवर्ड" "सभी को दोहराएं" "कुछ भी न दोहराएं" "एक दोहराएं" "शफ़ल करें" - पूर्ण-स्क्रीन मोड diff --git a/library/ui/src/main/res/values-hr/strings.xml b/library/ui/src/main/res/values-hr/strings.xml index dd7423032b..39954ed611 100644 --- a/library/ui/src/main/res/values-hr/strings.xml +++ b/library/ui/src/main/res/values-hr/strings.xml @@ -19,12 +19,10 @@ "Sljedeća pjesma" "Pauziraj" "Reproduciraj" - "Zaustavi" - "Unatrag" + "Unatrag" "Brzo unaprijed" "Ponovi sve" "Bez ponavljanja" "Ponovi jedno" "Reproduciraj nasumično" - Prikaz na cijelom zaslonu diff --git a/library/ui/src/main/res/values-hu/strings.xml b/library/ui/src/main/res/values-hu/strings.xml index abd9f9cfac..23fb556d92 100644 --- a/library/ui/src/main/res/values-hu/strings.xml +++ b/library/ui/src/main/res/values-hu/strings.xml @@ -19,12 +19,10 @@ "Következő szám" "Szünet" "Lejátszás" - "Leállítás" - "Visszatekerés" + "Visszatekerés" "Előretekerés" "Összes ismétlése" "Nincs ismétlés" "Egy ismétlése" "Véletlenszerű lejátszás" - Teljes képernyős mód diff --git a/library/ui/src/main/res/values-hy-rAM/strings.xml b/library/ui/src/main/res/values-hy-rAM/strings.xml index 13a489baf5..680fb6c5a9 100644 --- a/library/ui/src/main/res/values-hy-rAM/strings.xml +++ b/library/ui/src/main/res/values-hy-rAM/strings.xml @@ -19,8 +19,7 @@ "Հաջորդը" "Դադարեցնել" "Նվագարկել" - "Դադարեցնել" - "Հետ փաթաթել" + "Հետ փաթաթել" "Արագ առաջ անցնել" "կրկնել այն ամենը" "Չկրկնել" diff --git a/library/ui/src/main/res/values-in/strings.xml b/library/ui/src/main/res/values-in/strings.xml index 09b05815e6..a7fa9babf6 100644 --- a/library/ui/src/main/res/values-in/strings.xml +++ b/library/ui/src/main/res/values-in/strings.xml @@ -19,8 +19,7 @@ "Lagu berikutnya" "Jeda" "Putar" - "Berhenti" - "Putar Ulang" + "Putar Ulang" "Maju cepat" "Ulangi Semua" "Jangan Ulangi" diff --git a/library/ui/src/main/res/values-is-rIS/strings.xml b/library/ui/src/main/res/values-is-rIS/strings.xml index 12c4632cdf..12e15e00d6 100644 --- a/library/ui/src/main/res/values-is-rIS/strings.xml +++ b/library/ui/src/main/res/values-is-rIS/strings.xml @@ -19,8 +19,7 @@ "Næsta lag" "Hlé" "Spila" - "Stöðva" - "Spóla til baka" + "Spóla til baka" "Spóla áfram" "Endurtaka allt" "Endurtaka ekkert" diff --git a/library/ui/src/main/res/values-it/strings.xml b/library/ui/src/main/res/values-it/strings.xml index 3300224fbb..f9cea555e5 100644 --- a/library/ui/src/main/res/values-it/strings.xml +++ b/library/ui/src/main/res/values-it/strings.xml @@ -19,12 +19,10 @@ "Traccia successiva" "Metti in pausa" "Riproduci" - "Interrompi" - "Riavvolgi" + "Riavvolgi" "Avanti veloce" "Ripeti tutti" "Non ripetere nessuno" "Ripeti uno" "Riproduci casualmente" - Modalità a schermo intero diff --git a/library/ui/src/main/res/values-iw/strings.xml b/library/ui/src/main/res/values-iw/strings.xml index dd973af50b..a829ed6b0d 100644 --- a/library/ui/src/main/res/values-iw/strings.xml +++ b/library/ui/src/main/res/values-iw/strings.xml @@ -19,8 +19,7 @@ "הרצועה הבאה" "השהה" "הפעל" - "הפסק" - "הרץ אחורה" + "הרץ אחורה" "הרץ קדימה" "חזור על הכל" "אל תחזור על כלום" diff --git a/library/ui/src/main/res/values-ja/strings.xml b/library/ui/src/main/res/values-ja/strings.xml index 2e0f23a78f..029ccccc0a 100644 --- a/library/ui/src/main/res/values-ja/strings.xml +++ b/library/ui/src/main/res/values-ja/strings.xml @@ -19,12 +19,10 @@ "次のトラック" "一時停止" "再生" - "停止" - "巻き戻し" + "巻き戻し" "早送り" "全曲を繰り返し" "繰り返しなし" "1曲を繰り返し" "シャッフル" - フルスクリーンモード diff --git a/library/ui/src/main/res/values-ka-rGE/strings.xml b/library/ui/src/main/res/values-ka-rGE/strings.xml index 252e52f151..9125ec4247 100644 --- a/library/ui/src/main/res/values-ka-rGE/strings.xml +++ b/library/ui/src/main/res/values-ka-rGE/strings.xml @@ -19,8 +19,7 @@ "შემდეგი ჩანაწერი" "პაუზა" "დაკვრა" - "შეწყვეტა" - "უკან გადახვევა" + "უკან გადახვევა" "წინ გადახვევა" "გამეორება ყველა" "გაიმეორეთ არცერთი" diff --git a/library/ui/src/main/res/values-kk-rKZ/strings.xml b/library/ui/src/main/res/values-kk-rKZ/strings.xml index 43eb3dd030..a208ed849d 100644 --- a/library/ui/src/main/res/values-kk-rKZ/strings.xml +++ b/library/ui/src/main/res/values-kk-rKZ/strings.xml @@ -19,8 +19,7 @@ "Келесі трек" "Кідірту" "Ойнату" - "Тоқтату" - "Кері айналдыру" + "Кері айналдыру" "Жылдам алға айналдыру" "Барлығын қайталау" "Ешқайсысын қайталамау" diff --git a/library/ui/src/main/res/values-km-rKH/strings.xml b/library/ui/src/main/res/values-km-rKH/strings.xml index 653c9f051d..737a6b8e4d 100644 --- a/library/ui/src/main/res/values-km-rKH/strings.xml +++ b/library/ui/src/main/res/values-km-rKH/strings.xml @@ -19,8 +19,7 @@ "បទ​បន្ទាប់" "ផ្អាក" "ចាក់" - "បញ្ឈប់" - "ខា​ថយក្រោយ" + "ខា​ថយក្រោយ" "ទៅ​មុខ​​​រហ័ស" "ធ្វើ​ម្ដង​ទៀត​ទាំងអស់" "មិន​ធ្វើ​ឡើង​វិញ" diff --git a/library/ui/src/main/res/values-kn-rIN/strings.xml b/library/ui/src/main/res/values-kn-rIN/strings.xml index 7368fc8ad3..6c7fcbd8e7 100644 --- a/library/ui/src/main/res/values-kn-rIN/strings.xml +++ b/library/ui/src/main/res/values-kn-rIN/strings.xml @@ -19,8 +19,7 @@ "ಮುಂದಿನ ಟ್ರ್ಯಾಕ್" "ವಿರಾಮಗೊಳಿಸು" "ಪ್ಲೇ ಮಾಡು" - "ನಿಲ್ಲಿಸು" - "ರಿವೈಂಡ್ ಮಾಡು" + "ರಿವೈಂಡ್ ಮಾಡು" "ವೇಗವಾಗಿ ಮುಂದಕ್ಕೆ" "ಎಲ್ಲವನ್ನು ಪುನರಾವರ್ತಿಸಿ" "ಯಾವುದನ್ನೂ ಪುನರಾವರ್ತಿಸಬೇಡಿ" diff --git a/library/ui/src/main/res/values-ko/strings.xml b/library/ui/src/main/res/values-ko/strings.xml index 32d3deeb9e..48b97f7548 100644 --- a/library/ui/src/main/res/values-ko/strings.xml +++ b/library/ui/src/main/res/values-ko/strings.xml @@ -19,12 +19,10 @@ "다음 트랙" "일시중지" "재생" - "중지" - "되감기" + "되감기" "빨리 감기" "전체 반복" "반복 안함" "한 항목 반복" "셔플" - 전체 화면 모드 diff --git a/library/ui/src/main/res/values-ky-rKG/strings.xml b/library/ui/src/main/res/values-ky-rKG/strings.xml index 9b903a124e..7a5170db9a 100644 --- a/library/ui/src/main/res/values-ky-rKG/strings.xml +++ b/library/ui/src/main/res/values-ky-rKG/strings.xml @@ -19,8 +19,7 @@ "Кийинки трек" "Тындыруу" "Ойнотуу" - "Токтотуу" - "Артка түрүү" + "Артка түрүү" "Алдыга түрүү" "Баарын кайталоо" "Эч бирин кайталабоо" diff --git a/library/ui/src/main/res/values-lo-rLA/strings.xml b/library/ui/src/main/res/values-lo-rLA/strings.xml index 702cd54396..cc5159ccaf 100644 --- a/library/ui/src/main/res/values-lo-rLA/strings.xml +++ b/library/ui/src/main/res/values-lo-rLA/strings.xml @@ -19,8 +19,7 @@ "​ເພງ​ຕໍ່​ໄປ" "ຢຸດຊົ່ວຄາວ" "ຫຼິ້ນ" - "ຢຸດ" - "​ຣີ​​ວາຍກັບ" + "​ຣີ​​ວາຍກັບ" "ເລື່ອນ​ໄປ​ໜ້າ" "ຫຼິ້ນ​ຊ້ຳ​ທັງ​ໝົດ" "​ບໍ່ຫຼິ້ນ​ຊ້ຳ" diff --git a/library/ui/src/main/res/values-lt/strings.xml b/library/ui/src/main/res/values-lt/strings.xml index 091f2384b2..3d6d15478b 100644 --- a/library/ui/src/main/res/values-lt/strings.xml +++ b/library/ui/src/main/res/values-lt/strings.xml @@ -19,12 +19,10 @@ "Kitas takelis" "Pristabdyti" "Leisti" - "Stabdyti" "Sukti atgal" "Sukti pirmyn" "Kartoti viską" "Nekartoti nieko" "Kartoti vieną" "Maišyti" - Viso ekrano režimas diff --git a/library/ui/src/main/res/values-lv/strings.xml b/library/ui/src/main/res/values-lv/strings.xml index af982587bf..d84b200718 100644 --- a/library/ui/src/main/res/values-lv/strings.xml +++ b/library/ui/src/main/res/values-lv/strings.xml @@ -19,12 +19,10 @@ "Nākamais ieraksts" "Pārtraukt" "Atskaņot" - "Apturēt" - "Attīt atpakaļ" + "Attīt atpakaļ" "Ātri patīt" "Atkārtot visu" "Neatkārtot nevienu" "Atkārtot vienu" "Atskaņot jauktā secībā" - Pilnekrāna režīms diff --git a/library/ui/src/main/res/values-mk-rMK/strings.xml b/library/ui/src/main/res/values-mk-rMK/strings.xml index 60858df8b1..58723abba7 100644 --- a/library/ui/src/main/res/values-mk-rMK/strings.xml +++ b/library/ui/src/main/res/values-mk-rMK/strings.xml @@ -19,7 +19,6 @@ "Следна песна" "Пауза" "Пушти" - "Запри" "Премотај назад" "Брзо премотај напред" "Повтори ги сите" diff --git a/library/ui/src/main/res/values-ml-rIN/strings.xml b/library/ui/src/main/res/values-ml-rIN/strings.xml index 4e5eddb93e..6706323594 100644 --- a/library/ui/src/main/res/values-ml-rIN/strings.xml +++ b/library/ui/src/main/res/values-ml-rIN/strings.xml @@ -19,8 +19,7 @@ "അടുത്ത ട്രാക്ക്" "താൽക്കാലികമായി നിർത്തുക" "പ്ലേ ചെയ്യുക" - "നിര്‍ത്തുക" - "റിവൈൻഡുചെയ്യുക" + "റിവൈൻഡുചെയ്യുക" "വേഗത്തിലുള്ള കൈമാറൽ" "എല്ലാം ആവർത്തിക്കുക" "ഒന്നും ആവർത്തിക്കരുത്" diff --git a/library/ui/src/main/res/values-mn-rMN/strings.xml b/library/ui/src/main/res/values-mn-rMN/strings.xml index 4ab26a7f62..f1734f5fd9 100644 --- a/library/ui/src/main/res/values-mn-rMN/strings.xml +++ b/library/ui/src/main/res/values-mn-rMN/strings.xml @@ -19,8 +19,7 @@ "Дараагийн трек" "Түр зогсоох" "Тоглуулах" - "Зогсоох" - "Буцааж хураах" + "Буцааж хураах" "Хурдан урагшлуулах" "Бүгдийг давтах" "Алийг нь ч давтахгүй" diff --git a/library/ui/src/main/res/values-mr-rIN/strings.xml b/library/ui/src/main/res/values-mr-rIN/strings.xml index 7869355b59..26fe670c91 100644 --- a/library/ui/src/main/res/values-mr-rIN/strings.xml +++ b/library/ui/src/main/res/values-mr-rIN/strings.xml @@ -19,8 +19,7 @@ "पुढील ट्रॅक" "विराम द्या" "प्ले करा" - "थांबा" - "रिवाईँड करा" + "रिवाईँड करा" "फास्ट फॉरवर्ड करा" "सर्व पुनरावृत्ती करा" "काहीही पुनरावृत्ती करू नका" diff --git a/library/ui/src/main/res/values-ms-rMY/strings.xml b/library/ui/src/main/res/values-ms-rMY/strings.xml index fdde3de079..941eb7d10b 100644 --- a/library/ui/src/main/res/values-ms-rMY/strings.xml +++ b/library/ui/src/main/res/values-ms-rMY/strings.xml @@ -19,8 +19,7 @@ "Lagu seterusnya" "Jeda" "Main" - "Berhenti" - "Gulung semula" + "Gulung semula" "Mara laju" "Ulang semua" "Tiada ulangan" diff --git a/library/ui/src/main/res/values-my-rMM/strings.xml b/library/ui/src/main/res/values-my-rMM/strings.xml index 3d7918d953..c5052ac9ae 100644 --- a/library/ui/src/main/res/values-my-rMM/strings.xml +++ b/library/ui/src/main/res/values-my-rMM/strings.xml @@ -19,8 +19,7 @@ "နောက် တစ်ပုဒ်" "ခဏရပ်ရန်" "ဖွင့်ရန်" - "ရပ်ရန်" - "ပြန်ရစ်ရန်" + "ပြန်ရစ်ရန်" "ရှေ့သို့ သွားရန်" "အားလုံး ထပ်တလဲလဲဖွင့်ရန်" "ထပ်တလဲလဲမဖွင့်ရန်" diff --git a/library/ui/src/main/res/values-nb/strings.xml b/library/ui/src/main/res/values-nb/strings.xml index 370c759b84..7bd0b2d849 100644 --- a/library/ui/src/main/res/values-nb/strings.xml +++ b/library/ui/src/main/res/values-nb/strings.xml @@ -19,8 +19,7 @@ "Neste spor" "Sett på pause" "Spill av" - "Stopp" - "Tilbakespoling" + "Tilbakespoling" "Fremoverspoling" "Gjenta alle" "Ikke gjenta noen" diff --git a/library/ui/src/main/res/values-ne-rNP/strings.xml b/library/ui/src/main/res/values-ne-rNP/strings.xml index 19f43d0392..fc0bd57ce4 100644 --- a/library/ui/src/main/res/values-ne-rNP/strings.xml +++ b/library/ui/src/main/res/values-ne-rNP/strings.xml @@ -19,8 +19,7 @@ "अर्को ट्रयाक" "रोक्नुहोस्" "चलाउनुहोस्" - "रोक्नुहोस्" - "दोहोर्याउनुहोस्" + "दोहोर्याउनुहोस्" "फास्ट फर्वार्ड" "सबै दोहोर्याउनुहोस्" "कुनै पनि नदोहोर्याउनुहोस्" diff --git a/library/ui/src/main/res/values-nl/strings.xml b/library/ui/src/main/res/values-nl/strings.xml index a67ab2968c..7ac0acb7ae 100644 --- a/library/ui/src/main/res/values-nl/strings.xml +++ b/library/ui/src/main/res/values-nl/strings.xml @@ -19,8 +19,7 @@ "Volgend nummer" "Onderbreken" "Afspelen" - "Stoppen" - "Terugspoelen" + "Terugspoelen" "Vooruitspoelen" "Alles herhalen" "Niet herhalen" diff --git a/library/ui/src/main/res/values-pa-rIN/strings.xml b/library/ui/src/main/res/values-pa-rIN/strings.xml index 6250b90514..9b5b4373ac 100644 --- a/library/ui/src/main/res/values-pa-rIN/strings.xml +++ b/library/ui/src/main/res/values-pa-rIN/strings.xml @@ -19,8 +19,7 @@ "ਅਗਲਾ ਟਰੈਕ" "ਰੋਕੋ" "ਪਲੇ ਕਰੋ" - "ਰੋਕੋ" - "ਰੀਵਾਈਂਡ ਕਰੋ" + "ਰੀਵਾਈਂਡ ਕਰੋ" "ਅੱਗੇ ਭੇਜੋ" "ਸਭ ਨੂੰ ਦੁਹਰਾਓ" "ਕੋਈ ਵੀ ਨਹੀਂ ਦੁਹਰਾਓ" diff --git a/library/ui/src/main/res/values-pl/strings.xml b/library/ui/src/main/res/values-pl/strings.xml index 981aa17543..555c93d62b 100644 --- a/library/ui/src/main/res/values-pl/strings.xml +++ b/library/ui/src/main/res/values-pl/strings.xml @@ -19,12 +19,10 @@ "Następny utwór" "Wstrzymaj" "Odtwórz" - "Zatrzymaj" - "Przewiń do tyłu" + "Przewiń do tyłu" "Przewiń do przodu" "Powtórz wszystkie" "Nie powtarzaj" "Powtórz jeden" "Odtwarzaj losowo" - Tryb pełnoekranowy diff --git a/library/ui/src/main/res/values-pt-rBR/strings.xml b/library/ui/src/main/res/values-pt-rBR/strings.xml index 86a91b0677..144381ac84 100644 --- a/library/ui/src/main/res/values-pt-rBR/strings.xml +++ b/library/ui/src/main/res/values-pt-rBR/strings.xml @@ -19,8 +19,7 @@ "Próxima faixa" "Pausar" "Reproduzir" - "Parar" - "Retroceder" + "Retroceder" "Avançar" "Repetir tudo" "Não repetir" 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 f0c3770c51..cda1ef3206 100644 --- a/library/ui/src/main/res/values-pt-rPT/strings.xml +++ b/library/ui/src/main/res/values-pt-rPT/strings.xml @@ -19,12 +19,10 @@ "Faixa seguinte" "Interromper" "Reproduzir" - "Parar" - "Rebobinar" + "Rebobinar" "Avançar" "Repetir tudo" "Não repetir" "Repetir um" "Reproduzir aleatoriamente" - Modo de ecrã inteiro diff --git a/library/ui/src/main/res/values-pt/strings.xml b/library/ui/src/main/res/values-pt/strings.xml index 8441e4e1cc..0165d47fd2 100644 --- a/library/ui/src/main/res/values-pt/strings.xml +++ b/library/ui/src/main/res/values-pt/strings.xml @@ -19,8 +19,7 @@ "Próxima faixa" "Pausar" "Reproduzir" - "Parar" - "Retroceder" + "Retroceder" "Avançar" "Repetir tudo" "Não repetir" diff --git a/library/ui/src/main/res/values-ro/strings.xml b/library/ui/src/main/res/values-ro/strings.xml index 6b8644e30a..7efa310305 100644 --- a/library/ui/src/main/res/values-ro/strings.xml +++ b/library/ui/src/main/res/values-ro/strings.xml @@ -19,8 +19,7 @@ "Melodia următoare" "Pauză" "Redați" - "Opriți" - "Derulați" + "Derulați" "Derulați rapid înainte" "Repetați toate" "Repetați niciuna" diff --git a/library/ui/src/main/res/values-ru/strings.xml b/library/ui/src/main/res/values-ru/strings.xml index 51d11d6371..ef17de56b8 100644 --- a/library/ui/src/main/res/values-ru/strings.xml +++ b/library/ui/src/main/res/values-ru/strings.xml @@ -19,8 +19,7 @@ "Следующий трек" "Приостановить" "Воспроизвести" - "Остановить" - "Перемотать назад" + "Перемотать назад" "Перемотать вперед" "Повторять все" "Не повторять" diff --git a/library/ui/src/main/res/values-si-rLK/strings.xml b/library/ui/src/main/res/values-si-rLK/strings.xml index eb8453b156..5347af1158 100644 --- a/library/ui/src/main/res/values-si-rLK/strings.xml +++ b/library/ui/src/main/res/values-si-rLK/strings.xml @@ -19,8 +19,7 @@ "ඊළඟ ගීතය" "විරාමය" "ධාවනය කරන්න" - "නතර කරන්න" - "නැවත ඔතන්න" + "නැවත ඔතන්න" "වේගයෙන් ඉදිරියට යන" "සියලු නැවත" "කිසිවක් නැවත" diff --git a/library/ui/src/main/res/values-sk/strings.xml b/library/ui/src/main/res/values-sk/strings.xml index a289e89d34..c001dc51af 100644 --- a/library/ui/src/main/res/values-sk/strings.xml +++ b/library/ui/src/main/res/values-sk/strings.xml @@ -19,12 +19,10 @@ "Ďalšia stopa" "Pozastaviť" "Prehrať" - "Zastaviť" - "Pretočiť späť" + "Pretočiť späť" "Pretočiť dopredu" "Opakovať všetko" "Neopakovať" "Opakovať jednu položku" "Náhodne prehrávať" - Režim celej obrazovky diff --git a/library/ui/src/main/res/values-sl/strings.xml b/library/ui/src/main/res/values-sl/strings.xml index 8ed731b0d3..f2409dd39d 100644 --- a/library/ui/src/main/res/values-sl/strings.xml +++ b/library/ui/src/main/res/values-sl/strings.xml @@ -19,8 +19,7 @@ "Naslednja skladba" "Zaustavi" "Predvajaj" - "Ustavi" - "Previj nazaj" + "Previj nazaj" "Previj naprej" "Ponovi vse" "Ne ponovi" diff --git a/library/ui/src/main/res/values-sq-rAL/strings.xml b/library/ui/src/main/res/values-sq-rAL/strings.xml index e2d209e10b..2b9c1752b8 100644 --- a/library/ui/src/main/res/values-sq-rAL/strings.xml +++ b/library/ui/src/main/res/values-sq-rAL/strings.xml @@ -19,8 +19,7 @@ "Kënga tjetër" "Pauzë" "Luaj" - "Ndalo" - "Kthehu pas" + "Kthehu pas" "Përparo me shpejtësi" "Përsërit të gjithë" "Përsëritni asnjë" diff --git a/library/ui/src/main/res/values-sr/strings.xml b/library/ui/src/main/res/values-sr/strings.xml index 9cff134a61..50645eb9a5 100644 --- a/library/ui/src/main/res/values-sr/strings.xml +++ b/library/ui/src/main/res/values-sr/strings.xml @@ -19,12 +19,10 @@ "Следећа песма" "Пауза" "Пусти" - "Заустави" - "Премотај уназад" + "Премотај уназад" "Премотај унапред" "Понови све" "Понављање је искључено" "Понови једну" "Пусти насумично" - Режим целог екрана diff --git a/library/ui/src/main/res/values-sv/strings.xml b/library/ui/src/main/res/values-sv/strings.xml index b8fc7a1fff..3b90524a14 100644 --- a/library/ui/src/main/res/values-sv/strings.xml +++ b/library/ui/src/main/res/values-sv/strings.xml @@ -19,12 +19,10 @@ "Nästa spår" "Pausa" "Spela upp" - "Avbryt" - "Spola tillbaka" + "Spola tillbaka" "Snabbspola framåt" "Upprepa alla" "Upprepa inga" "Upprepa en" "Blanda" - Helskärmsläge diff --git a/library/ui/src/main/res/values-sw/strings.xml b/library/ui/src/main/res/values-sw/strings.xml index 4451ad3c2b..6fdd52be20 100644 --- a/library/ui/src/main/res/values-sw/strings.xml +++ b/library/ui/src/main/res/values-sw/strings.xml @@ -19,12 +19,10 @@ "Wimbo unaofuata" "Sitisha" "Cheza" - "Simamisha" - "Rudisha nyuma" + "Rudisha nyuma" "Peleka mbele kwa kasi" "Rudia zote" "Usirudie Yoyote" "Rudia Moja" "Changanya" - Hali ya skrini kamili diff --git a/library/ui/src/main/res/values-ta-rIN/strings.xml b/library/ui/src/main/res/values-ta-rIN/strings.xml index 43a925aa2e..eaf11a375e 100644 --- a/library/ui/src/main/res/values-ta-rIN/strings.xml +++ b/library/ui/src/main/res/values-ta-rIN/strings.xml @@ -19,8 +19,7 @@ "அடுத்த ட்ராக்" "இடைநிறுத்து" "இயக்கு" - "நிறுத்து" - "மீண்டும் காட்டு" + "மீண்டும் காட்டு" "வேகமாக முன்செல்" "அனைத்தையும் மீண்டும் இயக்கு" "எதையும் மீண்டும் இயக்காதே" diff --git a/library/ui/src/main/res/values-te-rIN/strings.xml b/library/ui/src/main/res/values-te-rIN/strings.xml index 8541a44553..77a82f95b3 100644 --- a/library/ui/src/main/res/values-te-rIN/strings.xml +++ b/library/ui/src/main/res/values-te-rIN/strings.xml @@ -19,8 +19,7 @@ "తదుపరి ట్రాక్" "పాజ్ చేయి" "ప్లే చేయి" - "ఆపివేయి" - "రివైండ్ చేయి" + "రివైండ్ చేయి" "వేగంగా ఫార్వార్డ్ చేయి" "అన్నీ పునరావృతం చేయి" "ఏదీ పునరావృతం చేయవద్దు" diff --git a/library/ui/src/main/res/values-th/strings.xml b/library/ui/src/main/res/values-th/strings.xml index 664900e7da..297fe8ef34 100644 --- a/library/ui/src/main/res/values-th/strings.xml +++ b/library/ui/src/main/res/values-th/strings.xml @@ -19,12 +19,10 @@ "แทร็กถัดไป" "หยุดชั่วคราว" "เล่น" - "หยุด" - "กรอกลับ" + "กรอกลับ" "กรอไปข้างหน้า" "เล่นซ้ำทั้งหมด" "ไม่เล่นซ้ำ" "เล่นซ้ำรายการเดียว" "สุ่มเพลง" - โหมดเต็มหน้าจอ diff --git a/library/ui/src/main/res/values-tl/strings.xml b/library/ui/src/main/res/values-tl/strings.xml index 471191a81a..f2b27466f8 100644 --- a/library/ui/src/main/res/values-tl/strings.xml +++ b/library/ui/src/main/res/values-tl/strings.xml @@ -19,12 +19,10 @@ "Susunod na track" "I-pause" "I-play" - "Ihinto" - "I-rewind" + "I-rewind" "I-fast forward" "Ulitin Lahat" "Walang Uulitin" "Ulitin ang Isa" "I-shuffle" - Fullscreen mode diff --git a/library/ui/src/main/res/values-tr/strings.xml b/library/ui/src/main/res/values-tr/strings.xml index cd1bfc5444..843b601c51 100644 --- a/library/ui/src/main/res/values-tr/strings.xml +++ b/library/ui/src/main/res/values-tr/strings.xml @@ -19,8 +19,7 @@ "Sonraki parça" "Duraklat" "Çal" - "Durdur" - "Geri sar" + "Geri sar" "İleri sar" "Tümünü Tekrarla" "Hiçbirini Tekrarlama" diff --git a/library/ui/src/main/res/values-uk/strings.xml b/library/ui/src/main/res/values-uk/strings.xml index 36bfca2a34..7d918d9491 100644 --- a/library/ui/src/main/res/values-uk/strings.xml +++ b/library/ui/src/main/res/values-uk/strings.xml @@ -19,12 +19,10 @@ "Наступна композиція" "Пауза" "Відтворити" - "Зупинити" - "Перемотати назад" + "Перемотати назад" "Перемотати вперед" "Повторити все" "Не повторювати" "Повторити один елемент" "Перемішати" - Повноекранний режим diff --git a/library/ui/src/main/res/values-ur-rPK/strings.xml b/library/ui/src/main/res/values-ur-rPK/strings.xml index f253e56c00..84a89b4035 100644 --- a/library/ui/src/main/res/values-ur-rPK/strings.xml +++ b/library/ui/src/main/res/values-ur-rPK/strings.xml @@ -19,8 +19,7 @@ "اگلا ٹریک" "موقوف کریں" "چلائیں" - "روکیں" - "ریوائینڈ کریں" + "ریوائینڈ کریں" "تیزی سے فارورڈ کریں" "سبھی کو دہرائیں" "کسی کو نہ دہرائیں" diff --git a/library/ui/src/main/res/values-uz-rUZ/strings.xml b/library/ui/src/main/res/values-uz-rUZ/strings.xml index a322690b2d..9a4e94d3fd 100644 --- a/library/ui/src/main/res/values-uz-rUZ/strings.xml +++ b/library/ui/src/main/res/values-uz-rUZ/strings.xml @@ -19,8 +19,7 @@ "Keyingi musiqa" "To‘xtatib turish" "Ijro qilish" - "To‘xtatish" - "Orqaga o‘tkazish" + "Orqaga o‘tkazish" "Oldinga o‘tkazish" "Barchasini takrorlash" "Takrorlamaslik" diff --git a/library/ui/src/main/res/values-vi/strings.xml b/library/ui/src/main/res/values-vi/strings.xml index 748de96949..29d5b32d8a 100644 --- a/library/ui/src/main/res/values-vi/strings.xml +++ b/library/ui/src/main/res/values-vi/strings.xml @@ -19,12 +19,10 @@ "Bản nhạc tiếp theo" "Tạm dừng" "Phát" - "Ngừng" - "Tua lại" + "Tua lại" "Tua đi" "Lặp lại tất cả" "Không lặp lại" "Lặp lại một mục" "Trộn bài" - Chế độ toàn màn hình 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 d357152a64..6c318309a1 100644 --- a/library/ui/src/main/res/values-zh-rCN/strings.xml +++ b/library/ui/src/main/res/values-zh-rCN/strings.xml @@ -19,12 +19,10 @@ "下一曲" "暂停" "播放" - "停止" - "快退" + "快退" "快进" "重复播放全部" "不重复播放" "重复播放单个视频" "随机播放" - 全屏模式 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 3a26b8b5f0..667667f490 100644 --- a/library/ui/src/main/res/values-zh-rHK/strings.xml +++ b/library/ui/src/main/res/values-zh-rHK/strings.xml @@ -19,12 +19,10 @@ "下一首曲目" "暫停" "播放" - "停止" - "倒帶" + "倒帶" "向前快轉" "重複播放所有媒體項目" "不重複播放任何媒體項目" "重複播放一個媒體項目" "隨機播放" - 全螢幕模式 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 6f87d143ad..50ebd3f4b9 100644 --- a/library/ui/src/main/res/values-zh-rTW/strings.xml +++ b/library/ui/src/main/res/values-zh-rTW/strings.xml @@ -19,12 +19,10 @@ "下一首曲目" "暫停" "播放" - "停止" - "倒轉" + "倒轉" "快轉" "重複播放所有媒體項目" "不重複播放" "重複播放單一媒體項目" "隨機播放" - 全螢幕模式 diff --git a/library/ui/src/main/res/values-zu/strings.xml b/library/ui/src/main/res/values-zu/strings.xml index aff66ba0cf..c301856964 100644 --- a/library/ui/src/main/res/values-zu/strings.xml +++ b/library/ui/src/main/res/values-zu/strings.xml @@ -19,12 +19,10 @@ "Ithrekhi elandelayo" "Misa isikhashana" "Dlala" - "Misa" - "Buyisela emumva" + "Buyisela emumva" "Ukudlulisa ngokushesha" "Phinda konke" "Ungaphindi lutho" "Phida okukodwa" "Shova" - Imodi yesikrini esiphelele diff --git a/library/ui/src/main/res/values/strings.xml b/library/ui/src/main/res/values/strings.xml index d92c615ad0..816fd1c574 100644 --- a/library/ui/src/main/res/values/strings.xml +++ b/library/ui/src/main/res/values/strings.xml @@ -23,7 +23,6 @@ Play - Stop Rewind @@ -37,13 +36,4 @@ Shuffle - Fullscreen mode - - Download queued - - Downloading - - Download completed - - Download failed diff --git a/settings.gradle b/settings.gradle index d4530d67b7..0a404aad73 100644 --- a/settings.gradle +++ b/settings.gradle @@ -19,11 +19,9 @@ if (gradle.ext.has('exoplayerModulePrefix')) { } include modulePrefix + 'demo' -include modulePrefix + 'demo-cast' include modulePrefix + 'demo-ima' include modulePrefix + 'playbacktests' project(modulePrefix + 'demo').projectDir = new File(rootDir, 'demos/main') -project(modulePrefix + 'demo-cast').projectDir = new File(rootDir, 'demos/cast') project(modulePrefix + 'demo-ima').projectDir = new File(rootDir, 'demos/ima') project(modulePrefix + 'playbacktests').projectDir = new File(rootDir, 'playbacktests') diff --git a/testutils/build.gradle b/testutils/build.gradle index c82447eafc..e40dae72fb 100644 --- a/testutils/build.gradle +++ b/testutils/build.gradle @@ -22,6 +22,10 @@ android { minSdkVersion project.ext.minSdkVersion targetSdkVersion project.ext.targetSdkVersion } + + lintOptions { + disable 'InvalidPackage' + } } dependencies {