Remove threading requirement from listener registration methods.

These methods operate on a thread-safe collection and are thus
inherently thread-safe. This simplifies some player setup configurations
where initial listeners are added on a background thread (e.g. when
using a dependency injection framework).

PiperOrigin-RevId: 310113181
This commit is contained in:
tonihei 2020-05-06 10:14:30 +01:00 committed by Oliver Woodman
parent 95ffc365ca
commit 98f8862d1c

View File

@ -659,11 +659,13 @@ public class SimpleExoPlayer extends BasePlayer
@Override
public void addAudioListener(AudioListener listener) {
// Don't verify application thread. We allow calls to this method from any thread.
audioListeners.add(listener);
}
@Override
public void removeAudioListener(AudioListener listener) {
// Don't verify application thread. We allow calls to this method from any thread.
audioListeners.remove(listener);
}
@ -807,7 +809,7 @@ public class SimpleExoPlayer extends BasePlayer
* @param listener The listener to be added.
*/
public void addAnalyticsListener(AnalyticsListener listener) {
verifyApplicationThread();
// Don't verify application thread. We allow calls to this method from any thread.
analyticsCollector.addListener(listener);
}
@ -817,7 +819,7 @@ public class SimpleExoPlayer extends BasePlayer
* @param listener The listener to be removed.
*/
public void removeAnalyticsListener(AnalyticsListener listener) {
verifyApplicationThread();
// Don't verify application thread. We allow calls to this method from any thread.
analyticsCollector.removeListener(listener);
}
@ -906,11 +908,13 @@ public class SimpleExoPlayer extends BasePlayer
@Override
public void addVideoListener(com.google.android.exoplayer2.video.VideoListener listener) {
// Don't verify application thread. We allow calls to this method from any thread.
videoListeners.add(listener);
}
@Override
public void removeVideoListener(com.google.android.exoplayer2.video.VideoListener listener) {
// Don't verify application thread. We allow calls to this method from any thread.
videoListeners.remove(listener);
}
@ -980,11 +984,13 @@ public class SimpleExoPlayer extends BasePlayer
@Override
public void addTextOutput(TextOutput listener) {
// Don't verify application thread. We allow calls to this method from any thread.
textOutputs.add(listener);
}
@Override
public void removeTextOutput(TextOutput listener) {
// Don't verify application thread. We allow calls to this method from any thread.
textOutputs.remove(listener);
}
@ -1021,11 +1027,13 @@ public class SimpleExoPlayer extends BasePlayer
@Override
public void addMetadataOutput(MetadataOutput listener) {
// Don't verify application thread. We allow calls to this method from any thread.
metadataOutputs.add(listener);
}
@Override
public void removeMetadataOutput(MetadataOutput listener) {
// Don't verify application thread. We allow calls to this method from any thread.
metadataOutputs.remove(listener);
}
@ -1130,13 +1138,13 @@ public class SimpleExoPlayer extends BasePlayer
@Override
public void addListener(Player.EventListener listener) {
verifyApplicationThread();
// Don't verify application thread. We allow calls to this method from any thread.
player.addListener(listener);
}
@Override
public void removeListener(Player.EventListener listener) {
verifyApplicationThread();
// Don't verify application thread. We allow calls to this method from any thread.
player.removeListener(listener);
}
@ -1691,11 +1699,13 @@ public class SimpleExoPlayer extends BasePlayer
@Override
public void addDeviceListener(DeviceListener listener) {
// Don't verify application thread. We allow calls to this method from any thread.
deviceListeners.add(listener);
}
@Override
public void removeDeviceListener(DeviceListener listener) {
// Don't verify application thread. We allow calls to this method from any thread.
deviceListeners.remove(listener);
}