Improved address handling

This commit is contained in:
M66B
2019-01-18 14:25:26 +00:00
parent d9528a3ca4
commit aadbeec1d9
5 changed files with 54 additions and 40 deletions

View File

@@ -499,7 +499,22 @@ public class MessageHelper {
return (size < 0 ? null : size);
}
static String getFormattedAddresses(Address[] addresses, boolean full) {
static String formatAddresses(Address[] addresses) {
return formatAddresses(addresses, true, false);
}
static String formatAddressesShort(Address[] addresses) {
return formatAddresses(addresses, false, false);
}
static String formatAddressesCompose(Address[] addresses) {
String result = formatAddresses(addresses, true, true);
if (!TextUtils.isEmpty(result))
result += ", ";
return result;
}
private static String formatAddresses(Address[] addresses, boolean full, boolean compose) {
if (addresses == null || addresses.length == 0)
return "";
@@ -511,7 +526,17 @@ public class MessageHelper {
if (TextUtils.isEmpty(personal))
formatted.add(address.toString());
else {
personal = personal.replaceAll("[\\,\\<\\>]", "");
if (compose) {
boolean quote = false;
for (int i = 0; i < personal.length(); i++)
if ("()<>,;:\\\"[]@".indexOf(personal.charAt(i)) >= 0) {
quote = true;
break;
}
if (quote)
personal = "\"" + personal + "\"";
}
if (full)
formatted.add(personal + " <" + a.getAddress() + ">");
else