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

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

Powered by Google App Engine
This is Rietveld 408576698