error_screen.cc revision a1401311d1ab56c4ed0a474bd38c108f75cb0cd9
1// Copyright (c) 2012 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/chromeos/login/screens/error_screen.h" 6 7#include "chrome/browser/chromeos/login/screens/error_screen_actor.h" 8#include "chrome/browser/chromeos/login/wizard_controller.h" 9#include "chrome/browser/chromeos/net/network_portal_detector.h" 10 11namespace chromeos { 12 13ErrorScreen::ErrorScreen(ScreenObserver* screen_observer, 14 ErrorScreenActor* actor) 15 : WizardScreen(screen_observer), 16 actor_(actor), 17 parent_screen_(OobeDisplay::SCREEN_UNKNOWN) { 18 DCHECK(actor_); 19 actor_->SetDelegate(this); 20 AddObserver(NetworkPortalDetector::Get()); 21} 22 23ErrorScreen::~ErrorScreen() { 24 actor_->SetDelegate(NULL); 25 RemoveObserver(NetworkPortalDetector::Get()); 26} 27 28void ErrorScreen::AddObserver(Observer* observer) { 29 if (observer) 30 observers_.AddObserver(observer); 31} 32 33void ErrorScreen::RemoveObserver(Observer* observer) { 34 if (observer) 35 observers_.RemoveObserver(observer); 36} 37 38void ErrorScreen::PrepareToShow() { 39} 40 41void ErrorScreen::Show() { 42 DCHECK(actor_); 43 actor_->Show(parent_screen(), NULL); 44} 45 46void ErrorScreen::Hide() { 47 DCHECK(actor_); 48 actor_->Hide(); 49} 50 51std::string ErrorScreen::GetName() const { 52 return WizardController::kErrorScreenName; 53} 54 55void ErrorScreen::OnErrorShow() { 56 FOR_EACH_OBSERVER(Observer, observers_, OnErrorScreenShow()); 57} 58 59void ErrorScreen::OnErrorHide() { 60 FOR_EACH_OBSERVER(Observer, observers_, OnErrorScreenHide()); 61} 62 63void ErrorScreen::FixCaptivePortal() { 64 DCHECK(actor_); 65 actor_->FixCaptivePortal(); 66} 67 68void ErrorScreen::ShowCaptivePortal() { 69 DCHECK(actor_); 70 actor_->ShowCaptivePortal(); 71} 72 73void ErrorScreen::HideCaptivePortal() { 74 DCHECK(actor_); 75 actor_->HideCaptivePortal(); 76} 77 78void ErrorScreen::SetUIState(UIState ui_state) { 79 DCHECK(actor_); 80 actor_->SetUIState(ui_state); 81} 82 83ErrorScreen::UIState ErrorScreen::GetUIState() const { 84 DCHECK(actor_); 85 return actor_->ui_state(); 86} 87 88void ErrorScreen::SetErrorState(ErrorState error_state, 89 const std::string& network) { 90 DCHECK(actor_); 91 actor_->SetErrorState(error_state, network); 92} 93 94void ErrorScreen::ShowConnectingIndicator(bool show) { 95 DCHECK(actor_); 96 actor_->ShowConnectingIndicator(show); 97} 98 99} // namespace chromeos 100