Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
BC
public
liblinphone
Commits
2840f5fc
Commit
2840f5fc
authored
Dec 14, 2015
by
Christophe Deschamps
Browse files
JNI Wrapper for presence list
parent
f151d70d
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
84 additions
and
0 deletions
+84
-0
coreapi/linphonecore_jni.cc
coreapi/linphonecore_jni.cc
+64
-0
java/common/org/linphone/core/LinphoneCore.java
java/common/org/linphone/core/LinphoneCore.java
+10
-0
java/impl/org/linphone/core/LinphoneCoreImpl.java
java/impl/org/linphone/core/LinphoneCoreImpl.java
+10
-0
No files found.
coreapi/linphonecore_jni.cc
View file @
2840f5fc
...
...
@@ -1845,6 +1845,15 @@ extern "C" void Java_org_linphone_core_LinphoneCoreImpl_addFriend(JNIEnv* env
)
{
linphone_core_add_friend
((
LinphoneCore
*
)
lc
,(
LinphoneFriend
*
)
aFriend
);
}
extern
"C"
void
Java_org_linphone_core_LinphoneCoreImpl_setFriendList
(
JNIEnv
*
env
,
jobject
thiz
,
jlong
lc
,
jlong
friendList
)
{
linphone_core_set_friend_list
((
LinphoneCore
*
)
lc
,(
LinphoneFriendList
*
)
friendList
);
}
extern
"C"
jobjectArray
Java_org_linphone_core_LinphoneCoreImpl_getFriendList
(
JNIEnv
*
env
,
jobject
thiz
,
jlong
lc
)
{
...
...
@@ -2960,12 +2969,47 @@ extern "C" jlong Java_org_linphone_core_LinphoneFriendImpl_newLinphoneFriend(JNI
}
return
(
jlong
)
lResult
;
}
extern
"C"
jlong
Java_org_linphone_core_LinphoneFriendListImpl_newLinphoneFriendList
(
JNIEnv
*
env
,
jobject
thiz
,
jlong
lc
)
{
LinphoneFriendList
*
fl
=
linphone_core_create_friend_list
((
LinphoneCore
*
)
lc
);
linphone_friend_list_set_user_data
(
fl
,
env
->
NewWeakGlobalRef
(
thiz
));
return
(
jlong
)
fl
;
}
extern
"C"
void
Java_org_linphone_core_LinphoneFriendImpl_setAddress
(
JNIEnv
*
env
,
jobject
thiz
,
jlong
ptr
,
jlong
linphoneAddress
)
{
linphone_friend_set_address
((
LinphoneFriend
*
)
ptr
,(
LinphoneAddress
*
)
linphoneAddress
);
}
extern
"C"
void
Java_org_linphone_core_LinphoneFriendListImpl_setRLSUri
(
JNIEnv
*
env
,
jobject
thiz
,
jlong
ptr
,
jstring
jrlsUri
)
{
const
char
*
uri
=
env
->
GetStringUTFChars
(
jrlsUri
,
NULL
);
linphone_friend_list_set_rls_uri
((
LinphoneFriendList
*
)
ptr
,
uri
);
}
extern
"C"
void
Java_org_linphone_core_LinphoneFriendListImpl_addFriend
(
JNIEnv
*
env
,
jobject
thiz
,
jlong
friendListptr
,
jlong
friendPtr
)
{
linphone_friend_list_add_friend
((
LinphoneFriendList
*
)
friendListptr
,(
LinphoneFriend
*
)
friendPtr
);
}
extern
"C"
void
Java_org_linphone_core_LinphoneFriendListImpl_updateSubscriptions
(
JNIEnv
*
env
,
jobject
thiz
,
jlong
friendListptr
,
jlong
proxyConfigPtr
,
jboolean
jonlyWhenRegistered
)
{
linphone_friend_list_update_subscriptions
((
LinphoneFriendList
*
)
friendListptr
,(
LinphoneProxyConfig
*
)
proxyConfigPtr
,
jonlyWhenRegistered
);
}
extern
"C"
jlong
Java_org_linphone_core_LinphoneFriendImpl_getAddress
(
JNIEnv
*
env
,
jobject
thiz
,
jlong
ptr
)
{
...
...
@@ -3008,6 +3052,18 @@ extern "C" jobject Java_org_linphone_core_LinphoneFriendImpl_getCore(JNIEnv* en
}
return
NULL
;
}
extern
"C"
jobject
Java_org_linphone_core_LinphoneFriendListImpl_getCore
(
JNIEnv
*
env
,
jobject
thiz
,
jlong
ptr
)
{
LinphoneCore
*
lc
=
linphone_friend_get_core
((
LinphoneFriend
*
)
ptr
);
if
(
lc
!=
NULL
){
jobject
core
=
(
jobject
)
linphone_core_get_user_data
(
lc
);
return
core
;
}
return
NULL
;
}
extern
"C"
void
Java_org_linphone_core_LinphoneFriendImpl_setRefKey
(
JNIEnv
*
env
,
jobject
thiz
,
jlong
ptr
...
...
@@ -3032,6 +3088,14 @@ extern "C" void Java_org_linphone_core_LinphoneFriendImpl_finalize(JNIEnv* env
linphone_friend_unref
(
lfriend
);
}
extern
"C"
void
Java_org_linphone_core_LinphoneFriendListImpl_finalize
(
JNIEnv
*
env
,
jobject
thiz
,
jlong
ptr
)
{
LinphoneFriendList
*
lfriendList
=
(
LinphoneFriendList
*
)
ptr
;
linphone_friend_list_set_user_data
(
lfriendList
,
NULL
);
linphone_friend_list_unref
(
lfriendList
);
}
/*
* Class: org_linphone_core_LinphoneFriendImpl
* Method: getPresenceModel
...
...
java/common/org/linphone/core/LinphoneCore.java
View file @
2840f5fc
...
...
@@ -998,6 +998,16 @@ public interface LinphoneCore {
* @throws LinphoneCoreException
*/
void
addFriend
(
LinphoneFriend
lf
)
throws
LinphoneCoreException
;
/**
* Sets the friend list for the linphone core.
*/
void
setFriendList
(
LinphoneFriendList
friendList
)
throws
LinphoneCoreException
;
/**
* Creates a friend list.
*/
LinphoneFriendList
createLinphoneFriendList
()
throws
LinphoneCoreException
;
/**
* Get list of LinphoneFriend
...
...
java/impl/org/linphone/core/LinphoneCoreImpl.java
View file @
2840f5fc
...
...
@@ -94,6 +94,7 @@ class LinphoneCoreImpl implements LinphoneCore {
private
native
void
setPreviewWindowId
(
long
nativePtr
,
Object
wid
);
private
native
void
setDeviceRotation
(
long
nativePtr
,
int
rotation
);
private
native
void
addFriend
(
long
nativePtr
,
long
friend
);
private
native
void
setFriendList
(
long
nativePtr
,
long
friendList
);
private
native
LinphoneFriend
[]
getFriendList
(
long
nativePtr
);
private
native
void
setPresenceInfo
(
long
nativePtr
,
int
minutes_away
,
String
alternative_contact
,
int
status
);
private
native
int
getPresenceInfo
(
long
nativePtr
);
...
...
@@ -448,6 +449,15 @@ class LinphoneCoreImpl implements LinphoneCore {
public
synchronized
void
addFriend
(
LinphoneFriend
lf
)
throws
LinphoneCoreException
{
addFriend
(
nativePtr
,((
LinphoneFriendImpl
)
lf
).
nativePtr
);
}
public
synchronized
LinphoneFriendList
createLinphoneFriendList
()
{
return
new
LinphoneFriendListImpl
(
this
);
}
public
synchronized
void
setFriendList
(
LinphoneFriendList
friendList
)
throws
LinphoneCoreException
{
setFriendList
(
nativePtr
,((
LinphoneFriendListImpl
)
friendList
).
nativePtr
);
}
public
synchronized
LinphoneFriend
[]
getFriendList
()
{
return
getFriendList
(
nativePtr
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment