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
This commit is contained in:
krocard 2021-03-25 08:26:34 +00:00 committed by Oliver Woodman
parent 774cce4df3
commit 1526ca5e3c
5 changed files with 58 additions and 55 deletions

View File

@ -306,11 +306,23 @@ public final class CastPlayer extends BasePlayer {
return Looper.getMainLooper(); return Looper.getMainLooper();
} }
@Override
public void addListener(Listener listener) {
EventListener eventListener = listener;
addListener(eventListener);
}
@Override @Override
public void addListener(EventListener listener) { public void addListener(EventListener listener) {
listeners.add(listener); listeners.add(listener);
} }
@Override
public void removeListener(Listener listener) {
EventListener eventListener = listener;
removeListener(eventListener);
}
@Override @Override
public void removeListener(EventListener listener) { public void removeListener(EventListener listener) {
listeners.remove(listener); listeners.remove(listener);

View File

@ -16,7 +16,6 @@
package com.google.android.exoplayer2; package com.google.android.exoplayer2;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import com.google.android.exoplayer2.util.Assertions;
import com.google.android.exoplayer2.util.Util; import com.google.android.exoplayer2.util.Util;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
@ -30,60 +29,6 @@ public abstract class BasePlayer implements Player {
window = new Timeline.Window(); 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 @Override
public final void setMediaItem(MediaItem mediaItem) { public final void setMediaItem(MediaItem mediaItem) {
setMediaItems(Collections.singletonList(mediaItem)); setMediaItems(Collections.singletonList(mediaItem));

View File

@ -300,11 +300,23 @@ import java.util.concurrent.CopyOnWriteArraySet;
return clock; return clock;
} }
@Override
public void addListener(Listener listener) {
EventListener eventListener = listener;
addListener(eventListener);
}
@Override @Override
public void addListener(Player.EventListener listener) { public void addListener(Player.EventListener listener) {
listeners.add(listener); listeners.add(listener);
} }
@Override
public void removeListener(Listener listener) {
EventListener eventListener = listener;
removeListener(eventListener);
}
@Override @Override
public void removeListener(Player.EventListener listener) { public void removeListener(Player.EventListener listener) {
listeners.remove(listener); listeners.remove(listener);

View File

@ -1232,6 +1232,18 @@ public class SimpleExoPlayer extends BasePlayer
return player.getClock(); 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 @Override
public void addListener(Player.EventListener listener) { public void addListener(Player.EventListener listener) {
// Don't verify application thread. We allow calls to this method from any thread. // 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); 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 @Override
public void removeListener(Player.EventListener listener) { public void removeListener(Player.EventListener listener) {
// Don't verify application thread. We allow calls to this method from any thread. // Don't verify application thread. We allow calls to this method from any thread.

View File

@ -81,11 +81,21 @@ public class StubExoPlayer extends BasePlayer implements ExoPlayer {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
@Override
public void addListener(Listener listener) {
throw new UnsupportedOperationException();
}
@Override @Override
public void addListener(Player.EventListener listener) { public void addListener(Player.EventListener listener) {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
@Override
public void removeListener(Listener listener) {
throw new UnsupportedOperationException();
}
@Override @Override
public void removeListener(Player.EventListener listener) { public void removeListener(Player.EventListener listener) {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();