Merge branch 'charlesmchen/persistMediaValidityCache'

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

@ -355,25 +355,55 @@ typedef void (^OWSLoadedThumbnailSuccess)(OWSLoadedThumbnail *loadedThumbnail);
{ {
OWSAssertDebug(self.isImage || self.isAnimated); OWSAssertDebug(self.isImage || self.isAnimated);
BOOL result;
BOOL didUpdateCache = NO;
@synchronized(self) { @synchronized(self) {
if (!self.isValidImageCached) { if (!self.isValidImageCached) {
self.isValidImageCached = OWSLogVerbose(@"Updating isValidImageCached.");
@([NSData ows_isValidImageAtPath:self.originalFilePath mimeType:self.contentType]); self.isValidImageCached = @([NSData ows_isValidImageAtPath:self.originalFilePath
mimeType:self.contentType]);
didUpdateCache = YES;
} }
return self.isValidImageCached.boolValue; result = self.isValidImageCached.boolValue;
} }
if (didUpdateCache) {
[self.dbReadWriteConnection asyncReadWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
[self applyChangeToSelfAndLatestCopy:transaction
changeBlock:^(TSAttachmentStream *attachmentStream) {
attachmentStream.isValidImageCached = @(result);
}];
}];
}
return result;
} }
- (BOOL)isValidVideo - (BOOL)isValidVideo
{ {
OWSAssertDebug(self.isVideo); OWSAssertDebug(self.isVideo);
BOOL result;
BOOL didUpdateCache = NO;
@synchronized(self) { @synchronized(self) {
if (!self.isValidVideoCached) { if (!self.isValidVideoCached) {
OWSLogVerbose(@"Updating isValidVideoCached.");
self.isValidVideoCached = @([OWSMediaUtils isValidVideoWithPath:self.originalFilePath]); self.isValidVideoCached = @([OWSMediaUtils isValidVideoWithPath:self.originalFilePath]);
didUpdateCache = YES;
} }
return self.isValidVideoCached.boolValue; result = self.isValidVideoCached.boolValue;
} }
if (didUpdateCache) {
[self.dbReadWriteConnection asyncReadWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
[self applyChangeToSelfAndLatestCopy:transaction
changeBlock:^(TSAttachmentStream *attachmentStream) {
attachmentStream.isValidVideoCached = @(result);
}];
}];
}
return result;
} }
#pragma mark - #pragma mark -

Loading…
Cancel
Save