Replace hard coded UUID in OfflineLicenseHelper with a parameter

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=176102179
This commit is contained in:
eguven 2017-11-17 06:33:32 -08:00 committed by Oliver Woodman
parent 0a8d242385
commit 8940e7b32a
2 changed files with 9 additions and 11 deletions

View File

@ -23,7 +23,6 @@ import android.test.MoreAsserts;
import android.util.Pair; import android.util.Pair;
import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.drm.DrmInitData.SchemeData; import com.google.android.exoplayer2.drm.DrmInitData.SchemeData;
import com.google.android.exoplayer2.upstream.HttpDataSource;
import java.util.HashMap; import java.util.HashMap;
import org.mockito.Mock; import org.mockito.Mock;
import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations;
@ -34,7 +33,6 @@ import org.mockito.MockitoAnnotations;
public class OfflineLicenseHelperTest extends InstrumentationTestCase { public class OfflineLicenseHelperTest extends InstrumentationTestCase {
private OfflineLicenseHelper<?> offlineLicenseHelper; private OfflineLicenseHelper<?> offlineLicenseHelper;
@Mock private HttpDataSource httpDataSource;
@Mock private MediaDrmCallback mediaDrmCallback; @Mock private MediaDrmCallback mediaDrmCallback;
@Mock private ExoMediaDrm<ExoMediaCrypto> mediaDrm; @Mock private ExoMediaDrm<ExoMediaCrypto> mediaDrm;
@ -42,7 +40,8 @@ public class OfflineLicenseHelperTest extends InstrumentationTestCase {
protected void setUp() throws Exception { protected void setUp() throws Exception {
setUpMockito(this); setUpMockito(this);
when(mediaDrm.openSession()).thenReturn(new byte[] {1, 2, 3}); when(mediaDrm.openSession()).thenReturn(new byte[] {1, 2, 3});
offlineLicenseHelper = new OfflineLicenseHelper<>(mediaDrm, mediaDrmCallback, null); offlineLicenseHelper = new OfflineLicenseHelper<>(C.WIDEVINE_UUID, mediaDrm, mediaDrmCallback,
null);
} }
@Override @Override

View File

@ -27,8 +27,8 @@ import com.google.android.exoplayer2.drm.DrmSession.DrmSessionException;
import com.google.android.exoplayer2.upstream.HttpDataSource; import com.google.android.exoplayer2.upstream.HttpDataSource;
import com.google.android.exoplayer2.upstream.HttpDataSource.Factory; import com.google.android.exoplayer2.upstream.HttpDataSource.Factory;
import com.google.android.exoplayer2.util.Assertions; import com.google.android.exoplayer2.util.Assertions;
import java.io.IOException;
import java.util.HashMap; import java.util.HashMap;
import java.util.UUID;
/** /**
* Helper class to download, renew and release offline licenses. * Helper class to download, renew and release offline licenses.
@ -96,7 +96,8 @@ public final class OfflineLicenseHelper<T extends ExoMediaCrypto> {
String defaultLicenseUrl, boolean forceDefaultLicenseUrl, Factory httpDataSourceFactory, String defaultLicenseUrl, boolean forceDefaultLicenseUrl, Factory httpDataSourceFactory,
HashMap<String, String> optionalKeyRequestParameters) HashMap<String, String> optionalKeyRequestParameters)
throws UnsupportedDrmException { throws UnsupportedDrmException {
return new OfflineLicenseHelper<>(FrameworkMediaDrm.newInstance(C.WIDEVINE_UUID), return new OfflineLicenseHelper<>(C.WIDEVINE_UUID,
FrameworkMediaDrm.newInstance(C.WIDEVINE_UUID),
new HttpMediaDrmCallback(defaultLicenseUrl, forceDefaultLicenseUrl, httpDataSourceFactory), new HttpMediaDrmCallback(defaultLicenseUrl, forceDefaultLicenseUrl, httpDataSourceFactory),
optionalKeyRequestParameters); optionalKeyRequestParameters);
} }
@ -104,6 +105,7 @@ public final class OfflineLicenseHelper<T extends ExoMediaCrypto> {
/** /**
* Constructs an instance. Call {@link #release()} when the instance is no longer required. * Constructs an instance. Call {@link #release()} when the instance is no longer required.
* *
* @param uuid The UUID of the drm scheme.
* @param mediaDrm An underlying {@link ExoMediaDrm} for use by the manager. * @param mediaDrm An underlying {@link ExoMediaDrm} for use by the manager.
* @param callback Performs key and provisioning requests. * @param callback Performs key and provisioning requests.
* @param optionalKeyRequestParameters An optional map of parameters to pass as the last argument * @param optionalKeyRequestParameters An optional map of parameters to pass as the last argument
@ -111,7 +113,7 @@ public final class OfflineLicenseHelper<T extends ExoMediaCrypto> {
* @see DefaultDrmSessionManager#DefaultDrmSessionManager(java.util.UUID, ExoMediaDrm, * @see DefaultDrmSessionManager#DefaultDrmSessionManager(java.util.UUID, ExoMediaDrm,
* MediaDrmCallback, HashMap, Handler, EventListener) * MediaDrmCallback, HashMap, Handler, EventListener)
*/ */
public OfflineLicenseHelper(ExoMediaDrm<T> mediaDrm, MediaDrmCallback callback, public OfflineLicenseHelper(UUID uuid, ExoMediaDrm<T> mediaDrm, MediaDrmCallback callback,
HashMap<String, String> optionalKeyRequestParameters) { HashMap<String, String> optionalKeyRequestParameters) {
handlerThread = new HandlerThread("OfflineLicenseHelper"); handlerThread = new HandlerThread("OfflineLicenseHelper");
handlerThread.start(); handlerThread.start();
@ -137,7 +139,7 @@ public final class OfflineLicenseHelper<T extends ExoMediaCrypto> {
conditionVariable.open(); conditionVariable.open();
} }
}; };
drmSessionManager = new DefaultDrmSessionManager<>(C.WIDEVINE_UUID, mediaDrm, callback, drmSessionManager = new DefaultDrmSessionManager<>(uuid, mediaDrm, callback,
optionalKeyRequestParameters, new Handler(handlerThread.getLooper()), eventListener); optionalKeyRequestParameters, new Handler(handlerThread.getLooper()), eventListener);
} }
@ -174,12 +176,9 @@ public final class OfflineLicenseHelper<T extends ExoMediaCrypto> {
* *
* @param drmInitData The {@link DrmInitData} for the content whose license is to be downloaded. * @param drmInitData The {@link DrmInitData} for the content whose license is to be downloaded.
* @return The key set id for the downloaded license. * @return The key set id for the downloaded license.
* @throws IOException If an error occurs reading data from the stream.
* @throws InterruptedException If the thread has been interrupted.
* @throws DrmSessionException Thrown when a DRM session error occurs. * @throws DrmSessionException Thrown when a DRM session error occurs.
*/ */
public synchronized byte[] downloadLicense(DrmInitData drmInitData) throws IOException, public synchronized byte[] downloadLicense(DrmInitData drmInitData) throws DrmSessionException {
InterruptedException, DrmSessionException {
Assertions.checkArgument(drmInitData != null); Assertions.checkArgument(drmInitData != null);
return blockingKeyRequest(DefaultDrmSessionManager.MODE_DOWNLOAD, null, drmInitData); return blockingKeyRequest(DefaultDrmSessionManager.MODE_DOWNLOAD, null, drmInitData);
} }