diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc index cd0324bb1..f93cb1843 100644 --- a/coreapi/linphonecore_jni.cc +++ b/coreapi/linphonecore_jni.cc @@ -3084,6 +3084,18 @@ extern "C" void Java_org_linphone_core_LinphoneFriendListImpl_setRLSUri(JNIEnv* ,jstring jrlsUri) { const char* uri = env->GetStringUTFChars(jrlsUri, NULL); linphone_friend_list_set_rls_uri((LinphoneFriendList*)ptr,uri); + env->ReleaseStringUTFChars(jrlsUri, uri); +} + +extern "C" jlong Java_org_linphone_core_LinphoneFriendListImpl_findFriendByUri(JNIEnv* env + ,jobject thiz + ,jlong friendListptr + ,jstring juri) { + const char* uri = env->GetStringUTFChars(juri, NULL); + LinphoneFriend* lResult; + lResult = linphone_friend_list_find_friend_by_uri((LinphoneFriendList*)friendListptr,uri); + env->ReleaseStringUTFChars(juri, uri); + return (jlong)lResult; } extern "C" void Java_org_linphone_core_LinphoneFriendListImpl_addFriend(JNIEnv* env diff --git a/java/common/org/linphone/core/LinphoneFriendList.java b/java/common/org/linphone/core/LinphoneFriendList.java index daeca4801..29621eb0a 100644 --- a/java/common/org/linphone/core/LinphoneFriendList.java +++ b/java/common/org/linphone/core/LinphoneFriendList.java @@ -23,5 +23,6 @@ public interface LinphoneFriendList { public void setRLSUri(String uri); public void addFriend(LinphoneFriend friend); public void updateSubscriptions(LinphoneProxyConfig proxyConfig,boolean onlyWhenRegistered); + public LinphoneFriend findFriendByUri(String uri); long getNativePtr(); } diff --git a/java/impl/org/linphone/core/LinphoneCoreImpl.java b/java/impl/org/linphone/core/LinphoneCoreImpl.java index 46f6d6352..eb23d6002 100644 --- a/java/impl/org/linphone/core/LinphoneCoreImpl.java +++ b/java/impl/org/linphone/core/LinphoneCoreImpl.java @@ -25,6 +25,8 @@ import java.io.IOException; import org.linphone.core.LinphoneCall.State; import org.linphone.core.LinphoneCoreListener; +import org.linphone.core.LinphoneProxyConfigImpl; + import org.linphone.mediastream.Log; import org.linphone.mediastream.Version; import org.linphone.mediastream.video.AndroidVideoWindowImpl; diff --git a/java/impl/org/linphone/core/LinphoneFriendListImpl.java b/java/impl/org/linphone/core/LinphoneFriendListImpl.java index 15832f786..19eb2687c 100644 --- a/java/impl/org/linphone/core/LinphoneFriendListImpl.java +++ b/java/impl/org/linphone/core/LinphoneFriendListImpl.java @@ -30,6 +30,8 @@ class LinphoneFriendListImpl implements LinphoneFriendList, Serializable { private native void addFriend(long nativePtr,long friendPtr); private native void updateSubscriptions(long nativePtr,long proxyConfigPtr,boolean onlyWhenRegistered); private native Object getCore(long ptr); + private native LinphoneFriend findFriendByUri(long nativePtr,String uri); + protected LinphoneFriendListImpl(LinphoneCoreImpl core) { @@ -56,6 +58,14 @@ class LinphoneFriendListImpl implements LinphoneFriendList, Serializable { updateSubscriptions(nativePtr, ((LinphoneProxyConfigImpl)proxyConfig).nativePtr,onlyWhenRegistered); } } + + @Override + public LinphoneFriend findFriendByUri(String uri) { + synchronized(getSyncObject()){ + return findFriendByUri(nativePtr,uri); + } + } + /*reserved for JNI */ protected LinphoneFriendListImpl(long aNativePtr) {