@100mslive/react-native-hms 1.8.0 → 1.9.1-beta.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 -1
- package/android/src/main/java/com/reactnativehmssdk/HMSDecoder.kt +15 -5
- package/android/src/main/java/com/reactnativehmssdk/HMSHLSPlayer.kt +4 -3
- package/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt +43 -5
- package/android/src/main/java/com/reactnativehmssdk/HMSManager.kt +147 -47
- package/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +419 -248
- package/android/src/main/java/com/reactnativehmssdk/HMSView.kt +24 -4
- package/android/src/main/java/com/reactnativehmssdk/HmsScreenshareActivity.kt +1 -1
- package/ios/HMSConstants.swift +1 -0
- package/ios/HMSDecoder.swift +16 -5
- package/ios/HMSHLSPlayerManager.swift +20 -11
- package/ios/HMSHelper.swift +33 -4
- package/ios/HMSManager.m +66 -10
- package/ios/HMSManager.swift +65 -21
- package/ios/HMSRNSDK.swift +244 -100
- 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/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/HMSPIPConfig.js +4 -0
- package/lib/commonjs/classes/HMSPIPConfig.js.map +1 -0
- 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 +152 -8
- 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 +17 -5
- package/lib/commonjs/classes/HmsView.js.map +1 -1
- package/lib/commonjs/components/HMSHLSPlayer/HMSHLSPlayer.js +11 -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 +11 -11
- package/lib/commonjs/components/HMSHLSPlayer/hooks.js.map +1 -1
- package/lib/commonjs/components/HMSHLSPlayer/index.js +8 -1
- package/lib/commonjs/components/HMSHLSPlayer/index.js.map +1 -1
- package/lib/commonjs/hooks/hmsviews.js +17 -0
- package/lib/commonjs/hooks/hmsviews.js.map +1 -0
- package/lib/commonjs/hooks/useHMSPeerUpdates.js +2 -2
- package/lib/commonjs/hooks/useHMSPeerUpdates.js.map +1 -1
- package/lib/commonjs/index.js +10 -3
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/stores/hls-player-playback-slice.js +4 -0
- package/lib/commonjs/stores/hls-player-playback-slice.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 +4 -3
- package/lib/commonjs/stores/hms-store.js.map +1 -1
- package/lib/commonjs/stores/hmsviews-slice.js +19 -0
- package/lib/commonjs/stores/hmsviews-slice.js.map +1 -0
- package/lib/commonjs/stores/types.js +9 -0
- package/lib/commonjs/stores/types.js.map +1 -1
- package/lib/commonjs/types.js +4 -7
- package/lib/commonjs/types.js.map +1 -1
- package/lib/module/classes/HMSPIPConfig.js +2 -0
- package/lib/module/classes/HMSPIPConfig.js.map +1 -0
- 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 +153 -10
- 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/classes/HmsView.js +14 -1
- package/lib/module/classes/HmsView.js.map +1 -1
- package/lib/module/components/HMSHLSPlayer/HMSHLSPlayer.js +9 -6
- package/lib/module/components/HMSHLSPlayer/HMSHLSPlayer.js.map +1 -1
- package/lib/module/components/HMSHLSPlayer/hooks.js +4 -0
- package/lib/module/components/HMSHLSPlayer/hooks.js.map +1 -1
- package/lib/module/components/HMSHLSPlayer/index.js +1 -1
- package/lib/module/components/HMSHLSPlayer/index.js.map +1 -1
- package/lib/module/hooks/hmsviews.js +12 -0
- package/lib/module/hooks/hmsviews.js.map +1 -0
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/stores/hls-player-playback-slice.js +4 -0
- package/lib/module/stores/hls-player-playback-slice.js.map +1 -1
- package/lib/module/stores/hms-store.js +3 -1
- package/lib/module/stores/hms-store.js.map +1 -1
- package/lib/module/stores/hmsviews-slice.js +12 -0
- package/lib/module/stores/hmsviews-slice.js.map +1 -0
- package/lib/module/stores/types.js +9 -0
- package/lib/module/stores/types.js.map +1 -1
- package/lib/module/types.js +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/typescript/classes/HMSPIPConfig.d.ts +7 -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 +47 -8
- package/lib/typescript/classes/HMSUpdateListenerActions.d.ts +2 -1
- package/lib/typescript/components/HMSHLSPlayer/hooks.d.ts +2 -0
- package/lib/typescript/components/HMSHLSPlayer/index.d.ts +1 -1
- package/lib/typescript/hooks/hmsviews.d.ts +3 -0
- package/lib/typescript/index.d.ts +2 -0
- package/lib/typescript/stores/hms-store.d.ts +4 -3
- package/lib/typescript/stores/hmsviews-slice.d.ts +5 -0
- package/lib/typescript/stores/types.d.ts +14 -2
- package/lib/typescript/types.d.ts +9 -5
- package/package.json +3 -1
- package/sdk-versions.json +2 -2
- package/src/classes/HMSPIPConfig.ts +7 -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 +188 -13
- package/src/classes/HMSUpdateListenerActions.ts +1 -0
- package/src/classes/HmsView.tsx +16 -2
- package/src/components/HMSHLSPlayer/HMSHLSPlayer.tsx +11 -5
- package/src/components/HMSHLSPlayer/hooks.ts +7 -0
- package/src/components/HMSHLSPlayer/index.ts +1 -0
- package/src/hooks/hmsviews.ts +13 -0
- package/src/index.ts +2 -0
- package/src/stores/hls-player-playback-slice.ts +3 -0
- package/src/stores/hms-store.ts +2 -0
- package/src/stores/hmsviews-slice.ts +20 -0
- package/src/stores/types.ts +20 -1
- package/src/types.ts +13 -3
- 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
|
@@ -29,6 +29,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
29
29
|
private var eventsEnableStatus: [String: Bool] = [:]
|
|
30
30
|
private var sessionStore: HMSSessionStore?
|
|
31
31
|
private var sessionStoreChangeObservers = [String: NSObjectProtocol]()
|
|
32
|
+
private var peerListIterators = [String: HMSPeerListIterator]()
|
|
32
33
|
|
|
33
34
|
// MARK: - Setup
|
|
34
35
|
init(data: NSDictionary?, delegate manager: HMSManager?, uid id: String) {
|
|
@@ -124,7 +125,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
124
125
|
guard let role = data.value(forKey: "role") as? String
|
|
125
126
|
else {
|
|
126
127
|
let errorMessage = "previewForRole: " + HMSHelper.getUnavailableRequiredKey(data, ["role"])
|
|
127
|
-
emitRequiredKeysError(errorMessage)
|
|
128
128
|
reject?(errorMessage, errorMessage, nil)
|
|
129
129
|
return
|
|
130
130
|
}
|
|
@@ -210,8 +210,8 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
210
210
|
DispatchQueue.main.async { [weak self] in
|
|
211
211
|
self?.hms?.getAuthTokenByRoomCode(roomCode, userID: userId) { token, error in
|
|
212
212
|
// error occurred
|
|
213
|
-
if error
|
|
214
|
-
reject?(error
|
|
213
|
+
if let error = error as? NSError {
|
|
214
|
+
reject?(String(error.code), error.localizedDescription, nil)
|
|
215
215
|
return
|
|
216
216
|
}
|
|
217
217
|
// no error and token is valid
|
|
@@ -228,44 +228,48 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
228
228
|
}
|
|
229
229
|
}
|
|
230
230
|
|
|
231
|
-
func setLocalMute(_ data: NSDictionary) {
|
|
231
|
+
func setLocalMute(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
232
232
|
guard let isMute = data.value(forKey: "isMute") as? Bool
|
|
233
233
|
else {
|
|
234
234
|
let errorMessage = "setLocalMute: " + HMSHelper.getUnavailableRequiredKey(data, ["isMute"])
|
|
235
|
-
|
|
235
|
+
reject?(errorMessage, errorMessage, nil)
|
|
236
236
|
return
|
|
237
237
|
}
|
|
238
238
|
|
|
239
239
|
DispatchQueue.main.async { [weak self] in
|
|
240
240
|
if let audioTrack = self?.hms?.localPeer?.localAudioTrack() {
|
|
241
241
|
audioTrack.setMute(isMute)
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
242
|
+
resolve?(true)
|
|
243
|
+
} else if let tracks = self?.previewForRoleTracks, let audioTrack = tracks.first(where: { $0.kind == HMSTrackKind.audio }) as? HMSLocalAudioTrack {
|
|
244
|
+
audioTrack.setMute(isMute)
|
|
245
|
+
resolve?(true)
|
|
246
246
|
} else {
|
|
247
|
-
|
|
247
|
+
let errorMessage = "setLocalMute: No local audio track available for setting mute state."
|
|
248
|
+
print(#function, errorMessage)
|
|
249
|
+
reject?(errorMessage, errorMessage, nil)
|
|
248
250
|
}
|
|
249
251
|
}
|
|
250
252
|
}
|
|
251
253
|
|
|
252
|
-
func setLocalVideoMute(_ data: NSDictionary) {
|
|
254
|
+
func setLocalVideoMute(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
253
255
|
guard let isMute = data.value(forKey: "isMute") as? Bool
|
|
254
256
|
else {
|
|
255
257
|
let errorMessage = "setLocalVideoMute: " + HMSHelper.getUnavailableRequiredKey(data, ["isMute"])
|
|
256
|
-
|
|
258
|
+
reject?(errorMessage, errorMessage, nil)
|
|
257
259
|
return
|
|
258
260
|
}
|
|
259
261
|
|
|
260
262
|
DispatchQueue.main.async { [weak self] in
|
|
261
263
|
if let videoTrack = self?.hms?.localPeer?.localVideoTrack() {
|
|
262
264
|
videoTrack.setMute(isMute)
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
265
|
+
resolve?(true)
|
|
266
|
+
} else if let tracks = self?.previewForRoleTracks, let videoTrack = tracks.first(where: { $0.kind == HMSTrackKind.video }) as? HMSLocalVideoTrack {
|
|
267
|
+
videoTrack.setMute(isMute)
|
|
268
|
+
resolve?(true)
|
|
267
269
|
} else {
|
|
268
|
-
|
|
270
|
+
let errorMessage = "setLocalVideoMute: No local video track available for setting mute state."
|
|
271
|
+
print(#function, errorMessage)
|
|
272
|
+
reject?(errorMessage, errorMessage, nil)
|
|
269
273
|
}
|
|
270
274
|
}
|
|
271
275
|
}
|
|
@@ -287,24 +291,27 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
287
291
|
func leave(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
288
292
|
DispatchQueue.main.async { [weak self] in
|
|
289
293
|
guard let strongSelf = self else {
|
|
290
|
-
|
|
294
|
+
let errorMessage = "\(#function): Could not find reference to self while executing Room leave"
|
|
295
|
+
print(#function, errorMessage)
|
|
296
|
+
reject?(errorMessage, errorMessage, nil)
|
|
291
297
|
return
|
|
292
298
|
}
|
|
293
299
|
|
|
294
300
|
strongSelf.hms?.leave { [weak self] success, error in
|
|
295
301
|
|
|
296
302
|
guard let strongSelf = self else {
|
|
297
|
-
|
|
303
|
+
let errorMessage = "\(#function): Could not find reference to self when callback is received while executing Room leave"
|
|
304
|
+
print(#function, errorMessage)
|
|
305
|
+
reject?(errorMessage, errorMessage, nil)
|
|
298
306
|
return
|
|
299
307
|
}
|
|
300
308
|
|
|
301
|
-
if
|
|
309
|
+
if let nonnilError = error {
|
|
310
|
+
reject?(nonnilError.localizedDescription, nonnilError.localizedDescription, nil)
|
|
311
|
+
} else if success {
|
|
302
312
|
resolve?(["success": success])
|
|
303
313
|
strongSelf.cleanup() // resetting states and doing data cleanup
|
|
304
314
|
} else {
|
|
305
|
-
if strongSelf.eventsEnableStatus[HMSConstants.ON_ERROR] == true {
|
|
306
|
-
strongSelf.delegate?.emitEvent(HMSConstants.ON_ERROR, ["error": HMSDecoder.getError(error), "id": strongSelf.id])
|
|
307
|
-
}
|
|
308
315
|
reject?("error in leave", "error in leave", nil)
|
|
309
316
|
}
|
|
310
317
|
}
|
|
@@ -315,7 +322,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
315
322
|
guard let message = data.value(forKey: "message") as? String
|
|
316
323
|
else {
|
|
317
324
|
let errorMessage = "sendBroadcastMessage: " + HMSHelper.getUnavailableRequiredKey(data, ["message"])
|
|
318
|
-
emitRequiredKeysError(errorMessage)
|
|
319
325
|
reject?(errorMessage, errorMessage, nil)
|
|
320
326
|
return
|
|
321
327
|
}
|
|
@@ -340,7 +346,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
340
346
|
let targetedRoles = data.value(forKey: "roles") as? [String]
|
|
341
347
|
else {
|
|
342
348
|
let errorMessage = "sendGroupMessage: " + HMSHelper.getUnavailableRequiredKey(data, ["message", "roles"])
|
|
343
|
-
emitRequiredKeysError(errorMessage)
|
|
344
349
|
reject?(errorMessage, errorMessage, nil)
|
|
345
350
|
return
|
|
346
351
|
}
|
|
@@ -365,14 +370,14 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
365
370
|
let peerId = data.value(forKey: "peerId") as? String
|
|
366
371
|
else {
|
|
367
372
|
let errorMessage = "sendDirectMessage: " + HMSHelper.getUnavailableRequiredKey(data, ["message", "peerId"])
|
|
368
|
-
emitRequiredKeysError(errorMessage)
|
|
369
373
|
reject?(errorMessage, errorMessage, nil)
|
|
370
374
|
return
|
|
371
375
|
}
|
|
372
376
|
|
|
373
377
|
let type = data.value(forKey: "type") as? String ?? "chat"
|
|
374
378
|
DispatchQueue.main.async { [weak self] in
|
|
375
|
-
guard let peer = HMSHelper.
|
|
379
|
+
guard let peer = HMSHelper.getPeerFromPeerId(peerId, remotePeers: self?.hms?.remotePeers) else { return }
|
|
380
|
+
|
|
376
381
|
self?.hms?.sendDirectMessage(type: type, message: message, peer: peer, completion: { message, error in
|
|
377
382
|
if error == nil {
|
|
378
383
|
resolve?(["messageId": message?.messageID ?? "", "data": ["sender": message?.sender?.name ?? "", "message": message?.message ?? "", "type": message?.type]] as [String: Any])
|
|
@@ -392,7 +397,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
392
397
|
guard let request = self?.recentRoleChangeRequest
|
|
393
398
|
else {
|
|
394
399
|
let errorMessage = "acceptRoleChange: recentRoleChangeRequest not found"
|
|
395
|
-
self?.emitRequiredKeysError(errorMessage)
|
|
396
400
|
reject?(errorMessage, errorMessage, nil)
|
|
397
401
|
return
|
|
398
402
|
}
|
|
@@ -415,7 +419,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
415
419
|
let role = data.value(forKey: "role") as? String
|
|
416
420
|
else {
|
|
417
421
|
let errorMessage = "changeRole: " + HMSHelper.getUnavailableRequiredKey(data, ["peerId", "role"])
|
|
418
|
-
emitRequiredKeysError(errorMessage)
|
|
419
422
|
reject?(errorMessage, errorMessage, nil)
|
|
420
423
|
return
|
|
421
424
|
}
|
|
@@ -450,7 +453,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
450
453
|
guard let toRoleString = data.object(forKey: "toRole") as? String
|
|
451
454
|
else {
|
|
452
455
|
let errorMessage = "changeRolesOfAllPeers: " + HMSHelper.getUnavailableRequiredKey(data, ["toRole"])
|
|
453
|
-
emitRequiredKeysError(errorMessage)
|
|
454
456
|
reject?(errorMessage, errorMessage, nil)
|
|
455
457
|
return
|
|
456
458
|
}
|
|
@@ -459,7 +461,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
459
461
|
|
|
460
462
|
guard let toRole = HMSHelper.getRoleFromRoleName(toRoleString, roles: self?.hms?.roles) else {
|
|
461
463
|
let errorMessage = "changeRolesOfAllPeers: " + HMSHelper.getUnavailableRequiredKey(data, ["toRole"])
|
|
462
|
-
self?.emitRequiredKeysError(errorMessage)
|
|
463
464
|
reject?(errorMessage, errorMessage, nil)
|
|
464
465
|
return
|
|
465
466
|
}
|
|
@@ -485,7 +486,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
485
486
|
guard let trackId = data.value(forKey: "trackId") as? String
|
|
486
487
|
else {
|
|
487
488
|
let errorMessage = "changeTrackState: " + HMSHelper.getUnavailableRequiredKey(data, ["trackId"])
|
|
488
|
-
emitRequiredKeysError(errorMessage)
|
|
489
489
|
reject?(errorMessage, errorMessage, nil)
|
|
490
490
|
return
|
|
491
491
|
}
|
|
@@ -515,7 +515,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
515
515
|
guard let mute = data.value(forKey: "mute") as? Bool
|
|
516
516
|
else {
|
|
517
517
|
let errorMessage = "changeTrackStateForRoles: " + HMSHelper.getUnavailableRequiredKey(data, ["mute"])
|
|
518
|
-
emitRequiredKeysError(errorMessage)
|
|
519
518
|
reject?(errorMessage, errorMessage, nil)
|
|
520
519
|
return
|
|
521
520
|
}
|
|
@@ -548,7 +547,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
548
547
|
guard let trackId = data.value(forKey: "trackId") as? String
|
|
549
548
|
else {
|
|
550
549
|
let errorMessage = "isMute: " + HMSHelper.getUnavailableRequiredKey(data, ["trackId"])
|
|
551
|
-
emitRequiredKeysError(errorMessage)
|
|
552
550
|
reject?(errorMessage, errorMessage, nil)
|
|
553
551
|
return
|
|
554
552
|
}
|
|
@@ -578,29 +576,28 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
578
576
|
guard let peerId = data.value(forKey: "peerId") as? String
|
|
579
577
|
else {
|
|
580
578
|
let errorMessage = "removePeer: " + HMSHelper.getUnavailableRequiredKey(data, ["peerId"])
|
|
581
|
-
emitRequiredKeysError(errorMessage)
|
|
582
579
|
reject?(errorMessage, errorMessage, nil)
|
|
583
580
|
return
|
|
584
581
|
}
|
|
585
582
|
|
|
586
583
|
let reason = data.value(forKey: "reason") as? String
|
|
587
584
|
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
guard let remotePeers = self?.hms?.remotePeers,
|
|
591
|
-
let peer = HMSHelper.getRemotePeerFromPeerId(peerId, remotePeers: remotePeers)
|
|
592
|
-
else {
|
|
593
|
-
reject?("PEER_NOT_FOUND", "PEER_NOT_FOUND", nil)
|
|
594
|
-
return
|
|
595
|
-
}
|
|
585
|
+
HMSHelper.getRemotePeerFromPeerId(peerId, hmsSDK: self.hms) { peer in
|
|
596
586
|
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
587
|
+
DispatchQueue.main.async { [weak self] in
|
|
588
|
+
guard let nonnilPeer = peer else {
|
|
589
|
+
reject?("PEER_NOT_FOUND", "PEER_NOT_FOUND", nil)
|
|
590
|
+
return
|
|
602
591
|
}
|
|
603
|
-
|
|
592
|
+
|
|
593
|
+
self?.hms?.removePeer(nonnilPeer, reason: reason ?? "Removed from room", completion: { success, error in
|
|
594
|
+
if success {
|
|
595
|
+
resolve?(["success": success])
|
|
596
|
+
} else {
|
|
597
|
+
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
598
|
+
}
|
|
599
|
+
})
|
|
600
|
+
}
|
|
604
601
|
}
|
|
605
602
|
}
|
|
606
603
|
|
|
@@ -610,7 +607,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
610
607
|
let reason = data.value(forKey: "reason") as? String
|
|
611
608
|
else {
|
|
612
609
|
let errorMessage = "endRoom: " + HMSHelper.getUnavailableRequiredKey(data, ["lock", "reason"])
|
|
613
|
-
emitRequiredKeysError(errorMessage)
|
|
614
610
|
reject?(errorMessage, errorMessage, nil)
|
|
615
611
|
return
|
|
616
612
|
}
|
|
@@ -631,7 +627,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
631
627
|
guard let trackId = data.value(forKey: "trackId") as? String
|
|
632
628
|
else {
|
|
633
629
|
let errorMessage = "isPlaybackAllowed: " + HMSHelper.getUnavailableRequiredKey(data, ["trackId"])
|
|
634
|
-
emitRequiredKeysError(errorMessage)
|
|
635
630
|
reject?(errorMessage, errorMessage, nil)
|
|
636
631
|
return
|
|
637
632
|
}
|
|
@@ -658,29 +653,35 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
658
653
|
}
|
|
659
654
|
}
|
|
660
655
|
|
|
661
|
-
func setPlaybackAllowed(_ data: NSDictionary) {
|
|
656
|
+
func setPlaybackAllowed(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
662
657
|
guard let trackId = data.value(forKey: "trackId") as? String,
|
|
663
658
|
let playbackAllowed = data.value(forKey: "playbackAllowed") as? Bool
|
|
664
659
|
else {
|
|
665
660
|
let errorMessage = "setPlaybackAllowed: " + HMSHelper.getUnavailableRequiredKey(data, ["trackId", "playbackAllowed"])
|
|
666
|
-
|
|
661
|
+
reject?(errorMessage, errorMessage, nil)
|
|
667
662
|
return
|
|
668
663
|
}
|
|
664
|
+
|
|
669
665
|
DispatchQueue.main.async { [weak self] in
|
|
670
666
|
guard let remotePeers = self?.hms?.remotePeers
|
|
671
667
|
else {
|
|
668
|
+
let errorMessage = "setPlaybackAllowed: No remote peers found"
|
|
669
|
+
reject?(errorMessage, errorMessage, nil)
|
|
672
670
|
return
|
|
673
671
|
}
|
|
672
|
+
|
|
674
673
|
let remoteAudioTrack = HMSHelper.getRemoteAudioTrackFromTrackId(trackId, remotePeers)
|
|
675
674
|
let remoteVideoTrack = HMSHelper.getRemoteVideoTrackFromTrackId(trackId, remotePeers)
|
|
675
|
+
|
|
676
676
|
if remoteAudioTrack != nil {
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
} else {
|
|
680
|
-
remoteAudioTrack?.setPlaybackAllowed(playbackAllowed)
|
|
681
|
-
}
|
|
677
|
+
remoteAudioTrack?.setPlaybackAllowed(playbackAllowed)
|
|
678
|
+
resolve?(true)
|
|
682
679
|
} else if remoteVideoTrack != nil {
|
|
683
680
|
remoteVideoTrack?.setPlaybackAllowed(playbackAllowed)
|
|
681
|
+
resolve?(true)
|
|
682
|
+
} else {
|
|
683
|
+
let errorMessage = "setPlaybackAllowed: No remote audio or video track to set playback"
|
|
684
|
+
reject?(errorMessage, errorMessage, nil)
|
|
684
685
|
}
|
|
685
686
|
}
|
|
686
687
|
}
|
|
@@ -689,7 +690,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
689
690
|
guard let metadata = data.value(forKey: "metadata") as? String
|
|
690
691
|
else {
|
|
691
692
|
let errorMessage = "changeMetadata: " + HMSHelper.getUnavailableRequiredKey(data, ["metadata"])
|
|
692
|
-
emitRequiredKeysError(errorMessage)
|
|
693
693
|
reject?(errorMessage, errorMessage, nil)
|
|
694
694
|
return
|
|
695
695
|
}
|
|
@@ -705,23 +705,27 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
705
705
|
})
|
|
706
706
|
}
|
|
707
707
|
|
|
708
|
-
func setVolume(_ data: NSDictionary) {
|
|
708
|
+
func setVolume(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
709
709
|
guard let trackId = data.value(forKey: "trackId") as? String,
|
|
710
710
|
let volume = data.value(forKey: "volume") as? Double
|
|
711
711
|
else {
|
|
712
712
|
let errorMessage = "setVolume: " + HMSHelper.getUnavailableRequiredKey(data, ["trackId", "volume"])
|
|
713
|
-
|
|
713
|
+
reject?(errorMessage, errorMessage, nil)
|
|
714
714
|
return
|
|
715
715
|
}
|
|
716
716
|
|
|
717
717
|
DispatchQueue.main.async { [weak self] in
|
|
718
718
|
guard let strongSelf = self else { return }
|
|
719
|
-
let remotePeers =
|
|
719
|
+
let remotePeers = strongSelf.hms?.remotePeers
|
|
720
720
|
|
|
721
721
|
let remoteAudioTrack = HMSHelper.getRemoteAudioAuxiliaryTrackFromTrackId(trackId, remotePeers)
|
|
722
722
|
|
|
723
723
|
if remoteAudioTrack != nil {
|
|
724
724
|
remoteAudioTrack?.setVolume(volume)
|
|
725
|
+
resolve?(true)
|
|
726
|
+
} else {
|
|
727
|
+
let errorMessage = "setVolume: No remote audio track not available"
|
|
728
|
+
reject?(errorMessage, errorMessage, nil)
|
|
725
729
|
}
|
|
726
730
|
}
|
|
727
731
|
}
|
|
@@ -730,7 +734,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
730
734
|
guard let record = data.value(forKey: "record") as? Bool
|
|
731
735
|
else {
|
|
732
736
|
let errorMessage = "startRTMPOrRecording: " + HMSHelper.getUnavailableRequiredKey(data, ["record"])
|
|
733
|
-
emitRequiredKeysError(errorMessage)
|
|
734
737
|
reject?(errorMessage, errorMessage, nil)
|
|
735
738
|
return
|
|
736
739
|
}
|
|
@@ -745,6 +748,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
745
748
|
meetingUrl = meetLink
|
|
746
749
|
} else {
|
|
747
750
|
reject?("Invalid meeting url passed", "Invalid meeting url passed", nil)
|
|
751
|
+
return
|
|
748
752
|
}
|
|
749
753
|
}
|
|
750
754
|
|
|
@@ -809,7 +813,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
809
813
|
guard let name = data.value(forKey: "name") as? String
|
|
810
814
|
else {
|
|
811
815
|
let errorMessage = "changeName: " + HMSHelper.getUnavailableRequiredKey(data, ["name"])
|
|
812
|
-
emitRequiredKeysError(errorMessage)
|
|
813
816
|
reject?(errorMessage, errorMessage, nil)
|
|
814
817
|
return
|
|
815
818
|
}
|
|
@@ -841,18 +844,23 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
841
844
|
}
|
|
842
845
|
}
|
|
843
846
|
|
|
844
|
-
func setPlaybackForAllAudio(_ data: NSDictionary) {
|
|
847
|
+
func setPlaybackForAllAudio(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
845
848
|
guard let mute = data.value(forKey: "mute") as? Bool
|
|
846
849
|
else {
|
|
847
|
-
let errorMessage = "setPlaybackForAllAudio: " + HMSHelper.getUnavailableRequiredKey(data, ["
|
|
848
|
-
|
|
850
|
+
let errorMessage = "setPlaybackForAllAudio: " + HMSHelper.getUnavailableRequiredKey(data, ["mute"])
|
|
851
|
+
reject?(errorMessage, errorMessage, nil)
|
|
849
852
|
return
|
|
850
853
|
}
|
|
851
854
|
|
|
852
855
|
DispatchQueue.main.async { [weak self] in
|
|
853
|
-
let remotePeers = self?.hms?.remotePeers
|
|
854
|
-
|
|
855
|
-
|
|
856
|
+
if let remotePeers = self?.hms?.remotePeers {
|
|
857
|
+
for peer in remotePeers {
|
|
858
|
+
peer.remoteAudioTrack()?.setPlaybackAllowed(!mute)
|
|
859
|
+
}
|
|
860
|
+
resolve?(true)
|
|
861
|
+
} else {
|
|
862
|
+
let errorMessage = "setPlaybackForAllAudio: No Audio is available to set playback"
|
|
863
|
+
reject?(errorMessage, errorMessage, nil)
|
|
856
864
|
}
|
|
857
865
|
}
|
|
858
866
|
}
|
|
@@ -903,6 +911,48 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
903
911
|
resolve?(isScreenShared)
|
|
904
912
|
}
|
|
905
913
|
|
|
914
|
+
func raiseLocalPeerHand(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
915
|
+
self.hms?.raiseLocalPeerHand { success, error in
|
|
916
|
+
if error != nil {
|
|
917
|
+
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
918
|
+
return
|
|
919
|
+
}
|
|
920
|
+
resolve?(success)
|
|
921
|
+
}
|
|
922
|
+
}
|
|
923
|
+
|
|
924
|
+
func lowerLocalPeerHand(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
925
|
+
self.hms?.lowerLocalPeerHand { success, error in
|
|
926
|
+
if error != nil {
|
|
927
|
+
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
928
|
+
return
|
|
929
|
+
}
|
|
930
|
+
resolve?(success)
|
|
931
|
+
}
|
|
932
|
+
}
|
|
933
|
+
|
|
934
|
+
func lowerRemotePeerHand(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
935
|
+
guard let peerId = data.value(forKey: "peerId") as? String else {
|
|
936
|
+
let errorMessage = "lowerRemotePeerHand: " + HMSHelper.getUnavailableRequiredKey(data, ["peerId"])
|
|
937
|
+
reject?(errorMessage, errorMessage, nil)
|
|
938
|
+
return
|
|
939
|
+
}
|
|
940
|
+
|
|
941
|
+
guard let remotePeer = HMSHelper.getPeerFromPeerId(peerId, remotePeers: self.hms?.remotePeers) else {
|
|
942
|
+
let errorMessage = "lowerRemotePeerHand: Could not find remote peer with peerID - " + peerId
|
|
943
|
+
reject?(errorMessage, errorMessage, nil)
|
|
944
|
+
return
|
|
945
|
+
}
|
|
946
|
+
|
|
947
|
+
self.hms?.lowerRemotePeerHand(remotePeer) { success, error in
|
|
948
|
+
if error != nil {
|
|
949
|
+
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
950
|
+
return
|
|
951
|
+
}
|
|
952
|
+
resolve?(success)
|
|
953
|
+
}
|
|
954
|
+
}
|
|
955
|
+
|
|
906
956
|
func playAudioShare(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
907
957
|
guard let fileUrl = data.value(forKey: "fileUrl") as? String,
|
|
908
958
|
let audioNodeName = data.value(forKey: "audioNode") as? String,
|
|
@@ -910,7 +960,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
910
960
|
let playerNode = audioMixerSourceMap[audioNodeName]
|
|
911
961
|
else {
|
|
912
962
|
let errorMessage = "playAudioShare: " + HMSHelper.getUnavailableRequiredKey(data, ["audioNode", "fileUrl"])
|
|
913
|
-
emitRequiredKeysError(errorMessage)
|
|
914
963
|
reject?(errorMessage, errorMessage, nil)
|
|
915
964
|
return
|
|
916
965
|
}
|
|
@@ -932,14 +981,14 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
932
981
|
}
|
|
933
982
|
}
|
|
934
983
|
|
|
935
|
-
func setAudioShareVolume(_ data: NSDictionary) {
|
|
984
|
+
func setAudioShareVolume(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
936
985
|
guard let volume = data.value(forKey: "volume") as? NSNumber,
|
|
937
986
|
let audioNodeName = data.value(forKey: "audioNode") as? String,
|
|
938
987
|
let audioMixerSourceMap = HMSHelper.getAudioMixerSourceMap(),
|
|
939
988
|
let playerNode = audioMixerSourceMap[audioNodeName]
|
|
940
989
|
else {
|
|
941
990
|
let errorMessage = "setAudioShareVolume: " + HMSHelper.getUnavailableRequiredKey(data, ["audioNode", "volume"])
|
|
942
|
-
|
|
991
|
+
reject?(errorMessage, errorMessage, nil)
|
|
943
992
|
return
|
|
944
993
|
}
|
|
945
994
|
if let audioMicNode = playerNode as? HMSMicNode {
|
|
@@ -948,53 +997,64 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
948
997
|
if let audioFilePlayerNode = playerNode as? HMSAudioFilePlayerNode {
|
|
949
998
|
audioFilePlayerNode.volume = volume.floatValue
|
|
950
999
|
}
|
|
1000
|
+
resolve?(true)
|
|
951
1001
|
}
|
|
952
1002
|
|
|
953
|
-
func stopAudioShare(_ data: NSDictionary) {
|
|
1003
|
+
func stopAudioShare(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
954
1004
|
guard let audioNodeName = data.value(forKey: "audioNode") as? String,
|
|
955
1005
|
let audioMixerSourceMap = HMSHelper.getAudioMixerSourceMap(),
|
|
956
1006
|
let playerNode = audioMixerSourceMap[audioNodeName]
|
|
957
1007
|
else {
|
|
958
1008
|
let errorMessage = "stopAudioShare: " + HMSHelper.getUnavailableRequiredKey(data, ["audioNode"])
|
|
959
|
-
|
|
1009
|
+
reject?(errorMessage, errorMessage, nil)
|
|
960
1010
|
return
|
|
961
1011
|
}
|
|
962
1012
|
if let audioFilePlayerNode = playerNode as? HMSAudioFilePlayerNode {
|
|
963
1013
|
audioFilePlayerNode.stop()
|
|
1014
|
+
resolve?(true)
|
|
1015
|
+
} else {
|
|
1016
|
+
let errorMessage = "stopAudioShare: HMSAudioFilePlayerNode not available!"
|
|
1017
|
+
reject?(errorMessage, errorMessage, nil)
|
|
964
1018
|
}
|
|
965
1019
|
}
|
|
966
1020
|
|
|
967
|
-
func resumeAudioShare(_ data: NSDictionary) {
|
|
1021
|
+
func resumeAudioShare(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
968
1022
|
guard let audioNodeName = data.value(forKey: "audioNode") as? String,
|
|
969
1023
|
let audioMixerSourceMap = HMSHelper.getAudioMixerSourceMap(),
|
|
970
1024
|
let playerNode = audioMixerSourceMap[audioNodeName]
|
|
971
1025
|
else {
|
|
972
1026
|
let errorMessage = "resumeAudioShare: " + HMSHelper.getUnavailableRequiredKey(data, ["audioNode"])
|
|
973
|
-
|
|
1027
|
+
reject?(errorMessage, errorMessage, nil)
|
|
974
1028
|
return
|
|
975
1029
|
}
|
|
976
1030
|
if let audioFilePlayerNode = playerNode as? HMSAudioFilePlayerNode {
|
|
977
1031
|
do {
|
|
978
1032
|
try audioFilePlayerNode.resume()
|
|
1033
|
+
resolve?(true)
|
|
979
1034
|
} catch {
|
|
980
|
-
|
|
981
|
-
delegate?.emitEvent(HMSConstants.ON_ERROR, ["error": ["code": 6002, "description": error.localizedDescription, "isTerminal": false, "canRetry": true, "params": ["function": #function]] as [String: Any], "id": id])
|
|
982
|
-
}
|
|
1035
|
+
reject?(error.localizedDescription, error.localizedDescription, nil)
|
|
983
1036
|
}
|
|
1037
|
+
} else {
|
|
1038
|
+
let errorMessage = "resumeAudioShare: HMSAudioFilePlayerNode not available!"
|
|
1039
|
+
reject?(errorMessage, errorMessage, nil)
|
|
984
1040
|
}
|
|
985
1041
|
}
|
|
986
1042
|
|
|
987
|
-
func pauseAudioShare(_ data: NSDictionary) {
|
|
1043
|
+
func pauseAudioShare(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
988
1044
|
guard let audioNodeName = data.value(forKey: "audioNode") as? String,
|
|
989
1045
|
let audioMixerSourceMap = HMSHelper.getAudioMixerSourceMap(),
|
|
990
1046
|
let playerNode = audioMixerSourceMap[audioNodeName]
|
|
991
1047
|
else {
|
|
992
1048
|
let errorMessage = "pauseAudioShare: " + HMSHelper.getUnavailableRequiredKey(data, ["audioNode"])
|
|
993
|
-
|
|
1049
|
+
reject?(errorMessage, errorMessage, nil)
|
|
994
1050
|
return
|
|
995
1051
|
}
|
|
996
1052
|
if let audioFilePlayerNode = playerNode as? HMSAudioFilePlayerNode {
|
|
997
1053
|
audioFilePlayerNode.pause()
|
|
1054
|
+
resolve?(true)
|
|
1055
|
+
} else {
|
|
1056
|
+
let errorMessage = "pauseAudioShare: HMSAudioFilePlayerNode not available!"
|
|
1057
|
+
reject?(errorMessage, errorMessage, nil)
|
|
998
1058
|
}
|
|
999
1059
|
}
|
|
1000
1060
|
|
|
@@ -1004,7 +1064,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1004
1064
|
let playerNode = audioMixerSourceMap[audioNodeName]
|
|
1005
1065
|
else {
|
|
1006
1066
|
let errorMessage = "pauseAudioShare: " + HMSHelper.getUnavailableRequiredKey(data, ["audioNode"])
|
|
1007
|
-
emitRequiredKeysError(errorMessage)
|
|
1008
1067
|
reject?(errorMessage, errorMessage, nil)
|
|
1009
1068
|
return
|
|
1010
1069
|
}
|
|
@@ -1021,7 +1080,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1021
1080
|
let playerNode = audioMixerSourceMap[audioNodeName]
|
|
1022
1081
|
else {
|
|
1023
1082
|
let errorMessage = "pauseAudioShare: " + HMSHelper.getUnavailableRequiredKey(data, ["audioNode"])
|
|
1024
|
-
emitRequiredKeysError(errorMessage)
|
|
1025
1083
|
reject?(errorMessage, errorMessage, nil)
|
|
1026
1084
|
return
|
|
1027
1085
|
}
|
|
@@ -1038,7 +1096,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1038
1096
|
let playerNode = audioMixerSourceMap[audioNodeName]
|
|
1039
1097
|
else {
|
|
1040
1098
|
let errorMessage = "pauseAudioShare: " + HMSHelper.getUnavailableRequiredKey(data, ["audioNode"])
|
|
1041
|
-
emitRequiredKeysError(errorMessage)
|
|
1042
1099
|
reject?(errorMessage, errorMessage, nil)
|
|
1043
1100
|
return
|
|
1044
1101
|
}
|
|
@@ -1060,7 +1117,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1060
1117
|
func enableEvent(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
1061
1118
|
guard let eventType = data.value(forKey: "eventType") as? String else {
|
|
1062
1119
|
let errorMessage = "enableEvent: " + HMSHelper.getUnavailableRequiredKey(data, ["eventType"])
|
|
1063
|
-
emitRequiredKeysError(errorMessage)
|
|
1064
1120
|
reject?(errorMessage, errorMessage, nil)
|
|
1065
1121
|
return
|
|
1066
1122
|
}
|
|
@@ -1072,7 +1128,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1072
1128
|
func disableEvent(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
1073
1129
|
guard let eventType = data.value(forKey: "eventType") as? String else {
|
|
1074
1130
|
let errorMessage = "disableEvent: " + HMSHelper.getUnavailableRequiredKey(data, ["eventType"])
|
|
1075
|
-
emitRequiredKeysError(errorMessage)
|
|
1076
1131
|
reject?(errorMessage, errorMessage, nil)
|
|
1077
1132
|
return
|
|
1078
1133
|
}
|
|
@@ -1081,14 +1136,15 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1081
1136
|
resolve?(["success": true, "message": "function call executed successfully"] as [String: Any])
|
|
1082
1137
|
}
|
|
1083
1138
|
|
|
1084
|
-
func restrictData(_ data: NSDictionary) {
|
|
1139
|
+
func restrictData(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
1085
1140
|
guard let roleName = data.value(forKey: "roleName") as? String else {
|
|
1086
1141
|
let errorMessage = "restrictData: " + HMSHelper.getUnavailableRequiredKey(data, ["roleName"])
|
|
1087
|
-
|
|
1142
|
+
reject?(errorMessage, errorMessage, nil)
|
|
1088
1143
|
return
|
|
1089
1144
|
}
|
|
1090
1145
|
|
|
1091
1146
|
HMSDecoder.setRestrictRoleData(roleName, true)
|
|
1147
|
+
resolve?(true)
|
|
1092
1148
|
}
|
|
1093
1149
|
|
|
1094
1150
|
// MARK: - HMS SDK Get APIs
|
|
@@ -1142,6 +1198,8 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1142
1198
|
}
|
|
1143
1199
|
case "metadata":
|
|
1144
1200
|
return ["metadata": peer.metadata ?? ""]
|
|
1201
|
+
case "isHandRaised":
|
|
1202
|
+
return ["isHandRaised": peer.isHandRaised]
|
|
1145
1203
|
case "role":
|
|
1146
1204
|
return ["role": HMSDecoder.getHmsRole(peer.role)]
|
|
1147
1205
|
case "customerUserID":
|
|
@@ -1226,7 +1284,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1226
1284
|
guard let trackId = data.value(forKey: "trackId") as? String
|
|
1227
1285
|
else {
|
|
1228
1286
|
let errorMessage = "\(#function) " + HMSHelper.getUnavailableRequiredKey(data, ["trackId"])
|
|
1229
|
-
emitRequiredKeysError(errorMessage)
|
|
1230
1287
|
reject?(errorMessage, errorMessage, nil)
|
|
1231
1288
|
return
|
|
1232
1289
|
}
|
|
@@ -1238,7 +1295,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1238
1295
|
let remoteVideoTrack = HMSHelper.getRemoteVideoTrackFromTrackId(trackId, remotePeers)
|
|
1239
1296
|
else {
|
|
1240
1297
|
let errorMessage = "\(#function) " + "TRACK_NOT_FOUND"
|
|
1241
|
-
self?.emitRequiredKeysError(errorMessage)
|
|
1242
1298
|
reject?(errorMessage, errorMessage, nil)
|
|
1243
1299
|
return
|
|
1244
1300
|
}
|
|
@@ -1251,7 +1307,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1251
1307
|
guard let trackId = data.value(forKey: "trackId") as? String
|
|
1252
1308
|
else {
|
|
1253
1309
|
let errorMessage = "\(#function) " + HMSHelper.getUnavailableRequiredKey(data, ["trackId"])
|
|
1254
|
-
emitRequiredKeysError(errorMessage)
|
|
1255
1310
|
reject?(errorMessage, errorMessage, nil)
|
|
1256
1311
|
return
|
|
1257
1312
|
}
|
|
@@ -1263,7 +1318,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1263
1318
|
let remoteAudioTrack = HMSHelper.getRemoteAudioTrackFromTrackId(trackId, remotePeers)
|
|
1264
1319
|
else {
|
|
1265
1320
|
let errorMessage = "\(#function) " + "TRACK_NOT_FOUND"
|
|
1266
|
-
self?.emitRequiredKeysError(errorMessage)
|
|
1267
1321
|
reject?(errorMessage, errorMessage, nil)
|
|
1268
1322
|
return
|
|
1269
1323
|
}
|
|
@@ -1303,6 +1357,24 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1303
1357
|
self.delegate?.emitEvent(HMSConstants.ON_ROOM_UPDATE, ["event": HMSConstants.ON_ROOM_UPDATE, "id": self.id, "type": type, "room": roomData])
|
|
1304
1358
|
}
|
|
1305
1359
|
|
|
1360
|
+
func onPeerListUpdate(added: [HMSPeer], removed: [HMSPeer]) {
|
|
1361
|
+
if eventsEnableStatus["ON_PEER_LIST_UPDATED"] != true {
|
|
1362
|
+
return
|
|
1363
|
+
}
|
|
1364
|
+
var addedPeers = [[String: Any]]()
|
|
1365
|
+
var removedPeers = [[String: Any]]()
|
|
1366
|
+
|
|
1367
|
+
for peer in added {
|
|
1368
|
+
addedPeers.append(HMSDecoder.getHmsPeerSubset(peer))
|
|
1369
|
+
}
|
|
1370
|
+
|
|
1371
|
+
for peer in removed {
|
|
1372
|
+
removedPeers.append(HMSDecoder.getHmsPeerSubset(peer))
|
|
1373
|
+
}
|
|
1374
|
+
|
|
1375
|
+
self.delegate?.emitEvent(HMSConstants.ON_PEER_LIST_UPDATED, ["event": HMSConstants.ON_PEER_LIST_UPDATED, "id": self.id, "addedPeers": addedPeers, "removedPeers": removedPeers])
|
|
1376
|
+
}
|
|
1377
|
+
|
|
1306
1378
|
func on(peer: HMSPeer, update: HMSPeerUpdate) {
|
|
1307
1379
|
|
|
1308
1380
|
guard let isPeerUpdateEnabled = eventsEnableStatus[HMSConstants.ON_PEER_UPDATE],
|
|
@@ -1489,7 +1561,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1489
1561
|
guard let trackId = data.value(forKey: "trackId") as? String
|
|
1490
1562
|
else {
|
|
1491
1563
|
let errorMessage = "\(#function) " + HMSHelper.getUnavailableRequiredKey(data, ["trackId"])
|
|
1492
|
-
emitRequiredKeysError(errorMessage)
|
|
1493
1564
|
reject?(errorMessage, errorMessage, nil)
|
|
1494
1565
|
return
|
|
1495
1566
|
}
|
|
@@ -1501,7 +1572,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1501
1572
|
let remoteVideoTrack = HMSHelper.getRemoteVideoTrackFromTrackId(trackId, remotePeers)
|
|
1502
1573
|
else {
|
|
1503
1574
|
let errorMessage = "\(#function) " + "TRACK_NOT_FOUND"
|
|
1504
|
-
self?.emitRequiredKeysError(errorMessage)
|
|
1505
1575
|
reject?(errorMessage, errorMessage, nil)
|
|
1506
1576
|
return
|
|
1507
1577
|
}
|
|
@@ -1509,7 +1579,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1509
1579
|
guard let layerDefinitions = remoteVideoTrack.layerDefinitions
|
|
1510
1580
|
else {
|
|
1511
1581
|
let errorMessage = "\(#function) " + "layer definitions not available for track: '\(trackId)' !"
|
|
1512
|
-
self.emitRequiredKeysError(errorMessage)
|
|
1513
1582
|
reject?(errorMessage, errorMessage, nil)
|
|
1514
1583
|
return
|
|
1515
1584
|
}
|
|
@@ -1525,7 +1594,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1525
1594
|
guard let trackId = data.value(forKey: "trackId") as? String
|
|
1526
1595
|
else {
|
|
1527
1596
|
let errorMessage = "\(#function) " + HMSHelper.getUnavailableRequiredKey(data, ["trackId"])
|
|
1528
|
-
emitRequiredKeysError(errorMessage)
|
|
1529
1597
|
reject?(errorMessage, errorMessage, nil)
|
|
1530
1598
|
return
|
|
1531
1599
|
}
|
|
@@ -1537,7 +1605,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1537
1605
|
let remoteVideoTrack = HMSHelper.getRemoteVideoTrackFromTrackId(trackId, remotePeers)
|
|
1538
1606
|
else {
|
|
1539
1607
|
let errorMessage = "\(#function) " + "TRACK_NOT_FOUND"
|
|
1540
|
-
self?.emitRequiredKeysError(errorMessage)
|
|
1541
1608
|
reject?(errorMessage, errorMessage, nil)
|
|
1542
1609
|
return
|
|
1543
1610
|
}
|
|
@@ -1553,7 +1620,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1553
1620
|
let layer = data.value(forKey: "layer") as? String
|
|
1554
1621
|
else {
|
|
1555
1622
|
let errorMessage = "\(#function) " + HMSHelper.getUnavailableRequiredKey(data, ["trackId", "layer"])
|
|
1556
|
-
emitRequiredKeysError(errorMessage)
|
|
1557
1623
|
reject?(errorMessage, errorMessage, nil)
|
|
1558
1624
|
return
|
|
1559
1625
|
}
|
|
@@ -1565,7 +1631,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1565
1631
|
let remoteVideoTrack = HMSHelper.getRemoteVideoTrackFromTrackId(trackId, remotePeers)
|
|
1566
1632
|
else {
|
|
1567
1633
|
let errorMessage = "\(#function) " + "TRACK_NOT_FOUND"
|
|
1568
|
-
self?.emitRequiredKeysError(errorMessage)
|
|
1569
1634
|
reject?(errorMessage, errorMessage, nil)
|
|
1570
1635
|
return
|
|
1571
1636
|
}
|
|
@@ -1828,6 +1893,84 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1828
1893
|
}
|
|
1829
1894
|
}
|
|
1830
1895
|
|
|
1896
|
+
// MARK: - Peer List Iterator
|
|
1897
|
+
|
|
1898
|
+
func getPeerListIterator(_ data: NSDictionary) -> [AnyHashable: Any]? {
|
|
1899
|
+
guard let uniqueId = data["uniqueId"] as? String else {
|
|
1900
|
+
print("Error in getPeerListIterator: uniqueId is not available")
|
|
1901
|
+
return nil
|
|
1902
|
+
}
|
|
1903
|
+
|
|
1904
|
+
guard let hmssdk = hms else {
|
|
1905
|
+
print("Error in getPeerListIterator: HMSSDK is not available")
|
|
1906
|
+
return nil
|
|
1907
|
+
}
|
|
1908
|
+
|
|
1909
|
+
var peerListIterator: HMSPeerListIterator
|
|
1910
|
+
|
|
1911
|
+
if let peerListIteratorOptions = HMSHelper.getPeerListIteratorOptions(data) {
|
|
1912
|
+
peerListIterator = hmssdk.getPeerListIterator(options: peerListIteratorOptions)
|
|
1913
|
+
} else {
|
|
1914
|
+
peerListIterator = hmssdk.getPeerListIterator()
|
|
1915
|
+
}
|
|
1916
|
+
|
|
1917
|
+
peerListIterators[uniqueId] = peerListIterator
|
|
1918
|
+
|
|
1919
|
+
return [
|
|
1920
|
+
"success": true,
|
|
1921
|
+
"uniqueId": uniqueId,
|
|
1922
|
+
"totalCount": peerListIterator.totalCount
|
|
1923
|
+
]
|
|
1924
|
+
}
|
|
1925
|
+
|
|
1926
|
+
func peerListIteratorHasNext(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
1927
|
+
guard let uniqueId = data["uniqueId"] as? String else {
|
|
1928
|
+
let errorMessage = "\(#function) uniqueId is not available"
|
|
1929
|
+
reject?("6004", errorMessage, nil)
|
|
1930
|
+
return
|
|
1931
|
+
}
|
|
1932
|
+
|
|
1933
|
+
guard let peerListIterator = peerListIterators[uniqueId] else {
|
|
1934
|
+
let errorMessage = "\(#function) HMSPeerListIterator is not available for uniqueId - \(uniqueId)"
|
|
1935
|
+
reject?("6004", errorMessage, nil)
|
|
1936
|
+
return
|
|
1937
|
+
}
|
|
1938
|
+
|
|
1939
|
+
resolve?(peerListIterator.hasNext)
|
|
1940
|
+
}
|
|
1941
|
+
|
|
1942
|
+
func peerListIteratorNext(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
1943
|
+
guard let uniqueId = data["uniqueId"] as? String else {
|
|
1944
|
+
let errorMessage = "\(#function) uniqueId is not available"
|
|
1945
|
+
reject?("6004", errorMessage, nil)
|
|
1946
|
+
return
|
|
1947
|
+
}
|
|
1948
|
+
|
|
1949
|
+
guard let peerListIterator = peerListIterators[uniqueId] else {
|
|
1950
|
+
let errorMessage = "\(#function) HMSPeerListIterator is not available for uniqueId - \(uniqueId)"
|
|
1951
|
+
reject?("6004", errorMessage, nil)
|
|
1952
|
+
return
|
|
1953
|
+
}
|
|
1954
|
+
|
|
1955
|
+
peerListIterator.next { peers, error in
|
|
1956
|
+
if let nonnilError = error {
|
|
1957
|
+
reject?("6004", nonnilError.localizedDescription, nil)
|
|
1958
|
+
return
|
|
1959
|
+
}
|
|
1960
|
+
|
|
1961
|
+
if let nonnilPeers = peers {
|
|
1962
|
+
var data = [[String: Any]]()
|
|
1963
|
+
for peer in nonnilPeers {
|
|
1964
|
+
data.append(HMSDecoder.getHmsPeer(peer))
|
|
1965
|
+
}
|
|
1966
|
+
resolve?(["totalCount": peerListIterator.totalCount, "peers": data])
|
|
1967
|
+
} else {
|
|
1968
|
+
let errorMessage = "\(#function) peers is nil"
|
|
1969
|
+
reject?("6004", errorMessage, nil)
|
|
1970
|
+
}
|
|
1971
|
+
}
|
|
1972
|
+
}
|
|
1973
|
+
|
|
1831
1974
|
// MARK: - Helper Functions
|
|
1832
1975
|
|
|
1833
1976
|
// Handle resetting states and data cleanup
|
|
@@ -1845,6 +1988,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1845
1988
|
self.eventsEnableStatus.removeAll()
|
|
1846
1989
|
self.sessionStore = nil
|
|
1847
1990
|
self.sessionStoreChangeObservers.removeAll()
|
|
1991
|
+
self.peerListIterators.removeAll()
|
|
1848
1992
|
HMSDecoder.clearRestrictDataStates()
|
|
1849
1993
|
}
|
|
1850
1994
|
|