use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
extern_protocol!(
pub unsafe trait UNNotificationContentProviding: NSObjectProtocol {}
);
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct UNNotificationInterruptionLevel(pub NSUInteger);
impl UNNotificationInterruptionLevel {
#[doc(alias = "UNNotificationInterruptionLevelPassive")]
pub const Passive: Self = Self(0);
#[doc(alias = "UNNotificationInterruptionLevelActive")]
pub const Active: Self = Self(1);
#[doc(alias = "UNNotificationInterruptionLevelTimeSensitive")]
pub const TimeSensitive: Self = Self(2);
#[doc(alias = "UNNotificationInterruptionLevelCritical")]
pub const Critical: Self = Self(3);
}
unsafe impl Encode for UNNotificationInterruptionLevel {
const ENCODING: Encoding = NSUInteger::ENCODING;
}
unsafe impl RefEncode for UNNotificationInterruptionLevel {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
extern_class!(
#[unsafe(super(NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct UNNotificationContent;
);
extern_conformance!(
unsafe impl NSCoding for UNNotificationContent {}
);
extern_conformance!(
unsafe impl NSCopying for UNNotificationContent {}
);
unsafe impl CopyingHelper for UNNotificationContent {
type Result = Self;
}
extern_conformance!(
unsafe impl NSMutableCopying for UNNotificationContent {}
);
unsafe impl MutableCopyingHelper for UNNotificationContent {
type Result = UNMutableNotificationContent;
}
extern_conformance!(
unsafe impl NSObjectProtocol for UNNotificationContent {}
);
extern_conformance!(
unsafe impl NSSecureCoding for UNNotificationContent {}
);
impl UNNotificationContent {
extern_methods!(
#[cfg(feature = "UNNotificationAttachment")]
#[unsafe(method(attachments))]
#[unsafe(method_family = none)]
pub fn attachments(&self) -> Retained<NSArray<UNNotificationAttachment>>;
#[unsafe(method(badge))]
#[unsafe(method_family = none)]
pub fn badge(&self) -> Option<Retained<NSNumber>>;
#[unsafe(method(body))]
#[unsafe(method_family = none)]
pub fn body(&self) -> Retained<NSString>;
#[unsafe(method(categoryIdentifier))]
#[unsafe(method_family = none)]
pub fn categoryIdentifier(&self) -> Retained<NSString>;
#[unsafe(method(launchImageName))]
#[unsafe(method_family = none)]
pub fn launchImageName(&self) -> Retained<NSString>;
#[cfg(feature = "UNNotificationSound")]
#[unsafe(method(sound))]
#[unsafe(method_family = none)]
pub fn sound(&self) -> Option<Retained<UNNotificationSound>>;
#[unsafe(method(subtitle))]
#[unsafe(method_family = none)]
pub fn subtitle(&self) -> Retained<NSString>;
#[unsafe(method(threadIdentifier))]
#[unsafe(method_family = none)]
pub fn threadIdentifier(&self) -> Retained<NSString>;
#[unsafe(method(title))]
#[unsafe(method_family = none)]
pub fn title(&self) -> Retained<NSString>;
#[unsafe(method(userInfo))]
#[unsafe(method_family = none)]
pub fn userInfo(&self) -> Retained<NSDictionary>;
#[deprecated = "summaryArgument is ignored"]
#[unsafe(method(summaryArgument))]
#[unsafe(method_family = none)]
pub fn summaryArgument(&self) -> Retained<NSString>;
#[deprecated = "summaryArgumentCount is ignored"]
#[unsafe(method(summaryArgumentCount))]
#[unsafe(method_family = none)]
pub fn summaryArgumentCount(&self) -> NSUInteger;
#[unsafe(method(targetContentIdentifier))]
#[unsafe(method_family = none)]
pub fn targetContentIdentifier(&self) -> Option<Retained<NSString>>;
#[unsafe(method(interruptionLevel))]
#[unsafe(method_family = none)]
pub fn interruptionLevel(&self) -> UNNotificationInterruptionLevel;
#[unsafe(method(relevanceScore))]
#[unsafe(method_family = none)]
pub fn relevanceScore(&self) -> c_double;
#[unsafe(method(filterCriteria))]
#[unsafe(method_family = none)]
pub fn filterCriteria(&self) -> Option<Retained<NSString>>;
#[unsafe(method(contentByUpdatingWithProvider:error:_))]
#[unsafe(method_family = none)]
pub fn contentByUpdatingWithProvider_error(
&self,
provider: &ProtocolObject<dyn UNNotificationContentProviding>,
) -> Result<Retained<UNNotificationContent>, Retained<NSError>>;
);
}
impl UNNotificationContent {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub fn new() -> Retained<Self>;
);
}
impl DefaultRetained for UNNotificationContent {
#[inline]
fn default_retained() -> Retained<Self> {
Self::new()
}
}
extern_class!(
#[unsafe(super(UNNotificationContent, NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct UNMutableNotificationContent;
);
extern_conformance!(
unsafe impl NSCoding for UNMutableNotificationContent {}
);
extern_conformance!(
unsafe impl NSCopying for UNMutableNotificationContent {}
);
unsafe impl CopyingHelper for UNMutableNotificationContent {
type Result = UNNotificationContent;
}
extern_conformance!(
unsafe impl NSMutableCopying for UNMutableNotificationContent {}
);
unsafe impl MutableCopyingHelper for UNMutableNotificationContent {
type Result = Self;
}
extern_conformance!(
unsafe impl NSObjectProtocol for UNMutableNotificationContent {}
);
extern_conformance!(
unsafe impl NSSecureCoding for UNMutableNotificationContent {}
);
impl UNMutableNotificationContent {
extern_methods!(
#[cfg(feature = "UNNotificationAttachment")]
#[unsafe(method(attachments))]
#[unsafe(method_family = none)]
pub fn attachments(&self) -> Retained<NSArray<UNNotificationAttachment>>;
#[cfg(feature = "UNNotificationAttachment")]
#[unsafe(method(setAttachments:))]
#[unsafe(method_family = none)]
pub fn setAttachments(&self, attachments: &NSArray<UNNotificationAttachment>);
#[unsafe(method(badge))]
#[unsafe(method_family = none)]
pub fn badge(&self) -> Option<Retained<NSNumber>>;
#[unsafe(method(setBadge:))]
#[unsafe(method_family = none)]
pub fn setBadge(&self, badge: Option<&NSNumber>);
#[unsafe(method(body))]
#[unsafe(method_family = none)]
pub fn body(&self) -> Retained<NSString>;
#[unsafe(method(setBody:))]
#[unsafe(method_family = none)]
pub fn setBody(&self, body: &NSString);
#[unsafe(method(categoryIdentifier))]
#[unsafe(method_family = none)]
pub fn categoryIdentifier(&self) -> Retained<NSString>;
#[unsafe(method(setCategoryIdentifier:))]
#[unsafe(method_family = none)]
pub fn setCategoryIdentifier(&self, category_identifier: &NSString);
#[unsafe(method(launchImageName))]
#[unsafe(method_family = none)]
pub fn launchImageName(&self) -> Retained<NSString>;
#[unsafe(method(setLaunchImageName:))]
#[unsafe(method_family = none)]
pub fn setLaunchImageName(&self, launch_image_name: &NSString);
#[cfg(feature = "UNNotificationSound")]
#[unsafe(method(sound))]
#[unsafe(method_family = none)]
pub fn sound(&self) -> Option<Retained<UNNotificationSound>>;
#[cfg(feature = "UNNotificationSound")]
#[unsafe(method(setSound:))]
#[unsafe(method_family = none)]
pub fn setSound(&self, sound: Option<&UNNotificationSound>);
#[unsafe(method(subtitle))]
#[unsafe(method_family = none)]
pub fn subtitle(&self) -> Retained<NSString>;
#[unsafe(method(setSubtitle:))]
#[unsafe(method_family = none)]
pub fn setSubtitle(&self, subtitle: &NSString);
#[unsafe(method(threadIdentifier))]
#[unsafe(method_family = none)]
pub fn threadIdentifier(&self) -> Retained<NSString>;
#[unsafe(method(setThreadIdentifier:))]
#[unsafe(method_family = none)]
pub fn setThreadIdentifier(&self, thread_identifier: &NSString);
#[unsafe(method(title))]
#[unsafe(method_family = none)]
pub fn title(&self) -> Retained<NSString>;
#[unsafe(method(setTitle:))]
#[unsafe(method_family = none)]
pub fn setTitle(&self, title: &NSString);
#[unsafe(method(userInfo))]
#[unsafe(method_family = none)]
pub fn userInfo(&self) -> Retained<NSDictionary>;
#[unsafe(method(setUserInfo:))]
#[unsafe(method_family = none)]
pub unsafe fn setUserInfo(&self, user_info: &NSDictionary);
#[deprecated = "summaryArgument is ignored"]
#[unsafe(method(summaryArgument))]
#[unsafe(method_family = none)]
pub fn summaryArgument(&self) -> Retained<NSString>;
#[deprecated = "summaryArgument is ignored"]
#[unsafe(method(setSummaryArgument:))]
#[unsafe(method_family = none)]
pub fn setSummaryArgument(&self, summary_argument: &NSString);
#[deprecated = "summaryArgumentCount is ignored"]
#[unsafe(method(summaryArgumentCount))]
#[unsafe(method_family = none)]
pub fn summaryArgumentCount(&self) -> NSUInteger;
#[deprecated = "summaryArgumentCount is ignored"]
#[unsafe(method(setSummaryArgumentCount:))]
#[unsafe(method_family = none)]
pub fn setSummaryArgumentCount(&self, summary_argument_count: NSUInteger);
#[unsafe(method(targetContentIdentifier))]
#[unsafe(method_family = none)]
pub fn targetContentIdentifier(&self) -> Option<Retained<NSString>>;
#[unsafe(method(setTargetContentIdentifier:))]
#[unsafe(method_family = none)]
pub fn setTargetContentIdentifier(&self, target_content_identifier: Option<&NSString>);
#[unsafe(method(interruptionLevel))]
#[unsafe(method_family = none)]
pub fn interruptionLevel(&self) -> UNNotificationInterruptionLevel;
#[unsafe(method(setInterruptionLevel:))]
#[unsafe(method_family = none)]
pub fn setInterruptionLevel(&self, interruption_level: UNNotificationInterruptionLevel);
#[unsafe(method(relevanceScore))]
#[unsafe(method_family = none)]
pub fn relevanceScore(&self) -> c_double;
#[unsafe(method(setRelevanceScore:))]
#[unsafe(method_family = none)]
pub fn setRelevanceScore(&self, relevance_score: c_double);
#[unsafe(method(filterCriteria))]
#[unsafe(method_family = none)]
pub fn filterCriteria(&self) -> Option<Retained<NSString>>;
#[unsafe(method(setFilterCriteria:))]
#[unsafe(method_family = none)]
pub fn setFilterCriteria(&self, filter_criteria: Option<&NSString>);
);
}
impl UNMutableNotificationContent {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub fn new() -> Retained<Self>;
);
}
impl DefaultRetained for UNMutableNotificationContent {
#[inline]
fn default_retained() -> Retained<Self> {
Self::new()
}
}