blob: 2f3f9ddf67bae0d410be030c4a9108763f32ab4f [file] [log] [blame]
// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_UI_AUTOFILL_EDIT_ADDRESS_PROFILE_DIALOG_CONTROLLER_H_
#define CHROME_BROWSER_UI_AUTOFILL_EDIT_ADDRESS_PROFILE_DIALOG_CONTROLLER_H_
#include "components/autofill/core/browser/foundations/autofill_client.h"
namespace autofill {
// Interface that exposes controller functionality to EditAddressProfileView
// dialog.
class EditAddressProfileDialogController {
public:
virtual ~EditAddressProfileDialogController() = default;
virtual std::u16string GetWindowTitle() const = 0;
virtual const std::u16string& GetFooterMessage() const = 0;
virtual std::u16string GetOkButtonLabel() const = 0;
virtual const AutofillProfile& GetProfileToEdit() const = 0;
virtual bool GetIsValidatable() const = 0;
// Gets invoked when the dialog is being closed. `decision` reflects which
// button has been clicked. `profile_with_edits` contains the address profile
// including the edits performed by the user.
virtual void OnDialogClosed(
AutofillClient::AddressPromptUserDecision decision,
base::optional_ref<const AutofillProfile> profile_with_edits) = 0;
};
} // namespace autofill
#endif // CHROME_BROWSER_UI_AUTOFILL_EDIT_ADDRESS_PROFILE_DIALOG_CONTROLLER_H_