// Overriden so we can hyphenate phone numbers, format birthdays, and bold the name. @Override public CharSequence getDisplayContents() { AddressBookParsedResult result = (AddressBookParsedResult) getResult(); StringBuilder contents = new StringBuilder(100); ParsedResult.maybeAppend(result.getNames(), contents); int namesLength = contents.length(); String pronunciation = result.getPronunciation(); if (pronunciation != null && !pronunciation.isEmpty()) { contents.append("\n("); contents.append(pronunciation); contents.append(')'); } ParsedResult.maybeAppend(result.getTitle(), contents); ParsedResult.maybeAppend(result.getOrg(), contents); ParsedResult.maybeAppend(result.getAddresses(), contents); String[] numbers = result.getPhoneNumbers(); if (numbers != null) { for (String number : numbers) { if (number != null) { ParsedResult.maybeAppend(PhoneNumberUtils.formatNumber(number), contents); } } } ParsedResult.maybeAppend(result.getEmails(), contents); ParsedResult.maybeAppend(result.getURLs(), contents); String birthday = result.getBirthday(); if (birthday != null && !birthday.isEmpty()) { Date date = parseDate(birthday); if (date != null) { ParsedResult.maybeAppend( DateFormat.getDateInstance(DateFormat.MEDIUM).format(date.getTime()), contents); } } ParsedResult.maybeAppend(result.getNote(), contents); if (namesLength > 0) { // Bold the full name to make it stand out a bit. Spannable styled = new SpannableString(contents.toString()); styled.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 0, namesLength, 0); return styled; } else { return contents.toString(); } }
private void encodeQRCodeContents(AddressBookParsedResult contact) { ContactEncoder encoder = useVCard ? new VCardContactEncoder() : new MECARDContactEncoder(); String[] encoded = encoder.encode( toIterable(contact.getNames()), contact.getOrg(), toIterable(contact.getAddresses()), toIterable(contact.getPhoneNumbers()), toIterable(contact.getEmails()), toIterable(contact.getURLs()), null); // Make sure we've encoded at least one field. if (encoded[1].length() > 0) { contents = encoded[0]; displayContents = encoded[1]; title = activity.getString(R.string.contents_text); } }
@Override public void handleButtonPress(int index) { AddressBookParsedResult addressResult = (AddressBookParsedResult) getResult(); String[] addresses = addressResult.getAddresses(); String address1 = addresses == null || addresses.length < 1 ? null : addresses[0]; String[] addressTypes = addressResult.getAddressTypes(); String address1Type = addressTypes == null || addressTypes.length < 1 ? null : addressTypes[0]; int action = mapIndexToAction(index); switch (action) { case 0: addContact( addressResult.getNames(), addressResult.getNicknames(), addressResult.getPronunciation(), addressResult.getPhoneNumbers(), addressResult.getPhoneTypes(), addressResult.getEmails(), addressResult.getEmailTypes(), addressResult.getNote(), addressResult.getInstantMessenger(), address1, address1Type, addressResult.getOrg(), addressResult.getTitle(), addressResult.getURLs(), addressResult.getBirthday(), addressResult.getGeo()); break; case 1: String[] names = addressResult.getNames(); String title = names != null ? names[0] : null; searchMap(address1, title); break; case 2: dialPhone(addressResult.getPhoneNumbers()[0]); break; case 3: sendEmail(addressResult.getEmails()[0], null, null); break; default: break; } }