@100mslive/react-native-hms 0.9.6 → 0.9.9

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 (141) hide show
  1. package/README.md +15 -4
  2. package/android/.gradle/6.9/fileHashes/fileHashes.bin +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/outputFiles.bin +0 -0
  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/compiler.xml +6 -0
  10. package/android/.idea/gradle.xml +6 -1
  11. package/android/.idea/jarRepositories.xml +40 -0
  12. package/android/.idea/libraries/Gradle__androidx_activity_activity_1_2_4_aar.xml +16 -0
  13. package/android/.idea/libraries/Gradle__androidx_annotation_annotation_1_3_0.xml +11 -0
  14. package/android/.idea/libraries/Gradle__androidx_annotation_annotation_experimental_1_1_0_aar.xml +13 -0
  15. package/android/.idea/libraries/Gradle__androidx_appcompat_appcompat_1_4_1_aar.xml +16 -0
  16. package/android/.idea/libraries/Gradle__androidx_appcompat_appcompat_resources_1_4_1_aar.xml +13 -0
  17. package/android/.idea/libraries/Gradle__androidx_arch_core_core_common_2_1_0.xml +11 -0
  18. package/android/.idea/libraries/Gradle__androidx_arch_core_core_runtime_2_1_0_aar.xml +13 -0
  19. package/android/.idea/libraries/Gradle__androidx_autofill_autofill_1_1_0_aar.xml +16 -0
  20. package/android/.idea/libraries/Gradle__androidx_collection_collection_1_1_0.xml +11 -0
  21. package/android/.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_2_1_3_aar.xml +13 -0
  22. package/android/.idea/libraries/Gradle__androidx_core_core_1_7_0_aar.xml +16 -0
  23. package/android/.idea/libraries/Gradle__androidx_cursoradapter_cursoradapter_1_0_0_aar.xml +13 -0
  24. package/android/.idea/libraries/Gradle__androidx_customview_customview_1_0_0_aar.xml +13 -0
  25. package/android/.idea/libraries/Gradle__androidx_drawerlayout_drawerlayout_1_0_0_aar.xml +16 -0
  26. package/android/.idea/libraries/Gradle__androidx_fragment_fragment_1_3_6_aar.xml +16 -0
  27. package/android/.idea/libraries/Gradle__androidx_interpolator_interpolator_1_0_0_aar.xml +13 -0
  28. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_common_2_4_0.xml +11 -0
  29. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_2_0_0_aar.xml +13 -0
  30. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_core_2_3_1_aar.xml +13 -0
  31. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_4_0_aar.xml +13 -0
  32. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_2_3_1_aar.xml +13 -0
  33. package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_savedstate_2_3_1_aar.xml +13 -0
  34. package/android/.idea/libraries/Gradle__androidx_loader_loader_1_0_0_aar.xml +13 -0
  35. package/android/.idea/libraries/Gradle__androidx_savedstate_savedstate_1_1_0_aar.xml +13 -0
  36. package/android/.idea/libraries/Gradle__androidx_swiperefreshlayout_swiperefreshlayout_1_0_0_aar.xml +16 -0
  37. package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_1_1_0_aar.xml +13 -0
  38. package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_animated_1_1_0_aar.xml +13 -0
  39. package/android/.idea/libraries/Gradle__androidx_versionedparcelable_versionedparcelable_1_1_1_aar.xml +13 -0
  40. package/android/.idea/libraries/Gradle__androidx_viewpager_viewpager_1_0_0_aar.xml +13 -0
  41. package/android/.idea/libraries/Gradle__com_facebook_fbjni_fbjni_java_only_0_2_2.xml +13 -0
  42. package/android/.idea/libraries/Gradle__com_facebook_fresco_drawee_2_5_0_aar.xml +15 -0
  43. package/android/.idea/libraries/Gradle__com_facebook_fresco_fbcore_2_5_0_aar.xml +18 -0
  44. package/android/.idea/libraries/Gradle__com_facebook_fresco_fresco_2_5_0_aar.xml +18 -0
  45. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_2_5_0_aar.xml +18 -0
  46. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_base_2_5_0_aar.xml +18 -0
  47. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_native_2_5_0_aar.xml +15 -0
  48. package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_okhttp3_2_5_0_aar.xml +15 -0
  49. package/android/.idea/libraries/Gradle__com_facebook_fresco_memory_type_ashmem_2_5_0_aar.xml +15 -0
  50. package/android/.idea/libraries/Gradle__com_facebook_fresco_memory_type_java_2_5_0_aar.xml +15 -0
  51. package/android/.idea/libraries/Gradle__com_facebook_fresco_memory_type_native_2_5_0_aar.xml +15 -0
  52. package/android/.idea/libraries/Gradle__com_facebook_fresco_nativeimagefilters_2_5_0_aar.xml +15 -0
  53. package/android/.idea/libraries/Gradle__com_facebook_fresco_nativeimagetranscoder_2_5_0_aar.xml +15 -0
  54. package/android/.idea/libraries/Gradle__com_facebook_fresco_ui_common_2_5_0_aar.xml +15 -0
  55. package/android/.idea/libraries/Gradle__com_facebook_infer_annotation_infer_annotation_0_18_0.xml +13 -0
  56. package/android/.idea/libraries/Gradle__com_facebook_react_react_native_0_69_1_debug_aar.xml +14 -0
  57. package/android/.idea/libraries/Gradle__com_facebook_soloader_annotation_0_10_3.xml +13 -0
  58. package/android/.idea/libraries/Gradle__com_facebook_soloader_nativeloader_0_10_3.xml +13 -0
  59. package/android/.idea/libraries/Gradle__com_facebook_soloader_soloader_0_10_3_aar.xml +15 -0
  60. package/android/.idea/libraries/Gradle__com_facebook_yoga_proguard_annotations_1_19_0.xml +13 -0
  61. package/android/.idea/libraries/Gradle__com_github_100mslive_android_sdk_lib_2_4_2_aar.xml +11 -0
  62. package/android/.idea/libraries/Gradle__com_github_100mslive_webrtc_m97_aar.xml +11 -0
  63. package/android/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_3_0_2.xml +13 -0
  64. package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_4_9_2.xml +13 -0
  65. package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_urlconnection_4_9_2.xml +13 -0
  66. package/android/.idea/libraries/Gradle__com_squareup_okio_okio_2_9_0.xml +13 -0
  67. package/android/.idea/libraries/Gradle__javax_inject_javax_inject_1.xml +13 -0
  68. package/android/.idea/libraries/Gradle__org_jetbrains_annotations_13_0.xml +13 -0
  69. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_annotations_jvm_1_3_72.xml +13 -0
  70. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_6_10.xml +13 -0
  71. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_6_10.xml +13 -0
  72. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_6_10.xml +13 -0
  73. package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk8_1_6_10.xml +13 -0
  74. package/android/.idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_android_1_6_0.xml +13 -0
  75. package/android/.idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_core_jvm_1_6_0.xml +13 -0
  76. package/android/.idea/misc.xml +1 -1
  77. package/android/.idea/modules/android.androidTest.iml +201 -0
  78. package/android/.idea/modules/android.iml +28 -6
  79. package/android/.idea/modules/android.main.iml +196 -0
  80. package/android/.idea/modules/android.unitTest.iml +195 -0
  81. package/android/.idea/modules.xml +3 -0
  82. package/android/build.gradle +3 -3
  83. package/android/src/main/java/com/reactnativehmssdk/HMSDecoder.kt +2 -2
  84. package/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt +35 -5
  85. package/android/src/main/java/com/reactnativehmssdk/HMSManager.kt +2 -2
  86. package/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +53 -50
  87. package/ios/HMSDecoder.swift +1 -1
  88. package/ios/HMSHelper.swift +13 -0
  89. package/ios/HMSManager.m +1 -1
  90. package/ios/HMSManager.swift +2 -2
  91. package/ios/HMSRNSDK.swift +177 -147
  92. package/lib/commonjs/classes/HMSEncoder.js +26 -10
  93. package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
  94. package/lib/commonjs/classes/HMSLogger.js +2 -2
  95. package/lib/commonjs/classes/HMSLogger.js.map +1 -1
  96. package/lib/commonjs/classes/HMSMessage.js +1 -1
  97. package/lib/commonjs/classes/HMSMessage.js.map +1 -1
  98. package/lib/commonjs/classes/HMSRTMPConfig.js +3 -0
  99. package/lib/commonjs/classes/HMSRTMPConfig.js.map +1 -1
  100. package/lib/commonjs/classes/HMSRtmpVideoResolution.js +23 -0
  101. package/lib/commonjs/classes/HMSRtmpVideoResolution.js.map +1 -0
  102. package/lib/commonjs/classes/HMSSDK.js +87 -43
  103. package/lib/commonjs/classes/HMSSDK.js.map +1 -1
  104. package/lib/commonjs/index.js +14 -14
  105. package/lib/commonjs/index.js.map +1 -1
  106. package/lib/module/classes/HMSEncoder.js +24 -9
  107. package/lib/module/classes/HMSEncoder.js.map +1 -1
  108. package/lib/module/classes/HMSLogger.js +2 -2
  109. package/lib/module/classes/HMSLogger.js.map +1 -1
  110. package/lib/module/classes/HMSMessage.js +1 -1
  111. package/lib/module/classes/HMSMessage.js.map +1 -1
  112. package/lib/module/classes/HMSRTMPConfig.js +3 -0
  113. package/lib/module/classes/HMSRTMPConfig.js.map +1 -1
  114. package/lib/module/classes/HMSRtmpVideoResolution.js +14 -0
  115. package/lib/module/classes/HMSRtmpVideoResolution.js.map +1 -0
  116. package/lib/module/classes/HMSSDK.js +86 -37
  117. package/lib/module/classes/HMSSDK.js.map +1 -1
  118. package/lib/module/index.js +1 -1
  119. package/lib/module/index.js.map +1 -1
  120. package/lib/typescript/classes/HMSEncoder.d.ts +4 -2
  121. package/lib/typescript/classes/HMSLogger.d.ts +1 -1
  122. package/lib/typescript/classes/HMSMessage.d.ts +3 -3
  123. package/lib/typescript/classes/HMSRTMPConfig.d.ts +3 -0
  124. package/lib/typescript/classes/HMSRtmpVideoResolution.d.ts +8 -0
  125. package/lib/typescript/classes/HMSSDK.d.ts +4 -4
  126. package/lib/typescript/index.d.ts +1 -1
  127. package/package.json +1 -19
  128. package/react-native-hms.podspec +1 -1
  129. package/src/classes/HMSEncoder.ts +24 -9
  130. package/src/classes/HMSLogger.ts +2 -2
  131. package/src/classes/HMSMessage.ts +4 -4
  132. package/src/classes/HMSRTMPConfig.ts +5 -0
  133. package/src/classes/HMSRtmpVideoResolution.ts +9 -0
  134. package/src/classes/HMSSDK.tsx +96 -37
  135. package/src/index.ts +1 -1
  136. package/lib/commonjs/classes/HMSSpeakerUpdate.js +0 -26
  137. package/lib/commonjs/classes/HMSSpeakerUpdate.js.map +0 -1
  138. package/lib/module/classes/HMSSpeakerUpdate.js +0 -17
  139. package/lib/module/classes/HMSSpeakerUpdate.js.map +0 -1
  140. package/lib/typescript/classes/HMSSpeakerUpdate.d.ts +0 -11
  141. package/src/classes/HMSSpeakerUpdate.ts +0 -17
