Respond to CR.

pull/1/head
Matthew Chen 7 years ago
parent c830f880aa
commit ace07ac62a

@ -1323,7 +1323,7 @@ NS_ASSUME_NONNULL_BEGIN
}];
}
+ (NSString *)invalidRecipientId
+ (NSString *)unregisteredRecipientId
{
// We ensure that the phone number is invalid by appending too many digits.
NSMutableString *recipientId = [@"+1" mutableCopy];
@ -1335,19 +1335,19 @@ NS_ASSUME_NONNULL_BEGIN
+ (void)createInvalidContactThread
{
NSString *recipientId = [self invalidRecipientId];
NSString *recipientId = [self unregisteredRecipientId];
TSContactThread *thread = [TSContactThread getOrCreateThreadWithContactId:recipientId];
[SignalApp.sharedApp presentConversationForThread:thread];
}
+ (void)createInvalidGroupThread
{
NSString *invalidRecipientId = [self invalidRecipientId];
NSString *unregisteredRecipientId = [self unregisteredRecipientId];
NSString *validRecipientId = @"+19174054216";
NSString *groupName = @"Partially invalid group";
NSMutableArray<NSString *> *recipientIds = [@[
invalidRecipientId,
unregisteredRecipientId,
validRecipientId,
[TSAccountManager localNumber],
] mutableCopy];

@ -24,8 +24,8 @@ NS_ASSUME_NONNULL_BEGIN
+ (nullable instancetype)registeredRecipientForRecipientId:(NSString *)recipientId
transaction:(YapDatabaseReadTransaction *)transaction;
+ (instancetype)getOrCreatedUnsavedRecipientForRecipientId:(NSString *)recipientId
transaction:(YapDatabaseReadTransaction *)transaction;
+ (instancetype)getOrBuildUnsavedRecipientForRecipientId:(NSString *)recipientId
transaction:(YapDatabaseReadTransaction *)transaction;
- (void)addDevicesToRegisteredRecipient:(NSSet *)devices
transaction:(YapDatabaseReadWriteTransaction *)transaction;

@ -18,8 +18,8 @@ NS_ASSUME_NONNULL_BEGIN
@implementation SignalRecipient
+ (instancetype)getOrCreatedUnsavedRecipientForRecipientId:(NSString *)recipientId
transaction:(YapDatabaseReadTransaction *)transaction
+ (instancetype)getOrBuildUnsavedRecipientForRecipientId:(NSString *)recipientId
transaction:(YapDatabaseReadTransaction *)transaction
{
OWSAssert(transaction);
OWSAssert(recipientId.length > 0);
@ -125,9 +125,7 @@ NS_ASSUME_NONNULL_BEGIN
return;
}
NSMutableOrderedSet *updatedDevices = (self.devices
? [self.devices mutableCopy]
: [NSMutableOrderedSet new]);
NSMutableOrderedSet *updatedDevices = [self.devices mutableCopy];
[updatedDevices unionSet:devices];
self.devices = [updatedDevices copy];
}
@ -135,10 +133,8 @@ NS_ASSUME_NONNULL_BEGIN
- (void)removeDevices:(NSSet *)devices
{
OWSAssert(devices.count > 0);
NSMutableOrderedSet *updatedDevices = (self.devices
? [self.devices mutableCopy]
: [NSMutableOrderedSet new]);
NSMutableOrderedSet *updatedDevices = [self.devices mutableCopy];
[updatedDevices minusSet:devices];
self.devices = [updatedDevices copy];
}
@ -152,7 +148,7 @@ NS_ASSUME_NONNULL_BEGIN
SignalRecipient *latest = [SignalRecipient markAccountAsRegistered:self.recipientId transaction:transaction];
[latest addDevices:devices];
[latest saveWithTransaction:transaction];
[latest saveWithTransaction_internal:transaction];
}
- (void)removeDevicesFromRegisteredRecipient:(NSSet *)devices transaction:(YapDatabaseReadWriteTransaction *)transaction
@ -164,7 +160,7 @@ NS_ASSUME_NONNULL_BEGIN
SignalRecipient *latest = [SignalRecipient markAccountAsRegistered:self.recipientId transaction:transaction];
[latest removeDevices:devices];
[latest saveWithTransaction:transaction];
[latest saveWithTransaction_internal:transaction];
}
- (NSString *)recipientId
@ -178,6 +174,13 @@ NS_ASSUME_NONNULL_BEGIN
}
- (void)saveWithTransaction:(YapDatabaseReadWriteTransaction *)transaction
{
OWSProdLogAndFail(@"%@ Don't call saveWithTransaction from outside this class.", self.logTag);
[self saveWithTransaction_internal:transaction];
}
- (void)saveWithTransaction_internal:(YapDatabaseReadWriteTransaction *)transaction
{
[super saveWithTransaction:transaction];
@ -201,7 +204,7 @@ NS_ASSUME_NONNULL_BEGIN
DDLogDebug(@"%@ creating recipient: %@", self.logTag, recipientId);
instance = [[self alloc] initWithTextSecureIdentifier:recipientId];
[instance saveWithTransaction:transaction];
[instance saveWithTransaction_internal:transaction];
}
return instance;
}
@ -221,7 +224,7 @@ NS_ASSUME_NONNULL_BEGIN
(unsigned int)deviceId);
[recipient addDevices:[NSSet setWithObject:@(deviceId)]];
[recipient saveWithTransaction:transaction];
[recipient saveWithTransaction_internal:transaction];
}
}

@ -454,8 +454,8 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException";
NSMutableArray<SignalRecipient *> *recipients = [NSMutableArray new];
[self.dbConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
for (NSString *recipientId in recipientIds) {
SignalRecipient *recipient = [SignalRecipient getOrCreatedUnsavedRecipientForRecipientId:recipientId
transaction:transaction];
SignalRecipient *recipient =
[SignalRecipient getOrBuildUnsavedRecipientForRecipientId:recipientId transaction:transaction];
[recipients addObject:recipient];
}
}];
@ -895,7 +895,6 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException";
// This emulates the completion logic of an actual successful save (see below).
[self.dbConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
[message updateWithSkippedRecipient:localNumber transaction:transaction];
[recipient saveWithTransaction:transaction];
}];
successHandler();
});
@ -1013,7 +1012,6 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException";
dispatch_async([OWSDispatch sendingQueue], ^{
[self.dbConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
[recipient saveWithTransaction:transaction];
[message updateWithSentRecipient:recipient.uniqueId transaction:transaction];
// If we've just delivered a message to a user, we know they

Loading…
Cancel
Save