public String[] getNumbers(boolean scrubForMmsAddress) {
    List<String> numbers = new ArrayList<String>();
    String number;
    for (Contact c : this) {
      number = c.getNumber();

      if (scrubForMmsAddress) {
        // parse/scrub the address for valid MMS address. The returned number
        // could be null if it's not a valid MMS address. We don't want to send
        // a message to an invalid number, as the network may do its own stripping,
        // and end up sending the message to a different number!
        number = MessageUtils.parseMmsAddress(number);
      }

      // Don't add duplicate numbers. This can happen if a contact name has a comma.
      // Since we use a comma as a delimiter between contacts, the code will consider
      // the same recipient has been added twice. The recipients UI still works correctly.
      // It's easiest to just make sure we only send to the same recipient once.
      if (!TextUtils.isEmpty(number) && !numbers.contains(number)) {
        numbers.add(number);
      }
    }
    return numbers.toArray(new String[numbers.size()]);
  }