1 // Copyright 2013 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.
5 #include "components/autofill/core/browser/android/auxiliary_profile_loader_android.h"
9 #include "base/android/jni_android.h"
10 #include "base/android/jni_array.h"
11 #include "base/android/jni_string.h"
12 #include "jni/PersonalAutofillPopulator_jni.h"
14 #define JAVA_METHOD(__jmethod__) Java_PersonalAutofillPopulator_##__jmethod__( \
20 base::string16 SafeJavaStringToUTF16(
21 const ScopedJavaLocalRef<jstring>& jstring) {
22 if (jstring.is_null())
23 return base::string16();
25 return ConvertJavaStringToUTF16(jstring);
28 void SafeJavaStringArrayToStringVector(
29 const ScopedJavaLocalRef<jobjectArray>& jarray,
31 std::vector<base::string16>* string_vector) {
32 if (!jarray.is_null()) {
33 base::android::AppendJavaStringArrayToStringVector(env,
43 bool RegisterAuxiliaryProfileLoader(JNIEnv* env) {
44 return RegisterNativesImpl(env);
47 AuxiliaryProfileLoaderAndroid::AuxiliaryProfileLoaderAndroid() {}
49 AuxiliaryProfileLoaderAndroid::~AuxiliaryProfileLoaderAndroid() {}
51 void AuxiliaryProfileLoaderAndroid::Init(JNIEnv* env, const jobject& context) {
53 populator_ = Java_PersonalAutofillPopulator_create(env_, context);
56 bool AuxiliaryProfileLoaderAndroid::GetHasPermissions() const {
57 return (bool)JAVA_METHOD(getHasPermissions);
61 base::string16 AuxiliaryProfileLoaderAndroid::GetStreet() const {
62 return SafeJavaStringToUTF16(JAVA_METHOD(getStreet));
65 base::string16 AuxiliaryProfileLoaderAndroid::GetPostOfficeBox() const {
66 return SafeJavaStringToUTF16(JAVA_METHOD(getPobox));
69 base::string16 AuxiliaryProfileLoaderAndroid::GetNeighborhood() const {
70 return SafeJavaStringToUTF16(JAVA_METHOD(getNeighborhood));
73 base::string16 AuxiliaryProfileLoaderAndroid::GetRegion() const {
74 return SafeJavaStringToUTF16(JAVA_METHOD(getRegion));
77 base::string16 AuxiliaryProfileLoaderAndroid::GetCity() const {
78 return SafeJavaStringToUTF16(JAVA_METHOD(getCity));
81 base::string16 AuxiliaryProfileLoaderAndroid::GetPostalCode() const {
82 return SafeJavaStringToUTF16(JAVA_METHOD(getPostalCode));
85 base::string16 AuxiliaryProfileLoaderAndroid::GetCountry() const {
86 return SafeJavaStringToUTF16(JAVA_METHOD(getCountry));
90 base::string16 AuxiliaryProfileLoaderAndroid::GetFirstName() const {
91 return SafeJavaStringToUTF16(JAVA_METHOD(getFirstName));
94 base::string16 AuxiliaryProfileLoaderAndroid::GetMiddleName() const {
95 return SafeJavaStringToUTF16(JAVA_METHOD(getMiddleName));
98 base::string16 AuxiliaryProfileLoaderAndroid::GetLastName() const {
99 return SafeJavaStringToUTF16(JAVA_METHOD(getLastName));
102 base::string16 AuxiliaryProfileLoaderAndroid::GetSuffix() const {
103 return SafeJavaStringToUTF16(JAVA_METHOD(getSuffix));
107 void AuxiliaryProfileLoaderAndroid::GetEmailAddresses(
108 std::vector<base::string16>* email_addresses) const {
109 SafeJavaStringArrayToStringVector(JAVA_METHOD(getEmailAddresses),
115 void AuxiliaryProfileLoaderAndroid::GetPhoneNumbers(
116 std::vector<base::string16>* phone_numbers) const {
117 SafeJavaStringArrayToStringVector(JAVA_METHOD(getPhoneNumbers),