blob: 515c1c330794c7065b581188ae58fed7b4b22496 [file] [log] [blame]
// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "ash/calendar/calendar_controller.h"
#include "ash/constants/ash_pref_names.h"
#include "ash/public/cpp/session/session_controller.h"
#include "base/check.h"
#include "components/prefs/pref_registry_simple.h"
#include "components/prefs/pref_service.h"
namespace ash {
CalendarController::CalendarController() {
SessionController::Get()->AddObserver(this);
}
CalendarController::~CalendarController() {
SessionController::Get()->RemoveObserver(this);
}
// static
void CalendarController::RegisterProfilePrefs(PrefRegistrySimple* registry) {
registry->RegisterBooleanPref(ash::prefs::kCalendarIntegrationEnabled,
/*default_value=*/true);
}
void CalendarController::RegisterClientForUser(const AccountId& account_id,
CalendarClient* client) {
clients_by_account_id_[account_id] = client;
}
CalendarClient* CalendarController::GetClient() {
auto client_by_id = clients_by_account_id_.find(active_user_account_id_);
if (client_by_id == clients_by_account_id_.end())
return nullptr;
return client_by_id->second;
}
void CalendarController::OnActiveUserSessionChanged(
const AccountId& account_id) {
active_user_account_id_ = account_id;
}
void CalendarController::SetActiveUserAccountIdForTesting(
const AccountId& account_id) {
active_user_account_id_ = account_id;
}
} // namespace ash