| // Copyright 2018 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. |
| |
| #ifndef COMPONENTS_AUTOFILL_ASSISTANT_BROWSER_UI_CONTROLLER_H_ |
| #define COMPONENTS_AUTOFILL_ASSISTANT_BROWSER_UI_CONTROLLER_H_ |
| |
| #include <memory> |
| #include <string> |
| #include <vector> |
| |
| #include "base/callback_forward.h" |
| #include "components/autofill_assistant/browser/chip.h" |
| #include "components/autofill_assistant/browser/details.h" |
| #include "components/autofill_assistant/browser/info_box.h" |
| #include "components/autofill_assistant/browser/metrics.h" |
| #include "components/autofill_assistant/browser/payment_request.h" |
| #include "components/autofill_assistant/browser/script.h" |
| #include "components/autofill_assistant/browser/state.h" |
| #include "components/autofill_assistant/browser/ui_delegate.h" |
| #include "third_party/blink/public/mojom/payments/payment_request.mojom.h" |
| |
| namespace autofill_assistant { |
| |
| // Controller to control autofill assistant UI. |
| // |
| // TODO(crbug/925947): Rename this class to Observer and make treat it as a real |
| // observer in the Controller. |
| class UiController { |
| public: |
| UiController(); |
| virtual ~UiController(); |
| |
| // Called when the controller has entered a new state. |
| virtual void OnStateChanged(AutofillAssistantState new_state); |
| |
| // Report that the status message has changed. |
| virtual void OnStatusMessageChanged(const std::string& message); |
| |
| // Autofill Assistant is about to be shut down for this tab. |
| // |
| // Pointer to UIDelegate will become invalid as soon as this method has |
| // returned. |
| virtual void WillShutdown(Metrics::DropOutReason reason); |
| |
| // Report that the set of suggestions has changed. |
| virtual void OnSuggestionsChanged(const std::vector<Chip>& suggestions); |
| |
| // Report that the set of actions has changed. |
| virtual void OnActionsChanged(const std::vector<Chip>& actions); |
| |
| // Gets or clears request for payment information. |
| virtual void OnPaymentRequestChanged(const PaymentRequestOptions* options); |
| |
| // Called when details have changed. Details will be null if they have been |
| // cleared. |
| virtual void OnDetailsChanged(const Details* details); |
| |
| // Called when info box has changed. |info_box| will be null if it has been |
| // cleared. |
| virtual void OnInfoBoxChanged(const InfoBox* info_box); |
| |
| // Called when the current progress has changed. Progress, is expressed as a |
| // percentage. |
| virtual void OnProgressChanged(int progress); |
| |
| // Called when the current progress bar visibility has changed. If |visible| |
| // is true, then the bar is now shown. |
| virtual void OnProgressVisibilityChanged(bool visible); |
| |
| // Updates the area of the visible viewport that is accessible when the |
| // overlay state is OverlayState::PARTIAL. |
| // |
| // |rectangles| contains one element per configured rectangles, though these |
| // can correspond to empty rectangles. Coordinates are relative to the width |
| // or height of the visible viewport, as a number between 0 and 1. |
| virtual void OnTouchableAreaChanged(const std::vector<RectF>& rectangles); |
| }; |
| } // namespace autofill_assistant |
| #endif // COMPONENTS_AUTOFILL_ASSISTANT_BROWSER_UI_CONTROLLER_H_ |