blob: 0c97f50e05857a745981e96f723759ee3481712d [file] [log] [blame]
// Copyright 2018 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/system/system_notification_controller.h"
#include <memory>
#include "ash/constants/ash_features.h"
#include "ash/system/caps_lock_notification_controller.h"
#include "ash/system/cast/cast_notification_controller.h"
#include "ash/system/do_not_disturb_notification_controller.h"
#include "ash/system/hotspot/hotspot_notifier.h"
#include "ash/system/lock_screen_notification_controller.h"
#include "ash/system/network/auto_connect_notifier.h"
#include "ash/system/network/cellular_setup_notifier.h"
#include "ash/system/network/managed_sim_lock_notifier.h"
#include "ash/system/network/wifi_toggle_notification_controller.h"
#include "ash/system/power/power_notification_controller.h"
#include "ash/system/power/power_sounds_controller.h"
#include "ash/system/privacy/privacy_indicators_controller.h"
#include "ash/system/privacy/screen_security_controller.h"
#include "ash/system/privacy_hub/privacy_hub_notification_controller.h"
#include "ash/system/session/session_limit_notification_controller.h"
#include "ash/system/tracing_notification_controller.h"
#include "ash/system/update/update_notification_controller.h"
#include "ui/message_center/message_center.h"
namespace ash {
SystemNotificationController::SystemNotificationController()
: auto_connect_(std::make_unique<AutoConnectNotifier>()),
caps_lock_(std::make_unique<CapsLockNotificationController>()),
cast_(std::make_unique<CastNotificationController>()),
cellular_setup_notifier_(std::make_unique<ash::CellularSetupNotifier>()),
do_not_disturb_(std::make_unique<DoNotDisturbNotificationController>()),
lock_screen_(std::make_unique<LockScreenNotificationController>()),
power_(std::make_unique<PowerNotificationController>(
message_center::MessageCenter::Get())),
power_sounds_(std::make_unique<PowerSoundsController>()),
privacy_hub_(std::make_unique<PrivacyHubNotificationController>()),
screen_security_controller_(std::make_unique<ScreenSecurityController>()),
session_limit_(std::make_unique<SessionLimitNotificationController>()),
tracing_(std::make_unique<TracingNotificationController>()),
update_(std::make_unique<UpdateNotificationController>()),
wifi_toggle_(std::make_unique<WifiToggleNotificationController>()) {
managed_sim_lock_notifier_ = std::make_unique<ash::ManagedSimLockNotifier>();
if (features::IsHotspotEnabled()) {
hotspot_notifier_ = std::make_unique<ash::HotspotNotifier>();
}
// Privacy indicator is only enabled when Video Conference is disabled.
if (!features::IsVideoConferenceEnabled()) {
privacy_indicators_controller_ =
std::make_unique<PrivacyIndicatorsController>();
}
}
SystemNotificationController::~SystemNotificationController() = default;
} // namespace ash