From 9bbb1743b4d53dfe2f70d4ca9a3d853769aa9284 Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Thu, 11 Apr 2013 15:59:05 +0200 Subject: [PATCH] implement LinphoneAddress.setDomain & setUsername --- coreapi/linphonecore_jni.cc | 20 +++++++++++++++++-- .../linphone/core/LinphoneAddressImpl.java | 10 +++++++--- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc index 5046d83bb..4c96d7e9d 100644 --- a/coreapi/linphonecore_jni.cc +++ b/coreapi/linphonecore_jni.cc @@ -1338,14 +1338,14 @@ extern "C" jlong Java_org_linphone_core_LinphoneAddressImpl_newLinphoneAddressIm ,jobject thiz ,jstring juri ,jstring jdisplayName) { - const char* uri = env->GetStringUTFChars(juri, NULL); + const char* uri = juri?env->GetStringUTFChars(juri, NULL):NULL; LinphoneAddress* address = linphone_address_new(uri); if (jdisplayName && address) { const char* displayName = env->GetStringUTFChars(jdisplayName, NULL); linphone_address_set_display_name(address,displayName); env->ReleaseStringUTFChars(jdisplayName, displayName); } - env->ReleaseStringUTFChars(juri, uri); + if (uri) env->ReleaseStringUTFChars(juri, uri); return (jlong) address; } @@ -1410,6 +1410,22 @@ extern "C" void Java_org_linphone_core_LinphoneAddressImpl_setDisplayName(JNIEnv linphone_address_set_display_name((LinphoneAddress*)address,displayName); if (displayName != NULL) env->ReleaseStringUTFChars(jdisplayName, displayName); } +extern "C" void Java_org_linphone_core_LinphoneAddressImpl_setUserName(JNIEnv* env + ,jobject thiz + ,jlong address + ,jstring juserName) { + const char* userName = juserName!= NULL?env->GetStringUTFChars(juserName, NULL):NULL; + linphone_address_set_username((LinphoneAddress*)address,userName); + if (userName != NULL) env->ReleaseStringUTFChars(juserName, userName); +} +extern "C" void Java_org_linphone_core_LinphoneAddressImpl_setDomain(JNIEnv* env + ,jobject thiz + ,jlong address + ,jstring jdomain) { + const char* domain = jdomain!= NULL?env->GetStringUTFChars(jdomain, NULL):NULL; + linphone_address_set_domain((LinphoneAddress*)address,domain); + if (domain != NULL) env->ReleaseStringUTFChars(jdomain, domain); +} //CallLog diff --git a/java/impl/org/linphone/core/LinphoneAddressImpl.java b/java/impl/org/linphone/core/LinphoneAddressImpl.java index b9d290971..000ae52ab 100644 --- a/java/impl/org/linphone/core/LinphoneAddressImpl.java +++ b/java/impl/org/linphone/core/LinphoneAddressImpl.java @@ -30,6 +30,8 @@ public class LinphoneAddressImpl implements LinphoneAddress { private native String getDomain(long ptr); private native String toUri(long ptr); private native void setDisplayName(long ptr,String name); + private native void setDomain(long ptr,String domain); + private native void setUserName(long ptr,String username); private native String toString(long ptr); protected LinphoneAddressImpl(String identity) { @@ -37,7 +39,9 @@ public class LinphoneAddressImpl implements LinphoneAddress { } protected LinphoneAddressImpl(String username,String domain,String displayName) { - nativePtr = newLinphoneAddressImpl("sip:"+username+"@"+domain, displayName); + nativePtr = newLinphoneAddressImpl(null, displayName); + this.setUserName(username); + this.setDomain(domain); } protected LinphoneAddressImpl(long aNativePtr,boolean javaOwnPtr) { nativePtr = aNativePtr; @@ -85,7 +89,7 @@ public class LinphoneAddressImpl implements LinphoneAddress { return getPortInt(); } public void setDomain(String domain) { - throw new RuntimeException("Not implemented"); + setDomain(nativePtr,domain); } public void setPort(String port) { throw new RuntimeException("Not implemented"); @@ -94,7 +98,7 @@ public class LinphoneAddressImpl implements LinphoneAddress { throw new RuntimeException("Not implemented"); } public void setUserName(String username) { - throw new RuntimeException("Not implemented"); + setUserName(nativePtr,username); } }