Merge branch 'charlesmchen/ud6'

This commit is contained in:
Matthew Chen 2018-10-03 09:31:18 -04:00
commit bfbd418cb1
16 changed files with 145 additions and 127 deletions

View File

@ -1045,8 +1045,8 @@ static NSTimeInterval launchStartedAt;
[Environment.shared.contactsManager startObserving];
// If there were any messages in our local queue which we hadn't yet processed.
[[OWSMessageReceiver sharedInstance] handleAnyUnprocessedEnvelopesAsync];
[[OWSBatchMessageProcessor sharedInstance] handleAnyUnprocessedEnvelopesAsync];
[SSKEnvironment.shared.messageReceiver handleAnyUnprocessedEnvelopesAsync];
[SSKEnvironment.shared.batchMessageProcessor handleAnyUnprocessedEnvelopesAsync];
if (!Environment.shared.preferences.hasGeneratedThumbnails) {
[OWSPrimaryStorage.sharedManager.newDatabaseConnection

View File

@ -12,13 +12,9 @@ public class MessageFetcherJob: NSObject {
private var timer: Timer?
// MARK: injected dependencies
private let networkManager: TSNetworkManager
private let messageReceiver: OWSMessageReceiver
private let signalService: OWSSignalService
@objc public init(messageReceiver: OWSMessageReceiver, networkManager: TSNetworkManager, signalService: OWSSignalService) {
self.messageReceiver = messageReceiver
self.networkManager = networkManager
@objc public init(signalService: OWSSignalService) {
self.signalService = signalService
super.init()
@ -26,6 +22,18 @@ public class MessageFetcherJob: NSObject {
SwiftSingletons.register(self)
}
// MARK: Singletons
private var networkManager: TSNetworkManager {
return SSKEnvironment.shared.networkManager
}
private var messageReceiver: OWSMessageReceiver {
return SSKEnvironment.shared.messageReceiver
}
// MARK:
@discardableResult
public func run() -> Promise<Void> {
Logger.debug("")

View File

@ -3912,9 +3912,9 @@ typedef OWSContact * (^OWSContactBlock)(YapDatabaseReadWriteTransaction *transac
}
[OWSPrimaryStorage.dbReadWriteConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
[[OWSBatchMessageProcessor sharedInstance] enqueueEnvelopeData:envelopeData
plaintextData:plaintextData
transaction:transaction];
[SSKEnvironment.shared.batchMessageProcessor enqueueEnvelopeData:envelopeData
plaintextData:plaintextData
transaction:transaction];
}];
}

View File

@ -87,9 +87,7 @@ NS_ASSUME_NONNULL_BEGIN
[[OutboundCallInitiator alloc] initWithContactsManager:Environment.shared.contactsManager
contactsUpdater:SSKEnvironment.shared.contactsUpdater];
_messageFetcherJob = [[OWSMessageFetcherJob alloc] initWithMessageReceiver:[OWSMessageReceiver sharedInstance]
networkManager:SSKEnvironment.shared.networkManager
signalService:[OWSSignalService sharedInstance]];
_messageFetcherJob = [[OWSMessageFetcherJob alloc] initWithSignalService:[OWSSignalService sharedInstance]];
}
- (OWSWebRTCCallMessageHandler *)callMessageHandler

View File

@ -10,9 +10,12 @@
#import <SignalMessaging/OWSProfileManager.h>
#import <SignalMessaging/SignalMessaging-Swift.h>
#import <SignalServiceKit/OWSBackgroundTask.h>
#import <SignalServiceKit/OWSBatchMessageProcessor.h>
#import <SignalServiceKit/OWSBlockingManager.h>
#import <SignalServiceKit/OWSIdentityManager.h>
#import <SignalServiceKit/OWSMessageDecrypter.h>
#import <SignalServiceKit/OWSMessageManager.h>
#import <SignalServiceKit/OWSMessageReceiver.h>
#import <SignalServiceKit/OWSStorage.h>
#import <SignalServiceKit/SSKEnvironment.h>
@ -55,6 +58,10 @@ NS_ASSUME_NONNULL_BEGIN
OWSBlockingManager *blockingManager = [[OWSBlockingManager alloc] initWithPrimaryStorage:primaryStorage];
OWSIdentityManager *identityManager = [[OWSIdentityManager alloc] initWithPrimaryStorage:primaryStorage];
id<OWSUDManager> udManager = [[OWSUDManagerImpl alloc] initWithPrimaryStorage:primaryStorage];
OWSMessageDecrypter *messageDecrypter = [[OWSMessageDecrypter alloc] initWithPrimaryStorage:primaryStorage];
OWSBatchMessageProcessor *batchMessageProcessor =
[[OWSBatchMessageProcessor alloc] initWithPrimaryStorage:primaryStorage];
OWSMessageReceiver *messageReceiver = [[OWSMessageReceiver alloc] initWithPrimaryStorage:primaryStorage];
[Environment setShared:[[Environment alloc] initWithPreferences:preferences]];
@ -67,7 +74,10 @@ NS_ASSUME_NONNULL_BEGIN
messageManager:messageManager
blockingManager:blockingManager
identityManager:identityManager
udManager:udManager]];
udManager:udManager
messageDecrypter:messageDecrypter
batchMessageProcessor:batchMessageProcessor
messageReceiver:messageReceiver]];
appSpecificSingletonBlock();

