|  |  |  | @ -36,6 +36,8 @@ NSString *const kLocalProfileUniqueId = @"kLocalProfileUniqueId"; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | @implementation OWSUserProfile | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | @synthesize avatarUrlPath = _avatarUrlPath; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | + (NSString *)collection | 
		
	
		
			
				|  |  |  |  | { | 
		
	
		
			
				|  |  |  |  |     // Legacy class name. | 
		
	
	
		
			
				
					|  |  |  | @ -91,6 +93,35 @@ NSString *const kLocalProfileUniqueId = @"kLocalProfileUniqueId"; | 
		
	
		
			
				|  |  |  |  |     return self; | 
		
	
		
			
				|  |  |  |  | } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | - (nullable NSString *)avatarUrlPath | 
		
	
		
			
				|  |  |  |  | { | 
		
	
		
			
				|  |  |  |  |     @synchronized(self) | 
		
	
		
			
				|  |  |  |  |     { | 
		
	
		
			
				|  |  |  |  |         return _avatarUrlPath; | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  | } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | - (void)setAvatarUrlPath:(nullable NSString *)avatarUrlPath | 
		
	
		
			
				|  |  |  |  | { | 
		
	
		
			
				|  |  |  |  |     @synchronized(self) | 
		
	
		
			
				|  |  |  |  |     { | 
		
	
		
			
				|  |  |  |  |         BOOL didChange; | 
		
	
		
			
				|  |  |  |  |         if (_avatarUrlPath == nil && avatarUrlPath == nil) { | 
		
	
		
			
				|  |  |  |  |             didChange = NO; | 
		
	
		
			
				|  |  |  |  |         } else if (_avatarUrlPath != nil && avatarUrlPath != nil) { | 
		
	
		
			
				|  |  |  |  |             didChange = YES; | 
		
	
		
			
				|  |  |  |  |         } else { | 
		
	
		
			
				|  |  |  |  |             didChange = [_avatarUrlPath isEqualToString:avatarUrlPath]; | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         if (didChange) { | 
		
	
		
			
				|  |  |  |  |             // If the avatarURL changed, the avatarFileName can't be valid. | 
		
	
		
			
				|  |  |  |  |             // Clear it. | 
		
	
		
			
				|  |  |  |  |             self.avatarFileName = nil; | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  | } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | #pragma mark - Update With... Methods | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | // Similar in spirit to [TSYapDatabaseObject applyChangeToSelfAndLatestCopy], | 
		
	
	
		
			
				
					|  |  |  | @ -122,13 +153,6 @@ NSString *const kLocalProfileUniqueId = @"kLocalProfileUniqueId"; | 
		
	
		
			
				|  |  |  |  |                     @"%@ Ignoring redundant update in %s: %@", self.logTag, functionName, self.debugDescription); | 
		
	
		
			
				|  |  |  |  |                 didChange = NO; | 
		
	
		
			
				|  |  |  |  |             } else { | 
		
	
		
			
				|  |  |  |  |                 NSString *_Nullable oldAvatarUrlPath = beforeSnapshot[@"avatarUrlPath"]; | 
		
	
		
			
				|  |  |  |  |                 if (!latestInstance.avatarUrlPath || ![latestInstance.avatarUrlPath isEqual:oldAvatarUrlPath]) { | 
		
	
		
			
				|  |  |  |  |                     // If the avatarURL changed, the avatarFileName can't be valid. | 
		
	
		
			
				|  |  |  |  |                     // Clear it. | 
		
	
		
			
				|  |  |  |  |                     latestInstance.avatarFileName = nil; | 
		
	
		
			
				|  |  |  |  |                 } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |                 [latestInstance saveWithTransaction:transaction]; | 
		
	
		
			
				|  |  |  |  |             } | 
		
	
		
			
				|  |  |  |  |         } else { | 
		
	
	
		
			
				
					|  |  |  | @ -183,6 +207,8 @@ NSString *const kLocalProfileUniqueId = @"kLocalProfileUniqueId"; | 
		
	
		
			
				|  |  |  |  | { | 
		
	
		
			
				|  |  |  |  |     [self applyChanges:^(OWSUserProfile *userProfile) { | 
		
	
		
			
				|  |  |  |  |         [userProfile setProfileName:[profileName ows_stripped]]; | 
		
	
		
			
				|  |  |  |  |         // Always setAvatarUrlPath: before you setAvatarFileName: since | 
		
	
		
			
				|  |  |  |  |         // setAvatarUrlPath: may clear the avatar filename. | 
		
	
		
			
				|  |  |  |  |         [userProfile setAvatarUrlPath:avatarUrlPath]; | 
		
	
		
			
				|  |  |  |  |         [userProfile setAvatarFileName:avatarFileName]; | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
	
		
			
				
					|  |  |  | @ -211,6 +237,8 @@ NSString *const kLocalProfileUniqueId = @"kLocalProfileUniqueId"; | 
		
	
		
			
				|  |  |  |  |                      completion:(nullable OWSUserProfileCompletion)completion | 
		
	
		
			
				|  |  |  |  | { | 
		
	
		
			
				|  |  |  |  |     [self applyChanges:^(OWSUserProfile *userProfile) { | 
		
	
		
			
				|  |  |  |  |         // Always setAvatarUrlPath: before you setAvatarFileName: since | 
		
	
		
			
				|  |  |  |  |         // setAvatarUrlPath: may clear the avatar filename. | 
		
	
		
			
				|  |  |  |  |         [userProfile setAvatarUrlPath:avatarUrlPath]; | 
		
	
		
			
				|  |  |  |  |         [userProfile setAvatarFileName:avatarFileName]; | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
	
		
			
				
					|  |  |  | @ -238,6 +266,8 @@ NSString *const kLocalProfileUniqueId = @"kLocalProfileUniqueId"; | 
		
	
		
			
				|  |  |  |  |     [self applyChanges:^(OWSUserProfile *userProfile) { | 
		
	
		
			
				|  |  |  |  |         [userProfile setProfileKey:profileKey]; | 
		
	
		
			
				|  |  |  |  |         [userProfile setProfileName:nil]; | 
		
	
		
			
				|  |  |  |  |         // Always setAvatarUrlPath: before you setAvatarFileName: since | 
		
	
		
			
				|  |  |  |  |         // setAvatarUrlPath: may clear the avatar filename. | 
		
	
		
			
				|  |  |  |  |         [userProfile setAvatarUrlPath:nil]; | 
		
	
		
			
				|  |  |  |  |         [userProfile setAvatarFileName:nil]; | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
	
		
			
				
					|  |  |  | 
 |