| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/ui/webui/chromeos/login/network_screen_handler.h" | 5 #include "chrome/browser/ui/webui/chromeos/login/network_screen_handler.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
| 9 #include "base/memory/weak_ptr.h" | 9 #include "base/memory/weak_ptr.h" |
| 10 #include "base/strings/stringprintf.h" | 10 #include "base/strings/stringprintf.h" |
| (...skipping 18 matching lines...) Expand all Loading... |
| 29 namespace { | 29 namespace { |
| 30 | 30 |
| 31 const char kJsScreenPath[] = "login.NetworkScreen"; | 31 const char kJsScreenPath[] = "login.NetworkScreen"; |
| 32 | 32 |
| 33 // JS API callbacks names. | 33 // JS API callbacks names. |
| 34 const char kJsApiNetworkOnExit[] = "networkOnExit"; | 34 const char kJsApiNetworkOnExit[] = "networkOnExit"; |
| 35 const char kJsApiNetworkOnLanguageChanged[] = "networkOnLanguageChanged"; | 35 const char kJsApiNetworkOnLanguageChanged[] = "networkOnLanguageChanged"; |
| 36 const char kJsApiNetworkOnInputMethodChanged[] = "networkOnInputMethodChanged"; | 36 const char kJsApiNetworkOnInputMethodChanged[] = "networkOnInputMethodChanged"; |
| 37 const char kJsApiNetworkOnTimezoneChanged[] = "networkOnTimezoneChanged"; | 37 const char kJsApiNetworkOnTimezoneChanged[] = "networkOnTimezoneChanged"; |
| 38 | 38 |
| 39 const char kUSlayout[] = "xkb:us::eng"; |
| 40 |
| 39 } // namespace | 41 } // namespace |
| 40 | 42 |
| 41 namespace chromeos { | 43 namespace chromeos { |
| 42 | 44 |
| 43 // NetworkScreenHandler, public: ----------------------------------------------- | 45 // NetworkScreenHandler, public: ----------------------------------------------- |
| 44 | 46 |
| 45 NetworkScreenHandler::NetworkScreenHandler(CoreOobeActor* core_oobe_actor) | 47 NetworkScreenHandler::NetworkScreenHandler(CoreOobeActor* core_oobe_actor) |
| 46 : BaseScreenHandler(kJsScreenPath), | 48 : BaseScreenHandler(kJsScreenPath), |
| 47 screen_(NULL), | 49 screen_(NULL), |
| 48 core_oobe_actor_(core_oobe_actor), | 50 core_oobe_actor_(core_oobe_actor), |
| (...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 267 | 269 |
| 268 // static | 270 // static |
| 269 base::ListValue* NetworkScreenHandler::GetInputMethods() { | 271 base::ListValue* NetworkScreenHandler::GetInputMethods() { |
| 270 base::ListValue* input_methods_list = new base::ListValue; | 272 base::ListValue* input_methods_list = new base::ListValue; |
| 271 input_method::InputMethodManager* manager = | 273 input_method::InputMethodManager* manager = |
| 272 input_method::InputMethodManager::Get(); | 274 input_method::InputMethodManager::Get(); |
| 273 input_method::InputMethodUtil* util = manager->GetInputMethodUtil(); | 275 input_method::InputMethodUtil* util = manager->GetInputMethodUtil(); |
| 274 scoped_ptr<input_method::InputMethodDescriptors> input_methods( | 276 scoped_ptr<input_method::InputMethodDescriptors> input_methods( |
| 275 manager->GetActiveInputMethods()); | 277 manager->GetActiveInputMethods()); |
| 276 std::string current_input_method_id = manager->GetCurrentInputMethod().id(); | 278 std::string current_input_method_id = manager->GetCurrentInputMethod().id(); |
| 279 bool default_us_layout_added = false; |
| 277 for (size_t i = 0; i < input_methods->size(); ++i) { | 280 for (size_t i = 0; i < input_methods->size(); ++i) { |
| 278 const std::string ime_id = input_methods->at(i).id(); | 281 const std::string ime_id = input_methods->at(i).id(); |
| 282 |
| 283 if (ime_id == kUSlayout) |
| 284 default_us_layout_added = true; |
| 285 |
| 279 base::DictionaryValue* input_method = new base::DictionaryValue; | 286 base::DictionaryValue* input_method = new base::DictionaryValue; |
| 280 input_method->SetString("value", ime_id); | 287 input_method->SetString("value", ime_id); |
| 281 input_method->SetString( | 288 input_method->SetString( |
| 282 "title", | 289 "title", |
| 283 util->GetInputMethodLongName(input_methods->at(i))); | 290 util->GetInputMethodLongName(input_methods->at(i))); |
| 284 input_method->SetBoolean("selected", | 291 input_method->SetBoolean("selected", |
| 285 ime_id == current_input_method_id); | 292 ime_id == current_input_method_id); |
| 286 input_methods_list->Append(input_method); | 293 input_methods_list->Append(input_method); |
| 287 } | 294 } |
| 295 // "xkb:us::eng" should always be in the list of available layouts. |
| 296 if (!default_us_layout_added) { |
| 297 const input_method::InputMethodDescriptor* us_eng_descriptor = |
| 298 util->GetInputMethodDescriptorFromId(kUSlayout); |
| 299 DCHECK(us_eng_descriptor != NULL); |
| 300 base::DictionaryValue* input_method = new base::DictionaryValue; |
| 301 input_method->SetString("value", kUSlayout); |
| 302 input_method->SetString("title", |
| 303 util->GetInputMethodLongName(*us_eng_descriptor)); |
| 304 input_methods_list->Append(input_method); |
| 305 } |
| 288 return input_methods_list; | 306 return input_methods_list; |
| 289 } | 307 } |
| 290 | 308 |
| 291 // static | 309 // static |
| 292 base::ListValue* NetworkScreenHandler::GetTimezoneList() { | 310 base::ListValue* NetworkScreenHandler::GetTimezoneList() { |
| 293 std::string current_timezone_id; | 311 std::string current_timezone_id; |
| 294 CrosSettings::Get()->GetString(kSystemTimezone, ¤t_timezone_id); | 312 CrosSettings::Get()->GetString(kSystemTimezone, ¤t_timezone_id); |
| 295 | 313 |
| 296 scoped_ptr<base::ListValue> timezone_list(new base::ListValue); | 314 scoped_ptr<base::ListValue> timezone_list(new base::ListValue); |
| 297 scoped_ptr<base::ListValue> timezones = system::GetTimezoneList().Pass(); | 315 scoped_ptr<base::ListValue> timezones = system::GetTimezoneList().Pass(); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 310 timezone_option->SetString("value", timezone_id); | 328 timezone_option->SetString("value", timezone_id); |
| 311 timezone_option->SetString("title", timezone_name); | 329 timezone_option->SetString("title", timezone_name); |
| 312 timezone_option->SetBoolean("selected", timezone_id == current_timezone_id); | 330 timezone_option->SetBoolean("selected", timezone_id == current_timezone_id); |
| 313 timezone_list->Append(timezone_option.release()); | 331 timezone_list->Append(timezone_option.release()); |
| 314 } | 332 } |
| 315 | 333 |
| 316 return timezone_list.release(); | 334 return timezone_list.release(); |
| 317 } | 335 } |
| 318 | 336 |
| 319 } // namespace chromeos | 337 } // namespace chromeos |
| OLD | NEW |