Commit f5bc3fb9 authored by Jeroen Dhollander's avatar Jeroen Dhollander Committed by Commit Bot

Reland "Uprev LibAssistant to 1.46s"

This is a reland of e3f29527

Original change's description:
> Uprev LibAssistant to 1.46s
> 
> The current LibAssistant branch (1.42c) is no longer maintained,
> and also does not contain the latest features.
> 
>    * This will only be landed after M83 branches
>    * This depends on the internal changes to land first
> 
> Note: 
> Bug: b/152777569
> Change-Id: Ic34b6ca3ba1d793c719ebb58ab9766e943fc5ec6
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2134617
> Commit-Queue: Jeroen Dhollander <jeroendh@google.com>
> Reviewed-by: Xiaohui Chen <xiaohuic@chromium.org>
> Reviewed-by: Tao Wu <wutao@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#758408}

Bug: b/152777569
Change-Id: I2aa720f229708d8ccfac7656a5d5d41606a13b37
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2147808Reviewed-by: default avatarXiaohui Chen <xiaohuic@chromium.org>
Commit-Queue: Jeroen Dhollander <jeroendh@google.com>
Cr-Commit-Position: refs/heads/master@{#758603}
parent 6a68f626
......@@ -454,12 +454,9 @@ void AssistantManagerServiceImpl::StartWarmerWelcomeInteraction(
void AssistantManagerServiceImpl::StartEditReminderInteraction(
const std::string& client_id) {
const std::string interaction = CreateEditReminderInteraction(client_id);
assistant_client::VoicelessOptions voiceless_options;
voiceless_options.is_user_initiated = true;
assistant_manager_internal_->SendVoicelessInteraction(
interaction, std::string(), voiceless_options, [](auto) {});
SendVoicelessInteraction(CreateEditReminderInteraction(client_id),
/*description=*/std::string(),
/*is_user_initiated=*/true);
}
void AssistantManagerServiceImpl::StartScreenContextInteraction(
......@@ -528,11 +525,9 @@ void AssistantManagerServiceImpl::RetrieveNotification(
SerializeNotificationRequestInteraction(
notification_id, consistency_token, opaque_token, action_index);
assistant_client::VoicelessOptions options;
options.is_user_initiated = true;
assistant_manager_internal_->SendVoicelessInteraction(
request_interaction, "RequestNotification", options, [](auto) {});
SendVoicelessInteraction(request_interaction,
/*description=*/"RequestNotification",
/*is_user_initiated=*/true);
}
void AssistantManagerServiceImpl::DismissNotification(
......@@ -555,7 +550,8 @@ void AssistantManagerServiceImpl::DismissNotification(
options.obfuscated_gaia_id = notification->obfuscated_gaia_id;
assistant_manager_internal_->SendVoicelessInteraction(
dismissed_interaction, "DismissNotification", options, [](auto) {});
dismissed_interaction, /*description=*/"DismissNotification", options,
[](auto) {});
}
void AssistantManagerServiceImpl::OnConversationTurnStartedInternal(
......@@ -646,6 +642,10 @@ void AssistantManagerServiceImpl::OnConversationTurnFinished(
mojom::AssistantInteractionResolution::kMultiDeviceHotwordLoss);
}
break;
// This is only applicable in longform barge-in mode, which we do not use.
case Resolution::LONGFORM_KEEP_MIC_OPEN:
NOTREACHED();
break;
}
}
......@@ -1041,10 +1041,10 @@ void HandleSliderChange(api::client_op::ModifySettingArgs modify_setting_args,
LogUnsupportedChange(modify_setting_args);
}
void AssistantManagerServiceImpl::OnModifySettingsAction(
const std::string& modify_setting_args_proto) {
api::client_op::ModifySettingArgs modify_setting_args;
modify_setting_args.ParseFromString(modify_setting_args_proto);
void AssistantManagerServiceImpl::OnModifyDeviceSetting(
const api::client_op::ModifySettingArgs& modify_setting_args) {
ENSURE_MAIN_THREAD(&AssistantManagerServiceImpl::OnModifyDeviceSetting,
modify_setting_args);
DCHECK(IsSettingSupported(modify_setting_args.setting_id()));
receive_modify_settings_proto_response_ = true;
......@@ -1109,14 +1109,18 @@ void AssistantManagerServiceImpl::OnModifySettingsAction(
}
}
ActionModule::Result AssistantManagerServiceImpl::HandleModifySettingClientOp(
const std::string& modify_setting_args_proto) {
DVLOG(2) << "HandleModifySettingClientOp=" << modify_setting_args_proto;
main_task_runner()->PostTask(
FROM_HERE,
base::BindOnce(&AssistantManagerServiceImpl::OnModifySettingsAction,
weak_factory_.GetWeakPtr(), modify_setting_args_proto));
return ActionModule::Result::Ok();
void AssistantManagerServiceImpl::OnGetDeviceSettings(
int interaction_id,
const api::client_op::GetDeviceSettingsArgs& args) {
// Collect the required information.
std::vector<DeviceSetting> result;
for (const std::string& setting_id : args.setting_ids())
result.emplace_back(setting_id, IsSettingSupported(setting_id));
SendVoicelessInteraction(
CreateGetDeviceSettingInteraction(interaction_id, result),
/*description=*/"get_settings_result",
/*is_user_initiated=*/true);
}
bool AssistantManagerServiceImpl::IsSettingSupported(
......@@ -1184,6 +1188,8 @@ void AssistantManagerServiceImpl::StartAssistantInternal(
UpdateInternalOptions(new_assistant_manager_internal_);
new_assistant_manager_internal_->SetLocaleOverride(
GetLocaleOrDefault(assistant_state()->locale().value()));
new_assistant_manager_internal_->SetDisplayConnection(
new_display_connection_.get());
new_assistant_manager_internal_->RegisterActionModule(action_module_.get());
......@@ -1259,7 +1265,8 @@ void AssistantManagerServiceImpl::HandleOpenAndroidAppResponse(
options.obfuscated_gaia_id = interaction.user_id;
assistant_manager_internal_->SendVoicelessInteraction(
interaction_proto, "open_provider_response", options, [](auto) {});
interaction_proto, /*description=*/"open_provider_response", options,
[](auto) {});
}
void AssistantManagerServiceImpl::HandleVerifyAndroidAppResponse(
......@@ -1281,7 +1288,8 @@ void AssistantManagerServiceImpl::HandleVerifyAndroidAppResponse(
options.is_user_initiated = true;
assistant_manager_internal_->SendVoicelessInteraction(
interaction_proto, "verify_provider_response", options, [](auto) {});
interaction_proto, /*description=*/"verify_provider_response", options,
[](auto) {});
}
// This method runs on the LibAssistant thread.
......@@ -1349,15 +1357,6 @@ void AssistantManagerServiceImpl::UpdateInternalOptions(
internal_options->SetClientControlEnabled(
assistant::features::IsRoutinesEnabled());
// TODO(meilinw): remove this logic and instead use the new config flag
// once we uprev.
if (chromeos::features::IsAmbientModeEnabled() ||
base::CommandLine::ForCurrentProcess()->HasSwitch(
chromeos::switches::kDisableGaiaServices)) {
internal_options->SetUserCredentialMode(
assistant_client::InternalOptions::UserCredentialMode::SIGNED_OUT);
}
if (!features::IsVoiceMatchDisabled())
internal_options->EnableRequireVoiceMatchVerification();
......@@ -1493,6 +1492,18 @@ std::string AssistantManagerServiceImpl::ConsumeLastTriggerSource() {
return trigger_source;
}
void AssistantManagerServiceImpl::SendVoicelessInteraction(
const std::string& interaction,
const std::string& description,
bool is_user_initiated) {
assistant_client::VoicelessOptions voiceless_options;
voiceless_options.is_user_initiated = is_user_initiated;
assistant_manager_internal_->SendVoicelessInteraction(
interaction, description, voiceless_options, [](auto) {});
}
std::string AssistantManagerServiceImpl::GetLastSearchSource() {
return ConsumeLastTriggerSource();
}
......@@ -1541,13 +1552,10 @@ void AssistantManagerServiceImpl::SendAssistantFeedback(
const std::string interaction = CreateSendFeedbackInteraction(
assistant_feedback->assistant_debug_info_allowed,
assistant_feedback->description, assistant_feedback->screenshot_png);
assistant_client::VoicelessOptions voiceless_options;
voiceless_options.is_user_initiated = false;
assistant_manager_internal_->SendVoicelessInteraction(
interaction, "send feedback with details", voiceless_options,
[](auto) {});
SendVoicelessInteraction(interaction,
/*description=*/"send feedback with details",
/*is_user_initiated=*/false);
}
void AssistantManagerServiceImpl::UpdateMediaState() {
......
......@@ -171,6 +171,11 @@ class COMPONENT_EXPORT(ASSISTANT_SERVICE) AssistantManagerServiceImpl
const action::InteractionInfo& interaction) override;
void OnVerifyAndroidApp(const std::vector<action::AndroidAppInfo>& apps_info,
const action::InteractionInfo& interaction) override;
void OnModifyDeviceSetting(
const ::assistant::api::client_op::ModifySettingArgs& args) override;
void OnGetDeviceSettings(
int interaction_id,
const ::assistant::api::client_op::GetDeviceSettingsArgs& args) override;
// AssistantEventObserver overrides:
void OnSpeechLevelUpdated(float speech_level) override;
......@@ -186,8 +191,6 @@ class COMPONENT_EXPORT(ASSISTANT_SERVICE) AssistantManagerServiceImpl
void OnRespondingStarted(bool is_error_response) override;
// AssistantManagerDelegate overrides:
assistant_client::ActionModule::Result HandleModifySettingClientOp(
const std::string& modify_setting_args_proto) override;
bool IsSettingSupported(const std::string& setting_id) override;
bool SupportsModifySettings() override;
void OnConversationTurnStartedInternal(
......@@ -293,6 +296,10 @@ class COMPONENT_EXPORT(ASSISTANT_SERVICE) AssistantManagerServiceImpl
std::string ConsumeLastTriggerSource();
void SendVoicelessInteraction(const std::string& interaction,
const std::string& description,
bool is_user_initiated);
ash::mojom::AssistantAlarmTimerController* assistant_alarm_timer_controller();
ash::mojom::AssistantNotificationController*
assistant_notification_controller();
......
......@@ -113,6 +113,15 @@ std::string CreateLibAssistantConfig(
// Enable logging.
internal.SetBoolKey("enable_logging", true);
// This only enables logging to local disk combined with the flag above. When
// user choose to file a Feedback report, user can examine the log and choose
// to upload the log with the report or not.
internal.SetBoolKey("logging_opt_in", true);
// Allows libassistant to automatically toggle signed-out mode depending on
// whether it has auth_tokens.
internal.SetBoolKey("enable_signed_out_mode", true);
config.SetKey("internal", std::move(internal));
Value audio_input(Type::DICTIONARY);
......
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