Index: chrome/browser/autofill/android/personal_data_manager_android.cc |
diff --git a/chrome/browser/autofill/android/personal_data_manager_android.cc b/chrome/browser/autofill/android/personal_data_manager_android.cc |
index 015b99fd71bf7f8c16eceb430fdc75b12415acf0..29e75d1ae456ea8461680aa59c69620d4646faf0 100644 |
--- a/chrome/browser/autofill/android/personal_data_manager_android.cc |
+++ b/chrome/browser/autofill/android/personal_data_manager_android.cc |
@@ -5,6 +5,7 @@ |
#include "chrome/browser/autofill/android/personal_data_manager_android.h" |
#include <stddef.h> |
+#include <algorithm> |
#include <memory> |
#include "base/android/jni_array.h" |
@@ -14,6 +15,7 @@ |
#include "base/memory/weak_ptr.h" |
#include "base/strings/stringprintf.h" |
#include "base/strings/utf_string_conversions.h" |
+#include "base/time/time.h" |
#include "chrome/browser/android/resource_mapper.h" |
#include "chrome/browser/autofill/personal_data_manager_factory.h" |
#include "chrome/browser/browser_process.h" |
@@ -287,21 +289,19 @@ PersonalDataManagerAndroid::~PersonalDataManagerAndroid() { |
personal_data_manager_->RemoveObserver(this); |
} |
-jint PersonalDataManagerAndroid::GetProfileCount( |
- JNIEnv* unused_env, |
+ScopedJavaLocalRef<jobjectArray> |
+PersonalDataManagerAndroid::GetProfileGUIDsToSuggest( |
+ JNIEnv* env, |
const JavaParamRef<jobject>& unused_obj) { |
- return personal_data_manager_->GetProfiles().size(); |
-} |
+ std::vector<AutofillProfile*> profiles = |
+ personal_data_manager_->GetProfilesToSuggest(); |
-ScopedJavaLocalRef<jobject> PersonalDataManagerAndroid::GetProfileByIndex( |
- JNIEnv* env, |
- const JavaParamRef<jobject>& unused_obj, |
- jint index) { |
- const std::vector<AutofillProfile*>& profiles = |
- personal_data_manager_->GetProfiles(); |
- size_t index_size_t = static_cast<size_t>(index); |
- DCHECK_LT(index_size_t, profiles.size()); |
- return CreateJavaProfileFromNative(env, *profiles[index_size_t]); |
+ std::vector<base::string16> guids; |
+ |
+ for (AutofillProfile* profile : profiles) |
+ guids.push_back(base::UTF8ToUTF16(profile->guid())); |
+ |
+ return base::android::ToJavaArrayOfStrings(env, guids); |
} |
ScopedJavaLocalRef<jobject> PersonalDataManagerAndroid::GetProfileByGUID( |
@@ -359,27 +359,25 @@ ScopedJavaLocalRef<jobjectArray> PersonalDataManagerAndroid::GetProfileLabels( |
std::vector<base::string16> labels; |
AutofillProfile::CreateInferredLabels( |
- personal_data_manager_->GetProfiles(), suggested_fields.get(), NAME_FULL, |
- minimal_fields_shown, g_browser_process->GetApplicationLocale(), &labels); |
+ personal_data_manager_->GetProfilesToSuggest(), suggested_fields.get(), |
+ NAME_FULL, minimal_fields_shown, |
+ g_browser_process->GetApplicationLocale(), &labels); |
return base::android::ToJavaArrayOfStrings(env, labels); |
} |
-jint PersonalDataManagerAndroid::GetCreditCardCount( |
- JNIEnv* unused_env, |
- const JavaParamRef<jobject>& unused_obj) { |
- return personal_data_manager_->GetCreditCards().size(); |
-} |
- |
-ScopedJavaLocalRef<jobject> PersonalDataManagerAndroid::GetCreditCardByIndex( |
+base::android::ScopedJavaLocalRef<jobjectArray> |
+PersonalDataManagerAndroid::GetCreditCardGUIDsToSuggest( |
JNIEnv* env, |
- const JavaParamRef<jobject>& unused_obj, |
- jint index) { |
- const std::vector<CreditCard*>& credit_cards = |
- personal_data_manager_->GetCreditCards(); |
- size_t index_size_t = static_cast<size_t>(index); |
- DCHECK_LT(index_size_t, credit_cards.size()); |
- return CreateJavaCreditCardFromNative(env, *credit_cards[index_size_t]); |
+ const base::android::JavaParamRef<jobject>& unused_ob) { |
+ std::vector<CreditCard*> credit_cards = |
+ personal_data_manager_->GetCreditCardsToSuggest(); |
+ |
+ std::vector<base::string16> guids; |
+ for (CreditCard* credit_card : credit_cards) |
+ guids.push_back(base::UTF8ToUTF16(credit_card->guid())); |
+ |
+ return base::android::ToJavaArrayOfStrings(env, guids); |
} |
ScopedJavaLocalRef<jobject> PersonalDataManagerAndroid::GetCreditCardByGUID( |
@@ -456,6 +454,40 @@ bool PersonalDataManagerAndroid::Register(JNIEnv* env) { |
return RegisterNativesImpl(env); |
} |
+void PersonalDataManagerAndroid::SetProfileUseStatsForTest( |
+ JNIEnv* env, |
+ const JavaParamRef<jobject>& unused_obj, |
+ const JavaParamRef<jstring>& jguid, |
+ jint count, |
+ jint date) { |
+ AutofillProfile* profile = personal_data_manager_->GetProfileByGUID( |
+ ConvertJavaStringToUTF8(env, jguid)); |
+ if (!profile) |
+ return; |
+ |
+ size_t count_size_t = static_cast<size_t>(count); |
please use gerrit instead
2016/05/24 20:21:48
You use this variable only once, so it's OK to inl
sebsg
2016/05/24 21:41:22
Done.
|
+ profile->set_use_count(count_size_t); |
+ |
+ profile->set_use_date(base::Time::FromTimeT(date)); |
+} |
+ |
+void PersonalDataManagerAndroid::SetCreditCardUseStatsForTest( |
+ JNIEnv* env, |
+ const JavaParamRef<jobject>& unused_obj, |
+ const JavaParamRef<jstring>& jguid, |
+ jint count, |
+ jint date) { |
+ CreditCard* card = personal_data_manager_->GetCreditCardByGUID( |
+ ConvertJavaStringToUTF8(env, jguid)); |
+ if (!card) |
+ return; |
+ |
+ size_t count_size_t = static_cast<size_t>(count); |
please use gerrit instead
2016/05/24 20:21:48
Inline
sebsg
2016/05/24 21:41:22
Done.
|
+ card->set_use_count(count_size_t); |
+ |
+ card->set_use_date(base::Time::FromTimeT(date)); |
+} |
+ |
// Returns whether the Autofill feature is enabled. |
static jboolean IsAutofillEnabled(JNIEnv* env, |
const JavaParamRef<jclass>& clazz) { |