diff --git a/library/core/src/main/java/com/google/android/exoplayer2/source/ExtractorMediaPeriod.java b/library/core/src/main/java/com/google/android/exoplayer2/source/ExtractorMediaPeriod.java index ed27a24350..d4ea6191aa 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/source/ExtractorMediaPeriod.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/source/ExtractorMediaPeriod.java @@ -832,11 +832,6 @@ import java.util.Arrays; loadCanceled = true; } - @Override - public boolean isLoadCanceled() { - return loadCanceled; - } - @Override public void load() throws IOException, InterruptedException { int result = Extractor.RESULT_CONTINUE; diff --git a/library/core/src/main/java/com/google/android/exoplayer2/source/SingleSampleMediaPeriod.java b/library/core/src/main/java/com/google/android/exoplayer2/source/SingleSampleMediaPeriod.java index 0a089e5b7c..41814c4b40 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/source/SingleSampleMediaPeriod.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/source/SingleSampleMediaPeriod.java @@ -348,11 +348,6 @@ import java.util.Arrays; // Never happens. } - @Override - public boolean isLoadCanceled() { - return false; - } - @Override public void load() throws IOException, InterruptedException { // We always load from the beginning, so reset the sampleSize to 0. diff --git a/library/core/src/main/java/com/google/android/exoplayer2/source/chunk/ContainerMediaChunk.java b/library/core/src/main/java/com/google/android/exoplayer2/source/chunk/ContainerMediaChunk.java index 6aa90e58e1..1159f336a7 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/source/chunk/ContainerMediaChunk.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/source/chunk/ContainerMediaChunk.java @@ -106,11 +106,6 @@ public class ContainerMediaChunk extends BaseMediaChunk { loadCanceled = true; } - @Override - public final boolean isLoadCanceled() { - return loadCanceled; - } - @SuppressWarnings("NonAtomicVolatileUpdate") @Override public final void load() throws IOException, InterruptedException { diff --git a/library/core/src/main/java/com/google/android/exoplayer2/source/chunk/DataChunk.java b/library/core/src/main/java/com/google/android/exoplayer2/source/chunk/DataChunk.java index 0846e7679d..1d3bdb57da 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/source/chunk/DataChunk.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/source/chunk/DataChunk.java @@ -75,11 +75,6 @@ public abstract class DataChunk extends Chunk { loadCanceled = true; } - @Override - public final boolean isLoadCanceled() { - return loadCanceled; - } - @Override public final void load() throws IOException, InterruptedException { try { diff --git a/library/core/src/main/java/com/google/android/exoplayer2/source/chunk/InitializationChunk.java b/library/core/src/main/java/com/google/android/exoplayer2/source/chunk/InitializationChunk.java index 6dd90b8735..387a90297a 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/source/chunk/InitializationChunk.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/source/chunk/InitializationChunk.java @@ -69,11 +69,6 @@ public final class InitializationChunk extends Chunk { loadCanceled = true; } - @Override - public boolean isLoadCanceled() { - return loadCanceled; - } - @SuppressWarnings("NonAtomicVolatileUpdate") @Override public void load() throws IOException, InterruptedException { diff --git a/library/core/src/main/java/com/google/android/exoplayer2/source/chunk/SingleSampleMediaChunk.java b/library/core/src/main/java/com/google/android/exoplayer2/source/chunk/SingleSampleMediaChunk.java index 5247f9f973..17154ebc62 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/source/chunk/SingleSampleMediaChunk.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/source/chunk/SingleSampleMediaChunk.java @@ -34,7 +34,6 @@ public final class SingleSampleMediaChunk extends BaseMediaChunk { private final Format sampleFormat; private volatile int bytesLoaded; - private volatile boolean loadCanceled; private volatile boolean loadCompleted; /** @@ -90,12 +89,7 @@ public final class SingleSampleMediaChunk extends BaseMediaChunk { @Override public void cancelLoad() { - loadCanceled = true; - } - - @Override - public boolean isLoadCanceled() { - return loadCanceled; + // Do nothing. } @SuppressWarnings("NonAtomicVolatileUpdate") diff --git a/library/core/src/main/java/com/google/android/exoplayer2/upstream/Loader.java b/library/core/src/main/java/com/google/android/exoplayer2/upstream/Loader.java index 0f3198d06c..430948c875 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/upstream/Loader.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/upstream/Loader.java @@ -57,11 +57,6 @@ public final class Loader implements LoaderErrorThrower { */ void cancelLoad(); - /** - * Returns whether the load has been canceled. - */ - boolean isLoadCanceled(); - /** * Performs the load, returning on completion or cancellation. * @@ -260,6 +255,7 @@ public final class Loader implements LoaderErrorThrower { private int errorCount; private volatile Thread executorThread; + private volatile boolean canceled; private volatile boolean released; public LoadTask(Looper looper, T loadable, Loader.Callback callback, @@ -296,6 +292,7 @@ public final class Loader implements LoaderErrorThrower { sendEmptyMessage(MSG_CANCEL); } } else { + canceled = true; loadable.cancelLoad(); if (executorThread != null) { executorThread.interrupt(); @@ -317,7 +314,7 @@ public final class Loader implements LoaderErrorThrower { public void run() { try { executorThread = Thread.currentThread(); - if (!loadable.isLoadCanceled()) { + if (!canceled) { TraceUtil.beginSection("load:" + loadable.getClass().getSimpleName()); try { loadable.load(); @@ -334,7 +331,7 @@ public final class Loader implements LoaderErrorThrower { } } catch (InterruptedException e) { // The load was canceled. - Assertions.checkState(loadable.isLoadCanceled()); + Assertions.checkState(canceled); if (!released) { sendEmptyMessage(MSG_END_OF_SOURCE); } @@ -379,7 +376,7 @@ public final class Loader implements LoaderErrorThrower { finish(); long nowMs = SystemClock.elapsedRealtime(); long durationMs = nowMs - startTimeMs; - if (loadable.isLoadCanceled()) { + if (canceled) { callback.onLoadCanceled(loadable, nowMs, durationMs, false); return; } diff --git a/library/core/src/main/java/com/google/android/exoplayer2/upstream/ParsingLoadable.java b/library/core/src/main/java/com/google/android/exoplayer2/upstream/ParsingLoadable.java index 7ef79b8963..987effcf43 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/upstream/ParsingLoadable.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/upstream/ParsingLoadable.java @@ -78,7 +78,6 @@ public final class ParsingLoadable implements Loadable { private final Parser parser; private volatile T result; - private volatile boolean isCanceled; private volatile long bytesLoaded; /** @@ -128,14 +127,7 @@ public final class ParsingLoadable implements Loadable { @Override public final void cancelLoad() { - // We don't actually cancel anything, but we need to record the cancellation so that - // isLoadCanceled can return the correct value. - isCanceled = true; - } - - @Override - public final boolean isLoadCanceled() { - return isCanceled; + // Do nothing. } @Override diff --git a/library/core/src/test/java/com/google/android/exoplayer2/trackselection/AdaptiveTrackSelectionTest.java b/library/core/src/test/java/com/google/android/exoplayer2/trackselection/AdaptiveTrackSelectionTest.java index 4026bc0c37..f9ebee78d6 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/trackselection/AdaptiveTrackSelectionTest.java +++ b/library/core/src/test/java/com/google/android/exoplayer2/trackselection/AdaptiveTrackSelectionTest.java @@ -391,11 +391,6 @@ public final class AdaptiveTrackSelectionTest { // Do nothing. } - @Override - public boolean isLoadCanceled() { - return false; - } - @Override public void load() throws IOException, InterruptedException { // Do nothing. diff --git a/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaChunk.java b/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaChunk.java index 9e993aa27b..99a5b44574 100644 --- a/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaChunk.java +++ b/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaChunk.java @@ -206,11 +206,6 @@ import java.util.concurrent.atomic.AtomicInteger; loadCanceled = true; } - @Override - public boolean isLoadCanceled() { - return loadCanceled; - } - @Override public void load() throws IOException, InterruptedException { maybeLoadInitData();