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..fac76d1271cf0234a73f7ec519c3bdf47a454fdd 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" |
@@ -290,18 +292,23 @@ PersonalDataManagerAndroid::~PersonalDataManagerAndroid() { |
jint PersonalDataManagerAndroid::GetProfileCount( |
Mathieu
2016/05/20 13:57:08
Looks like this function can be removed?
If not,
sebsg
2016/05/24 17:27:32
Done.
|
JNIEnv* unused_env, |
const JavaParamRef<jobject>& unused_obj) { |
- return personal_data_manager_->GetProfiles().size(); |
+ return personal_data_manager_->GetProfilesToSuggest().size(); |
} |
-ScopedJavaLocalRef<jobject> PersonalDataManagerAndroid::GetProfileByIndex( |
+ScopedJavaLocalRef<jobjectArray> |
+PersonalDataManagerAndroid::GetProfileGUIDsToSuggest( |
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]); |
+ const JavaParamRef<jobject>& unused_obj) { |
+ std::vector<AutofillProfile*> profiles = |
+ personal_data_manager_->GetProfilesToSuggest(); |
+ |
+ std::vector<base::string16> guids; |
+ |
+ for (AutofillProfile* profile : profiles) { |
Mathieu
2016/05/20 13:57:08
nit: no need for braces here and below
sebsg
2016/05/24 17:27:32
Done.
|
+ guids.push_back(base::UTF8ToUTF16(profile->guid())); |
+ } |
+ |
+ return base::android::ToJavaArrayOfStrings(env, guids); |
} |
ScopedJavaLocalRef<jobject> PersonalDataManagerAndroid::GetProfileByGUID( |
@@ -359,8 +366,9 @@ 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); |
} |
@@ -368,18 +376,22 @@ ScopedJavaLocalRef<jobjectArray> PersonalDataManagerAndroid::GetProfileLabels( |
jint PersonalDataManagerAndroid::GetCreditCardCount( |
JNIEnv* unused_env, |
const JavaParamRef<jobject>& unused_obj) { |
- return personal_data_manager_->GetCreditCards().size(); |
+ return personal_data_manager_->GetCreditCardsToSuggest().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 +468,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); |
+ 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); |
+ 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) { |