コード例 #1
0
  // 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();
    }
  }
コード例 #2
0
 @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;
   }
 }