@100mslive/react-native-hms 1.1.0 → 1.2.0

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 (101) hide show
  1. package/README.md +145 -340
  2. package/android/build.gradle +2 -2
  3. package/android/src/main/java/com/reactnativehmssdk/HMSDecoder.kt +205 -75
  4. package/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt +127 -127
  5. package/android/src/main/java/com/reactnativehmssdk/HMSManager.kt +153 -115
  6. package/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +147 -17
  7. package/android/src/main/java/com/reactnativehmssdk/HMSSDKViewManager.kt +7 -7
  8. package/ios/HMSDecoder.swift +205 -129
  9. package/ios/HMSHelper.swift +3 -3
  10. package/ios/HMSManager.m +3 -0
  11. package/ios/HMSManager.swift +22 -1
  12. package/ios/HMSRNSDK.swift +228 -79
  13. package/ios/HMSView.m +2 -0
  14. package/ios/HMSView.swift +35 -3
  15. package/ios/Hmssdk.xcodeproj/project.xcworkspace/xcuserdata/yogesh.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  16. package/lib/commonjs/classes/HMSBrowserRecordingState.js.map +1 -1
  17. package/lib/commonjs/classes/HMSChangeTrackStateRequest.js.map +1 -1
  18. package/lib/commonjs/classes/HMSEncoder.js +133 -84
  19. package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
  20. package/lib/commonjs/classes/HMSHLSStreamingState.js.map +1 -1
  21. package/lib/commonjs/classes/HMSLocalVideoTrack.js +0 -2
  22. package/lib/commonjs/classes/HMSLocalVideoTrack.js.map +1 -1
  23. package/lib/commonjs/classes/HMSMessageRecipient.js +1 -1
  24. package/lib/commonjs/classes/HMSMessageRecipient.js.map +1 -1
  25. package/lib/commonjs/classes/HMSNativeEventEmitter.js +106 -0
  26. package/lib/commonjs/classes/HMSNativeEventEmitter.js.map +1 -0
  27. package/lib/commonjs/classes/HMSPeer.js +4 -0
  28. package/lib/commonjs/classes/HMSPeer.js.map +1 -1
  29. package/lib/commonjs/classes/HMSPublishSettings.js +0 -6
  30. package/lib/commonjs/classes/HMSPublishSettings.js.map +1 -1
  31. package/lib/commonjs/classes/HMSRole.js +0 -6
  32. package/lib/commonjs/classes/HMSRole.js.map +1 -1
  33. package/lib/commonjs/classes/HMSRoleChangeRequest.js +3 -1
  34. package/lib/commonjs/classes/HMSRoleChangeRequest.js.map +1 -1
  35. package/lib/commonjs/classes/HMSRtmpStreamingState.js.map +1 -1
  36. package/lib/commonjs/classes/HMSSDK.js +465 -137
  37. package/lib/commonjs/classes/HMSSDK.js.map +1 -1
  38. package/lib/commonjs/classes/HMSServerRecordingState.js.map +1 -1
  39. package/lib/commonjs/classes/HMSSubscribeSettings.js +0 -2
  40. package/lib/commonjs/classes/HMSSubscribeSettings.js.map +1 -1
  41. package/lib/commonjs/index.js.map +1 -1
  42. package/lib/module/classes/HMSBrowserRecordingState.js.map +1 -1
  43. package/lib/module/classes/HMSChangeTrackStateRequest.js.map +1 -1
  44. package/lib/module/classes/HMSEncoder.js +133 -84
  45. package/lib/module/classes/HMSEncoder.js.map +1 -1
  46. package/lib/module/classes/HMSHLSStreamingState.js.map +1 -1
  47. package/lib/module/classes/HMSLocalVideoTrack.js +0 -2
  48. package/lib/module/classes/HMSLocalVideoTrack.js.map +1 -1
  49. package/lib/module/classes/HMSMessageRecipient.js +1 -1
  50. package/lib/module/classes/HMSMessageRecipient.js.map +1 -1
  51. package/lib/module/classes/HMSNativeEventEmitter.js +99 -0
  52. package/lib/module/classes/HMSNativeEventEmitter.js.map +1 -0
  53. package/lib/module/classes/HMSPeer.js +4 -0
  54. package/lib/module/classes/HMSPeer.js.map +1 -1
  55. package/lib/module/classes/HMSPublishSettings.js +0 -6
  56. package/lib/module/classes/HMSPublishSettings.js.map +1 -1
  57. package/lib/module/classes/HMSRole.js +0 -6
  58. package/lib/module/classes/HMSRole.js.map +1 -1
  59. package/lib/module/classes/HMSRoleChangeRequest.js +3 -1
  60. package/lib/module/classes/HMSRoleChangeRequest.js.map +1 -1
  61. package/lib/module/classes/HMSRtmpStreamingState.js.map +1 -1
  62. package/lib/module/classes/HMSSDK.js +466 -138
  63. package/lib/module/classes/HMSSDK.js.map +1 -1
  64. package/lib/module/classes/HMSServerRecordingState.js.map +1 -1
  65. package/lib/module/classes/HMSSubscribeSettings.js +0 -2
  66. package/lib/module/classes/HMSSubscribeSettings.js.map +1 -1
  67. package/lib/module/index.js.map +1 -1
  68. package/lib/typescript/classes/HMSBrowserRecordingState.d.ts +4 -4
  69. package/lib/typescript/classes/HMSChangeTrackStateRequest.d.ts +2 -2
  70. package/lib/typescript/classes/HMSEncoder.d.ts +3 -0
  71. package/lib/typescript/classes/HMSHLSStreamingState.d.ts +2 -2
  72. package/lib/typescript/classes/HMSLocalVideoTrack.d.ts +0 -2
  73. package/lib/typescript/classes/HMSMessageRecipient.d.ts +2 -2
  74. package/lib/typescript/classes/HMSNativeEventEmitter.d.ts +13 -0
  75. package/lib/typescript/classes/HMSPublishSettings.d.ts +8 -15
  76. package/lib/typescript/classes/HMSRole.d.ts +0 -6
  77. package/lib/typescript/classes/HMSRoleChangeRequest.d.ts +2 -2
  78. package/lib/typescript/classes/HMSRtmpStreamingState.d.ts +4 -4
  79. package/lib/typescript/classes/HMSSDK.d.ts +2 -12
  80. package/lib/typescript/classes/HMSServerRecordingState.d.ts +2 -2
  81. package/lib/typescript/classes/HMSSubscribeSettings.d.ts +0 -2
  82. package/lib/typescript/index.d.ts +1 -0
  83. package/package.json +6 -4
  84. package/react-native-hms.podspec +1 -1
  85. package/sdk-versions.json +5 -0
  86. package/src/classes/HMSBrowserRecordingState.ts +4 -4
  87. package/src/classes/HMSChangeTrackStateRequest.ts +2 -2
  88. package/src/classes/HMSEncoder.ts +186 -99
  89. package/src/classes/HMSHLSStreamingState.ts +2 -2
  90. package/src/classes/HMSLocalVideoTrack.ts +0 -2
  91. package/src/classes/HMSMessageRecipient.ts +3 -3
  92. package/src/classes/HMSNativeEventEmitter.ts +86 -0
  93. package/src/classes/HMSPeer.ts +4 -0
  94. package/src/classes/HMSPublishSettings.ts +8 -18
  95. package/src/classes/HMSRole.ts +0 -9
  96. package/src/classes/HMSRoleChangeRequest.ts +5 -3
  97. package/src/classes/HMSRtmpStreamingState.ts +4 -4
  98. package/src/classes/HMSSDK.tsx +629 -269
  99. package/src/classes/HMSServerRecordingState.ts +2 -2
  100. package/src/classes/HMSSubscribeSettings.ts +1 -7
  101. package/src/index.ts +1 -0
