blob: 142d6a44091965ac4d12c9e218c426c8a471993e [file] [log] [blame]
// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_UPDATES_ANNOUNCEMENT_NOTIFICATION_ANNOUNCEMENT_NOTIFICATION_DELEGATE_H_
#define CHROME_BROWSER_UPDATES_ANNOUNCEMENT_NOTIFICATION_ANNOUNCEMENT_NOTIFICATION_DELEGATE_H_
#include "base/memory/raw_ptr.h"
#include "chrome/browser/updates/announcement_notification/announcement_notification_service.h"
class NotificationDisplayService;
// Id of the announcement notification.
constexpr char kAnnouncementNotificationId[] = "announcement_notification";
// Default delegate for AnnouncementNotificationService that works on
// non-Android platforms.
class AnnouncementNotificationDelegate
: public AnnouncementNotificationService::Delegate {
public:
explicit AnnouncementNotificationDelegate(
NotificationDisplayService* display_service);
AnnouncementNotificationDelegate(const AnnouncementNotificationDelegate&) =
delete;
AnnouncementNotificationDelegate& operator=(
const AnnouncementNotificationDelegate&) = delete;
~AnnouncementNotificationDelegate() override;
private:
// AnnouncementNotificationService::Delegate implementation.
void ShowNotification() override;
bool IsFirstRun() override;
// Used to show the notification.
raw_ptr<NotificationDisplayService, DanglingUntriaged> display_service_;
};
#endif // CHROME_BROWSER_UPDATES_ANNOUNCEMENT_NOTIFICATION_ANNOUNCEMENT_NOTIFICATION_DELEGATE_H_