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 |