Search in sources :

Example 16 with VCard

use of ezvcard.VCard in project data-transfer-project by google.

the class VCardToGoogleContactConverterTest method testConversionToGoogleAddresses.

@Test
public void testConversionToGoogleAddresses() {
    // Set up vCard with a primary address and a secondary address
    String primaryStreet = "221B Baker St";
    String primaryLocality = "London";
    ezvcard.property.Address primaryAddress = new ezvcard.property.Address();
    primaryAddress.setStreetAddress(primaryStreet);
    primaryAddress.setLocality(primaryLocality);
    primaryAddress.setPref(VCARD_PRIMARY_PREF);
    String altStreet = "42 Wallaby Way";
    String altLocality = "Sydney";
    ezvcard.property.Address altAddress = new ezvcard.property.Address();
    altAddress.setStreetAddress(altStreet);
    altAddress.setLocality(altLocality);
    altAddress.setPref(VCARD_PRIMARY_PREF + 1);
    // Add addresses to vCard.  Order shouldn't matter.
    VCard vCard = defaultVCard;
    vCard.addAddress(primaryAddress);
    vCard.addAddress(altAddress);
    // Run test
    Person person = VCardToGoogleContactConverter.convert(vCard);
    // Check results
    // Check correct number of addresses
    assertThat(person.getAddresses().size()).isEqualTo(2);
    // Check primary address
    List<Address> actualPrimaryAddresses = person.getAddresses().stream().filter(a -> a.getMetadata().getPrimary()).collect(Collectors.toList());
    List<String> actualPrimaryAddressStreets = getValuesFromFields(actualPrimaryAddresses, Address::getStreetAddress);
    assertThat(actualPrimaryAddressStreets).containsExactly(primaryStreet);
    // Check secondary address
    List<Address> actualSecondaryAddresses = person.getAddresses().stream().filter(a -> !a.getMetadata().getPrimary()).collect(Collectors.toList());
    List<String> actualSecondaryAddressStreets = getValuesFromFields(actualSecondaryAddresses, Address::getStreetAddress);
    assertThat(actualSecondaryAddressStreets).containsExactly(altStreet);
}
Also used : VCard(ezvcard.VCard) VCARD_PRIMARY_PREF(org.dataportabilityproject.serviceProviders.google.contacts.GoogleContactsConstants.VCARD_PRIMARY_PREF) EmailAddress(com.google.api.services.people.v1.model.EmailAddress) Telephone(ezvcard.property.Telephone) SOURCE_PARAM_NAME_TYPE(org.dataportabilityproject.serviceProviders.google.contacts.GoogleContactsConstants.SOURCE_PARAM_NAME_TYPE) Test(org.junit.Test) PhoneNumber(com.google.api.services.people.v1.model.PhoneNumber) Truth.assertThat(com.google.common.truth.Truth.assertThat) Function(java.util.function.Function) Collectors(java.util.stream.Collectors) StructuredName(ezvcard.property.StructuredName) Pair(com.google.gdata.util.common.base.Pair) Person(com.google.api.services.people.v1.model.Person) List(java.util.List) CONTACT_SOURCE_TYPE(org.dataportabilityproject.serviceProviders.google.contacts.GoogleContactsConstants.CONTACT_SOURCE_TYPE) Nullable(com.google.gdata.util.common.base.Nullable) Address(com.google.api.services.people.v1.model.Address) Email(ezvcard.property.Email) Name(com.google.api.services.people.v1.model.Name) Collections(java.util.Collections) Before(org.junit.Before) EmailAddress(com.google.api.services.people.v1.model.EmailAddress) Address(com.google.api.services.people.v1.model.Address) VCard(ezvcard.VCard) Person(com.google.api.services.people.v1.model.Person) Test(org.junit.Test)

Example 17 with VCard

use of ezvcard.VCard in project Pix-Art-Messenger by kriztan.

the class FileBackend method getVCard.

private String getVCard(File file) {
    VCard VCard = new VCard();
    String VCardName = "";
    try {
        VCard = Ezvcard.parse(file).first();
    } catch (IOException e) {
        e.printStackTrace();
    }
    if (VCard != null) {
        final String version = VCard.getVersion().toString();
        Log.d(Config.LOGTAG, "VCard version: " + version);
        final String name = VCard.getFormattedName().getValue();
        VCardName = " (" + name + ")";
    }
    try {
        byte[] data = VCardName.getBytes("UTF-8");
        VCardName = Base64.encodeToString(data, Base64.DEFAULT);
    } catch (UnsupportedEncodingException e) {
        VCardName = "";
        e.printStackTrace();
    }
    return VCardName;
}
Also used : UnsupportedEncodingException(java.io.UnsupportedEncodingException) IOException(java.io.IOException) VCard(ezvcard.VCard)

Example 18 with VCard

use of ezvcard.VCard in project ring-client-android by savoirfairelinux.

the class ContactDetailsTask method run.

