Fix for bug 4371230.

- Generate unique ID for each DrmManagerClient in native side
- Fix the bug where multiple clients could use the same ID
- Return the correct unique ID back to Java
- Add a flag in the unique ID to separate native client and Java client

Change-Id: Ia4574b6b0a526f2335a65380975dc62f9a6e7f9b
This commit is contained in:
Gloria Wang
2011-07-21 15:10:22 -07:00
parent 60c93010e8
commit 8f00151cbe
10 changed files with 51 additions and 38 deletions

View File

@@ -33,13 +33,10 @@ sp<IDrmManagerService> DrmManagerClientImpl::sDrmManagerService;
sp<DrmManagerClientImpl::DeathNotifier> DrmManagerClientImpl::sDeathNotifier;
const String8 DrmManagerClientImpl::EMPTY_STRING("");
DrmManagerClientImpl* DrmManagerClientImpl::create(int* pUniqueId) {
if (0 == *pUniqueId) {
int uniqueId = getDrmManagerService()->addUniqueId(*pUniqueId);
*pUniqueId = uniqueId;
} else {
getDrmManagerService()->addUniqueId(*pUniqueId);
}
DrmManagerClientImpl* DrmManagerClientImpl::create(
int* pUniqueId, bool isNative) {
*pUniqueId = getDrmManagerService()->addUniqueId(isNative);
return new DrmManagerClientImpl();
}