View File

@ -9,6 +9,7 @@
#import "OWSMessageReceiver.h"
#import "OWSPrimaryStorage+SessionStore.h"
#import "OWSPrimaryStorage.h"
#import "SSKEnvironment.h"
#import "TSContactThread.h"
#import "TSDatabaseView.h"
#import "TSErrorMessage_privateConstructor.h"
@ -102,7 +103,7 @@ NS_ASSUME_NONNULL_BEGIN
[self.thread receivedMessagesForInvalidKey:newKey];
for (TSInvalidIdentityKeyReceivingErrorMessage *errorMessage in messagesToDecrypt) {
[[OWSMessageReceiver sharedInstance] handleReceivedEnvelopeData:errorMessage.envelopeData];
[SSKEnvironment.shared.messageReceiver handleReceivedEnvelopeData:errorMessage.envelopeData];
// Here we remove the existing error message because handleReceivedEnvelope will either
// 1.) succeed and create a new successful message in the thread or...

View File

@ -4,6 +4,7 @@
NS_ASSUME_NONNULL_BEGIN
@class OWSPrimaryStorage;
@class OWSStorage;
@class SSKProtoEnvelope;
@class YapDatabaseReadWriteTransaction;
@ -13,7 +14,8 @@ NS_ASSUME_NONNULL_BEGIN
// in the order in which they were received.
@interface OWSBatchMessageProcessor : NSObject
+ (instancetype)sharedInstance;
- (instancetype)init NS_UNAVAILABLE;
- (instancetype)initWithPrimaryStorage:(OWSPrimaryStorage *)primaryStorage NS_DESIGNATED_INITIALIZER;
+ (NSString *)databaseExtensionName;
+ (void)asyncRegisterDatabaseExtension:(OWSStorage *)storage;

View File

@ -231,15 +231,13 @@ NSString *const OWSMessageContentJobFinderExtensionGroup = @"OWSMessageContentJo
@interface OWSMessageContentQueue : NSObject
@property (nonatomic, readonly) OWSMessageManager *messagesManager;
@property (nonatomic, readonly) YapDatabaseConnection *dbConnection;
@property (nonatomic, readonly) OWSMessageContentJobFinder *finder;
@property (nonatomic) BOOL isDrainingQueue;
@property (atomic) BOOL isAppInBackground;
- (instancetype)initWithMessagesManager:(OWSMessageManager *)messagesManager
primaryStorage:(OWSPrimaryStorage *)primaryStorage
finder:(OWSMessageContentJobFinder *)finder NS_DESIGNATED_INITIALIZER;
- (instancetype)initWithDBConnection:(YapDatabaseConnection *)dbConnection
finder:(OWSMessageContentJobFinder *)finder NS_DESIGNATED_INITIALIZER;
- (instancetype)init NS_UNAVAILABLE;
@end
@ -248,9 +246,7 @@ NSString *const OWSMessageContentJobFinderExtensionGroup = @"OWSMessageContentJo
@implementation OWSMessageContentQueue
- (instancetype)initWithMessagesManager:(OWSMessageManager *)messagesManager
primaryStorage:(OWSPrimaryStorage *)primaryStorage
finder:(OWSMessageContentJobFinder *)finder
- (instancetype)initWithDBConnection:(YapDatabaseConnection *)dbConnection finder:(OWSMessageContentJobFinder *)finder
{
OWSSingletonAssert();
@ -259,8 +255,7 @@ NSString *const OWSMessageContentJobFinderExtensionGroup = @"OWSMessageContentJo
return self;
}
_messagesManager = messagesManager;
_dbConnection = [primaryStorage newDatabaseConnection];
_dbConnection = dbConnection;
_finder = finder;
_isDrainingQueue = NO;
@ -286,6 +281,15 @@ NSString *const OWSMessageContentJobFinderExtensionGroup = @"OWSMessageContentJo
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
#pragma mark - Singletons
- (OWSMessageManager *)messageManager
{
OWSAssertDebug(SSKEnvironment.shared.messageManager);
return SSKEnvironment.shared.messageManager;
}
#pragma mark - Notifications
- (void)applicationWillEnterForeground:(NSNotification *)notification
@ -399,9 +403,9 @@ NSString *const OWSMessageContentJobFinderExtensionGroup = @"OWSMessageContentJo
if (!envelope) {
reportFailure(transaction);
} else {
[self.messagesManager processEnvelope:envelope
plaintextData:job.plaintextData
transaction:transaction];
[self.messageManager processEnvelope:envelope
plaintextData:job.plaintextData
transaction:transaction];
}
} @catch (NSException *exception) {
OWSFailDebug(@"Received an invalid envelope: %@", exception.debugDescription);
@ -437,9 +441,7 @@ NSString *const OWSMessageContentJobFinderExtensionGroup = @"OWSMessageContentJo
@implementation OWSBatchMessageProcessor
- (instancetype)initWithDBConnection:(YapDatabaseConnection *)dbConnection
messagesManager:(OWSMessageManager *)messagesManager
primaryStorage:(OWSPrimaryStorage *)primaryStorage
- (instancetype)initWithPrimaryStorage:(OWSPrimaryStorage *)primaryStorage
{
OWSSingletonAssert();
@ -448,38 +450,17 @@ NSString *const OWSMessageContentJobFinderExtensionGroup = @"OWSMessageContentJo
return self;
}
// For coherency we use the same dbConnection to persist and read the unprocessed envelopes
YapDatabaseConnection *dbConnection = [primaryStorage newDatabaseConnection];
OWSMessageContentJobFinder *finder = [[OWSMessageContentJobFinder alloc] initWithDBConnection:dbConnection];
OWSMessageContentQueue *processingQueue = [[OWSMessageContentQueue alloc] initWithMessagesManager:messagesManager
primaryStorage:primaryStorage
finder:finder];
OWSMessageContentQueue *processingQueue =
[[OWSMessageContentQueue alloc] initWithDBConnection:dbConnection finder:finder];
_processingQueue = processingQueue;
return self;
}
- (instancetype)initDefault
{
// For concurrency coherency we use the same dbConnection to persist and read the unprocessed envelopes
YapDatabaseConnection *dbConnection = [[OWSPrimaryStorage sharedManager] newDatabaseConnection];
OWSMessageManager *messagesManager = [OWSMessageManager sharedManager];
OWSPrimaryStorage *primaryStorage = [OWSPrimaryStorage sharedManager];
return [self initWithDBConnection:dbConnection messagesManager:messagesManager primaryStorage:primaryStorage];
}
+ (instancetype)sharedInstance
{
static OWSBatchMessageProcessor *sharedInstance;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedInstance = [[self alloc] initDefault];
});
return sharedInstance;
}
#pragma mark - class methods
+ (NSString *)databaseExtensionName

