Respond to CR.

// FREEBIE
This commit is contained in:
Matthew Chen 2017-09-25 14:45:50 -04:00
parent 315c1d7dc4
commit f001e8c225
3 changed files with 20 additions and 21 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

@ -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