mirror of
https://github.com/apache/cordova-android.git
synced 2025-02-20 23:56:20 +08:00
Updating to latest W3C spec
This commit is contained in:
parent
cda154209d
commit
b353f3608d
@ -17,24 +17,19 @@
|
||||
* @param {ContactAddress[]} addresses array of addresses
|
||||
* @param {ContactField[]} ims instant messaging user ids
|
||||
* @param {ContactOrganization[]} organizations
|
||||
* @param {DOMString} published date contact was first created
|
||||
* @param {DOMString} updated date contact was last updated
|
||||
* @param {DOMString} revision date contact was last updated
|
||||
* @param {DOMString} birthday contact's birthday
|
||||
* @param (DOMString} anniversary contact's anniversary
|
||||
* @param {DOMString} gender contact's gender
|
||||
* @param {DOMString} note user notes about contact
|
||||
* @param {DOMString} preferredUsername
|
||||
* @param {ContactField[]} photos
|
||||
* @param {ContactField[]} tags
|
||||
* @param {ContactField[]} relationships
|
||||
* @param {ContactField[]} categories
|
||||
* @param {ContactField[]} urls contact's web sites
|
||||
* @param {ContactAccounts[]} accounts contact's online accounts
|
||||
* @param {DOMString} utcOffset UTC time zone offset
|
||||
* @param {DOMString} connected
|
||||
*/
|
||||
var Contact = function(id, displayName, name, nickname, phoneNumbers, emails, addresses,
|
||||
ims, organizations, published, updated, birthday, anniversary, gender, note,
|
||||
preferredUsername, photos, tags, relationships, urls, accounts, utcOffset, connected) {
|
||||
ims, organizations, revision, birthday, gender, note, photos, categories, urls, timezone) {
|
||||
this.id = id || null;
|
||||
this.rawId = null;
|
||||
this.displayName = displayName || null;
|
||||
@ -45,20 +40,14 @@ var Contact = function(id, displayName, name, nickname, phoneNumbers, emails, ad
|
||||
this.addresses = addresses || null; // ContactAddress[]
|
||||
this.ims = ims || null; // ContactField[]
|
||||
this.organizations = organizations || null; // ContactOrganization[]
|
||||
this.published = published || null;
|
||||
this.updated = updated || null;
|
||||
this.revision = revision || null;
|
||||
this.birthday = birthday || null;
|
||||
this.anniversary = anniversary || null;
|
||||
this.gender = gender || null;
|
||||
this.note = note || null;
|
||||
this.preferredUsername = preferredUsername || null;
|
||||
this.photos = photos || null; // ContactField[]
|
||||
this.tags = tags || null; // ContactField[]
|
||||
this.relationships = relationships || null; // ContactField[]
|
||||
this.categories = categories || null; // ContactField[]
|
||||
this.urls = urls || null; // ContactField[]
|
||||
this.accounts = accounts || null; // ContactAccount[]
|
||||
this.utcOffset = utcOffset || null;
|
||||
this.connected = connected || null;
|
||||
this.timezone = timezone || null;
|
||||
};
|
||||
|
||||
/**
|
||||
@ -164,11 +153,11 @@ var ContactName = function(formatted, familyName, givenName, middle, prefix, suf
|
||||
* @param value
|
||||
* @param primary
|
||||
*/
|
||||
var ContactField = function(type, value, primary) {
|
||||
var ContactField = function(type, value, pref) {
|
||||
this.id = null;
|
||||
this.type = type || null;
|
||||
this.value = value || null;
|
||||
this.primary = primary || null;
|
||||
this.pref = pref || null;
|
||||
};
|
||||
|
||||
/**
|
||||
@ -202,31 +191,13 @@ var ContactAddress = function(formatted, streetAddress, locality, region, postal
|
||||
* @param location
|
||||
* @param desc
|
||||
*/
|
||||
var ContactOrganization = function(name, dept, title, startDate, endDate, location, desc) {
|
||||
var ContactOrganization = function(name, dept, title) {
|
||||
this.id = null;
|
||||
this.name = name || null;
|
||||
this.department = dept || null;
|
||||
this.title = title || null;
|
||||
this.startDate = startDate || null;
|
||||
this.endDate = endDate || null;
|
||||
this.location = location || null;
|
||||
this.description = desc || null;
|
||||
};
|
||||
|
||||
/**
|
||||
* Contact account.
|
||||
* @param {DOMString} id unique identifier, should only be set by native code
|
||||
* @param domain
|
||||
* @param username
|
||||
* @param userid
|
||||
*/
|
||||
var ContactAccount = function(domain, username, userid) {
|
||||
this.id = null;
|
||||
this.domain = domain || null;
|
||||
this.username = username || null;
|
||||
this.userid = userid || null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a group of Contacts.
|
||||
*/
|
||||
@ -284,13 +255,11 @@ Contacts.prototype.cast = function(pluginResult) {
|
||||
* ContactFindOptions.
|
||||
* @param filter used to match contacts against
|
||||
* @param multiple boolean used to determine if more than one contact should be returned
|
||||
* @param limit maximum number of results to return from the contacts search
|
||||
* @param updatedSince return only contact records that have been updated on or after the given time
|
||||
*/
|
||||
var ContactFindOptions = function(filter, multiple, limit, updatedSince) {
|
||||
var ContactFindOptions = function(filter, multiple, updatedSince) {
|
||||
this.filter = filter || '';
|
||||
this.multiple = multiple || false;
|
||||
this.limit = limit || 1;
|
||||
this.multiple = multiple || true;
|
||||
this.updatedSince = updatedSince || '';
|
||||
};
|
||||
|
||||
|
@ -104,8 +104,8 @@ public class ContactAccessorSdk3_4 extends ContactAccessor {
|
||||
*/
|
||||
public JSONArray search(JSONArray fields, JSONObject options) {
|
||||
String searchTerm = "";
|
||||
int limit = 1;
|
||||
boolean multiple = false;
|
||||
int limit = Integer.MAX_VALUE;
|
||||
boolean multiple = true;
|
||||
|
||||
if (options != null) {
|
||||
searchTerm = options.optString("filter");
|
||||
@ -115,10 +115,13 @@ public class ContactAccessorSdk3_4 extends ContactAccessor {
|
||||
else {
|
||||
searchTerm = "%" + searchTerm + "%";
|
||||
}
|
||||
multiple = options.optBoolean("multiple");
|
||||
if (multiple) {
|
||||
limit = options.optInt("limit");
|
||||
limit = limit > 0 ? limit : 1;
|
||||
try {
|
||||
multiple = options.getBoolean("multiple");
|
||||
if (!multiple) {
|
||||
limit = 1;
|
||||
}
|
||||
} catch (JSONException e) {
|
||||
// Multiple was not specified so we assume the default is true.
|
||||
}
|
||||
}
|
||||
else {
|
||||
@ -312,7 +315,7 @@ public class ContactAccessorSdk3_4 extends ContactAccessor {
|
||||
try{
|
||||
im.put("id", cursor.getString(
|
||||
cursor.getColumnIndex(ContactMethods._ID)));
|
||||
im.put("primary", false);
|
||||
im.put("perf", false);
|
||||
im.put("value", cursor.getString(
|
||||
cursor.getColumnIndex(ContactMethodsColumns.DATA)));
|
||||
im.put("type", getContactType(cursor.getInt(
|
||||
@ -346,10 +349,6 @@ public class ContactAccessorSdk3_4 extends ContactAccessor {
|
||||
organization.put("name", cursor.getString(cursor.getColumnIndex(Organizations.COMPANY)));
|
||||
organization.put("title", cursor.getString(cursor.getColumnIndex(Organizations.TITLE)));
|
||||
// organization.put("department", cursor.getString(cursor.getColumnIndex(Organizations)));
|
||||
// organization.put("description", cursor.getString(cursor.getColumnIndex(Organizations)));
|
||||
// organization.put("endDate", cursor.getString(cursor.getColumnIndex(Organizations)));
|
||||
// organization.put("location", cursor.getString(cursor.getColumnIndex(Organizations)));
|
||||
// organization.put("startDate", cursor.getString(cursor.getColumnIndex(Organizations)));
|
||||
organizations.put(organization);
|
||||
} catch (JSONException e) {
|
||||
Log.e(LOG_TAG, e.getMessage(), e);
|
||||
@ -404,7 +403,7 @@ public class ContactAccessorSdk3_4 extends ContactAccessor {
|
||||
phone = new JSONObject();
|
||||
try{
|
||||
phone.put("id", cursor.getString(cursor.getColumnIndex(Phones._ID)));
|
||||
phone.put("primary", false);
|
||||
phone.put("perf", false);
|
||||
phone.put("value", cursor.getString(cursor.getColumnIndex(Phones.NUMBER)));
|
||||
phone.put("type", getPhoneType(cursor.getInt(cursor.getColumnIndex(Phones.TYPE))));
|
||||
phones.put(phone);
|
||||
@ -433,7 +432,7 @@ public class ContactAccessorSdk3_4 extends ContactAccessor {
|
||||
email = new JSONObject();
|
||||
try{
|
||||
email.put("id", cursor.getString(cursor.getColumnIndex(ContactMethods._ID)));
|
||||
email.put("primary", false);
|
||||
email.put("perf", false);
|
||||
email.put("value", cursor.getString(cursor.getColumnIndex(ContactMethods.DATA)));
|
||||
// TODO Find out why adding an email type throws and exception
|
||||
//email.put("type", cursor.getString(cursor.getColumnIndex(ContactMethods.TYPE)));
|
||||
|
@ -115,26 +115,14 @@ public class ContactAccessorSdk5 extends ContactAccessor {
|
||||
dbMap.put("organizations.name", ContactsContract.CommonDataKinds.Organization.COMPANY);
|
||||
dbMap.put("organizations.department", ContactsContract.CommonDataKinds.Organization.DEPARTMENT);
|
||||
dbMap.put("organizations.title", ContactsContract.CommonDataKinds.Organization.TITLE);
|
||||
dbMap.put("organizations.location", ContactsContract.CommonDataKinds.Organization.OFFICE_LOCATION);
|
||||
dbMap.put("organizations.description", ContactsContract.CommonDataKinds.Organization.JOB_DESCRIPTION);
|
||||
//dbMap.put("published", null);
|
||||
//dbMap.put("updated", null);
|
||||
//dbMap.put("revision", null);
|
||||
dbMap.put("birthday", ContactsContract.CommonDataKinds.Event.CONTENT_ITEM_TYPE);
|
||||
dbMap.put("anniversary", ContactsContract.CommonDataKinds.Event.CONTENT_ITEM_TYPE);
|
||||
//dbMap.put("gender", null);
|
||||
dbMap.put("note", ContactsContract.CommonDataKinds.Note.NOTE);
|
||||
//dbMap.put("preferredUsername", null);
|
||||
dbMap.put("photos.value", ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE);
|
||||
//dbMap.put("tags.value", null);
|
||||
dbMap.put("relationships", ContactsContract.CommonDataKinds.Relation.NAME);
|
||||
dbMap.put("relationships.value", ContactsContract.CommonDataKinds.Relation.NAME);
|
||||
//dbMap.put("categories.value", null);
|
||||
dbMap.put("urls", ContactsContract.CommonDataKinds.Website.URL);
|
||||
dbMap.put("urls.value", ContactsContract.CommonDataKinds.Website.URL);
|
||||
//dbMap.put("accounts.domain", null);
|
||||
//dbMap.put("accounts.username", null);
|
||||
//dbMap.put("accounts.userid", null);
|
||||
//dbMap.put("utcOffset", null);
|
||||
//dbMap.put("connected", null);
|
||||
//dbMap.put("timezone", null);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -159,8 +147,8 @@ public class ContactAccessorSdk5 extends ContactAccessor {
|
||||
|
||||
// Get the find options
|
||||
String searchTerm = "";
|
||||
int limit = 1;
|
||||
boolean multiple = false;
|
||||
int limit = Integer.MAX_VALUE;
|
||||
boolean multiple = true;
|
||||
|
||||
if (options != null) {
|
||||
searchTerm = options.optString("filter");
|
||||
@ -170,10 +158,13 @@ public class ContactAccessorSdk5 extends ContactAccessor {
|
||||
else {
|
||||
searchTerm = "%" + searchTerm + "%";
|
||||
}
|
||||
multiple = options.optBoolean("multiple");
|
||||
if (multiple) {
|
||||
limit = options.optInt("limit");
|
||||
limit = limit > 0 ? limit : 1;
|
||||
try {
|
||||
multiple = options.getBoolean("multiple");
|
||||
if (!multiple) {
|
||||
limit = 1;
|
||||
}
|
||||
} catch (JSONException e) {
|
||||
// Multiple was not specified so we assume the default is true.
|
||||
}
|
||||
}
|
||||
else {
|
||||
@ -232,7 +223,6 @@ public class ContactAccessorSdk5 extends ContactAccessor {
|
||||
JSONArray emails = new JSONArray();
|
||||
JSONArray ims = new JSONArray();
|
||||
JSONArray websites = new JSONArray();
|
||||
JSONArray relationships = new JSONArray();
|
||||
JSONArray photos = new JSONArray();
|
||||
|
||||
if (c.getCount() > 0) {
|
||||
@ -252,7 +242,7 @@ public class ContactAccessorSdk5 extends ContactAccessor {
|
||||
// Populate the Contact object with it's arrays
|
||||
// and push the contact into the contacts array
|
||||
contacts.put(populateContact(contact, organizations, addresses, phones,
|
||||
emails, ims, websites, relationships, photos));
|
||||
emails, ims, websites, photos));
|
||||
|
||||
// Clean up the objects
|
||||
contact = new JSONObject();
|
||||
@ -262,7 +252,6 @@ public class ContactAccessorSdk5 extends ContactAccessor {
|
||||
emails = new JSONArray();
|
||||
ims = new JSONArray();
|
||||
websites = new JSONArray();
|
||||
relationships = new JSONArray();
|
||||
photos = new JSONArray();
|
||||
|
||||
// Set newContact to true as we are starting to populate a new contact
|
||||
@ -317,16 +306,8 @@ public class ContactAccessorSdk5 extends ContactAccessor {
|
||||
&& isRequired("urls",populate)) {
|
||||
websites.put(websiteQuery(c));
|
||||
}
|
||||
else if (mimetype.equals(ContactsContract.CommonDataKinds.Relation.CONTENT_ITEM_TYPE)
|
||||
&& isRequired("relationships",populate)) {
|
||||
relationships.put(relationshipQuery(c));
|
||||
}
|
||||
else if (mimetype.equals(ContactsContract.CommonDataKinds.Event.CONTENT_ITEM_TYPE)) {
|
||||
if (ContactsContract.CommonDataKinds.Event.TYPE_ANNIVERSARY == c.getInt(c.getColumnIndex(ContactsContract.CommonDataKinds.Event.TYPE))
|
||||
&& isRequired("anniversary",populate)) {
|
||||
contact.put("anniversary", c.getString(c.getColumnIndex(ContactsContract.CommonDataKinds.Event.START_DATE)));
|
||||
}
|
||||
else if (ContactsContract.CommonDataKinds.Event.TYPE_BIRTHDAY == c.getInt(c.getColumnIndex(ContactsContract.CommonDataKinds.Event.TYPE))
|
||||
if (ContactsContract.CommonDataKinds.Event.TYPE_BIRTHDAY == c.getInt(c.getColumnIndex(ContactsContract.CommonDataKinds.Event.TYPE))
|
||||
&& isRequired("birthday",populate)) {
|
||||
contact.put("birthday", c.getString(c.getColumnIndex(ContactsContract.CommonDataKinds.Event.START_DATE)));
|
||||
}
|
||||
@ -347,7 +328,7 @@ public class ContactAccessorSdk5 extends ContactAccessor {
|
||||
// Push the last contact into the contacts array
|
||||
if (contacts.length() < limit) {
|
||||
contacts.put(populateContact(contact, organizations, addresses, phones,
|
||||
emails, ims, websites, relationships, photos));
|
||||
emails, ims, websites, photos));
|
||||
}
|
||||
}
|
||||
c.close();
|
||||
@ -402,13 +383,12 @@ public class ContactAccessorSdk5 extends ContactAccessor {
|
||||
* @param emails array of emails
|
||||
* @param ims array of instant messenger addresses
|
||||
* @param websites array of websites
|
||||
* @param relationships array of relationships
|
||||
* @param photos
|
||||
* @return
|
||||
*/
|
||||
private JSONObject populateContact(JSONObject contact, JSONArray organizations,
|
||||
JSONArray addresses, JSONArray phones, JSONArray emails,
|
||||
JSONArray ims, JSONArray websites, JSONArray relationships, JSONArray photos) {
|
||||
JSONArray ims, JSONArray websites, JSONArray photos) {
|
||||
try {
|
||||
contact.put("organizations", organizations);
|
||||
contact.put("addresses", addresses);
|
||||
@ -416,7 +396,6 @@ public class ContactAccessorSdk5 extends ContactAccessor {
|
||||
contact.put("emails", emails);
|
||||
contact.put("ims", ims);
|
||||
contact.put("websites", websites);
|
||||
contact.put("relationships", relationships);
|
||||
contact.put("photos", photos);
|
||||
}
|
||||
catch (JSONException e) {
|
||||
@ -502,12 +481,6 @@ public class ContactAccessorSdk5 extends ContactAccessor {
|
||||
// else if (key.startsWith("birthday")) {
|
||||
// where.add("(" + dbMap.get(key) + " LIKE ? AND "
|
||||
// + ContactsContract.Data.MIMETYPE + " = ? )");
|
||||
// }
|
||||
// else if (key.startsWith("anniversary")) {
|
||||
// where.add("(" + dbMap.get(key) + " LIKE ? AND "
|
||||
// + ContactsContract.Data.MIMETYPE + " = ? )");
|
||||
// whereArgs.add(searchTerm);
|
||||
// whereArgs.add(ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE);
|
||||
// }
|
||||
else if (key.startsWith("note")) {
|
||||
where.add("(" + dbMap.get(key) + " LIKE ? AND "
|
||||
@ -515,12 +488,6 @@ public class ContactAccessorSdk5 extends ContactAccessor {
|
||||
whereArgs.add(searchTerm);
|
||||
whereArgs.add(ContactsContract.CommonDataKinds.Note.CONTENT_ITEM_TYPE);
|
||||
}
|
||||
else if (key.startsWith("relationships")) {
|
||||
where.add("(" + dbMap.get(key) + " LIKE ? AND "
|
||||
+ ContactsContract.Data.MIMETYPE + " = ? )");
|
||||
whereArgs.add(searchTerm);
|
||||
whereArgs.add(ContactsContract.CommonDataKinds.Relation.CONTENT_ITEM_TYPE);
|
||||
}
|
||||
else if (key.startsWith("urls")) {
|
||||
where.add("(" + dbMap.get(key) + " LIKE ? AND "
|
||||
+ ContactsContract.Data.MIMETYPE + " = ? )");
|
||||
@ -563,13 +530,7 @@ public class ContactAccessorSdk5 extends ContactAccessor {
|
||||
try {
|
||||
organization.put("id", cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Organization._ID)));
|
||||
organization.put("department", cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Organization.DEPARTMENT)));
|
||||
organization.put("description", cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Organization.JOB_DESCRIPTION)));
|
||||
// TODO No endDate
|
||||
// organization.put("endDate", cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Organization)));
|
||||
organization.put("location", cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Organization.OFFICE_LOCATION)));
|
||||
organization.put("name", cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Organization.COMPANY)));
|
||||
// TODO no startDate
|
||||
// organization.put("startDate", cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Organization)));
|
||||
organization.put("title", cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Organization.TITLE)));
|
||||
} catch (JSONException e) {
|
||||
Log.e(LOG_TAG, e.getMessage(), e);
|
||||
@ -641,7 +602,7 @@ public class ContactAccessorSdk5 extends ContactAccessor {
|
||||
JSONObject phoneNumber = new JSONObject();
|
||||
try {
|
||||
phoneNumber.put("id", cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone._ID)));
|
||||
phoneNumber.put("primary", false); // Android does not store primary attribute
|
||||
phoneNumber.put("pref", false); // Android does not store pref attribute
|
||||
phoneNumber.put("value", cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)));
|
||||
phoneNumber.put("type", getPhoneType(cursor.getInt(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE))));
|
||||
} catch (JSONException e) {
|
||||
@ -662,7 +623,7 @@ public class ContactAccessorSdk5 extends ContactAccessor {
|
||||
JSONObject email = new JSONObject();
|
||||
try {
|
||||
email.put("id", cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Email._ID)));
|
||||
email.put("primary", false); // Android does not store primary attribute
|
||||
email.put("pref", false); // Android does not store pref attribute
|
||||
email.put("value", cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA)));
|
||||
email.put("type", getContactType(cursor.getInt(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE))));
|
||||
} catch (JSONException e) {
|
||||
@ -680,7 +641,7 @@ public class ContactAccessorSdk5 extends ContactAccessor {
|
||||
JSONObject im = new JSONObject();
|
||||
try {
|
||||
im.put("id", cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Im._ID)));
|
||||
im.put("primary", false); // Android does not store primary attribute
|
||||
im.put("pref", false); // Android does not store pref attribute
|
||||
im.put("value", cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Im.DATA)));
|
||||
im.put("type", getContactType(cursor.getInt(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Im.TYPE))));
|
||||
} catch (JSONException e) {
|
||||
@ -698,7 +659,7 @@ public class ContactAccessorSdk5 extends ContactAccessor {
|
||||
JSONObject website = new JSONObject();
|
||||
try {
|
||||
website.put("id", cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Website._ID)));
|
||||
website.put("primary", false); // Android does not store primary attribute
|
||||
website.put("pref", false); // Android does not store pref attribute
|
||||
website.put("value", cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Website.URL)));
|
||||
website.put("type", getContactType(cursor.getInt(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Website.TYPE))));
|
||||
} catch (JSONException e) {
|
||||
@ -707,24 +668,6 @@ public class ContactAccessorSdk5 extends ContactAccessor {
|
||||
return website;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a ContactField JSONObject
|
||||
* @param cursor the current database row
|
||||
* @return a JSONObject representing a ContactField
|
||||
*/
|
||||
private JSONObject relationshipQuery(Cursor cursor) {
|
||||
JSONObject relationship = new JSONObject();
|
||||
try {
|
||||
relationship.put("id", cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Relation._ID)));
|
||||
relationship.put("primary", false); // Android does not store primary attribute
|
||||
relationship.put("value", cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Relation.NAME)));
|
||||
relationship.put("type", getRelationshipType(cursor.getInt(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Relation.TYPE))));
|
||||
} catch (JSONException e) {
|
||||
Log.e(LOG_TAG, e.getMessage(), e);
|
||||
}
|
||||
return relationship;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a ContactField JSONObject
|
||||
* @param contactId
|
||||
@ -734,7 +677,7 @@ public class ContactAccessorSdk5 extends ContactAccessor {
|
||||
JSONObject photo = new JSONObject();
|
||||
try {
|
||||
photo.put("id", cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Photo._ID)));
|
||||
photo.put("primary", false);
|
||||
photo.put("pref", false);
|
||||
Uri person = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, (new Long(contactId)));
|
||||
Uri photoUri = Uri.withAppendedPath(person, ContactsContract.Contacts.Photo.CONTENT_DIRECTORY);
|
||||
photo.put("value", photoUri.toString());
|
||||
@ -1004,8 +947,6 @@ public class ContactAccessorSdk5 extends ContactAccessor {
|
||||
contentValues.put(ContactsContract.Data.RAW_CONTACT_ID, rawId);
|
||||
contentValues.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Organization.CONTENT_ITEM_TYPE);
|
||||
contentValues.put(ContactsContract.CommonDataKinds.Organization.DEPARTMENT, getJsonString(org, "department"));
|
||||
contentValues.put(ContactsContract.CommonDataKinds.Organization.JOB_DESCRIPTION, getJsonString(org, "description"));
|
||||
contentValues.put(ContactsContract.CommonDataKinds.Organization.OFFICE_LOCATION, getJsonString(org, "location"));
|
||||
contentValues.put(ContactsContract.CommonDataKinds.Organization.COMPANY, getJsonString(org, "name"));
|
||||
contentValues.put(ContactsContract.CommonDataKinds.Organization.TITLE, getJsonString(org, "title"));
|
||||
|
||||
@ -1019,8 +960,6 @@ public class ContactAccessorSdk5 extends ContactAccessor {
|
||||
ContactsContract.Data.MIMETYPE + "=?",
|
||||
new String[]{orgId, ContactsContract.CommonDataKinds.Organization.CONTENT_ITEM_TYPE})
|
||||
.withValue(ContactsContract.CommonDataKinds.Organization.DEPARTMENT, getJsonString(org, "department"))
|
||||
.withValue(ContactsContract.CommonDataKinds.Organization.JOB_DESCRIPTION, getJsonString(org, "description"))
|
||||
.withValue(ContactsContract.CommonDataKinds.Organization.OFFICE_LOCATION, getJsonString(org, "location"))
|
||||
.withValue(ContactsContract.CommonDataKinds.Organization.COMPANY, getJsonString(org, "name"))
|
||||
.withValue(ContactsContract.CommonDataKinds.Organization.TITLE, getJsonString(org, "title"))
|
||||
.build());
|
||||
@ -1124,42 +1063,6 @@ public class ContactAccessorSdk5 extends ContactAccessor {
|
||||
Log.d(LOG_TAG, "Could not get websites");
|
||||
}
|
||||
|
||||
// Modify relationships
|
||||
JSONArray relationships = null;
|
||||
try {
|
||||
relationships = contact.getJSONArray("relationships");
|
||||
if (relationships != null) {
|
||||
for (int i=0; i<relationships.length(); i++) {
|
||||
JSONObject relationship = (JSONObject)relationships.get(i);
|
||||
String relationshipId = getJsonString(relationship, "id");;
|
||||
// This is a new relationship so do a DB insert
|
||||
if (relationshipId==null) {
|
||||
ContentValues contentValues = new ContentValues();
|
||||
contentValues.put(ContactsContract.Data.RAW_CONTACT_ID, rawId);
|
||||
contentValues.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Relation.CONTENT_ITEM_TYPE);
|
||||
contentValues.put(ContactsContract.CommonDataKinds.Relation.NAME, getJsonString(relationship, "name"));
|
||||
contentValues.put(ContactsContract.CommonDataKinds.Relation.TYPE, getRelationshipType(getJsonString(relationship, "type")));
|
||||
|
||||
ops.add(ContentProviderOperation.newInsert(
|
||||
ContactsContract.Data.CONTENT_URI).withValues(contentValues).build());
|
||||
}
|
||||
// This is an existing relationship so do a DB update
|
||||
else {
|
||||
ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
|
||||
.withSelection(ContactsContract.CommonDataKinds.Relation._ID + "=? AND " +
|
||||
ContactsContract.Data.MIMETYPE + "=?",
|
||||
new String[]{relationshipId, ContactsContract.CommonDataKinds.Relation.CONTENT_ITEM_TYPE})
|
||||
.withValue(ContactsContract.CommonDataKinds.Relation.NAME, getJsonString(relationship, "value"))
|
||||
.withValue(ContactsContract.CommonDataKinds.Relation.TYPE, getRelationshipType(getJsonString(relationship, "type")))
|
||||
.build());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (JSONException e) {
|
||||
Log.d(LOG_TAG, "Could not get relationships");
|
||||
}
|
||||
|
||||
// Modify birthday
|
||||
String birthday = getJsonString(contact, "birthday");
|
||||
if (birthday != null) {
|
||||
@ -1173,18 +1076,6 @@ public class ContactAccessorSdk5 extends ContactAccessor {
|
||||
.build());
|
||||
}
|
||||
|
||||
// Modify anniversary
|
||||
String anniversary = getJsonString(contact, "anniversary");
|
||||
if (anniversary != null) {
|
||||
ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
|
||||
.withSelection(ContactsContract.Data.CONTACT_ID + "=? AND " +
|
||||
ContactsContract.Data.MIMETYPE + "=? AND " +
|
||||
ContactsContract.CommonDataKinds.Event.TYPE + "=?",
|
||||
new String[]{id,ContactsContract.CommonDataKinds.Event.CONTENT_ITEM_TYPE, new String(""+ContactsContract.CommonDataKinds.Event.TYPE_ANNIVERSARY)})
|
||||
.withValue(ContactsContract.CommonDataKinds.Event.TYPE, ContactsContract.CommonDataKinds.Event.TYPE_ANNIVERSARY)
|
||||
.withValue(ContactsContract.CommonDataKinds.Event.START_DATE, anniversary)
|
||||
.build());
|
||||
}
|
||||
// Modify photos
|
||||
JSONArray photos = null;
|
||||
try {
|
||||
@ -1240,22 +1131,6 @@ public class ContactAccessorSdk5 extends ContactAccessor {
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a relationship to a list of database actions to be performed
|
||||
*
|
||||
* @param ops the list of database actions
|
||||
* @param relationship the item to be inserted
|
||||
*/
|
||||
private void insertRelationship(ArrayList<ContentProviderOperation> ops,
|
||||
JSONObject relationship) {
|
||||
ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
|
||||
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
|
||||
.withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Relation.CONTENT_ITEM_TYPE)
|
||||
.withValue(ContactsContract.CommonDataKinds.Relation.NAME, getJsonString(relationship, "value"))
|
||||
.withValue(ContactsContract.CommonDataKinds.Relation.TYPE, getRelationshipType(getJsonString(relationship, "type")))
|
||||
.build());
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a website to a list of database actions to be performed
|
||||
*
|
||||
@ -1299,8 +1174,6 @@ public class ContactAccessorSdk5 extends ContactAccessor {
|
||||
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
|
||||
.withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Organization.CONTENT_ITEM_TYPE)
|
||||
.withValue(ContactsContract.CommonDataKinds.Organization.DEPARTMENT, getJsonString(org, "department"))
|
||||
.withValue(ContactsContract.CommonDataKinds.Organization.JOB_DESCRIPTION, getJsonString(org, "description"))
|
||||
.withValue(ContactsContract.CommonDataKinds.Organization.OFFICE_LOCATION, getJsonString(org, "location"))
|
||||
.withValue(ContactsContract.CommonDataKinds.Organization.COMPANY, getJsonString(org, "name"))
|
||||
.withValue(ContactsContract.CommonDataKinds.Organization.TITLE, getJsonString(org, "title"))
|
||||
.build());
|
||||
@ -1573,21 +1446,6 @@ public class ContactAccessorSdk5 extends ContactAccessor {
|
||||
Log.d(LOG_TAG, "Could not get websites");
|
||||
}
|
||||
|
||||
// Add relationships
|
||||
JSONArray relationships = null;
|
||||
try {
|
||||
relationships = contact.getJSONArray("relationships");
|
||||
if (relationships != null) {
|
||||
for (int i=0; i<relationships.length(); i++) {
|
||||
JSONObject relationship = (JSONObject)relationships.get(i);
|
||||
insertRelationship(ops, relationship);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (JSONException e) {
|
||||
Log.d(LOG_TAG, "Could not get relationships");
|
||||
}
|
||||
|
||||
// Add birthday
|
||||
String birthday = getJsonString(contact, "birthday");
|
||||
if (birthday != null) {
|
||||
@ -1598,17 +1456,6 @@ public class ContactAccessorSdk5 extends ContactAccessor {
|
||||
.withValue(ContactsContract.CommonDataKinds.Event.START_DATE, birthday)
|
||||
.build());
|
||||
}
|
||||
|
||||
// Add anniversary
|
||||
String anniversary = getJsonString(contact, "anniversary");
|
||||
if (anniversary != null) {
|
||||
ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
|
||||
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
|
||||
.withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Event.CONTENT_ITEM_TYPE)
|
||||
.withValue(ContactsContract.CommonDataKinds.Event.TYPE, ContactsContract.CommonDataKinds.Event.TYPE_ANNIVERSARY)
|
||||
.withValue(ContactsContract.CommonDataKinds.Event.START_DATE, anniversary)
|
||||
.build());
|
||||
}
|
||||
|
||||
// Add photos
|
||||
JSONArray photos = null;
|
||||
@ -1862,119 +1709,4 @@ public class ContactAccessorSdk5 extends ContactAccessor {
|
||||
}
|
||||
return stringType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a string from the W3C Contact API to it's Android int value.
|
||||
* @param string
|
||||
* @return Android int value
|
||||
*/
|
||||
private int getRelationshipType(String string) {
|
||||
int type = ContactsContract.CommonDataKinds.Relation.TYPE_CUSTOM;
|
||||
if (string!=null) {
|
||||
if ("assistant".equals(string.toLowerCase())) {
|
||||
return ContactsContract.CommonDataKinds.Relation.TYPE_ASSISTANT;
|
||||
}
|
||||
else if ("brother".equals(string.toLowerCase())) {
|
||||
return ContactsContract.CommonDataKinds.Relation.TYPE_BROTHER;
|
||||
}
|
||||
else if ("child".equals(string.toLowerCase())) {
|
||||
return ContactsContract.CommonDataKinds.Relation.TYPE_CHILD;
|
||||
}
|
||||
else if ("domestic partner".equals(string.toLowerCase())) {
|
||||
return ContactsContract.CommonDataKinds.Relation.TYPE_DOMESTIC_PARTNER;
|
||||
}
|
||||
else if ("father".equals(string.toLowerCase())) {
|
||||
return ContactsContract.CommonDataKinds.Relation.TYPE_FATHER;
|
||||
}
|
||||
else if ("friend".equals(string.toLowerCase())) {
|
||||
return ContactsContract.CommonDataKinds.Relation.TYPE_FRIEND;
|
||||
}
|
||||
else if ("manager".equals(string.toLowerCase())) {
|
||||
return ContactsContract.CommonDataKinds.Relation.TYPE_MANAGER;
|
||||
}
|
||||
else if ("mother".equals(string.toLowerCase())) {
|
||||
return ContactsContract.CommonDataKinds.Relation.TYPE_MOTHER;
|
||||
}
|
||||
else if ("parent".equals(string.toLowerCase())) {
|
||||
return ContactsContract.CommonDataKinds.Relation.TYPE_PARENT;
|
||||
}
|
||||
else if ("partner".equals(string.toLowerCase())) {
|
||||
return ContactsContract.CommonDataKinds.Relation.TYPE_PARTNER;
|
||||
}
|
||||
else if ("referred by".equals(string.toLowerCase())) {
|
||||
return ContactsContract.CommonDataKinds.Relation.TYPE_REFERRED_BY;
|
||||
}
|
||||
else if ("relative".equals(string.toLowerCase())) {
|
||||
return ContactsContract.CommonDataKinds.Relation.TYPE_RELATIVE;
|
||||
}
|
||||
else if ("sister".equals(string.toLowerCase())) {
|
||||
return ContactsContract.CommonDataKinds.Relation.TYPE_SISTER;
|
||||
}
|
||||
else if ("spouse".equals(string.toLowerCase())) {
|
||||
return ContactsContract.CommonDataKinds.Relation.TYPE_SPOUSE;
|
||||
}
|
||||
else if ("custom".equals(string.toLowerCase())) {
|
||||
return ContactsContract.CommonDataKinds.Relation.TYPE_CUSTOM;
|
||||
}
|
||||
}
|
||||
return type;
|
||||
}
|
||||
|
||||
/**
|
||||
* getPhoneType converts an Android phone type into a string
|
||||
* @param type
|
||||
* @return phone type as string.
|
||||
*/
|
||||
private String getRelationshipType(int type) {
|
||||
String stringType;
|
||||
switch (type) {
|
||||
case ContactsContract.CommonDataKinds.Relation.TYPE_ASSISTANT:
|
||||
stringType = "assistant";
|
||||
break;
|
||||
case ContactsContract.CommonDataKinds.Relation.TYPE_BROTHER:
|
||||
stringType = "brother";
|
||||
break;
|
||||
case ContactsContract.CommonDataKinds.Relation.TYPE_CHILD:
|
||||
stringType = "child";
|
||||
break;
|
||||
case ContactsContract.CommonDataKinds.Relation.TYPE_DOMESTIC_PARTNER:
|
||||
stringType = "domestic partner";
|
||||
break;
|
||||
case ContactsContract.CommonDataKinds.Relation.TYPE_FATHER:
|
||||
stringType = "father";
|
||||
break;
|
||||
case ContactsContract.CommonDataKinds.Relation.TYPE_FRIEND:
|
||||
stringType = "friend";
|
||||
break;
|
||||
case ContactsContract.CommonDataKinds.Relation.TYPE_MANAGER:
|
||||
stringType = "manager";
|
||||
break;
|
||||
case ContactsContract.CommonDataKinds.Relation.TYPE_MOTHER:
|
||||
stringType = "mother";
|
||||
break;
|
||||
case ContactsContract.CommonDataKinds.Relation.TYPE_PARENT:
|
||||
stringType = "parent";
|
||||
break;
|
||||
case ContactsContract.CommonDataKinds.Relation.TYPE_PARTNER:
|
||||
stringType = "partner";
|
||||
break;
|
||||
case ContactsContract.CommonDataKinds.Relation.TYPE_REFERRED_BY:
|
||||
stringType = "referred by";
|
||||
break;
|
||||
case ContactsContract.CommonDataKinds.Relation.TYPE_RELATIVE:
|
||||
stringType = "relative";
|
||||
break;
|
||||
case ContactsContract.CommonDataKinds.Relation.TYPE_SISTER:
|
||||
stringType = "sister";
|
||||
break;
|
||||
case ContactsContract.CommonDataKinds.Relation.TYPE_SPOUSE:
|
||||
stringType = "spouse";
|
||||
break;
|
||||
case ContactsContract.CommonDataKinds.Relation.TYPE_CUSTOM:
|
||||
default:
|
||||
stringType = "custom";
|
||||
break;
|
||||
}
|
||||
return stringType;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user