system_notification_controller.h 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. // Copyright 2018 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. #ifndef ASH_SYSTEM_SYSTEM_NOTIFICATION_CONTROLLER_H_
  5. #define ASH_SYSTEM_SYSTEM_NOTIFICATION_CONTROLLER_H_
  6. #include <memory>
  7. namespace ash {
  8. class AutoConnectNotifier;
  9. class AutoConnectNotifierTest;
  10. class CapsLockNotificationController;
  11. class GestureEducationNotificationController;
  12. class CastNotificationController;
  13. class CellularSetupNotifier;
  14. class ManagedSimLockNotifier;
  15. class MicrophoneMuteNotificationController;
  16. class PowerNotificationController;
  17. class ScreenSecurityNotificationController;
  18. class SessionLimitNotificationController;
  19. class TracingNotificationController;
  20. class UpdateNotificationController;
  21. class WifiToggleNotificationController;
  22. // Class that owns individual notification controllers.
  23. class SystemNotificationController {
  24. public:
  25. SystemNotificationController();
  26. SystemNotificationController(const SystemNotificationController&) = delete;
  27. SystemNotificationController& operator=(const SystemNotificationController&) =
  28. delete;
  29. ~SystemNotificationController();
  30. private:
  31. friend class AutoConnectNotifierTest;
  32. friend class CellularSetupNotifierTest;
  33. friend class ManagedSimLockNotifier;
  34. friend class UpdateNotificationControllerTest;
  35. const std::unique_ptr<AutoConnectNotifier> auto_connect_;
  36. const std::unique_ptr<CapsLockNotificationController> caps_lock_;
  37. const std::unique_ptr<CastNotificationController> cast_;
  38. const std::unique_ptr<CellularSetupNotifier> cellular_setup_notifier_;
  39. const std::unique_ptr<GestureEducationNotificationController>
  40. gesture_education_;
  41. // TODO(b/228093904): Make |managed_sim_lock_notifier_| const during cleanup.
  42. std::unique_ptr<ManagedSimLockNotifier> managed_sim_lock_notifier_;
  43. std::unique_ptr<MicrophoneMuteNotificationController> microphone_mute_;
  44. const std::unique_ptr<PowerNotificationController> power_;
  45. const std::unique_ptr<ScreenSecurityNotificationController> screen_security_;
  46. const std::unique_ptr<SessionLimitNotificationController> session_limit_;
  47. const std::unique_ptr<TracingNotificationController> tracing_;
  48. const std::unique_ptr<UpdateNotificationController> update_;
  49. const std::unique_ptr<WifiToggleNotificationController> wifi_toggle_;
  50. };
  51. } // namespace ash
  52. #endif // ASH_SYSTEM_SYSTEM_NOTIFICATION_CONTROLLER_H_