From a1767d349ad538bb3203ed63190f43138eef7802 Mon Sep 17 00:00:00 2001 From: Ian Baker Date: Thu, 28 Sep 2023 15:54:10 +0100 Subject: [PATCH] Fix review comments --- .../media3/exoplayer/drm/DummyExoMediaDrm.java | 12 ------------ .../media3/exoplayer/drm/ExoMediaDrm.java | 16 +++++++++++----- .../media3/exoplayer/drm/FrameworkMediaDrm.java | 14 +++++++------- .../media3/test/utils/FakeExoMediaDrm.java | 10 ---------- 4 files changed, 18 insertions(+), 34 deletions(-) diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/DummyExoMediaDrm.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/DummyExoMediaDrm.java index 634b9bd92a..58efd2f082 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/DummyExoMediaDrm.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/DummyExoMediaDrm.java @@ -24,7 +24,6 @@ import androidx.media3.common.DrmInitData; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; import androidx.media3.decoder.CryptoConfig; -import com.google.common.collect.ImmutableList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -121,17 +120,6 @@ public final class DummyExoMediaDrm implements ExoMediaDrm { throw new IllegalStateException(); } - @Override - public void removeOfflineLicense(byte[] keySetId) { - // Should not be invoked. No session should exist. - throw new IllegalStateException(); - } - - @Override - public ImmutableList getOfflineLicenseKeySetIds() { - return ImmutableList.of(); - } - @Override @Nullable public PersistableBundle getMetrics() { diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/ExoMediaDrm.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/ExoMediaDrm.java index 711bcf665f..3d41aa667f 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/ExoMediaDrm.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/ExoMediaDrm.java @@ -536,18 +536,26 @@ public interface ExoMediaDrm { *

See {@link MediaDrm#removeOfflineLicense(byte[])} for more details. * * @param keySetId The {@code keySetId} of the license to remove. + * @throws UnsupportedOperationException if the implementation doesn't support this method. */ - void removeOfflineLicense(byte[] keySetId); + default void removeOfflineLicense(byte[] keySetId) { + throw new UnsupportedOperationException(); + } /** * Returns a list of the {@code keySetIds} for all offline licenses. * *

This is an optional method, and some implementations may only support it on certain Android - * API levels. If the method is unsupported an empty list is returned. + * API levels. * *

See {@link MediaDrm#getOfflineLicenseKeySetIds()} for more details. + * + * @return The list of {@code keySetIds} for all offline licenses. + * @throws UnsupportedOperationException if the implementation doesn't support this method. */ - List getOfflineLicenseKeySetIds(); + default List getOfflineLicenseKeySetIds() { + throw new UnsupportedOperationException(); + } /** * Returns metrics data for this ExoMediaDrm instance, or {@code null} if metrics are unavailable. @@ -609,6 +617,4 @@ public interface ExoMediaDrm { */ @C.CryptoType int getCryptoType(); - - } diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/FrameworkMediaDrm.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/FrameworkMediaDrm.java index d8d348dbd5..1cfb5d8dea 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/FrameworkMediaDrm.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/FrameworkMediaDrm.java @@ -26,7 +26,6 @@ import android.media.MediaDrmException; import android.media.NotProvisionedException; import android.media.UnsupportedSchemeException; import android.media.metrics.LogSessionId; -import android.os.Build; import android.os.PersistableBundle; import android.text.TextUtils; import androidx.annotation.DoNotInline; @@ -44,7 +43,6 @@ import androidx.media3.common.util.Util; import androidx.media3.exoplayer.analytics.PlayerId; import androidx.media3.extractor.mp4.PsshAtomUtil; import com.google.common.base.Charsets; -import com.google.common.collect.ImmutableList; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.util.ArrayList; @@ -330,19 +328,21 @@ public final class FrameworkMediaDrm implements ExoMediaDrm { } @Override - @RequiresApi(Build.VERSION_CODES.Q) + @UnstableApi + @RequiresApi(29) public void removeOfflineLicense(byte[] keySetId) { - if (Util.SDK_INT < Build.VERSION_CODES.Q) { + if (Util.SDK_INT < 29) { throw new UnsupportedOperationException(); } mediaDrm.removeOfflineLicense(keySetId); } @Override - @RequiresApi(Build.VERSION_CODES.Q) + @UnstableApi + @RequiresApi(29) public List getOfflineLicenseKeySetIds() { - if (Util.SDK_INT < Build.VERSION_CODES.Q) { - return ImmutableList.of(); + if (Util.SDK_INT < 29) { + throw new UnsupportedOperationException(); } return mediaDrm.getOfflineLicenseKeySetIds(); } diff --git a/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeExoMediaDrm.java b/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeExoMediaDrm.java index 63e05fc411..4f802f073a 100644 --- a/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeExoMediaDrm.java +++ b/libraries/test_utils/src/main/java/androidx/media3/test/utils/FakeExoMediaDrm.java @@ -361,16 +361,6 @@ public final class FakeExoMediaDrm implements ExoMediaDrm { throw new UnsupportedOperationException(); } - @Override - public void removeOfflineLicense(byte[] keySetId) { - throw new UnsupportedOperationException(); - } - - @Override - public ImmutableList getOfflineLicenseKeySetIds() { - return ImmutableList.of(); - } - @Nullable @Override public PersistableBundle getMetrics() {