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 b9122323dee0974db5e0cd8f45d50cf2675c14df..c65991f7b7eaafcf7f5914d6110159f43eb4fea0 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 |
@@ -23,6 +23,7 @@ |
#include "chrome/browser/ui/browser_window.h" |
#include "chromeos/chromeos_switches.h" |
#include "components/arc/arc_bridge_service.h" |
+#include "components/arc/arc_util.h" |
#include "components/arc/instance_holder.h" |
#include "content/public/browser/browser_thread.h" |
#include "ui/aura/window.h" |
@@ -124,25 +125,6 @@ void EncodeAndReturnImage( |
callback); |
} |
-void RecordShortcutAction(const ui::Accelerator& accelerator) { |
- if (accelerator.IsCmdDown() && accelerator.key_code() == ui::VKEY_A) { |
- if (accelerator.IsShiftDown()) { |
- base::RecordAction(base::UserMetricsAction( |
- "VoiceInteraction.MetalayerStarted.Search_Shift_A")); |
- return; |
- } |
- base::RecordAction( |
- base::UserMetricsAction("VoiceInteraction.Started.Search_A")); |
- return; |
- } |
- |
- if (accelerator.IsCmdDown() && accelerator.key_code() == ui::VKEY_SPACE) { |
- base::RecordAction( |
- base::UserMetricsAction("VoiceInteraction.Started.Search_Space")); |
- return; |
- } |
-} |
- |
} // namespace |
// static |
@@ -167,17 +149,10 @@ void ArcVoiceInteractionFrameworkService::OnInstanceReady() { |
DCHECK(framework_instance); |
framework_instance->Init(binding_.CreateInterfacePtrAndBind()); |
- // TODO(updowndota): Move the dynamic shortcuts to accelerator_controller.cc |
- // to prevent several issues. |
- ash::Shell::Get()->accelerator_controller()->Register( |
- {ui::Accelerator(ui::VKEY_A, ui::EF_COMMAND_DOWN)}, this); |
// Temporary shortcut added to enable the metalayer experiment. |
ash::Shell::Get()->accelerator_controller()->Register( |
{ui::Accelerator(ui::VKEY_A, ui::EF_COMMAND_DOWN | ui::EF_SHIFT_DOWN)}, |
this); |
- // Temporary shortcut added for UX/PM exploration. |
- ash::Shell::Get()->accelerator_controller()->Register( |
- {ui::Accelerator(ui::VKEY_SPACE, ui::EF_COMMAND_DOWN)}, this); |
} |
void ArcVoiceInteractionFrameworkService::OnInstanceClosed() { |
@@ -192,25 +167,17 @@ bool ArcVoiceInteractionFrameworkService::AcceleratorPressed( |
const ui::Accelerator& accelerator) { |
DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
- RecordShortcutAction(accelerator); |
- |
- if (accelerator.IsShiftDown()) { |
- // Temporary, used for debugging. |
- // Does not take into account or update the palette state. |
- mojom::VoiceInteractionFrameworkInstance* framework_instance = |
- ARC_GET_INSTANCE_FOR_METHOD( |
- arc_bridge_service()->voice_interaction_framework(), |
- SetMetalayerVisibility); |
- DCHECK(framework_instance); |
- framework_instance->SetMetalayerVisibility(true); |
- } else { |
- mojom::VoiceInteractionFrameworkInstance* framework_instance = |
- ARC_GET_INSTANCE_FOR_METHOD( |
- arc_bridge_service()->voice_interaction_framework(), |
- StartVoiceInteractionSession); |
- DCHECK(framework_instance); |
- framework_instance->StartVoiceInteractionSession(); |
- } |
+ base::RecordAction(base::UserMetricsAction( |
+ "VoiceInteraction.MetalayerStarted.Search_Shift_A")); |
+ |
+ // Temporary, used for debugging. |
+ // Does not take into account or update the palette state. |
+ mojom::VoiceInteractionFrameworkInstance* framework_instance = |
+ ARC_GET_INSTANCE_FOR_METHOD( |
+ arc_bridge_service()->voice_interaction_framework(), |
+ SetMetalayerVisibility); |
+ DCHECK(framework_instance); |
+ framework_instance->SetMetalayerVisibility(true); |
return true; |
} |
@@ -291,6 +258,19 @@ void ArcVoiceInteractionFrameworkService::HideMetalayer() { |
SetMetalayerVisibility(false); |
} |
+void ArcVoiceInteractionFrameworkService::StartVoiceInteractionSession() { |
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
+ mojom::VoiceInteractionFrameworkInstance* framework_instance = |
+ ARC_GET_INSTANCE_FOR_METHOD( |
+ arc_bridge_service()->voice_interaction_framework(), |
+ StartVoiceInteractionSession); |
+ if (!framework_instance) { |
+ arc::PrioritizeArcContainer(); |
+ return; |
+ } |
+ framework_instance->StartVoiceInteractionSession(); |
+} |
+ |
void ArcVoiceInteractionFrameworkService::SetMetalayerVisibility(bool visible) { |
DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
mojom::VoiceInteractionFrameworkInstance* framework_instance = |