Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2628)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/autofill/PersonalDataManager.java

Issue 1982623002: [Autofill] Sort profiles and credit cards by frecency in PaymentRequest. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed comments and refactored Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/src/org/chromium/chrome/browser/autofill/PersonalDataManager.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/PersonalDataManager.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/PersonalDataManager.java
index 3d4c3acbe054731a0d400916bffeca4121a4894b..dd0b70760100c7bee95b7e7d2d3ce76145a2b3db 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/PersonalDataManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/PersonalDataManager.java
@@ -486,10 +486,12 @@ public class PersonalDataManager {
String[] profileLabels = nativeGetProfileLabels(mPersonalDataManagerAndroid, addressOnly);
- int profileCount = nativeGetProfileCount(mPersonalDataManagerAndroid);
- List<AutofillProfile> profiles = new ArrayList<AutofillProfile>(profileCount);
- for (int i = 0; i < profileCount; i++) {
- AutofillProfile profile = nativeGetProfileByIndex(mPersonalDataManagerAndroid, i);
+ String[] profileGUIDs = nativeGetProfileGUIDsToSuggest(mPersonalDataManagerAndroid);
Mathieu 2016/05/20 13:57:08 Why do we need to get the GUIDs before the profile
sebsg 2016/05/24 17:27:32 I was unsure myself. Here is what I asked in anoth
Mathieu 2016/05/24 17:54:48 It does seem difficult. I'm fine with this solutio
+
+ List<AutofillProfile> profiles = new ArrayList<AutofillProfile>(profileGUIDs.length);
+ for (int i = 0; i < profileGUIDs.length; i++) {
+ AutofillProfile profile =
+ nativeGetProfileByGUID(mPersonalDataManagerAndroid, profileGUIDs[i]);
profile.setLabel(profileLabels[i]);
profiles.add(profile);
}
@@ -514,10 +516,12 @@ public class PersonalDataManager {
public List<CreditCard> getCreditCards() {
ThreadUtils.assertOnUiThread();
- int count = nativeGetCreditCardCount(mPersonalDataManagerAndroid);
- List<CreditCard> cards = new ArrayList<CreditCard>(count);
- for (int i = 0; i < count; i++) {
- cards.add(nativeGetCreditCardByIndex(mPersonalDataManagerAndroid, i));
+
+ String[] creditCardGUIDs = nativeGetCreditCardGUIDsToSuggest(mPersonalDataManagerAndroid);
+
+ List<CreditCard> cards = new ArrayList<CreditCard>(creditCardGUIDs.length);
+ for (int i = 0; i < creditCardGUIDs.length; i++) {
+ cards.add(nativeGetCreditCardByGUID(mPersonalDataManagerAndroid, creditCardGUIDs[i]));
}
return cards;
}
@@ -547,6 +551,18 @@ public class PersonalDataManager {
mPersonalDataManagerAndroid, webContents, guid, delegate);
}
+ @VisibleForTesting
+ public void setProfileUseStatsForTest(String guid, int count, int date) {
+ ThreadUtils.assertOnUiThread();
+ nativeSetProfileUseStatsForTest(mPersonalDataManagerAndroid, guid, count, date);
+ }
+
+ @VisibleForTesting
+ public void setCreditCardUseStatsForTest(String guid, int count, int date) {
Mathieu 2016/05/20 13:57:08 nit: ForTesting
sebsg 2016/05/24 17:27:32 Done.
+ ThreadUtils.assertOnUiThread();
+ nativeSetCreditCardUseStatsForTest(mPersonalDataManagerAndroid, guid, count, date);
+ }
+
/**
* @return Whether the Autofill feature is enabled.
*/
@@ -586,22 +602,25 @@ public class PersonalDataManager {
private native long nativeInit();
private native int nativeGetProfileCount(long nativePersonalDataManagerAndroid);
+ private native String[] nativeGetProfileGUIDsToSuggest(long nativePersonalDataManagerAndroid);
private native String[] nativeGetProfileLabels(long nativePersonalDataManagerAndroid,
boolean addressOnly);
- private native AutofillProfile nativeGetProfileByIndex(long nativePersonalDataManagerAndroid,
- int index);
private native AutofillProfile nativeGetProfileByGUID(long nativePersonalDataManagerAndroid,
String guid);
private native String nativeSetProfile(long nativePersonalDataManagerAndroid,
AutofillProfile profile);
+ private native String[] nativeGetCreditCardGUIDsToSuggest(
+ long nativePersonalDataManagerAndroid);
private native int nativeGetCreditCardCount(long nativePersonalDataManagerAndroid);
- private native CreditCard nativeGetCreditCardByIndex(long nativePersonalDataManagerAndroid,
- int index);
private native CreditCard nativeGetCreditCardByGUID(long nativePersonalDataManagerAndroid,
String guid);
private native String nativeSetCreditCard(long nativePersonalDataManagerAndroid,
CreditCard card);
private native void nativeRemoveByGUID(long nativePersonalDataManagerAndroid, String guid);
+ private native void nativeSetProfileUseStatsForTest(
+ long nativePersonalDataManagerAndroid, String guid, int count, int date);
+ private native void nativeSetCreditCardUseStatsForTest(
+ long nativePersonalDataManagerAndroid, String guid, int count, int date);
private native void nativeClearUnmaskedCache(
long nativePersonalDataManagerAndroid, String guid);
private native void nativeGetFullCardForPaymentRequest(long nativePersonalDataManagerAndroid,

Powered by Google App Engine
This is Rietveld 408576698