1 // Copyright 2014 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.
5 #include "chrome/browser/notifications/persistent_notification_delegate.h"
9 #include "chrome/browser/notifications/platform_notification_service_impl.h"
10 #include "content/public/common/persistent_notification_status.h"
12 PersistentNotificationDelegate::PersistentNotificationDelegate(
13 content::BrowserContext
* browser_context
,
14 int64_t persistent_notification_id
,
16 int notification_settings_index
)
17 : browser_context_(browser_context
),
18 persistent_notification_id_(persistent_notification_id
),
20 id_(base::GenerateGUID()),
21 notification_settings_index_(notification_settings_index
) {}
23 PersistentNotificationDelegate::~PersistentNotificationDelegate() {}
25 void PersistentNotificationDelegate::Display() {}
27 void PersistentNotificationDelegate::Close(bool by_user
) {
28 PlatformNotificationServiceImpl::GetInstance()->OnPersistentNotificationClose(
30 persistent_notification_id_
,
34 void PersistentNotificationDelegate::Click() {
35 PlatformNotificationServiceImpl::GetInstance()->OnPersistentNotificationClick(
37 persistent_notification_id_
,
39 -1 /* action_index */);
42 void PersistentNotificationDelegate::ButtonClick(int button_index
) {
43 DCHECK_GE(button_index
, 0);
44 if (button_index
== notification_settings_index_
) {
45 PlatformNotificationServiceImpl::GetInstance()->OpenNotificationSettings(
50 PlatformNotificationServiceImpl::GetInstance()->OnPersistentNotificationClick(
52 persistent_notification_id_
,
57 std::string
PersistentNotificationDelegate::id() const {