@100mslive/react-native-hms 1.7.2 → 1.9.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.
- package/android/build.gradle +3 -3
- package/android/local.properties +8 -1
- package/android/src/main/java/com/reactnativehmssdk/HMSAudioshareActivity.kt +1 -0
- package/android/src/main/java/com/reactnativehmssdk/HMSDecoder.kt +43 -15
- package/android/src/main/java/com/reactnativehmssdk/HMSHLSPlayer.kt +113 -68
- package/android/src/main/java/com/reactnativehmssdk/HMSHLSPlayerManager.kt +17 -4
- package/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt +75 -21
- package/android/src/main/java/com/reactnativehmssdk/HMSManager.kt +483 -184
- package/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +587 -177
- package/android/src/main/java/com/reactnativehmssdk/HMSSDKViewManager.kt +26 -7
- package/android/src/main/java/com/reactnativehmssdk/HMSView.kt +32 -12
- package/android/src/main/java/com/reactnativehmssdk/HmsScreenshareActivity.kt +1 -0
- package/android/src/main/java/com/reactnativehmssdk/PipActionReceiver.kt +10 -6
- package/android/src/main/res/layout/player_view.xml +3 -2
- package/ios/HMSConstants.swift +1 -0
- package/ios/HMSDecoder.swift +18 -7
- package/ios/HMSHLSPlayerManager.swift +18 -2
- package/ios/HMSHelper.swift +33 -4
- package/ios/HMSManager.m +256 -73
- package/ios/HMSManager.swift +47 -3
- package/ios/HMSRNSDK.swift +224 -140
- package/ios/HMSView.swift +17 -3
- package/ios/Hmssdk.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- package/ios/Hmssdk.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- package/ios/Hmssdk.xcodeproj/project.xcworkspace/xcuserdata/jatinnagar.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- package/ios/Hmssdk.xcodeproj/xcuserdata/jatinnagar.xcuserdatad/xcschemes/xcschememanagement.plist +14 -0
- package/lib/commonjs/classes/HMSAudioCodec.js +1 -2
- package/lib/commonjs/classes/HMSAudioCodec.js.map +1 -1
- package/lib/commonjs/classes/HMSAudioDevice.js +1 -2
- package/lib/commonjs/classes/HMSAudioDevice.js.map +1 -1
- package/lib/commonjs/classes/HMSAudioMixingMode.js +1 -2
- package/lib/commonjs/classes/HMSAudioMixingMode.js.map +1 -1
- package/lib/commonjs/classes/HMSAudioMode.js +1 -2
- package/lib/commonjs/classes/HMSAudioMode.js.map +1 -1
- package/lib/commonjs/classes/HMSCameraFacing.js +1 -2
- package/lib/commonjs/classes/HMSCameraFacing.js.map +1 -1
- package/lib/commonjs/classes/HMSConstants.js +1 -2
- package/lib/commonjs/classes/HMSConstants.js.map +1 -1
- package/lib/commonjs/classes/HMSEncoder.js +6 -0
- package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
- package/lib/commonjs/classes/HMSEventEmitter.js +1 -2
- package/lib/commonjs/classes/HMSEventEmitter.js.map +1 -1
- package/lib/commonjs/classes/HMSIOSAudioMode.js +1 -2
- package/lib/commonjs/classes/HMSIOSAudioMode.js.map +1 -1
- package/lib/commonjs/classes/HMSLayer.js +1 -2
- package/lib/commonjs/classes/HMSLayer.js.map +1 -1
- package/lib/commonjs/classes/HMSLogAlarmManager.js +1 -2
- package/lib/commonjs/classes/HMSLogAlarmManager.js.map +1 -1
- package/lib/commonjs/classes/HMSLogLevel.js +1 -2
- package/lib/commonjs/classes/HMSLogLevel.js.map +1 -1
- package/lib/commonjs/classes/HMSLogger.js +1 -2
- package/lib/commonjs/classes/HMSLogger.js.map +1 -1
- package/lib/commonjs/classes/HMSManagerModule.js +1 -2
- package/lib/commonjs/classes/HMSManagerModule.js.map +1 -1
- package/lib/commonjs/classes/HMSMessageRecipientType.js +1 -2
- package/lib/commonjs/classes/HMSMessageRecipientType.js.map +1 -1
- package/lib/commonjs/classes/HMSNativeEventListener.js +1 -2
- package/lib/commonjs/classes/HMSNativeEventListener.js.map +1 -1
- package/lib/commonjs/classes/HMSPIPListenerActions.js +2 -2
- package/lib/commonjs/classes/HMSPIPListenerActions.js.map +1 -1
- package/lib/commonjs/classes/HMSPeer.js +15 -0
- package/lib/commonjs/classes/HMSPeer.js.map +1 -1
- package/lib/commonjs/classes/HMSPeerListIterator.js +64 -0
- package/lib/commonjs/classes/HMSPeerListIterator.js.map +1 -0
- package/lib/commonjs/classes/HMSPeerListIteratorOptions.js +2 -0
- package/lib/commonjs/classes/HMSPeerListIteratorOptions.js.map +1 -0
- package/lib/commonjs/classes/HMSPeerUpdate.js +3 -4
- package/lib/commonjs/classes/HMSPeerUpdate.js.map +1 -1
- package/lib/commonjs/classes/HMSPeersCache.js +8 -2
- package/lib/commonjs/classes/HMSPeersCache.js.map +1 -1
- package/lib/commonjs/classes/HMSQualityLimitationReason.js +1 -2
- package/lib/commonjs/classes/HMSQualityLimitationReason.js.map +1 -1
- package/lib/commonjs/classes/HMSRoomCache.js +1 -2
- package/lib/commonjs/classes/HMSRoomCache.js.map +1 -1
- package/lib/commonjs/classes/HMSRoomUpdate.js +1 -2
- package/lib/commonjs/classes/HMSRoomUpdate.js.map +1 -1
- package/lib/commonjs/classes/HMSSDK.js +192 -32
- package/lib/commonjs/classes/HMSSDK.js.map +1 -1
- package/lib/commonjs/classes/HMSTrackSettingsInitState.js +1 -2
- package/lib/commonjs/classes/HMSTrackSettingsInitState.js.map +1 -1
- package/lib/commonjs/classes/HMSTrackSource.js +1 -2
- package/lib/commonjs/classes/HMSTrackSource.js.map +1 -1
- package/lib/commonjs/classes/HMSTrackType.js +1 -2
- package/lib/commonjs/classes/HMSTrackType.js.map +1 -1
- package/lib/commonjs/classes/HMSTrackUpdate.js +1 -2
- package/lib/commonjs/classes/HMSTrackUpdate.js.map +1 -1
- package/lib/commonjs/classes/HMSUpdateListenerActions.js +2 -2
- package/lib/commonjs/classes/HMSUpdateListenerActions.js.map +1 -1
- package/lib/commonjs/classes/HMSVideoCodec.js +1 -2
- package/lib/commonjs/classes/HMSVideoCodec.js.map +1 -1
- package/lib/commonjs/classes/HMSVideoViewMode.js +1 -2
- package/lib/commonjs/classes/HMSVideoViewMode.js.map +1 -1
- package/lib/commonjs/classes/HmsView.js +3 -4
- package/lib/commonjs/classes/HmsView.js.map +1 -1
- package/lib/commonjs/components/HMSHLSPlayer/HMSHLSPlayer.js +13 -9
- package/lib/commonjs/components/HMSHLSPlayer/HMSHLSPlayer.js.map +1 -1
- package/lib/commonjs/components/HMSHLSPlayer/RCTHMSHLSPlayer.js +2 -4
- package/lib/commonjs/components/HMSHLSPlayer/RCTHMSHLSPlayer.js.map +1 -1
- package/lib/commonjs/components/HMSHLSPlayer/hooks.js +5 -10
- package/lib/commonjs/components/HMSHLSPlayer/hooks.js.map +1 -1
- package/lib/commonjs/hooks/useHMSPeerUpdates.js +2 -2
- package/lib/commonjs/hooks/useHMSPeerUpdates.js.map +1 -1
- package/lib/commonjs/index.js +1 -2
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/stores/hls-player-stats-store.js +1 -2
- package/lib/commonjs/stores/hls-player-stats-store.js.map +1 -1
- package/lib/commonjs/stores/hms-store.js +1 -2
- package/lib/commonjs/stores/hms-store.js.map +1 -1
- package/lib/commonjs/types.js +4 -6
- package/lib/commonjs/types.js.map +1 -1
- package/lib/module/classes/HMSEncoder.js +6 -0
- package/lib/module/classes/HMSEncoder.js.map +1 -1
- package/lib/module/classes/HMSPIPListenerActions.js +1 -0
- package/lib/module/classes/HMSPIPListenerActions.js.map +1 -1
- package/lib/module/classes/HMSPeer.js +15 -0
- package/lib/module/classes/HMSPeer.js.map +1 -1
- package/lib/module/classes/HMSPeerListIterator.js +58 -0
- package/lib/module/classes/HMSPeerListIterator.js.map +1 -0
- package/lib/module/classes/HMSPeerListIteratorOptions.js +2 -0
- package/lib/module/classes/HMSPeerListIteratorOptions.js.map +1 -0
- package/lib/module/classes/HMSPeerUpdate.js +2 -1
- package/lib/module/classes/HMSPeerUpdate.js.map +1 -1
- package/lib/module/classes/HMSPeersCache.js +7 -0
- package/lib/module/classes/HMSPeersCache.js.map +1 -1
- package/lib/module/classes/HMSSDK.js +193 -33
- package/lib/module/classes/HMSSDK.js.map +1 -1
- package/lib/module/classes/HMSUpdateListenerActions.js +1 -0
- package/lib/module/classes/HMSUpdateListenerActions.js.map +1 -1
- package/lib/module/components/HMSHLSPlayer/HMSHLSPlayer.js +11 -6
- package/lib/module/components/HMSHLSPlayer/HMSHLSPlayer.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/types.js +1 -0
- package/lib/module/types.js.map +1 -1
- package/lib/typescript/classes/HMSEncoder.d.ts +1 -0
- package/lib/typescript/classes/HMSPIPListenerActions.d.ts +1 -0
- package/lib/typescript/classes/HMSPeer.d.ts +3 -0
- package/lib/typescript/classes/HMSPeerListIterator.d.ts +9 -0
- package/lib/typescript/classes/HMSPeerListIteratorOptions.d.ts +24 -0
- package/lib/typescript/classes/HMSPeerUpdate.d.ts +2 -1
- package/lib/typescript/classes/HMSPeersCache.d.ts +1 -0
- package/lib/typescript/classes/HMSSDK.d.ts +69 -13
- package/lib/typescript/classes/HMSUpdateListenerActions.d.ts +2 -1
- package/lib/typescript/index.d.ts +1 -1
- package/lib/typescript/types.d.ts +3 -1
- package/package.json +1 -1
- package/sdk-versions.json +2 -2
- package/src/classes/HMSEncoder.ts +9 -0
- package/src/classes/HMSPIPListenerActions.ts +1 -0
- package/src/classes/HMSPeer.ts +25 -0
- package/src/classes/HMSPeerListIterator.ts +60 -0
- package/src/classes/HMSPeerListIteratorOptions.ts +26 -0
- package/src/classes/HMSPeerUpdate.ts +2 -0
- package/src/classes/HMSPeersCache.ts +7 -0
- package/src/classes/HMSSDK.tsx +235 -28
- package/src/classes/HMSUpdateListenerActions.ts +1 -0
- package/src/components/HMSHLSPlayer/HMSHLSPlayer.tsx +15 -13
- package/src/index.ts +4 -1
- package/src/types.ts +2 -0
- package/android/.gradle/6.7.1/executionHistory/executionHistory.bin +0 -0
- package/android/.gradle/6.7.1/executionHistory/executionHistory.lock +0 -0
- package/android/.gradle/6.7.1/fileChanges/last-build.bin +0 -0
- package/android/.gradle/6.7.1/fileHashes/fileHashes.bin +0 -0
- package/android/.gradle/6.7.1/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/6.7.1/gc.properties +0 -0
- package/android/.gradle/6.9/executionHistory/executionHistory.bin +0 -0
- package/android/.gradle/6.9/executionHistory/executionHistory.lock +0 -0
- package/android/.gradle/6.9/fileChanges/last-build.bin +0 -0
- package/android/.gradle/6.9/fileHashes/fileHashes.bin +0 -0
- package/android/.gradle/6.9/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/6.9/gc.properties +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
- package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
- package/android/.gradle/checksums/checksums.lock +0 -0
- package/android/.gradle/checksums/md5-checksums.bin +0 -0
- package/android/.gradle/checksums/sha1-checksums.bin +0 -0
- package/android/.gradle/configuration-cache/gc.properties +0 -0
- package/android/.gradle/vcs-1/gc.properties +0 -0
package/ios/HMSRNSDK.swift
CHANGED
|
@@ -12,9 +12,12 @@ import ReplayKit
|
|
|
12
12
|
class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
13
13
|
|
|
14
14
|
var hms: HMSSDK?
|
|
15
|
-
|
|
15
|
+
|
|
16
16
|
var delegate: HMSManager?
|
|
17
17
|
var id: String = "12345"
|
|
18
|
+
|
|
19
|
+
private var recentRoleChangeRequest: HMSRoleChangeRequest?
|
|
20
|
+
internal var previewForRoleTracks: [HMSTrack]?
|
|
18
21
|
private var reconnectingStage: Bool = false
|
|
19
22
|
private var preferredExtension: String?
|
|
20
23
|
private var systemBroadcastPicker: RPSystemBroadcastPickerView?
|
|
@@ -26,6 +29,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
26
29
|
private var eventsEnableStatus: [String: Bool] = [:]
|
|
27
30
|
private var sessionStore: HMSSessionStore?
|
|
28
31
|
private var sessionStoreChangeObservers = [String: NSObjectProtocol]()
|
|
32
|
+
private var peerListIterators = [String: HMSPeerListIterator]()
|
|
29
33
|
|
|
30
34
|
// MARK: - Setup
|
|
31
35
|
init(data: NSDictionary?, delegate manager: HMSManager?, uid id: String) {
|
|
@@ -129,25 +133,29 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
129
133
|
let roleObj = HMSHelper.getRoleFromRoleName(role, roles: hms?.roles)
|
|
130
134
|
|
|
131
135
|
if let extractedRole = roleObj {
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
if
|
|
135
|
-
|
|
136
|
+
DispatchQueue.main.async { [weak self] in
|
|
137
|
+
self?.hms?.preview(role: extractedRole) { tracks, error in
|
|
138
|
+
if error != nil {
|
|
139
|
+
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
140
|
+
return
|
|
136
141
|
}
|
|
137
|
-
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
138
|
-
return
|
|
139
|
-
}
|
|
140
142
|
|
|
141
|
-
|
|
143
|
+
self?.previewForRoleTracks = tracks
|
|
142
144
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
145
|
+
let decodedTracks = HMSDecoder.getAllTracks(tracks ?? [])
|
|
146
|
+
|
|
147
|
+
resolve?(["success": true, "tracks": decodedTracks] as [String: Any])
|
|
148
|
+
}
|
|
149
|
+
}
|
|
146
150
|
}
|
|
147
151
|
}
|
|
148
152
|
|
|
149
|
-
func cancelPreview() {
|
|
150
|
-
|
|
153
|
+
func cancelPreview(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
154
|
+
DispatchQueue.main.async { [weak self] in
|
|
155
|
+
self?.hms?.cancelPreview()
|
|
156
|
+
self?.previewForRoleTracks = nil
|
|
157
|
+
resolve?(["success": true])
|
|
158
|
+
}
|
|
151
159
|
}
|
|
152
160
|
|
|
153
161
|
func join(_ credentials: NSDictionary) {
|
|
@@ -230,7 +238,15 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
230
238
|
}
|
|
231
239
|
|
|
232
240
|
DispatchQueue.main.async { [weak self] in
|
|
233
|
-
self?.hms?.localPeer?.localAudioTrack()
|
|
241
|
+
if let audioTrack = self?.hms?.localPeer?.localAudioTrack() {
|
|
242
|
+
audioTrack.setMute(isMute)
|
|
243
|
+
} else if let tracks = self?.previewForRoleTracks {
|
|
244
|
+
if let audioTrack = tracks.first(where: { $0.kind == HMSTrackKind.audio }) as? HMSLocalAudioTrack {
|
|
245
|
+
audioTrack.setMute(isMute)
|
|
246
|
+
}
|
|
247
|
+
} else {
|
|
248
|
+
print(#function, "No local audio track available for setting mute state.")
|
|
249
|
+
}
|
|
234
250
|
}
|
|
235
251
|
}
|
|
236
252
|
|
|
@@ -243,42 +259,54 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
243
259
|
}
|
|
244
260
|
|
|
245
261
|
DispatchQueue.main.async { [weak self] in
|
|
246
|
-
self?.hms?.localPeer?.localVideoTrack()
|
|
262
|
+
if let videoTrack = self?.hms?.localPeer?.localVideoTrack() {
|
|
263
|
+
videoTrack.setMute(isMute)
|
|
264
|
+
} else if let tracks = self?.previewForRoleTracks {
|
|
265
|
+
if let videoTrack = tracks.first(where: { $0.kind == HMSTrackKind.video }) as? HMSLocalVideoTrack {
|
|
266
|
+
videoTrack.setMute(isMute)
|
|
267
|
+
}
|
|
268
|
+
} else {
|
|
269
|
+
print(#function, "No local video track available for setting mute state.")
|
|
270
|
+
}
|
|
247
271
|
}
|
|
248
272
|
}
|
|
249
273
|
|
|
250
274
|
func switchCamera() {
|
|
251
275
|
DispatchQueue.main.async { [weak self] in
|
|
252
|
-
self?.hms?.localPeer?.localVideoTrack()
|
|
276
|
+
if let localVideoTrack = self?.hms?.localPeer?.localVideoTrack() {
|
|
277
|
+
localVideoTrack.switchCamera()
|
|
278
|
+
} else if let tracks = self?.previewForRoleTracks {
|
|
279
|
+
if let videoTrack = tracks.first(where: { $0.kind == HMSTrackKind.video }) as? HMSLocalVideoTrack {
|
|
280
|
+
videoTrack.switchCamera()
|
|
281
|
+
}
|
|
282
|
+
} else {
|
|
283
|
+
print(#function, "No local video track available for switching camera.")
|
|
284
|
+
}
|
|
253
285
|
}
|
|
254
286
|
}
|
|
255
287
|
|
|
256
288
|
func leave(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
289
|
+
DispatchQueue.main.async { [weak self] in
|
|
290
|
+
guard let strongSelf = self else {
|
|
291
|
+
print(#function, "Could not find reference to self while executing Room leave")
|
|
292
|
+
return
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
strongSelf.hms?.leave { [weak self] success, error in
|
|
296
|
+
|
|
261
297
|
guard let strongSelf = self else {
|
|
262
|
-
print(#function, "Could not find reference to self while executing Room leave")
|
|
298
|
+
print(#function, "Could not find reference to self when callback is received while executing Room leave")
|
|
263
299
|
return
|
|
264
300
|
}
|
|
265
301
|
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
if success {
|
|
274
|
-
resolve?(["success": success])
|
|
275
|
-
strongSelf.cleanup() // resetting states and doing data cleanup
|
|
276
|
-
} else {
|
|
277
|
-
if strongSelf.eventsEnableStatus[HMSConstants.ON_ERROR] == true {
|
|
278
|
-
strongSelf.delegate?.emitEvent(HMSConstants.ON_ERROR, ["error": HMSDecoder.getError(error), "id": strongSelf.id])
|
|
279
|
-
}
|
|
280
|
-
reject?("error in leave", "error in leave", nil)
|
|
302
|
+
if success {
|
|
303
|
+
resolve?(["success": success])
|
|
304
|
+
strongSelf.cleanup() // resetting states and doing data cleanup
|
|
305
|
+
} else {
|
|
306
|
+
if strongSelf.eventsEnableStatus[HMSConstants.ON_ERROR] == true {
|
|
307
|
+
strongSelf.delegate?.emitEvent(HMSConstants.ON_ERROR, ["error": HMSDecoder.getError(error), "id": strongSelf.id])
|
|
281
308
|
}
|
|
309
|
+
reject?("error in leave", "error in leave", nil)
|
|
282
310
|
}
|
|
283
311
|
}
|
|
284
312
|
}
|
|
@@ -301,9 +329,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
301
329
|
resolve?(["messageId": message?.messageID ?? "", "data": ["sender": message?.sender?.name ?? "", "message": message?.message ?? "", "type": message?.type]] as [String: Any])
|
|
302
330
|
return
|
|
303
331
|
} else {
|
|
304
|
-
if self?.eventsEnableStatus[HMSConstants.ON_ERROR] == true {
|
|
305
|
-
self?.delegate?.emitEvent(HMSConstants.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
306
|
-
}
|
|
307
332
|
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
308
333
|
return
|
|
309
334
|
}
|
|
@@ -329,9 +354,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
329
354
|
resolve?(["messageId": message?.messageID ?? "", "data": ["sender": message?.sender?.name ?? "", "message": message?.message ?? "", "type": message?.type]] as [String: Any])
|
|
330
355
|
return
|
|
331
356
|
} else {
|
|
332
|
-
if self?.eventsEnableStatus[HMSConstants.ON_ERROR] == true {
|
|
333
|
-
self?.delegate?.emitEvent(HMSConstants.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
334
|
-
}
|
|
335
357
|
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
336
358
|
return
|
|
337
359
|
}
|
|
@@ -351,15 +373,13 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
351
373
|
|
|
352
374
|
let type = data.value(forKey: "type") as? String ?? "chat"
|
|
353
375
|
DispatchQueue.main.async { [weak self] in
|
|
354
|
-
guard let peer = HMSHelper.
|
|
376
|
+
guard let peer = HMSHelper.getPeerFromPeerId(peerId, remotePeers: self?.hms?.remotePeers) else { return }
|
|
377
|
+
|
|
355
378
|
self?.hms?.sendDirectMessage(type: type, message: message, peer: peer, completion: { message, error in
|
|
356
379
|
if error == nil {
|
|
357
380
|
resolve?(["messageId": message?.messageID ?? "", "data": ["sender": message?.sender?.name ?? "", "message": message?.message ?? "", "type": message?.type]] as [String: Any])
|
|
358
381
|
return
|
|
359
382
|
} else {
|
|
360
|
-
if self?.eventsEnableStatus[HMSConstants.ON_ERROR] == true {
|
|
361
|
-
self?.delegate?.emitEvent(HMSConstants.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
362
|
-
}
|
|
363
383
|
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
364
384
|
return
|
|
365
385
|
}
|
|
@@ -383,13 +403,11 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
383
403
|
if success {
|
|
384
404
|
resolve?(["success": success])
|
|
385
405
|
} else {
|
|
386
|
-
if self?.eventsEnableStatus[HMSConstants.ON_ERROR] == true {
|
|
387
|
-
self?.delegate?.emitEvent(HMSConstants.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
388
|
-
}
|
|
389
406
|
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
390
407
|
}
|
|
391
408
|
})
|
|
392
409
|
self?.recentRoleChangeRequest = nil
|
|
410
|
+
self?.previewForRoleTracks = nil
|
|
393
411
|
}
|
|
394
412
|
}
|
|
395
413
|
|
|
@@ -423,9 +441,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
423
441
|
if success {
|
|
424
442
|
resolve?(["success": success])
|
|
425
443
|
} else {
|
|
426
|
-
if self?.eventsEnableStatus[HMSConstants.ON_ERROR] == true {
|
|
427
|
-
self?.delegate?.emitEvent(HMSConstants.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
428
|
-
}
|
|
429
444
|
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
430
445
|
}
|
|
431
446
|
})
|
|
@@ -461,9 +476,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
461
476
|
if success {
|
|
462
477
|
resolve?(["success": success])
|
|
463
478
|
} else {
|
|
464
|
-
if self?.eventsEnableStatus[HMSConstants.ON_ERROR] == true {
|
|
465
|
-
self?.delegate?.emitEvent(HMSConstants.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
466
|
-
}
|
|
467
479
|
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
468
480
|
}
|
|
469
481
|
}
|
|
@@ -494,9 +506,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
494
506
|
if success {
|
|
495
507
|
resolve?(["success": success])
|
|
496
508
|
} else {
|
|
497
|
-
if self?.eventsEnableStatus[HMSConstants.ON_ERROR] == true {
|
|
498
|
-
self?.delegate?.emitEvent(HMSConstants.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
499
|
-
}
|
|
500
509
|
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
501
510
|
}
|
|
502
511
|
})
|
|
@@ -531,9 +540,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
531
540
|
if success {
|
|
532
541
|
resolve?(["success": success])
|
|
533
542
|
} else {
|
|
534
|
-
if self?.eventsEnableStatus[HMSConstants.ON_ERROR] == true {
|
|
535
|
-
self?.delegate?.emitEvent(HMSConstants.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
536
|
-
}
|
|
537
543
|
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
538
544
|
}
|
|
539
545
|
})
|
|
@@ -557,9 +563,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
557
563
|
guard let remotePeers = self?.hms?.remotePeers,
|
|
558
564
|
let track = HMSHelper.getTrackFromTrackId(trackId, remotePeers)
|
|
559
565
|
else {
|
|
560
|
-
if strongSelf.eventsEnableStatus[HMSConstants.ON_ERROR] == true {
|
|
561
|
-
strongSelf.delegate?.emitEvent(HMSConstants.ON_ERROR, ["error": ["code": 6002, "description": "Track not found", "isTerminal": false, "canRetry": true, "params": ["function": #function]] as [String: Any], "id": strongSelf.id])
|
|
562
|
-
}
|
|
563
566
|
reject?("Track not found", "Track not found", nil)
|
|
564
567
|
return
|
|
565
568
|
}
|
|
@@ -584,25 +587,22 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
584
587
|
|
|
585
588
|
let reason = data.value(forKey: "reason") as? String
|
|
586
589
|
|
|
587
|
-
|
|
590
|
+
HMSHelper.getRemotePeerFromPeerId(peerId, hmsSDK: self.hms) { peer in
|
|
588
591
|
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
}
|
|
592
|
+
DispatchQueue.main.async { [weak self] in
|
|
593
|
+
guard let nonnilPeer = peer else {
|
|
594
|
+
reject?("PEER_NOT_FOUND", "PEER_NOT_FOUND", nil)
|
|
595
|
+
return
|
|
596
|
+
}
|
|
595
597
|
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
self?.delegate?.emitEvent(HMSConstants.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
598
|
+
self?.hms?.removePeer(nonnilPeer, reason: reason ?? "Removed from room", completion: { success, error in
|
|
599
|
+
if success {
|
|
600
|
+
resolve?(["success": success])
|
|
601
|
+
} else {
|
|
602
|
+
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
602
603
|
}
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
})
|
|
604
|
+
})
|
|
605
|
+
}
|
|
606
606
|
}
|
|
607
607
|
}
|
|
608
608
|
|
|
@@ -623,9 +623,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
623
623
|
resolve?(["success": success])
|
|
624
624
|
self?.cleanup() // resetting states and doing data cleanup
|
|
625
625
|
} else {
|
|
626
|
-
if self?.eventsEnableStatus[HMSConstants.ON_ERROR] == true {
|
|
627
|
-
self?.delegate?.emitEvent(HMSConstants.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
628
|
-
}
|
|
629
626
|
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
630
627
|
}
|
|
631
628
|
})
|
|
@@ -704,9 +701,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
704
701
|
resolve?(["success": success])
|
|
705
702
|
return
|
|
706
703
|
} else {
|
|
707
|
-
if self.eventsEnableStatus[HMSConstants.ON_ERROR] == true {
|
|
708
|
-
self.delegate?.emitEvent(HMSConstants.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self.id])
|
|
709
|
-
}
|
|
710
704
|
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
711
705
|
return
|
|
712
706
|
}
|
|
@@ -730,8 +724,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
730
724
|
|
|
731
725
|
if remoteAudioTrack != nil {
|
|
732
726
|
remoteAudioTrack?.setVolume(volume)
|
|
733
|
-
} else if strongSelf.eventsEnableStatus[HMSConstants.ON_ERROR] == true {
|
|
734
|
-
strongSelf.delegate?.emitEvent(HMSConstants.ON_ERROR, ["error": ["code": 6002, "description": "Track not found", "isTerminal": false, "canRetry": true, "params": ["function": #function]] as [String: Any], "id": strongSelf.id])
|
|
735
727
|
}
|
|
736
728
|
}
|
|
737
729
|
}
|
|
@@ -754,9 +746,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
754
746
|
if let meetLink = URL(string: meetingString) {
|
|
755
747
|
meetingUrl = meetLink
|
|
756
748
|
} else {
|
|
757
|
-
if eventsEnableStatus[HMSConstants.ON_ERROR] == true {
|
|
758
|
-
delegate?.emitEvent(HMSConstants.ON_ERROR, ["error": ["code": 6002, "description": "Invalid meeting url passed", "isTerminal": false, "canRetry": true, "params": ["function": #function]] as [String: Any], "id": id])
|
|
759
|
-
}
|
|
760
749
|
reject?("Invalid meeting url passed", "Invalid meeting url passed", nil)
|
|
761
750
|
}
|
|
762
751
|
}
|
|
@@ -769,9 +758,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
769
758
|
resolve?(["success": success])
|
|
770
759
|
return
|
|
771
760
|
} else {
|
|
772
|
-
if self.eventsEnableStatus[HMSConstants.ON_ERROR] == true {
|
|
773
|
-
self.delegate?.emitEvent(HMSConstants.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self.id])
|
|
774
|
-
}
|
|
775
761
|
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
776
762
|
return
|
|
777
763
|
}
|
|
@@ -784,9 +770,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
784
770
|
resolve?(["success": success])
|
|
785
771
|
return
|
|
786
772
|
} else {
|
|
787
|
-
if self.eventsEnableStatus[HMSConstants.ON_ERROR] == true {
|
|
788
|
-
self.delegate?.emitEvent(HMSConstants.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self.id])
|
|
789
|
-
}
|
|
790
773
|
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
791
774
|
return
|
|
792
775
|
}
|
|
@@ -806,9 +789,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
806
789
|
resolve?(["success": success])
|
|
807
790
|
return
|
|
808
791
|
} else {
|
|
809
|
-
if self.eventsEnableStatus[HMSConstants.ON_ERROR] == true {
|
|
810
|
-
self.delegate?.emitEvent(HMSConstants.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self.id])
|
|
811
|
-
}
|
|
812
792
|
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
813
793
|
return
|
|
814
794
|
}
|
|
@@ -821,9 +801,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
821
801
|
resolve?(["success": success])
|
|
822
802
|
return
|
|
823
803
|
} else {
|
|
824
|
-
if self.eventsEnableStatus[HMSConstants.ON_ERROR] == true {
|
|
825
|
-
self.delegate?.emitEvent(HMSConstants.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self.id])
|
|
826
|
-
}
|
|
827
804
|
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
828
805
|
return
|
|
829
806
|
}
|
|
@@ -843,9 +820,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
843
820
|
if success {
|
|
844
821
|
resolve?(["success": success])
|
|
845
822
|
} else {
|
|
846
|
-
if self.eventsEnableStatus[HMSConstants.ON_ERROR] == true {
|
|
847
|
-
self.delegate?.emitEvent(HMSConstants.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self.id])
|
|
848
|
-
}
|
|
849
823
|
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
850
824
|
}
|
|
851
825
|
}
|
|
@@ -887,9 +861,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
887
861
|
|
|
888
862
|
func startScreenshare(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
889
863
|
guard let preferredExtension = preferredExtension else {
|
|
890
|
-
if eventsEnableStatus[HMSConstants.ON_ERROR] == true {
|
|
891
|
-
delegate?.emitEvent(HMSConstants.ON_ERROR, ["error": ["code": 6002, "description": "Could not start screen share, preferredExtension not passed in Build method", "isTerminal": false, "canRetry": true, "params": ["function": #function]] as [String: Any], "id": id])
|
|
892
|
-
}
|
|
893
864
|
reject?("Could not start screen share, preferredExtension not passed in Build method", "Could not start screen share, preferredExtension not passed in Build method", nil)
|
|
894
865
|
return
|
|
895
866
|
}
|
|
@@ -911,9 +882,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
911
882
|
|
|
912
883
|
func stopScreenshare(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
913
884
|
guard let preferredExtension = preferredExtension else {
|
|
914
|
-
if eventsEnableStatus[HMSConstants.ON_ERROR] == true {
|
|
915
|
-
delegate?.emitEvent(HMSConstants.ON_ERROR, ["error": ["code": 6002, "description": "Could not start screen share, preferredExtension not passed in Build method", "isTerminal": false, "canRetry": true, "params": ["function": #function]] as [String: Any], "id": id])
|
|
916
|
-
}
|
|
917
885
|
reject?("Could not start screen share, preferredExtension not passed in Build method", "Could not start screen share, preferredExtension not passed in Build method", nil)
|
|
918
886
|
return
|
|
919
887
|
}
|
|
@@ -937,6 +905,48 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
937
905
|
resolve?(isScreenShared)
|
|
938
906
|
}
|
|
939
907
|
|
|
908
|
+
func raiseLocalPeerHand(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
909
|
+
self.hms?.raiseLocalPeerHand { success, error in
|
|
910
|
+
if error != nil {
|
|
911
|
+
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
912
|
+
return
|
|
913
|
+
}
|
|
914
|
+
resolve?(success)
|
|
915
|
+
}
|
|
916
|
+
}
|
|
917
|
+
|
|
918
|
+
func lowerLocalPeerHand(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
919
|
+
self.hms?.lowerLocalPeerHand { success, error in
|
|
920
|
+
if error != nil {
|
|
921
|
+
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
922
|
+
return
|
|
923
|
+
}
|
|
924
|
+
resolve?(success)
|
|
925
|
+
}
|
|
926
|
+
}
|
|
927
|
+
|
|
928
|
+
func lowerRemotePeerHand(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
929
|
+
guard let peerId = data.value(forKey: "peerId") as? String else {
|
|
930
|
+
let errorMessage = "lowerRemotePeerHand: " + HMSHelper.getUnavailableRequiredKey(data, ["peerId"])
|
|
931
|
+
reject?(errorMessage, errorMessage, nil)
|
|
932
|
+
return
|
|
933
|
+
}
|
|
934
|
+
|
|
935
|
+
guard let remotePeer = HMSHelper.getPeerFromPeerId(peerId, remotePeers: self.hms?.remotePeers) else {
|
|
936
|
+
let errorMessage = "lowerRemotePeerHand: Could not find remote peer with peerID - " + peerId
|
|
937
|
+
reject?(errorMessage, errorMessage, nil)
|
|
938
|
+
return
|
|
939
|
+
}
|
|
940
|
+
|
|
941
|
+
self.hms?.lowerRemotePeerHand(remotePeer) { success, error in
|
|
942
|
+
if error != nil {
|
|
943
|
+
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
944
|
+
return
|
|
945
|
+
}
|
|
946
|
+
resolve?(success)
|
|
947
|
+
}
|
|
948
|
+
}
|
|
949
|
+
|
|
940
950
|
func playAudioShare(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
941
951
|
guard let fileUrl = data.value(forKey: "fileUrl") as? String,
|
|
942
952
|
let audioNodeName = data.value(forKey: "audioNode") as? String,
|
|
@@ -956,21 +966,12 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
956
966
|
try audioFilePlayerNode.play(fileUrl: url, loops: loops, interrupts: interrupts)
|
|
957
967
|
resolve?(["success": true])
|
|
958
968
|
} catch {
|
|
959
|
-
if eventsEnableStatus[HMSConstants.ON_ERROR] == true {
|
|
960
|
-
delegate?.emitEvent(HMSConstants.ON_ERROR, ["error": ["code": 6002, "description": error.localizedDescription, "isTerminal": false, "canRetry": true, "params": ["function": #function]] as [String: Any], "id": id])
|
|
961
|
-
}
|
|
962
969
|
reject?(error.localizedDescription, error.localizedDescription, nil)
|
|
963
970
|
}
|
|
964
971
|
} else {
|
|
965
|
-
if eventsEnableStatus[HMSConstants.ON_ERROR] == true {
|
|
966
|
-
delegate?.emitEvent(HMSConstants.ON_ERROR, ["error": ["code": 6002, "description": "Incorrect url", "isTerminal": false, "canRetry": true, "params": ["function": #function]] as [String: Any], "id": id])
|
|
967
|
-
}
|
|
968
972
|
reject?("Incorrect URL", "Incorrect URL", nil)
|
|
969
973
|
}
|
|
970
974
|
} else {
|
|
971
|
-
if eventsEnableStatus[HMSConstants.ON_ERROR] == true {
|
|
972
|
-
delegate?.emitEvent(HMSConstants.ON_ERROR, ["error": ["code": 6002, "description": "AudioFilePlayerNode not found", "isTerminal": false, "canRetry": true, "params": ["function": #function]] as [String: Any], "id": id])
|
|
973
|
-
}
|
|
974
975
|
reject?("AudioFilePlayerNode not found", "AudioFilePlayerNode not found", nil)
|
|
975
976
|
}
|
|
976
977
|
}
|
|
@@ -1004,8 +1005,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1004
1005
|
}
|
|
1005
1006
|
if let audioFilePlayerNode = playerNode as? HMSAudioFilePlayerNode {
|
|
1006
1007
|
audioFilePlayerNode.stop()
|
|
1007
|
-
} else if eventsEnableStatus[HMSConstants.ON_ERROR] == true {
|
|
1008
|
-
delegate?.emitEvent(HMSConstants.ON_ERROR, ["error": ["code": 6002, "description": "AudioFilePlayerNode not found", "isTerminal": false, "canRetry": true, "params": ["function": #function]] as [String: Any], "id": id])
|
|
1009
1008
|
}
|
|
1010
1009
|
}
|
|
1011
1010
|
|
|
@@ -1026,8 +1025,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1026
1025
|
delegate?.emitEvent(HMSConstants.ON_ERROR, ["error": ["code": 6002, "description": error.localizedDescription, "isTerminal": false, "canRetry": true, "params": ["function": #function]] as [String: Any], "id": id])
|
|
1027
1026
|
}
|
|
1028
1027
|
}
|
|
1029
|
-
} else if eventsEnableStatus[HMSConstants.ON_ERROR] == true {
|
|
1030
|
-
delegate?.emitEvent(HMSConstants.ON_ERROR, ["error": ["code": 6002, "description": "AudioFilePlayerNode not found", "isTerminal": false, "canRetry": true, "params": ["function": #function]] as [String: Any], "id": id])
|
|
1031
1028
|
}
|
|
1032
1029
|
}
|
|
1033
1030
|
|
|
@@ -1042,8 +1039,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1042
1039
|
}
|
|
1043
1040
|
if let audioFilePlayerNode = playerNode as? HMSAudioFilePlayerNode {
|
|
1044
1041
|
audioFilePlayerNode.pause()
|
|
1045
|
-
} else if eventsEnableStatus[HMSConstants.ON_ERROR] == true {
|
|
1046
|
-
delegate?.emitEvent(HMSConstants.ON_ERROR, ["error": ["code": 6002, "description": "AudioFilePlayerNode not found", "isTerminal": false, "canRetry": true, "params": ["function": #function]] as [String: Any], "id": id])
|
|
1047
1042
|
}
|
|
1048
1043
|
}
|
|
1049
1044
|
|
|
@@ -1060,9 +1055,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1060
1055
|
if let audioFilePlayerNode = playerNode as? HMSAudioFilePlayerNode {
|
|
1061
1056
|
resolve?(audioFilePlayerNode.isPlaying)
|
|
1062
1057
|
} else {
|
|
1063
|
-
if eventsEnableStatus[HMSConstants.ON_ERROR] == true {
|
|
1064
|
-
delegate?.emitEvent(HMSConstants.ON_ERROR, ["error": ["code": 6002, "description": "AudioFilePlayerNode not found", "isTerminal": false, "canRetry": true, "params": ["function": #function]] as [String: Any], "id": id])
|
|
1065
|
-
}
|
|
1066
1058
|
reject?("AudioFilePlayerNode not found", "AudioFilePlayerNode not found", nil)
|
|
1067
1059
|
}
|
|
1068
1060
|
}
|
|
@@ -1080,9 +1072,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1080
1072
|
if let audioFilePlayerNode = playerNode as? HMSAudioFilePlayerNode {
|
|
1081
1073
|
resolve?(audioFilePlayerNode.currentTime)
|
|
1082
1074
|
} else {
|
|
1083
|
-
if eventsEnableStatus[HMSConstants.ON_ERROR] == true {
|
|
1084
|
-
delegate?.emitEvent(HMSConstants.ON_ERROR, ["error": ["code": 6002, "description": "AudioFilePlayerNode not found", "isTerminal": false, "canRetry": true, "params": ["function": #function]] as [String: Any] as [String: Any], "id": id])
|
|
1085
|
-
}
|
|
1086
1075
|
reject?("AudioFilePlayerNode not found", "AudioFilePlayerNode not found", nil)
|
|
1087
1076
|
}
|
|
1088
1077
|
}
|
|
@@ -1100,9 +1089,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1100
1089
|
if let audioFilePlayerNode = playerNode as? HMSAudioFilePlayerNode {
|
|
1101
1090
|
resolve?(audioFilePlayerNode.duration)
|
|
1102
1091
|
} else {
|
|
1103
|
-
if eventsEnableStatus[HMSConstants.ON_ERROR] == true {
|
|
1104
|
-
delegate?.emitEvent(HMSConstants.ON_ERROR, ["error": ["code": 6002, "description": "AudioFilePlayerNode not found", "isTerminal": false, "canRetry": true, "params": ["function": #function]] as [String: Any], "id": id])
|
|
1105
|
-
}
|
|
1106
1092
|
reject?("AudioFilePlayerNode not found", "AudioFilePlayerNode not found", nil)
|
|
1107
1093
|
}
|
|
1108
1094
|
}
|
|
@@ -1200,6 +1186,8 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1200
1186
|
}
|
|
1201
1187
|
case "metadata":
|
|
1202
1188
|
return ["metadata": peer.metadata ?? ""]
|
|
1189
|
+
case "isHandRaised":
|
|
1190
|
+
return ["isHandRaised": peer.isHandRaised]
|
|
1203
1191
|
case "role":
|
|
1204
1192
|
return ["role": HMSDecoder.getHmsRole(peer.role)]
|
|
1205
1193
|
case "customerUserID":
|
|
@@ -1361,6 +1349,24 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1361
1349
|
self.delegate?.emitEvent(HMSConstants.ON_ROOM_UPDATE, ["event": HMSConstants.ON_ROOM_UPDATE, "id": self.id, "type": type, "room": roomData])
|
|
1362
1350
|
}
|
|
1363
1351
|
|
|
1352
|
+
func onPeerListUpdate(added: [HMSPeer], removed: [HMSPeer]) {
|
|
1353
|
+
if eventsEnableStatus["ON_PEER_LIST_UPDATED"] != true {
|
|
1354
|
+
return
|
|
1355
|
+
}
|
|
1356
|
+
var addedPeers = [[String: Any]]()
|
|
1357
|
+
var removedPeers = [[String: Any]]()
|
|
1358
|
+
|
|
1359
|
+
for peer in added {
|
|
1360
|
+
addedPeers.append(HMSDecoder.getHmsPeerSubset(peer))
|
|
1361
|
+
}
|
|
1362
|
+
|
|
1363
|
+
for peer in removed {
|
|
1364
|
+
removedPeers.append(HMSDecoder.getHmsPeerSubset(peer))
|
|
1365
|
+
}
|
|
1366
|
+
|
|
1367
|
+
self.delegate?.emitEvent(HMSConstants.ON_PEER_LIST_UPDATED, ["event": HMSConstants.ON_PEER_LIST_UPDATED, "id": self.id, "addedPeers": addedPeers, "removedPeers": removedPeers])
|
|
1368
|
+
}
|
|
1369
|
+
|
|
1364
1370
|
func on(peer: HMSPeer, update: HMSPeerUpdate) {
|
|
1365
1371
|
|
|
1366
1372
|
guard let isPeerUpdateEnabled = eventsEnableStatus[HMSConstants.ON_PEER_UPDATE],
|
|
@@ -1886,11 +1892,90 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1886
1892
|
}
|
|
1887
1893
|
}
|
|
1888
1894
|
|
|
1895
|
+
// MARK: - Peer List Iterator
|
|
1896
|
+
|
|
1897
|
+
func getPeerListIterator(_ data: NSDictionary) -> [AnyHashable: Any]? {
|
|
1898
|
+
guard let uniqueId = data["uniqueId"] as? String else {
|
|
1899
|
+
print("Error in getPeerListIterator: uniqueId is not available")
|
|
1900
|
+
return nil
|
|
1901
|
+
}
|
|
1902
|
+
|
|
1903
|
+
guard let hmssdk = hms else {
|
|
1904
|
+
print("Error in getPeerListIterator: HMSSDK is not available")
|
|
1905
|
+
return nil
|
|
1906
|
+
}
|
|
1907
|
+
|
|
1908
|
+
var peerListIterator: HMSPeerListIterator
|
|
1909
|
+
|
|
1910
|
+
if let peerListIteratorOptions = HMSHelper.getPeerListIteratorOptions(data) {
|
|
1911
|
+
peerListIterator = hmssdk.getPeerListIterator(options: peerListIteratorOptions)
|
|
1912
|
+
} else {
|
|
1913
|
+
peerListIterator = hmssdk.getPeerListIterator()
|
|
1914
|
+
}
|
|
1915
|
+
|
|
1916
|
+
peerListIterators[uniqueId] = peerListIterator
|
|
1917
|
+
|
|
1918
|
+
return [
|
|
1919
|
+
"success": true,
|
|
1920
|
+
"uniqueId": uniqueId,
|
|
1921
|
+
"totalCount": peerListIterator.totalCount
|
|
1922
|
+
]
|
|
1923
|
+
}
|
|
1924
|
+
|
|
1925
|
+
func peerListIteratorHasNext(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
1926
|
+
guard let uniqueId = data["uniqueId"] as? String else {
|
|
1927
|
+
let errorMessage = "\(#function) uniqueId is not available"
|
|
1928
|
+
reject?("6004", errorMessage, nil)
|
|
1929
|
+
return
|
|
1930
|
+
}
|
|
1931
|
+
|
|
1932
|
+
guard let peerListIterator = peerListIterators[uniqueId] else {
|
|
1933
|
+
let errorMessage = "\(#function) HMSPeerListIterator is not available for uniqueId - \(uniqueId)"
|
|
1934
|
+
reject?("6004", errorMessage, nil)
|
|
1935
|
+
return
|
|
1936
|
+
}
|
|
1937
|
+
|
|
1938
|
+
resolve?(peerListIterator.hasNext)
|
|
1939
|
+
}
|
|
1940
|
+
|
|
1941
|
+
func peerListIteratorNext(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
1942
|
+
guard let uniqueId = data["uniqueId"] as? String else {
|
|
1943
|
+
let errorMessage = "\(#function) uniqueId is not available"
|
|
1944
|
+
reject?("6004", errorMessage, nil)
|
|
1945
|
+
return
|
|
1946
|
+
}
|
|
1947
|
+
|
|
1948
|
+
guard let peerListIterator = peerListIterators[uniqueId] else {
|
|
1949
|
+
let errorMessage = "\(#function) HMSPeerListIterator is not available for uniqueId - \(uniqueId)"
|
|
1950
|
+
reject?("6004", errorMessage, nil)
|
|
1951
|
+
return
|
|
1952
|
+
}
|
|
1953
|
+
|
|
1954
|
+
peerListIterator.next { peers, error in
|
|
1955
|
+
if let nonnilError = error {
|
|
1956
|
+
reject?("6004", nonnilError.localizedDescription, nil)
|
|
1957
|
+
return
|
|
1958
|
+
}
|
|
1959
|
+
|
|
1960
|
+
if let nonnilPeers = peers {
|
|
1961
|
+
var data = [[String: Any]]()
|
|
1962
|
+
for peer in nonnilPeers {
|
|
1963
|
+
data.append(HMSDecoder.getHmsPeer(peer))
|
|
1964
|
+
}
|
|
1965
|
+
resolve?(["totalCount": peerListIterator.totalCount, "peers": data])
|
|
1966
|
+
} else {
|
|
1967
|
+
let errorMessage = "\(#function) peers is nil"
|
|
1968
|
+
reject?("6004", errorMessage, nil)
|
|
1969
|
+
}
|
|
1970
|
+
}
|
|
1971
|
+
}
|
|
1972
|
+
|
|
1889
1973
|
// MARK: - Helper Functions
|
|
1890
1974
|
|
|
1891
1975
|
// Handle resetting states and data cleanup
|
|
1892
1976
|
private func cleanup() {
|
|
1893
1977
|
self.recentRoleChangeRequest = nil
|
|
1978
|
+
self.previewForRoleTracks = nil
|
|
1894
1979
|
self.reconnectingStage = false
|
|
1895
1980
|
self.preferredExtension = nil
|
|
1896
1981
|
self.systemBroadcastPicker = nil
|
|
@@ -1902,6 +1987,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1902
1987
|
self.eventsEnableStatus.removeAll()
|
|
1903
1988
|
self.sessionStore = nil
|
|
1904
1989
|
self.sessionStoreChangeObservers.removeAll()
|
|
1990
|
+
self.peerListIterators.removeAll()
|
|
1905
1991
|
HMSDecoder.clearRestrictDataStates()
|
|
1906
1992
|
}
|
|
1907
1993
|
|
|
@@ -1949,9 +2035,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1949
2035
|
|
|
1950
2036
|
func getString(from update: HMSRoomUpdate) -> String {
|
|
1951
2037
|
switch update {
|
|
1952
|
-
case .roomTypeChanged:
|
|
1953
|
-
return "ROOM_PEER_COUNT_UPDATED"
|
|
1954
|
-
case .metaDataUpdated:
|
|
2038
|
+
case .roomTypeChanged, .metaDataUpdated, .peerCountUpdated:
|
|
1955
2039
|
return "ROOM_PEER_COUNT_UPDATED"
|
|
1956
2040
|
case .browserRecordingStateUpdated:
|
|
1957
2041
|
return "BROWSER_RECORDING_STATE_UPDATED"
|