am eb114de5: Merge change I639b0f03 into eclair-mr2
Merge commit 'eb114de5037bba89333bd7d57d305ae989727096' into eclair-mr2-plus-aosp * commit 'eb114de5037bba89333bd7d57d305ae989727096': Make vCard exporter append neighborhood to locality field instead of extended address,
This commit is contained in:
@@ -839,14 +839,14 @@ public class VCardBuilder {
|
||||
// ; PO Box, Extended Address, Street, Locality, Region, Postal
|
||||
// ; Code, Country Name
|
||||
final String rawPoBox = contentValues.getAsString(StructuredPostal.POBOX);
|
||||
final String rawExtendedAddress = contentValues.getAsString(StructuredPostal.NEIGHBORHOOD);
|
||||
final String rawNeighborhood = contentValues.getAsString(StructuredPostal.NEIGHBORHOOD);
|
||||
final String rawStreet = contentValues.getAsString(StructuredPostal.STREET);
|
||||
final String rawLocality = contentValues.getAsString(StructuredPostal.CITY);
|
||||
final String rawRegion = contentValues.getAsString(StructuredPostal.REGION);
|
||||
final String rawPostalCode = contentValues.getAsString(StructuredPostal.POSTCODE);
|
||||
final String rawCountry = contentValues.getAsString(StructuredPostal.COUNTRY);
|
||||
final String[] rawAddressArray = new String[]{
|
||||
rawPoBox, rawExtendedAddress, rawStreet, rawLocality,
|
||||
rawPoBox, rawNeighborhood, rawStreet, rawLocality,
|
||||
rawRegion, rawPostalCode, rawCountry};
|
||||
if (!VCardUtils.areAllEmpty(rawAddressArray)) {
|
||||
final boolean reallyUseQuotedPrintable =
|
||||
@@ -855,33 +855,55 @@ public class VCardBuilder {
|
||||
final boolean appendCharset =
|
||||
!VCardUtils.containsOnlyPrintableAscii(rawAddressArray);
|
||||
final String encodedPoBox;
|
||||
final String encodedExtendedAddress;
|
||||
final String encodedStreet;
|
||||
final String encodedLocality;
|
||||
final String encodedRegion;
|
||||
final String encodedPostalCode;
|
||||
final String encodedCountry;
|
||||
final String encodedNeighborhood;
|
||||
|
||||
final String rawLocality2;
|
||||
// This looks inefficient since we encode rawLocality and rawNeighborhood twice,
|
||||
// but this is intentional.
|
||||
//
|
||||
// QP encoding may add line feeds when needed and the result of
|
||||
// - encodeQuotedPrintable(rawLocality + " " + rawNeighborhood)
|
||||
// may be different from
|
||||
// - encodedLocality + " " + encodedNeighborhood.
|
||||
//
|
||||
// We use safer way.
|
||||
if (TextUtils.isEmpty(rawLocality)) {
|
||||
if (TextUtils.isEmpty(rawNeighborhood)) {
|
||||
rawLocality2 = "";
|
||||
} else {
|
||||
rawLocality2 = rawNeighborhood;
|
||||
}
|
||||
} else {
|
||||
if (TextUtils.isEmpty(rawNeighborhood)) {
|
||||
rawLocality2 = rawLocality;
|
||||
} else {
|
||||
rawLocality2 = rawLocality + " " + rawNeighborhood;
|
||||
}
|
||||
}
|
||||
if (reallyUseQuotedPrintable) {
|
||||
encodedPoBox = encodeQuotedPrintable(rawPoBox);
|
||||
encodedExtendedAddress = encodeQuotedPrintable(rawExtendedAddress);
|
||||
encodedStreet = encodeQuotedPrintable(rawStreet);
|
||||
encodedLocality = encodeQuotedPrintable(rawLocality);
|
||||
encodedLocality = encodeQuotedPrintable(rawLocality2);
|
||||
encodedRegion = encodeQuotedPrintable(rawRegion);
|
||||
encodedPostalCode = encodeQuotedPrintable(rawPostalCode);
|
||||
encodedCountry = encodeQuotedPrintable(rawCountry);
|
||||
} else {
|
||||
encodedPoBox = escapeCharacters(rawPoBox);
|
||||
encodedExtendedAddress = escapeCharacters(rawExtendedAddress);
|
||||
encodedStreet = escapeCharacters(rawStreet);
|
||||
encodedLocality = escapeCharacters(rawLocality);
|
||||
encodedLocality = escapeCharacters(rawLocality2);
|
||||
encodedRegion = escapeCharacters(rawRegion);
|
||||
encodedPostalCode = escapeCharacters(rawPostalCode);
|
||||
encodedCountry = escapeCharacters(rawCountry);
|
||||
encodedNeighborhood = escapeCharacters(rawNeighborhood);
|
||||
}
|
||||
final StringBuffer addressBuffer = new StringBuffer();
|
||||
addressBuffer.append(encodedPoBox);
|
||||
addressBuffer.append(VCARD_ITEM_SEPARATOR);
|
||||
addressBuffer.append(encodedExtendedAddress);
|
||||
addressBuffer.append(VCARD_ITEM_SEPARATOR);
|
||||
addressBuffer.append(encodedStreet);
|
||||
addressBuffer.append(VCARD_ITEM_SEPARATOR);
|
||||
|
||||
@@ -563,9 +563,11 @@ public class VCardExporterTests extends VCardTestsBase {
|
||||
// adr-value = 0*6(text-value ";") text-value
|
||||
// ; PO Box, Extended Address, Street, Locality, Region, Postal Code,
|
||||
// ; Country Name
|
||||
//
|
||||
// The NEIGHBORHOOD field is appended after the CITY field.
|
||||
verifier.addPropertyNodesVerifierElemWithEmptyName()
|
||||
.addNodeWithoutOrder("ADR",
|
||||
Arrays.asList("Pobox", "Neighborhood", "Street", "City",
|
||||
Arrays.asList("Pobox", "", "Street", "City Neighborhood",
|
||||
"Region", "100", "Country"), new TypeSet("WORK"));
|
||||
verifier.verify();
|
||||
}
|
||||
@@ -578,6 +580,44 @@ public class VCardExporterTests extends VCardTestsBase {
|
||||
testPostalAddressCommon(V30);
|
||||
}
|
||||
|
||||
private void testPostalAddressNonNeighborhood(int vcardType) {
|
||||
VCardVerifier verifier = new VCardVerifier(vcardType);
|
||||
ContactEntry entry = verifier.addInputEntry();
|
||||
entry.buildData(StructuredPostal.CONTENT_ITEM_TYPE)
|
||||
.put(StructuredPostal.CITY, "City");
|
||||
verifier.addPropertyNodesVerifierElemWithEmptyName()
|
||||
.addNodeWithoutOrder("ADR",
|
||||
Arrays.asList("", "", "", "City", "", "", ""), new TypeSet("HOME"));
|
||||
verifier.verify();
|
||||
}
|
||||
|
||||
public void testPostalAddressNonNeighborhoodV21() {
|
||||
testPostalAddressNonNeighborhood(V21);
|
||||
}
|
||||
|
||||
public void testPostalAddressNonNeighborhoodV30() {
|
||||
testPostalAddressNonNeighborhood(V30);
|
||||
}
|
||||
|
||||
private void testPostalAddressNonCity(int vcardType) {
|
||||
VCardVerifier verifier = new VCardVerifier(vcardType);
|
||||
ContactEntry entry = verifier.addInputEntry();
|
||||
entry.buildData(StructuredPostal.CONTENT_ITEM_TYPE)
|
||||
.put(StructuredPostal.NEIGHBORHOOD, "Neighborhood");
|
||||
verifier.addPropertyNodesVerifierElemWithEmptyName()
|
||||
.addNodeWithoutOrder("ADR",
|
||||
Arrays.asList("", "", "", "Neighborhood", "", "", ""), new TypeSet("HOME"));
|
||||
verifier.verify();
|
||||
}
|
||||
|
||||
public void testPostalAddressNonCityV21() {
|
||||
testPostalAddressNonCity(V21);
|
||||
}
|
||||
|
||||
public void testPostalAddressNonCityV30() {
|
||||
testPostalAddressNonCity(V30);
|
||||
}
|
||||
|
||||
private void testPostalOnlyWithFormattedAddressCommon(int vcardType) {
|
||||
VCardVerifier verifier = new VCardVerifier(vcardType);
|
||||
ContactEntry entry = verifier.addInputEntry();
|
||||
|
||||
@@ -210,8 +210,6 @@ public class VCardJapanizationTests extends VCardTestsBase {
|
||||
ContactEntry entry = verifier.addInputEntry();
|
||||
entry.buildData(StructuredPostal.CONTENT_ITEM_TYPE)
|
||||
.put(StructuredPostal.POBOX, "\u79C1\u66F8\u7BB107")
|
||||
.put(StructuredPostal.NEIGHBORHOOD,
|
||||
"\u30A2\u30D1\u30FC\u30C8\u0020\u0033\u0034\u53F7\u5BA4")
|
||||
.put(StructuredPostal.STREET, "\u96DB\u898B\u6CA2\u6751")
|
||||
.put(StructuredPostal.CITY, "\u9E7F\u9AA8\u5E02")
|
||||
.put(StructuredPostal.REGION, "\u00D7\u00D7\u770C")
|
||||
@@ -233,29 +231,22 @@ public class VCardJapanizationTests extends VCardTestsBase {
|
||||
// LABEL must be ignored in vCard 2.1. As for vCard 3.0, the current behavior is
|
||||
// same as that in vCard 3.0, which can be changed in the future.
|
||||
elem.addNodeWithoutOrder("ADR", Arrays.asList("\u79C1\u66F8\u7BB107",
|
||||
"\u30A2\u30D1\u30FC\u30C8\u0020\u0033\u0034\u53F7\u5BA4",
|
||||
"\u96DB\u898B\u6CA2\u6751", "\u9E7F\u9AA8\u5E02", "\u00D7\u00D7\u770C",
|
||||
"", "\u96DB\u898B\u6CA2\u6751", "\u9E7F\u9AA8\u5E02", "\u00D7\u00D7\u770C",
|
||||
"494-1313", "\u65E5\u672C"),
|
||||
contentValues);
|
||||
// NEIGHBORHOOD is "not" used. Instead, "Extended address" is appended into the
|
||||
// other field with a space.
|
||||
verifier.addImportVerifier().addExpected(StructuredPostal.CONTENT_ITEM_TYPE)
|
||||
.put(StructuredPostal.POBOX, "\u79C1\u66F8\u7BB107")
|
||||
.put(StructuredPostal.STREET, "\u96DB\u898B\u6CA2\u6751 "
|
||||
+ "\u30A2\u30D1\u30FC\u30C8\u0020\u0033\u0034\u53F7\u5BA4")
|
||||
.put(StructuredPostal.CITY, "\u9E7F\u9AA8\u5E02")
|
||||
.put(StructuredPostal.STREET, "\u96DB\u898B\u6CA2\u6751")
|
||||
.put(StructuredPostal.CITY, "\u9E7F\u9AA8\u5E02")
|
||||
.put(StructuredPostal.REGION, "\u00D7\u00D7\u770C")
|
||||
.put(StructuredPostal.POSTCODE, "494-1313")
|
||||
.put(StructuredPostal.COUNTRY, "\u65E5\u672C")
|
||||
.put(StructuredPostal.FORMATTED_ADDRESS,
|
||||
"\u65E5\u672C 494-1313 \u00D7\u00D7\u770C \u9E7F\u9AA8\u5E02 " +
|
||||
"\u96DB\u898B\u6CA2\u6751 "
|
||||
+ "\u30A2\u30D1\u30FC\u30C8\u0020\u0033\u0034\u53F7\u5BA4 " +
|
||||
"\u79C1\u66F8\u7BB107")
|
||||
"\u96DB\u898B\u6CA2\u6751 " + "\u79C1\u66F8\u7BB107")
|
||||
.put(StructuredPostal.TYPE, StructuredPostal.TYPE_HOME);
|
||||
verifier.verify();
|
||||
}
|
||||
|
||||
public void testPostalAddresswithJapaneseV21() {
|
||||
testPostalAddressWithJapaneseCommon(VCardConfig.VCARD_TYPE_V21_JAPANESE_SJIS);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user