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/login/wrong_hwid_screen_handler.h"
6
7#include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h"
8#include "grit/chromium_strings.h"
9#include "grit/generated_resources.h"
10
11namespace {
12
13const char kJsScreenPath[] = "login.WrongHWIDScreen";
14
15}  // namespace
16
17namespace chromeos {
18
19WrongHWIDScreenHandler::WrongHWIDScreenHandler()
20    : BaseScreenHandler(kJsScreenPath),
21      delegate_(NULL),
22      show_on_init_(false) {
23}
24
25WrongHWIDScreenHandler::~WrongHWIDScreenHandler() {
26  if (delegate_)
27    delegate_->OnActorDestroyed(this);
28}
29
30void WrongHWIDScreenHandler::PrepareToShow() {
31}
32
33void WrongHWIDScreenHandler::Show() {
34  if (!page_is_ready()) {
35    show_on_init_ = true;
36    return;
37  }
38  ShowScreen(OobeUI::kScreenWrongHWID, NULL);
39}
40
41void WrongHWIDScreenHandler::Hide() {
42}
43
44void WrongHWIDScreenHandler::SetDelegate(Delegate* delegate) {
45  delegate_ = delegate;
46  if (page_is_ready())
47    Initialize();
48}
49
50void WrongHWIDScreenHandler::DeclareLocalizedValues(
51    LocalizedValuesBuilder* builder) {
52  builder->Add("wrongHWIDScreenHeader", IDS_WRONG_HWID_SCREEN_HEADER);
53  builder->Add("wrongHWIDMessageFirstPart",
54                IDS_WRONG_HWID_SCREEN_MESSAGE_FIRST_PART);
55  builder->Add("wrongHWIDMessageSecondPart",
56                IDS_WRONG_HWID_SCREEN_MESSAGE_SECOND_PART);
57  builder->Add("wrongHWIDScreenSkipLink",
58                IDS_WRONG_HWID_SCREEN_SKIP_LINK);
59}
60
61void WrongHWIDScreenHandler::Initialize() {
62  if (!page_is_ready() || !delegate_)
63    return;
64
65  if (show_on_init_) {
66    Show();
67    show_on_init_ = false;
68  }
69}
70
71void WrongHWIDScreenHandler::RegisterMessages() {
72  AddCallback("wrongHWIDOnSkip", &WrongHWIDScreenHandler::HandleOnSkip);
73}
74
75void WrongHWIDScreenHandler::HandleOnSkip() {
76  if (delegate_)
77    delegate_->OnExit();
78}
79
80}  // namespace chromeos
81