Merge "Tidy up our getAvailableLocales methods to actually ask ICU4C." into dalvik-dev
diff --git a/libcore/icu/src/main/java/com/ibm/icu4jni/text/Collator.java b/libcore/icu/src/main/java/com/ibm/icu4jni/text/Collator.java
index f108737..3673d32 100644
--- a/libcore/icu/src/main/java/com/ibm/icu4jni/text/Collator.java
+++ b/libcore/icu/src/main/java/com/ibm/icu4jni/text/Collator.java
@@ -324,8 +324,4 @@
* @stable ICU 2.4
*/
public abstract int hashCode();
-
- public static Locale[] getAvailableLocales() {
- return Resources.localesFromStrings(NativeCollation.getAvailableLocalesImpl());
- }
}
diff --git a/libcore/icu/src/main/java/com/ibm/icu4jni/text/NativeBreakIterator.java b/libcore/icu/src/main/java/com/ibm/icu4jni/text/NativeBreakIterator.java
index 3f67a64..91f2beb 100644
--- a/libcore/icu/src/main/java/com/ibm/icu4jni/text/NativeBreakIterator.java
+++ b/libcore/icu/src/main/java/com/ibm/icu4jni/text/NativeBreakIterator.java
@@ -125,10 +125,6 @@
return precedingImpl(this.addr, offset);
}
- public static Locale[] getAvailableLocales() {
- return Resources.localesFromStrings(getAvailableLocalesImpl());
- }
-
public static NativeBreakIterator getCharacterInstance(Locale where) {
return new NativeBreakIterator(getCharacterInstanceImpl(where.toString()), BI_CHAR_INSTANCE);
}
@@ -145,7 +141,6 @@
return new NativeBreakIterator(getWordInstanceImpl(where.toString()), BI_WORD_INSTANCE);
}
- private static native String[] getAvailableLocalesImpl();
private static native int getCharacterInstanceImpl(String locale);
private static native int getWordInstanceImpl(String locale);
private static native int getLineInstanceImpl(String locale);
diff --git a/libcore/icu/src/main/java/com/ibm/icu4jni/text/NativeCollation.java b/libcore/icu/src/main/java/com/ibm/icu4jni/text/NativeCollation.java
index 7d474ef..fbdcf93 100644
--- a/libcore/icu/src/main/java/com/ibm/icu4jni/text/NativeCollation.java
+++ b/libcore/icu/src/main/java/com/ibm/icu4jni/text/NativeCollation.java
@@ -244,6 +244,4 @@
* @internal ICU 2.4
*/
static native void setOffset(int address, int offset);
-
- static native String[] getAvailableLocalesImpl();
}
diff --git a/libcore/icu/src/main/java/com/ibm/icu4jni/util/Resources.java b/libcore/icu/src/main/java/com/ibm/icu4jni/util/Resources.java
index aae2ff4..874d9be 100644
--- a/libcore/icu/src/main/java/com/ibm/icu4jni/util/Resources.java
+++ b/libcore/icu/src/main/java/com/ibm/icu4jni/util/Resources.java
@@ -39,22 +39,17 @@
/**
* Cache for ISO language names.
*/
- private static String[] isoLanguages = null;
+ private static String[] isoLanguages;
/**
* Cache for ISO country names.
*/
- private static String[] isoCountries = null;
-
- /**
- * Available locales cache.
- */
- private static String[] availableLocales = null;
+ private static String[] isoCountries;
/**
* Available timezones cache.
*/
- private static String[] availableTimezones = null;
+ private static String[] availableTimezones;
/**
* Returns a shared LocaleData for the given locale.
@@ -102,7 +97,7 @@
/**
* Returns an array of ISO language names (two-letter codes), fetched either
* from ICU's database or from our memory cache.
- *
+ *
* @return The array.
*/
public static String[] getISOLanguages() {
@@ -116,7 +111,7 @@
/**
* Returns an array of ISO country names (two-letter codes), fetched either
* from ICU's database or from our memory cache.
- *
+ *
* @return The array.
*/
public static String[] getISOCountries() {
@@ -128,23 +123,9 @@
}
/**
- * Returns an array of names of locales that are available in the system,
- * fetched either from ICU's database or from our memory cache.
- *
- * @return The array.
- */
- public static String[] getAvailableLocales() {
- if (availableLocales == null) {
- availableLocales = getAvailableLocalesNative();
- }
-
- return availableLocales.clone();
- }
-
- /**
* Returns an array of names of timezones that are available in the system,
* fetched either from the TimeZone class or from our memory cache.
- *
+ *
* @return The array.
*/
public static String[] getKnownTimezones() {
@@ -158,7 +139,7 @@
/**
* Returns the display name for the given time zone using the given locale.
- *
+ *
* @param id The time zone ID, for example "Europe/Berlin"
* @param daylight Indicates whether daylight savings is in use
* @param style The style, 0 for long, 1 for short
@@ -261,7 +242,7 @@
/**
* Returns the display names for all given timezones using the given locale.
- *
+ *
* @return An array of time zone strings. Each row represents one time zone.
* The first columns holds the ID of the time zone, for example
* "Europe/Berlin". The other columns then hold for each row the
@@ -274,14 +255,14 @@
if (locale == null) {
locale = defaultLocale;
}
-
+
// If locale == default and the default locale hasn't changed since
// DefaultTimeZones loaded, return the cached names.
// TODO: We should force a reboot if the default locale changes.
if (defaultLocale.equals(locale) && DefaultTimeZones.locale.equals(defaultLocale)) {
return clone2dStringArray(DefaultTimeZones.names);
}
-
+
return createTimeZoneNamesFor(locale);
}
@@ -322,8 +303,51 @@
return result;
}
+ private static Locale[] availableLocalesCache;
+ public static Locale[] getAvailableLocales() {
+ if (availableLocalesCache == null) {
+ availableLocalesCache = localesFromStrings(getAvailableLocalesNative());
+ }
+ return availableLocalesCache.clone();
+ }
+
+ public static Locale[] getAvailableBreakIteratorLocales() {
+ return localesFromStrings(getAvailableBreakIteratorLocalesNative());
+ }
+
+ public static Locale[] getAvailableCalendarLocales() {
+ return localesFromStrings(getAvailableCalendarLocalesNative());
+ }
+
+ public static Locale[] getAvailableCollatorLocales() {
+ return localesFromStrings(getAvailableCollatorLocalesNative());
+ }
+
+ public static Locale[] getAvailableDateFormatLocales() {
+ return localesFromStrings(getAvailableDateFormatLocalesNative());
+ }
+
+ public static Locale[] getAvailableDateFormatSymbolsLocales() {
+ return getAvailableDateFormatLocales();
+ }
+
+ public static Locale[] getAvailableDecimalFormatSymbolsLocales() {
+ return getAvailableNumberFormatLocales();
+ }
+
+ public static Locale[] getAvailableNumberFormatLocales() {
+ return localesFromStrings(getAvailableNumberFormatLocalesNative());
+ }
+
// --- Native methods accessing ICU's database ----------------------------
+ private static native String[] getAvailableBreakIteratorLocalesNative();
+ private static native String[] getAvailableCalendarLocalesNative();
+ private static native String[] getAvailableCollatorLocalesNative();
+ private static native String[] getAvailableDateFormatLocalesNative();
+ private static native String[] getAvailableLocalesNative();
+ private static native String[] getAvailableNumberFormatLocalesNative();
+
public static native String getDisplayCountryNative(String countryCode, String locale);
public static native String getDisplayLanguageNative(String languageCode, String locale);
public static native String getDisplayVariantNative(String variantCode, String locale);
@@ -336,8 +360,6 @@
public static native int getCurrencyFractionDigitsNative(String currencyCode);
- private static native String[] getAvailableLocalesNative();
-
private static native String[] getISOLanguagesNative();
private static native String[] getISOCountriesNative();
diff --git a/libcore/icu/src/main/native/NativeBreakIterator.cpp b/libcore/icu/src/main/native/NativeBreakIterator.cpp
index cd6e712..6cc774b 100644
--- a/libcore/icu/src/main/native/NativeBreakIterator.cpp
+++ b/libcore/icu/src/main/native/NativeBreakIterator.cpp
@@ -22,21 +22,6 @@
#include "unicode/putil.h"
#include <stdlib.h>
-static jobjectArray getAvailableLocalesImpl(JNIEnv* env, jclass) {
- jclass stringClass = env->FindClass("java/lang/String");
- if (stringClass == NULL) {
- return NULL;
- }
- size_t count = ubrk_countAvailable();
- jobjectArray result = env->NewObjectArray(count, stringClass, NULL);
- for (size_t i = 0; i < count; ++i) {
- jstring s = env->NewStringUTF(ubrk_getAvailable(i));
- env->SetObjectArrayElement(result, i, s);
- env->DeleteLocalRef(s);
- }
- return result;
-}
-
static jint getIterator(JNIEnv* env, jstring locale, UBreakIteratorType type) {
UErrorCode status = U_ZERO_ERROR;
ScopedUtfChars localeChars(env, locale);
@@ -140,7 +125,6 @@
{ "currentImpl", "(I)I", (void*) currentImpl },
{ "firstImpl", "(I)I", (void*) firstImpl },
{ "followingImpl", "(II)I", (void*) followingImpl },
- { "getAvailableLocalesImpl", "()[Ljava/lang/String;", (void*) getAvailableLocalesImpl },
{ "getCharacterInstanceImpl", "(Ljava/lang/String;)I", (void*) getCharacterInstanceImpl },
{ "getLineInstanceImpl", "(Ljava/lang/String;)I", (void*) getLineInstanceImpl },
{ "getSentenceInstanceImpl", "(Ljava/lang/String;)I", (void*) getSentenceInstanceImpl },
diff --git a/libcore/icu/src/main/native/NativeCollation.cpp b/libcore/icu/src/main/native/NativeCollation.cpp
index 09f192b..148c16e 100644
--- a/libcore/icu/src/main/native/NativeCollation.cpp
+++ b/libcore/icu/src/main/native/NativeCollation.cpp
@@ -496,24 +496,8 @@
icu4jni_error(env, status);
}
-static jobjectArray getAvailableLocalesImpl(JNIEnv *env, jclass clazz) {
- jclass stringClass = env->FindClass("java/lang/String");
- if (stringClass == NULL) {
- return NULL;
- }
- size_t count = ucol_countAvailable();
- jobjectArray result = env->NewObjectArray(count, stringClass, NULL);
- for (size_t i = 0; i < count; ++i) {
- jstring s = env->NewStringUTF(ucol_getAvailable(i));
- env->SetObjectArrayElement(result, i, s);
- env->DeleteLocalRef(s);
- }
- return result;
-}
-
static JNINativeMethod gMethods[] = {
/* name, signature, funcPtr */
- { "getAvailableLocalesImpl", "()[Ljava/lang/String;", (void*) getAvailableLocalesImpl },
{ "openCollator", "()I", (void*) openCollator__ },
{ "openCollator", "(Ljava/lang/String;)I", (void*) openCollator__Ljava_lang_String_2 },
{ "openCollatorFromRules", "(Ljava/lang/String;II)I", (void*) openCollatorFromRules },
diff --git a/libcore/icu/src/main/native/Resources.cpp b/libcore/icu/src/main/native/Resources.cpp
index 1dd4bff..e4138b1 100644
--- a/libcore/icu/src/main/native/Resources.cpp
+++ b/libcore/icu/src/main/native/Resources.cpp
@@ -20,7 +20,10 @@
#include "cutils/log.h"
#include "unicode/numfmt.h"
#include "unicode/locid.h"
+#include "unicode/ubrk.h"
#include "unicode/ucal.h"
+#include "unicode/ucol.h"
+#include "unicode/udat.h"
#include "unicode/gregocal.h"
#include "unicode/ucurr.h"
#include "unicode/calendar.h"
@@ -239,17 +242,42 @@
return toStringArray(env, Locale::getISOLanguages());
}
-static jobjectArray getAvailableLocalesNative(JNIEnv* env, jclass clazz) {
- size_t count = uloc_countAvailable();
+template <typename Counter, typename Getter>
+static jobjectArray getAvailableLocales(JNIEnv* env, Counter* counter, Getter* getter) {
+ size_t count = (*counter)();
jobjectArray result = env->NewObjectArray(count, string_class, NULL);
for (size_t i = 0; i < count; ++i) {
- jstring s = env->NewStringUTF(uloc_getAvailable(i));
+ jstring s = env->NewStringUTF((*getter)(i));
env->SetObjectArrayElement(result, i, s);
env->DeleteLocalRef(s);
}
return result;
}
+static jobjectArray getAvailableLocalesNative(JNIEnv* env, jclass) {
+ return getAvailableLocales(env, uloc_countAvailable, uloc_getAvailable);
+}
+
+static jobjectArray getAvailableBreakIteratorLocalesNative(JNIEnv* env, jclass) {
+ return getAvailableLocales(env, ubrk_countAvailable, ubrk_getAvailable);
+}
+
+static jobjectArray getAvailableCalendarLocalesNative(JNIEnv* env, jclass) {
+ return getAvailableLocales(env, ucal_countAvailable, ucal_getAvailable);
+}
+
+static jobjectArray getAvailableCollatorLocalesNative(JNIEnv* env, jclass) {
+ return getAvailableLocales(env, ucol_countAvailable, ucol_getAvailable);
+}
+
+static jobjectArray getAvailableDateFormatLocalesNative(JNIEnv* env, jclass) {
+ return getAvailableLocales(env, udat_countAvailable, udat_getAvailable);
+}
+
+static jobjectArray getAvailableNumberFormatLocalesNative(JNIEnv* env, jclass) {
+ return getAvailableLocales(env, unum_countAvailable, unum_getAvailable);
+}
+
static TimeZone* timeZoneFromId(JNIEnv* env, jstring id) {
const jchar* chars = env->GetStringChars(id, NULL);
const UnicodeString zoneID(reinterpret_cast<const UChar*>(chars), env->GetStringLength(id));
@@ -690,42 +718,25 @@
static JNINativeMethod gMethods[] = {
/* name, signature, funcPtr */
- {"getCurrencyFractionDigitsNative", "(Ljava/lang/String;)I",
- (void*) getCurrencyFractionDigitsNative},
- {"getCurrencyCodeNative", "(Ljava/lang/String;)Ljava/lang/String;",
- (void*) getCurrencyCodeNative},
- {"getCurrencySymbolNative", "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;",
- (void*) getCurrencySymbolNative},
- {"getDisplayCountryNative",
- "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;",
- (void*) getDisplayCountryNative},
- {"getDisplayLanguageNative",
- "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;",
- (void*) getDisplayLanguageNative},
- {"getDisplayVariantNative",
- "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;",
- (void*) getDisplayVariantNative},
- {"getISO3CountryNative",
- "(Ljava/lang/String;)Ljava/lang/String;",
- (void*) getISO3CountryNative},
- {"getISO3LanguageNative",
- "(Ljava/lang/String;)Ljava/lang/String;",
- (void*) getISO3LanguageNative},
- {"getISOCountriesNative", "()[Ljava/lang/String;",
- (void*) getISOCountriesNative},
- {"getISOLanguagesNative", "()[Ljava/lang/String;",
- (void*) getISOLanguagesNative},
- {"getAvailableLocalesNative", "()[Ljava/lang/String;",
- (void*) getAvailableLocalesNative},
- {"getTimeZonesNative",
- "([[Ljava/lang/String;Ljava/lang/String;)V",
- (void*) getTimeZonesNative},
- {"getDisplayTimeZoneNative",
- "(Ljava/lang/String;ZILjava/lang/String;)Ljava/lang/String;",
- (void*) getDisplayTimeZoneNative},
- {"initLocaleDataImpl",
- "(Ljava/lang/String;Lcom/ibm/icu4jni/util/LocaleData;)Z",
- (void*) initLocaleDataImpl},
+ {"getAvailableBreakIteratorLocalesNative", "()[Ljava/lang/String;", (void*) getAvailableBreakIteratorLocalesNative},
+ {"getAvailableCalendarLocalesNative", "()[Ljava/lang/String;", (void*) getAvailableCalendarLocalesNative},
+ {"getAvailableCollatorLocalesNative", "()[Ljava/lang/String;", (void*) getAvailableCollatorLocalesNative},
+ {"getAvailableDateFormatLocalesNative", "()[Ljava/lang/String;", (void*) getAvailableDateFormatLocalesNative},
+ {"getAvailableLocalesNative", "()[Ljava/lang/String;", (void*) getAvailableLocalesNative},
+ {"getAvailableNumberFormatLocalesNative", "()[Ljava/lang/String;", (void*) getAvailableNumberFormatLocalesNative},
+ {"getCurrencyCodeNative", "(Ljava/lang/String;)Ljava/lang/String;", (void*) getCurrencyCodeNative},
+ {"getCurrencyFractionDigitsNative", "(Ljava/lang/String;)I", (void*) getCurrencyFractionDigitsNative},
+ {"getCurrencySymbolNative", "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;", (void*) getCurrencySymbolNative},
+ {"getDisplayCountryNative", "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;", (void*) getDisplayCountryNative},
+ {"getDisplayLanguageNative", "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;", (void*) getDisplayLanguageNative},
+ {"getDisplayTimeZoneNative", "(Ljava/lang/String;ZILjava/lang/String;)Ljava/lang/String;", (void*) getDisplayTimeZoneNative},
+ {"getDisplayVariantNative", "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;", (void*) getDisplayVariantNative},
+ {"getISO3CountryNative", "(Ljava/lang/String;)Ljava/lang/String;", (void*) getISO3CountryNative},
+ {"getISO3LanguageNative", "(Ljava/lang/String;)Ljava/lang/String;", (void*) getISO3LanguageNative},
+ {"getISOCountriesNative", "()[Ljava/lang/String;", (void*) getISOCountriesNative},
+ {"getISOLanguagesNative", "()[Ljava/lang/String;", (void*) getISOLanguagesNative},
+ {"getTimeZonesNative", "([[Ljava/lang/String;Ljava/lang/String;)V", (void*) getTimeZonesNative},
+ {"initLocaleDataImpl", "(Ljava/lang/String;Lcom/ibm/icu4jni/util/LocaleData;)Z", (void*) initLocaleDataImpl},
};
int register_com_ibm_icu4jni_util_Resources(JNIEnv* env) {
diff --git a/libcore/luni/src/main/java/java/util/Calendar.java b/libcore/luni/src/main/java/java/util/Calendar.java
index 167db6c..6cb3ec7 100644
--- a/libcore/luni/src/main/java/java/util/Calendar.java
+++ b/libcore/luni/src/main/java/java/util/Calendar.java
@@ -18,6 +18,7 @@
package java.util;
import com.ibm.icu4jni.util.LocaleData;
+import com.ibm.icu4jni.util.Resources;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
@@ -961,7 +962,7 @@
* are available.
*/
public static synchronized Locale[] getAvailableLocales() {
- return Locale.getAvailableLocales();
+ return Resources.getAvailableCalendarLocales();
}
/**
diff --git a/libcore/luni/src/main/java/java/util/Locale.java b/libcore/luni/src/main/java/java/util/Locale.java
index 9b35a0f..75250b4 100644
--- a/libcore/luni/src/main/java/java/util/Locale.java
+++ b/libcore/luni/src/main/java/java/util/Locale.java
@@ -68,10 +68,6 @@
private static final long serialVersionUID = 9149081749638150636L;
- // BEGIN android-added
- private static volatile Locale[] availableLocales;
- // END android-added
-
// Initialize a default which is used during static
// initialization of the default for the platform.
private static Locale defaultLocale = new Locale();
@@ -343,12 +339,7 @@
* @return an array of {@code Locale}s.
*/
public static Locale[] getAvailableLocales() {
- // BEGIN android-changed
- if (availableLocales == null) {
- availableLocales = Resources.localesFromStrings(Resources.getAvailableLocales());
- }
- return availableLocales.clone();
- // END android-changed
+ return Resources.getAvailableLocales();
}
/**
diff --git a/libcore/text/src/main/java/java/text/BreakIterator.java b/libcore/text/src/main/java/java/text/BreakIterator.java
index 0144d1e..901f5ab 100644
--- a/libcore/text/src/main/java/java/text/BreakIterator.java
+++ b/libcore/text/src/main/java/java/text/BreakIterator.java
@@ -15,13 +15,10 @@
* limitations under the License.
*/
-// BEGIN android-note
-// The icu implementation used was changed from icu4j to icu4jni.
-// END android-note
-
package java.text;
import com.ibm.icu4jni.text.NativeBreakIterator;
+import com.ibm.icu4jni.util.Resources;
import java.util.Locale;
import org.apache.harmony.text.internal.nls.Messages;
@@ -256,7 +253,7 @@
* are available.
*/
public static Locale[] getAvailableLocales() {
- return NativeBreakIterator.getAvailableLocales();
+ return Resources.getAvailableBreakIteratorLocales();
}
/**
diff --git a/libcore/text/src/main/java/java/text/CollationElementIterator.java b/libcore/text/src/main/java/java/text/CollationElementIterator.java
index fb562d8..863821c 100644
--- a/libcore/text/src/main/java/java/text/CollationElementIterator.java
+++ b/libcore/text/src/main/java/java/text/CollationElementIterator.java
@@ -17,10 +17,6 @@
package java.text;
-// BEGIN android-note
-// The icu implementation used was changed from icu4j to icu4jni.
-// END android-note
-
/**
* Created by a {@code RuleBasedCollator} to iterate through a string. The
* result of each iteration is a 32-bit collation element that defines the
diff --git a/libcore/text/src/main/java/java/text/Collator.java b/libcore/text/src/main/java/java/text/Collator.java
index bbfc76d..fca464d 100644
--- a/libcore/text/src/main/java/java/text/Collator.java
+++ b/libcore/text/src/main/java/java/text/Collator.java
@@ -15,12 +15,9 @@
* limitations under the License.
*/
-// BEGIN android-note
-// The icu implementation used was changed from icu4j to icu4jni.
-// END android-note
-
package java.text;
+import com.ibm.icu4jni.util.Resources;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.Comparator;
@@ -257,7 +254,7 @@
* are available.
*/
public static Locale[] getAvailableLocales() {
- return com.ibm.icu4jni.text.Collator.getAvailableLocales();
+ return Resources.getAvailableCollatorLocales();
}
/**
diff --git a/libcore/text/src/main/java/java/text/DateFormat.java b/libcore/text/src/main/java/java/text/DateFormat.java
index 57c9852..055cbc3 100644
--- a/libcore/text/src/main/java/java/text/DateFormat.java
+++ b/libcore/text/src/main/java/java/text/DateFormat.java
@@ -15,20 +15,16 @@
* limitations under the License.
*/
-// BEGIN android-note
-// changed from ICU to resource bundles
-// END android-note
-
package java.text;
+import com.ibm.icu4jni.util.LocaleData;
+import com.ibm.icu4jni.util.Resources;
import java.io.InvalidObjectException;
import java.util.Calendar;
import java.util.Date;
import java.util.Hashtable;
import java.util.Locale;
import java.util.TimeZone;
-
-import com.ibm.icu4jni.util.LocaleData;
import org.apache.harmony.text.internal.nls.Messages;
/**
@@ -411,7 +407,7 @@
* are available.
*/
public static Locale[] getAvailableLocales() {
- return Locale.getAvailableLocales();
+ return Resources.getAvailableDateFormatLocales();
}
/**
diff --git a/libcore/text/src/main/java/java/text/DateFormatSymbols.java b/libcore/text/src/main/java/java/text/DateFormatSymbols.java
index b47ca83..f702716 100644
--- a/libcore/text/src/main/java/java/text/DateFormatSymbols.java
+++ b/libcore/text/src/main/java/java/text/DateFormatSymbols.java
@@ -15,22 +15,16 @@
* limitations under the License.
*/
-// BEGIN android-note
-// The icu implementation used was changed from icu4j to icu4jni.
-// END android-note
-
package java.text;
+import com.ibm.icu4jni.util.LocaleData;
+import com.ibm.icu4jni.util.Resources;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.Arrays;
import java.util.Locale;
-// BEGIN android-added
-import com.ibm.icu4jni.util.LocaleData;
-import com.ibm.icu4jni.util.Resources;
-// END android-added
/**
* Encapsulates localizable date-time formatting data, such as the names of the
* months, the names of the days of the week, and the time zone data.
@@ -169,7 +163,7 @@
* @hide
*/
public static Locale[] getAvailableLocales() {
- return Locale.getAvailableLocales();
+ return Resources.getAvailableDateFormatSymbolsLocales();
}
private void writeObject(ObjectOutputStream oos) throws IOException {
diff --git a/libcore/text/src/main/java/java/text/DecimalFormat.java b/libcore/text/src/main/java/java/text/DecimalFormat.java
index 07047b2..e33d407 100644
--- a/libcore/text/src/main/java/java/text/DecimalFormat.java
+++ b/libcore/text/src/main/java/java/text/DecimalFormat.java
@@ -15,10 +15,6 @@
* limitations under the License.
*/
-// BEGIN android-note
-// The icu implementation used was changed from icu4j to icu4jni.
-// END android-note
-
package java.text;
import java.io.IOException;
diff --git a/libcore/text/src/main/java/java/text/DecimalFormatSymbols.java b/libcore/text/src/main/java/java/text/DecimalFormatSymbols.java
index fa1de6d..0ee705c 100644
--- a/libcore/text/src/main/java/java/text/DecimalFormatSymbols.java
+++ b/libcore/text/src/main/java/java/text/DecimalFormatSymbols.java
@@ -17,6 +17,8 @@
package java.text;
+import com.ibm.icu4jni.util.LocaleData;
+import com.ibm.icu4jni.util.Resources;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
@@ -26,8 +28,6 @@
import java.util.Currency;
import java.util.Locale;
-import com.ibm.icu4jni.util.LocaleData;
-
/**
* Encapsulates the set of symbols (such as the decimal separator, the grouping
* separator, and so on) needed by {@code DecimalFormat} to format numbers.
@@ -136,7 +136,7 @@
* @hide
*/
public static Locale[] getAvailableLocales() {
- return Locale.getAvailableLocales();
+ return Resources.getAvailableDecimalFormatSymbolsLocales();
}
/**
diff --git a/libcore/text/src/main/java/java/text/NumberFormat.java b/libcore/text/src/main/java/java/text/NumberFormat.java
index b187f53..2d0c6c5 100644
--- a/libcore/text/src/main/java/java/text/NumberFormat.java
+++ b/libcore/text/src/main/java/java/text/NumberFormat.java
@@ -15,12 +15,10 @@
* limitations under the License.
*/
-// BEGIN android-note
-// changed from ICU to resource bundles
-// END android-note
-
package java.text;
+import com.ibm.icu4jni.util.LocaleData;
+import com.ibm.icu4jni.util.Resources;
import java.io.IOException;
import java.io.InvalidObjectException;
import java.io.ObjectInputStream;
@@ -30,8 +28,6 @@
import java.math.RoundingMode;
import java.util.Currency;
import java.util.Locale;
-
-import com.ibm.icu4jni.util.LocaleData;
import org.apache.harmony.text.internal.nls.Messages;
/**
@@ -319,7 +315,7 @@
* are available.
*/
public static Locale[] getAvailableLocales() {
- return Locale.getAvailableLocales();
+ return Resources.getAvailableNumberFormatLocales();
}
/**
diff --git a/libcore/text/src/main/java/java/text/RuleBasedBreakIterator.java b/libcore/text/src/main/java/java/text/RuleBasedBreakIterator.java
index ed8a7c1..2537f0c 100644
--- a/libcore/text/src/main/java/java/text/RuleBasedBreakIterator.java
+++ b/libcore/text/src/main/java/java/text/RuleBasedBreakIterator.java
@@ -15,10 +15,6 @@
* limitations under the License.
*/
-// BEGIN android-note
-// The icu implementation used was changed from icu4j to icu4jni.
-// END android-note
-
package java.text;
import com.ibm.icu4jni.text.NativeBreakIterator;
diff --git a/libcore/text/src/main/java/java/text/RuleBasedCollator.java b/libcore/text/src/main/java/java/text/RuleBasedCollator.java
index 77b3ffc..6954d8c 100644
--- a/libcore/text/src/main/java/java/text/RuleBasedCollator.java
+++ b/libcore/text/src/main/java/java/text/RuleBasedCollator.java
@@ -15,10 +15,6 @@
* limitations under the License.
*/
-// BEGIN android-note
-// The icu implementation used was changed from icu4j to icu4jni.
-// END android-note
-
package java.text;
import org.apache.harmony.text.internal.nls.Messages;
diff --git a/libcore/text/src/main/java/java/text/SimpleDateFormat.java b/libcore/text/src/main/java/java/text/SimpleDateFormat.java
index 20fff63..d5c06fe 100644
--- a/libcore/text/src/main/java/java/text/SimpleDateFormat.java
+++ b/libcore/text/src/main/java/java/text/SimpleDateFormat.java
@@ -15,10 +15,6 @@
* limitations under the License.
*/
-// BEGIN android-note
-// changed from ICU to resource bundles and Java parsing/formatting
-// END android-note
-
package java.text;
import java.io.IOException;