From 99751757008b728dfcb14804d380a836d2fe8cef Mon Sep 17 00:00:00 2001 From: Rohit Singh Date: Mon, 16 Sep 2024 13:01:54 +0100 Subject: [PATCH] Forward default methods --- .../media3/exoplayer/ForwardingRenderer.java | 22 +++++++++++++++++++ .../exoplayer/ForwardingRendererTest.java | 18 +++++++-------- 2 files changed, 31 insertions(+), 9 deletions(-) diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ForwardingRenderer.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ForwardingRenderer.java index 5586984da0..f1e7a55ab0 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ForwardingRenderer.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ForwardingRenderer.java @@ -35,6 +35,7 @@ public class ForwardingRenderer implements Renderer { private final Renderer renderer; + /** Creates a new instance that forwards all operations to {@code renderer}. */ public ForwardingRenderer(Renderer renderer) { this.renderer = renderer; } @@ -133,6 +134,11 @@ public class ForwardingRenderer implements Renderer { return renderer.getReadingPositionUs(); } + @Override + public long getDurationToProgressUs(long positionUs, long elapsedRealtimeUs) { + return renderer.getDurationToProgressUs(positionUs, elapsedRealtimeUs); + } + @Override public void setCurrentStreamFinal() { renderer.setCurrentStreamFinal(); @@ -153,6 +159,17 @@ public class ForwardingRenderer implements Renderer { renderer.resetPosition(positionUs); } + @Override + public void setPlaybackSpeed(float currentPlaybackSpeed, float targetPlaybackSpeed) + throws ExoPlaybackException { + renderer.setPlaybackSpeed(currentPlaybackSpeed, targetPlaybackSpeed); + } + + @Override + public void enableMayRenderStartOfStream() { + renderer.enableMayRenderStartOfStream(); + } + @Override public void setTimeline(Timeline timeline) {} @@ -185,4 +202,9 @@ public class ForwardingRenderer implements Renderer { public void reset() { renderer.reset(); } + + @Override + public void release() { + renderer.release(); + } } diff --git a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/ForwardingRendererTest.java b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/ForwardingRendererTest.java index 1af6478a2e..93c27792c7 100644 --- a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/ForwardingRendererTest.java +++ b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/ForwardingRendererTest.java @@ -17,26 +17,26 @@ package androidx.media3.exoplayer; import static com.google.common.truth.Truth.assertThat; -import androidx.media3.exoplayer.ForwardingRenderer; -import androidx.media3.exoplayer.Renderer; import androidx.media3.test.utils.TestUtil; +import androidx.test.ext.junit.runners.AndroidJUnit4; import java.lang.reflect.Method; import java.util.List; import org.junit.Test; +import org.junit.runner.RunWith; +/** Unit tests for {@link ForwardingRenderer}. */ +@RunWith(AndroidJUnit4.class) public class ForwardingRendererTest { @Test public void forwardingRenderer_overridesAllMethods() throws NoSuchMethodException { // Check with reflection that ForwardingRenderer overrides all Renderer methods. List methods = TestUtil.getPublicMethods(Renderer.class); for (Method method : methods) { - if (!method.isDefault()) { - assertThat( - ForwardingRenderer.class - .getDeclaredMethod(method.getName(), method.getParameterTypes()) - .getDeclaringClass()) - .isEqualTo(ForwardingRenderer.class); - } + assertThat( + ForwardingRenderer.class + .getDeclaredMethod(method.getName(), method.getParameterTypes()) + .getDeclaringClass()) + .isEqualTo(ForwardingRenderer.class); } } }