diff --git a/extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/CastPlayer.java b/extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/CastPlayer.java index 7bc0332d3f..87d5792c49 100644 --- a/extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/CastPlayer.java +++ b/extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/CastPlayer.java @@ -306,11 +306,23 @@ public final class CastPlayer extends BasePlayer { return Looper.getMainLooper(); } + @Override + public void addListener(Listener listener) { + EventListener eventListener = listener; + addListener(eventListener); + } + @Override public void addListener(EventListener listener) { listeners.add(listener); } + @Override + public void removeListener(Listener listener) { + EventListener eventListener = listener; + removeListener(eventListener); + } + @Override public void removeListener(EventListener listener) { listeners.remove(listener); diff --git a/library/common/src/main/java/com/google/android/exoplayer2/BasePlayer.java b/library/common/src/main/java/com/google/android/exoplayer2/BasePlayer.java index 6a77b67db3..7aee3b412d 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/BasePlayer.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/BasePlayer.java @@ -16,7 +16,6 @@ package com.google.android.exoplayer2; import androidx.annotation.Nullable; -import com.google.android.exoplayer2.util.Assertions; import com.google.android.exoplayer2.util.Util; import java.util.Collections; import java.util.List; @@ -30,60 +29,6 @@ public abstract class BasePlayer implements Player { window = new Timeline.Window(); } - @Override - public final void addListener(Listener listener) { - Assertions.checkNotNull(listener); - @Nullable AudioComponent audioComponent = getAudioComponent(); - if (audioComponent != null) { - audioComponent.addAudioListener(listener); - } - @Nullable VideoComponent videoComponent = getVideoComponent(); - if (videoComponent != null) { - videoComponent.addVideoListener(listener); - } - @Nullable TextComponent textComponent = getTextComponent(); - if (textComponent != null) { - textComponent.addTextOutput(listener); - } - @Nullable MetadataComponent metadataComponent = getMetadataComponent(); - if (metadataComponent != null) { - metadataComponent.addMetadataOutput(listener); - } - @Nullable DeviceComponent deviceComponent = getDeviceComponent(); - if (deviceComponent != null) { - deviceComponent.addDeviceListener(listener); - } - EventListener eventListener = listener; - addListener(eventListener); - } - - @Override - public final void removeListener(Listener listener) { - Assertions.checkNotNull(listener); - @Nullable AudioComponent audioComponent = getAudioComponent(); - if (audioComponent != null) { - audioComponent.removeAudioListener(listener); - } - @Nullable VideoComponent videoComponent = getVideoComponent(); - if (videoComponent != null) { - videoComponent.removeVideoListener(listener); - } - @Nullable TextComponent textComponent = getTextComponent(); - if (textComponent != null) { - textComponent.removeTextOutput(listener); - } - @Nullable MetadataComponent metadataComponent = getMetadataComponent(); - if (metadataComponent != null) { - metadataComponent.removeMetadataOutput(listener); - } - @Nullable DeviceComponent deviceComponent = getDeviceComponent(); - if (deviceComponent != null) { - deviceComponent.removeDeviceListener(listener); - } - EventListener eventListener = listener; - removeListener(eventListener); - } - @Override public final void setMediaItem(MediaItem mediaItem) { setMediaItems(Collections.singletonList(mediaItem)); diff --git a/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImpl.java b/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImpl.java index 4e1e5e30a3..0b169ddc90 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImpl.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImpl.java @@ -300,11 +300,23 @@ import java.util.concurrent.CopyOnWriteArraySet; return clock; } + @Override + public void addListener(Listener listener) { + EventListener eventListener = listener; + addListener(eventListener); + } + @Override public void addListener(Player.EventListener listener) { listeners.add(listener); } + @Override + public void removeListener(Listener listener) { + EventListener eventListener = listener; + removeListener(eventListener); + } + @Override public void removeListener(Player.EventListener listener) { listeners.remove(listener); diff --git a/library/core/src/main/java/com/google/android/exoplayer2/SimpleExoPlayer.java b/library/core/src/main/java/com/google/android/exoplayer2/SimpleExoPlayer.java index 316c6d573e..bed3b48bcf 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/SimpleExoPlayer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/SimpleExoPlayer.java @@ -1232,6 +1232,18 @@ public class SimpleExoPlayer extends BasePlayer return player.getClock(); } + @Override + public void addListener(Listener listener) { + Assertions.checkNotNull(listener); + addAudioListener(listener); + addVideoListener(listener); + addTextOutput(listener); + addMetadataOutput(listener); + addDeviceListener(listener); + EventListener eventListener = listener; + addListener(eventListener); + } + @Override public void addListener(Player.EventListener listener) { // Don't verify application thread. We allow calls to this method from any thread. @@ -1239,6 +1251,18 @@ public class SimpleExoPlayer extends BasePlayer player.addListener(listener); } + @Override + public void removeListener(Listener listener) { + Assertions.checkNotNull(listener); + removeAudioListener(listener); + removeVideoListener(listener); + removeTextOutput(listener); + removeMetadataOutput(listener); + removeDeviceListener(listener); + EventListener eventListener = listener; + removeListener(eventListener); + } + @Override public void removeListener(Player.EventListener listener) { // Don't verify application thread. We allow calls to this method from any thread. diff --git a/testutils/src/main/java/com/google/android/exoplayer2/testutil/StubExoPlayer.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/StubExoPlayer.java index dfcada0e9b..66fc803c7c 100644 --- a/testutils/src/main/java/com/google/android/exoplayer2/testutil/StubExoPlayer.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/StubExoPlayer.java @@ -81,11 +81,21 @@ public class StubExoPlayer extends BasePlayer implements ExoPlayer { throw new UnsupportedOperationException(); } + @Override + public void addListener(Listener listener) { + throw new UnsupportedOperationException(); + } + @Override public void addListener(Player.EventListener listener) { throw new UnsupportedOperationException(); } + @Override + public void removeListener(Listener listener) { + throw new UnsupportedOperationException(); + } + @Override public void removeListener(Player.EventListener listener) { throw new UnsupportedOperationException();