Index: ash/accelerators/accelerator_controller.cc |
diff --git a/ash/accelerators/accelerator_controller.cc b/ash/accelerators/accelerator_controller.cc |
index 46e3dab419a7e2bc12d119bad30ddf3d2adb6fe4..ec73404ca95d125e44faa3ad3bbdf65fe0302088 100644 |
--- a/ash/accelerators/accelerator_controller.cc |
+++ b/ash/accelerators/accelerator_controller.cc |
@@ -50,8 +50,10 @@ |
#include "base/metrics/user_metrics.h" |
#include "base/strings/string_split.h" |
#include "base/strings/utf_string_conversions.h" |
+#include "chromeos/chromeos_switches.h" |
#include "chromeos/dbus/dbus_thread_manager.h" |
#include "chromeos/dbus/power_manager_client.h" |
+#include "ui/app_list/presenter/app_list.h" |
#include "ui/base/accelerators/accelerator.h" |
#include "ui/base/accelerators/accelerator_manager.h" |
#include "ui/base/ime/chromeos/ime_keyboard.h" |
@@ -519,6 +521,14 @@ bool CanHandleShowStylusTools() { |
return palette_utils::ShouldShowPalette(); |
} |
+bool CanHandleStartVoiceInteraction() { |
+ return chromeos::switches::IsVoiceInteractionEnabled(); |
+} |
+ |
+void HandleStartVoiceInteraction() { |
+ Shell::Get()->app_list()->StartVoiceInteractionSession(); |
+} |
+ |
void HandleSuspend() { |
base::RecordAction(UserMetricsAction("Accel_Suspend")); |
chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->RequestSuspend(); |
@@ -921,6 +931,8 @@ bool AcceleratorController::CanPerformAction( |
return CanHandleShowMessageCenterBubble(); |
case SHOW_STYLUS_TOOLS: |
return CanHandleShowStylusTools(); |
+ case START_VOICE_INTERACTION: |
+ return CanHandleStartVoiceInteraction(); |
case SWITCH_IME: |
return CanHandleSwitchIme(ime_control_delegate_.get(), accelerator); |
case SWITCH_TO_PREVIOUS_USER: |
@@ -1157,6 +1169,9 @@ void AcceleratorController::PerformAction(AcceleratorAction action, |
case SHOW_TASK_MANAGER: |
HandleShowTaskManager(); |
break; |
+ case START_VOICE_INTERACTION: |
+ HandleStartVoiceInteraction(); |
+ break; |
case SUSPEND: |
HandleSuspend(); |
break; |