| 
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -43,6 +43,37 @@ public final class ProfilePictureView : UIView {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    // MARK: Updating
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    @objc(updateForThread:)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    public func update(for thread: TSThread) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        openGroupProfilePicture = nil
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        if thread.isGroupThread() {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            if thread.name() == "Loki Public Chat"
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                || thread.name() == "Session Public Chat" { // Override the profile picture for the Loki Public Chat and the Session Public Chat
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                hexEncodedPublicKey = ""
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                isRSSFeed = true
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            } else if let openGroupProfilePicture = (thread as! TSGroupThread).groupModel.groupImage { // An open group with a profile picture
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                self.openGroupProfilePicture = openGroupProfilePicture
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                isRSSFeed = false
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            } else if (thread as! TSGroupThread).groupModel.groupType == .openGroup
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                || (thread as! TSGroupThread).groupModel.groupType == .rssFeed { // An open group without a profile picture or an RSS feed
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                hexEncodedPublicKey = ""
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                isRSSFeed = true
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            } else { // A closed group
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                var users = MentionsManager.userPublicKeyCache[thread.uniqueId!] ?? []
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                users.remove(getUserHexEncodedPublicKey())
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                let randomUsers = users.sorted().prefix(2) // Sort to provide a level of stability
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                hexEncodedPublicKey = randomUsers.count >= 1 ? randomUsers[0] : ""
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                additionalHexEncodedPublicKey = randomUsers.count >= 2 ? randomUsers[1] : ""
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                isRSSFeed = false
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        } else { // A one-on-one chat
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            hexEncodedPublicKey = thread.contactIdentifier()!
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            additionalHexEncodedPublicKey = nil
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            isRSSFeed = false
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        update()
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    @objc public func update() {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        AssertIsOnMainThread()
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        func getProfilePicture(of size: CGFloat, for hexEncodedPublicKey: String) -> UIImage? {
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
			
			 | 
			 | 
			
				
 
 |