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/OWSBlockingManager.h>
|
||||||
#import <SignalServiceKit/OWSMessageSender.h>
|
#import <SignalServiceKit/OWSMessageSender.h>
|
||||||
#import <SignalServiceKit/OWSMessageUtils.h>
|
#import <SignalServiceKit/OWSMessageUtils.h>
|
||||||
|
#import <SignalServiceKit/TSAccountManager.h>
|
||||||
#import <SignalServiceKit/TSOutgoingMessage.h>
|
#import <SignalServiceKit/TSOutgoingMessage.h>
|
||||||
#import <SignalServiceKit/Threading.h>
|
#import <SignalServiceKit/Threading.h>
|
||||||
#import <YapDatabase/YapDatabase.h>
|
#import <YapDatabase/YapDatabase.h>
|
||||||
|
@ -159,6 +160,10 @@ NSString *const kArchivedConversationsReuseIdentifier = @"kArchivedConversations
|
||||||
selector:@selector(yapDatabaseModifiedExternally:)
|
selector:@selector(yapDatabaseModifiedExternally:)
|
||||||
name:YapDatabaseModifiedExternallyNotification
|
name:YapDatabaseModifiedExternallyNotification
|
||||||
object:nil];
|
object:nil];
|
||||||
|
[[NSNotificationCenter defaultCenter] addObserver:self
|
||||||
|
selector:@selector(deregistrationStateDidChange:)
|
||||||
|
name:DeregistrationStateDidChangeNotification
|
||||||
|
object:nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)dealloc
|
- (void)dealloc
|
||||||
|
@ -184,6 +189,13 @@ NSString *const kArchivedConversationsReuseIdentifier = @"kArchivedConversations
|
||||||
[self reloadTableViewData];
|
[self reloadTableViewData];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)deregistrationStateDidChange:(id)notification
|
||||||
|
{
|
||||||
|
OWSAssertIsOnMainThread();
|
||||||
|
|
||||||
|
[self reloadTableViewData];
|
||||||
|
}
|
||||||
|
|
||||||
#pragma mark - View Life Cycle
|
#pragma mark - View Life Cycle
|
||||||
|
|
||||||
- (void)loadView
|
- (void)loadView
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
#import "TSPreKeyManager.h"
|
#import "TSPreKeyManager.h"
|
||||||
#import "TSVerifyCodeRequest.h"
|
#import "TSVerifyCodeRequest.h"
|
||||||
#import "YapDatabaseConnection+OWS.h"
|
#import "YapDatabaseConnection+OWS.h"
|
||||||
|
#import "YapDatabaseTransaction+OWS.h"
|
||||||
#import <YapDatabase/YapDatabase.h>
|
#import <YapDatabase/YapDatabase.h>
|
||||||
|
|
||||||
NS_ASSUME_NONNULL_BEGIN
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
@ -541,29 +542,28 @@ NSString *const TSAccountManager_ServerSignalingKey = @"TSStorageServerSignaling
|
||||||
inCollection:TSAccountManager_UserAccountCollection
|
inCollection:TSAccountManager_UserAccountCollection
|
||||||
defaultValue:NO]);
|
defaultValue:NO]);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
OWSAssert(self.cachedIsDeregistered);
|
OWSAssert(self.cachedIsDeregistered);
|
||||||
return self.cachedIsDeregistered.boolValue;
|
return self.cachedIsDeregistered.boolValue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)setIsDeregistered:(BOOL)isDeregistered
|
- (void)setIsDeregistered:(BOOL)isDeregistered
|
||||||
{
|
{
|
||||||
@synchronized(self) {
|
@synchronized(self) {
|
||||||
if (self.cachedIsDeregistered && self.cachedIsDeregistered.boolValue == isDeregistered))
|
if (self.cachedIsDeregistered && self.cachedIsDeregistered.boolValue == isDeregistered) {
|
||||||
{
|
return;
|
||||||
return;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
DDLogWarn(@"%@ isDeregistered: %d", self.logTag, isDeregistered);
|
DDLogWarn(@"%@ isDeregistered: %d", self.logTag, isDeregistered);
|
||||||
|
|
||||||
self.cachedIsDeregistered == @(isDeregistered);
|
self.cachedIsDeregistered = @(isDeregistered);
|
||||||
}
|
}
|
||||||
|
|
||||||
[self.dbConnection asyncReadWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
|
[self.dbConnection asyncReadWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
|
||||||
[transaction setValue:@(isDeregistered)
|
[transaction setObject:@(isDeregistered)
|
||||||
forKey:TSAccountManager_IsDeregisteredKey
|
forKey:TSAccountManager_IsDeregisteredKey
|
||||||
inCollection:TSAccountManager_UserAccountCollection];
|
inCollection:TSAccountManager_UserAccountCollection];
|
||||||
}];
|
}];
|
||||||
|
|
||||||
[[NSNotificationCenter defaultCenter] postNotificationNameAsync:DeregistrationStateDidChangeNotification
|
[[NSNotificationCenter defaultCenter] postNotificationNameAsync:DeregistrationStateDidChangeNotification
|
||||||
|
|
Loading…
Reference in a new issue