OLD | NEW |
| (Empty) |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "chrome/browser/ui/webui/chromeos/charger_replacement_handler.h" | |
6 | |
7 #include "base/bind.h" | |
8 #include "base/prefs/pref_registry_simple.h" | |
9 #include "base/prefs/pref_service.h" | |
10 #include "base/strings/utf_string_conversions.h" | |
11 #include "base/values.h" | |
12 #include "chrome/browser/browser_process.h" | |
13 #include "chrome/browser/chromeos/charger_replace/charger_link_dialog.h" | |
14 #include "chrome/browser/chromeos/charger_replace/charger_replacement_dialog.h" | |
15 #include "chrome/common/pref_names.h" | |
16 #include "chrome/grit/generated_resources.h" | |
17 #include "content/public/browser/user_metrics.h" | |
18 #include "content/public/browser/web_ui.h" | |
19 #include "ui/base/l10n/l10n_util.h" | |
20 | |
21 namespace chromeos { | |
22 | |
23 namespace { | |
24 | |
25 const char kFaqLink[] = "http://chromebook.com/hp11charger"; | |
26 | |
27 } // namespace | |
28 | |
29 ChargerReplacementHandler::ChargerReplacementHandler( | |
30 ChargerReplacementDialog* dialog) | |
31 : charger_window_(NULL), | |
32 dialog_(dialog) { | |
33 } | |
34 | |
35 ChargerReplacementHandler::~ChargerReplacementHandler() { | |
36 } | |
37 | |
38 void ChargerReplacementHandler::RegisterMessages() { | |
39 web_ui()->RegisterMessageCallback("confirmSafeCharger", | |
40 base::Bind(&ChargerReplacementHandler::ConfirmSafeCharger, | |
41 base::Unretained(this))); | |
42 web_ui()->RegisterMessageCallback("confirmNotOrderNewCharger", | |
43 base::Bind(&ChargerReplacementHandler::ConfirmNotOrderNewCharger, | |
44 base::Unretained(this))); | |
45 web_ui()->RegisterMessageCallback("confirmChargerOrderedOnline", | |
46 base::Bind(&ChargerReplacementHandler::ConfirmChargerOrderedOnline, | |
47 base::Unretained(this))); | |
48 web_ui()->RegisterMessageCallback("confirmChargerOrderByPhone", | |
49 base::Bind(&ChargerReplacementHandler::ConfirmChargerOrderByPhone, | |
50 base::Unretained(this))); | |
51 web_ui()->RegisterMessageCallback("confirmStillUseBadCharger", | |
52 base::Bind(&ChargerReplacementHandler::ConfirmStillUseBadCharger, | |
53 base::Unretained(this))); | |
54 web_ui()->RegisterMessageCallback("showLink", | |
55 base::Bind(&ChargerReplacementHandler::ShowLink, | |
56 base::Unretained(this))); | |
57 } | |
58 | |
59 // static | |
60 void ChargerReplacementHandler::GetLocalizedValues( | |
61 base::DictionaryValue* localized_strings) { | |
62 localized_strings->SetString( | |
63 "checkChargerTitle", | |
64 l10n_util::GetStringUTF16(IDS_CHARGER_REPLACEMENT_CHECK_CHARGER_TITLE)); | |
65 localized_strings->SetString( | |
66 "checkChargerDamage", | |
67 l10n_util::GetStringUTF16(IDS_CHARGER_REPLACEMENT_CHECK_CHARGER_DAMAGE)); | |
68 localized_strings->SetString( | |
69 "checkOriginalCharger", | |
70 l10n_util::GetStringUTF16(IDS_CHARGER_REPLACEMENT_CHECK_ORIGNAL_CHARGER)); | |
71 localized_strings->SetString( | |
72 "whereDevicePurchased", | |
73 l10n_util::GetStringUTF16( | |
74 IDS_CHARGER_REPLACEMENT_WHERE_DEVICE_PURCHASED)); | |
75 localized_strings->SetString( | |
76 "selectCountry", | |
77 l10n_util::GetStringUTF16( | |
78 IDS_CHARGER_REPLACEMENT_SELECT_A_COUNTRY)); | |
79 localized_strings->SetString( | |
80 "us", | |
81 l10n_util::GetStringUTF16(IDS_CHARGER_REPLACEMENT_US)); | |
82 localized_strings->SetString( | |
83 "ca", | |
84 l10n_util::GetStringUTF16(IDS_CHARGER_REPLACEMENT_CA)); | |
85 localized_strings->SetString( | |
86 "uk", | |
87 l10n_util::GetStringUTF16(IDS_CHARGER_REPLACEMENT_UK)); | |
88 localized_strings->SetString( | |
89 "au", | |
90 l10n_util::GetStringUTF16(IDS_CHARGER_REPLACEMENT_AU)); | |
91 localized_strings->SetString( | |
92 "ire", | |
93 l10n_util::GetStringUTF16(IDS_CHARGER_REPLACEMENT_IRE)); | |
94 localized_strings->SetString( | |
95 "checkChargerSelectCharger", | |
96 l10n_util::GetStringUTF16( | |
97 IDS_CHARGER_REPLACEMENT_CHECK_CHARGER_SELECT_CHARGER)); | |
98 localized_strings->SetString( | |
99 "nextStepButtonText", | |
100 l10n_util::GetStringUTF16(IDS_CHARGER_REPLACEMENT_NEXT_STEP)); | |
101 localized_strings->SetString( | |
102 "confirmSafeChargerTitle", | |
103 l10n_util::GetStringUTF16( | |
104 IDS_CHARGER_REPLACEMENT_CONFIRM_SAFE_CHARGER_TITLE)); | |
105 localized_strings->SetString( | |
106 "goWithSafeCharger", | |
107 l10n_util::GetStringUTF16( | |
108 IDS_CHARGER_REPLACEMENT_CONFIRM_SAFE_CHARGER_TO_GO)); | |
109 localized_strings->SetString( | |
110 "prevStepText", | |
111 l10n_util::GetStringUTF16(IDS_CHARGER_REPLACEMENT_PREVIOUS_STEP)); | |
112 localized_strings->SetString( | |
113 "finishText", | |
114 l10n_util::GetStringUTF16(IDS_CHARGER_REPLACEMENT_FINISH)); | |
115 localized_strings->SetString( | |
116 "chargerUpdateTitle", | |
117 l10n_util::GetStringUTF16( | |
118 IDS_CHARGER_REPLACEMENT_CHARGER_UPDATE_TITLE)); | |
119 localized_strings->SetString( | |
120 "chargerUpdateP1", | |
121 l10n_util::GetStringUTF16( | |
122 IDS_CHARGER_REPLACEMENT_CHARGER_UPDATE_P1)); | |
123 localized_strings->SetString( | |
124 "stopUsingRecalledCharger", | |
125 l10n_util::GetStringUTF16( | |
126 IDS_CHARGER_REPLACEMENT_CHARGER_STOP_USING_RECALLED_CHARGER)); | |
127 localized_strings->SetString( | |
128 "chargerUpdateP2", | |
129 l10n_util::GetStringUTF16( | |
130 IDS_CHARGER_REPLACEMENT_CHARGER_UPDATE_P2)); | |
131 localized_strings->SetString( | |
132 "chargerUpdateFAQ", | |
133 l10n_util::GetStringUTF16( | |
134 IDS_CHARGER_REPLACEMENT_CHARGER_UPDATE_FAQ)); | |
135 localized_strings->SetString( | |
136 "orderNewCharger", | |
137 l10n_util::GetStringUTF16( | |
138 IDS_CHARGER_REPLACEMENT_CHARGER_ORDER_NEW_CHARGER)); | |
139 localized_strings->SetString( | |
140 "notOrderNewCharger", | |
141 l10n_util::GetStringUTF16( | |
142 IDS_CHARGER_REPLACEMENT_CHARGER_NOT_ORDER_NEW_CHARGER)); | |
143 localized_strings->SetString( | |
144 "confirmNotOrderNewCharger", | |
145 l10n_util::GetStringUTF16( | |
146 IDS_CHARGER_REPLACEMENT_CHARGER_CONIFRM_NOT_ORDER_CHARGER)); | |
147 localized_strings->SetString( | |
148 "noMoreShowText", | |
149 l10n_util::GetStringUTF16( | |
150 IDS_CHARGER_REPLACEMENT_NO_MOPE_MESSAGE_SHOW)); | |
151 localized_strings->SetString( | |
152 "finishNotOrderChargerTitle", | |
153 l10n_util::GetStringUTF16( | |
154 IDS_CHARGER_REPLACEMENT_FINISH_NOT_ORDER_CHARGER_TITLE)); | |
155 localized_strings->SetString( | |
156 "finishNotOrderChargerP2", | |
157 l10n_util::GetStringUTF16( | |
158 IDS_CHARGER_REPLACEMENT_FINISH_NOT_ORDER_CHARGER_P2)); | |
159 localized_strings->SetString( | |
160 "finishNotOrderChargerMoreInfo", | |
161 l10n_util::GetStringUTF16( | |
162 IDS_CHARGER_REPLACEMENT_FINISH_NOT_ORDER_CHARGER_MORE_INFO)); | |
163 | |
164 localized_strings->SetString( | |
165 "confirmOnlineOrder", | |
166 l10n_util::GetStringUTF16( | |
167 IDS_CHARGER_REPLACEMENT_ONLINE_ORDER_CONFIRMATION_TITLE)); | |
168 localized_strings->SetString( | |
169 "confirmReceivingOnlineOrder", | |
170 l10n_util::GetStringUTF16( | |
171 IDS_CHARGER_REPLACEMENT_ONLINE_ORDER_CONFIRMATION_MESSAGE)); | |
172 localized_strings->SetString( | |
173 "needMoreInformation", | |
174 l10n_util::GetStringUTF16(IDS_CHARGER_REPLACEMENT_FIND_MORE_INFORMATION)); | |
175 localized_strings->SetString( | |
176 "orderChargerOfflineTitle", | |
177 l10n_util::GetStringUTF16( | |
178 IDS_CHARGER_REPLACEMENT_OFFLINE_ORDER_TITLE)); | |
179 localized_strings->SetString( | |
180 "offlineChargerOrderParagraph1", | |
181 l10n_util::GetStringUTF16( | |
182 IDS_CHARGER_REPLACEMENT_OFFLINE_ORDER_P1)); | |
183 localized_strings->SetString( | |
184 "offlineChargerOrderParagraph2", | |
185 l10n_util::GetStringUTF16( | |
186 IDS_CHARGER_REPLACEMENT_OFFLINE_ORDER_P2)); | |
187 localized_strings->SetString( | |
188 "offlineSafeChargerConfirmationText", | |
189 l10n_util::GetStringUTF16( | |
190 IDS_CHARGER_REPLACEMENT_OFFLINE_ORDER_CONFIRM)); | |
191 localized_strings->SetString( | |
192 "privacyPolicy", | |
193 l10n_util::GetStringUTF16( | |
194 IDS_CHARGER_REPLACEMENT_TEXT_PRIVACY_POLICY)); | |
195 localized_strings->SetString( | |
196 "offlineOrderPhoneNumber", | |
197 l10n_util::GetStringUTF16( | |
198 IDS_CHARGER_REPLACEMENT_OFFLINE_ORDER_PHONE_NUMBER)); | |
199 localized_strings->SetString( | |
200 "offlineOrderPhoneNumber", | |
201 l10n_util::GetStringUTF16( | |
202 IDS_CHARGER_REPLACEMENT_OFFLINE_ORDER_PHONE_NUMBER)); | |
203 localized_strings->SetString( | |
204 "chargerStillBadTitle", | |
205 l10n_util::GetStringUTF16( | |
206 IDS_CHARGER_REPLACEMENT_CHARGER_STILL_BAD)); | |
207 localized_strings->SetString( | |
208 "chargedOrdered", | |
209 l10n_util::GetStringUTF16( | |
210 IDS_CHARGER_REPLACEMENT_CHARGER_ORDERED)); | |
211 localized_strings->SetString( | |
212 "findMoreInfo", | |
213 l10n_util::GetStringUTF16( | |
214 IDS_CHARGER_REPLACEMENT_CHARGER_MORE_INFO)); | |
215 localized_strings->SetString("faqLink", kFaqLink); | |
216 } | |
217 | |
218 // static | |
219 void ChargerReplacementHandler::RegisterPrefs(PrefRegistrySimple* registry) { | |
220 registry->RegisterIntegerPref(prefs::kSpringChargerCheck, CHARGER_UNKNOWN); | |
221 } | |
222 | |
223 // static | |
224 ChargerReplacementHandler::SpringChargerStatus | |
225 ChargerReplacementHandler::GetChargerStatusPref() { | |
226 ChargerReplacementHandler::SpringChargerStatus charger_status = | |
227 static_cast<ChargerReplacementHandler::SpringChargerStatus>( | |
228 g_browser_process->local_state()->GetInteger(prefs::kSpringChargerCheck)); | |
229 return charger_status; | |
230 } | |
231 | |
232 // static | |
233 void ChargerReplacementHandler::SetChargerStatusPref( | |
234 SpringChargerStatus status) { | |
235 g_browser_process->local_state()->SetInteger(prefs::kSpringChargerCheck, | |
236 status); | |
237 } | |
238 | |
239 void ChargerReplacementHandler::ConfirmSafeCharger( | |
240 const base::ListValue* args) { | |
241 content::RecordAction( | |
242 base::UserMetricsAction("ConfirmSafeSpringCharger")); | |
243 | |
244 SetChargerStatusPref(CONFIRM_SAFE_CHARGER); | |
245 dialog_->set_can_close(true); | |
246 } | |
247 | |
248 void ChargerReplacementHandler::ConfirmNotOrderNewCharger( | |
249 const base::ListValue* args) { | |
250 content::RecordAction( | |
251 base::UserMetricsAction("ConfirmNotToOrderSpringCharger")); | |
252 | |
253 SetChargerStatusPref(CONFIRM_NOT_ORDER_NEW_CHARGER); | |
254 dialog_->set_can_close(true); | |
255 } | |
256 | |
257 void ChargerReplacementHandler::ConfirmChargerOrderedOnline( | |
258 const base::ListValue* args) { | |
259 content::RecordAction( | |
260 base::UserMetricsAction("ConfirmOrderSpringChargerOnline")); | |
261 content::RecordAction( | |
262 base::UserMetricsAction("ConfirmOrderSpringCharger")); | |
263 | |
264 SetChargerStatusPref(CONFIRM_NEW_CHARGER_ORDERED_ONLINE); | |
265 dialog_->set_can_close(true); | |
266 } | |
267 | |
268 void ChargerReplacementHandler::ConfirmChargerOrderByPhone( | |
269 const base::ListValue* args) { | |
270 content::RecordAction( | |
271 base::UserMetricsAction("ConfirmOrderSpringChargerByPhone")); | |
272 content::RecordAction( | |
273 base::UserMetricsAction("ConfirmOrderSpringCharger")); | |
274 | |
275 SetChargerStatusPref(CONFIRM_ORDER_NEW_CHARGER_BY_PHONE); | |
276 dialog_->set_can_close(true); | |
277 } | |
278 | |
279 void ChargerReplacementHandler::ConfirmStillUseBadCharger( | |
280 const base::ListValue* args) { | |
281 content::RecordAction( | |
282 base::UserMetricsAction("ConfirmStillUseOriginalChargerAfterOrder")); | |
283 | |
284 if (GetChargerStatusPref() == CONFIRM_NEW_CHARGER_ORDERED_ONLINE) { | |
285 SetChargerStatusPref(USE_BAD_CHARGER_AFTER_ORDER_ONLINE); | |
286 } else { | |
287 DCHECK(GetChargerStatusPref() == CONFIRM_ORDER_NEW_CHARGER_BY_PHONE); | |
288 SetChargerStatusPref(USE_BAD_CHARGER_AFTER_ORDER_BY_PHONE); | |
289 } | |
290 dialog_->set_can_close(true); | |
291 } | |
292 | |
293 void ChargerReplacementHandler::ShowLink(const base::ListValue* args) { | |
294 std::string url = base::UTF16ToUTF8(ExtractStringValue(args)); | |
295 ChargerLinkDialog* dialog = new ChargerLinkDialog(charger_window_, url); | |
296 dialog->Show(); | |
297 } | |
298 | |
299 } // namespace chromeos | |
OLD | NEW |