| Index: ash/accelerators/accelerator_controller.cc
|
| diff --git a/ash/accelerators/accelerator_controller.cc b/ash/accelerators/accelerator_controller.cc
|
| index 789059b65e59b661ee936a128796670c73f86cc2..3718c7e4e1107ac8cde5d383f4dbae4dff620307 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"
|
| @@ -536,6 +538,21 @@ bool CanHandleShowStylusTools() {
|
| return palette_utils::ShouldShowPalette();
|
| }
|
|
|
| +bool CanHandleStartVoiceInteraction() {
|
| + return chromeos::switches::IsVoiceInteractionEnabled();
|
| +}
|
| +
|
| +void HandleStartVoiceInteraction(const ui::Accelerator& accelerator) {
|
| + if (accelerator.IsCmdDown() && accelerator.key_code() == ui::VKEY_SPACE) {
|
| + base::RecordAction(
|
| + base::UserMetricsAction("VoiceInteraction.Started.Search_Space"));
|
| + } else if (accelerator.IsCmdDown() && accelerator.key_code() == ui::VKEY_A) {
|
| + base::RecordAction(
|
| + base::UserMetricsAction("VoiceInteraction.Started.Search_A"));
|
| + }
|
| + Shell::Get()->app_list()->StartVoiceInteractionSession();
|
| +}
|
| +
|
| void HandleSuspend() {
|
| base::RecordAction(UserMetricsAction("Accel_Suspend"));
|
| chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->RequestSuspend();
|
| @@ -933,6 +950,8 @@ bool AcceleratorController::CanPerformAction(
|
| return CanHandleShowMessageCenterBubble();
|
| case SHOW_STYLUS_TOOLS:
|
| return CanHandleShowStylusTools();
|
| + case START_VOICE_INTERACTION:
|
| + return CanHandleStartVoiceInteraction();
|
| case SWITCH_IME:
|
| return CanHandleSwitchIme(accelerator);
|
| case SWITCH_TO_PREVIOUS_USER:
|
| @@ -1169,6 +1188,9 @@ void AcceleratorController::PerformAction(AcceleratorAction action,
|
| case SHOW_TASK_MANAGER:
|
| HandleShowTaskManager();
|
| break;
|
| + case START_VOICE_INTERACTION:
|
| + HandleStartVoiceInteraction(accelerator);
|
| + break;
|
| case SUSPEND:
|
| HandleSuspend();
|
| break;
|
|
|