@100mslive/react-native-hms 1.7.1 → 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 (124) hide show
  1. package/android/.gradle/6.7.1/executionHistory/executionHistory.bin +0 -0
  2. package/android/.gradle/6.7.1/executionHistory/executionHistory.lock +0 -0
  3. package/android/.gradle/6.7.1/fileHashes/fileHashes.bin +0 -0
  4. package/android/.gradle/6.7.1/fileHashes/fileHashes.lock +0 -0
  5. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  6. package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
  7. package/android/.gradle/checksums/checksums.lock +0 -0
  8. package/android/.gradle/checksums/md5-checksums.bin +0 -0
  9. package/android/.gradle/checksums/sha1-checksums.bin +0 -0
  10. package/android/local.properties +1 -0
  11. package/android/src/main/java/com/reactnativehmssdk/HMSAudioshareActivity.kt +1 -0
  12. package/android/src/main/java/com/reactnativehmssdk/HMSDecoder.kt +40 -18
  13. package/android/src/main/java/com/reactnativehmssdk/HMSHLSPlayer.kt +113 -68
  14. package/android/src/main/java/com/reactnativehmssdk/HMSHLSPlayerManager.kt +17 -4
  15. package/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt +34 -18
  16. package/android/src/main/java/com/reactnativehmssdk/HMSManager.kt +363 -159
  17. package/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +367 -151
  18. package/android/src/main/java/com/reactnativehmssdk/HMSSDKViewManager.kt +26 -7
  19. package/android/src/main/java/com/reactnativehmssdk/HMSView.kt +32 -12
  20. package/android/src/main/java/com/reactnativehmssdk/HmsScreenshareActivity.kt +1 -0
  21. package/android/src/main/java/com/reactnativehmssdk/PipActionReceiver.kt +10 -6
  22. package/android/src/main/res/layout/player_view.xml +3 -2
  23. package/ios/HMSDecoder.swift +5 -7
  24. package/ios/HMSHLSPlayerManager.swift +18 -2
  25. package/ios/HMSManager.m +227 -70
  26. package/ios/HMSManager.swift +2 -2
  27. package/ios/HMSRNSDK.swift +67 -126
  28. package/ios/HMSView.swift +17 -3
  29. package/lib/commonjs/classes/HMSEncoder.js +15 -6
  30. package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
  31. package/lib/commonjs/classes/HMSHelper.js +1 -1
  32. package/lib/commonjs/classes/HMSHelper.js.map +1 -1
  33. package/lib/commonjs/classes/HMSLocalAudioTrack.js +2 -2
  34. package/lib/commonjs/classes/HMSLocalAudioTrack.js.map +1 -1
  35. package/lib/commonjs/classes/HMSLocalPeer.js.map +1 -1
  36. package/lib/commonjs/classes/HMSLocalVideoTrack.js +2 -2
  37. package/lib/commonjs/classes/HMSLocalVideoTrack.js.map +1 -1
  38. package/lib/commonjs/classes/HMSLogger.js +4 -4
  39. package/lib/commonjs/classes/HMSLogger.js.map +1 -1
  40. package/lib/commonjs/classes/HMSMessage.js.map +1 -1
  41. package/lib/commonjs/classes/HMSNativeEventEmitter.js +6 -6
  42. package/lib/commonjs/classes/HMSNativeEventEmitter.js.map +1 -1
  43. package/lib/commonjs/classes/HMSPeer.js +2 -15
  44. package/lib/commonjs/classes/HMSPeer.js.map +1 -1
  45. package/lib/commonjs/classes/HMSRemoteAudioTrack.js +2 -2
  46. package/lib/commonjs/classes/HMSRemoteAudioTrack.js.map +1 -1
  47. package/lib/commonjs/classes/HMSRemotePeer.js.map +1 -1
  48. package/lib/commonjs/classes/HMSRemoteVideoTrack.js +5 -5
  49. package/lib/commonjs/classes/HMSRemoteVideoTrack.js.map +1 -1
  50. package/lib/commonjs/classes/HMSSDK.js +126 -112
  51. package/lib/commonjs/classes/HMSSDK.js.map +1 -1
  52. package/lib/commonjs/classes/HMSSessionStore.js +3 -3
  53. package/lib/commonjs/classes/HMSSessionStore.js.map +1 -1
  54. package/lib/commonjs/classes/HmsView.js +0 -3
  55. package/lib/commonjs/classes/HmsView.js.map +1 -1
  56. package/lib/commonjs/components/HMSHLSPlayer/HMSHLSPlayer.js +10 -5
  57. package/lib/commonjs/components/HMSHLSPlayer/HMSHLSPlayer.js.map +1 -1
  58. package/lib/commonjs/hooks/useHMSPeerUpdates.js +2 -2
  59. package/lib/commonjs/hooks/useHMSPeerUpdates.js.map +1 -1
  60. package/lib/commonjs/index.js +0 -12
  61. package/lib/commonjs/index.js.map +1 -1
  62. package/lib/commonjs/types.js +1 -0
  63. package/lib/commonjs/types.js.map +1 -1
  64. package/lib/module/classes/HMSEncoder.js +15 -6
  65. package/lib/module/classes/HMSEncoder.js.map +1 -1
  66. package/lib/module/classes/HMSHelper.js +1 -1
  67. package/lib/module/classes/HMSHelper.js.map +1 -1
  68. package/lib/module/classes/HMSLocalAudioTrack.js +2 -2
  69. package/lib/module/classes/HMSLocalAudioTrack.js.map +1 -1
  70. package/lib/module/classes/HMSLocalPeer.js.map +1 -1
  71. package/lib/module/classes/HMSLocalVideoTrack.js +2 -2
  72. package/lib/module/classes/HMSLocalVideoTrack.js.map +1 -1
  73. package/lib/module/classes/HMSLogger.js +4 -4
  74. package/lib/module/classes/HMSLogger.js.map +1 -1
  75. package/lib/module/classes/HMSMessage.js.map +1 -1
  76. package/lib/module/classes/HMSNativeEventEmitter.js +6 -6
  77. package/lib/module/classes/HMSNativeEventEmitter.js.map +1 -1
  78. package/lib/module/classes/HMSPeer.js +2 -15
  79. package/lib/module/classes/HMSPeer.js.map +1 -1
  80. package/lib/module/classes/HMSRemoteAudioTrack.js +2 -2
  81. package/lib/module/classes/HMSRemoteAudioTrack.js.map +1 -1
  82. package/lib/module/classes/HMSRemotePeer.js.map +1 -1
  83. package/lib/module/classes/HMSRemoteVideoTrack.js +5 -5
  84. package/lib/module/classes/HMSRemoteVideoTrack.js.map +1 -1
  85. package/lib/module/classes/HMSSDK.js +126 -112
  86. package/lib/module/classes/HMSSDK.js.map +1 -1
  87. package/lib/module/classes/HMSSessionStore.js +3 -3
  88. package/lib/module/classes/HMSSessionStore.js.map +1 -1
  89. package/lib/module/classes/HmsView.js +0 -3
  90. package/lib/module/classes/HmsView.js.map +1 -1
  91. package/lib/module/components/HMSHLSPlayer/HMSHLSPlayer.js +11 -6
  92. package/lib/module/components/HMSHLSPlayer/HMSHLSPlayer.js.map +1 -1
  93. package/lib/module/hooks/useHMSPeerUpdates.js +2 -2
  94. package/lib/module/hooks/useHMSPeerUpdates.js.map +1 -1
  95. package/lib/module/index.js +0 -1
  96. package/lib/module/index.js.map +1 -1
  97. package/lib/module/types.js +1 -0
  98. package/lib/module/types.js.map +1 -1
  99. package/lib/typescript/classes/HMSEncoder.d.ts +1 -0
  100. package/lib/typescript/classes/HMSLocalPeer.d.ts +1 -0
  101. package/lib/typescript/classes/HMSMessage.d.ts +2 -3
  102. package/lib/typescript/classes/HMSPeer.d.ts +2 -3
  103. package/lib/typescript/classes/HMSRemotePeer.d.ts +1 -0
  104. package/lib/typescript/classes/HMSSDK.d.ts +29 -18
  105. package/lib/typescript/index.d.ts +1 -2
  106. package/lib/typescript/types.d.ts +3 -1
  107. package/package.json +2 -2
  108. package/sdk-versions.json +2 -2
  109. package/src/classes/HMSEncoder.ts +12 -0
  110. package/src/classes/HMSLocalPeer.ts +1 -0
  111. package/src/classes/HMSMessage.ts +2 -3
  112. package/src/classes/HMSPeer.ts +3 -26
  113. package/src/classes/HMSRemotePeer.ts +1 -0
  114. package/src/classes/HMSSDK.tsx +54 -33
  115. package/src/classes/HmsView.tsx +0 -4
  116. package/src/components/HMSHLSPlayer/HMSHLSPlayer.tsx +15 -13
  117. package/src/index.ts +4 -2
  118. package/src/types.ts +2 -0
  119. package/lib/commonjs/classes/HMSMessageType.js +0 -13
  120. package/lib/commonjs/classes/HMSMessageType.js.map +0 -1
  121. package/lib/module/classes/HMSMessageType.js +0 -6
  122. package/lib/module/classes/HMSMessageType.js.map +0 -1
  123. package/lib/typescript/classes/HMSMessageType.d.ts +0 -4
  124. package/src/classes/HMSMessageType.ts +0 -4
