use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
extern_protocol!(
pub unsafe trait UNNotificationContentProviding: NSObjectProtocol {}
unsafe impl ProtocolType for dyn UNNotificationContentProviding {}
);
#[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!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct UNNotificationContent;
unsafe impl ClassType for UNNotificationContent {
type Super = NSObject;
type Mutability = InteriorMutable;
}
);
unsafe impl NSCoding for UNNotificationContent {}
unsafe impl NSCopying for UNNotificationContent {}
unsafe impl NSMutableCopying for UNNotificationContent {}
unsafe impl NSObjectProtocol for UNNotificationContent {}
unsafe impl NSSecureCoding for UNNotificationContent {}
extern_methods!(
unsafe impl UNNotificationContent {
#[cfg(feature = "UNNotificationAttachment")]
#[method_id(@__retain_semantics Other attachments)]
pub unsafe fn attachments(&self) -> Retained<NSArray<UNNotificationAttachment>>;
#[method_id(@__retain_semantics Other badge)]
pub unsafe fn badge(&self) -> Option<Retained<NSNumber>>;
#[method_id(@__retain_semantics Other body)]
pub unsafe fn body(&self) -> Retained<NSString>;
#[method_id(@__retain_semantics Other categoryIdentifier)]
pub unsafe fn categoryIdentifier(&self) -> Retained<NSString>;
#[method_id(@__retain_semantics Other launchImageName)]
pub unsafe fn launchImageName(&self) -> Retained<NSString>;
#[cfg(feature = "UNNotificationSound")]
#[method_id(@__retain_semantics Other sound)]
pub unsafe fn sound(&self) -> Option<Retained<UNNotificationSound>>;
#[method_id(@__retain_semantics Other subtitle)]
pub unsafe fn subtitle(&self) -> Retained<NSString>;
#[method_id(@__retain_semantics Other threadIdentifier)]
pub unsafe fn threadIdentifier(&self) -> Retained<NSString>;
#[method_id(@__retain_semantics Other title)]
pub unsafe fn title(&self) -> Retained<NSString>;
#[method_id(@__retain_semantics Other userInfo)]
pub unsafe fn userInfo(&self) -> Retained<NSDictionary>;
#[deprecated = "summaryArgument is ignored"]
#[method_id(@__retain_semantics Other summaryArgument)]
pub unsafe fn summaryArgument(&self) -> Retained<NSString>;
#[deprecated = "summaryArgumentCount is ignored"]
#[method(summaryArgumentCount)]
pub unsafe fn summaryArgumentCount(&self) -> NSUInteger;
#[method_id(@__retain_semantics Other targetContentIdentifier)]
pub unsafe fn targetContentIdentifier(&self) -> Option<Retained<NSString>>;
#[method(interruptionLevel)]
pub unsafe fn interruptionLevel(&self) -> UNNotificationInterruptionLevel;
#[method(relevanceScore)]
pub unsafe fn relevanceScore(&self) -> c_double;
#[method_id(@__retain_semantics Other filterCriteria)]
pub unsafe fn filterCriteria(&self) -> Option<Retained<NSString>>;
#[method_id(@__retain_semantics Other contentByUpdatingWithProvider:error:_)]
pub unsafe fn contentByUpdatingWithProvider_error(
&self,
provider: &ProtocolObject<dyn UNNotificationContentProviding>,
) -> Result<Retained<UNNotificationContent>, Retained<NSError>>;
}
);
extern_methods!(
unsafe impl UNNotificationContent {
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[method_id(@__retain_semantics New new)]
pub unsafe fn new() -> Retained<Self>;
}
);
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct UNMutableNotificationContent;
unsafe impl ClassType for UNMutableNotificationContent {
#[inherits(NSObject)]
type Super = UNNotificationContent;
type Mutability = InteriorMutable;
}
);
unsafe impl NSCoding for UNMutableNotificationContent {}
unsafe impl NSCopying for UNMutableNotificationContent {}
unsafe impl NSMutableCopying for UNMutableNotificationContent {}
unsafe impl NSObjectProtocol for UNMutableNotificationContent {}
unsafe impl NSSecureCoding for UNMutableNotificationContent {}
extern_methods!(
unsafe impl UNMutableNotificationContent {
#[cfg(feature = "UNNotificationAttachment")]
#[method_id(@__retain_semantics Other attachments)]
pub unsafe fn attachments(&self) -> Retained<NSArray<UNNotificationAttachment>>;
#[cfg(feature = "UNNotificationAttachment")]
#[method(setAttachments:)]
pub unsafe fn setAttachments(&self, attachments: &NSArray<UNNotificationAttachment>);
#[method_id(@__retain_semantics Other badge)]
pub unsafe fn badge(&self) -> Option<Retained<NSNumber>>;
#[method(setBadge:)]
pub unsafe fn setBadge(&self, badge: Option<&NSNumber>);
#[method_id(@__retain_semantics Other body)]
pub unsafe fn body(&self) -> Retained<NSString>;
#[method(setBody:)]
pub unsafe fn setBody(&self, body: &NSString);
#[method_id(@__retain_semantics Other categoryIdentifier)]
pub unsafe fn categoryIdentifier(&self) -> Retained<NSString>;
#[method(setCategoryIdentifier:)]
pub unsafe fn setCategoryIdentifier(&self, category_identifier: &NSString);
#[method_id(@__retain_semantics Other launchImageName)]
pub unsafe fn launchImageName(&self) -> Retained<NSString>;
#[method(setLaunchImageName:)]
pub unsafe fn setLaunchImageName(&self, launch_image_name: &NSString);
#[cfg(feature = "UNNotificationSound")]
#[method_id(@__retain_semantics Other sound)]
pub unsafe fn sound(&self) -> Option<Retained<UNNotificationSound>>;
#[cfg(feature = "UNNotificationSound")]
#[method(setSound:)]
pub unsafe fn setSound(&self, sound: Option<&UNNotificationSound>);
#[method_id(@__retain_semantics Other subtitle)]
pub unsafe fn subtitle(&self) -> Retained<NSString>;
#[method(setSubtitle:)]
pub unsafe fn setSubtitle(&self, subtitle: &NSString);
#[method_id(@__retain_semantics Other threadIdentifier)]
pub unsafe fn threadIdentifier(&self) -> Retained<NSString>;
#[method(setThreadIdentifier:)]
pub unsafe fn setThreadIdentifier(&self, thread_identifier: &NSString);
#[method_id(@__retain_semantics Other title)]
pub unsafe fn title(&self) -> Retained<NSString>;
#[method(setTitle:)]
pub unsafe fn setTitle(&self, title: &NSString);
#[method_id(@__retain_semantics Other userInfo)]
pub unsafe fn userInfo(&self) -> Retained<NSDictionary>;
#[method(setUserInfo:)]
pub unsafe fn setUserInfo(&self, user_info: &NSDictionary);
#[deprecated = "summaryArgument is ignored"]
#[method_id(@__retain_semantics Other summaryArgument)]
pub unsafe fn summaryArgument(&self) -> Retained<NSString>;
#[deprecated = "summaryArgument is ignored"]
#[method(setSummaryArgument:)]
pub unsafe fn setSummaryArgument(&self, summary_argument: &NSString);
#[deprecated = "summaryArgumentCount is ignored"]
#[method(summaryArgumentCount)]
pub unsafe fn summaryArgumentCount(&self) -> NSUInteger;
#[deprecated = "summaryArgumentCount is ignored"]
#[method(setSummaryArgumentCount:)]
pub unsafe fn setSummaryArgumentCount(&self, summary_argument_count: NSUInteger);
#[method_id(@__retain_semantics Other targetContentIdentifier)]
pub unsafe fn targetContentIdentifier(&self) -> Option<Retained<NSString>>;
#[method(setTargetContentIdentifier:)]
pub unsafe fn setTargetContentIdentifier(
&self,
target_content_identifier: Option<&NSString>,
);
#[method(interruptionLevel)]
pub unsafe fn interruptionLevel(&self) -> UNNotificationInterruptionLevel;
#[method(setInterruptionLevel:)]
pub unsafe fn setInterruptionLevel(
&self,
interruption_level: UNNotificationInterruptionLevel,
);
#[method(relevanceScore)]
pub unsafe fn relevanceScore(&self) -> c_double;
#[method(setRelevanceScore:)]
pub unsafe fn setRelevanceScore(&self, relevance_score: c_double);
#[method_id(@__retain_semantics Other filterCriteria)]
pub unsafe fn filterCriteria(&self) -> Option<Retained<NSString>>;
#[method(setFilterCriteria:)]
pub unsafe fn setFilterCriteria(&self, filter_criteria: Option<&NSString>);
}
);
extern_methods!(
unsafe impl UNMutableNotificationContent {
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[method_id(@__retain_semantics New new)]
pub unsafe fn new() -> Retained<Self>;
}
);