[SSK] + Enforce singleton access for MessagesManager and MessageSender
// FREEBIE
This commit is contained in:
parent
eaf7b65037
commit
7f239c8040
|
@ -132,7 +132,7 @@ CHECKOUT OPTIONS:
|
|||
:commit: af1946846ab2826fafadb1886a80d1da8632f091
|
||||
:git: https://github.com/WhisperSystems/SignalProtocolKit.git
|
||||
SignalServiceKit:
|
||||
:commit: 718164fbe509e902d6dfda9f3c33c0dfc11c5e19
|
||||
:commit: bdd0241a94797a65d57b97daf4c0dac39f0ee9dd
|
||||
:git: https://github.com/WhisperSystems/SignalServiceKit.git
|
||||
SocketRocket:
|
||||
:commit: 877ac7438be3ad0b45ef5ca3969574e4b97112bf
|
||||
|
|
|
@ -100,8 +100,7 @@ static NSString *const kURLHostVerifyPrefix = @"verify";
|
|||
// XXX - careful when moving this. It must happen before we initialize TSStorageManager.
|
||||
[self verifyDBKeysAvailableBeforeBackgroundLaunch];
|
||||
|
||||
// Setting up environment
|
||||
[Environment setCurrent:[Release releaseEnvironment]];
|
||||
[self setupEnvironment];
|
||||
|
||||
[UIUtil applySignalAppearence];
|
||||
[[PushManager sharedManager] registerPushKitNotificationFuture];
|
||||
|
@ -114,7 +113,6 @@ static NSString *const kURLHostVerifyPrefix = @"verify";
|
|||
[Environment.getCurrent.contactsManager doAfterEnvironmentInitSetup];
|
||||
}
|
||||
|
||||
[self setupTSKitEnv];
|
||||
|
||||
UIStoryboard *storyboard;
|
||||
if ([TSAccountManager isRegistered]) {
|
||||
|
@ -188,27 +186,25 @@ static NSString *const kURLHostVerifyPrefix = @"verify";
|
|||
return YES;
|
||||
}
|
||||
|
||||
- (void)setupTSKitEnv {
|
||||
- (void)setupEnvironment
|
||||
{
|
||||
[Environment setCurrent:[Release releaseEnvironment]];
|
||||
|
||||
// Encryption/Descryption mutates session state and must be synchronized on a serial queue.
|
||||
[SessionCipher setSessionCipherDispatchQueue:[OWSDispatch sessionCipher]];
|
||||
|
||||
TextSecureKitEnv *sharedEnv =
|
||||
[[TextSecureKitEnv alloc] initWithCallMessageHandler:[Environment getCurrent].callMessageHandler
|
||||
contactsManager:[Environment getCurrent].contactsManager
|
||||
messageSender:[Environment getCurrent].messageSender
|
||||
notificationsManager:[Environment getCurrent].notificationsManager];
|
||||
[TextSecureKitEnv setSharedEnv:sharedEnv];
|
||||
|
||||
[[TSStorageManager sharedManager] setupDatabase];
|
||||
|
||||
OWSMessageSender *messageSender =
|
||||
[[OWSMessageSender alloc] initWithNetworkManager:[Environment getCurrent].networkManager
|
||||
storageManager:[TSStorageManager sharedManager]
|
||||
contactsManager:[Environment getCurrent].contactsManager
|
||||
contactsUpdater:[Environment getCurrent].contactsUpdater];
|
||||
|
||||
self.incomingMessageReadObserver =
|
||||
[[OWSIncomingMessageReadObserver alloc] initWithStorageManager:[TSStorageManager sharedManager]
|
||||
messageSender:messageSender];
|
||||
messageSender:[Environment getCurrent].messageSender];
|
||||
[self.incomingMessageReadObserver startObserving];
|
||||
|
||||
self.staleNotificationObserver = [OWSStaleNotificationObserver new];
|
||||
|
|
|
@ -13,15 +13,13 @@ class MessageFetcherJob: NSObject {
|
|||
// MARK: injected dependencies
|
||||
let networkManager: TSNetworkManager
|
||||
let messagesManager: TSMessagesManager
|
||||
let messageSender: MessageSender
|
||||
let signalService: OWSSignalService
|
||||
|
||||
var runPromises = [Double: Promise<Void>]()
|
||||
|
||||
init(messagesManager: TSMessagesManager, messageSender: MessageSender, networkManager: TSNetworkManager, signalService: OWSSignalService) {
|
||||
init(messagesManager: TSMessagesManager, networkManager: TSNetworkManager, signalService: OWSSignalService) {
|
||||
self.messagesManager = messagesManager
|
||||
self.networkManager = networkManager
|
||||
self.messageSender = messageSender
|
||||
self.signalService = signalService
|
||||
}
|
||||
|
||||
|
|
|
@ -13,8 +13,6 @@
|
|||
#import "TSGroupThread.h"
|
||||
#import <SignalServiceKit/ContactsUpdater.h>
|
||||
|
||||
#define isRegisteredUserDefaultString @"isRegistered"
|
||||
|
||||
static Environment *environment = nil;
|
||||
|
||||
@implementation Environment
|
||||
|
@ -22,6 +20,10 @@ static Environment *environment = nil;
|
|||
@synthesize accountManager = _accountManager,
|
||||
callMessageHandler = _callMessageHandler,
|
||||
callService = _callService,
|
||||
contactsManager = _contactsManager,
|
||||
contactsUpdater = _contactsUpdater,
|
||||
messageSender = _messageSender,
|
||||
networkManager = _networkManager,
|
||||
notificationsManager = _notificationsManager,
|
||||
preferences = _preferences,
|
||||
outboundCallInitiator = _outboundCallInitiator;
|
||||
|
@ -114,6 +116,30 @@ static Environment *environment = nil;
|
|||
return _outboundCallInitiator;
|
||||
}
|
||||
|
||||
- (OWSContactsManager *)contactsManager
|
||||
{
|
||||
OWSAssert(_contactsManager != nil);
|
||||
return _contactsManager;
|
||||
}
|
||||
|
||||
- (ContactsUpdater *)contactsUpdater
|
||||
{
|
||||
OWSAssert(_contactsUpdater != nil);
|
||||
return _contactsUpdater;
|
||||
}
|
||||
|
||||
- (TSNetworkManager *)networkManager
|
||||
{
|
||||
OWSAssert(_networkManager != nil);
|
||||
return _networkManager;
|
||||
}
|
||||
|
||||
- (OWSMessageSender *)messageSender
|
||||
{
|
||||
OWSAssert(_messageSender != nil);
|
||||
return _messageSender;
|
||||
}
|
||||
|
||||
- (NotificationsManager *)notificationsManager
|
||||
{
|
||||
@synchronized (self) {
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
@property UIAlertView *missingPermissionsAlertView;
|
||||
@property (nonatomic, retain) NSMutableArray *currentNotifications;
|
||||
@property (nonatomic) UIBackgroundTaskIdentifier callBackgroundTask;
|
||||
@property (nonatomic, readonly) OWSContactsManager *contactsManager;
|
||||
@property (nonatomic, readonly) OWSMessageSender *messageSender;
|
||||
@property (nonatomic, readonly) OWSMessageFetcherJob *messageFetcherJob;
|
||||
@property (nonatomic, readonly) CallUIAdapter *callUIAdapter;
|
||||
|
@ -44,44 +43,29 @@
|
|||
|
||||
- (instancetype)initDefault
|
||||
{
|
||||
return [self initWithContactsManager:[Environment getCurrent].contactsManager
|
||||
networkManager:[Environment getCurrent].networkManager
|
||||
storageManager:[TSStorageManager sharedManager]
|
||||
callMessageHandler:[Environment getCurrent].callMessageHandler
|
||||
callService:[Environment getCurrent].callService
|
||||
contactsUpdater:[Environment getCurrent].contactsUpdater];
|
||||
return [self initWithNetworkManager:[Environment getCurrent].networkManager
|
||||
storageManager:[TSStorageManager sharedManager]
|
||||
callUIAdapter:[Environment getCurrent].callService.callUIAdapter
|
||||
messagesManager:[TSMessagesManager sharedManager]
|
||||
messageSender:[Environment getCurrent].messageSender];
|
||||
}
|
||||
|
||||
- (instancetype)initWithContactsManager:(OWSContactsManager *)contactsManager
|
||||
networkManager:(TSNetworkManager *)networkManager
|
||||
storageManager:(TSStorageManager *)storageManager
|
||||
callMessageHandler:(OWSWebRTCCallMessageHandler *)callMessageHandler
|
||||
callService:(CallService *)callService
|
||||
contactsUpdater:(ContactsUpdater *)contactsUpdater
|
||||
- (instancetype)initWithNetworkManager:(TSNetworkManager *)networkManager
|
||||
storageManager:(TSStorageManager *)storageManager
|
||||
callUIAdapter:(CallUIAdapter *)callUIAdapter
|
||||
messagesManager:(TSMessagesManager *)messagesManager
|
||||
messageSender:(OWSMessageSender *)messageSender
|
||||
{
|
||||
self = [super init];
|
||||
if (!self) {
|
||||
return self;
|
||||
}
|
||||
|
||||
_contactsManager = contactsManager;
|
||||
_callUIAdapter = callService.callUIAdapter;
|
||||
|
||||
_messageSender = [[OWSMessageSender alloc] initWithNetworkManager:networkManager
|
||||
storageManager:storageManager
|
||||
contactsManager:contactsManager
|
||||
contactsUpdater:contactsUpdater];
|
||||
|
||||
TSMessagesManager *messagesManager = [[TSMessagesManager alloc] initWithNetworkManager:networkManager
|
||||
storageManager:storageManager
|
||||
callMessageHandler:callMessageHandler
|
||||
contactsManager:contactsManager
|
||||
contactsUpdater:contactsUpdater
|
||||
messageSender:_messageSender];
|
||||
_callUIAdapter = callUIAdapter;
|
||||
_messageSender = messageSender;
|
||||
|
||||
OWSSignalService *signalService = [OWSSignalService new];
|
||||
_messageFetcherJob = [[OWSMessageFetcherJob alloc] initWithMessagesManager:messagesManager
|
||||
messageSender:_messageSender
|
||||
networkManager:networkManager
|
||||
signalService:signalService];
|
||||
|
||||
|
|
|
@ -58,11 +58,7 @@ static NSString *const kUnwindToMessagesViewSegue = @"UnwindToMessagesViewSegue"
|
|||
|
||||
- (void)commonInit
|
||||
{
|
||||
_messageSender = [[OWSMessageSender alloc] initWithNetworkManager:[Environment getCurrent].networkManager
|
||||
storageManager:[TSStorageManager sharedManager]
|
||||
contactsManager:[Environment getCurrent].contactsManager
|
||||
contactsUpdater:[Environment getCurrent].contactsUpdater];
|
||||
|
||||
_messageSender = [Environment getCurrent].messageSender;
|
||||
_contactsManager = [Environment getCurrent].contactsManager;
|
||||
|
||||
[self observeNotifications];
|
||||
|
|
|
@ -124,10 +124,7 @@ static NSString *const OWSConversationSettingsTableViewControllerSegueShowGroupM
|
|||
{
|
||||
_storageManager = [TSStorageManager sharedManager];
|
||||
_contactsManager = [Environment getCurrent].contactsManager;
|
||||
_messageSender = [[OWSMessageSender alloc] initWithNetworkManager:[Environment getCurrent].networkManager
|
||||
storageManager:_storageManager
|
||||
contactsManager:_contactsManager
|
||||
contactsUpdater:[Environment getCurrent].contactsUpdater];
|
||||
_messageSender = [Environment getCurrent].messageSender;
|
||||
}
|
||||
|
||||
- (void)configureWithThread:(TSThread *)thread
|
||||
|
|
Loading…
Reference in New Issue