Merge branch 'charlesmchen/tweakReadReceipts'

This commit is contained in:
Matthew Chen 2017-09-25 17:22:34 -04:00
commit 3bb8f4aad5
4 changed files with 22 additions and 22 deletions

View file

@ -836,8 +836,7 @@ static NSString *const kURLHostVerifyPrefix = @"verify";
self.isEnvironmentSetup = YES;
[OWSProfileManager.sharedManager fetchLocalUsersProfile];
// Make sure this manager is started.
[OWSReadReceiptManager sharedManager];
[[OWSReadReceiptManager sharedManager] prepareCachedValues];
}
- (void)registrationStateDidChange

View file

@ -2134,7 +2134,8 @@ typedef NS_ENUM(NSInteger, MessagesRangeSizeMode) {
? NSLocalizedString(@"MESSAGE_STATUS_DELIVERED", @"message footer for delivered messages")
: NSLocalizedString(@"MESSAGE_STATUS_SENT", @"message footer for sent messages"));
NSAttributedString *result = [[NSAttributedString alloc] initWithString:text];
if (outgoingMessage.wasDelivered && outgoingMessage.readRecipientIds.count > 0) {
if ([OWSReadReceiptManager.sharedManager areReadReceiptsEnabled] && outgoingMessage.wasDelivered
&& outgoingMessage.readRecipientIds.count > 0) {
NSAttributedString *checkmark = [[NSAttributedString alloc]
initWithString:@"\uf00c "
attributes:@{

View file

@ -57,6 +57,8 @@ NS_ASSUME_NONNULL_BEGIN
#pragma mark - Settings
- (void)prepareCachedValues;
- (BOOL)areReadReceiptsEnabled;
- (void)setAreReadReceiptsEnabled:(BOOL)value;

View file

@ -114,8 +114,7 @@ NSString *const OWSReadReceiptManagerAreReadReceiptsEnabled = @"areReadReceiptsE
// Should only be accessed while synchronized on the OWSReadReceiptManager.
@property (nonatomic) BOOL isProcessing;
// Should only be accessed while synchronized on the OWSReadReceiptManager.
@property (nonatomic) NSNumber *areReadReceiptsEnabledCached;
@property (atomic) NSNumber *areReadReceiptsEnabledCached;
@end
@ -425,32 +424,31 @@ NSString *const OWSReadReceiptManagerAreReadReceiptsEnabled = @"areReadReceiptsE
#pragma mark - Settings
- (void)prepareCachedValues
{
[self areReadReceiptsEnabled];
}
- (BOOL)areReadReceiptsEnabled
{
@synchronized(self)
{
if (!self.areReadReceiptsEnabledCached) {
// Default to NO.
self.areReadReceiptsEnabledCached =
@([self.dbConnection boolForKey:OWSReadReceiptManagerAreReadReceiptsEnabled
inCollection:OWSReadReceiptManagerCollection]);
}
return [self.areReadReceiptsEnabledCached boolValue];
// 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]);
}
return [self.areReadReceiptsEnabledCached boolValue];
}
- (void)setAreReadReceiptsEnabled:(BOOL)value
{
DDLogInfo(@"%@ areReadReceiptsEnabled: %d.", self.tag, value);
@synchronized(self)
{
[self.dbConnection setBool:value
forKey:OWSReadReceiptManagerAreReadReceiptsEnabled
inCollection:OWSReadReceiptManagerCollection];
self.areReadReceiptsEnabledCached = @(value);
}
[self.dbConnection setBool:value
forKey:OWSReadReceiptManagerAreReadReceiptsEnabled
inCollection:OWSReadReceiptManagerCollection];
self.areReadReceiptsEnabledCached = @(value);
}
#pragma mark - Logging