diff --git a/RELEASENOTES.md b/RELEASENOTES.md index fb47d9543b..a36b41b197 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -102,6 +102,7 @@ * Remove `C.MSG_*` constants. Use identically named constants in `Renderer` instead, except for `C.MSG_SET_SURFACE`, which is replaced with `Renderer.MSG_SET_VIDEO_OUTPUT`. + * Remove `DeviceListener`. Use `Player.Listener` instead. * UI: * Add `setUseRewindAction` and `setUseFastForwardAction` to `PlayerNotificationManager`, and `setUseFastForwardActionInCompactView` diff --git a/library/common/src/main/java/com/google/android/exoplayer2/Player.java b/library/common/src/main/java/com/google/android/exoplayer2/Player.java index a706dfe6ea..e45cdc148b 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/Player.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/Player.java @@ -26,7 +26,6 @@ import androidx.annotation.Nullable; import com.google.android.exoplayer2.audio.AudioAttributes; import com.google.android.exoplayer2.audio.AudioListener; import com.google.android.exoplayer2.device.DeviceInfo; -import com.google.android.exoplayer2.device.DeviceListener; import com.google.android.exoplayer2.metadata.Metadata; import com.google.android.exoplayer2.metadata.MetadataOutput; import com.google.android.exoplayer2.source.TrackGroupArray; @@ -874,12 +873,7 @@ public interface Player { *

All methods have no-op default implementations to allow selective overrides. */ interface Listener - extends VideoListener, - AudioListener, - TextOutput, - MetadataOutput, - DeviceListener, - EventListener { + extends VideoListener, AudioListener, TextOutput, MetadataOutput, EventListener { @Override default void onTimelineChanged(Timeline timeline, @TimelineChangeReason int reason) {} @@ -949,10 +943,10 @@ public interface Player { @Override default void onSkipSilenceEnabledChanged(boolean skipSilenceEnabled) {} - @Override + /** Called when the device information changes. */ default void onDeviceInfoChanged(DeviceInfo deviceInfo) {} - @Override + /** Called when the device volume or mute state changes. */ default void onDeviceVolumeChanged(int volume, boolean muted) {} @Override diff --git a/library/common/src/main/java/com/google/android/exoplayer2/device/DeviceListener.java b/library/common/src/main/java/com/google/android/exoplayer2/device/DeviceListener.java deleted file mode 100644 index 408868da79..0000000000 --- a/library/common/src/main/java/com/google/android/exoplayer2/device/DeviceListener.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright 2020 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.google.android.exoplayer2.device; - -import com.google.android.exoplayer2.Player; - -/** - * A listener for changes of {@link DeviceInfo} or device volume. - * - * @deprecated Use {@link Player.Listener}. - */ -@Deprecated -public interface DeviceListener { - - /** Called when the device information changes. */ - default void onDeviceInfoChanged(DeviceInfo deviceInfo) {} - - /** Called when the device volume or mute state changes. */ - default void onDeviceVolumeChanged(int volume, boolean muted) {} -} diff --git a/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayer.java b/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayer.java index 17aa270f90..cee8bb8943 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayer.java @@ -34,7 +34,6 @@ import com.google.android.exoplayer2.audio.AuxEffectInfo; import com.google.android.exoplayer2.audio.DefaultAudioSink; import com.google.android.exoplayer2.audio.MediaCodecAudioRenderer; import com.google.android.exoplayer2.device.DeviceInfo; -import com.google.android.exoplayer2.device.DeviceListener; import com.google.android.exoplayer2.metadata.MetadataOutput; import com.google.android.exoplayer2.metadata.MetadataRenderer; import com.google.android.exoplayer2.source.DefaultMediaSourceFactory; @@ -471,22 +470,6 @@ public interface ExoPlayer extends Player { /** The device component of an {@link ExoPlayer}. */ interface DeviceComponent { - /** - * Adds a listener to receive device events. - * - * @deprecated Use {@link #addListener(Listener)}. - */ - @Deprecated - void addDeviceListener(DeviceListener listener); - - /** - * Removes a listener of device events. - * - * @deprecated Use {@link #removeListener(Listener)}. - */ - @Deprecated - void removeDeviceListener(DeviceListener listener); - /** Gets the device information. */ DeviceInfo getDeviceInfo(); 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 3acffbca5a..1eb4ad799c 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 @@ -55,7 +55,6 @@ import com.google.android.exoplayer2.audio.AuxEffectInfo; import com.google.android.exoplayer2.decoder.DecoderCounters; import com.google.android.exoplayer2.decoder.DecoderReuseEvaluation; import com.google.android.exoplayer2.device.DeviceInfo; -import com.google.android.exoplayer2.device.DeviceListener; import com.google.android.exoplayer2.extractor.DefaultExtractorsFactory; import com.google.android.exoplayer2.extractor.ExtractorsFactory; import com.google.android.exoplayer2.metadata.Metadata; @@ -667,7 +666,7 @@ public class SimpleExoPlayer extends BasePlayer private final CopyOnWriteArraySet audioListeners; private final CopyOnWriteArraySet textOutputs; private final CopyOnWriteArraySet metadataOutputs; - private final CopyOnWriteArraySet deviceListeners; + private final CopyOnWriteArraySet deviceListeners; private final AnalyticsCollector analyticsCollector; private final AudioBecomingNoisyManager audioBecomingNoisyManager; private final AudioFocusManager audioFocusManager; @@ -1382,7 +1381,7 @@ public class SimpleExoPlayer extends BasePlayer addVideoListener(listener); addTextOutput(listener); addMetadataOutput(listener); - addDeviceListener(listener); + deviceListeners.add(listener); EventListener eventListener = listener; addListener(eventListener); } @@ -1402,7 +1401,7 @@ public class SimpleExoPlayer extends BasePlayer removeVideoListener(listener); removeTextOutput(listener); removeMetadataOutput(listener); - removeDeviceListener(listener); + deviceListeners.remove(listener); EventListener eventListener = listener; removeListener(eventListener); } @@ -1912,21 +1911,6 @@ public class SimpleExoPlayer extends BasePlayer } } - @Deprecated - @Override - public void addDeviceListener(DeviceListener listener) { - // Don't verify application thread. We allow calls to this method from any thread. - Assertions.checkNotNull(listener); - deviceListeners.add(listener); - } - - @Deprecated - @Override - public void removeDeviceListener(DeviceListener listener) { - // Don't verify application thread. We allow calls to this method from any thread. - deviceListeners.remove(listener); - } - @Override public DeviceInfo getDeviceInfo() { verifyApplicationThread(); @@ -2476,7 +2460,8 @@ public class SimpleExoPlayer extends BasePlayer DeviceInfo deviceInfo = createDeviceInfo(streamVolumeManager); if (!deviceInfo.equals(SimpleExoPlayer.this.deviceInfo)) { SimpleExoPlayer.this.deviceInfo = deviceInfo; - for (DeviceListener deviceListener : deviceListeners) { + // TODO(internal b/187152483): Events should be dispatched via ListenerSet + for (Listener deviceListener : deviceListeners) { deviceListener.onDeviceInfoChanged(deviceInfo); } } @@ -2484,7 +2469,8 @@ public class SimpleExoPlayer extends BasePlayer @Override public void onStreamVolumeChanged(int streamVolume, boolean streamMuted) { - for (DeviceListener deviceListener : deviceListeners) { + // TODO(internal b/187152483): Events should be dispatched via ListenerSet + for (Listener deviceListener : deviceListeners) { deviceListener.onDeviceVolumeChanged(streamVolume, streamMuted); } }