提交
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
//
|
||||
// MoreFunctionViewModel.swift
|
||||
// TUIRoomKit
|
||||
//
|
||||
// Created by janejntang on 2023/1/12.
|
||||
// Copyright © 2023 Tencent. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import TUICore
|
||||
|
||||
class MoreFunctionViewModel {
|
||||
private(set) var viewItems: [ButtonItemData] = []
|
||||
|
||||
var engineManager: EngineManager {
|
||||
return EngineManager.shared
|
||||
}
|
||||
var engineEventCenter: EngineEventCenter {
|
||||
return EngineEventCenter.shared
|
||||
}
|
||||
|
||||
init() {
|
||||
createBottomData()
|
||||
}
|
||||
|
||||
func createBottomData() {
|
||||
if hasTUIChatItem() {
|
||||
let chatItem = ButtonItemData()
|
||||
chatItem.normalIcon = "room_chat"
|
||||
chatItem.normalTitle = .chatText
|
||||
chatItem.resourceBundle = tuiRoomKitBundle()
|
||||
chatItem.action = { [weak self] sender in
|
||||
guard let self = self, let button = sender as? UIButton else { return }
|
||||
self.chatAction(sender: button)
|
||||
}
|
||||
viewItems.append(chatItem)
|
||||
}
|
||||
let settingItem = ButtonItemData()
|
||||
settingItem.normalIcon = "room_setting"
|
||||
settingItem.normalTitle = .settingText
|
||||
settingItem.resourceBundle = tuiRoomKitBundle()
|
||||
settingItem.action = { [weak self] sender in
|
||||
guard let self = self, let button = sender as? UIButton else { return }
|
||||
self.settingAction(sender: button)
|
||||
}
|
||||
viewItems.append(settingItem)
|
||||
}
|
||||
|
||||
private func hasTUIChatItem() -> Bool {
|
||||
return TUICore.getService(TUICore_TUIChatService) != nil
|
||||
}
|
||||
|
||||
func settingAction(sender: UIButton) {
|
||||
sender.isSelected = !sender.isSelected
|
||||
RoomRouter.shared.presentPopUpViewController(viewType: .mediaSettingViewType, height: 300.scale375())
|
||||
}
|
||||
|
||||
func chatAction(sender: UIButton) {
|
||||
RoomRouter.shared.dismissPopupViewController()
|
||||
let user = engineManager.store.currentUser
|
||||
let roomInfo = engineManager.store.roomInfo
|
||||
RoomRouter.shared.pushToChatController(user: user, roomInfo: roomInfo)
|
||||
}
|
||||
|
||||
deinit {
|
||||
debugPrint("deinit \(self)")
|
||||
}
|
||||
}
|
||||
|
||||
private extension String {
|
||||
static var settingText: String {
|
||||
localized("Settings")
|
||||
}
|
||||
static var chatText: String {
|
||||
localized("Chat")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user