Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2343)

Unified Diff: base/android/locale_utils.cc

Issue 12598005: [Android] Use generated JNI bindings for locale utils. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « base/android/java/src/org/chromium/base/LocaleUtils.java ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/android/locale_utils.cc
diff --git a/base/android/locale_utils.cc b/base/android/locale_utils.cc
index 49d344128fdf55e358ecaabdff9b6e9604176560..f9c030da4a5fcc93b2d69fd7274fc4eb11323359 100644
--- a/base/android/locale_utils.cc
+++ b/base/android/locale_utils.cc
@@ -44,8 +44,6 @@ std::string GetLocaleComponent(const std::string& locale,
ScopedJavaLocalRef<jobject> NewJavaLocale(
JNIEnv* env,
- ScopedJavaLocalRef<jclass> locale_class,
- jmethodID constructor_id,
const std::string& locale) {
// TODO(wangxianzhu): Use new Locale API once Android supports scripts.
std::string language = GetLocaleComponent(
@@ -54,12 +52,10 @@ ScopedJavaLocalRef<jobject> NewJavaLocale(
locale, uloc_getCountry, ULOC_COUNTRY_CAPACITY);
std::string variant = GetLocaleComponent(
locale, uloc_getVariant, ULOC_FULLNAME_CAPACITY);
- return ScopedJavaLocalRef<jobject>(
- env, env->NewObject(
- locale_class.obj(), constructor_id,
+ return Java_LocaleUtils_getJavaLocale(env,
ConvertUTF8ToJavaString(env, language).obj(),
ConvertUTF8ToJavaString(env, country).obj(),
- ConvertUTF8ToJavaString(env, variant).obj()));
+ ConvertUTF8ToJavaString(env, variant).obj());
}
} // namespace
@@ -67,23 +63,15 @@ ScopedJavaLocalRef<jobject> NewJavaLocale(
string16 GetDisplayNameForLocale(const std::string& locale,
const std::string& display_locale) {
JNIEnv* env = AttachCurrentThread();
+ ScopedJavaLocalRef<jobject> java_locale =
+ NewJavaLocale(env, locale);
+ ScopedJavaLocalRef<jobject> java_display_locale =
+ NewJavaLocale(env, display_locale);
- ScopedJavaLocalRef<jclass> locale_class = GetClass(env, "java/util/Locale");
- jmethodID constructor_id = MethodID::Get<MethodID::TYPE_INSTANCE>(
- env, locale_class.obj(), "<init>",
- "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V");
- ScopedJavaLocalRef<jobject> java_locale = NewJavaLocale(
- env, locale_class, constructor_id, locale);
- ScopedJavaLocalRef<jobject> java_display_locale = NewJavaLocale(
- env, locale_class, constructor_id, display_locale);
-
- jmethodID method_id = MethodID::Get<MethodID::TYPE_INSTANCE>(
- env, locale_class.obj(), "getDisplayName",
- "(Ljava/util/Locale;)Ljava/lang/String;");
ScopedJavaLocalRef<jstring> java_result(
- env,
- static_cast<jstring>(env->CallObjectMethod(java_locale.obj(), method_id,
- java_display_locale.obj())));
+ Java_LocaleUtils_getDisplayNameForLocale(env,
+ java_locale.obj(),
+ java_display_locale.obj()));
return ConvertJavaStringToUTF16(java_result);
}
« no previous file with comments | « base/android/java/src/org/chromium/base/LocaleUtils.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698