@100mslive/react-native-hms 0.7.2 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/README.md +37 -39
  2. package/android/.gradle/checksums/checksums.lock +0 -0
  3. package/android/.gradle/checksums/md5-checksums.bin +0 -0
  4. package/android/.gradle/checksums/sha1-checksums.bin +0 -0
  5. package/android/.project +34 -0
  6. package/android/build.gradle +1 -1
  7. package/android/src/main/java/com/reactnativehmssdk/HmsDecoder.kt +129 -29
  8. package/android/src/main/java/com/reactnativehmssdk/HmsHelper.kt +124 -2
  9. package/android/src/main/java/com/reactnativehmssdk/HmsModule.kt +138 -495
  10. package/android/src/main/java/com/reactnativehmssdk/HmsSDK.kt +899 -0
  11. package/android/src/main/java/com/reactnativehmssdk/HmsView.kt +26 -8
  12. package/android/src/main/java/com/reactnativehmssdk/HmssdkViewManager.kt +8 -6
  13. package/ios/HmsDecoder.swift +142 -20
  14. package/ios/HmsHelper.swift +110 -0
  15. package/ios/HmsManager.m +13 -7
  16. package/ios/HmsManager.swift +115 -375
  17. package/ios/HmsSDK.swift +716 -0
  18. package/ios/HmsView.swift +16 -8
  19. package/lib/commonjs/classes/HMSAudioTrack.js.map +1 -1
  20. package/lib/commonjs/classes/HMSAudioTrackSettings.js +3 -0
  21. package/lib/commonjs/classes/HMSAudioTrackSettings.js.map +1 -1
  22. package/lib/commonjs/classes/HMSBrowserRecordingState.js +23 -0
  23. package/lib/commonjs/classes/HMSBrowserRecordingState.js.map +1 -0
  24. package/lib/commonjs/classes/HMSCameraFacing.js +14 -0
  25. package/lib/commonjs/classes/HMSCameraFacing.js.map +1 -0
  26. package/lib/commonjs/classes/HMSConfig.js +3 -7
  27. package/lib/commonjs/classes/HMSConfig.js.map +1 -1
  28. package/lib/commonjs/classes/HMSEncoder.js +60 -32
  29. package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
  30. package/lib/commonjs/classes/HMSException.js +30 -0
  31. package/lib/commonjs/classes/HMSException.js.map +1 -0
  32. package/lib/commonjs/classes/HMSHelper.js +2 -2
  33. package/lib/commonjs/classes/HMSHelper.js.map +1 -1
  34. package/lib/commonjs/classes/HMSLocalAudioTrack.js +19 -1
  35. package/lib/commonjs/classes/HMSLocalAudioTrack.js.map +1 -1
  36. package/lib/commonjs/classes/HMSLocalPeer.js.map +1 -1
  37. package/lib/commonjs/classes/HMSLocalVideoTrack.js +10 -2
  38. package/lib/commonjs/classes/HMSLocalVideoTrack.js.map +1 -1
  39. package/lib/commonjs/classes/HMSLogger.js.map +1 -1
  40. package/lib/commonjs/classes/HMSPeer.js +3 -0
  41. package/lib/commonjs/classes/HMSPeer.js.map +1 -1
  42. package/lib/commonjs/classes/HMSPeerUpdate.js +1 -0
  43. package/lib/commonjs/classes/HMSPeerUpdate.js.map +1 -1
  44. package/lib/commonjs/classes/HMSPermissions.js +7 -7
  45. package/lib/commonjs/classes/HMSPermissions.js.map +1 -1
  46. package/lib/commonjs/classes/HMSRTMPConfig.js +26 -0
  47. package/lib/commonjs/classes/HMSRTMPConfig.js.map +1 -0
  48. package/lib/commonjs/classes/HMSRemoteAudioTrack.js +2 -0
  49. package/lib/commonjs/classes/HMSRemoteAudioTrack.js.map +1 -1
  50. package/lib/commonjs/classes/HMSRemotePeer.js.map +1 -1
  51. package/lib/commonjs/classes/HMSRemoteVideoTrack.js +2 -0
  52. package/lib/commonjs/classes/HMSRemoteVideoTrack.js.map +1 -1
  53. package/lib/commonjs/classes/HMSRoom.js +9 -0
  54. package/lib/commonjs/classes/HMSRoom.js.map +1 -1
  55. package/lib/commonjs/classes/HMSRtmpStreamingState.js +23 -0
  56. package/lib/commonjs/classes/HMSRtmpStreamingState.js.map +1 -0
  57. package/lib/commonjs/classes/HMSSDK.js +336 -109
  58. package/lib/commonjs/classes/HMSSDK.js.map +1 -1
  59. package/lib/commonjs/classes/HMSServerRecordingState.js +23 -0
  60. package/lib/commonjs/classes/HMSServerRecordingState.js.map +1 -0
  61. package/lib/commonjs/classes/HMSTrack.js +8 -18
  62. package/lib/commonjs/classes/HMSTrack.js.map +1 -1
  63. package/lib/commonjs/classes/HMSTrackType.js +14 -0
  64. package/lib/commonjs/classes/HMSTrackType.js.map +1 -0
  65. package/lib/commonjs/classes/HMSVideoResolution.js +23 -0
  66. package/lib/commonjs/classes/HMSVideoResolution.js.map +1 -0
  67. package/lib/commonjs/classes/HMSVideoSettings.js.map +1 -1
  68. package/lib/commonjs/classes/HMSVideoTrack.js +2 -0
  69. package/lib/commonjs/classes/HMSVideoTrack.js.map +1 -1
  70. package/lib/commonjs/classes/HMSVideoTrackSettings.js +0 -3
  71. package/lib/commonjs/classes/HMSVideoTrackSettings.js.map +1 -1
  72. package/lib/commonjs/classes/HmsView.js +10 -7
  73. package/lib/commonjs/classes/HmsView.js.map +1 -1
  74. package/lib/commonjs/index.js +98 -0
  75. package/lib/commonjs/index.js.map +1 -1
  76. package/lib/module/classes/HMSAudioTrack.js.map +1 -1
  77. package/lib/module/classes/HMSAudioTrackSettings.js +3 -0
  78. package/lib/module/classes/HMSAudioTrackSettings.js.map +1 -1
  79. package/lib/module/classes/HMSBrowserRecordingState.js +14 -0
  80. package/lib/module/classes/HMSBrowserRecordingState.js.map +1 -0
  81. package/lib/module/classes/HMSCameraFacing.js +7 -0
  82. package/lib/module/classes/HMSCameraFacing.js.map +1 -0
  83. package/lib/module/classes/HMSConfig.js +3 -7
  84. package/lib/module/classes/HMSConfig.js.map +1 -1
  85. package/lib/module/classes/HMSEncoder.js +59 -32
  86. package/lib/module/classes/HMSEncoder.js.map +1 -1
  87. package/lib/module/classes/HMSException.js +21 -0
  88. package/lib/module/classes/HMSException.js.map +1 -0
  89. package/lib/module/classes/HMSHelper.js +2 -2
  90. package/lib/module/classes/HMSHelper.js.map +1 -1
  91. package/lib/module/classes/HMSLocalAudioTrack.js +20 -2
  92. package/lib/module/classes/HMSLocalAudioTrack.js.map +1 -1
  93. package/lib/module/classes/HMSLocalPeer.js.map +1 -1
  94. package/lib/module/classes/HMSLocalVideoTrack.js +10 -2
  95. package/lib/module/classes/HMSLocalVideoTrack.js.map +1 -1
  96. package/lib/module/classes/HMSLogger.js.map +1 -1
  97. package/lib/module/classes/HMSPeer.js +3 -0
  98. package/lib/module/classes/HMSPeer.js.map +1 -1
  99. package/lib/module/classes/HMSPeerUpdate.js +1 -0
  100. package/lib/module/classes/HMSPeerUpdate.js.map +1 -1
  101. package/lib/module/classes/HMSPermissions.js +7 -7
  102. package/lib/module/classes/HMSPermissions.js.map +1 -1
  103. package/lib/module/classes/HMSRTMPConfig.js +17 -0
  104. package/lib/module/classes/HMSRTMPConfig.js.map +1 -0
  105. package/lib/module/classes/HMSRemoteAudioTrack.js +2 -0
  106. package/lib/module/classes/HMSRemoteAudioTrack.js.map +1 -1
  107. package/lib/module/classes/HMSRemotePeer.js.map +1 -1
  108. package/lib/module/classes/HMSRemoteVideoTrack.js +2 -0
  109. package/lib/module/classes/HMSRemoteVideoTrack.js.map +1 -1
  110. package/lib/module/classes/HMSRoom.js +9 -0
  111. package/lib/module/classes/HMSRoom.js.map +1 -1
  112. package/lib/module/classes/HMSRtmpStreamingState.js +14 -0
  113. package/lib/module/classes/HMSRtmpStreamingState.js.map +1 -0
  114. package/lib/module/classes/HMSSDK.js +328 -109
  115. package/lib/module/classes/HMSSDK.js.map +1 -1
  116. package/lib/module/classes/HMSServerRecordingState.js +14 -0
  117. package/lib/module/classes/HMSServerRecordingState.js.map +1 -0
  118. package/lib/module/classes/HMSTrack.js +8 -16
  119. package/lib/module/classes/HMSTrack.js.map +1 -1
  120. package/lib/module/classes/HMSTrackType.js +7 -0
  121. package/lib/module/classes/HMSTrackType.js.map +1 -0
  122. package/lib/module/classes/HMSVideoResolution.js +14 -0
  123. package/lib/module/classes/HMSVideoResolution.js.map +1 -0
  124. package/lib/module/classes/HMSVideoSettings.js.map +1 -1
  125. package/lib/module/classes/HMSVideoTrack.js +2 -0
  126. package/lib/module/classes/HMSVideoTrack.js.map +1 -1
  127. package/lib/module/classes/HMSVideoTrackSettings.js +0 -3
  128. package/lib/module/classes/HMSVideoTrackSettings.js.map +1 -1
  129. package/lib/module/classes/HmsView.js +10 -7
  130. package/lib/module/classes/HmsView.js.map +1 -1
  131. package/lib/module/index.js +7 -0
  132. package/lib/module/index.js.map +1 -1
  133. package/lib/typescript/classes/HMSAudioTrack.d.ts +3 -0
  134. package/lib/typescript/classes/HMSAudioTrackSettings.d.ts +3 -0
  135. package/lib/typescript/classes/HMSBrowserRecordingState.d.ts +9 -0
  136. package/lib/typescript/classes/HMSCameraFacing.d.ts +4 -0
  137. package/lib/typescript/classes/HMSConfig.d.ts +2 -4
  138. package/lib/typescript/classes/HMSEncoder.d.ts +14 -12
  139. package/lib/typescript/classes/HMSException.d.ts +22 -0
  140. package/lib/typescript/classes/HMSLocalAudioTrack.d.ts +5 -0
  141. package/lib/typescript/classes/HMSLocalPeer.d.ts +3 -0
  142. package/lib/typescript/classes/HMSLocalVideoTrack.d.ts +4 -0
  143. package/lib/typescript/classes/HMSLogger.d.ts +4 -4
  144. package/lib/typescript/classes/HMSPeer.d.ts +2 -0
  145. package/lib/typescript/classes/HMSPeerUpdate.d.ts +1 -0
  146. package/lib/typescript/classes/HMSPermissions.d.ts +6 -6
  147. package/lib/typescript/classes/HMSRTMPConfig.d.ts +10 -0
  148. package/lib/typescript/classes/HMSRemoteAudioTrack.d.ts +4 -0
  149. package/lib/typescript/classes/HMSRemotePeer.d.ts +3 -0
  150. package/lib/typescript/classes/HMSRemoteVideoTrack.d.ts +4 -0
  151. package/lib/typescript/classes/HMSRoom.d.ts +9 -0
  152. package/lib/typescript/classes/HMSRtmpStreamingState.d.ts +9 -0
  153. package/lib/typescript/classes/HMSSDK.d.ts +36 -6
  154. package/lib/typescript/classes/HMSServerRecordingState.d.ts +9 -0
  155. package/lib/typescript/classes/HMSTrack.d.ts +6 -1
  156. package/lib/typescript/classes/HMSTrackType.d.ts +4 -0
  157. package/lib/typescript/classes/HMSVideoResolution.d.ts +8 -0
  158. package/lib/typescript/classes/HMSVideoSettings.d.ts +3 -3
  159. package/lib/typescript/classes/HMSVideoTrack.d.ts +5 -1
  160. package/lib/typescript/classes/HMSVideoTrackSettings.d.ts +13 -10
  161. package/lib/typescript/classes/HmsView.d.ts +2 -1
  162. package/lib/typescript/index.d.ts +7 -0
  163. package/package.json +1 -1
  164. package/src/classes/HMSAudioTrack.ts +3 -0
  165. package/src/classes/HMSAudioTrackSettings.ts +9 -1
  166. package/src/classes/HMSBrowserRecordingState.ts +11 -0
  167. package/src/classes/HMSCameraFacing.ts +4 -0
  168. package/src/classes/HMSConfig.ts +3 -7
  169. package/src/classes/HMSEncoder.ts +62 -28
  170. package/src/classes/HMSException.ts +33 -0
  171. package/src/classes/HMSHelper.ts +2 -2
  172. package/src/classes/HMSLocalAudioTrack.ts +19 -2
  173. package/src/classes/HMSLocalPeer.ts +3 -0
  174. package/src/classes/HMSLocalVideoTrack.ts +7 -2
  175. package/src/classes/HMSLogger.ts +5 -5
  176. package/src/classes/HMSPeer.ts +3 -0
  177. package/src/classes/HMSPeerUpdate.ts +1 -0
  178. package/src/classes/HMSPermissions.ts +9 -9
  179. package/src/classes/HMSRTMPConfig.ts +15 -0
  180. package/src/classes/HMSRemoteAudioTrack.ts +13 -2
  181. package/src/classes/HMSRemotePeer.ts +3 -0
  182. package/src/classes/HMSRemoteVideoTrack.ts +13 -2
  183. package/src/classes/HMSRoom.ts +12 -0
  184. package/src/classes/HMSRtmpStreamingState.ts +11 -0
  185. package/src/classes/{HMSSDK.ts → HMSSDK.tsx} +284 -42
  186. package/src/classes/HMSServerRecordingState.ts +11 -0
  187. package/src/classes/HMSTrack.ts +9 -15
  188. package/src/classes/HMSTrackType.ts +4 -0
  189. package/src/classes/HMSVideoResolution.ts +9 -0
  190. package/src/classes/HMSVideoSettings.ts +3 -3
  191. package/src/classes/HMSVideoTrack.ts +6 -1
  192. package/src/classes/HMSVideoTrackSettings.ts +13 -10
  193. package/src/classes/HmsView.tsx +4 -0
  194. package/src/index.ts +7 -0
  195. package/ios/Hmssdk.m +0 -8
  196. package/ios/Hmssdk.swift +0 -8
@@ -2,12 +2,9 @@
2
2
  import HMSSDK
3
3
 
4
4
  @objc(HmsManager)
5
- class HmsManager: RCTEventEmitter, HMSUpdateListener, HMSPreviewListener {
5
+ class HmsManager: RCTEventEmitter{
6
6
 
7
- var hms: HMSSDK?
8
- var config: HMSConfig?
9
- var recentRoleChangeRequest: HMSRoleChangeRequest?
10
- var recentChangeTrackStateRequest: HMSChangeTrackStateRequest?
7
+ var hmsCollection: [String: HmsSDK] = [:]
11
8
 
12
9
  let ON_PREVIEW = "ON_PREVIEW"
13
10
  let ON_JOIN = "ON_JOIN"
@@ -29,9 +26,9 @@ class HmsManager: RCTEventEmitter, HMSUpdateListener, HMSPreviewListener {
29
26
  super.init()
30
27
  }
31
28
 
32
- override class func requiresMainQueueSetup() -> Bool {
33
- true
34
- }
29
+ // override class func requiresMainQueueSetup() -> Bool {
30
+ // true
31
+ // }
35
32
 
36
33
  override func supportedEvents() -> [String]! {
37
34
  return [ON_JOIN, ON_PREVIEW, ON_ROOM_UPDATE, ON_PEER_UPDATE, ON_TRACK_UPDATE, ON_ERROR, ON_MESSAGE, ON_SPEAKER, RECONNECTING, RECONNECTED, ON_ROLE_CHANGE_REQUEST, ON_CHANGE_TRACK_STATE_REQUEST, ON_REMOVED_FROM_ROOM]
@@ -41,466 +38,209 @@ class HmsManager: RCTEventEmitter, HMSUpdateListener, HMSPreviewListener {
41
38
  // MARK: - HMS SDK Actions
42
39
 
43
40
  @objc
44
- func build() {
41
+ func build(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
45
42
  DispatchQueue.main.async { [weak self] in
46
- self?.hms = HMSSDK.build()
43
+ let hasItem = self?.hmsCollection.index(forKey: "12345")
44
+
45
+ if let _ = hasItem {
46
+ let id = UUID().uuidString
47
+ let hms = HmsSDK(data: data, delegate: self, uid: id)
48
+ self?.hmsCollection[id] = hms
49
+
50
+ resolve?(id)
51
+ } else {
52
+ let id = "12345"
53
+ let hms = HmsSDK(data: data, delegate: self, uid: id)
54
+ self?.hmsCollection[id] = hms
55
+
56
+ resolve?(id)
57
+ }
47
58
  }
48
59
  }
49
60
 
50
61
  @objc
51
62
  func preview(_ credentials: NSDictionary) {
52
-
53
- guard let authToken = credentials.value(forKey: "authToken") as? String,
54
- let user = credentials.value(forKey: "userID") as? String,
55
- let room = credentials.value(forKey: "roomID") as? String
56
- else {
57
- return
58
- }
59
-
60
- DispatchQueue.main.async { [weak self] in
61
- guard let strongSelf = self else { return }
62
- if let endpoint = credentials.value(forKey: "endpoint") as? String {
63
- strongSelf.config = HMSConfig(userName: user, userID: UUID().uuidString, roomID: room, authToken: authToken, endpoint: endpoint)
64
- strongSelf.hms?.preview(config: strongSelf.config!, delegate: strongSelf)
65
- } else {
66
- strongSelf.config = HMSConfig(userName: user, userID: UUID().uuidString, roomID: room, authToken: authToken)
67
- strongSelf.hms?.preview(config: strongSelf.config!, delegate: strongSelf)
68
- }
69
- }
63
+ let hms = HmsHelper.getHms(credentials, hmsCollection)
64
+ hms?.preview(credentials)
70
65
  }
71
66
 
72
67
  @objc
73
68
  func join(_ credentials: NSDictionary) {
74
-
75
- guard let authToken = credentials.value(forKey: "authToken") as? String,
76
- let user = credentials.value(forKey: "username") as? String,
77
- let room = credentials.value(forKey: "roomID") as? String
78
- else {
79
- return
80
- }
81
-
82
- DispatchQueue.main.async { [weak self] in
83
- guard let strongSelf = self else { return }
84
- if let config = strongSelf.config {
85
- strongSelf.hms?.join(config: config, delegate: strongSelf)
86
- } else {
87
- if let endpoint = credentials.value(forKey: "endpoint") as? String {
88
- strongSelf.config = HMSConfig(userName: user, userID: UUID().uuidString, roomID: room, authToken: authToken, endpoint: endpoint)
89
- strongSelf.hms?.join(config: strongSelf.config!, delegate: strongSelf)
90
- } else {
91
- strongSelf.config = HMSConfig(userName: user, userID: UUID().uuidString, roomID: room, authToken: authToken)
92
- strongSelf.hms?.join(config: strongSelf.config!, delegate: strongSelf)
93
- }
94
- }
95
- }
69
+ let hms = HmsHelper.getHms(credentials, hmsCollection)
70
+ hms?.join(credentials)
96
71
  }
97
72
 
98
73
  @objc
99
- func setLocalMute(_ isMute: Bool) {
100
- DispatchQueue.main.async { [weak self] in
101
- self?.hms?.localPeer?.localAudioTrack()?.setMute(isMute)
102
- }
74
+ func setLocalMute(_ data: NSDictionary) {
75
+ let hms = HmsHelper.getHms(data, hmsCollection)
76
+
77
+ hms?.setLocalMute(data)
103
78
  }
104
79
 
105
80
  @objc
106
- func setLocalVideoMute(_ isMute: Bool) {
107
- DispatchQueue.main.async { [weak self] in
108
- self?.hms?.localPeer?.localVideoTrack()?.setMute(isMute)
109
- }
81
+ func setLocalVideoMute(_ data: NSDictionary) {
82
+ let hms = HmsHelper.getHms(data, hmsCollection)
83
+
84
+ hms?.setLocalVideoMute(data)
110
85
  }
111
86
 
112
87
  @objc
113
- func switchCamera() {
114
- DispatchQueue.main.async { [weak self] in
115
- self?.hms?.localPeer?.localVideoTrack()?.switchCamera()
116
- }
88
+ func switchCamera(_ data: NSDictionary) {
89
+ let hms = HmsHelper.getHms(data, hmsCollection)
90
+
91
+ hms?.switchCamera()
117
92
  }
118
93
 
119
94
  @objc
120
- func leave() {
121
- DispatchQueue.main.async { [weak self] in
122
- self?.hms?.leave();
123
- }
95
+ func leave(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
96
+ let hms = HmsHelper.getHms(data, hmsCollection)
97
+
98
+ hms?.leave(resolve, reject)
124
99
  }
125
100
 
126
101
  @objc
127
102
  func sendBroadcastMessage(_ data: NSDictionary) {
128
- guard let message = data.value(forKey: "message") as? String
129
- else {
130
- return
131
- }
132
-
133
- let type = data.value(forKey: "type") as? String ?? "chat"
103
+ let hms = HmsHelper.getHms(data, hmsCollection)
134
104
 
135
- DispatchQueue.main.async { [weak self] in
136
- self?.hms?.sendBroadcastMessage(type: type, message: message)
137
- }
105
+ hms?.sendBroadcastMessage(data)
138
106
  }
139
107
 
140
108
  @objc
141
109
  func sendGroupMessage(_ data: NSDictionary) {
142
- guard let message = data.value(forKey: "message") as? String,
143
- let targetedRoles = data.value(forKey: "roles") as? [String]
144
- else {
145
- return
146
- }
110
+ let hms = HmsHelper.getHms(data, hmsCollection)
147
111
 
148
- DispatchQueue.main.async { [weak self] in
149
- let encodedTargetedRoles = HmsHelper.getRolesFromRoleNames(targetedRoles, roles: self?.hms?.roles)
150
- self?.hms?.sendGroupMessage(message: message, roles: encodedTargetedRoles)
151
- }
112
+ hms?.sendGroupMessage(data)
152
113
  }
153
114
 
154
115
  @objc
155
116
  func sendDirectMessage(_ data: NSDictionary) {
156
- guard let message = data.value(forKey: "message") as? String,
157
- let peerId = data.value(forKey: "peerId") as? String
158
- else {
159
- return
160
- }
117
+ let hms = HmsHelper.getHms(data, hmsCollection)
161
118
 
162
- DispatchQueue.main.async { [weak self] in
163
- guard let peer = HmsHelper.getPeerFromPeerId(peerId, remotePeers: self?.hms?.remotePeers) else { return }
164
- self?.hms?.sendDirectMessage(message: message, peer: peer)
165
- }
119
+ hms?.sendDirectMessage(data)
166
120
  }
167
121
 
168
122
  @objc
169
- func acceptRoleChange() {
123
+ func acceptRoleChange(_ data: NSDictionary) {
124
+ let hms = HmsHelper.getHms(data, hmsCollection)
170
125
 
171
- DispatchQueue.main.async { [weak self] in
172
-
173
- guard let request = self?.recentRoleChangeRequest else { return }
174
-
175
- self?.hms?.accept(changeRole: request)
176
-
177
- self?.recentRoleChangeRequest = nil
178
- }
126
+ hms?.acceptRoleChange()
179
127
  }
180
128
 
181
129
  @objc
182
130
  func changeRole(_ data: NSDictionary) {
131
+ let hms = HmsHelper.getHms(data, hmsCollection)
183
132
 
184
- guard let peerId = data.value(forKey: "peerId") as? String,
185
- let role = data.value(forKey: "role") as? String
186
- else {
187
- return
188
- }
189
-
190
- let force = data.value(forKey: "force") as? Bool ?? false
191
-
192
- DispatchQueue.main.async { [weak self] in
193
- guard let peer = HmsHelper.getPeerFromPeerId(peerId, remotePeers: self?.hms?.remotePeers),
194
- let role = HmsHelper.getRoleFromRoleName(role, roles: self?.hms?.roles)
195
- else { return }
196
-
197
- self?.hms?.changeRole(for: peer, to: role, force: force)
198
- }
133
+ hms?.changeRole(data)
199
134
  }
200
135
 
201
136
  @objc
202
137
  func changeTrackState(_ data: NSDictionary) {
138
+ let hms = HmsHelper.getHms(data, hmsCollection)
203
139
 
204
- guard let trackId = data.value(forKey: "trackId") as? String
205
- else {
206
- return
207
- }
208
-
209
- let mute = data.value(forKey: "mute") as? Bool ?? true
210
-
211
- DispatchQueue.main.async { [weak self] in
212
- guard let remotePeers = self?.hms?.remotePeers,
213
- let track = HmsHelper.getTrackFromTrackId(trackId, remotePeers)
214
- else { return }
215
-
216
- self?.hms?.changeTrackState(for: track, mute: mute)
217
- }
140
+ hms?.changeTrackState(data)
218
141
  }
219
142
 
220
143
  @objc
221
- func isMute(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
222
- guard let trackId = data.value(forKey: "trackId") as? String
223
- else {
224
- reject?(nil, "NOT_FOUND", nil)
225
- return
226
- }
144
+ func changeTrackStateRoles(_ data: NSDictionary) {
145
+ let hms = HmsHelper.getHms(data, hmsCollection)
227
146
 
228
- DispatchQueue.main.async { [weak self] in
229
- guard let localPeer = self?.hms?.localPeer,
230
- let localTrack = HmsHelper.getLocalTrackFromTrackId(trackId, localPeer: localPeer)
231
- else {
232
- guard let remotePeers = self?.hms?.remotePeers,
233
- let track = HmsHelper.getTrackFromTrackId(trackId, remotePeers)
234
- else {
235
- reject?(nil, "NOT_FOUND", nil)
236
- return
237
- }
238
- let mute = track.isMute()
239
- resolve?(mute)
240
- return
241
- }
242
- let mute = localTrack.isMute()
243
- resolve?(mute)
244
- }
147
+ hms?.changeTrackStateRoles(data)
245
148
  }
246
149
 
247
150
  @objc
248
- func isPlaybackAllowed(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
249
- guard let trackId = data.value(forKey: "trackId") as? String
250
- else {
251
- reject?(nil, "NOT_FOUND", nil)
151
+ func isMute(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
152
+ let hms = HmsHelper.getHms(data, hmsCollection)
153
+ if let hmsInstance = hms {
154
+ hmsInstance.isMute(data, resolve, reject)
155
+ } else {
156
+ reject?(nil, "NO_INSTANCE", nil)
252
157
  return
253
- }
254
- DispatchQueue.main.async { [weak self] in
255
- guard let remotePeers = self?.hms?.remotePeers
256
- else {
257
- reject?(nil, "NOT_FOUND", nil)
258
- return
259
- }
260
- let remoteAudioTrack = HmsHelper.getRemoteAudioTrackFromTrackId(trackId, remotePeers)
261
- let remoteVideoTrack = HmsHelper.getRemoteVideoTrackFromTrackId(trackId, remotePeers)
262
- if (remoteAudioTrack != nil) {
263
- let isPlaybackAllowed = remoteAudioTrack?.isPlaybackAllowed()
264
- resolve?(isPlaybackAllowed)
265
- return
266
- } else if (remoteVideoTrack != nil) {
267
- let isPlaybackAllowed = remoteVideoTrack?.isPlaybackAllowed()
268
- resolve?(isPlaybackAllowed)
269
- return
270
- } else {
271
- reject?(nil, "NOT_FOUND",nil)
272
- return
273
- }
274
- }
158
+ }
275
159
  }
276
160
 
277
- @objc
278
- func setPlaybackAllowed(_ data: NSDictionary) {
279
- guard let trackId = data.value(forKey: "trackId") as? String
280
- else {
281
- return
282
- }
283
- guard let playbackAllowed = data.value(forKey: "playbackAllowed") as? Bool
284
- else {
285
- return
286
- }
287
- DispatchQueue.main.async { [weak self] in
288
- guard let remotePeers = self?.hms?.remotePeers
289
- else {
290
- return
291
- }
292
- let remoteAudioTrack = HmsHelper.getRemoteAudioTrackFromTrackId(trackId, remotePeers)
293
- let remoteVideoTrack = HmsHelper.getRemoteVideoTrackFromTrackId(trackId, remotePeers)
294
- if (remoteAudioTrack != nil) {
295
- if(playbackAllowed){
296
- remoteAudioTrack?.setPlaybackAllowed(playbackAllowed)
297
- }else {
298
- remoteAudioTrack?.setPlaybackAllowed(playbackAllowed)
299
- }
300
- } else if (remoteVideoTrack != nil) {
301
- remoteVideoTrack?.setPlaybackAllowed(playbackAllowed)
302
- }
303
- }
304
- }
305
161
 
306
162
  @objc
307
163
  func removePeer(_ data: NSDictionary) {
164
+ let hms = HmsHelper.getHms(data, hmsCollection)
308
165
 
309
-
310
-
311
- guard let peerId = data.value(forKey: "peerId") as? String
312
- else {
313
- return
314
- }
315
-
316
- let reason = data.value(forKey: "reason") as? String
317
-
318
- DispatchQueue.main.async { [weak self] in
319
-
320
- guard let remotePeers = self?.hms?.remotePeers,
321
- let peer = HmsHelper.getPeerFromPeerId(peerId, remotePeers: remotePeers)
322
- else { return }
323
-
324
- self?.hms?.removePeer(peer, reason: reason ?? "Removed from room")
325
- }
166
+ hms?.removePeer(data)
326
167
  }
327
168
 
328
169
 
329
170
  @objc
330
171
  func endRoom(_ data: NSDictionary) {
172
+ let hms = HmsHelper.getHms(data, hmsCollection)
331
173
 
332
- let lock = data.value(forKey: "lock") as? Bool
333
- let reason = data.value(forKey: "reason") as? String
334
-
335
- DispatchQueue.main.async { [weak self] in
336
- self?.hms?.endRoom(lock: lock ?? false, reason: reason ?? "Room was ended")
337
- }
174
+ hms?.endRoom(data)
338
175
  }
339
-
340
- // MARK: - HMS SDK Delegate Callbacks
341
-
342
- func on(join room: HMSRoom) {
343
- // Callback from join action
344
- let roomData = HmsDecoder.getHmsRoom(room)
345
- let localPeerData = HmsDecoder.getHmsLocalPeer(hms?.localPeer)
346
- let remotePeerData = HmsDecoder.getHmsRemotePeers(hms?.remotePeers)
347
-
348
- let decodedRoles = HmsDecoder.getAllRoles(hms?.roles)
349
-
350
- self.sendEvent(withName: ON_JOIN, body: ["event": ON_JOIN, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData, "roles": decodedRoles])
351
- }
352
-
353
- func onPreview(room: HMSRoom, localTracks: [HMSTrack]) {
354
- let previewTracks = HmsDecoder.getPreviewTracks(localTracks)
355
- let hmsRoom = HmsDecoder.getHmsRoom(room)
356
- let localPeerData = HmsDecoder.getHmsLocalPeer(hms?.localPeer)
357
-
358
- self.sendEvent(withName: ON_PREVIEW, body: ["event": ON_PREVIEW, "room": hmsRoom, "previewTracks": previewTracks, "localPeer": localPeerData])
359
- }
360
-
361
- func on(room: HMSRoom, update: HMSRoomUpdate) {
362
- // Listener for any updation in room
363
- let roomData = HmsDecoder.getHmsRoom(room)
364
- let type = getString(from: update)
365
-
366
- let localPeerData = HmsDecoder.getHmsLocalPeer(hms?.localPeer)
367
- let remotePeerData = HmsDecoder.getHmsRemotePeers(hms?.remotePeers)
176
+
177
+ @objc
178
+ func setPlaybackAllowed(_ data: NSDictionary) {
179
+ let hms = HmsHelper.getHms(data, hmsCollection)
368
180
 
369
- self.sendEvent(withName: ON_ROOM_UPDATE, body: ["event": ON_ROOM_UPDATE, "type": type, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData])
181
+ hms?.setPlaybackAllowed(data)
370
182
  }
371
183
 
372
- func on(peer: HMSPeer, update: HMSPeerUpdate) {
373
- // Listener for updates in Peers
374
- let roomData = HmsDecoder.getHmsRoom(hms?.room)
375
- let type = getString(from: update)
184
+ @objc
185
+ func isPlaybackAllowed(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
186
+ let hms = HmsHelper.getHms(data, hmsCollection)
376
187
 
377
- let localPeerData = HmsDecoder.getHmsLocalPeer(hms?.localPeer)
378
- let remotePeerData = HmsDecoder.getHmsRemotePeers(hms?.remotePeers)
379
-
380
- self.sendEvent(withName: ON_PEER_UPDATE, body: ["event": ON_PEER_UPDATE, "type": type, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData])
188
+ hms?.isPlaybackAllowed(data, resolve, reject)
381
189
  }
382
190
 
383
- func on(track: HMSTrack, update: HMSTrackUpdate, for peer: HMSPeer) {
384
- // Listener for updates in Tracks
385
- let roomData = HmsDecoder.getHmsRoom(hms?.room)
386
- let type = getString(from: update)
387
-
388
- let localPeerData = HmsDecoder.getHmsLocalPeer(hms?.localPeer)
389
- let remotePeerData = HmsDecoder.getHmsRemotePeers(hms?.remotePeers)
191
+ @objc
192
+ func getRoom(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
193
+ let hms = HmsHelper.getHms(data, hmsCollection)
390
194
 
391
- self.sendEvent(withName: ON_TRACK_UPDATE, body: ["event": ON_TRACK_UPDATE, "room": roomData, "type": type, "localPeer": localPeerData, "remotePeers": remotePeerData])
392
- }
393
-
394
- func on(error: HMSError) {
395
- self.sendEvent(withName: ON_ERROR, body: ["event": ON_ERROR, "error": error.description, "code": error.code.rawValue, "id": error.id, "message": error.message])
396
- }
397
-
398
- func on(message: HMSMessage) {
399
- self.sendEvent(withName: ON_MESSAGE, body: ["event": ON_MESSAGE, "sender": message.sender?.name ?? "", "time": message.time, "message": message.message, "type": message.type])
195
+ hms?.getRoom(data, resolve, reject)
400
196
  }
401
197
 
402
- func on(updated speakers: [HMSSpeaker]) {
403
- var speakerPeerIds: [[String : Any]] = []
404
- for speaker in speakers {
405
- speakerPeerIds.append(["peer": HmsDecoder.getHmsPeer(speaker.peer), "level": speaker.level, "track": HmsDecoder.getHmsTrack(speaker.track)])
406
- }
407
- self.sendEvent(withName: ON_SPEAKER, body: ["event": ON_SPEAKER, "count": speakers.count, "peers" :speakerPeerIds])
408
- }
409
-
410
- func onReconnecting() {
411
- self.sendEvent(withName: RECONNECTING, body: ["event": RECONNECTING])
412
- }
413
-
414
- func onReconnected() {
415
- self.sendEvent(withName: RECONNECTED, body: ["event": RECONNECTED])
198
+ // MARK: - HMS SDK Delegate Callbacks
199
+ func emitEvent(_ name: String, _ data: [String: Any]) {
200
+ self.sendEvent(withName: name, body: data)
416
201
  }
417
202
 
418
- func on(roleChangeRequest: HMSRoleChangeRequest) {
419
- let decodedRoleChangeRequest = HmsDecoder.getHmsRoleChangeRequest(roleChangeRequest)
420
- recentRoleChangeRequest = roleChangeRequest
421
- self.sendEvent(withName: ON_ROLE_CHANGE_REQUEST, body: decodedRoleChangeRequest)
422
- }
203
+ // MARK: Helper Functions
423
204
 
424
- func on(changeTrackStateRequest: HMSChangeTrackStateRequest) {
425
- let decodedChangeTrackStateRequest = HmsDecoder.getHmsChangeTrackStateRequest(changeTrackStateRequest)
426
- recentChangeTrackStateRequest = changeTrackStateRequest
427
- self.sendEvent(withName: ON_CHANGE_TRACK_STATE_REQUEST, body: decodedChangeTrackStateRequest)
205
+ @objc
206
+ func muteAllPeersAudio(_ data: NSDictionary) {
207
+ let hms = HmsHelper.getHms(data, hmsCollection)
208
+
209
+ hms?.muteAllPeersAudio(data)
428
210
  }
429
211
 
430
- func on(removedFromRoom notification: HMSRemovedFromRoomNotification) {
431
- let requestedBy = notification.requestedBy
432
- let decodedRequestedBy = HmsDecoder.getHmsPeer(requestedBy)
433
- let reason = notification.reason
434
- let roomEnded = notification.roomEnded
435
- self.sendEvent(withName: ON_REMOVED_FROM_ROOM, body: ["event": ON_REMOVED_FROM_ROOM, "requestedBy": decodedRequestedBy, "reason": reason, "roomEnded": roomEnded ])
212
+ @objc
213
+ func changeMetadata(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
214
+ let hms = HmsHelper.getHms(data, hmsCollection)
215
+
216
+ hms?.changeMetadata(data, resolve, reject)
436
217
  }
437
-
438
-
439
- // MARK: Helper Functions
440
-
218
+
441
219
  @objc
442
- func muteAllPeersAudio(_ mute: Bool) {
443
- DispatchQueue.main.async { [weak self] in
444
- let remotePeers = self?.hms?.remotePeers
445
- for peer in remotePeers ?? [] {
446
- peer.remoteAudioTrack()?.setPlaybackAllowed(!mute)
447
- }
448
- }
449
- let roomData = HmsDecoder.getHmsRoom(hms?.room)
450
- let localPeerData = HmsDecoder.getHmsLocalPeer(hms?.localPeer)
451
- let remotePeerData = HmsDecoder.getHmsRemotePeers(hms?.remotePeers)
220
+ func setVolume(_ data: NSDictionary) {
221
+ let hms = HmsHelper.getHms(data, hmsCollection)
452
222
 
453
- self.sendEvent(withName: ON_PEER_UPDATE, body: ["event": ON_PEER_UPDATE, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData])
223
+ hms?.setVolume(data)
454
224
  }
455
225
 
456
- private func getString(from update: HMSPeerUpdate) -> String {
457
- switch update {
458
- case .peerJoined:
459
- return "PEER_JOINED"
460
- case .peerLeft:
461
- return "PEER_LEFT"
462
- case .roleUpdated:
463
- return "ROLE_CHANGED"
464
- default:
465
- return ""
466
- }
226
+ @objc
227
+ func startRTMPOrRecording(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
228
+ let hms = HmsHelper.getHms(data, hmsCollection)
229
+
230
+ hms?.startRTMPOrRecording(data, resolve, reject)
467
231
  }
468
232
 
469
- private func getString(from update: HMSTrackUpdate) -> String {
470
- switch update {
471
- case .trackAdded:
472
- return "TRACK_ADDED"
473
- case .trackRemoved:
474
- return "TRACK_REMOVED"
475
- case .trackMuted:
476
- return "TRACK_MUTED"
477
- case .trackUnmuted:
478
- return "TRACK_UNMUTED"
479
- case .trackDescriptionChanged:
480
- return "TRACK_DESCRIPTION_CHANGED"
481
- case .trackDegraded:
482
- return "TRACK_DEGRADED"
483
- case .trackRestored:
484
- return "TRACK_RESTORED"
485
- default:
486
- return ""
487
- }
233
+ @objc
234
+ func stopRtmpAndRecording(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
235
+ let hms = HmsHelper.getHms(data, hmsCollection)
236
+
237
+ hms?.stopRtmpAndRecording(resolve, reject)
488
238
  }
489
239
 
490
- func getString(from update: HMSRoomUpdate) -> String {
491
- switch update {
492
- case .roomTypeChanged:
493
- return "ROOM_TYPE_CHANGED"
494
- case .metaDataUpdated:
495
- return "META_DATA_CHANGED"
496
- case .browserRecordingStateUpdated:
497
- return "BROWSER_RECORDING_STATE_UPDATED"
498
- case .rtmpStreamingStateUpdated:
499
- return "RTMP_STREAMING_STATE_UPDATED"
500
- case.serverRecordingStateUpdated:
501
- return "SERVER_RECORDING_STATE_UPDATED"
502
- default:
503
- return ""
504
- }
505
- }
240
+ // @objc
241
+ // func setLocalVideoSettings(_ data: NSDictionary) {
242
+ // let hms = HmsHelper.getHms(data, hmsCollection)
243
+ //
244
+ // hms?.setLocalVideoSettings(data)
245
+ // }
506
246
  }