ChatExtensionRoomSettingsViewModel.swift 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. //
  2. // ChatExtensionRoomSettingsViewModel.swift
  3. // TUIRoomKit
  4. //
  5. // Created by janejntang on 2023/6/26.
  6. //
  7. import Foundation
  8. class ChatExtensionRoomSettingsViewModel {
  9. var isOpenMicrophone: Bool
  10. var isOpenCamera: Bool
  11. private let engineManager = EngineManager.shared
  12. private(set) var roomSettingsViewItems: [RoomSetListItemData] = []
  13. init(isOpenMicrophone: Bool, isOpenCamera: Bool) {
  14. self.isOpenMicrophone = isOpenMicrophone
  15. self.isOpenCamera = isOpenCamera
  16. createRoomSettingsModel()
  17. }
  18. func createRoomSettingsModel() {
  19. let openMicItem = RoomSetListItemData()
  20. openMicItem.titleText = .micSeatText
  21. openMicItem.isSwitchOn = isOpenMicrophone
  22. openMicItem.action = {[weak self] sender in
  23. guard let self = self, let view = sender as? UISwitch else { return }
  24. self.engineManager.store.isOpenMicrophone = view.isOn
  25. }
  26. roomSettingsViewItems.append(openMicItem)
  27. let openCameraItem = RoomSetListItemData()
  28. openCameraItem.titleText = .cameraSetText
  29. openCameraItem.isSwitchOn = isOpenCamera
  30. openCameraItem.action = {[weak self] sender in
  31. guard let self = self, let view = sender as? UISwitch else { return }
  32. self.engineManager.store.isOpenCamera = view.isOn
  33. }
  34. roomSettingsViewItems.append(openCameraItem)
  35. }
  36. }
  37. private extension String {
  38. static var cameraSetText: String {
  39. localized("Enable video when joining a meeting")
  40. }
  41. static var micSeatText: String {
  42. localized("Enable audio when joining a meeting")
  43. }
  44. }