diff --git a/Signal/src/ViewControllers/HomeView/HomeViewController.m b/Signal/src/ViewControllers/HomeView/HomeViewController.m index 00738aa84..4d99f6e43 100644 --- a/Signal/src/ViewControllers/HomeView/HomeViewController.m +++ b/Signal/src/ViewControllers/HomeView/HomeViewController.m @@ -25,6 +25,7 @@ #import #import #import +#import #import #import #import @@ -159,6 +160,10 @@ NSString *const kArchivedConversationsReuseIdentifier = @"kArchivedConversations selector:@selector(yapDatabaseModifiedExternally:) name:YapDatabaseModifiedExternallyNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(deregistrationStateDidChange:) + name:DeregistrationStateDidChangeNotification + object:nil]; } - (void)dealloc @@ -184,6 +189,13 @@ NSString *const kArchivedConversationsReuseIdentifier = @"kArchivedConversations [self reloadTableViewData]; } +- (void)deregistrationStateDidChange:(id)notification +{ + OWSAssertIsOnMainThread(); + + [self reloadTableViewData]; +} + #pragma mark - View Life Cycle - (void)loadView diff --git a/SignalServiceKit/src/Account/TSAccountManager.m b/SignalServiceKit/src/Account/TSAccountManager.m index 049459c69..3e4d599a8 100644 --- a/SignalServiceKit/src/Account/TSAccountManager.m +++ b/SignalServiceKit/src/Account/TSAccountManager.m @@ -16,6 +16,7 @@ #import "TSPreKeyManager.h" #import "TSVerifyCodeRequest.h" #import "YapDatabaseConnection+OWS.h" +#import "YapDatabaseTransaction+OWS.h" #import NS_ASSUME_NONNULL_BEGIN @@ -541,29 +542,28 @@ NSString *const TSAccountManager_ServerSignalingKey = @"TSStorageServerSignaling inCollection:TSAccountManager_UserAccountCollection defaultValue:NO]); } - } - OWSAssert(self.cachedIsDeregistered); - return self.cachedIsDeregistered.boolValue; + OWSAssert(self.cachedIsDeregistered); + return self.cachedIsDeregistered.boolValue; + } } - (void)setIsDeregistered:(BOOL)isDeregistered { @synchronized(self) { - if (self.cachedIsDeregistered && self.cachedIsDeregistered.boolValue == isDeregistered)) - { - return; - } + if (self.cachedIsDeregistered && self.cachedIsDeregistered.boolValue == isDeregistered) { + return; + } DDLogWarn(@"%@ isDeregistered: %d", self.logTag, isDeregistered); - self.cachedIsDeregistered == @(isDeregistered); + self.cachedIsDeregistered = @(isDeregistered); } [self.dbConnection asyncReadWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) { - [transaction setValue:@(isDeregistered) - forKey:TSAccountManager_IsDeregisteredKey - inCollection:TSAccountManager_UserAccountCollection]; + [transaction setObject:@(isDeregistered) + forKey:TSAccountManager_IsDeregisteredKey + inCollection:TSAccountManager_UserAccountCollection]; }]; [[NSNotificationCenter defaultCenter] postNotificationNameAsync:DeregistrationStateDidChangeNotification