mirror of
https://gitlab.linphone.org/BC/public/linphone-iphone.git
synced 2026-02-02 03:09:23 +00:00
Revert "retired LinphoneContentPrivate in JNI & fixed Android compilation (friendlist)"
This reverts commit f151d70d4d.
The changes done in this commit break all features using LinphoneContent objects.
This commit is contained in:
parent
3532bfabfb
commit
debed1a326
2 changed files with 138 additions and 33 deletions
|
|
@ -53,7 +53,6 @@ LOCAL_SRC_FILES := \
|
|||
enum.c \
|
||||
event.c \
|
||||
friend.c \
|
||||
friendlist.c \
|
||||
info.c \
|
||||
linphonecall.c \
|
||||
linphonecore.c \
|
||||
|
|
|
|||
|
|
@ -3341,10 +3341,17 @@ extern "C" void Java_org_linphone_core_LinphoneChatRoomImpl_markAsRead(JNIEnv*
|
|||
|
||||
|
||||
extern "C" jlong Java_org_linphone_core_LinphoneChatRoomImpl_createFileTransferMessage(JNIEnv* env, jobject thiz, jlong ptr, jstring jname, jstring jtype, jstring jsubtype, jint data_size) {
|
||||
LinphoneContent content = {0};
|
||||
LinphoneContentPrivate content = {0};
|
||||
LinphoneChatMessage *message = NULL;
|
||||
|
||||
message = linphone_chat_room_create_file_transfer_message((LinphoneChatRoom *)ptr, &content);
|
||||
content.type = (char*)env->GetStringUTFChars(jtype, NULL);
|
||||
content.subtype = (char*)env->GetStringUTFChars(jsubtype, NULL);
|
||||
content.name = (char*)env->GetStringUTFChars(jname, NULL);
|
||||
content.size = data_size;
|
||||
message = linphone_chat_room_create_file_transfer_message((LinphoneChatRoom *)ptr, LINPHONE_CONTENT(&content));
|
||||
env->ReleaseStringUTFChars(jtype, content.type);
|
||||
env->ReleaseStringUTFChars(jsubtype, content.subtype);
|
||||
env->ReleaseStringUTFChars(jname, content.name);
|
||||
|
||||
return (jlong) message;
|
||||
}
|
||||
|
|
@ -4730,14 +4737,24 @@ JNIEXPORT jobject JNICALL Java_org_linphone_core_LinphoneCoreImpl_subscribe(JNIE
|
|||
jstring jevname, jint expires, jstring jtype, jstring jsubtype, jbyteArray jdata, jstring jencoding){
|
||||
LinphoneCore *lc=(LinphoneCore*)coreptr;
|
||||
LinphoneAddress *addr=(LinphoneAddress*)addrptr;
|
||||
LinphoneContent content={0};
|
||||
LinphoneContentPrivate content={0};
|
||||
LinphoneEvent *ev;
|
||||
jobject jev=NULL;
|
||||
const char *evname=env->GetStringUTFChars(jevname,NULL);
|
||||
|
||||
ev=linphone_core_subscribe(lc,addr,evname,expires,linphone_content_get_type(&content) ? &content : NULL);
|
||||
if (jtype){
|
||||
env->ReleaseByteArrayElements(jdata,(jbyte*)linphone_content_get_user_data(&content),JNI_ABORT);
|
||||
content.type=(char*)env->GetStringUTFChars(jtype,NULL);
|
||||
content.subtype=(char*)env->GetStringUTFChars(jsubtype,NULL);
|
||||
content.encoding=jencoding ? (char*)env->GetStringUTFChars(jencoding,NULL) : NULL;
|
||||
content.data=(void*)env->GetByteArrayElements(jdata,NULL);
|
||||
content.size=env->GetArrayLength(jdata);
|
||||
}
|
||||
ev=linphone_core_subscribe(lc,addr,evname,expires,content.type ? LINPHONE_CONTENT(&content) : NULL);
|
||||
if (jtype){
|
||||
env->ReleaseStringUTFChars(jtype,content.type);
|
||||
env->ReleaseStringUTFChars(jsubtype,content.subtype);
|
||||
if (jencoding) env->ReleaseStringUTFChars(jencoding,content.encoding);
|
||||
env->ReleaseByteArrayElements(jdata,(jbyte*)content.data,JNI_ABORT);
|
||||
}
|
||||
env->ReleaseStringUTFChars(jevname,evname);
|
||||
if (ev){
|
||||
|
|
@ -4755,16 +4772,24 @@ JNIEXPORT jobject JNICALL Java_org_linphone_core_LinphoneCoreImpl_publish(JNIEnv
|
|||
jstring jtype, jstring jsubtype, jbyteArray jdata, jstring jencoding){
|
||||
LinphoneCore *lc=(LinphoneCore*)coreptr;
|
||||
LinphoneAddress *addr=(LinphoneAddress*)addrptr;
|
||||
LinphoneContent content={0};
|
||||
LinphoneContentPrivate content={0};
|
||||
LinphoneEvent *ev;
|
||||
jobject jev=NULL;
|
||||
const char *evname=env->GetStringUTFChars(jevname,NULL);
|
||||
|
||||
ev=linphone_core_subscribe(lc,addr,evname,expires,linphone_content_get_type(&content) ? &content : NULL);
|
||||
|
||||
if (jtype){
|
||||
env->ReleaseByteArrayElements(jdata,(jbyte*)linphone_content_get_user_data(&content),JNI_ABORT);
|
||||
|
||||
content.type=(char*)env->GetStringUTFChars(jtype,NULL);
|
||||
content.subtype=(char*)env->GetStringUTFChars(jsubtype,NULL);
|
||||
content.encoding=jencoding ? (char*)env->GetStringUTFChars(jencoding,NULL) : NULL;
|
||||
content.data=(void*)env->GetByteArrayElements(jdata,NULL);
|
||||
content.size=env->GetArrayLength(jdata);
|
||||
}
|
||||
ev=linphone_core_publish(lc,addr,evname,expires,content.type ? LINPHONE_CONTENT(&content) : NULL);
|
||||
if (jtype){
|
||||
env->ReleaseStringUTFChars(jtype,content.type);
|
||||
env->ReleaseStringUTFChars(jsubtype,content.subtype);
|
||||
if (jencoding) env->ReleaseStringUTFChars(jencoding,content.encoding);
|
||||
env->ReleaseByteArrayElements(jdata,(jbyte*)content.data,JNI_ABORT);
|
||||
}
|
||||
env->ReleaseStringUTFChars(jevname,evname);
|
||||
if (ev){
|
||||
|
|
@ -4907,24 +4932,33 @@ static jobject create_java_linphone_content(JNIEnv *env, const LinphoneContent *
|
|||
jstring jtype, jsubtype, jencoding, jname;
|
||||
jbyteArray jdata = NULL;
|
||||
jint jsize = 0;
|
||||
const LinphoneContentPrivate *content = LINPHONE_CONTENT_PRIVATE(icontent);
|
||||
|
||||
contentClass = (jclass)env->FindClass("org/linphone/core/LinphoneContentImpl");
|
||||
ctor = env->GetMethodID(contentClass,"<init>", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[BLjava/lang/String;I)V");
|
||||
|
||||
jtype = env->NewStringUTF(linphone_content_get_type(icontent));
|
||||
jsubtype = env->NewStringUTF(linphone_content_get_subtype(icontent));
|
||||
jencoding = linphone_content_get_encoding(icontent) ? env->NewStringUTF(linphone_content_get_encoding(icontent)) : NULL;
|
||||
jname = linphone_content_get_name(icontent) ? env->NewStringUTF(linphone_content_get_name(icontent)) : NULL;
|
||||
jsize = (jint) linphone_content_get_size(icontent);
|
||||
jtype = env->NewStringUTF(content->type);
|
||||
jsubtype = env->NewStringUTF(content->subtype);
|
||||
jencoding = content->encoding ? env->NewStringUTF(content->encoding) : NULL;
|
||||
jname = content->name ? env->NewStringUTF(content->name) : NULL;
|
||||
jsize = (jint) content->size;
|
||||
|
||||
if (linphone_content_get_user_data(icontent)){
|
||||
jdata = env->NewByteArray(linphone_content_get_size(icontent));
|
||||
env->SetByteArrayRegion(jdata, 0, linphone_content_get_size(icontent), (jbyte*)linphone_content_get_user_data(icontent));
|
||||
if (content->data){
|
||||
jdata = env->NewByteArray(content->size);
|
||||
env->SetByteArrayRegion(jdata, 0, content->size, (jbyte*)content->data);
|
||||
}
|
||||
|
||||
jobject jobj = env->NewObject(contentClass, ctor, jname, jtype, jsubtype, jdata, jencoding, jsize);
|
||||
|
||||
env->DeleteLocalRef(contentClass);
|
||||
env->DeleteLocalRef(jtype);
|
||||
env->DeleteLocalRef(jsubtype);
|
||||
if (jencoding) {
|
||||
env->DeleteLocalRef(jencoding);
|
||||
}
|
||||
if (jname) {
|
||||
env->DeleteLocalRef(jname);
|
||||
}
|
||||
|
||||
return jobj;
|
||||
}
|
||||
|
|
@ -4994,9 +5028,16 @@ JNIEXPORT jobject JNICALL Java_org_linphone_core_LinphoneInfoMessageImpl_getCont
|
|||
* Signature: (JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_org_linphone_core_LinphoneInfoMessageImpl_setContent(JNIEnv *env, jobject jobj, jlong infoptr, jstring jtype, jstring jsubtype, jstring jdata){
|
||||
LinphoneContent content={0};
|
||||
LinphoneContentPrivate content={0};
|
||||
|
||||
linphone_info_message_set_content((LinphoneInfoMessage*)infoptr,&content);
|
||||
content.type=(char*)env->GetStringUTFChars(jtype,NULL);
|
||||
content.subtype=(char*)env->GetStringUTFChars(jsubtype,NULL);
|
||||
content.data=(void*)env->GetStringUTFChars(jdata,NULL);
|
||||
content.size=strlen((char*)content.data);
|
||||
linphone_info_message_set_content((LinphoneInfoMessage*)infoptr,LINPHONE_CONTENT(&content));
|
||||
env->ReleaseStringUTFChars(jtype,content.type);
|
||||
env->ReleaseStringUTFChars(jsubtype,content.subtype);
|
||||
env->ReleaseStringUTFChars(jdata,(char*)content.data);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -5096,13 +5137,26 @@ JNIEXPORT jint JNICALL Java_org_linphone_core_LinphoneEventImpl_denySubscription
|
|||
* Signature: (JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
|
||||
*/
|
||||
JNIEXPORT jint JNICALL Java_org_linphone_core_LinphoneEventImpl_notify(JNIEnv *env, jobject jobj, jlong evptr, jstring jtype, jstring jsubtype, jbyteArray jdata, jstring jencoding){
|
||||
LinphoneContent content={0};
|
||||
LinphoneContentPrivate content={0};
|
||||
LinphoneEvent *ev=(LinphoneEvent*)evptr;
|
||||
jint err;
|
||||
|
||||
if (jtype){
|
||||
content.type=(char*)env->GetStringUTFChars(jtype,NULL);
|
||||
content.subtype=(char*)env->GetStringUTFChars(jsubtype,NULL);
|
||||
content.encoding=jencoding ? (char*)env->GetStringUTFChars(jsubtype,NULL) : NULL;
|
||||
content.data=(void*)env->GetByteArrayElements(jdata,NULL);
|
||||
content.size=env->GetArrayLength(jdata);
|
||||
}
|
||||
|
||||
err=linphone_event_notify(ev,linphone_content_get_type(&content) ? &content : NULL);
|
||||
err=linphone_event_notify(ev,content.type ? LINPHONE_CONTENT(&content) : NULL);
|
||||
|
||||
if (jtype){
|
||||
env->ReleaseStringUTFChars(jtype,content.type);
|
||||
env->ReleaseStringUTFChars(jsubtype,content.subtype);
|
||||
if (jencoding) env->ReleaseStringUTFChars(jencoding,content.encoding);
|
||||
env->ReleaseByteArrayElements(jdata,(jbyte*)content.data,JNI_ABORT);
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
|
|
@ -5112,12 +5166,26 @@ JNIEXPORT jint JNICALL Java_org_linphone_core_LinphoneEventImpl_notify(JNIEnv *e
|
|||
* Signature: (JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
|
||||
*/
|
||||
JNIEXPORT jint JNICALL Java_org_linphone_core_LinphoneEventImpl_updateSubscribe(JNIEnv *env, jobject jobj, jlong evptr, jstring jtype, jstring jsubtype, jbyteArray jdata, jstring jencoding){
|
||||
LinphoneContent content={0};
|
||||
LinphoneContentPrivate content={0};
|
||||
LinphoneEvent *ev=(LinphoneEvent*)evptr;
|
||||
jint err;
|
||||
|
||||
err=linphone_event_update_subscribe(ev,linphone_content_get_type(&content) ? &content : NULL);
|
||||
if (jtype){
|
||||
content.type=(char*)env->GetStringUTFChars(jtype,NULL);
|
||||
content.subtype=(char*)env->GetStringUTFChars(jsubtype,NULL);
|
||||
content.encoding=jencoding ? (char*)env->GetStringUTFChars(jsubtype,NULL) : NULL;
|
||||
content.data=(void*)env->GetByteArrayElements(jdata,NULL);
|
||||
content.size=env->GetArrayLength(jdata);
|
||||
}
|
||||
|
||||
err=linphone_event_update_subscribe(ev,content.type ? LINPHONE_CONTENT(&content) : NULL);
|
||||
|
||||
if (jtype){
|
||||
env->ReleaseStringUTFChars(jtype,content.type);
|
||||
env->ReleaseStringUTFChars(jsubtype,content.subtype);
|
||||
if (jencoding) env->ReleaseStringUTFChars(jencoding,content.encoding);
|
||||
env->ReleaseByteArrayElements(jdata,(jbyte*)content.data,JNI_ABORT);
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
|
|
@ -5127,12 +5195,26 @@ JNIEXPORT jint JNICALL Java_org_linphone_core_LinphoneEventImpl_updateSubscribe(
|
|||
* Signature: (JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
|
||||
*/
|
||||
JNIEXPORT jint JNICALL Java_org_linphone_core_LinphoneEventImpl_updatePublish(JNIEnv *env, jobject jobj, jlong evptr, jstring jtype, jstring jsubtype, jbyteArray jdata, jstring jencoding){
|
||||
LinphoneContent content={0};
|
||||
LinphoneContentPrivate content={0};
|
||||
LinphoneEvent *ev=(LinphoneEvent*)evptr;
|
||||
jint err;
|
||||
|
||||
err=linphone_event_update_publish(ev,linphone_content_get_type(&content) ? &content : NULL);
|
||||
if (jtype){
|
||||
content.type=(char*)env->GetStringUTFChars(jtype,NULL);
|
||||
content.subtype=(char*)env->GetStringUTFChars(jsubtype,NULL);
|
||||
content.encoding=jencoding ? (char*)env->GetStringUTFChars(jsubtype,NULL) : NULL;
|
||||
content.data=(void*)env->GetByteArrayElements(jdata,NULL);
|
||||
content.size=env->GetArrayLength(jdata);
|
||||
}
|
||||
|
||||
err=linphone_event_update_publish(ev,content.type ? LINPHONE_CONTENT(&content) : NULL);
|
||||
|
||||
if (jtype){
|
||||
env->ReleaseStringUTFChars(jtype,content.type);
|
||||
env->ReleaseStringUTFChars(jsubtype,content.subtype);
|
||||
if (jencoding) env->ReleaseStringUTFChars(jencoding,content.encoding);
|
||||
env->ReleaseByteArrayElements(jdata,(jbyte*)content.data,JNI_ABORT);
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
|
|
@ -5198,8 +5280,21 @@ JNIEXPORT jobject JNICALL Java_org_linphone_core_LinphoneCoreImpl_createSubscrib
|
|||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_org_linphone_core_LinphoneEventImpl_sendSubscribe(JNIEnv *env, jobject thiz, jlong jevent, jstring jtype, jstring jsubtype, jbyteArray jdata, jstring jencoding) {
|
||||
LinphoneContent content = {0};
|
||||
linphone_event_send_subscribe((LinphoneEvent*) jevent, linphone_content_get_type(&content)? &content : NULL);
|
||||
LinphoneContentPrivate content = {0};
|
||||
if (jtype) {
|
||||
content.type = (char*) env->GetStringUTFChars(jtype, NULL);
|
||||
content.subtype = (char*) env->GetStringUTFChars(jsubtype, NULL);
|
||||
content.encoding = jencoding ? (char*) env->GetStringUTFChars(jencoding, NULL) : NULL;
|
||||
content.data = (void*) env->GetByteArrayElements(jdata, NULL);
|
||||
content.size = env->GetArrayLength(jdata);
|
||||
}
|
||||
linphone_event_send_subscribe((LinphoneEvent*) jevent, content.type ? LINPHONE_CONTENT(&content) : NULL);
|
||||
if (jtype) {
|
||||
env->ReleaseStringUTFChars(jtype, content.type);
|
||||
env->ReleaseStringUTFChars(jsubtype, content.subtype);
|
||||
if (jencoding) env->ReleaseStringUTFChars(jencoding, content.encoding);
|
||||
env->ReleaseByteArrayElements(jdata, (jbyte*) content.data, JNI_ABORT);
|
||||
}
|
||||
}
|
||||
|
||||
JNIEXPORT jobject JNICALL Java_org_linphone_core_LinphoneCoreImpl_createPublish(JNIEnv *env, jobject thiz, jlong jcore, jlong jaddr, jstring jeventname, jint expires) {
|
||||
|
|
@ -5218,10 +5313,21 @@ JNIEXPORT jobject JNICALL Java_org_linphone_core_LinphoneCoreImpl_createPublish(
|
|||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_org_linphone_core_LinphoneEventImpl_sendPublish(JNIEnv *env, jobject thiz, jlong jevent, jstring jtype, jstring jsubtype, jbyteArray jdata, jstring jencoding) {
|
||||
LinphoneContent content = {0};
|
||||
linphone_event_send_publish((LinphoneEvent*) jevent, linphone_content_get_type(&content)? &content : NULL);
|
||||
|
||||
|
||||
LinphoneContentPrivate content = {0};
|
||||
if (jtype) {
|
||||
content.type = (char*) env->GetStringUTFChars(jtype, NULL);
|
||||
content.subtype = (char*) env->GetStringUTFChars(jsubtype, NULL);
|
||||
content.encoding = jencoding ? (char*) env->GetStringUTFChars(jencoding, NULL) : NULL;
|
||||
content.data = (void*) env->GetByteArrayElements(jdata, NULL);
|
||||
content.size = env->GetArrayLength(jdata);
|
||||
}
|
||||
linphone_event_send_publish((LinphoneEvent*) jevent, content.type ? LINPHONE_CONTENT(&content) : NULL);
|
||||
if (jtype) {
|
||||
env->ReleaseStringUTFChars(jtype, content.type);
|
||||
env->ReleaseStringUTFChars(jsubtype, content.subtype);
|
||||
if (jencoding) env->ReleaseStringUTFChars(jencoding, content.encoding);
|
||||
env->ReleaseByteArrayElements(jdata, (jbyte*) content.data, JNI_ABORT);
|
||||
}
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_org_linphone_core_LinphoneEventImpl_addCustomHeader(JNIEnv *env, jobject thiz, jlong jevent, jstring jname, jstring jvalue) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue