Search in sources :

Example 1 with DataItem

use of com.android.contacts.common.model.dataitem.DataItem in project android_packages_apps_Dialer by LineageOS.

the class ContactLoader method computeFormattedPhoneNumbers.

/**
 * Iterates over all data items that represent phone numbers are tries to calculate a formatted
 * number. This function can safely be called several times as no unformatted data is overwritten
 */
private void computeFormattedPhoneNumbers(Contact contactData) {
    final String countryIso = GeoUtil.getCurrentCountryIso(getContext());
    final ImmutableList<RawContact> rawContacts = contactData.getRawContacts();
    final int rawContactCount = rawContacts.size();
    for (int rawContactIndex = 0; rawContactIndex < rawContactCount; rawContactIndex++) {
        final RawContact rawContact = rawContacts.get(rawContactIndex);
        final List<DataItem> dataItems = rawContact.getDataItems();
        final int dataCount = dataItems.size();
        for (int dataIndex = 0; dataIndex < dataCount; dataIndex++) {
            final DataItem dataItem = dataItems.get(dataIndex);
            if (dataItem instanceof PhoneDataItem) {
                final PhoneDataItem phoneDataItem = (PhoneDataItem) dataItem;
                phoneDataItem.computeFormattedPhoneNumber(countryIso);
            }
        }
    }
}
Also used : PhoneDataItem(com.android.contacts.common.model.dataitem.PhoneDataItem) DataItem(com.android.contacts.common.model.dataitem.DataItem) PhotoDataItem(com.android.contacts.common.model.dataitem.PhotoDataItem) PhoneDataItem(com.android.contacts.common.model.dataitem.PhoneDataItem)

Example 2 with DataItem

use of com.android.contacts.common.model.dataitem.DataItem in project android_packages_apps_Dialer by LineageOS.

the class ContactLoader method loadThumbnailBinaryData.

private void loadThumbnailBinaryData(Contact contactData) {
    final long photoId = contactData.getPhotoId();
    if (photoId <= 0) {
        // No photo ID
        return;
    }
    for (RawContact rawContact : contactData.getRawContacts()) {
        for (DataItem dataItem : rawContact.getDataItems()) {
            if (dataItem.getId() == photoId) {
                if (!(dataItem instanceof PhotoDataItem)) {
                    break;
                }
                final PhotoDataItem photo = (PhotoDataItem) dataItem;
                contactData.setThumbnailPhotoBinaryData(photo.getPhoto());
                break;
            }
        }
    }
}
Also used : PhoneDataItem(com.android.contacts.common.model.dataitem.PhoneDataItem) DataItem(com.android.contacts.common.model.dataitem.DataItem) PhotoDataItem(com.android.contacts.common.model.dataitem.PhotoDataItem) PhotoDataItem(com.android.contacts.common.model.dataitem.PhotoDataItem)

Example 3 with DataItem

use of com.android.contacts.common.model.dataitem.DataItem in project packages_apps_Contacts by AOKP.

the class QuickContactActivity method startInteractionLoaders.

private void startInteractionLoaders(Cp2DataCardModel cp2DataCardModel) {
    final Map<String, List<DataItem>> dataItemsMap = cp2DataCardModel.dataItemsMap;
    final List<DataItem> phoneDataItems = dataItemsMap.get(Phone.CONTENT_ITEM_TYPE);
    if (phoneDataItems != null && phoneDataItems.size() == 1) {
        mOnlyOnePhoneNumber = true;
    }
    String[] phoneNumbers = null;
    if (phoneDataItems != null) {
        phoneNumbers = new String[phoneDataItems.size()];
        for (int i = 0; i < phoneDataItems.size(); ++i) {
            phoneNumbers[i] = ((PhoneDataItem) phoneDataItems.get(i)).getNumber();
        }
    }
    final Bundle phonesExtraBundle = new Bundle();
    phonesExtraBundle.putStringArray(KEY_LOADER_EXTRA_PHONES, phoneNumbers);
    Trace.beginSection("start sms loader");
    getLoaderManager().initLoader(LOADER_SMS_ID, phonesExtraBundle, mLoaderInteractionsCallbacks);
    Trace.endSection();
    Trace.beginSection("start call log loader");
    getLoaderManager().initLoader(LOADER_CALL_LOG_ID, phonesExtraBundle, mLoaderInteractionsCallbacks);
    Trace.endSection();
    Trace.beginSection("start calendar loader");
    final List<DataItem> emailDataItems = dataItemsMap.get(Email.CONTENT_ITEM_TYPE);
    if (emailDataItems != null && emailDataItems.size() == 1) {
        mOnlyOneEmail = true;
    }
    String[] emailAddresses = null;
    if (emailDataItems != null) {
        emailAddresses = new String[emailDataItems.size()];
        for (int i = 0; i < emailDataItems.size(); ++i) {
            emailAddresses[i] = ((EmailDataItem) emailDataItems.get(i)).getAddress();
        }
    }
    final Bundle emailsExtraBundle = new Bundle();
    emailsExtraBundle.putStringArray(KEY_LOADER_EXTRA_EMAILS, emailAddresses);
    getLoaderManager().initLoader(LOADER_CALENDAR_ID, emailsExtraBundle, mLoaderInteractionsCallbacks);
    Trace.endSection();
}
Also used : PhoneDataItem(com.android.contacts.common.model.dataitem.PhoneDataItem) EventDataItem(com.android.contacts.common.model.dataitem.EventDataItem) OrganizationDataItem(com.android.contacts.common.model.dataitem.OrganizationDataItem) RelationDataItem(com.android.contacts.common.model.dataitem.RelationDataItem) StructuredNameDataItem(com.android.contacts.common.model.dataitem.StructuredNameDataItem) NoteDataItem(com.android.contacts.common.model.dataitem.NoteDataItem) DataItem(com.android.contacts.common.model.dataitem.DataItem) SipAddressDataItem(com.android.contacts.common.model.dataitem.SipAddressDataItem) EmailDataItem(com.android.contacts.common.model.dataitem.EmailDataItem) NicknameDataItem(com.android.contacts.common.model.dataitem.NicknameDataItem) StructuredPostalDataItem(com.android.contacts.common.model.dataitem.StructuredPostalDataItem) WebsiteDataItem(com.android.contacts.common.model.dataitem.WebsiteDataItem) GroupMembershipDataItem(com.android.contacts.common.model.dataitem.GroupMembershipDataItem) ImDataItem(com.android.contacts.common.model.dataitem.ImDataItem) Bundle(android.os.Bundle) ColorStateList(android.content.res.ColorStateList) ArrayList(java.util.ArrayList) List(java.util.List) ImmutableList(com.google.common.collect.ImmutableList) SpannableString(android.text.SpannableString)

Example 4 with DataItem

use of com.android.contacts.common.model.dataitem.DataItem in project packages_apps_Contacts by AOKP.

the class QuickContactActivity method buildAboutCardEntries.

private List<List<Entry>> buildAboutCardEntries(Map<String, List<DataItem>> dataItemsMap) {
    final List<List<Entry>> aboutCardEntries = new ArrayList<>();
    for (String mimetype : SORTED_ABOUT_CARD_MIMETYPES) {
        final List<DataItem> mimeTypeItems = dataItemsMap.get(mimetype);
        if (mimeTypeItems == null) {
            continue;
        }
        // Set aboutCardTitleOut = null, since SORTED_ABOUT_CARD_MIMETYPES doesn't contain
        // the name mimetype.
        final List<Entry> aboutEntries = dataItemsToEntries(mimeTypeItems, /* aboutCardTitleOut = */
        null);
        if (aboutEntries.size() > 0) {
            aboutCardEntries.add(aboutEntries);
        }
    }
    return aboutCardEntries;
}
Also used : Entry(com.android.contacts.quickcontact.ExpandingEntryCardView.Entry) PhoneDataItem(com.android.contacts.common.model.dataitem.PhoneDataItem) EventDataItem(com.android.contacts.common.model.dataitem.EventDataItem) OrganizationDataItem(com.android.contacts.common.model.dataitem.OrganizationDataItem) RelationDataItem(com.android.contacts.common.model.dataitem.RelationDataItem) StructuredNameDataItem(com.android.contacts.common.model.dataitem.StructuredNameDataItem) NoteDataItem(com.android.contacts.common.model.dataitem.NoteDataItem) DataItem(com.android.contacts.common.model.dataitem.DataItem) SipAddressDataItem(com.android.contacts.common.model.dataitem.SipAddressDataItem) EmailDataItem(com.android.contacts.common.model.dataitem.EmailDataItem) NicknameDataItem(com.android.contacts.common.model.dataitem.NicknameDataItem) StructuredPostalDataItem(com.android.contacts.common.model.dataitem.StructuredPostalDataItem) WebsiteDataItem(com.android.contacts.common.model.dataitem.WebsiteDataItem) GroupMembershipDataItem(com.android.contacts.common.model.dataitem.GroupMembershipDataItem) ImDataItem(com.android.contacts.common.model.dataitem.ImDataItem) ArrayList(java.util.ArrayList) ColorStateList(android.content.res.ColorStateList) ArrayList(java.util.ArrayList) List(java.util.List) ImmutableList(com.google.common.collect.ImmutableList) SpannableString(android.text.SpannableString)

Example 5 with DataItem

use of com.android.contacts.common.model.dataitem.DataItem in project packages_apps_Contacts by AOKP.

the class QuickContactActivity method copyToPhone.

private void copyToPhone() {
    String name = mContactData.getDisplayName();
    if (TextUtils.isEmpty(name)) {
        name = "";
    }
    String phoneNumber = "";
    StringBuilder anrNumber = new StringBuilder();
    StringBuilder email = new StringBuilder();
    // get phonenumber,email,anr from SIM contacts,then insert them to phone
    for (RawContact rawContact : mContactData.getRawContacts()) {
        for (DataItem dataItem : rawContact.getDataItems()) {
            if (dataItem.getMimeType() == null) {
                continue;
            }
            if (dataItem instanceof PhoneDataItem) {
                PhoneDataItem phoneNum = (PhoneDataItem) dataItem;
                final String number = phoneNum.getNumber();
                if (!TextUtils.isEmpty(number)) {
                    if (Phone.TYPE_MOBILE == phoneNum.getContentValues().getAsInteger(Phone.TYPE)) {
                        phoneNumber = number;
                    } else {
                        if (!TextUtils.isEmpty(anrNumber.toString())) {
                            anrNumber.append(",");
                        }
                        anrNumber.append(number);
                    }
                }
            } else if (dataItem instanceof EmailDataItem) {
                EmailDataItem emailData = (EmailDataItem) dataItem;
                final String address = emailData.getData();
                if (!TextUtils.isEmpty(address)) {
                    if (!TextUtils.isEmpty(email.toString())) {
                        email.append(",");
                    }
                    email.append(address);
                }
            }
        }
    }
    String[] value = new String[] { name, phoneNumber, email.toString(), anrNumber.toString() };
    boolean success = MoreContactUtils.insertToPhone(value, QuickContactActivity.this, SubscriptionManager.INVALID_SUBSCRIPTION_ID);
    Toast.makeText(this, success ? R.string.copy_done : R.string.copy_failure, Toast.LENGTH_SHORT).show();
}
Also used : PhoneDataItem(com.android.contacts.common.model.dataitem.PhoneDataItem) EventDataItem(com.android.contacts.common.model.dataitem.EventDataItem) OrganizationDataItem(com.android.contacts.common.model.dataitem.OrganizationDataItem) RelationDataItem(com.android.contacts.common.model.dataitem.RelationDataItem) StructuredNameDataItem(com.android.contacts.common.model.dataitem.StructuredNameDataItem) NoteDataItem(com.android.contacts.common.model.dataitem.NoteDataItem) DataItem(com.android.contacts.common.model.dataitem.DataItem) SipAddressDataItem(com.android.contacts.common.model.dataitem.SipAddressDataItem) EmailDataItem(com.android.contacts.common.model.dataitem.EmailDataItem) NicknameDataItem(com.android.contacts.common.model.dataitem.NicknameDataItem) StructuredPostalDataItem(com.android.contacts.common.model.dataitem.StructuredPostalDataItem) WebsiteDataItem(com.android.contacts.common.model.dataitem.WebsiteDataItem) GroupMembershipDataItem(com.android.contacts.common.model.dataitem.GroupMembershipDataItem) ImDataItem(com.android.contacts.common.model.dataitem.ImDataItem) PhoneDataItem(com.android.contacts.common.model.dataitem.PhoneDataItem) RawContact(com.android.contacts.common.model.RawContact) SpannableString(android.text.SpannableString) EmailDataItem(com.android.contacts.common.model.dataitem.EmailDataItem)

Aggregations

DataItem (com.android.contacts.common.model.dataitem.DataItem)10 PhoneDataItem (com.android.contacts.common.model.dataitem.PhoneDataItem)8 GroupMembershipDataItem (com.android.contacts.common.model.dataitem.GroupMembershipDataItem)7 OrganizationDataItem (com.android.contacts.common.model.dataitem.OrganizationDataItem)7 EmailDataItem (com.android.contacts.common.model.dataitem.EmailDataItem)6 EventDataItem (com.android.contacts.common.model.dataitem.EventDataItem)6 ImDataItem (com.android.contacts.common.model.dataitem.ImDataItem)6 NicknameDataItem (com.android.contacts.common.model.dataitem.NicknameDataItem)6 NoteDataItem (com.android.contacts.common.model.dataitem.NoteDataItem)6 RelationDataItem (com.android.contacts.common.model.dataitem.RelationDataItem)6 SipAddressDataItem (com.android.contacts.common.model.dataitem.SipAddressDataItem)6 StructuredNameDataItem (com.android.contacts.common.model.dataitem.StructuredNameDataItem)6 StructuredPostalDataItem (com.android.contacts.common.model.dataitem.StructuredPostalDataItem)6 WebsiteDataItem (com.android.contacts.common.model.dataitem.WebsiteDataItem)6 SpannableString (android.text.SpannableString)5 RawContact (com.android.contacts.common.model.RawContact)5 ArrayList (java.util.ArrayList)5 ColorStateList (android.content.res.ColorStateList)4 ImmutableList (com.google.common.collect.ImmutableList)4 List (java.util.List)4