#include "chrome/browser/ui/views/payments/profile_list_view_controller.h"
#include "base/functional/bind.h"
#include "base/memory/raw_ptr.h"
#include "base/memory/weak_ptr.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/ui/views/payments/payment_request_dialog_view.h"
#include "chrome/browser/ui/views/payments/payment_request_dialog_view_ids.h"
#include "chrome/browser/ui/views/payments/payment_request_row_view.h"
#include "chrome/browser/ui/views/payments/payment_request_views_util.h"
#include "components/payments/content/payment_request_spec.h"
#include "components/payments/content/payment_request_state.h"
#include "components/payments/core/payments_profile_comparator.h"
#include "components/payments/core/strings_util.h"
#include "components/strings/grit/components_strings.h"
#include "components/vector_icons/vector_icons.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/gfx/geometry/insets.h"
#include "ui/gfx/paint_vector_icon.h"
#include "ui/native_theme/native_theme.h"
#include "ui/views/controls/button/label_button.h"
#include "ui/views/controls/button/md_text_button.h"
#include "ui/views/controls/image_view.h"
#include "ui/views/layout/box_layout.h"
#include "ui/views/layout/fill_layout.h"
namespace payments {
namespace {
class ProfileItem : public PaymentRequestItemList::Item { … };
class ShippingProfileViewController : public ProfileListViewController,
public PaymentRequestSpec::Observer { … };
class ContactProfileViewController : public ProfileListViewController { … };
}
std::unique_ptr<ProfileListViewController>
ProfileListViewController::GetShippingProfileViewController(
base::WeakPtr<PaymentRequestSpec> spec,
base::WeakPtr<PaymentRequestState> state,
base::WeakPtr<PaymentRequestDialogView> dialog) { … }
std::unique_ptr<ProfileListViewController>
ProfileListViewController::GetContactProfileViewController(
base::WeakPtr<PaymentRequestSpec> spec,
base::WeakPtr<PaymentRequestState> state,
base::WeakPtr<PaymentRequestDialogView> dialog) { … }
ProfileListViewController::ProfileListViewController(
base::WeakPtr<PaymentRequestSpec> spec,
base::WeakPtr<PaymentRequestState> state,
base::WeakPtr<PaymentRequestDialogView> dialog)
: … { … }
ProfileListViewController::~ProfileListViewController() { … }
bool ProfileListViewController::IsEnabled(autofill::AutofillProfile* profile) { … }
std::unique_ptr<views::View> ProfileListViewController::CreateHeaderView() { … }
void ProfileListViewController::PopulateList() { … }
bool ProfileListViewController::ShouldShowPrimaryButton() { … }
PaymentRequestSheetController::ButtonCallback
ProfileListViewController::GetSecondaryButtonCallback() { … }
void ProfileListViewController::FillContentView(views::View* content_view) { … }
base::WeakPtr<PaymentRequestSheetController>
ProfileListViewController::GetWeakPtr() { … }
void ProfileListViewController::OnCreateNewProfileButtonClicked(
const ui::Event& event) { … }
}