diff --git a/libraries/common/src/main/java/androidx/media3/common/util/ListenerSet.java b/libraries/common/src/main/java/androidx/media3/common/util/ListenerSet.java index 0ab3bab541..4d193d7a9a 100644 --- a/libraries/common/src/main/java/androidx/media3/common/util/ListenerSet.java +++ b/libraries/common/src/main/java/androidx/media3/common/util/ListenerSet.java @@ -99,14 +99,20 @@ public final class ListenerSet { * during one {@link Looper} message queue iteration were handled by the listeners. */ public ListenerSet(Looper looper, Clock clock, IterationFinishedEvent iterationFinishedEvent) { - this(/* listeners= */ new CopyOnWriteArraySet<>(), looper, clock, iterationFinishedEvent); + this( + /* listeners= */ new CopyOnWriteArraySet<>(), + looper, + clock, + iterationFinishedEvent, + /* throwsWhenUsingWrongThread= */ true); } private ListenerSet( CopyOnWriteArraySet> listeners, Looper looper, Clock clock, - IterationFinishedEvent iterationFinishedEvent) { + IterationFinishedEvent iterationFinishedEvent, + boolean throwsWhenUsingWrongThread) { this.clock = clock; this.listeners = listeners; this.iterationFinishedEvent = iterationFinishedEvent; @@ -117,7 +123,7 @@ public final class ListenerSet { @SuppressWarnings("nullness:methodref.receiver.bound") HandlerWrapper handler = clock.createHandler(looper, this::handleMessage); this.handler = handler; - throwsWhenUsingWrongThread = true; + this.throwsWhenUsingWrongThread = throwsWhenUsingWrongThread; } /** @@ -149,7 +155,8 @@ public final class ListenerSet { @CheckResult public ListenerSet copy( Looper looper, Clock clock, IterationFinishedEvent iterationFinishedEvent) { - return new ListenerSet<>(listeners, looper, clock, iterationFinishedEvent); + return new ListenerSet<>( + listeners, looper, clock, iterationFinishedEvent, throwsWhenUsingWrongThread); } /**