Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
signalapp
GitHub Repository: signalapp/Signal-iOS
Path: blob/main/SignalServiceKit/Messages/Interactions/TSInfoMessage.h
1 views
1
//
2
// Copyright 2017 Signal Messenger, LLC
3
// SPDX-License-Identifier: AGPL-3.0-only
4
//
5
6
#import <SignalServiceKit/OWSReadTracking.h>
7
#import <SignalServiceKit/TSMessage.h>
8
9
NS_ASSUME_NONNULL_BEGIN
10
11
@class SignalServiceAddress;
12
13
@interface TSInfoMessage : TSMessage <OWSReadTracking>
14
15
typedef NS_CLOSED_ENUM(NSInteger, TSInfoMessageType) {
16
/// Represents that the local user ended a 1:1 encryption session.
17
/// - Note:
18
/// Legacy info messages did not differentiate between the local and
19
/// remote use ending the session. Those messages default to this case.
20
/// - SeeAlso: ``TSInfoMessageTypeRemoteUserEndedSession``
21
TSInfoMessageTypeLocalUserEndedSession,
22
/// - Note This case is deprecated, but may be persisted in legacy messages.
23
TSInfoMessageUserNotRegistered,
24
/// - Note This case is deprecated, but may be persisted in legacy messages.
25
TSInfoMessageTypeUnsupportedMessage,
26
TSInfoMessageTypeGroupUpdate,
27
/// - Note This case is deprecated, but may be persisted in legacy messages.
28
TSInfoMessageTypeGroupQuit,
29
TSInfoMessageTypeDisappearingMessagesUpdate,
30
/// - Note This case is deprecated, but may be persisted in legacy messages.
31
TSInfoMessageAddToContactsOffer,
32
TSInfoMessageVerificationStateChange,
33
/// - Note This case is deprecated, but may be persisted in legacy messages.
34
TSInfoMessageAddUserToProfileWhitelistOffer,
35
/// - Note This case is deprecated, but may be persisted in legacy messages.
36
TSInfoMessageAddGroupToProfileWhitelistOffer,
37
TSInfoMessageUnknownProtocolVersion,
38
TSInfoMessageUserJoinedSignal,
39
TSInfoMessageSyncedThread,
40
TSInfoMessageProfileUpdate,
41
TSInfoMessagePhoneNumberChange,
42
TSInfoMessageRecipientHidden,
43
TSInfoMessagePaymentsActivationRequest,
44
TSInfoMessagePaymentsActivated,
45
TSInfoMessageThreadMerge,
46
TSInfoMessageSessionSwitchover,
47
TSInfoMessageReportedSpam,
48
TSInfoMessageLearnedProfileName,
49
TSInfoMessageBlockedOtherUser,
50
TSInfoMessageBlockedGroup,
51
TSInfoMessageUnblockedOtherUser,
52
TSInfoMessageUnblockedGroup,
53
TSInfoMessageAcceptedMessageRequest,
54
/// Represents that the remote user ended a 1:1 encryption session.
55
/// - SeeAlso: ``TSInfoMessageTypeLocalUserEndedSession``
56
TSInfoMessageTypeRemoteUserEndedSession,
57
TSInfoMessageTypeEndPoll,
58
TSInfoMessageTypePinnedMessage,
59
};
60
61
typedef NSString *InfoMessageUserInfoKey NS_STRING_ENUM;
62
63
extern InfoMessageUserInfoKey const InfoMessageUserInfoKeyLegacyGroupUpdateItems;
64
extern InfoMessageUserInfoKey const InfoMessageUserInfoKeyGroupUpdateItems;
65
extern InfoMessageUserInfoKey const InfoMessageUserInfoKeyOldGroupModel;
66
extern InfoMessageUserInfoKey const InfoMessageUserInfoKeyNewGroupModel;
67
extern InfoMessageUserInfoKey const InfoMessageUserInfoKeyOldDisappearingMessageToken;
68
extern InfoMessageUserInfoKey const InfoMessageUserInfoKeyNewDisappearingMessageToken;
69
extern InfoMessageUserInfoKey const InfoMessageUserInfoKeyGroupUpdateSourceLegacyAddress;
70
extern InfoMessageUserInfoKey const InfoMessageUserInfoKeyLegacyUpdaterKnownToBeLocalUser;
71
extern InfoMessageUserInfoKey const InfoMessageUserInfoKeyProfileChanges;
72
extern InfoMessageUserInfoKey const InfoMessageUserInfoKeyChangePhoneNumberAciString;
73
extern InfoMessageUserInfoKey const InfoMessageUserInfoKeyChangePhoneNumberOld;
74
extern InfoMessageUserInfoKey const InfoMessageUserInfoKeyChangePhoneNumberNew;
75
extern InfoMessageUserInfoKey const InfoMessageUserInfoKeyPaymentActivationRequestSenderAci;
76
extern InfoMessageUserInfoKey const InfoMessageUserInfoKeyPaymentActivatedAci;
77
extern InfoMessageUserInfoKey const InfoMessageUserInfoKeyThreadMergePhoneNumber;
78
extern InfoMessageUserInfoKey const InfoMessageUserInfoKeySessionSwitchoverPhoneNumber;
79
extern InfoMessageUserInfoKey const InfoMessageUserInfoKeyPhoneNumberDisplayNameBeforeLearningProfileName;
80
extern InfoMessageUserInfoKey const InfoMessageUserInfoKeyUsernameDisplayNameBeforeLearningProfileName;
81
extern InfoMessageUserInfoKey const InfoMessageUserInfoKeyEndPoll;
82
extern InfoMessageUserInfoKey const InfoMessageUserInfoKeyPinnedMessage;
83
84
@property (nonatomic, readonly) TSInfoMessageType messageType;
85
@property (nonatomic, readonly, nullable) NSString *customMessage;
86
@property (nonatomic, readonly, nullable) SignalServiceAddress *unregisteredAddress;
87
@property (nonatomic, readonly, nullable) NSString *serverGuid;
88
89
+ (NSArray<Class> *)infoMessageUserInfoObjectClasses;
90
@property (nonatomic, nullable) NSDictionary<InfoMessageUserInfoKey, id> *infoMessageUserInfo;
91
92
- (instancetype)initMessageWithBuilder:(TSMessageBuilder *)messageBuilder NS_UNAVAILABLE;
93
94
- (instancetype)initWithGrdbId:(int64_t)grdbId
95
uniqueId:(NSString *)uniqueId
96
receivedAtTimestamp:(uint64_t)receivedAtTimestamp
97
sortId:(uint64_t)sortId
98
timestamp:(uint64_t)timestamp
99
uniqueThreadId:(NSString *)uniqueThreadId
100
body:(nullable NSString *)body
101
bodyRanges:(nullable MessageBodyRanges *)bodyRanges
102
contactShare:(nullable OWSContact *)contactShare
103
deprecated_attachmentIds:(nullable NSArray<NSString *> *)deprecated_attachmentIds
104
editState:(TSEditState)editState
105
expireStartedAt:(uint64_t)expireStartedAt
106
expireTimerVersion:(nullable NSNumber *)expireTimerVersion
107
expiresAt:(uint64_t)expiresAt
108
expiresInSeconds:(unsigned int)expiresInSeconds
109
giftBadge:(nullable OWSGiftBadge *)giftBadge
110
isGroupStoryReply:(BOOL)isGroupStoryReply
111
isPoll:(BOOL)isPoll
112
isSmsMessageRestoredFromBackup:(BOOL)isSmsMessageRestoredFromBackup
113
isViewOnceComplete:(BOOL)isViewOnceComplete
114
isViewOnceMessage:(BOOL)isViewOnceMessage
115
linkPreview:(nullable OWSLinkPreview *)linkPreview
116
messageSticker:(nullable MessageSticker *)messageSticker
117
quotedMessage:(nullable TSQuotedMessage *)quotedMessage
118
storedShouldStartExpireTimer:(BOOL)storedShouldStartExpireTimer
119
storyAuthorUuidString:(nullable NSString *)storyAuthorUuidString
120
storyReactionEmoji:(nullable NSString *)storyReactionEmoji
121
storyTimestamp:(nullable NSNumber *)storyTimestamp
122
wasRemotelyDeleted:(BOOL)wasRemotelyDeleted NS_UNAVAILABLE;
123
124
- (nullable instancetype)initWithCoder:(NSCoder *)coder NS_UNAVAILABLE;
125
126
- (instancetype)initWithThread:(TSThread *)thread
127
timestamp:(uint64_t)timestamp
128
serverGuid:(nullable NSString *)serverGuid
129
messageType:(TSInfoMessageType)messageType
130
expireTimerVersion:(nullable NSNumber *)expireTimerVersion
131
expiresInSeconds:(unsigned int)expiresInSeconds
132
infoMessageUserInfo:(nullable NSDictionary<InfoMessageUserInfoKey, id> *)infoMessageUserInfo
133
NS_DESIGNATED_INITIALIZER;
134
135
// --- CODE GENERATION MARKER
136
137
// This snippet is generated by /Scripts/sds_codegen/sds_generate.py. Do not manually edit it, instead run
138
// `sds_codegen.sh`.
139
140
// clang-format off
141
142
- (instancetype)initWithGrdbId:(int64_t)grdbId
143
uniqueId:(NSString *)uniqueId
144
receivedAtTimestamp:(uint64_t)receivedAtTimestamp
145
sortId:(uint64_t)sortId
146
timestamp:(uint64_t)timestamp
147
uniqueThreadId:(NSString *)uniqueThreadId
148
body:(nullable NSString *)body
149
bodyRanges:(nullable MessageBodyRanges *)bodyRanges
150
contactShare:(nullable OWSContact *)contactShare
151
deprecated_attachmentIds:(nullable NSArray<NSString *> *)deprecated_attachmentIds
152
editState:(TSEditState)editState
153
expireStartedAt:(uint64_t)expireStartedAt
154
expireTimerVersion:(nullable NSNumber *)expireTimerVersion
155
expiresAt:(uint64_t)expiresAt
156
expiresInSeconds:(unsigned int)expiresInSeconds
157
giftBadge:(nullable OWSGiftBadge *)giftBadge
158
isGroupStoryReply:(BOOL)isGroupStoryReply
159
isPoll:(BOOL)isPoll
160
isSmsMessageRestoredFromBackup:(BOOL)isSmsMessageRestoredFromBackup
161
isViewOnceComplete:(BOOL)isViewOnceComplete
162
isViewOnceMessage:(BOOL)isViewOnceMessage
163
linkPreview:(nullable OWSLinkPreview *)linkPreview
164
messageSticker:(nullable MessageSticker *)messageSticker
165
quotedMessage:(nullable TSQuotedMessage *)quotedMessage
166
storedShouldStartExpireTimer:(BOOL)storedShouldStartExpireTimer
167
storyAuthorUuidString:(nullable NSString *)storyAuthorUuidString
168
storyReactionEmoji:(nullable NSString *)storyReactionEmoji
169
storyTimestamp:(nullable NSNumber *)storyTimestamp
170
wasRemotelyDeleted:(BOOL)wasRemotelyDeleted
171
customMessage:(nullable NSString *)customMessage
172
infoMessageUserInfo:(nullable NSDictionary<InfoMessageUserInfoKey, id> *)infoMessageUserInfo
173
messageType:(TSInfoMessageType)messageType
174
read:(BOOL)read
175
serverGuid:(nullable NSString *)serverGuid
176
unregisteredAddress:(nullable SignalServiceAddress *)unregisteredAddress
177
NS_DESIGNATED_INITIALIZER NS_SWIFT_NAME(init(grdbId:uniqueId:receivedAtTimestamp:sortId:timestamp:uniqueThreadId:body:bodyRanges:contactShare:deprecated_attachmentIds:editState:expireStartedAt:expireTimerVersion:expiresAt:expiresInSeconds:giftBadge:isGroupStoryReply:isPoll:isSmsMessageRestoredFromBackup:isViewOnceComplete:isViewOnceMessage:linkPreview:messageSticker:quotedMessage:storedShouldStartExpireTimer:storyAuthorUuidString:storyReactionEmoji:storyTimestamp:wasRemotelyDeleted:customMessage:infoMessageUserInfo:messageType:read:serverGuid:unregisteredAddress:));
178
179
// clang-format on
180
181
// --- CODE GENERATION MARKER
182
183
- (NSString *)conversationSystemMessageComponentTextWithTransaction:(DBReadTransaction *)transaction;
184
185
186
- (NSString *)infoMessagePreviewTextWithTransaction:(DBReadTransaction *)transaction;
187
188
@end
189
190
NS_ASSUME_NONNULL_END
191
192