View File

@ -6,6 +6,7 @@
NS_ASSUME_NONNULL_BEGIN
@class OWSPrimaryStorage;
@class SSKProtoEnvelope;
@class YapDatabaseReadWriteTransaction;
@ -15,7 +16,7 @@ typedef void (^DecryptFailureBlock)(void);
@interface OWSMessageDecrypter : OWSMessageHandler
- (instancetype)init NS_UNAVAILABLE;
+ (instancetype)sharedManager;
- (instancetype)initWithPrimaryStorage:(OWSPrimaryStorage *)primaryStorage NS_DESIGNATED_INITIALIZER;
// decryptEnvelope: can be called from any thread.
// successBlock & failureBlock will be called an arbitrary thread.

View File

@ -21,6 +21,7 @@
#import "TSPreKeyManager.h"
#import <AxolotlKit/AxolotlExceptions.h>
#import <AxolotlKit/SessionCipher.h>
#import <SignalMetadataKit/SignalMetadataKit-Swift.h>
#import <SignalServiceKit/SignalServiceKit-Swift.h>
NS_ASSUME_NONNULL_BEGIN
@ -38,28 +39,7 @@ NS_ASSUME_NONNULL_BEGIN
@implementation OWSMessageDecrypter
+ (instancetype)sharedManager
{
static OWSMessageDecrypter *sharedMyManager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedMyManager = [[self alloc] initDefault];
});
return sharedMyManager;
}
- (instancetype)initDefault
{
OWSPrimaryStorage *primaryStorage = [OWSPrimaryStorage sharedManager];
OWSIdentityManager *identityManager = [OWSIdentityManager sharedManager];
OWSBlockingManager *blockingManager = [OWSBlockingManager sharedManager];
return [self initWithPrimaryStorage:primaryStorage identityManager:identityManager blockingManager:blockingManager];
}
- (instancetype)initWithPrimaryStorage:(OWSPrimaryStorage *)primaryStorage
identityManager:(OWSIdentityManager *)identityManager
blockingManager:(OWSBlockingManager *)blockingManager
{
self = [super init];
@ -68,8 +48,6 @@ NS_ASSUME_NONNULL_BEGIN
}
_primaryStorage = primaryStorage;
_identityManager = identityManager;
_blockingManager = blockingManager;
_dbConnection = primaryStorage.newDatabaseConnection;
@ -78,13 +56,29 @@ NS_ASSUME_NONNULL_BEGIN
return self;
}
#pragma mark - Singletons
- (OWSBlockingManager *)blockingManager
{
OWSAssertDebug(SSKEnvironment.shared.blockingManager);
return SSKEnvironment.shared.blockingManager;
}
- (OWSIdentityManager *)identityManager
{
OWSAssertDebug(SSKEnvironment.shared.identityManager);
return SSKEnvironment.shared.identityManager;
}
#pragma mark - Blocking
- (BOOL)isEnvelopeSenderBlocked:(SSKProtoEnvelope *)envelope
{
OWSAssertDebug(envelope);
return [_blockingManager.blockedPhoneNumbers containsObject:envelope.source];
return [self.blockingManager.blockedPhoneNumbers containsObject:envelope.source];
}
#pragma mark - Decryption

