| 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/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/memory/weak_ptr.h" | 10 #include "base/memory/weak_ptr.h" |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 67 namespace chromeos { | 67 namespace chromeos { |
| 68 | 68 |
| 69 // NetworkScreenHandler, public: ----------------------------------------------- | 69 // NetworkScreenHandler, public: ----------------------------------------------- |
| 70 | 70 |
| 71 NetworkScreenHandler::NetworkScreenHandler(CoreOobeActor* core_oobe_actor) | 71 NetworkScreenHandler::NetworkScreenHandler(CoreOobeActor* core_oobe_actor) |
| 72 : BaseScreenHandler(kJsScreenPath), | 72 : BaseScreenHandler(kJsScreenPath), |
| 73 screen_(NULL), | 73 screen_(NULL), |
| 74 core_oobe_actor_(core_oobe_actor), | 74 core_oobe_actor_(core_oobe_actor), |
| 75 is_continue_enabled_(false), | 75 is_continue_enabled_(false), |
| 76 show_on_init_(false), | 76 show_on_init_(false), |
| 77 should_reinitialize_language_keyboard_list_(false), | |
| 78 weak_ptr_factory_(this) { | 77 weak_ptr_factory_(this) { |
| 79 DCHECK(core_oobe_actor_); | 78 DCHECK(core_oobe_actor_); |
| 80 | 79 |
| 81 input_method::InputMethodManager* manager = | 80 input_method::InputMethodManager* manager = |
| 82 input_method::InputMethodManager::Get(); | 81 input_method::InputMethodManager::Get(); |
| 83 manager->AddObserver(this); | 82 manager->AddObserver(this); |
| 84 manager->GetComponentExtensionIMEManager()->AddObserver(this); | |
| 85 } | 83 } |
| 86 | 84 |
| 87 NetworkScreenHandler::~NetworkScreenHandler() { | 85 NetworkScreenHandler::~NetworkScreenHandler() { |
| 88 if (screen_) | 86 if (screen_) |
| 89 screen_->OnActorDestroyed(this); | 87 screen_->OnActorDestroyed(this); |
| 90 | 88 |
| 91 input_method::InputMethodManager* manager = | 89 input_method::InputMethodManager* manager = |
| 92 input_method::InputMethodManager::Get(); | 90 input_method::InputMethodManager::Get(); |
| 93 manager->RemoveObserver(this); | 91 manager->RemoveObserver(this); |
| 94 manager->GetComponentExtensionIMEManager()->RemoveObserver(this); | |
| 95 } | 92 } |
| 96 | 93 |
| 97 // NetworkScreenHandler, NetworkScreenActor implementation: -------------------- | 94 // NetworkScreenHandler, NetworkScreenActor implementation: -------------------- |
| 98 | 95 |
| 99 void NetworkScreenHandler::SetDelegate(NetworkScreenActor::Delegate* screen) { | 96 void NetworkScreenHandler::SetDelegate(NetworkScreenActor::Delegate* screen) { |
| 100 screen_ = screen; | 97 screen_ = screen; |
| 101 } | 98 } |
| 102 | 99 |
| 103 void NetworkScreenHandler::PrepareToShow() { | 100 void NetworkScreenHandler::PrepareToShow() { |
| 104 } | 101 } |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 206 dict->Set("timezoneList", GetTimezoneList()); | 203 dict->Set("timezoneList", GetTimezoneList()); |
| 207 } | 204 } |
| 208 | 205 |
| 209 void NetworkScreenHandler::Initialize() { | 206 void NetworkScreenHandler::Initialize() { |
| 210 EnableContinue(is_continue_enabled_); | 207 EnableContinue(is_continue_enabled_); |
| 211 if (show_on_init_) { | 208 if (show_on_init_) { |
| 212 show_on_init_ = false; | 209 show_on_init_ = false; |
| 213 Show(); | 210 Show(); |
| 214 } | 211 } |
| 215 | 212 |
| 216 if (should_reinitialize_language_keyboard_list_) { | |
| 217 should_reinitialize_language_keyboard_list_ = false; | |
| 218 ReloadLocalizedContent(); | |
| 219 } | |
| 220 | |
| 221 timezone_subscription_ = CrosSettings::Get()->AddSettingsObserver( | 213 timezone_subscription_ = CrosSettings::Get()->AddSettingsObserver( |
| 222 kSystemTimezone, | 214 kSystemTimezone, |
| 223 base::Bind(&NetworkScreenHandler::OnSystemTimezoneChanged, | 215 base::Bind(&NetworkScreenHandler::OnSystemTimezoneChanged, |
| 224 base::Unretained(this))); | 216 base::Unretained(this))); |
| 225 OnSystemTimezoneChanged(); | 217 OnSystemTimezoneChanged(); |
| 226 } | 218 } |
| 227 | 219 |
| 228 // NetworkScreenHandler, WebUIMessageHandler implementation: ------------------- | 220 // NetworkScreenHandler, WebUIMessageHandler implementation: ------------------- |
| 229 | 221 |
| 230 void NetworkScreenHandler::RegisterMessages() { | 222 void NetworkScreenHandler::RegisterMessages() { |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 323 | 315 |
| 324 CrosSettings::Get()->SetString(kSystemTimezone, timezone_id); | 316 CrosSettings::Get()->SetString(kSystemTimezone, timezone_id); |
| 325 } | 317 } |
| 326 | 318 |
| 327 void NetworkScreenHandler::OnSystemTimezoneChanged() { | 319 void NetworkScreenHandler::OnSystemTimezoneChanged() { |
| 328 std::string current_timezone_id; | 320 std::string current_timezone_id; |
| 329 CrosSettings::Get()->GetString(kSystemTimezone, ¤t_timezone_id); | 321 CrosSettings::Get()->GetString(kSystemTimezone, ¤t_timezone_id); |
| 330 CallJS("setTimezone", current_timezone_id); | 322 CallJS("setTimezone", current_timezone_id); |
| 331 } | 323 } |
| 332 | 324 |
| 333 void NetworkScreenHandler::OnImeComponentExtensionInitialized() { | |
| 334 // Refreshes the language and keyboard list once the component extension | |
| 335 // IMEs are initialized. | |
| 336 if (page_is_ready()) | |
| 337 ReloadLocalizedContent(); | |
| 338 else | |
| 339 should_reinitialize_language_keyboard_list_ = true; | |
| 340 } | |
| 341 | |
| 342 void NetworkScreenHandler::InputMethodChanged( | 325 void NetworkScreenHandler::InputMethodChanged( |
| 343 input_method::InputMethodManager* manager, bool show_message) { | 326 input_method::InputMethodManager* manager, bool show_message) { |
| 344 CallJS("setInputMethod", manager->GetCurrentInputMethod().id()); | 327 CallJS("setInputMethod", manager->GetCurrentInputMethod().id()); |
| 345 } | 328 } |
| 346 | 329 |
| 347 void NetworkScreenHandler::ReloadLocalizedContent() { | 330 void NetworkScreenHandler::ReloadLocalizedContent() { |
| 348 base::DictionaryValue localized_strings; | 331 base::DictionaryValue localized_strings; |
| 349 static_cast<OobeUI*>(web_ui()->GetController()) | 332 static_cast<OobeUI*>(web_ui()->GetController()) |
| 350 ->GetLocalizedStrings(&localized_strings); | 333 ->GetLocalizedStrings(&localized_strings); |
| 351 core_oobe_actor_->ReloadContent(localized_strings); | 334 core_oobe_actor_->ReloadContent(localized_strings); |
| (...skipping 24 matching lines...) Expand all Loading... |
| 376 timezone_option->SetString("value", timezone_id); | 359 timezone_option->SetString("value", timezone_id); |
| 377 timezone_option->SetString("title", timezone_name); | 360 timezone_option->SetString("title", timezone_name); |
| 378 timezone_option->SetBoolean("selected", timezone_id == current_timezone_id); | 361 timezone_option->SetBoolean("selected", timezone_id == current_timezone_id); |
| 379 timezone_list->Append(timezone_option.release()); | 362 timezone_list->Append(timezone_option.release()); |
| 380 } | 363 } |
| 381 | 364 |
| 382 return timezone_list.release(); | 365 return timezone_list.release(); |
| 383 } | 366 } |
| 384 | 367 |
| 385 } // namespace chromeos | 368 } // namespace chromeos |
| OLD | NEW |