From 28cefe12c5747fcba1de8f757992773177edbd0e Mon Sep 17 00:00:00 2001 From: tonihei Date: Fri, 28 Feb 2020 12:06:04 +0000 Subject: [PATCH] Don't ignore first period when updating information to new Timeline. This while loop started with the second period in the queue and the first one was always ignored. PiperOrigin-RevId: 297812937 --- .../android/exoplayer2/ExoPlayerImplInternal.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) 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 aa6df39f3d..1ba8a6d4a8 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 @@ -1552,14 +1552,12 @@ import java.util.concurrent.atomic.AtomicBoolean; } else if (!timeline.isEmpty()) { // Something changed. Seek to new start position. @Nullable MediaPeriodHolder periodHolder = queue.getPlayingPeriod(); - if (periodHolder != null) { + while (periodHolder != null) { // Update the new playing media period info if it already exists. - while (periodHolder.getNext() != null) { - periodHolder = periodHolder.getNext(); - if (periodHolder.info.id.equals(newPeriodId)) { - periodHolder.info = queue.getUpdatedMediaPeriodInfo(timeline, periodHolder.info); - } + if (periodHolder.info.id.equals(newPeriodId)) { + periodHolder.info = queue.getUpdatedMediaPeriodInfo(timeline, periodHolder.info); } + periodHolder = periodHolder.getNext(); } newPositionUs = seekToPeriodPosition(newPeriodId, newPositionUs, forceBufferingState); }