session-ios/SessionMessagingKit/Utilities/Environment.h

41 lines
1.3 KiB
C
Raw Normal View History

#import <Foundation/Foundation.h>
2018-09-17 15:27:58 +02:00
@class OWSAudioSession;
2018-09-17 15:27:58 +02:00
@class OWSPreferences;
2018-10-12 22:39:40 +02:00
@class OWSSounds;
@class OWSWindowManager;
@protocol OWSProximityMonitoringManager;
2014-05-06 19:41:08 +02:00
/**
*
* Environment is a data and data accessor class.
* It handles application-level component wiring in order to support mocks for testing.
* It also handles network configuration for testing/deployment server configurations.
*
2014-05-06 19:41:08 +02:00
**/
@interface Environment : NSObject
2018-09-17 15:27:58 +02:00
- (instancetype)init NS_UNAVAILABLE;
- (instancetype)initWithAudioSession:(OWSAudioSession *)audioSession
preferences:(OWSPreferences *)preferences
proximityMonitoringManager:(id<OWSProximityMonitoringManager>)proximityMonitoringManager
sounds:(OWSSounds *)sounds
windowManager:(OWSWindowManager *)windowManager;
@property (nonatomic, readonly) OWSAudioSession *audioSession;
@property (nonatomic, readonly) id<OWSProximityMonitoringManager> proximityMonitoringManager;
@property (nonatomic, readonly) OWSPreferences *preferences;
2018-10-12 22:39:40 +02:00
@property (nonatomic, readonly) OWSSounds *sounds;
@property (nonatomic, readonly) OWSWindowManager *windowManager;
2014-05-06 19:41:08 +02:00
2018-09-07 22:25:10 +02:00
@property (class, nonatomic) Environment *shared;
2018-09-17 15:27:58 +02:00
#ifdef DEBUG
2017-12-05 19:42:50 +01:00
// Should only be called by tests.
2018-09-07 23:19:24 +02:00
+ (void)clearSharedForTests;
2018-09-17 15:27:58 +02:00
#endif
2014-05-06 19:41:08 +02:00
@end