cordova-android/framework/assets/js/contact.js

83 lines
2.4 KiB
JavaScript
Raw Normal View History

com.phonegap.ContactManagerProxy = function() {
this.className = "com.phonegap.ContactManager";
};
com.phonegap.ContactManagerProxy.prototype.getContactsAndSendBack = function() {
return PhoneGap.exec(this.className, "getContactsAndSendBack", []);
};
com.phonegap.ContactManagerProxy.prototype.search = function(name, npa, mail) {
return PhoneGap.exec(this.className, "search", [name, npa, mail]);
};
com.phonegap.ContactManager = new com.phonegap.ContactManagerProxy();
var Contact = function() {
this.name = new ContactName();
this.emails = [];
this.phones = [];
};
var ContactName = function() {
this.formatted = "";
this.familyName = "";
this.givenName = "";
this.additionalNames = [];
this.prefixes = [];
this.suffixes = [];
};
2009-12-02 03:48:10 +08:00
var ContactEmail = function() {
this.types = [];
this.address = "";
};
var ContactPhoneNumber = function() {
this.types = [];
this.number = "";
};
var Contacts = function() {
this.records = [];
};
2009-12-02 03:48:10 +08:00
Contacts.prototype.find = function(obj, win, fail) {
if(obj.name != null) {
// Build up the search term that we'll use in SQL, based on the structure/contents of the contact object passed into find.
var searchTerm = '';
if (obj.name.givenName && obj.name.givenName.length > 0) {
searchTerm = obj.name.givenName.split(' ').join('%');
}
if (obj.name.familyName && obj.name.familyName.length > 0) {
searchTerm += obj.name.familyName.split(' ').join('%');
}
if (!obj.name.familyName && !obj.name.givenName && obj.name.formatted) {
searchTerm = obj.name.formatted;
}
com.phonegap.ContactManager.search(searchTerm, "", "");
}
this.win = win;
this.fail = fail;
};
Contacts.prototype.droidFoundContact = function(name, npa, email) {
var contact = new Contact();
contact.name = new ContactName();
contact.name.formatted = name;
contact.name.givenName = name;
var mail = new ContactEmail();
mail.types.push("home");
mail.address = email;
contact.emails.push(mail);
phone = new ContactPhoneNumber();
phone.types.push("home");
phone.number = npa;
contact.phones.push(phone);
this.records.push(contact);
};
Contacts.prototype.droidDone = function() {
this.win(this.records);
};
PhoneGap.addConstructor(function() {
if(typeof navigator.contacts == "undefined") navigator.contacts = new Contacts();
});