增加换肤功能
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
//
|
||||
// RoomMsgViewModel.swift
|
||||
// TUIRoomKit
|
||||
//
|
||||
// Created by janejntang on 2023/5/8.
|
||||
// Copyright © 2023 Tencent. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import TIMCommon
|
||||
import TUICore
|
||||
import RTCRoomEngine
|
||||
|
||||
@objc(RoomMessageBubbleCellData)
|
||||
class RoomMessageBubbleCellData: TUIBubbleMessageCellData {
|
||||
var messageModel: RoomMessageModel?
|
||||
override init(direction: TMsgDirection) {
|
||||
super.init(direction: direction)
|
||||
}
|
||||
override class func getCellData(_ message: V2TIMMessage) -> TUIMessageCellData {
|
||||
let messageModel = RoomMessageModel()
|
||||
messageModel.updateMessage(message: message)
|
||||
if messageModel.roomId == RoomManager.shared.roomId, messageModel.roomState != .destroyed {
|
||||
RoomManager.shared.roomObserver.messageModel.updateMessage(message: message)
|
||||
}
|
||||
let messageCellData = RoomMessageBubbleCellData(direction: message.isSelf ? .MsgDirectionOutgoing : .MsgDirectionIncoming)
|
||||
messageCellData.messageModel = messageModel
|
||||
return messageCellData
|
||||
}
|
||||
|
||||
override class func getDisplayString(_ message: V2TIMMessage) -> String {
|
||||
let businessID = parseBusinessID(message: message)
|
||||
if businessID == BussinessID_GroupRoomMessage {
|
||||
let dict = TUITool.jsonData2Dictionary(message.customElem.data) as? [String: Any]
|
||||
let userName = dict?["ownerName"] as? String ?? ""
|
||||
return userName + .quickMeetingText
|
||||
} else {
|
||||
return super.getDisplayString(message)
|
||||
}
|
||||
}
|
||||
|
||||
private class func parseBusinessID(message: V2TIMMessage?) -> String {
|
||||
guard let message = message else { return "" }
|
||||
let customData = message.customElem.data
|
||||
let dict = TUITool.jsonData2Dictionary(customData)
|
||||
guard let businessID = dict?["businessID"] as? String else { return ""}
|
||||
return businessID
|
||||
}
|
||||
|
||||
deinit {
|
||||
debugPrint("deinit \(self)")
|
||||
}
|
||||
}
|
||||
|
||||
private extension String {
|
||||
static var quickMeetingText: String {
|
||||
localized("'s quick meeting")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user