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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/payments/ContactEditor.java

Issue 2109573002: Revert of Refactor contact editor controller into its own class. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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 | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/java/src/org/chromium/chrome/browser/payments/ContactEditor.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/ContactEditor.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/ContactEditor.java
deleted file mode 100644
index ddc48d61cc1c97ed0ee92713e61981423ba3120c..0000000000000000000000000000000000000000
--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/ContactEditor.java
+++ /dev/null
@@ -1,191 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.chrome.browser.payments;
-
-import android.content.Context;
-import android.telephony.PhoneNumberUtils;
-import android.util.Patterns;
-
-import org.chromium.base.Callback;
-import org.chromium.chrome.R;
-import org.chromium.chrome.browser.autofill.PersonalDataManager;
-import org.chromium.chrome.browser.autofill.PersonalDataManager.AutofillProfile;
-import org.chromium.chrome.browser.payments.ui.EditorFieldModel;
-import org.chromium.chrome.browser.payments.ui.EditorFieldModel.EditorFieldValidator;
-import org.chromium.chrome.browser.payments.ui.EditorModel;
-import org.chromium.chrome.browser.payments.ui.EditorView;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.annotation.Nullable;
-
-/**
- * Contact information editor.
- */
-public class ContactEditor {
- private final boolean mRequestPayerPhone;
- private final boolean mRequestPayerEmail;
- private final List<CharSequence> mPhoneNumbers;
- private final List<CharSequence> mEmailAddresses;
- @Nullable private EditorView mEditorView;
- @Nullable private Context mContext;
- @Nullable private EditorFieldValidator mPhoneValidator;
- @Nullable private EditorFieldValidator mEmailValidator;
-
- /**
- * Builds a contact information editor.
- *
- * @param requestPayerPhone Whether to request the user's phone number.
- * @param requestPayerEmail Whether to request the user's email address.
- */
- public ContactEditor(boolean requestPayerPhone, boolean requestPayerEmail) {
- assert requestPayerPhone || requestPayerEmail;
- mRequestPayerPhone = requestPayerPhone;
- mRequestPayerEmail = requestPayerEmail;
- mPhoneNumbers = new ArrayList<>();
- mEmailAddresses = new ArrayList<>();
- }
-
- /**
- * Returns whether the following contact information can be sent to the merchant as-is without
- * editing first.
- *
- * @param phone The phone number to check.
- * @param email The email address to check.
- * @return Whether the contact information is complete.
- */
- public boolean isContactInformationComplete(@Nullable String phone, @Nullable String email) {
- return (!mRequestPayerPhone || getPhoneValidator().isValid(phone))
- && (!mRequestPayerEmail || getEmailValidator().isValid(email));
- }
-
- /**
- * Sets the user interface to be used for editing contact information.
- *
- * @param editorView The user interface to be used.
- */
- public void setEditorView(EditorView editorView) {
- assert editorView != null;
- mEditorView = editorView;
- mContext = mEditorView.getContext();
- }
-
- /**
- * Adds the given phone number to the autocomplete list, if it's valid.
- *
- * @param phoneNumber The phone number to possibly add.
- */
- public void addPhoneNumberIfValid(@Nullable CharSequence phoneNumber) {
- if (getPhoneValidator().isValid(phoneNumber)) mPhoneNumbers.add(phoneNumber);
- }
-
- /**
- * Adds the given email address to the autocomplete list, if it's valid.
- *
- * @param emailAddress The email address to possibly add.
- */
- public void addEmailAddressIfValid(@Nullable CharSequence emailAddress) {
- if (getEmailValidator().isValid(emailAddress)) mEmailAddresses.add(emailAddress);
- }
-
- /**
- * Shows the user interface for editing the given contact. The contact is also updated on disk,
- * so there's no need to do that in the calling code.
- *
- * @param toEdit The contact to edit. Can be null if the user is adding a new contact instead
- * of editing an existing one.
- * @param callback The callback to invoke with the complete and valid contact information. Can
- * be invoked with null if the user clicked Cancel.
- */
- public void editContact(
- @Nullable AutofillContact toEdit, final Callback<AutofillContact> callback) {
- assert mEditorView != null;
- assert mContext != null;
-
- final AutofillContact contact = toEdit == null
- ? new AutofillContact(new AutofillProfile(), null, null, false) : toEdit;
-
- final EditorFieldModel phoneField = mRequestPayerPhone
- ? new EditorFieldModel(EditorFieldModel.INPUT_TYPE_HINT_PHONE,
- mContext.getString(R.string.autofill_profile_editor_phone_number),
- mPhoneNumbers, getPhoneValidator(),
- mContext.getString(R.string.payments_phone_required_validation_message),
- mContext.getString(R.string.payments_phone_invalid_validation_message),
- contact.getPayerPhone())
- : null;
-
- final EditorFieldModel emailField = mRequestPayerEmail
- ? new EditorFieldModel(EditorFieldModel.INPUT_TYPE_HINT_EMAIL,
- mContext.getString(R.string.autofill_profile_editor_email_address),
- mEmailAddresses, getEmailValidator(),
- mContext.getString(R.string.payments_email_required_validation_message),
- mContext.getString(R.string.payments_email_invalid_validation_message),
- contact.getPayerEmail())
- : null;
-
- EditorModel editor =
- new EditorModel(mContext.getString(R.string.payments_add_contact_details_label));
- if (phoneField != null) editor.addField(phoneField);
- if (emailField != null) editor.addField(emailField);
-
- editor.setCancelCallback(new Runnable() {
- @Override
- public void run() {
- callback.onResult(null);
- }
- });
-
- editor.setDoneCallback(new Runnable() {
- @Override
- public void run() {
- String phone = null;
- String email = null;
-
- if (phoneField != null) {
- phone = phoneField.getValue().toString();
- contact.getProfile().setPhoneNumber(phone);
- }
-
- if (emailField != null) {
- email = emailField.getValue().toString();
- contact.getProfile().setEmailAddress(email);
- }
-
- PersonalDataManager.getInstance().setProfile(contact.getProfile());
- contact.completeContact(phone, email);
- callback.onResult(contact);
- }
- });
-
- mEditorView.show(editor);
- }
-
- private EditorFieldValidator getPhoneValidator() {
- if (mPhoneValidator == null) {
- mPhoneValidator = new EditorFieldValidator() {
- @Override
- public boolean isValid(@Nullable CharSequence value) {
- return value != null
- && PhoneNumberUtils.isGlobalPhoneNumber(
- PhoneNumberUtils.stripSeparators(value.toString()));
- }
- };
- }
- return mPhoneValidator;
- }
-
- private EditorFieldValidator getEmailValidator() {
- if (mEmailValidator == null) {
- mEmailValidator = new EditorFieldValidator() {
- @Override
- public boolean isValid(@Nullable CharSequence value) {
- return value != null && Patterns.EMAIL_ADDRESS.matcher(value).matches();
- }
- };
- }
- return mEmailValidator;
- }
-}
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698