Message details: Show only one address per line

Also removed unused field from MessageViewMessageDetailsDialog

Bug 3372971

Change-Id: I8a6d87d006793c0099b380634217624bf9002ead
This commit is contained in:
Makoto Onuki 2011-01-31 14:12:14 -08:00
parent 2d6241e123
commit f33420e68f
4 changed files with 66 additions and 21 deletions

View File

@ -796,10 +796,12 @@ public abstract class MessageViewFragmentBase extends Fragment implements View.O
}
String subject = mMessage.mSubject;
String date = formatDate(mMessage.mTimeStamp, true);
String from = Address.toString(Address.unpack(mMessage.mFrom));
String to = Address.toString(Address.unpack(mMessage.mTo));
String cc = Address.toString(Address.unpack(mMessage.mCc));
String bcc = Address.toString(Address.unpack(mMessage.mBcc));
final String SEPARATOR = "\n";
String from = Address.toString(Address.unpack(mMessage.mFrom), SEPARATOR);
String to = Address.toString(Address.unpack(mMessage.mTo), SEPARATOR);
String cc = Address.toString(Address.unpack(mMessage.mCc), SEPARATOR);
String bcc = Address.toString(Address.unpack(mMessage.mBcc), SEPARATOR);
MessageViewMessageDetailsDialog dialog = MessageViewMessageDetailsDialog.newInstance(
getActivity(), subject, date, from, to, cc, bcc);
dialog.show(getActivity().getFragmentManager(), null);

View File

@ -39,7 +39,6 @@ public class MessageViewMessageDetailsDialog extends DialogFragment {
private static final String BUNDLE_TO = "to";
private static final String BUNDLE_CC = "cc";
private static final String BUNDLE_BCC = "bcc";
private static final String TextView = null;
public static MessageViewMessageDetailsDialog newInstance(Activity parent, String subject,
String date, String from, String to, String cc, String bcc) {

View File

@ -218,6 +218,17 @@ public class Address {
* @return Human readable comma-delimited address string.
*/
public static String toString(Address[] addresses) {
return toString(addresses, ",");
}
/**
* Get human readable address strings joined with the specified separator.
*
* @param addresses Address array
* @param separator Separator
* @return Human readable comma-delimited address string.
*/
public static String toString(Address[] addresses, String separator) {
if (addresses == null || addresses.length == 0) {
return null;
}
@ -226,7 +237,7 @@ public class Address {
}
StringBuffer sb = new StringBuffer(addresses[0].toString());
for (int i = 1; i < addresses.length; i++) {
sb.append(',');
sb.append(separator);
sb.append(addresses[i].toString());
}
return sb.toString();

View File

@ -368,23 +368,56 @@ public class AddressUnitTests extends AndroidTestCase {
* Test various combinations of the toString (multi) method
*/
public void testToStringMulti() {
Address[] addresses = Address.parse(MULTI_ADDRESSES_LIST);
final Address[] address = Address.parse("noname1@dom1.com");
final Address[] addresses = Address.parse(MULTI_ADDRESSES_LIST);
assertEquals("multi addrsses count", MULTI_ADDRESSES_COUNT, addresses.length);
String line = Address.toString(addresses);
assertEquals("toString multi",
"noname1@dom1.com,"
+ "noname2@dom2.com,"
+ "simple name <address3@dom3.org>,"
+ "\"name,4\" <address4@dom4.org>,"
+ "\"big \"G\"\" <bigG@dom5.net>,"
+ "\u65E5\u672C\u8A9E <address6@co.jp>,"
+ "\u65E5\u672C\u8A9E <address7@co.jp>,"
+ "\uD834\uDF01\uD834\uDF46 <address8@ne.jp>,"
+ "\uD834\uDF01\uD834\uDF46 <address9@ne.jp>,"
+ "noname@dom.com",
line);
{
String line = Address.toString(address);
assertEquals("toString multi-1",
"noname1@dom1.com",
line);
}
{
String line = Address.toString(addresses);
assertEquals("toString multi-n",
"noname1@dom1.com,"
+ "noname2@dom2.com,"
+ "simple name <address3@dom3.org>,"
+ "\"name,4\" <address4@dom4.org>,"
+ "\"big \"G\"\" <bigG@dom5.net>,"
+ "\u65E5\u672C\u8A9E <address6@co.jp>,"
+ "\u65E5\u672C\u8A9E <address7@co.jp>,"
+ "\uD834\uDF01\uD834\uDF46 <address8@ne.jp>,"
+ "\uD834\uDF01\uD834\uDF46 <address9@ne.jp>,"
+ "noname@dom.com",
line);
}
// With custom separator
{
String line = Address.toString(address, "$");
assertEquals("toString multi-1",
"noname1@dom1.com",
line);
}
{
String line = Address.toString(addresses, "$");
assertEquals("toString multi-n",
"noname1@dom1.com$"
+ "noname2@dom2.com$"
+ "simple name <address3@dom3.org>$"
+ "\"name,4\" <address4@dom4.org>$"
+ "\"big \"G\"\" <bigG@dom5.net>$"
+ "\u65E5\u672C\u8A9E <address6@co.jp>$"
+ "\u65E5\u672C\u8A9E <address7@co.jp>$"
+ "\uD834\uDF01\uD834\uDF46 <address8@ne.jp>$"
+ "\uD834\uDF01\uD834\uDF46 <address9@ne.jp>$"
+ "noname@dom.com",
line);
}
}
/**
@ -480,7 +513,7 @@ public class AddressUnitTests extends AndroidTestCase {
noName1, noName2, simpleName, dquoteName, quotedName, utf16Name, utf32Name,
};
String line = Address.toHeader(addresses);
assertEquals("toHeader() multi",
"noname1@dom1.com, "
+ "noname2@dom2.com, "