blob: 62eb8af70aa04cce89c13af66756c95c6b6f9d41 [file] [log] [blame]
// Copyright 2019 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/login/supervision_onboarding_screen_handler.h"
#include "base/bind.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/chromeos/login/oobe_screen.h"
#include "chrome/browser/chromeos/login/screens/supervision_onboarding_screen.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/browser/ui/ash/login_screen_client.h"
#include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h"
#include "chrome/grit/generated_resources.h"
#include "components/login/localized_values_builder.h"
namespace chromeos {
constexpr StaticOobeScreenId SupervisionOnboardingScreenView::kScreenId;
SupervisionOnboardingScreenHandler::SupervisionOnboardingScreenHandler(
JSCallsContainer* js_calls_container)
: BaseScreenHandler(kScreenId, js_calls_container) {
set_user_acted_method_path("login.SupervisionOnboardingScreen.userActed");
}
SupervisionOnboardingScreenHandler::~SupervisionOnboardingScreenHandler() {
if (screen_)
screen_->OnViewDestroyed(this);
}
void SupervisionOnboardingScreenHandler::DeclareLocalizedValues(
::login::LocalizedValuesBuilder* builder) {
builder->Add("supervisionOnboardingWaitMessage",
IDS_SUPERVISION_ONBOARDING_WAIT_MESSAGE);
builder->Add("supervisionOnboardingNextButtonLabel",
IDS_SUPERVISION_ONBOARDING_NEXT_BUTTON);
builder->Add("supervisionOnboardingSkipButtonLabel",
IDS_SUPERVISION_ONBOARDING_SKIP_BUTTON);
builder->Add("supervisionOnboardingBackButtonLabel",
IDS_SUPERVISION_ONBOARDING_BACK_BUTTON);
}
void SupervisionOnboardingScreenHandler::Bind(
SupervisionOnboardingScreen* screen) {
BaseScreenHandler::SetBaseScreen(screen);
screen_ = screen;
}
void SupervisionOnboardingScreenHandler::Unbind() {
screen_ = nullptr;
BaseScreenHandler::SetBaseScreen(nullptr);
}
void SupervisionOnboardingScreenHandler::Show() {
ShowScreen(kScreenId);
GetOobeUI()->AddHandlerToRegistry(base::BindRepeating(
&SupervisionOnboardingScreenHandler::BindSupervisionOnboardingController,
base::Unretained(this)));
CallJS("login.SupervisionOnboardingScreen.setupMojo");
}
void SupervisionOnboardingScreenHandler::Hide() {}
void SupervisionOnboardingScreenHandler::Initialize() {}
void SupervisionOnboardingScreenHandler::BindSupervisionOnboardingController(
supervision::mojom::OnboardingControllerRequest request) {
if (!supervision_onboarding_controller_) {
supervision_onboarding_controller_ =
std::make_unique<supervision::OnboardingControllerImpl>(
ProfileManager::GetPrimaryUserProfile());
}
supervision_onboarding_controller_->BindRequest(std::move(request));
}
} // namespace chromeos