diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc index 97b0ecaf0..3fd18bed3 100644 --- a/coreapi/linphonecore_jni.cc +++ b/coreapi/linphonecore_jni.cc @@ -2707,6 +2707,18 @@ extern "C" jobject Java_org_linphone_core_LinphoneChatMessageImpl_getFileTransfe return NULL; } +extern "C" jstring Java_org_linphone_core_LinphoneChatMessageImpl_getAppData(JNIEnv* env, jobject thiz, jlong ptr) { + const char * app_data = linphone_chat_message_get_appdata((LinphoneChatMessage *)ptr); + return app_data ? env->NewStringUTF(app_data) : NULL; +} + +extern "C" void Java_org_linphone_core_LinphoneChatMessageImpl_setAppData(JNIEnv* env, jobject thiz, jlong ptr, jstring appdata) { + const char * data = appdata ? env->GetStringUTFChars(appdata, NULL) : NULL; + linphone_chat_message_set_appdata((LinphoneChatMessage *)ptr, data); + if (appdata) + env->ReleaseStringUTFChars(appdata, data); +} + extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setFileTransferServer(JNIEnv* env, jobject thiz, jlong ptr, jstring server_url) { const char * url = server_url ? env->GetStringUTFChars(server_url, NULL) : NULL; linphone_core_set_file_transfer_server((LinphoneCore *)ptr, url); diff --git a/java/common/org/linphone/core/LinphoneChatMessage.java b/java/common/org/linphone/core/LinphoneChatMessage.java index 6a08b9da1..930a064db 100644 --- a/java/common/org/linphone/core/LinphoneChatMessage.java +++ b/java/common/org/linphone/core/LinphoneChatMessage.java @@ -168,4 +168,15 @@ public interface LinphoneChatMessage { * @return a pointer to the LinphoneContent structure or NULL if not present. */ LinphoneContent getFileTransferInformation(); + + /** + * Sets data in the chat message + * @param data to store in the message + */ + void setAppData(String data); + + /** + * @return the data stored in the chat message if any, else null + */ + String getAppData(); } diff --git a/java/impl/org/linphone/core/LinphoneChatMessageImpl.java b/java/impl/org/linphone/core/LinphoneChatMessageImpl.java index 45b4cf736..d25ae426a 100644 --- a/java/impl/org/linphone/core/LinphoneChatMessageImpl.java +++ b/java/impl/org/linphone/core/LinphoneChatMessageImpl.java @@ -115,4 +115,16 @@ public class LinphoneChatMessageImpl implements LinphoneChatMessage { public LinphoneContent getFileTransferInformation() { return (LinphoneContent) getFileTransferInformation(nativePtr); } + + private native void setAppData(long ptr, String data); + @Override + public void setAppData(String data) { + setAppData(nativePtr, data); + } + + private native String getAppData(long ptr); + @Override + public String getAppData() { + return getAppData(nativePtr); + } }