Index: chrome/browser/autofill/auxiliary_profile_loader_android.cc |
diff --git a/chrome/browser/autofill/auxiliary_profile_loader_android.cc b/chrome/browser/autofill/auxiliary_profile_loader_android.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..5e449339df0bf7e32ff78ffb8a391095b84e6225 |
--- /dev/null |
+++ b/chrome/browser/autofill/auxiliary_profile_loader_android.cc |
@@ -0,0 +1,103 @@ |
+// Copyright (c) 2013 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include <vector> |
+#include "base/android/jni_android.h" |
+#include "base/android/jni_array.h" |
+#include "base/android/jni_string.h" |
+#include "chrome/browser/autofill/auxiliary_profile_loader_android.h" |
+#include "jni/PersonalAutofillPopulator_jni.h" |
+ |
+#define JM(__jmethod__) Java_PersonalAutofillPopulator_##__jmethod__(env_,\ |
+ populator_.obj()) |
+ |
+namespace { |
+ |
+string16 SafeJavaStringToUTF16(ScopedJavaLocalRef<jstring> jstring) { |
David Trainor- moved to gerrit
2013/02/27 07:49:28
Can we put these into one of our jni android util
apiccion
2013/02/28 01:31:04
Done.
|
+ if (!jstring.is_null()) { |
+ return ConvertJavaStringToUTF16(jstring); |
+ } else { |
+ return string16(); |
+ } |
+} |
+ |
+std::vector<string16> SafeJavaStringArrayToStringVector( |
+ ScopedJavaLocalRef<jobjectArray> jarray, |
+ JNIEnv* env) { |
+ std::vector<string16> stringVector; |
+ if (!jarray.is_null()) { |
+ base::android::AppendJavaStringArrayToStringVector(env, |
+ jarray.obj(), |
+ &stringVector); |
+ } |
+ return stringVector; |
+} |
+ |
+} // namespace |
+ |
+bool RegisterAuxiliaryProfileLoader(JNIEnv* env) { |
+ return RegisterNativesImpl(env); |
+} |
+ |
+AuxiliaryProfileLoaderAndroid::AuxiliaryProfileLoaderAndroid() { |
+ env_ = base::android::AttachCurrentThread(); |
+ populator_ = Java_PersonalAutofillPopulator_create(env_, |
+ base::android::GetApplicationContext()); |
+} |
+ |
+// Address info |
+string16 AuxiliaryProfileLoaderAndroid::GetStreet() { |
+ return SafeJavaStringToUTF16(JM(getStreet)); |
+} |
+ |
+string16 AuxiliaryProfileLoaderAndroid::GetPobox() { |
+ return SafeJavaStringToUTF16(JM(getPobox)); |
+} |
+ |
+string16 AuxiliaryProfileLoaderAndroid::GetNeighborhood() { |
+ return SafeJavaStringToUTF16(JM(getNeighborhood)); |
+} |
+ |
+string16 AuxiliaryProfileLoaderAndroid::GetRegion() { |
+ return SafeJavaStringToUTF16(JM(getRegion)); |
+} |
+ |
+string16 AuxiliaryProfileLoaderAndroid::GetCity() { |
+ return SafeJavaStringToUTF16(JM(getCity)); |
+} |
+ |
+string16 AuxiliaryProfileLoaderAndroid::GetPostalCode() { |
+ return SafeJavaStringToUTF16(JM(getPostalCode)); |
+} |
+ |
+string16 AuxiliaryProfileLoaderAndroid::GetCountry() { |
+ return SafeJavaStringToUTF16(JM(getCountry)); |
+} |
+ |
+// Name info |
+string16 AuxiliaryProfileLoaderAndroid::GetFirstName() { |
+ return SafeJavaStringToUTF16(JM(getFirstName)); |
+} |
+ |
+string16 AuxiliaryProfileLoaderAndroid::GetMiddleName() { |
+ return SafeJavaStringToUTF16(JM(getMiddleName)); |
+} |
+ |
+string16 AuxiliaryProfileLoaderAndroid::GetLastName() { |
+ return SafeJavaStringToUTF16(JM(getLastName)); |
+} |
+ |
+string16 AuxiliaryProfileLoaderAndroid::GetSuffix() { |
+ return SafeJavaStringToUTF16(JM(getSuffix)); |
+} |
+ |
+// Email info |
+std::vector<string16> AuxiliaryProfileLoaderAndroid::GetEmailAddresses() { |
+ return SafeJavaStringArrayToStringVector(JM(getEmailAddresses), env_); |
+} |
+ |
+// Phone info |
+std::vector<string16> AuxiliaryProfileLoaderAndroid::GetPhoneNumbers() { |
+ return SafeJavaStringArrayToStringVector(JM(getPhoneNumbers), env_); |
+} |