| Index: chrome/browser/chromeos/arc/voice_interaction/arc_voice_interaction_framework_service.cc
|
| diff --git a/chrome/browser/chromeos/arc/voice_interaction/arc_voice_interaction_framework_service.cc b/chrome/browser/chromeos/arc/voice_interaction/arc_voice_interaction_framework_service.cc
|
| index 7d2d7cd4f0a666cbc541fcbf515c37d222d8f31d..ad4f3b433aae8c459d722fbf223a7567d05c828f 100644
|
| --- a/chrome/browser/chromeos/arc/voice_interaction/arc_voice_interaction_framework_service.cc
|
| +++ b/chrome/browser/chromeos/arc/voice_interaction/arc_voice_interaction_framework_service.cc
|
| @@ -168,10 +168,12 @@ ArcVoiceInteractionFrameworkService::ArcVoiceInteractionFrameworkService(
|
| ArcBridgeService* bridge_service)
|
| : ArcService(bridge_service), binding_(this) {
|
| arc_bridge_service()->voice_interaction_framework()->AddObserver(this);
|
| + ArcSessionManager::Get()->AddObserver(this);
|
| }
|
|
|
| ArcVoiceInteractionFrameworkService::~ArcVoiceInteractionFrameworkService() {
|
| arc_bridge_service()->voice_interaction_framework()->RemoveObserver(this);
|
| + ArcSessionManager::Get()->RemoveObserver(this);
|
| }
|
|
|
| void ArcVoiceInteractionFrameworkService::OnInstanceReady() {
|
| @@ -319,6 +321,13 @@ void ArcVoiceInteractionFrameworkService::HideMetalayer() {
|
| SetMetalayerVisibility(false);
|
| }
|
|
|
| +void ArcVoiceInteractionFrameworkService::OnArcPlayStoreEnabledChanged(
|
| + bool enabled) {
|
| + if (!enabled)
|
| + ProfileManager::GetActiveUserProfile()->GetPrefs()->SetBoolean(
|
| + prefs::kVoiceInteractionPrefSynced, false);
|
| +}
|
| +
|
| void ArcVoiceInteractionFrameworkService::StartVoiceInteractionSetupWizard() {
|
| DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
|
| arc::mojom::VoiceInteractionFrameworkInstance* framework_instance =
|
| @@ -377,6 +386,28 @@ void ArcVoiceInteractionFrameworkService::SetVoiceInteractionContextEnabled(
|
| framework_instance->SetVoiceInteractionContextEnabled(enable);
|
| }
|
|
|
| +void ArcVoiceInteractionFrameworkService::UpdateVoiceInteractionPrefs() {
|
| + if (!ProfileManager::GetActiveUserProfile()->GetPrefs()->GetBoolean(
|
| + prefs::kVoiceInteractionPrefSynced)) {
|
| + mojom::VoiceInteractionFrameworkInstance* framework_instance =
|
| + ARC_GET_INSTANCE_FOR_METHOD(
|
| + arc_bridge_service()->voice_interaction_framework(),
|
| + GetVoiceInteractionSettings);
|
| + if (!framework_instance)
|
| + return;
|
| + framework_instance->GetVoiceInteractionSettings(base::Bind(
|
| + [](bool defined, bool feature_enabled, bool context_enabled) {
|
| + auto* prefs = ProfileManager::GetActiveUserProfile()->GetPrefs();
|
| + prefs->SetBoolean(prefs::kVoiceInteractionPrefSynced, defined);
|
| + if (!defined)
|
| + return;
|
| + prefs->SetBoolean(prefs::kVoiceInteractionEnabled, feature_enabled);
|
| + prefs->SetBoolean(prefs::kVoiceInteractionContextEnabled,
|
| + context_enabled);
|
| + }));
|
| + }
|
| +}
|
| +
|
| void ArcVoiceInteractionFrameworkService::StartSessionFromUserInteraction(
|
| const gfx::Rect& rect) {
|
| DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
|
|
|