diff --git a/Session/Signal/ConversationView/ConversationViewController.m b/Session/Signal/ConversationView/ConversationViewController.m index f9849191e..91f8cfd1d 100644 --- a/Session/Signal/ConversationView/ConversationViewController.m +++ b/Session/Signal/ConversationView/ConversationViewController.m @@ -46,7 +46,7 @@ #import #import #import -#import +#import #import #import #import diff --git a/Session/Signal/OWSConversationSettingsViewController.m b/Session/Signal/OWSConversationSettingsViewController.m index 9cf4d70c3..c04248bab 100644 --- a/Session/Signal/OWSConversationSettingsViewController.m +++ b/Session/Signal/OWSConversationSettingsViewController.m @@ -19,7 +19,7 @@ #import #import -#import +#import #import #import #import diff --git a/Session/Signal/OWSOrphanDataCleaner.m b/Session/Signal/OWSOrphanDataCleaner.m index 29490b5b0..b494abb91 100644 --- a/Session/Signal/OWSOrphanDataCleaner.m +++ b/Session/Signal/OWSOrphanDataCleaner.m @@ -6,7 +6,7 @@ #import "DateUtil.h" #import #import -#import +#import #import #import #import diff --git a/SessionMessagingKit/Database/Storage+Shared.swift b/SessionMessagingKit/Database/Storage+Shared.swift index 1a81fccba..e698b0c3d 100644 --- a/SessionMessagingKit/Database/Storage+Shared.swift +++ b/SessionMessagingKit/Database/Storage+Shared.swift @@ -25,4 +25,12 @@ extension Storage { public func getUserDisplayName() -> String? { return SSKEnvironment.shared.profileManager.localProfileName() } + + public func getUserProfileKey() -> Data? { + return SSKEnvironment.shared.profileManager.localProfileKey().keyData + } + + public func getUserProfilePictureURL() -> String? { + return SSKEnvironment.shared.profileManager.profilePictureURL() + } } diff --git a/SessionMessagingKit/Messages/Signal/TSIncomingMessage+Conversion.swift b/SessionMessagingKit/Messages/Signal/TSIncomingMessage+Conversion.swift index 05762914d..0076d31f8 100644 --- a/SessionMessagingKit/Messages/Signal/TSIncomingMessage+Conversion.swift +++ b/SessionMessagingKit/Messages/Signal/TSIncomingMessage+Conversion.swift @@ -3,16 +3,20 @@ public extension TSIncomingMessage { static func from(_ visibleMessage: VisibleMessage, associatedWith thread: TSThread) -> TSIncomingMessage { let sender = visibleMessage.sender! + var expiration: UInt32 = 0 + Storage.read { transaction in + expiration = thread.disappearingMessagesDuration(with: transaction) + } let result = TSIncomingMessage( timestamp: visibleMessage.sentTimestamp!, in: thread, authorId: sender, sourceDeviceId: 1, messageBody: visibleMessage.text!, - attachmentIds: [], - expiresInSeconds: 0, + attachmentIds: visibleMessage.attachmentIDs, + expiresInSeconds: expiration, quotedMessage: TSQuotedMessage.from(visibleMessage.quote), - linkPreview: nil, + linkPreview: OWSLinkPreview.from(visibleMessage.linkPreview), serverTimestamp: nil, wasReceivedByUD: true ) diff --git a/SessionMessagingKit/Messages/Signal/TSOutgoingMessage+Conversion.swift b/SessionMessagingKit/Messages/Signal/TSOutgoingMessage+Conversion.swift index 3f0ec8d85..0ab7a70b4 100644 --- a/SessionMessagingKit/Messages/Signal/TSOutgoingMessage+Conversion.swift +++ b/SessionMessagingKit/Messages/Signal/TSOutgoingMessage+Conversion.swift @@ -11,13 +11,13 @@ outgoingMessageWithTimestamp: visibleMessage.sentTimestamp!, in: thread, messageBody: visibleMessage.text, - attachmentIds: NSMutableArray(), + attachmentIds: NSMutableArray(array: visibleMessage.attachmentIDs), expiresInSeconds: expiration, expireStartedAt: 0, isVoiceMessage: false, groupMetaMessage: .unspecified, quotedMessage: TSQuotedMessage.from(visibleMessage.quote), - linkPreview: nil + linkPreview: OWSLinkPreview.from(visibleMessage.linkPreview) ) } } diff --git a/SessionMessagingKit/Meta/SessionMessagingKit.h b/SessionMessagingKit/Meta/SessionMessagingKit.h index 1a44bbacf..f53ee7cfb 100644 --- a/SessionMessagingKit/Meta/SessionMessagingKit.h +++ b/SessionMessagingKit/Meta/SessionMessagingKit.h @@ -27,6 +27,7 @@ FOUNDATION_EXPORT const unsigned char SessionMessagingKitVersionString[]; #import #import #import +#import #import #import #import diff --git a/SessionMessagingKit/Sending & Receiving/Blocking/OWSBlockingManager.h b/SessionMessagingKit/Sending & Receiving/Blocking/OWSBlockingManager.h index 95ef4913a..a470f6e4e 100644 --- a/SessionMessagingKit/Sending & Receiving/Blocking/OWSBlockingManager.h +++ b/SessionMessagingKit/Sending & Receiving/Blocking/OWSBlockingManager.h @@ -44,8 +44,6 @@ extern NSString *const kOWSBlockingManager_BlockListCollection; - (BOOL)isGroupIdBlocked:(NSData *)groupId; - (BOOL)isThreadBlocked:(TSThread *)thread; -- (void)syncBlockList; - @end NS_ASSUME_NONNULL_END diff --git a/SessionMessagingKit/Sending & Receiving/Link Previews/OWSLinkPreview+Conversion.swift b/SessionMessagingKit/Sending & Receiving/Link Previews/OWSLinkPreview+Conversion.swift new file mode 100644 index 000000000..5f4e4ee62 --- /dev/null +++ b/SessionMessagingKit/Sending & Receiving/Link Previews/OWSLinkPreview+Conversion.swift @@ -0,0 +1,7 @@ + +extension OWSLinkPreview { + + public static func from(_ linkPreview: VisibleMessage.LinkPreview?) -> OWSLinkPreview? { + return nil // TODO: Implement + } +} diff --git a/SessionMessagingKit/Sending & Receiving/MessageReceiver+Handling.swift b/SessionMessagingKit/Sending & Receiving/MessageReceiver+Handling.swift index daad909c6..f2236ac8c 100644 --- a/SessionMessagingKit/Sending & Receiving/MessageReceiver+Handling.swift +++ b/SessionMessagingKit/Sending & Receiving/MessageReceiver+Handling.swift @@ -146,12 +146,14 @@ extension MessageReceiver { let attachmentIDs = storage.persist(attachments, using: transaction) message.attachmentIDs = attachmentIDs // Update profile if needed - if let profile = message.profile { + if let newProfile = message.profile { let profileManager = SSKEnvironment.shared.profileManager - if let displayName = profile.displayName { + let oldProfile = OWSUserProfile.fetch(uniqueId: message.sender!, transaction: transaction) + if let displayName = newProfile.displayName, displayName != oldProfile?.profileName { profileManager.updateProfileForContact(withID: message.sender!, displayName: displayName, with: transaction) } - if let profileKey = profile.profileKey, let profilePictureURL = profile.profilePictureURL, profileKey.count == kAES256_KeyByteLength { + if let profileKey = newProfile.profileKey, let profilePictureURL = newProfile.profilePictureURL, profileKey.count == kAES256_KeyByteLength, + profileKey != oldProfile?.profileKey?.keyData { profileManager.setProfileKeyData(profileKey, forRecipientId: message.sender!, avatarURL: profilePictureURL) } } diff --git a/SessionMessagingKit/Sending & Receiving/MessageSender.swift b/SessionMessagingKit/Sending & Receiving/MessageSender.swift index d16b9d997..e6370812a 100644 --- a/SessionMessagingKit/Sending & Receiving/MessageSender.swift +++ b/SessionMessagingKit/Sending & Receiving/MessageSender.swift @@ -74,6 +74,15 @@ public final class MessageSender : NSObject { } // Validate the message guard message.isValid else { seal.reject(Error.invalidMessage); return promise } + // Attach the user's profile if needed + if let message = message as? VisibleMessage { + let displayName = storage.getUserDisplayName()! + if let profileKey = storage.getUserProfileKey(), let profilePictureURL = storage.getUserProfilePictureURL() { + message.profile = VisibleMessage.Profile(displayName: displayName, profileKey: profileKey, profilePictureURL: profilePictureURL) + } else { + message.profile = VisibleMessage.Profile(displayName: displayName) + } + } // Convert it to protobuf guard let proto = message.toProto() else { seal.reject(Error.protoConversionFailed); return promise } // Serialize the protobuf diff --git a/SessionMessagingKit/Storage.swift b/SessionMessagingKit/Storage.swift index 0d55606e5..9855ba670 100644 --- a/SessionMessagingKit/Storage.swift +++ b/SessionMessagingKit/Storage.swift @@ -12,6 +12,8 @@ public protocol SessionMessagingKitStorageProtocol { func getUserPublicKey() -> String? func getUserKeyPair() -> ECKeyPair? func getUserDisplayName() -> String? + func getUserProfileKey() -> Data? + func getUserProfilePictureURL() -> String? // MARK: - Signal Protocol diff --git a/SignalUtilitiesKit/To Do/OWSUserProfile.h b/SessionMessagingKit/To Do/OWSUserProfile.h similarity index 100% rename from SignalUtilitiesKit/To Do/OWSUserProfile.h rename to SessionMessagingKit/To Do/OWSUserProfile.h diff --git a/SignalUtilitiesKit/To Do/OWSUserProfile.m b/SessionMessagingKit/To Do/OWSUserProfile.m similarity index 92% rename from SignalUtilitiesKit/To Do/OWSUserProfile.m rename to SessionMessagingKit/To Do/OWSUserProfile.m index 99f9368d1..7e18a8d3b 100644 --- a/SignalUtilitiesKit/To Do/OWSUserProfile.m +++ b/SessionMessagingKit/To Do/OWSUserProfile.m @@ -4,16 +4,13 @@ #import "OWSUserProfile.h" #import - - -#import -#import -#import -#import #import #import -#import #import +#import +#import +#import +#import #import #import @@ -73,8 +70,6 @@ NSString *const kLocalProfileUniqueId = @"kLocalProfileUniqueId"; + (OWSUserProfile *)getOrBuildUserProfileForRecipientId:(NSString *)recipientId transaction:(YapDatabaseReadWriteTransaction *)transaction { - OWSAssertDebug(recipientId.length > 0); - OWSUserProfile *userProfile = [OWSUserProfile fetchObjectWithUniqueID:recipientId transaction:transaction]; if (!userProfile) { @@ -87,8 +82,6 @@ NSString *const kLocalProfileUniqueId = @"kLocalProfileUniqueId"; } } - OWSAssertDebug(userProfile); - return userProfile; } @@ -110,7 +103,6 @@ NSString *const kLocalProfileUniqueId = @"kLocalProfileUniqueId"; return self; } - OWSAssertDebug(recipientId.length > 0); _recipientId = recipientId; return self; @@ -120,8 +112,6 @@ NSString *const kLocalProfileUniqueId = @"kLocalProfileUniqueId"; - (TSAccountManager *)tsAccountManager { - OWSAssertDebug(SSKEnvironment.shared.tsAccountManager); - return SSKEnvironment.shared.tsAccountManager; } @@ -223,7 +213,6 @@ NSString *const kLocalProfileUniqueId = @"kLocalProfileUniqueId"; NSDictionary *afterSnapshot = [latestInstance.dictionaryValue copy]; if ([beforeSnapshot isEqual:afterSnapshot]) { - OWSLogVerbose(@"Ignoring redundant update in %s: %@", functionName, self.debugDescription); didChange = NO; } else { [latestInstance saveWithTransaction:transaction]; @@ -373,8 +362,6 @@ NSString *const kLocalProfileUniqueId = @"kLocalProfileUniqueId"; transaction:(YapDatabaseReadWriteTransaction *)transaction completion:(nullable OWSUserProfileCompletion)completion { - OWSAssertDebug(profileKey); - [self applyChanges:^(OWSUserProfile *userProfile) { [userProfile setProfileKey:profileKey]; } @@ -387,29 +374,21 @@ NSString *const kLocalProfileUniqueId = @"kLocalProfileUniqueId"; - (YapDatabaseConnection *)dbReadConnection { - OWSFailDebug(@"UserProfile should always use OWSProfileManager's database connection."); - return TSYapDatabaseObject.dbReadConnection; } + (YapDatabaseConnection *)dbReadConnection { - OWSFailDebug(@"UserProfile should always use OWSProfileManager's database connection."); - return TSYapDatabaseObject.dbReadConnection; } - (YapDatabaseConnection *)dbReadWriteConnection { - OWSFailDebug(@"UserProfile should always use OWSProfileManager's database connection."); - return TSYapDatabaseObject.dbReadWriteConnection; } + (YapDatabaseConnection *)dbReadWriteConnection { - OWSFailDebug(@"UserProfile should always use OWSProfileManager's database connection."); - return TSYapDatabaseObject.dbReadWriteConnection; } @@ -417,7 +396,7 @@ NSString *const kLocalProfileUniqueId = @"kLocalProfileUniqueId"; - (NSString *)debugDescription { return [NSString stringWithFormat:@"%@ %p %@ %lu %@ %@ %@", - self.logTag, + @"OWSUserProfile", self, self.recipientId, (unsigned long)self.profileKey.keyData.length, @@ -463,8 +442,6 @@ NSString *const kLocalProfileUniqueId = @"kLocalProfileUniqueId"; + (nullable NSError *)migrateToSharedData { - OWSLogInfo(@""); - return [OWSFileSystem moveAppFilePath:self.legacyProfileAvatarsDirPath sharedDataFilePath:self.sharedDataProfileAvatarsDirPath]; } @@ -485,13 +462,8 @@ NSString *const kLocalProfileUniqueId = @"kLocalProfileUniqueId"; + (void)resetProfileStorage { - OWSAssertIsOnMainThread(); - NSError *error; [[NSFileManager defaultManager] removeItemAtPath:[self profileAvatarsDirPath] error:&error]; - if (error) { - OWSLogError(@"Failed to delete database: %@", error.description); - } } + (NSSet *)allProfileAvatarFilePaths @@ -504,8 +476,6 @@ NSString *const kLocalProfileUniqueId = @"kLocalProfileUniqueId"; enumerateCollectionObjectsWithTransaction:transaction usingBlock:^(id object, BOOL *stop) { if (![object isKindOfClass:[OWSUserProfile class]]) { - OWSFailDebug( - @"unexpected object in user profiles: %@", [object class]); return; } OWSUserProfile *userProfile = object; diff --git a/Signal.xcodeproj/project.pbxproj b/Signal.xcodeproj/project.pbxproj index ac88a5784..d1d0b9d24 100644 --- a/Signal.xcodeproj/project.pbxproj +++ b/Signal.xcodeproj/project.pbxproj @@ -242,6 +242,9 @@ B85357BF23A1AE0800AAF6CD /* SeedReminderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B85357BE23A1AE0800AAF6CD /* SeedReminderView.swift */; }; B85357C323A1BD1200AAF6CD /* SeedVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = B85357C223A1BD1200AAF6CD /* SeedVC.swift */; }; B8544E3323D50E4900299F14 /* AppearanceUtilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8544E3223D50E4900299F14 /* AppearanceUtilities.swift */; }; + B8566C63256F55930045A0B9 /* OWSLinkPreview+Conversion.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8566C62256F55930045A0B9 /* OWSLinkPreview+Conversion.swift */; }; + B8566C6C256F60F50045A0B9 /* OWSUserProfile.m in Sources */ = {isa = PBXBuildFile; fileRef = C38EF2D1255B6DAF007E1867 /* OWSUserProfile.m */; }; + B8566C7D256F62030045A0B9 /* OWSUserProfile.h in Headers */ = {isa = PBXBuildFile; fileRef = C38EF2D3255B6DAF007E1867 /* OWSUserProfile.h */; settings = {ATTRIBUTES = (Public, ); }; }; B86BD08423399ACF000F5AE3 /* Modal.swift in Sources */ = {isa = PBXBuildFile; fileRef = B86BD08323399ACF000F5AE3 /* Modal.swift */; }; B86BD08623399CEF000F5AE3 /* SeedModal.swift in Sources */ = {isa = PBXBuildFile; fileRef = B86BD08523399CEF000F5AE3 /* SeedModal.swift */; }; B8783E9E23EB948D00404FB8 /* UILabel+Interaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8783E9D23EB948D00404FB8 /* UILabel+Interaction.swift */; }; @@ -612,9 +615,7 @@ C38EF2B3255B6D9C007E1867 /* UIViewController+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = C38EF2B1255B6D9C007E1867 /* UIViewController+Utilities.swift */; }; C38EF2B4255B6D9C007E1867 /* UIView+Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = C38EF2B2255B6D9C007E1867 /* UIView+Utilities.swift */; }; C38EF2D4255B6DAF007E1867 /* OWSProfileManager.m in Sources */ = {isa = PBXBuildFile; fileRef = C38EF2CF255B6DAE007E1867 /* OWSProfileManager.m */; }; - C38EF2D6255B6DAF007E1867 /* OWSUserProfile.m in Sources */ = {isa = PBXBuildFile; fileRef = C38EF2D1255B6DAF007E1867 /* OWSUserProfile.m */; }; C38EF2D7255B6DAF007E1867 /* OWSProfileManager.h in Headers */ = {isa = PBXBuildFile; fileRef = C38EF2D2255B6DAF007E1867 /* OWSProfileManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C38EF2D8255B6DAF007E1867 /* OWSUserProfile.h in Headers */ = {isa = PBXBuildFile; fileRef = C38EF2D3255B6DAF007E1867 /* OWSUserProfile.h */; settings = {ATTRIBUTES = (Public, ); }; }; C38EF30C255B6DBF007E1867 /* OWSScreenLock.swift in Sources */ = {isa = PBXBuildFile; fileRef = C38EF2E2255B6DB9007E1867 /* OWSScreenLock.swift */; }; C38EF30D255B6DBF007E1867 /* OWSUnreadIndicator.m in Sources */ = {isa = PBXBuildFile; fileRef = C38EF2E3255B6DB9007E1867 /* OWSUnreadIndicator.m */; }; C38EF30E255B6DBF007E1867 /* FullTextSearcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = C38EF2E4255B6DB9007E1867 /* FullTextSearcher.swift */; }; @@ -1348,6 +1349,7 @@ B85357C223A1BD1200AAF6CD /* SeedVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SeedVC.swift; sourceTree = ""; }; B8544E3023D16CA500299F14 /* DeviceUtilities.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeviceUtilities.swift; sourceTree = ""; }; B8544E3223D50E4900299F14 /* AppearanceUtilities.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppearanceUtilities.swift; sourceTree = ""; }; + B8566C62256F55930045A0B9 /* OWSLinkPreview+Conversion.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "OWSLinkPreview+Conversion.swift"; sourceTree = ""; }; B86BD08323399ACF000F5AE3 /* Modal.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Modal.swift; sourceTree = ""; }; B86BD08523399CEF000F5AE3 /* SeedModal.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SeedModal.swift; sourceTree = ""; }; B8783E9D23EB948D00404FB8 /* UILabel+Interaction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UILabel+Interaction.swift"; sourceTree = ""; }; @@ -1725,9 +1727,9 @@ C38EF2BE255B6DA6007E1867 /* TSUnreadIndicatorInteraction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TSUnreadIndicatorInteraction.h; path = "SessionMessagingKit/Sending & Receiving/Read Tracking/TSUnreadIndicatorInteraction.h"; sourceTree = SOURCE_ROOT; }; C38EF2C1255B6DA6007E1867 /* TSUnreadIndicatorInteraction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TSUnreadIndicatorInteraction.m; path = "SessionMessagingKit/Sending & Receiving/Read Tracking/TSUnreadIndicatorInteraction.m"; sourceTree = SOURCE_ROOT; }; C38EF2CF255B6DAE007E1867 /* OWSProfileManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OWSProfileManager.m; path = "SignalUtilitiesKit/To Do/OWSProfileManager.m"; sourceTree = SOURCE_ROOT; }; - C38EF2D1255B6DAF007E1867 /* OWSUserProfile.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OWSUserProfile.m; path = "SignalUtilitiesKit/To Do/OWSUserProfile.m"; sourceTree = SOURCE_ROOT; }; + C38EF2D1255B6DAF007E1867 /* OWSUserProfile.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OWSUserProfile.m; path = "SessionMessagingKit/To Do/OWSUserProfile.m"; sourceTree = SOURCE_ROOT; }; C38EF2D2255B6DAF007E1867 /* OWSProfileManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OWSProfileManager.h; path = "SignalUtilitiesKit/To Do/OWSProfileManager.h"; sourceTree = SOURCE_ROOT; }; - C38EF2D3255B6DAF007E1867 /* OWSUserProfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OWSUserProfile.h; path = "SignalUtilitiesKit/To Do/OWSUserProfile.h"; sourceTree = SOURCE_ROOT; }; + C38EF2D3255B6DAF007E1867 /* OWSUserProfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OWSUserProfile.h; path = "SessionMessagingKit/To Do/OWSUserProfile.h"; sourceTree = SOURCE_ROOT; }; C38EF2E2255B6DB9007E1867 /* OWSScreenLock.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = OWSScreenLock.swift; path = SignalUtilitiesKit/OWSScreenLock.swift; sourceTree = SOURCE_ROOT; }; C38EF2E3255B6DB9007E1867 /* OWSUnreadIndicator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OWSUnreadIndicator.m; path = SignalUtilitiesKit/OWSUnreadIndicator.m; sourceTree = SOURCE_ROOT; }; C38EF2E4255B6DB9007E1867 /* FullTextSearcher.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = FullTextSearcher.swift; path = SignalUtilitiesKit/FullTextSearcher.swift; sourceTree = SOURCE_ROOT; }; @@ -2820,6 +2822,8 @@ C33FDAFF255A580600E217F9 /* DisplayNameUtilities.swift */, C33FDAA0255A57FF00E217F9 /* OWSRecipientIdentity.h */, C33FDBEC255A581B00E217F9 /* OWSRecipientIdentity.m */, + C38EF2D3255B6DAF007E1867 /* OWSUserProfile.h */, + C38EF2D1255B6DAF007E1867 /* OWSUserProfile.m */, C32C5C92256DD12D003C73A2 /* OWSUDManager.swift */, C33FDBB9255A581600E217F9 /* ProfileManagerProtocol.h */, C33FDAEC255A580500E217F9 /* SignalRecipient.h */, @@ -2858,6 +2862,7 @@ isa = PBXGroup; children = ( C33FDBA8255A581500E217F9 /* OWSLinkPreview.swift */, + B8566C62256F55930045A0B9 /* OWSLinkPreview+Conversion.swift */, ); path = "Link Previews"; sourceTree = ""; @@ -3205,8 +3210,6 @@ C38EF3EB255B6DF6007E1867 /* ContactTableViewCell.m */, C38EF2D2255B6DAF007E1867 /* OWSProfileManager.h */, C38EF2CF255B6DAE007E1867 /* OWSProfileManager.m */, - C38EF2D3255B6DAF007E1867 /* OWSUserProfile.h */, - C38EF2D1255B6DAF007E1867 /* OWSUserProfile.m */, C33FDBBB255A581600E217F9 /* OWSPrimaryStorage+Loki.h */, C33FDB58255A580E00E217F9 /* OWSPrimaryStorage+Loki.m */, ); @@ -3907,7 +3910,6 @@ C33FDD5B255A582000E217F9 /* OWSOperation.h in Headers */, C38EF291255B6D86007E1867 /* SignalKeyingStorage.h in Headers */, C33FDC89255A582000E217F9 /* OWSAttachmentDownloads.h in Headers */, - C38EF2D8255B6DAF007E1867 /* OWSUserProfile.h in Headers */, C38EF313255B6DBF007E1867 /* OWSUnreadIndicator.h in Headers */, C33FDD7C255A582000E217F9 /* SSKAsserts.h in Headers */, C33FDDA9255A582000E217F9 /* TSStorageKeys.h in Headers */, @@ -4051,6 +4053,7 @@ B8856D3D256F11B2001CE70E /* Environment.h in Headers */, C32C5E7E256DE023003C73A2 /* YapDatabaseTransaction+OWS.h in Headers */, C32C5CAD256DD1DF003C73A2 /* TSAccountManager.h in Headers */, + B8566C7D256F62030045A0B9 /* OWSUserProfile.h in Headers */, C3A3A0F5256E194C004D228D /* OWSRecipientIdentity.h in Headers */, C32C5AB4256DBE8F003C73A2 /* TSOutgoingMessage.h in Headers */, C32C5EA0256DE0D6003C73A2 /* OWSPrimaryStorage.h in Headers */, @@ -5014,7 +5017,6 @@ C33FDD14255A582000E217F9 /* OWSUDManager.swift in Sources */, C33FDDAE255A582000E217F9 /* DisplayNameUtilities2.swift in Sources */, C38EF35C255B6DCC007E1867 /* SelectThreadViewController.m in Sources */, - C38EF2D6255B6DAF007E1867 /* OWSUserProfile.m in Sources */, C38EF30E255B6DBF007E1867 /* FullTextSearcher.swift in Sources */, C33FDDD9255A582000E217F9 /* LokiSessionRestorationImplementation.swift in Sources */, C38EF3FA255B6DF7007E1867 /* DirectionalPanGestureRecognizer.swift in Sources */, @@ -5196,6 +5198,7 @@ C3A71D1E25589AC30043A11F /* WebSocketProto.swift in Sources */, C3A721382558BDFA0043A11F /* OpenGroupMessage.swift in Sources */, C3C2A7852553AAF300C340D1 /* SessionProtos.pb.swift in Sources */, + B8566C63256F55930045A0B9 /* OWSLinkPreview+Conversion.swift in Sources */, C32C5B3F256DC1DF003C73A2 /* TSQuotedMessage+Conversion.swift in Sources */, C3C2A7712553A41E00C340D1 /* ControlMessage.swift in Sources */, C32C5D19256DD493003C73A2 /* OWSLinkPreview.swift in Sources */, @@ -5217,6 +5220,7 @@ C32C5A88256DBCF9003C73A2 /* MessageReceiver+Handling.swift in Sources */, C32C5C1B256DC9E0003C73A2 /* GeneralUtilities.swift in Sources */, C32C5A02256DB658003C73A2 /* MessageSender+Handling.swift in Sources */, + B8566C6C256F60F50045A0B9 /* OWSUserProfile.m in Sources */, C32C5D2E256DD4EA003C73A2 /* TSUnreadIndicatorInteraction.m in Sources */, C32C599E256DB02B003C73A2 /* TypingIndicators.swift in Sources */, C300A5DD2554B06600555489 /* ClosedGroupUpdate.swift in Sources */, diff --git a/SignalUtilitiesKit/Meta/SignalUtilitiesKit.h b/SignalUtilitiesKit/Meta/SignalUtilitiesKit.h index 43d281385..1d8cb1e42 100644 --- a/SignalUtilitiesKit/Meta/SignalUtilitiesKit.h +++ b/SignalUtilitiesKit/Meta/SignalUtilitiesKit.h @@ -35,7 +35,6 @@ FOUNDATION_EXPORT const unsigned char SignalUtilitiesKitVersionString[]; #import #import #import -#import #import #import #import