From 1526ca5e3cbe7d049ce79cff7e98c24a8da406dd Mon Sep 17 00:00:00 2001 From: krocard Date: Thu, 25 Mar 2021 08:26:34 +0000 Subject: [PATCH] Move add/remove Player.Listener down of BasePlayer The BasePlayer implementation of add/remove Listener knows about Components. As those are removed from the Player interface, the implementation of those methods needs to be moved down in Player implementations. This commit makes no functional change. PiperOrigin-RevId: 364985291 --- .../exoplayer2/ext/cast/CastPlayer.java | 12 ++++ .../google/android/exoplayer2/BasePlayer.java | 55 ------------------- .../android/exoplayer2/ExoPlayerImpl.java | 12 ++++ .../android/exoplayer2/SimpleExoPlayer.java | 24 ++++++++ .../exoplayer2/testutil/StubExoPlayer.java | 10 ++++ 5 files changed, 58 insertions(+), 55 deletions(-) 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();