From ce6252151af38ce1c428601af5bd0239d5fee305 Mon Sep 17 00:00:00 2001 From: bachinger Date: Mon, 14 Oct 2019 16:36:42 +0100 Subject: [PATCH] disable download button for live content in demo app PiperOrigin-RevId: 274585052 --- .../android/exoplayer2/demo/PlayerActivity.java | 1 + .../google/android/exoplayer2/demo/Sample.java | 17 +++++++++++++---- .../exoplayer2/demo/SampleChooserActivity.java | 12 ++++++++++-- demos/main/src/main/res/values/strings.xml | 2 ++ 4 files changed, 26 insertions(+), 6 deletions(-) diff --git a/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java b/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java index 1dc56bfbc9..9c8d254ed1 100644 --- a/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java +++ b/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java @@ -107,6 +107,7 @@ public class PlayerActivity extends AppCompatActivity public static final String URI_EXTRA = "uri"; public static final String EXTENSION_EXTRA = "extension"; + public static final String IS_LIVE_EXTRA = "is_live"; public static final String DRM_SCHEME_EXTRA = "drm_scheme"; public static final String DRM_LICENSE_URL_EXTRA = "drm_license_url"; diff --git a/demos/main/src/main/java/com/google/android/exoplayer2/demo/Sample.java b/demos/main/src/main/java/com/google/android/exoplayer2/demo/Sample.java index 4497b9a984..40c20c298c 100644 --- a/demos/main/src/main/java/com/google/android/exoplayer2/demo/Sample.java +++ b/demos/main/src/main/java/com/google/android/exoplayer2/demo/Sample.java @@ -23,6 +23,7 @@ import static com.google.android.exoplayer2.demo.PlayerActivity.DRM_MULTI_SESSIO import static com.google.android.exoplayer2.demo.PlayerActivity.DRM_SCHEME_EXTRA; import static com.google.android.exoplayer2.demo.PlayerActivity.DRM_SCHEME_UUID_EXTRA; import static com.google.android.exoplayer2.demo.PlayerActivity.EXTENSION_EXTRA; +import static com.google.android.exoplayer2.demo.PlayerActivity.IS_LIVE_EXTRA; import static com.google.android.exoplayer2.demo.PlayerActivity.URI_EXTRA; import android.content.Intent; @@ -40,32 +41,38 @@ import java.util.UUID; public static UriSample createFromIntent(Uri uri, Intent intent, String extrasKeySuffix) { String extension = intent.getStringExtra(EXTENSION_EXTRA + extrasKeySuffix); String adsTagUriString = intent.getStringExtra(AD_TAG_URI_EXTRA + extrasKeySuffix); + boolean isLive = + intent.getBooleanExtra(IS_LIVE_EXTRA + extrasKeySuffix, /* defaultValue= */ false); Uri adTagUri = adsTagUriString != null ? Uri.parse(adsTagUriString) : null; return new UriSample( /* name= */ null, - DrmInfo.createFromIntent(intent, extrasKeySuffix), uri, extension, + isLive, + DrmInfo.createFromIntent(intent, extrasKeySuffix), adTagUri, /* sphericalStereoMode= */ null); } public final Uri uri; public final String extension; + public final boolean isLive; public final DrmInfo drmInfo; public final Uri adTagUri; - public final String sphericalStereoMode; + @Nullable public final String sphericalStereoMode; public UriSample( String name, - DrmInfo drmInfo, Uri uri, String extension, + boolean isLive, + DrmInfo drmInfo, Uri adTagUri, - String sphericalStereoMode) { + @Nullable String sphericalStereoMode) { super(name); this.uri = uri; this.extension = extension; + this.isLive = isLive; this.drmInfo = drmInfo; this.adTagUri = adTagUri; this.sphericalStereoMode = sphericalStereoMode; @@ -74,12 +81,14 @@ import java.util.UUID; @Override public void addToIntent(Intent intent) { intent.setAction(PlayerActivity.ACTION_VIEW).setData(uri); + intent.putExtra(PlayerActivity.IS_LIVE_EXTRA, isLive); intent.putExtra(PlayerActivity.SPHERICAL_STEREO_MODE_EXTRA, sphericalStereoMode); addPlayerConfigToIntent(intent, /* extrasKeySuffix= */ ""); } public void addToPlaylistIntent(Intent intent, String extrasKeySuffix) { intent.putExtra(PlayerActivity.URI_EXTRA + extrasKeySuffix, uri.toString()); + intent.putExtra(PlayerActivity.IS_LIVE_EXTRA + extrasKeySuffix, isLive); addPlayerConfigToIntent(intent, extrasKeySuffix); } diff --git a/demos/main/src/main/java/com/google/android/exoplayer2/demo/SampleChooserActivity.java b/demos/main/src/main/java/com/google/android/exoplayer2/demo/SampleChooserActivity.java index 3920cd3a80..77a588108f 100644 --- a/demos/main/src/main/java/com/google/android/exoplayer2/demo/SampleChooserActivity.java +++ b/demos/main/src/main/java/com/google/android/exoplayer2/demo/SampleChooserActivity.java @@ -205,6 +205,9 @@ public class SampleChooserActivity extends AppCompatActivity if (uriSample.drmInfo != null) { return R.string.download_drm_unsupported; } + if (uriSample.isLive) { + return R.string.download_live_unsupported; + } if (uriSample.adTagUri != null) { return R.string.download_ads_unsupported; } @@ -294,6 +297,7 @@ public class SampleChooserActivity extends AppCompatActivity String sampleName = null; Uri uri = null; String extension = null; + boolean isLive = false; String drmScheme = null; String drmLicenseUrl = null; String[] drmKeyRequestProperties = null; @@ -318,6 +322,9 @@ public class SampleChooserActivity extends AppCompatActivity case "drm_scheme": drmScheme = reader.nextString(); break; + case "is_live": + isLive = reader.nextBoolean(); + break; case "drm_license_url": drmLicenseUrl = reader.nextString(); break; @@ -370,9 +377,10 @@ public class SampleChooserActivity extends AppCompatActivity } else { return new UriSample( sampleName, - drmInfo, uri, extension, + isLive, + drmInfo, adTagUri != null ? Uri.parse(adTagUri) : null, sphericalStereoMode); } @@ -486,7 +494,7 @@ public class SampleChooserActivity extends AppCompatActivity ImageButton downloadButton = view.findViewById(R.id.download_button); downloadButton.setTag(sample); downloadButton.setColorFilter( - canDownload ? (isDownloaded ? 0xFF42A5F5 : 0xFFBDBDBD) : 0xFFEEEEEE); + canDownload ? (isDownloaded ? 0xFF42A5F5 : 0xFFBDBDBD) : 0xFF666666); downloadButton.setImageResource( isDownloaded ? R.drawable.ic_download_done : R.drawable.ic_download); } diff --git a/demos/main/src/main/res/values/strings.xml b/demos/main/src/main/res/values/strings.xml index c39fffa65d..acbc296df5 100644 --- a/demos/main/src/main/res/values/strings.xml +++ b/demos/main/src/main/res/values/strings.xml @@ -63,6 +63,8 @@ This demo app only supports downloading http streams + This demo app does not support downloading live content + IMA does not support offline ads Prefer extension decoders