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 48ba691709abe107b03ef6ef48878f3231766b5c..15ef6f0938f7f86e9b1ced18dfa9f37feb7d6a31 100644 |
--- a/chrome/browser/autofill/android/personal_data_manager_android.cc |
+++ b/chrome/browser/autofill/android/personal_data_manager_android.cc |
@@ -31,6 +31,7 @@ |
#include "components/autofill/core/common/autofill_switches.h" |
#include "components/prefs/pref_service.h" |
#include "content/public/browser/web_contents.h" |
+#include "grit/components_scaled_resources.h" |
#include "jni/PersonalDataManager_jni.h" |
using base::android::ConvertJavaStringToUTF8; |
@@ -129,35 +130,39 @@ void PopulateNativeProfileFromJava( |
Java_AutofillProfile_getLanguageCode(env, jprofile.obj()))); |
} |
-// Mapping from Chrome card types to basic card payment spec. |
+// Mapping from Chrome card types to PaymentRequest basic card payment spec and |
+// icons. Note that "generic" is not in the spec. |
// https://w3c.github.io/browser-payment-api/specs/basic-card-payment.html#method-id |
-// Note that "generic" is not in the spec. |
-const struct { |
+const struct PaymentRequestData { |
const char* card_type; |
const char* basic_card_payment_type; |
-} kBasicCardPaymentTypes[] { |
- {"genericCC", "generic"}, |
- {"americanExpressCC", "amex"}, |
- {"dinersCC", "diners"}, |
- {"discoverCC", "discover"}, |
- {"jcbCC", "jcb"}, |
- {"masterCardCC", "mastercard"}, |
- {"visaCC", "visa"} |
+ const int icon_resource_id; |
+} kPaymentRequestData[] { |
+ {"genericCC", "generic", IDR_AUTOFILL_PR_GENERIC}, |
+ {"americanExpressCC", "amex", IDR_AUTOFILL_PR_AMEX}, |
+ {"dinersCC", "diners", IDR_AUTOFILL_PR_GENERIC}, |
+ {"discoverCC", "discover", IDR_AUTOFILL_PR_DISCOVER}, |
+ {"jcbCC", "jcb", IDR_AUTOFILL_PR_GENERIC}, |
+ {"masterCardCC", "mastercard", IDR_AUTOFILL_PR_MASTERCARD}, |
+ {"visaCC", "visa", IDR_AUTOFILL_PR_VISA} |
}; |
-// Returns the type of this card according to the basic card payment spec. Will |
-// return "generic" for unrecognized card type. |
-const char* ConvertToBasicCardPaymentType(const std::string& type) { |
- for (size_t i = 0; i < arraysize(kBasicCardPaymentTypes); ++i) { |
- if (type == kBasicCardPaymentTypes[i].card_type) |
- return kBasicCardPaymentTypes[i].basic_card_payment_type; |
+// Converts the card type into PaymentRequest type according to the basic card |
+// payment spec and an icon. Will set the type and the icon to "generic" for |
+// unrecognized card type. |
+const PaymentRequestData* GetPaymentRequestData(const std::string& type) { |
+ for (size_t i = 0; i < arraysize(kPaymentRequestData); ++i) { |
+ if (type == kPaymentRequestData[i].card_type) |
+ return &kPaymentRequestData[i]; |
} |
- return kBasicCardPaymentTypes[0].basic_card_payment_type; |
+ return &kPaymentRequestData[0]; |
} |
ScopedJavaLocalRef<jobject> CreateJavaCreditCardFromNative( |
JNIEnv* env, |
const CreditCard& card) { |
+ const PaymentRequestData* payment_request_data = |
+ GetPaymentRequestData(card.type()); |
return Java_CreditCard_create( |
env, ConvertUTF8ToJavaString(env, card.guid()).obj(), |
ConvertUTF8ToJavaString(env, card.origin()).obj(), |
@@ -172,10 +177,11 @@ ScopedJavaLocalRef<jobject> CreateJavaCreditCardFromNative( |
ConvertUTF16ToJavaString(env, |
card.GetRawInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR)) |
.obj(), |
- ConvertUTF8ToJavaString(env, ConvertToBasicCardPaymentType(card.type())) |
+ ConvertUTF8ToJavaString(env, |
+ payment_request_data->basic_card_payment_type) |
.obj(), |
ResourceMapper::MapFromChromiumId( |
- CreditCard::IconResourceId(card.type()))); |
+ payment_request_data->icon_resource_id)); |
} |
void PopulateNativeCreditCardFromJava( |