From c331ac64e7c7a3f2eba2511f3ea9e9c4b9c4ac81 Mon Sep 17 00:00:00 2001 From: Chang Xiangzhong Date: Thu, 25 May 2023 18:51:15 +0200 Subject: [PATCH 1/2] 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); } /** From 1b564c67f27ec0a295db4893fbd67a99e7eff9a4 Mon Sep 17 00:00:00 2001 From: Ian Baker Date: Wed, 31 May 2023 18:04:16 +0100 Subject: [PATCH 2/2] Switch from boxed `Boolean` to primitive `boolean` Also add a parameter comment and reformat with `google-java-format`. --- .../androidx/media3/common/util/ListenerSet.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 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 59c4822626..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,7 +99,12 @@ 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, true); + this( + /* listeners= */ new CopyOnWriteArraySet<>(), + looper, + clock, + iterationFinishedEvent, + /* throwsWhenUsingWrongThread= */ true); } private ListenerSet( @@ -107,7 +112,7 @@ public final class ListenerSet { Looper looper, Clock clock, IterationFinishedEvent iterationFinishedEvent, - Boolean throwsWhenUsingWrongThread) { + boolean throwsWhenUsingWrongThread) { this.clock = clock; this.listeners = listeners; this.iterationFinishedEvent = iterationFinishedEvent; @@ -150,7 +155,8 @@ public final class ListenerSet { @CheckResult public ListenerSet copy( Looper looper, Clock clock, IterationFinishedEvent iterationFinishedEvent) { - return new ListenerSet<>(listeners, looper, clock, iterationFinishedEvent, throwsWhenUsingWrongThread); + return new ListenerSet<>( + listeners, looper, clock, iterationFinishedEvent, throwsWhenUsingWrongThread); } /**