Commit a044b99a authored by Xiaohui Chen's avatar Xiaohui Chen Committed by Commit Bot

assistant: add ScopedAssistantInteractionSubscriber

Bug: None
Change-Id: I193dba8deb36be925b99d216b9ff28adcece660c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2268473
Auto-Submit: Xiaohui Chen <xiaohuic@chromium.org>
Reviewed-by: default avatarJeroen Dhollander <jeroendh@google.com>
Commit-Queue: Xiaohui Chen <xiaohuic@chromium.org>
Cr-Commit-Position: refs/heads/master@{#782774}
parent f55c37eb
......@@ -233,11 +233,7 @@ class AssistantInteractionCounter
}
int interaction_count_ = 0;
ScopedObserver<
chromeos::assistant::Assistant,
chromeos::assistant::AssistantInteractionSubscriber,
&chromeos::assistant::Assistant::AddAssistantInteractionSubscriber,
&chromeos::assistant::Assistant::RemoveAssistantInteractionSubscriber>
chromeos::assistant::ScopedAssistantInteractionSubscriber
interaction_observer_{this};
};
......
......@@ -41,14 +41,11 @@ constexpr bool kSuccessResult = true;
class AssistantInteractionSubscriberMock
: public chromeos::assistant::AssistantInteractionSubscriber {
public:
explicit AssistantInteractionSubscriberMock(Assistant* service)
: service_(service) {
service_->AddAssistantInteractionSubscriber(this);
explicit AssistantInteractionSubscriberMock(Assistant* service) {
scoped_subscriber_.Add(service);
}
~AssistantInteractionSubscriberMock() override {
service_->RemoveAssistantInteractionSubscriber(this);
}
~AssistantInteractionSubscriberMock() override = default;
MOCK_METHOD(void,
OnInteractionStarted,
......@@ -56,7 +53,8 @@ class AssistantInteractionSubscriberMock
(override));
private:
Assistant* const service_;
chromeos::assistant::ScopedAssistantInteractionSubscriber scoped_subscriber_{
this};
};
class AssistantInteractionControllerImplTest : public AssistantAshTestBase {
......
......@@ -57,14 +57,11 @@ class MockAssistantInteractionSubscriber
: public testing::NiceMock<
chromeos::assistant::AssistantInteractionSubscriber> {
public:
explicit MockAssistantInteractionSubscriber(Assistant* service)
: service_(service) {
service_->AddAssistantInteractionSubscriber(this);
explicit MockAssistantInteractionSubscriber(Assistant* service) {
scoped_subscriber_.Add(service);
}
~MockAssistantInteractionSubscriber() override {
service_->RemoveAssistantInteractionSubscriber(this);
}
~MockAssistantInteractionSubscriber() override = default;
MOCK_METHOD(void,
OnInteractionStarted,
......@@ -72,7 +69,8 @@ class MockAssistantInteractionSubscriber
(override));
private:
Assistant* service_;
chromeos::assistant::ScopedAssistantInteractionSubscriber scoped_subscriber_{
this};
};
// ScopedShowUi ----------------------------------------------------------------
......
......@@ -10,6 +10,7 @@
#include "base/component_export.h"
#include "base/observer_list_types.h"
#include "base/scoped_observer.h"
#include "chromeos/services/assistant/public/mojom/assistant_notification.mojom.h"
#include "ui/accessibility/mojom/ax_assistant_structure.mojom.h"
......@@ -371,6 +372,12 @@ class COMPONENT_EXPORT(ASSISTANT_SERVICE_PUBLIC) Assistant {
virtual void ResumeTimer(const std::string& id) = 0;
};
using ScopedAssistantInteractionSubscriber =
ScopedObserver<Assistant,
AssistantInteractionSubscriber,
&Assistant::AddAssistantInteractionSubscriber,
&Assistant::RemoveAssistantInteractionSubscriber>;
// Main interface between browser and |chromeos::assistant::Service|.
class COMPONENT_EXPORT(ASSISTANT_SERVICE_PUBLIC) AssistantService {
public:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment