From 410e614cfd1c42299bce27dbcbf4d695b2943511 Mon Sep 17 00:00:00 2001 From: tonihei Date: Fri, 22 Dec 2017 07:43:36 -0800 Subject: [PATCH] Run custom messages executed on playback thread immediately. This ensures message order if multiple custom messages running on the playback thread and direct player commands are called immedately after each other. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=179925852 --- .../exoplayer2/ExoPlayerImplInternal.java | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 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 c5fdf38bfa..1c680d4aba 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 @@ -904,13 +904,17 @@ import java.util.Collections; } } }; - handler.post( - new Runnable() { - @Override - public void run() { - customMessageInfo.message.getHandler().post(handleMessageRunnable); - } - }); + if (customMessageInfo.message.getHandler().getLooper() == handler.getLooper()) { + handleMessageRunnable.run(); + } else { + handler.post( + new Runnable() { + @Override + public void run() { + customMessageInfo.message.getHandler().post(handleMessageRunnable); + } + }); + } } private void resolveCustomMessagePositions() {