Prevent device provisioning when another device provisioning request is already under process.
This commit is contained in:
parent
bc01a4f48d
commit
6b2b6ca479
@ -71,6 +71,7 @@ public class StreamingDrmSessionManager implements DrmSessionManager {
|
|||||||
private Handler postRequestHandler;
|
private Handler postRequestHandler;
|
||||||
|
|
||||||
private int openCount;
|
private int openCount;
|
||||||
|
private boolean provisioningInProgress;
|
||||||
private int state;
|
private int state;
|
||||||
private MediaCrypto mediaCrypto;
|
private MediaCrypto mediaCrypto;
|
||||||
private Exception lastException;
|
private Exception lastException;
|
||||||
@ -179,6 +180,7 @@ public class StreamingDrmSessionManager implements DrmSessionManager {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
state = STATE_CLOSED;
|
state = STATE_CLOSED;
|
||||||
|
provisioningInProgress = false;
|
||||||
mediaDrmHandler.removeCallbacksAndMessages(null);
|
mediaDrmHandler.removeCallbacksAndMessages(null);
|
||||||
postResponseHandler.removeCallbacksAndMessages(null);
|
postResponseHandler.removeCallbacksAndMessages(null);
|
||||||
postRequestHandler.removeCallbacksAndMessages(null);
|
postRequestHandler.removeCallbacksAndMessages(null);
|
||||||
@ -212,11 +214,16 @@ public class StreamingDrmSessionManager implements DrmSessionManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void postProvisionRequest() {
|
private void postProvisionRequest() {
|
||||||
|
if (provisioningInProgress) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
provisioningInProgress = true;
|
||||||
ProvisionRequest request = mediaDrm.getProvisionRequest();
|
ProvisionRequest request = mediaDrm.getProvisionRequest();
|
||||||
postRequestHandler.obtainMessage(MSG_PROVISION, request).sendToTarget();
|
postRequestHandler.obtainMessage(MSG_PROVISION, request).sendToTarget();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onProvisionResponse(Object response) {
|
private void onProvisionResponse(Object response) {
|
||||||
|
provisioningInProgress = false;
|
||||||
if (state != STATE_OPENING && state != STATE_OPENED && state != STATE_OPENED_WITH_KEYS) {
|
if (state != STATE_OPENING && state != STATE_OPENED && state != STATE_OPENED_WITH_KEYS) {
|
||||||
// This event is stale.
|
// This event is stale.
|
||||||
return;
|
return;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user