@@ -26,6 +26,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
26
26
  private var previewInProgress = false
27
27
  private var rtcStatsAttached = false
28
28
  private var networkQualityUpdatesAttached = false
29
+ private var eventsEnableStatus: [String: Bool] = [:]
29
30
 
30
31
  let ON_PREVIEW = "ON_PREVIEW"
31
32
  let ON_JOIN = "ON_JOIN"
@@ -67,7 +68,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
67
68
  func preview(_ credentials: NSDictionary) {
68
69
 
69
70
  guard !previewInProgress else {
70
- delegate?.emitEvent(ON_ERROR, ["error": ["code": 5000, "description": "Preview is in progress", "isTerminal": false, "canRetry": true, "params": ["function": #function]], "id": id])
71
+ if eventsEnableStatus[ON_ERROR] == true {
72
+ delegate?.emitEvent(ON_ERROR, ["error": ["code": 5000, "description": "Preview is in progress", "isTerminal": false, "canRetry": true, "params": ["function": #function]], "id": id])
73
+ }
71
74
  return
72
75
  }
73
76
 
@@ -109,7 +112,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
109
112
  if let extractedRole = roleObj {
110
113
  hms?.preview(role: extractedRole, completion: { tracks, error in
111
114
  if error != nil {
112
- delegate?.emitEvent(ON_ERROR, ["error": HMSDecoder.getError(error), "id": id])
115
+ if eventsEnableStatus[ON_ERROR] == true {
116
+ delegate?.emitEvent(ON_ERROR, ["error": HMSDecoder.getError(error), "id": id])
117
+ }
113
118
  reject?(error?.localizedDescription, error?.localizedDescription, nil)
114
119
  return
115
120
  }
@@ -131,7 +136,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
131
136
  func join(_ credentials: NSDictionary) {
132
137
 
133
138
  guard !previewInProgress else {
134
- delegate?.emitEvent("ON_ERROR", ["error": ["code": 5000, "description": "Preview is in progress", "isTerminal": false, "canRetry": true, "params": ["function": #function]], "id": id])
139
+ if eventsEnableStatus[ON_ERROR] == true {
140
+ delegate?.emitEvent("ON_ERROR", ["error": ["code": 5000, "description": "Preview is in progress", "isTerminal": false, "canRetry": true, "params": ["function": #function]], "id": id])
141
+ }
135
142
  return
136
143
  }
137
144
 
@@ -211,9 +218,12 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
211
218
  self?.networkQualityUpdatesAttached = false
212
219
  self?.hms?.leave({ success, error in
213
220
  if success {
221
+ HMSDecoder.clearRestrictDataStates()
214
222
  resolve?(["success": success])
215
223
  } else {
216
- strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["error": HMSDecoder.getError(error), "id": strongSelf.id])
224
+ if strongSelf.eventsEnableStatus[strongSelf.ON_ERROR] == true {
225
+ strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["error": HMSDecoder.getError(error), "id": strongSelf.id])
226
+ }
217
227
  reject?("error in leave", "error in leave", nil)
218
228
  }
219
229
  })
@@ -238,7 +248,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
238
248
  resolve?(["success": true, "data": ["sender": message?.sender?.name ?? "", "message": message?.message ?? "", "type": message?.type]])
239
249
  return
240
250
  } else {
241
- self?.delegate?.emitEvent("ON_ERROR", ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
251
+ if self?.eventsEnableStatus["ON_ERROR"] == true {
252
+ self?.delegate?.emitEvent("ON_ERROR", ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
253
+ }
242
254
  reject?(error?.localizedDescription, error?.localizedDescription, nil)
243
255
  return
244
256
  }
@@ -264,7 +276,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
264
276
  resolve?(["success": true, "data": ["sender": message?.sender?.name ?? "", "message": message?.message ?? "", "type": message?.type]])
265
277
  return
266
278
  } else {
267
- self?.delegate?.emitEvent("ON_ERROR", ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
279
+ if self?.eventsEnableStatus["ON_ERROR"] == true {
280
+ self?.delegate?.emitEvent("ON_ERROR", ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
281
+ }
268
282
  reject?(error?.localizedDescription, error?.localizedDescription, nil)
269
283
  return
270
284
  }
@@ -290,7 +304,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
290
304
  resolve?(["success": true, "data": ["sender": message?.sender?.name ?? "", "message": message?.message ?? "", "type": message?.type]])
291
305
  return
292
306
  } else {
293
- self?.delegate?.emitEvent("ON_ERROR", ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
307
+ if self?.eventsEnableStatus["ON_ERROR"] == true {
308
+ self?.delegate?.emitEvent("ON_ERROR", ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
309
+ }
294
310
  reject?(error?.localizedDescription, error?.localizedDescription, nil)
295
311
  return
296
312
  }
@@ -314,7 +330,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
314
330
  if success {
315
331
  resolve?(["success": success])
316
332
  } else {
317
- self?.delegate?.emitEvent("ON_ERROR", ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
333
+ if self?.eventsEnableStatus["ON_ERROR"] == true {
334
+ self?.delegate?.emitEvent("ON_ERROR", ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
335
+ }
318
336
  reject?(error?.localizedDescription, error?.localizedDescription, nil)
319
337
  }
320
338
  })
@@ -345,7 +363,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
345
363
  if success {
346
364
  resolve?(["success": success])
347
365
  } else {
348
- self?.delegate?.emitEvent("ON_ERROR", ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
366
+ if self?.eventsEnableStatus["ON_ERROR"] == true {
367
+ self?.delegate?.emitEvent("ON_ERROR", ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
368
+ }
349
369
  reject?(error?.localizedDescription, error?.localizedDescription, nil)
350
370
  }
351
371
  })
@@ -381,7 +401,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
381
401
  if success {
382
402
  resolve?(["success": success])
383
403
  } else {
384
- self?.delegate?.emitEvent("ON_ERROR", ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
404
+ if self?.eventsEnableStatus["ON_ERROR"] == true {
405
+ self?.delegate?.emitEvent("ON_ERROR", ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
406
+ }
385
407
  reject?(error?.localizedDescription, error?.localizedDescription, nil)
386
408
  }
387
409
  }
@@ -412,7 +434,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
412
434
  if success {
413
435
  resolve?(["success": success])
414
436
  } else {
415
- self?.delegate?.emitEvent("ON_ERROR", ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
437
+ if self?.eventsEnableStatus["ON_ERROR"] == true {
438
+ self?.delegate?.emitEvent("ON_ERROR", ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
439
+ }
416
440
  reject?(error?.localizedDescription, error?.localizedDescription, nil)
417
441
  }
418
442
  })
@@ -447,7 +471,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
447
471
  if success {
448
472
  resolve?(["success": success])
449
473
  } else {
450
- self?.delegate?.emitEvent("ON_ERROR", ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
474
+ if self?.eventsEnableStatus["ON_ERROR"] == true {
475
+ self?.delegate?.emitEvent("ON_ERROR", ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
476
+ }
451
477
  reject?(error?.localizedDescription, error?.localizedDescription, nil)
452
478
  }
453
479
  })
@@ -471,7 +497,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
471
497
  guard let remotePeers = self?.hms?.remotePeers,
472
498
  let track = HMSHelper.getTrackFromTrackId(trackId, remotePeers)
473
499
  else {
474
- strongSelf.delegate?.emitEvent("ON_ERROR", ["error": ["code": 6002, "description": "Track not found", "isTerminal": false, "canRetry": true, "params": ["function": #function]], "id": strongSelf.id])
500
+ if strongSelf.eventsEnableStatus["ON_ERROR"] == true {
501
+ strongSelf.delegate?.emitEvent("ON_ERROR", ["error": ["code": 6002, "description": "Track not found", "isTerminal": false, "canRetry": true, "params": ["function": #function]], "id": strongSelf.id])
502
+ }
475
503
  reject?("Track not found", "Track not found", nil)
476
504
  return
477
505
  }
@@ -509,7 +537,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
509
537
  if success {
510
538
  resolve?(["success": success])
511
539
  } else {
512
- self?.delegate?.emitEvent("ON_ERROR", ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
540
+ if self?.eventsEnableStatus["ON_ERROR"] == true {
541
+ self?.delegate?.emitEvent("ON_ERROR", ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
542
+ }
513
543
  reject?(error?.localizedDescription, error?.localizedDescription, nil)
514
544
  }
515
545
  })
@@ -532,7 +562,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
532
562
  if success {
533
563
  resolve?(["success": success])
534
564
  } else {
535
- self?.delegate?.emitEvent("ON_ERROR", ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
565
+ if self?.eventsEnableStatus["ON_ERROR"] == true {
566
+ self?.delegate?.emitEvent("ON_ERROR", ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
567
+ }
536
568
  reject?(error?.localizedDescription, error?.localizedDescription, nil)
537
569
  }
538
570
  })
@@ -611,7 +643,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
611
643
  resolve?(["success": success])
612
644
  return
613
645
  } else {
614
- self.delegate?.emitEvent(self.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self.id])
646
+ if self.eventsEnableStatus["ON_ERROR"] == true {
647
+ self.delegate?.emitEvent(self.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self.id])
648
+ }
615
649
  reject?(error?.localizedDescription, error?.localizedDescription, nil)
616
650
  return
617
651
  }
@@ -635,7 +669,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
635
669
 
636
670
  if remoteAudioTrack != nil {
637
671
  remoteAudioTrack?.setVolume(volume)
638
- } else {
672
+ } else if strongSelf.eventsEnableStatus["ON_ERROR"] == true {
639
673
  strongSelf.delegate?.emitEvent("ON_ERROR", ["error": ["code": 6002, "description": "Track not found", "isTerminal": false, "canRetry": true, "params": ["function": #function]], "id": strongSelf.id])
640
674
  }
641
675
  }
@@ -657,7 +691,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
657
691
  if let meetLink = URL(string: meetingString) {
658
692
  meetingUrl = meetLink
659
693
  } else {
660
- delegate?.emitEvent(ON_ERROR, ["error": ["code": 6002, "description": "Invalid meeting url passed", "isTerminal": false, "canRetry": true, "params": ["function": #function]], "id": id])
694
+ if eventsEnableStatus[ON_ERROR] == true {
695
+ delegate?.emitEvent(ON_ERROR, ["error": ["code": 6002, "description": "Invalid meeting url passed", "isTerminal": false, "canRetry": true, "params": ["function": #function]], "id": id])
696
+ }
661
697
  reject?("Invalid meeting url passed", "Invalid meeting url passed", nil)
662
698
  }
663
699
 
@@ -669,13 +705,15 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
669
705
  let roomData = HMSDecoder.getHmsRoom(self.hms?.room)
670
706
  let type = self.getString(from: HMSRoomUpdate.browserRecordingStateUpdated)
671
707
 
672
- let localPeerData = HMSDecoder.getHmsLocalPeer(self.hms?.localPeer)
673
- let remotePeerData = HMSDecoder.getHmsRemotePeers(self.hms?.remotePeers)
674
- self.delegate?.emitEvent(self.ON_ROOM_UPDATE, ["event": self.ON_ROOM_UPDATE, "id": self.id, "type": type, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData])
708
+ if self.eventsEnableStatus[self.ON_ROOM_UPDATE] == true {
709
+ self.delegate?.emitEvent(self.ON_ROOM_UPDATE, ["event": self.ON_ROOM_UPDATE, "id": self.id, "type": type, "room": roomData])
710
+ }
675
711
  resolve?(["success": success])
676
712
  return
677
713
  } else {
678
- self.delegate?.emitEvent(self.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self.id])
714
+ if self.eventsEnableStatus[self.ON_ERROR] == true {
715
+ self.delegate?.emitEvent(self.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self.id])
716
+ }
679
717
  reject?(error?.localizedDescription, error?.localizedDescription, nil)
680
718
  return
681
719
  }
@@ -688,13 +726,15 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
688
726
  let roomData = HMSDecoder.getHmsRoom(self.hms?.room)
689
727
  let type = self.getString(from: HMSRoomUpdate.browserRecordingStateUpdated)
690
728
 
691
- let localPeerData = HMSDecoder.getHmsLocalPeer(self.hms?.localPeer)
692
- let remotePeerData = HMSDecoder.getHmsRemotePeers(self.hms?.remotePeers)
693
- self.delegate?.emitEvent(self.ON_ROOM_UPDATE, ["event": self.ON_ROOM_UPDATE, "id": self.id, "type": type, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData])
729
+ if self.eventsEnableStatus[self.ON_ROOM_UPDATE] == true {
730
+ self.delegate?.emitEvent(self.ON_ROOM_UPDATE, ["event": self.ON_ROOM_UPDATE, "id": self.id, "type": type, "room": roomData])
731
+ }
694
732
  resolve?(["success": success])
695
733
  return
696
734
  } else {
697
- self.delegate?.emitEvent(self.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self.id])
735
+ if self.eventsEnableStatus[self.ON_ERROR] == true {
736
+ self.delegate?.emitEvent(self.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self.id])
737
+ }
698
738
  reject?(error?.localizedDescription, error?.localizedDescription, nil)
699
739
  return
700
740
  }
@@ -711,16 +751,12 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
711
751
 
712
752
  hms?.startHLSStreaming(config: config, completion: { success, error in
713
753
  if success {
714
- let roomData = HMSDecoder.getHmsRoom(self.hms?.room)
715
- let type = self.getString(from: HMSRoomUpdate.hlsStreamingStateUpdated)
716
-
717
- let localPeerData = HMSDecoder.getHmsLocalPeer(self.hms?.localPeer)
718
- let remotePeerData = HMSDecoder.getHmsRemotePeers(self.hms?.remotePeers)
719
- self.delegate?.emitEvent(self.ON_ROOM_UPDATE, ["event": self.ON_ROOM_UPDATE, "id": self.id, "type": type, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData])
720
754
  resolve?(["success": success])
721
755
  return
722
756
  } else {
723
- self.delegate?.emitEvent(self.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self.id])
757
+ if self.eventsEnableStatus[self.ON_ERROR] == true {
758
+ self.delegate?.emitEvent(self.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self.id])
759
+ }
724
760
  reject?(error?.localizedDescription, error?.localizedDescription, nil)
725
761
  return
726
762
  }
@@ -730,16 +766,12 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
730
766
  func stopHLSStreaming(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
731
767
  hms?.stopHLSStreaming(config: nil, completion: { success, error in
732
768
  if success {
733
- let roomData = HMSDecoder.getHmsRoom(self.hms?.room)
734
- let type = self.getString(from: HMSRoomUpdate.browserRecordingStateUpdated)
735
-
736
- let localPeerData = HMSDecoder.getHmsLocalPeer(self.hms?.localPeer)
737
- let remotePeerData = HMSDecoder.getHmsRemotePeers(self.hms?.remotePeers)
738
- self.delegate?.emitEvent(self.ON_ROOM_UPDATE, ["event": self.ON_ROOM_UPDATE, "id": self.id, "type": type, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData])
739
769
  resolve?(["success": success])
740
770
  return
741
771
  } else {
742
- self.delegate?.emitEvent(self.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self.id])
772
+ if self.eventsEnableStatus[self.ON_ERROR] == true {
773
+ self.delegate?.emitEvent(self.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self.id])
774
+ }
743
775
  reject?(error?.localizedDescription, error?.localizedDescription, nil)
744
776
  return
745
777
  }
@@ -759,7 +791,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
759
791
  if success {
760
792
  resolve?(["success": success])
761
793
  } else {
762
- self.delegate?.emitEvent(self.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self.id])
794
+ if self.eventsEnableStatus[self.ON_ERROR] == true {
795
+ self.delegate?.emitEvent(self.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self.id])
796
+ }
763
797
  reject?(error?.localizedDescription, error?.localizedDescription, nil)
764
798
  }
765
799
  }
@@ -797,11 +831,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
797
831
  peer.remoteAudioTrack()?.setPlaybackAllowed(!mute)
798
832
  }
799
833
  }
800
- let roomData = HMSDecoder.getHmsRoom(hms?.room)
801
- let localPeerData = HMSDecoder.getHmsLocalPeer(hms?.localPeer)
802
- let remotePeerData = HMSDecoder.getHmsRemotePeers(hms?.remotePeers)
803
-
804
- self.delegate?.emitEvent(ON_PEER_UPDATE, ["event": ON_PEER_UPDATE, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData])
805
834
  }
806
835
 
807
836
  func enableRTCStats() {
@@ -814,7 +843,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
814
843
 
815
844
  func startScreenshare(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
816
845
  guard let preferredExtension = preferredExtension else {
817
- delegate?.emitEvent(ON_ERROR, ["error": ["code": 6002, "description": "Could not start screen share, preferredExtension not passed in Build method", "isTerminal": false, "canRetry": true, "params": ["function": #function]], "id": id])
846
+ if eventsEnableStatus[ON_ERROR] == true {
847
+ delegate?.emitEvent(ON_ERROR, ["error": ["code": 6002, "description": "Could not start screen share, preferredExtension not passed in Build method", "isTerminal": false, "canRetry": true, "params": ["function": #function]], "id": id])
848
+ }
818
849
  reject?("Could not start screen share, preferredExtension not passed in Build method", "Could not start screen share, preferredExtension not passed in Build method", nil)
819
850
  return
820
851
  }
@@ -836,7 +867,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
836
867
 
837
868
  func stopScreenshare(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
838
869
  guard let preferredExtension = preferredExtension else {
839
- delegate?.emitEvent(ON_ERROR, ["error": ["code": 6002, "description": "Could not start screen share, preferredExtension not passed in Build method", "isTerminal": false, "canRetry": true, "params": ["function": #function]], "id": id])
870
+ if eventsEnableStatus[ON_ERROR] == true {
871
+ delegate?.emitEvent(ON_ERROR, ["error": ["code": 6002, "description": "Could not start screen share, preferredExtension not passed in Build method", "isTerminal": false, "canRetry": true, "params": ["function": #function]], "id": id])
872
+ }
840
873
  reject?("Could not start screen share, preferredExtension not passed in Build method", "Could not start screen share, preferredExtension not passed in Build method", nil)
841
874
  return
842
875
  }
@@ -879,15 +912,21 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
879
912
  try audioFilePlayerNode.play(fileUrl: url, loops: loops, interrupts: interrupts)
880
913
  resolve?(["success": true])
881
914
  } catch {
882
- delegate?.emitEvent(ON_ERROR, ["error": ["code": 6002, "description": error.localizedDescription, "isTerminal": false, "canRetry": true, "params": ["function": #function]], "id": id])
915
+ if eventsEnableStatus[ON_ERROR] == true {
916
+ delegate?.emitEvent(ON_ERROR, ["error": ["code": 6002, "description": error.localizedDescription, "isTerminal": false, "canRetry": true, "params": ["function": #function]], "id": id])
917
+ }
883
918
  reject?(error.localizedDescription, error.localizedDescription, nil)
884
919
  }
885
920
  } else {
886
- delegate?.emitEvent(ON_ERROR, ["error": ["code": 6002, "description": "Incorrect url", "isTerminal": false, "canRetry": true, "params": ["function": #function]], "id": id])
921
+ if eventsEnableStatus[ON_ERROR] == true {
922
+ delegate?.emitEvent(ON_ERROR, ["error": ["code": 6002, "description": "Incorrect url", "isTerminal": false, "canRetry": true, "params": ["function": #function]], "id": id])
923
+ }
887
924
  reject?("Incorrect URL", "Incorrect URL", nil)
888
925
  }
889
926
  } else {
890
- delegate?.emitEvent(ON_ERROR, ["error": ["code": 6002, "description": "AudioFilePlayerNode not found", "isTerminal": false, "canRetry": true, "params": ["function": #function]], "id": id])
927
+ if eventsEnableStatus[ON_ERROR] == true {
928
+ delegate?.emitEvent(ON_ERROR, ["error": ["code": 6002, "description": "AudioFilePlayerNode not found", "isTerminal": false, "canRetry": true, "params": ["function": #function]], "id": id])
929
+ }
891
930
  reject?("AudioFilePlayerNode not found", "AudioFilePlayerNode not found", nil)
892
931
  }
893
932
  }
@@ -921,7 +960,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
921
960
  }
922
961
  if let audioFilePlayerNode = playerNode as? HMSAudioFilePlayerNode {
923
962
  audioFilePlayerNode.stop()
924
- } else {
963
+ } else if eventsEnableStatus[ON_ERROR] == true {
925
964
  delegate?.emitEvent(ON_ERROR, ["error": ["code": 6002, "description": "AudioFilePlayerNode not found", "isTerminal": false, "canRetry": true, "params": ["function": #function]], "id": id])
926
965
  }
927
966
  }
@@ -939,9 +978,11 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
939
978
  do {
940
979
  try audioFilePlayerNode.resume()
941
980
  } catch {
942
- delegate?.emitEvent(ON_ERROR, ["error": ["code": 6002, "description": error.localizedDescription, "isTerminal": false, "canRetry": true, "params": ["function": #function]], "id": id])
981
+ if eventsEnableStatus[ON_ERROR] == true {
982
+ delegate?.emitEvent(ON_ERROR, ["error": ["code": 6002, "description": error.localizedDescription, "isTerminal": false, "canRetry": true, "params": ["function": #function]], "id": id])
983
+ }
943
984
  }
944
- } else {
985
+ } else if eventsEnableStatus[ON_ERROR] == true {
945
986
  delegate?.emitEvent(ON_ERROR, ["error": ["code": 6002, "description": "AudioFilePlayerNode not found", "isTerminal": false, "canRetry": true, "params": ["function": #function]], "id": id])
946
987
  }
947
988
  }
@@ -957,7 +998,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
957
998
  }
958
999
  if let audioFilePlayerNode = playerNode as? HMSAudioFilePlayerNode {
959
1000
  audioFilePlayerNode.pause()
960
- } else {
1001
+ } else if eventsEnableStatus[ON_ERROR] == true {
961
1002
  delegate?.emitEvent(ON_ERROR, ["error": ["code": 6002, "description": "AudioFilePlayerNode not found", "isTerminal": false, "canRetry": true, "params": ["function": #function]], "id": id])
962
1003
  }
963
1004
  }
@@ -975,7 +1016,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
975
1016
  if let audioFilePlayerNode = playerNode as? HMSAudioFilePlayerNode {
976
1017
  resolve?(audioFilePlayerNode.isPlaying)
977
1018
  } else {
978
- delegate?.emitEvent(ON_ERROR, ["error": ["code": 6002, "description": "AudioFilePlayerNode not found", "isTerminal": false, "canRetry": true, "params": ["function": #function]], "id": id])
1019
+ if eventsEnableStatus[ON_ERROR] == true {
1020
+ delegate?.emitEvent(ON_ERROR, ["error": ["code": 6002, "description": "AudioFilePlayerNode not found", "isTerminal": false, "canRetry": true, "params": ["function": #function]], "id": id])
1021
+ }
979
1022
  reject?("AudioFilePlayerNode not found", "AudioFilePlayerNode not found", nil)
980
1023
  }
981
1024
  }
@@ -993,7 +1036,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
993
1036
  if let audioFilePlayerNode = playerNode as? HMSAudioFilePlayerNode {
994
1037
  resolve?(audioFilePlayerNode.currentTime)
995
1038
  } else {
996
- delegate?.emitEvent(ON_ERROR, ["error": ["code": 6002, "description": "AudioFilePlayerNode not found", "isTerminal": false, "canRetry": true, "params": ["function": #function]], "id": id])
1039
+ if eventsEnableStatus[ON_ERROR] == true {
1040
+ delegate?.emitEvent(ON_ERROR, ["error": ["code": 6002, "description": "AudioFilePlayerNode not found", "isTerminal": false, "canRetry": true, "params": ["function": #function]], "id": id])
1041
+ }
997
1042
  reject?("AudioFilePlayerNode not found", "AudioFilePlayerNode not found", nil)
998
1043
  }
999
1044
  }
@@ -1011,7 +1056,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
1011
1056
  if let audioFilePlayerNode = playerNode as? HMSAudioFilePlayerNode {
1012
1057
  resolve?(audioFilePlayerNode.duration)
1013
1058
  } else {
1014
- delegate?.emitEvent(ON_ERROR, ["error": ["code": 6002, "description": "AudioFilePlayerNode not found", "isTerminal": false, "canRetry": true, "params": ["function": #function]], "id": id])
1059
+ if eventsEnableStatus[ON_ERROR] == true {
1060
+ delegate?.emitEvent(ON_ERROR, ["error": ["code": 6002, "description": "AudioFilePlayerNode not found", "isTerminal": false, "canRetry": true, "params": ["function": #function]], "id": id])
1061
+ }
1015
1062
  reject?("AudioFilePlayerNode not found", "AudioFilePlayerNode not found", nil)
1016
1063
  }
1017
1064
  }
@@ -1031,12 +1078,48 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
1031
1078
  if success {
1032
1079
  resolve?(["success": success])
1033
1080
  } else {
1034
- self.delegate?.emitEvent(self.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self.id])
1081
+ if self.eventsEnableStatus[self.ON_ERROR] == true {
1082
+ self.delegate?.emitEvent(self.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self.id])
1083
+ }
1035
1084
  reject?(error?.localizedDescription, error?.localizedDescription, nil)
1036
1085
  }
1037
1086
  }
1038
1087
  }
1039
1088
 
1089
+ func enableEvent(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
1090
+ guard let eventType = data.value(forKey: "eventType") as? String else {
1091
+ let errorMessage = "enableEvent: " + HMSHelper.getUnavailableRequiredKey(data, ["eventType"])
1092
+ emitRequiredKeysError(errorMessage)
1093
+ reject?(errorMessage, errorMessage, nil)
1094
+ return
1095
+ }
1096
+
1097
+ eventsEnableStatus[eventType] = true
1098
+ resolve?(["success": true, "message": "function call executed successfully"])
1099
+ }
1100
+
1101
+ func disableEvent(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
1102
+ guard let eventType = data.value(forKey: "eventType") as? String else {
1103
+ let errorMessage = "disableEvent: " + HMSHelper.getUnavailableRequiredKey(data, ["eventType"])
1104
+ emitRequiredKeysError(errorMessage)
1105
+ reject?(errorMessage, errorMessage, nil)
1106
+ return
1107
+ }
1108
+
1109
+ eventsEnableStatus[eventType] = false
1110
+ resolve?(["success": true, "message": "function call executed successfully"])
1111
+ }
1112
+
1113
+ func restrictData(_ data: NSDictionary) {
1114
+ guard let roleName = data.value(forKey: "roleName") as? String else {
1115
+ let errorMessage = "restrictData: " + HMSHelper.getUnavailableRequiredKey(data, ["roleName"])
1116
+ emitRequiredKeysError(errorMessage)
1117
+ return
1118
+ }
1119
+
1120
+ HMSDecoder.setRestrictRoleData(roleName, true)
1121
+ }
1122
+
1040
1123
  // MARK: - HMS SDK Get APIs
1041
1124
  func getRoom(_ resolve: RCTPromiseResolveBlock?) {
1042
1125
  let roomData = HMSDecoder.getHmsRoom(hms?.room)
@@ -1065,7 +1148,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
1065
1148
  func getSessionMetaData(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
1066
1149
  hms?.getSessionMetadata { result, error in
1067
1150
  if error != nil {
1068
- self.delegate?.emitEvent(self.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self.id])
1151
+ if self.eventsEnableStatus[self.ON_ERROR] == true {
1152
+ self.delegate?.emitEvent(self.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self.id])
1153
+ }
1069
1154
  reject?(error?.localizedDescription, error?.localizedDescription, nil)
1070
1155
  } else {
1071
1156
  resolve?(result)
@@ -1075,21 +1160,33 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
1075
1160
 
1076
1161
  // MARK: - HMS SDK Delegate Callbacks
1077
1162
  func on(join room: HMSRoom) {
1078
- let roomData = HMSDecoder.getHmsRoom(room)
1079
-
1080
1163
  self.recentPreviewTracks = []
1164
+ if eventsEnableStatus[ON_JOIN] != true {
1165
+ return
1166
+ }
1167
+ let roomData = HMSDecoder.getHmsRoom(room)
1081
1168
  self.delegate?.emitEvent(ON_JOIN, ["event": ON_JOIN, "id": self.id, "room": roomData])
1082
1169
  }
1083
1170
 
1084
1171
  func onPreview(room: HMSRoom, localTracks: [HMSTrack]) {
1172
+ previewInProgress = false
1173
+ if eventsEnableStatus[ON_PREVIEW] != true {
1174
+ return
1175
+ }
1085
1176
  let previewTracks = HMSDecoder.getPreviewTracks(localTracks)
1086
1177
  let hmsRoom = HMSDecoder.getHmsRoom(room)
1087
1178
 
1088
- previewInProgress = false
1089
1179
  self.delegate?.emitEvent(ON_PREVIEW, ["event": ON_PREVIEW, "id": self.id, "room": hmsRoom, "previewTracks": previewTracks])
1090
1180
  }
1091
1181
 
1092
1182
  func on(room: HMSRoom, update: HMSRoomUpdate) {
1183
+ if eventsEnableStatus[ON_ROOM_UPDATE] != true {
1184
+ return
1185
+ }
1186
+ if update == .metaDataUpdated || update == .roomTypeChanged {
1187
+ return
1188
+ }
1189
+
1093
1190
  let roomData = HMSDecoder.getHmsRoom(room)
1094
1191
  let type = getString(from: update)
1095
1192
 
@@ -1097,6 +1194,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
1097
1194
  }
1098
1195
 
1099
1196
  func on(peer: HMSPeer, update: HMSPeerUpdate) {
1197
+ if eventsEnableStatus[ON_PEER_UPDATE] != true {
1198
+ return
1199
+ }
1100
1200
  let type = getString(from: update)
1101
1201
  let hmsPeer = HMSDecoder.getHmsPeer(peer)
1102
1202
 
@@ -1108,10 +1208,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
1108
1208
  }
1109
1209
 
1110
1210
  func on(track: HMSTrack, update: HMSTrackUpdate, for peer: HMSPeer) {
1111
- let type = getString(from: update)
1112
- let hmsPeer = HMSDecoder.getHmsPeer(peer)
1113
- let hmsTrack = HMSDecoder.getHmsTrack(track)
1114
-
1115
1211
  if peer.isLocal && track.source.uppercased() == "SCREEN" && track.kind == HMSTrackKind.video {
1116
1212
  if update == .trackAdded {
1117
1213
  isScreenShared = true
@@ -1124,19 +1220,36 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
1124
1220
  }
1125
1221
  }
1126
1222
 
1223
+ if eventsEnableStatus[ON_TRACK_UPDATE] != true {
1224
+ return
1225
+ }
1226
+
1227
+ let type = getString(from: update)
1228
+ let hmsPeer = HMSDecoder.getHmsPeer(peer)
1229
+ let hmsTrack = HMSDecoder.getHmsTrack(track)
1230
+
1127
1231
  self.delegate?.emitEvent(ON_TRACK_UPDATE, ["event": ON_TRACK_UPDATE, "id": self.id, "type": type, "peer": hmsPeer, "track": hmsTrack])
1128
1232
  }
1129
1233
 
1130
1234
  func on(error: Error) {
1131
1235
  if previewInProgress { previewInProgress = false }
1236
+ if eventsEnableStatus[ON_ERROR] != true {
1237
+ return
1238
+ }
1132
1239
  self.delegate?.emitEvent(ON_ERROR, ["error": HMSDecoder.getError(error), "id": id])
1133
1240
  }
1134
1241
 
1135
1242
  func on(message: HMSMessage) {
1243
+ if eventsEnableStatus[ON_MESSAGE] != true {
1244
+ return
1245
+ }
1136
1246
  self.delegate?.emitEvent(ON_MESSAGE, ["event": ON_MESSAGE, "id": self.id, "sender": HMSDecoder.getHmsPeer(message.sender), "recipient": HMSDecoder.getHmsMessageRecipient(message.recipient), "time": message.time.timeIntervalSince1970 * 1000, "message": message.message, "type": message.type])
1137
1247
  }
1138
1248
 
1139
1249
  func on(updated speakers: [HMSSpeaker]) {
1250
+ if eventsEnableStatus[ON_SPEAKER] != true {
1251
+ return
1252
+ }
1140
1253
  var speakerPeerIds: [[String: Any]] = []
1141
1254
  for speaker in speakers {
1142
1255
  speakerPeerIds.append(["peer": HMSDecoder.getHmsPeer(speaker.peer), "level": speaker.level, "track": HMSDecoder.getHmsTrack(speaker.track)])
@@ -1146,26 +1259,42 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
1146
1259
 
1147
1260
  func onReconnecting() {
1148
1261
  reconnectingStage = true
1262
+ if eventsEnableStatus[RECONNECTING] != true {
1263
+ return
1264
+ }
1149
1265
  self.delegate?.emitEvent(RECONNECTING, ["event": RECONNECTING, "error": ["code": 1003, "description": "Network connection lost ", "isTerminal": false, "canRetry": true], "id": self.id ])
1150
1266
  }
1151
1267
 
1152
1268
  func onReconnected() {
1153
1269
  reconnectingStage = false
1270
+ if eventsEnableStatus[RECONNECTED] != true {
1271
+ return
1272
+ }
1154
1273
  self.delegate?.emitEvent(RECONNECTED, ["event": RECONNECTED, "id": self.id ])
1155
1274
  }
1156
1275
 
1157
1276
  func on(roleChangeRequest: HMSRoleChangeRequest) {
1158
- let decodedRoleChangeRequest = HMSDecoder.getHmsRoleChangeRequest(roleChangeRequest, self.id)
1159
1277
  recentRoleChangeRequest = roleChangeRequest
1278
+ if eventsEnableStatus[ON_ROLE_CHANGE_REQUEST] != true {
1279
+ return
1280
+ }
1281
+ let decodedRoleChangeRequest = HMSDecoder.getHmsRoleChangeRequest(roleChangeRequest, self.id)
1160
1282
  self.delegate?.emitEvent(ON_ROLE_CHANGE_REQUEST, decodedRoleChangeRequest)
1161
1283
  }
1162
1284
 
1163
1285
  func on(changeTrackStateRequest: HMSChangeTrackStateRequest) {
1286
+ if eventsEnableStatus["ON_CHANGE_TRACK_STATE_REQUEST"] != true {
1287
+ return
1288
+ }
1164
1289
  let decodedChangeTrackStateRequest = HMSDecoder.getHmsChangeTrackStateRequest(changeTrackStateRequest, id)
1165
1290
  delegate?.emitEvent("ON_CHANGE_TRACK_STATE_REQUEST", decodedChangeTrackStateRequest)
1166
1291
  }
1167
1292
 
1168
1293
  func on(removedFromRoom notification: HMSRemovedFromRoomNotification) {
1294
+ HMSDecoder.clearRestrictDataStates()
1295
+ if eventsEnableStatus[ON_REMOVED_FROM_ROOM] != true {
1296
+ return
1297
+ }
1169
1298
  let requestedBy = notification.requestedBy as HMSPeer?
1170
1299
  var decodedRequestedBy: [String: Any]?
1171
1300
  if let requested = requestedBy {
@@ -1177,6 +1306,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
1177
1306
  }
1178
1307
 
1179
1308
  func on(rtcStats: HMSRTCStatsReport) {
1309
+ if eventsEnableStatus[ON_RTC_STATS] != true {
1310
+ return
1311
+ }
1180
1312
  if !rtcStatsAttached {
1181
1313
  return
1182
1314
  }
@@ -1187,46 +1319,58 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
1187
1319
  self.delegate?.emitEvent(ON_RTC_STATS, ["video": video, "audio": audio, "combined": combined, "id": self.id])
1188
1320
  }
1189
1321
 
1190
- func on(localAudioStats: HMSLocalAudioStats, track: HMSLocalAudioTrack, peer: HMSPeer) {
1322
+ func on(localAudioStats: HMSLocalAudioStats, track: HMSAudioTrack, peer: HMSPeer) {
1323
+ if eventsEnableStatus[ON_LOCAL_AUDIO_STATS] != true {
1324
+ return
1325
+ }
1191
1326
  if !rtcStatsAttached {
1192
1327
  return
1193
1328
  }
1194
1329
  let localStats = HMSDecoder.getLocalAudioStats(localAudioStats)
1195
- let localTrack = HMSDecoder.getHmsLocalAudioTrack(track)
1330
+ let localTrack = HMSDecoder.getHmsAudioTrack(track)
1196
1331
  let decodedPeer = HMSDecoder.getHmsPeer(peer)
1197
1332
 
1198
1333
  self.delegate?.emitEvent(ON_LOCAL_AUDIO_STATS, ["localAudioStats": localStats, "track": localTrack, "peer": decodedPeer, "id": self.id])
1199
1334
  }
1200
1335
 
1201
- func on(localVideoStats: HMSLocalVideoStats, track: HMSLocalVideoTrack, peer: HMSPeer) {
1336
+ func on(localVideoStats: [HMSLocalVideoStats], track: HMSVideoTrack, peer: HMSPeer) {
1337
+ if eventsEnableStatus[ON_LOCAL_VIDEO_STATS] != true {
1338
+ return
1339
+ }
1202
1340
  if !rtcStatsAttached {
1203
1341
  return
1204
1342
  }
1205
1343
  let localStats = HMSDecoder.getLocalVideoStats(localVideoStats)
1206
1344
  let decodedPeer = HMSDecoder.getHmsPeer(peer)
1207
- let localTrack = HMSDecoder.getHmsLocalVideoTrack(track)
1345
+ let localTrack = HMSDecoder.getHmsVideoTrack(track)
1208
1346
 
1209
1347
  self.delegate?.emitEvent(ON_LOCAL_VIDEO_STATS, ["localVideoStats": localStats, "track": localTrack, "peer": decodedPeer, "id": self.id])
1210
1348
  }
1211
1349
 
1212
- func on(remoteAudioStats: HMSRemoteAudioStats, track: HMSRemoteAudioTrack, peer: HMSPeer) {
1350
+ func on(remoteAudioStats: HMSRemoteAudioStats, track: HMSAudioTrack, peer: HMSPeer) {
1351
+ if eventsEnableStatus[ON_REMOTE_AUDIO_STATS] != true {
1352
+ return
1353
+ }
1213
1354
  if !rtcStatsAttached {
1214
1355
  return
1215
1356
  }
1216
1357
  let remoteStats = HMSDecoder.getRemoteAudioStats(remoteAudioStats)
1217
- let remoteTrack = HMSDecoder.getHMSRemoteAudioTrack(track)
1358
+ let remoteTrack = HMSDecoder.getHmsAudioTrack(track)
1218
1359
  let decodedPeer = HMSDecoder.getHmsPeer(peer)
1219
1360
 
1220
1361
  self.delegate?.emitEvent(ON_REMOTE_AUDIO_STATS, ["remoteAudioStats": remoteStats, "track": remoteTrack, "peer": decodedPeer, "id": self.id])
1221
1362
  }
1222
1363
 
1223
- func on(remoteVideoStats: HMSRemoteVideoStats, track: HMSRemoteVideoTrack, peer: HMSPeer) {
1364
+ func on(remoteVideoStats: HMSRemoteVideoStats, track: HMSVideoTrack, peer: HMSPeer) {
1365
+ if eventsEnableStatus[ON_REMOTE_VIDEO_STATS] != true {
1366
+ return
1367
+ }
1224
1368
  if !rtcStatsAttached {
1225
1369
  return
1226
1370
  }
1227
1371
  let remoteStats = HMSDecoder.getRemoteVideoStats(remoteVideoStats)
1228
1372
  let decodedPeer = HMSDecoder.getHmsPeer(peer)
1229
- let remoteTrack = HMSDecoder.getHMSRemoteVideoTrack(track)
1373
+ let remoteTrack = HMSDecoder.getHmsVideoTrack(track)
1230
1374
 
1231
1375
  self.delegate?.emitEvent(ON_REMOTE_VIDEO_STATS, ["remoteVideoStats": remoteStats, "track": remoteTrack, "peer": decodedPeer, "id": self.id])
1232
1376
  }
@@ -1277,23 +1421,28 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
1277
1421
  func getString(from update: HMSRoomUpdate) -> String {
1278
1422
  switch update {
1279
1423
  case .roomTypeChanged:
1280
- return "ROOM_TYPE_CHANGED"
1424
+ return "ROOM_PEER_COUNT_UPDATED"
1281
1425
  case .metaDataUpdated:
1282
- return "META_DATA_CHANGED"
1426
+ return "ROOM_PEER_COUNT_UPDATED"
1283
1427
  case .browserRecordingStateUpdated:
1284
1428
  return "BROWSER_RECORDING_STATE_UPDATED"
1285
1429
  case .hlsStreamingStateUpdated:
1286
1430
  return "HLS_STREAMING_STATE_UPDATED"
1287
1431
  case .rtmpStreamingStateUpdated:
1288
1432
  return "RTMP_STREAMING_STATE_UPDATED"
1289
- case.serverRecordingStateUpdated:
1433
+ case .serverRecordingStateUpdated:
1290
1434
  return "SERVER_RECORDING_STATE_UPDATED"
1435
+ case .hlsRecordingStateUpdated:
1436
+ return "HLS_RECORDING_STATE_UPDATED"
1291
1437
  default:
1292
1438
  return ""
1293
1439
  }
1294
1440
  }
1295
1441
 
1296
1442
  func emitRequiredKeysError(_ error: String) {
1443
+ if eventsEnableStatus[ON_ERROR] != true {
1444
+ return
1445
+ }
1297
1446
  delegate?.emitEvent(ON_ERROR, ["error": ["code": 6002, "description": error, "isTerminal": false, "canRetry": true], "id": id])
1298
1447
  }
1299
1448
  }