Merge branch 'charlesmchen/tweakReadReceipts'

pull/1/head
Matthew Chen 8 years ago
commit 3bb8f4aad5

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

@ -2134,7 +2134,8 @@ typedef NS_ENUM(NSInteger, MessagesRangeSizeMode) {
? NSLocalizedString(@"MESSAGE_STATUS_DELIVERED", @"message footer for delivered messages") ? NSLocalizedString(@"MESSAGE_STATUS_DELIVERED", @"message footer for delivered messages")
: NSLocalizedString(@"MESSAGE_STATUS_SENT", @"message footer for sent messages")); : NSLocalizedString(@"MESSAGE_STATUS_SENT", @"message footer for sent messages"));
NSAttributedString *result = [[NSAttributedString alloc] initWithString:text]; 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] NSAttributedString *checkmark = [[NSAttributedString alloc]
initWithString:@"\uf00c " initWithString:@"\uf00c "
attributes:@{ attributes:@{

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

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

Loading…
Cancel
Save