Merge branch 'mkirk/send-config-sync-on-change'
This commit is contained in:
commit
8dd3e47d87
@ -117,6 +117,8 @@ NSString *envelopeAddress(OWSSignalServiceProtosEnvelope *envelope)
|
||||
[description appendString:@"GroupRequest"];
|
||||
} else if (syncMessage.request.type == OWSSignalServiceProtosSyncMessageRequestTypeBlocked) {
|
||||
[description appendString:@"BlockedRequest"];
|
||||
} else if (syncMessage.request.type == OWSSignalServiceProtosSyncMessageRequestTypeConfiguration) {
|
||||
[description appendString:@"ConfigurationRequest"];
|
||||
} else {
|
||||
// Shouldn't happen
|
||||
OWSFail(@"Unknown sync message request type");
|
||||
|
||||
@ -605,7 +605,8 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
// TODO
|
||||
DDLogWarn(@"%@ Received unsupported request for block list", self.tag);
|
||||
} else if (syncMessage.request.type == OWSSignalServiceProtosSyncMessageRequestTypeConfiguration) {
|
||||
BOOL areReadReceiptsEnabled = [[OWSReadReceiptManager sharedManager] areReadReceiptsEnabled];
|
||||
BOOL areReadReceiptsEnabled =
|
||||
[[OWSReadReceiptManager sharedManager] areReadReceiptsEnabledWithTransaction:transaction];
|
||||
OWSSyncConfigurationMessage *syncConfigurationMessage =
|
||||
[[OWSSyncConfigurationMessage alloc] initWithReadReceiptsEnabled:areReadReceiptsEnabled];
|
||||
[self.messageSender sendMessage:syncConfigurationMessage
|
||||
|
||||
@ -9,6 +9,7 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
@class TSOutgoingMessage;
|
||||
@class TSThread;
|
||||
@class YapDatabaseReadWriteTransaction;
|
||||
@class YapDatabaseReadTransaction;
|
||||
|
||||
extern NSString *const kIncomingMessageMarkedAsReadNotification;
|
||||
|
||||
@ -74,6 +75,7 @@ extern NSString *const kIncomingMessageMarkedAsReadNotification;
|
||||
- (void)prepareCachedValues;
|
||||
|
||||
- (BOOL)areReadReceiptsEnabled;
|
||||
- (BOOL)areReadReceiptsEnabledWithTransaction:(YapDatabaseReadTransaction *)transaction;
|
||||
- (void)setAreReadReceiptsEnabled:(BOOL)value;
|
||||
|
||||
@end
|
||||
|
||||
@ -9,6 +9,7 @@
|
||||
#import "OWSReadReceiptsForLinkedDevicesMessage.h"
|
||||
#import "OWSReadReceiptsForSenderMessage.h"
|
||||
#import "OWSSignalServiceProtos.pb.h"
|
||||
#import "OWSSyncConfigurationMessage.h"
|
||||
#import "TSContactThread.h"
|
||||
#import "TSDatabaseView.h"
|
||||
#import "TSIncomingMessage.h"
|
||||
@ -559,8 +560,22 @@ NSString *const OWSReadReceiptManagerAreReadReceiptsEnabled = @"areReadReceiptsE
|
||||
// We don't need to worry about races around this cached value.
|
||||
if (!self.areReadReceiptsEnabledCached) {
|
||||
// Default to NO.
|
||||
self.areReadReceiptsEnabledCached = @([self.dbConnection boolForKey:OWSReadReceiptManagerAreReadReceiptsEnabled
|
||||
inCollection:OWSReadReceiptManagerCollection]);
|
||||
self.areReadReceiptsEnabledCached =
|
||||
@([self.dbConnection boolForKey:OWSReadReceiptManagerAreReadReceiptsEnabled
|
||||
inCollection:OWSReadReceiptManagerAreReadReceiptsEnabled]);
|
||||
}
|
||||
|
||||
return [self.areReadReceiptsEnabledCached boolValue];
|
||||
}
|
||||
|
||||
- (BOOL)areReadReceiptsEnabledWithTransaction:(YapDatabaseReadTransaction *)transaction
|
||||
{
|
||||
if (!self.areReadReceiptsEnabledCached) {
|
||||
[self.dbConnection readWithBlock:^(YapDatabaseReadTransaction *_Nonnull transaction) {
|
||||
// Default to NO.
|
||||
self.areReadReceiptsEnabledCached = [transaction objectForKey:OWSReadReceiptManagerAreReadReceiptsEnabled
|
||||
inCollection:OWSReadReceiptManagerAreReadReceiptsEnabled];
|
||||
}];
|
||||
}
|
||||
|
||||
return [self.areReadReceiptsEnabledCached boolValue];
|
||||
@ -568,11 +583,22 @@ NSString *const OWSReadReceiptManagerAreReadReceiptsEnabled = @"areReadReceiptsE
|
||||
|
||||
- (void)setAreReadReceiptsEnabled:(BOOL)value
|
||||
{
|
||||
DDLogInfo(@"%@ areReadReceiptsEnabled: %d.", self.tag, value);
|
||||
DDLogInfo(@"%@ setAreReadReceiptsEnabled: %d.", self.tag, value);
|
||||
|
||||
[self.dbConnection setBool:value
|
||||
forKey:OWSReadReceiptManagerAreReadReceiptsEnabled
|
||||
inCollection:OWSReadReceiptManagerCollection];
|
||||
|
||||
OWSSyncConfigurationMessage *syncConfigurationMessage =
|
||||
[[OWSSyncConfigurationMessage alloc] initWithReadReceiptsEnabled:value];
|
||||
[self.messageSender sendMessage:syncConfigurationMessage
|
||||
success:^{
|
||||
DDLogInfo(@"%@ Successfully sent Configuration syncMessage.", self.tag);
|
||||
}
|
||||
failure:^(NSError *error) {
|
||||
DDLogError(@"%@ Failed to send Configuration syncMessage with error: %@", self.tag, error);
|
||||
}];
|
||||
|
||||
self.areReadReceiptsEnabledCached = @(value);
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user