blob: 802c96ee62f131ea4d7a67559b2c39f5338ac993 [file] [log] [blame]
// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/notifications/screen_lock_notification_blocker.h"
#include "base/time/time.h"
#include "chrome/browser/idle.h"
namespace {
const int kUserStatePollingIntervalSeconds = 1;
}
ScreenLockNotificationBlocker::ScreenLockNotificationBlocker(
message_center::MessageCenter* message_center)
: NotificationBlocker(message_center),
is_locked_(false) {
}
ScreenLockNotificationBlocker::~ScreenLockNotificationBlocker() {
}
void ScreenLockNotificationBlocker::CheckState() {
bool was_locked = is_locked_;
is_locked_ = CheckIdleStateIsLocked();
if (is_locked_ != was_locked)
NotifyBlockingStateChanged();
if (is_locked_) {
timer_.Start(FROM_HERE,
base::TimeDelta::FromSeconds(kUserStatePollingIntervalSeconds),
this,
&ScreenLockNotificationBlocker::CheckState);
}
}
bool ScreenLockNotificationBlocker::ShouldShowNotificationAsPopup(
const message_center::NotifierId& notifier_id) const {
return !is_locked_;
}