Hang more singletons on SSKEnv.

pull/1/head
Matthew Chen 7 years ago
parent 4096736124
commit f24ccb3ce6

@ -3,6 +3,9 @@
//
#import "MockEnvironment.h"
#import "OWSBackup.h"
#import "OWSContactsSyncing.h"
#import "OWSWindowManager.h"
#import <SignalMessaging/OWSPreferences.h>
NS_ASSUME_NONNULL_BEGIN

@ -9,9 +9,14 @@
#import <SignalMessaging/OWSDatabaseMigration.h>
#import <SignalMessaging/OWSProfileManager.h>
#import <SignalMessaging/SignalMessaging-Swift.h>
#import <SignalServiceKit/AppReadiness.h>
#import <SignalServiceKit/AppVersion.h>
#import <SignalServiceKit/ContactDiscoveryService.h>
#import <SignalServiceKit/OWS2FAManager.h>
#import <SignalServiceKit/OWSBackgroundTask.h>
#import <SignalServiceKit/OWSBatchMessageProcessor.h>
#import <SignalServiceKit/OWSBlockingManager.h>
#import <SignalServiceKit/OWSDisappearingMessagesJob.h>
#import <SignalServiceKit/OWSIdentityManager.h>
#import <SignalServiceKit/OWSMessageDecrypter.h>
#import <SignalServiceKit/OWSMessageManager.h>
@ -65,6 +70,12 @@ NS_ASSUME_NONNULL_BEGIN
OWSMessageReceiver *messageReceiver = [[OWSMessageReceiver alloc] initWithPrimaryStorage:primaryStorage];
TSSocketManager *socketManager = [[TSSocketManager alloc] init];
TSAccountManager *tsAccountManager = [[TSAccountManager alloc] initWithPrimaryStorage:primaryStorage];
OWS2FAManager *ows2FAManager = [[OWS2FAManager alloc] initWithPrimaryStorage:primaryStorage];
AppVersion *appVersion = [[AppVersion alloc] init];
AppReadiness *appReadiness = [[AppReadiness alloc] initDefault];
OWSDisappearingMessagesJob *disappearingMessagesJob =
[[OWSDisappearingMessagesJob alloc] initWithPrimaryStorage:primaryStorage];
ContactDiscoveryService *contactDiscoveryService = [[ContactDiscoveryService alloc] initDefault];
[Environment setShared:[[Environment alloc] initWithPreferences:preferences]];
@ -82,7 +93,12 @@ NS_ASSUME_NONNULL_BEGIN
batchMessageProcessor:batchMessageProcessor
messageReceiver:messageReceiver
socketManager:socketManager
tsAccountManager:tsAccountManager]];
tsAccountManager:tsAccountManager
ows2FAManager:ows2FAManager
appVersion:appVersion
appReadiness:appReadiness
disappearingMessagesJob:disappearingMessagesJob
contactDiscoveryService:contactDiscoveryService]];
appSpecificSingletonBlock();

@ -45,6 +45,8 @@ NS_ASSUME_NONNULL_BEGIN
- (instancetype)init NS_UNAVAILABLE;
- (instancetype)initDefault NS_DESIGNATED_INITIALIZER;
+ (instancetype)shared;
- (void)testService;

