123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- // 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 ASH_ASSISTANT_UI_ASSISTANT_VIEW_DELEGATE_H_
- #define ASH_ASSISTANT_UI_ASSISTANT_VIEW_DELEGATE_H_
- #include <map>
- #include <string>
- #include "ash/public/cpp/assistant/assistant_state.h"
- #include "ash/public/cpp/image_downloader.h"
- #include "base/component_export.h"
- #include "base/observer_list_types.h"
- #include "chromeos/services/libassistant/public/cpp/assistant_suggestion.h"
- #include "ui/wm/core/cursor_manager.h"
- namespace ash {
- class AssistantNotificationModel;
- enum class AssistantButtonId;
- namespace assistant {
- namespace util {
- enum class DeepLinkType;
- } // namespace util
- } // namespace assistant
- class COMPONENT_EXPORT(ASSISTANT_UI) AssistantViewDelegateObserver
- : public base::CheckedObserver {
- public:
- using AssistantSuggestion = chromeos::assistant::AssistantSuggestion;
- // Invoked when the dialog plate button identified by |id| is pressed.
- virtual void OnDialogPlateButtonPressed(AssistantButtonId id) {}
- // Invoked when the dialog plate contents have been committed.
- virtual void OnDialogPlateContentsCommitted(const std::string& text) {}
- // Invoked when Assistant onboarding is shown.
- virtual void OnOnboardingShown() {}
- // Invoked when the opt in button is pressed.
- virtual void OnOptInButtonPressed() {}
- // Invoked when a suggestion UI element is pressed.
- virtual void OnSuggestionPressed(
- const base::UnguessableToken& suggestion_id) {}
- };
- // A delegate of views in assistant/ui that handles views related actions e.g.
- // get models for the views, adding observers, closing the views, opening urls,
- // etc.
- class COMPONENT_EXPORT(ASSISTANT_UI) AssistantViewDelegate {
- public:
- using AssistantSuggestion = chromeos::assistant::AssistantSuggestion;
- virtual ~AssistantViewDelegate() = default;
- // Gets the notification model.
- virtual const AssistantNotificationModel* GetNotificationModel() const = 0;
- // Adds/removes the specified view delegate observer.
- virtual void AddObserver(AssistantViewDelegateObserver* observer) = 0;
- virtual void RemoveObserver(AssistantViewDelegateObserver* observer) = 0;
- // Downloads the image found at the specified |url|. On completion, the
- // supplied |callback| will be run with the downloaded image. If the download
- // attempt is unsuccessful, a NULL image is returned.
- virtual void DownloadImage(const GURL& url,
- ImageDownloader::DownloadCallback callback) = 0;
- // Returns the cursor_manager.
- virtual ::wm::CursorManager* GetCursorManager() = 0;
- // Returns the given name of the primary user.
- virtual std::string GetPrimaryUserGivenName() const = 0;
- // Returns the root window for the specified |display_id|.
- virtual aura::Window* GetRootWindowForDisplayId(int64_t display_id) = 0;
- // Returns the root window that newly created windows should be added to.
- virtual aura::Window* GetRootWindowForNewWindows() = 0;
- // Returns true if in tablet mode.
- virtual bool IsTabletMode() const = 0;
- // Invoked when the dialog plate button identified by |id| is pressed.
- virtual void OnDialogPlateButtonPressed(AssistantButtonId id) = 0;
- // Invoked when the dialog plate contents have been committed.
- virtual void OnDialogPlateContentsCommitted(const std::string& text) = 0;
- // Invoked when an in-Assistant notification button is pressed.
- virtual void OnNotificationButtonPressed(const std::string& notification_id,
- int notification_button_index) = 0;
- // Invoked when Assistant onboarding is shown.
- virtual void OnOnboardingShown() = 0;
- // Invoked when the opt in button is pressed.
- virtual void OnOptInButtonPressed() = 0;
- // Invoked when suggestion UI is pressed.
- virtual void OnSuggestionPressed(
- const base::UnguessableToken& suggestion_id) = 0;
- // Returns true if Assistant onboarding should be shown.
- virtual bool ShouldShowOnboarding() const = 0;
- };
- } // namespace ash
- #endif // ASH_ASSISTANT_UI_ASSISTANT_VIEW_DELEGATE_H_
|