@100mslive/react-native-hms 0.8.3 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/README.md +16 -8
  2. package/android/.gradle/6.9/executionHistory/executionHistory.lock +0 -0
  3. package/android/.gradle/6.9/fileHashes/fileHashes.lock +0 -0
  4. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  5. package/android/.gradle/buildOutputCleanup/cache.properties +1 -1
  6. package/android/.gradle/checksums/checksums.lock +0 -0
  7. package/android/.gradle/checksums/md5-checksums.bin +0 -0
  8. package/android/.gradle/checksums/sha1-checksums.bin +0 -0
  9. package/android/.idea/gradle.xml +13 -0
  10. package/android/.idea/misc.xml +9 -0
  11. package/android/.idea/modules/android.iml +18 -0
  12. package/android/.idea/modules.xml +8 -0
  13. package/android/.idea/sonarlint/issuestore/f/0/f07866736216be0ee2aba49e392191aeae700a35 +0 -0
  14. package/android/.idea/sonarlint/issuestore/index.pb +3 -0
  15. package/android/.idea/vcs.xml +6 -0
  16. package/android/build.gradle +4 -2
  17. package/android/local.properties +8 -0
  18. package/android/src/main/java/com/reactnativehmssdk/HmsDecoder.kt +58 -5
  19. package/android/src/main/java/com/reactnativehmssdk/HmsHelper.kt +76 -61
  20. package/android/src/main/java/com/reactnativehmssdk/HmsModule.kt +99 -8
  21. package/android/src/main/java/com/reactnativehmssdk/HmsSDK.kt +299 -128
  22. package/android/src/main/java/com/reactnativehmssdk/HmsScreenshareActivity.kt +66 -0
  23. package/android/src/main/java/com/reactnativehmssdk/HmsView.kt +28 -3
  24. package/android/src/main/java/com/reactnativehmssdk/HmssdkViewManager.kt +10 -1
  25. package/android/src/main/res/layout/hms_view.xml +19 -0
  26. package/ios/HmsDecoder.swift +217 -123
  27. package/ios/HmsHelper.swift +56 -38
  28. package/ios/HmsManager.m +11 -3
  29. package/ios/HmsManager.swift +125 -68
  30. package/ios/HmsSDK.swift +407 -189
  31. package/ios/HmsView.swift +50 -68
  32. package/ios/VideoCollectionViewCell.swift +4 -4
  33. package/lib/commonjs/classes/HMSBrowserRecordingState.js +6 -0
  34. package/lib/commonjs/classes/HMSBrowserRecordingState.js.map +1 -1
  35. package/lib/commonjs/classes/HMSChangeTrackStateRequest.js +3 -0
  36. package/lib/commonjs/classes/HMSChangeTrackStateRequest.js.map +1 -1
  37. package/lib/commonjs/classes/HMSEncoder.js +166 -4
  38. package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
  39. package/lib/commonjs/classes/HMSHLSConfig.js +20 -0
  40. package/lib/commonjs/classes/HMSHLSConfig.js.map +1 -0
  41. package/lib/commonjs/classes/HMSHLSMeetingURLVariant.js +23 -0
  42. package/lib/commonjs/classes/HMSHLSMeetingURLVariant.js.map +1 -0
  43. package/lib/commonjs/classes/HMSHLSStreamingState.js +23 -0
  44. package/lib/commonjs/classes/HMSHLSStreamingState.js.map +1 -0
  45. package/lib/commonjs/classes/HMSHLSVariant.js +29 -0
  46. package/lib/commonjs/classes/HMSHLSVariant.js.map +1 -0
  47. package/lib/commonjs/classes/HMSLocalAudioStats.js +26 -0
  48. package/lib/commonjs/classes/HMSLocalAudioStats.js.map +1 -0
  49. package/lib/commonjs/classes/HMSLocalVideoStats.js +32 -0
  50. package/lib/commonjs/classes/HMSLocalVideoStats.js.map +1 -0
  51. package/lib/commonjs/classes/HMSLogger.js +27 -0
  52. package/lib/commonjs/classes/HMSLogger.js.map +1 -1
  53. package/lib/commonjs/classes/HMSPeerUpdate.js +2 -0
  54. package/lib/commonjs/classes/HMSPeerUpdate.js.map +1 -1
  55. package/lib/commonjs/classes/HMSPermissions.js +2 -2
  56. package/lib/commonjs/classes/HMSPermissions.js.map +1 -1
  57. package/lib/commonjs/classes/HMSRTCStats.js +38 -0
  58. package/lib/commonjs/classes/HMSRTCStats.js.map +1 -0
  59. package/lib/commonjs/classes/HMSRTCStatsReport.js +26 -0
  60. package/lib/commonjs/classes/HMSRTCStatsReport.js.map +1 -0
  61. package/lib/commonjs/classes/HMSRemoteAudioStats.js +32 -0
  62. package/lib/commonjs/classes/HMSRemoteAudioStats.js.map +1 -0
  63. package/lib/commonjs/classes/HMSRemoteVideoStats.js +38 -0
  64. package/lib/commonjs/classes/HMSRemoteVideoStats.js.map +1 -0
  65. package/lib/commonjs/classes/HMSRoom.js +6 -0
  66. package/lib/commonjs/classes/HMSRoom.js.map +1 -1
  67. package/lib/commonjs/classes/HMSRoomUpdate.js +7 -0
  68. package/lib/commonjs/classes/HMSRoomUpdate.js.map +1 -1
  69. package/lib/commonjs/classes/HMSRtmpStreamingState.js +6 -0
  70. package/lib/commonjs/classes/HMSRtmpStreamingState.js.map +1 -1
  71. package/lib/commonjs/classes/HMSSDK.js +476 -115
  72. package/lib/commonjs/classes/HMSSDK.js.map +1 -1
  73. package/lib/commonjs/classes/HMSServerRecordingState.js +3 -0
  74. package/lib/commonjs/classes/HMSServerRecordingState.js.map +1 -1
  75. package/lib/commonjs/classes/HMSUpdateListenerActions.js +5 -0
  76. package/lib/commonjs/classes/HMSUpdateListenerActions.js.map +1 -1
  77. package/lib/commonjs/classes/HmsView.js +26 -4
  78. package/lib/commonjs/classes/HmsView.js.map +1 -1
  79. package/lib/commonjs/index.js +140 -0
  80. package/lib/commonjs/index.js.map +1 -1
  81. package/lib/module/classes/HMSBrowserRecordingState.js +6 -0
  82. package/lib/module/classes/HMSBrowserRecordingState.js.map +1 -1
  83. package/lib/module/classes/HMSChangeTrackStateRequest.js +3 -0
  84. package/lib/module/classes/HMSChangeTrackStateRequest.js.map +1 -1
  85. package/lib/module/classes/HMSEncoder.js +159 -4
  86. package/lib/module/classes/HMSEncoder.js.map +1 -1
  87. package/lib/module/classes/HMSHLSConfig.js +11 -0
  88. package/lib/module/classes/HMSHLSConfig.js.map +1 -0
  89. package/lib/module/classes/HMSHLSMeetingURLVariant.js +14 -0
  90. package/lib/module/classes/HMSHLSMeetingURLVariant.js.map +1 -0
  91. package/lib/module/classes/HMSHLSStreamingState.js +14 -0
  92. package/lib/module/classes/HMSHLSStreamingState.js.map +1 -0
  93. package/lib/module/classes/HMSHLSVariant.js +20 -0
  94. package/lib/module/classes/HMSHLSVariant.js.map +1 -0
  95. package/lib/module/classes/HMSLocalAudioStats.js +17 -0
  96. package/lib/module/classes/HMSLocalAudioStats.js.map +1 -0
  97. package/lib/module/classes/HMSLocalVideoStats.js +23 -0
  98. package/lib/module/classes/HMSLocalVideoStats.js.map +1 -0
  99. package/lib/module/classes/HMSLogger.js +27 -0
  100. package/lib/module/classes/HMSLogger.js.map +1 -1
  101. package/lib/module/classes/HMSPeerUpdate.js +2 -0
  102. package/lib/module/classes/HMSPeerUpdate.js.map +1 -1
  103. package/lib/module/classes/HMSPermissions.js +2 -2
  104. package/lib/module/classes/HMSPermissions.js.map +1 -1
  105. package/lib/module/classes/HMSRTCStats.js +29 -0
  106. package/lib/module/classes/HMSRTCStats.js.map +1 -0
  107. package/lib/module/classes/HMSRTCStatsReport.js +17 -0
  108. package/lib/module/classes/HMSRTCStatsReport.js.map +1 -0
  109. package/lib/module/classes/HMSRemoteAudioStats.js +23 -0
  110. package/lib/module/classes/HMSRemoteAudioStats.js.map +1 -0
  111. package/lib/module/classes/HMSRemoteVideoStats.js +29 -0
  112. package/lib/module/classes/HMSRemoteVideoStats.js.map +1 -0
  113. package/lib/module/classes/HMSRoom.js +6 -0
  114. package/lib/module/classes/HMSRoom.js.map +1 -1
  115. package/lib/module/classes/HMSRoomUpdate.js +7 -0
  116. package/lib/module/classes/HMSRoomUpdate.js.map +1 -1
  117. package/lib/module/classes/HMSRtmpStreamingState.js +6 -0
  118. package/lib/module/classes/HMSRtmpStreamingState.js.map +1 -1
  119. package/lib/module/classes/HMSSDK.js +464 -116
  120. package/lib/module/classes/HMSSDK.js.map +1 -1
  121. package/lib/module/classes/HMSServerRecordingState.js +3 -0
  122. package/lib/module/classes/HMSServerRecordingState.js.map +1 -1
  123. package/lib/module/classes/HMSUpdateListenerActions.js +5 -0
  124. package/lib/module/classes/HMSUpdateListenerActions.js.map +1 -1
  125. package/lib/module/classes/HmsView.js +23 -4
  126. package/lib/module/classes/HmsView.js.map +1 -1
  127. package/lib/module/index.js +10 -0
  128. package/lib/module/index.js.map +1 -1
  129. package/lib/typescript/classes/HMSBrowserRecordingState.d.ts +4 -0
  130. package/lib/typescript/classes/HMSChangeTrackStateRequest.d.ts +2 -0
  131. package/lib/typescript/classes/HMSEncoder.d.ts +21 -0
  132. package/lib/typescript/classes/HMSHLSConfig.d.ts +7 -0
  133. package/lib/typescript/classes/HMSHLSMeetingURLVariant.d.ts +8 -0
  134. package/lib/typescript/classes/HMSHLSStreamingState.d.ts +9 -0
  135. package/lib/typescript/classes/HMSHLSVariant.d.ts +12 -0
  136. package/lib/typescript/classes/HMSLocalAudioStats.d.ts +10 -0
  137. package/lib/typescript/classes/HMSLocalVideoStats.d.ts +15 -0
  138. package/lib/typescript/classes/HMSLogger.d.ts +2 -0
  139. package/lib/typescript/classes/HMSPeerUpdate.d.ts +3 -1
  140. package/lib/typescript/classes/HMSPermissions.d.ts +2 -2
  141. package/lib/typescript/classes/HMSRTCStats.d.ts +18 -0
  142. package/lib/typescript/classes/HMSRTCStatsReport.d.ts +11 -0
  143. package/lib/typescript/classes/HMSRemoteAudioStats.d.ts +14 -0
  144. package/lib/typescript/classes/HMSRemoteVideoStats.d.ts +19 -0
  145. package/lib/typescript/classes/HMSRoom.d.ts +5 -0
  146. package/lib/typescript/classes/HMSRoomUpdate.d.ts +8 -1
  147. package/lib/typescript/classes/HMSRtmpStreamingState.d.ts +4 -0
  148. package/lib/typescript/classes/HMSSDK.d.ts +33 -9
  149. package/lib/typescript/classes/HMSServerRecordingState.d.ts +2 -0
  150. package/lib/typescript/classes/HMSUpdateListenerActions.d.ts +6 -1
  151. package/lib/typescript/index.d.ts +10 -0
  152. package/package.json +1 -1
  153. package/react-native-hms.podspec +1 -1
  154. package/src/classes/HMSBrowserRecordingState.ts +10 -1
  155. package/src/classes/HMSChangeTrackStateRequest.ts +7 -1
  156. package/src/classes/HMSEncoder.ts +163 -3
  157. package/src/classes/HMSHLSConfig.ts +9 -0
  158. package/src/classes/HMSHLSMeetingURLVariant.ts +9 -0
  159. package/src/classes/HMSHLSStreamingState.ts +11 -0
  160. package/src/classes/HMSHLSVariant.ts +18 -0
  161. package/src/classes/HMSLocalAudioStats.ts +15 -0
  162. package/src/classes/HMSLocalVideoStats.ts +23 -0
  163. package/src/classes/HMSLogger.ts +14 -0
  164. package/src/classes/HMSPeerUpdate.ts +2 -0
  165. package/src/classes/HMSPermissions.ts +3 -3
  166. package/src/classes/HMSRTCStats.ts +27 -0
  167. package/src/classes/HMSRTCStatsReport.ts +17 -0
  168. package/src/classes/HMSRemoteAudioStats.ts +21 -0
  169. package/src/classes/HMSRemoteVideoStats.ts +29 -0
  170. package/src/classes/HMSRoom.ts +7 -0
  171. package/src/classes/HMSRoomUpdate.ts +7 -0
  172. package/src/classes/HMSRtmpStreamingState.ts +10 -1
  173. package/src/classes/HMSSDK.tsx +325 -26
  174. package/src/classes/HMSServerRecordingState.ts +7 -1
  175. package/src/classes/HMSUpdateListenerActions.ts +5 -0
  176. package/src/classes/HmsView.tsx +32 -4
  177. package/src/index.ts +10 -0
  178. package/android/.gradle/6.9/executionHistory/executionHistory.bin +0 -0
  179. package/android/.gradle/6.9/fileHashes/fileHashes.bin +0 -0
  180. package/android/.gradle/6.9/fileHashes/resourceHashesCache.bin +0 -0
  181. package/android/.gradle/6.9/javaCompile/classAnalysis.bin +0 -0
  182. package/android/.gradle/6.9/javaCompile/jarAnalysis.bin +0 -0
  183. package/android/.gradle/6.9/javaCompile/javaCompile.lock +0 -0
  184. package/android/.gradle/6.9/javaCompile/taskHistory.bin +0 -0
  185. package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
  186. package/android/.project +0 -34
