Displays images for the contacts fetched from the Address Book of Mac OS X.

cusax-fix
Lyubomir Marinov 15 years ago
parent 09d688c00a
commit 08f364ab3a

@ -1,157 +1,165 @@
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery */
#ifndef _Included_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
#define _Included_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
* Method: ABRecord_valuesForProperties
* Signature: (J[J)[Ljava/lang/Object;
*/
JNIEXPORT jobjectArray JNICALL Java_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery_ABRecord_1valuesForProperties
(JNIEnv *, jclass, jlong, jlongArray);
/*
* Class: net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
* Method: foreachPerson
* Signature: (Ljava/lang/String;Lnet/java/sip/communicator/plugin/addrbook/PtrCallback;)V
*/
JNIEXPORT void JNICALL Java_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery_foreachPerson
(JNIEnv *, jclass, jstring, jobject);
/*
* Class: net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
* Method: kABAIMInstantProperty
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery_kABAIMInstantProperty
(JNIEnv *, jclass);
/*
* Class: net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
* Method: kABEmailProperty
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery_kABEmailProperty
(JNIEnv *, jclass);
/*
* Class: net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
* Method: kABFirstNameProperty
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery_kABFirstNameProperty
(JNIEnv *, jclass);
/*
* Class: net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
* Method: kABFirstNamePhoneticProperty
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery_kABFirstNamePhoneticProperty
(JNIEnv *, jclass);
/*
* Class: net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
* Method: kABICQInstantProperty
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery_kABICQInstantProperty
(JNIEnv *, jclass);
/*
* Class: net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
* Method: kABJabberInstantProperty
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery_kABJabberInstantProperty
(JNIEnv *, jclass);
/*
* Class: net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
* Method: kABLastNameProperty
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery_kABLastNameProperty
(JNIEnv *, jclass);
/*
* Class: net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
* Method: kABLastNamePhoneticProperty
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery_kABLastNamePhoneticProperty
(JNIEnv *, jclass);
/*
* Class: net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
* Method: kABMiddleNameProperty
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery_kABMiddleNameProperty
(JNIEnv *, jclass);
/*
* Class: net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
* Method: kABMiddleNamePhoneticProperty
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery_kABMiddleNamePhoneticProperty
(JNIEnv *, jclass);
/*
* Class: net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
* Method: kABMSNInstantProperty
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery_kABMSNInstantProperty
(JNIEnv *, jclass);
/*
* Class: net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
* Method: kABNicknameProperty
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery_kABNicknameProperty
(JNIEnv *, jclass);
/*
* Class: net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
* Method: kABOrganizationProperty
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery_kABOrganizationProperty
(JNIEnv *, jclass);
/*
* Class: net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
* Method: kABPersonFlags
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery_kABPersonFlags
(JNIEnv *, jclass);
/*
* Class: net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
* Method: kABPhoneProperty
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery_kABPhoneProperty
(JNIEnv *, jclass);
/*
* Class: net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
* Method: kABYahooInstantProperty
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery_kABYahooInstantProperty
(JNIEnv *, jclass);
#ifdef __cplusplus
}
#endif
#endif
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery */
#ifndef _Included_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
#define _Included_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
* Method: ABPerson_imageData
* Signature: (J)[B
*/
JNIEXPORT jbyteArray JNICALL Java_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery_ABPerson_1imageData
(JNIEnv *, jclass, jlong);
/*
* Class: net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
* Method: ABRecord_valuesForProperties
* Signature: (J[J)[Ljava/lang/Object;
*/
JNIEXPORT jobjectArray JNICALL Java_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery_ABRecord_1valuesForProperties
(JNIEnv *, jclass, jlong, jlongArray);
/*
* Class: net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
* Method: foreachPerson
* Signature: (Ljava/lang/String;Lnet/java/sip/communicator/plugin/addrbook/PtrCallback;)V
*/
JNIEXPORT void JNICALL Java_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery_foreachPerson
(JNIEnv *, jclass, jstring, jobject);
/*
* Class: net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
* Method: kABAIMInstantProperty
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery_kABAIMInstantProperty
(JNIEnv *, jclass);
/*
* Class: net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
* Method: kABEmailProperty
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery_kABEmailProperty
(JNIEnv *, jclass);
/*
* Class: net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
* Method: kABFirstNameProperty
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery_kABFirstNameProperty
(JNIEnv *, jclass);
/*
* Class: net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
* Method: kABFirstNamePhoneticProperty
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery_kABFirstNamePhoneticProperty
(JNIEnv *, jclass);
/*
* Class: net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
* Method: kABICQInstantProperty
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery_kABICQInstantProperty
(JNIEnv *, jclass);
/*
* Class: net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
* Method: kABJabberInstantProperty
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery_kABJabberInstantProperty
(JNIEnv *, jclass);
/*
* Class: net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
* Method: kABLastNameProperty
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery_kABLastNameProperty
(JNIEnv *, jclass);
/*
* Class: net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
* Method: kABLastNamePhoneticProperty
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery_kABLastNamePhoneticProperty
(JNIEnv *, jclass);
/*
* Class: net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
* Method: kABMiddleNameProperty
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery_kABMiddleNameProperty
(JNIEnv *, jclass);
/*
* Class: net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
* Method: kABMiddleNamePhoneticProperty
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery_kABMiddleNamePhoneticProperty
(JNIEnv *, jclass);
/*
* Class: net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
* Method: kABMSNInstantProperty
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery_kABMSNInstantProperty
(JNIEnv *, jclass);
/*
* Class: net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
* Method: kABNicknameProperty
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery_kABNicknameProperty
(JNIEnv *, jclass);
/*
* Class: net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
* Method: kABOrganizationProperty
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery_kABOrganizationProperty
(JNIEnv *, jclass);
/*
* Class: net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
* Method: kABPersonFlags
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery_kABPersonFlags
(JNIEnv *, jclass);
/*
* Class: net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
* Method: kABPhoneProperty
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery_kABPhoneProperty
(JNIEnv *, jclass);
/*
* Class: net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery
* Method: kABYahooInstantProperty
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery_kABYahooInstantProperty
(JNIEnv *, jclass);
#ifdef __cplusplus
}
#endif
#endif

@ -12,10 +12,41 @@
#import <AddressBook/AddressBook.h>
#import <Foundation/NSArray.h>
#import <Foundation/NSAutoreleasePool.h>
#import <Foundation/NSData.h>
static void MacOSXAddrBookContactQuery_idToJObject
(JNIEnv *jniEnv, id o, jobjectArray jos, jint i, jclass objectClass);
JNIEXPORT jbyteArray JNICALL
Java_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery_ABPerson_1imageData
(JNIEnv *jniEnv, jclass clazz, jlong person)
{
NSData *imageData = [((ABPerson *) person) imageData];
jbyteArray jImageData;
if (imageData)
{
NSUInteger length = [imageData length];
if (length)
{
jImageData = (*jniEnv)->NewByteArray(jniEnv, length);
if (jImageData)
{
(*jniEnv)->SetByteArrayRegion(
jniEnv,
jImageData, 0, length,
[imageData bytes]);
}
}
else
jImageData = NULL;
}
else
jImageData = NULL;
return jImageData;
}
JNIEXPORT jobjectArray JNICALL
Java_net_java_sip_communicator_plugin_addrbook_macosx_MacOSXAddrBookContactQuery_ABRecord_1valuesForProperties
(JNIEnv *jniEnv, jclass clazz, jlong record, jlongArray properties)

@ -193,6 +193,8 @@ public MacOSXAddrBookContactQuery(
super(contactSource, query);
}
private static native byte[] ABPerson_imageData(long person);
private static native Object[] ABRecord_valuesForProperties(
long record,
long[] properties);
@ -532,12 +534,24 @@ private boolean onPerson(long person)
if (!contactDetails.isEmpty())
{
SourceContact sourceContact
AddrBookSourceContact sourceContact
= new AddrBookSourceContact(
getContactSource(),
displayName,
contactDetails);
try
{
byte[] image = ABPerson_imageData(person);
if (image != null)
sourceContact.setImage(image);
}
catch (OutOfMemoryError oome)
{
// Ignore it, the image is not vital.
}
addQueryResult(sourceContact);
}
}

Loading…
Cancel
Save