Improve handling of incomplete and failed attachment downloads.

// FREEBIE
pull/1/head
Matthew Chen 8 years ago
parent 5250d327e4
commit 8a9206d7e7

@ -155,12 +155,16 @@
TSAttachmentPointer *pointer = (TSAttachmentPointer *)attachment;
adapter.messageType = TSInfoMessageAdapter;
if (pointer.isDownloading) {
adapter.messageBody = NSLocalizedString(@"ATTACHMENT_DOWNLOADING", nil);
} else if (pointer.hasFailed) {
adapter.messageBody = NSLocalizedString(@"ATTACHMENT_DOWNLOAD_FAILED", nil);
} else {
adapter.messageBody = NSLocalizedString(@"ATTACHMENT_QUEUED", nil);
switch (pointer.state) {
case TSAttachmentPointerStateEnqueued:
adapter.messageBody = NSLocalizedString(@"ATTACHMENT_QUEUED", nil);
break;
case TSAttachmentPointerStateDownloading:
adapter.messageBody = NSLocalizedString(@"ATTACHMENT_DOWNLOADING", nil);
break;
case TSAttachmentPointerStateFailed:
adapter.messageBody = NSLocalizedString(@"ATTACHMENT_DOWNLOAD_FAILED", nil);
break;
}
} else {
DDLogError(@"We retrieved an attachment that doesn't have a known type : %@",

@ -1586,7 +1586,7 @@ typedef enum : NSUInteger {
// FIXME possible for pointer to get stuck in isDownloading state if app is closed while downloading.
// see: https://github.com/WhisperSystems/Signal-iOS/issues/1254
if (!pointer.isDownloading) {
if (pointer.state != TSAttachmentPointerStateDownloading) {
OWSAttachmentsProcessor *processor =
[[OWSAttachmentsProcessor alloc] initWithAttachmentPointer:pointer
networkManager:self.networkManager];

Loading…
Cancel
Save