From f320d9e0ab5e0a10cb08a4855302b278fc1ef49d Mon Sep 17 00:00:00 2001 From: tonihei Date: Tue, 24 Apr 2018 05:21:06 -0700 Subject: [PATCH] Deprecate add/remove video/audio debug listener in SimpleExoPlayer. Using addAnalyticsListener provides the same functionality with additional information. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=194071893 --- .../android/exoplayer2/SimpleExoPlayer.java | 57 +++++++++++-------- 1 file changed, 32 insertions(+), 25 deletions(-) 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 9a73f68f34..482e2c970a 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 @@ -47,6 +47,7 @@ import com.google.android.exoplayer2.util.Clock; import com.google.android.exoplayer2.util.Util; import com.google.android.exoplayer2.video.VideoRendererEventListener; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.concurrent.CopyOnWriteArraySet; @@ -181,8 +182,8 @@ public class SimpleExoPlayer implements ExoPlayer, Player.VideoComponent, Player player = createExoPlayerImpl(renderers, trackSelector, loadControl, clock); analyticsCollector = analyticsCollectorFactory.createAnalyticsCollector(player, clock); addListener(analyticsCollector); - addVideoDebugListener(analyticsCollector); - addAudioDebugListener(analyticsCollector); + videoDebugListeners.add(analyticsCollector); + audioDebugListeners.add(analyticsCollector); addMetadataOutput(analyticsCollector); if (drmSessionManager instanceof DefaultDrmSessionManager) { ((DefaultDrmSessionManager) drmSessionManager).addListener(eventHandler, analyticsCollector); @@ -534,10 +535,20 @@ public class SimpleExoPlayer implements ExoPlayer, Player.VideoComponent, Player removeTextOutput(output); } + /** + * Adds a {@link MetadataOutput} to receive metadata. + * + * @param listener The output to register. + */ public void addMetadataOutput(MetadataOutput listener) { metadataOutputs.add(listener); } + /** + * Removes a {@link MetadataOutput}. + * + * @param listener The output to remove. + */ public void removeMetadataOutput(MetadataOutput listener) { metadataOutputs.remove(listener); } @@ -550,7 +561,7 @@ public class SimpleExoPlayer implements ExoPlayer, Player.VideoComponent, Player */ @Deprecated public void setMetadataOutput(MetadataOutput output) { - metadataOutputs.clear(); + metadataOutputs.retainAll(Collections.singleton(analyticsCollector)); if (output != null) { addMetadataOutput(output); } @@ -568,65 +579,61 @@ public class SimpleExoPlayer implements ExoPlayer, Player.VideoComponent, Player } /** - * Sets a listener to receive debug events from the video renderer. - * - * @param listener The listener. - * @deprecated Use {@link #addVideoDebugListener(VideoRendererEventListener)}. + * @deprecated Use {@link #addAnalyticsListener(AnalyticsListener)} to get more detailed debug + * information. */ @Deprecated public void setVideoDebugListener(VideoRendererEventListener listener) { - videoDebugListeners.clear(); + videoDebugListeners.retainAll(Collections.singleton(analyticsCollector)); if (listener != null) { addVideoDebugListener(listener); } } /** - * Adds a listener to receive debug events from the video renderer. - * - * @param listener The listener. + * @deprecated Use {@link #addAnalyticsListener(AnalyticsListener)} to get more detailed debug + * information. */ + @Deprecated public void addVideoDebugListener(VideoRendererEventListener listener) { videoDebugListeners.add(listener); } /** - * Removes a listener to receive debug events from the video renderer. - * - * @param listener The listener. + * @deprecated Use {@link #addAnalyticsListener(AnalyticsListener)} and {@link + * #removeAnalyticsListener(AnalyticsListener)} to get more detailed debug information. */ + @Deprecated public void removeVideoDebugListener(VideoRendererEventListener listener) { videoDebugListeners.remove(listener); } /** - * Sets a listener to receive debug events from the audio renderer. - * - * @param listener The listener. - * @deprecated Use {@link #addAudioDebugListener(AudioRendererEventListener)}. + * @deprecated Use {@link #addAnalyticsListener(AnalyticsListener)} to get more detailed debug + * information. */ @Deprecated public void setAudioDebugListener(AudioRendererEventListener listener) { - audioDebugListeners.clear(); + audioDebugListeners.retainAll(Collections.singleton(analyticsCollector)); if (listener != null) { addAudioDebugListener(listener); } } /** - * Adds a listener to receive debug events from the audio renderer. - * - * @param listener The listener. + * @deprecated Use {@link #addAnalyticsListener(AnalyticsListener)} to get more detailed debug + * information. */ + @Deprecated public void addAudioDebugListener(AudioRendererEventListener listener) { audioDebugListeners.add(listener); } /** - * Removes a listener to receive debug events from the audio renderer. - * - * @param listener The listener. + * @deprecated Use {@link #addAnalyticsListener(AnalyticsListener)} and {@link + * #removeAnalyticsListener(AnalyticsListener)} to get more detailed debug information. */ + @Deprecated public void removeAudioDebugListener(AudioRendererEventListener listener) { audioDebugListeners.remove(listener); }