Lines Matching refs:env

47     static String8 getStringValue(JNIEnv* env, jobject object, const char* fieldName);
50 JNIEnv* env, jobject object, const char* fieldName, int* dataLength);
53 JNIEnv* env, jbyteArray byteArray, int* dataLength);
55 static String8 getStringValue(JNIEnv* env, jstring string);
57 static int getIntValue(JNIEnv* env, jobject object, const char* fieldName);
60 String8 Utility::getStringValue(JNIEnv* env, jobject object, const char* fieldName) {
63 = env->GetFieldID(env->GetObjectClass(object), fieldName , "Ljava/lang/String;");
66 jstring valueString = (jstring) env->GetObjectField(object, fieldID);
67 return Utility::getStringValue(env, valueString);
74 String8 Utility::getStringValue(JNIEnv* env, jstring string) {
77 if (NULL != string && string != env->NewStringUTF("")) {
78 char* bytes = const_cast< char* > (env->GetStringUTFChars(string, NULL));
85 env->ReleaseStringUTFChars(string, bytes);
92 JNIEnv* env, jobject object, const char* fieldName, int* dataLength) {
96 jfieldID fieldID = env->GetFieldID(env->GetObjectClass(object), fieldName , "[B");
99 jbyteArray byteArray = (jbyteArray) env->GetObjectField(object, fieldID);
100 return Utility::getByteArrayValue(env, byteArray, dataLength);
105 char* Utility::getByteArrayValue(JNIEnv* env, jbyteArray byteArray, int* dataLength) {
108 jint length = env->GetArrayLength(byteArray);
113 env->GetByteArrayRegion(byteArray, (jint)0, length, (jbyte *) data);
119 int Utility::getIntValue(JNIEnv* env, jobject object, const char* fieldName) {
124 jclass clazz = env->GetObjectClass(object);
126 fieldID = env->GetFieldID(clazz, fieldName , "I");
129 intValue = (int) env->GetIntField(object, fieldID);
137 JNIOnInfoListener(JNIEnv* env, jobject thiz, jobject weak_thiz);
148 JNIOnInfoListener::JNIOnInfoListener(JNIEnv* env, jobject thiz, jobject weak_thiz) {
149 jclass clazz = env->GetObjectClass(thiz);
153 jniThrowException(env, "java/lang/Exception", NULL);
156 mClass = (jclass)env->NewGlobalRef(clazz);
157 mObject = env->NewGlobalRef(weak_thiz);
161 JNIEnv *env = AndroidRuntime::getJNIEnv();
162 env->DeleteGlobalRef(mObject);
163 env->DeleteGlobalRef(mClass);
169 JNIEnv *env = AndroidRuntime::getJNIEnv();
170 jstring message = env->NewStringUTF(event.getMessage().string());
173 env->CallStaticVoidMethod(
175 env->GetStaticMethodID(mClass, "notify", "(Ljava/lang/Object;IILjava/lang/String;)V"),
182 JNIEnv* env, jobject thiz, const sp<DrmManagerClientImpl>& client) {
184 jclass clazz = env->FindClass("android/drm/DrmManagerClient");
185 jfieldID fieldId = env->GetFieldID(clazz, "mNativeContext", "I");
187 sp<DrmManagerClientImpl> old = (DrmManagerClientImpl*)env->GetIntField(thiz, fieldId);
194 env->SetIntField(thiz, fieldId, (int)client.get());
198 static sp<DrmManagerClientImpl> getDrmManagerClientImpl(JNIEnv* env, jobject thiz) {
200 jclass clazz = env->FindClass("android/drm/DrmManagerClient");
201 jfieldID fieldId = env->GetFieldID(clazz, "mNativeContext", "I");
203 DrmManagerClientImpl* const client = (DrmManagerClientImpl*)env->GetIntField(thiz, fieldId);
208 JNIEnv* env, jobject thiz) {
215 setDrmManagerClientImpl(env, thiz, drmManager);
221 JNIEnv* env, jobject thiz, jint uniqueId, jobject weak_thiz) {
225 sp<DrmManagerClient::OnInfoListener> listener = new JNIOnInfoListener(env, thiz, weak_thiz);
226 getDrmManagerClientImpl(env, thiz)->setOnInfoListener(uniqueId, listener);
232 JNIEnv* env, jobject thiz, jint uniqueId) {
235 getDrmManagerClientImpl(env, thiz)->setOnInfoListener(uniqueId, NULL);
237 sp<DrmManagerClientImpl> oldClient = setDrmManagerClientImpl(env, thiz, NULL);
246 JNIEnv* env, jobject thiz, jint uniqueId, jstring jpath, jint usage) {
249 const String8 pathString = Utility::getStringValue(env, jpath);
251 = getDrmManagerClientImpl(env, thiz)->getConstraints(uniqueId, &pathString, usage);
253 jclass localRef = env->FindClass("android/content/ContentValues");
255 env->GetMethodID(localRef, "put", "(Ljava/lang/String;[B)V");
257 env->GetMethodID(localRef, "put", "(Ljava/lang/String;Ljava/lang/String;)V");
258 jmethodID ContentValues_constructor = env->GetMethodID(localRef, "<init>", "()V");
263 constraints = env->NewObject(localRef, ContentValues_constructor);
273 ScopedLocalRef<jbyteArray> dataArray(env, env->NewByteArray(strlen(value)));
274 ScopedLocalRef<jstring> keyString(env, env->NewStringUTF(key.string()));
275 env->SetByteArrayRegion(dataArray.get(), 0, strlen(value), (jbyte*)value);
276 env->CallVoidMethod(constraints, ContentValues_putByteArray,
281 ScopedLocalRef<jstring> keyString(env, env->NewStringUTF(key.string()));
282 ScopedLocalRef<jstring> valueString(env, env->NewStringUTF(value.string()));
283 env->CallVoidMethod(constraints, ContentValues_putString,
295 JNIEnv* env, jobject thiz, jint uniqueId, jstring jpath) {
297 const String8 pathString = Utility::getStringValue(env, jpath);
299 getDrmManagerClientImpl(env, thiz)->getMetadata(uniqueId, &pathString);
303 jclass localRef = env->FindClass("android/content/ContentValues");
305 env->GetMethodID(localRef, "put", "(Ljava/lang/String;Ljava/lang/String;)V");
310 constructorId = env->GetMethodID(localRef, "<init>", "()V");
313 metadata = env->NewObject(localRef, constructorId);
321 ScopedLocalRef<jstring> keyString(env, env->NewStringUTF(key.string()));
322 ScopedLocalRef<jstring> valueString(env, env->NewStringUTF(value.string()));
323 env->CallVoidMethod(metadata, ContentValues_putString,
335 JNIEnv* env, jobject thiz, jint uniqueId) {
340 getDrmManagerClientImpl(env, thiz)->getAllSupportInfo(uniqueId, &length, &drmSupportInfoArray);
342 jclass clazz = env->FindClass("android/drm/DrmSupportInfo");
344 jobjectArray array = (jobjectArray)env->NewObjectArray(length, clazz, NULL);
349 jobject drmSupportInfo = env->NewObject(clazz, env->GetMethodID(clazz, "<init>", "()V"));
352 = env->GetMethodID(clazz, "addMimeType", "(Ljava/lang/String;)V");
354 = env->GetMethodID(clazz, "addFileSuffix", "(Ljava/lang/String;)V");
356 env->CallVoidMethod(
357 drmSupportInfo, env->GetMethodID(clazz, "setDescription", "(Ljava/lang/String;)V"),
358 env->NewStringUTF(info.getDescription().string()));
363 env->CallVoidMethod(drmSupportInfo, addMimeTypeId, env->NewStringUTF(value.string()));
369 env->CallVoidMethod(
370 drmSupportInfo, addFileSuffixId, env->NewStringUTF(value.string()));
373 env->SetObjectArrayElement(array, i, drmSupportInfo);
382 JNIEnv* env, jobject thiz, jint uniqueId, jstring engineFilePath) {
384 //getDrmManagerClient(env, thiz)
385 // ->installDrmEngine(uniqueId, Utility::getStringValue(env, engineFilePath));
390 JNIEnv* env, jobject thiz, jint uniqueId,
395 char* mData = Utility::getByteArrayValue(env, drmRights, "mData", &dataLength);
399 Utility::getStringValue(env, drmRights, "mMimeType"),
400 Utility::getStringValue(env, drmRights, "mAccountId"),
401 Utility::getStringValue(env, drmRights, "mSubscriptionId"));
402 result = getDrmManagerClientImpl(env, thiz)
403 ->saveRights(uniqueId, rights, Utility::getStringValue(env, rightsPath),
404 Utility::getStringValue(env, contentPath));
413 JNIEnv* env, jobject thiz, jint uniqueId, jstring path, jstring mimeType) {
416 = getDrmManagerClientImpl(env, thiz)
417 ->canHandle(uniqueId, Utility::getStringValue(env, path),
418 Utility::getStringValue(env, mimeType));
424 JNIEnv* env, jobject thiz, jint uniqueId, jobject drmInfoObject) {
427 const String8 mMimeType = Utility::getStringValue(env, drmInfoObject, "mMimeType");
428 char* mData = Utility::getByteArrayValue(env, drmInfoObject, "mData", &dataLength);
429 int mInfoType = Utility::getIntValue(env, drmInfoObject, "mInfoType");
434 jclass clazz = env->FindClass("android/drm/DrmInfo");
435 jmethodID DrmInfo_get = env->GetMethodID(clazz, "get", "(Ljava/lang/String;)Ljava/lang/Object;");
437 = env->CallObjectMethod(drmInfoObject,
438 env->GetMethodID(clazz, "keyIterator", "()Ljava/util/Iterator;"));
440 jclass Iterator_class = env->FindClass("java/util/Iterator");
441 jmethodID Iterator_hasNext = env->GetMethodID(Iterator_class, "hasNext", "()Z");
442 jmethodID Iterator_next = env->GetMethodID(Iterator_class, "next", "()Ljava/lang/Object;");
444 jclass Object_class = env->FindClass("java/lang/Object");
445 jmethodID Object_toString = env->GetMethodID(Object_class, "toString", "()Ljava/lang/String;");
447 while (env->CallBooleanMethod(keyIterator, Iterator_hasNext)) {
448 ScopedLocalRef<jstring> key(env,
449 (jstring) env->CallObjectMethod(keyIterator, Iterator_next));
450 ScopedLocalRef<jobject> valueObject(env,
451 env->CallObjectMethod(drmInfoObject, DrmInfo_get, key.get()));
452 ScopedLocalRef<jstring> valString(env, NULL);
454 valString.reset((jstring) env->CallObjectMethod(valueObject.get(), Object_toString));
457 String8 keyString = Utility::getStringValue(env, key.get());
458 String8 valueString = Utility::getStringValue(env, valString.get());
465 = getDrmManagerClientImpl(env, thiz)->processDrmInfo(uniqueId, &drmInfo);
467 jclass localRef = env->FindClass("android/drm/DrmInfoStatus");
477 dataArray = env->NewByteArray(length);
478 env->SetByteArrayRegion(
484 jclass clazz = env->FindClass("android/drm/ProcessedData");
486 = env->GetMethodID(clazz, "<init>", "([BLjava/lang/String;Ljava/lang/String;)V");
487 jobject processedData = env->NewObject(clazz, constructorId, dataArray,
488 env->NewStringUTF((drmInfo.get(DrmInfoRequest::ACCOUNT_ID)).string()),
489 env->NewStringUTF((drmInfo.get(DrmInfoRequest::SUBSCRIPTION_ID)).string()));
492 = env->GetMethodID(localRef,
495 drmInfoStatus = env->NewObject(localRef, constructorId, statusCode, infoType,
496 processedData, env->NewStringUTF(pDrmInfoStatus->mimeType.string()));
507 JNIEnv* env, jobject thiz, jint uniqueId, jobject drmInfoRequest) {
509 const String8 mMimeType = Utility::getStringValue(env, drmInfoRequest, "mMimeType");
510 int mInfoType = Utility::getIntValue(env, drmInfoRequest, "mInfoType");
514 jclass clazz = env->FindClass("android/drm/DrmInfoRequest");
516 = env->CallObjectMethod(drmInfoRequest,
517 env->GetMethodID(clazz, "keyIterator", "()Ljava/util/Iterator;"));
518 jmethodID DrmInfoRequest_get = env->GetMethodID(clazz,
521 jclass Iterator_class = env->FindClass("java/util/Iterator");
522 jmethodID Iterator_hasNext = env->GetMethodID(Iterator_class, "hasNext", "()Z");
523 jmethodID Iterator_next = env->GetMethodID(Iterator_class, "next", "()Ljava/lang/Object;");
525 while (env->CallBooleanMethod(keyIterator, Iterator_hasNext)) {
526 ScopedLocalRef<jstring> key(env,
527 (jstring) env->CallObjectMethod(keyIterator, Iterator_next));
528 ScopedLocalRef<jstring> value(env,
529 (jstring) env->CallObjectMethod(drmInfoRequest, DrmInfoRequest_get, key.get()));
531 String8 keyString = Utility::getStringValue(env, key.get());
532 String8 valueString = Utility::getStringValue(env, value.get());
538 DrmInfo* pDrmInfo = getDrmManagerClientImpl(env, thiz)->acquireDrmInfo(uniqueId, &drmInfoReq);
543 jclass localRef = env->FindClass("android/drm/DrmInfo");
548 jbyteArray dataArray = env->NewByteArray(length);
549 env->SetByteArrayRegion(dataArray, 0, length, (jbyte*)pDrmInfo->getData().data);
552 = env->NewObject(localRef,
553 env->GetMethodID(localRef, "<init>", "(I[BLjava/lang/String;)V"),
554 mInfoType, dataArray, env->NewStringUTF(pDrmInfo->getMimeType().string()));
558 = env->GetMethodID(localRef, "put", "(Ljava/lang/String;Ljava/lang/Object;)V");
563 ScopedLocalRef<jstring> keyString(env, env->NewStringUTF(key.string()));
564 ScopedLocalRef<jstring> valueString(env, env->NewStringUTF(value.string()));
565 env->CallVoidMethod(drmInfoObject, putMethodId,
579 JNIEnv* env, jobject thiz, jint uniqueId, jstring path, jstring mimeType) {
582 = getDrmManagerClientImpl(env, thiz)
583 ->getDrmObjectType(uniqueId, Utility::getStringValue(env, path),
584 Utility::getStringValue(env, mimeType));
590 JNIEnv* env, jobject thiz, jint uniqueId, jstring path, jobject fileDescriptor) {
595 : jniGetFDFromFileDescriptor(env, fileDescriptor);
598 = getDrmManagerClientImpl(env, thiz)
600 Utility::getStringValue(env, path), fd);
602 return env->NewStringUTF(mimeType.string());
606 JNIEnv* env, jobject thiz, jint uniqueId, jstring path, int action) {
609 = getDrmManagerClientImpl(env, thiz)
610 ->checkRightsStatus(uniqueId, Utility::getStringValue(env, path), action);
616 JNIEnv* env, jobject thiz, jint uniqueId, jstring path) {
618 return getDrmManagerClientImpl(env, thiz)
619 ->removeRights(uniqueId, Utility::getStringValue(env, path));
623 JNIEnv* env, jobject thiz, jint uniqueId) {
625 return getDrmManagerClientImpl(env, thiz)->removeAllRights(uniqueId);
629 JNIEnv* env, jobject thiz, jint uniqueId, jstring mimeType) {
632 = getDrmManagerClientImpl(env, thiz)
633 ->openConvertSession(uniqueId, Utility::getStringValue(env, mimeType));
638 static jobject GetConvertedStatus(JNIEnv* env, DrmConvertedStatus* pDrmConvertedStatus) {
640 jclass localRef = env->FindClass("android/drm/DrmConvertedStatus");
650 dataArray = env->NewByteArray(length);
651 env->SetByteArrayRegion(
657 jmethodID constructorId = env->GetMethodID(localRef, "<init>", "(I[BI)V");
659 = env->NewObject(localRef, constructorId,
670 JNIEnv* env, jobject thiz, jint uniqueId, jint convertId, jbyteArray inputData) {
674 char* mData = Utility::getByteArrayValue(env, inputData, &dataLength);
678 = getDrmManagerClientImpl(env, thiz)->convertData(uniqueId, convertId, &buffer);
679 jobject status = GetConvertedStatus(env, pDrmConvertedStatus);
689 JNIEnv* env, jobject thiz, int uniqueId, jint convertId) {
694 = getDrmManagerClientImpl(env, thiz)->closeConvertSession(uniqueId, convertId);
695 jobject status = GetConvertedStatus(env, pDrmConvertedStatus);
761 static int registerNativeMethods(JNIEnv* env) {
765 jclass clazz = env->FindClass("android/drm/DrmManagerClient");
768 if (env->RegisterNatives(clazz, nativeMethods, sizeof(nativeMethods)
777 JNIEnv* env = NULL;
780 if (vm->GetEnv((void**) &env, JNI_VERSION_1_4) == JNI_OK) {
781 if (NULL != env && registerNativeMethods(env) == 0) {