78 lines
2.2 KiB
Swift
78 lines
2.2 KiB
Swift
|
|
//
|
||
|
|
// 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")
|
||
|
|
}
|
||
|
|
}
|