From d3c2cb2aa4fc803d9e854b42158e77fe73defc2e Mon Sep 17 00:00:00 2001 From: tonihei Date: Fri, 27 Jul 2018 02:19:53 -0700 Subject: [PATCH] Update remaining DataSource's with new addTransferListener method. The new method allows to add TransferListeners after the DataSource has been created. Most implementations just forward to their wrapped upstream DataSource. Implementation which directly read data implement BaseDataSource instead. Also removes the temporary default no-op implementation in DataSource. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=206289986 --- .../google/android/exoplayer2/upstream/DataSource.java | 4 +--- .../android/exoplayer2/upstream/DummyDataSource.java | 9 +++++++-- .../exoplayer2/source/hls/Aes128DataSourceTest.java | 4 ++++ 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/upstream/DataSource.java b/library/core/src/main/java/com/google/android/exoplayer2/upstream/DataSource.java index b3bb34e34f..c759499577 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/upstream/DataSource.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/upstream/DataSource.java @@ -44,9 +44,7 @@ public interface DataSource { * * @param transferListener A {@link TransferListener}. */ - default void addTransferListener(TransferListener transferListener) { - // TODO: Make non-default once all DataSources implement this method. - } + void addTransferListener(TransferListener transferListener); /** * Opens the source to read the specified data. diff --git a/library/core/src/main/java/com/google/android/exoplayer2/upstream/DummyDataSource.java b/library/core/src/main/java/com/google/android/exoplayer2/upstream/DummyDataSource.java index fa3e14f1c9..06dc79e345 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/upstream/DummyDataSource.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/upstream/DummyDataSource.java @@ -16,6 +16,7 @@ package com.google.android.exoplayer2.upstream; import android.net.Uri; +import android.support.annotation.Nullable; import java.io.IOException; /** @@ -35,6 +36,11 @@ public final class DummyDataSource implements DataSource { private DummyDataSource() {} + @Override + public void addTransferListener(TransferListener transferListener) { + // Do nothing. + } + @Override public long open(DataSpec dataSpec) throws IOException { throw new IOException("Dummy source"); @@ -46,7 +52,7 @@ public final class DummyDataSource implements DataSource { } @Override - public Uri getUri() { + public @Nullable Uri getUri() { return null; } @@ -54,5 +60,4 @@ public final class DummyDataSource implements DataSource { public void close() throws IOException { // do nothing. } - } diff --git a/library/hls/src/test/java/com/google/android/exoplayer2/source/hls/Aes128DataSourceTest.java b/library/hls/src/test/java/com/google/android/exoplayer2/source/hls/Aes128DataSourceTest.java index 86bffc7762..93f724e630 100644 --- a/library/hls/src/test/java/com/google/android/exoplayer2/source/hls/Aes128DataSourceTest.java +++ b/library/hls/src/test/java/com/google/android/exoplayer2/source/hls/Aes128DataSourceTest.java @@ -21,6 +21,7 @@ import android.net.Uri; import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.upstream.DataSource; import com.google.android.exoplayer2.upstream.DataSpec; +import com.google.android.exoplayer2.upstream.TransferListener; import java.io.IOException; import org.junit.Test; import org.junit.runner.RunWith; @@ -76,6 +77,9 @@ public class Aes128DataSourceTest { public boolean opened; public boolean closedCalled; + @Override + public void addTransferListener(TransferListener transferListener) {} + @Override public long open(DataSpec dataSpec) throws IOException { opened = true;