| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- //
- // 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)
- }
- }
-
- 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
- }
- }
- }
|