Enforce quoted reply edge cases.

pull/1/head
Matthew Chen 7 years ago
parent 4655c74320
commit 76995e4594

@ -647,6 +647,25 @@ NSString *NSStringForOWSMessageCellType(OWSMessageCellType cellType)
} else if (action == self.metadataActionSelector) {
return YES;
} else if (action == self.replyActionSelector) {
if ([self.interaction isKindOfClass:[TSOutgoingMessage class]]) {
TSOutgoingMessage *outgoingMessage = (TSOutgoingMessage *)self.interaction;
if (outgoingMessage.messageState == TSOutgoingMessageStateUnsent
|| outgoingMessage.messageState == TSOutgoingMessageStateAttemptingOut) {
// Don't let users reply to messages which aren't yet delivered to the service.
return NO;
}
} else if ([self.interaction isKindOfClass:[TSIncomingMessage class]]) {
TSIncomingMessage *incomingMessage = (TSIncomingMessage *)self.interaction;
if (incomingMessage.hasAttachments) {
NSString *attachmentId = incomingMessage.attachmentIds.firstObject;
TSAttachment *_Nullable attachment = [TSAttachment fetchObjectWithUniqueID:attachmentId];
if (![attachment isKindOfClass:[TSAttachmentStream class]]) {
// Don't let users reply to attachments which aren't yet downloaded
// (or otherwise missing on disk).
return NO;
}
}
}
return YES;
} else {
return NO;

@ -1888,8 +1888,6 @@ NS_ASSUME_NONNULL_BEGIN
quotedMessageBody:(nullable NSString *)quotedMessageBody
// Optional. At least one of quotedMessageBody and quotedMessageAssetLoader should be non-nil.
quotedMessageAssetLoader:(nullable DebugUIMessagesAssetLoader *)quotedMessageAssetLoader
// Only applies if quotedMessageAssetLoader is non-nil.
isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
replyLabel:(NSString *)replyLabel
isReplyIncoming:(BOOL)isReplyIncoming
replyMessageBody:(nullable NSString *)replyMessageBody
@ -1935,9 +1933,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
[label appendFormat:@" %@", quotedMessageAssetLoader.labelEmoji];
}
if (isQuotedMessageIncoming) {
if (quotedMessageAssetLoader && !isQuotedMessageAttachmentDownloaded) {
[label appendString:@" !Downloaded"];
}
} else {
[label appendString:[self actionLabelForHasCaption:quotedMessageBody.length > 0
outgoingMessageState:quotedMessageMessageState
@ -1965,10 +1960,12 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
messageToQuote = [self createFakeIncomingMessage:thread
messageBody:quotedMessageBodyWIndex
fakeAssetLoader:quotedMessageAssetLoader
isAttachmentDownloaded:isQuotedMessageAttachmentDownloaded
isAttachmentDownloaded:YES
quotedMessage:nil
transaction:transaction];
OWSAssert(messageToQuote);
DDLogVerbose(@"%@ %@", self.logTag, label);
[DDLog flushLog];
quotedMessage = [[OWSQuotedReplyModel quotedReplyForMessage:messageToQuote transaction:transaction]
buildQuotedMessage];
} else {
@ -2057,7 +2054,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:NO
quotedMessageBody:shortText
quotedMessageAssetLoader:nil
isQuotedMessageAttachmentDownloaded:YES
replyLabel:@"Short Text"
isReplyIncoming:NO
replyMessageBody:shortText
@ -2069,7 +2065,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:NO
quotedMessageBody:shortText
quotedMessageAssetLoader:nil
isQuotedMessageAttachmentDownloaded:YES
replyLabel:@"Medium Text"
isReplyIncoming:NO
replyMessageBody:mediumText
@ -2081,7 +2076,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:NO
quotedMessageBody:mediumText
quotedMessageAssetLoader:nil
isQuotedMessageAttachmentDownloaded:YES
replyLabel:@"Short Text"
isReplyIncoming:NO
replyMessageBody:shortText
@ -2093,7 +2087,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:NO
quotedMessageBody:mediumText
quotedMessageAssetLoader:nil
isQuotedMessageAttachmentDownloaded:YES
replyLabel:@"Medium Text"
isReplyIncoming:NO
replyMessageBody:mediumText
@ -2105,7 +2098,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:NO
quotedMessageBody:longText
quotedMessageAssetLoader:nil
isQuotedMessageAttachmentDownloaded:YES
replyLabel:@"Long Text"
isReplyIncoming:NO
replyMessageBody:longText
@ -2123,7 +2115,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:NO
quotedMessageBody:nil
quotedMessageAssetLoader:[DebugUIMessagesAssetLoader jpegInstance]
isQuotedMessageAttachmentDownloaded:YES
replyLabel:@"Short Text"
isReplyIncoming:NO
replyMessageBody:shortText
@ -2135,7 +2126,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:NO
quotedMessageBody:shortText
quotedMessageAssetLoader:[DebugUIMessagesAssetLoader jpegInstance]
isQuotedMessageAttachmentDownloaded:YES
replyLabel:@"Short Text"
isReplyIncoming:NO
replyMessageBody:shortText
@ -2147,7 +2137,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:NO
quotedMessageBody:nil
quotedMessageAssetLoader:[DebugUIMessagesAssetLoader mp3Instance]
isQuotedMessageAttachmentDownloaded:YES
replyLabel:@"Short Text"
isReplyIncoming:NO
replyMessageBody:shortText
@ -2159,7 +2148,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:NO
quotedMessageBody:shortText
quotedMessageAssetLoader:[DebugUIMessagesAssetLoader mp3Instance]
isQuotedMessageAttachmentDownloaded:YES
replyLabel:@"Short Text"
isReplyIncoming:NO
replyMessageBody:shortText
@ -2171,7 +2159,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:NO
quotedMessageBody:nil
quotedMessageAssetLoader:[DebugUIMessagesAssetLoader mp4Instance]
isQuotedMessageAttachmentDownloaded:YES
replyLabel:@"Short Text"
isReplyIncoming:NO
replyMessageBody:shortText
@ -2183,7 +2170,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:NO
quotedMessageBody:shortText
quotedMessageAssetLoader:[DebugUIMessagesAssetLoader mp4Instance]
isQuotedMessageAttachmentDownloaded:YES
replyLabel:@"Short Text"
isReplyIncoming:NO
replyMessageBody:shortText
@ -2195,7 +2181,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:NO
quotedMessageBody:nil
quotedMessageAssetLoader:[DebugUIMessagesAssetLoader gifInstance]
isQuotedMessageAttachmentDownloaded:YES
replyLabel:@"Short Text"
isReplyIncoming:NO
replyMessageBody:shortText
@ -2207,7 +2192,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:NO
quotedMessageBody:shortText
quotedMessageAssetLoader:[DebugUIMessagesAssetLoader gifInstance]
isQuotedMessageAttachmentDownloaded:YES
replyLabel:@"Short Text"
isReplyIncoming:NO
replyMessageBody:shortText
@ -2219,7 +2203,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:YES
quotedMessageBody:nil
quotedMessageAssetLoader:[DebugUIMessagesAssetLoader tinyPdfInstance]
isQuotedMessageAttachmentDownloaded:YES
replyLabel:@"Short Text"
isReplyIncoming:NO
replyMessageBody:shortText
@ -2231,7 +2214,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:YES
quotedMessageBody:nil
quotedMessageAssetLoader:[DebugUIMessagesAssetLoader missingPdfInstance]
isQuotedMessageAttachmentDownloaded:YES
replyLabel:@"Short Text"
isReplyIncoming:NO
replyMessageBody:shortText
@ -2243,7 +2225,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:YES
quotedMessageBody:nil
quotedMessageAssetLoader:[DebugUIMessagesAssetLoader tinyPngInstance]
isQuotedMessageAttachmentDownloaded:YES
replyLabel:@"Short Text"
isReplyIncoming:NO
replyMessageBody:shortText
@ -2255,7 +2236,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:YES
quotedMessageBody:nil
quotedMessageAssetLoader:[DebugUIMessagesAssetLoader missingPngInstance]
isQuotedMessageAttachmentDownloaded:YES
replyLabel:@"Short Text"
isReplyIncoming:NO
replyMessageBody:shortText
@ -2273,7 +2253,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:NO
quotedMessageBody:nil
quotedMessageAssetLoader:[DebugUIMessagesAssetLoader tallPortraitPngInstance]
isQuotedMessageAttachmentDownloaded:YES
replyLabel:@"Short Text"
isReplyIncoming:NO
replyMessageBody:shortText
@ -2285,7 +2264,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:NO
quotedMessageBody:nil
quotedMessageAssetLoader:[DebugUIMessagesAssetLoader tallPortraitPngInstance]
isQuotedMessageAttachmentDownloaded:YES
replyLabel:@"Medium Text"
isReplyIncoming:NO
replyMessageBody:mediumText
@ -2297,7 +2275,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:NO
quotedMessageBody:shortText
quotedMessageAssetLoader:[DebugUIMessagesAssetLoader tallPortraitPngInstance]
isQuotedMessageAttachmentDownloaded:YES
replyLabel:@"Short Text"
isReplyIncoming:NO
replyMessageBody:shortText
@ -2309,7 +2286,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:NO
quotedMessageBody:nil
quotedMessageAssetLoader:[DebugUIMessagesAssetLoader wideLandscapePngInstance]
isQuotedMessageAttachmentDownloaded:YES
replyLabel:@"Short Text"
isReplyIncoming:NO
replyMessageBody:shortText
@ -2321,7 +2297,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:NO
quotedMessageBody:nil
quotedMessageAssetLoader:[DebugUIMessagesAssetLoader wideLandscapePngInstance]
isQuotedMessageAttachmentDownloaded:YES
replyLabel:@"Medium Text"
isReplyIncoming:NO
replyMessageBody:mediumText
@ -2333,7 +2308,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:NO
quotedMessageBody:shortText
quotedMessageAssetLoader:[DebugUIMessagesAssetLoader wideLandscapePngInstance]
isQuotedMessageAttachmentDownloaded:YES
replyLabel:@"Medium Text"
isReplyIncoming:NO
replyMessageBody:mediumText
@ -2345,7 +2319,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:YES
quotedMessageBody:nil
quotedMessageAssetLoader:[DebugUIMessagesAssetLoader tinyPngInstance]
isQuotedMessageAttachmentDownloaded:YES
replyLabel:@"Short Text"
isReplyIncoming:NO
replyMessageBody:shortText
@ -2357,7 +2330,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:YES
quotedMessageBody:nil
quotedMessageAssetLoader:[DebugUIMessagesAssetLoader tinyPngInstance]
isQuotedMessageAttachmentDownloaded:YES
replyLabel:@"Medium Text"
isReplyIncoming:NO
replyMessageBody:mediumText
@ -2372,7 +2344,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:isQuotedMessageIncoming
quotedMessageBody:shortText
quotedMessageAssetLoader:nil
isQuotedMessageAttachmentDownloaded:YES
replyLabel:@"Short Text"
isReplyIncoming:isReplyIncoming
replyMessageBody:shortText
@ -2400,7 +2371,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:YES
quotedMessageBody:nil
quotedMessageAssetLoader:[DebugUIMessagesAssetLoader jpegInstance]
isQuotedMessageAttachmentDownloaded:NO
replyLabel:@"Short Text"
isReplyIncoming:NO
replyMessageBody:shortText
@ -2412,7 +2382,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:YES
quotedMessageBody:nil
quotedMessageAssetLoader:[DebugUIMessagesAssetLoader mp3Instance]
isQuotedMessageAttachmentDownloaded:NO
replyLabel:@"Short Text"
isReplyIncoming:NO
replyMessageBody:shortText
@ -2424,7 +2393,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:YES
quotedMessageBody:nil
quotedMessageAssetLoader:[DebugUIMessagesAssetLoader mp4Instance]
isQuotedMessageAttachmentDownloaded:NO
replyLabel:@"Short Text"
isReplyIncoming:NO
replyMessageBody:shortText
@ -2436,7 +2404,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:YES
quotedMessageBody:nil
quotedMessageAssetLoader:[DebugUIMessagesAssetLoader gifInstance]
isQuotedMessageAttachmentDownloaded:NO
replyLabel:@"Short Text"
isReplyIncoming:NO
replyMessageBody:shortText
@ -2448,7 +2415,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:YES
quotedMessageBody:nil
quotedMessageAssetLoader:[DebugUIMessagesAssetLoader tinyPdfInstance]
isQuotedMessageAttachmentDownloaded:NO
replyLabel:@"Short Text"
isReplyIncoming:NO
replyMessageBody:shortText
@ -2460,7 +2426,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:YES
quotedMessageBody:nil
quotedMessageAssetLoader:[DebugUIMessagesAssetLoader missingPdfInstance]
isQuotedMessageAttachmentDownloaded:NO
replyLabel:@"Short Text"
isReplyIncoming:NO
replyMessageBody:shortText
@ -2472,7 +2437,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:YES
quotedMessageBody:nil
quotedMessageAssetLoader:[DebugUIMessagesAssetLoader tinyPngInstance]
isQuotedMessageAttachmentDownloaded:NO
replyLabel:@"Short Text"
isReplyIncoming:NO
replyMessageBody:shortText
@ -2484,7 +2448,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:YES
quotedMessageBody:nil
quotedMessageAssetLoader:[DebugUIMessagesAssetLoader missingPngInstance]
isQuotedMessageAttachmentDownloaded:NO
replyLabel:@"Short Text"
isReplyIncoming:NO
replyMessageBody:shortText
@ -2496,7 +2459,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:NO
quotedMessageBody:shortText
quotedMessageAssetLoader:nil
isQuotedMessageAttachmentDownloaded:YES
replyLabel:@"Short Text"
isReplyIncoming:NO
replyMessageBody:shortText
@ -2508,7 +2470,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:NO
quotedMessageBody:shortText
quotedMessageAssetLoader:nil
isQuotedMessageAttachmentDownloaded:YES
replyLabel:@"Short Text"
isReplyIncoming:NO
replyMessageBody:shortText
@ -2520,7 +2481,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:NO
quotedMessageBody:shortText
quotedMessageAssetLoader:nil
isQuotedMessageAttachmentDownloaded:YES
replyLabel:@"Short Text"
isReplyIncoming:NO
replyMessageBody:shortText
@ -2540,7 +2500,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:NO
quotedMessageBody:shortText
quotedMessageAssetLoader:[DebugUIMessagesAssetLoader tallPortraitPngInstance]
isQuotedMessageAttachmentDownloaded:YES
replyLabel:@"Tall Portrait Png"
isReplyIncoming:NO
replyMessageBody:shortText
@ -2553,7 +2512,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:NO
quotedMessageBody:shortText
quotedMessageAssetLoader:nil
isQuotedMessageAttachmentDownloaded:YES
replyLabel:@"Tall Portrait Png"
isReplyIncoming:NO
replyMessageBody:shortText
@ -2566,7 +2524,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:NO
quotedMessageBody:shortText
quotedMessageAssetLoader:nil
isQuotedMessageAttachmentDownloaded:YES
replyLabel:@"Tall Portrait Png"
isReplyIncoming:NO
replyMessageBody:nil
@ -2579,7 +2536,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:NO
quotedMessageBody:shortText
quotedMessageAssetLoader:nil
isQuotedMessageAttachmentDownloaded:YES
replyLabel:@"Tall Portrait Png"
isReplyIncoming:NO
replyMessageBody:shortText
@ -2592,7 +2548,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:NO
quotedMessageBody:shortText
quotedMessageAssetLoader:nil
isQuotedMessageAttachmentDownloaded:YES
replyLabel:@"Tall Portrait Png"
isReplyIncoming:NO
replyMessageBody:shortText
@ -2605,7 +2560,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:NO
quotedMessageBody:shortText
quotedMessageAssetLoader:nil
isQuotedMessageAttachmentDownloaded:YES
replyLabel:@"Wide Landscape Png"
isReplyIncoming:NO
replyMessageBody:shortText
@ -2619,7 +2573,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:NO
quotedMessageBody:shortText
quotedMessageAssetLoader:nil
isQuotedMessageAttachmentDownloaded:YES
replyLabel:@"Wide Landscape Png + Short Text"
isReplyIncoming:NO
replyMessageBody:shortText
@ -2632,7 +2585,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:NO
quotedMessageBody:shortText
quotedMessageAssetLoader:nil
isQuotedMessageAttachmentDownloaded:YES
replyLabel:@"Wide Landscape Png + Short Text"
isReplyIncoming:NO
replyMessageBody:shortText
@ -2645,7 +2597,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:NO
quotedMessageBody:shortText
quotedMessageAssetLoader:nil
isQuotedMessageAttachmentDownloaded:YES
replyLabel:@"Wide Landscape Png + Medium Text"
isReplyIncoming:NO
replyMessageBody:mediumText
@ -2658,7 +2609,6 @@ isQuotedMessageAttachmentDownloaded:(BOOL)isQuotedMessageAttachmentDownloaded
isQuotedMessageIncoming:NO
quotedMessageBody:shortText
quotedMessageAssetLoader:nil
isQuotedMessageAttachmentDownloaded:YES
replyLabel:@"Wide Landscape Png + Medium Text"
isReplyIncoming:NO
replyMessageBody:mediumText

@ -170,7 +170,8 @@
if (!hasText && !hasAttachment) {
OWSFail(@"%@ quoted message has neither text nor attachment", self.logTag);
return nil;
quotedText = @"";
hasText = YES;
}
return [[OWSQuotedReplyModel alloc] initWithTimestamp:timestamp

@ -347,7 +347,7 @@ NS_ASSUME_NONNULL_BEGIN
}
if (![[NSFileManager defaultManager] fileExistsAtPath:thumbnailPath]) {
OWSFail(@"%@ missing thumbnail for attachmentId: %@", self.logTag, self.uniqueId);
DDLogError(@"%@ missing thumbnail for attachmentId: %@", self.logTag, self.uniqueId);
return nil;
}

Loading…
Cancel
Save