From 7f23dfa258230051a765a7f64c39e2e114b3ec62 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Tue, 24 Apr 2018 13:15:11 -0400 Subject: [PATCH] Respond to CR. --- Signal/src/AppDelegate.m | 5 ++-- SignalMessaging/environment/AppSetup.h | 6 ++--- SignalMessaging/environment/AppSetup.m | 23 ++++++++----------- .../environment/VersionMigrations.m | 6 +++-- SignalServiceKit/src/Storage/OWSStorage.h | 2 +- SignalServiceKit/src/Storage/OWSStorage.m | 2 +- .../ShareViewController.swift | 3 ++- 7 files changed, 24 insertions(+), 23 deletions(-) diff --git a/Signal/src/AppDelegate.m b/Signal/src/AppDelegate.m index 9be9298ea..25831337f 100644 --- a/Signal/src/AppDelegate.m +++ b/Signal/src/AppDelegate.m @@ -6,8 +6,8 @@ #import "AppStoreRating.h" #import "AppUpdateNag.h" #import "CodeVerificationViewController.h" -#import "HomeViewController.h" #import "DebugLogger.h" +#import "HomeViewController.h" #import "MainAppContext.h" #import "NotificationsManager.h" #import "OWS2FASettingsViewController.h" @@ -156,7 +156,7 @@ static NSString *const kURLHostVerifyPrefix = @"verify"; // This block will be cleared in storageIsReady. [DeviceSleepManager.sharedInstance addBlockWithBlockObject:self]; - [AppSetup setupEnvironment:^{ + [AppSetup setupEnvironmentWithCallMessageHandlerBlock:^{ return SignalApp.sharedApp.callMessageHandler; } notificationsProtocolBlock:^{ @@ -1086,6 +1086,7 @@ static NSString *const kURLHostVerifyPrefix = @"verify"; [AppVersion.instance mainAppLaunchDidComplete]; [Environment.current.contactsManager loadSignalAccountsFromCache]; + [Environment.current.contactsManager startObserving]; // If there were any messages in our local queue which we hadn't yet processed. [[OWSMessageReceiver sharedInstance] handleAnyUnprocessedEnvelopesAsync]; diff --git a/SignalMessaging/environment/AppSetup.h b/SignalMessaging/environment/AppSetup.h index 4d71c4694..cc8d57eca 100644 --- a/SignalMessaging/environment/AppSetup.h +++ b/SignalMessaging/environment/AppSetup.h @@ -13,9 +13,9 @@ typedef id _Nonnull (^NotificationsManagerBlock)(void); // This is _NOT_ a singleton and will be instantiated each time that the SAE is used. @interface AppSetup : NSObject -+ (void)setupEnvironment:(CallMessageHandlerBlock)callMessageHandlerBlock - notificationsProtocolBlock:(NotificationsManagerBlock)notificationsManagerBlock - migrationCompletion:(dispatch_block_t)migrationCompletion; ++ (void)setupEnvironmentWithCallMessageHandlerBlock:(CallMessageHandlerBlock)callMessageHandlerBlock + notificationsProtocolBlock:(NotificationsManagerBlock)notificationsManagerBlock + migrationCompletion:(dispatch_block_t)migrationCompletion; @end diff --git a/SignalMessaging/environment/AppSetup.m b/SignalMessaging/environment/AppSetup.m index c55bc0761..bf9f37261 100644 --- a/SignalMessaging/environment/AppSetup.m +++ b/SignalMessaging/environment/AppSetup.m @@ -18,9 +18,9 @@ NS_ASSUME_NONNULL_BEGIN @implementation AppSetup -+ (void)setupEnvironment:(CallMessageHandlerBlock)callMessageHandlerBlock - notificationsProtocolBlock:(NotificationsManagerBlock)notificationsManagerBlock - migrationCompletion:(dispatch_block_t)migrationCompletion ++ (void)setupEnvironmentWithCallMessageHandlerBlock:(CallMessageHandlerBlock)callMessageHandlerBlock + notificationsProtocolBlock:(NotificationsManagerBlock)notificationsManagerBlock + migrationCompletion:(dispatch_block_t)migrationCompletion { OWSAssert(callMessageHandlerBlock); OWSAssert(notificationsManagerBlock); @@ -51,19 +51,16 @@ NS_ASSUME_NONNULL_BEGIN [NSKeyedUnarchiver setClass:[OWSUserProfile class] forClassName:[OWSUserProfile collection]]; [NSKeyedUnarchiver setClass:[OWSDatabaseMigration class] forClassName:[OWSDatabaseMigration collection]]; - [OWSStorage setupStorageWithMigrationBlock:^() { - dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ - // Don't start database migrations until storage is ready. - [VersionMigrations performUpdateCheckWithCompletion:^() { - OWSAssertIsOnMainThread(); + [OWSStorage registerExtensionsWithMigrationBlock:^() { + // Don't start database migrations until storage is ready. + [VersionMigrations performUpdateCheckWithCompletion:^() { + OWSAssertIsOnMainThread(); - migrationCompletion(); + migrationCompletion(); - backgroundTask = nil; - }]; - }); + backgroundTask = nil; + }]; }]; - [[Environment current].contactsManager startObserving]; }); } diff --git a/SignalMessaging/environment/VersionMigrations.m b/SignalMessaging/environment/VersionMigrations.m index 84194d623..b9312489b 100644 --- a/SignalMessaging/environment/VersionMigrations.m +++ b/SignalMessaging/environment/VersionMigrations.m @@ -88,8 +88,10 @@ NS_ASSUME_NONNULL_BEGIN [self clearBloomFilterCache]; } - [[[OWSDatabaseMigrationRunner alloc] initWithPrimaryStorage:[OWSPrimaryStorage sharedManager]] - runAllOutstandingWithCompletion:completion]; + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + [[[OWSDatabaseMigrationRunner alloc] initWithPrimaryStorage:[OWSPrimaryStorage sharedManager]] + runAllOutstandingWithCompletion:completion]; + }); } + (BOOL)isVersion:(NSString *)thisVersionString diff --git a/SignalServiceKit/src/Storage/OWSStorage.h b/SignalServiceKit/src/Storage/OWSStorage.h index b4226f876..6fafcc657 100644 --- a/SignalServiceKit/src/Storage/OWSStorage.h +++ b/SignalServiceKit/src/Storage/OWSStorage.h @@ -58,7 +58,7 @@ typedef void (^OWSStorageMigrationBlock)(void); // This object can be used to filter database notifications. @property (nonatomic, readonly, nullable) id dbNotificationObject; -+ (void)setupStorageWithMigrationBlock:(OWSStorageMigrationBlock)migrationBlock; ++ (void)registerExtensionsWithMigrationBlock:(OWSStorageMigrationBlock)migrationBlock; + (void)resetAllStorage; diff --git a/SignalServiceKit/src/Storage/OWSStorage.m b/SignalServiceKit/src/Storage/OWSStorage.m index e7eead41b..c56d1c06b 100644 --- a/SignalServiceKit/src/Storage/OWSStorage.m +++ b/SignalServiceKit/src/Storage/OWSStorage.m @@ -325,7 +325,7 @@ typedef NSData *_Nullable (^CreateDatabaseMetadataBlock)(void); OWS_ABSTRACT_METHOD(); } -+ (void)setupStorageWithMigrationBlock:(OWSStorageMigrationBlock)migrationBlock ++ (void)registerExtensionsWithMigrationBlock:(OWSStorageMigrationBlock)migrationBlock { OWSAssert(migrationBlock); diff --git a/SignalShareExtension/ShareViewController.swift b/SignalShareExtension/ShareViewController.swift index a9fb08472..2c6edbd9d 100644 --- a/SignalShareExtension/ShareViewController.swift +++ b/SignalShareExtension/ShareViewController.swift @@ -88,7 +88,7 @@ public class ShareViewController: UIViewController, ShareViewDelegate, SAEFailed }.retainUntilComplete() // We shouldn't set up our environment until after we've consulted isReadyForAppExtensions. - AppSetup.setupEnvironment({ + AppSetup.setupEnvironment(callMessageHandlerBlock: { return NoopCallMessageHandler() }, notificationsProtocolBlock: { @@ -268,6 +268,7 @@ public class ShareViewController: UIViewController, ShareViewDelegate, SAEFailed AppVersion.instance().saeLaunchDidComplete() Environment.current().contactsManager.loadSignalAccountsFromCache() + Environment.current().contactsManager.startObserving() ensureRootViewController()