@ -7,6 +7,7 @@
#import "CDSSigningCertificate.h"
#import "OWSError.h"
#import "OWSRequestFactory.h"
#import "SSKEnvironment.h"
#import "TSNetworkManager.h"
#import <Curve25519Kit/Curve25519.h>
#import <HKDFKit/HKDFKit.h>
@ -240,14 +241,10 @@ NS_ASSUME_NONNULL_BEGIN
+ (instancetype)shared
{
static dispatch_once_t onceToken;
static id sharedInstance = nil;
dispatch_once(&onceToken, ^{
sharedInstance = [[ContactDiscoveryService alloc] initDefault];
});
return sharedInstance;
}
OWSAssertDebug(SSKEnvironment.shared.contactDiscoveryService);
return SSKEnvironment.shared.contactDiscoveryService;
}
- (instancetype)initDefault
{

@ -17,6 +17,8 @@ NS_ASSUME_NONNULL_BEGIN
- (instancetype)init NS_UNAVAILABLE;
- (instancetype)initWithPrimaryStorage:(OWSPrimaryStorage *)primaryStorage NS_DESIGNATED_INITIALIZER;
- (void)startAnyExpirationForMessage:(TSMessage *)message
expirationStartedAt:(uint64_t)expirationStartedAt
transaction:(YapDatabaseReadWriteTransaction *_Nonnull)transaction;

@ -12,6 +12,7 @@
#import "OWSDisappearingMessagesConfiguration.h"
#import "OWSDisappearingMessagesFinder.h"
#import "OWSPrimaryStorage.h"
#import "SSKEnvironment.h"
#import "TSIncomingMessage.h"
#import "TSMessage.h"
#import "TSThread.h"
@ -51,12 +52,9 @@ void AssertIsOnDisappearingMessagesQueue()
+ (instancetype)sharedJob
{
static OWSDisappearingMessagesJob *sharedJob = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedJob = [[self alloc] initWithPrimaryStorage:[OWSPrimaryStorage sharedManager]];
});
return sharedJob;
OWSAssertDebug(SSKEnvironment.shared.disappearingMessagesJob);
return SSKEnvironment.shared.disappearingMessagesJob;
}
- (instancetype)initWithPrimaryStorage:(OWSPrimaryStorage *)primaryStorage

@ -4,9 +4,14 @@
NS_ASSUME_NONNULL_BEGIN
@class AppReadiness;
@class AppVersion;
@class ContactDiscoveryService;
@class ContactsUpdater;
@class OWS2FAManager;
@class OWSBatchMessageProcessor;
@class OWSBlockingManager;
@class OWSDisappearingMessagesJob;
@class OWSIdentityManager;
@class OWSMessageDecrypter;
@class OWSMessageManager;
@ -40,7 +45,12 @@ NS_ASSUME_NONNULL_BEGIN
batchMessageProcessor:(OWSBatchMessageProcessor *)batchMessageProcessor
messageReceiver:(OWSMessageReceiver *)messageReceiver
socketManager:(TSSocketManager *)socketManager
tsAccountManager:(TSAccountManager *)tsAccountManager NS_DESIGNATED_INITIALIZER;
tsAccountManager:(TSAccountManager *)tsAccountManager
ows2FAManager:(OWS2FAManager *)ows2FAManager
appVersion:(AppVersion *)appVersion
appReadiness:(AppReadiness *)appReadiness
disappearingMessagesJob:(OWSDisappearingMessagesJob *)disappearingMessagesJob
contactDiscoveryService:(ContactDiscoveryService *)contactDiscoveryService NS_DESIGNATED_INITIALIZER;
- (instancetype)init NS_UNAVAILABLE;
@ -68,6 +78,11 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic, readonly) OWSMessageReceiver *messageReceiver;
@property (nonatomic, readonly) TSSocketManager *socketManager;
@property (nonatomic, readonly) TSAccountManager *tsAccountManager;
@property (nonatomic, readonly) OWS2FAManager *ows2FAManager;
@property (nonatomic, readonly) AppVersion *appVersion;
@property (nonatomic, readonly) AppReadiness *appReadiness;
@property (nonatomic, readonly) OWSDisappearingMessagesJob *disappearingMessagesJob;
@property (nonatomic, readonly) ContactDiscoveryService *contactDiscoveryService;
// This property is configured after Environment is created.
@property (atomic, nullable) id<OWSCallMessageHandler> callMessageHandler;

