| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- //
- // 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 localizedReplace(.quickMeetingText, replace: userName)
- } 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("xx's quick conference")
- }
- }
|