1// Copyright 2013 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 5#ifndef CHROME_BROWSER_NOTIFICATIONS_SCREEN_LOCK_NOTIFICATION_BLOCKER_H_ 6#define CHROME_BROWSER_NOTIFICATIONS_SCREEN_LOCK_NOTIFICATION_BLOCKER_H_ 7 8#include "base/basictypes.h" 9#include "base/observer_list.h" 10#include "base/timer/timer.h" 11#include "ui/message_center/notification_blocker.h" 12 13// A notification blocker which checks the screen lock state constantly. 14class ScreenLockNotificationBlocker 15 : public message_center::NotificationBlocker { 16 public: 17 explicit ScreenLockNotificationBlocker( 18 message_center::MessageCenter* message_center); 19 virtual ~ScreenLockNotificationBlocker(); 20 21 bool is_locked() const { return is_locked_; } 22 23 // message_center::NotificationBlocker overrides: 24 virtual void CheckState() OVERRIDE; 25 virtual bool ShouldShowNotificationAsPopup( 26 const message_center::NotifierId& notifier_id) const OVERRIDE; 27 28 private: 29 bool is_locked_; 30 31 base::OneShotTimer<ScreenLockNotificationBlocker> timer_; 32 33 DISALLOW_COPY_AND_ASSIGN(ScreenLockNotificationBlocker); 34}; 35 36#endif // CHROME_BROWSER_NOTIFICATIONS_SCREEN_LOCK_NOTIFICATION_BLOCKER_H_ 37