Chromium Code Reviews| 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) { |