@@ -17,6 +17,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
17
17
  var id: String = "12345"
18
18
  var rtcStatsAttached = false
19
19
  var recentPreviewTracks: [HMSTrack]? = []
20
+ private var reconnectingStage: Bool = false
20
21
 
21
22
  let ON_PREVIEW = "ON_PREVIEW"
22
23
  let ON_JOIN = "ON_JOIN"
@@ -55,6 +56,10 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
55
56
 
56
57
  private var previewInProgress = false
57
58
 
59
+ func emitRequiredKeysError(_ error: String) {
60
+ delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": ["code": HMSErrorCode.genericErrorUnknown, "description": error, "localizedDescription": error, "debugDescription": error, "message": error, "name": "REQUIRED_KEYS_NOT_FOUND", "action": "SEND_ALL_REQUIRED_KEYS", "id": 102], "id": id])
61
+ }
62
+
58
63
  func preview(_ credentials: NSDictionary) {
59
64
 
60
65
  guard !previewInProgress else {
@@ -66,8 +71,8 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
66
71
  guard let authToken = credentials.value(forKey: "authToken") as? String,
67
72
  let user = credentials.value(forKey: "username") as? String
68
73
  else {
69
- let error = HMSError(id: "101", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
70
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HMSDecoder.getError(error), "id": id])
74
+ let errorMessage = "preview: " + HMSHelper.getUnavailableRequiredKey(credentials, ["authToken", "username"])
75
+ emitRequiredKeysError(errorMessage)
71
76
  return
72
77
  }
73
78
 
@@ -90,9 +95,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
90
95
  func previewForRole(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
91
96
  guard let role = data.value(forKey: "role") as? String
92
97
  else {
93
- let error = HMSError(id: "111", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
94
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HMSDecoder.getError(error), "id": id])
95
- reject?(error.message, "FAILED_TO_INITIATE_PREVIEW_FOR_ROLE",nil)
98
+ let errorMessage = "previewForRole: " + HMSHelper.getUnavailableRequiredKey(data, ["role"])
99
+ emitRequiredKeysError(errorMessage)
100
+ reject?(errorMessage, errorMessage, nil)
96
101
  return
97
102
  }
98
103
 
@@ -131,11 +136,11 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
131
136
  guard let authToken = credentials.value(forKey: "authToken") as? String,
132
137
  let user = credentials.value(forKey: "username") as? String
133
138
  else {
134
- let error = HMSError(id: "102", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
135
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HMSDecoder.getError(error), "id": id])
139
+ let errorMessage = "join: " + HMSHelper.getUnavailableRequiredKey(credentials, ["authToken", "username"])
140
+ emitRequiredKeysError(errorMessage)
136
141
  return
137
142
  }
