This commit is contained in:
启星
2025-08-08 10:49:36 +08:00
parent 6400cf78bb
commit b5ce3d580a
8780 changed files with 978183 additions and 0 deletions

View File

@@ -0,0 +1,83 @@
//
// TransferMasterViewModel.swift
// TUIRoomKit
//
// Created by janejntang on 2023/2/20.
//
import Foundation
protocol TransferMasterViewResponder: NSObject {
func reloadTransferMasterTableView()
func searchControllerChangeActive(isActive: Bool)
func makeToast(message: String)
}
class TransferMasterViewModel: NSObject {
var attendeeList: [UserEntity] = []
var userId: String = ""
weak var viewResponder: TransferMasterViewResponder? = nil
var engineManager: EngineManager {
EngineManager.shared
}
let roomRouter: RoomRouter = RoomRouter.shared
override init() {
super.init()
attendeeList = self.engineManager.store.attendeeList.filter({ [weak self] userModel in
guard let self = self else { return true }
return userModel.userId != self.engineManager.store.currentUser.userId
})
EngineEventCenter.shared.subscribeUIEvent(key: .TUIRoomKitService_RenewUserList, responder: self)
}
func appointMasterAction(sender: UIButton) {
guard userId != "" else { return }
engineManager.changeUserRole(userId: userId, role: .roomOwner) { [weak self] in
guard let self = self else { return }
self.engineManager.exitRoom {
EngineEventCenter.shared.notifyUIEvent(key: .TUIRoomKitService_DismissConferenceViewController, param: [:])
} onError: { [weak self] code, message in
guard let self = self else { return }
self.viewResponder?.makeToast(message: message)
EngineEventCenter.shared.notifyUIEvent(key: .TUIRoomKitService_DismissConferenceViewController, param: [:])
}
} onError: { [weak self] code, message in
guard let self = self else { return }
self.viewResponder?.makeToast(message: message)
}
}
deinit {
EngineEventCenter.shared.unsubscribeUIEvent(key: .TUIRoomKitService_RenewUserList, responder: self)
debugPrint("deinit \(self)")
}
}
extension TransferMasterViewModel: PopUpViewModelResponder {
func updateViewOrientation(isLandscape: Bool) {
viewResponder?.searchControllerChangeActive(isActive: false)
attendeeList = engineManager.store.attendeeList.filter({ [weak self] userModel in
guard let self = self else { return true }
return userModel.userId != self.engineManager.store.currentUser.userId
})
viewResponder?.reloadTransferMasterTableView()
}
func searchControllerChangeActive(isActive: Bool) {
viewResponder?.searchControllerChangeActive(isActive: isActive)
}
}
extension TransferMasterViewModel: RoomKitUIEventResponder {
func onNotifyUIEvent(key: EngineEventCenter.RoomUIEvent, Object: Any?, info: [AnyHashable : Any]?) {
switch key {
case .TUIRoomKitService_RenewUserList:
attendeeList = engineManager.store.attendeeList.filter({ [weak self] userModel in
guard let self = self else { return true }
return userModel.userId != self.engineManager.store.currentUser.userId
})
viewResponder?.reloadTransferMasterTableView()
default: break
}
}
}