mirror of
https://github.com/oxen-io/session-ios.git
synced 2023-12-13 21:30:14 +01:00
Fix public chat display name parsing
This commit is contained in:
parent
8b3c2cc32f
commit
a07d50143d
|
@ -47,15 +47,22 @@ public final class LokiPublicChatPoller : NSObject {
|
|||
// Processing logic for incoming messages
|
||||
func processIncomingMessage(_ message: LokiPublicChatMessage) {
|
||||
let storage = OWSPrimaryStorage.shared()
|
||||
var senderHexEncodedPublicKey = ""
|
||||
var masterHexEncodedPublicKey: String? = nil
|
||||
storage.dbReadConnection.read { transaction in
|
||||
senderHexEncodedPublicKey = storage.getMasterHexEncodedPublicKey(for: message.hexEncodedPublicKey, in: transaction) ?? message.hexEncodedPublicKey
|
||||
masterHexEncodedPublicKey = storage.getMasterHexEncodedPublicKey(for: message.hexEncodedPublicKey, in: transaction)
|
||||
}
|
||||
let senderHexEncodedPublicKey = masterHexEncodedPublicKey ?? message.hexEncodedPublicKey
|
||||
func generateDisplayName(from rawDisplayName: String) -> String {
|
||||
let endIndex = senderHexEncodedPublicKey.endIndex
|
||||
let cutoffIndex = senderHexEncodedPublicKey.index(endIndex, offsetBy: -8)
|
||||
return "\(rawDisplayName) (...\(senderHexEncodedPublicKey[cutoffIndex..<endIndex]))"
|
||||
}
|
||||
var senderDisplayName = ""
|
||||
if let masterHexEncodedPublicKey = masterHexEncodedPublicKey {
|
||||
senderDisplayName = DisplayNameUtilities.getPublicChatDisplayName(for: senderHexEncodedPublicKey, in: publicChat.channel, on: publicChat.server) ?? generateDisplayName(from: NSLocalizedString("Anonymous", comment: ""))
|
||||
} else {
|
||||
senderDisplayName = generateDisplayName(from: message.displayName)
|
||||
}
|
||||
let endIndex = senderHexEncodedPublicKey.endIndex
|
||||
let cutoffIndex = senderHexEncodedPublicKey.index(endIndex, offsetBy: -8)
|
||||
// FIXME: The display name code below relies on LokiStorageAPI.getDeviceLinks(...) getting and storing display names, which it shouldn't be doing.
|
||||
let rawDisplayName = DisplayNameUtilities.getPublicChatDisplayName(for: senderHexEncodedPublicKey, in: publicChat.channel, on: publicChat.server) ?? message.displayName
|
||||
let senderDisplayName = "\(rawDisplayName) (...\(senderHexEncodedPublicKey[cutoffIndex..<endIndex]))"
|
||||
let id = publicChat.idAsData
|
||||
let groupContext = SSKProtoGroupContext.builder(id: id, type: .deliver)
|
||||
groupContext.setName(publicChat.displayName)
|
||||
|
|
Loading…
Reference in a new issue