Commit 46ad4b7d authored by David Black's avatar David Black Committed by Commit Bot

Wire suggestion responses to AshAssistantController.

Bug: b:77235133
Change-Id: I0af7895ce28fe58195845f2ad4c130956e3518e6
Reviewed-on: https://chromium-review.googlesource.com/986667
Commit-Queue: David Black <dmblack@google.com>
Reviewed-by: default avatarDaniel Cheng <dcheng@chromium.org>
Reviewed-by: default avatarXiaohui Chen <xiaohuic@chromium.org>
Reviewed-by: default avatarXiyuan Xia <xiyuan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#547581}
parent a869ea9b
# Temporary, since the IPC endpoint is just a skeleton.
per-file ash_assistant_controller.cc=set noparent
per-file ash_assistant_controller.cc=file://ipc/SECURITY_OWNERS
\ No newline at end of file
......@@ -36,6 +36,12 @@ void AshAssistantController::OnHtmlResponse(const std::string& response) {
NOTIMPLEMENTED();
}
void AshAssistantController::OnSuggestionsResponse(
const std::vector<std::string>& response) {
// TODO(dmblack): Handle.
NOTIMPLEMENTED();
}
void AshAssistantController::OnTextResponse(const std::string& response) {
// TODO(dmblack): Handle.
NOTIMPLEMENTED();
......
......@@ -23,6 +23,7 @@ class AshAssistantController
// chromeos::assistant::mojom::AssistantEventSubscriber:
void OnHtmlResponse(const std::string& response) override;
void OnSuggestionsResponse(const std::vector<std::string>& response) override;
void OnTextResponse(const std::string& response) override;
void OnOpenUrlResponse(const GURL& url) override;
......
......@@ -79,26 +79,40 @@ void AssistantManagerServiceImpl::AddAssistantEventSubscriber(
void AssistantManagerServiceImpl::OnShowHtml(const std::string& html) {
main_thread_task_runner_->PostTask(
FROM_HERE,
base::BindOnce(&OnShowHtmlInternal, weak_factory_.GetWeakPtr(), html));
base::BindOnce(&AssistantManagerServiceImpl::OnShowHtmlOnMainThread,
weak_factory_.GetWeakPtr(), html));
}
void AssistantManagerServiceImpl::OnShowSuggestions(
const std::vector<std::string>& suggestions) {
main_thread_task_runner_->PostTask(
FROM_HERE,
base::BindOnce(
&AssistantManagerServiceImpl::OnShowSuggestionsOnMainThread,
weak_factory_.GetWeakPtr(), suggestions));
}
void AssistantManagerServiceImpl::OnShowText(const std::string& text) {
main_thread_task_runner_->PostTask(
FROM_HERE,
base::BindOnce(&OnShowTextInternal, weak_factory_.GetWeakPtr(), text));
base::BindOnce(&AssistantManagerServiceImpl::OnShowTextOnMainThread,
weak_factory_.GetWeakPtr(), text));
}
void AssistantManagerServiceImpl::OnOpenUrl(const std::string& url) {
main_thread_task_runner_->PostTask(
FROM_HERE,
base::BindOnce(&OnOpenUrlInteranl, weak_factory_.GetWeakPtr(), url));
base::BindOnce(&AssistantManagerServiceImpl::OnOpenUrlOnMainThread,
weak_factory_.GetWeakPtr(), url));
}
void AssistantManagerServiceImpl::OnSpeechLevelUpdated(
const float speech_level) {
main_thread_task_runner_->PostTask(
FROM_HERE, base::BindOnce(&OnSpeechLevelUpdatedInternal,
weak_factory_.GetWeakPtr(), speech_level));
FROM_HERE,
base::BindOnce(
&AssistantManagerServiceImpl::OnSpeechLevelUpdatedOnMainThread,
weak_factory_.GetWeakPtr(), speech_level));
}
void AssistantManagerServiceImpl::StartAssistantInternal(
......@@ -137,45 +151,32 @@ std::string AssistantManagerServiceImpl::BuildUserAgent(
return user_agent;
}
// static
void AssistantManagerServiceImpl::OnShowHtmlInternal(
const base::WeakPtr<AssistantManagerServiceImpl>& self,
void AssistantManagerServiceImpl::OnShowHtmlOnMainThread(
const std::string& html) {
if (self) {
self->subscribers_.ForAllPtrs(
[&html](auto* ptr) { ptr->OnHtmlResponse(html); });
}
subscribers_.ForAllPtrs([&html](auto* ptr) { ptr->OnHtmlResponse(html); });
}
// static
void AssistantManagerServiceImpl::OnShowTextInternal(
const base::WeakPtr<AssistantManagerServiceImpl>& self,
void AssistantManagerServiceImpl::OnShowSuggestionsOnMainThread(
const std::vector<std::string>& suggestions) {
subscribers_.ForAllPtrs(
[&suggestions](auto* ptr) { ptr->OnSuggestionsResponse(suggestions); });
}
void AssistantManagerServiceImpl::OnShowTextOnMainThread(
const std::string& text) {
if (self) {
self->subscribers_.ForAllPtrs(
[&text](auto* ptr) { ptr->OnTextResponse(text); });
}
subscribers_.ForAllPtrs([&text](auto* ptr) { ptr->OnTextResponse(text); });
}
// static
void AssistantManagerServiceImpl::OnOpenUrlInteranl(
const base::WeakPtr<AssistantManagerServiceImpl>& self,
void AssistantManagerServiceImpl::OnOpenUrlOnMainThread(
const std::string& url) {
if (self) {
self->subscribers_.ForAllPtrs(
[&url](auto* ptr) { ptr->OnOpenUrlResponse(GURL(url)); });
}
subscribers_.ForAllPtrs(
[&url](auto* ptr) { ptr->OnOpenUrlResponse(GURL(url)); });
}
// static
void AssistantManagerServiceImpl::OnSpeechLevelUpdatedInternal(
const base::WeakPtr<AssistantManagerServiceImpl>& self,
void AssistantManagerServiceImpl::OnSpeechLevelUpdatedOnMainThread(
const float speech_level) {
if (self) {
self->subscribers_.ForAllPtrs([&speech_level](auto* ptr) {
ptr->OnSpeechLevelUpdated(speech_level);
});
}
subscribers_.ForAllPtrs(
[&speech_level](auto* ptr) { ptr->OnSpeechLevelUpdated(speech_level); });
}
} // namespace assistant
......
......@@ -48,6 +48,7 @@ class AssistantManagerServiceImpl
// AssistantActionObserver overrides:
void OnShowHtml(const std::string& html) override;
void OnShowSuggestions(const std::vector<std::string>& suggestions) override;
void OnShowText(const std::string& text) override;
void OnOpenUrl(const std::string& url) override;
......@@ -59,18 +60,12 @@ class AssistantManagerServiceImpl
const std::string& arc_version);
std::string BuildUserAgent(const std::string& arc_version) const;
static void OnShowHtmlInternal(
const base::WeakPtr<AssistantManagerServiceImpl>& self,
const std::string& html);
static void OnShowTextInternal(
const base::WeakPtr<AssistantManagerServiceImpl>& self,
const std::string& text);
static void OnOpenUrlInteranl(
const base::WeakPtr<AssistantManagerServiceImpl>& self,
const std::string& url);
static void OnSpeechLevelUpdatedInternal(
const base::WeakPtr<AssistantManagerServiceImpl>& self,
const float speech_level);
void OnShowHtmlOnMainThread(const std::string& html);
void OnShowSuggestionsOnMainThread(
const std::vector<std::string>& suggestions);
void OnShowTextOnMainThread(const std::string& text);
void OnOpenUrlOnMainThread(const std::string& url);
void OnSpeechLevelUpdatedOnMainThread(const float speech_level);
bool running_ = false;
PlatformApiImpl platform_api_;
......
......@@ -25,6 +25,9 @@ interface AssistantEventSubscriber {
// Assistant got Html response from server.
OnHtmlResponse(string response);
// Assistant got suggestions response from server.
OnSuggestionsResponse(array<string> response);
// Assistant got text response from server.
OnTextResponse(string response);
......
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