| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- //
- // 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")
- }
- }
|