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.
		
		
		
		
		
			
		
			
	
	
		
			25 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Swift
		
	
		
		
			
		
	
	
			25 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Swift
		
	
| 
											5 years ago
										 | 
 | ||
|  | @objc(LKDisplayNameUtilities2) | ||
|  | public final class DisplayNameUtilities2 : NSObject { | ||
|  | 
 | ||
|  |     private override init() { } | ||
|  | 
 | ||
|  |     @objc(getDisplayNameForPublicKey:threadID:transaction:) | ||
|  |     public static func getDisplayName(for publicKey: String, inThreadWithID threadID: String, using transaction: YapDatabaseReadWriteTransaction) -> String { | ||
|  |         // Case 1: The public key belongs to the user themselves | ||
|  |         if publicKey == getUserHexEncodedPublicKey() { return SSKEnvironment.shared.profileManager.localProfileName() ?? publicKey } | ||
|  |         // Case 2: The given thread is an open group | ||
| 
											5 years ago
										 |         if let openGroup = Storage.shared.getOpenGroup(for: threadID) { | ||
| 
											5 years ago
										 |             var displayName: String? = nil | ||
|  |             Storage.read { transaction in | ||
|  |                 displayName = transaction.object(forKey: publicKey, inCollection: openGroup.id) as! String? | ||
|  |             } | ||
|  |             if let displayName = displayName { return displayName } | ||
|  |         } | ||
|  |         // Case 3: The given thread is a closed group or a one-to-one conversation | ||
|  |         // FIXME: The line below opens a write transaction under certain circumstances. We should move away from this and towards passing | ||
|  |         // a write transaction into this function. | ||
|  |         return SSKEnvironment.shared.profileManager.profileNameForRecipient(withID: publicKey) ?? publicKey | ||
|  |     } | ||
|  | } |