Swiftify OWSStaticOutgoingMessage
This commit is contained in:
parent
b6c93307c7
commit
e56504be28
@ -822,6 +822,7 @@
|
||||
50DCCBFC2F181A790024D124 /* ProfileKeyMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50DCCBFB2F181A790024D124 /* ProfileKeyMessage.swift */; };
|
||||
50DCCBFE2F1820600024D124 /* OutgoingSenderKeyDistributionMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50DCCBFD2F1820600024D124 /* OutgoingSenderKeyDistributionMessage.swift */; };
|
||||
50DE50602F21F4A700F30994 /* OutgoingSyncMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50DE505F2F21F4A700F30994 /* OutgoingSyncMessage.swift */; };
|
||||
50DE50642F21FE1700F30994 /* OutgoingStaticMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50DE50632F21FE1700F30994 /* OutgoingStaticMessage.swift */; };
|
||||
50E42FEA2C1BA3B900554BD6 /* CallHTTPClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50E42FE92C1BA3B900554BD6 /* CallHTTPClient.swift */; };
|
||||
50E51A3B2AE989C4004F9069 /* AccountAttributesTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50E51A3A2AE989C4004F9069 /* AccountAttributesTest.swift */; };
|
||||
50E5E4B129932D9B00E15A1C /* DeviceMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50E5E4B029932D9B00E15A1C /* DeviceMessage.swift */; };
|
||||
@ -3569,7 +3570,6 @@
|
||||
F9C5CBE5289453B300548EEE /* OWSDisappearingConfigurationUpdateInfoMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = F9C5C8F1289453B100548EEE /* OWSDisappearingConfigurationUpdateInfoMessage.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
F9C5CBE7289453B300548EEE /* TSInfoMessage+GroupUpdates+GroupUpdateItemBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9C5C8F3289453B100548EEE /* TSInfoMessage+GroupUpdates+GroupUpdateItemBuilder.swift */; };
|
||||
F9C5CBE8289453B300548EEE /* OWSEndSessionMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = F9C5C8F4289453B100548EEE /* OWSEndSessionMessage.m */; };
|
||||
F9C5CBE9289453B300548EEE /* OWSStaticOutgoingMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = F9C5C8F5289453B100548EEE /* OWSStaticOutgoingMessage.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
F9C5CBEB289453B300548EEE /* TSOutgoingMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = F9C5C8F7289453B100548EEE /* TSOutgoingMessage.m */; };
|
||||
F9C5CBEC289453B300548EEE /* TSOutgoingMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9C5C8F8289453B100548EEE /* TSOutgoingMessage.swift */; };
|
||||
F9C5CBED289453B300548EEE /* TSInfoMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = F9C5C8F9289453B100548EEE /* TSInfoMessage.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
@ -3585,7 +3585,6 @@
|
||||
F9C5CBFA289453B300548EEE /* OWSVerificationStateChangeMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = F9C5C906289453B100548EEE /* OWSVerificationStateChangeMessage.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
F9C5CBFB289453B300548EEE /* TSErrorMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = F9C5C907289453B100548EEE /* TSErrorMessage.m */; };
|
||||
F9C5CBFC289453B300548EEE /* OWSDisappearingConfigurationUpdateInfoMessage+SDS.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9C5C908289453B100548EEE /* OWSDisappearingConfigurationUpdateInfoMessage+SDS.swift */; };
|
||||
F9C5CBFE289453B300548EEE /* OWSStaticOutgoingMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = F9C5C90A289453B100548EEE /* OWSStaticOutgoingMessage.m */; };
|
||||
F9C5CBFF289453B300548EEE /* OWSEndSessionMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = F9C5C90B289453B100548EEE /* OWSEndSessionMessage.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
F9C5CC00289453B300548EEE /* TSMention.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9C5C90C289453B100548EEE /* TSMention.swift */; };
|
||||
F9C5CC02289453B300548EEE /* OWSDisappearingConfigurationUpdateInfoMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = F9C5C90E289453B100548EEE /* OWSDisappearingConfigurationUpdateInfoMessage.m */; };
|
||||
@ -4977,6 +4976,7 @@
|
||||
50DCCBFB2F181A790024D124 /* ProfileKeyMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileKeyMessage.swift; sourceTree = "<group>"; };
|
||||
50DCCBFD2F1820600024D124 /* OutgoingSenderKeyDistributionMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OutgoingSenderKeyDistributionMessage.swift; sourceTree = "<group>"; };
|
||||
50DE505F2F21F4A700F30994 /* OutgoingSyncMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OutgoingSyncMessage.swift; sourceTree = "<group>"; };
|
||||
50DE50632F21FE1700F30994 /* OutgoingStaticMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OutgoingStaticMessage.swift; sourceTree = "<group>"; };
|
||||
50E42FE52C1B9EB900554BD6 /* CallLinkState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CallLinkState.swift; sourceTree = "<group>"; };
|
||||
50E42FE92C1BA3B900554BD6 /* CallHTTPClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CallHTTPClient.swift; sourceTree = "<group>"; };
|
||||
50E51A3A2AE989C4004F9069 /* AccountAttributesTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountAttributesTest.swift; sourceTree = "<group>"; };
|
||||
@ -7775,7 +7775,6 @@
|
||||
F9C5C8F1289453B100548EEE /* OWSDisappearingConfigurationUpdateInfoMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OWSDisappearingConfigurationUpdateInfoMessage.h; sourceTree = "<group>"; };
|
||||
F9C5C8F3289453B100548EEE /* TSInfoMessage+GroupUpdates+GroupUpdateItemBuilder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "TSInfoMessage+GroupUpdates+GroupUpdateItemBuilder.swift"; sourceTree = "<group>"; };
|
||||
F9C5C8F4289453B100548EEE /* OWSEndSessionMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OWSEndSessionMessage.m; sourceTree = "<group>"; };
|
||||
F9C5C8F5289453B100548EEE /* OWSStaticOutgoingMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OWSStaticOutgoingMessage.h; sourceTree = "<group>"; };
|
||||
F9C5C8F7289453B100548EEE /* TSOutgoingMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TSOutgoingMessage.m; sourceTree = "<group>"; };
|
||||
F9C5C8F8289453B100548EEE /* TSOutgoingMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TSOutgoingMessage.swift; sourceTree = "<group>"; };
|
||||
F9C5C8F9289453B100548EEE /* TSInfoMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TSInfoMessage.h; sourceTree = "<group>"; };
|
||||
@ -7791,7 +7790,6 @@
|
||||
F9C5C906289453B100548EEE /* OWSVerificationStateChangeMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OWSVerificationStateChangeMessage.h; sourceTree = "<group>"; };
|
||||
F9C5C907289453B100548EEE /* TSErrorMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TSErrorMessage.m; sourceTree = "<group>"; };
|
||||
F9C5C908289453B100548EEE /* OWSDisappearingConfigurationUpdateInfoMessage+SDS.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "OWSDisappearingConfigurationUpdateInfoMessage+SDS.swift"; sourceTree = "<group>"; };
|
||||
F9C5C90A289453B100548EEE /* OWSStaticOutgoingMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OWSStaticOutgoingMessage.m; sourceTree = "<group>"; };
|
||||
F9C5C90B289453B100548EEE /* OWSEndSessionMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OWSEndSessionMessage.h; sourceTree = "<group>"; };
|
||||
F9C5C90C289453B100548EEE /* TSMention.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TSMention.swift; sourceTree = "<group>"; };
|
||||
F9C5C90E289453B100548EEE /* OWSDisappearingConfigurationUpdateInfoMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OWSDisappearingConfigurationUpdateInfoMessage.m; sourceTree = "<group>"; };
|
||||
@ -14453,6 +14451,7 @@
|
||||
50468F2829EE130A00948E02 /* InteractionStore.swift */,
|
||||
F9C5C8EB289453B100548EEE /* MentionFinder.swift */,
|
||||
50B74C742F1716F500F59813 /* OutgoingDeleteMessage.swift */,
|
||||
50DE50632F21FE1700F30994 /* OutgoingStaticMessage.swift */,
|
||||
F9C5C908289453B100548EEE /* OWSDisappearingConfigurationUpdateInfoMessage+SDS.swift */,
|
||||
F9C5C8F1289453B100548EEE /* OWSDisappearingConfigurationUpdateInfoMessage.h */,
|
||||
F9C5C90E289453B100548EEE /* OWSDisappearingConfigurationUpdateInfoMessage.m */,
|
||||
@ -14460,8 +14459,6 @@
|
||||
F9C5C90B289453B100548EEE /* OWSEndSessionMessage.h */,
|
||||
F9C5C8F4289453B100548EEE /* OWSEndSessionMessage.m */,
|
||||
F9C5C905289453B100548EEE /* OWSGiftBadge.swift */,
|
||||
F9C5C8F5289453B100548EEE /* OWSStaticOutgoingMessage.h */,
|
||||
F9C5C90A289453B100548EEE /* OWSStaticOutgoingMessage.m */,
|
||||
F9C5C8D9289453B100548EEE /* OWSVerificationStateChangeMessage+SDS.swift */,
|
||||
F9C5C906289453B100548EEE /* OWSVerificationStateChangeMessage.h */,
|
||||
F9C5C8EA289453B100548EEE /* OWSVerificationStateChangeMessage.m */,
|
||||
@ -15321,7 +15318,6 @@
|
||||
6605D4FD2A85AD17004DC345 /* OWSPaymentMessage.h in Headers */,
|
||||
7273280B2CA797370080E2C7 /* OWSReadTracking.h in Headers */,
|
||||
F9C5CC47289453B300548EEE /* OWSRecoverableDecryptionPlaceholder.h in Headers */,
|
||||
F9C5CBE9289453B300548EEE /* OWSStaticOutgoingMessage.h in Headers */,
|
||||
F9C5CC81289453B300548EEE /* OWSUnknownContactBlockOfferMessage.h in Headers */,
|
||||
F9C5CC42289453B300548EEE /* OWSUnknownProtocolVersionMessage.h in Headers */,
|
||||
F9C5CE68289453B400548EEE /* OWSVerificationState.h in Headers */,
|
||||
@ -19081,6 +19077,7 @@
|
||||
F9C5CC1F289453B300548EEE /* OutgoingResendRequest.swift in Sources */,
|
||||
50DCCBFE2F1820600024D124 /* OutgoingSenderKeyDistributionMessage.swift in Sources */,
|
||||
C16B8B752B8940D40030BA24 /* OutgoingSentMessageTranscript.swift in Sources */,
|
||||
50DE50642F21FE1700F30994 /* OutgoingStaticMessage.swift in Sources */,
|
||||
F9C5CC5A289453B300548EEE /* OutgoingStoryMessage.swift in Sources */,
|
||||
884E4C4828AF2F2A007A338C /* OutgoingStorySentMessageTranscript.swift in Sources */,
|
||||
50DE50602F21F4A700F30994 /* OutgoingSyncMessage.swift in Sources */,
|
||||
@ -19182,7 +19179,6 @@
|
||||
669E8FEF28B417D500043D28 /* OWSSignalService.swift in Sources */,
|
||||
6600F368298DA57200B1EDB7 /* OWSSignalServiceMock.swift in Sources */,
|
||||
F9C5CD8C289453B300548EEE /* OWSSignalServiceProtocol.swift in Sources */,
|
||||
F9C5CBFE289453B300548EEE /* OWSStaticOutgoingMessage.m in Sources */,
|
||||
668A01002C2B5FC8007B8808 /* OWSSwiftUtils.swift in Sources */,
|
||||
F9C5CBB8289453B300548EEE /* OWSSyncContactsMessage.swift in Sources */,
|
||||
7254655B2BA028C400EABFD2 /* OWSSyncManager.swift in Sources */,
|
||||
|
||||
@ -482,7 +482,7 @@ public class GroupsV2Impl: GroupsV2 {
|
||||
return serviceIds.map { serviceId in
|
||||
let address = SignalServiceAddress(serviceId)
|
||||
let contactThread = TSContactThread.getOrCreateThread(withContactAddress: address, transaction: tx)
|
||||
let message = OWSStaticOutgoingMessage(thread: contactThread, timestamp: timestamp, plaintextData: plaintextData, transaction: tx)
|
||||
let message = OutgoingStaticMessage(thread: contactThread, timestamp: timestamp, plaintextData: plaintextData, tx: tx)
|
||||
let preparedMessage = PreparedOutgoingMessage.preprepared(
|
||||
transientMessageWithoutAttachments: message,
|
||||
)
|
||||
|
||||
@ -1,31 +0,0 @@
|
||||
//
|
||||
// Copyright 2021 Signal Messenger, LLC
|
||||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
//
|
||||
|
||||
#import <SignalServiceKit/TSOutgoingMessage.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
// A generic, serializable message that can be used to
|
||||
// send fixed plaintextData payloads.
|
||||
@interface OWSStaticOutgoingMessage : TSOutgoingMessage
|
||||
|
||||
- (instancetype)initOutgoingMessageWithBuilder:(TSOutgoingMessageBuilder *)outgoingMessageBuilder
|
||||
recipientAddressStates:
|
||||
(NSDictionary<SignalServiceAddress *, TSOutgoingMessageRecipientState *> *)
|
||||
recipientAddressStates NS_UNAVAILABLE;
|
||||
- (instancetype)initOutgoingMessageWithBuilder:(TSOutgoingMessageBuilder *)outgoingMessageBuilder
|
||||
additionalRecipients:(NSArray<ServiceIdObjC *> *)additionalRecipients
|
||||
explicitRecipients:(NSArray<AciObjC *> *)explicitRecipients
|
||||
skippedRecipients:(NSArray<ServiceIdObjC *> *)skippedRecipients
|
||||
transaction:(DBReadTransaction *)transaction NS_UNAVAILABLE;
|
||||
|
||||
- (instancetype)initWithThread:(TSThread *)thread
|
||||
timestamp:(uint64_t)timestamp
|
||||
plaintextData:(NSData *)plaintextData
|
||||
transaction:(DBReadTransaction *)transaction;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@ -1,101 +0,0 @@
|
||||
//
|
||||
// Copyright 2017 Signal Messenger, LLC
|
||||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
//
|
||||
|
||||
#import "OWSStaticOutgoingMessage.h"
|
||||
#import <SignalServiceKit/SignalServiceKit-Swift.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface OWSStaticOutgoingMessage ()
|
||||
|
||||
@property (nonatomic, readonly) NSData *plaintextData;
|
||||
|
||||
@end
|
||||
|
||||
#pragma mark -
|
||||
|
||||
@implementation OWSStaticOutgoingMessage
|
||||
|
||||
- (instancetype)initWithThread:(TSThread *)thread
|
||||
timestamp:(uint64_t)timestamp
|
||||
plaintextData:(NSData *)plaintextData
|
||||
transaction:(DBReadTransaction *)transaction
|
||||
{
|
||||
TSOutgoingMessageBuilder *messageBuilder = [TSOutgoingMessageBuilder outgoingMessageBuilderWithThread:thread];
|
||||
messageBuilder.timestamp = timestamp;
|
||||
self = [super initOutgoingMessageWithBuilder:messageBuilder
|
||||
additionalRecipients:@[]
|
||||
explicitRecipients:@[]
|
||||
skippedRecipients:@[]
|
||||
transaction:transaction];
|
||||
|
||||
if (self) {
|
||||
_plaintextData = plaintextData;
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
+ (BOOL)supportsSecureCoding
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (void)encodeWithCoder:(NSCoder *)coder
|
||||
{
|
||||
[super encodeWithCoder:coder];
|
||||
NSData *plaintextData = self.plaintextData;
|
||||
if (plaintextData != nil) {
|
||||
[coder encodeObject:plaintextData forKey:@"plaintextData"];
|
||||
}
|
||||
}
|
||||
|
||||
- (nullable instancetype)initWithCoder:(NSCoder *)coder
|
||||
{
|
||||
self = [super initWithCoder:coder];
|
||||
if (!self) {
|
||||
return self;
|
||||
}
|
||||
self->_plaintextData = [coder decodeObjectOfClass:[NSData class] forKey:@"plaintextData"];
|
||||
return self;
|
||||
}
|
||||
|
||||
- (NSUInteger)hash
|
||||
{
|
||||
NSUInteger result = [super hash];
|
||||
result ^= self.plaintextData.hash;
|
||||
return result;
|
||||
}
|
||||
|
||||
- (BOOL)isEqual:(id)other
|
||||
{
|
||||
if (![super isEqual:other]) {
|
||||
return NO;
|
||||
}
|
||||
OWSStaticOutgoingMessage *typedOther = (OWSStaticOutgoingMessage *)other;
|
||||
if (![NSObject isObject:self.plaintextData equalToObject:typedOther.plaintextData]) {
|
||||
return NO;
|
||||
}
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (BOOL)shouldBeSaved
|
||||
{
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (BOOL)shouldSyncTranscript
|
||||
{
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (nullable NSData *)buildPlainTextData:(TSThread *)thread transaction:(DBWriteTransaction *)transaction
|
||||
{
|
||||
return self.plaintextData;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@ -0,0 +1,69 @@
|
||||
//
|
||||
// Copyright 2026 Signal Messenger, LLC
|
||||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
// A generic, serializable message that can be used to
|
||||
// send fixed plaintextData payloads.
|
||||
@objc(OWSStaticOutgoingMessage)
|
||||
final class OutgoingStaticMessage: TSOutgoingMessage {
|
||||
|
||||
let plaintextData: Data
|
||||
|
||||
init(
|
||||
thread: TSThread,
|
||||
timestamp: UInt64,
|
||||
plaintextData: Data,
|
||||
tx: DBReadTransaction,
|
||||
) {
|
||||
self.plaintextData = plaintextData
|
||||
let messageBuilder = TSOutgoingMessageBuilder.outgoingMessageBuilder(thread: thread)
|
||||
messageBuilder.timestamp = timestamp
|
||||
super.init(
|
||||
outgoingMessageWith: messageBuilder,
|
||||
additionalRecipients: [],
|
||||
explicitRecipients: [],
|
||||
skippedRecipients: [],
|
||||
transaction: tx,
|
||||
)
|
||||
}
|
||||
|
||||
override class var supportsSecureCoding: Bool { true }
|
||||
|
||||
override func encode(with coder: NSCoder) {
|
||||
super.encode(with: coder)
|
||||
coder.encode(self.plaintextData, forKey: "plaintextData")
|
||||
}
|
||||
|
||||
required init?(coder: NSCoder) {
|
||||
guard let plaintextData = coder.decodeObject(of: NSData.self, forKey: "plaintextData") as Data? else {
|
||||
return nil
|
||||
}
|
||||
self.plaintextData = plaintextData
|
||||
super.init(coder: coder)
|
||||
}
|
||||
|
||||
override var hash: Int {
|
||||
var hasher = Hasher()
|
||||
hasher.combine(super.hash)
|
||||
hasher.combine(self.plaintextData)
|
||||
return hasher.finalize()
|
||||
}
|
||||
|
||||
override func isEqual(_ object: Any?) -> Bool {
|
||||
guard let object = object as? Self else { return false }
|
||||
guard super.isEqual(object) else { return false }
|
||||
guard self.plaintextData == object.plaintextData else { return false }
|
||||
return true
|
||||
}
|
||||
|
||||
override var shouldBeSaved: Bool { false }
|
||||
|
||||
override func shouldSyncTranscript() -> Bool { false }
|
||||
|
||||
override func buildPlainTextData(_ thread: TSThread, transaction: DBWriteTransaction) -> Data? {
|
||||
return self.plaintextData
|
||||
}
|
||||
}
|
||||
@ -33,7 +33,6 @@ FOUNDATION_EXPORT const unsigned char SignalServiceKitVersionString[];
|
||||
#import <SignalServiceKit/OWSPaymentMessage.h>
|
||||
#import <SignalServiceKit/OWSReadTracking.h>
|
||||
#import <SignalServiceKit/OWSRecoverableDecryptionPlaceholder.h>
|
||||
#import <SignalServiceKit/OWSStaticOutgoingMessage.h>
|
||||
#import <SignalServiceKit/OWSUnknownContactBlockOfferMessage.h>
|
||||
#import <SignalServiceKit/OWSUnknownProtocolVersionMessage.h>
|
||||
#import <SignalServiceKit/OWSVerificationState.h>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user