OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_
keyboard_delegate.h" | 5 #include "chrome/browser/extensions/api/virtual_keyboard_private/chrome_virtual_
keyboard_delegate.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "ash/shell.h" | 9 #include "ash/shell.h" |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
65 } | 65 } |
66 | 66 |
67 } // namespace | 67 } // namespace |
68 | 68 |
69 namespace extensions { | 69 namespace extensions { |
70 | 70 |
71 bool ChromeVirtualKeyboardDelegate::GetKeyboardConfig( | 71 bool ChromeVirtualKeyboardDelegate::GetKeyboardConfig( |
72 base::DictionaryValue* results) { | 72 base::DictionaryValue* results) { |
73 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); | 73 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
74 results->SetString("layout", keyboard::GetKeyboardLayout()); | 74 results->SetString("layout", keyboard::GetKeyboardLayout()); |
| 75 // TODO(bshe): Consolidate a11y, hotrod and normal mode into a mode enum. See |
| 76 // crbug.com/529474. |
75 results->SetBoolean("a11ymode", keyboard::GetAccessibilityKeyboardEnabled()); | 77 results->SetBoolean("a11ymode", keyboard::GetAccessibilityKeyboardEnabled()); |
| 78 results->SetBoolean("hotrodmode", keyboard::GetHotrodKeyboardEnabled()); |
76 scoped_ptr<base::ListValue> features(new base::ListValue()); | 79 scoped_ptr<base::ListValue> features(new base::ListValue()); |
77 features->AppendString(GenerateFeatureFlag( | 80 features->AppendString(GenerateFeatureFlag( |
78 "floatingvirtualkeyboard", keyboard::IsFloatingVirtualKeyboardEnabled())); | 81 "floatingvirtualkeyboard", keyboard::IsFloatingVirtualKeyboardEnabled())); |
79 features->AppendString( | 82 features->AppendString( |
80 GenerateFeatureFlag("gesturetyping", keyboard::IsGestureTypingEnabled())); | 83 GenerateFeatureFlag("gesturetyping", keyboard::IsGestureTypingEnabled())); |
81 features->AppendString(GenerateFeatureFlag( | 84 features->AppendString(GenerateFeatureFlag( |
82 "gestureediting", keyboard::IsGestureEditingEnabled())); | 85 "gestureediting", keyboard::IsGestureEditingEnabled())); |
83 features->AppendString( | 86 features->AppendString( |
84 GenerateFeatureFlag("voiceinput", keyboard::IsVoiceInputEnabled())); | 87 GenerateFeatureFlag("voiceinput", keyboard::IsVoiceInputEnabled())); |
85 features->AppendString(GenerateFeatureFlag("experimental", | 88 features->AppendString(GenerateFeatureFlag("experimental", |
(...skipping 24 matching lines...) Expand all Loading... |
110 return keyboard::InsertText(text); | 113 return keyboard::InsertText(text); |
111 } | 114 } |
112 | 115 |
113 bool ChromeVirtualKeyboardDelegate::OnKeyboardLoaded() { | 116 bool ChromeVirtualKeyboardDelegate::OnKeyboardLoaded() { |
114 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); | 117 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
115 keyboard::MarkKeyboardLoadFinished(); | 118 keyboard::MarkKeyboardLoadFinished(); |
116 base::UserMetricsAction("VirtualKeyboardLoaded"); | 119 base::UserMetricsAction("VirtualKeyboardLoaded"); |
117 return true; | 120 return true; |
118 } | 121 } |
119 | 122 |
| 123 void ChromeVirtualKeyboardDelegate::SetHotrodKeyboard(bool enable) { |
| 124 if (keyboard::GetHotrodKeyboardEnabled() == enable) |
| 125 return; |
| 126 |
| 127 keyboard::SetHotrodKeyboardEnabled(enable); |
| 128 // This reloads virtual keyboard even if it exists. This ensures virtual |
| 129 // keyboard gets the correct state of the hotrod keyboard through |
| 130 // chrome.virtualKeyboardPrivate.getKeyboardConfig. |
| 131 if (enable && keyboard::IsKeyboardEnabled()) |
| 132 ash::Shell::GetInstance()->CreateKeyboard(); |
| 133 } |
| 134 |
120 bool ChromeVirtualKeyboardDelegate::LockKeyboard(bool state) { | 135 bool ChromeVirtualKeyboardDelegate::LockKeyboard(bool state) { |
121 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); | 136 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
122 keyboard::KeyboardController* controller = | 137 keyboard::KeyboardController* controller = |
123 keyboard::KeyboardController::GetInstance(); | 138 keyboard::KeyboardController::GetInstance(); |
124 if (!controller) | 139 if (!controller) |
125 return false; | 140 return false; |
126 | 141 |
127 keyboard::KeyboardController::GetInstance()->set_lock_keyboard(state); | 142 keyboard::KeyboardController::GetInstance()->set_lock_keyboard(state); |
128 return true; | 143 return true; |
129 } | 144 } |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
180 } | 195 } |
181 | 196 |
182 bool ChromeVirtualKeyboardDelegate::IsLanguageSettingsEnabled() { | 197 bool ChromeVirtualKeyboardDelegate::IsLanguageSettingsEnabled() { |
183 return (user_manager::UserManager::Get()->IsUserLoggedIn() && | 198 return (user_manager::UserManager::Get()->IsUserLoggedIn() && |
184 !chromeos::UserAddingScreen::Get()->IsRunning() && | 199 !chromeos::UserAddingScreen::Get()->IsRunning() && |
185 !(chromeos::ScreenLocker::default_screen_locker() && | 200 !(chromeos::ScreenLocker::default_screen_locker() && |
186 chromeos::ScreenLocker::default_screen_locker()->locked())); | 201 chromeos::ScreenLocker::default_screen_locker()->locked())); |
187 } | 202 } |
188 | 203 |
189 } // namespace extensions | 204 } // namespace extensions |
OLD | NEW |