Commit 6ae47224 by tonihei Committed by Andrew Lewis

Rename Util methods to clarify which Looper is used.

The method name didn't clarify that either the main or current
Looper is used.

PiperOrigin-RevId: 317276561
parent f8843441
Showing with 101 additions and 68 deletions
...@@ -72,7 +72,7 @@ public final class LeanbackPlayerAdapter extends PlayerAdapter implements Runnab ...@@ -72,7 +72,7 @@ public final class LeanbackPlayerAdapter extends PlayerAdapter implements Runnab
this.context = context; this.context = context;
this.player = player; this.player = player;
this.updatePeriodMs = updatePeriodMs; this.updatePeriodMs = updatePeriodMs;
handler = Util.createHandler(); handler = Util.createHandlerForCurrentOrMainLooper();
componentListener = new ComponentListener(); componentListener = new ComponentListener();
controlDispatcher = new DefaultControlDispatcher(); controlDispatcher = new DefaultControlDispatcher();
} }
......
...@@ -437,7 +437,7 @@ public final class MediaSessionConnector { ...@@ -437,7 +437,7 @@ public final class MediaSessionConnector {
*/ */
public MediaSessionConnector(MediaSessionCompat mediaSession) { public MediaSessionConnector(MediaSessionCompat mediaSession) {
this.mediaSession = mediaSession; this.mediaSession = mediaSession;
looper = Util.getLooper(); looper = Util.getCurrentOrMainLooper();
componentListener = new ComponentListener(); componentListener = new ComponentListener();
commandReceivers = new ArrayList<>(); commandReceivers = new ArrayList<>();
customCommandReceivers = new ArrayList<>(); customCommandReceivers = new ArrayList<>();
......
...@@ -399,8 +399,8 @@ public final class Util { ...@@ -399,8 +399,8 @@ public final class Util {
* <p>If the current thread doesn't have a {@link Looper}, the application's main thread {@link * <p>If the current thread doesn't have a {@link Looper}, the application's main thread {@link
* Looper} is used. * Looper} is used.
*/ */
public static Handler createHandler() { public static Handler createHandlerForCurrentOrMainLooper() {
return createHandler(/* callback= */ null); return createHandlerForCurrentOrMainLooper(/* callback= */ null);
} }
/** /**
...@@ -416,8 +416,9 @@ public final class Util { ...@@ -416,8 +416,9 @@ public final class Util {
* callback is required. * callback is required.
* @return A {@link Handler} with the specified callback on the current {@link Looper} thread. * @return A {@link Handler} with the specified callback on the current {@link Looper} thread.
*/ */
public static Handler createHandler(@Nullable Handler.@UnknownInitialization Callback callback) { public static Handler createHandlerForCurrentOrMainLooper(
return createHandler(getLooper(), callback); @Nullable Handler.@UnknownInitialization Callback callback) {
return createHandler(getCurrentOrMainLooper(), callback);
} }
/** /**
...@@ -441,8 +442,8 @@ public final class Util { ...@@ -441,8 +442,8 @@ public final class Util {
* Returns the {@link Looper} associated with the current thread, or the {@link Looper} of the * Returns the {@link Looper} associated with the current thread, or the {@link Looper} of the
* application's main thread if the current thread doesn't have a {@link Looper}. * application's main thread if the current thread doesn't have a {@link Looper}.
*/ */
public static Looper getLooper() { public static Looper getCurrentOrMainLooper() {
Looper myLooper = Looper.myLooper(); @Nullable Looper myLooper = Looper.myLooper();
return myLooper != null ? myLooper : Looper.getMainLooper(); return myLooper != null ? myLooper : Looper.getMainLooper();
} }
......
...@@ -209,7 +209,7 @@ public interface ExoPlayer extends Player { ...@@ -209,7 +209,7 @@ public interface ExoPlayer extends Player {
this.mediaSourceFactory = mediaSourceFactory; this.mediaSourceFactory = mediaSourceFactory;
this.loadControl = loadControl; this.loadControl = loadControl;
this.bandwidthMeter = bandwidthMeter; this.bandwidthMeter = bandwidthMeter;
looper = Util.getLooper(); looper = Util.getCurrentOrMainLooper();
useLazyPreparation = true; useLazyPreparation = true;
seekParameters = SeekParameters.DEFAULT; seekParameters = SeekParameters.DEFAULT;
clock = Clock.DEFAULT; clock = Clock.DEFAULT;
......
...@@ -101,11 +101,7 @@ public final class ExoPlayerFactory { ...@@ -101,11 +101,7 @@ public final class ExoPlayerFactory {
TrackSelector trackSelector, TrackSelector trackSelector,
LoadControl loadControl) { LoadControl loadControl) {
return newSimpleInstance( return newSimpleInstance(
context, context, renderersFactory, trackSelector, loadControl, Util.getCurrentOrMainLooper());
renderersFactory,
trackSelector,
loadControl,
Util.getLooper());
} }
/** @deprecated Use {@link SimpleExoPlayer.Builder} instead. */ /** @deprecated Use {@link SimpleExoPlayer.Builder} instead. */
...@@ -124,7 +120,7 @@ public final class ExoPlayerFactory { ...@@ -124,7 +120,7 @@ public final class ExoPlayerFactory {
loadControl, loadControl,
bandwidthMeter, bandwidthMeter,
new AnalyticsCollector(Clock.DEFAULT), new AnalyticsCollector(Clock.DEFAULT),
Util.getLooper()); Util.getCurrentOrMainLooper());
} }
/** @deprecated Use {@link SimpleExoPlayer.Builder} instead. */ /** @deprecated Use {@link SimpleExoPlayer.Builder} instead. */
...@@ -142,7 +138,7 @@ public final class ExoPlayerFactory { ...@@ -142,7 +138,7 @@ public final class ExoPlayerFactory {
trackSelector, trackSelector,
loadControl, loadControl,
analyticsCollector, analyticsCollector,
Util.getLooper()); Util.getCurrentOrMainLooper());
} }
/** @deprecated Use {@link SimpleExoPlayer.Builder} instead. */ /** @deprecated Use {@link SimpleExoPlayer.Builder} instead. */
...@@ -220,7 +216,8 @@ public final class ExoPlayerFactory { ...@@ -220,7 +216,8 @@ public final class ExoPlayerFactory {
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
public static ExoPlayer newInstance( public static ExoPlayer newInstance(
Context context, Renderer[] renderers, TrackSelector trackSelector, LoadControl loadControl) { Context context, Renderer[] renderers, TrackSelector trackSelector, LoadControl loadControl) {
return newInstance(context, renderers, trackSelector, loadControl, Util.getLooper()); return newInstance(
context, renderers, trackSelector, loadControl, Util.getCurrentOrMainLooper());
} }
/** @deprecated Use {@link ExoPlayer.Builder} instead. */ /** @deprecated Use {@link ExoPlayer.Builder} instead. */
......
...@@ -437,8 +437,8 @@ import java.util.Set; ...@@ -437,8 +437,8 @@ import java.util.Set;
(source, timeline) -> mediaSourceListInfoListener.onPlaylistUpdateRequested(); (source, timeline) -> mediaSourceListInfoListener.onPlaylistUpdateRequested();
ForwardingEventListener eventListener = new ForwardingEventListener(holder); ForwardingEventListener eventListener = new ForwardingEventListener(holder);
childSources.put(holder, new MediaSourceAndListener(mediaSource, caller, eventListener)); childSources.put(holder, new MediaSourceAndListener(mediaSource, caller, eventListener));
mediaSource.addEventListener(Util.createHandler(), eventListener); mediaSource.addEventListener(Util.createHandlerForCurrentOrMainLooper(), eventListener);
mediaSource.addDrmEventListener(Util.createHandler(), eventListener); mediaSource.addDrmEventListener(Util.createHandlerForCurrentOrMainLooper(), eventListener);
mediaSource.prepareSource(caller, mediaTransferListener); mediaSource.prepareSource(caller, mediaTransferListener);
} }
......
...@@ -199,7 +199,7 @@ public class SimpleExoPlayer extends BasePlayer ...@@ -199,7 +199,7 @@ public class SimpleExoPlayer extends BasePlayer
this.loadControl = loadControl; this.loadControl = loadControl;
this.bandwidthMeter = bandwidthMeter; this.bandwidthMeter = bandwidthMeter;
this.analyticsCollector = analyticsCollector; this.analyticsCollector = analyticsCollector;
looper = Util.getLooper(); looper = Util.getCurrentOrMainLooper();
audioAttributes = AudioAttributes.DEFAULT; audioAttributes = AudioAttributes.DEFAULT;
wakeMode = C.WAKE_MODE_NONE; wakeMode = C.WAKE_MODE_NONE;
videoScalingMode = Renderer.VIDEO_SCALING_MODE_DEFAULT; videoScalingMode = Renderer.VIDEO_SCALING_MODE_DEFAULT;
......
...@@ -65,7 +65,7 @@ public final class AudioCapabilitiesReceiver { ...@@ -65,7 +65,7 @@ public final class AudioCapabilitiesReceiver {
context = context.getApplicationContext(); context = context.getApplicationContext();
this.context = context; this.context = context;
this.listener = Assertions.checkNotNull(listener); this.listener = Assertions.checkNotNull(listener);
handler = new Handler(Util.getLooper()); handler = Util.createHandlerForCurrentOrMainLooper();
receiver = Util.SDK_INT >= 21 ? new HdmiAudioPlugBroadcastReceiver() : null; receiver = Util.SDK_INT >= 21 ? new HdmiAudioPlugBroadcastReceiver() : null;
Uri externalSurroundSoundUri = AudioCapabilities.getExternalSurroundSoundGlobalSettingUri(); Uri externalSurroundSoundUri = AudioCapabilities.getExternalSurroundSoundGlobalSettingUri();
externalSurroundSoundSettingObserver = externalSurroundSoundSettingObserver =
......
...@@ -156,7 +156,7 @@ public final class DownloadHelper { ...@@ -156,7 +156,7 @@ public final class DownloadHelper {
public static RendererCapabilities[] getRendererCapabilities(RenderersFactory renderersFactory) { public static RendererCapabilities[] getRendererCapabilities(RenderersFactory renderersFactory) {
Renderer[] renderers = Renderer[] renderers =
renderersFactory.createRenderers( renderersFactory.createRenderers(
Util.createHandler(), Util.createHandlerForCurrentOrMainLooper(),
new VideoRendererEventListener() {}, new VideoRendererEventListener() {},
new AudioRendererEventListener() {}, new AudioRendererEventListener() {},
(cues) -> {}, (cues) -> {},
...@@ -501,7 +501,7 @@ public final class DownloadHelper { ...@@ -501,7 +501,7 @@ public final class DownloadHelper {
this.rendererCapabilities = rendererCapabilities; this.rendererCapabilities = rendererCapabilities;
this.scratchSet = new SparseIntArray(); this.scratchSet = new SparseIntArray();
trackSelector.init(/* listener= */ () -> {}, new DummyBandwidthMeter()); trackSelector.init(/* listener= */ () -> {}, new DummyBandwidthMeter());
callbackHandler = new Handler(Util.getLooper()); callbackHandler = Util.createHandlerForCurrentOrMainLooper();
window = new Timeline.Window(); window = new Timeline.Window();
} }
...@@ -970,7 +970,8 @@ public final class DownloadHelper { ...@@ -970,7 +970,8 @@ public final class DownloadHelper {
allocator = new DefaultAllocator(true, C.DEFAULT_BUFFER_SEGMENT_SIZE); allocator = new DefaultAllocator(true, C.DEFAULT_BUFFER_SEGMENT_SIZE);
pendingMediaPeriods = new ArrayList<>(); pendingMediaPeriods = new ArrayList<>();
@SuppressWarnings("methodref.receiver.bound.invalid") @SuppressWarnings("methodref.receiver.bound.invalid")
Handler downloadThreadHandler = Util.createHandler(this::handleDownloadHelperCallbackMessage); Handler downloadThreadHandler =
Util.createHandlerForCurrentOrMainLooper(this::handleDownloadHelperCallbackMessage);
this.downloadHelperHandler = downloadThreadHandler; this.downloadHelperHandler = downloadThreadHandler;
mediaSourceThread = new HandlerThread("ExoPlayer:DownloadHelper"); mediaSourceThread = new HandlerThread("ExoPlayer:DownloadHelper");
mediaSourceThread.start(); mediaSourceThread.start();
......
...@@ -228,7 +228,7 @@ public final class DownloadManager { ...@@ -228,7 +228,7 @@ public final class DownloadManager {
listeners = new CopyOnWriteArraySet<>(); listeners = new CopyOnWriteArraySet<>();
@SuppressWarnings("methodref.receiver.bound.invalid") @SuppressWarnings("methodref.receiver.bound.invalid")
Handler mainHandler = Util.createHandler(this::handleMainMessage); Handler mainHandler = Util.createHandlerForCurrentOrMainLooper(this::handleMainMessage);
this.applicationHandler = mainHandler; this.applicationHandler = mainHandler;
HandlerThread internalThread = new HandlerThread("ExoPlayer:DownloadManager"); HandlerThread internalThread = new HandlerThread("ExoPlayer:DownloadManager");
internalThread.start(); internalThread.start();
......
...@@ -950,7 +950,7 @@ public abstract class DownloadService extends Service { ...@@ -950,7 +950,7 @@ public abstract class DownloadService extends Service {
// DownloadService.getForegroundNotification, and concrete subclass implementations may // DownloadService.getForegroundNotification, and concrete subclass implementations may
// not anticipate the possibility of this method being called before their onCreate // not anticipate the possibility of this method being called before their onCreate
// implementation has finished executing. // implementation has finished executing.
Util.createHandler() Util.createHandlerForCurrentOrMainLooper()
.postAtFrontOfQueue( .postAtFrontOfQueue(
() -> downloadService.notifyDownloads(downloadManager.getCurrentDownloads())); () -> downloadService.notifyDownloads(downloadManager.getCurrentDownloads()));
} }
......
...@@ -71,7 +71,7 @@ public final class RequirementsWatcher { ...@@ -71,7 +71,7 @@ public final class RequirementsWatcher {
this.context = context.getApplicationContext(); this.context = context.getApplicationContext();
this.listener = listener; this.listener = listener;
this.requirements = requirements; this.requirements = requirements;
handler = new Handler(Util.getLooper()); handler = Util.createHandlerForCurrentOrMainLooper();
} }
/** /**
......
...@@ -48,7 +48,7 @@ public abstract class CompositeMediaSource<T> extends BaseMediaSource { ...@@ -48,7 +48,7 @@ public abstract class CompositeMediaSource<T> extends BaseMediaSource {
@CallSuper @CallSuper
protected void prepareSourceInternal(@Nullable TransferListener mediaTransferListener) { protected void prepareSourceInternal(@Nullable TransferListener mediaTransferListener) {
this.mediaTransferListener = mediaTransferListener; this.mediaTransferListener = mediaTransferListener;
eventHandler = Util.createHandler(); eventHandler = Util.createHandlerForCurrentOrMainLooper();
} }
@Override @Override
......
...@@ -192,7 +192,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; ...@@ -192,7 +192,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
.onContinueLoadingRequested(ProgressiveMediaPeriod.this); .onContinueLoadingRequested(ProgressiveMediaPeriod.this);
} }
}; };
handler = Util.createHandler(); handler = Util.createHandlerForCurrentOrMainLooper();
sampleQueueTrackIds = new TrackId[0]; sampleQueueTrackIds = new TrackId[0];
sampleQueues = new SampleQueue[0]; sampleQueues = new SampleQueue[0];
pendingResetPositionUs = C.TIME_UNSET; pendingResetPositionUs = C.TIME_UNSET;
......
...@@ -336,7 +336,7 @@ public final class AdsMediaSource extends CompositeMediaSource<MediaPeriodId> { ...@@ -336,7 +336,7 @@ public final class AdsMediaSource extends CompositeMediaSource<MediaPeriodId> {
* events on the external event listener thread. * events on the external event listener thread.
*/ */
public ComponentListener() { public ComponentListener() {
playerHandler = Util.createHandler(); playerHandler = Util.createHandlerForCurrentOrMainLooper();
} }
/** Releases the component listener. */ /** Releases the component listener. */
......
...@@ -1763,7 +1763,7 @@ public class MediaCodecVideoRenderer extends MediaCodecRenderer { ...@@ -1763,7 +1763,7 @@ public class MediaCodecVideoRenderer extends MediaCodecRenderer {
private final Handler handler; private final Handler handler;
public OnFrameRenderedListenerV23(MediaCodec codec) { public OnFrameRenderedListenerV23(MediaCodec codec) {
handler = Util.createHandler(/* callback= */ this); handler = Util.createHandlerForCurrentOrMainLooper(/* callback= */ this);
codec.setOnFrameRenderedListener(/* listener= */ this, handler); codec.setOnFrameRenderedListener(/* listener= */ this, handler);
} }
......
...@@ -599,7 +599,7 @@ public final class ClippingMediaSourceTest { ...@@ -599,7 +599,7 @@ public final class ClippingMediaSourceTest {
testRunner.runOnPlaybackThread( testRunner.runOnPlaybackThread(
() -> () ->
clippingMediaSource.addEventListener( clippingMediaSource.addEventListener(
Util.createHandler(), Util.createHandlerForCurrentOrMainLooper(),
new MediaSourceEventListener() { new MediaSourceEventListener() {
@Override @Override
public void onDownstreamFormatChanged( public void onDownstreamFormatChanged(
......
...@@ -412,7 +412,9 @@ public final class ConcatenatingMediaSourceTest { ...@@ -412,7 +412,9 @@ public final class ConcatenatingMediaSourceTest {
dummyMainThread.runOnMainThread( dummyMainThread.runOnMainThread(
() -> () ->
mediaSource.addMediaSource( mediaSource.addMediaSource(
createFakeMediaSource(), Util.createHandler(), runnableInvoked::countDown)); createFakeMediaSource(),
Util.createHandlerForCurrentOrMainLooper(),
runnableInvoked::countDown));
runnableInvoked.await(MediaSourceTestRunner.TIMEOUT_MS, TimeUnit.MILLISECONDS); runnableInvoked.await(MediaSourceTestRunner.TIMEOUT_MS, TimeUnit.MILLISECONDS);
dummyMainThread.release(); dummyMainThread.release();
...@@ -428,7 +430,7 @@ public final class ConcatenatingMediaSourceTest { ...@@ -428,7 +430,7 @@ public final class ConcatenatingMediaSourceTest {
() -> () ->
mediaSource.addMediaSources( mediaSource.addMediaSources(
Arrays.asList(new MediaSource[] {createFakeMediaSource(), createFakeMediaSource()}), Arrays.asList(new MediaSource[] {createFakeMediaSource(), createFakeMediaSource()}),
Util.createHandler(), Util.createHandlerForCurrentOrMainLooper(),
runnableInvoked::countDown)); runnableInvoked::countDown));
runnableInvoked.await(MediaSourceTestRunner.TIMEOUT_MS, TimeUnit.MILLISECONDS); runnableInvoked.await(MediaSourceTestRunner.TIMEOUT_MS, TimeUnit.MILLISECONDS);
dummyMainThread.release(); dummyMainThread.release();
...@@ -446,7 +448,7 @@ public final class ConcatenatingMediaSourceTest { ...@@ -446,7 +448,7 @@ public final class ConcatenatingMediaSourceTest {
mediaSource.addMediaSource( mediaSource.addMediaSource(
/* index */ 0, /* index */ 0,
createFakeMediaSource(), createFakeMediaSource(),
Util.createHandler(), Util.createHandlerForCurrentOrMainLooper(),
runnableInvoked::countDown)); runnableInvoked::countDown));
runnableInvoked.await(MediaSourceTestRunner.TIMEOUT_MS, TimeUnit.MILLISECONDS); runnableInvoked.await(MediaSourceTestRunner.TIMEOUT_MS, TimeUnit.MILLISECONDS);
dummyMainThread.release(); dummyMainThread.release();
...@@ -464,7 +466,7 @@ public final class ConcatenatingMediaSourceTest { ...@@ -464,7 +466,7 @@ public final class ConcatenatingMediaSourceTest {
mediaSource.addMediaSources( mediaSource.addMediaSources(
/* index */ 0, /* index */ 0,
Arrays.asList(new MediaSource[] {createFakeMediaSource(), createFakeMediaSource()}), Arrays.asList(new MediaSource[] {createFakeMediaSource(), createFakeMediaSource()}),
Util.createHandler(), Util.createHandlerForCurrentOrMainLooper(),
runnableInvoked::countDown)); runnableInvoked::countDown));
runnableInvoked.await(MediaSourceTestRunner.TIMEOUT_MS, TimeUnit.MILLISECONDS); runnableInvoked.await(MediaSourceTestRunner.TIMEOUT_MS, TimeUnit.MILLISECONDS);
dummyMainThread.release(); dummyMainThread.release();
...@@ -481,7 +483,9 @@ public final class ConcatenatingMediaSourceTest { ...@@ -481,7 +483,9 @@ public final class ConcatenatingMediaSourceTest {
() -> { () -> {
mediaSource.addMediaSource(createFakeMediaSource()); mediaSource.addMediaSource(createFakeMediaSource());
mediaSource.removeMediaSource( mediaSource.removeMediaSource(
/* index */ 0, Util.createHandler(), runnableInvoked::countDown); /* index */ 0,
Util.createHandlerForCurrentOrMainLooper(),
runnableInvoked::countDown);
}); });
runnableInvoked.await(MediaSourceTestRunner.TIMEOUT_MS, TimeUnit.MILLISECONDS); runnableInvoked.await(MediaSourceTestRunner.TIMEOUT_MS, TimeUnit.MILLISECONDS);
dummyMainThread.release(); dummyMainThread.release();
...@@ -499,7 +503,10 @@ public final class ConcatenatingMediaSourceTest { ...@@ -499,7 +503,10 @@ public final class ConcatenatingMediaSourceTest {
mediaSource.addMediaSources( mediaSource.addMediaSources(
Arrays.asList(new MediaSource[] {createFakeMediaSource(), createFakeMediaSource()})); Arrays.asList(new MediaSource[] {createFakeMediaSource(), createFakeMediaSource()}));
mediaSource.moveMediaSource( mediaSource.moveMediaSource(
/* fromIndex */ 1, /* toIndex */ 0, Util.createHandler(), runnableInvoked::countDown); /* fromIndex */ 1, /* toIndex */
0,
Util.createHandlerForCurrentOrMainLooper(),
runnableInvoked::countDown);
}); });
runnableInvoked.await(MediaSourceTestRunner.TIMEOUT_MS, TimeUnit.MILLISECONDS); runnableInvoked.await(MediaSourceTestRunner.TIMEOUT_MS, TimeUnit.MILLISECONDS);
dummyMainThread.release(); dummyMainThread.release();
...@@ -516,7 +523,9 @@ public final class ConcatenatingMediaSourceTest { ...@@ -516,7 +523,9 @@ public final class ConcatenatingMediaSourceTest {
dummyMainThread.runOnMainThread( dummyMainThread.runOnMainThread(
() -> () ->
mediaSource.addMediaSource( mediaSource.addMediaSource(
createFakeMediaSource(), Util.createHandler(), timelineGrabber)); createFakeMediaSource(),
Util.createHandlerForCurrentOrMainLooper(),
timelineGrabber));
Timeline timeline = timelineGrabber.assertTimelineChangeBlocking(); Timeline timeline = timelineGrabber.assertTimelineChangeBlocking();
assertThat(timeline.getWindowCount()).isEqualTo(1); assertThat(timeline.getWindowCount()).isEqualTo(1);
} finally { } finally {
...@@ -535,7 +544,7 @@ public final class ConcatenatingMediaSourceTest { ...@@ -535,7 +544,7 @@ public final class ConcatenatingMediaSourceTest {
mediaSource.addMediaSources( mediaSource.addMediaSources(
Arrays.asList( Arrays.asList(
new MediaSource[] {createFakeMediaSource(), createFakeMediaSource()}), new MediaSource[] {createFakeMediaSource(), createFakeMediaSource()}),
Util.createHandler(), Util.createHandlerForCurrentOrMainLooper(),
timelineGrabber)); timelineGrabber));
Timeline timeline = timelineGrabber.assertTimelineChangeBlocking(); Timeline timeline = timelineGrabber.assertTimelineChangeBlocking();
assertThat(timeline.getWindowCount()).isEqualTo(2); assertThat(timeline.getWindowCount()).isEqualTo(2);
...@@ -553,7 +562,10 @@ public final class ConcatenatingMediaSourceTest { ...@@ -553,7 +562,10 @@ public final class ConcatenatingMediaSourceTest {
dummyMainThread.runOnMainThread( dummyMainThread.runOnMainThread(
() -> () ->
mediaSource.addMediaSource( mediaSource.addMediaSource(
/* index */ 0, createFakeMediaSource(), Util.createHandler(), timelineGrabber)); /* index */ 0,
createFakeMediaSource(),
Util.createHandlerForCurrentOrMainLooper(),
timelineGrabber));
Timeline timeline = timelineGrabber.assertTimelineChangeBlocking(); Timeline timeline = timelineGrabber.assertTimelineChangeBlocking();
assertThat(timeline.getWindowCount()).isEqualTo(1); assertThat(timeline.getWindowCount()).isEqualTo(1);
} finally { } finally {
...@@ -573,7 +585,7 @@ public final class ConcatenatingMediaSourceTest { ...@@ -573,7 +585,7 @@ public final class ConcatenatingMediaSourceTest {
/* index */ 0, /* index */ 0,
Arrays.asList( Arrays.asList(
new MediaSource[] {createFakeMediaSource(), createFakeMediaSource()}), new MediaSource[] {createFakeMediaSource(), createFakeMediaSource()}),
Util.createHandler(), Util.createHandlerForCurrentOrMainLooper(),
timelineGrabber)); timelineGrabber));
Timeline timeline = timelineGrabber.assertTimelineChangeBlocking(); Timeline timeline = timelineGrabber.assertTimelineChangeBlocking();
assertThat(timeline.getWindowCount()).isEqualTo(2); assertThat(timeline.getWindowCount()).isEqualTo(2);
...@@ -593,7 +605,8 @@ public final class ConcatenatingMediaSourceTest { ...@@ -593,7 +605,8 @@ public final class ConcatenatingMediaSourceTest {
final TimelineGrabber timelineGrabber = new TimelineGrabber(testRunner); final TimelineGrabber timelineGrabber = new TimelineGrabber(testRunner);
dummyMainThread.runOnMainThread( dummyMainThread.runOnMainThread(
() -> () ->
mediaSource.removeMediaSource(/* index */ 0, Util.createHandler(), timelineGrabber)); mediaSource.removeMediaSource(
/* index */ 0, Util.createHandlerForCurrentOrMainLooper(), timelineGrabber));
Timeline timeline = timelineGrabber.assertTimelineChangeBlocking(); Timeline timeline = timelineGrabber.assertTimelineChangeBlocking();
assertThat(timeline.getWindowCount()).isEqualTo(0); assertThat(timeline.getWindowCount()).isEqualTo(0);
} finally { } finally {
...@@ -617,7 +630,10 @@ public final class ConcatenatingMediaSourceTest { ...@@ -617,7 +630,10 @@ public final class ConcatenatingMediaSourceTest {
dummyMainThread.runOnMainThread( dummyMainThread.runOnMainThread(
() -> () ->
mediaSource.moveMediaSource( mediaSource.moveMediaSource(
/* fromIndex */ 1, /* toIndex */ 0, Util.createHandler(), timelineGrabber)); /* fromIndex */ 1, /* toIndex */
0,
Util.createHandlerForCurrentOrMainLooper(),
timelineGrabber));
Timeline timeline = timelineGrabber.assertTimelineChangeBlocking(); Timeline timeline = timelineGrabber.assertTimelineChangeBlocking();
assertThat(timeline.getWindowCount()).isEqualTo(2); assertThat(timeline.getWindowCount()).isEqualTo(2);
} finally { } finally {
...@@ -638,7 +654,7 @@ public final class ConcatenatingMediaSourceTest { ...@@ -638,7 +654,7 @@ public final class ConcatenatingMediaSourceTest {
mediaSource.moveMediaSource( mediaSource.moveMediaSource(
/* currentIndex= */ 0, /* currentIndex= */ 0,
/* newIndex= */ 1, /* newIndex= */ 1,
Util.createHandler(), Util.createHandlerForCurrentOrMainLooper(),
callbackCalledCondition::countDown); callbackCalledCondition::countDown);
mediaSource.releaseSource(caller); mediaSource.releaseSource(caller);
}); });
...@@ -890,7 +906,8 @@ public final class ConcatenatingMediaSourceTest { ...@@ -890,7 +906,8 @@ public final class ConcatenatingMediaSourceTest {
testRunner.prepareSource(); testRunner.prepareSource();
final TimelineGrabber timelineGrabber = new TimelineGrabber(testRunner); final TimelineGrabber timelineGrabber = new TimelineGrabber(testRunner);
dummyMainThread.runOnMainThread(() -> mediaSource.clear(Util.createHandler(), timelineGrabber)); dummyMainThread.runOnMainThread(
() -> mediaSource.clear(Util.createHandlerForCurrentOrMainLooper(), timelineGrabber));
Timeline timeline = timelineGrabber.assertTimelineChangeBlocking(); Timeline timeline = timelineGrabber.assertTimelineChangeBlocking();
assertThat(timeline.isEmpty()).isTrue(); assertThat(timeline.isEmpty()).isTrue();
...@@ -1042,7 +1059,7 @@ public final class ConcatenatingMediaSourceTest { ...@@ -1042,7 +1059,7 @@ public final class ConcatenatingMediaSourceTest {
() -> () ->
mediaSource.setShuffleOrder( mediaSource.setShuffleOrder(
new ShuffleOrder.UnshuffledShuffleOrder(/* length= */ 0), new ShuffleOrder.UnshuffledShuffleOrder(/* length= */ 0),
Util.createHandler(), Util.createHandlerForCurrentOrMainLooper(),
runnableInvoked::countDown)); runnableInvoked::countDown));
runnableInvoked.await(MediaSourceTestRunner.TIMEOUT_MS, TimeUnit.MILLISECONDS); runnableInvoked.await(MediaSourceTestRunner.TIMEOUT_MS, TimeUnit.MILLISECONDS);
dummyMainThread.release(); dummyMainThread.release();
...@@ -1062,7 +1079,7 @@ public final class ConcatenatingMediaSourceTest { ...@@ -1062,7 +1079,7 @@ public final class ConcatenatingMediaSourceTest {
() -> () ->
mediaSource.setShuffleOrder( mediaSource.setShuffleOrder(
new ShuffleOrder.UnshuffledShuffleOrder(/* length= */ 3), new ShuffleOrder.UnshuffledShuffleOrder(/* length= */ 3),
Util.createHandler(), Util.createHandlerForCurrentOrMainLooper(),
timelineGrabber)); timelineGrabber));
Timeline timeline = timelineGrabber.assertTimelineChangeBlocking(); Timeline timeline = timelineGrabber.assertTimelineChangeBlocking();
assertThat(timeline.getFirstWindowIndex(/* shuffleModeEnabled= */ true)).isEqualTo(0); assertThat(timeline.getFirstWindowIndex(/* shuffleModeEnabled= */ true)).isEqualTo(0);
......
...@@ -65,7 +65,9 @@ public class MediaSourceEventDispatcherTest { ...@@ -65,7 +65,9 @@ public class MediaSourceEventDispatcherTest {
@Test @Test
public void listenerReceivesEventPopulatedWithMediaPeriodInfo() { public void listenerReceivesEventPopulatedWithMediaPeriodInfo() {
eventDispatcher.addEventListener( eventDispatcher.addEventListener(
Util.createHandler(), mediaSourceEventListener, MediaSourceEventListener.class); Util.createHandlerForCurrentOrMainLooper(),
mediaSourceEventListener,
MediaSourceEventListener.class);
eventDispatcher.dispatch( eventDispatcher.dispatch(
MediaSourceEventListener::onMediaPeriodCreated, MediaSourceEventListener.class); MediaSourceEventListener::onMediaPeriodCreated, MediaSourceEventListener.class);
...@@ -76,9 +78,13 @@ public class MediaSourceEventDispatcherTest { ...@@ -76,9 +78,13 @@ public class MediaSourceEventDispatcherTest {
@Test @Test
public void sameListenerObjectRegisteredTwiceOnlyReceivesEventsOnce() { public void sameListenerObjectRegisteredTwiceOnlyReceivesEventsOnce() {
eventDispatcher.addEventListener( eventDispatcher.addEventListener(
Util.createHandler(), mediaSourceEventListener, MediaSourceEventListener.class); Util.createHandlerForCurrentOrMainLooper(),
mediaSourceEventListener,
MediaSourceEventListener.class);
eventDispatcher.addEventListener( eventDispatcher.addEventListener(
Util.createHandler(), mediaSourceEventListener, MediaSourceEventListener.class); Util.createHandlerForCurrentOrMainLooper(),
mediaSourceEventListener,
MediaSourceEventListener.class);
eventDispatcher.dispatch( eventDispatcher.dispatch(
MediaSourceEventListener::onMediaPeriodCreated, MediaSourceEventListener.class); MediaSourceEventListener::onMediaPeriodCreated, MediaSourceEventListener.class);
...@@ -154,7 +160,9 @@ public class MediaSourceEventDispatcherTest { ...@@ -154,7 +160,9 @@ public class MediaSourceEventDispatcherTest {
@Test @Test
public void listenersAreCopiedToNewDispatcher() { public void listenersAreCopiedToNewDispatcher() {
eventDispatcher.addEventListener( eventDispatcher.addEventListener(
Util.createHandler(), mediaSourceEventListener, MediaSourceEventListener.class); Util.createHandlerForCurrentOrMainLooper(),
mediaSourceEventListener,
MediaSourceEventListener.class);
MediaSource.MediaPeriodId newPeriodId = new MediaSource.MediaPeriodId("different uid"); MediaSource.MediaPeriodId newPeriodId = new MediaSource.MediaPeriodId("different uid");
MediaSourceEventDispatcher newEventDispatcher = MediaSourceEventDispatcher newEventDispatcher =
...@@ -170,7 +178,9 @@ public class MediaSourceEventDispatcherTest { ...@@ -170,7 +178,9 @@ public class MediaSourceEventDispatcherTest {
@Test @Test
public void removingListenerStopsEventDispatch() { public void removingListenerStopsEventDispatch() {
eventDispatcher.addEventListener( eventDispatcher.addEventListener(
Util.createHandler(), mediaSourceEventListener, MediaSourceEventListener.class); Util.createHandlerForCurrentOrMainLooper(),
mediaSourceEventListener,
MediaSourceEventListener.class);
eventDispatcher.removeEventListener(mediaSourceEventListener, MediaSourceEventListener.class); eventDispatcher.removeEventListener(mediaSourceEventListener, MediaSourceEventListener.class);
eventDispatcher.dispatch( eventDispatcher.dispatch(
...@@ -182,7 +192,9 @@ public class MediaSourceEventDispatcherTest { ...@@ -182,7 +192,9 @@ public class MediaSourceEventDispatcherTest {
@Test @Test
public void removingListenerWithDifferentTypeToRegistrationDoesntRemove() { public void removingListenerWithDifferentTypeToRegistrationDoesntRemove() {
eventDispatcher.addEventListener( eventDispatcher.addEventListener(
Util.createHandler(), mediaAndDrmEventListener, MediaSourceEventListener.class); Util.createHandlerForCurrentOrMainLooper(),
mediaAndDrmEventListener,
MediaSourceEventListener.class);
eventDispatcher.removeEventListener(mediaAndDrmEventListener, DrmSessionEventListener.class); eventDispatcher.removeEventListener(mediaAndDrmEventListener, DrmSessionEventListener.class);
eventDispatcher.dispatch( eventDispatcher.dispatch(
...@@ -195,9 +207,13 @@ public class MediaSourceEventDispatcherTest { ...@@ -195,9 +207,13 @@ public class MediaSourceEventDispatcherTest {
public void listenersAreCountedBasedOnListenerAndType() { public void listenersAreCountedBasedOnListenerAndType() {
// Add the listener twice and remove it once. // Add the listener twice and remove it once.
eventDispatcher.addEventListener( eventDispatcher.addEventListener(
Util.createHandler(), mediaSourceEventListener, MediaSourceEventListener.class); Util.createHandlerForCurrentOrMainLooper(),
mediaSourceEventListener,
MediaSourceEventListener.class);
eventDispatcher.addEventListener( eventDispatcher.addEventListener(
Util.createHandler(), mediaSourceEventListener, MediaSourceEventListener.class); Util.createHandlerForCurrentOrMainLooper(),
mediaSourceEventListener,
MediaSourceEventListener.class);
eventDispatcher.removeEventListener(mediaSourceEventListener, MediaSourceEventListener.class); eventDispatcher.removeEventListener(mediaSourceEventListener, MediaSourceEventListener.class);
eventDispatcher.dispatch( eventDispatcher.dispatch(
......
...@@ -680,7 +680,7 @@ public final class DashMediaSource extends BaseMediaSource { ...@@ -680,7 +680,7 @@ public final class DashMediaSource extends BaseMediaSource {
} else { } else {
dataSource = manifestDataSourceFactory.createDataSource(); dataSource = manifestDataSourceFactory.createDataSource();
loader = new Loader("Loader:DashMediaSource"); loader = new Loader("Loader:DashMediaSource");
handler = Util.createHandler(); handler = Util.createHandlerForCurrentOrMainLooper();
startLoadingManifest(); startLoadingManifest();
} }
} }
......
...@@ -105,7 +105,7 @@ public final class PlayerEmsgHandler implements Handler.Callback { ...@@ -105,7 +105,7 @@ public final class PlayerEmsgHandler implements Handler.Callback {
this.allocator = allocator; this.allocator = allocator;
manifestPublishTimeToExpiryTimeUs = new TreeMap<>(); manifestPublishTimeToExpiryTimeUs = new TreeMap<>();
handler = Util.createHandler(/* callback= */ this); handler = Util.createHandlerForCurrentOrMainLooper(/* callback= */ this);
decoder = new EventMessageDecoder(); decoder = new EventMessageDecoder();
lastLoadedChunkEndTimeUs = C.TIME_UNSET; lastLoadedChunkEndTimeUs = C.TIME_UNSET;
lastLoadedChunkEndTimeBeforeRefreshUs = C.TIME_UNSET; lastLoadedChunkEndTimeBeforeRefreshUs = C.TIME_UNSET;
......
...@@ -227,7 +227,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; ...@@ -227,7 +227,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
@SuppressWarnings("nullness:methodref.receiver.bound.invalid") @SuppressWarnings("nullness:methodref.receiver.bound.invalid")
Runnable onTracksEndedRunnable = this::onTracksEnded; Runnable onTracksEndedRunnable = this::onTracksEnded;
this.onTracksEndedRunnable = onTracksEndedRunnable; this.onTracksEndedRunnable = onTracksEndedRunnable;
handler = Util.createHandler(); handler = Util.createHandlerForCurrentOrMainLooper();
lastSeekPositionUs = positionUs; lastSeekPositionUs = positionUs;
pendingResetPositionUs = positionUs; pendingResetPositionUs = positionUs;
} }
......
...@@ -121,7 +121,7 @@ public final class DefaultHlsPlaylistTracker ...@@ -121,7 +121,7 @@ public final class DefaultHlsPlaylistTracker
Uri initialPlaylistUri, Uri initialPlaylistUri,
EventDispatcher eventDispatcher, EventDispatcher eventDispatcher,
PrimaryPlaylistListener primaryPlaylistListener) { PrimaryPlaylistListener primaryPlaylistListener) {
this.playlistRefreshHandler = Util.createHandler(); this.playlistRefreshHandler = Util.createHandlerForCurrentOrMainLooper();
this.eventDispatcher = eventDispatcher; this.eventDispatcher = eventDispatcher;
this.primaryPlaylistListener = primaryPlaylistListener; this.primaryPlaylistListener = primaryPlaylistListener;
ParsingLoadable<HlsPlaylist> masterPlaylistLoadable = ParsingLoadable<HlsPlaylist> masterPlaylistLoadable =
......
...@@ -620,7 +620,7 @@ public final class SsMediaSource extends BaseMediaSource ...@@ -620,7 +620,7 @@ public final class SsMediaSource extends BaseMediaSource
manifestDataSource = manifestDataSourceFactory.createDataSource(); manifestDataSource = manifestDataSourceFactory.createDataSource();
manifestLoader = new Loader("Loader:Manifest"); manifestLoader = new Loader("Loader:Manifest");
manifestLoaderErrorThrower = manifestLoader; manifestLoaderErrorThrower = manifestLoader;
manifestRefreshHandler = Util.createHandler(); manifestRefreshHandler = Util.createHandlerForCurrentOrMainLooper();
startLoadingManifest(); startLoadingManifest();
} }
} }
......
...@@ -602,7 +602,7 @@ public abstract class Action { ...@@ -602,7 +602,7 @@ public abstract class Action {
} else { } else {
message.setPosition(positionMs); message.setPosition(positionMs);
} }
message.setHandler(Util.createHandler()); message.setHandler(Util.createHandlerForCurrentOrMainLooper());
message.setDeleteAfterDelivery(deleteAfterDelivery); message.setDeleteAfterDelivery(deleteAfterDelivery);
message.send(); message.send();
} }
...@@ -684,7 +684,7 @@ public abstract class Action { ...@@ -684,7 +684,7 @@ public abstract class Action {
@Nullable Surface surface, @Nullable Surface surface,
HandlerWrapper handler, HandlerWrapper handler,
@Nullable ActionNode nextAction) { @Nullable ActionNode nextAction) {
Handler testThreadHandler = Util.createHandler(); Handler testThreadHandler = Util.createHandlerForCurrentOrMainLooper();
// Schedule a message on the playback thread to ensure the player is paused immediately. // Schedule a message on the playback thread to ensure the player is paused immediately.
player player
.createMessage( .createMessage(
...@@ -1048,7 +1048,7 @@ public abstract class Action { ...@@ -1048,7 +1048,7 @@ public abstract class Action {
player player
.createMessage( .createMessage(
(type, data) -> nextAction.schedule(player, trackSelector, surface, handler)) (type, data) -> nextAction.schedule(player, trackSelector, surface, handler))
.setHandler(Util.createHandler()) .setHandler(Util.createHandlerForCurrentOrMainLooper())
.send(); .send();
} }
......
...@@ -137,7 +137,8 @@ public abstract class ExoHostedTest implements AnalyticsListener, HostedTest { ...@@ -137,7 +137,8 @@ public abstract class ExoHostedTest implements AnalyticsListener, HostedTest {
player.addAnalyticsListener(this); player.addAnalyticsListener(this);
player.addAnalyticsListener(new EventLogger(trackSelector, tag)); player.addAnalyticsListener(new EventLogger(trackSelector, tag));
// Schedule any pending actions. // Schedule any pending actions.
actionHandler = Clock.DEFAULT.createHandler(Util.getLooper(), /* callback= */ null); actionHandler =
Clock.DEFAULT.createHandler(Util.getCurrentOrMainLooper(), /* callback= */ null);
if (pendingSchedule != null) { if (pendingSchedule != null) {
pendingSchedule.start(player, trackSelector, surface, actionHandler, /* callback= */ null); pendingSchedule.start(player, trackSelector, surface, actionHandler, /* callback= */ null);
pendingSchedule = null; pendingSchedule = null;
......
...@@ -162,7 +162,7 @@ public class FakeMediaPeriod implements MediaPeriod { ...@@ -162,7 +162,7 @@ public class FakeMediaPeriod implements MediaPeriod {
/* mediaEndTimeUs = */ C.TIME_UNSET); /* mediaEndTimeUs = */ C.TIME_UNSET);
prepareCallback = callback; prepareCallback = callback;
if (deferOnPrepared) { if (deferOnPrepared) {
playerHandler = Util.createHandler(); playerHandler = Util.createHandlerForCurrentOrMainLooper();
} else { } else {
finishPreparation(); finishPreparation();
} }
......
...@@ -176,7 +176,7 @@ public class FakeMediaSource extends BaseMediaSource { ...@@ -176,7 +176,7 @@ public class FakeMediaSource extends BaseMediaSource {
drmSessionManager.prepare(); drmSessionManager.prepare();
preparedSource = true; preparedSource = true;
releasedSource = false; releasedSource = false;
sourceInfoRefreshHandler = Util.createHandler(); sourceInfoRefreshHandler = Util.createHandlerForCurrentOrMainLooper();
if (timeline != null) { if (timeline != null) {
finishSourcePreparation(/* sendManifestLoadEvents= */ true); finishSourcePreparation(/* sendManifestLoadEvents= */ true);
} }
......
...@@ -490,7 +490,7 @@ public class TestExoPlayer { ...@@ -490,7 +490,7 @@ public class TestExoPlayer {
AtomicBoolean receivedMessageCallback = new AtomicBoolean(false); AtomicBoolean receivedMessageCallback = new AtomicBoolean(false);
player player
.createMessage((type, data) -> receivedMessageCallback.set(true)) .createMessage((type, data) -> receivedMessageCallback.set(true))
.setHandler(Util.createHandler()) .setHandler(Util.createHandlerForCurrentOrMainLooper())
.send(); .send();
runMainLooperUntil(receivedMessageCallback::get); runMainLooperUntil(receivedMessageCallback::get);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment