From 845c4f700aa6da743af24b67cb59a0e5fc12f200 Mon Sep 17 00:00:00 2001 From: Niels Andriesse Date: Tue, 28 May 2019 15:00:18 +1000 Subject: [PATCH] Fix crash --- .../translations/en.lproj/Localizable.strings | 1 + SignalMessaging/profiles/OWSProfileManager.m | 4 ++-- SignalMessaging/profiles/OWSUserProfile.h | 2 +- SignalMessaging/profiles/OWSUserProfile.m | 19 ++++++++++++++----- .../Messages/Interactions/TSOutgoingMessage.m | 2 +- 5 files changed, 19 insertions(+), 9 deletions(-) diff --git a/Signal/translations/en.lproj/Localizable.strings b/Signal/translations/en.lproj/Localizable.strings index 9ae3c8da6..5ade5fcb4 100644 --- a/Signal/translations/en.lproj/Localizable.strings +++ b/Signal/translations/en.lproj/Localizable.strings @@ -2586,3 +2586,4 @@ "%@'s friend request has expired" = "%@'s friend request has expired"; "Your friend request to %@ has expired" = "Your friend request to %@ has expired"; "Show Seed" = "Show Seed"; +"Your Seed" = "Your Seed"; diff --git a/SignalMessaging/profiles/OWSProfileManager.m b/SignalMessaging/profiles/OWSProfileManager.m index 8e344f414..072128081 100644 --- a/SignalMessaging/profiles/OWSProfileManager.m +++ b/SignalMessaging/profiles/OWSProfileManager.m @@ -1441,7 +1441,7 @@ typedef void (^ProfileManagerFailureBlock)(NSError *error); - (nullable NSData *)loadProfileDataWithFilename:(NSString *)filename { - OWSAssertDebug(filename.length > 0); + if (filename.length <= 0) { return nil; }; NSString *filePath = [OWSUserProfile profileAvatarFilepathWithFilename:filename]; return [NSData dataWithContentsOfFile:filePath]; @@ -1473,7 +1473,7 @@ typedef void (^ProfileManagerFailureBlock)(NSError *error); - (void)updateProfileAvatarCache:(nullable UIImage *)image filename:(NSString *)filename { - OWSAssertDebug(filename.length > 0); + if (filename.length <= 0) { return; }; @synchronized(self.profileAvatarImageCache) { diff --git a/SignalMessaging/profiles/OWSUserProfile.h b/SignalMessaging/profiles/OWSUserProfile.h index 5061fb96a..b26638f09 100644 --- a/SignalMessaging/profiles/OWSUserProfile.h +++ b/SignalMessaging/profiles/OWSUserProfile.h @@ -37,7 +37,7 @@ extern NSString *const kLocalProfileUniqueId; + (OWSUserProfile *)getOrBuildUserProfileForRecipientId:(NSString *)recipientId dbConnection:(YapDatabaseConnection *)dbConnection; -+ (OWSUserProfile *)getOrBuildUserProfileForRecipientId:(NSString *)recipientId transaction:(YapDatabaseReadTransaction *)transaction; ++ (OWSUserProfile *)getOrBuildUserProfileForRecipientId:(NSString *)recipientId transaction:(YapDatabaseReadWriteTransaction *)transaction; + (BOOL)localUserProfileExists:(YapDatabaseConnection *)dbConnection; diff --git a/SignalMessaging/profiles/OWSUserProfile.m b/SignalMessaging/profiles/OWSUserProfile.m index 887fb9c3b..91f2ea85c 100644 --- a/SignalMessaging/profiles/OWSUserProfile.m +++ b/SignalMessaging/profiles/OWSUserProfile.m @@ -55,13 +55,13 @@ NSString *const kLocalProfileUniqueId = @"kLocalProfileUniqueId"; dbConnection:(YapDatabaseConnection *)dbConnection { __block OWSUserProfile *userProfile; - [dbConnection readWithBlock:^(YapDatabaseReadTransaction *transaction) { + [dbConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) { userProfile = [OWSUserProfile getOrBuildUserProfileForRecipientId:recipientId transaction:transaction]; }]; return userProfile; } -+ (OWSUserProfile *)getOrBuildUserProfileForRecipientId:(NSString *)recipientId transaction:(YapDatabaseReadTransaction *)transaction ++ (OWSUserProfile *)getOrBuildUserProfileForRecipientId:(NSString *)recipientId transaction:(YapDatabaseReadWriteTransaction *)transaction { OWSAssertDebug(recipientId.length > 0); @@ -72,7 +72,7 @@ NSString *const kLocalProfileUniqueId = @"kLocalProfileUniqueId"; if ([recipientId isEqualToString:kLocalProfileUniqueId]) { [userProfile updateWithProfileKey:[OWSAES256Key generateRandomKey] - dbConnection:transaction.connection + transaction:transaction completion:nil]; } } @@ -364,6 +364,15 @@ NSString *const kLocalProfileUniqueId = @"kLocalProfileUniqueId"; - (void)updateWithProfileKey:(OWSAES256Key *)profileKey dbConnection:(YapDatabaseConnection *)dbConnection completion:(nullable OWSUserProfileCompletion)completion +{ + [dbConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) { + [self updateWithProfileKey:profileKey transaction:transaction completion:completion]; + }]; +} + +- (void)updateWithProfileKey:(OWSAES256Key *)profileKey + transaction:(YapDatabaseReadWriteTransaction *)transaction + completion:(nullable OWSUserProfileCompletion)completion { OWSAssertDebug(profileKey); @@ -371,7 +380,7 @@ NSString *const kLocalProfileUniqueId = @"kLocalProfileUniqueId"; [userProfile setProfileKey:profileKey]; } functionName:__PRETTY_FUNCTION__ - dbConnection:dbConnection + transaction:transaction completion:completion]; } @@ -438,7 +447,7 @@ NSString *const kLocalProfileUniqueId = @"kLocalProfileUniqueId"; + (NSString *)profileAvatarFilepathWithFilename:(NSString *)filename { - OWSAssertDebug(filename.length > 0); + if (filename.length <= 0) { return @""; }; return [self.profileAvatarsDirPath stringByAppendingPathComponent:filename]; } diff --git a/SignalServiceKit/src/Messages/Interactions/TSOutgoingMessage.m b/SignalServiceKit/src/Messages/Interactions/TSOutgoingMessage.m index ab4b9dbb2..0198c819d 100644 --- a/SignalServiceKit/src/Messages/Interactions/TSOutgoingMessage.m +++ b/SignalServiceKit/src/Messages/Interactions/TSOutgoingMessage.m @@ -1104,7 +1104,7 @@ NSString *NSStringForOutgoingMessageRecipientState(OWSOutgoingMessageRecipientSt [ProtoUtils addLocalProfileKeyIfNecessary:self.thread recipientId:recipientId dataMessageBuilder:builder]; id profileManager = SSKEnvironment.shared.profileManager; - NSString *displayName = [profileManager localProfileName]; + NSString *displayName = profileManager.localProfileName; if (displayName != nil) { SSKProtoDataMessageContactBuilder *profileBuilder = [SSKProtoDataMessageContact builder]; SSKProtoDataMessageContactNameBuilder *nameBuilder = [SSKProtoDataMessageContactName builder];