138
-
143
+ reconnectingStage = false
139
144
  let metadata = credentials.value(forKey: "metadata") as? String
140
145
  let captureNetworkQualityInPreview = credentials.value(forKey: "captureNetworkQualityInPreview") as? Bool ?? false
141
146
 
@@ -158,8 +163,8 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
158
163
  func setLocalMute(_ data: NSDictionary) {
159
164
  guard let isMute = data.value(forKey: "isMute") as? Bool
160
165
  else {
161
- let error = HMSError(id: "106", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
162
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HMSDecoder.getError(error), "id": id])
166
+ let errorMessage = "setLocalMute: " + HMSHelper.getUnavailableRequiredKey(data, ["isMute"])
167
+ emitRequiredKeysError(errorMessage)
163
168
  return
164
169
  }
165
170
 
@@ -171,8 +176,8 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
171
176
  func setLocalVideoMute(_ data: NSDictionary) {
172
177
  guard let isMute = data.value(forKey: "isMute") as? Bool
173
178
  else {
174
- let error = HMSError(id: "107", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
175
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HMSDecoder.getError(error), "id": id])
179
+ let errorMessage = "setLocalVideoMute: " + HMSHelper.getUnavailableRequiredKey(data, ["isMute"])
180
+ emitRequiredKeysError(errorMessage)
176
181
  return
177
182
  }
