diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc index 1f770163a..b8e5e71f4 100644 --- a/coreapi/linphonecore_jni.cc +++ b/coreapi/linphonecore_jni.cc @@ -3007,8 +3007,13 @@ extern "C" void Java_org_linphone_core_LinphoneFriendListImpl_updateSubscription linphone_friend_list_update_subscriptions((LinphoneFriendList*)friendListptr,(LinphoneProxyConfig*)proxyConfigPtr,jonlyWhenRegistered); } - - +extern "C" jlong Java_org_linphone_core_LinphoneFriendListImpl_findFriendByUri(JNIEnv* env + ,jobject thiz + ,jlong friendListptr + ,jstring juri) { + const char* uri = env->GetStringUTFChars(juri, NULL); + return (jlong)linphone_friend_list_find_friend_by_uri((LinphoneFriendList*)friendListptr,uri); +} extern "C" jlong Java_org_linphone_core_LinphoneFriendImpl_getAddress(JNIEnv* env ,jobject thiz 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 582bf6bd4..19ed24b32 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) {