// // Copyright (c) 2018 Open Whisper Systems. All rights reserved. // #import "TextSecureKitEnv.h" #import "AppContext.h" NS_ASSUME_NONNULL_BEGIN static TextSecureKitEnv *sharedTextSecureKitEnv; @interface TextSecureKitEnv () @property (nonatomic) id callMessageHandler; @property (nonatomic) id contactsManager; @property (nonatomic) OWSMessageSender *messageSender; @property (nonatomic) id notificationsManager; @property (nonatomic) id profileManager; @end #pragma mark - @implementation TextSecureKitEnv - (instancetype)initWithCallMessageHandler:(id)callMessageHandler contactsManager:(id)contactsManager messageSender:(OWSMessageSender *)messageSender notificationsManager:(id)notificationsManager profileManager:(id)profileManager { self = [super init]; if (!self) { return self; } OWSAssert(callMessageHandler); OWSAssert(contactsManager); OWSAssert(messageSender); OWSAssert(notificationsManager); OWSAssert(profileManager); _callMessageHandler = callMessageHandler; _contactsManager = contactsManager; _messageSender = messageSender; _notificationsManager = notificationsManager; _profileManager = profileManager; return self; } + (instancetype)sharedEnv { OWSAssert(sharedTextSecureKitEnv); return sharedTextSecureKitEnv; } + (void)setSharedEnv:(TextSecureKitEnv *)env { OWSAssert(env); OWSAssert(!sharedTextSecureKitEnv || CurrentAppContext().isRunningTests); sharedTextSecureKitEnv = env; } @end NS_ASSUME_NONNULL_END