178
183
 
@@ -188,26 +193,31 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
188
193
  }
189
194
 
190
195
  func leave(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
191
- DispatchQueue.main.async { [weak self] in
192
- guard let strongSelf = self else { return }
193
- self?.config = nil
194
- self?.recentRoleChangeRequest = nil
195
- self?.hms?.leave({ success, error in
196
- if success {
197
- resolve?("")
198
- } else {
199
- strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["event": strongSelf.ON_ERROR, "error": HMSDecoder.getError(error), "id": strongSelf.id])
200
- reject?(nil, "error in leave", nil)
201
- }
202
- })
196
+ if(reconnectingStage) {
197
+ reject?("101", "Still in reconnecting stage", nil)
198
+ } else {
199
+ DispatchQueue.main.async { [weak self] in
200
+ guard let strongSelf = self else { return }
201
+ self?.config = nil
202
+ self?.recentRoleChangeRequest = nil
203
+ self?.hms?.leave({ success, error in
204
+ if success {
205
+ resolve?(["success": success])
206
+ } else {
207
+ strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["event": strongSelf.ON_ERROR, "error": HMSDecoder.getError(error), "id": strongSelf.id])
208
+ reject?(nil, "error in leave", nil)
209
+ }
210
+ })
211
+ }
203
212
  }
204
213
  }
205
214
 
206
215
  func sendBroadcastMessage(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
207
216
  guard let message = data.value(forKey: "message") as? String
208
217
  else {
209
- let error = HMSError(id: "108", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
210
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HMSDecoder.getError(error), "id": id])
218
+ let errorMessage = "sendBroadcastMessage: " + HMSHelper.getUnavailableRequiredKey(data, ["message"])
219
+ emitRequiredKeysError(errorMessage)
220
+ reject?(errorMessage, errorMessage, nil)
211
221
  return
212
222
  }
213
223
 
@@ -231,8 +241,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
231
241
  guard let message = data.value(forKey: "message") as? String,
232
242
  let targetedRoles = data.value(forKey: "roles") as? [String]
233
243
  else {
234
- let error = HMSError(id: "109", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
235
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HMSDecoder.getError(error), "id": id])
244
+ let errorMessage = "sendGroupMessage: " + HMSHelper.getUnavailableRequiredKey(data, ["message", "roles"])
245
+ emitRequiredKeysError(errorMessage)
246
+ reject?(errorMessage, errorMessage, nil)
236
247
  return
237
248
  }
238
249
 
@@ -256,8 +267,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
256
267
  guard let message = data.value(forKey: "message") as? String,
257
268
  let peerId = data.value(forKey: "peerId") as? String
258
269
  else {
259
- let error = HMSError(id: "110", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
260
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HMSDecoder.getError(error), "id": id])
270
+ let errorMessage = "sendDirectMessage: " + HMSHelper.getUnavailableRequiredKey(data, ["message", "peerId"])
271
+ emitRequiredKeysError(errorMessage)
272
+ reject?(errorMessage, errorMessage, nil)
261
273
  return
262
274
  }
263
275
 
@@ -281,11 +293,17 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
281
293
 
