blob: 624e2d82442cd7ce44c8f253aff83b4a6d059643 [file]
// Copyright 2012 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "ui/message_center/message_center.h"
#include "ui/message_center/lock_screen/empty_lock_screen_controller.h"
#include "ui/message_center/message_center_impl.h"
namespace message_center {
//------------------------------------------------------------------------------
namespace {
static MessageCenter* g_message_center = nullptr;
}
// static
void MessageCenter::Initialize() {
Initialize(std::make_unique<EmptyLockScreenController>());
}
// static
void MessageCenter::Initialize(
std::unique_ptr<LockScreenController> lock_screen_controller) {
DCHECK(!g_message_center);
DCHECK(lock_screen_controller);
g_message_center = new MessageCenterImpl(std::move(lock_screen_controller));
}
// static
void MessageCenter::InitializeForTesting(
std::unique_ptr<MessageCenter> message_center) {
DCHECK(!g_message_center);
DCHECK(message_center);
g_message_center = message_center.release();
}
// static
MessageCenter* MessageCenter::Get() {
return g_message_center;
}
// static
void MessageCenter::Shutdown() {
DCHECK(g_message_center);
delete g_message_center;
g_message_center = nullptr;
}
MessageCenter::MessageCenter() = default;
MessageCenter::~MessageCenter() = default;
} // namespace message_center