View File

@ -4,6 +4,7 @@
NS_ASSUME_NONNULL_BEGIN
@class OWSPrimaryStorage;
@class OWSStorage;
// This class is used to write incoming (encrypted, unprocessed)
@ -12,7 +13,8 @@ NS_ASSUME_NONNULL_BEGIN
// are forwarded to OWSBatchMessageProcessor.
@interface OWSMessageReceiver : NSObject
+ (instancetype)sharedInstance;
- (instancetype)init NS_UNAVAILABLE;
- (instancetype)initWithPrimaryStorage:(OWSPrimaryStorage *)primaryStorage NS_DESIGNATED_INITIALIZER;
+ (NSString *)databaseExtensionName;
+ (void)asyncRegisterDatabaseExtension:(OWSStorage *)storage;

View File

@ -221,14 +221,12 @@ NSString *const OWSMessageDecryptJobFinderExtensionGroup = @"OWSMessageProcessin
@interface OWSMessageDecryptQueue : NSObject
@property (nonatomic, readonly) OWSMessageDecrypter *messageDecrypter;
@property (nonatomic, readonly) OWSBatchMessageProcessor *batchMessageProcessor;
@property (nonatomic, readonly) YapDatabaseConnection *dbConnection;
@property (nonatomic, readonly) OWSMessageDecryptJobFinder *finder;
@property (nonatomic) BOOL isDrainingQueue;
- (instancetype)initWithMessageDecrypter:(OWSMessageDecrypter *)messageDecrypter
batchMessageProcessor:(OWSBatchMessageProcessor *)batchMessageProcessor
finder:(OWSMessageDecryptJobFinder *)finder NS_DESIGNATED_INITIALIZER;
- (instancetype)initWithDBConnection:(YapDatabaseConnection *)dbConnection
finder:(OWSMessageDecryptJobFinder *)finder NS_DESIGNATED_INITIALIZER;
- (instancetype)init NS_UNAVAILABLE;
@end
@ -237,9 +235,7 @@ NSString *const OWSMessageDecryptJobFinderExtensionGroup = @"OWSMessageProcessin
@implementation OWSMessageDecryptQueue
- (instancetype)initWithMessageDecrypter:(OWSMessageDecrypter *)messageDecrypter
batchMessageProcessor:(OWSBatchMessageProcessor *)batchMessageProcessor
finder:(OWSMessageDecryptJobFinder *)finder
- (instancetype)initWithDBConnection:(YapDatabaseConnection *)dbConnection finder:(OWSMessageDecryptJobFinder *)finder
{
OWSSingletonAssert();
@ -248,8 +244,7 @@ NSString *const OWSMessageDecryptJobFinderExtensionGroup = @"OWSMessageProcessin
return self;
}
_messageDecrypter = messageDecrypter;
_batchMessageProcessor = batchMessageProcessor;
_dbConnection = dbConnection;
_finder = finder;
_isDrainingQueue = NO;
@ -260,7 +255,23 @@ NSString *const OWSMessageDecryptJobFinderExtensionGroup = @"OWSMessageProcessin
return self;
}
#pragma mark - instance methods
#pragma mark - Singletons
- (OWSMessageDecrypter *)messageDecrypter
{
OWSAssertDebug(SSKEnvironment.shared.messageDecrypter);
return SSKEnvironment.shared.messageDecrypter;
}
- (OWSBatchMessageProcessor *)batchMessageProcessor
{
OWSAssertDebug(SSKEnvironment.shared.batchMessageProcessor);
return SSKEnvironment.shared.batchMessageProcessor;
}
#pragma mark - Instance methods
- (dispatch_queue_t)serialQueue
{
@ -382,9 +393,7 @@ NSString *const OWSMessageDecryptJobFinderExtensionGroup = @"OWSMessageProcessin
@implementation OWSMessageReceiver
- (instancetype)initWithDBConnection:(YapDatabaseConnection *)dbConnection
messageDecrypter:(OWSMessageDecrypter *)messageDecrypter
batchMessageProcessor:(OWSBatchMessageProcessor *)batchMessageProcessor
- (instancetype)initWithPrimaryStorage:(OWSPrimaryStorage *)primaryStorage
{
OWSSingletonAssert();
@ -393,41 +402,17 @@ NSString *const OWSMessageDecryptJobFinderExtensionGroup = @"OWSMessageProcessin
return self;
}
// For coherency we use the same dbConnection to persist and read the unprocessed envelopes
YapDatabaseConnection *dbConnection = [primaryStorage newDatabaseConnection];
OWSMessageDecryptJobFinder *finder = [[OWSMessageDecryptJobFinder alloc] initWithDBConnection:dbConnection];
OWSMessageDecryptQueue *processingQueue =
[[OWSMessageDecryptQueue alloc] initWithMessageDecrypter:messageDecrypter
batchMessageProcessor:batchMessageProcessor
finder:finder];
[[OWSMessageDecryptQueue alloc] initWithDBConnection:dbConnection finder:finder];
_processingQueue = processingQueue;
return self;
}
- (instancetype)initDefault
{
// For concurrency coherency we use the same dbConnection to persist and read the unprocessed envelopes
YapDatabaseConnection *dbConnection = [[OWSPrimaryStorage sharedManager] newDatabaseConnection];
OWSMessageDecrypter *messageDecrypter = [OWSMessageDecrypter sharedManager];
OWSBatchMessageProcessor *batchMessageProcessor = [OWSBatchMessageProcessor sharedInstance];
return [self initWithDBConnection:dbConnection
messageDecrypter:messageDecrypter
batchMessageProcessor:batchMessageProcessor];
}
+ (instancetype)sharedInstance
{
static OWSMessageReceiver *sharedInstance;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedInstance = [[self alloc] initDefault];
});
return sharedInstance;
}
#pragma mark - class methods
+ (NSString *)databaseExtensionName

