session-ios/SignalServiceKit/src/SSKEnvironment.m

70 lines
1.8 KiB
Mathematica
Raw Normal View History

//
2018-07-18 03:32:44 +02:00
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
//
2015-12-07 03:31:43 +01:00
#import "SSKEnvironment.h"
2017-12-06 21:53:19 +01:00
#import "AppContext.h"
2015-12-07 03:31:43 +01:00
NS_ASSUME_NONNULL_BEGIN
static SSKEnvironment *sharedSSKEnvironment;
@interface SSKEnvironment ()
2017-12-06 21:53:19 +01:00
@property (nonatomic) id<OWSCallMessageHandler> callMessageHandler;
@property (nonatomic) id<ContactsManagerProtocol> contactsManager;
@property (nonatomic) OWSMessageSender *messageSender;
@property (nonatomic) id<NotificationsProtocol> notificationsManager;
@property (nonatomic) id<ProfileManagerProtocol> profileManager;
@end
#pragma mark -
2015-12-07 03:31:43 +01:00
@implementation SSKEnvironment
- (instancetype)initWithCallMessageHandler:(id<OWSCallMessageHandler>)callMessageHandler
contactsManager:(id<ContactsManagerProtocol>)contactsManager
messageSender:(OWSMessageSender *)messageSender
notificationsManager:(id<NotificationsProtocol>)notificationsManager
profileManager:(id<ProfileManagerProtocol>)profileManager
{
self = [super init];
if (!self) {
return self;
}
OWSAssertDebug(callMessageHandler);
OWSAssertDebug(contactsManager);
OWSAssertDebug(messageSender);
OWSAssertDebug(notificationsManager);
OWSAssertDebug(profileManager);
2017-12-06 21:53:19 +01:00
_callMessageHandler = callMessageHandler;
_contactsManager = contactsManager;
_messageSender = messageSender;
_notificationsManager = notificationsManager;
_profileManager = profileManager;
return self;
}
+ (instancetype)shared
{
OWSAssertDebug(sharedSSKEnvironment);
2015-12-07 03:31:43 +01:00
return sharedSSKEnvironment;
}
+ (void)setShared:(SSKEnvironment *)env
{
OWSAssertDebug(env);
OWSAssertDebug(!sharedSSKEnvironment || CurrentAppContext().isRunningTests);
sharedSSKEnvironment = env;
}
2015-12-07 03:31:43 +01:00
@end
NS_ASSUME_NONNULL_END