增加换肤功能
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
//
|
||||
// RoomMessageExtensionObserver.swift
|
||||
// TUIRoomKit
|
||||
//
|
||||
// Created by janejntang on 2023/6/2.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import TUICore
|
||||
import TIMCommon
|
||||
|
||||
class RoomMessageExtensionObserver: NSObject {
|
||||
static let shared = RoomMessageExtensionObserver()
|
||||
let roomMessageManager: RoomMessageManager = RoomMessageManager.shared
|
||||
var settingMenuNavigationController: UINavigationController?
|
||||
private override init() {
|
||||
super.init()
|
||||
}
|
||||
@objc private func pushChatExtensionRoomSettingsViewController() {
|
||||
if let nav = settingMenuNavigationController {
|
||||
let vc = ChatExtensionRoomSettingsViewController(isOpenMicrophone: EngineManager.shared.store.isOpenMicrophone,
|
||||
isOpenCamera: EngineManager.shared.store.isOpenCamera)
|
||||
nav.pushViewController(vc, animated: true)
|
||||
}
|
||||
}
|
||||
deinit {
|
||||
debugPrint("deinit \(self)")
|
||||
}
|
||||
}
|
||||
extension RoomMessageExtensionObserver: TUIExtensionProtocol {
|
||||
func onGetExtension(_ key: String, param: [AnyHashable : Any]?) -> [TUIExtensionInfo]? {
|
||||
if key == TUICore_TUIChatExtension_InputViewMoreItem_ClassicExtensionID {
|
||||
guard let groupID = param?[TUICore_TUIChatExtension_InputViewMoreItem_GroupID] as? String, groupID != "" else { return nil }
|
||||
guard let isNeedRoom = param?[TUICore_TUIChatExtension_InputViewMoreItem_FilterRoom] as? Bool, !isNeedRoom else { return nil }
|
||||
let info = TUIExtensionInfo()
|
||||
info.weight = 200
|
||||
info.text = .meetingText
|
||||
let defaultImage = UIImage(named: "room_quick_meeting", in: tuiRoomKitBundle(), compatibleWith: nil) ?? UIImage()
|
||||
info.icon = TUICoreThemeConvert.getTUIDynamicImage(imageKey: "room_quick_meeting_image", defaultImage: defaultImage)
|
||||
info.onClicked = { [weak self] param in
|
||||
guard let self = self else { return }
|
||||
if let vc = param[TUICore_TUIChatExtension_InputViewMoreItem_PushVC] as? UINavigationController {
|
||||
self.roomMessageManager.navigateController = vc
|
||||
}
|
||||
if let groupId = param[TUICore_TUIChatExtension_InputViewMoreItem_GroupID] as? String {
|
||||
self.roomMessageManager.groupId = groupId
|
||||
}
|
||||
self.roomMessageManager.sendRoomMessageToGroup()
|
||||
}
|
||||
return [info]
|
||||
}
|
||||
if key == TUICore_TUIContactExtension_MeSettingMenu_ClassicExtensionID {
|
||||
if let nav = param?[TUICore_TUIContactExtension_MeSettingMenu_Nav] as? UINavigationController {
|
||||
self.settingMenuNavigationController = nav
|
||||
}
|
||||
let data = TUICommonTextCellData()
|
||||
data.key = .roomDeviceSetText
|
||||
data.showAccessory = true
|
||||
let cell = TUICommonTextCell()
|
||||
cell.fill(with: data)
|
||||
cell.mm_h = 60
|
||||
cell.mm_w = UIScreen.main.bounds.width
|
||||
let tap = UITapGestureRecognizer(target: self, action: #selector(pushChatExtensionRoomSettingsViewController))
|
||||
cell.addGestureRecognizer(tap)
|
||||
let info = TUIExtensionInfo()
|
||||
let param = [TUICore_TUIContactExtension_MeSettingMenu_Weight: 460,
|
||||
TUICore_TUIContactExtension_MeSettingMenu_View: cell,
|
||||
TUICore_TUIContactExtension_MeSettingMenu_Data: data,
|
||||
] as [String : Any]
|
||||
info.data = param
|
||||
return [info]
|
||||
}
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
private extension String {
|
||||
static var meetingText: String {
|
||||
localized("Quick meeting")
|
||||
}
|
||||
static var roomDeviceSetText: String {
|
||||
localized("Meeting Settings")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user