// // Copyright (c) 2019 Open Whisper Systems. All rights reserved. // #import #import NS_ASSUME_NONNULL_BEGIN @interface TSInfoMessage : TSMessage typedef NS_ENUM(NSInteger, TSInfoMessageType) { TSInfoMessageTypeGroupCreated, TSInfoMessageTypeGroupUpdated, TSInfoMessageTypeGroupCurrentUserLeft, TSInfoMessageTypeDisappearingMessagesUpdate, TSInfoMessageTypeScreenshotNotification, TSInfoMessageTypeMediaSavedNotification }; @property (atomic, readonly) TSInfoMessageType messageType; @property (atomic, readonly, nullable) NSString *customMessage; @property (atomic, readonly, nullable) NSString *unregisteredRecipientId; - (instancetype)initMessageWithTimestamp:(uint64_t)timestamp inThread:(nullable TSThread *)thread messageBody:(nullable NSString *)body attachmentIds:(NSArray *)attachmentIds expiresInSeconds:(uint32_t)expiresInSeconds expireStartedAt:(uint64_t)expireStartedAt quotedMessage:(nullable TSQuotedMessage *)quotedMessage contactShare:(nullable OWSContact *)contact linkPreview:(nullable OWSLinkPreview *)linkPreview NS_UNAVAILABLE; - (instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER; - (instancetype)initWithTimestamp:(uint64_t)timestamp inThread:(TSThread *)contact messageType:(TSInfoMessageType)infoMessage NS_DESIGNATED_INITIALIZER; - (instancetype)initWithTimestamp:(uint64_t)timestamp inThread:(TSThread *)thread messageType:(TSInfoMessageType)infoMessage customMessage:(NSString *)customMessage; - (instancetype)initWithTimestamp:(uint64_t)timestamp inThread:(TSThread *)thread messageType:(TSInfoMessageType)infoMessage unregisteredRecipientId:(NSString *)unregisteredRecipientId; - (instancetype)initWithTimestamp:(uint64_t)timestamp inThread:(nullable TSThread *)thread messageBody:(nullable NSString *)body attachmentIds:(NSArray *)attachmentIds expiresInSeconds:(uint32_t)expiresInSeconds expireStartedAt:(uint64_t)expireStartedAt NS_UNAVAILABLE; @end NS_ASSUME_NONNULL_END