From ec129ea2175c5a4e871d99d5d8184706148c8b61 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Mon, 10 Apr 2017 11:35:52 -0400 Subject: [PATCH] Improve attachment upload progress indicator. * Should never show up for attachments in the failed state. * Show show up without delay for attachments being sent. * Show disappear when attachment upload fails in any way. // FREEBIE --- .../TSMessageAdapaters/AttachmentUploadView.m | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/Signal/src/Models/TSMessageAdapaters/AttachmentUploadView.m b/Signal/src/Models/TSMessageAdapaters/AttachmentUploadView.m index 7dcb8ff49..f717dc262 100644 --- a/Signal/src/Models/TSMessageAdapaters/AttachmentUploadView.m +++ b/Signal/src/Models/TSMessageAdapaters/AttachmentUploadView.m @@ -21,6 +21,8 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic) BOOL isAttachmentReady; +@property (nonatomic) CGFloat lastProgress; + @end #pragma mark - @@ -100,10 +102,17 @@ NS_ASSUME_NONNULL_BEGIN } } +- (void)setLastProgress:(CGFloat)lastProgress +{ + _lastProgress = lastProgress; + + [self ensureViewState]; +} + - (void)ensureViewState { - _maskLayer.hidden = self.isAttachmentReady; - _progressView.hidden = self.isAttachmentReady; + _maskLayer.hidden = self.isAttachmentReady || self.lastProgress == 0; + _progressView.hidden = self.isAttachmentReady || self.lastProgress == 0; } - (void)attachmentUploadProgress:(NSNotification *)notification @@ -114,6 +123,7 @@ NS_ASSUME_NONNULL_BEGIN if ([self.attachment.uniqueId isEqual:attachmentID]) { if (!isnan(progress)) { [_progressView setProgress:progress]; + self.lastProgress = progress; self.isAttachmentReady = self.attachment.isUploaded; } else { OWSAssert(0);