Merge branch 'charlesmchen/outgoingMessageFixes'

pull/1/head
Matthew Chen 7 years ago
commit f65757a1ee

@ -40,6 +40,10 @@ NS_ASSUME_NONNULL_BEGIN
- (nullable SignalRecipient *)synchronousLookup:(NSString *)identifier error:(NSError **)error
{
OWSAssert(error);
DDLogInfo(@"%@ %s %@", self.logTag, __PRETTY_FUNCTION__, identifier);
dispatch_semaphore_t sema = dispatch_semaphore_create(0);
__block SignalRecipient *recipient;

@ -21,7 +21,8 @@ typedef NS_ENUM(NSInteger, TSOutgoingMessageState) {
TSOutgoingMessageStateSent,
};
// Used
NSString *NSStringForOutgoingMessageState(TSOutgoingMessageState value);
typedef NS_ENUM(NSInteger, OWSOutgoingMessageRecipientState) {
// Message could not be sent to recipient.
OWSOutgoingMessageRecipientStateFailed = 0,
@ -37,6 +38,8 @@ typedef NS_ENUM(NSInteger, OWSOutgoingMessageRecipientState) {
OWSOutgoingMessageRecipientStateMax = OWSOutgoingMessageRecipientStateSent,
};
NSString *NSStringForOutgoingMessageRecipientState(OWSOutgoingMessageRecipientState value);
typedef NS_ENUM(NSInteger, TSGroupMetaMessage) {
TSGroupMessageUnspecified,
TSGroupMessageNew,
@ -223,6 +226,8 @@ typedef NS_ENUM(NSInteger, TSGroupMetaMessage) {
- (nullable NSNumber *)firstRecipientReadTimestamp;
- (NSString *)statusDescription;
@end
NS_ASSUME_NONNULL_END

@ -23,6 +23,36 @@ NS_ASSUME_NONNULL_BEGIN
NSString *const kTSOutgoingMessageSentRecipientAll = @"kTSOutgoingMessageSentRecipientAll";
NSString *NSStringForOutgoingMessageState(TSOutgoingMessageState value)
{
switch (value) {
case TSOutgoingMessageStateSending:
return @"TSOutgoingMessageStateSending";
case TSOutgoingMessageStateFailed:
return @"TSOutgoingMessageStateFailed";
case TSOutgoingMessageStateSent_OBSOLETE:
return @"TSOutgoingMessageStateSent_OBSOLETE";
case TSOutgoingMessageStateDelivered_OBSOLETE:
return @"TSOutgoingMessageStateDelivered_OBSOLETE";
case TSOutgoingMessageStateSent:
return @"TSOutgoingMessageStateSent";
}
}
NSString *NSStringForOutgoingMessageRecipientState(OWSOutgoingMessageRecipientState value)
{
switch (value) {
case OWSOutgoingMessageRecipientStateFailed:
return @"OWSOutgoingMessageRecipientStateFailed";
case OWSOutgoingMessageRecipientStateSending:
return @"OWSOutgoingMessageRecipientStateSending";
case OWSOutgoingMessageRecipientStateSkipped:
return @"OWSOutgoingMessageRecipientStateSkipped";
case OWSOutgoingMessageRecipientStateSent:
return @"OWSOutgoingMessageRecipientStateSent";
}
}
@interface TSOutgoingMessageRecipientState ()
@property (atomic) OWSOutgoingMessageRecipientState state;
@ -870,6 +900,18 @@ NSString *const kTSOutgoingMessageSentRecipientAll = @"kTSOutgoingMessageSentRec
return [builder build];
}
- (NSString *)statusDescription
{
NSMutableString *result = [NSMutableString new];
[result appendFormat:@"[status: %@", NSStringForOutgoingMessageState(self.messageState)];
for (NSString *recipientId in self.recipientStateMap) {
TSOutgoingMessageRecipientState *recipientState = self.recipientStateMap[recipientId];
[result appendFormat:@", %@: %@", recipientId, NSStringForOutgoingMessageRecipientState(recipientState.state)];
}
[result appendString:@"]"];
return [result copy];
}
@end
NS_ASSUME_NONNULL_END

@ -186,7 +186,9 @@ void AssertIsOnSendingQueue()
- (void)didSucceed
{
OWSAssert(self.message.messageState == TSOutgoingMessageStateSent);
if (self.message.messageState != TSOutgoingMessageStateSent) {
OWSProdLogAndFail(@"%@ unexpected message status: %@", self.logTag, self.message.statusDescription);
}
self.successHandler();
}
@ -423,7 +425,7 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException";
{
OWSAssert(error);
error = nil;
*error = nil;
NSMutableArray<SignalRecipient *> *recipients = [NSMutableArray new];

Loading…
Cancel
Save