@100mslive/react-native-hms 1.7.2 → 1.8.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 (47) hide show
  1. package/android/src/main/java/com/reactnativehmssdk/HMSAudioshareActivity.kt +1 -0
  2. package/android/src/main/java/com/reactnativehmssdk/HMSDecoder.kt +28 -10
  3. package/android/src/main/java/com/reactnativehmssdk/HMSHLSPlayer.kt +113 -68
  4. package/android/src/main/java/com/reactnativehmssdk/HMSHLSPlayerManager.kt +17 -4
  5. package/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt +34 -18
  6. package/android/src/main/java/com/reactnativehmssdk/HMSManager.kt +363 -159
  7. package/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +367 -151
  8. package/android/src/main/java/com/reactnativehmssdk/HMSSDKViewManager.kt +26 -7
  9. package/android/src/main/java/com/reactnativehmssdk/HMSView.kt +32 -12
  10. package/android/src/main/java/com/reactnativehmssdk/HmsScreenshareActivity.kt +1 -0
  11. package/android/src/main/java/com/reactnativehmssdk/PipActionReceiver.kt +10 -6
  12. package/android/src/main/res/layout/player_view.xml +3 -2
  13. package/ios/HMSDecoder.swift +2 -2
  14. package/ios/HMSHLSPlayerManager.swift +18 -2
  15. package/ios/HMSManager.m +227 -70
  16. package/ios/HMSManager.swift +2 -2
  17. package/ios/HMSRNSDK.swift +67 -126
  18. package/ios/HMSView.swift +17 -3
  19. package/lib/commonjs/classes/HMSEncoder.js +6 -0
  20. package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
  21. package/lib/commonjs/classes/HMSSDK.js +40 -26
  22. package/lib/commonjs/classes/HMSSDK.js.map +1 -1
  23. package/lib/commonjs/components/HMSHLSPlayer/HMSHLSPlayer.js +10 -5
  24. package/lib/commonjs/components/HMSHLSPlayer/HMSHLSPlayer.js.map +1 -1
  25. package/lib/commonjs/index.js.map +1 -1
  26. package/lib/commonjs/types.js +1 -0
  27. package/lib/commonjs/types.js.map +1 -1
  28. package/lib/module/classes/HMSEncoder.js +6 -0
  29. package/lib/module/classes/HMSEncoder.js.map +1 -1
  30. package/lib/module/classes/HMSSDK.js +40 -26
  31. package/lib/module/classes/HMSSDK.js.map +1 -1
  32. package/lib/module/components/HMSHLSPlayer/HMSHLSPlayer.js +11 -6
  33. package/lib/module/components/HMSHLSPlayer/HMSHLSPlayer.js.map +1 -1
  34. package/lib/module/index.js.map +1 -1
  35. package/lib/module/types.js +1 -0
  36. package/lib/module/types.js.map +1 -1
  37. package/lib/typescript/classes/HMSEncoder.d.ts +1 -0
  38. package/lib/typescript/classes/HMSSDK.d.ts +23 -12
  39. package/lib/typescript/index.d.ts +1 -1
  40. package/lib/typescript/types.d.ts +3 -1
  41. package/package.json +1 -1
  42. package/sdk-versions.json +2 -2
  43. package/src/classes/HMSEncoder.ts +9 -0
  44. package/src/classes/HMSSDK.tsx +48 -24
  45. package/src/components/HMSHLSPlayer/HMSHLSPlayer.tsx +15 -13
  46. package/src/index.ts +4 -1
  47. package/src/types.ts +2 -0
