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

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

Powered by Google App Engine
This is Rietveld 408576698