| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/android/preferences/autofill/autofill_profile_bridge.h" | 5 #include "chrome/browser/android/preferences/autofill/autofill_profile_bridge.h" |
| 6 | 6 |
| 7 #include <jni.h> | 7 #include <jni.h> |
| 8 | 8 |
| 9 #include "base/android/jni_android.h" | 9 #include "base/android/jni_android.h" |
| 10 #include "base/android/jni_array.h" | 10 #include "base/android/jni_array.h" |
| 11 #include "base/android/jni_string.h" | 11 #include "base/android/jni_string.h" |
| 12 #include "base/bind.h" | 12 #include "base/bind.h" |
| 13 #include "base/strings/utf_string_conversions.h" |
| 13 #include "chrome/browser/browser_process.h" | 14 #include "chrome/browser/browser_process.h" |
| 14 #include "components/autofill/core/browser/autofill_country.h" | 15 #include "components/autofill/core/browser/autofill_country.h" |
| 15 #include "jni/AutofillProfileBridge_jni.h" | 16 #include "jni/AutofillProfileBridge_jni.h" |
| 16 #include "third_party/libaddressinput/src/cpp/include/libaddressinput/address_ui
.h" | 17 #include "third_party/libaddressinput/src/cpp/include/libaddressinput/address_ui
.h" |
| 17 #include "third_party/libaddressinput/src/cpp/include/libaddressinput/address_ui
_component.h" | 18 #include "third_party/libaddressinput/src/cpp/include/libaddressinput/address_ui
_component.h" |
| 18 #include "third_party/libaddressinput/src/cpp/include/libaddressinput/localizati
on.h" | 19 #include "third_party/libaddressinput/src/cpp/include/libaddressinput/localizati
on.h" |
| 19 #include "ui/base/l10n/l10n_util.h" | 20 #include "ui/base/l10n/l10n_util.h" |
| 20 | 21 |
| 21 using base::android::ConvertJavaStringToUTF8; | 22 using base::android::ConvertJavaStringToUTF8; |
| 22 using base::android::ConvertUTF8ToJavaString; | 23 using base::android::ConvertUTF8ToJavaString; |
| (...skipping 29 matching lines...) Expand all Loading... |
| 52 g_browser_process->GetApplicationLocale()); | 53 g_browser_process->GetApplicationLocale()); |
| 53 return ConvertUTF8ToJavaString(env, default_country_code).Release(); | 54 return ConvertUTF8ToJavaString(env, default_country_code).Release(); |
| 54 } | 55 } |
| 55 | 56 |
| 56 static void GetSupportedCountries(JNIEnv* env, | 57 static void GetSupportedCountries(JNIEnv* env, |
| 57 jclass clazz, | 58 jclass clazz, |
| 58 jobject j_country_code_list, | 59 jobject j_country_code_list, |
| 59 jobject j_country_name_list) { | 60 jobject j_country_name_list) { |
| 60 std::vector<std::string> country_codes = | 61 std::vector<std::string> country_codes = |
| 61 ::i18n::addressinput::GetRegionCodes(); | 62 ::i18n::addressinput::GetRegionCodes(); |
| 62 std::vector<base::string16> country_names; | 63 std::vector<std::string> known_country_codes; |
| 64 std::vector<base::string16> known_country_names; |
| 63 std::string locale = g_browser_process->GetApplicationLocale(); | 65 std::string locale = g_browser_process->GetApplicationLocale(); |
| 64 for (auto country_code : country_codes) { | 66 for (auto country_code : country_codes) { |
| 65 country_names.push_back(l10n_util::GetDisplayNameForCountry(country_code, | 67 const base::string16& country_name = |
| 66 locale)); | 68 l10n_util::GetDisplayNameForCountry(country_code, locale); |
| 69 // Don't display a country code for which a name is not known yet. |
| 70 if (country_name != base::UTF8ToUTF16(country_code)) { |
| 71 known_country_codes.push_back(country_code); |
| 72 known_country_names.push_back(country_name); |
| 73 } |
| 67 } | 74 } |
| 68 | 75 |
| 69 Java_AutofillProfileBridge_stringArrayToList(env, | 76 Java_AutofillProfileBridge_stringArrayToList( |
| 70 ToJavaArrayOfStrings( | 77 env, ToJavaArrayOfStrings(env, known_country_codes).obj(), |
| 71 env, country_codes).obj(), | 78 j_country_code_list); |
| 72 j_country_code_list); | 79 Java_AutofillProfileBridge_stringArrayToList( |
| 73 Java_AutofillProfileBridge_stringArrayToList(env, | 80 env, ToJavaArrayOfStrings(env, known_country_names).obj(), |
| 74 ToJavaArrayOfStrings( | 81 j_country_name_list); |
| 75 env, country_names).obj(), | |
| 76 j_country_name_list); | |
| 77 } | 82 } |
| 78 | 83 |
| 79 static jstring GetAddressUiComponents(JNIEnv* env, | 84 static jstring GetAddressUiComponents(JNIEnv* env, |
| 80 jclass clazz, | 85 jclass clazz, |
| 81 jstring j_country_code, | 86 jstring j_country_code, |
| 82 jstring j_language_code, | 87 jstring j_language_code, |
| 83 jobject j_id_list, | 88 jobject j_id_list, |
| 84 jobject j_name_list) { | 89 jobject j_name_list) { |
| 85 std::string best_language_tag; | 90 std::string best_language_tag; |
| 86 std::vector<int> component_ids; | 91 std::vector<int> component_ids; |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 148 | 153 |
| 149 return ConvertUTF8ToJavaString(env, best_language_tag).Release(); | 154 return ConvertUTF8ToJavaString(env, best_language_tag).Release(); |
| 150 } | 155 } |
| 151 | 156 |
| 152 // static | 157 // static |
| 153 bool RegisterAutofillProfileBridge(JNIEnv* env) { | 158 bool RegisterAutofillProfileBridge(JNIEnv* env) { |
| 154 return RegisterNativesImpl(env); | 159 return RegisterNativesImpl(env); |
| 155 } | 160 } |
| 156 | 161 |
| 157 } // namespace autofill | 162 } // namespace autofill |
| OLD | NEW |