chromium/chrome/services/mac_notifications/mac_notification_service_utils.h

// Copyright 2021 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_SERVICES_MAC_NOTIFICATIONS_MAC_NOTIFICATION_SERVICE_UTILS_H_
#define CHROME_SERVICES_MAC_NOTIFICATIONS_MAC_NOTIFICATION_SERVICE_UTILS_H_

#import <Foundation/Foundation.h>

#include <string>

#include "chrome/services/mac_notifications/public/mojom/mac_notifications.mojom.h"

namespace mac_notifications {

NSDictionary* GetMacNotificationUserInfo(
    const mojom::NotificationPtr& notification);

mojom::NotificationMetadataPtr GetMacNotificationMetadata(
    NSDictionary* user_info);

// Derives a unique notification identifier to be used by the macOS system
// notification center to uniquely identify a notification.
std::string DeriveMacNotificationId(
    const mojom::NotificationIdentifierPtr& identifier);

extern NSString* const kNotificationButtonOne;
extern NSString* const kNotificationButtonTwo;
extern NSString* const kNotificationCloseButtonTag;
extern NSString* const kNotificationHasSettingsButton;
extern NSString* const kNotificationId;
extern NSString* const kNotificationIncognito;
extern NSString* const kNotificationOrigin;
extern NSString* const kNotificationProfileId;
extern NSString* const kNotificationSettingsButtonTag;
extern NSString* const kNotificationType;
extern NSString* const kNotificationUserDataDir;

}  // namespace mac_notifications

#endif  // CHROME_SERVICES_MAC_NOTIFICATIONS_MAC_NOTIFICATION_SERVICE_UTILS_H_