@@ -12,7 +12,6 @@ import com.facebook.react.uimanager.ThemedReactContext
12
12
  import com.facebook.react.uimanager.annotations.ReactProp
13
13
 
14
14
  class HMSSDKViewManager : SimpleViewManager<HMSView>() {
15
-
16
15
  private var reactContext: ThemedReactContext? = null
17
16
 
18
17
  override fun getName(): String {
@@ -41,14 +40,22 @@ class HMSSDKViewManager : SimpleViewManager<HMSView>() {
41
40
  }
42
41
 
43
42
  @RequiresApi(Build.VERSION_CODES.N)
44
- override fun receiveCommand(@NonNull root: HMSView, commandId: String?, args: ReadableArray?) {
43
+ override fun receiveCommand(
44
+ @NonNull root: HMSView,
45
+ commandId: String?,
46
+ args: ReadableArray?,
47
+ ) {
45
48
  when (commandId) {
46
49
  "capture" -> root.captureHmsView(args)
47
50
  }
48
51
  }
49
52
 
50
53
  @RequiresApi(Build.VERSION_CODES.N)
51
- override fun receiveCommand(@NonNull root: HMSView, commandId: Int, args: ReadableArray?) {
54
+ override fun receiveCommand(
55
+ @NonNull root: HMSView,
56
+ commandId: Int,
57
+ args: ReadableArray?,
58
+ ) {
52
59
  when (commandId) {
53
60
  1 -> root.captureHmsView(args)
54
61
  }
@@ -60,7 +67,10 @@ class HMSSDKViewManager : SimpleViewManager<HMSView>() {
60
67
  }
61
68
 
62
69
  @ReactProp(name = "data")
63
- fun setData(view: HMSView, data: ReadableMap) {
70
+ fun setData(
71
+ view: HMSView,
72
+ data: ReadableMap,
73
+ ) {
64
74
  val trackId = data.getString("trackId")
65
75
  val id = data.getString("id")
66
76
  val mirror = data.getBoolean("mirror")
@@ -72,17 +82,26 @@ class HMSSDKViewManager : SimpleViewManager<HMSView>() {
72
82
  }
73
83
 
74
84
  @ReactProp(name = "scaleType")
75
- fun setScaleType(view: HMSView, data: String?) {
85
+ fun setScaleType(
86
+ view: HMSView,
87
+ data: String?,
88
+ ) {
76
89
  view.updateScaleType(data)
77
90
  }
78
91
 
79
92
  @ReactProp(name = "setZOrderMediaOverlay")
80
- fun setZOrderMediaOverlay(view: HMSView, data: Boolean?) {
93
+ fun setZOrderMediaOverlay(
94
+ view: HMSView,
95
+ data: Boolean?,
96
+ ) {
81
97
  view.updateZOrderMediaOverlay(data)
82
98
  }
83
99
 
84
100
  @ReactProp(name = "autoSimulcast")
85
- fun setAutoSimulcast(view: HMSView, data: Boolean?) {
101
+ fun setAutoSimulcast(
102
+ view: HMSView,
103
+ data: Boolean?,
104
+ ) {
86
105
  data?.let { view.updateAutoSimulcast(it) }
87
106
  }
88
107
 
@@ -36,16 +36,21 @@ class HMSView(context: ReactContext) : FrameLayout(context) {
36
36
  hmsVideoView?.setMirror(false)
37
37
  hmsVideoView?.disableAutoSimulcastLayerSelect(disableAutoSimulcastLayerSelect)
38
38
 
39
- hmsVideoView?.addVideoViewStateChangeListener(object : VideoViewStateChangeListener {
40
- override fun onResolutionChange(newWidth: Int, newHeight: Int) {
41
- super.onResolutionChange(newWidth, newHeight)
42
- if (!jsCanApplyStyles) {
43
- val event: WritableMap = Arguments.createMap()
44
- context.getJSModule(RCTEventEmitter::class.java).receiveEvent(id, "topChange", event)
45
- jsCanApplyStyles = true
39
+ hmsVideoView?.addVideoViewStateChangeListener(
40
+ object : VideoViewStateChangeListener {
41
+ override fun onResolutionChange(
42
+ newWidth: Int,
43
+ newHeight: Int,
44
+ ) {
45
+ super.onResolutionChange(newWidth, newHeight)
46
+ if (!jsCanApplyStyles) {
47
+ val event: WritableMap = Arguments.createMap()
48
+ context.getJSModule(RCTEventEmitter::class.java).receiveEvent(id, "topChange", event)
49
+ jsCanApplyStyles = true
50
+ }
46
51
  }
47
- }
48
- })
52
+ },
53
+ )
49
54
  }
50
55
 
51
56
  @RequiresApi(Build.VERSION_CODES.N)
@@ -112,15 +117,30 @@ class HMSView(context: ReactContext) : FrameLayout(context) {
112
117
  if (id != null) {
113
118
  sdkId = id
114
119
  }
115
- val hms = hmsCollection[sdkId]?.hmsSDK
120
+ val rnSDK = hmsCollection[sdkId]
121
+ val hms = rnSDK?.hmsSDK
116
122
 
117
123
  if (trackId != null && hms != null) {
118
124
  if (mirror != null) {
119
125
  hmsVideoView?.setMirror(mirror)
120
126
  }
121
127
  updateScaleType(scaleType)
122
- // TODO: can be optimized here
123
- videoTrack = hms.getRoom()?.let { HmsUtilities.getVideoTrack(trackId, it) }
128
+
129
+ hms.getRoom()?.let { room ->
130
+ val regularVideoTrack: HMSVideoTrack? = HmsUtilities.getVideoTrack(trackId, room)
131
+
132
+ regularVideoTrack.let { fetchedTrack ->
133
+ if (fetchedTrack == null) {
134
+ rnSDK.previewForRoleVideoTrack?.let {
135
+ if (it.trackId == trackId) {
136
+ videoTrack = it
137
+ }
138
+ }
139
+ } else {
140
+ videoTrack = fetchedTrack
141
+ }
142
+ }
143
+ }
124
144
  }
125
145
  }
126
146
 
@@ -24,6 +24,7 @@ class HmsScreenshareActivity : ComponentActivity() {
24
24
  HMSManager.hmsCollection[id]?.screenshareCallback?.reject(error)
25
25
  HMSManager.hmsCollection[id]?.emitHMSError(error)
26
26
  }
27
+
27
28
  override fun onSuccess() {
28
29
  HMSManager.hmsCollection[id]?.screenshareCallback?.resolve(
29
30
  HMSManager.hmsCollection[id]?.emitHMSSuccess(),
@@ -22,14 +22,18 @@ class PipActionReceiver(
22
22
  var sdkIdForPIP: String? = null
23
23
  private var registered = false
24
24
  const val PIP_INTENT_ACTION = "PIP_INTENT_ACTION"
25
- val PIPActions = PIPActions(
26
- endMeet = PIPAction(title = "End", description = "End Meeting", requestCode = 346),
27
- localAudio = PIPAction(title = "Mic", description = "Toggle Mic", requestCode = 344),
28
- localVideo = PIPAction(title = "Camera", description = "Toggle Camera", requestCode = 345),
29
- )
25
+ val PIPActions =
26
+ PIPActions(
27
+ endMeet = PIPAction(title = "End", description = "End Meeting", requestCode = 346),
28
+ localAudio = PIPAction(title = "Mic", description = "Toggle Mic", requestCode = 344),
29
+ localVideo = PIPAction(title = "Camera", description = "Toggle Camera", requestCode = 345),
30
+ )
30
31
  }
31
32
 
32
- override fun onReceive(context: Context?, intent: Intent?) {
33
+ override fun onReceive(
34
+ context: Context?,
35
+ intent: Intent?,
36
+ ) {
33
37
  if (intent !== null) {
34
38
  if (intent.hasExtra(PIPActions.endMeet.title)) {
35
39
  return endMeeting()
@@ -2,8 +2,9 @@
2
2
 
3
3
  <androidx.media3.ui.PlayerView xmlns:android="http://schemas.android.com/apk/res/android"
4
4
  xmlns:tools="http://schemas.android.com/tools"
5
+ xmlns:app="http://schemas.android.com/apk/res-auto"
5
6
  android:id="@+id/hls_view"
6
7
  android:layout_width="match_parent"
7
- android:layout_height="wrap_content"
8
- android:layout_gravity="center"
8
+ app:resize_mode="zoom"
9
+ android:layout_height="match_parent"
9
10
  />
@@ -21,7 +21,7 @@ class HMSDecoder: NSObject {
21
21
  switch hmsRoomUpdateType {
22
22
  case .none:
23
23
  return data
24
- case .metaDataUpdated:
24
+ case .peerCountUpdated:
25
25
  data["peerCount"] = room.peerCount
26
26
  return data
27
27
  case .hlsRecordingStateUpdated:
@@ -106,11 +106,9 @@ class HMSDecoder: NSObject {
106
106
  guard let updateType = getPeerUpdateTypeOrdinals(peerUpdateType) else { return peerDict }
107
107
 
108
108
  peerDict[updateType] = peer.peerID
109
+ peerDict["name"] = peer.name
109
110
 
110
111
  switch peerUpdateType {
111
- case .nameUpdated:
112
- peerDict["name"] = peer.name
113
- return peerDict
114
112
  case .metadataUpdated:
115
113
  peerDict["metadata"] = peer.metadata ?? ""
116
114
  return peerDict
@@ -134,11 +132,9 @@ class HMSDecoder: NSObject {
134
132
  var peerDict = [String: Any]()
135
133
 
136
134
  peerDict["peerID"] = peer.peerID
135
+ peerDict["name"] = peer.name
137
136
 
138
137
  switch peerUpdateType {
139
- case .nameUpdated:
140
- peerDict["name"] = peer.name
141
- return peerDict
142
138
  case .metadataUpdated:
143
139
  peerDict["metadata"] = peer.metadata ?? ""
144
140
  return peerDict
@@ -251,6 +247,7 @@ class HMSDecoder: NSObject {
251
247
  var peerDict = [String: Any]()
252
248
 
253
249
  peerDict["peerID"] = peer.peerID
250
+ peerDict["name"] = peer.name
254
251
 
255
252
  if let audio = peer.audioTrack {
256
253
  if let localAudio = audio as? HMSLocalAudioTrack {
@@ -354,6 +351,7 @@ class HMSDecoder: NSObject {
354
351
  var peerDict = [String: Any]()
355
352
 
356
353
  peerDict["peerID"] = peer.peerID
354
+ peerDict["name"] = peer.name
357
355
 
358
356
  // joinedAt
359
357
 
@@ -200,6 +200,9 @@ class HMSHLSPlayer: UIView {
200
200
  self.addSubview(playerViewController.view)
201
201
 
202
202
  attachPlayerPlaybackListeners()
203
+
204
+ hmsHLSPlayerViewController?.showsPlaybackControls = false
205
+ hmsHLSPlayerViewController?.allowsPictureInPicturePlayback = false
203
206
  }
204
207
 
205
208
  required init?(coder: NSCoder) {
@@ -305,12 +308,16 @@ class HMSHLSPlayer: UIView {
305
308
  sendHLSPlaybackEventToJS(HMSHLSPlayerConstants.ON_PLAYBACK_FAILURE_EVENT, data)
306
309
  }
307
310
 
308
- fileprivate func onPlaybackStateChanged(state: HMSHLSPlaybackState) {
311
+ fileprivate func onPlaybackStateChanged(state: HMSHLSPlaybackState? = nil, videoSizeChanged: Bool = false, aspectRatio: Double? = nil) {
309
312
  guard onHmsHlsPlaybackEvent != nil else { return }
310
313
 
311
314
  var data = [String: Any]()
312
315
 
313
- data["state"] = state.description
316
+ data["state"] = videoSizeChanged ? "onVideoSizeChanged" : state?.description
317
+
318
+ if let aspectRatio = aspectRatio {
319
+ data["aspectRatio"] = aspectRatio
320
+ }
314
321
 
315
322
  sendHLSPlaybackEventToJS(HMSHLSPlayerConstants.ON_PLAYBACK_STATE_CHANGE_EVENT, data)
316
323
  }
@@ -334,6 +341,15 @@ class HLSPlaybackEventController: HMSHLSPlayerDelegate {
334
341
  func onPlaybackFailure(error: Error) {
335
342
  hmsHlsPlayerDelegate?.onPlaybackFailure(error: error)
336
343
  }
344
+
345
+ func onResolutionChanged(videoSize: CGSize) {
346
+ if videoSize.width >= videoSize.height {
347
+ hmsHlsPlayerDelegate?.hmsHLSPlayerViewController?.videoGravity = .resizeAspect
348
+ } else {
349
+ hmsHlsPlayerDelegate?.hmsHLSPlayerViewController?.videoGravity = .resizeAspectFill
350
+ }
351
+ hmsHlsPlayerDelegate?.onPlaybackStateChanged(videoSizeChanged: true, aspectRatio: videoSize.width/videoSize.height)
352
+ }
337
353
  }
338
354
 
339
355
  enum HMSHLSPlayerConstants {
package/ios/HMSManager.m CHANGED
@@ -1,86 +1,243 @@
1
- #import <React/RCTEventEmitter.h>
2
1
  #import <Foundation/Foundation.h>
2
+ #import <React/RCTEventEmitter.h>
3
+
4
+ @interface RCT_EXTERN_MODULE (HMSManager, RCTEventEmitter)
3
5
 
4
- @interface RCT_EXTERN_MODULE(HMSManager, RCTEventEmitter)
6
+ RCT_EXTERN_METHOD(join : (NSDictionary)credentials)
7
+ RCT_EXTERN_METHOD(preview : (NSDictionary)credentials)
8
+ RCT_EXTERN_METHOD(previewForRole
9
+ : (NSDictionary)data
10
+ : (RCTPromiseResolveBlock)resolve
11
+ : (RCTPromiseRejectBlock)reject)
12
+ RCT_EXTERN_METHOD(cancelPreview : (NSDictionary)data
13
+ : (RCTPromiseResolveBlock)resolve
14
+ : (RCTPromiseRejectBlock)reject)
15
+ RCT_EXTERN_METHOD(setLocalMute : (NSDictionary)isMute)
16
+ RCT_EXTERN_METHOD(setLocalVideoMute : (NSDictionary)isMute)
17
+ RCT_EXTERN_METHOD(sendBroadcastMessage
18
+ : (NSDictionary)data
19
+ : (RCTPromiseResolveBlock)resolve
20
+ : (RCTPromiseRejectBlock)reject)
21
+ RCT_EXTERN_METHOD(sendGroupMessage
22
+ : (NSDictionary)data
23
+ : (RCTPromiseResolveBlock)resolve
24
+ : (RCTPromiseRejectBlock)reject)
25
+ RCT_EXTERN_METHOD(sendDirectMessage
26
+ : (NSDictionary)data
27
+ : (RCTPromiseResolveBlock)resolve
28
+ : (RCTPromiseRejectBlock)reject)
29
+ RCT_EXTERN_METHOD(setPlaybackAllowed : (NSDictionary)data)
30
+ RCT_EXTERN_METHOD(removePeer
31
+ : (NSDictionary)data
32
+ : (RCTPromiseResolveBlock)resolve
33
+ : (RCTPromiseRejectBlock)reject)
34
+ RCT_EXTERN_METHOD(endRoom
35
+ : (NSDictionary)data
36
+ : (RCTPromiseResolveBlock)resolve
37
+ : (RCTPromiseRejectBlock)reject)
5
38
 
6
- RCT_EXTERN_METHOD(join: (NSDictionary) credentials)
7
- RCT_EXTERN_METHOD(preview: (NSDictionary) credentials)
8
- RCT_EXTERN_METHOD(previewForRole: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
9
- RCT_EXTERN_METHOD(cancelPreview: (NSDictionary) data)
10
- RCT_EXTERN_METHOD(setLocalMute: (NSDictionary) isMute)
11
- RCT_EXTERN_METHOD(setLocalVideoMute: (NSDictionary) isMute)
12
- RCT_EXTERN_METHOD(sendBroadcastMessage: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
13
- RCT_EXTERN_METHOD(sendGroupMessage: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
14
- RCT_EXTERN_METHOD(sendDirectMessage: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
15
- RCT_EXTERN_METHOD(setPlaybackAllowed: (NSDictionary) data)
16
- RCT_EXTERN_METHOD(removePeer: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
17
- RCT_EXTERN_METHOD(endRoom: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
18
- RCT_EXTERN_METHOD(changeRole: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
19
- RCT_EXTERN_METHOD(changeTrackState: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
20
- RCT_EXTERN_METHOD(changeTrackStateForRoles: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
21
- RCT_EXTERN_METHOD(acceptRoleChange: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
22
- RCT_EXTERN_METHOD(isMute: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
23
- RCT_EXTERN_METHOD(getRoom: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
24
- RCT_EXTERN_METHOD(switchCamera: (NSDictionary) data)
25
- RCT_EXTERN_METHOD(setVolume: (NSDictionary) data)
26
- RCT_EXTERN_METHOD(build : (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
27
- RCT_EXTERN_METHOD(leave: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
28
- RCT_EXTERN_METHOD(setPlaybackForAllAudio: (NSDictionary) mute)
29
- RCT_EXTERN_METHOD(remoteMuteAllAudio: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
30
- RCT_EXTERN_METHOD(isPlaybackAllowed: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
31
- RCT_EXTERN_METHOD(changeMetadata: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
32
- RCT_EXTERN_METHOD(startRTMPOrRecording: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
33
- RCT_EXTERN_METHOD(stopRtmpAndRecording: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
34
- RCT_EXTERN_METHOD(startHLSStreaming: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
35
- RCT_EXTERN_METHOD(stopHLSStreaming: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
36
- RCT_EXTERN_METHOD(changeName: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
37
- RCT_EXTERN_METHOD(destroy: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
38
- RCT_EXTERN_METHOD(startScreenshare: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
39
- RCT_EXTERN_METHOD(stopScreenshare: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
40
- RCT_EXTERN_METHOD(isScreenShared: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
41
- RCT_EXTERN_METHOD(switchAudioOutputUsingIOSUI: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
42
- RCT_EXTERN_METHOD(playAudioShare: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
43
- RCT_EXTERN_METHOD(setAudioShareVolume: (NSDictionary) data)
44
- RCT_EXTERN_METHOD(stopAudioShare: (NSDictionary) data)
45
- RCT_EXTERN_METHOD(resumeAudioShare: (NSDictionary) data)
46
- RCT_EXTERN_METHOD(pauseAudioShare: (NSDictionary) data)
47
- RCT_EXTERN_METHOD(audioShareIsPlaying: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
48
- RCT_EXTERN_METHOD(audioShareCurrentTime: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
49
- RCT_EXTERN_METHOD(audioShareDuration: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
50
- RCT_EXTERN_METHOD(getLocalPeer: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
51
- RCT_EXTERN_METHOD(getRemotePeers: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
52
- RCT_EXTERN_METHOD(getRoles: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
53
- RCT_EXTERN_METHOD(enableNetworkQualityUpdates: (NSDictionary) data)
54
- RCT_EXTERN_METHOD(disableNetworkQualityUpdates: (NSDictionary) data)
55
- RCT_EXTERN_METHOD(changeRoleOfPeer: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
56
- RCT_EXTERN_METHOD(changeRoleOfPeersWithRoles: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
39
+ RCT_EXTERN_METHOD(changeTrackState
40
+ : (NSDictionary)data
41
+ : (RCTPromiseResolveBlock)resolve
42
+ : (RCTPromiseRejectBlock)reject)
43
+ RCT_EXTERN_METHOD(changeTrackStateForRoles
44
+ : (NSDictionary)data
45
+ : (RCTPromiseResolveBlock)resolve
46
+ : (RCTPromiseRejectBlock)reject)
57
47
 
58
- RCT_EXTERN__BLOCKING_SYNCHRONOUS_METHOD(getPeerProperty: (NSDictionary) data)
59
- RCT_EXTERN__BLOCKING_SYNCHRONOUS_METHOD(getRoomProperty: (NSDictionary) data)
48
+ RCT_EXTERN_METHOD(isMute
49
+ : (NSDictionary)data
50
+ : (RCTPromiseResolveBlock)resolve
51
+ : (RCTPromiseRejectBlock)reject)
52
+ RCT_EXTERN_METHOD(getRoom
53
+ : (NSDictionary)data
54
+ : (RCTPromiseResolveBlock)resolve
55
+ : (RCTPromiseRejectBlock)reject)
56
+ RCT_EXTERN_METHOD(switchCamera : (NSDictionary)data)
57
+ RCT_EXTERN_METHOD(setVolume : (NSDictionary)data)
58
+ RCT_EXTERN_METHOD(build
59
+ : (NSDictionary)data
60
+ : (RCTPromiseResolveBlock)resolve
61
+ : (RCTPromiseRejectBlock)reject)
62
+ RCT_EXTERN_METHOD(leave
63
+ : (NSDictionary)data
64
+ : (RCTPromiseResolveBlock)resolve
65
+ : (RCTPromiseRejectBlock)reject)
66
+ RCT_EXTERN_METHOD(setPlaybackForAllAudio : (NSDictionary)mute)
67
+ RCT_EXTERN_METHOD(remoteMuteAllAudio
68
+ : (NSDictionary)data
69
+ : (RCTPromiseResolveBlock)resolve
70
+ : (RCTPromiseRejectBlock)reject)
71
+ RCT_EXTERN_METHOD(isPlaybackAllowed
72
+ : (NSDictionary)data
73
+ : (RCTPromiseResolveBlock)resolve
74
+ : (RCTPromiseRejectBlock)reject)
75
+ RCT_EXTERN_METHOD(changeMetadata
76
+ : (NSDictionary)data
77
+ : (RCTPromiseResolveBlock)resolve
78
+ : (RCTPromiseRejectBlock)reject)
79
+ RCT_EXTERN_METHOD(startRTMPOrRecording
80
+ : (NSDictionary)data
81
+ : (RCTPromiseResolveBlock)resolve
82
+ : (RCTPromiseRejectBlock)reject)
83
+ RCT_EXTERN_METHOD(stopRtmpAndRecording
84
+ : (NSDictionary)data
85
+ : (RCTPromiseResolveBlock)resolve
86
+ : (RCTPromiseRejectBlock)reject)
87
+ RCT_EXTERN_METHOD(startHLSStreaming
88
+ : (NSDictionary)data
89
+ : (RCTPromiseResolveBlock)resolve
90
+ : (RCTPromiseRejectBlock)reject)
91
+ RCT_EXTERN_METHOD(stopHLSStreaming
92
+ : (NSDictionary)data
93
+ : (RCTPromiseResolveBlock)resolve
94
+ : (RCTPromiseRejectBlock)reject)
95
+ RCT_EXTERN_METHOD(changeName
96
+ : (NSDictionary)data
97
+ : (RCTPromiseResolveBlock)resolve
98
+ : (RCTPromiseRejectBlock)reject)
99
+ RCT_EXTERN_METHOD(destroy
100
+ : (NSDictionary)data
101
+ : (RCTPromiseResolveBlock)resolve
102
+ : (RCTPromiseRejectBlock)reject)
103
+ RCT_EXTERN_METHOD(startScreenshare
104
+ : (NSDictionary)data
105
+ : (RCTPromiseResolveBlock)resolve
106
+ : (RCTPromiseRejectBlock)reject)
107
+ RCT_EXTERN_METHOD(stopScreenshare
108
+ : (NSDictionary)data
109
+ : (RCTPromiseResolveBlock)resolve
110
+ : (RCTPromiseRejectBlock)reject)
111
+ RCT_EXTERN_METHOD(isScreenShared
112
+ : (NSDictionary)data
113
+ : (RCTPromiseResolveBlock)resolve
114
+ : (RCTPromiseRejectBlock)reject)
115
+ RCT_EXTERN_METHOD(switchAudioOutputUsingIOSUI
116
+ : (NSDictionary)data
117
+ : (RCTPromiseResolveBlock)resolve
118
+ : (RCTPromiseRejectBlock)reject)
119
+ RCT_EXTERN_METHOD(playAudioShare
120
+ : (NSDictionary)data
121
+ : (RCTPromiseResolveBlock)resolve
122
+ : (RCTPromiseRejectBlock)reject)
123
+ RCT_EXTERN_METHOD(setAudioShareVolume : (NSDictionary)data)
124
+ RCT_EXTERN_METHOD(stopAudioShare : (NSDictionary)data)
125
+ RCT_EXTERN_METHOD(resumeAudioShare : (NSDictionary)data)
126
+ RCT_EXTERN_METHOD(pauseAudioShare : (NSDictionary)data)
127
+ RCT_EXTERN_METHOD(audioShareIsPlaying
128
+ : (NSDictionary)data
129
+ : (RCTPromiseResolveBlock)resolve
130
+ : (RCTPromiseRejectBlock)reject)
131
+ RCT_EXTERN_METHOD(audioShareCurrentTime
132
+ : (NSDictionary)data
133
+ : (RCTPromiseResolveBlock)resolve
134
+ : (RCTPromiseRejectBlock)reject)
135
+ RCT_EXTERN_METHOD(audioShareDuration
136
+ : (NSDictionary)data
137
+ : (RCTPromiseResolveBlock)resolve
138
+ : (RCTPromiseRejectBlock)reject)
139
+ RCT_EXTERN_METHOD(getLocalPeer
140
+ : (NSDictionary)data
141
+ : (RCTPromiseResolveBlock)resolve
142
+ : (RCTPromiseRejectBlock)reject)
143
+ RCT_EXTERN_METHOD(getRemotePeers
144
+ : (NSDictionary)data
145
+ : (RCTPromiseResolveBlock)resolve
146
+ : (RCTPromiseRejectBlock)reject)
147
+ RCT_EXTERN_METHOD(getRoles
148
+ : (NSDictionary)data
149
+ : (RCTPromiseResolveBlock)resolve
150
+ : (RCTPromiseRejectBlock)reject)
151
+ RCT_EXTERN_METHOD(enableNetworkQualityUpdates : (NSDictionary)data)
152
+ RCT_EXTERN_METHOD(disableNetworkQualityUpdates : (NSDictionary)data)
153
+ RCT_EXTERN_METHOD(changeRoleOfPeer
154
+ : (NSDictionary)data
155
+ : (RCTPromiseResolveBlock)resolve
156
+ : (RCTPromiseRejectBlock)reject)
157
+ RCT_EXTERN_METHOD(changeRoleOfPeersWithRoles
158
+ : (NSDictionary)data
159
+ : (RCTPromiseResolveBlock)resolve
160
+ : (RCTPromiseRejectBlock)reject)
60
161
 
61
- RCT_EXTERN_METHOD(enableEvent: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
62
- RCT_EXTERN_METHOD(disableEvent: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
63
- RCT_EXTERN_METHOD(restrictData: (NSDictionary) data)
64
- RCT_EXTERN_METHOD(getAuthTokenByRoomCode: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
65
- RCT_EXTERN_METHOD(getRemoteVideoTrackFromTrackId: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
66
- RCT_EXTERN_METHOD(getRemoteAudioTrackFromTrackId: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
67
- RCT_EXTERN_METHOD(getVideoTrackLayerDefinition: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
68
- RCT_EXTERN_METHOD(getVideoTrackLayer: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
69
- RCT_EXTERN_METHOD(setVideoTrackLayer: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
162
+ RCT_EXTERN__BLOCKING_SYNCHRONOUS_METHOD(getPeerProperty : (NSDictionary)data)
163
+ RCT_EXTERN__BLOCKING_SYNCHRONOUS_METHOD(getRoomProperty : (NSDictionary)data)
164
+
165
+ RCT_EXTERN_METHOD(enableEvent
166
+ : (NSDictionary)data
167
+ : (RCTPromiseResolveBlock)resolve
168
+ : (RCTPromiseRejectBlock)reject)
169
+ RCT_EXTERN_METHOD(disableEvent
170
+ : (NSDictionary)data
171
+ : (RCTPromiseResolveBlock)resolve
172
+ : (RCTPromiseRejectBlock)reject)
173
+ RCT_EXTERN_METHOD(restrictData : (NSDictionary)data)
174
+ RCT_EXTERN_METHOD(getAuthTokenByRoomCode
175
+ : (NSDictionary)data
176
+ : (RCTPromiseResolveBlock)resolve
177
+ : (RCTPromiseRejectBlock)reject)
178
+ RCT_EXTERN_METHOD(getRemoteVideoTrackFromTrackId
179
+ : (NSDictionary)data
180
+ : (RCTPromiseResolveBlock)resolve
181
+ : (RCTPromiseRejectBlock)reject)
182
+ RCT_EXTERN_METHOD(getRemoteAudioTrackFromTrackId
183
+ : (NSDictionary)data
184
+ : (RCTPromiseResolveBlock)resolve
185
+ : (RCTPromiseRejectBlock)reject)
186
+ RCT_EXTERN_METHOD(getVideoTrackLayerDefinition
187
+ : (NSDictionary)data
188
+ : (RCTPromiseResolveBlock)resolve
189
+ : (RCTPromiseRejectBlock)reject)
190
+ RCT_EXTERN_METHOD(getVideoTrackLayer
191
+ : (NSDictionary)data
192
+ : (RCTPromiseResolveBlock)resolve
193
+ : (RCTPromiseRejectBlock)reject)
194
+ RCT_EXTERN_METHOD(setVideoTrackLayer
195
+ : (NSDictionary)data
196
+ : (RCTPromiseResolveBlock)resolve
197
+ : (RCTPromiseRejectBlock)reject)
70
198
 
71
199
  #pragma mark - Advanced Camera Controls
72
200
 
73
- RCT_EXTERN_METHOD(captureImageAtMaxSupportedResolution: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
201
+ RCT_EXTERN_METHOD(captureImageAtMaxSupportedResolution
202
+ : (NSDictionary)data
203
+ : (RCTPromiseResolveBlock)resolve
204
+ : (RCTPromiseRejectBlock)reject)
74
205
 
75
206
  #pragma mark - Session Store
76
207
 
77
- RCT_EXTERN_METHOD(getSessionMetadataForKey: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
78
- RCT_EXTERN_METHOD(setSessionMetadataForKey: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
79
- RCT_EXTERN_METHOD(addKeyChangeListener: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
80
- RCT_EXTERN_METHOD(removeKeyChangeListener: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
208
+ RCT_EXTERN_METHOD(getSessionMetadataForKey
209
+ : (NSDictionary)data
210
+ : (RCTPromiseResolveBlock)resolve
211
+ : (RCTPromiseRejectBlock)reject)
212
+ RCT_EXTERN_METHOD(setSessionMetadataForKey
213
+ : (NSDictionary)data
214
+ : (RCTPromiseResolveBlock)resolve
215
+ : (RCTPromiseRejectBlock)reject)
216
+ RCT_EXTERN_METHOD(addKeyChangeListener
217
+ : (NSDictionary)data
218
+ : (RCTPromiseResolveBlock)resolve
219
+ : (RCTPromiseRejectBlock)reject)
220
+ RCT_EXTERN_METHOD(removeKeyChangeListener
221
+ : (NSDictionary)data
222
+ : (RCTPromiseResolveBlock)resolve
223
+ : (RCTPromiseRejectBlock)reject)
81
224
 
82
225
  #pragma mark - Prebuilt
83
226
 
84
- RCT_EXTERN_METHOD(getRoomLayout: (NSDictionary) data :(RCTPromiseResolveBlock) resolve :(RCTPromiseRejectBlock) reject)
227
+ RCT_EXTERN_METHOD(getRoomLayout
228
+ : (NSDictionary)data
229
+ : (RCTPromiseResolveBlock)resolve
230
+ : (RCTPromiseRejectBlock)reject)
231
+
232
+ #pragma mark - Role Change
233
+
234
+ RCT_EXTERN_METHOD(changeRole
235
+ : (NSDictionary)data
236
+ : (RCTPromiseResolveBlock)resolve
237
+ : (RCTPromiseRejectBlock)reject)
238
+ RCT_EXTERN_METHOD(acceptRoleChange
239
+ : (NSDictionary)data
240
+ : (RCTPromiseResolveBlock)resolve
241
+ : (RCTPromiseRejectBlock)reject)
85
242
 
86
243
  @end
@@ -99,10 +99,10 @@ class HMSManager: RCTEventEmitter {
99
99
  }
100
100
 
101
101
  @objc
102
- func cancelPreview(_ data: NSDictionary) {
102
+ func cancelPreview(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
103
103
  let hms = HMSHelper.getHms(data, hmsCollection)
104
104
 
105
- hms?.cancelPreview()
105
+ hms?.cancelPreview(resolve, reject)
106
106
  }
107
107
 
108
108
  // MARK: - Join Room