Merge tag android-5.1.0_r1 into AOSP_5.1_MERGE
Change-Id: Iabd5d9f472e0336bff5f6065a40429ebd7e98721
diff --git a/README.android b/README.android
index 4eb0e38..5ce579a 100644
--- a/README.android
+++ b/README.android
@@ -1,5 +1,5 @@
URL: http://code.google.com/p/libphonenumber/
-Version: 6.1 (r658)
+Version: 6.2 (r678)
License: Apache 2
Description: Google Phone Number Library.
Local Modification:
diff --git a/java/release_notes.txt b/java/release_notes.txt
index 19c7388..52a880f 100644
--- a/java/release_notes.txt
+++ b/java/release_notes.txt
@@ -1,3 +1,33 @@
+Jun 30, 2014: libphonenumber-6.2
+* Code changes:
+ - Better exclusion of dates when matching phone numbers from text.
+ - Handle phone input in RFC3966 with missing tel: prefix
+
+* Metadata changes:
+ - New alternate formatting data for country calling code(s): 95
+ - Updated phone metadata for region code(s):
+ AF, CN, EH, FJ, IN, JP, KE, KG, KW, MA, MM, PG, PK, SN, SO
+ - New short number metadata for region code(s): SN
+ - Updated short number metadata for region code(s): FR, KE
+ - Updated geocoding data for country calling code(s): 254 (en)
+ - New carrier data for country calling code(s): 95 (en)
+ - Updated carrier data for country calling code(s):
+ 92 (en), 93 (en), 212 (en), 221 (en), 254 (en), 675 (en), 679 (en), 965 (en),
+ 996 (en)
+
+Jun 06, 2014: libphonenumber-6.1.1
+* Metadata changes:
+ - Updated phone metadata for region code(s):
+ AF, AG, AI, AS, BB, BF, BM, BS, CA, CN, CR, DM, DO, DZ, FR, GD, GU, IN, JM,
+ KH, KN, KW, KY, LC, MN, MP, MS, NG, NI, PH, PR, SX, TC, TT, US, VC, VG, VI
+ - Updated short number metadata for region code(s): AL
+ - New geocoding data for country calling code(s): 1346 (en), 1959 (en)
+ - Updated geocoding data for country calling code(s):
+ 33 (en, fr), 352 (de, en, fr), 355 (en)
+ - New carrier data for country calling code(s): 505 (en)
+ - Updated carrier data for country calling code(s):
+ 63 (en), 91 (en), 93 (en), 234 (en)
+
May 08, 2014: libphonenumber-6.1
* Code changes:
- Adding MetadataLoader support to allow custom metadata loading from
diff --git a/java/src/com/android/i18n/phonenumbers/AlternateFormatsCountryCodeSet.java b/java/src/com/android/i18n/phonenumbers/AlternateFormatsCountryCodeSet.java
index ada3134..860a0f7 100644
--- a/java/src/com/android/i18n/phonenumbers/AlternateFormatsCountryCodeSet.java
+++ b/java/src/com/android/i18n/phonenumbers/AlternateFormatsCountryCodeSet.java
@@ -26,9 +26,9 @@
public class AlternateFormatsCountryCodeSet {
// A set of all country codes for which data is available.
static Set<Integer> getCountryCodeSet() {
- // The capacity is set to 52 as there are 39 different entries,
+ // The capacity is set to 53 as there are 40 different entries,
// and this offers a load factor of roughly 0.75.
- Set<Integer> countryCodeSet = new HashSet<Integer>(52);
+ Set<Integer> countryCodeSet = new HashSet<Integer>(53);
countryCodeSet.add(7);
countryCodeSet.add(27);
@@ -49,6 +49,7 @@
countryCodeSet.add(84);
countryCodeSet.add(90);
countryCodeSet.add(94);
+ countryCodeSet.add(95);
countryCodeSet.add(255);
countryCodeSet.add(350);
countryCodeSet.add(351);
diff --git a/java/src/com/android/i18n/phonenumbers/AsYouTypeFormatter.java b/java/src/com/android/i18n/phonenumbers/AsYouTypeFormatter.java
index 790e66b..7e55e02 100644
--- a/java/src/com/android/i18n/phonenumbers/AsYouTypeFormatter.java
+++ b/java/src/com/android/i18n/phonenumbers/AsYouTypeFormatter.java
@@ -181,7 +181,8 @@
for (NumberFormat format : formatList) {
if (!nationalPrefixIsUsedByCountry || isCompleteNumber ||
format.isNationalPrefixOptionalWhenFormatting() ||
- phoneUtil.formattingRuleHasFirstGroupOnly(format.getNationalPrefixFormattingRule())) {
+ PhoneNumberUtil.formattingRuleHasFirstGroupOnly(
+ format.getNationalPrefixFormattingRule())) {
if (isFormatEligible(format.getFormat())) {
possibleFormats.add(format);
}
diff --git a/java/src/com/android/i18n/phonenumbers/PhoneNumberMatcher.java b/java/src/com/android/i18n/phonenumbers/PhoneNumberMatcher.java
index 149e863..868f7d4 100644
--- a/java/src/com/android/i18n/phonenumbers/PhoneNumberMatcher.java
+++ b/java/src/com/android/i18n/phonenumbers/PhoneNumberMatcher.java
@@ -78,7 +78,7 @@
* trailing ":\d\d" -- that is covered by TIME_STAMPS_SUFFIX.
*/
private static final Pattern TIME_STAMPS =
- Pattern.compile("[12]\\d{3}[-/]?[01]\\d[-/]?[0-3]\\d [0-2]\\d$");
+ Pattern.compile("[12]\\d{3}[-/]?[01]\\d[-/]?[0-3]\\d +[0-2]\\d$");
private static final Pattern TIME_STAMPS_SUFFIX = Pattern.compile(":[0-5]\\d");
/**
diff --git a/java/src/com/android/i18n/phonenumbers/PhoneNumberUtil.java b/java/src/com/android/i18n/phonenumbers/PhoneNumberUtil.java
index bd36708..48a61fa 100644
--- a/java/src/com/android/i18n/phonenumbers/PhoneNumberUtil.java
+++ b/java/src/com/android/i18n/phonenumbers/PhoneNumberUtil.java
@@ -539,8 +539,8 @@
private final Map<Integer, List<String>> countryCallingCodeToRegionCodeMap;
// The set of regions that share country calling code 1.
- // There are roughly 26 regions and we set the initial capacity of the HashSet to 35 to offer a
- // load factor of roughly 0.75.
+ // There are roughly 26 regions.
+ // We set the initial capacity of the HashSet to 35 to offer a load factor of roughly 0.75.
private final Set<String> nanpaRegions = new HashSet<String>(35);
// A mapping from a region code to the PhoneMetadata for that region.
@@ -577,7 +577,7 @@
private final MetadataLoader metadataLoader;
/**
- * This class implements a singleton, so the only constructor is private.
+ * This class implements a singleton, the constructor is only visible to facilitate testing.
*/
// @VisibleForTesting
PhoneNumberUtil(String filePrefix, MetadataLoader metadataLoader,
@@ -803,11 +803,11 @@
}
/**
- * Gets the length of the geographical area code from the {@code nationalNumber_} field of the
- * PhoneNumber object passed in, so that clients could use it to split a national significant
- * number into geographical area code and subscriber number. It works in such a way that the
- * resultant subscriber number should be diallable, at least on some devices. An example of how
- * this could be used:
+ * Gets the length of the geographical area code from the
+ * PhoneNumber object passed in, so that clients could use it
+ * to split a national significant number into geographical area code and subscriber number. It
+ * works in such a way that the resultant subscriber number should be diallable, at least on some
+ * devices. An example of how this could be used:
*
* <pre>
* PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
@@ -838,9 +838,10 @@
* entities
* <li> some geographical numbers have no area codes.
* </ul>
- * @param number the PhoneNumber object for which clients want to know the length of the area
- * code.
- * @return the length of area code of the PhoneNumber object passed in.
+ * @param number the PhoneNumber object for which clients
+ * want to know the length of the area code.
+ * @return the length of area code of the PhoneNumber object
+ * passed in.
*/
public int getLengthOfGeographicalAreaCode(PhoneNumber number) {
PhoneMetadata metadata = getMetadataForRegion(getRegionCodeForNumber(number));
@@ -861,11 +862,12 @@
}
/**
- * Gets the length of the national destination code (NDC) from the PhoneNumber object passed in,
- * so that clients could use it to split a national significant number into NDC and subscriber
- * number. The NDC of a phone number is normally the first group of digit(s) right after the
- * country calling code when the number is formatted in the international format, if there is a
- * subscriber number part that follows. An example of how this could be used:
+ * Gets the length of the national destination code (NDC) from the
+ * PhoneNumber object passed in, so that clients could use it
+ * to split a national significant number into NDC and subscriber number. The NDC of a phone
+ * number is normally the first group of digit(s) right after the country calling code when the
+ * number is formatted in the international format, if there is a subscriber number part that
+ * follows. An example of how this could be used:
*
* <pre>
* PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
@@ -888,8 +890,10 @@
* Refer to the unittests to see the difference between this function and
* {@link #getLengthOfGeographicalAreaCode}.
*
- * @param number the PhoneNumber object for which clients want to know the length of the NDC.
- * @return the length of NDC of the PhoneNumber object passed in.
+ * @param number the PhoneNumber object for which clients
+ * want to know the length of the NDC.
+ * @return the length of NDC of the PhoneNumber object
+ * passed in.
*/
public int getLengthOfNationalDestinationCode(PhoneNumber number) {
PhoneNumber copiedProto;
@@ -1047,6 +1051,11 @@
* Tests whether a phone number has a geographical association. It checks if the number is
* associated to a certain region in the country where it belongs to. Note that this doesn't
* verify if the number is actually in use.
+ *
+ * A similar method is implemented as PhoneNumberOfflineGeocoder.canBeGeocoded, which performs a
+ * looser check, since it only prevents cases where prefixes overlap for geocodable and
+ * non-geocodable numbers. Also, if new phone number types were added, we should check if this
+ * other method should be updated too.
*/
boolean isNumberGeographical(PhoneNumber phoneNumber) {
PhoneNumberType numberType = getNumberType(phoneNumber);
@@ -1111,6 +1120,7 @@
formattedNumber.setLength(0);
int countryCallingCode = number.getCountryCode();
String nationalSignificantNumber = getNationalSignificantNumber(number);
+
if (numberFormat == PhoneNumberFormat.E164) {
// Early exit for E164 case (even if the country calling code is invalid) since no formatting
// of the national number needs to be applied. Extensions are not formatted.
@@ -1337,7 +1347,8 @@
// CL fixed line numbers need the national prefix when dialing in the national format,
// but don't have it when used for display. The reverse is true for mobile numbers.
// As a result, we output them in the international format to make it work.
- ((regionCode.equals("MX") || regionCode.equals("CL")) && isFixedLineOrMobile)) &&
+ ((regionCode.equals("MX") || regionCode.equals("CL")) &&
+ isFixedLineOrMobile)) &&
canBeInternationallyDialled(numberNoExt)) {
formattedNumber = format(numberNoExt, PhoneNumberFormat.INTERNATIONAL);
} else {
@@ -1508,7 +1519,8 @@
}
// When the format we apply to this number doesn't contain national prefix, we can just
// return the national format.
- // TODO: Refactor the code below with the code in isNationalPrefixPresentIfRequired.
+ // TODO: Refactor the code below with the code in
+ // isNationalPrefixPresentIfRequired.
String candidateNationalPrefixRule = formatRule.getNationalPrefixFormattingRule();
// We assume that the first-group symbol will never be _before_ the national prefix.
int indexOfFirstGroup = candidateNationalPrefixRule.indexOf("$1");
@@ -2731,7 +2743,7 @@
private boolean checkRegionForParsing(String numberToParse, String defaultRegion) {
if (!isValidRegionCode(defaultRegion)) {
// If the number is null or empty, we can't infer the region.
- if (numberToParse == null || numberToParse.length() == 0 ||
+ if ((numberToParse == null) || (numberToParse.length() == 0) ||
!PLUS_CHARS_PATTERN.matcher(numberToParse).lookingAt()) {
return false;
}
@@ -3009,9 +3021,13 @@
}
// Now append everything between the "tel:" prefix and the phone-context. This should include
- // the national number, an optional extension or isdn-subaddress component.
- nationalNumber.append(numberToParse.substring(
- numberToParse.indexOf(RFC3966_PREFIX) + RFC3966_PREFIX.length(), indexOfPhoneContext));
+ // the national number, an optional extension or isdn-subaddress component. Note we also
+ // handle the case when "tel:" is missing, as we have seen in some of the phone number inputs.
+ // In that case, we append everything from the beginning.
+ int indexOfRfc3966Prefix = numberToParse.indexOf(RFC3966_PREFIX);
+ int indexOfNationalNumber = (indexOfRfc3966Prefix >= 0) ?
+ indexOfRfc3966Prefix + RFC3966_PREFIX.length() : 0;
+ nationalNumber.append(numberToParse.substring(indexOfNationalNumber, indexOfPhoneContext));
} else {
// Extract a possible number from the string passed in (this strips leading characters that
// could not be the start of a phone number.)
@@ -3204,7 +3220,7 @@
/**
* Returns true if the number can be dialled from outside the region, or unknown. If the number
* can only be dialled from within the region, returns false. Does not check the number is a valid
- * number.
+ * number. Note that, at the moment, this method does not handle short numbers.
* TODO: Make this method public when we have enough metadata to make it worthwhile.
*
* @param number the phone-number for which we want to know whether it is diallable from
diff --git a/java/src/com/android/i18n/phonenumbers/ShortNumbersRegionCodeSet.java b/java/src/com/android/i18n/phonenumbers/ShortNumbersRegionCodeSet.java
index 1fa6aba..dbd5e5c 100644
--- a/java/src/com/android/i18n/phonenumbers/ShortNumbersRegionCodeSet.java
+++ b/java/src/com/android/i18n/phonenumbers/ShortNumbersRegionCodeSet.java
@@ -26,9 +26,9 @@
public class ShortNumbersRegionCodeSet {
// A set of all region codes for which data is available.
static Set<String> getRegionCodeSet() {
- // The capacity is set to 308 as there are 231 different entries,
+ // The capacity is set to 309 as there are 232 different entries,
// and this offers a load factor of roughly 0.75.
- Set<String> regionCodeSet = new HashSet<String>(308);
+ Set<String> regionCodeSet = new HashSet<String>(309);
regionCodeSet.add("AC");
regionCodeSet.add("AD");
@@ -222,6 +222,7 @@
regionCodeSet.add("SK");
regionCodeSet.add("SL");
regionCodeSet.add("SM");
+ regionCodeSet.add("SN");
regionCodeSet.add("SR");
regionCodeSet.add("ST");
regionCodeSet.add("SV");
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_AF b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_AF
index 4d27ff9..d80c596 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_AF
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_AF
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_AG b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_AG
index af2902f..6140377 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_AG
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_AG
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_AI b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_AI
index cfefc77..61bd022 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_AI
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_AI
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_AS b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_AS
index 092dc5a..f2a61e9 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_AS
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_AS
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_BB b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_BB
index 34450f1..8c45b2b 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_BB
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_BB
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_BF b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_BF
index 3bee242..2311f57 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_BF
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_BF
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_BM b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_BM
index cf7481d..0bef470 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_BM
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_BM
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_BS b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_BS
index fadbeae..f385d53 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_BS
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_BS
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_CA b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_CA
index 346373d..4af9017 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_CA
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_CA
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_CN b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_CN
index 576f2ce..ed06d7c 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_CN
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_CN
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_CR b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_CR
index 000c160..e8723bf 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_CR
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_CR
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_DM b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_DM
index 590614d..459a0f2 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_DM
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_DM
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_DO b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_DO
index 603b725..8a4dace 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_DO
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_DO
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_DZ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_DZ
index e76128c..9cbaa30 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_DZ
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_DZ
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_EH b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_EH
index ef10316..f9a97fa 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_EH
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_EH
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_FJ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_FJ
index 9de5002..fe9f621 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_FJ
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_FJ
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_FR b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_FR
index 4548f4b..80e45dd 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_FR
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_FR
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_GD b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_GD
index b1efd3e..9849e74 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_GD
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_GD
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_GU b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_GU
index a034f5d..78a606d 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_GU
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_GU
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_IN b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_IN
index 3a375c7..a575540 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_IN
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_IN
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_JM b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_JM
index d807877..17200e0 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_JM
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_JM
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_JP b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_JP
index ddfad7b..e3b61f1 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_JP
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_JP
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_KE b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_KE
index 609af42..082efc7 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_KE
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_KE
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_KG b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_KG
index dcf1824..08b0175 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_KG
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_KG
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_KH b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_KH
index 46dab59..80a41a1 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_KH
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_KH
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_KN b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_KN
index 4f224bd..e185e76 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_KN
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_KN
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_KW b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_KW
index ac7b1e2..19da153 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_KW
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_KW
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_KY b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_KY
index 98a27ca..720d62c 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_KY
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_KY
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_LC b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_LC
index dd9f1ca..b36be6b 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_LC
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_LC
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_MA b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_MA
index 7773dfe..333d087 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_MA
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_MA
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_MM b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_MM
index c291677..c2cbbdf 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_MM
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_MM
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_MN b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_MN
index ae009dc..0a931c9 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_MN
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_MN
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_MP b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_MP
index 31a0ce9..e0cbcf9 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_MP
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_MP
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_MS b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_MS
index 6eb1cd2..9cc9763 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_MS
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_MS
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_NG b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_NG
index 8adf3bf..384af71 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_NG
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_NG
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_NI b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_NI
index 073b87f..d6d1184 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_NI
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_NI
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_PG b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_PG
index 1fcefcb..ab342f6 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_PG
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_PG
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_PH b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_PH
index 1a5b44d..6f565d6 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_PH
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_PH
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_PK b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_PK
index 8431e72..f569c5c 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_PK
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_PK
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_PR b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_PR
index 05ca6eb..7ce02f2 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_PR
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_PR
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_SN b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_SN
index 81dbee5..694d882 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_SN
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_SN
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_SO b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_SO
index 2b68da6..dbc1074 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_SO
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_SO
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_SX b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_SX
index d3dddd8..472486a 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_SX
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_SX
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_TC b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_TC
index 719123a..409fe59 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_TC
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_TC
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_TT b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_TT
index aa9a9d9..faf11fe 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_TT
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_TT
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_US b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_US
index 1cc77c6..df617b7 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_US
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_US
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_VC b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_VC
index c1be6f7..551e326 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_VC
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_VC
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_VG b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_VG
index aea83e9..28f0f02 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_VG
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_VG
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_VI b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_VI
index e495504..1e79d9e 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_VI
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_VI
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/ShortNumberMetadataProto_AL b/java/src/com/android/i18n/phonenumbers/data/ShortNumberMetadataProto_AL
index 77c7b82..b894829 100644
--- a/java/src/com/android/i18n/phonenumbers/data/ShortNumberMetadataProto_AL
+++ b/java/src/com/android/i18n/phonenumbers/data/ShortNumberMetadataProto_AL
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/ShortNumberMetadataProto_FR b/java/src/com/android/i18n/phonenumbers/data/ShortNumberMetadataProto_FR
index 5fada27..ca76511 100644
--- a/java/src/com/android/i18n/phonenumbers/data/ShortNumberMetadataProto_FR
+++ b/java/src/com/android/i18n/phonenumbers/data/ShortNumberMetadataProto_FR
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/ShortNumberMetadataProto_KE b/java/src/com/android/i18n/phonenumbers/data/ShortNumberMetadataProto_KE
index 4496ace..31013f9 100644
--- a/java/src/com/android/i18n/phonenumbers/data/ShortNumberMetadataProto_KE
+++ b/java/src/com/android/i18n/phonenumbers/data/ShortNumberMetadataProto_KE
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/ShortNumberMetadataProto_SN b/java/src/com/android/i18n/phonenumbers/data/ShortNumberMetadataProto_SN
new file mode 100644
index 0000000..cb8ecc0
--- /dev/null
+++ b/java/src/com/android/i18n/phonenumbers/data/ShortNumberMetadataProto_SN
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/geocoding/data/1346_en b/java/src/com/android/i18n/phonenumbers/geocoding/data/1346_en
new file mode 100644
index 0000000..a3176e2
--- /dev/null
+++ b/java/src/com/android/i18n/phonenumbers/geocoding/data/1346_en
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/geocoding/data/1959_en b/java/src/com/android/i18n/phonenumbers/geocoding/data/1959_en
new file mode 100644
index 0000000..3126e19
--- /dev/null
+++ b/java/src/com/android/i18n/phonenumbers/geocoding/data/1959_en
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/geocoding/data/254_en b/java/src/com/android/i18n/phonenumbers/geocoding/data/254_en
index b21858b..3b413f6 100644
--- a/java/src/com/android/i18n/phonenumbers/geocoding/data/254_en
+++ b/java/src/com/android/i18n/phonenumbers/geocoding/data/254_en
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/geocoding/data/33_en b/java/src/com/android/i18n/phonenumbers/geocoding/data/33_en
index c12cc79..c8f107f 100644
--- a/java/src/com/android/i18n/phonenumbers/geocoding/data/33_en
+++ b/java/src/com/android/i18n/phonenumbers/geocoding/data/33_en
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/geocoding/data/33_fr b/java/src/com/android/i18n/phonenumbers/geocoding/data/33_fr
index 62de895..e6424bb 100644
--- a/java/src/com/android/i18n/phonenumbers/geocoding/data/33_fr
+++ b/java/src/com/android/i18n/phonenumbers/geocoding/data/33_fr
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/geocoding/data/352_de b/java/src/com/android/i18n/phonenumbers/geocoding/data/352_de
index c43da58..d4de4f8 100644
--- a/java/src/com/android/i18n/phonenumbers/geocoding/data/352_de
+++ b/java/src/com/android/i18n/phonenumbers/geocoding/data/352_de
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/geocoding/data/352_en b/java/src/com/android/i18n/phonenumbers/geocoding/data/352_en
index a6a5f62..09aa464 100644
--- a/java/src/com/android/i18n/phonenumbers/geocoding/data/352_en
+++ b/java/src/com/android/i18n/phonenumbers/geocoding/data/352_en
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/geocoding/data/352_fr b/java/src/com/android/i18n/phonenumbers/geocoding/data/352_fr
index 20b8469..dbadfaf 100644
--- a/java/src/com/android/i18n/phonenumbers/geocoding/data/352_fr
+++ b/java/src/com/android/i18n/phonenumbers/geocoding/data/352_fr
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/geocoding/data/355_en b/java/src/com/android/i18n/phonenumbers/geocoding/data/355_en
index b903bcd..5275f69 100644
--- a/java/src/com/android/i18n/phonenumbers/geocoding/data/355_en
+++ b/java/src/com/android/i18n/phonenumbers/geocoding/data/355_en
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/geocoding/data/config b/java/src/com/android/i18n/phonenumbers/geocoding/data/config
index 5cb01c1..a3fc635 100644
--- a/java/src/com/android/i18n/phonenumbers/geocoding/data/config
+++ b/java/src/com/android/i18n/phonenumbers/geocoding/data/config
Binary files differ
diff --git a/java/test/com/android/i18n/phonenumbers/PhoneNumberMatcherTest.java b/java/test/com/android/i18n/phonenumbers/PhoneNumberMatcherTest.java
index 2f58899..be35d5d 100644
--- a/java/test/com/android/i18n/phonenumbers/PhoneNumberMatcherTest.java
+++ b/java/test/com/android/i18n/phonenumbers/PhoneNumberMatcherTest.java
@@ -440,6 +440,10 @@
new NumberTest("2012-01-02 08:00", RegionCode.US),
new NumberTest("2012/01/02 08:00", RegionCode.US),
new NumberTest("20120102 08:00", RegionCode.US),
+ new NumberTest("2014-04-12 04:04 PM", RegionCode.US),
+ new NumberTest("2014-04-12 04:04 PM", RegionCode.US),
+ new NumberTest("2014-04-12 04:04 PM", RegionCode.US),
+ new NumberTest("2014-04-12 04:04 PM", RegionCode.US),
};
/**
diff --git a/java/test/com/android/i18n/phonenumbers/PhoneNumberUtilTest.java b/java/test/com/android/i18n/phonenumbers/PhoneNumberUtilTest.java
index 997430a..48b1b09 100644
--- a/java/test/com/android/i18n/phonenumbers/PhoneNumberUtilTest.java
+++ b/java/test/com/android/i18n/phonenumbers/PhoneNumberUtilTest.java
@@ -1701,6 +1701,8 @@
assertEquals(NZ_NUMBER, phoneUtil.parse("tel:03-331-6005;phone-context=+64", RegionCode.NZ));
assertEquals(NZ_NUMBER, phoneUtil.parse("tel:331-6005;phone-context=+64-3", RegionCode.NZ));
assertEquals(NZ_NUMBER, phoneUtil.parse("tel:331-6005;phone-context=+64-3", RegionCode.US));
+ assertEquals(NZ_NUMBER, phoneUtil.parse(
+ "My number is tel:03-331-6005;phone-context=+64", RegionCode.NZ));
// Test parsing RFC3966 format with optional user-defined parameters. The parameters will appear
// after the context if present.
assertEquals(NZ_NUMBER, phoneUtil.parse("tel:03-331-6005;phone-context=+64;a=%A1",
@@ -1709,6 +1711,8 @@
assertEquals(NZ_NUMBER, phoneUtil.parse("tel:03-331-6005;isub=12345;phone-context=+64",
RegionCode.NZ));
assertEquals(NZ_NUMBER, phoneUtil.parse("tel:+64-3-331-6005;isub=12345", RegionCode.NZ));
+ // Test parsing RFC3966 with "tel:" missing.
+ assertEquals(NZ_NUMBER, phoneUtil.parse("03-331-6005;phone-context=+64", RegionCode.NZ));
// Testing international prefixes.
// Should strip country calling code.
assertEquals(NZ_NUMBER, phoneUtil.parse("0064 3 331 6005", RegionCode.NZ));