mirror of
https://github.com/oxen-io/session-ios.git
synced 2023-12-13 21:30:14 +01:00
Changed the min OS version to iOS 13.0 (support for 'Identifiable') Removed the alternate approaches to fetching the userKeyPair and userPublicKeyHexString (no consistently routed through the caching method) Migrated the 'OWSIdentityManager' logic to use the new 'Identity' type Added the 'Setting' table and got the pattern working fairly nicely (unfortunately there isn't a good way to avoid key collision without proper enums) Updated the SessionSnodeKit to migration it's data from YDB to GRDB Updated the SessionSnodeKit to use GRDB throughout it's logic
82 lines
3 KiB
Objective-C
82 lines
3 KiB
Objective-C
//
|
|
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
|
|
//
|
|
|
|
#import <Foundation/Foundation.h>
|
|
|
|
NS_ASSUME_NONNULL_BEGIN
|
|
|
|
@class ContactDiscoveryService;
|
|
@class ContactsUpdater;
|
|
@class OWS2FAManager;
|
|
@class OWSAttachmentDownloads;
|
|
@class OWSBatchMessageProcessor;
|
|
@class OWSDisappearingMessagesJob;
|
|
@class OWSIdentityManager;
|
|
@class OWSMessageDecrypter;
|
|
@class OWSMessageManager;
|
|
@class OWSMessageReceiver;
|
|
@class OWSMessageSender;
|
|
@class OWSOutgoingReceiptManager;
|
|
@class OWSPrimaryStorage;
|
|
@class OWSReadReceiptManager;
|
|
@class SSKMessageSenderJobQueue;
|
|
@class TSAccountManager;
|
|
@class TSSocketManager;
|
|
@class YapDatabaseConnection;
|
|
|
|
@protocol ContactsManagerProtocol;
|
|
@protocol NotificationsProtocol;
|
|
@protocol OWSCallMessageHandler;
|
|
@protocol ProfileManagerProtocol;
|
|
@protocol OWSUDManager;
|
|
@protocol SSKReachabilityManager;
|
|
@protocol OWSSyncManagerProtocol;
|
|
@protocol OWSTypingIndicators;
|
|
|
|
@interface SSKEnvironment : NSObject
|
|
|
|
- (instancetype)initWithProfileManager:(id<ProfileManagerProtocol>)profileManager
|
|
primaryStorage:(OWSPrimaryStorage *)primaryStorage
|
|
tsAccountManager:(TSAccountManager *)tsAccountManager
|
|
disappearingMessagesJob:(OWSDisappearingMessagesJob *)disappearingMessagesJob
|
|
readReceiptManager:(OWSReadReceiptManager *)readReceiptManager
|
|
outgoingReceiptManager:(OWSOutgoingReceiptManager *)outgoingReceiptManager
|
|
reachabilityManager:(id<SSKReachabilityManager>)reachabilityManager
|
|
typingIndicators:(id<OWSTypingIndicators>)typingIndicators NS_DESIGNATED_INITIALIZER;
|
|
|
|
- (instancetype)init NS_UNAVAILABLE;
|
|
|
|
@property (nonatomic, readonly, class) SSKEnvironment *shared;
|
|
|
|
+ (void)setShared:(SSKEnvironment *)env;
|
|
|
|
#ifdef DEBUG
|
|
// Should only be called by tests.
|
|
+ (void)clearSharedForTests;
|
|
#endif
|
|
|
|
@property (nonatomic, readonly) id<ProfileManagerProtocol> profileManager;
|
|
@property (nonatomic, readonly) OWSPrimaryStorage *primaryStorage;
|
|
@property (nonatomic, readonly) OWSIdentityManager *identityManager;
|
|
@property (nonatomic, readonly) TSAccountManager *tsAccountManager;
|
|
@property (nonatomic, readonly) OWSDisappearingMessagesJob *disappearingMessagesJob;
|
|
@property (nonatomic, readonly) OWSReadReceiptManager *readReceiptManager;
|
|
@property (nonatomic, readonly) OWSOutgoingReceiptManager *outgoingReceiptManager;
|
|
@property (nonatomic, readonly) id<SSKReachabilityManager> reachabilityManager;
|
|
@property (nonatomic, readonly) id<OWSTypingIndicators> typingIndicators;
|
|
|
|
// This property is configured after Environment is created.
|
|
@property (atomic, nullable) id<NotificationsProtocol> notificationsManager;
|
|
|
|
@property (atomic, readonly) YapDatabaseConnection *objectReadWriteConnection;
|
|
@property (atomic, readonly) YapDatabaseConnection *sessionStoreDBConnection;
|
|
@property (atomic, readonly) YapDatabaseConnection *migrationDBConnection;
|
|
@property (atomic, readonly) YapDatabaseConnection *analyticsDBConnection;
|
|
|
|
- (BOOL)isComplete;
|
|
|
|
@end
|
|
|
|
NS_ASSUME_NONNULL_END
|