private String getType(Integer type, String label) { if (type == null) { throw new InvalidCursorTypeException(); } switch (type) { case Website.TYPE_BLOG: return "Blog"; case Website.TYPE_FTP: return "FTP"; case Website.TYPE_PROFILE: return "Profile"; case Website.TYPE_HOME: return "Home"; case Website.TYPE_HOMEPAGE: return "Home Page"; case Website.TYPE_WORK: return "Work"; case Website.TYPE_OTHER: return "Other"; case Website.TYPE_CUSTOM: default: return label; } }
private void initColumnNameConstantsMap() { if (mColumnNameConstantsMap != null) { return; } mColumnNameConstantsMap = new HashMap<String, String>(); mColumnNameConstantsMap.put("name", StructuredName.DISPLAY_NAME); mColumnNameConstantsMap.put("givenname", StructuredName.GIVEN_NAME); mColumnNameConstantsMap.put("familyname", StructuredName.FAMILY_NAME); mColumnNameConstantsMap.put("honorificprefix", StructuredName.PREFIX); mColumnNameConstantsMap.put("honorificsuffix", StructuredName.SUFFIX); mColumnNameConstantsMap.put("additionalname", CUSTOM_DATA_COLUMN); mColumnNameConstantsMap.put("nickname", Nickname.NAME); mColumnNameConstantsMap.put("adr", StructuredPostal.STREET); mColumnNameConstantsMap.put("email", Email.ADDRESS); mColumnNameConstantsMap.put("url", Website.URL); mColumnNameConstantsMap.put("category", GroupMembership.GROUP_ROW_ID); mColumnNameConstantsMap.put("tel", Phone.NUMBER); mColumnNameConstantsMap.put("org", Organization.COMPANY); mColumnNameConstantsMap.put("jobTitle", Organization.TITLE); mColumnNameConstantsMap.put("note", Note.NOTE); mColumnNameConstantsMap.put("impp", Im.DATA); mColumnNameConstantsMap.put("sex", CUSTOM_DATA_COLUMN); mColumnNameConstantsMap.put("genderidentity", CUSTOM_DATA_COLUMN); mColumnNameConstantsMap.put("key", CUSTOM_DATA_COLUMN); }
private void initMimeTypeConstantsMap() { if (mMimeTypeConstantsMap != null) { return; } mMimeTypeConstantsMap = new HashMap<String, String>(); mMimeTypeConstantsMap.put("name", StructuredName.CONTENT_ITEM_TYPE); mMimeTypeConstantsMap.put("givenname", StructuredName.CONTENT_ITEM_TYPE); mMimeTypeConstantsMap.put("familyname", StructuredName.CONTENT_ITEM_TYPE); mMimeTypeConstantsMap.put("honorificprefix", StructuredName.CONTENT_ITEM_TYPE); mMimeTypeConstantsMap.put("honorificsuffix", StructuredName.CONTENT_ITEM_TYPE); mMimeTypeConstantsMap.put("additionalname", MIMETYPE_ADDITIONAL_NAME); mMimeTypeConstantsMap.put("nickname", Nickname.CONTENT_ITEM_TYPE); mMimeTypeConstantsMap.put("email", Email.CONTENT_ITEM_TYPE); mMimeTypeConstantsMap.put("url", Website.CONTENT_ITEM_TYPE); mMimeTypeConstantsMap.put("category", GroupMembership.CONTENT_ITEM_TYPE); mMimeTypeConstantsMap.put("tel", Phone.CONTENT_ITEM_TYPE); mMimeTypeConstantsMap.put("org", Organization.CONTENT_ITEM_TYPE); mMimeTypeConstantsMap.put("jobTitle", Organization.CONTENT_ITEM_TYPE); mMimeTypeConstantsMap.put("note", Note.CONTENT_ITEM_TYPE); mMimeTypeConstantsMap.put("impp", Im.CONTENT_ITEM_TYPE); mMimeTypeConstantsMap.put("sex", MIMETYPE_SEX); mMimeTypeConstantsMap.put("genderidentity", MIMETYPE_GENDER_IDENTITY); mMimeTypeConstantsMap.put("key", MIMETYPE_KEY); }
public ContactOperations addWebsite(String website, int type, String label, boolean isPrimary, boolean isSuperPrimary) { mValues.clear(); if (!TextUtils.isEmpty(website)) { mValues.put(Website.URL, website); mValues.put(Website.TYPE, type); mValues.put(Website.MIMETYPE, Website.CONTENT_ITEM_TYPE); if (!TextUtils.isEmpty(label)) { mValues.put(Website.LABEL, label); } if (isSuperPrimary) { mValues.put(Email.IS_SUPER_PRIMARY, 1); } if (isPrimary) { mValues.put(Email.IS_PRIMARY, 1); } addInsertOp(); } return this; }
public static int getAndroidWebsiteType(WebsiteType type) { switch (type) { case TYPE_CUSTOM: return Website.TYPE_CUSTOM; case TYPE_HOME: return Website.TYPE_HOME; case TYPE_HOMEPAGE: return Website.TYPE_HOMEPAGE; case TYPE_OTHER: return Website.TYPE_OTHER; case TYPE_WORK: return Website.TYPE_WORK; case TYPE_BLOG: return Website.TYPE_BLOG; case TYPE_FTP: return Website.TYPE_FTP; case TYPE_PROFILE: return Website.TYPE_PROFILE; default: return Website.TYPE_OTHER; } }
public static WebsiteType getWebsiteType(int androidType) { switch (androidType) { case Website.TYPE_CUSTOM: return WebsiteType.TYPE_CUSTOM; case Website.TYPE_OTHER: return WebsiteType.TYPE_OTHER; case Website.TYPE_HOME: return WebsiteType.TYPE_HOME; case Website.TYPE_WORK: return WebsiteType.TYPE_WORK; case Website.TYPE_BLOG: return WebsiteType.TYPE_BLOG; case Website.TYPE_FTP: return WebsiteType.TYPE_FTP; case Website.TYPE_HOMEPAGE: return WebsiteType.TYPE_HOMEPAGE; case Website.TYPE_PROFILE: return WebsiteType.TYPE_PROFILE; default: return WebsiteType.TYPE_OTHER; } }
private boolean updateUrl(ContactMethod cmethod, String rawContactId, Context ctx) { // seek for raw contact + url = same String[] proj = new String[] { Website.RAW_CONTACT_ID, Data.MIMETYPE, Website.DATA }; String where = Website.RAW_CONTACT_ID + "=? AND " + Data.MIMETYPE + "=? AND " + Website.DATA + "=?"; String[] args = new String[] { rawContactId, Website.CONTENT_ITEM_TYPE, cmethod.data }; ContentValues values = valuesUrl(cmethod); values.put(Website.RAW_CONTACT_ID, rawContactId); return updateDataRow(ctx, proj, where, args, values); }
/** * Add a website to a list of database actions to be performed * * @param ops the list of database actions * @param website the item to be inserted */ private void insertWebsite(ArrayList<ContentProviderOperation> ops, JSONObject website) { ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI) .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0) .withValue(ContactsContract.Data.MIMETYPE, CommonDataKinds.Website.CONTENT_ITEM_TYPE) .withValue(CommonDataKinds.Website.DATA, getJsonString(website, "value")) .withValue(CommonDataKinds.Website.TYPE, getContactType(getJsonString(website, "type"))) .withValue(CommonDataKinds.Website.LABEL, getJsonString(website, "type")) .build()); }
private void getWebsitesValues(final JSONArray websites, List<ContentValues> newContactValues) throws JSONException { if (websites == null) { return; } for (int i = 0; i < websites.length(); i++) { JSONObject website = websites.getJSONObject(i); JSONArray websiteTypes = website.optJSONArray("type"); if (websiteTypes != null && websiteTypes.length() > 0) { for (int j = 0; j < websiteTypes.length(); j++) { // Translate the website type string to an integer constant // provided by the ContactsContract API final String type = websiteTypes.getString(j); final int typeConstant = getWebsiteType(type); newContactValues.add(createContentValues(Website.CONTENT_ITEM_TYPE, website.optString("value"), typeConstant, type, website.optBoolean("pref"))); } } else { newContactValues.add(createContentValues(Website.CONTENT_ITEM_TYPE, website.optString("value"), -1, null, website.optBoolean("pref"))); } } }
private void initWebsiteTypesMap() { if (mWebsiteTypesMap != null) { return; } mWebsiteTypesMap = new HashMap<String, Integer>(); mWebsiteTypesMap.put("homepage", Website.TYPE_HOMEPAGE); mWebsiteTypesMap.put("blog", Website.TYPE_BLOG); mWebsiteTypesMap.put("profile", Website.TYPE_PROFILE); mWebsiteTypesMap.put("home", Website.TYPE_HOME); mWebsiteTypesMap.put("work", Website.TYPE_WORK); mWebsiteTypesMap.put("ftp", Website.TYPE_FTP); }
/** * Updates contact's website * * @param email * email id of the sample SyncAdapter user * @param uri * Uri for the existing raw contact to be updated * @return instance of ContactOperations */ public ContactOperations updateWebsite(String website, String label, boolean isPrimary, boolean isSuperPrimary, Uri uri) { mValues.clear(); mValues.put(Website.DATA, website); mValues.put(Website.LABEL, label); mValues.put(Website.IS_PRIMARY, isPrimary ? 1 : 0); mValues.put(Website.IS_SUPER_PRIMARY, isSuperPrimary ? 1 : 0); addUpdateOp(uri); return this; }
protected void populateURLs(Contact c) throws RemoteException { @Cleanup Cursor cursor = providerClient.query(dataURI(), new String[] { Website.URL }, Website.RAW_CONTACT_ID + "=? AND " + Data.MIMETYPE + "=?", new String[] { String.valueOf(c.getLocalID()), Website.CONTENT_ITEM_TYPE }, null); while (cursor != null && cursor.moveToNext()) c.getURLs().add(cursor.getString(0)); }
@Override public boolean addUrl(ContactStruct contact, Cursor urls, Context ctx, boolean removeMatches) { String url = urls.getString(urls.getColumnIndexOrThrow(Website.URL)); String label = urls.getString(urls.getColumnIndexOrThrow(Website.LABEL)); int type = urls.getInt(urls.getColumnIndexOrThrow(Website.TYPE)); boolean primary = (urls.getInt(urls.getColumnIndexOrThrow(Website.IS_PRIMARY)) != 0); if (!TextUtils.isEmpty(url) && isUrlNew(contact, url, type, removeMatches)) { contact.addContactmethod(Contacts.KIND_URL, (type > ContactMethodsColumns.TYPE_OTHER ? ContactMethodsColumns.TYPE_OTHER : type), url, label, primary); return true; } return false; }
private ContentValues valuesUrl(ContactMethod url) { ContentValues val = new ContentValues(); val.put(Data.MIMETYPE, Website.CONTENT_ITEM_TYPE); if (url.label != null) val.put(Website.LABEL, url.label); val.put(Website.IS_PRIMARY, url.isPrimary ? 1 : 0); if (url.data != null) val.put(Website.DATA, url.data); val.put(Website.TYPE, url.type); return val; }
private static void addContact(Collection<ContentProviderOperation> ops, int rawContactID, Contact contact, boolean work) { if (contact != null) { // Add work telefon number if (contact.getTelefon() != null) { ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI) .withValueBackReference(Data.RAW_CONTACT_ID, rawContactID) .withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE) .withValue(Phone.NUMBER, contact.getTelefon()) .withValue(Phone.TYPE, work ? Phone.TYPE_WORK : Phone.TYPE_HOME) .build()); } // Add work mobile number if (contact.getMobilephone() != null) { ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI) .withValueBackReference(Data.RAW_CONTACT_ID, rawContactID) .withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE) .withValue(Phone.NUMBER, contact.getMobilephone()) .withValue(Phone.TYPE, work ? Phone.TYPE_WORK_MOBILE : Phone.TYPE_MOBILE) .build()); } // Add work fax number if (contact.getFax() != null) { ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI) .withValueBackReference(Data.RAW_CONTACT_ID, rawContactID) .withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE) .withValue(Phone.NUMBER, contact.getFax()) .withValue(Phone.TYPE, work ? Phone.TYPE_FAX_WORK : Phone.TYPE_FAX_HOME) .build()); } // Add website if (contact.getHomepage() != null) { ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI) .withValueBackReference(Data.RAW_CONTACT_ID, rawContactID) .withValue(Data.MIMETYPE, Website.CONTENT_ITEM_TYPE) .withValue(Website.URL, contact.getHomepage()) .withValue(Website.TYPE, work ? Website.TYPE_WORK : Website.TYPE_HOME) .build()); } } }
private void fillFromCursor() { url = getString(Website.DATA); final Integer type = getInt(Website.TYPE); final String label = getString(Website.LABEL); this.type = getType(type, label); }
private int getWebsiteType(String websiteType) { initWebsiteTypesMap(); Integer type = mWebsiteTypesMap.get(websiteType.toLowerCase()); return type != null ? type : Website.TYPE_CUSTOM; }
protected Builder buildURL(Builder builder, String url) { return builder .withValue(Data.MIMETYPE, Website.CONTENT_ITEM_TYPE) .withValue(Website.URL, url); }
@Override public String[] getProjUrl() { return new String[] { Website.MIMETYPE, Website.URL, Website.TYPE, Website.IS_PRIMARY, Website.LABEL }; }
@Override public String getQueryUrl() { return Website.MIMETYPE + " = " + DatabaseUtils.sqlEscapeString("" + Website.CONTENT_ITEM_TYPE); }