You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
session-ios/SignalServiceKit/src/SSKEnvironment.m

70 lines
1.8 KiB
Matlab

//
7 years ago
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
//
10 years ago
#import "SSKEnvironment.h"
#import "AppContext.h"
10 years ago
NS_ASSUME_NONNULL_BEGIN
static SSKEnvironment *sharedSSKEnvironment;
@interface SSKEnvironment ()
@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 -
10 years ago
@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);
_callMessageHandler = callMessageHandler;
_contactsManager = contactsManager;
_messageSender = messageSender;
_notificationsManager = notificationsManager;
_profileManager = profileManager;
return self;
}
+ (instancetype)shared
{
OWSAssertDebug(sharedSSKEnvironment);
10 years ago
return sharedSSKEnvironment;
}
+ (void)setShared:(SSKEnvironment *)env
{
OWSAssertDebug(env);
OWSAssertDebug(!sharedSSKEnvironment || CurrentAppContext().isRunningTests);
sharedSSKEnvironment = env;
}
10 years ago
@end
NS_ASSUME_NONNULL_END