| 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 |