session-ios/SignalMessaging/environment/Environment.m

71 lines
1.7 KiB
Mathematica
Raw Normal View History

//
2018-08-02 21:18:40 +02:00
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
//
#import "Environment.h"
2018-08-31 19:44:13 +02:00
#import "OWSPreferences.h"
2017-12-06 21:53:19 +01:00
#import <SignalServiceKit/AppContext.h>
2018-09-17 15:27:58 +02:00
#import <SignalServiceKit/SSKEnvironment.h>
static Environment *sharedEnvironment = nil;
@implementation Environment
+ (Environment *)shared
{
OWSAssertDebug(sharedEnvironment);
return sharedEnvironment;
}
+ (void)setShared:(Environment *)environment
{
2017-12-07 19:53:13 +01:00
// The main app environment should only be set once.
//
// App extensions may be opened multiple times in the same process,
// so statics will persist.
OWSAssertDebug(!sharedEnvironment || !CurrentAppContext().isMainApp);
OWSAssertDebug(environment);
sharedEnvironment = environment;
}
2018-09-07 23:19:24 +02:00
+ (void)clearSharedForTests
2017-12-05 19:42:50 +01:00
{
sharedEnvironment = nil;
}
2018-09-17 15:27:58 +02:00
- (instancetype)initWithPreferences:(OWSPreferences *)preferences
2018-10-12 22:39:40 +02:00
contactsSyncing:(OWSContactsSyncing *)contactsSyncing
sounds:(OWSSounds *)sounds
lockInteractionController:(LockInteractionController *)lockInteractionController
windowManager:(OWSWindowManager *)windowManager {
self = [super init];
if (!self) {
return self;
}
2018-09-17 15:27:58 +02:00
OWSAssertDebug(preferences);
2018-10-12 22:39:40 +02:00
OWSAssertDebug(contactsSyncing);
OWSAssertDebug(sounds);
OWSAssertDebug(lockInteractionController);
OWSAssertDebug(windowManager);
2018-09-17 15:27:58 +02:00
_preferences = preferences;
2018-10-12 22:39:40 +02:00
_contactsSyncing = contactsSyncing;
_sounds = sounds;
_lockInteractionController = lockInteractionController;
_windowManager = windowManager;
OWSSingletonAssert();
return self;
}
- (OWSContactsManager *)contactsManager
{
2018-09-17 15:27:58 +02:00
return (OWSContactsManager *)SSKEnvironment.shared.contactsManager;
}
@end