@ -27,6 +27,11 @@ static SSKEnvironment *sharedSSKEnvironment;
@property (nonatomic) OWSMessageReceiver *messageReceiver;
@property (nonatomic) TSSocketManager *socketManager;
@property (nonatomic) TSAccountManager *tsAccountManager;
@property (nonatomic) OWS2FAManager *ows2FAManager;
@property (nonatomic) AppVersion *appVersion;
@property (nonatomic) AppReadiness *appReadiness;
@property (nonatomic) OWSDisappearingMessagesJob *disappearingMessagesJob;
@property (nonatomic) ContactDiscoveryService *contactDiscoveryService;
@end
@ -53,7 +58,11 @@ static SSKEnvironment *sharedSSKEnvironment;
messageReceiver:(OWSMessageReceiver *)messageReceiver
socketManager:(TSSocketManager *)socketManager
tsAccountManager:(TSAccountManager *)tsAccountManager
{
ows2FAManager:(OWS2FAManager *)ows2FAManager
appVersion:(AppVersion *)appVersion
appReadiness:(AppReadiness *)appReadiness
disappearingMessagesJob:(OWSDisappearingMessagesJob *)disappearingMessagesJob
contactDiscoveryService:(ContactDiscoveryService *)contactDiscoveryService {
self = [super init];
if (!self) {
return self;
@ -74,6 +83,11 @@ static SSKEnvironment *sharedSSKEnvironment;
OWSAssertDebug(messageReceiver);
OWSAssertDebug(socketManager);
OWSAssertDebug(tsAccountManager);
OWSAssertDebug(ows2FAManager);
OWSAssertDebug(appVersion);
OWSAssertDebug(appReadiness);
OWSAssertDebug(disappearingMessagesJob);
OWSAssertDebug(contactDiscoveryService);
_contactsManager = contactsManager;
_messageSender = messageSender;
@ -90,6 +104,11 @@ static SSKEnvironment *sharedSSKEnvironment;
_messageReceiver = messageReceiver;
_socketManager = socketManager;
_tsAccountManager = tsAccountManager;
_ows2FAManager = ows2FAManager;
_appVersion = appVersion;
_appReadiness = appReadiness;
_disappearingMessagesJob = disappearingMessagesJob;
_contactDiscoveryService = contactDiscoveryService;
return self;
}

@ -3,8 +3,13 @@
//
#import "MockSSKEnvironment.h"
#import "AppReadiness.h"
#import "AppVersion.h"
#import "ContactDiscoveryService.h"
#import "OWS2FAManager.h"
#import "OWSBatchMessageProcessor.h"
#import "OWSBlockingManager.h"
#import "OWSDisappearingMessagesJob.h"
#import "OWSFakeCallMessageHandler.h"
#import "OWSFakeContactsManager.h"
#import "OWSFakeContactsUpdater.h"
@ -60,6 +65,12 @@ NS_ASSUME_NONNULL_BEGIN
OWSMessageReceiver *messageReceiver = [[OWSMessageReceiver alloc] initWithPrimaryStorage:primaryStorage];
TSSocketManager *socketManager = [[TSSocketManager alloc] init];
TSAccountManager *tsAccountManager = [[TSAccountManager alloc] initWithPrimaryStorage:primaryStorage];
OWS2FAManager *ows2FAManager = [[OWS2FAManager alloc] initWithPrimaryStorage:primaryStorage];
AppVersion *appVersion = [[AppVersion alloc] init];
AppReadiness *appReadiness = [[AppReadiness alloc] initDefault];
OWSDisappearingMessagesJob *disappearingMessagesJob =
[[OWSDisappearingMessagesJob alloc] initWithPrimaryStorage:primaryStorage];
ContactDiscoveryService *contactDiscoveryService = [[ContactDiscoveryService alloc] initDefault];
self = [super initWithContactsManager:contactsManager
messageSender:messageSender
@ -75,7 +86,12 @@ NS_ASSUME_NONNULL_BEGIN
batchMessageProcessor:batchMessageProcessor
messageReceiver:messageReceiver
socketManager:socketManager
tsAccountManager:tsAccountManager];
tsAccountManager:tsAccountManager
ows2FAManager:ows2FAManager
appVersion:appVersion
appReadiness:appReadiness
disappearingMessagesJob:disappearingMessagesJob
contactDiscoveryService:contactDiscoveryService];
if (!self) {
return nil;
}

@ -10,6 +10,8 @@ typedef void (^AppReadyBlock)(void);
- (instancetype)init NS_UNAVAILABLE;
- (instancetype)initDefault NS_DESIGNATED_INITIALIZER;
// This method can be called on any thread.
+ (BOOL)isAppReady;

@ -3,6 +3,7 @@
//
#import "AppReadiness.h"
#import "SSKEnvironment.h"
#import <SignalCoreKit/Threading.h>
NS_ASSUME_NONNULL_BEGIN
@ -21,12 +22,9 @@ NS_ASSUME_NONNULL_BEGIN
+ (instancetype)sharedManager
{
static AppReadiness *sharedMyManager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedMyManager = [[self alloc] initDefault];
});
return sharedMyManager;
OWSAssertDebug(SSKEnvironment.shared.appReadiness);
return SSKEnvironment.shared.appReadiness;
}
- (instancetype)initDefault

