From cd91ae4053b17952decae2b01e5dd95ce47247ba Mon Sep 17 00:00:00 2001 From: christosts Date: Mon, 13 Sep 2021 12:59:22 +0100 Subject: [PATCH] PlaybackStatsListener: add check when adding guessed times This is was reported in #9257 where the PlaybackStatsListener may try to access an emtpy ArrayList. Issue: #9257 #minor-release #exofixit PiperOrigin-RevId: 396329373 --- .../exoplayer2/analytics/PlaybackStatsListener.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/analytics/PlaybackStatsListener.java b/library/core/src/main/java/com/google/android/exoplayer2/analytics/PlaybackStatsListener.java index fd349ea60c..e061066788 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/analytics/PlaybackStatsListener.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/analytics/PlaybackStatsListener.java @@ -769,10 +769,12 @@ public final class PlaybackStatsListener } } } - mediaTimeHistory.add( - mediaTimeMs == C.TIME_UNSET - ? guessMediaTimeBasedOnElapsedRealtime(realtimeMs) - : new long[] {realtimeMs, mediaTimeMs}); + + if (mediaTimeMs != C.TIME_UNSET) { + mediaTimeHistory.add(new long[] {realtimeMs, mediaTimeMs}); + } else if (!mediaTimeHistory.isEmpty()) { + mediaTimeHistory.add(guessMediaTimeBasedOnElapsedRealtime(realtimeMs)); + } } private long[] guessMediaTimeBasedOnElapsedRealtime(long realtimeMs) {