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

Side by Side Diff: chrome/browser/android/preferences/autofill/autofill_profile_bridge.cc

Issue 872023002: Use floating labels for preference forms (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Actually commit AddressField.java Created 5 years, 10 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 unified diff | Download patch
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "chrome/browser/android/preferences/autofill/autofill_profile_bridge.h"
6
7 #include <jni.h>
8
9 #include "base/android/jni_android.h"
10 #include "base/android/jni_array.h"
11 #include "base/android/jni_string.h"
12 #include "base/bind.h"
13 #include "jni/AutofillProfileBridge_jni.h"
14 #include "third_party/libaddressinput/src/cpp/include/libaddressinput/address_ui .h"
15 #include "third_party/libaddressinput/src/cpp/include/libaddressinput/address_ui _component.h"
16 #include "third_party/libaddressinput/src/cpp/include/libaddressinput/localizati on.h"
17 #include "ui/base/l10n/l10n_util.h"
18
19 using base::android::ConvertJavaStringToUTF8;
20 using base::android::ToJavaArrayOfStrings;
21 using base::android::ToJavaIntArray;
22
Evan Stade 2015/01/28 03:07:47 namespace autofill
Theresa 2015/01/28 03:33:47 Re comment from newt@: consensus on chromium-dev@
Evan Stade 2015/01/29 01:07:22 The convention in autofill code in src/chrome is t
Theresa 2015/01/29 05:22:14 I am using a method from components/autofill now,
23 static void GetAvailableCountries(JNIEnv* env,
24 jclass clazz,
25 jobject j_country_list) {
26 std::vector<std::string> region_codes =
27 ::i18n::addressinput::GetRegionCodes();
28 Java_AutofillProfileBridge_stringArrayToList(env,
29 ToJavaArrayOfStrings(
30 env, region_codes).obj(),
31 j_country_list);
32 }
33
34 static void GetAddressUiComponents(JNIEnv* env,
35 jclass clazz,
36 jstring j_country_code,
37 jstring j_language_tag,
38 jobject j_id_list,
39 jobject j_name_list) {
40 std::string best_language_tag;
41 std::string language_code;
42 std::vector<int> component_ids;
43 std::vector<std::string> component_labels;
44 ::i18n::addressinput::Localization localization;
45 localization.SetGetter(l10n_util::GetStringUTF8);
46
47 // Format ui_langage_tag by replacing _'s with -'s. The Java strings coming
48 // from Android are in the format en_US and the C++ equivalent is en-US
Evan Stade 2015/01/28 03:07:47 It's not Java vs. C++. Hypens are used in the IETF
newt (away) 2015/01/28 03:15:26 Also, beware the Java's Locale.getDefault() return
Theresa 2015/01/28 03:33:47 estade@ - This string does come from Android, arou
49 std::string language_tag = ConvertJavaStringToUTF8(env, j_language_tag);
50 std::replace(language_tag.begin(), language_tag.end(), '_', '-');
51
52 std::vector<::i18n::addressinput::AddressUiComponent> ui_components =
53 ::i18n::addressinput::BuildComponents(
54 ConvertJavaStringToUTF8(env, j_country_code), localization,
55 language_tag, &best_language_tag);
56
57 for (auto ui_component : ui_components) {
58 component_ids.push_back(ui_component.field);
59 component_labels.push_back(ui_component.name);
60 }
61
62 Java_AutofillProfileBridge_intArrayToList(env,
63 ToJavaIntArray(
64 env, component_ids).obj(),
65 j_id_list);
66 Java_AutofillProfileBridge_stringArrayToList(env,
67 ToJavaArrayOfStrings(
68 env, component_labels).obj(),
69 j_name_list);
70 }
71
72 // static
73 bool RegisterAutofillProfileBridge(JNIEnv* env) {
74 return RegisterNativesImpl(env);
75 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698