From b9a6a405391f8f7be1091cab1d791aa757996469 Mon Sep 17 00:00:00 2001 From: tonihei Date: Tue, 22 Aug 2017 07:27:27 -0700 Subject: [PATCH] Add listener callback for shuffle mode changes. The listener implementations do not do anything yet. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=166056933 --- .../com/google/android/exoplayer2/demo/EventLogger.java | 5 +++++ .../com/google/android/exoplayer2/demo/PlayerActivity.java | 5 +++++ .../android/exoplayer2/ext/flac/FlacPlaybackTest.java | 5 +++++ .../google/android/exoplayer2/ext/ima/ImaAdsLoader.java | 5 +++++ .../exoplayer2/ext/leanback/LeanbackPlayerAdapter.java | 5 +++++ .../exoplayer2/ext/mediasession/MediaSessionConnector.java | 5 +++++ .../android/exoplayer2/ext/opus/OpusPlaybackTest.java | 5 +++++ .../google/android/exoplayer2/ext/vp9/VpxPlaybackTest.java | 5 +++++ .../java/com/google/android/exoplayer2/ExoPlayerImpl.java | 4 ++++ .../main/java/com/google/android/exoplayer2/Player.java | 7 +++++++ .../google/android/exoplayer2/ui/DebugTextViewHelper.java | 5 +++++ .../google/android/exoplayer2/ui/PlaybackControlView.java | 5 +++++ .../google/android/exoplayer2/ui/SimpleExoPlayerView.java | 5 +++++ .../com/google/android/exoplayer2/testutil/Action.java | 5 +++++ .../google/android/exoplayer2/testutil/ExoHostedTest.java | 5 +++++ .../android/exoplayer2/testutil/ExoPlayerTestRunner.java | 5 +++++ 16 files changed, 81 insertions(+) diff --git a/demos/main/src/main/java/com/google/android/exoplayer2/demo/EventLogger.java b/demos/main/src/main/java/com/google/android/exoplayer2/demo/EventLogger.java index cbc3536ef7..533306e0a2 100644 --- a/demos/main/src/main/java/com/google/android/exoplayer2/demo/EventLogger.java +++ b/demos/main/src/main/java/com/google/android/exoplayer2/demo/EventLogger.java @@ -99,6 +99,11 @@ import java.util.Locale; Log.d(TAG, "repeatMode [" + getRepeatModeString(repeatMode) + "]"); } + @Override + public void onShuffleModeEnabledChanged(boolean shuffleModeEnabled) { + Log.d(TAG, "shuffleModeEnabled [" + shuffleModeEnabled + "]"); + } + @Override public void onPositionDiscontinuity() { Log.d(TAG, "positionDiscontinuity"); diff --git a/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java b/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java index 6416cd5aa2..6d733c9f97 100644 --- a/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java +++ b/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java @@ -501,6 +501,11 @@ public class PlayerActivity extends Activity implements OnClickListener, EventLi // Do nothing. } + @Override + public void onShuffleModeEnabledChanged(boolean shuffleModeEnabled) { + // Do nothing. + } + @Override public void onPositionDiscontinuity() { if (inErrorState) { diff --git a/extensions/flac/src/androidTest/java/com/google/android/exoplayer2/ext/flac/FlacPlaybackTest.java b/extensions/flac/src/androidTest/java/com/google/android/exoplayer2/ext/flac/FlacPlaybackTest.java index 1fa30bed9d..1257b652eb 100644 --- a/extensions/flac/src/androidTest/java/com/google/android/exoplayer2/ext/flac/FlacPlaybackTest.java +++ b/extensions/flac/src/androidTest/java/com/google/android/exoplayer2/ext/flac/FlacPlaybackTest.java @@ -132,6 +132,11 @@ public class FlacPlaybackTest extends InstrumentationTestCase { // Do nothing. } + @Override + public void onShuffleModeEnabledChanged(boolean shuffleModeEnabled) { + // Do nothing. + } + private void releasePlayerAndQuitLooper() { player.release(); Looper.myLooper().quit(); diff --git a/extensions/ima/src/main/java/com/google/android/exoplayer2/ext/ima/ImaAdsLoader.java b/extensions/ima/src/main/java/com/google/android/exoplayer2/ext/ima/ImaAdsLoader.java index 9bfe33e988..c27ef17b87 100644 --- a/extensions/ima/src/main/java/com/google/android/exoplayer2/ext/ima/ImaAdsLoader.java +++ b/extensions/ima/src/main/java/com/google/android/exoplayer2/ext/ima/ImaAdsLoader.java @@ -566,6 +566,11 @@ public final class ImaAdsLoader implements Player.EventListener, VideoAdPlayer, // Do nothing. } + @Override + public void onShuffleModeEnabledChanged(boolean shuffleModeEnabled) { + // Do nothing. + } + @Override public void onPlayerError(ExoPlaybackException error) { if (playingAd) { diff --git a/extensions/leanback/src/main/java/com/google/android/exoplayer2/ext/leanback/LeanbackPlayerAdapter.java b/extensions/leanback/src/main/java/com/google/android/exoplayer2/ext/leanback/LeanbackPlayerAdapter.java index 26fd4e9c8f..8a207bea8f 100644 --- a/extensions/leanback/src/main/java/com/google/android/exoplayer2/ext/leanback/LeanbackPlayerAdapter.java +++ b/extensions/leanback/src/main/java/com/google/android/exoplayer2/ext/leanback/LeanbackPlayerAdapter.java @@ -271,6 +271,11 @@ public final class LeanbackPlayerAdapter extends PlayerAdapter { // Do nothing. } + @Override + public void onShuffleModeEnabledChanged(boolean shuffleModeEnabled) { + // Do nothing. + } + // SimpleExoplayerView.Callback implementation. @Override diff --git a/extensions/mediasession/src/main/java/com/google/android/exoplayer2/ext/mediasession/MediaSessionConnector.java b/extensions/mediasession/src/main/java/com/google/android/exoplayer2/ext/mediasession/MediaSessionConnector.java index 419614347f..84c164f76c 100644 --- a/extensions/mediasession/src/main/java/com/google/android/exoplayer2/ext/mediasession/MediaSessionConnector.java +++ b/extensions/mediasession/src/main/java/com/google/android/exoplayer2/ext/mediasession/MediaSessionConnector.java @@ -619,6 +619,11 @@ public final class MediaSessionConnector { updateMediaSessionPlaybackState(); } + @Override + public void onShuffleModeEnabledChanged(boolean shuffleModeEnabled) { + // TODO: Support shuffle mode in MediaSessionConnector. + } + @Override public void onPlayerError(ExoPlaybackException error) { playbackException = error; diff --git a/extensions/opus/src/androidTest/java/com/google/android/exoplayer2/ext/opus/OpusPlaybackTest.java b/extensions/opus/src/androidTest/java/com/google/android/exoplayer2/ext/opus/OpusPlaybackTest.java index 4c576b2cc0..6eeebaef4b 100644 --- a/extensions/opus/src/androidTest/java/com/google/android/exoplayer2/ext/opus/OpusPlaybackTest.java +++ b/extensions/opus/src/androidTest/java/com/google/android/exoplayer2/ext/opus/OpusPlaybackTest.java @@ -132,6 +132,11 @@ public class OpusPlaybackTest extends InstrumentationTestCase { // Do nothing. } + @Override + public void onShuffleModeEnabledChanged(boolean shuffleModeEnabled) { + // Do nothing. + } + private void releasePlayerAndQuitLooper() { player.release(); Looper.myLooper().quit(); diff --git a/extensions/vp9/src/androidTest/java/com/google/android/exoplayer2/ext/vp9/VpxPlaybackTest.java b/extensions/vp9/src/androidTest/java/com/google/android/exoplayer2/ext/vp9/VpxPlaybackTest.java index 0bc945174e..50f4bf394d 100644 --- a/extensions/vp9/src/androidTest/java/com/google/android/exoplayer2/ext/vp9/VpxPlaybackTest.java +++ b/extensions/vp9/src/androidTest/java/com/google/android/exoplayer2/ext/vp9/VpxPlaybackTest.java @@ -164,6 +164,11 @@ public class VpxPlaybackTest extends InstrumentationTestCase { // Do nothing. } + @Override + public void onShuffleModeEnabledChanged(boolean shuffleModeEnabled) { + // Do nothing. + } + private void releasePlayerAndQuitLooper() { player.release(); Looper.myLooper().quit(); 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 f112ee9473..7530b2b948 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 @@ -195,6 +195,9 @@ import java.util.concurrent.CopyOnWriteArraySet; public void setShuffleModeEnabled(boolean shuffleModeEnabled) { if (this.shuffleModeEnabled != shuffleModeEnabled) { this.shuffleModeEnabled = shuffleModeEnabled; + for (Player.EventListener listener : listeners) { + listener.onShuffleModeEnabledChanged(shuffleModeEnabled); + } } } @@ -527,3 +530,4 @@ import java.util.concurrent.CopyOnWriteArraySet; } } + diff --git a/library/core/src/main/java/com/google/android/exoplayer2/Player.java b/library/core/src/main/java/com/google/android/exoplayer2/Player.java index f11b107f13..6eee930018 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/Player.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/Player.java @@ -94,6 +94,13 @@ public interface Player { */ void onRepeatModeChanged(@RepeatMode int repeatMode); + /** + * Called when the value of {@link #getShuffleModeEnabled()} changes. + * + * @param shuffleModeEnabled Whether shuffling of windows is enabled. + */ + void onShuffleModeEnabledChanged(boolean shuffleModeEnabled); + /** * Called when an error occurs. The playback state will transition to {@link #STATE_IDLE} * immediately after this method is called. The player instance can still be used, and diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/DebugTextViewHelper.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/DebugTextViewHelper.java index 060780eda2..be04ce2fe0 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/DebugTextViewHelper.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/DebugTextViewHelper.java @@ -93,6 +93,11 @@ public final class DebugTextViewHelper implements Runnable, Player.EventListener // Do nothing. } + @Override + public void onShuffleModeEnabledChanged(boolean shuffleModeEnabled) { + // Do nothing. + } + @Override public void onPositionDiscontinuity() { updateAndPost(); diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlaybackControlView.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlaybackControlView.java index 54212eefdd..3e6b5bf158 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlaybackControlView.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlaybackControlView.java @@ -1079,6 +1079,11 @@ public class PlaybackControlView extends FrameLayout { updateNavigation(); } + @Override + public void onShuffleModeEnabledChanged(boolean shuffleModeEnabled) { + // TODO: Update UI. + } + @Override public void onPositionDiscontinuity() { updateNavigation(); diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/SimpleExoPlayerView.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/SimpleExoPlayerView.java index 0d10e0fcf9..bdbdf34331 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/SimpleExoPlayerView.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/SimpleExoPlayerView.java @@ -896,6 +896,11 @@ public final class SimpleExoPlayerView extends FrameLayout { // Do nothing. } + @Override + public void onShuffleModeEnabledChanged(boolean shuffleModeEnabled) { + // Do nothing. + } + @Override public void onPlayerError(ExoPlaybackException e) { // Do nothing. diff --git a/testutils/src/main/java/com/google/android/exoplayer2/testutil/Action.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/Action.java index bbb694d6d6..ab1f448afd 100644 --- a/testutils/src/main/java/com/google/android/exoplayer2/testutil/Action.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/Action.java @@ -411,6 +411,11 @@ public abstract class Action { } + @Override + public void onShuffleModeEnabledChanged(boolean shuffleModeEnabled) { + + } + @Override public void onPlayerError(ExoPlaybackException error) { diff --git a/testutils/src/main/java/com/google/android/exoplayer2/testutil/ExoHostedTest.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/ExoHostedTest.java index 77e197515b..c039dd3283 100644 --- a/testutils/src/main/java/com/google/android/exoplayer2/testutil/ExoHostedTest.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/ExoHostedTest.java @@ -235,6 +235,11 @@ public abstract class ExoHostedTest implements HostedTest, Player.EventListener, // Do nothing. } + @Override + public void onShuffleModeEnabledChanged(boolean shuffleModeEnabled) { + // Do nothing. + } + @Override public final void onPlayerError(ExoPlaybackException error) { playerWasPrepared = true; diff --git a/testutils/src/main/java/com/google/android/exoplayer2/testutil/ExoPlayerTestRunner.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/ExoPlayerTestRunner.java index f354ad6a76..2b5ea11d94 100644 --- a/testutils/src/main/java/com/google/android/exoplayer2/testutil/ExoPlayerTestRunner.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/ExoPlayerTestRunner.java @@ -360,6 +360,11 @@ public final class ExoPlayerTestRunner implements Player.EventListener { // Do nothing. } + @Override + public void onShuffleModeEnabledChanged(boolean shuffleModeEnabled) { + // Do nothing. + } + @Override public void onPlayerError(ExoPlaybackException error) { handleException(exception);