assistant: remove enable hotword libassistant config
Bug: b:123939389
Test: locally build and run
Change-Id: I6e89f7c622d71ab7862e2c3c25d56778b37eac2c
Reviewed-on: https://chromium-review.googlesource.com/c/1455475
Commit-Queue: Xiaohui Chen <[email protected]>
Reviewed-by: Tao Wu <[email protected]>
Cr-Commit-Position: refs/heads/master@{#629728}
diff --git a/chromeos/services/assistant/assistant_manager_service.h b/chromeos/services/assistant/assistant_manager_service.h
index 67f4fff6..d90fde2 100644
--- a/chromeos/services/assistant/assistant_manager_service.h
+++ b/chromeos/services/assistant/assistant_manager_service.h
@@ -47,9 +47,12 @@
// Set access token for assistant.
virtual void SetAccessToken(const std::string& access_token) = 0;
- // Turn on / off hotword listening.
+ // Turn on / off all listening, including hotword and voice query.
virtual void EnableListening(bool enable) = 0;
+ // Turn on / off hotword listening.
+ virtual void EnableHotword(bool enable) = 0;
+
// Returns a pointer of AssistantSettingsManager.
virtual AssistantSettingsManager* GetAssistantSettingsManager() = 0;
};
diff --git a/chromeos/services/assistant/assistant_manager_service_impl.cc b/chromeos/services/assistant/assistant_manager_service_impl.cc
index 42c0a74..3f8cbf2 100644
--- a/chromeos/services/assistant/assistant_manager_service_impl.cc
+++ b/chromeos/services/assistant/assistant_manager_service_impl.cc
@@ -133,7 +133,7 @@
started_time_ = base::TimeTicks::Now();
- platform_api_->OnHotwordEnabled(enable_hotword);
+ EnableHotword(enable_hotword);
using AssistantManagerPtr =
std::unique_ptr<assistant_client::AssistantManager>;
@@ -153,7 +153,7 @@
},
new_assistant_manager,
base::BindOnce(&AssistantManagerServiceImpl::StartAssistantInternal,
- base::Unretained(this), access_token, enable_hotword)),
+ base::Unretained(this), access_token)),
base::BindOnce(&AssistantManagerServiceImpl::PostInitAssistant,
base::Unretained(this), std::move(post_init_callback),
base::Owned(new_assistant_manager)));
@@ -175,6 +175,9 @@
void AssistantManagerServiceImpl::SetAccessToken(
const std::string& access_token) {
+ if (!assistant_manager_)
+ return;
+
VLOG(1) << "Set access token.";
// Push the |access_token| we got as an argument into AssistantManager before
// starting to ensure that all server requests will be authenticated once
@@ -204,6 +207,11 @@
void AssistantManagerServiceImpl::EnableListening(bool enable) {
assistant_manager_->EnableListening(enable);
+ EnableHotword(enable);
+}
+
+void AssistantManagerServiceImpl::EnableHotword(bool enable) {
+ platform_api_->OnHotwordEnabled(enable);
}
AssistantSettingsManager*
@@ -739,13 +747,12 @@
std::unique_ptr<assistant_client::AssistantManager>
AssistantManagerServiceImpl::StartAssistantInternal(
- const std::string& access_token,
- bool enable_hotword) {
+ const std::string& access_token) {
DCHECK(background_thread_.task_runner()->BelongsToCurrentThread());
std::unique_ptr<assistant_client::AssistantManager> assistant_manager;
assistant_manager.reset(assistant_client::AssistantManager::Create(
- platform_api_.get(), CreateLibAssistantConfig(!enable_hotword)));
+ platform_api_.get(), CreateLibAssistantConfig()));
auto* assistant_manager_internal =
UnwrapAssistantManagerInternal(assistant_manager.get());
diff --git a/chromeos/services/assistant/assistant_manager_service_impl.h b/chromeos/services/assistant/assistant_manager_service_impl.h
index 5bdf0de..6d69430a 100644
--- a/chromeos/services/assistant/assistant_manager_service_impl.h
+++ b/chromeos/services/assistant/assistant_manager_service_impl.h
@@ -97,6 +97,7 @@
State GetState() const override;
void SetAccessToken(const std::string& access_token) override;
void EnableListening(bool enable) override;
+ void EnableHotword(bool enable) override;
AssistantSettingsManager* GetAssistantSettingsManager() override;
// mojom::Assistant overrides:
@@ -174,8 +175,7 @@
private:
std::unique_ptr<assistant_client::AssistantManager> StartAssistantInternal(
- const std::string& access_token,
- bool enable_hotword);
+ const std::string& access_token);
void PostInitAssistant(
base::OnceClosure post_init_callback,
std::unique_ptr<assistant_client::AssistantManager>* assistant_manager);
diff --git a/chromeos/services/assistant/fake_assistant_manager_service_impl.cc b/chromeos/services/assistant/fake_assistant_manager_service_impl.cc
index f067507a..6f3fc5c8 100644
--- a/chromeos/services/assistant/fake_assistant_manager_service_impl.cc
+++ b/chromeos/services/assistant/fake_assistant_manager_service_impl.cc
@@ -31,6 +31,8 @@
void FakeAssistantManagerServiceImpl::EnableListening(bool enable) {}
+void FakeAssistantManagerServiceImpl::EnableHotword(bool enable) {}
+
AssistantManagerService::State FakeAssistantManagerServiceImpl::GetState()
const {
return state_;
diff --git a/chromeos/services/assistant/fake_assistant_manager_service_impl.h b/chromeos/services/assistant/fake_assistant_manager_service_impl.h
index 71a9bb3..33eba93 100644
--- a/chromeos/services/assistant/fake_assistant_manager_service_impl.h
+++ b/chromeos/services/assistant/fake_assistant_manager_service_impl.h
@@ -33,6 +33,7 @@
void Stop() override;
void SetAccessToken(const std::string& access_token) override;
void EnableListening(bool enable) override;
+ void EnableHotword(bool enable) override;
State GetState() const override;
AssistantSettingsManager* GetAssistantSettingsManager() override;
diff --git a/chromeos/services/assistant/service.cc b/chromeos/services/assistant/service.cc
index 759049a..9f18d032 100644
--- a/chromeos/services/assistant/service.cc
+++ b/chromeos/services/assistant/service.cc
@@ -125,7 +125,7 @@
return;
power_source_connected_ = power_source_connected;
- MaybeRestartAssistantManager();
+ UpdateAssistantManagerState();
}
void Service::SuspendDone(const base::TimeDelta& sleep_duration) {
@@ -166,8 +166,7 @@
}
void Service::OnVoiceInteractionHotwordEnabled(bool enabled) {
- // Hotword status change requires restarting assistant manager.
- MaybeRestartAssistantManager();
+ UpdateAssistantManagerState();
}
void Service::OnLocaleChanged(const std::string& locale) {
@@ -179,25 +178,6 @@
if (power_source_connected_)
return;
- MaybeRestartAssistantManager();
-}
-
-void Service::MaybeRestartAssistantManager() {
- if (assistant_manager_service_) {
- switch (assistant_manager_service_->GetState()) {
- case AssistantManagerService::State::RUNNING:
- StopAssistantManagerService();
- break;
- case AssistantManagerService::State::STARTED:
- // A previous instance of assistant manager is still in the process
- // of starting. We need to wait for that to finish before trying to
- // restart a new one to avoid potentially multiple instances running.
- pending_restart_assistant_manager_ = true;
- return;
- case AssistantManagerService::State::STOPPED:
- break;
- }
- }
UpdateAssistantManagerState();
}
@@ -230,14 +210,13 @@
}
break;
case AssistantManagerService::State::RUNNING:
- if (assistant_state_.settings_enabled().value())
- assistant_manager_service_->SetAccessToken(access_token_.value());
- else
- StopAssistantManagerService();
- break;
case AssistantManagerService::State::STARTED:
- if (!assistant_state_.settings_enabled().value())
+ if (assistant_state_.settings_enabled().value()) {
+ assistant_manager_service_->SetAccessToken(access_token_.value());
+ assistant_manager_service_->EnableHotword(ShouldEnableHotword());
+ } else {
StopAssistantManagerService();
+ }
break;
}
}
@@ -366,12 +345,6 @@
client_->OnAssistantStatusChanged(true /* running */);
UpdateListeningState();
DVLOG(1) << "Assistant is running";
-
- if (pending_restart_assistant_manager_) {
- pending_restart_assistant_manager_ = false;
- StopAssistantManagerService();
- UpdateAssistantManagerState();
- }
}
void Service::StopAssistantManagerService() {
diff --git a/chromeos/services/assistant/service.h b/chromeos/services/assistant/service.h
index a6997e1..d276dd6c 100644
--- a/chromeos/services/assistant/service.h
+++ b/chromeos/services/assistant/service.h
@@ -131,7 +131,6 @@
void OnVoiceInteractionHotwordAlwaysOn(bool always_on) override;
void OnLocaleChanged(const std::string& locale) override;
- void MaybeRestartAssistantManager();
void UpdateAssistantManagerState();
void BindAssistantSettingsManager(
mojom::AssistantSettingsManagerRequest request);
@@ -188,8 +187,6 @@
bool session_active_ = false;
// Whether the lock screen is on.
bool locked_ = false;
- // Whether there is a pending run for updating AssistantManagerService
- bool pending_restart_assistant_manager_ = false;
// Whether the power source is connected.
bool power_source_connected_ = false;
diff --git a/chromeos/services/assistant/utils.cc b/chromeos/services/assistant/utils.cc
index 8f76c81..ff0fd1f 100644
--- a/chromeos/services/assistant/utils.cc
+++ b/chromeos/services/assistant/utils.cc
@@ -27,7 +27,7 @@
return home_dir;
}
-std::string CreateLibAssistantConfig(bool disable_hotword) {
+std::string CreateLibAssistantConfig() {
using Value = base::Value;
using Type = base::Value::Type;
diff --git a/chromeos/services/assistant/utils.h b/chromeos/services/assistant/utils.h
index c33d76e..162edc6 100644
--- a/chromeos/services/assistant/utils.h
+++ b/chromeos/services/assistant/utils.h
@@ -18,7 +18,7 @@
base::FilePath GetRootPath();
-std::string CreateLibAssistantConfig(bool disable_hotword);
+std::string CreateLibAssistantConfig();
} // namespace assistant
} // namespace chromeos