From a0727fe4d774739bc3b7d0ef6396365abcdd44ba Mon Sep 17 00:00:00 2001 From: ibaker Date: Wed, 14 Feb 2024 03:20:10 -0800 Subject: [PATCH] Demo app: Clarify that only Widevine DRM content can be downloaded Issue: androidx/media#1085 PiperOrigin-RevId: 606921440 --- .../main/java/androidx/media3/demo/main/DownloadTracker.java | 2 ++ .../androidx/media3/demo/main/SampleChooserActivity.java | 5 +++++ demos/main/src/main/res/values/strings.xml | 2 ++ 3 files changed, 9 insertions(+) diff --git a/demos/main/src/main/java/androidx/media3/demo/main/DownloadTracker.java b/demos/main/src/main/java/androidx/media3/demo/main/DownloadTracker.java index a82ebb006d..c3c005c2a3 100644 --- a/demos/main/src/main/java/androidx/media3/demo/main/DownloadTracker.java +++ b/demos/main/src/main/java/androidx/media3/demo/main/DownloadTracker.java @@ -16,6 +16,7 @@ package androidx.media3.demo.main; import static com.google.common.base.Preconditions.checkNotNull; +import static com.google.common.base.Preconditions.checkState; import android.content.Context; import android.content.DialogInterface; @@ -381,6 +382,7 @@ public class DownloadTracker { DataSource.Factory dataSourceFactory, StartDownloadDialogHelper dialogHelper, DownloadHelper downloadHelper) { + checkState(drmConfiguration.scheme.equals(C.WIDEVINE_UUID)); this.executorService = Executors.newSingleThreadExecutor(); this.format = format; this.drmConfiguration = drmConfiguration; diff --git a/demos/main/src/main/java/androidx/media3/demo/main/SampleChooserActivity.java b/demos/main/src/main/java/androidx/media3/demo/main/SampleChooserActivity.java index 496722701f..33bff8a5d5 100644 --- a/demos/main/src/main/java/androidx/media3/demo/main/SampleChooserActivity.java +++ b/demos/main/src/main/java/androidx/media3/demo/main/SampleChooserActivity.java @@ -49,6 +49,7 @@ import androidx.annotation.Nullable; import androidx.annotation.OptIn; import androidx.annotation.RequiresApi; import androidx.appcompat.app.AppCompatActivity; +import androidx.media3.common.C; import androidx.media3.common.MediaItem; import androidx.media3.common.MediaItem.ClippingConfiguration; import androidx.media3.common.MediaMetadata; @@ -273,6 +274,10 @@ public class SampleChooserActivity extends AppCompatActivity if (localConfiguration.adsConfiguration != null) { return R.string.download_ads_unsupported; } + @Nullable MediaItem.DrmConfiguration drmConfiguration = localConfiguration.drmConfiguration; + if (drmConfiguration != null && !drmConfiguration.scheme.equals(C.WIDEVINE_UUID)) { + return R.string.download_only_widevine_drm_supported; + } String scheme = localConfiguration.uri.getScheme(); if (!("http".equals(scheme) || "https".equals(scheme))) { return R.string.download_scheme_unsupported; diff --git a/demos/main/src/main/res/values/strings.xml b/demos/main/src/main/res/values/strings.xml index b8f6e7c320..4497840ad5 100644 --- a/demos/main/src/main/res/values/strings.xml +++ b/demos/main/src/main/res/values/strings.xml @@ -59,6 +59,8 @@ IMA does not support offline ads + This demo app only supports downloading unencrypted or Widevine DRM content + Prefer extension decoders