@ -14,8 +14,6 @@
@property (atomic, readonly) NSString *lastCompletedLaunchMainAppVersion;
@property (atomic, readonly) NSString *lastCompletedLaunchSAEAppVersion;
- (instancetype)init NS_UNAVAILABLE;
+ (instancetype)sharedInstance;
- (void)mainAppLaunchDidComplete;

@ -3,7 +3,8 @@
//
#import "AppVersion.h"
#import <SignalServiceKit/NSUserDefaults+OWS.h>
#import "NSUserDefaults+OWS.h"
#import "SSKEnvironment.h"
NSString *const kNSUserDefaults_FirstAppVersion = @"kNSUserDefaults_FirstAppVersion";
NSString *const kNSUserDefaults_LastAppVersion = @"kNSUserDefaults_LastVersion";
@ -31,13 +32,9 @@ NSString *const kNSUserDefaults_LastCompletedLaunchAppVersion_SAE
+ (instancetype)sharedInstance
{
static AppVersion *instance = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
instance = [AppVersion new];
[instance configure];
});
return instance;
OWSAssertDebug(SSKEnvironment.shared.appVersion);
return SSKEnvironment.shared.appVersion;
}
- (void)configure {

@ -9,11 +9,15 @@ extern NSString *const NSNotificationName_2FAStateDidChange;
typedef void (^OWS2FASuccess)(void);
typedef void (^OWS2FAFailure)(NSError *error);
@class OWSPrimaryStorage;
// This class can be safely accessed and used from any thread.
@interface OWS2FAManager : NSObject
- (instancetype)init NS_UNAVAILABLE;
- (instancetype)initWithPrimaryStorage:(OWSPrimaryStorage *)primaryStorage NS_DESIGNATED_INITIALIZER;
+ (instancetype)sharedManager;
@property (nullable, nonatomic, readonly) NSString *pinCode;

@ -6,6 +6,7 @@
#import "NSNotificationCenter+OWS.h"
#import "OWSPrimaryStorage.h"
#import "OWSRequestFactory.h"
#import "SSKEnvironment.h"
#import "TSNetworkManager.h"
#import "YapDatabaseConnection+OWS.h"
@ -24,7 +25,6 @@ const NSUInteger kDaySecs = kHourSecs * 24;
@interface OWS2FAManager ()
@property (nonatomic, readonly) YapDatabaseConnection *dbConnection;
@property (nonatomic, readonly) TSNetworkManager *networkManager;
@end
@ -34,24 +34,12 @@ const NSUInteger kDaySecs = kHourSecs * 24;
+ (instancetype)sharedManager
{
static OWS2FAManager *sharedMyManager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedMyManager = [[self alloc] initDefault];
});
return sharedMyManager;
}
- (instancetype)initDefault
{
OWSPrimaryStorage *primaryStorage = [OWSPrimaryStorage sharedManager];
TSNetworkManager *networkManager = [TSNetworkManager sharedManager];
OWSAssertDebug(SSKEnvironment.shared.ows2FAManager);
return [self initWithPrimaryStorage:primaryStorage networkManager:networkManager];
return SSKEnvironment.shared.ows2FAManager;
}
- (instancetype)initWithPrimaryStorage:(OWSPrimaryStorage *)primaryStorage
networkManager:(TSNetworkManager *)networkManager
{
self = [super init];
@ -60,16 +48,24 @@ const NSUInteger kDaySecs = kHourSecs * 24;
}
OWSAssertDebug(primaryStorage);
OWSAssertDebug(networkManager);
_dbConnection = primaryStorage.newDatabaseConnection;
_networkManager = networkManager;
OWSSingletonAssert();
return self;
}
#pragma mark - Dependencies
- (TSNetworkManager *)networkManager {
OWSAssertDebug(SSKEnvironment.shared.networkManager);
return SSKEnvironment.shared.networkManager;
}
#pragma mark -
- (nullable NSString *)pinCode
{
return [self.dbConnection objectForKey:kOWS2FAManager_PinCode inCollection:kOWS2FAManager_Collection];

Loading…
Cancel
Save