Browse Source

Refactoring PhoneNumberOfflineGeocoder and updating tests and PhoneNumberUtil.

Review URL: http://codereview.appspot.com/5435067
pull/567/head
Shaopeng Jia 14 years ago
committed by Mihaela Rosca
parent
commit
12993b5935
3 changed files with 14 additions and 7 deletions
  1. +8
    -1
      java/geocoder/src/com/google/i18n/phonenumbers/geocoding/PhoneNumberOfflineGeocoder.java
  2. +5
    -5
      java/geocoder/test/com/google/i18n/phonenumbers/geocoding/PhoneNumberOfflineGeocoderTest.java
  3. +1
    -1
      java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java

+ 8
- 1
java/geocoder/src/com/google/i18n/phonenumbers/geocoding/PhoneNumberOfflineGeocoder.java View File

@ -130,6 +130,13 @@ public class PhoneNumberOfflineGeocoder {
*/
private String getCountryNameForNumber(PhoneNumber number, Locale language) {
String regionCode = phoneUtil.getRegionCodeForNumber(number);
return getRegionDisplayName(regionCode, language);
}
/**
* Returns the customary display name in the given language for the given region.
*/
private String getRegionDisplayName(String regionCode, Locale language) {
return (regionCode == null || regionCode.equals("ZZ"))
? "" : new Locale("", regionCode).getDisplayCountry(language);
}
@ -188,7 +195,7 @@ public class PhoneNumberOfflineGeocoder {
return getDescriptionForValidNumber(number, languageCode);
}
// Otherwise, we just show the region(country) name for now.
return getCountryNameForNumber(number, languageCode);
return getRegionDisplayName(regionCode, languageCode);
// TODO: Concatenate the lower-level and country-name information in an appropriate
// way for each language.
}


+ 5
- 5
java/geocoder/test/com/google/i18n/phonenumbers/geocoding/PhoneNumberOfflineGeocoderTest.java View File

@ -117,13 +117,13 @@ public class PhoneNumberOfflineGeocoderTest extends TestCase {
}
public void testGetDescriptionForNumberWithUserRegion() {
// User in Italy, American number. We should just show United States, in German, and not more
// User in Italy, American number. We should just show United States, in Spanish, and not more
// detailed information.
assertEquals("Vereinigte Staaten von Amerika",
geocoder.getDescriptionForNumber(US_NUMBER1, Locale.GERMAN, "IT"));
assertEquals("Estados Unidos",
geocoder.getDescriptionForNumber(US_NUMBER1, new Locale("es", "ES"), "IT"));
// Unknown region - should just show country name.
assertEquals("Vereinigte Staaten von Amerika",
geocoder.getDescriptionForNumber(US_NUMBER1, Locale.GERMAN, "ZZ"));
assertEquals("Estados Unidos",
geocoder.getDescriptionForNumber(US_NUMBER1, new Locale("es", "ES"), "ZZ"));
// User in the States, language German, should show detailed data.
assertEquals("Kalifornien",
geocoder.getDescriptionForNumber(US_NUMBER1, Locale.GERMAN, "US"));


+ 1
- 1
java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java View File

@ -162,9 +162,9 @@ public class PhoneNumberUtil {
ALPHA_PHONE_MAPPINGS = Collections.unmodifiableMap(combinedMap);
HashMap<Character, Character> diallableCharMap = new HashMap<Character, Character>();
diallableCharMap.putAll(asciiDigitMappings);
diallableCharMap.put('+', '+');
diallableCharMap.put('*', '*');
diallableCharMap.putAll(asciiDigitMappings);
DIALLABLE_CHAR_MAPPINGS = Collections.unmodifiableMap(diallableCharMap);
HashMap<Character, Character> allPlusNumberGroupings = new HashMap<Character, Character>();


Loading…
Cancel
Save