Creates public interface for AssistantController.
This CL:
- Creates public interface for AssistantController
- Renames existing AssistantController to AssistantControllerImpl
- Updates references
This new interface (which exposes a singleton accessor) will be used
moving forward to get a handle to the AssistantController from outside
of Ash. The most pressing need for this is the new Assistant search
provider.
Note that this CL doesn't yet add public APIs onto the interface, as I
attempted to only make the smallest possible change in this CL.
Follow up CLs will migrate public APIs onto the interface as well as
remove the existing accessor to AssistantController that is currently
exposed through Shell so that we can enforce consistent access to
AssistantController through this new public API moving forward.
Bug: b:146074655
Change-Id: Id9f414f66fbfc60c90eb5d0c8a9b86681c641da2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2148098
Commit-Queue: David Black <[email protected]>
Reviewed-by: Xiyuan Xia <[email protected]>
Reviewed-by: Xiaohui Chen <[email protected]>
Cr-Commit-Position: refs/heads/master@{#759399}
diff --git a/ash/BUILD.gn b/ash/BUILD.gn
index c358d10..b9e2f23 100644
--- a/ash/BUILD.gn
+++ b/ash/BUILD.gn
@@ -192,8 +192,8 @@
"ash_prefs.cc",
"assistant/assistant_alarm_timer_controller.cc",
"assistant/assistant_alarm_timer_controller.h",
- "assistant/assistant_controller.cc",
- "assistant/assistant_controller.h",
+ "assistant/assistant_controller_impl.cc",
+ "assistant/assistant_controller_impl.h",
"assistant/assistant_controller_observer.h",
"assistant/assistant_interaction_controller.cc",
"assistant/assistant_interaction_controller.h",
diff --git a/ash/accelerators/accelerator_controller_impl.cc b/ash/accelerators/accelerator_controller_impl.cc
index ff11f49..240a6d21 100644
--- a/ash/accelerators/accelerator_controller_impl.cc
+++ b/ash/accelerators/accelerator_controller_impl.cc
@@ -15,7 +15,7 @@
#include "ash/accessibility/accessibility_controller_impl.h"
#include "ash/ambient/ambient_controller.h"
#include "ash/app_list/app_list_controller_impl.h"
-#include "ash/assistant/assistant_controller.h"
+#include "ash/assistant/assistant_controller_impl.h"
#include "ash/assistant/assistant_ui_controller.h"
#include "ash/assistant/model/assistant_ui_model.h"
#include "ash/debug.h"
diff --git a/ash/ambient/ambient_controller.cc b/ash/ambient/ambient_controller.cc
index c8a58f1..0d5a07d3 100644
--- a/ash/ambient/ambient_controller.cc
+++ b/ash/ambient/ambient_controller.cc
@@ -10,7 +10,7 @@
#include "ash/ambient/model/photo_model_observer.h"
#include "ash/ambient/ui/ambient_container_view.h"
#include "ash/ambient/util/ambient_util.h"
-#include "ash/assistant/assistant_controller.h"
+#include "ash/assistant/assistant_controller_impl.h"
#include "ash/login/ui/lock_screen.h"
#include "ash/public/cpp/ambient/ambient_mode_state.h"
#include "ash/public/cpp/ambient/ambient_prefs.h"
diff --git a/ash/ambient/ui/ambient_assistant_container_view.cc b/ash/ambient/ui/ambient_assistant_container_view.cc
index 055ffcb..b131180 100644
--- a/ash/ambient/ui/ambient_assistant_container_view.cc
+++ b/ash/ambient/ui/ambient_assistant_container_view.cc
@@ -9,7 +9,7 @@
#include "ash/ambient/ui/ambient_assistant_dialog_plate.h"
#include "ash/ambient/ui/assistant_response_container_view.h"
-#include "ash/assistant/assistant_controller.h"
+#include "ash/assistant/assistant_controller_impl.h"
#include "ash/assistant/ui/assistant_ui_constants.h"
#include "ash/assistant/ui/assistant_view_delegate.h"
#include "ash/assistant/util/assistant_util.h"
diff --git a/ash/ambient/ui/ambient_container_view.cc b/ash/ambient/ui/ambient_container_view.cc
index 3027243..142e7881 100644
--- a/ash/ambient/ui/ambient_container_view.cc
+++ b/ash/ambient/ui/ambient_container_view.cc
@@ -11,7 +11,6 @@
#include "ash/ambient/ui/ambient_view_delegate.h"
#include "ash/ambient/ui/photo_view.h"
#include "ash/ambient/util/ambient_util.h"
-#include "ash/assistant/assistant_controller.h"
#include "ash/login/ui/lock_screen.h"
#include "ash/public/cpp/shell_window_ids.h"
#include "ash/shell.h"
diff --git a/ash/app_list/app_list_controller_impl.cc b/ash/app_list/app_list_controller_impl.cc
index a49bfce..25bb0de 100644
--- a/ash/app_list/app_list_controller_impl.cc
+++ b/ash/app_list/app_list_controller_impl.cc
@@ -16,7 +16,7 @@
#include "ash/app_list/views/apps_container_view.h"
#include "ash/app_list/views/contents_view.h"
#include "ash/app_list/views/search_box_view.h"
-#include "ash/assistant/assistant_controller.h"
+#include "ash/assistant/assistant_controller_impl.h"
#include "ash/assistant/assistant_ui_controller.h"
#include "ash/assistant/ui/assistant_ui_constants.h"
#include "ash/assistant/ui/assistant_view_delegate.h"
diff --git a/ash/ash_prefs.cc b/ash/ash_prefs.cc
index 53a8c715..dce52385 100644
--- a/ash/ash_prefs.cc
+++ b/ash/ash_prefs.cc
@@ -7,7 +7,7 @@
#include "ash/accessibility/accessibility_controller_impl.h"
#include "ash/ambient/ambient_controller.h"
#include "ash/app_list/app_list_controller_impl.h"
-#include "ash/assistant/assistant_controller.h"
+#include "ash/assistant/assistant_controller_impl.h"
#include "ash/detachable_base/detachable_base_handler.h"
#include "ash/display/display_prefs.h"
#include "ash/display/privacy_screen_controller.h"
@@ -42,7 +42,7 @@
void RegisterProfilePrefs(PrefRegistrySimple* registry, bool for_test) {
AccessibilityControllerImpl::RegisterProfilePrefs(registry);
AppListControllerImpl::RegisterProfilePrefs(registry);
- AssistantController::RegisterProfilePrefs(registry);
+ AssistantControllerImpl::RegisterProfilePrefs(registry);
AmbientController::RegisterProfilePrefs(registry);
BluetoothPowerController::RegisterProfilePrefs(registry);
CapsLockNotificationController::RegisterProfilePrefs(registry, for_test);
diff --git a/ash/assistant/assistant_alarm_timer_controller.cc b/ash/assistant/assistant_alarm_timer_controller.cc
index 15cd07a..80b2c23 100644
--- a/ash/assistant/assistant_alarm_timer_controller.cc
+++ b/ash/assistant/assistant_alarm_timer_controller.cc
@@ -8,7 +8,7 @@
#include <string>
#include <utility>
-#include "ash/assistant/assistant_controller.h"
+#include "ash/assistant/assistant_controller_impl.h"
#include "ash/assistant/assistant_notification_controller.h"
#include "ash/assistant/util/deep_link_util.h"
#include "ash/public/mojom/assistant_controller.mojom.h"
@@ -167,7 +167,7 @@
// AssistantAlarmTimerController -----------------------------------------------
AssistantAlarmTimerController::AssistantAlarmTimerController(
- AssistantController* assistant_controller)
+ AssistantControllerImpl* assistant_controller)
: assistant_controller_(assistant_controller) {
AddModelObserver(this);
assistant_controller_->AddObserver(this);
diff --git a/ash/assistant/assistant_alarm_timer_controller.h b/ash/assistant/assistant_alarm_timer_controller.h
index 4199988..bac00c8 100644
--- a/ash/assistant/assistant_alarm_timer_controller.h
+++ b/ash/assistant/assistant_alarm_timer_controller.h
@@ -28,7 +28,7 @@
} // namespace util
} // namespace assistant
-class AssistantController;
+class AssistantControllerImpl;
// The AssistantAlarmTimerController is a sub-controller of AssistantController
// tasked with tracking alarm/timer state and providing alarm/timer APIs.
@@ -39,7 +39,7 @@
public AssistantAlarmTimerModelObserver {
public:
explicit AssistantAlarmTimerController(
- AssistantController* assistant_controller);
+ AssistantControllerImpl* assistant_controller);
~AssistantAlarmTimerController() override;
void BindReceiver(
@@ -80,7 +80,7 @@
const std::string& alarm_timer_id,
const base::Optional<base::TimeDelta>& duration);
- AssistantController* const assistant_controller_; // Owned by Shell.
+ AssistantControllerImpl* const assistant_controller_; // Owned by Shell.
mojo::Receiver<mojom::AssistantAlarmTimerController> receiver_{this};
diff --git a/ash/assistant/assistant_alarm_timer_controller_unittest.cc b/ash/assistant/assistant_alarm_timer_controller_unittest.cc
index e267bd3c..fe35ead 100644
--- a/ash/assistant/assistant_alarm_timer_controller_unittest.cc
+++ b/ash/assistant/assistant_alarm_timer_controller_unittest.cc
@@ -7,7 +7,7 @@
#include <memory>
#include <vector>
-#include "ash/assistant/assistant_controller.h"
+#include "ash/assistant/assistant_controller_impl.h"
#include "ash/assistant/assistant_notification_controller.h"
#include "ash/assistant/model/assistant_notification_model.h"
#include "ash/assistant/model/assistant_notification_model_observer.h"
diff --git a/ash/assistant/assistant_controller.cc b/ash/assistant/assistant_controller_impl.cc
similarity index 80%
rename from ash/assistant/assistant_controller.cc
rename to ash/assistant/assistant_controller_impl.cc
index db3a918..36f3409 100644
--- a/ash/assistant/assistant_controller.cc
+++ b/ash/assistant/assistant_controller_impl.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "ash/assistant/assistant_controller.h"
+#include "ash/assistant/assistant_controller_impl.h"
#include <algorithm>
#include <utility>
@@ -25,7 +25,7 @@
namespace ash {
-AssistantController::AssistantController() {
+AssistantControllerImpl::AssistantControllerImpl() {
assistant_state_controller_.AddObserver(this);
chromeos::CrasAudioHandler::Get()->AddAudioObserver(this);
AddObserver(this);
@@ -33,7 +33,7 @@
NotifyConstructed();
}
-AssistantController::~AssistantController() {
+AssistantControllerImpl::~AssistantControllerImpl() {
NotifyDestroying();
chromeos::CrasAudioHandler::Get()->RemoveAudioObserver(this);
@@ -43,31 +43,33 @@
}
// static
-void AssistantController::RegisterProfilePrefs(PrefRegistrySimple* registry) {
+void AssistantControllerImpl::RegisterProfilePrefs(
+ PrefRegistrySimple* registry) {
registry->RegisterIntegerPref(prefs::kAssistantNumWarmerWelcomeTriggered, 0);
}
-void AssistantController::BindReceiver(
+void AssistantControllerImpl::BindReceiver(
mojo::PendingReceiver<chromeos::assistant::mojom::AssistantController>
receiver) {
assistant_controller_receivers_.Add(this, std::move(receiver));
}
-void AssistantController::BindReceiver(
+void AssistantControllerImpl::BindReceiver(
mojo::PendingReceiver<mojom::AssistantVolumeControl> receiver) {
assistant_volume_control_receiver_.Bind(std::move(receiver));
}
-void AssistantController::AddObserver(AssistantControllerObserver* observer) {
+void AssistantControllerImpl::AddObserver(
+ AssistantControllerObserver* observer) {
observers_.AddObserver(observer);
}
-void AssistantController::RemoveObserver(
+void AssistantControllerImpl::RemoveObserver(
AssistantControllerObserver* observer) {
observers_.RemoveObserver(observer);
}
-void AssistantController::SetAssistant(
+void AssistantControllerImpl::SetAssistant(
mojo::PendingRemote<chromeos::assistant::mojom::Assistant> assistant) {
assistant_.Bind(std::move(assistant));
@@ -88,7 +90,7 @@
observer.OnAssistantReady();
}
-void AssistantController::SendAssistantFeedback(
+void AssistantControllerImpl::SendAssistantFeedback(
bool assistant_debug_info_allowed,
const std::string& feedback_description,
const std::string& screenshot_png) {
@@ -101,7 +103,7 @@
assistant_->SendAssistantFeedback(std::move(assistant_feedback));
}
-void AssistantController::StartTextInteraction(
+void AssistantControllerImpl::StartTextInteraction(
const std::string& query,
bool allow_tts,
chromeos::assistant::mojom::AssistantQuerySource source) {
@@ -109,7 +111,7 @@
source);
}
-void AssistantController::StartSpeakerIdEnrollmentFlow() {
+void AssistantControllerImpl::StartSpeakerIdEnrollmentFlow() {
if (assistant_state_controller_.consent_status().value_or(
chromeos::assistant::prefs::ConsentStatus::kUnknown) ==
chromeos::assistant::prefs::ConsentStatus::kActivityControlAccepted) {
@@ -123,7 +125,7 @@
}
}
-void AssistantController::DownloadImage(
+void AssistantControllerImpl::DownloadImage(
const GURL& url,
AssistantImageDownloader::DownloadCallback callback) {
const UserSession* user_session =
@@ -140,7 +142,7 @@
std::move(callback));
}
-void AssistantController::OnDeepLinkReceived(
+void AssistantControllerImpl::OnDeepLinkReceived(
assistant::util::DeepLinkType type,
const std::map<std::string, std::string>& params) {
using assistant::util::DeepLinkParam;
@@ -183,17 +185,17 @@
}
}
-void AssistantController::SetVolume(int volume, bool user_initiated) {
+void AssistantControllerImpl::SetVolume(int volume, bool user_initiated) {
volume = std::min(100, volume);
volume = std::max(volume, 0);
chromeos::CrasAudioHandler::Get()->SetOutputVolumePercent(volume);
}
-void AssistantController::SetMuted(bool muted) {
+void AssistantControllerImpl::SetMuted(bool muted) {
chromeos::CrasAudioHandler::Get()->SetOutputMute(muted);
}
-void AssistantController::AddVolumeObserver(
+void AssistantControllerImpl::AddVolumeObserver(
mojo::PendingRemote<mojom::VolumeObserver> observer) {
volume_observers_.Add(std::move(observer));
@@ -204,27 +206,28 @@
OnOutputNodeVolumeChanged(0 /* node */, output_volume);
}
-void AssistantController::OnOutputMuteChanged(bool mute_on) {
+void AssistantControllerImpl::OnOutputMuteChanged(bool mute_on) {
for (auto& observer : volume_observers_)
observer->OnMuteStateChanged(mute_on);
}
-void AssistantController::OnOutputNodeVolumeChanged(uint64_t node, int volume) {
+void AssistantControllerImpl::OnOutputNodeVolumeChanged(uint64_t node,
+ int volume) {
// |node| refers to the active volume device, which we don't care here.
for (auto& observer : volume_observers_)
observer->OnVolumeChanged(volume);
}
-void AssistantController::OnAccessibilityStatusChanged() {
+void AssistantControllerImpl::OnAccessibilityStatusChanged() {
// The Assistant service needs to be informed of changes to accessibility
// state so that it can turn on/off A11Y features appropriately.
assistant_->OnAccessibilityStatusChanged(
Shell::Get()->accessibility_controller()->spoken_feedback_enabled());
}
-void AssistantController::OpenUrl(const GURL& url,
- bool in_background,
- bool from_server) {
+void AssistantControllerImpl::OpenUrl(const GURL& url,
+ bool in_background,
+ bool from_server) {
if (assistant::util::IsDeepLinkUrl(url)) {
NotifyDeepLinkReceived(url);
return;
@@ -255,21 +258,21 @@
NotifyUrlOpened(url, from_server);
}
-bool AssistantController::IsAssistantReady() const {
+bool AssistantControllerImpl::IsAssistantReady() const {
return !!assistant_;
}
-void AssistantController::NotifyConstructed() {
+void AssistantControllerImpl::NotifyConstructed() {
for (AssistantControllerObserver& observer : observers_)
observer.OnAssistantControllerConstructed();
}
-void AssistantController::NotifyDestroying() {
+void AssistantControllerImpl::NotifyDestroying() {
for (AssistantControllerObserver& observer : observers_)
observer.OnAssistantControllerDestroying();
}
-void AssistantController::NotifyDeepLinkReceived(const GURL& deep_link) {
+void AssistantControllerImpl::NotifyDeepLinkReceived(const GURL& deep_link) {
using assistant::util::DeepLinkType;
// Retrieve deep link type and parsed parameters.
@@ -281,50 +284,51 @@
observer.OnDeepLinkReceived(type, params);
}
-void AssistantController::NotifyOpeningUrl(const GURL& url,
- bool in_background,
- bool from_server) {
+void AssistantControllerImpl::NotifyOpeningUrl(const GURL& url,
+ bool in_background,
+ bool from_server) {
for (AssistantControllerObserver& observer : observers_)
observer.OnOpeningUrl(url, in_background, from_server);
}
-void AssistantController::NotifyUrlOpened(const GURL& url, bool from_server) {
+void AssistantControllerImpl::NotifyUrlOpened(const GURL& url,
+ bool from_server) {
for (AssistantControllerObserver& observer : observers_)
observer.OnUrlOpened(url, from_server);
}
-void AssistantController::OnAssistantStatusChanged(
+void AssistantControllerImpl::OnAssistantStatusChanged(
mojom::AssistantState state) {
if (state == mojom::AssistantState::NOT_READY)
assistant_ui_controller_.CloseUi(
chromeos::assistant::mojom::AssistantExitPoint::kUnspecified);
}
-void AssistantController::OnLockedFullScreenStateChanged(bool enabled) {
+void AssistantControllerImpl::OnLockedFullScreenStateChanged(bool enabled) {
if (enabled)
assistant_ui_controller_.CloseUi(
chromeos::assistant::mojom::AssistantExitPoint::kUnspecified);
}
-void AssistantController::BindController(
+void AssistantControllerImpl::BindController(
mojo::PendingReceiver<chromeos::assistant::mojom::AssistantController>
receiver) {
BindReceiver(std::move(receiver));
}
-void AssistantController::BindAlarmTimerController(
+void AssistantControllerImpl::BindAlarmTimerController(
mojo::PendingReceiver<mojom::AssistantAlarmTimerController> receiver) {
Shell::Get()->assistant_controller()->alarm_timer_controller()->BindReceiver(
std::move(receiver));
}
-void AssistantController::BindNotificationController(
+void AssistantControllerImpl::BindNotificationController(
mojo::PendingReceiver<mojom::AssistantNotificationController> receiver) {
Shell::Get()->assistant_controller()->notification_controller()->BindReceiver(
std::move(receiver));
}
-void AssistantController::BindScreenContextController(
+void AssistantControllerImpl::BindScreenContextController(
mojo::PendingReceiver<mojom::AssistantScreenContextController> receiver) {
Shell::Get()
->assistant_controller()
@@ -332,17 +336,17 @@
->BindReceiver(std::move(receiver));
}
-void AssistantController::BindStateController(
+void AssistantControllerImpl::BindStateController(
mojo::PendingReceiver<mojom::AssistantStateController> receiver) {
assistant_state_controller_.BindReceiver(std::move(receiver));
}
-void AssistantController::BindVolumeControl(
+void AssistantControllerImpl::BindVolumeControl(
mojo::PendingReceiver<mojom::AssistantVolumeControl> receiver) {
Shell::Get()->assistant_controller()->BindReceiver(std::move(receiver));
}
-base::WeakPtr<AssistantController> AssistantController::GetWeakPtr() {
+base::WeakPtr<AssistantControllerImpl> AssistantControllerImpl::GetWeakPtr() {
return weak_factory_.GetWeakPtr();
}
diff --git a/ash/assistant/assistant_controller.h b/ash/assistant/assistant_controller_impl.h
similarity index 92%
rename from ash/assistant/assistant_controller.h
rename to ash/assistant/assistant_controller_impl.h
index f8be6b0..2260c13 100644
--- a/ash/assistant/assistant_controller.h
+++ b/ash/assistant/assistant_controller_impl.h
@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef ASH_ASSISTANT_ASSISTANT_CONTROLLER_H_
-#define ASH_ASSISTANT_ASSISTANT_CONTROLLER_H_
+#ifndef ASH_ASSISTANT_ASSISTANT_CONTROLLER_IMPL_H_
+#define ASH_ASSISTANT_ASSISTANT_CONTROLLER_IMPL_H_
#include <map>
#include <memory>
@@ -26,6 +26,7 @@
#include "ash/assistant/ui/assistant_view_delegate.h"
#include "ash/public/cpp/assistant/assistant_image_downloader.h"
#include "ash/public/cpp/assistant/assistant_interface_binder.h"
+#include "ash/public/cpp/assistant/controller/assistant_controller.h"
#include "ash/public/mojom/assistant_volume_control.mojom.h"
#include "base/macros.h"
#include "base/memory/weak_ptr.h"
@@ -44,8 +45,9 @@
namespace ash {
-class ASH_EXPORT AssistantController
- : public chromeos::assistant::mojom::AssistantController,
+class ASH_EXPORT AssistantControllerImpl
+ : public AssistantController,
+ public chromeos::assistant::mojom::AssistantController,
public AssistantControllerObserver,
public AssistantStateObserver,
public mojom::AssistantVolumeControl,
@@ -53,8 +55,8 @@
public AccessibilityObserver,
public AssistantInterfaceBinder {
public:
- AssistantController();
- ~AssistantController() override;
+ AssistantControllerImpl();
+ ~AssistantControllerImpl() override;
static void RegisterProfilePrefs(PrefRegistrySimple* registry);
@@ -145,7 +147,7 @@
bool IsAssistantReady() const;
- base::WeakPtr<AssistantController> GetWeakPtr();
+ base::WeakPtr<AssistantControllerImpl> GetWeakPtr();
private:
void NotifyConstructed();
@@ -202,11 +204,11 @@
AssistantViewDelegateImpl view_delegate_{this};
- base::WeakPtrFactory<AssistantController> weak_factory_{this};
+ base::WeakPtrFactory<AssistantControllerImpl> weak_factory_{this};
- DISALLOW_COPY_AND_ASSIGN(AssistantController);
+ DISALLOW_COPY_AND_ASSIGN(AssistantControllerImpl);
};
} // namespace ash
-#endif // ASH_ASSISTANT_ASSISTANT_CONTROLLER_H_
+#endif // ASH_ASSISTANT_ASSISTANT_CONTROLLER_IMPL_H_
diff --git a/ash/assistant/assistant_interaction_controller.cc b/ash/assistant/assistant_interaction_controller.cc
index 6215a7d..3153900 100644
--- a/ash/assistant/assistant_interaction_controller.cc
+++ b/ash/assistant/assistant_interaction_controller.cc
@@ -7,7 +7,7 @@
#include <utility>
#include "ash/accessibility/accessibility_controller_impl.h"
-#include "ash/assistant/assistant_controller.h"
+#include "ash/assistant/assistant_controller_impl.h"
#include "ash/assistant/assistant_screen_context_controller.h"
#include "ash/assistant/assistant_ui_controller.h"
#include "ash/assistant/model/assistant_interaction_model_observer.h"
@@ -114,7 +114,7 @@
// AssistantInteractionController ----------------------------------------------
AssistantInteractionController::AssistantInteractionController(
- AssistantController* assistant_controller)
+ AssistantControllerImpl* assistant_controller)
: assistant_controller_(assistant_controller) {
AddModelObserver(this);
assistant_controller_->AddObserver(this);
@@ -525,7 +525,7 @@
// receive a deleted pointer.
base::SequencedTaskRunnerHandle::Get()->PostTask(
FROM_HERE,
- base::BindOnce(&AssistantController::OpenUrl,
+ base::BindOnce(&AssistantControllerImpl::OpenUrl,
assistant_controller_->GetWeakPtr(),
suggestion->action_url, /*in_background=*/false,
/*from_server=*/false));
diff --git a/ash/assistant/assistant_interaction_controller.h b/ash/assistant/assistant_interaction_controller.h
index 60e34223..2dc2c9b 100644
--- a/ash/assistant/assistant_interaction_controller.h
+++ b/ash/assistant/assistant_interaction_controller.h
@@ -24,7 +24,7 @@
namespace ash {
-class AssistantController;
+class AssistantControllerImpl;
class AssistantInteractionModelObserver;
class ProactiveSuggestions;
enum class AssistantButtonId;
@@ -55,7 +55,7 @@
chromeos::assistant::mojom::AssistantSuggestionType;
explicit AssistantInteractionController(
- AssistantController* assistant_controller);
+ AssistantControllerImpl* assistant_controller);
~AssistantInteractionController() override;
// Provides a pointer to the |assistant| owned by AssistantController.
@@ -154,7 +154,7 @@
AssistantVisibility GetVisibility() const;
bool IsVisible() const;
- AssistantController* const assistant_controller_; // Owned by Shell.
+ AssistantControllerImpl* const assistant_controller_; // Owned by Shell.
// Owned by AssistantController.
chromeos::assistant::mojom::Assistant* assistant_ = nullptr;
diff --git a/ash/assistant/assistant_notification_controller.cc b/ash/assistant/assistant_notification_controller.cc
index 7d738d0..169b800 100644
--- a/ash/assistant/assistant_notification_controller.cc
+++ b/ash/assistant/assistant_notification_controller.cc
@@ -7,7 +7,7 @@
#include <memory>
#include <utility>
-#include "ash/assistant/assistant_controller.h"
+#include "ash/assistant/assistant_controller_impl.h"
#include "ash/assistant/assistant_notification_expiry_monitor.h"
#include "ash/assistant/util/deep_link_util.h"
#include "ash/public/cpp/notification_utils.h"
@@ -79,7 +79,7 @@
// AssistantNotificationController ---------------------------------------------
AssistantNotificationController::AssistantNotificationController(
- AssistantController* assistant_controller)
+ AssistantControllerImpl* assistant_controller)
: assistant_controller_(assistant_controller),
expiry_monitor_(this),
notifier_id_(GetNotifierId()) {
diff --git a/ash/assistant/assistant_notification_controller.h b/ash/assistant/assistant_notification_controller.h
index a6e2360a..c78b618 100644
--- a/ash/assistant/assistant_notification_controller.h
+++ b/ash/assistant/assistant_notification_controller.h
@@ -21,7 +21,7 @@
namespace ash {
-class AssistantController;
+class AssistantControllerImpl;
// The class to manage Assistant notifications.
class ASH_EXPORT AssistantNotificationController
@@ -37,7 +37,7 @@
chromeos::assistant::mojom::AssistantNotificationType;
explicit AssistantNotificationController(
- AssistantController* assistant_controller);
+ AssistantControllerImpl* assistant_controller);
~AssistantNotificationController() override;
void BindReceiver(
@@ -80,7 +80,7 @@
bool by_user) override;
private:
- AssistantController* const assistant_controller_; // Owned by Shell.
+ AssistantControllerImpl* const assistant_controller_; // Owned by Shell.
mojo::Receiver<mojom::AssistantNotificationController> receiver_{this};
diff --git a/ash/assistant/assistant_notification_controller_unittest.cc b/ash/assistant/assistant_notification_controller_unittest.cc
index 85a0b02..bd596c68 100644
--- a/ash/assistant/assistant_notification_controller_unittest.cc
+++ b/ash/assistant/assistant_notification_controller_unittest.cc
@@ -4,7 +4,7 @@
#include "ash/assistant/assistant_notification_controller.h"
-#include "ash/assistant/assistant_controller.h"
+#include "ash/assistant/assistant_controller_impl.h"
#include "ash/assistant/model/assistant_notification_model_observer.h"
#include "ash/shell.h"
#include "ash/test/ash_test_base.h"
diff --git a/ash/assistant/assistant_proactive_suggestions_controller.cc b/ash/assistant/assistant_proactive_suggestions_controller.cc
index f811aef..51b95b7 100644
--- a/ash/assistant/assistant_proactive_suggestions_controller.cc
+++ b/ash/assistant/assistant_proactive_suggestions_controller.cc
@@ -4,7 +4,7 @@
#include "ash/assistant/assistant_proactive_suggestions_controller.h"
-#include "ash/assistant/assistant_controller.h"
+#include "ash/assistant/assistant_controller_impl.h"
#include "ash/assistant/assistant_suggestions_controller_impl.h"
#include "ash/assistant/assistant_ui_controller.h"
#include "ash/assistant/ui/proactive_suggestions_rich_view.h"
@@ -28,7 +28,7 @@
AssistantProactiveSuggestionsController::
AssistantProactiveSuggestionsController(
- AssistantController* assistant_controller)
+ AssistantControllerImpl* assistant_controller)
: assistant_controller_(assistant_controller) {
DCHECK(chromeos::assistant::features::IsProactiveSuggestionsEnabled());
assistant_controller_->AddObserver(this);
diff --git a/ash/assistant/assistant_proactive_suggestions_controller.h b/ash/assistant/assistant_proactive_suggestions_controller.h
index 282d7f0..6d97c76e 100644
--- a/ash/assistant/assistant_proactive_suggestions_controller.h
+++ b/ash/assistant/assistant_proactive_suggestions_controller.h
@@ -18,7 +18,7 @@
namespace ash {
-class AssistantController;
+class AssistantControllerImpl;
class ProactiveSuggestions;
class ProactiveSuggestionsView;
@@ -43,7 +43,7 @@
assistant::metrics::ProactiveSuggestionsShowResult;
explicit AssistantProactiveSuggestionsController(
- AssistantController* assistant_controller);
+ AssistantControllerImpl* assistant_controller);
~AssistantProactiveSuggestionsController() override;
// AssistantControllerObserver:
@@ -88,7 +88,7 @@
void CloseUi(ProactiveSuggestionsShowResult result);
void HideUi();
- AssistantController* const assistant_controller_; // Owned by Shell.
+ AssistantControllerImpl* const assistant_controller_; // Owned by Shell.
ProactiveSuggestionsView* view_ = nullptr; // Owned by view hierarchy.
diff --git a/ash/assistant/assistant_screen_context_controller.cc b/ash/assistant/assistant_screen_context_controller.cc
index cc5fa11..eaa19e9 100644
--- a/ash/assistant/assistant_screen_context_controller.cc
+++ b/ash/assistant/assistant_screen_context_controller.cc
@@ -7,7 +7,7 @@
#include <utility>
#include <vector>
-#include "ash/assistant/assistant_controller.h"
+#include "ash/assistant/assistant_controller_impl.h"
#include "ash/assistant/assistant_ui_controller.h"
#include "ash/public/cpp/assistant/assistant_client.h"
#include "ash/public/cpp/assistant/assistant_state.h"
@@ -180,7 +180,7 @@
} // namespace
AssistantScreenContextController::AssistantScreenContextController(
- AssistantController* assistant_controller)
+ AssistantControllerImpl* assistant_controller)
: assistant_controller_(assistant_controller) {
assistant_controller_->AddObserver(this);
}
diff --git a/ash/assistant/assistant_screen_context_controller.h b/ash/assistant/assistant_screen_context_controller.h
index 104ee26..32f83b5 100644
--- a/ash/assistant/assistant_screen_context_controller.h
+++ b/ash/assistant/assistant_screen_context_controller.h
@@ -30,7 +30,7 @@
namespace ash {
-class AssistantController;
+class AssistantControllerImpl;
class ASH_EXPORT AssistantScreenContextController
: public mojom::AssistantScreenContextController,
@@ -43,7 +43,7 @@
const std::vector<uint8_t>&)>;
explicit AssistantScreenContextController(
- AssistantController* assistant_controller);
+ AssistantControllerImpl* assistant_controller);
~AssistantScreenContextController() override;
void BindReceiver(
@@ -100,7 +100,7 @@
ScreenContextCallback callback,
const std::vector<uint8_t>& screenshot);
- AssistantController* const assistant_controller_; // Owned by Shell.
+ AssistantControllerImpl* const assistant_controller_; // Owned by Shell.
mojo::Receiver<mojom::AssistantScreenContextController> receiver_{this};
diff --git a/ash/assistant/assistant_screen_context_controller_unittest.cc b/ash/assistant/assistant_screen_context_controller_unittest.cc
index 573d7d6..f8c5ab0 100644
--- a/ash/assistant/assistant_screen_context_controller_unittest.cc
+++ b/ash/assistant/assistant_screen_context_controller_unittest.cc
@@ -6,7 +6,7 @@
#include <memory>
-#include "ash/assistant/assistant_controller.h"
+#include "ash/assistant/assistant_controller_impl.h"
#include "ash/assistant/test/assistant_ash_test_base.h"
#include "ash/public/cpp/shell_window_ids.h"
#include "ash/public/cpp/window_properties.h"
diff --git a/ash/assistant/assistant_settings.cc b/ash/assistant/assistant_settings.cc
index d45386b..33275aa5 100644
--- a/ash/assistant/assistant_settings.cc
+++ b/ash/assistant/assistant_settings.cc
@@ -4,7 +4,7 @@
#include "ash/public/cpp/assistant/assistant_settings.h"
-#include "ash/assistant/assistant_controller.h"
+#include "ash/assistant/assistant_controller_impl.h"
#include "ash/assistant/util/deep_link_util.h"
#include "ash/shell.h"
diff --git a/ash/assistant/assistant_setup_controller.cc b/ash/assistant/assistant_setup_controller.cc
index bda3c2b..ec4cc663 100644
--- a/ash/assistant/assistant_setup_controller.cc
+++ b/ash/assistant/assistant_setup_controller.cc
@@ -4,7 +4,7 @@
#include "ash/assistant/assistant_setup_controller.h"
-#include "ash/assistant/assistant_controller.h"
+#include "ash/assistant/assistant_controller_impl.h"
#include "ash/assistant/assistant_ui_controller.h"
#include "ash/assistant/util/deep_link_util.h"
#include "ash/assistant/util/i18n_util.h"
@@ -24,7 +24,7 @@
namespace ash {
AssistantSetupController::AssistantSetupController(
- AssistantController* assistant_controller)
+ AssistantControllerImpl* assistant_controller)
: assistant_controller_(assistant_controller) {
assistant_controller_->AddObserver(this);
}
diff --git a/ash/assistant/assistant_setup_controller.h b/ash/assistant/assistant_setup_controller.h
index 957f4134..527f025 100644
--- a/ash/assistant/assistant_setup_controller.h
+++ b/ash/assistant/assistant_setup_controller.h
@@ -16,12 +16,13 @@
namespace ash {
-class AssistantController;
+class AssistantControllerImpl;
class AssistantSetupController : public AssistantControllerObserver,
public AssistantViewDelegateObserver {
public:
- explicit AssistantSetupController(AssistantController* assistant_controller);
+ explicit AssistantSetupController(
+ AssistantControllerImpl* assistant_controller);
~AssistantSetupController() override;
// AssistantControllerObserver:
@@ -39,7 +40,7 @@
private:
void OnOptInFlowFinished(bool relaunch, bool completed);
- AssistantController* const assistant_controller_; // Owned by Shell.
+ AssistantControllerImpl* const assistant_controller_; // Owned by Shell.
base::WeakPtrFactory<AssistantSetupController> weak_ptr_factory_{this};
diff --git a/ash/assistant/assistant_state_controller_unittest.cc b/ash/assistant/assistant_state_controller_unittest.cc
index 13fc445..11fdf4f 100644
--- a/ash/assistant/assistant_state_controller_unittest.cc
+++ b/ash/assistant/assistant_state_controller_unittest.cc
@@ -6,7 +6,7 @@
#include <memory>
-#include "ash/assistant/assistant_controller.h"
+#include "ash/assistant/assistant_controller_impl.h"
#include "ash/session/session_controller_impl.h"
#include "ash/shell.h"
#include "ash/test/ash_test_base.h"
diff --git a/ash/assistant/assistant_suggestions_controller_impl.cc b/ash/assistant/assistant_suggestions_controller_impl.cc
index a64366a..bc9b706a 100644
--- a/ash/assistant/assistant_suggestions_controller_impl.cc
+++ b/ash/assistant/assistant_suggestions_controller_impl.cc
@@ -8,7 +8,7 @@
#include <utility>
#include <vector>
-#include "ash/assistant/assistant_controller.h"
+#include "ash/assistant/assistant_controller_impl.h"
#include "ash/assistant/assistant_ui_controller.h"
#include "ash/assistant/model/assistant_ui_model.h"
#include "ash/assistant/util/assistant_util.h"
@@ -75,7 +75,7 @@
// AssistantSuggestionsControllerImpl ------------------------------------------
AssistantSuggestionsControllerImpl::AssistantSuggestionsControllerImpl(
- AssistantController* assistant_controller)
+ AssistantControllerImpl* assistant_controller)
: assistant_controller_(assistant_controller) {
if (IsProactiveSuggestionsEnabled()) {
proactive_suggestions_controller_ =
diff --git a/ash/assistant/assistant_suggestions_controller_impl.h b/ash/assistant/assistant_suggestions_controller_impl.h
index d071359..380ac27 100644
--- a/ash/assistant/assistant_suggestions_controller_impl.h
+++ b/ash/assistant/assistant_suggestions_controller_impl.h
@@ -17,7 +17,7 @@
namespace ash {
-class AssistantController;
+class AssistantControllerImpl;
class AssistantSuggestionsModelObserver;
class ProactiveSuggestions;
@@ -29,7 +29,7 @@
public AssistantStateObserver {
public:
explicit AssistantSuggestionsControllerImpl(
- AssistantController* assistant_controller);
+ AssistantControllerImpl* assistant_controller);
~AssistantSuggestionsControllerImpl() override;
// AssistantSuggestionsController:
@@ -62,7 +62,7 @@
void FetchConversationStarters();
void ProvideConversationStarters();
- AssistantController* const assistant_controller_; // Owned by Shell.
+ AssistantControllerImpl* const assistant_controller_; // Owned by Shell.
// A sub-controller for the proactive suggestions feature. Note that this will
// only exist if the proactive suggestions feature is enabled.
diff --git a/ash/assistant/assistant_ui_controller.cc b/ash/assistant/assistant_ui_controller.cc
index bae3f05..08a659c 100644
--- a/ash/assistant/assistant_ui_controller.cc
+++ b/ash/assistant/assistant_ui_controller.cc
@@ -5,7 +5,7 @@
#include "ash/assistant/assistant_ui_controller.h"
#include "ash/ambient/ambient_controller.h"
-#include "ash/assistant/assistant_controller.h"
+#include "ash/assistant/assistant_controller_impl.h"
#include "ash/assistant/assistant_interaction_controller.h"
#include "ash/assistant/ui/assistant_ui_constants.h"
#include "ash/assistant/util/assistant_util.h"
@@ -47,7 +47,7 @@
// AssistantUiController -------------------------------------------------------
AssistantUiController::AssistantUiController(
- AssistantController* assistant_controller)
+ AssistantControllerImpl* assistant_controller)
: assistant_controller_(assistant_controller) {
AddModelObserver(this);
assistant_controller_->AddObserver(this);
diff --git a/ash/assistant/assistant_ui_controller.h b/ash/assistant/assistant_ui_controller.h
index 235ab19..a7dd89a 100644
--- a/ash/assistant/assistant_ui_controller.h
+++ b/ash/assistant/assistant_ui_controller.h
@@ -29,7 +29,7 @@
namespace ash {
-class AssistantController;
+class AssistantControllerImpl;
class ASH_EXPORT AssistantUiController
: public AssistantControllerObserver,
@@ -38,7 +38,7 @@
public HighlighterController::Observer,
public OverviewObserver {
public:
- explicit AssistantUiController(AssistantController* assistant_controller);
+ explicit AssistantUiController(AssistantControllerImpl* assistant_controller);
~AssistantUiController() override;
// Provides a pointer to the |assistant| owned by AssistantController.
@@ -88,7 +88,7 @@
void UpdateUiMode(base::Optional<AssistantUiMode> ui_mode = base::nullopt,
bool due_to_interaction = false);
- AssistantController* const assistant_controller_; // Owned by Shell.
+ AssistantControllerImpl* const assistant_controller_; // Owned by Shell.
// Owned by AssistantController.
chromeos::assistant::mojom::Assistant* assistant_ = nullptr;
diff --git a/ash/assistant/assistant_view_delegate_impl.cc b/ash/assistant/assistant_view_delegate_impl.cc
index c59cbbe..154dd8b 100644
--- a/ash/assistant/assistant_view_delegate_impl.cc
+++ b/ash/assistant/assistant_view_delegate_impl.cc
@@ -4,7 +4,7 @@
#include "ash/assistant/assistant_view_delegate_impl.h"
-#include "ash/assistant/assistant_controller.h"
+#include "ash/assistant/assistant_controller_impl.h"
#include "ash/assistant/assistant_controller_observer.h"
#include "ash/assistant/assistant_interaction_controller.h"
#include "ash/assistant/assistant_notification_controller.h"
@@ -21,7 +21,7 @@
namespace ash {
AssistantViewDelegateImpl::AssistantViewDelegateImpl(
- AssistantController* assistant_controller)
+ AssistantControllerImpl* assistant_controller)
: assistant_controller_(assistant_controller) {}
AssistantViewDelegateImpl::~AssistantViewDelegateImpl() = default;
diff --git a/ash/assistant/assistant_view_delegate_impl.h b/ash/assistant/assistant_view_delegate_impl.h
index 6e89d16..942ea53 100644
--- a/ash/assistant/assistant_view_delegate_impl.h
+++ b/ash/assistant/assistant_view_delegate_impl.h
@@ -12,11 +12,11 @@
namespace ash {
-class AssistantController;
+class AssistantControllerImpl;
class AssistantViewDelegateImpl : public AssistantViewDelegate {
public:
- AssistantViewDelegateImpl(AssistantController* assistant_controller);
+ AssistantViewDelegateImpl(AssistantControllerImpl* assistant_controller);
~AssistantViewDelegateImpl() override;
// AssistantViewDelegate:
@@ -60,7 +60,7 @@
void OpenUrlFromView(const GURL& url) override;
private:
- AssistantController* const assistant_controller_;
+ AssistantControllerImpl* const assistant_controller_;
base::ObserverList<AssistantViewDelegateObserver> view_delegate_observers_;
DISALLOW_COPY_AND_ASSIGN(AssistantViewDelegateImpl);
diff --git a/ash/assistant/assistant_web_ui_controller.cc b/ash/assistant/assistant_web_ui_controller.cc
index 11bd0cc..07f73b7 100644
--- a/ash/assistant/assistant_web_ui_controller.cc
+++ b/ash/assistant/assistant_web_ui_controller.cc
@@ -4,7 +4,7 @@
#include "ash/assistant/assistant_web_ui_controller.h"
-#include "ash/assistant/assistant_controller.h"
+#include "ash/assistant/assistant_controller_impl.h"
#include "ash/assistant/ui/assistant_web_container_view.h"
#include "ash/assistant/util/deep_link_util.h"
#include "ash/multi_user/multi_user_window_manager_impl.h"
@@ -67,7 +67,7 @@
// AssistantWebUiController:
AssistantWebUiController::AssistantWebUiController(
- AssistantController* assistant_controller)
+ AssistantControllerImpl* assistant_controller)
: assistant_controller_(assistant_controller) {
assistant_controller_->AddObserver(this);
}
diff --git a/ash/assistant/assistant_web_ui_controller.h b/ash/assistant/assistant_web_ui_controller.h
index 28a78d3..bf2d12a 100644
--- a/ash/assistant/assistant_web_ui_controller.h
+++ b/ash/assistant/assistant_web_ui_controller.h
@@ -16,7 +16,7 @@
namespace ash {
-class AssistantController;
+class AssistantControllerImpl;
class AssistantWebContainerView;
class AssistantWebContainerEventObserver;
@@ -25,7 +25,8 @@
public AssistantControllerObserver,
public AssistantStateObserver {
public:
- explicit AssistantWebUiController(AssistantController* assistant_controller);
+ explicit AssistantWebUiController(
+ AssistantControllerImpl* assistant_controller);
~AssistantWebUiController() override;
// views::WidgetObserver:
@@ -53,7 +54,7 @@
void CreateWebContainerView();
void ResetWebContainerView();
- AssistantController* const assistant_controller_; // Owned by Shell.
+ AssistantControllerImpl* const assistant_controller_; // Owned by Shell.
AssistantWebViewDelegateImpl view_delegate_;
diff --git a/ash/assistant/test/assistant_ash_test_base.cc b/ash/assistant/test/assistant_ash_test_base.cc
index f9b31e8..2cad287 100644
--- a/ash/assistant/test/assistant_ash_test_base.cc
+++ b/ash/assistant/test/assistant_ash_test_base.cc
@@ -8,7 +8,7 @@
#include <utility>
#include "ash/app_list/app_list_controller_impl.h"
-#include "ash/assistant/assistant_controller.h"
+#include "ash/assistant/assistant_controller_impl.h"
#include "ash/assistant/test/test_assistant_client.h"
#include "ash/assistant/test/test_assistant_setup.h"
#include "ash/assistant/test/test_assistant_web_view_factory.h"
diff --git a/ash/assistant/test/assistant_ash_test_base.h b/ash/assistant/test/assistant_ash_test_base.h
index c8a949e..3da6cd4f 100644
--- a/ash/assistant/test/assistant_ash_test_base.h
+++ b/ash/assistant/test/assistant_ash_test_base.h
@@ -27,7 +27,7 @@
namespace ash {
-class AssistantController;
+class AssistantControllerImpl;
class AssistantInteractionController;
class AssistantInteractionModel;
class AssistantTestApi;
@@ -187,7 +187,7 @@
std::unique_ptr<AssistantTestApi> test_api_;
std::unique_ptr<TestAssistantSetup> test_setup_;
std::unique_ptr<TestAssistantWebViewFactory> test_web_view_factory_;
- AssistantController* controller_ = nullptr;
+ AssistantControllerImpl* controller_ = nullptr;
std::vector<std::unique_ptr<aura::Window>> windows_;
std::vector<std::unique_ptr<views::Widget>> widgets_;
diff --git a/ash/assistant/ui/DEPS b/ash/assistant/ui/DEPS
index 7324393..71a32c6 100644
--- a/ash/assistant/ui/DEPS
+++ b/ash/assistant/ui/DEPS
@@ -23,7 +23,7 @@
specific_include_rules = {
".*_unittest\.cc": [
- "+ash/assistant/assistant_controller.h",
+ "+ash/assistant/assistant_controller_impl.h",
"+ash/assistant/assistant_ui_controller.h",
"+ash/assistant/assistant_web_ui_controller.h",
"+ash/assistant/test/assistant_ash_test_base.h",
diff --git a/ash/assistant/ui/assistant_web_container_view_unittest.cc b/ash/assistant/ui/assistant_web_container_view_unittest.cc
index 95322ad..992ff37 100644
--- a/ash/assistant/ui/assistant_web_container_view_unittest.cc
+++ b/ash/assistant/ui/assistant_web_container_view_unittest.cc
@@ -4,7 +4,7 @@
#include "ash/assistant/ui/assistant_web_container_view.h"
-#include "ash/assistant/assistant_controller.h"
+#include "ash/assistant/assistant_controller_impl.h"
#include "ash/assistant/assistant_ui_controller.h"
#include "ash/assistant/assistant_web_ui_controller.h"
#include "ash/assistant/test/assistant_ash_test_base.h"
diff --git a/ash/public/cpp/BUILD.gn b/ash/public/cpp/BUILD.gn
index 414fa31..b5be79fa 100644
--- a/ash/public/cpp/BUILD.gn
+++ b/ash/public/cpp/BUILD.gn
@@ -75,6 +75,8 @@
"assistant/assistant_web_view.h",
"assistant/assistant_web_view_factory.cc",
"assistant/assistant_web_view_factory.h",
+ "assistant/controller/assistant_controller.cc",
+ "assistant/controller/assistant_controller.h",
"assistant/controller/assistant_suggestions_controller.cc",
"assistant/controller/assistant_suggestions_controller.h",
"assistant/conversation_starter.cc",
diff --git a/ash/public/cpp/assistant/controller/assistant_controller.cc b/ash/public/cpp/assistant/controller/assistant_controller.cc
new file mode 100644
index 0000000..0af8089f
--- /dev/null
+++ b/ash/public/cpp/assistant/controller/assistant_controller.cc
@@ -0,0 +1,32 @@
+// Copyright 2020 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.
+
+#include "ash/public/cpp/assistant/controller/assistant_controller.h"
+
+#include "base/logging.h"
+
+namespace ash {
+
+namespace {
+
+AssistantController* g_instance = nullptr;
+
+} // namespace
+
+AssistantController::AssistantController() {
+ DCHECK_EQ(nullptr, g_instance);
+ g_instance = this;
+}
+
+AssistantController::~AssistantController() {
+ DCHECK_EQ(g_instance, this);
+ g_instance = nullptr;
+}
+
+// static
+AssistantController* AssistantController::Get() {
+ return g_instance;
+}
+
+} // namespace ash
\ No newline at end of file
diff --git a/ash/public/cpp/assistant/controller/assistant_controller.h b/ash/public/cpp/assistant/controller/assistant_controller.h
new file mode 100644
index 0000000..1e0c096
--- /dev/null
+++ b/ash/public/cpp/assistant/controller/assistant_controller.h
@@ -0,0 +1,24 @@
+// Copyright 2020 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_PUBLIC_CPP_ASSISTANT_CONTROLLER_ASSISTANT_CONTROLLER_H_
+#define ASH_PUBLIC_CPP_ASSISTANT_CONTROLLER_ASSISTANT_CONTROLLER_H_
+
+#include "ash/public/cpp/ash_public_export.h"
+
+namespace ash {
+
+// The interface for the Assistant controller.
+class ASH_PUBLIC_EXPORT AssistantController {
+ public:
+ static AssistantController* Get();
+
+ protected:
+ AssistantController();
+ virtual ~AssistantController();
+};
+
+} // namespace ash
+
+#endif // ASH_PUBLIC_CPP_ASSISTANT_CONTROLLER_ASSISTANT_CONTROLLER_H_
diff --git a/ash/shelf/home_button_controller.cc b/ash/shelf/home_button_controller.cc
index 2b4ccf9f..2081deb 100644
--- a/ash/shelf/home_button_controller.cc
+++ b/ash/shelf/home_button_controller.cc
@@ -5,7 +5,7 @@
#include "ash/shelf/home_button_controller.h"
#include "ash/app_list/app_list_controller_impl.h"
-#include "ash/assistant/assistant_controller.h"
+#include "ash/assistant/assistant_controller_impl.h"
#include "ash/home_screen/home_screen_controller.h"
#include "ash/root_window_controller.h"
#include "ash/shelf/assistant_overlay.h"
diff --git a/ash/shelf/home_button_unittest.cc b/ash/shelf/home_button_unittest.cc
index 5c1f55ed..e3b60e9 100644
--- a/ash/shelf/home_button_unittest.cc
+++ b/ash/shelf/home_button_unittest.cc
@@ -10,7 +10,7 @@
#include "ash/accessibility/accessibility_controller_impl.h"
#include "ash/app_list/test/app_list_test_helper.h"
#include "ash/app_list/views/app_list_view.h"
-#include "ash/assistant/assistant_controller.h"
+#include "ash/assistant/assistant_controller_impl.h"
#include "ash/assistant/assistant_ui_controller.h"
#include "ash/assistant/model/assistant_ui_model.h"
#include "ash/assistant/test/test_assistant_service.h"
diff --git a/ash/shelf/hotseat_widget_unittest.cc b/ash/shelf/hotseat_widget_unittest.cc
index a85cede..4cd1581 100644
--- a/ash/shelf/hotseat_widget_unittest.cc
+++ b/ash/shelf/hotseat_widget_unittest.cc
@@ -5,7 +5,7 @@
#include "ash/shelf/hotseat_widget.h"
#include "ash/app_list/app_list_controller_impl.h"
#include "ash/app_list/test/app_list_test_helper.h"
-#include "ash/assistant/assistant_controller.h"
+#include "ash/assistant/assistant_controller_impl.h"
#include "ash/focus_cycler.h"
#include "ash/home_screen/drag_window_from_shelf_controller_test_api.h"
#include "ash/home_screen/home_screen_controller.h"
diff --git a/ash/shell.cc b/ash/shell.cc
index 470e8463..dcbf539 100644
--- a/ash/shell.cc
+++ b/ash/shell.cc
@@ -21,7 +21,7 @@
#include "ash/accessibility/key_accessibility_enabler.h"
#include "ash/ambient/ambient_controller.h"
#include "ash/app_list/app_list_controller_impl.h"
-#include "ash/assistant/assistant_controller.h"
+#include "ash/assistant/assistant_controller_impl.h"
#include "ash/autoclick/autoclick_controller.h"
#include "ash/dbus/ash_dbus_services.h"
#include "ash/detachable_base/detachable_base_handler.h"
@@ -360,10 +360,6 @@
return GetOpenSystemModalWindowContainerId() >= 0;
}
-AssistantController* Shell::assistant_controller() {
- return assistant_controller_.get();
-}
-
display::DisplayConfigurator* Shell::display_configurator() {
return display_manager_->configurator();
}
@@ -1072,7 +1068,7 @@
magnification_controller_ = std::make_unique<MagnificationController>();
mru_window_tracker_ = std::make_unique<MruWindowTracker>();
- assistant_controller_ = std::make_unique<AssistantController>();
+ assistant_controller_ = std::make_unique<AssistantControllerImpl>();
quick_answers_controller_ = std::make_unique<QuickAnswersControllerImpl>();
// |assistant_controller_| is put before |ambient_controller_| as it will be
diff --git a/ash/shell.h b/ash/shell.h
index d58e7dc..ab27c22 100644
--- a/ash/shell.h
+++ b/ash/shell.h
@@ -91,7 +91,7 @@
class AppListControllerImpl;
class NativeCursorManagerAsh;
class AshTouchTransformController;
-class AssistantController;
+class AssistantControllerImpl;
class AutoclickController;
class BackGestureEventHandler;
class BacklightsForcedOffSetter;
@@ -313,7 +313,9 @@
return app_list_controller_.get();
}
AmbientController* ambient_controller() { return ambient_controller_.get(); }
- AssistantController* assistant_controller();
+ AssistantControllerImpl* assistant_controller() {
+ return assistant_controller_.get();
+ }
AutoclickController* autoclick_controller() {
return autoclick_controller_.get();
}
@@ -641,7 +643,7 @@
// May be null in tests or when running on linux-chromeos.
scoped_refptr<dbus::Bus> dbus_bus_;
std::unique_ptr<AshDBusServices> ash_dbus_services_;
- std::unique_ptr<AssistantController> assistant_controller_;
+ std::unique_ptr<AssistantControllerImpl> assistant_controller_;
std::unique_ptr<BacklightsForcedOffSetter> backlights_forced_off_setter_;
std::unique_ptr<BrightnessControlDelegate> brightness_control_delegate_;
std::unique_ptr<CrosDisplayConfig> cros_display_config_;
diff --git a/ash/system/palette/palette_tray_unittest.cc b/ash/system/palette/palette_tray_unittest.cc
index d4cb749..16a02c997 100644
--- a/ash/system/palette/palette_tray_unittest.cc
+++ b/ash/system/palette/palette_tray_unittest.cc
@@ -7,7 +7,7 @@
#include <memory>
#include <string>
-#include "ash/assistant/assistant_controller.h"
+#include "ash/assistant/assistant_controller_impl.h"
#include "ash/assistant/test/test_assistant_client.h"
#include "ash/assistant/test/test_assistant_service.h"
#include "ash/assistant/util/assistant_util.h"
diff --git a/ash/system/palette/tools/metalayer_mode.cc b/ash/system/palette/tools/metalayer_mode.cc
index 22b8d6c..01a623d 100644
--- a/ash/system/palette/tools/metalayer_mode.cc
+++ b/ash/system/palette/tools/metalayer_mode.cc
@@ -4,7 +4,7 @@
#include "ash/system/palette/tools/metalayer_mode.h"
-#include "ash/assistant/assistant_controller.h"
+#include "ash/assistant/assistant_controller_impl.h"
#include "ash/public/cpp/toast_data.h"
#include "ash/resources/vector_icons/vector_icons.h"
#include "ash/shell.h"
diff --git a/ash/test/ash_test_helper.cc b/ash/test/ash_test_helper.cc
index 00be9456..2b8495cd7 100644
--- a/ash/test/ash_test_helper.cc
+++ b/ash/test/ash_test_helper.cc
@@ -7,7 +7,7 @@
#include <algorithm>
#include "ash/app_list/test/app_list_test_helper.h"
-#include "ash/assistant/assistant_controller.h"
+#include "ash/assistant/assistant_controller_impl.h"
#include "ash/assistant/test/test_assistant_service.h"
#include "ash/display/display_configuration_controller_test_api.h"
#include "ash/display/screen_ash.h"