diff --git a/RELEASENOTES.md b/RELEASENOTES.md index fc3a38e899..c13cdeeac7 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -148,6 +148,8 @@ `MediaItem.LiveConfiguration.Builder#setTargetOffsetMs` to override the manifest, or `DashMediaSource#setFallbackTargetLiveOffsetMs` to provide a fallback value. + * Remove `(Simple)ExoPlayer.setThrowsWhenUsingWrongThread`. Opting out of + the thread enforcement is no longer possible. ### 2.16.1 (2021-11-18) diff --git a/docs/hello-world.md b/docs/hello-world.md index 5b71f150ff..af7c58ceb9 100644 --- a/docs/hello-world.md +++ b/docs/hello-world.md @@ -119,11 +119,7 @@ which the player must be accessed can be queried using If you see `IllegalStateException` being thrown with the message "Player is accessed on the wrong thread", then some code in your app is accessing an `ExoPlayer` instance on the wrong thread (the exception's stack trace shows you -where). You can temporarily opt out from these exceptions being thrown by -calling `ExoPlayer.setThrowsWhenUsingWrongThread(false)`, in which case the -issue will be logged as a warning instead. Using this opt out is not safe and -may result in unexpected or obscure errors. It will be removed in ExoPlayer -2.16. +where). {:.info} For more information about ExoPlayer's threading model, see the 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 53b196fbb9..9a9a3fa1e2 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 @@ -1456,19 +1456,6 @@ public interface ExoPlayer extends Player { */ void setPriorityTaskManager(@Nullable PriorityTaskManager priorityTaskManager); - /** - * Sets whether the player should throw an {@link IllegalStateException} when methods are called - * from a thread other than the one associated with {@link #getApplicationLooper()}. - * - *

The default is {@code true} and this method will be removed in the future. - * - * @param throwsWhenUsingWrongThread Whether to throw when methods are called from a wrong thread. - * @deprecated Disabling the enforcement can result in hard-to-detect bugs. Do not use this method - * except to ease the transition while wrong thread access problems are fixed. - */ - @Deprecated - void setThrowsWhenUsingWrongThread(boolean throwsWhenUsingWrongThread); - /** * Sets whether audio offload scheduling is enabled. If enabled, ExoPlayer's main loop will run as * rarely as possible when playing an audio stream using audio offload. 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 519904bf2e..ed5d0ca1eb 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 @@ -1541,9 +1541,7 @@ public class SimpleExoPlayer extends BasePlayer streamVolumeManager.setMuted(muted); } - @Deprecated - @Override - public void setThrowsWhenUsingWrongThread(boolean throwsWhenUsingWrongThread) { + /* package */ void setThrowsWhenUsingWrongThread(boolean throwsWhenUsingWrongThread) { this.throwsWhenUsingWrongThread = throwsWhenUsingWrongThread; } 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 136327739f..19c833b42b 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 @@ -357,12 +357,6 @@ public class StubExoPlayer extends StubPlayer implements ExoPlayer { throw new UnsupportedOperationException(); } - @Deprecated - @Override - public void setThrowsWhenUsingWrongThread(boolean throwsWhenUsingWrongThread) { - throw new UnsupportedOperationException(); - } - @Override public void experimentalSetOffloadSchedulingEnabled(boolean offloadSchedulingEnabled) { throw new UnsupportedOperationException();