View File

@ -147,7 +147,6 @@ NSString *const kNSNotification_SocketManagerStateDidChange = @"kNSNotification_
@interface TSSocketManager ()
@property (nonatomic, readonly) OWSSignalService *signalService;
@property (nonatomic, readonly) OWSMessageReceiver *messageReceiver;
// This class has a few "tiers" of state.
//
@ -218,7 +217,6 @@ NSString *const kNSNotification_SocketManagerStateDidChange = @"kNSNotification_
OWSAssertIsOnMainThread();
_signalService = [OWSSignalService sharedInstance];
_messageReceiver = [OWSMessageReceiver sharedInstance];
_state = SocketManagerStateClosed;
_socketMessageMap = [NSMutableDictionary new];
@ -270,6 +268,13 @@ NSString *const kNSNotification_SocketManagerStateDidChange = @"kNSNotification_
return sharedMyManager;
}
#pragma mark - Dependencies
- (OWSMessageReceiver *)messageReceiver
{
return SSKEnvironment.shared.messageReceiver;
}
#pragma mark - Manage Socket
- (void)ensureWebsocketIsOpen

View File

@ -5,9 +5,12 @@
NS_ASSUME_NONNULL_BEGIN
@class ContactsUpdater;
@class OWSBatchMessageProcessor;
@class OWSBlockingManager;
@class OWSIdentityManager;
@class OWSMessageDecrypter;
@class OWSMessageManager;
@class OWSMessageReceiver;
@class OWSMessageSender;
@class OWSPrimaryStorage;
@class TSNetworkManager;
@ -30,7 +33,10 @@ NS_ASSUME_NONNULL_BEGIN
messageManager:(OWSMessageManager *)messageManager
blockingManager:(OWSBlockingManager *)blockingManager
identityManager:(OWSIdentityManager *)identityManager
udManager:(id<OWSUDManager>)udManager NS_DESIGNATED_INITIALIZER;
udManager:(id<OWSUDManager>)udManager
messageDecrypter:(OWSMessageDecrypter *)messageDecrypter
batchMessageProcessor:(OWSBatchMessageProcessor *)batchMessageProcessor
messageReceiver:(OWSMessageReceiver *)messageReceiver NS_DESIGNATED_INITIALIZER;
- (instancetype)init NS_UNAVAILABLE;
@ -53,6 +59,9 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic, readonly) OWSBlockingManager *blockingManager;
@property (nonatomic, readonly) OWSIdentityManager *identityManager;
@property (nonatomic, readonly) id<OWSUDManager> udManager;
@property (nonatomic, readonly) OWSMessageDecrypter *messageDecrypter;
@property (nonatomic, readonly) OWSBatchMessageProcessor *batchMessageProcessor;
@property (nonatomic, readonly) OWSMessageReceiver *messageReceiver;
// This property is configured after Environment is created.
@property (atomic, nullable) id<OWSCallMessageHandler> callMessageHandler;

