OrphanDataCleaner vs. QuotedAttachment thumbnails

// FREEBIE
pull/1/head
Michael Kirk 8 years ago
parent 4399967e99
commit 622f6bdf21

@ -98,6 +98,9 @@ NS_ASSUME_NONNULL_BEGIN
- (nullable NSString *)thumbnailAttachmentStreamId;
- (void)setThumbnailAttachmentStream:(TSAttachment *)thumbnailAttachmentStream;
// currently only used by orphan attachment cleaner
- (NSArray<NSString *> *)thumbnailAttachmentStreamIds;
@property (atomic, readonly) NSArray<OWSAttachmentInfo *> *quotedAttachments;
// Before sending, persist a thumbnail attachment derived from the quoted attachment

@ -200,18 +200,18 @@ NS_ASSUME_NONNULL_BEGIN
return firstAttachment.sourceFilename;
}
- (nullable NSString *)thumbnailAttachmentStreamId
- (nullable NSString *)thumbnailAttachmentPointerId
{
OWSAttachmentInfo *firstAttachment = self.firstAttachmentInfo;
return firstAttachment.thumbnailAttachmentStreamId;
return firstAttachment.thumbnailAttachmentPointerId;
}
- (nullable NSString *)thumbnailAttachmentPointerId
- (nullable NSString *)thumbnailAttachmentStreamId
{
OWSAttachmentInfo *firstAttachment = self.firstAttachmentInfo;
return firstAttachment.thumbnailAttachmentPointerId;
return firstAttachment.thumbnailAttachmentStreamId;
}
- (void)setThumbnailAttachmentStream:(TSAttachmentStream *)attachmentStream
@ -223,6 +223,18 @@ NS_ASSUME_NONNULL_BEGIN
firstAttachment.thumbnailAttachmentStreamId = attachmentStream.uniqueId;
}
- (NSArray<NSString *> *)thumbnailAttachmentStreamIds
{
NSMutableArray *streamIds = [NSMutableArray new];
for (OWSAttachmentInfo *info in self.quotedAttachments) {
if (info.thumbnailAttachmentStreamId) {
[streamIds addObject:info.thumbnailAttachmentStreamId];
}
}
return [streamIds copy];
}
- (NSArray<TSAttachmentStream *> *)createThumbnailAttachmentsIfNecessaryWithTransaction:
(YapDatabaseReadWriteTransaction *)transaction
{

@ -8,6 +8,7 @@
#import "TSAttachmentStream.h"
#import "TSInteraction.h"
#import "TSMessage.h"
#import "TSQuotedMessage.h"
#import "TSThread.h"
#import <YapDatabase/YapDatabase.h>
@ -104,6 +105,8 @@ NS_ASSUME_NONNULL_BEGIN
NSMutableSet<NSString *> *orphanInteractionIds = [NSMutableSet new];
NSMutableSet<NSString *> *messageAttachmentIds = [NSMutableSet new];
NSMutableSet<NSString *> *quotedReplyThumbnailAttachmentIds = [NSMutableSet new];
[databaseConnection readWithBlock:^(YapDatabaseReadTransaction *_Nonnull transaction) {
[transaction enumerateKeysAndObjectsInCollection:TSMessage.collection
usingBlock:^(NSString *key, TSInteraction *interaction, BOOL *stop) {
@ -114,18 +117,28 @@ NS_ASSUME_NONNULL_BEGIN
if (![interaction isKindOfClass:[TSMessage class]]) {
return;
}
TSMessage *message = (TSMessage *)interaction;
if (message.attachmentIds.count > 0) {
[messageAttachmentIds addObjectsFromArray:message.attachmentIds];
}
TSQuotedMessage *_Nullable quotedMessage = message.quotedMessage;
if (quotedMessage) {
[quotedReplyThumbnailAttachmentIds
addObjectsFromArray:quotedMessage
.thumbnailAttachmentStreamIds];
}
}];
}];
CleanupLogDebug(@"%@ attachmentIds: %zd", self.logTag, attachmentIds.count);
CleanupLogDebug(@"%@ messageAttachmentIds: %zd", self.logTag, messageAttachmentIds.count);
CleanupLogDebug(@"%@ quotedReplyThumbnailAttachmentIds: %zd", self.logTag, quotedReplyThumbnailAttachmentIds.count);
NSMutableSet<NSString *> *orphanAttachmentIds = [attachmentIds mutableCopy];
[orphanAttachmentIds minusSet:messageAttachmentIds];
[orphanAttachmentIds minusSet:quotedReplyThumbnailAttachmentIds];
NSMutableSet<NSString *> *missingAttachmentIds = [messageAttachmentIds mutableCopy];
[missingAttachmentIds minusSet:attachmentIds];

Loading…
Cancel
Save