package/ios/HmsSDK.swift CHANGED
@@ -7,15 +7,17 @@
7
7
 
8
8
  import Foundation
9
9
  import HMSSDK
10
+
10
11
  class HmsSDK: HMSUpdateListener, HMSPreviewListener {
11
-
12
+
12
13
  var hms: HMSSDK?
13
14
  var config: HMSConfig?
14
15
  var recentRoleChangeRequest: HMSRoleChangeRequest?
15
- var recentChangeTrackStateRequest: HMSChangeTrackStateRequest?
16
16
  var delegate: HmsManager?
17
17
  var id: String = "12345"
18
-
18
+ var rtcStatsAttached = false
19
+ var recentPreviewTracks: [HMSTrack]? = []
20
+
19
21
  let ON_PREVIEW = "ON_PREVIEW"
20
22
  let ON_JOIN = "ON_JOIN"
21
23
  let ON_ROOM_UPDATE = "ON_ROOM_UPDATE"
@@ -28,9 +30,14 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
28
30
  let ON_SPEAKER = "ON_SPEAKER"
29
31
  let RECONNECTING = "RECONNECTING"
30
32
  let RECONNECTED = "RECONNECTED"
31
-
33
+ let ON_RTC_STATS = "ON_RTC_STATS"
34
+ let ON_LOCAL_AUDIO_STATS = "ON_LOCAL_AUDIO_STATS"
35
+ let ON_LOCAL_VIDEO_STATS = "ON_LOCAL_VIDEO_STATS"
36
+ let ON_REMOTE_AUDIO_STATS = "ON_REMOTE_AUDIO_STATS"
37
+ let ON_REMOTE_VIDEO_STATS = "ON_REMOTE_VIDEO_STATS"
38
+
32
39
  // MARK: - Setup
33
-
40
+
34
41
  init(data: NSDictionary?, delegate manager: HmsManager?, uid id: String) {
35
42
  let videoSettings = HmsHelper.getLocalVideoSettings(data?.value(forKey: "video") as? NSDictionary)
36
43
  let audioSettings = HmsHelper.getLocalAudioSettings(data?.value(forKey: "audio") as? NSDictionary)
@@ -43,19 +50,27 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
43
50
  self.delegate = manager
44
51
  self.id = id
45
52
  }
46
-
53
+
47
54
  // MARK: - HMS SDK Actions
48
55
 
56
+ private var previewInProgress = false
57
+
49
58
  func preview(_ credentials: NSDictionary) {
50
-
59
+
60
+ guard !previewInProgress else {
61
+ let error = HMSError(id: "PREVIEW", code: .joinErrorServer, message: "PREVIEW_IS_IN_PROGRESS", params: ["function": #function, "credentials": credentials])
62
+ on(error: error)
63
+ return
64
+ }
65
+
51
66
  guard let authToken = credentials.value(forKey: "authToken") as? String,
52
67
  let user = credentials.value(forKey: "username") as? String
53
68
  else {
54
69
  let error = HMSError(id: "101", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
55
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
70
+ delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id": id])
56
71
  return
57
72
  }
58
-
73
+
59
74
  let metadata = credentials.value(forKey: "metadata") as? String
60
75
  DispatchQueue.main.async { [weak self] in
61
76
  guard let strongSelf = self else { return }
@@ -66,21 +81,61 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
66
81
  strongSelf.config = HMSConfig(userName: user, authToken: authToken, metadata: metadata)
67
82
  strongSelf.hms?.preview(config: strongSelf.config!, delegate: strongSelf)
68
83
  }
84
+ strongSelf.previewInProgress = true
69
85
  }
70
86
  }
71
87
 
72
- func join(_ credentials: NSDictionary) {
88
+ func previewForRole(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
89
+ guard let role = data.value(forKey: "role") as? String
90
+ else {
91
+ let error = HMSError(id: "111", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
92
+ delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id": id])
93
+ reject?(error.message, "FAILED_TO_INITIATE_PREVIEW_FOR_ROLE",nil)
94
+ return
95
+ }
96
+
97
+ let roleObj = HmsHelper.getRoleFromRoleName(role, roles: hms?.roles)
73
98
 
99
+ if let extractedRole = roleObj {
100
+ hms?.preview(role: extractedRole, completion: { tracks, error in
101
+ if (error != nil) {
102
+ delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id": id])
103
+ reject?(error?.message, error?.localizedDescription, nil)
104
+ return
105
+ }
106
+ self.recentPreviewTracks = tracks
107
+
108
+ let decodedTracks = HmsDecoder.getAllTracks(tracks ?? [])
109
+
110
+ resolve?(["success": true, "tracks": decodedTracks])
111
+ return
112
+ })
113
+ }
114
+ }
115
+
116
+ func cancelPreview() {
117
+ self.recentPreviewTracks = []
118
+ hms?.cancelPreview()
119
+ }
120
+
121
+ func join(_ credentials: NSDictionary) {
122
+
123
+ guard !previewInProgress else {
124
+ let error = HMSError(id: "PREVIEW", code: .joinErrorServer, message: "PREVIEW_IS_IN_PROGRESS", params: ["function": #function, "credentials": credentials])
125
+ on(error: error)
126
+ return
127
+ }
128
+
74
129
  guard let authToken = credentials.value(forKey: "authToken") as? String,
75
130
  let user = credentials.value(forKey: "username") as? String
76
131
  else {
77
132
  let error = HMSError(id: "102", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
78
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
133
+ delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id": id])
79
134
  return
80
135
  }
81
136
 
82
137
  let metadata = credentials.value(forKey: "metadata") as? String
83
-
138
+
84
139
  DispatchQueue.main.async { [weak self] in
85
140
  guard let strongSelf = self else { return }
86
141
  if let config = strongSelf.config {
@@ -96,69 +151,68 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
96
151
  }
97
152
  }
98
153
  }
99
-
154
+
100
155
  func setLocalMute(_ data: NSDictionary) {
101
156
  guard let isMute = data.value(forKey: "isMute") as? Bool
102
157
  else {
103
158
  let error = HMSError(id: "106", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
104
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
159
+ delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id": id])
105
160
  return
106
161
  }
107
-
162
+
108
163
  DispatchQueue.main.async { [weak self] in
109
164
  self?.hms?.localPeer?.localAudioTrack()?.setMute(isMute)
110
165
  }
111
166
  }
112
-
167
+
113
168
  func setLocalVideoMute(_ data: NSDictionary) {
114
169
  guard let isMute = data.value(forKey: "isMute") as? Bool
115
170
  else {
116
171
  let error = HMSError(id: "107", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
117
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
172
+ delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id": id])
118
173
  return
119
174
  }
120
-
175
+
121
176
  DispatchQueue.main.async { [weak self] in
122
177
  self?.hms?.localPeer?.localVideoTrack()?.setMute(isMute)
123
178
  }
124
179
  }
125
-
180
+
126
181
  func switchCamera() {
127
182
  DispatchQueue.main.async { [weak self] in
128
183
  self?.hms?.localPeer?.localVideoTrack()?.switchCamera()
129
184
  }
130
185
  }
131
-
186
+
132
187
  func leave(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
133
188
  DispatchQueue.main.async { [weak self] in
134
189
  guard let strongSelf = self else { return }
135
190
  self?.config = nil
136
191
  self?.recentRoleChangeRequest = nil
137
- self?.recentChangeTrackStateRequest = nil
138
192
  self?.hms?.leave({ success, error in
139
- if(success){
193
+ if success {
140
194
  resolve?("")
141
- }else{
142
- strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["event": strongSelf.ON_ERROR, "error": HmsDecoder.getError(error), "id":strongSelf.id])
143
- reject?(nil, "error in leave",nil)
195
+ } else {
196
+ strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["event": strongSelf.ON_ERROR, "error": HmsDecoder.getError(error), "id": strongSelf.id])
197
+ reject?(nil, "error in leave", nil)
144
198
  }
145
199
  })
146
200
  }
147
201
  }
148
-
202
+
149
203
  func sendBroadcastMessage(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
150
204
  guard let message = data.value(forKey: "message") as? String
151
205
  else {
152
206
  let error = HMSError(id: "108", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
153
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
207
+ delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id": id])
154
208
  return
155
209
  }
156
-
210
+
157
211
  let type = data.value(forKey: "type") as? String ?? "chat"
158
-
212
+
159
213
  DispatchQueue.main.async { [weak self] in
160
214
  self?.hms?.sendBroadcastMessage(type: type, message: message, completion: { message, error in
161
- if (error == nil) {
215
+ if error == nil {
162
216
  resolve?(["success": true, "data": ["sender": message?.sender?.name ?? "", "message": message?.message ?? "", "type": message?.type]])
163
217
  return
164
218
  } else {
@@ -169,21 +223,21 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
169
223
  })
170
224
  }
171
225
  }
172
-
226
+
173
227
  func sendGroupMessage(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
174
228
  guard let message = data.value(forKey: "message") as? String,
175
229
  let targetedRoles = data.value(forKey: "roles") as? [String]
176
230
  else {
177
231
  let error = HMSError(id: "109", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
178
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
232
+ delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id": id])
179
233
  return
180
234
  }
181
-
235
+
182
236
  let type = data.value(forKey: "type") as? String ?? "chat"
183
237
  DispatchQueue.main.async { [weak self] in
184
238
  let encodedTargetedRoles = HmsHelper.getRolesFromRoleNames(targetedRoles, roles: self?.hms?.roles)
185
239
  self?.hms?.sendGroupMessage(type: type, message: message, roles: encodedTargetedRoles, completion: { message, error in
186
- if (error == nil) {
240
+ if error == nil {
187
241
  resolve?(["success": true, "data": ["sender": message?.sender?.name ?? "", "message": message?.message ?? "", "type": message?.type]])
188
242
  return
189
243
  } else {
@@ -194,21 +248,21 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
194
248
  })
195
249
  }
196
250
  }
197
-
251
+
198
252
  func sendDirectMessage(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
199
253
  guard let message = data.value(forKey: "message") as? String,
200
254
  let peerId = data.value(forKey: "peerId") as? String
201
255
  else {
202
256
  let error = HMSError(id: "110", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
203
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
257
+ delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id": id])
204
258
  return
205
259
  }
206
-
260
+
207
261
  let type = data.value(forKey: "type") as? String ?? "chat"
208
262
  DispatchQueue.main.async { [weak self] in
209
263
  guard let peer = HmsHelper.getRemotePeerFromPeerId(peerId, remotePeers: self?.hms?.remotePeers) else { return }
210
264
  self?.hms?.sendDirectMessage(type: type, message: message, peer: peer, completion: { message, error in
211
- if (error == nil) {
265
+ if error == nil {
212
266
  resolve?(["success": true, "data": ["sender": message?.sender?.name ?? "", "message": message?.message ?? "", "type": message?.type]])
213
267
  return
214
268
  } else {
@@ -217,117 +271,126 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
217
271
  return
218
272
  }
219
273
  })
220
- self?.hms?.sendDirectMessage(type: type, message: message, peer: peer)
221
274
  }
222
275
  }
223
-
224
- func acceptRoleChange() {
225
-
276
+
277
+ func acceptRoleChange(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
278
+
226
279
  DispatchQueue.main.async { [weak self] in
227
-
280
+
228
281
  guard let request = self?.recentRoleChangeRequest else { return }
229
-
230
- self?.hms?.accept(changeRole: request)
231
-
282
+
283
+ self?.hms?.accept(changeRole: request, completion: { success, error in
284
+ if success {
285
+ resolve?(["success": true])
286
+ } else {
287
+ self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error": HmsDecoder.getError(error), "id": self?.id ?? "12345"])
288
+ reject?(error?.message, error?.localizedDescription, nil)
289
+ }
290
+ })
291
+ self?.recentPreviewTracks = []
232
292
  self?.recentRoleChangeRequest = nil
233
293
  }
234
294
  }
235
-
295
+
236
296
  func changeRole(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
237
-
297
+
238
298
  guard let peerId = data.value(forKey: "peerId") as? String,
239
299
  let role = data.value(forKey: "role") as? String
240
300
  else {
241
301
  let error = HMSError(id: "111", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
242
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
302
+ delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id": id])
243
303
  return
244
304
  }
245
-
305
+
246
306
  let force = data.value(forKey: "force") as? Bool ?? false
247
-
307
+
248
308
  DispatchQueue.main.async { [weak self] in
249
- guard let peer = HmsHelper.getPeerFromPeerId(peerId, remotePeers: self?.hms?.remotePeers, localPeer:self?.hms?.localPeer),
309
+ guard let peer = HmsHelper.getPeerFromPeerId(peerId, remotePeers: self?.hms?.remotePeers, localPeer: self?.hms?.localPeer),
250
310
  let role = HmsHelper.getRoleFromRoleName(role, roles: self?.hms?.roles)
251
311
  else { return }
252
-
312
+
253
313
  self?.hms?.changeRole(for: peer, to: role, force: force, completion: { success, error in
254
- if(success) {
314
+ if success {
255
315
  resolve?(["success": true])
256
- } else{
257
- self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error": HmsDecoder.getError(error), "id":self?.id ?? "12345"])
258
- reject?(error?.message, error?.localizedDescription,nil)
316
+ } else {
317
+ self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error": HmsDecoder.getError(error), "id": self?.id ?? "12345"])
318
+ reject?(error?.message, error?.localizedDescription, nil)
259
319
  }
260
320
  })
261
321
  }
262
322
  }
263
-
323
+
264
324
  func changeTrackState(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
265
-
325
+
266
326
  guard let trackId = data.value(forKey: "trackId") as? String
267
327
  else {
268
328
  let error = HMSError(id: "112", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
269
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
329
+ delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id": id])
270
330
  return
271
331
  }
272
-
332
+
273
333
  let mute = data.value(forKey: "mute") as? Bool ?? true
274
-
334
+
275
335
  DispatchQueue.main.async { [weak self] in
276
336
  guard let remotePeers = self?.hms?.remotePeers,
277
337
  let track = HmsHelper.getTrackFromTrackId(trackId, remotePeers)
278
338
  else { return }
279
339
 
280
340
  self?.hms?.changeTrackState(for: track, mute: mute, completion: { success, error in
281
- if(success) {
341
+ if success {
282
342
  resolve?(["success": true])
283
- } else{
284
- self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error": HmsDecoder.getError(error), "id":self?.id ?? "12345"])
343
+ } else {
344
+ self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error": HmsDecoder.getError(error), "id": self?.id ?? "12345"])
285
345
  reject?(error?.message, error?.localizedDescription, nil)
286
346
  }
287
347
  })
288
348
  }
289
349
  }
290
-
291
- func changeTrackStateRoles(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
292
-
293
- guard let source = data.value(forKey: "source") as? String,
294
- let targetedRoles = data.value(forKey: "roles") as? [String],
295
- let type = data.value(forKey: "type") as? String
350
+
351
+ func changeTrackStateForRoles(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
352
+
353
+ guard let mute = data.value(forKey: "mute") as? Bool
296
354
  else {
297
355
  let error = HMSError(id: "113", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
298
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
356
+ delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id": id])
299
357
  return
300
358
  }
301
- var decodeType: HMSTrackKind;
302
- if( type == "AUDIO") {
303
- decodeType = HMSTrackKind.audio
304
- }else {
305
- decodeType = HMSTrackKind.video
359
+ let source = data.value(forKey: "source") as? String
360
+ let targetedRoles = data.value(forKey: "roles") as? [String]
361
+ let type = data.value(forKey: "type") as? String
362
+
363
+ var decodeType: HMSTrackKind?
364
+ if type != nil {
365
+ if type == "AUDIO" {
366
+ decodeType = HMSTrackKind.audio
367
+ } else {
368
+ decodeType = HMSTrackKind.video
369
+ }
306
370
  }
307
- let mute = data.value(forKey: "mute") as? Bool ?? true
308
-
371
+
309
372
  DispatchQueue.main.async { [weak self] in
310
373
  let encodedTargetedRoles = HmsHelper.getRolesFromRoleNames(targetedRoles, roles: self?.hms?.roles)
311
374
  self?.hms?.changeTrackState(mute: mute, for: decodeType, source: source, roles: encodedTargetedRoles, completion: { success, error in
312
- if(success) {
375
+ if success {
313
376
  resolve?(["success": true])
314
- } else{
315
- self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error": HmsDecoder.getError(error), "id":self?.id ?? "12345"])
316
- reject?(error?.message, error?.localizedDescription,nil)
377
+ } else {
378
+ self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error": HmsDecoder.getError(error), "id": self?.id ?? "12345"])
379
+ reject?(error?.message, error?.localizedDescription, nil)
317
380
  }
318
381
  })
319
382
  }
320
383
  }
321
-
384
+
322
385
  func isMute(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
323
386
  guard let trackId = data.value(forKey: "trackId") as? String
324
387
  else {
325
388
  reject?(nil, "NO_SDK_ID", nil)
326
389
  let error = HMSError(id: "114", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
327
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
390
+ delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id": id])
328
391
  return
329
392
  }
330
-
393
+
331
394
  DispatchQueue.main.async { [weak self] in
332
395
  guard let strongSelf = self else { return }
333
396
  guard let localPeer = self?.hms?.localPeer,
@@ -337,7 +400,7 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
337
400
  let track = HmsHelper.getTrackFromTrackId(trackId, remotePeers)
338
401
  else {
339
402
  let error = HMSError(id: "120", code: HMSErrorCode.genericErrorUnknown, message: "NOT_FOUND")
340
- strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["event": strongSelf.ON_ERROR, "error": HmsDecoder.getError(error), "id":strongSelf.id])
403
+ strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["event": strongSelf.ON_ERROR, "error": HmsDecoder.getError(error), "id": strongSelf.id])
341
404
  reject?(nil, "NOT_FOUND", nil)
342
405
  return
343
406
  }
@@ -349,64 +412,63 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
349
412
  resolve?(mute)
350
413
  }
351
414
  }
352
-
415
+
353
416
  func removePeer(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
354
-
417
+
355
418
  guard let peerId = data.value(forKey: "peerId") as? String
356
419
  else {
357
420
  let error = HMSError(id: "115", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
358
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
421
+ delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id": id])
359
422
  return
360
423
  }
361
-
424
+
362
425
  let reason = data.value(forKey: "reason") as? String
363
-
426
+
364
427
  DispatchQueue.main.async { [weak self] in
365
428
 
366
429
  guard let remotePeers = self?.hms?.remotePeers,
367
430
  let peer = HmsHelper.getRemotePeerFromPeerId(peerId, remotePeers: remotePeers)
368
431
  else { return }
369
-
432
+
370
433
  self?.hms?.removePeer(peer, reason: reason ?? "Removed from room", completion: { success, error in
371
- if(success) {
434
+ if success {
372
435
  resolve?(["success": true])
373
- } else{
374
- self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error": HmsDecoder.getError(error), "id":self?.id ?? "12345"])
375
- reject?(error?.message, error?.localizedDescription,nil)
436
+ } else {
437
+ self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error": HmsDecoder.getError(error), "id": self?.id ?? "12345"])
438
+ reject?(error?.message, error?.localizedDescription, nil)
376
439
  }
377
440
  })
378
441
  }
379
442
  }
380
-
381
-
443
+
382
444
  func endRoom(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
383
-
445
+
384
446
  guard let lock = data.value(forKey: "lock") as? Bool,
385
447
  let reason = data.value(forKey: "reason") as? String
386
448
  else {
387
449
  let error = HMSError(id: "116", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
388
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
450
+ delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id": id])
389
451
  return
390
452
  }
391
-
453
+
392
454
  DispatchQueue.main.async { [weak self] in
393
455
  self?.hms?.endRoom(lock: lock, reason: reason, completion: { success, error in
394
- if(success) {
456
+ if success {
395
457
  resolve?(["success": true])
396
- } else{
397
- self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error": HmsDecoder.getError(error), "id":self?.id ?? "12345"])
398
- reject?(error?.message, error?.localizedDescription,nil)
458
+ } else {
459
+ self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error": HmsDecoder.getError(error), "id": self?.id ?? "12345"])
460
+ reject?(error?.message, error?.localizedDescription, nil)
399
461
  }
400
462
  })
401
463
  }
402
464
  }
403
-
465
+
404
466
  func isPlaybackAllowed(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
405
467
  guard let trackId = data.value(forKey: "trackId") as? String
406
468
  else {
407
469
  reject?(nil, "NOT_FOUND", nil)
408
470
  let error = HMSError(id: "117", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
409
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
471
+ delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id": id])
410
472
  return
411
473
  }
412
474
  DispatchQueue.main.async { [weak self] in
@@ -414,41 +476,41 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
414
476
  guard let remotePeers = self?.hms?.remotePeers
415
477
  else {
416
478
  let error = HMSError(id: "121", code: HMSErrorCode.genericErrorUnknown, message: "NOT_FOUND")
417
- strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["event": strongSelf.ON_ERROR, "error": HmsDecoder.getError(error), "id":strongSelf.id])
479
+ strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["event": strongSelf.ON_ERROR, "error": HmsDecoder.getError(error), "id": strongSelf.id])
418
480
  reject?(nil, "NOT_FOUND", nil)
419
481
  return
420
482
  }
421
483
  let remoteAudioTrack = HmsHelper.getRemoteAudioTrackFromTrackId(trackId, remotePeers)
422
484
  let remoteVideoTrack = HmsHelper.getRemoteVideoTrackFromTrackId(trackId, remotePeers)
423
- if (remoteAudioTrack != nil) {
485
+ if remoteAudioTrack != nil {
424
486
  let isPlaybackAllowed = remoteAudioTrack?.isPlaybackAllowed()
425
487
  resolve?(isPlaybackAllowed)
426
488
  return
427
- } else if (remoteVideoTrack != nil) {
489
+ } else if remoteVideoTrack != nil {
428
490
  let isPlaybackAllowed = remoteVideoTrack?.isPlaybackAllowed()
429
491
  resolve?(isPlaybackAllowed)
430
492
  return
431
493
  } else {
432
494
  let error = HMSError(id: "122", code: HMSErrorCode.genericErrorUnknown, message: "NOT_FOUND")
433
- strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["event": strongSelf.ON_ERROR, "error": HmsDecoder.getError(error), "id":strongSelf.id])
434
- reject?(nil, "NOT_FOUND",nil)
495
+ strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["event": strongSelf.ON_ERROR, "error": HmsDecoder.getError(error), "id": strongSelf.id])
496
+ reject?(nil, "NOT_FOUND", nil)
435
497
  return
436
498
  }
437
499
  }
438
500
  }
439
-
501
+
440
502
  func getRoom(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
441
503
  let roomData = HmsDecoder.getHmsRoom(hms?.room)
442
-
504
+
443
505
  resolve?(roomData)
444
506
  }
445
-
507
+
446
508
  func setPlaybackAllowed(_ data: NSDictionary) {
447
509
  guard let trackId = data.value(forKey: "trackId") as? String,
448
510
  let playbackAllowed = data.value(forKey: "playbackAllowed") as? Bool
449
511
  else {
450
512
  let error = HMSError(id: "118", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
451
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
513
+ delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id": id])
452
514
  return
453
515
  }
454
516
  DispatchQueue.main.async { [weak self] in
@@ -458,33 +520,33 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
458
520
  }
459
521
  let remoteAudioTrack = HmsHelper.getRemoteAudioTrackFromTrackId(trackId, remotePeers)
460
522
  let remoteVideoTrack = HmsHelper.getRemoteVideoTrackFromTrackId(trackId, remotePeers)
461
- if (remoteAudioTrack != nil) {
462
- if(playbackAllowed){
523
+ if remoteAudioTrack != nil {
524
+ if playbackAllowed {
463
525
  remoteAudioTrack?.setPlaybackAllowed(playbackAllowed)
464
- }else {
526
+ } else {
465
527
  remoteAudioTrack?.setPlaybackAllowed(playbackAllowed)
466
528
  }
467
- } else if (remoteVideoTrack != nil) {
529
+ } else if remoteVideoTrack != nil {
468
530
  remoteVideoTrack?.setPlaybackAllowed(playbackAllowed)
469
531
  }
470
532
  }
471
533
  }
472
-
534
+
473
535
  func changeMetadata(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
474
536
  guard let metadata = data.value(forKey: "metadata") as? String
475
537
  else {
476
538
  let error = HMSError(id: "123", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
477
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
539
+ delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id": id])
478
540
  reject?(nil, "REQUIRED_KEYS_NOT_FOUND", nil)
479
541
  return
480
542
  }
481
-
543
+
482
544
  hms?.change(metadata: metadata, completion: { success, error in
483
- if (success) {
545
+ if success {
484
546
  resolve?(["success": success])
485
547
  return
486
548
  } else {
487
- self.delegate?.emitEvent(self.ON_ERROR, ["event": self.ON_ERROR, "error": HmsDecoder.getError(error), "id":self.id])
549
+ self.delegate?.emitEvent(self.ON_ERROR, ["event": self.ON_ERROR, "error": HmsDecoder.getError(error), "id": self.id])
488
550
  reject?(error?.message, error?.localizedDescription, nil)
489
551
  return
490
552
  }
@@ -496,86 +558,160 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
496
558
  let volume = data.value(forKey: "volume") as? Double
497
559
  else {
498
560
  let error = HMSError(id: "124", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
499
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
561
+ delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id": id])
500
562
  return
501
563
  }
502
564
 
503
565
  DispatchQueue.main.async { [weak self] in
504
566
  guard let strongSelf = self else { return }
505
567
  let remotePeers = self?.hms?.remotePeers
506
-
568
+
507
569
  let remoteAudioTrack = HmsHelper.getRemoteAudioAuxiliaryTrackFromTrackId(trackId, remotePeers)
508
-
509
- if (remoteAudioTrack != nil) {
570
+
571
+ if remoteAudioTrack != nil {
510
572
  remoteAudioTrack?.setVolume(volume)
511
573
  } else {
512
574
  let error = HMSError(id: "125", code: HMSErrorCode.genericErrorUnknown, message: "TRACK_ID_NOT_FOUND_IN_REMOTE_TRACKS")
513
- strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["event": strongSelf.ON_ERROR, "error": HmsDecoder.getError(error), "id":strongSelf.id])
575
+ strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["event": strongSelf.ON_ERROR, "error": HmsDecoder.getError(error), "id": strongSelf.id])
514
576
  }
515
577
  }
516
578
  }
517
-
579
+
518
580
  func startRTMPOrRecording(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
519
581
  guard let record = data.value(forKey: "record") as? Bool
520
582
  else {
521
583
  let error = HMSError(id: "126", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
522
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
584
+ delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id": id])
523
585
  return
524
586
  }
525
-
587
+
526
588
  let meetingString = data.value(forKey: "meetingURL") as? String
527
589
  let rtmpStrings = data.value(forKey: "rtmpURLs") as? [String]
528
-
529
- var meetingUrl: URL? = nil
590
+
591
+ var meetingUrl: URL?
530
592
  if let meetLink = meetingString {
531
593
  meetingUrl = URL(string: meetLink)
532
594
  } else {
533
595
  let error = HMSError(id: "127", code: HMSErrorCode.genericErrorUnknown, message: "INVALID_MEETING_URL_PASSED")
534
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
596
+ delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id": id])
535
597
  }
536
-
598
+
537
599
  let URLs = HmsHelper.getRtmpUrls(rtmpStrings)
538
-
539
-
600
+
540
601
  let config = HMSRTMPConfig(meetingURL: meetingUrl, rtmpURLs: URLs, record: record)
541
602
  hms?.startRTMPOrRecording(config: config, completion: { success, error in
542
- if (success) {
603
+ if success {
543
604
  let roomData = HmsDecoder.getHmsRoom(self.hms?.room)
544
605
  let type = self.getString(from: HMSRoomUpdate.browserRecordingStateUpdated)
545
-
606
+
546
607
  let localPeerData = HmsDecoder.getHmsLocalPeer(self.hms?.localPeer)
547
608
  let remotePeerData = HmsDecoder.getHmsRemotePeers(self.hms?.remotePeers)
548
609
  self.delegate?.emitEvent(self.ON_ROOM_UPDATE, ["event": self.ON_ROOM_UPDATE, "id": self.id, "type": type, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData])
549
610
  resolve?(["success": success])
550
611
  return
551
612
  } else {
552
- self.delegate?.emitEvent(self.ON_ERROR, ["event": self.ON_ERROR, "error": HmsDecoder.getError(error), "id":self.id])
613
+ self.delegate?.emitEvent(self.ON_ERROR, ["event": self.ON_ERROR, "error": HmsDecoder.getError(error), "id": self.id])
553
614
  reject?(error?.message, error?.localizedDescription, nil)
554
615
  return
555
616
  }
556
617
  })
557
618
  }
558
-
619
+
559
620
  func stopRtmpAndRecording(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
560
621
  hms?.stopRTMPAndRecording(completion: { success, error in
561
- if (success) {
622
+ if success {
562
623
  let roomData = HmsDecoder.getHmsRoom(self.hms?.room)
563
624
  let type = self.getString(from: HMSRoomUpdate.browserRecordingStateUpdated)
564
-
625
+
626
+ let localPeerData = HmsDecoder.getHmsLocalPeer(self.hms?.localPeer)
627
+ let remotePeerData = HmsDecoder.getHmsRemotePeers(self.hms?.remotePeers)
628
+ self.delegate?.emitEvent(self.ON_ROOM_UPDATE, ["event": self.ON_ROOM_UPDATE, "id": self.id, "type": type, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData])
629
+ resolve?(["success": success])
630
+ return
631
+ } else {
632
+ self.delegate?.emitEvent(self.ON_ERROR, ["event": self.ON_ERROR, "error": HmsDecoder.getError(error), "id": self.id])
633
+ reject?(error?.message, error?.localizedDescription, nil)
634
+ return
635
+ }
636
+ })
637
+ }
638
+
639
+ func startHLSStreaming(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
640
+ guard let meetingURLVariants = data.value(forKey: "meetingURLVariants") as? [[String: Any]]?
641
+ else {
642
+ let error = HMSError(id: "126", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
643
+ delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id": id])
644
+ return
645
+ }
646
+
647
+ let hlsMeetingUrlVariant = HmsHelper.getHMSHLSMeetingURLVariants(meetingURLVariants)
648
+ let config = HMSHLSConfig(variants: hlsMeetingUrlVariant)
649
+
650
+ hms?.startHLSStreaming(config: config, completion: { success, error in
651
+ if success {
652
+ let roomData = HmsDecoder.getHmsRoom(self.hms?.room)
653
+ let type = self.getString(from: HMSRoomUpdate.hlsStreamingStateUpdated)
654
+
655
+ let localPeerData = HmsDecoder.getHmsLocalPeer(self.hms?.localPeer)
656
+ let remotePeerData = HmsDecoder.getHmsRemotePeers(self.hms?.remotePeers)
657
+ self.delegate?.emitEvent(self.ON_ROOM_UPDATE, ["event": self.ON_ROOM_UPDATE, "id": self.id, "type": type, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData])
658
+ resolve?(["success": success])
659
+ return
660
+ } else {
661
+ self.delegate?.emitEvent(self.ON_ERROR, ["event": self.ON_ERROR, "error": HmsDecoder.getError(error), "id": self.id])
662
+ reject?(error?.message, error?.localizedDescription, nil)
663
+ return
664
+ }
665
+ })
666
+ }
667
+
668
+ func stopHLSStreaming(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
669
+ hms?.stopHLSStreaming(config: nil, completion: { success, error in
670
+ if success {
671
+ let roomData = HmsDecoder.getHmsRoom(self.hms?.room)
672
+ let type = self.getString(from: HMSRoomUpdate.browserRecordingStateUpdated)
673
+
565
674
  let localPeerData = HmsDecoder.getHmsLocalPeer(self.hms?.localPeer)
566
675
  let remotePeerData = HmsDecoder.getHmsRemotePeers(self.hms?.remotePeers)
567
676
  self.delegate?.emitEvent(self.ON_ROOM_UPDATE, ["event": self.ON_ROOM_UPDATE, "id": self.id, "type": type, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData])
568
677
  resolve?(["success": success])
569
678
  return
570
679
  } else {
571
- self.delegate?.emitEvent(self.ON_ERROR, ["event": self.ON_ERROR, "error": HmsDecoder.getError(error), "id":self.id])
680
+ self.delegate?.emitEvent(self.ON_ERROR, ["event": self.ON_ERROR, "error": HmsDecoder.getError(error), "id": self.id])
572
681
  reject?(error?.message, error?.localizedDescription, nil)
573
682
  return
574
683
  }
575
684
  })
576
685
  }
577
686
 
578
- //TODO: to be implemented after volume is exposed for iOS
687
+ func changeName(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
688
+ guard let name = data.value(forKey: "name") as? String
689
+ else {
690
+ let error = HMSError(id: "123", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
691
+ delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id": id])
692
+ reject?(nil, "REQUIRED_KEYS_NOT_FOUND", nil)
693
+ return
694
+ }
695
+
696
+ hms?.change(name: name) { success, error in
697
+ if success {
698
+ resolve?(["success": success])
699
+ } else {
700
+ self.delegate?.emitEvent(self.ON_ERROR, ["event": self.ON_ERROR, "error": HmsDecoder.getError(error), "id": self.id])
701
+ reject?(error?.message, error?.localizedDescription, nil)
702
+ }
703
+ }
704
+ }
705
+
706
+ func enableRTCStats() {
707
+ rtcStatsAttached = true
708
+ }
709
+
710
+ func disableRTCStats() {
711
+ rtcStatsAttached = false
712
+ }
713
+
714
+ // TODO: to be implemented after volume is exposed for iOS
579
715
  // func getVolume(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
580
716
  // guard let trackId = data.value(forKey: "trackId") as? String
581
717
  // else {
@@ -589,7 +725,7 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
589
725
  //
590
726
  // }
591
727
  // }
592
-
728
+
593
729
  // func setLocalVideoSettings(_ data: NSDictionary) {
594
730
  // let localVideoTrack = self.hms?.localPeer?.localVideoTrack()
595
731
  //
@@ -600,103 +736,104 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
600
736
  // }
601
737
  // localVideoTrack?.settings = settings
602
738
  // }
603
-
739
+
604
740
  // MARK: - HMS SDK Delegate Callbacks
605
-
741
+
606
742
  func on(join room: HMSRoom) {
607
743
  // Callback from join action
608
744
  let roomData = HmsDecoder.getHmsRoom(room)
609
745
  let localPeerData = HmsDecoder.getHmsLocalPeer(hms?.localPeer)
610
746
  let remotePeerData = HmsDecoder.getHmsRemotePeers(hms?.remotePeers)
611
-
747
+
612
748
  let decodedRoles = HmsDecoder.getAllRoles(hms?.roles)
613
-
614
- self.delegate?.emitEvent(ON_JOIN, ["event": ON_JOIN, "id": self.id , "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData, "roles": decodedRoles])
749
+ self.recentPreviewTracks = []
750
+ self.delegate?.emitEvent(ON_JOIN, ["event": ON_JOIN, "id": self.id, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData, "roles": decodedRoles])
615
751
  }
616
-
752
+
617
753
  func onPreview(room: HMSRoom, localTracks: [HMSTrack]) {
618
754
  let previewTracks = HmsDecoder.getPreviewTracks(localTracks)
619
755
  let hmsRoom = HmsDecoder.getHmsRoom(room)
620
756
  let localPeerData = HmsDecoder.getHmsLocalPeer(hms?.localPeer)
621
-
622
- self.delegate?.emitEvent(ON_PREVIEW, ["event": ON_PREVIEW, "id": self.id , "room": hmsRoom, "previewTracks": previewTracks, "localPeer": localPeerData])
757
+
758
+ previewInProgress = false
759
+ self.delegate?.emitEvent(ON_PREVIEW, ["event": ON_PREVIEW, "id": self.id, "room": hmsRoom, "previewTracks": previewTracks, "localPeer": localPeerData])
623
760
  }
624
-
761
+
625
762
  func on(room: HMSRoom, update: HMSRoomUpdate) {
626
763
  // Listener for any updation in room
627
764
  let roomData = HmsDecoder.getHmsRoom(room)
628
765
  let type = getString(from: update)
629
-
766
+
630
767
  let localPeerData = HmsDecoder.getHmsLocalPeer(hms?.localPeer)
631
768
  let remotePeerData = HmsDecoder.getHmsRemotePeers(hms?.remotePeers)
632
-
633
- self.delegate?.emitEvent(ON_ROOM_UPDATE, ["event": ON_ROOM_UPDATE, "id": self.id , "type": type, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData])
769
+
770
+ self.delegate?.emitEvent(ON_ROOM_UPDATE, ["event": ON_ROOM_UPDATE, "id": self.id, "type": type, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData])
634
771
  }
635
-
772
+
636
773
  func on(peer: HMSPeer, update: HMSPeerUpdate) {
637
774
  // Listener for updates in Peers
638
775
  let roomData = HmsDecoder.getHmsRoom(hms?.room)
639
776
  let type = getString(from: update)
640
-
777
+
641
778
  let localPeerData = HmsDecoder.getHmsLocalPeer(hms?.localPeer)
642
779
  let remotePeerData = HmsDecoder.getHmsRemotePeers(hms?.remotePeers)
643
780
  let hmsPeer = HmsDecoder.getHmsPeer(peer)
644
-
781
+
645
782
  self.delegate?.emitEvent(ON_PEER_UPDATE, ["event": ON_PEER_UPDATE, "id": self.id, "type": type, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData, "peer": hmsPeer])
646
783
  }
647
-
784
+
648
785
  func on(track: HMSTrack, update: HMSTrackUpdate, for peer: HMSPeer) {
649
786
  // Listener for updates in Tracks
650
787
  let roomData = HmsDecoder.getHmsRoom(hms?.room)
651
788
  let type = getString(from: update)
652
-
789
+
653
790
  let localPeerData = HmsDecoder.getHmsLocalPeer(hms?.localPeer)
654
791
  let remotePeerData = HmsDecoder.getHmsRemotePeers(hms?.remotePeers)
655
792
  let hmsPeer = HmsDecoder.getHmsPeer(peer)
656
793
  let hmsTrack = HmsDecoder.getHmsTrack(track)
657
-
794
+
658
795
  self.delegate?.emitEvent(ON_TRACK_UPDATE, ["event": ON_TRACK_UPDATE, "id": self.id, "room": roomData, "type": type, "localPeer": localPeerData, "remotePeers": remotePeerData, "peer": hmsPeer, "track": hmsTrack])
659
796
  }
660
-
797
+
661
798
  func on(error: HMSError) {
662
- self.delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
799
+ if previewInProgress { previewInProgress = false }
800
+ self.delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id": id])
663
801
  }
664
-
802
+
665
803
  func on(message: HMSMessage) {
666
- self.delegate?.emitEvent(ON_MESSAGE, ["event": ON_MESSAGE, "id": self.id , "sender": message.sender?.name ?? "", "time": message.time, "message": message.message, "type": message.type])
804
+ self.delegate?.emitEvent(ON_MESSAGE, ["event": ON_MESSAGE, "id": self.id, "sender": message.sender?.name ?? "", "time": message.time, "message": message.message, "type": message.type])
667
805
  }
668
-
806
+
669
807
  func on(updated speakers: [HMSSpeaker]) {
670
- var speakerPeerIds: [[String : Any]] = []
808
+ var speakerPeerIds: [[String: Any]] = []
671
809
  for speaker in speakers {
672
810
  speakerPeerIds.append(["peer": HmsDecoder.getHmsPeer(speaker.peer), "level": speaker.level, "track": HmsDecoder.getHmsTrack(speaker.track)])
673
811
  }
674
- self.delegate?.emitEvent(ON_SPEAKER, ["event": ON_SPEAKER, "id": self.id , "count": speakers.count, "peers" :speakerPeerIds])
812
+ self.delegate?.emitEvent(ON_SPEAKER, ["event": ON_SPEAKER, "id": self.id, "count": speakers.count, "peers": speakerPeerIds])
675
813
  }
676
-
814
+
677
815
  func onReconnecting() {
678
816
  self.delegate?.emitEvent(RECONNECTING, ["event": RECONNECTING, "id": self.id ])
679
817
  }
680
-
818
+
681
819
  func onReconnected() {
682
820
  self.delegate?.emitEvent(RECONNECTED, ["event": RECONNECTED, "id": self.id ])
683
821
  }
684
-
822
+
685
823
  func on(roleChangeRequest: HMSRoleChangeRequest) {
686
824
  let decodedRoleChangeRequest = HmsDecoder.getHmsRoleChangeRequest(roleChangeRequest, self.id)
687
825
  recentRoleChangeRequest = roleChangeRequest
688
826
  self.delegate?.emitEvent(ON_ROLE_CHANGE_REQUEST, decodedRoleChangeRequest)
689
827
  }
690
-
828
+
691
829
  func on(changeTrackStateRequest: HMSChangeTrackStateRequest) {
692
830
  let decodedChangeTrackStateRequest = HmsDecoder.getHmsChangeTrackStateRequest(changeTrackStateRequest, id)
693
831
  delegate?.emitEvent("ON_CHANGE_TRACK_STATE_REQUEST", decodedChangeTrackStateRequest)
694
- recentChangeTrackStateRequest = changeTrackStateRequest
695
832
  }
696
-
833
+
697
834
  func on(removedFromRoom notification: HMSRemovedFromRoomNotification) {
698
835
  let requestedBy = notification.requestedBy as HMSPeer?
699
- var decodedRequestedBy: [String: Any]? = nil
836
+ var decodedRequestedBy: [String: Any]?
700
837
  if let requested = requestedBy {
701
838
  decodedRequestedBy = HmsDecoder.getHmsPeer(requested)
702
839
  }
@@ -705,17 +842,86 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
705
842
  self.delegate?.emitEvent(ON_REMOVED_FROM_ROOM, ["event": ON_REMOVED_FROM_ROOM, "id": self.id, "requestedBy": decodedRequestedBy as Any, "reason": reason, "roomEnded": roomEnded ])
706
843
  }
707
844
 
845
+ func on(rtcStats: HMSRTCStatsReport) {
846
+ if (!rtcStatsAttached) {
847
+ return
848
+ }
849
+ let video = HmsDecoder.getHMSRTCStats(rtcStats.video)
850
+ let audio = HmsDecoder.getHMSRTCStats(rtcStats.audio)
851
+ let combined = HmsDecoder.getHMSRTCStats(rtcStats.combined)
852
+
853
+ self.delegate?.emitEvent(ON_RTC_STATS, ["video": video, "audio": audio, "combined": combined, "id": self.id])
854
+ }
708
855
 
709
- // MARK: Helper Functions
856
+ func on(localAudioStats: HMSLocalAudioStats, track: HMSLocalAudioTrack, peer: HMSPeer) {
857
+ if (!rtcStatsAttached) {
858
+ return
859
+ }
860
+ let localStats = HmsDecoder.getLocalAudioStats(localAudioStats)
861
+ let localTrack = HmsDecoder.getHmsLocalAudioTrack(track)
862
+ let decodedPeer = HmsDecoder.getHmsPeer(peer)
863
+
864
+ self.delegate?.emitEvent(ON_LOCAL_AUDIO_STATS, ["localAudioStats": localStats, "track": localTrack, "peer": decodedPeer, "id": self.id])
865
+ }
866
+
867
+ func on(localVideoStats: HMSLocalVideoStats, track: HMSLocalVideoTrack, peer: HMSPeer) {
868
+ if (!rtcStatsAttached) {
869
+ return
870
+ }
871
+ let localStats = HmsDecoder.getLocalVideoStats(localVideoStats)
872
+ let decodedPeer = HmsDecoder.getHmsPeer(peer)
873
+ let localTrack = HmsDecoder.getHmsLocalVideoTrack(track)
874
+
875
+ self.delegate?.emitEvent(ON_LOCAL_VIDEO_STATS, ["localVideoStats": localStats, "track": localTrack, "peer": decodedPeer, "id": self.id])
876
+ }
877
+
878
+ func on(remoteAudioStats: HMSRemoteAudioStats, track: HMSRemoteAudioTrack, peer: HMSPeer) {
879
+ if (!rtcStatsAttached) {
880
+ return
881
+ }
882
+ let remoteStats = HmsDecoder.getRemoteAudioStats(remoteAudioStats)
883
+ let remoteTrack = HmsDecoder.getHMSRemoteAudioTrack(track)
884
+ let decodedPeer = HmsDecoder.getHmsPeer(peer)
885
+
886
+ self.delegate?.emitEvent(ON_REMOTE_AUDIO_STATS, ["remoteAudioStats": remoteStats, "track": remoteTrack, "peer": decodedPeer, "id": self.id])
887
+ }
710
888
 
711
- func muteAllPeersAudio(_ data: NSDictionary) {
889
+ func on(remoteVideoStats: HMSRemoteVideoStats, track: HMSRemoteVideoTrack, peer: HMSPeer) {
890
+ if (!rtcStatsAttached) {
891
+ return
892
+ }
893
+ let remoteStats = HmsDecoder.getRemoteVideoStats(remoteVideoStats)
894
+ let decodedPeer = HmsDecoder.getHmsPeer(peer)
895
+ let remoteTrack = HmsDecoder.getHMSRemoteVideoTrack(track)
896
+
897
+ self.delegate?.emitEvent(ON_REMOTE_VIDEO_STATS, ["remoteVideoStats": remoteStats, "track": remoteTrack, "peer": decodedPeer, "id": self.id])
898
+ }
899
+
900
+ // MARK: Helper Functions
901
+ func remoteMuteAllAudio() {
902
+ let allAudioTracks = HMSUtilities.getAllAudioTracks(in: (self.hms?.room)!!)
903
+ var customError: HMSError? = nil
904
+ for audioTrack in allAudioTracks {
905
+ self.hms?.changeTrackState(for: audioTrack, mute: true, completion: { success, error in
906
+ if success {
907
+ } else {
908
+ customError = error
909
+ }
910
+ })
911
+ }
912
+ if (customError != nil) {
913
+ delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(customError), "id": id])
914
+ }
915
+ }
916
+
917
+ func setPlaybackForAllAudio(_ data: NSDictionary) {
712
918
  guard let mute = data.value(forKey: "mute") as? Bool
713
919
  else {
714
920
  let error = HMSError(id: "119", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
715
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
921
+ delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id": id])
716
922
  return
717
923
  }
718
-
924
+
719
925
  DispatchQueue.main.async { [weak self] in
720
926
  let remotePeers = self?.hms?.remotePeers
721
927
  for peer in remotePeers ?? [] {
@@ -725,10 +931,10 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
725
931
  let roomData = HmsDecoder.getHmsRoom(hms?.room)
726
932
  let localPeerData = HmsDecoder.getHmsLocalPeer(hms?.localPeer)
727
933
  let remotePeerData = HmsDecoder.getHmsRemotePeers(hms?.remotePeers)
728
-
934
+
729
935
  self.delegate?.emitEvent(ON_PEER_UPDATE, ["event": ON_PEER_UPDATE, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData])
730
936
  }
731
-
937
+
732
938
  private func getString(from update: HMSPeerUpdate) -> String {
733
939
  switch update {
734
940
  case .peerJoined:
@@ -739,11 +945,15 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
739
945
  return "ROLE_CHANGED"
740
946
  case .metadataUpdated:
741
947
  return "METADATA_CHANGED"
948
+ case .nameUpdated:
949
+ return "NAME_CHANGED"
950
+ case .defaultUpdate:
951
+ return "DEFAULT_UPDATE"
742
952
  default:
743
953
  return ""
744
954
  }
745
955
  }
746
-
956
+
747
957
  private func getString(from update: HMSTrackUpdate) -> String {
748
958
  switch update {
749
959
  case .trackAdded:
@@ -764,7 +974,7 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
764
974
  return ""
765
975
  }
766
976
  }
767
-
977
+
768
978
  func getString(from update: HMSRoomUpdate) -> String {
769
979
  switch update {
770
980
  case .roomTypeChanged:
@@ -773,6 +983,8 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
773
983
  return "META_DATA_CHANGED"
774
984
  case .browserRecordingStateUpdated:
775
985
  return "BROWSER_RECORDING_STATE_UPDATED"
986
+ case .hlsStreamingStateUpdated:
987
+ return "HLS_STREAMING_STATE_UPDATED"
776
988
  case .rtmpStreamingStateUpdated:
777
989
  return "RTMP_STREAMING_STATE_UPDATED"
778
990
  case.serverRecordingStateUpdated:
@@ -782,3 +994,9 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
782
994
  }
783
995
  }
784
996
  }
997
+
998
+ // extension HmsSDK: HMSLogger {
999
+ // func log(_ message: String, _ level: HMSLogLevel) {
1000
+ //
1001
+ // }
1002
+ // }