View File

@ -22,6 +22,9 @@ static SSKEnvironment *sharedSSKEnvironment;
@property (nonatomic) OWSBlockingManager *blockingManager;
@property (nonatomic) OWSIdentityManager *identityManager;
@property (nonatomic) id<OWSUDManager> udManager;
@property (nonatomic) OWSMessageDecrypter *messageDecrypter;
@property (nonatomic) OWSBatchMessageProcessor *batchMessageProcessor;
@property (nonatomic) OWSMessageReceiver *messageReceiver;
@end
@ -43,6 +46,9 @@ static SSKEnvironment *sharedSSKEnvironment;
blockingManager:(OWSBlockingManager *)blockingManager
identityManager:(OWSIdentityManager *)identityManager
udManager:(id<OWSUDManager>)udManager
messageDecrypter:(OWSMessageDecrypter *)messageDecrypter
batchMessageProcessor:(OWSBatchMessageProcessor *)batchMessageProcessor
messageReceiver:(OWSMessageReceiver *)messageReceiver
{
self = [super init];
if (!self) {
@ -59,6 +65,9 @@ static SSKEnvironment *sharedSSKEnvironment;
OWSAssertDebug(blockingManager);
OWSAssertDebug(identityManager);
OWSAssertDebug(udManager);
OWSAssertDebug(messageDecrypter);
OWSAssertDebug(batchMessageProcessor);
OWSAssertDebug(messageReceiver);
_contactsManager = contactsManager;
_messageSender = messageSender;
@ -70,6 +79,9 @@ static SSKEnvironment *sharedSSKEnvironment;
_blockingManager = blockingManager;
_identityManager = identityManager;
_udManager = udManager;
_messageDecrypter = messageDecrypter;
_batchMessageProcessor = batchMessageProcessor;
_messageReceiver = messageReceiver;
return self;
}

View File

@ -3,6 +3,7 @@
//
#import "MockSSKEnvironment.h"
#import "OWSBatchMessageProcessor.h"
#import "OWSBlockingManager.h"
#import "OWSFakeCallMessageHandler.h"
#import "OWSFakeContactsManager.h"
@ -12,7 +13,9 @@
#import "OWSFakeNotificationsManager.h"
#import "OWSFakeProfileManager.h"
#import "OWSIdentityManager.h"
#import "OWSMessageDecrypter.h"
#import "OWSMessageManager.h"
#import "OWSMessageReceiver.h"
#import "OWSPrimaryStorage.h"
#import <SignalServiceKit/SignalServiceKit-Swift.h>
@ -49,6 +52,10 @@ NS_ASSUME_NONNULL_BEGIN
OWSBlockingManager *blockingManager = [[OWSBlockingManager alloc] initWithPrimaryStorage:primaryStorage];
OWSIdentityManager *identityManager = [[OWSIdentityManager alloc] initWithPrimaryStorage:primaryStorage];
id<OWSUDManager> udManager = [[OWSUDManagerImpl alloc] initWithPrimaryStorage:primaryStorage];
OWSMessageDecrypter *messageDecrypter = [[OWSMessageDecrypter alloc] initWithPrimaryStorage:primaryStorage];
OWSBatchMessageProcessor *batchMessageProcessor =
[[OWSBatchMessageProcessor alloc] initWithPrimaryStorage:primaryStorage];
OWSMessageReceiver *messageReceiver = [[OWSMessageReceiver alloc] initWithPrimaryStorage:primaryStorage];
self = [super initWithContactsManager:contactsManager
messageSender:messageSender
@ -59,7 +66,10 @@ NS_ASSUME_NONNULL_BEGIN
messageManager:messageManager
blockingManager:blockingManager
identityManager:identityManager
udManager:udManager];
udManager:udManager
messageDecrypter:messageDecrypter
batchMessageProcessor:batchMessageProcessor
messageReceiver:messageReceiver];
if (!self) {
return nil;
}