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..2bcdb4c7ce6f37d36f24bb96bc22acf60e508859 100644 |
--- a/chrome/browser/autofill/android/personal_data_manager_android.cc |
+++ b/chrome/browser/autofill/android/personal_data_manager_android.cc |
@@ -14,6 +14,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" |
@@ -297,8 +298,17 @@ ScopedJavaLocalRef<jobject> PersonalDataManagerAndroid::GetProfileByIndex( |
JNIEnv* env, |
const JavaParamRef<jobject>& unused_obj, |
jint index) { |
- const std::vector<AutofillProfile*>& profiles = |
+ std::vector<AutofillProfile*> profiles = |
personal_data_manager_->GetProfiles(); |
+ |
+ // Rank the profiles by frecency (see AutofillDataModel for details). |
please use gerrit instead
2016/05/16 15:57:46
Can you put this block of code into a helper funct
sebsg
2016/05/19 17:52:03
Even better, I made GetProfilesToSuggest and GetCr
|
+ base::Time comparison_time = base::Time::Now(); |
+ std::sort(profiles.begin(), profiles.end(), |
please use gerrit instead
2016/05/16 15:57:46
#include <algorithm>
sebsg
2016/05/19 17:52:03
Done.
|
+ [comparison_time](const AutofillDataModel* a, |
+ const AutofillDataModel* b) { |
+ return a->CompareFrecency(b, comparison_time); |
+ }); |
+ |
size_t index_size_t = static_cast<size_t>(index); |
DCHECK_LT(index_size_t, profiles.size()); |
return CreateJavaProfileFromNative(env, *profiles[index_size_t]); |
@@ -357,10 +367,21 @@ ScopedJavaLocalRef<jobjectArray> PersonalDataManagerAndroid::GetProfileLabels( |
minimal_fields_shown = suggested_fields->size(); |
} |
+ std::vector<AutofillProfile*> profiles = |
+ personal_data_manager_->GetProfiles(); |
+ |
+ // Rank the profiles by frecency (see AutofillDataModel for details). |
+ base::Time comparison_time = base::Time::Now(); |
+ std::sort(profiles.begin(), profiles.end(), |
please use gerrit instead
2016/05/16 15:57:46
#include <algorithm>
sebsg
2016/05/19 17:52:03
Done.
|
+ [comparison_time](const AutofillDataModel* a, |
+ const AutofillDataModel* b) { |
+ return a->CompareFrecency(b, comparison_time); |
+ }); |
+ |
std::vector<base::string16> labels; |
AutofillProfile::CreateInferredLabels( |
- personal_data_manager_->GetProfiles(), suggested_fields.get(), NAME_FULL, |
- minimal_fields_shown, g_browser_process->GetApplicationLocale(), &labels); |
+ profiles, suggested_fields.get(), NAME_FULL, minimal_fields_shown, |
+ g_browser_process->GetApplicationLocale(), &labels); |
return base::android::ToJavaArrayOfStrings(env, labels); |
} |
@@ -375,8 +396,17 @@ ScopedJavaLocalRef<jobject> PersonalDataManagerAndroid::GetCreditCardByIndex( |
JNIEnv* env, |
const JavaParamRef<jobject>& unused_obj, |
jint index) { |
- const std::vector<CreditCard*>& credit_cards = |
+ std::vector<CreditCard*> credit_cards = |
personal_data_manager_->GetCreditCards(); |
+ |
+ // Rank the cards by frecency (see AutofillDataModel for details). |
+ base::Time comparison_time = base::Time::Now(); |
+ std::sort(credit_cards.begin(), credit_cards.end(), |
please use gerrit instead
2016/05/16 15:57:46
#include <algorithm>
sebsg
2016/05/19 17:52:03
Done.
|
+ [comparison_time](const AutofillDataModel* a, |
+ const AutofillDataModel* b) { |
+ return a->CompareFrecency(b, comparison_time); |
+ }); |
+ |
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]); |
@@ -456,6 +486,40 @@ bool PersonalDataManagerAndroid::Register(JNIEnv* env) { |
return RegisterNativesImpl(env); |
} |
+void PersonalDataManagerAndroid::SetProfileUseStats( |
+ 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::SetCreditCardUseStats( |
+ 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) { |