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#include "chrome/browser/notifications/screen_lock_notification_blocker.h" 6 7#include "base/time/time.h" 8#include "chrome/browser/idle.h" 9 10namespace { 11const int kUserStatePollingIntervalSeconds = 1; 12} 13 14ScreenLockNotificationBlocker::ScreenLockNotificationBlocker( 15 message_center::MessageCenter* message_center) 16 : NotificationBlocker(message_center), 17 is_locked_(false) { 18} 19 20ScreenLockNotificationBlocker::~ScreenLockNotificationBlocker() { 21} 22 23void ScreenLockNotificationBlocker::CheckState() { 24 bool was_locked = is_locked_; 25 is_locked_ = CheckIdleStateIsLocked(); 26 if (is_locked_ != was_locked) 27 NotifyBlockingStateChanged(); 28 29 if (is_locked_) { 30 timer_.Start(FROM_HERE, 31 base::TimeDelta::FromSeconds(kUserStatePollingIntervalSeconds), 32 this, 33 &ScreenLockNotificationBlocker::CheckState); 34 } 35} 36 37bool ScreenLockNotificationBlocker::ShouldShowNotificationAsPopup( 38 const message_center::NotifierId& notifier_id) const { 39 return !is_locked_; 40} 41