From c331ac64e7c7a3f2eba2511f3ea9e9c4b9c4ac81 Mon Sep 17 00:00:00 2001 From: Chang Xiangzhong Date: Thu, 25 May 2023 18:51:15 +0200 Subject: [PATCH] Save state throwsWhenUsingWrongThread when copy() --- .../java/androidx/media3/common/util/ListenerSet.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) 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..59c4822626 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,15 @@ 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, 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 +118,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 +150,7 @@ 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); } /**