public static ContactList getByNumbers(Iterable<String> numbers, boolean canBlock) { ContactList list = new ContactList(); for (String number : numbers) { if (!TextUtils.isEmpty(number)) { list.add(Contact.get(number, canBlock)); } } return list; }
/** * Returns a ContactList for the corresponding recipient ids passed in. This method will create * the contact if it doesn't exist, and would inject the recipient id into the contact. */ public static ContactList getByIds(String spaceSepIds, boolean canBlock) { ContactList list = new ContactList(); for (RecipientIdCache.Entry entry : RecipientIdCache.getAddresses(spaceSepIds)) { if (entry != null && !TextUtils.isEmpty(entry.number)) { Contact contact = Contact.get(entry.number, canBlock); contact.setRecipientId(entry.id); list.add(contact); } } return list; }
public static ContactList getByNumbers( String semiSepNumbers, boolean canBlock, boolean replaceNumber) { ContactList list = new ContactList(); for (String number : semiSepNumbers.split(";")) { if (!TextUtils.isEmpty(number)) { Contact contact = Contact.get(number, canBlock); if (replaceNumber) { contact.setNumber(number); } list.add(contact); } } return list; }
/** * Returns a ContactList for the corresponding recipient URIs passed in. This method will always * block to query provider. The given URIs could be the phone data URIs or tel URI for the numbers * don't belong to any contact. * * @param uris phone URI to create the ContactList */ public static ContactList blockingGetByUris(Parcelable[] uris) { ContactList list = new ContactList(); if (uris != null && uris.length > 0) { for (Parcelable p : uris) { Uri uri = (Uri) p; if ("tel".equals(uri.getScheme())) { Contact contact = Contact.get(uri.getSchemeSpecificPart(), true); list.add(contact); } } final List<Contact> contacts = Contact.getByPhoneUris(uris); if (contacts != null) { list.addAll(contacts); } } return list; }
@Override public boolean equals(Object obj) { try { ContactList other = (ContactList) obj; // If they're different sizes, the contact // set is obviously different. if (size() != other.size()) { return false; } // Make sure all the individual contacts are the same. for (Contact c : this) { if (!other.contains(c)) { return false; } } return true; } catch (ClassCastException e) { return false; } }