mirror of
https://github.com/oxen-io/session-ios.git
synced 2023-12-13 21:30:14 +01:00
Track and persist 'is de-registered' state.
This commit is contained in:
parent
985f735f1a
commit
b0646e8bff
2 changed files with 23 additions and 11 deletions
|
@ -25,6 +25,7 @@
|
|||
#import <SignalServiceKit/OWSBlockingManager.h>
|
||||
#import <SignalServiceKit/OWSMessageSender.h>
|
||||
#import <SignalServiceKit/OWSMessageUtils.h>
|
||||
#import <SignalServiceKit/TSAccountManager.h>
|
||||
#import <SignalServiceKit/TSOutgoingMessage.h>
|
||||
#import <SignalServiceKit/Threading.h>
|
||||
#import <YapDatabase/YapDatabase.h>
|
||||
|
@ -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
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
#import "TSPreKeyManager.h"
|
||||
#import "TSVerifyCodeRequest.h"
|
||||
#import "YapDatabaseConnection+OWS.h"
|
||||
#import "YapDatabaseTransaction+OWS.h"
|
||||
#import <YapDatabase/YapDatabase.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
@ -541,27 +542,26 @@ NSString *const TSAccountManager_ServerSignalingKey = @"TSStorageServerSignaling
|
|||
inCollection:TSAccountManager_UserAccountCollection
|
||||
defaultValue:NO]);
|
||||
}
|
||||
}
|
||||
|
||||
OWSAssert(self.cachedIsDeregistered);
|
||||
return self.cachedIsDeregistered.boolValue;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setIsDeregistered:(BOOL)isDeregistered
|
||||
{
|
||||
@synchronized(self) {
|
||||
if (self.cachedIsDeregistered && self.cachedIsDeregistered.boolValue == isDeregistered))
|
||||
{
|
||||
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)
|
||||
[transaction setObject:@(isDeregistered)
|
||||
forKey:TSAccountManager_IsDeregisteredKey
|
||||
inCollection:TSAccountManager_UserAccountCollection];
|
||||
}];
|
||||
|
|
Loading…
Reference in a new issue