Home | History | Annotate | Download | only in native

Lines Matching refs:ICU

18 #define LOG_TAG "ICU"
123 icu::UnicodeString icuCurrencyCode(currencyCode.unicodeString());
133 icu::UnicodeString icuCurrencyCode(currencyCode.unicodeString());
189 icu::UnicodeString icuCurrencyCode(currencyCode.unicodeString());
197 // ICU doesn't distinguish between falling back to the root locale and meeting a genuinely
204 // ICU's default is English. We want the ISO 4217 currency code instead.
230 icu::UnicodeString str;
245 icu::UnicodeString str;
260 icu::UnicodeString str;
275 icu::UnicodeString str;
297 return toStringArray(env, icu::Locale::getISOCountries());
301 return toStringArray(env, icu::Locale::getISOLanguages());
347 static void setStringArrayField(JNIEnv* env, jobject obj, const char* fieldName, const icu::UnicodeString* valueArray, int32_t size) {
373 // first string of that array, the rest of the array is used by ICU
384 ALOGE("Error setting String field %s from ICU resource (index %d): %s", fieldName, index, u_errorName(status));
388 static void setCharField(JNIEnv* env, jobject obj, const char* fieldName, const icu::UnicodeString& value) {
396 static void setStringField(JNIEnv* env, jobject obj, const char* fieldName, const icu::UnicodeString& value) {
401 static void setNumberPatterns(JNIEnv* env, jobject obj, icu::Locale& locale) {
404 icu::UnicodeString pattern;
405 std::unique_ptr<icu::DecimalFormat> fmt(static_cast<icu::DecimalFormat*>(icu::NumberFormat::createInstance(locale, UNUM_CURRENCY, status)));
409 fmt.reset(static_cast<icu::DecimalFormat*>(icu::NumberFormat::createInstance(locale, UNUM_DECIMAL, status)));
413 fmt.reset(static_cast<icu::DecimalFormat*>(icu::NumberFormat::createInstance(locale, UNUM_PERCENT, status)));
418 static void setDecimalFormatSymbolsData(JNIEnv* env, jobject obj, icu::Locale& locale) {
420 icu::DecimalFormatSymbols dfs(locale, status);
422 setCharField(env, obj, "decimalSeparator", dfs.getSymbol(icu::DecimalFormatSymbols::kDecimalSeparatorSymbol));
423 setCharField(env, obj, "groupingSeparator", dfs.getSymbol(icu::DecimalFormatSymbols::kGroupingSeparatorSymbol));
424 setCharField(env, obj, "patternSeparator", dfs.getSymbol(icu::DecimalFormatSymbols::kPatternSeparatorSymbol));
425 setStringField(env, obj, "percent", dfs.getSymbol(icu::DecimalFormatSymbols::kPercentSymbol));
426 setStringField(env, obj, "perMill", dfs.getSymbol(icu::DecimalFormatSymbols::kPerMillSymbol));
427 setCharField(env, obj, "monetarySeparator", dfs.getSymbol(icu::DecimalFormatSymbols::kMonetarySeparatorSymbol));
428 setStringField(env, obj, "minusSign", dfs.getSymbol(icu::DecimalFormatSymbols:: kMinusSignSymbol));
429 setStringField(env, obj, "exponentSeparator", dfs.getSymbol(icu::DecimalFormatSymbols::kExponentialSymbol));
430 setStringField(env, obj, "infinity", dfs.getSymbol(icu::DecimalFormatSymbols::kInfinitySymbol));
431 setStringField(env, obj, "NaN", dfs.getSymbol(icu::DecimalFormatSymbols::kNaNSymbol));
432 icu::DecimalFormatSymbols::kZeroDigitSymbol));
521 static bool getYesterdayTodayAndTomorrow(JNIEnv* env, jobject localeData, const icu::Locale& locale, const char* locale_name) {
531 icu::UnicodeString yesterday(icu::ures_getUnicodeStringByKey(relative.get(), "-1", &status));
532 icu::UnicodeString today(icu::ures_getUnicodeStringByKey(relative.get(), "0", &status));
533 icu::UnicodeString tomorrow(icu::ures_getUnicodeStringByKey(relative.get(), "1", &status));
540 std::unique_ptr<icu::BreakIterator> brk(icu::BreakIterator::createSentenceInstance(locale, status));
561 return JNI_FALSE; // ICU has a fixed-length limit.
579 ALOGE("Couldn't find ICU DateTimePatterns for %s", languageTag.c_str());
592 ALOGE("Couldn't find ICU yesterday/today/tomorrow for %s", languageTag.c_str());
605 ALOGE("Couldn't find ICU AmPmMarkersNarrow for %s", languageTag.c_str());
610 std::unique_ptr<icu::Calendar> cal(icu::Calendar::createInstance(icuLocale.locale(), status));
623 icu::DateFormatSymbols dateFormatSym(icuLocale.locale(), status);
630 const icu::UnicodeString* amPmStrs = dateFormatSym.getAmPmStrings(count);
632 const icu::UnicodeString* erasStrs = dateFormatSym.getEras(count);
635 const icu::UnicodeString* longMonthNames =
636 dateFormatSym.getMonths(count, icu::DateFormatSymbols::FORMAT, icu::DateFormatSymbols::WIDE);
638 const icu::UnicodeString* shortMonthNames =
639 dateFormatSym.getMonths(count, icu::DateFormatSymbols::FORMAT, icu::DateFormatSymbols::ABBREVIATED);
641 const icu::UnicodeString* tinyMonthNames =
642 dateFormatSym.getMonths(count, icu::DateFormatSymbols::FORMAT, icu::DateFormatSymbols::NARROW);
644 const icu::UnicodeString* longWeekdayNames =
645 dateFormatSym.getWeekdays(count, icu::DateFormatSymbols::FORMAT, icu::DateFormatSymbols::WIDE);
647 const icu::UnicodeString* shortWeekdayNames =
648 dateFormatSym.getWeekdays(count, icu::DateFormatSymbols::FORMAT, icu::DateFormatSymbols::ABBREVIATED);
650 const icu::UnicodeString* tinyWeekdayNames =
651 dateFormatSym.getWeekdays(count, icu::DateFormatSymbols::FORMAT, icu::DateFormatSymbols::NARROW);
654 const icu::UnicodeString* longStandAloneMonthNames =
655 dateFormatSym.getMonths(count, icu::DateFormatSymbols::STANDALONE, icu::DateFormatSymbols::WIDE);
657 const icu::UnicodeString* shortStandAloneMonthNames =
658 dateFormatSym.getMonths(count, icu::DateFormatSymbols::STANDALONE, icu::DateFormatSymbols::ABBREVIATED);
660 const icu::UnicodeString* tinyStandAloneMonthNames =
661 dateFormatSym.getMonths(count, icu::DateFormatSymbols::STANDALONE, icu::DateFormatSymbols::NARROW);
663 const icu::UnicodeString* longStandAloneWeekdayNames =
664 dateFormatSym.getWeekdays(count, icu::DateFormatSymbols::STANDALONE, icu::DateFormatSymbols::WIDE);
666 const icu::UnicodeString* shortStandAloneWeekdayNames =
667 dateFormatSym.getWeekdays(count, icu::DateFormatSymbols::STANDALONE, icu::DateFormatSymbols::ABBREVIATED);
669 const icu::UnicodeString* tinyStandAloneWeekdayNames =
670 dateFormatSym.getWeekdays(count, icu::DateFormatSymbols::STANDALONE, icu::DateFormatSymbols::NARROW);
709 icu::UnicodeString& s(scopedString.unicodeString());
710 icu::UnicodeString original(s);
724 icu::UnicodeString& s(scopedString.unicodeString());
725 icu::UnicodeString original(s);
757 const char* version = icu::TimeZone::getTZDataVersion(status);
758 if (maybeThrowIcuException(env, "icu::TimeZone::getTZDataVersion", status)) {
766 icu::UStringEnumeration e(ucurr_openISOCurrencies(UCURR_COMMON|UCURR_NON_DEPRECATED, &status));
777 std::unique_ptr<icu::DateTimePatternGenerator> generator(icu::DateTimePatternGenerator::createInstance(icuLocale.locale(), status));
786 icu::UnicodeString result(generator->getBestPattern(skeletonHolder.unicodeString(), status));
801 icu::Locale::setDefault(icuLocale.locale(), status);
806 return env->NewStringUTF(icu::Locale::getDefault().getName());
810 NATIVE_METHOD(ICU, addLikelySubtags, "(Ljava/lang/String;)Ljava/lang/String;"),
811 NATIVE_METHOD(ICU, getAvailableBreakIteratorLocalesNative, "()[Ljava/lang/String;"),
812 NATIVE_METHOD(ICU, getAvailableCalendarLocalesNative, "()[Ljava/lang/String;"),
813 NATIVE_METHOD(ICU, getAvailableCollatorLocalesNative, "()[Ljava/lang/String;"),
814 NATIVE_METHOD(ICU, getAvailableCurrencyCodes, "()[Ljava/lang/String;"),
815 NATIVE_METHOD(ICU, getAvailableDateFormatLocalesNative, "()[Ljava/lang/String;"),
816 NATIVE_METHOD(ICU, getAvailableLocalesNative, "()[Ljava/lang/String;"),
817 NATIVE_METHOD(ICU
818 NATIVE_METHOD(ICU, getBestDateTimePatternNative, "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;"),
819 NATIVE_METHOD(ICU, getCldrVersion, "()Ljava/lang/String;"),
820 NATIVE_METHOD(ICU, getCurrencyCode, "(Ljava/lang/String;)Ljava/lang/String;"),
821 NATIVE_METHOD(ICU, getCurrencyDisplayName, "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;"),
822 NATIVE_METHOD(ICU, getCurrencyFractionDigits, "(Ljava/lang/String;)I"),
823 NATIVE_METHOD(ICU, getCurrencyNumericCode, "(Ljava/lang/String;)I"),
824 NATIVE_METHOD(ICU, getCurrencySymbol, "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;"),
825 NATIVE_METHOD(ICU, getDefaultLocale, "()Ljava/lang/String;"),
826 NATIVE_METHOD(ICU, getDisplayCountryNative, "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;"),
827 NATIVE_METHOD(ICU, getDisplayLanguageNative, "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;"),
828 NATIVE_METHOD(ICU, getDisplayScriptNative, "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;"),
829 NATIVE_METHOD(ICU, getDisplayVariantNative, "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;"),
830 NATIVE_METHOD(ICU, getISO3Country, "(Ljava/lang/String;)Ljava/lang/String;"),
831 NATIVE_METHOD(ICU, getISO3Language, "(Ljava/lang/String;)Ljava/lang/String;"),
832 NATIVE_METHOD(ICU, getISOCountriesNative, "()[Ljava/lang/String;"),
833 NATIVE_METHOD(ICU, getISOLanguagesNative, "()[Ljava/lang/String;"),
834 NATIVE_METHOD(ICU, getIcuVersion, "()Ljava/lang/String;"),
835 NATIVE_METHOD(ICU, getScript, "(Ljava/lang/String;)Ljava/lang/String;"),
836 NATIVE_METHOD(ICU, getTZDataVersion, "()Ljava/lang/String;"),
837 NATIVE_METHOD(ICU, getUnicodeVersion, "()Ljava/lang/String;"),
838 NATIVE_METHOD(ICU, initLocaleDataNative, "(Ljava/lang/String;Llibcore/icu/LocaleData;)Z"),
839 NATIVE_METHOD(ICU, setDefaultLocale, "(Ljava/lang/String;)V"),
840 NATIVE_METHOD(ICU, toLowerCase, "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;"),
841 NATIVE_METHOD(ICU, toUpperCase, "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;"),
845 // Global initialization & Teardown for ICU Setup
855 ALOGE("Couldn't initialize ICU (" s "): %s (%s)", u_errorName(status), path_.c_str()); \
859 // Contain the memory map for ICU data files.
860 // Automatically adds the data file to ICU's list of data files upon constructing.
864 // Map in ICU data at the path, returning null if it failed (prints error to ALOGE).
869 // madvise or ICU could fail but mmap still succeeds.
877 // Unmap the ICU data.
917 // Tell ICU to use our memory-mapped data.
946 // Init ICU, configuring it and loading the data files.
949 // Tell ICU it can *only* use our memory-mapped data.
952 ALOGE("Couldn't initialize ICU (s_setFileAccess): %s", u_errorName(status));
969 // Use the ICU data files that shipped with the device for everything else.
974 // Failures to find the ICU data tend to be somewhat obscure because ICU loads its data on first
979 ALOGE("Couldn't initialize ICU (u_init): %s", u_errorName(status));
983 jniRegisterNativeMethods(env, "libcore/icu/ICU", gMethods, NELEM(gMethods));
986 // De-init ICU, unloading the data files. Do the opposite of the above function.
993 // Unmap ICU data files that shipped with the device for everything else.
1012 dataPath += "/misc/zoneinfo/current/icu/icu_tzdata.dat";
1026 systemPath += "/usr/icu/";
1040 // Init ICU, configuring it and loading the data files.
1045 // De-init ICU, unloading the data files. Do the opposite of the above function.