From 8110e0c76535d08ffdf2bec9c958266e658504ff Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Mon, 26 Nov 2018 10:24:36 -0500 Subject: [PATCH] Clean up usage of TSAccountManager. --- Signal/src/Models/AccountManager.swift | 2 +- .../CodeVerificationViewController.m | 15 +++++++++++-- .../Registration/RegistrationViewController.m | 19 ++++++++++++---- Signal/src/util/Backup/OWSBackup.m | 9 +++++++- Signal/src/util/Pastelog.m | 11 ++++++++-- Signal/src/util/RegistrationUtils.m | 17 +++++++++++--- SignalMessaging/contacts/OWSSyncManager.m | 2 +- .../environment/VersionMigrations.m | 15 ++++++++++--- .../migrations/OWS103EnableVideoCalling.m | 14 +++++++++++- .../OWS106EnsureProfileComplete.swift | 10 ++++++++- SignalMessaging/profiles/OWSUserProfile.m | 9 +++++++- .../src/Account/TSAccountManager.h | 13 +++++++---- .../src/Account/TSAccountManager.m | 22 +++++-------------- .../src/Account/TSPreKeyManager.m | 12 +++++++++- .../src/Messages/OWSMessageDecrypter.m | 14 +++++++----- .../src/Messages/OWSMessageManager.m | 2 +- .../src/Messages/UD/OWSUDManager.swift | 2 +- .../src/Network/WebSockets/OWSWebSocket.m | 2 +- .../ShareViewController.swift | 20 ++++++++++++----- 19 files changed, 154 insertions(+), 56 deletions(-) diff --git a/Signal/src/Models/AccountManager.swift b/Signal/src/Models/AccountManager.swift index eda61a06c..de6714cab 100644 --- a/Signal/src/Models/AccountManager.swift +++ b/Signal/src/Models/AccountManager.swift @@ -25,7 +25,7 @@ public class AccountManager: NSObject { SwiftSingletons.register(self) } - // MARK: - Singletons + // MARK: - Dependencies private var networkManager: TSNetworkManager { return SSKEnvironment.shared.networkManager diff --git a/Signal/src/ViewControllers/Registration/CodeVerificationViewController.m b/Signal/src/ViewControllers/Registration/CodeVerificationViewController.m index 35c9aa5e5..ff3810d5d 100644 --- a/Signal/src/ViewControllers/Registration/CodeVerificationViewController.m +++ b/Signal/src/ViewControllers/Registration/CodeVerificationViewController.m @@ -38,6 +38,17 @@ NS_ASSUME_NONNULL_BEGIN @implementation CodeVerificationViewController +#pragma mark - Dependencies + +- (TSAccountManager *)tsAccountManager +{ + OWSAssertDebug(SSKEnvironment.shared.tsAccountManager); + + return SSKEnvironment.shared.tsAccountManager; +} + +#pragma mark - + - (nullable instancetype)initWithCoder:(NSCoder *)aDecoder { self = [super initWithCoder:aDecoder]; @@ -352,7 +363,7 @@ NS_ASSUME_NONNULL_BEGIN [_requestCodeAgainSpinner startAnimating]; __weak CodeVerificationViewController *weakSelf = self; - [TSAccountManager + [self.tsAccountManager rerequestSMSWithSuccess:^{ OWSLogInfo(@"Successfully requested SMS code"); [weakSelf enableServerActions:YES]; @@ -375,7 +386,7 @@ NS_ASSUME_NONNULL_BEGIN [_requestCallSpinner startAnimating]; __weak CodeVerificationViewController *weakSelf = self; - [TSAccountManager + [self.tsAccountManager rerequestVoiceWithSuccess:^{ OWSLogInfo(@"Successfully requested voice code"); diff --git a/Signal/src/ViewControllers/Registration/RegistrationViewController.m b/Signal/src/ViewControllers/Registration/RegistrationViewController.m index fcab414aa..a10e0117d 100644 --- a/Signal/src/ViewControllers/Registration/RegistrationViewController.m +++ b/Signal/src/ViewControllers/Registration/RegistrationViewController.m @@ -43,6 +43,17 @@ NSString *const kKeychainKey_LastRegisteredPhoneNumber = @"kKeychainKey_LastRegi @implementation RegistrationViewController +#pragma mark - Dependencies + +- (TSAccountManager *)tsAccountManager +{ + OWSAssertDebug(SSKEnvironment.shared.tsAccountManager); + + return SSKEnvironment.shared.tsAccountManager; +} + +#pragma mark - + - (void)loadView { [super loadView]; @@ -287,10 +298,10 @@ NSString *const kKeychainKey_LastRegisteredPhoneNumber = @"kKeychainKey_LastRegi [self.spinnerView stopAnimating]; [self.phoneNumberTextField becomeFirstResponder]; - if ([TSAccountManager sharedInstance].isReregistering) { + if (self.tsAccountManager.isReregistering) { // If re-registering, pre-populate the country (country code, calling code, country name) // and phone number state. - NSString *_Nullable phoneNumberE164 = [TSAccountManager sharedInstance].reregisterationPhoneNumber; + NSString *_Nullable phoneNumberE164 = self.tsAccountManager.reregisterationPhoneNumber; if (!phoneNumberE164) { OWSFailDebug(@"Could not resume re-registration; missing phone number."); } else if ([self tryToApplyPhoneNumberE164:phoneNumberE164]) { @@ -441,7 +452,7 @@ NSString *const kKeychainKey_LastRegisteredPhoneNumber = @"kKeychainKey_LastRegi [self.phoneNumberTextField resignFirstResponder]; __weak RegistrationViewController *weakSelf = self; - [TSAccountManager registerWithPhoneNumber:parsedPhoneNumber + [self.tsAccountManager registerWithPhoneNumber:parsedPhoneNumber success:^{ OWSProdInfo([OWSAnalyticsEvents registrationRegisteredPhoneNumber]); @@ -472,7 +483,7 @@ NSString *const kKeychainKey_LastRegisteredPhoneNumber = @"kKeychainKey_LastRegi - (void)countryCodeRowWasTapped:(UIGestureRecognizer *)sender { - if (TSAccountManager.sharedInstance.isReregistering) { + if (self.tsAccountManager.isReregistering) { // Don't let user edit their phone number while re-registering. return; } diff --git a/Signal/src/util/Backup/OWSBackup.m b/Signal/src/util/Backup/OWSBackup.m index e53407a34..f60bb1b9e 100644 --- a/Signal/src/util/Backup/OWSBackup.m +++ b/Signal/src/util/Backup/OWSBackup.m @@ -148,6 +148,13 @@ NSString *NSStringForBackupImportState(OWSBackupState state) return SSKEnvironment.shared.primaryStorage; } +- (TSAccountManager *)tsAccountManager +{ + OWSAssertDebug(SSKEnvironment.shared.tsAccountManager); + + return SSKEnvironment.shared.tsAccountManager; +} + #pragma mark - Backup Export - (void)tryToExportBackup @@ -270,7 +277,7 @@ NSString *NSStringForBackupImportState(OWSBackupState state) // Don't start backups when app is in the background. return NO; } - if (![TSAccountManager isRegistered]) { + if (![self.tsAccountManager isRegistered]) { return NO; } return YES; diff --git a/Signal/src/util/Pastelog.m b/Signal/src/util/Pastelog.m index d67fed6e3..a70559829 100644 --- a/Signal/src/util/Pastelog.m +++ b/Signal/src/util/Pastelog.m @@ -290,6 +290,13 @@ typedef void (^DebugLogUploadFailure)(DebugLogUploader *uploader, NSError *error return SSKEnvironment.shared.primaryStorage.dbReadWriteConnection; } +- (TSAccountManager *)tsAccountManager +{ + OWSAssertDebug(SSKEnvironment.shared.tsAccountManager); + + return SSKEnvironment.shared.tsAccountManager; +} + #pragma mark - + (void)submitLogs @@ -570,7 +577,7 @@ typedef void (^DebugLogUploadFailure)(DebugLogUploader *uploader, NSError *error - (void)sendToSelf:(NSURL *)url { - if (![TSAccountManager isRegistered]) { + if (![self.tsAccountManager isRegistered]) { return; } NSString *recipientId = [TSAccountManager localNumber]; @@ -594,7 +601,7 @@ typedef void (^DebugLogUploadFailure)(DebugLogUploader *uploader, NSError *error - (void)sendToMostRecentThread:(NSURL *)url { - if (![TSAccountManager isRegistered]) { + if (![self.tsAccountManager isRegistered]) { return; } diff --git a/Signal/src/util/RegistrationUtils.m b/Signal/src/util/RegistrationUtils.m index de2feea72..2789b6108 100644 --- a/Signal/src/util/RegistrationUtils.m +++ b/Signal/src/util/RegistrationUtils.m @@ -14,6 +14,17 @@ NS_ASSUME_NONNULL_BEGIN @implementation RegistrationUtils +#pragma mark - Dependencies + ++ (TSAccountManager *)tsAccountManager +{ + OWSAssertDebug(SSKEnvironment.shared.tsAccountManager); + + return SSKEnvironment.shared.tsAccountManager; +} + +#pragma mark - + + (void)showReregistrationUIFromViewController:(UIViewController *)fromViewController { UIAlertController *actionSheetController = @@ -37,7 +48,7 @@ NS_ASSUME_NONNULL_BEGIN { OWSLogInfo(@"reregisterWithSamePhoneNumber."); - if (![[TSAccountManager sharedInstance] resetForReregistration]) { + if (![self.tsAccountManager resetForReregistration]) { OWSFailDebug(@"could not reset for re-registration."); return; } @@ -48,8 +59,8 @@ NS_ASSUME_NONNULL_BEGIN presentFromViewController:fromViewController canCancel:NO backgroundBlock:^(ModalActivityIndicatorViewController *modalActivityIndicator) { - [TSAccountManager - registerWithPhoneNumber:[TSAccountManager sharedInstance].reregisterationPhoneNumber + [self.tsAccountManager + registerWithPhoneNumber:self.tsAccountManager.reregisterationPhoneNumber success:^{ OWSLogInfo(@"re-registering: send verification code succeeded."); diff --git a/SignalMessaging/contacts/OWSSyncManager.m b/SignalMessaging/contacts/OWSSyncManager.m index 6d05c22cf..c94b5bdec 100644 --- a/SignalMessaging/contacts/OWSSyncManager.m +++ b/SignalMessaging/contacts/OWSSyncManager.m @@ -215,7 +215,7 @@ NSString *const kSyncManagerLastContactSyncKey = @"kTSStorageManagerOWSSyncManag - (void)sendConfigurationSyncMessage { [AppReadiness runNowOrWhenAppDidBecomeReady:^{ - if (!TSAccountManager.isRegistered) { + if (!self.tsAccountManager.isRegistered) { return; } diff --git a/SignalMessaging/environment/VersionMigrations.m b/SignalMessaging/environment/VersionMigrations.m index 47f117922..acecb8177 100644 --- a/SignalMessaging/environment/VersionMigrations.m +++ b/SignalMessaging/environment/VersionMigrations.m @@ -30,7 +30,16 @@ NS_ASSUME_NONNULL_BEGIN @implementation VersionMigrations -#pragma mark Utility methods +#pragma mark - Dependencies + ++ (TSAccountManager *)tsAccountManager +{ + OWSAssertDebug(SSKEnvironment.shared.tsAccountManager); + + return SSKEnvironment.shared.tsAccountManager; +} + +#pragma mark - Utility methods + (void)performUpdateCheckWithCompletion:(VersionMigrationCompletion)completion { @@ -76,12 +85,12 @@ NS_ASSUME_NONNULL_BEGIN [CurrentAppContext().frontmostViewController presentViewController:alertController animated:YES completion:nil]; } - if ([self isVersion:previousVersion atLeast:@"2.0.0" andLessThan:@"2.1.70"] && [TSAccountManager isRegistered]) { + if ([self isVersion:previousVersion atLeast:@"2.0.0" andLessThan:@"2.1.70"] && [self.tsAccountManager isRegistered]) { [self clearVideoCache]; [self blockingAttributesUpdate]; } - if ([self isVersion:previousVersion atLeast:@"2.0.0" andLessThan:@"2.3.0"] && [TSAccountManager isRegistered]) { + if ([self isVersion:previousVersion atLeast:@"2.0.0" andLessThan:@"2.3.0"] && [self.tsAccountManager isRegistered]) { [self clearBloomFilterCache]; } diff --git a/SignalMessaging/environment/migrations/OWS103EnableVideoCalling.m b/SignalMessaging/environment/migrations/OWS103EnableVideoCalling.m index fcd19cefb..3b7451e7f 100644 --- a/SignalMessaging/environment/migrations/OWS103EnableVideoCalling.m +++ b/SignalMessaging/environment/migrations/OWS103EnableVideoCalling.m @@ -4,6 +4,7 @@ #import "OWS103EnableVideoCalling.h" #import +#import #import #import @@ -12,6 +13,17 @@ static NSString *const OWS103EnableVideoCallingMigrationId = @"103"; @implementation OWS103EnableVideoCalling +#pragma mark - Dependencies + +- (TSAccountManager *)tsAccountManager +{ + OWSAssertDebug(SSKEnvironment.shared.tsAccountManager); + + return SSKEnvironment.shared.tsAccountManager; +} + +#pragma mark - + + (NSString *)migrationId { return OWS103EnableVideoCallingMigrationId; @@ -23,7 +35,7 @@ static NSString *const OWS103EnableVideoCallingMigrationId = @"103"; OWSAssertDebug(completion); OWSLogWarn(@"running migration..."); - if ([TSAccountManager isRegistered]) { + if ([self.tsAccountManager isRegistered]) { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ TSRequest *request = [OWSRequestFactory updateAttributesRequest]; [[TSNetworkManager sharedManager] makeRequest:request diff --git a/SignalMessaging/environment/migrations/OWS106EnsureProfileComplete.swift b/SignalMessaging/environment/migrations/OWS106EnsureProfileComplete.swift index 76327589e..686137426 100644 --- a/SignalMessaging/environment/migrations/OWS106EnsureProfileComplete.swift +++ b/SignalMessaging/environment/migrations/OWS106EnsureProfileComplete.swift @@ -44,6 +44,14 @@ public class OWS106EnsureProfileComplete: OWSDatabaseMigration { */ private class CompleteRegistrationFixerJob: NSObject { + // MARK: - Dependencies + + private var tsAccountManager: TSAccountManager { + return TSAccountManager.sharedInstance() + } + + // MARK: - + // Duration between retries if update fails. let kRetryInterval: TimeInterval = 5 @@ -54,7 +62,7 @@ public class OWS106EnsureProfileComplete: OWSDatabaseMigration { } func start() { - guard TSAccountManager.isRegistered() else { + guard tsAccountManager.isRegistered() else { self.completionHandler(true) return } diff --git a/SignalMessaging/profiles/OWSUserProfile.m b/SignalMessaging/profiles/OWSUserProfile.m index 0a2ff90af..3a798481d 100644 --- a/SignalMessaging/profiles/OWSUserProfile.m +++ b/SignalMessaging/profiles/OWSUserProfile.m @@ -105,6 +105,13 @@ NSString *const kLocalProfileUniqueId = @"kLocalProfileUniqueId"; return SSKEnvironment.shared.syncManager; } +- (TSAccountManager *)tsAccountManager +{ + OWSAssertDebug(SSKEnvironment.shared.tsAccountManager); + + return SSKEnvironment.shared.tsAccountManager; +} + #pragma mark - - (nullable NSString *)avatarUrlPath @@ -219,7 +226,7 @@ NSString *const kLocalProfileUniqueId = @"kLocalProfileUniqueId"; // We populate an initial (empty) profile on launch of a new install, but until // we have a registered account, syncing will fail (and there could not be any // linked device to sync to at this point anyway). - if ([TSAccountManager isRegistered] && CurrentAppContext().isMainApp) { + if ([self.tsAccountManager isRegistered] && CurrentAppContext().isMainApp) { [self.syncManager syncLocalContact]; } diff --git a/SignalServiceKit/src/Account/TSAccountManager.h b/SignalServiceKit/src/Account/TSAccountManager.h index f2c3dd821..2393e65a9 100644 --- a/SignalServiceKit/src/Account/TSAccountManager.h +++ b/SignalServiceKit/src/Account/TSAccountManager.h @@ -17,6 +17,12 @@ extern NSString *const kNSNotificationName_LocalNumberDidChange; @class TSNetworkManager; @class YapDatabaseReadWriteTransaction; +typedef NS_ENUM(NSUInteger, OWSRegistrationState) { + OWSRegistrationState_Unregistered, + OWSRegistrationState_PendingBackupRestore, + OWSRegistrationState_Registered, +}; + @interface TSAccountManager : NSObject // This property is exposed for testing purposes only. @@ -37,7 +43,6 @@ extern NSString *const kNSNotificationName_LocalNumberDidChange; * * @return registered or not */ -+ (BOOL)isRegistered; - (BOOL)isRegistered; /** @@ -76,14 +81,14 @@ extern NSString *const kNSNotificationName_LocalNumberDidChange; #pragma mark - Register with phone number -+ (void)registerWithPhoneNumber:(NSString *)phoneNumber +- (void)registerWithPhoneNumber:(NSString *)phoneNumber success:(void (^)(void))successBlock failure:(void (^)(NSError *error))failureBlock smsVerification:(BOOL)isSMS; -+ (void)rerequestSMSWithSuccess:(void (^)(void))successBlock failure:(void (^)(NSError *error))failureBlock; +- (void)rerequestSMSWithSuccess:(void (^)(void))successBlock failure:(void (^)(NSError *error))failureBlock; -+ (void)rerequestVoiceWithSuccess:(void (^)(void))successBlock failure:(void (^)(NSError *error))failureBlock; +- (void)rerequestVoiceWithSuccess:(void (^)(void))successBlock failure:(void (^)(NSError *error))failureBlock; - (void)verifyAccountWithCode:(NSString *)verificationCode pin:(nullable NSString *)pin diff --git a/SignalServiceKit/src/Account/TSAccountManager.m b/SignalServiceKit/src/Account/TSAccountManager.m index ef5d9da2a..d1da413e4 100644 --- a/SignalServiceKit/src/Account/TSAccountManager.m +++ b/SignalServiceKit/src/Account/TSAccountManager.m @@ -135,11 +135,6 @@ NSString *const TSAccountManager_NeedsAccountAttributesUpdateKey = @"TSAccountMa userInfo:nil]; } -+ (BOOL)isRegistered -{ - return [[self sharedInstance] isRegistered]; -} - - (BOOL)isRegistered { @synchronized (self) { @@ -294,7 +289,7 @@ NSString *const TSAccountManager_NeedsAccountAttributesUpdateKey = @"TSAccountMa }]; } -+ (void)registerWithPhoneNumber:(NSString *)phoneNumber +- (void)registerWithPhoneNumber:(NSString *)phoneNumber success:(void (^)(void))successBlock failure:(void (^)(NSError *error))failureBlock smsVerification:(BOOL)isSMS @@ -308,8 +303,7 @@ NSString *const TSAccountManager_NeedsAccountAttributesUpdateKey = @"TSAccountMa // The country code of TSAccountManager.phoneNumberAwaitingVerification is used to // determine whether or not to use domain fronting, so it needs to be set _before_ // we make our verification code request. - TSAccountManager *manager = [self sharedInstance]; - manager.phoneNumberAwaitingVerification = phoneNumber; + self.phoneNumberAwaitingVerification = phoneNumber; TSRequest *request = [OWSRequestFactory requestVerificationCodeRequestWithPhoneNumber:phoneNumber @@ -331,21 +325,17 @@ NSString *const TSAccountManager_NeedsAccountAttributesUpdateKey = @"TSAccountMa }]; } -+ (void)rerequestSMSWithSuccess:(void (^)(void))successBlock failure:(void (^)(NSError *error))failureBlock +- (void)rerequestSMSWithSuccess:(void (^)(void))successBlock failure:(void (^)(NSError *error))failureBlock { - TSAccountManager *manager = [self sharedInstance]; - NSString *number = manager.phoneNumberAwaitingVerification; - + NSString *number = self.phoneNumberAwaitingVerification; OWSAssertDebug(number); [self registerWithPhoneNumber:number success:successBlock failure:failureBlock smsVerification:YES]; } -+ (void)rerequestVoiceWithSuccess:(void (^)(void))successBlock failure:(void (^)(NSError *error))failureBlock +- (void)rerequestVoiceWithSuccess:(void (^)(void))successBlock failure:(void (^)(NSError *error))failureBlock { - TSAccountManager *manager = [self sharedInstance]; - NSString *number = manager.phoneNumberAwaitingVerification; - + NSString *number = self.phoneNumberAwaitingVerification; OWSAssertDebug(number); [self registerWithPhoneNumber:number success:successBlock failure:failureBlock smsVerification:NO]; diff --git a/SignalServiceKit/src/Account/TSPreKeyManager.m b/SignalServiceKit/src/Account/TSPreKeyManager.m index e24f57936..c90a4b6af 100644 --- a/SignalServiceKit/src/Account/TSPreKeyManager.m +++ b/SignalServiceKit/src/Account/TSPreKeyManager.m @@ -7,6 +7,7 @@ #import "NSURLSessionDataTask+StatusCode.h" #import "OWSIdentityManager.h" #import "OWSPrimaryStorage+SignedPreKeyStore.h" +#import "SSKEnvironment.h" #import "TSNetworkManager.h" #import "TSStorageHeaders.h" #import @@ -36,6 +37,15 @@ static const NSUInteger kMaxPrekeyUpdateFailureCount = 5; @implementation TSPreKeyManager +#pragma mark - Dependencies + ++ (TSAccountManager *)tsAccountManager +{ + OWSAssertDebug(SSKEnvironment.shared.tsAccountManager); + + return SSKEnvironment.shared.tsAccountManager; +} + #pragma mark - State Tracking + (BOOL)isAppLockedDueToPreKeyUpdateFailures @@ -102,7 +112,7 @@ static const NSUInteger kMaxPrekeyUpdateFailureCount = 5; } OWSAssertDebug(CurrentAppContext().isMainAppAndActive); - if (!TSAccountManager.isRegistered) { + if (!self.tsAccountManager.isRegistered) { return; } diff --git a/SignalServiceKit/src/Messages/OWSMessageDecrypter.m b/SignalServiceKit/src/Messages/OWSMessageDecrypter.m index ab75808e4..d3c6d69da 100644 --- a/SignalServiceKit/src/Messages/OWSMessageDecrypter.m +++ b/SignalServiceKit/src/Messages/OWSMessageDecrypter.m @@ -131,6 +131,13 @@ NSError *EnsureDecryptError(NSError *_Nullable error, NSString *fallbackErrorDes return SSKEnvironment.shared.udManager; } +- (TSAccountManager *)tsAccountManager +{ + OWSAssertDebug(SSKEnvironment.shared.tsAccountManager); + + return SSKEnvironment.shared.tsAccountManager; +} + #pragma mark - Blocking - (BOOL)isEnvelopeSenderBlocked:(SSKProtoEnvelope *)envelope @@ -140,11 +147,6 @@ NSError *EnsureDecryptError(NSError *_Nullable error, NSString *fallbackErrorDes return [self.blockingManager.blockedPhoneNumbers containsObject:envelope.source]; } -- (TSAccountManager *)tsAccountManager -{ - return TSAccountManager.sharedInstance; -} - #pragma mark - Decryption - (void)decryptEnvelope:(SSKProtoEnvelope *)envelope @@ -156,7 +158,7 @@ NSError *EnsureDecryptError(NSError *_Nullable error, NSString *fallbackErrorDes OWSAssertDebug(envelopeData); OWSAssertDebug(successBlockParameter); OWSAssertDebug(failureBlockParameter); - OWSAssertDebug([TSAccountManager isRegistered]); + OWSAssertDebug([self.tsAccountManager isRegistered]); // successBlock is called synchronously so that we can avail ourselves of // the transaction. diff --git a/SignalServiceKit/src/Messages/OWSMessageManager.m b/SignalServiceKit/src/Messages/OWSMessageManager.m index 79b4a1e04..65ac98d68 100644 --- a/SignalServiceKit/src/Messages/OWSMessageManager.m +++ b/SignalServiceKit/src/Messages/OWSMessageManager.m @@ -236,7 +236,7 @@ NS_ASSUME_NONNULL_BEGIN OWSFail(@"Missing transaction."); return; } - if (!TSAccountManager.isRegistered) { + if (!self.tsAccountManager.isRegistered) { OWSFailDebug(@"Not registered."); return; } diff --git a/SignalServiceKit/src/Messages/UD/OWSUDManager.swift b/SignalServiceKit/src/Messages/UD/OWSUDManager.swift index fbe0b3aa5..201d3e0cb 100644 --- a/SignalServiceKit/src/Messages/UD/OWSUDManager.swift +++ b/SignalServiceKit/src/Messages/UD/OWSUDManager.swift @@ -123,7 +123,7 @@ public class OWSUDManagerImpl: NSObject, OWSUDManager { @objc public func setup() { AppReadiness.runNowOrWhenAppDidBecomeReady { - guard TSAccountManager.isRegistered() else { + guard self.tsAccountManager.isRegistered() else { return } diff --git a/SignalServiceKit/src/Network/WebSockets/OWSWebSocket.m b/SignalServiceKit/src/Network/WebSockets/OWSWebSocket.m index ea06c5272..60470630e 100644 --- a/SignalServiceKit/src/Network/WebSockets/OWSWebSocket.m +++ b/SignalServiceKit/src/Network/WebSockets/OWSWebSocket.m @@ -912,7 +912,7 @@ NSString *const kNSNotification_OWSWebSocketStateDidChange = @"kNSNotification_O return NO; } - if (![TSAccountManager isRegistered]) { + if (![self.tsAccountManager isRegistered]) { return NO; } diff --git a/SignalShareExtension/ShareViewController.swift b/SignalShareExtension/ShareViewController.swift index c39e7c810..db8035f63 100644 --- a/SignalShareExtension/ShareViewController.swift +++ b/SignalShareExtension/ShareViewController.swift @@ -12,6 +12,14 @@ import PromiseKit @objc public class ShareViewController: UIViewController, ShareViewDelegate, SAEFailedViewDelegate { + // MARK: - Dependencies + + private var tsAccountManager: TSAccountManager { + return TSAccountManager.sharedInstance() + } + + // MARK: - + enum ShareViewControllerError: Error { case assertionError(description: String) case unsupportedMedia @@ -171,7 +179,7 @@ public class ShareViewController: UIViewController, ShareViewDelegate, SAEFailed // We don't need to use RTCInitializeSSL() in the SAE. - if TSAccountManager.isRegistered() { + if tsAccountManager.isRegistered() { // At this point, potentially lengthy DB locking migrations could be running. // Avoid blocking app launch by putting all further possible DB access in async block DispatchQueue.global().async { [weak self] in @@ -192,7 +200,7 @@ public class ShareViewController: UIViewController, ShareViewDelegate, SAEFailed // We don't need to prod the TSSocketManager in the SAE. } - if TSAccountManager.isRegistered() { + if tsAccountManager.isRegistered() { DispatchQueue.main.async { [weak self] in guard let _ = self else { return } Logger.info("running post launch block for registered user: \(TSAccountManager.localNumber)") @@ -253,7 +261,7 @@ public class ShareViewController: UIViewController, ShareViewDelegate, SAEFailed // it will also run all deferred blocks. AppReadiness.setAppIsReady() - if TSAccountManager.isRegistered() { + if tsAccountManager.isRegistered() { Logger.info("localNumber: \(TSAccountManager.localNumber)") // We don't need to use messageFetcherJob in the SAE. @@ -285,7 +293,7 @@ public class ShareViewController: UIViewController, ShareViewDelegate, SAEFailed Logger.debug("") - if TSAccountManager.isRegistered() { + if tsAccountManager.isRegistered() { Logger.info("localNumber: \(TSAccountManager.localNumber)") // We don't need to use ExperienceUpgradeFinder in the SAE. @@ -325,7 +333,7 @@ public class ShareViewController: UIViewController, ShareViewDelegate, SAEFailed Logger.info("Presenting content view") - if !TSAccountManager.isRegistered() { + if !tsAccountManager.isRegistered() { showNotRegisteredView() } else if !OWSProfileManager.shared().localProfileExists() { // This is a rare edge case, but we want to ensure that the user @@ -451,7 +459,7 @@ public class ShareViewController: UIViewController, ShareViewDelegate, SAEFailed // If a user unregisters in the main app, the SAE should shut down // immediately. - guard !TSAccountManager.isRegistered() else { + guard !tsAccountManager.isRegistered() else { // If user is registered, do nothing. return }