session-ios/SessionMessagingKit/Utilities/Environment.m

67 lines
1.6 KiB
Mathematica
Raw Normal View History

2020-11-16 00:34:47 +01:00
#import <Foundation/Foundation.h>
#import "OWSWindowManager.h"
2020-11-26 00:37:56 +01:00
#import <SessionMessagingKit/SessionMessagingKit-Swift.h>
2018-08-31 19:44:13 +02:00
#import "OWSPreferences.h"
#import "OWSSounds.h"
static Environment *sharedEnvironment = nil;
2018-10-15 18:50:07 +02:00
@interface Environment ()
2021-08-02 07:43:50 +02:00
@property (nonatomic) OWSAudioSession *audioSessionRef;
2018-10-15 18:50:07 +02:00
@property (nonatomic) OWSPreferences *preferences;
@property (nonatomic) id<OWSProximityMonitoringManager> proximityMonitoringManager;
2018-10-15 18:50:07 +02:00
@property (nonatomic) OWSSounds *sounds;
@property (nonatomic) OWSWindowManager *windowManager;
@end
#pragma mark -
@implementation Environment
+ (Environment *)shared
{
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.
sharedEnvironment = environment;
}
2018-09-07 23:19:24 +02:00
+ (void)clearSharedForTests
2017-12-05 19:42:50 +01:00
{
sharedEnvironment = nil;
}
- (instancetype)initWithAudioSession:(OWSAudioSession *)audioSession
preferences:(OWSPreferences *)preferences
proximityMonitoringManager:(id<OWSProximityMonitoringManager>)proximityMonitoringManager
sounds:(OWSSounds *)sounds
windowManager:(OWSWindowManager *)windowManager
{
self = [super init];
2020-11-16 00:34:47 +01:00
if (!self) {
return self;
}
2021-08-02 07:43:50 +02:00
_audioSessionRef = audioSession;
2018-09-17 15:27:58 +02:00
_preferences = preferences;
_proximityMonitoringManager = proximityMonitoringManager;
2018-10-12 22:39:40 +02:00
_sounds = sounds;
_windowManager = windowManager;
_isRequestingPermission = false;
return self;
}
@end