@Override
public void run() {
    if (mContact == null) {
        return;
    }
    Log.i(TAG, "ContactDetailsTask run " + mContact.getId() + " " + mContact.getDisplayName());
    final Bitmap externalBMP;
    if (!mContact.detailsLoaded && !mContact.getPhones().isEmpty()) {
        String username = mContact.getPhones().get(0).getNumber().getRawRingId();
        Log.d(TAG, "getPhones not empty. Username : " + username);
        VCard vcard = VCardUtils.loadPeerProfileFromDisk(mContext.getFilesDir(), username + ".vcf");
        mContact.setVCardProfile(vcard);
    }
    byte[] photo = mContact.getPhoto();
    if (photo != null) {
        externalBMP = BitmapUtils.cropImageToCircle(photo);
    } else if (mContact.getId() > 0) {
        Bitmap photoBmp;
        try {
            photoBmp = loadContactPhoto(mContext.getContentResolver(), mContact.getId());
        } catch (IllegalArgumentException e) {
            photoBmp = null;
        }
        if (photoBmp == null) {
            photoBmp = decodeSampledBitmapFromResource(mContext.getResources(), R.drawable.ic_contact_picture_fallback, mViewWidth, mViewHeight);
        }
        mContact.setPhoto(BitmapUtils.bitmapToBytes(photoBmp));
        externalBMP = BitmapUtils.cropImageToCircle(photoBmp);
        photoBmp.recycle();
    } else {
        externalBMP = decodeSampledBitmapFromResource(mContext.getResources(), R.drawable.ic_contact_picture_fallback, mViewWidth, mViewHeight);
    }
    synchronized (mCallbacks) {
        for (DetailsLoadedCallback cb : mCallbacks) {
            cb.onDetailsLoaded(externalBMP, mContact.getDisplayName(), mContact.getRingUsername());
        }
        mCallbacks.clear();
    }
}
Also used : Bitmap(android.graphics.Bitmap) VCard(ezvcard.VCard)

Example 19 with VCard

use of ezvcard.VCard in project ring-client-android by savoirfairelinux.

the class ContactRequestsAdapter method onBindViewHolder.

@Override
public void onBindViewHolder(ContactRequestViewHolder holder, int position) {
    final PendingContactRequestsViewModel viewModel = mContactRequestsViewModels.get(position);
    VCard vcard = viewModel.getVCard();
    byte[] contactPhoto = null;
    if (vcard != null && !vcard.getPhotos().isEmpty()) {
        contactPhoto = vcard.getPhotos().get(0).getData();
    }
    Drawable contactPicture = AvatarFactory.getAvatar(holder.itemView.getContext(), contactPhoto, viewModel.getUsername(), viewModel.getUuid());
    Glide.with(holder.itemView.getContext()).load(contactPicture).apply(AvatarFactory.getGlideOptions(true, true)).transition(DrawableTransitionOptions.withCrossFade()).into(holder.mPhoto);
    String fullname = viewModel.getFullname();
    String username = viewModel.getUsername();
    if (!TextUtils.isEmpty(fullname)) {
        holder.mDisplayname.setVisibility(View.GONE);
        holder.mNamelayout.setVisibility(View.VISIBLE);
        holder.mFullname.setText(fullname);
        holder.mUsername.setText(username);
    } else {
        holder.mDisplayname.setVisibility(View.VISIBLE);
        holder.mNamelayout.setVisibility(View.GONE);
        holder.mDisplayname.setText(username);
    }
    holder.bind(mListener, viewModel);
}
Also used : Drawable(android.graphics.drawable.Drawable) VCard(ezvcard.VCard)

Example 20 with VCard

use of ezvcard.VCard in project ring-client-android by savoirfairelinux.

the class VCardServiceImpl method loadSmallVCard.

@Override
public VCard loadSmallVCard(String accountId) {
    VCard vcard = VCardUtils.loadLocalProfileFromDisk(mContext.getFilesDir(), accountId);
    if (vcard != null && !vcard.getPhotos().isEmpty()) {
        // Reduce photo size to fit in one DHT packet
        Bitmap photo = BitmapUtils.bytesToBitmap(vcard.getPhotos().get(0).getData());
        photo = BitmapUtils.reduceBitmap(photo, 30000);
        ByteArrayOutputStream stream = new ByteArrayOutputStream();
        photo.compress(Bitmap.CompressFormat.PNG, 100, stream);
        vcard.removeProperties(Photo.class);
        vcard.addPhoto(new Photo(stream.toByteArray(), ImageType.PNG));
        vcard.removeProperties(RawProperty.class);
    }
    return vcard;
}
Also used : Bitmap(android.graphics.Bitmap) Photo(ezvcard.property.Photo) ByteArrayOutputStream(java.io.ByteArrayOutputStream) VCard(ezvcard.VCard)

Aggregations

VCard (ezvcard.VCard)189 Test (org.junit.Test)134 StringWriter (java.io.StringWriter)29 StructuredName (ezvcard.property.StructuredName)23 Person (com.google.api.services.people.v1.model.Person)22 Telephone (ezvcard.property.Telephone)21 Photo (ezvcard.property.Photo)17 Email (ezvcard.property.Email)16 List (java.util.List)16 EmailAddress (com.google.api.services.people.v1.model.EmailAddress)15 Document (org.w3c.dom.Document)15 VCardVersion (ezvcard.VCardVersion)14 XCardDocumentStreamWriter (ezvcard.io.xml.XCardDocument.XCardDocumentStreamWriter)14 Address (ezvcard.property.Address)14 PhoneNumber (com.google.api.services.people.v1.model.PhoneNumber)13 Collectors (java.util.stream.Collectors)12 Name (com.google.api.services.people.v1.model.Name)11 File (java.io.File)11 Truth.assertThat (com.google.common.truth.Truth.assertThat)10 Pair (com.google.gdata.util.common.base.Pair)10