@@ -37,6 +37,8 @@ class HMSRNSDK(
37
37
  var audioshareCallback: Promise? = null
38
38
  var isAudioSharing: Boolean = false
39
39
  var delegate: HMSManager = HmsDelegate
40
+ var previewForRoleVideoTrack: HMSLocalVideoTrack? = null
41
+ var previewForRoleAudioTrack: HMSLocalAudioTrack? = null
40
42
  private var recentRoleChangeRequest: HMSRoleChangeRequest? = null
41
43
  private var context: ReactApplicationContext = reactApplicationContext
42
44
  private var previewInProgress: Boolean = false
@@ -110,7 +112,10 @@ class HMSRNSDK(
110
112
  delegate.emitEvent("ON_ERROR", data)
111
113
  }
112
114
 
113
- private fun rejectCallback(callback: Promise?, message: String) {
115
+ private fun rejectCallback(
116
+ callback: Promise?,
117
+ message: String,
118
+ ) {
114
119
  callback?.reject("6002", message)
115
120
  }
116
121
 
@@ -180,7 +185,10 @@ class HMSRNSDK(
180
185
  self.emitHMSError(error)
181
186
  }
182
187
 
183
- override fun onPeerUpdate(type: HMSPeerUpdate, peer: HMSPeer) {
188
+ override fun onPeerUpdate(
189
+ type: HMSPeerUpdate,
190
+ peer: HMSPeer,
191
+ ) {
184
192
  if (eventsEnableStatus["3"] != true) {
185
193
  return
186
194
  }
@@ -197,7 +205,10 @@ class HMSRNSDK(
197
205
  delegate.emitEvent("3", hmsPeer)
198
206
  }
199
207
 
200
- override fun onRoomUpdate(type: HMSRoomUpdate, hmsRoom: HMSRoom) {
208
+ override fun onRoomUpdate(
209
+ type: HMSRoomUpdate,
210
+ hmsRoom: HMSRoom,
211
+ ) {
201
212
  if (eventsEnableStatus["ON_ROOM_UPDATE"] != true) {
202
213
  return
203
214
  }
@@ -213,7 +224,10 @@ class HMSRNSDK(
213
224
  delegate.emitEvent("ON_ROOM_UPDATE", data)
214
225
  }
215
226
 
216
- override fun onPreview(room: HMSRoom, localTracks: Array<HMSTrack>) {
227
+ override fun onPreview(
228
+ room: HMSRoom,
229
+ localTracks: Array<HMSTrack>,
230
+ ) {
217
231
  previewInProgress = false
218
232
  if (eventsEnableStatus["ON_PREVIEW"] != true) {
219
233
  return
@@ -307,7 +321,10 @@ class HMSRNSDK(
307
321
  delegate.emitEvent("ON_JOIN", data)
308
322
  }
309
323
 
310
- override fun onPeerUpdate(type: HMSPeerUpdate, peer: HMSPeer) {
324
+ override fun onPeerUpdate(
325
+ type: HMSPeerUpdate,
326
+ peer: HMSPeer,
327
+ ) {
311
328
  if (eventsEnableStatus["3"] != true) {
312
329
  return
313
330
  }
@@ -325,7 +342,10 @@ class HMSRNSDK(
325
342
  delegate.emitEvent("3", hmsPeer)
326
343
  }
327
344
 
328
- override fun onRoomUpdate(type: HMSRoomUpdate, hmsRoom: HMSRoom) {
345
+ override fun onRoomUpdate(
346
+ type: HMSRoomUpdate,
347
+ hmsRoom: HMSRoom,
348
+ ) {
329
349
  if (eventsEnableStatus["ON_ROOM_UPDATE"] != true) {
330
350
  return
331
351
  }
@@ -341,7 +361,11 @@ class HMSRNSDK(
341
361
  delegate.emitEvent("ON_ROOM_UPDATE", data)
342
362
  }
343
363
 
344
- override fun onTrackUpdate(type: HMSTrackUpdate, track: HMSTrack, peer: HMSPeer) {
364
+ override fun onTrackUpdate(
365
+ type: HMSTrackUpdate,
366
+ track: HMSTrack,
367
+ peer: HMSPeer,
368
+ ) {
345
369
  if (eventsEnableStatus["ON_TRACK_UPDATE"] != true) {
346
370
  return
347
371
  }
@@ -478,7 +502,10 @@ class HMSRNSDK(
478
502
  if (eventsEnableStatus["ON_LOCAL_VIDEO_STATS"] != true || hmsPeer == null || hmsTrack == null) {
479
503
  return
480
504
  }
481
- val localVideoStats = HMSDecoder.getLocalVideoStats(videoStats) // List<[bitrate, bytesSent, roundTripTime, frameRate, resolution]>
505
+ val localVideoStats =
506
+ HMSDecoder.getLocalVideoStats(
507
+ videoStats,
508
+ ) // List<[bitrate, bytesSent, roundTripTime, frameRate, resolution]>
482
509
  val track = HMSDecoder.getHmsLocalVideoTrack(hmsTrack as HMSLocalVideoTrack)
483
510
  val peer = HMSDecoder.getHmsPeerSubset(hmsPeer)
484
511
 
@@ -494,9 +521,18 @@ class HMSRNSDK(
494
521
  if (eventsEnableStatus["ON_RTC_STATS"] != true) {
495
522
  return
496
523
  }
497
- val video = HMSDecoder.getHMSRTCStats(rtcStats.video) // [bitrateReceived, bitrateSent, bytesReceived, bytesSent, packetsLost, packetsReceived, roundTripTime]
498
- val audio = HMSDecoder.getHMSRTCStats(rtcStats.audio) // [bitrateReceived, bitrateSent, bytesReceived, bytesSent, packetsLost, packetsReceived, roundTripTime]
499
- val combined = HMSDecoder.getHMSRTCStats(rtcStats.combined) // [bitrateReceived, bitrateSent, bytesReceived, bytesSent, packetsLost, packetsReceived, roundTripTime]
524
+ val video =
525
+ HMSDecoder.getHMSRTCStats(
526
+ rtcStats.video,
527
+ ) // [bitrateReceived, bitrateSent, bytesReceived, bytesSent, packetsLost, packetsReceived, roundTripTime]
528
+ val audio =
529
+ HMSDecoder.getHMSRTCStats(
530
+ rtcStats.audio,
531
+ ) // [bitrateReceived, bitrateSent, bytesReceived, bytesSent, packetsLost, packetsReceived, roundTripTime]
532
+ val combined =
533
+ HMSDecoder.getHMSRTCStats(
534
+ rtcStats.combined,
535
+ ) // [bitrateReceived, bitrateSent, bytesReceived, bytesSent, packetsLost, packetsReceived, roundTripTime]
500
536
 
501
537
  val data: WritableMap = Arguments.createMap()
502
538
  data.putArray("video", video)
@@ -514,7 +550,10 @@ class HMSRNSDK(
514
550
  if (eventsEnableStatus["ON_REMOTE_AUDIO_STATS"] != true || hmsPeer == null || hmsTrack == null) {
515
551
  return
516
552
  }
517
- val remoteAudioStats = HMSDecoder.getRemoteAudioStats(audioStats) // [bitrate, bytesReceived, jitter, packetsLost, packetsReceived]
553
+ val remoteAudioStats =
554
+ HMSDecoder.getRemoteAudioStats(
555
+ audioStats,
556
+ ) // [bitrate, bytesReceived, jitter, packetsLost, packetsReceived]
518
557
  val track = HMSDecoder.getHmsRemoteAudioTrack(hmsTrack as HMSRemoteAudioTrack)
519
558
  val peer = HMSDecoder.getHmsPeerSubset(hmsPeer)
520
559
 
@@ -534,7 +573,10 @@ class HMSRNSDK(
534
573
  if (eventsEnableStatus["ON_REMOTE_VIDEO_STATS"] != true || hmsPeer == null || hmsTrack == null) {
535
574
  return
536
575
  }
537
- val remoteVideoStats = HMSDecoder.getRemoteVideoStats(videoStats) // [bitrate, bytesReceived, frameRate, jitter, packetsLost, packetsReceived, resolution]
576
+ val remoteVideoStats =
577
+ HMSDecoder.getRemoteVideoStats(
578
+ videoStats,
579
+ ) // [bitrate, bytesReceived, frameRate, jitter, packetsLost, packetsReceived, resolution]
538
580
  val track = HMSDecoder.getHmsRemoteVideoTrack(hmsTrack as HMSRemoteVideoTrack)
539
581
  val peer = HMSDecoder.getHmsPeerSubset(hmsPeer)
540
582
 
@@ -554,7 +596,10 @@ class HMSRNSDK(
554
596
  }
555
597
  }
556
598
 
557
- fun getAuthTokenByRoomCode(data: ReadableMap, promise: Promise) {
599
+ fun getAuthTokenByRoomCode(
600
+ data: ReadableMap,
601
+ promise: Promise,
602
+ ) {
558
603
  val requiredKeys =
559
604
  HMSHelper.getUnavailableRequiredKey(
560
605
  data,
@@ -591,60 +636,65 @@ class HMSRNSDK(
591
636
 
592
637
  fun setLocalMute(data: ReadableMap) {
593
638
  val isMute = data.getBoolean("isMute")
594
- hmsSDK?.getLocalPeer()?.audioTrack?.setMute(isMute)
639
+ val localAudioTrack = hmsSDK?.getLocalPeer()?.audioTrack ?: previewForRoleAudioTrack
640
+ localAudioTrack?.let {
641
+ it.setMute(isMute)
642
+ }
595
643
  }
596
644
 
597
645
  fun setLocalVideoMute(data: ReadableMap) {
598
646
  val isMute = data.getBoolean("isMute")
599
- hmsSDK?.getLocalPeer()?.videoTrack?.setMute(isMute)
647
+ val localVideoTrack = hmsSDK?.getLocalPeer()?.videoTrack ?: previewForRoleVideoTrack
648
+ localVideoTrack?.let {
649
+ it.setMute(isMute)
650
+ }
600
651
  }
601
652
 
602
653
  fun switchCamera() {
603
- if (hmsSDK?.getLocalPeer()?.videoTrack?.isMute == false) {
604
- HMSCoroutineScope.launch { hmsSDK?.getLocalPeer()?.videoTrack?.switchCamera() }
654
+ val localVideoTrack = hmsSDK?.getLocalPeer()?.videoTrack ?: previewForRoleVideoTrack
655
+ localVideoTrack?.let {
656
+ if (!it.isMute) {
657
+ HMSCoroutineScope.launch { it.switchCamera() }
658
+ }
605
659
  }
606
660
  }
607
661
 
608
- fun leave(callback: Promise?, fromPIP: Boolean = false) {
609
- if (reconnectingStage) {
610
- val errorMessage = "Still in reconnecting stage"
611
-
612
- if (fromPIP) {
613
- self.emitHMSError(HMSException(101, errorMessage, "PIP Action", "Leave called from PIP Window", "HMSRNSDK #Function leave"))
614
- } else {
615
- callback?.reject("101", errorMessage)
616
- }
617
- } else {
618
- hmsSDK?.leave(
619
- object : HMSActionResultListener {
620
- override fun onSuccess() {
621
- if (fromPIP) {
622
- context.currentActivity?.moveTaskToBack(false)
662
+ fun leave(
663
+ callback: Promise?,
664
+ fromPIP: Boolean = false,
665
+ ) {
666
+ hmsSDK?.leave(
667
+ object : HMSActionResultListener {
668
+ override fun onSuccess() {
669
+ if (fromPIP) {
670
+ context.currentActivity?.moveTaskToBack(false)
623
671
 
624
- if (eventsEnableStatus["ON_PIP_ROOM_LEAVE"] != true) {
625
- return
626
- }
627
- val map: WritableMap = Arguments.createMap()
628
- map.putString("id", id)
629
- delegate.emitEvent("ON_PIP_ROOM_LEAVE", map)
630
- } else {
631
- callback?.resolve(emitHMSSuccess())
672
+ if (eventsEnableStatus["ON_PIP_ROOM_LEAVE"] != true) {
673
+ return
632
674
  }
633
- cleanup() // resetting states and doing data cleanup
675
+ val map: WritableMap = Arguments.createMap()
676
+ map.putString("id", id)
677
+ delegate.emitEvent("ON_PIP_ROOM_LEAVE", map)
678
+ } else {
679
+ callback?.resolve(emitHMSSuccess())
634
680
  }
681
+ cleanup() // resetting states and doing data cleanup
682
+ }
635
683
 
636
- override fun onError(error: HMSException) {
637
- if (!fromPIP) {
638
- callback?.reject(error.code.toString(), error.message)
639
- }
640
- self.emitHMSError(error)
684
+ override fun onError(error: HMSException) {
685
+ if (!fromPIP) {
686
+ callback?.reject(error.code.toString(), error.message)
641
687
  }
642
- },
643
- )
644
- }
688
+ self.emitHMSError(error)
689
+ }
690
+ },
691
+ )
645
692
  }
646
693
 
647
- fun sendBroadcastMessage(data: ReadableMap, callback: Promise?) {
694
+ fun sendBroadcastMessage(
695
+ data: ReadableMap,
696
+ callback: Promise?,
697
+ ) {
648
698
  val requiredKeys =
649
699
  HMSHelper.getUnavailableRequiredKey(
650
700
  data,
@@ -656,9 +706,9 @@ class HMSRNSDK(
656
706
  data.getString("type") as String,
657
707
  object : HMSMessageResultListener {
658
708
  override fun onError(error: HMSException) {
659
- self.emitHMSError(error)
660
709
  callback?.reject(error.code.toString(), error.message)
661
710
  }
711
+
662
712
  override fun onSuccess(hmsMessage: HMSMessage) {
663
713
  callback?.resolve(emitHMSMessageSuccess(hmsMessage))
664
714
  }
@@ -671,7 +721,10 @@ class HMSRNSDK(
671
721
  }
672
722
  }
673
723
 
674
- fun sendGroupMessage(data: ReadableMap, callback: Promise?) {
724
+ fun sendGroupMessage(
725
+ data: ReadableMap,
726
+ callback: Promise?,
727
+ ) {
675
728
  val requiredKeys =
676
729
  HMSHelper.getUnavailableRequiredKey(
677
730
  data,
@@ -688,9 +741,9 @@ class HMSRNSDK(
688
741
  encodedTargetedRoles,
689
742
  object : HMSMessageResultListener {
690
743
  override fun onError(error: HMSException) {
691
- self.emitHMSError(error)
692
744
  callback?.reject(error.code.toString(), error.message)
693
745
  }
746
+
694
747
  override fun onSuccess(hmsMessage: HMSMessage) {
695
748
  callback?.resolve(emitHMSMessageSuccess(hmsMessage))
696
749
  }
@@ -703,7 +756,10 @@ class HMSRNSDK(
703
756
  }
704
757
  }
705
758
 
706
- fun sendDirectMessage(data: ReadableMap, callback: Promise?) {
759
+ fun sendDirectMessage(
760
+ data: ReadableMap,
761
+ callback: Promise?,
762
+ ) {
707
763
  val requiredKeys =
708
764
  HMSHelper.getUnavailableRequiredKey(
709
765
  data,
@@ -719,9 +775,9 @@ class HMSRNSDK(
719
775
  peer,
720
776
  object : HMSMessageResultListener {
721
777
  override fun onError(error: HMSException) {
722
- self.emitHMSError(error)
723
778
  callback?.reject(error.code.toString(), error.message)
724
779
  }
780
+
725
781
  override fun onSuccess(hmsMessage: HMSMessage) {
726
782
  callback?.resolve(emitHMSMessageSuccess(hmsMessage))
727
783
  }
@@ -739,7 +795,10 @@ class HMSRNSDK(
739
795
  }
740
796
 
741
797
  @kotlin.Deprecated("Use #Function changeRoleOfPeer instead")
742
- fun changeRole(data: ReadableMap, callback: Promise?) {
798
+ fun changeRole(
799
+ data: ReadableMap,
800
+ callback: Promise?,
801
+ ) {
743
802
  val requiredKeys =
744
803
  HMSHelper.getUnavailableRequiredKey(
745
804
  data,
@@ -770,8 +829,8 @@ class HMSRNSDK(
770
829
  override fun onSuccess() {
771
830
  callback?.resolve(emitHMSSuccess())
772
831
  }
832
+
773
833
  override fun onError(error: HMSException) {
774
- self.emitHMSError(error)
775
834
  callback?.reject(error.code.toString(), error.message)
776
835
  }
777
836
  },
@@ -784,7 +843,10 @@ class HMSRNSDK(
784
843
  }
785
844
  }
786
845
 
787
- fun changeRoleOfPeer(data: ReadableMap, promise: Promise?) {
846
+ fun changeRoleOfPeer(
847
+ data: ReadableMap,
848
+ promise: Promise?,
849
+ ) {
788
850
  val requiredKeys =
789
851
  HMSHelper.getUnavailableRequiredKey(
790
852
  data,
@@ -815,8 +877,8 @@ class HMSRNSDK(
815
877
  override fun onSuccess() {
816
878
  promise?.resolve(emitHMSSuccess())
817
879
  }
880
+
818
881
  override fun onError(error: HMSException) {
819
- self.emitHMSError(error)
820
882
  promise?.reject(error.code.toString(), error.message)
821
883
  }
822
884
  },
@@ -829,7 +891,10 @@ class HMSRNSDK(
829
891
  }
830
892
  }
831
893
 
832
- fun changeRoleOfPeersWithRoles(data: ReadableMap, promise: Promise?) {
894
+ fun changeRoleOfPeersWithRoles(
895
+ data: ReadableMap,
896
+ promise: Promise?,
897
+ ) {
833
898
  val requiredKeys =
834
899
  HMSHelper.getUnavailableRequiredKey(
835
900
  data,
@@ -855,8 +920,8 @@ class HMSRNSDK(
855
920
  override fun onSuccess() {
856
921
  promise?.resolve(emitHMSSuccess())
857
922
  }
923
+
858
924
  override fun onError(error: HMSException) {
859
- self.emitHMSError(error)
860
925
  promise?.reject(error.code.toString(), error.message)
861
926
  }
862
927
  },
@@ -870,7 +935,10 @@ class HMSRNSDK(
870
935
  }
871
936
  }
872
937
 
873
- fun changeTrackState(data: ReadableMap, callback: Promise?) {
938
+ fun changeTrackState(
939
+ data: ReadableMap,
940
+ callback: Promise?,
941
+ ) {
874
942
  val requiredKeys =
875
943
  HMSHelper.getUnavailableRequiredKey(
876
944
  data,
@@ -888,8 +956,8 @@ class HMSRNSDK(
888
956
  override fun onSuccess() {
889
957
  callback?.resolve(emitHMSSuccess())
890
958
  }
959
+
891
960
  override fun onError(error: HMSException) {
892
- self.emitHMSError(error)
893
961
  callback?.reject(error.code.toString(), error.message)
894
962
  }
895
963
  },
@@ -902,7 +970,10 @@ class HMSRNSDK(
902
970
  }
903
971
  }
904
972
 
905
- fun changeTrackStateForRoles(data: ReadableMap, callback: Promise?) {
973
+ fun changeTrackStateForRoles(
974
+ data: ReadableMap,
975
+ callback: Promise?,
976
+ ) {
906
977
  val requiredKeys = HMSHelper.getUnavailableRequiredKey(data, arrayOf(Pair("mute", "Boolean")))
907
978
  if (requiredKeys === null) {
908
979
  val mute: Boolean = data.getBoolean("mute")
@@ -939,8 +1010,8 @@ class HMSRNSDK(
939
1010
  override fun onSuccess() {
940
1011
  callback?.resolve(emitHMSSuccess())
941
1012
  }
1013
+
942
1014
  override fun onError(error: HMSException) {
943
- self.emitHMSError(error)
944
1015
  callback?.reject(error.code.toString(), error.message)
945
1016
  }
946
1017
  },
@@ -952,7 +1023,10 @@ class HMSRNSDK(
952
1023
  }
953
1024
  }
954
1025
 
955
- fun isMute(data: ReadableMap, callback: Promise?) {
1026
+ fun isMute(
1027
+ data: ReadableMap,
1028
+ callback: Promise?,
1029
+ ) {
956
1030
  val requiredKeys = HMSHelper.getUnavailableRequiredKey(data, arrayOf(Pair("trackId", "String")))
957
1031
  if (requiredKeys === null) {
958
1032
  val trackId = data.getString("trackId")
@@ -970,7 +1044,10 @@ class HMSRNSDK(
970
1044
  }
971
1045
  }
972
1046
 
973
- fun removePeer(data: ReadableMap, callback: Promise?) {
1047
+ fun removePeer(
1048
+ data: ReadableMap,
1049
+ callback: Promise?,
1050
+ ) {
974
1051
  val requiredKeys =
975
1052
  HMSHelper.getUnavailableRequiredKey(
976
1053
  data,
@@ -988,8 +1065,8 @@ class HMSRNSDK(
988
1065
  override fun onSuccess() {
989
1066
  callback?.resolve(emitHMSSuccess())
990
1067
  }
1068
+
991
1069
  override fun onError(error: HMSException) {
992
- self.emitHMSError(error)
993
1070
  callback?.reject(error.code.toString(), error.message)
994
1071
  }
995
1072
  },
@@ -1005,7 +1082,10 @@ class HMSRNSDK(
1005
1082
  }
1006
1083
  }
1007
1084
 
1008
- fun endRoom(data: ReadableMap, callback: Promise?) {
1085
+ fun endRoom(
1086
+ data: ReadableMap,
1087
+ callback: Promise?,
1088
+ ) {
1009
1089
  val requiredKeys =
1010
1090
  HMSHelper.getUnavailableRequiredKey(
1011
1091
  data,
@@ -1020,8 +1100,8 @@ class HMSRNSDK(
1020
1100
  callback?.resolve(emitHMSSuccess())
1021
1101
  cleanup() // resetting states and doing data cleanup
1022
1102
  }
1103
+
1023
1104
  override fun onError(error: HMSException) {
1024
- self.emitHMSError(error)
1025
1105
  callback?.reject(error.code.toString(), error.message)
1026
1106
  }
1027
1107
  },
@@ -1033,6 +1113,60 @@ class HMSRNSDK(
1033
1113
  }
1034
1114
  }
1035
1115
 
1116
+ fun previewForRole(
1117
+ data: ReadableMap,
1118
+ callback: Promise?,
1119
+ ) {
1120
+ val requiredKeys = HMSHelper.getUnavailableRequiredKey(data, arrayOf(Pair("role", "String")))
1121
+ if (requiredKeys === null) {
1122
+ val roleString = data.getString("role")
1123
+ val role = HMSHelper.getRoleFromRoleName(roleString, hmsSDK?.getRoles())
1124
+ if (role == null) {
1125
+ callback?.reject("4000", "ROLE_NOT_FOUND")
1126
+ return
1127
+ }
1128
+ hmsSDK?.preview(
1129
+ role,
1130
+ object : RolePreviewListener {
1131
+ override fun onError(error: HMSException) {
1132
+ callback?.reject(error.code.toString(), error.message)
1133
+ }
1134
+
1135
+ override fun onTracks(localTracks: Array<HMSTrack>) {
1136
+ val tracks = HMSDecoder.getPreviewTracks(localTracks)
1137
+
1138
+ localTracks.forEach { track ->
1139
+ // /Assigning values to preview for role tracks
1140
+ if (track.type == HMSTrackType.AUDIO) {
1141
+ previewForRoleAudioTrack = track as HMSLocalAudioTrack
1142
+ } else if (track.type == HMSTrackType.VIDEO && track.source == "regular") {
1143
+ previewForRoleVideoTrack = track as HMSLocalVideoTrack
1144
+ }
1145
+ }
1146
+
1147
+ val data: WritableMap = Arguments.createMap()
1148
+
1149
+ data.putArray("tracks", tracks)
1150
+ data.putBoolean("success", true)
1151
+
1152
+ callback?.resolve(data)
1153
+ }
1154
+ },
1155
+ )
1156
+ } else {
1157
+ val errorMessage = "Missing required keys for previewForRole: $requiredKeys"
1158
+ self.emitRequiredKeysError(errorMessage)
1159
+ rejectCallback(callback, errorMessage)
1160
+ }
1161
+ }
1162
+
1163
+ fun cancelPreview(callback: Promise?) {
1164
+ hmsSDK?.cancelPreview()
1165
+ previewForRoleAudioTrack = null
1166
+ previewForRoleVideoTrack = null
1167
+ callback?.resolve(emitHMSSuccess())
1168
+ }
1169
+
1036
1170
  fun acceptRoleChange(callback: Promise?) {
1037
1171
  if (recentRoleChangeRequest !== null) {
1038
1172
  hmsSDK?.acceptChangeRole(
@@ -1041,13 +1175,15 @@ class HMSRNSDK(
1041
1175
  override fun onSuccess() {
1042
1176
  callback?.resolve(emitHMSSuccess())
1043
1177
  }
1178
+
1044
1179
  override fun onError(error: HMSException) {
1045
- self.emitHMSError(error)
1046
1180
  callback?.reject(error.code.toString(), error.message)
1047
1181
  }
1048
1182
  },
1049
1183
  )
1050
1184
  recentRoleChangeRequest = null
1185
+ previewForRoleAudioTrack = null
1186
+ previewForRoleVideoTrack = null
1051
1187
  } else {
1052
1188
  val errorMessage = "acceptRoleChange: recentRoleChangeRequest not found"
1053
1189
  self.emitRequiredKeysError(errorMessage)
@@ -1065,6 +1201,7 @@ class HMSRNSDK(
1065
1201
  true,
1066
1202
  object : HMSActionResultListener {
1067
1203
  override fun onSuccess() {}
1204
+
1068
1205
  override fun onError(error: HMSException) {
1069
1206
  customError = error
1070
1207
  }
@@ -1120,7 +1257,10 @@ class HMSRNSDK(
1120
1257
  }
1121
1258
  }
1122
1259
 
1123
- fun isPlaybackAllowed(data: ReadableMap, callback: Promise?) {
1260
+ fun isPlaybackAllowed(
1261
+ data: ReadableMap,
1262
+ callback: Promise?,
1263
+ ) {
1124
1264
  val requiredKeys = HMSHelper.getUnavailableRequiredKey(data, arrayOf(Pair("trackId", "String")))
1125
1265
  if (requiredKeys === null) {
1126
1266
  val trackId = data.getString("trackId")
@@ -1209,7 +1349,10 @@ class HMSRNSDK(
1209
1349
  }
1210
1350
  }
1211
1351
 
1212
- fun getVolume(data: ReadableMap, callback: Promise?) {
1352
+ fun getVolume(
1353
+ data: ReadableMap,
1354
+ callback: Promise?,
1355
+ ) {
1213
1356
  val requiredKeys = HMSHelper.getUnavailableRequiredKey(data, arrayOf(Pair("trackId", "String")))
1214
1357
  if (requiredKeys === null) {
1215
1358
  val trackId = data.getString("trackId")
@@ -1229,7 +1372,10 @@ class HMSRNSDK(
1229
1372
  }
1230
1373
  }
1231
1374
 
1232
- fun changeMetadata(data: ReadableMap, callback: Promise?) {
1375
+ fun changeMetadata(
1376
+ data: ReadableMap,
1377
+ callback: Promise?,
1378
+ ) {
1233
1379
  val requiredKeys =
1234
1380
  HMSHelper.getUnavailableRequiredKey(data, arrayOf(Pair("metadata", "String")))
1235
1381
  if (requiredKeys === null) {
@@ -1242,9 +1388,9 @@ class HMSRNSDK(
1242
1388
  override fun onSuccess() {
1243
1389
  callback?.resolve(emitHMSSuccess())
1244
1390
  }
1391
+
1245
1392
  override fun onError(error: HMSException) {
1246
1393
  callback?.reject(error.code.toString(), error.message)
1247
- self.emitHMSError(error)
1248
1394
  }
1249
1395
  },
1250
1396
  )
@@ -1256,7 +1402,10 @@ class HMSRNSDK(
1256
1402
  }
1257
1403
  }
1258
1404
 
1259
- fun startRTMPOrRecording(data: ReadableMap, callback: Promise?) {
1405
+ fun startRTMPOrRecording(
1406
+ data: ReadableMap,
1407
+ callback: Promise?,
1408
+ ) {
1260
1409
  val requiredKeys =
1261
1410
  HMSHelper.getUnavailableRequiredKey(
1262
1411
  data,
@@ -1275,9 +1424,9 @@ class HMSRNSDK(
1275
1424
  override fun onSuccess() {
1276
1425
  callback?.resolve(emitHMSSuccess())
1277
1426
  }
1427
+
1278
1428
  override fun onError(error: HMSException) {
1279
1429
  callback?.reject(error.code.toString(), error.message)
1280
- self.emitHMSError(error)
1281
1430
  }
1282
1431
  },
1283
1432
  )
@@ -1295,9 +1444,9 @@ class HMSRNSDK(
1295
1444
  override fun onSuccess() {
1296
1445
  callback?.resolve(emitHMSSuccess())
1297
1446
  }
1447
+
1298
1448
  override fun onError(error: HMSException) {
1299
1449
  callback?.reject(error.code.toString(), error.message)
1300
- self.emitHMSError(error)
1301
1450
  }
1302
1451
  },
1303
1452
  )
@@ -1323,8 +1472,8 @@ class HMSRNSDK(
1323
1472
  override fun onError(error: HMSException) {
1324
1473
  screenshareCallback = null
1325
1474
  callback?.reject(error.code.toString(), error.message)
1326
- self.emitHMSError(error)
1327
1475
  }
1476
+
1328
1477
  override fun onSuccess() {
1329
1478
  screenshareCallback = null
1330
1479
  callback?.resolve(emitHMSSuccess())
@@ -1333,7 +1482,10 @@ class HMSRNSDK(
1333
1482
  )
1334
1483
  }
1335
1484
 
1336
- fun startHLSStreaming(data: ReadableMap, callback: Promise?) {
1485
+ fun startHLSStreaming(
1486
+ data: ReadableMap,
1487
+ callback: Promise?,
1488
+ ) {
1337
1489
  val hlsConfig = HMSHelper.getHLSConfig(data)
1338
1490
  hmsSDK?.startHLSStreaming(
1339
1491
  hlsConfig,
@@ -1341,9 +1493,9 @@ class HMSRNSDK(
1341
1493
  override fun onSuccess() {
1342
1494
  callback?.resolve(emitHMSSuccess())
1343
1495
  }
1496
+
1344
1497
  override fun onError(error: HMSException) {
1345
1498
  callback?.reject(error.code.toString(), error.message)
1346
- self.emitHMSError(error)
1347
1499
  }
1348
1500
  },
1349
1501
  )
@@ -1356,9 +1508,9 @@ class HMSRNSDK(
1356
1508
  override fun onSuccess() {
1357
1509
  callback?.resolve(emitHMSSuccess())
1358
1510
  }
1511
+
1359
1512
  override fun onError(error: HMSException) {
1360
1513
  callback?.reject(error.code.toString(), error.message)
1361
- self.emitHMSError(error)
1362
1514
  }
1363
1515
  },
1364
1516
  )
@@ -1384,7 +1536,10 @@ class HMSRNSDK(
1384
1536
  }
1385
1537
  }
1386
1538
 
1387
- fun changeName(data: ReadableMap, callback: Promise?) {
1539
+ fun changeName(
1540
+ data: ReadableMap,
1541
+ callback: Promise?,
1542
+ ) {
1388
1543
  val requiredKeys = HMSHelper.getUnavailableRequiredKey(data, arrayOf(Pair("name", "String")))
1389
1544
  if (requiredKeys === null) {
1390
1545
  val name = data.getString("name")
@@ -1398,7 +1553,6 @@ class HMSRNSDK(
1398
1553
 
1399
1554
  override fun onError(error: HMSException) {
1400
1555
  callback?.reject(error.code.toString(), error.message)
1401
- self.emitHMSError(error)
1402
1556
  }
1403
1557
  },
1404
1558
  )
@@ -1476,7 +1630,10 @@ class HMSRNSDK(
1476
1630
  )
1477
1631
  }
1478
1632
 
1479
- fun startAudioshare(data: ReadableMap, callback: Promise?) {
1633
+ fun startAudioshare(
1634
+ data: ReadableMap,
1635
+ callback: Promise?,
1636
+ ) {
1480
1637
  val requiredKeys =
1481
1638
  HMSHelper.getUnavailableRequiredKey(data, arrayOf(Pair("audioMixingMode", "String")))
1482
1639
  if (requiredKeys === null) {
@@ -1505,8 +1662,8 @@ class HMSRNSDK(
1505
1662
  override fun onError(error: HMSException) {
1506
1663
  audioshareCallback = null
1507
1664
  callback?.reject(error.code.toString(), error.message)
1508
- self.emitHMSError(error)
1509
1665
  }
1666
+
1510
1667
  override fun onSuccess() {
1511
1668
  isAudioSharing = false
1512
1669
  audioshareCallback = null
@@ -1520,7 +1677,10 @@ class HMSRNSDK(
1520
1677
  return audioMixingMode
1521
1678
  }
1522
1679
 
1523
- fun setAudioMixingMode(data: ReadableMap, callback: Promise?) {
1680
+ fun setAudioMixingMode(
1681
+ data: ReadableMap,
1682
+ callback: Promise?,
1683
+ ) {
1524
1684
  val requiredKeys =
1525
1685
  HMSHelper.getUnavailableRequiredKey(data, arrayOf(Pair("audioMixingMode", "String")))
1526
1686
  if (requiredKeys === null) {
@@ -1665,7 +1825,10 @@ class HMSRNSDK(
1665
1825
  return null
1666
1826
  }
1667
1827
 
1668
- fun enableEvent(data: ReadableMap, promise: Promise?) {
1828
+ fun enableEvent(
1829
+ data: ReadableMap,
1830
+ promise: Promise?,
1831
+ ) {
1669
1832
  val requiredKeys =
1670
1833
  HMSHelper.getUnavailableRequiredKey(data, arrayOf(Pair("eventType", "String")))
1671
1834
  if (requiredKeys === null) {
@@ -1682,7 +1845,10 @@ class HMSRNSDK(
1682
1845
  }
1683
1846
  }
1684
1847
 
1685
- fun disableEvent(data: ReadableMap, promise: Promise?) {
1848
+ fun disableEvent(
1849
+ data: ReadableMap,
1850
+ promise: Promise?,
1851
+ ) {
1686
1852
  val requiredKeys =
1687
1853
  HMSHelper.getUnavailableRequiredKey(data, arrayOf(Pair("eventType", "String")))
1688
1854
  if (requiredKeys === null) {
@@ -1699,7 +1865,10 @@ class HMSRNSDK(
1699
1865
  }
1700
1866
  }
1701
1867
 
1702
- fun restrictData(data: ReadableMap, promise: Promise?) {
1868
+ fun restrictData(
1869
+ data: ReadableMap,
1870
+ promise: Promise?,
1871
+ ) {
1703
1872
  val requiredKeys =
1704
1873
  HMSHelper.getUnavailableRequiredKey(data, arrayOf(Pair("roleName", "String")))
1705
1874
  if (requiredKeys === null) {
@@ -1715,7 +1884,10 @@ class HMSRNSDK(
1715
1884
  }
1716
1885
  }
1717
1886
 
1718
- fun getRemoteVideoTrackFromTrackId(data: ReadableMap, promise: Promise) {
1887
+ fun getRemoteVideoTrackFromTrackId(
1888
+ data: ReadableMap,
1889
+ promise: Promise,
1890
+ ) {
1719
1891
  val requiredKeys = HMSHelper.getUnavailableRequiredKey(data, arrayOf(Pair("trackId", "String")))
1720
1892
  if (requiredKeys === null) {
1721
1893
  val trackId = data.getString("trackId")
@@ -1732,7 +1904,10 @@ class HMSRNSDK(
1732
1904
  }
1733
1905
  }
1734
1906
 
1735
- fun getRemoteAudioTrackFromTrackId(data: ReadableMap, promise: Promise) {
1907
+ fun getRemoteAudioTrackFromTrackId(
1908
+ data: ReadableMap,
1909
+ promise: Promise,
1910
+ ) {
1736
1911
  val requiredKeys = HMSHelper.getUnavailableRequiredKey(data, arrayOf(Pair("trackId", "String")))
1737
1912
  if (requiredKeys === null) {
1738
1913
  val trackId = data.getString("trackId")
@@ -1749,7 +1924,10 @@ class HMSRNSDK(
1749
1924
  }
1750
1925
  }
1751
1926
 
1752
- fun getVideoTrackLayer(data: ReadableMap, promise: Promise) {
1927
+ fun getVideoTrackLayer(
1928
+ data: ReadableMap,
1929
+ promise: Promise,
1930
+ ) {
1753
1931
  val requiredKeys = HMSHelper.getUnavailableRequiredKey(data, arrayOf(Pair("trackId", "String")))
1754
1932
  if (requiredKeys === null) {
1755
1933
  val trackId = data.getString("trackId")
@@ -1767,7 +1945,10 @@ class HMSRNSDK(
1767
1945
  }
1768
1946
  }
1769
1947
 
1770
- fun getVideoTrackLayerDefinition(data: ReadableMap, promise: Promise) {
1948
+ fun getVideoTrackLayerDefinition(
1949
+ data: ReadableMap,
1950
+ promise: Promise,
1951
+ ) {
1771
1952
  val requiredKeys = HMSHelper.getUnavailableRequiredKey(data, arrayOf(Pair("trackId", "String")))
1772
1953
  if (requiredKeys === null) {
1773
1954
  val trackId = data.getString("trackId")
@@ -1786,7 +1967,10 @@ class HMSRNSDK(
1786
1967
  }
1787
1968
  }
1788
1969
 
1789
- fun setVideoTrackLayer(data: ReadableMap, promise: Promise?) {
1970
+ fun setVideoTrackLayer(
1971
+ data: ReadableMap,
1972
+ promise: Promise?,
1973
+ ) {
1790
1974
  val requiredKeys = HMSHelper.getUnavailableRequiredKey(data, arrayOf(Pair("trackId", "String"), Pair("layer", "String")))
1791
1975
  if (requiredKeys === null) {
1792
1976
  val trackId = data.getString("trackId")
@@ -1815,33 +1999,42 @@ class HMSRNSDK(
1815
1999
  }
1816
2000
  }
1817
2001
 
1818
- fun captureImageAtMaxSupportedResolution(data: ReadableMap, promise: Promise?) {
2002
+ fun captureImageAtMaxSupportedResolution(
2003
+ data: ReadableMap,
2004
+ promise: Promise?,
2005
+ ) {
1819
2006
  val requiredKeys = HMSHelper.getUnavailableRequiredKey(data, arrayOf(Pair("flash", "Boolean")))
1820
2007
  if (requiredKeys === null) {
1821
- val localPeer = hmsSDK?.getLocalPeer().let {
1822
- if (it == null) {
1823
- promise?.reject("6004", "An instance of Local Peer could not be found! Please check if a Room is joined.")
1824
- return
1825
- } else {
1826
- it
2008
+ val localPeer =
2009
+ hmsSDK?.getLocalPeer().let {
2010
+ if (it == null) {
2011
+ promise?.reject("6004", "An instance of Local Peer could not be found! Please check if a Room is joined.")
2012
+ return
2013
+ } else {
2014
+ it
2015
+ }
1827
2016
  }
1828
- }
1829
- val localVideoTrack = localPeer.videoTrack.let {
1830
- if (it == null) {
1831
- promise?.reject("6004", "Video Track of Local Peer could not be found! Please check if the Local Peer has permission to publish video & video is unmuted currently.")
1832
- return
1833
- } else {
1834
- it
2017
+ val localVideoTrack =
2018
+ localPeer.videoTrack.let {
2019
+ if (it == null) {
2020
+ promise?.reject(
2021
+ "6004",
2022
+ "Video Track of Local Peer could not be found! Please check if the Local Peer has permission to publish video & video is unmuted currently.",
2023
+ )
2024
+ return
2025
+ } else {
2026
+ it
2027
+ }
1835
2028
  }
1836
- }
1837
- val cameraControl = localVideoTrack.getCameraControl().let {
1838
- if (it == null) {
1839
- promise?.reject("6004", "Camera Controls not available!")
1840
- return
1841
- } else {
1842
- it
2029
+ val cameraControl =
2030
+ localVideoTrack.getCameraControl().let {
2031
+ if (it == null) {
2032
+ promise?.reject("6004", "Camera Controls not available!")
2033
+ return
2034
+ } else {
2035
+ it
2036
+ }
1843
2037
  }
1844
- }
1845
2038
 
1846
2039
  val flashSupported = cameraControl.isFlashSupported()
1847
2040
  var flashActionOnSuccess = 0 // 0 - Do nothing on success, 1 - set flash on, 2 - set flash off
@@ -1896,7 +2089,10 @@ class HMSRNSDK(
1896
2089
 
1897
2090
  // Mark: Session Store
1898
2091
 
1899
- fun setSessionMetadataForKey(data: ReadableMap, promise: Promise?) {
2092
+ fun setSessionMetadataForKey(
2093
+ data: ReadableMap,
2094
+ promise: Promise?,
2095
+ ) {
1900
2096
  val requiredKeys = HMSHelper.getUnavailableRequiredKey(data, arrayOf(Pair("key", "String")))
1901
2097
  if (requiredKeys === null) {
1902
2098
  val key = data.getString("key")!!
@@ -1916,6 +2112,7 @@ class HMSRNSDK(
1916
2112
  override fun onError(error: HMSException) {
1917
2113
  promise?.reject(error.code.toString(), error.message)
1918
2114
  }
2115
+
1919
2116
  override fun onSuccess() {
1920
2117
  val result: WritableMap = Arguments.createMap()
1921
2118
  result.putBoolean("success", true)
@@ -1931,7 +2128,10 @@ class HMSRNSDK(
1931
2128
  }
1932
2129
  }
1933
2130
 
1934
- fun getSessionMetadataForKey(data: ReadableMap, promise: Promise?) {
2131
+ fun getSessionMetadataForKey(
2132
+ data: ReadableMap,
2133
+ promise: Promise?,
2134
+ ) {
1935
2135
  val requiredKeys = HMSHelper.getUnavailableRequiredKey(data, arrayOf(Pair("key", "String")))
1936
2136
  if (requiredKeys === null) {
1937
2137
  val key = data.getString("key")!!
@@ -1974,7 +2174,10 @@ class HMSRNSDK(
1974
2174
  }
1975
2175
  }
1976
2176
 
1977
- fun addKeyChangeListener(data: ReadableMap, promise: Promise?) {
2177
+ fun addKeyChangeListener(
2178
+ data: ReadableMap,
2179
+ promise: Promise?,
2180
+ ) {
1978
2181
  val requiredKeys = HMSHelper.getUnavailableRequiredKey(data, arrayOf(Pair("keys", "Array"), Pair("uniqueId", "String")))
1979
2182
  if (requiredKeys === null) {
1980
2183
  val keys = ArrayList(data.getArray("keys")!!.toArrayList().map { it.toString() })
@@ -1987,39 +2190,45 @@ class HMSRNSDK(
1987
2190
  return
1988
2191
  }
1989
2192
 
1990
- val keyChangeListener = object : HMSKeyChangeListener {
1991
- override fun onKeyChanged(key: String, value: JsonElement?) {
1992
- val map = Arguments.createMap()
1993
- map.putString("id", id)
1994
- map.putString("key", key)
1995
-
1996
- value.let { sm ->
1997
- if (sm == null) {
1998
- map.putString("value", null)
1999
- } else {
2000
- if (sm.isJsonPrimitive) {
2001
- map.putString("value", sm.asString)
2002
- } else if (sm.isJsonNull) {
2193
+ val keyChangeListener =
2194
+ object : HMSKeyChangeListener {
2195
+ override fun onKeyChanged(
2196
+ key: String,
2197
+ value: JsonElement?,
2198
+ ) {
2199
+ val map = Arguments.createMap()
2200
+ map.putString("id", id)
2201
+ map.putString("key", key)
2202
+
2203
+ value.let { sm ->
2204
+ if (sm == null) {
2003
2205
  map.putString("value", null)
2004
2206
  } else {
2005
- map.putString("value", sm.toString())
2207
+ if (sm.isJsonPrimitive) {
2208
+ map.putString("value", sm.asString)
2209
+ } else if (sm.isJsonNull) {
2210
+ map.putString("value", null)
2211
+ } else {
2212
+ map.putString("value", sm.toString())
2213
+ }
2006
2214
  }
2007
2215
  }
2008
- }
2009
2216
 
2010
- delegate.emitEvent("ON_SESSION_STORE_CHANGED", map)
2217
+ delegate.emitEvent("ON_SESSION_STORE_CHANGED", map)
2218
+ }
2011
2219
  }
2012
- }
2013
2220
 
2014
- val actionResultListener = object : HMSActionResultListener {
2015
- override fun onError(error: HMSException) {
2016
- promise?.reject(error.code.toString(), error.message)
2017
- }
2018
- override fun onSuccess() {
2019
- keyChangeObservers[uniqueId] = keyChangeListener
2020
- promise?.resolve(true)
2221
+ val actionResultListener =
2222
+ object : HMSActionResultListener {
2223
+ override fun onError(error: HMSException) {
2224
+ promise?.reject(error.code.toString(), error.message)
2225
+ }
2226
+
2227
+ override fun onSuccess() {
2228
+ keyChangeObservers[uniqueId] = keyChangeListener
2229
+ promise?.resolve(true)
2230
+ }
2021
2231
  }
2022
- }
2023
2232
 
2024
2233
  it.addKeyChangeListener(
2025
2234
  keys,
@@ -2033,7 +2242,10 @@ class HMSRNSDK(
2033
2242
  }
2034
2243
  }
2035
2244
 
2036
- fun removeKeyChangeListener(data: ReadableMap, promise: Promise?) {
2245
+ fun removeKeyChangeListener(
2246
+ data: ReadableMap,
2247
+ promise: Promise?,
2248
+ ) {
2037
2249
  val requiredKeys = HMSHelper.getUnavailableRequiredKey(data, arrayOf(Pair("uniqueId", "String")))
2038
2250
  if (requiredKeys === null) {
2039
2251
  val uniqueId = data.getString("uniqueId")!!
@@ -2062,7 +2274,10 @@ class HMSRNSDK(
2062
2274
  }
2063
2275
  }
2064
2276
 
2065
- fun getRoomLayout(data: ReadableMap, promise: Promise?) {
2277
+ fun getRoomLayout(
2278
+ data: ReadableMap,
2279
+ promise: Promise?,
2280
+ ) {
2066
2281
  val unavailableKeys = HMSHelper.getUnavailableRequiredKey(data, arrayOf(Pair("authToken", "String")))
2067
2282
 
2068
2283
  if (unavailableKeys != null) {
@@ -2074,9 +2289,10 @@ class HMSRNSDK(
2074
2289
  val authToken = data.getString("authToken")!!
2075
2290
  val endpoint = data.getString("endpoint")
2076
2291
 
2077
- val layoutRequestOptions = endpoint?.let {
2078
- LayoutRequestOptions(endpoint)
2079
- }
2292
+ val layoutRequestOptions =
2293
+ endpoint?.let {
2294
+ LayoutRequestOptions(endpoint)
2295
+ }
2080
2296
 
2081
2297
  hmsSDK?.getRoomLayout(
2082
2298
  authToken,