158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// found in the LICENSE file.
458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "ui/message_center/notification_blocker.h"
658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "ui/message_center/message_center.h"
858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)namespace message_center {
1058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
1158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)NotificationBlocker::NotificationBlocker(MessageCenter* message_center)
1258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)    : message_center_(message_center) {
1358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)  if (message_center_)
1458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)    message_center_->AddNotificationBlocker(this);
1558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)}
1658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
1758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)NotificationBlocker::~NotificationBlocker() {
1858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)  if (message_center_)
1958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)    message_center_->RemoveNotificationBlocker(this);
2058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)}
2158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
2258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)void NotificationBlocker::AddObserver(NotificationBlocker::Observer* observer) {
2358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)  observers_.AddObserver(observer);
2458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)}
2558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
2658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)void NotificationBlocker::RemoveObserver(
2758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)    NotificationBlocker::Observer* observer) {
2858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)  observers_.RemoveObserver(observer);
2958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)}
3058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
31a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)bool NotificationBlocker::ShouldShowNotification(
32a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)    const NotifierId& notifier_id) const {
33a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  return true;
34a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)}
35a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)
36a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)void NotificationBlocker::NotifyBlockingStateChanged() {
37a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  FOR_EACH_OBSERVER(
38a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)      NotificationBlocker::Observer, observers_, OnBlockingStateChanged(this));
39a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)}
40a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)
4158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)}  // namespace message_center
42