disable download button for live content in demo app

PiperOrigin-RevId: 274585052
This commit is contained in:
bachinger 2019-10-14 16:36:42 +01:00 committed by Oliver Woodman
parent c32ad60e0b
commit ce6252151a
4 changed files with 26 additions and 6 deletions

View File

@ -107,6 +107,7 @@ public class PlayerActivity extends AppCompatActivity
public static final String URI_EXTRA = "uri"; public static final String URI_EXTRA = "uri";
public static final String EXTENSION_EXTRA = "extension"; 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_SCHEME_EXTRA = "drm_scheme";
public static final String DRM_LICENSE_URL_EXTRA = "drm_license_url"; public static final String DRM_LICENSE_URL_EXTRA = "drm_license_url";

View File

@ -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_EXTRA;
import static com.google.android.exoplayer2.demo.PlayerActivity.DRM_SCHEME_UUID_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.EXTENSION_EXTRA;
import static com.google.android.exoplayer2.demo.PlayerActivity.IS_LIVE_EXTRA;
import static com.google.android.exoplayer2.demo.PlayerActivity.URI_EXTRA; import static com.google.android.exoplayer2.demo.PlayerActivity.URI_EXTRA;
import android.content.Intent; import android.content.Intent;
@ -40,32 +41,38 @@ import java.util.UUID;
public static UriSample createFromIntent(Uri uri, Intent intent, String extrasKeySuffix) { public static UriSample createFromIntent(Uri uri, Intent intent, String extrasKeySuffix) {
String extension = intent.getStringExtra(EXTENSION_EXTRA + extrasKeySuffix); String extension = intent.getStringExtra(EXTENSION_EXTRA + extrasKeySuffix);
String adsTagUriString = intent.getStringExtra(AD_TAG_URI_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; Uri adTagUri = adsTagUriString != null ? Uri.parse(adsTagUriString) : null;
return new UriSample( return new UriSample(
/* name= */ null, /* name= */ null,
DrmInfo.createFromIntent(intent, extrasKeySuffix),
uri, uri,
extension, extension,
isLive,
DrmInfo.createFromIntent(intent, extrasKeySuffix),
adTagUri, adTagUri,
/* sphericalStereoMode= */ null); /* sphericalStereoMode= */ null);
} }
public final Uri uri; public final Uri uri;
public final String extension; public final String extension;
public final boolean isLive;
public final DrmInfo drmInfo; public final DrmInfo drmInfo;
public final Uri adTagUri; public final Uri adTagUri;
public final String sphericalStereoMode; @Nullable public final String sphericalStereoMode;
public UriSample( public UriSample(
String name, String name,
DrmInfo drmInfo,
Uri uri, Uri uri,
String extension, String extension,
boolean isLive,
DrmInfo drmInfo,
Uri adTagUri, Uri adTagUri,
String sphericalStereoMode) { @Nullable String sphericalStereoMode) {
super(name); super(name);
this.uri = uri; this.uri = uri;
this.extension = extension; this.extension = extension;
this.isLive = isLive;
this.drmInfo = drmInfo; this.drmInfo = drmInfo;
this.adTagUri = adTagUri; this.adTagUri = adTagUri;
this.sphericalStereoMode = sphericalStereoMode; this.sphericalStereoMode = sphericalStereoMode;
@ -74,12 +81,14 @@ import java.util.UUID;
@Override @Override
public void addToIntent(Intent intent) { public void addToIntent(Intent intent) {
intent.setAction(PlayerActivity.ACTION_VIEW).setData(uri); intent.setAction(PlayerActivity.ACTION_VIEW).setData(uri);
intent.putExtra(PlayerActivity.IS_LIVE_EXTRA, isLive);
intent.putExtra(PlayerActivity.SPHERICAL_STEREO_MODE_EXTRA, sphericalStereoMode); intent.putExtra(PlayerActivity.SPHERICAL_STEREO_MODE_EXTRA, sphericalStereoMode);
addPlayerConfigToIntent(intent, /* extrasKeySuffix= */ ""); addPlayerConfigToIntent(intent, /* extrasKeySuffix= */ "");
} }
public void addToPlaylistIntent(Intent intent, String extrasKeySuffix) { public void addToPlaylistIntent(Intent intent, String extrasKeySuffix) {
intent.putExtra(PlayerActivity.URI_EXTRA + extrasKeySuffix, uri.toString()); intent.putExtra(PlayerActivity.URI_EXTRA + extrasKeySuffix, uri.toString());
intent.putExtra(PlayerActivity.IS_LIVE_EXTRA + extrasKeySuffix, isLive);
addPlayerConfigToIntent(intent, extrasKeySuffix); addPlayerConfigToIntent(intent, extrasKeySuffix);
} }

View File

@ -205,6 +205,9 @@ public class SampleChooserActivity extends AppCompatActivity
if (uriSample.drmInfo != null) { if (uriSample.drmInfo != null) {
return R.string.download_drm_unsupported; return R.string.download_drm_unsupported;
} }
if (uriSample.isLive) {
return R.string.download_live_unsupported;
}
if (uriSample.adTagUri != null) { if (uriSample.adTagUri != null) {
return R.string.download_ads_unsupported; return R.string.download_ads_unsupported;
} }
@ -294,6 +297,7 @@ public class SampleChooserActivity extends AppCompatActivity
String sampleName = null; String sampleName = null;
Uri uri = null; Uri uri = null;
String extension = null; String extension = null;
boolean isLive = false;
String drmScheme = null; String drmScheme = null;
String drmLicenseUrl = null; String drmLicenseUrl = null;
String[] drmKeyRequestProperties = null; String[] drmKeyRequestProperties = null;
@ -318,6 +322,9 @@ public class SampleChooserActivity extends AppCompatActivity
case "drm_scheme": case "drm_scheme":
drmScheme = reader.nextString(); drmScheme = reader.nextString();
break; break;
case "is_live":
isLive = reader.nextBoolean();
break;
case "drm_license_url": case "drm_license_url":
drmLicenseUrl = reader.nextString(); drmLicenseUrl = reader.nextString();
break; break;
@ -370,9 +377,10 @@ public class SampleChooserActivity extends AppCompatActivity
} else { } else {
return new UriSample( return new UriSample(
sampleName, sampleName,
drmInfo,
uri, uri,
extension, extension,
isLive,
drmInfo,
adTagUri != null ? Uri.parse(adTagUri) : null, adTagUri != null ? Uri.parse(adTagUri) : null,
sphericalStereoMode); sphericalStereoMode);
} }
@ -486,7 +494,7 @@ public class SampleChooserActivity extends AppCompatActivity
ImageButton downloadButton = view.findViewById(R.id.download_button); ImageButton downloadButton = view.findViewById(R.id.download_button);
downloadButton.setTag(sample); downloadButton.setTag(sample);
downloadButton.setColorFilter( downloadButton.setColorFilter(
canDownload ? (isDownloaded ? 0xFF42A5F5 : 0xFFBDBDBD) : 0xFFEEEEEE); canDownload ? (isDownloaded ? 0xFF42A5F5 : 0xFFBDBDBD) : 0xFF666666);
downloadButton.setImageResource( downloadButton.setImageResource(
isDownloaded ? R.drawable.ic_download_done : R.drawable.ic_download); isDownloaded ? R.drawable.ic_download_done : R.drawable.ic_download);
} }

View File

@ -63,6 +63,8 @@
<string name="download_scheme_unsupported">This demo app only supports downloading http streams</string> <string name="download_scheme_unsupported">This demo app only supports downloading http streams</string>
<string name="download_live_unsupported">This demo app does not support downloading live content</string>
<string name="download_ads_unsupported">IMA does not support offline ads</string> <string name="download_ads_unsupported">IMA does not support offline ads</string>
<string name="prefer_extension_decoders">Prefer extension decoders</string> <string name="prefer_extension_decoders">Prefer extension decoders</string>