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

Unified 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/webui/chromeos/charger_replacement_handler.cc
diff --git a/chrome/browser/ui/webui/chromeos/charger_replacement_handler.cc b/chrome/browser/ui/webui/chromeos/charger_replacement_handler.cc
new file mode 100644
index 0000000000000000000000000000000000000000..a4ae456f59d8a327bfdfc404ad90570ffc687c57
--- /dev/null
+++ b/chrome/browser/ui/webui/chromeos/charger_replacement_handler.cc
@@ -0,0 +1,296 @@
+// Copyright (c) 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ui/webui/chromeos/charger_replacement_handler.h"
+
+#include "base/bind.h"
+#include "base/prefs/pref_registry_simple.h"
+#include "base/prefs/pref_service.h"
+#include "base/strings/utf_string_conversions.h"
+#include "base/values.h"
+#include "chrome/browser/browser_process.h"
+#include "chrome/browser/chromeos/charger_replace/charger_link_dialog.h"
+#include "chrome/browser/chromeos/charger_replace/charger_replacement_dialog.h"
+#include "chrome/common/pref_names.h"
+#include "content/public/browser/user_metrics.h"
+#include "content/public/browser/web_ui.h"
+#include "grit/generated_resources.h"
+#include "ui/base/l10n/l10n_util.h"
+
+namespace chromeos {
+
+namespace {
+
+const char kFaqLink[] = "http://chromebook.com/hp11charger";
+
+} // namespace
+
+ChargerReplacementHandler::ChargerReplacementHandler(
+ ChargerReplacementDialog* dialog)
+ : charger_window_(NULL),
+ dialog_(dialog) {
+}
+
+ChargerReplacementHandler::~ChargerReplacementHandler() {
+}
+
+void ChargerReplacementHandler::RegisterMessages() {
+ web_ui()->RegisterMessageCallback("confirmSafeCharger",
+ base::Bind(&ChargerReplacementHandler::ConfirmSafeCharger,
+ base::Unretained(this)));
+ web_ui()->RegisterMessageCallback("confirmNotOrderNewCharger",
+ base::Bind(&ChargerReplacementHandler::ConfirmNotOrderNewCharger,
+ base::Unretained(this)));
+ web_ui()->RegisterMessageCallback("confirmChargerOrderedOnline",
+ base::Bind(&ChargerReplacementHandler::ConfirmChargerOrderedOnline,
+ base::Unretained(this)));
+ web_ui()->RegisterMessageCallback("confirmChargerOrderByPhone",
+ base::Bind(&ChargerReplacementHandler::ConfirmChargerOrderByPhone,
+ base::Unretained(this)));
+ web_ui()->RegisterMessageCallback("confirmStillUseBadCharger",
+ base::Bind(&ChargerReplacementHandler::ConfirmStillUseBadCharger,
+ base::Unretained(this)));
+ web_ui()->RegisterMessageCallback("showLink",
+ base::Bind(&ChargerReplacementHandler::ShowLink,
+ base::Unretained(this)));
+}
+
+// static
+void ChargerReplacementHandler::GetLocalizedValues(
+ base::DictionaryValue* localized_strings) {
+ localized_strings->SetString(
+ "checkChargerTitle",
+ l10n_util::GetStringUTF16(IDS_CHARGER_REPLACEMENT_CHECK_CHARGER_TITLE));
+ localized_strings->SetString(
+ "checkChargerDamage",
+ l10n_util::GetStringUTF16(IDS_CHARGER_REPLACEMENT_CHECK_CHARGER_DAMAGE));
+ localized_strings->SetString(
+ "checkOriginalCharger",
+ l10n_util::GetStringUTF16(IDS_CHARGER_REPLACEMENT_CHECK_ORIGNAL_CHARGER));
+ localized_strings->SetString(
+ "whereDevicePurchased",
+ l10n_util::GetStringUTF16(
+ IDS_CHARGER_REPLACEMENT_WHERE_DEVICE_PURCHASED));
+ localized_strings->SetString(
+ "selectCountry",
+ l10n_util::GetStringUTF16(
+ IDS_CHARGER_REPLACEMENT_SELECT_A_COUNTRY));
+ localized_strings->SetString(
+ "us",
+ l10n_util::GetStringUTF16(IDS_CHARGER_REPLACEMENT_US));
+ localized_strings->SetString(
+ "uk",
+ l10n_util::GetStringUTF16(IDS_CHARGER_REPLACEMENT_UK));
+ localized_strings->SetString(
+ "au",
+ l10n_util::GetStringUTF16(IDS_CHARGER_REPLACEMENT_AU));
+ localized_strings->SetString(
+ "ire",
+ l10n_util::GetStringUTF16(IDS_CHARGER_REPLACEMENT_IRE));
+ localized_strings->SetString(
+ "checkChargerSelectCharger",
+ l10n_util::GetStringUTF16(
+ IDS_CHARGER_REPLACEMENT_CHECK_CHARGER_SELECT_CHARGER));
+ localized_strings->SetString(
+ "nextStepButtonText",
+ l10n_util::GetStringUTF16(IDS_CHARGER_REPLACEMENT_NEXT_STEP));
+ localized_strings->SetString(
+ "confirmSafeChargerTitle",
+ l10n_util::GetStringUTF16(
+ IDS_CHARGER_REPLACEMENT_CONFIRM_SAFE_CHARGER_TITLE));
+ localized_strings->SetString(
+ "goWithSafeCharger",
+ l10n_util::GetStringUTF16(
+ IDS_CHARGER_REPLACEMENT_CONFIRM_SAFE_CHARGER_TO_GO));
+ localized_strings->SetString(
+ "prevStepText",
+ l10n_util::GetStringUTF16(IDS_CHARGER_REPLACEMENT_PREVIOUS_STEP));
+ localized_strings->SetString(
+ "finishText",
+ l10n_util::GetStringUTF16(IDS_CHARGER_REPLACEMENT_FINISH));
+ localized_strings->SetString(
+ "chargerUpdateTitle",
+ l10n_util::GetStringUTF16(
+ IDS_CHARGER_REPLACEMENT_CHARGER_UPDATE_TITLE));
+ localized_strings->SetString(
+ "chargerUpdateP1",
+ l10n_util::GetStringUTF16(
+ IDS_CHARGER_REPLACEMENT_CHARGER_UPDATE_P1));
+ localized_strings->SetString(
+ "stopUsingRecalledCharger",
+ l10n_util::GetStringUTF16(
+ IDS_CHARGER_REPLACEMENT_CHARGER_STOP_USING_RECALLED_CHARGER));
+ localized_strings->SetString(
+ "chargerUpdateP2",
+ l10n_util::GetStringUTF16(
+ IDS_CHARGER_REPLACEMENT_CHARGER_UPDATE_P2));
+ localized_strings->SetString(
+ "chargerUpdateFAQ",
+ l10n_util::GetStringUTF16(
+ IDS_CHARGER_REPLACEMENT_CHARGER_UPDATE_FAQ));
+ localized_strings->SetString(
+ "orderNewCharger",
+ l10n_util::GetStringUTF16(
+ IDS_CHARGER_REPLACEMENT_CHARGER_ORDER_NEW_CHARGER));
+ localized_strings->SetString(
+ "notOrderNewCharger",
+ l10n_util::GetStringUTF16(
+ IDS_CHARGER_REPLACEMENT_CHARGER_NOT_ORDER_NEW_CHARGER));
+ localized_strings->SetString(
+ "confirmNotOrderNewCharger",
+ l10n_util::GetStringUTF16(
+ IDS_CHARGER_REPLACEMENT_CHARGER_CONIFRM_NOT_ORDER_CHARGER));
+ localized_strings->SetString(
+ "noMoreShowText",
+ l10n_util::GetStringUTF16(
+ IDS_CHARGER_REPLACEMENT_NO_MOPE_MESSAGE_SHOW));
+ localized_strings->SetString(
+ "finishNotOrderChargerTitle",
+ l10n_util::GetStringUTF16(
+ IDS_CHARGER_REPLACEMENT_FINISH_NOT_ORDER_CHARGER_TITLE));
+ localized_strings->SetString(
+ "finishNotOrderChargerP2",
+ l10n_util::GetStringUTF16(
+ IDS_CHARGER_REPLACEMENT_FINISH_NOT_ORDER_CHARGER_P2));
+ localized_strings->SetString(
+ "finishNotOrderChargerMoreInfo",
+ l10n_util::GetStringUTF16(
+ IDS_CHARGER_REPLACEMENT_FINISH_NOT_ORDER_CHARGER_MORE_INFO));
+
+ localized_strings->SetString(
+ "confirmOnlineOrder",
+ l10n_util::GetStringUTF16(
+ IDS_CHARGER_REPLACEMENT_ONLINE_ORDER_CONFIRMATION_TITLE));
+ localized_strings->SetString(
+ "confirmReceivingOnlineOrder",
+ l10n_util::GetStringUTF16(
+ IDS_CHARGER_REPLACEMENT_ONLINE_ORDER_CONFIRMATION_MESSAGE));
+ localized_strings->SetString(
+ "needMoreInformation",
+ l10n_util::GetStringUTF16(IDS_CHARGER_REPLACEMENT_FIND_MORE_INFORMATION));
+ localized_strings->SetString(
+ "orderChargerOfflineTitle",
+ l10n_util::GetStringUTF16(
+ IDS_CHARGER_REPLACEMENT_OFFLINE_ORDER_TITLE));
+ localized_strings->SetString(
+ "offlineChargerOrderParagraph1",
+ l10n_util::GetStringUTF16(
+ IDS_CHARGER_REPLACEMENT_OFFLINE_ORDER_P1));
+ localized_strings->SetString(
+ "offlineChargerOrderParagraph2",
+ l10n_util::GetStringUTF16(
+ IDS_CHARGER_REPLACEMENT_OFFLINE_ORDER_P2));
+ localized_strings->SetString(
+ "offlineSafeChargerConfirmationText",
+ l10n_util::GetStringUTF16(
+ IDS_CHARGER_REPLACEMENT_OFFLINE_ORDER_CONFIRM));
+ localized_strings->SetString(
+ "privacyPolicy",
+ l10n_util::GetStringUTF16(
+ IDS_CHARGER_REPLACEMENT_TEXT_PRIVACY_POLICY));
+ localized_strings->SetString(
+ "offlineOrderPhoneNumber",
+ l10n_util::GetStringUTF16(
+ IDS_CHARGER_REPLACEMENT_OFFLINE_ORDER_PHONE_NUMBER));
+ localized_strings->SetString(
+ "offlineOrderPhoneNumber",
+ l10n_util::GetStringUTF16(
+ IDS_CHARGER_REPLACEMENT_OFFLINE_ORDER_PHONE_NUMBER));
+ localized_strings->SetString(
+ "chargerStillBadTitle",
+ l10n_util::GetStringUTF16(
+ IDS_CHARGER_REPLACEMENT_CHARGER_STILL_BAD));
+ localized_strings->SetString(
+ "chargedOrdered",
+ l10n_util::GetStringUTF16(
+ IDS_CHARGER_REPLACEMENT_CHARGER_ORDERED));
+ localized_strings->SetString(
+ "findMoreInfo",
+ l10n_util::GetStringUTF16(
+ IDS_CHARGER_REPLACEMENT_CHARGER_MORE_INFO));
+ localized_strings->SetString("faqLink", kFaqLink);
+}
+
+// static
+void ChargerReplacementHandler::RegisterPrefs(PrefRegistrySimple* registry) {
+ registry->RegisterIntegerPref(prefs::kSpringChargerCheck, CHARGER_UNKNOWN);
+}
+
+// static
+ChargerReplacementHandler::SpringChargerStatus
+ ChargerReplacementHandler::GetChargerStatusPref() {
+ ChargerReplacementHandler::SpringChargerStatus charger_status =
+ static_cast<ChargerReplacementHandler::SpringChargerStatus>(
+ g_browser_process->local_state()->GetInteger(prefs::kSpringChargerCheck));
+ return charger_status;
+}
+
+// static
+void ChargerReplacementHandler::SetChargerStatusPref(
+ SpringChargerStatus status) {
+ g_browser_process->local_state()->SetInteger(prefs::kSpringChargerCheck,
+ status);
+}
+
+void ChargerReplacementHandler::ConfirmSafeCharger(
+ const base::ListValue* args) {
+ content::RecordAction(
+ content::UserMetricsAction("ConfirmSafeSpringCharger"));
+
+ SetChargerStatusPref(CONFIRM_SAFE_CHARGER);
+ dialog_->set_can_close(true);
+}
+
+void ChargerReplacementHandler::ConfirmNotOrderNewCharger(
+ const base::ListValue* args) {
+ content::RecordAction(
+ content::UserMetricsAction("ConfirmNotToOrderSpringCharger"));
+
+ SetChargerStatusPref(CONFIRM_NOT_ORDER_NEW_CHARGER);
+ dialog_->set_can_close(true);
+}
+
+void ChargerReplacementHandler::ConfirmChargerOrderedOnline(
+ const base::ListValue* args) {
+ content::RecordAction(
+ content::UserMetricsAction("ConfirmOrderSpringChargerOnline"));
+ content::RecordAction(
+ content::UserMetricsAction("ConfirmOrderSpringCharger"));
+
+ SetChargerStatusPref(CONFIRM_NEW_CHARGER_ORDERED_ONLINE);
+ dialog_->set_can_close(true);
+}
+
+void ChargerReplacementHandler::ConfirmChargerOrderByPhone(
+ const base::ListValue* args) {
+ content::RecordAction(
+ content::UserMetricsAction("ConfirmOrderSpringChargerByPhone"));
+ content::RecordAction(
+ content::UserMetricsAction("ConfirmOrderSpringCharger"));
+
+ SetChargerStatusPref(CONFIRM_ORDER_NEW_CHARGER_BY_PHONE);
+ dialog_->set_can_close(true);
+}
+
+void ChargerReplacementHandler::ConfirmStillUseBadCharger(
+ const base::ListValue* args) {
+ content::RecordAction(
+ content::UserMetricsAction("ConfirmStillUseOriginalChargerAfterOrder"));
+
+ if (GetChargerStatusPref() == CONFIRM_NEW_CHARGER_ORDERED_ONLINE) {
+ SetChargerStatusPref(USE_BAD_CHARGER_AFTER_ORDER_ONLINE);
+ } else {
+ DCHECK(GetChargerStatusPref() == CONFIRM_ORDER_NEW_CHARGER_BY_PHONE);
+ SetChargerStatusPref(USE_BAD_CHARGER_AFTER_ORDER_BY_PHONE);
+ }
+ dialog_->set_can_close(true);
+}
+
+void ChargerReplacementHandler::ShowLink(const base::ListValue* args) {
+ std::string url = UTF16ToUTF8(ExtractStringValue(args));
+ ChargerLinkDialog* dialog = new ChargerLinkDialog(charger_window_, url);
+ dialog->Show();
+}
+
+} // namespace chromeos

Powered by Google App Engine
This is Rietveld 408576698