2017-12-01 21:17:29 +01:00
|
|
|
//
|
2018-08-02 21:18:40 +02:00
|
|
|
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
|
2017-12-01 21:17:29 +01:00
|
|
|
//
|
|
|
|
|
|
|
|
#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>
|
2017-12-01 21:17:29 +01:00
|
|
|
|
2017-12-04 16:35:47 +01:00
|
|
|
static Environment *sharedEnvironment = nil;
|
2017-12-01 21:17:29 +01:00
|
|
|
|
|
|
|
@implementation Environment
|
|
|
|
|
2018-08-31 19:16:31 +02:00
|
|
|
+ (Environment *)shared
|
2017-12-01 21:17:29 +01:00
|
|
|
{
|
2018-09-06 19:01:24 +02:00
|
|
|
OWSAssertDebug(sharedEnvironment);
|
2017-12-04 16:35:47 +01:00
|
|
|
|
|
|
|
return sharedEnvironment;
|
2017-12-01 21:17:29 +01:00
|
|
|
}
|
|
|
|
|
2018-08-31 19:16:31 +02:00
|
|
|
+ (void)setShared:(Environment *)environment
|
2017-12-01 21:17:29 +01:00
|
|
|
{
|
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.
|
2018-09-06 19:01:24 +02:00
|
|
|
OWSAssertDebug(!sharedEnvironment || !CurrentAppContext().isMainApp);
|
|
|
|
OWSAssertDebug(environment);
|
2017-12-04 16:35:47 +01:00
|
|
|
|
|
|
|
sharedEnvironment = environment;
|
2017-12-01 21:17:29 +01:00
|
|
|
}
|
|
|
|
|
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
|
2017-12-01 21:17:29 +01:00
|
|
|
{
|
|
|
|
self = [super init];
|
|
|
|
if (!self) {
|
|
|
|
return self;
|
|
|
|
}
|
|
|
|
|
2018-09-17 15:27:58 +02:00
|
|
|
OWSAssertDebug(preferences);
|
|
|
|
|
|
|
|
_preferences = preferences;
|
2017-12-01 21:17:29 +01:00
|
|
|
|
|
|
|
OWSSingletonAssert();
|
|
|
|
|
|
|
|
return self;
|
|
|
|
}
|
|
|
|
|
|
|
|
- (OWSContactsManager *)contactsManager
|
|
|
|
{
|
2018-09-17 15:27:58 +02:00
|
|
|
return (OWSContactsManager *)SSKEnvironment.shared.contactsManager;
|
2017-12-01 21:17:29 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
@end
|