Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(755)

Side by Side Diff: chrome/browser/ui/webui/chromeos/charger_replacement_handler.cc

Issue 107103004: Implement the spring charger replacement UI. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Point iFrame to production site. Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(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 "content/public/browser/user_metrics.h"
17 #include "content/public/browser/web_ui.h"
18 #include "grit/generated_resources.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 "uk",
84 l10n_util::GetStringUTF16(IDS_CHARGER_REPLACEMENT_UK));
85 localized_strings->SetString(
86 "au",
87 l10n_util::GetStringUTF16(IDS_CHARGER_REPLACEMENT_AU));
88 localized_strings->SetString(
89 "ire",
90 l10n_util::GetStringUTF16(IDS_CHARGER_REPLACEMENT_IRE));
91 localized_strings->SetString(
92 "checkChargerSelectCharger",
93 l10n_util::GetStringUTF16(
94 IDS_CHARGER_REPLACEMENT_CHECK_CHARGER_SELECT_CHARGER));
95 localized_strings->SetString(
96 "nextStepButtonText",
97 l10n_util::GetStringUTF16(IDS_CHARGER_REPLACEMENT_NEXT_STEP));
98 localized_strings->SetString(
99 "confirmSafeChargerTitle",
100 l10n_util::GetStringUTF16(
101 IDS_CHARGER_REPLACEMENT_CONFIRM_SAFE_CHARGER_TITLE));
102 localized_strings->SetString(
103 "goWithSafeCharger",
104 l10n_util::GetStringUTF16(
105 IDS_CHARGER_REPLACEMENT_CONFIRM_SAFE_CHARGER_TO_GO));
106 localized_strings->SetString(
107 "prevStepText",
108 l10n_util::GetStringUTF16(IDS_CHARGER_REPLACEMENT_PREVIOUS_STEP));
109 localized_strings->SetString(
110 "finishText",
111 l10n_util::GetStringUTF16(IDS_CHARGER_REPLACEMENT_FINISH));
112 localized_strings->SetString(
113 "chargerUpdateTitle",
114 l10n_util::GetStringUTF16(
115 IDS_CHARGER_REPLACEMENT_CHARGER_UPDATE_TITLE));
116 localized_strings->SetString(
117 "chargerUpdateP1",
118 l10n_util::GetStringUTF16(
119 IDS_CHARGER_REPLACEMENT_CHARGER_UPDATE_P1));
120 localized_strings->SetString(
121 "stopUsingRecalledCharger",
122 l10n_util::GetStringUTF16(
123 IDS_CHARGER_REPLACEMENT_CHARGER_STOP_USING_RECALLED_CHARGER));
124 localized_strings->SetString(
125 "chargerUpdateP2",
126 l10n_util::GetStringUTF16(
127 IDS_CHARGER_REPLACEMENT_CHARGER_UPDATE_P2));
128 localized_strings->SetString(
129 "chargerUpdateFAQ",
130 l10n_util::GetStringUTF16(
131 IDS_CHARGER_REPLACEMENT_CHARGER_UPDATE_FAQ));
132 localized_strings->SetString(
133 "orderNewCharger",
134 l10n_util::GetStringUTF16(
135 IDS_CHARGER_REPLACEMENT_CHARGER_ORDER_NEW_CHARGER));
136 localized_strings->SetString(
137 "notOrderNewCharger",
138 l10n_util::GetStringUTF16(
139 IDS_CHARGER_REPLACEMENT_CHARGER_NOT_ORDER_NEW_CHARGER));
140 localized_strings->SetString(
141 "confirmNotOrderNewCharger",
142 l10n_util::GetStringUTF16(
143 IDS_CHARGER_REPLACEMENT_CHARGER_CONIFRM_NOT_ORDER_CHARGER));
144 localized_strings->SetString(
145 "noMoreShowText",
146 l10n_util::GetStringUTF16(
147 IDS_CHARGER_REPLACEMENT_NO_MOPE_MESSAGE_SHOW));
148 localized_strings->SetString(
149 "finishNotOrderChargerTitle",
150 l10n_util::GetStringUTF16(
151 IDS_CHARGER_REPLACEMENT_FINISH_NOT_ORDER_CHARGER_TITLE));
152 localized_strings->SetString(
153 "finishNotOrderChargerP2",
154 l10n_util::GetStringUTF16(
155 IDS_CHARGER_REPLACEMENT_FINISH_NOT_ORDER_CHARGER_P2));
156 localized_strings->SetString(
157 "finishNotOrderChargerMoreInfo",
158 l10n_util::GetStringUTF16(
159 IDS_CHARGER_REPLACEMENT_FINISH_NOT_ORDER_CHARGER_MORE_INFO));
160
161 localized_strings->SetString(
162 "confirmOnlineOrder",
163 l10n_util::GetStringUTF16(
164 IDS_CHARGER_REPLACEMENT_ONLINE_ORDER_CONFIRMATION_TITLE));
165 localized_strings->SetString(
166 "confirmReceivingOnlineOrder",
167 l10n_util::GetStringUTF16(
168 IDS_CHARGER_REPLACEMENT_ONLINE_ORDER_CONFIRMATION_MESSAGE));
169 localized_strings->SetString(
170 "needMoreInformation",
171 l10n_util::GetStringUTF16(IDS_CHARGER_REPLACEMENT_FIND_MORE_INFORMATION));
172 localized_strings->SetString(
173 "orderChargerOfflineTitle",
174 l10n_util::GetStringUTF16(
175 IDS_CHARGER_REPLACEMENT_OFFLINE_ORDER_TITLE));
176 localized_strings->SetString(
177 "offlineChargerOrderParagraph1",
178 l10n_util::GetStringUTF16(
179 IDS_CHARGER_REPLACEMENT_OFFLINE_ORDER_P1));
180 localized_strings->SetString(
181 "offlineChargerOrderParagraph2",
182 l10n_util::GetStringUTF16(
183 IDS_CHARGER_REPLACEMENT_OFFLINE_ORDER_P2));
184 localized_strings->SetString(
185 "offlineSafeChargerConfirmationText",
186 l10n_util::GetStringUTF16(
187 IDS_CHARGER_REPLACEMENT_OFFLINE_ORDER_CONFIRM));
188 localized_strings->SetString(
189 "privacyPolicy",
190 l10n_util::GetStringUTF16(
191 IDS_CHARGER_REPLACEMENT_TEXT_PRIVACY_POLICY));
192 localized_strings->SetString(
193 "offlineOrderPhoneNumber",
194 l10n_util::GetStringUTF16(
195 IDS_CHARGER_REPLACEMENT_OFFLINE_ORDER_PHONE_NUMBER));
196 localized_strings->SetString(
197 "offlineOrderPhoneNumber",
198 l10n_util::GetStringUTF16(
199 IDS_CHARGER_REPLACEMENT_OFFLINE_ORDER_PHONE_NUMBER));
200 localized_strings->SetString(
201 "chargerStillBadTitle",
202 l10n_util::GetStringUTF16(
203 IDS_CHARGER_REPLACEMENT_CHARGER_STILL_BAD));
204 localized_strings->SetString(
205 "chargedOrdered",
206 l10n_util::GetStringUTF16(
207 IDS_CHARGER_REPLACEMENT_CHARGER_ORDERED));
208 localized_strings->SetString(
209 "findMoreInfo",
210 l10n_util::GetStringUTF16(
211 IDS_CHARGER_REPLACEMENT_CHARGER_MORE_INFO));
212 localized_strings->SetString("faqLink", kFaqLink);
213 }
214
215 // static
216 void ChargerReplacementHandler::RegisterPrefs(PrefRegistrySimple* registry) {
217 registry->RegisterIntegerPref(prefs::kSpringChargerCheck, CHARGER_UNKNOWN);
218 }
219
220 // static
221 ChargerReplacementHandler::SpringChargerStatus
222 ChargerReplacementHandler::GetChargerStatusPref() {
223 ChargerReplacementHandler::SpringChargerStatus charger_status =
224 static_cast<ChargerReplacementHandler::SpringChargerStatus>(
225 g_browser_process->local_state()->GetInteger(prefs::kSpringChargerCheck));
226 return charger_status;
227 }
228
229 // static
230 void ChargerReplacementHandler::SetChargerStatusPref(
231 SpringChargerStatus status) {
232 g_browser_process->local_state()->SetInteger(prefs::kSpringChargerCheck,
233 status);
234 }
235
236 void ChargerReplacementHandler::ConfirmSafeCharger(
237 const base::ListValue* args) {
238 content::RecordAction(
239 content::UserMetricsAction("ConfirmSafeSpringCharger"));
240
241 SetChargerStatusPref(CONFIRM_SAFE_CHARGER);
242 dialog_->set_can_close(true);
243 }
244
245 void ChargerReplacementHandler::ConfirmNotOrderNewCharger(
246 const base::ListValue* args) {
247 content::RecordAction(
248 content::UserMetricsAction("ConfirmNotToOrderSpringCharger"));
249
250 SetChargerStatusPref(CONFIRM_NOT_ORDER_NEW_CHARGER);
251 dialog_->set_can_close(true);
252 }
253
254 void ChargerReplacementHandler::ConfirmChargerOrderedOnline(
255 const base::ListValue* args) {
256 content::RecordAction(
257 content::UserMetricsAction("ConfirmOrderSpringChargerOnline"));
258 content::RecordAction(
259 content::UserMetricsAction("ConfirmOrderSpringCharger"));
260
261 SetChargerStatusPref(CONFIRM_NEW_CHARGER_ORDERED_ONLINE);
262 dialog_->set_can_close(true);
263 }
264
265 void ChargerReplacementHandler::ConfirmChargerOrderByPhone(
266 const base::ListValue* args) {
267 content::RecordAction(
268 content::UserMetricsAction("ConfirmOrderSpringChargerByPhone"));
269 content::RecordAction(
270 content::UserMetricsAction("ConfirmOrderSpringCharger"));
271
272 SetChargerStatusPref(CONFIRM_ORDER_NEW_CHARGER_BY_PHONE);
273 dialog_->set_can_close(true);
274 }
275
276 void ChargerReplacementHandler::ConfirmStillUseBadCharger(
277 const base::ListValue* args) {
278 content::RecordAction(
279 content::UserMetricsAction("ConfirmStillUseOriginalChargerAfterOrder"));
280
281 if (GetChargerStatusPref() == CONFIRM_NEW_CHARGER_ORDERED_ONLINE) {
282 SetChargerStatusPref(USE_BAD_CHARGER_AFTER_ORDER_ONLINE);
283 } else {
284 DCHECK(GetChargerStatusPref() == CONFIRM_ORDER_NEW_CHARGER_BY_PHONE);
285 SetChargerStatusPref(USE_BAD_CHARGER_AFTER_ORDER_BY_PHONE);
286 }
287 dialog_->set_can_close(true);
288 }
289
290 void ChargerReplacementHandler::ShowLink(const base::ListValue* args) {
291 std::string url = UTF16ToUTF8(ExtractStringValue(args));
292 ChargerLinkDialog* dialog = new ChargerLinkDialog(charger_window_, url);
293 dialog->Show();
294 }
295
296 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698