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/chromeos/login/screens/network_screen.h" | 5 #include "chrome/browser/chromeos/login/screens/network_screen.h" |
6 | 6 |
7 #include "base/location.h" | 7 #include "base/location.h" |
8 #include "base/logging.h" | 8 #include "base/logging.h" |
9 #include "base/prefs/pref_service.h" | 9 #include "base/prefs/pref_service.h" |
10 #include "base/strings/string16.h" | 10 #include "base/strings/string16.h" |
11 #include "base/strings/utf_string_conversions.h" | 11 #include "base/strings/utf_string_conversions.h" |
12 #include "chrome/browser/browser_process.h" | 12 #include "chrome/browser/browser_process.h" |
13 #include "chrome/browser/chromeos/base/locale_util.h" | 13 #include "chrome/browser/chromeos/base/locale_util.h" |
14 #include "chrome/browser/chromeos/customization/customization_document.h" | 14 #include "chrome/browser/chromeos/customization/customization_document.h" |
15 #include "chrome/browser/chromeos/login/help_app_launcher.h" | 15 #include "chrome/browser/chromeos/login/help_app_launcher.h" |
16 #include "chrome/browser/chromeos/login/helper.h" | 16 #include "chrome/browser/chromeos/login/helper.h" |
17 #include "chrome/browser/chromeos/login/login_utils.h" | |
18 #include "chrome/browser/chromeos/login/screen_manager.h" | 17 #include "chrome/browser/chromeos/login/screen_manager.h" |
19 #include "chrome/browser/chromeos/login/screens/base_screen_delegate.h" | 18 #include "chrome/browser/chromeos/login/screens/base_screen_delegate.h" |
20 #include "chrome/browser/chromeos/login/screens/network_view.h" | 19 #include "chrome/browser/chromeos/login/screens/network_view.h" |
21 #include "chrome/browser/chromeos/login/ui/input_events_blocker.h" | 20 #include "chrome/browser/chromeos/login/ui/input_events_blocker.h" |
22 #include "chrome/browser/chromeos/login/wizard_controller.h" | 21 #include "chrome/browser/chromeos/login/wizard_controller.h" |
23 #include "chrome/browser/ui/webui/chromeos/login/l10n_util.h" | 22 #include "chrome/browser/ui/webui/chromeos/login/l10n_util.h" |
24 #include "chrome/common/pref_names.h" | 23 #include "chrome/common/pref_names.h" |
25 #include "chrome/grit/chromium_strings.h" | 24 #include "chrome/grit/chromium_strings.h" |
26 #include "chrome/grit/generated_resources.h" | 25 #include "chrome/grit/generated_resources.h" |
27 #include "chromeos/network/network_handler.h" | 26 #include "chromeos/network/network_handler.h" |
(...skipping 26 matching lines...) Expand all Loading... |
54 is_network_subscribed_(false), | 53 is_network_subscribed_(false), |
55 continue_pressed_(false), | 54 continue_pressed_(false), |
56 view_(view), | 55 view_(view), |
57 delegate_(delegate), | 56 delegate_(delegate), |
58 network_state_helper_(new login::NetworkStateHelper), | 57 network_state_helper_(new login::NetworkStateHelper), |
59 weak_factory_(this) { | 58 weak_factory_(this) { |
60 if (view_) | 59 if (view_) |
61 view_->Bind(*this); | 60 view_->Bind(*this); |
62 | 61 |
63 input_method::InputMethodManager::Get()->AddObserver(this); | 62 input_method::InputMethodManager::Get()->AddObserver(this); |
| 63 InitializeTimezoneObserver(); |
| 64 } |
64 | 65 |
| 66 void NetworkScreen::InitializeTimezoneObserver() { |
65 timezone_subscription_ = CrosSettings::Get()->AddSettingsObserver( | 67 timezone_subscription_ = CrosSettings::Get()->AddSettingsObserver( |
66 kSystemTimezone, base::Bind(&NetworkScreen::OnSystemTimezoneChanged, | 68 kSystemTimezone, base::Bind(&NetworkScreen::OnSystemTimezoneChanged, |
67 base::Unretained(this))); | 69 base::Unretained(this))); |
68 } | 70 } |
69 | 71 |
70 NetworkScreen::~NetworkScreen() { | 72 NetworkScreen::~NetworkScreen() { |
71 if (view_) | 73 if (view_) |
72 view_->Unbind(); | 74 view_->Unbind(); |
73 connection_timer_.Stop(); | 75 connection_timer_.Stop(); |
74 UnsubscribeNetworkNotification(); | 76 UnsubscribeNetworkNotification(); |
(...skipping 14 matching lines...) Expand all Loading... |
89 | 91 |
90 // Here we should handle default locales, for which we do not have UI | 92 // Here we should handle default locales, for which we do not have UI |
91 // resources. This would load fallback, but properly show "selected" locale | 93 // resources. This would load fallback, but properly show "selected" locale |
92 // in the UI. | 94 // in the UI. |
93 if (selected_language_code_.empty()) { | 95 if (selected_language_code_.empty()) { |
94 const StartupCustomizationDocument* startup_manifest = | 96 const StartupCustomizationDocument* startup_manifest = |
95 StartupCustomizationDocument::GetInstance(); | 97 StartupCustomizationDocument::GetInstance(); |
96 SetApplicationLocale(startup_manifest->initial_locale_default()); | 98 SetApplicationLocale(startup_manifest->initial_locale_default()); |
97 } | 99 } |
98 | 100 |
| 101 if (!timezone_subscription_) |
| 102 InitializeTimezoneObserver(); |
| 103 |
99 if (view_) | 104 if (view_) |
100 view_->Show(); | 105 view_->Show(); |
101 } | 106 } |
102 | 107 |
103 void NetworkScreen::Hide() { | 108 void NetworkScreen::Hide() { |
| 109 timezone_subscription_.reset(); |
104 if (view_) | 110 if (view_) |
105 view_->Hide(); | 111 view_->Hide(); |
106 } | 112 } |
107 | 113 |
108 void NetworkScreen::Initialize(::login::ScreenContext* context) { | 114 void NetworkScreen::Initialize(::login::ScreenContext* context) { |
109 NetworkModel::Initialize(context); | 115 NetworkModel::Initialize(context); |
110 OnSystemTimezoneChanged(); | 116 OnSystemTimezoneChanged(); |
111 UpdateLanguageList(); | 117 UpdateLanguageList(); |
112 } | 118 } |
113 | 119 |
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
377 FOR_EACH_OBSERVER(Observer, observers_, OnLanguageListReloaded()); | 383 FOR_EACH_OBSERVER(Observer, observers_, OnLanguageListReloaded()); |
378 } | 384 } |
379 | 385 |
380 void NetworkScreen::OnSystemTimezoneChanged() { | 386 void NetworkScreen::OnSystemTimezoneChanged() { |
381 std::string current_timezone_id; | 387 std::string current_timezone_id; |
382 CrosSettings::Get()->GetString(kSystemTimezone, ¤t_timezone_id); | 388 CrosSettings::Get()->GetString(kSystemTimezone, ¤t_timezone_id); |
383 GetContextEditor().SetString(kContextKeyTimezone, current_timezone_id); | 389 GetContextEditor().SetString(kContextKeyTimezone, current_timezone_id); |
384 } | 390 } |
385 | 391 |
386 } // namespace chromeos | 392 } // namespace chromeos |
OLD | NEW |