mirror of https://github.com/oxen-io/session-ios
				
				
				
			
			You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Objective-C
		
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Objective-C
		
	
| //
 | |
| //  Copyright (c) 2017 Open Whisper Systems. All rights reserved.
 | |
| //
 | |
| 
 | |
| #import "OWS105AttachmentFilePaths.h"
 | |
| #import <SignalServiceKit/TSAttachmentStream.h>
 | |
| #import <YapDatabase/YapDatabaseTransaction.h>
 | |
| 
 | |
| NS_ASSUME_NONNULL_BEGIN
 | |
| 
 | |
| // Increment a similar constant for every future DBMigration
 | |
| static NSString *const OWS105AttachmentFilePathsMigrationId = @"105";
 | |
| 
 | |
| @implementation OWS105AttachmentFilePaths
 | |
| 
 | |
| + (NSString *)migrationId
 | |
| {
 | |
|     return OWS105AttachmentFilePathsMigrationId;
 | |
| }
 | |
| 
 | |
| - (void)runUpWithTransaction:(YapDatabaseReadWriteTransaction *)transaction
 | |
| {
 | |
|     OWSAssert(transaction);
 | |
| 
 | |
|     NSMutableArray<TSAttachmentStream *> *attachmentStreams = [NSMutableArray new];
 | |
|     [transaction enumerateKeysAndObjectsInCollection:TSAttachmentStream.collection
 | |
|                                           usingBlock:^(NSString *key, TSAttachment *attachment, BOOL *stop) {
 | |
|                                               if (![attachment isKindOfClass:[TSAttachmentStream class]]) {
 | |
|                                                   return;
 | |
|                                               }
 | |
|                                               TSAttachmentStream *attachmentStream = (TSAttachmentStream *)attachment;
 | |
|                                               [attachmentStreams addObject:attachmentStream];
 | |
|                                           }];
 | |
| 
 | |
|     DDLogInfo(@"Saving %zd attachment streams.", attachmentStreams.count);
 | |
| 
 | |
|     // Persist the new localRelativeFilePath property of TSAttachmentStream.
 | |
|     // For performance, we want to upgrade all existing attachment streams in
 | |
|     // a single transaction.
 | |
|     for (TSAttachmentStream *attachmentStream in attachmentStreams) {
 | |
|         [attachmentStream saveWithTransaction:transaction];
 | |
|     }
 | |
| }
 | |
| 
 | |
| @end
 | |
| 
 | |
| NS_ASSUME_NONNULL_END
 |