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

Unified Diff: chrome/browser/autofill/android/phone_number_util_android.cc

Issue 2791973003: [Payments] Normalize contact info phone# in PaymentResponse on Android. (Closed)
Patch Set: Updated ContactDetails tests expectations to reflect the new phone formatting Created 3 years, 8 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
« no previous file with comments | « chrome/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestPhoneTest.java ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/autofill/android/phone_number_util_android.cc
diff --git a/chrome/browser/autofill/android/phone_number_util_android.cc b/chrome/browser/autofill/android/phone_number_util_android.cc
index 21501eaa314ae240b55c3cc63641d34c654f4fb7..6aff62a456b6b6eaf8f3d93cb57a335ebb696e08 100644
--- a/chrome/browser/autofill/android/phone_number_util_android.cc
+++ b/chrome/browser/autofill/android/phone_number_util_android.cc
@@ -20,16 +20,11 @@ using ::base::android::JavaParamRef;
using ::base::android::ScopedJavaLocalRef;
using ::i18n::phonenumbers::PhoneNumber;
using ::i18n::phonenumbers::PhoneNumberUtil;
-} // namespace
-// Formats the given number |jphone_number| to
-// i18n::phonenumbers::PhoneNumberUtil::PhoneNumberFormat::INTERNATIONAL format
-// by using i18n::phonenumbers::PhoneNumberUtil::Format.
-ScopedJavaLocalRef<jstring> Format(
- JNIEnv* env,
- const base::android::JavaParamRef<jclass>& jcaller,
- const JavaParamRef<jstring>& jphone_number) {
- const std::string phone_number = ConvertJavaStringToUTF8(env, jphone_number);
+// Formats the |phone_number| to the specified |format|. Returns the original
+// number if the operation is not possible.
+std::string FormatPhoneNumber(const std::string& phone_number,
+ PhoneNumberUtil::PhoneNumberFormat format) {
const std::string default_region_code =
autofill::AutofillCountry::CountryCodeForLocale(
g_browser_process->GetApplicationLocale());
@@ -39,15 +34,41 @@ ScopedJavaLocalRef<jstring> Format(
if (phone_number_util->Parse(phone_number, default_region_code,
&parsed_number) !=
PhoneNumberUtil::NO_PARSING_ERROR) {
- return ConvertUTF8ToJavaString(env, phone_number);
+ return phone_number;
}
std::string formatted_number;
- phone_number_util->Format(parsed_number,
- PhoneNumberUtil::PhoneNumberFormat::INTERNATIONAL,
- &formatted_number);
+ phone_number_util->Format(parsed_number, format, &formatted_number);
+ return formatted_number;
+}
+
+} // namespace
- return ConvertUTF8ToJavaString(env, formatted_number);
+// Formats the given number |jphone_number| to
+// i18n::phonenumbers::PhoneNumberUtil::PhoneNumberFormat::INTERNATIONAL format
+// by using i18n::phonenumbers::PhoneNumberUtil::Format.
+ScopedJavaLocalRef<jstring> FormatForDisplay(
+ JNIEnv* env,
+ const base::android::JavaParamRef<jclass>& jcaller,
+ const JavaParamRef<jstring>& jphone_number) {
+ return ConvertUTF8ToJavaString(
+ env,
+ FormatPhoneNumber(ConvertJavaStringToUTF8(env, jphone_number),
+ PhoneNumberUtil::PhoneNumberFormat::INTERNATIONAL));
+}
+
+// Formats the given number |jphone_number| to
+// i18n::phonenumbers::PhoneNumberUtil::PhoneNumberFormat::E164 format by using
+// i18n::phonenumbers::PhoneNumberUtil::Format , as defined in the Payment
+// Request spec
+// (https://w3c.github.io/browser-payment-api/#paymentrequest-updated-algorithm)
+ScopedJavaLocalRef<jstring> FormatForResponse(
+ JNIEnv* env,
+ const base::android::JavaParamRef<jclass>& jcaller,
+ const JavaParamRef<jstring>& jphone_number) {
+ return ConvertUTF8ToJavaString(
+ env, FormatPhoneNumber(ConvertJavaStringToUTF8(env, jphone_number),
+ PhoneNumberUtil::PhoneNumberFormat::E164));
}
// Checks whether the given number |jphone_number| is valid by using
« no previous file with comments | « chrome/android/javatests/src/org/chromium/chrome/browser/payments/PaymentRequestPhoneTest.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698