282
294
  DispatchQueue.main.async { [weak self] in
283
295
 
284
- guard let request = self?.recentRoleChangeRequest else { return }
296
+ guard let request = self?.recentRoleChangeRequest
297
+ else {
298
+ let errorMessage = "acceptRoleChange: recentRoleChangeRequest not found"
299
+ self?.emitRequiredKeysError(errorMessage)
300
+ reject?(errorMessage, errorMessage, nil)
301
+ return
302
+ }
285
303
 
286
304
  self?.hms?.accept(changeRole: request, completion: { success, error in
287
305
  if success {
288
- resolve?(["success": true])
306
+ resolve?(["success": success])
289
307
  } else {
290
308
  self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
291
309
  reject?(error?.message, error?.localizedDescription, nil)
@@ -301,8 +319,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
301
319
  guard let peerId = data.value(forKey: "peerId") as? String,
302
320
  let role = data.value(forKey: "role") as? String
303
321
  else {
304
- let error = HMSError(id: "111", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
305
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HMSDecoder.getError(error), "id": id])
322
+ let errorMessage = "changeRole: " + HMSHelper.getUnavailableRequiredKey(data, ["peerId", "role"])
323
+ emitRequiredKeysError(errorMessage)
324
+ reject?(errorMessage, errorMessage, nil)
306
325
  return
307
326
  }
308
327
 
@@ -315,7 +334,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
315
334
 
316
335
  self?.hms?.changeRole(for: peer, to: role, force: force, completion: { success, error in
317
336
  if success {
318
- resolve?(["success": true])
337
+ resolve?(["success": success])
319
338
  } else {
320
339
  self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
321
340
  reject?(error?.message, error?.localizedDescription, nil)
@@ -328,8 +347,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
328
347
 
329
348
  guard let trackId = data.value(forKey: "trackId") as? String
330
349
  else {
331
- let error = HMSError(id: "112", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
332
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HMSDecoder.getError(error), "id": id])
350
+ let errorMessage = "changeTrackState: " + HMSHelper.getUnavailableRequiredKey(data, ["trackId"])
351
+ emitRequiredKeysError(errorMessage)
352
+ reject?(errorMessage, errorMessage, nil)
333
353
  return
334
354
  }
335
355
 
@@ -338,11 +358,14 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
338
358
  DispatchQueue.main.async { [weak self] in
339
359
  guard let remotePeers = self?.hms?.remotePeers,
340
360
  let track = HMSHelper.getTrackFromTrackId(trackId, remotePeers)
341
- else { return }
361
+ else {
362
+ reject?(nil, "TRACK_NOT_FOUND", nil)
363
+ return
364
+ }
342
365
 
343
366
  self?.hms?.changeTrackState(for: track, mute: mute, completion: { success, error in
344
367
  if success {
345
- resolve?(["success": true])
368
+ resolve?(["success": success])
346
369
  } else {
347
370
  self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
348
371
  reject?(error?.message, error?.localizedDescription, nil)
@@ -355,8 +378,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
355
378
 
356
379
  guard let mute = data.value(forKey: "mute") as? Bool
357
380
  else {
358
- let error = HMSError(id: "113", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
359
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HMSDecoder.getError(error), "id": id])
381
+ let errorMessage = "changeTrackStateForRoles: " + HMSHelper.getUnavailableRequiredKey(data, ["mute"])
382
+ emitRequiredKeysError(errorMessage)
383
+ reject?(errorMessage, errorMessage, nil)
360
384
  return
361
385
  }
362
386
  let source = data.value(forKey: "source") as? String
@@ -376,7 +400,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
376
400
  let encodedTargetedRoles = HMSHelper.getRolesFromRoleNames(targetedRoles, roles: self?.hms?.roles)
377
401
  self?.hms?.changeTrackState(mute: mute, for: decodeType, source: source, roles: encodedTargetedRoles, completion: { success, error in
378
402
  if success {
379
- resolve?(["success": true])
403
+ resolve?(["success": success])
380
404
  } else {
381
405
  self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
382
406
  reject?(error?.message, error?.localizedDescription, nil)
@@ -388,9 +412,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
388
412
  func isMute(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
389
413
  guard let trackId = data.value(forKey: "trackId") as? String
390
414
  else {
391
- reject?(nil, "NO_SDK_ID", nil)
392
- let error = HMSError(id: "114", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
393
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HMSDecoder.getError(error), "id": id])
415
+ let errorMessage = "isMute: " + HMSHelper.getUnavailableRequiredKey(data, ["trackId"])
416
+ emitRequiredKeysError(errorMessage)
417
+ reject?(errorMessage, errorMessage, nil)
394
418
  return
395
419
  }
396
420
 
@@ -402,9 +426,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
402
426
  guard let remotePeers = self?.hms?.remotePeers,
403
427
  let track = HMSHelper.getTrackFromTrackId(trackId, remotePeers)
404
428
  else {
405
- let error = HMSError(id: "120", code: HMSErrorCode.genericErrorUnknown, message: "NOT_FOUND")
429
+ let error = HMSError(id: "120", code: HMSErrorCode.genericErrorUnknown, message: "TRACK_NOT_FOUND")
406
430
  strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["event": strongSelf.ON_ERROR, "error": HMSDecoder.getError(error), "id": strongSelf.id])
407
- reject?(nil, "NOT_FOUND", nil)
431
+ reject?(nil, "TRACK_NOT_FOUND", nil)
408
432
  return
409
433
  }
410
434
  let mute = track.isMute()
@@ -420,8 +444,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
420
444
 
421
445
  guard let peerId = data.value(forKey: "peerId") as? String
422
446
  else {
423
- let error = HMSError(id: "115", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
424
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HMSDecoder.getError(error), "id": id])
447
+ let errorMessage = "removePeer: " + HMSHelper.getUnavailableRequiredKey(data, ["peerId"])
448
+ emitRequiredKeysError(errorMessage)
449
+ reject?(errorMessage, errorMessage, nil)
425
450
  return
426
451
  }
427
452
 
@@ -431,11 +456,14 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
431
456
 
432
457
  guard let remotePeers = self?.hms?.remotePeers,
433
458
  let peer = HMSHelper.getRemotePeerFromPeerId(peerId, remotePeers: remotePeers)
434
- else { return }
459
+ else {
460
+ reject?(nil, "PEER_NOT_FOUND", nil)
461
+ return
462
+ }
435
463
 
436
464
  self?.hms?.removePeer(peer, reason: reason ?? "Removed from room", completion: { success, error in
437
465
  if success {
438
- resolve?(["success": true])
466
+ resolve?(["success": success])
439
467
  } else {
440
468
  self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
441
469
  reject?(error?.message, error?.localizedDescription, nil)
@@ -449,15 +477,16 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
449
477
  guard let lock = data.value(forKey: "lock") as? Bool,
450
478
  let reason = data.value(forKey: "reason") as? String
451
479
  else {
452
- let error = HMSError(id: "116", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
453
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HMSDecoder.getError(error), "id": id])
480
+ let errorMessage = "endRoom: " + HMSHelper.getUnavailableRequiredKey(data, ["lock", "reason"])
481
+ emitRequiredKeysError(errorMessage)
482
+ reject?(errorMessage, errorMessage, nil)
454
483
  return
455
484
  }
456
485
 
457
486
  DispatchQueue.main.async { [weak self] in
458
487
  self?.hms?.endRoom(lock: lock, reason: reason, completion: { success, error in
459
488
  if success {
460
- resolve?(["success": true])
489
+ resolve?(["success": success])
461
490
  } else {
462
491
  self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
463
492
  reject?(error?.message, error?.localizedDescription, nil)
@@ -469,18 +498,15 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
469
498
  func isPlaybackAllowed(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
470
499
  guard let trackId = data.value(forKey: "trackId") as? String
471
500
  else {
472
- reject?(nil, "NOT_FOUND", nil)
473
- let error = HMSError(id: "117", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
474
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HMSDecoder.getError(error), "id": id])
501
+ let errorMessage = "isPlaybackAllowed: " + HMSHelper.getUnavailableRequiredKey(data, ["trackId"])
502
+ emitRequiredKeysError(errorMessage)
503
+ reject?(errorMessage, errorMessage, nil)
475
504
  return
476
505
  }
477
506
  DispatchQueue.main.async { [weak self] in
478
- guard let strongSelf = self else { return }
479
507
  guard let remotePeers = self?.hms?.remotePeers
480
508
  else {
481
- let error = HMSError(id: "121", code: HMSErrorCode.genericErrorUnknown, message: "NOT_FOUND")
482
- strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["event": strongSelf.ON_ERROR, "error": HMSDecoder.getError(error), "id": strongSelf.id])
483
- reject?(nil, "NOT_FOUND", nil)
509
+ reject?(nil, "REMOTE_PEERS_NOT_FOUND", nil)
484
510
  return
485
511
  }
486
512
  let remoteAudioTrack = HMSHelper.getRemoteAudioTrackFromTrackId(trackId, remotePeers)
@@ -494,9 +520,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
494
520
  resolve?(isPlaybackAllowed)
495
521
  return
496
522
  } else {
497
- let error = HMSError(id: "122", code: HMSErrorCode.genericErrorUnknown, message: "NOT_FOUND")
498
- strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["event": strongSelf.ON_ERROR, "error": HMSDecoder.getError(error), "id": strongSelf.id])
499
- reject?(nil, "NOT_FOUND", nil)
523
+ reject?(nil, "TRACK_NOT_FOUND", nil)
500
524
  return
501
525
  }
502
526
  }
@@ -512,8 +536,8 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
512
536
  guard let trackId = data.value(forKey: "trackId") as? String,
513
537
  let playbackAllowed = data.value(forKey: "playbackAllowed") as? Bool
514
538
  else {
515
- let error = HMSError(id: "118", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
516
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HMSDecoder.getError(error), "id": id])
539
+ let errorMessage = "setPlaybackAllowed: " + HMSHelper.getUnavailableRequiredKey(data, ["trackId", "playbackAllowed"])
540
+ emitRequiredKeysError(errorMessage)
517
541
  return
518
542
  }
519
543
  DispatchQueue.main.async { [weak self] in
@@ -538,9 +562,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
538
562
  func changeMetadata(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
539
563
  guard let metadata = data.value(forKey: "metadata") as? String
540
564
  else {
541
- let error = HMSError(id: "123", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
542
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HMSDecoder.getError(error), "id": id])
543
- reject?(nil, "REQUIRED_KEYS_NOT_FOUND", nil)
565
+ let errorMessage = "changeMetadata: " + HMSHelper.getUnavailableRequiredKey(data, ["metadata"])
566
+ emitRequiredKeysError(errorMessage)
567
+ reject?(errorMessage, errorMessage, nil)
544
568
  return
545
569
  }
546
570
 
@@ -560,8 +584,8 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
560
584
  guard let trackId = data.value(forKey: "trackId") as? String,
561
585
  let volume = data.value(forKey: "volume") as? Double
562
586
  else {
563
- let error = HMSError(id: "124", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
564
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HMSDecoder.getError(error), "id": id])
587
+ let errorMessage = "setVolume: " + HMSHelper.getUnavailableRequiredKey(data, ["trackId", "volume"])
588
+ emitRequiredKeysError(errorMessage)
565
589
  return
566
590
  }
567
591
 
@@ -574,29 +598,31 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
574
598
  if remoteAudioTrack != nil {
575
599
  remoteAudioTrack?.setVolume(volume)
576
600
  } else {
577
- let error = HMSError(id: "125", code: HMSErrorCode.genericErrorUnknown, message: "TRACK_ID_NOT_FOUND_IN_REMOTE_TRACKS")
601
+ let error = HMSError(id: "125", code: HMSErrorCode.genericErrorUnknown, message: "TRACK_NOT_FOUND")
578
602
  strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["event": strongSelf.ON_ERROR, "error": HMSDecoder.getError(error), "id": strongSelf.id])
579
603
  }
580
604
  }
581
605
  }
582
606
 
583
607
  func startRTMPOrRecording(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
584
- guard let record = data.value(forKey: "record") as? Bool
608
+ guard let record = data.value(forKey: "record") as? Bool,
609
+ let meetingString = data.value(forKey: "meetingURL") as? String
585
610
  else {
586
- let error = HMSError(id: "126", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
587
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HMSDecoder.getError(error), "id": id])
611
+ let errorMessage = "startRTMPOrRecording: " + HMSHelper.getUnavailableRequiredKey(data, ["record", "meetingURL"])
612
+ emitRequiredKeysError(errorMessage)
613
+ reject?(errorMessage, errorMessage, nil)
588
614
  return
589
615
  }
590
616
 
591
- let meetingString = data.value(forKey: "meetingURL") as? String
592
617
  let rtmpStrings = data.value(forKey: "rtmpURLs") as? [String]
593
618
 
594
619
  var meetingUrl: URL?
595
- if let meetLink = meetingString {
596
- meetingUrl = URL(string: meetLink)
620
+ if let meetLink = URL(string: meetingString) {
621
+ meetingUrl = meetLink
597
622
  } else {
598
623
  let error = HMSError(id: "127", code: HMSErrorCode.genericErrorUnknown, message: "INVALID_MEETING_URL_PASSED")
599
624
  delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HMSDecoder.getError(error), "id": id])
625
+ reject?("INVALID_MEETING_URL_PASSED", "INVALID_MEETING_URL_PASSED", nil)
600
626
  }
601
627
 
602
628
  let URLs = HMSHelper.getRtmpUrls(rtmpStrings)
@@ -642,8 +668,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
642
668
  func startHLSStreaming(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
643
669
  guard let meetingURLVariants = data.value(forKey: "meetingURLVariants") as? [[String: Any]]?
644
670
  else {
645
- let error = HMSError(id: "126", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
646
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HMSDecoder.getError(error), "id": id])
671
+ let errorMessage = "startHLSStreaming: " + HMSHelper.getUnavailableRequiredKey(data, ["meetingURLVariants"])
672
+ emitRequiredKeysError(errorMessage)
673
+ reject?(errorMessage, errorMessage, nil)
647
674
  return
648
675
  }
649
676
 
@@ -691,9 +718,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
691
718
  func changeName(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
692
719
  guard let name = data.value(forKey: "name") as? String
693
720
  else {
694
- let error = HMSError(id: "123", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
695
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HMSDecoder.getError(error), "id": id])
696
- reject?(nil, "REQUIRED_KEYS_NOT_FOUND", nil)
721
+ let errorMessage = "changeName: " + HMSHelper.getUnavailableRequiredKey(data, ["name"])
722
+ emitRequiredKeysError(errorMessage)
723
+ reject?(errorMessage, errorMessage, nil)
697
724
  return
698
725
  }
699
726
 
@@ -707,6 +734,45 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
707
734
  }
708
735
  }
709
736
 
737
+ func remoteMuteAllAudio(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
738
+ let allAudioTracks = HMSUtilities.getAllAudioTracks(in: (self.hms?.room)!!)
739
+ var customError: HMSError? = nil
740
+ for audioTrack in allAudioTracks {
741
+ self.hms?.changeTrackState(for: audioTrack, mute: true, completion: { success, error in
742
+ if success {
743
+ } else {
744
+ customError = error
745
+ }
746
+ })
747
+ }
748
+ if (customError === nil) {
749
+ resolve?(["success": true])
750
+ } else {
751
+ reject?(customError?.message, customError?.localizedDescription, nil)
752
+ }
753
+ }
754
+
755
+ func setPlaybackForAllAudio(_ data: NSDictionary) {
756
+ guard let mute = data.value(forKey: "mute") as? Bool
757
+ else {
758
+ let errorMessage = "setPlaybackForAllAudio: " + HMSHelper.getUnavailableRequiredKey(data, ["setPlaybackForAllAudio"])
759
+ emitRequiredKeysError(errorMessage)
760
+ return
761
+ }
762
+
763
+ DispatchQueue.main.async { [weak self] in
764
+ let remotePeers = self?.hms?.remotePeers
765
+ for peer in remotePeers ?? [] {
766
+ peer.remoteAudioTrack()?.setPlaybackAllowed(!mute)
767
+ }
768
+ }
769
+ let roomData = HMSDecoder.getHmsRoom(hms?.room)
770
+ let localPeerData = HMSDecoder.getHmsLocalPeer(hms?.localPeer)
771
+ let remotePeerData = HMSDecoder.getHmsRemotePeers(hms?.remotePeers)
772
+
773
+ self.delegate?.emitEvent(ON_PEER_UPDATE, ["event": ON_PEER_UPDATE, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData])
774
+ }
775
+
710
776
  func enableRTCStats() {
711
777
  rtcStatsAttached = true
712
778
  }
@@ -715,36 +781,35 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
715
781
  rtcStatsAttached = false
716
782
  }
717
783
 
718
- // TODO: to be implemented after volume is exposed for iOS
719
- // func getVolume(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
720
- // guard let trackId = data.value(forKey: "trackId") as? String
721
- // else {
722
- // delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": "REQUIRED_KEYS_NOT_FOUND"])
723
- // reject?(nil, "REQUIRED_KEYS_NOT_FOUND", nil)
724
- // return
725
- // }
784
+ // TODO: to be implemented after volume is exposed for iOS
785
+ // func getVolume(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
786
+ // guard let trackId = data.value(forKey: "trackId") as? String
787
+ // else {
788
+ // let errorMessage = "getVolume: " + HMSHelper.getUnavailableRequiredKey(data, ["trackId"])
789
+ // emitRequiredKeysError(errorMessage)
790
+ // reject?(errorMessage, errorMessage, nil)
791
+ // return
792
+ // }
726
793
  //
794
+ // if (localPeer?.localAudioTrack()?.trackId == trackId) {
727
795
  //
728
- // if (localPeer?.localAudioTrack()?.trackId == trackId) {
729
- //
730
- // }
731
- // }
796
+ // }
797
+ // }
732
798
 
733
- // func setLocalVideoSettings(_ data: NSDictionary) {
734
- // let localVideoTrack = self.hms?.localPeer?.localVideoTrack()
799
+ // func setLocalVideoSettings(_ data: NSDictionary) {
800
+ // let localVideoTrack = self.hms?.localPeer?.localVideoTrack()
735
801
  //
736
- // guard let settings = HMSHelper.getLocalVideoSettings(data)
737
- // else {
738
- // //TODO: throw an error for invalid arguements
739
- // return
740
- // }
741
- // localVideoTrack?.settings = settings
742
- // }
743
-
744
- // MARK: - HMS SDK Delegate Callbacks
745
-
802
+ // guard let settings = HMSHelper.getLocalVideoSettings(data)
803
+ // else {
804
+ // let errorMessage = "setLocalVideoSettings: " + HMSHelper.getUnavailableRequiredKey(data)
805
+ // emitRequiredKeysError(errorMessage)
806
+ // return
807
+ // }
808
+ // localVideoTrack?.settings = settings
809
+ // }
810
+
811
+ // MARK: - HMS SDK Delegate Callbacks
746
812
  func on(join room: HMSRoom) {
747
- // Callback from join action
748
813
  let roomData = HMSDecoder.getHmsRoom(room)
749
814
  let localPeerData = HMSDecoder.getHmsLocalPeer(hms?.localPeer)
750
815
  let remotePeerData = HMSDecoder.getHmsRemotePeers(hms?.remotePeers)
@@ -813,14 +878,16 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
813
878
  for speaker in speakers {
814
879
  speakerPeerIds.append(["peer": HMSDecoder.getHmsPeer(speaker.peer), "level": speaker.level, "track": HMSDecoder.getHmsTrack(speaker.track)])
815
880
  }
816
- self.delegate?.emitEvent(ON_SPEAKER, ["event": ON_SPEAKER, "id": self.id, "count": speakers.count, "peers": speakerPeerIds])
881
+ self.delegate?.emitEvent(ON_SPEAKER, ["event": ON_SPEAKER, "id": self.id, "speakers": speakerPeerIds])
817
882
  }
818
883
 
819
884
  func onReconnecting() {
820
- self.delegate?.emitEvent(RECONNECTING, ["event": RECONNECTING, "id": self.id ])
885
+ reconnectingStage = true
886
+ self.delegate?.emitEvent(RECONNECTING, ["event": RECONNECTING, "error": ["code": HMSErrorCode.websocketConnectionLost, "description": "Software caused connection abort", "localizedDescription": "Network connection lost ", "debugDescription": "Network connection lost ", "message": "Network connection lost ", "name": "WebSocketConnectionLost", "action": "NONE", "id": 101], "id": self.id ])
821
887
  }
822
888
 
823
889
  func onReconnected() {
890
+ reconnectingStage = false
824
891
  self.delegate?.emitEvent(RECONNECTED, ["event": RECONNECTED, "id": self.id ])
825
892
  }
826
893
 
@@ -902,43 +969,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
902
969
  }
903
970
 
904
971
  // MARK: Helper Functions
905
- func remoteMuteAllAudio() {
906
- let allAudioTracks = HMSUtilities.getAllAudioTracks(in: (self.hms?.room)!!)
907
- var customError: HMSError? = nil
908
- for audioTrack in allAudioTracks {
909
- self.hms?.changeTrackState(for: audioTrack, mute: true, completion: { success, error in
910
- if success {
911
- } else {
912
- customError = error
913
- }
914
- })
915
- }
916
- if (customError != nil) {
917
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HMSDecoder.getError(customError), "id": id])
918
- }
919
- }
920
-
921
- func setPlaybackForAllAudio(_ data: NSDictionary) {
922
- guard let mute = data.value(forKey: "mute") as? Bool
923
- else {
924
- let error = HMSError(id: "119", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
925
- delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HMSDecoder.getError(error), "id": id])
926
- return
927
- }
928
-
929
- DispatchQueue.main.async { [weak self] in
930
- let remotePeers = self?.hms?.remotePeers
931
- for peer in remotePeers ?? [] {
932
- peer.remoteAudioTrack()?.setPlaybackAllowed(!mute)
933
- }
934
- }
935
- let roomData = HMSDecoder.getHmsRoom(hms?.room)
936
- let localPeerData = HMSDecoder.getHmsLocalPeer(hms?.localPeer)
937
- let remotePeerData = HMSDecoder.getHmsRemotePeers(hms?.remotePeers)
938
-
939
- self.delegate?.emitEvent(ON_PEER_UPDATE, ["event": ON_PEER_UPDATE, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData])
940
- }
941
-
942
972
  private func getString(from update: HMSPeerUpdate) -> String {
943
973
  switch update {
944
974
  case .peerJoined: