@100mslive/react-native-hms 1.7.2 → 2.0.0-alpha.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/.gradle/6.7.1/executionHistory/executionHistory.lock +0 -0
- package/android/.gradle/6.7.1/fileHashes/fileHashes.lock +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/fileHashes/fileHashes.bin +0 -0
- package/android/.gradle/6.9/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/{6.7.1/fileHashes/fileHashes.bin → 6.9/fileHashes/resourceHashesCache.bin} +0 -0
- package/android/.gradle/6.9/javaCompile/classAnalysis.bin +0 -0
- package/android/.gradle/6.9/javaCompile/jarAnalysis.bin +0 -0
- package/android/.gradle/6.9/javaCompile/javaCompile.lock +0 -0
- package/android/.gradle/6.9/javaCompile/taskHistory.bin +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +1 -1
- 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/.idea/compiler.xml +6 -0
- package/android/.idea/gradle.xml +18 -0
- package/android/.idea/jarRepositories.xml +45 -0
- package/android/.idea/misc.xml +10 -0
- package/android/.idea/vcs.xml +6 -0
- 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 +42 -14
- 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 +46 -18
- package/android/src/main/java/com/reactnativehmssdk/HMSManager.kt +483 -184
- package/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +551 -151
- 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/HMSManager.m +239 -70
- package/ios/HMSManager.swift +24 -3
- package/ios/HMSRNSDK.swift +129 -126
- 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/HMSEncoder.js +6 -0
- package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
- package/lib/commonjs/classes/HMSPIPListenerActions.js +1 -0
- 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 +46 -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 +2 -1
- package/lib/commonjs/classes/HMSPeerUpdate.js.map +1 -1
- package/lib/commonjs/classes/HMSPeersCache.js +7 -0
- package/lib/commonjs/classes/HMSPeersCache.js.map +1 -1
- package/lib/commonjs/classes/HMSSDK.js +162 -29
- package/lib/commonjs/classes/HMSSDK.js.map +1 -1
- package/lib/commonjs/classes/HMSUpdateListenerActions.js +1 -0
- package/lib/commonjs/classes/HMSUpdateListenerActions.js.map +1 -1
- package/lib/commonjs/components/HMSHLSPlayer/HMSHLSPlayer.js +10 -5
- package/lib/commonjs/components/HMSHLSPlayer/HMSHLSPlayer.js.map +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/types.js +1 -0
- 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 +40 -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 +162 -30
- 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 +7 -0
- package/lib/typescript/classes/HMSPeerListIteratorOptions.d.ts +5 -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 +46 -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 +40 -0
- package/src/classes/HMSPeerListIteratorOptions.ts +5 -0
- package/src/classes/HMSPeerUpdate.ts +2 -0
- package/src/classes/HMSPeersCache.ts +7 -0
- package/src/classes/HMSSDK.tsx +202 -26
- 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/ios/HMSManager.swift
CHANGED
|
@@ -37,7 +37,7 @@ class HMSManager: RCTEventEmitter {
|
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
override func supportedEvents() -> [String]! {
|
|
40
|
-
return [ON_JOIN, ON_PREVIEW, ON_ROOM_UPDATE, ON_PEER_UPDATE, ON_TRACK_UPDATE, ON_ERROR, ON_MESSAGE, ON_SPEAKER, RECONNECTING, RECONNECTED, ON_ROLE_CHANGE_REQUEST, ON_CHANGE_TRACK_STATE_REQUEST, ON_REMOVED_FROM_ROOM, ON_RTC_STATS, ON_LOCAL_AUDIO_STATS, ON_LOCAL_VIDEO_STATS, ON_REMOTE_AUDIO_STATS, ON_REMOTE_VIDEO_STATS, ON_AUDIO_DEVICE_CHANGED, HMSConstants.ON_SESSION_STORE_AVAILABLE, HMSConstants.ON_SESSION_STORE_CHANGED]
|
|
40
|
+
return [ON_JOIN, ON_PREVIEW, ON_ROOM_UPDATE, ON_PEER_UPDATE, ON_TRACK_UPDATE, ON_ERROR, ON_MESSAGE, ON_SPEAKER, RECONNECTING, RECONNECTED, ON_ROLE_CHANGE_REQUEST, ON_CHANGE_TRACK_STATE_REQUEST, ON_REMOVED_FROM_ROOM, ON_RTC_STATS, ON_LOCAL_AUDIO_STATS, ON_LOCAL_VIDEO_STATS, ON_REMOTE_AUDIO_STATS, ON_REMOTE_VIDEO_STATS, ON_AUDIO_DEVICE_CHANGED, HMSConstants.ON_SESSION_STORE_AVAILABLE, HMSConstants.ON_SESSION_STORE_CHANGED, HMSConstants.ON_PEER_LIST_UPDATED]
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
// MARK: - HMS SDK Delegate Callbacks
|
|
@@ -99,10 +99,10 @@ class HMSManager: RCTEventEmitter {
|
|
|
99
99
|
}
|
|
100
100
|
|
|
101
101
|
@objc
|
|
102
|
-
func cancelPreview(_ data: NSDictionary) {
|
|
102
|
+
func cancelPreview(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
103
103
|
let hms = HMSHelper.getHms(data, hmsCollection)
|
|
104
104
|
|
|
105
|
-
hms?.cancelPreview()
|
|
105
|
+
hms?.cancelPreview(resolve, reject)
|
|
106
106
|
}
|
|
107
107
|
|
|
108
108
|
// MARK: - Join Room
|
|
@@ -312,6 +312,27 @@ class HMSManager: RCTEventEmitter {
|
|
|
312
312
|
hms?.changeName(data, resolve, reject)
|
|
313
313
|
}
|
|
314
314
|
|
|
315
|
+
@objc
|
|
316
|
+
func raiseLocalPeerHand(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
317
|
+
let hms = HMSHelper.getHms(data, hmsCollection)
|
|
318
|
+
|
|
319
|
+
hms?.raiseLocalPeerHand(resolve, reject)
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
@objc
|
|
323
|
+
func lowerLocalPeerHand(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
324
|
+
let hms = HMSHelper.getHms(data, hmsCollection)
|
|
325
|
+
|
|
326
|
+
hms?.lowerLocalPeerHand(resolve, reject)
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
@objc
|
|
330
|
+
func lowerRemotePeerHand(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
331
|
+
let hms = HMSHelper.getHms(data, hmsCollection)
|
|
332
|
+
|
|
333
|
+
hms?.lowerRemotePeerHand(data, resolve, reject)
|
|
334
|
+
}
|
|
335
|
+
|
|
315
336
|
// MARK: - RTMP Streaming & Recording
|
|
316
337
|
|
|
317
338
|
@objc
|
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?
|
|
@@ -129,25 +132,29 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
129
132
|
let roleObj = HMSHelper.getRoleFromRoleName(role, roles: hms?.roles)
|
|
130
133
|
|
|
131
134
|
if let extractedRole = roleObj {
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
if
|
|
135
|
-
|
|
135
|
+
DispatchQueue.main.async { [weak self] in
|
|
136
|
+
self?.hms?.preview(role: extractedRole) { tracks, error in
|
|
137
|
+
if error != nil {
|
|
138
|
+
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
139
|
+
return
|
|
136
140
|
}
|
|
137
|
-
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
138
|
-
return
|
|
139
|
-
}
|
|
140
141
|
|
|
141
|
-
|
|
142
|
+
self?.previewForRoleTracks = tracks
|
|
142
143
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
144
|
+
let decodedTracks = HMSDecoder.getAllTracks(tracks ?? [])
|
|
145
|
+
|
|
146
|
+
resolve?(["success": true, "tracks": decodedTracks] as [String: Any])
|
|
147
|
+
}
|
|
148
|
+
}
|
|
146
149
|
}
|
|
147
150
|
}
|
|
148
151
|
|
|
149
|
-
func cancelPreview() {
|
|
150
|
-
|
|
152
|
+
func cancelPreview(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
153
|
+
DispatchQueue.main.async { [weak self] in
|
|
154
|
+
self?.hms?.cancelPreview()
|
|
155
|
+
self?.previewForRoleTracks = nil
|
|
156
|
+
resolve?(["success": true])
|
|
157
|
+
}
|
|
151
158
|
}
|
|
152
159
|
|
|
153
160
|
func join(_ credentials: NSDictionary) {
|
|
@@ -230,7 +237,15 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
230
237
|
}
|
|
231
238
|
|
|
232
239
|
DispatchQueue.main.async { [weak self] in
|
|
233
|
-
self?.hms?.localPeer?.localAudioTrack()
|
|
240
|
+
if let audioTrack = self?.hms?.localPeer?.localAudioTrack() {
|
|
241
|
+
audioTrack.setMute(isMute)
|
|
242
|
+
} else if let tracks = self?.previewForRoleTracks {
|
|
243
|
+
if let audioTrack = tracks.first(where: { $0.kind == HMSTrackKind.audio }) as? HMSLocalAudioTrack {
|
|
244
|
+
audioTrack.setMute(isMute)
|
|
245
|
+
}
|
|
246
|
+
} else {
|
|
247
|
+
print(#function, "No local audio track available for setting mute state.")
|
|
248
|
+
}
|
|
234
249
|
}
|
|
235
250
|
}
|
|
236
251
|
|
|
@@ -243,42 +258,54 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
243
258
|
}
|
|
244
259
|
|
|
245
260
|
DispatchQueue.main.async { [weak self] in
|
|
246
|
-
self?.hms?.localPeer?.localVideoTrack()
|
|
261
|
+
if let videoTrack = self?.hms?.localPeer?.localVideoTrack() {
|
|
262
|
+
videoTrack.setMute(isMute)
|
|
263
|
+
} else if let tracks = self?.previewForRoleTracks {
|
|
264
|
+
if let videoTrack = tracks.first(where: { $0.kind == HMSTrackKind.video }) as? HMSLocalVideoTrack {
|
|
265
|
+
videoTrack.setMute(isMute)
|
|
266
|
+
}
|
|
267
|
+
} else {
|
|
268
|
+
print(#function, "No local video track available for setting mute state.")
|
|
269
|
+
}
|
|
247
270
|
}
|
|
248
271
|
}
|
|
249
272
|
|
|
250
273
|
func switchCamera() {
|
|
251
274
|
DispatchQueue.main.async { [weak self] in
|
|
252
|
-
self?.hms?.localPeer?.localVideoTrack()
|
|
275
|
+
if let localVideoTrack = self?.hms?.localPeer?.localVideoTrack() {
|
|
276
|
+
localVideoTrack.switchCamera()
|
|
277
|
+
} else if let tracks = self?.previewForRoleTracks {
|
|
278
|
+
if let videoTrack = tracks.first(where: { $0.kind == HMSTrackKind.video }) as? HMSLocalVideoTrack {
|
|
279
|
+
videoTrack.switchCamera()
|
|
280
|
+
}
|
|
281
|
+
} else {
|
|
282
|
+
print(#function, "No local video track available for switching camera.")
|
|
283
|
+
}
|
|
253
284
|
}
|
|
254
285
|
}
|
|
255
286
|
|
|
256
287
|
func leave(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
288
|
+
DispatchQueue.main.async { [weak self] in
|
|
289
|
+
guard let strongSelf = self else {
|
|
290
|
+
print(#function, "Could not find reference to self while executing Room leave")
|
|
291
|
+
return
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
strongSelf.hms?.leave { [weak self] success, error in
|
|
295
|
+
|
|
261
296
|
guard let strongSelf = self else {
|
|
262
|
-
print(#function, "Could not find reference to self while executing Room leave")
|
|
297
|
+
print(#function, "Could not find reference to self when callback is received while executing Room leave")
|
|
263
298
|
return
|
|
264
299
|
}
|
|
265
300
|
|
|
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)
|
|
301
|
+
if success {
|
|
302
|
+
resolve?(["success": success])
|
|
303
|
+
strongSelf.cleanup() // resetting states and doing data cleanup
|
|
304
|
+
} else {
|
|
305
|
+
if strongSelf.eventsEnableStatus[HMSConstants.ON_ERROR] == true {
|
|
306
|
+
strongSelf.delegate?.emitEvent(HMSConstants.ON_ERROR, ["error": HMSDecoder.getError(error), "id": strongSelf.id])
|
|
281
307
|
}
|
|
308
|
+
reject?("error in leave", "error in leave", nil)
|
|
282
309
|
}
|
|
283
310
|
}
|
|
284
311
|
}
|
|
@@ -301,9 +328,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
301
328
|
resolve?(["messageId": message?.messageID ?? "", "data": ["sender": message?.sender?.name ?? "", "message": message?.message ?? "", "type": message?.type]] as [String: Any])
|
|
302
329
|
return
|
|
303
330
|
} 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
331
|
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
308
332
|
return
|
|
309
333
|
}
|
|
@@ -329,9 +353,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
329
353
|
resolve?(["messageId": message?.messageID ?? "", "data": ["sender": message?.sender?.name ?? "", "message": message?.message ?? "", "type": message?.type]] as [String: Any])
|
|
330
354
|
return
|
|
331
355
|
} 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
356
|
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
336
357
|
return
|
|
337
358
|
}
|
|
@@ -357,9 +378,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
357
378
|
resolve?(["messageId": message?.messageID ?? "", "data": ["sender": message?.sender?.name ?? "", "message": message?.message ?? "", "type": message?.type]] as [String: Any])
|
|
358
379
|
return
|
|
359
380
|
} 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
381
|
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
364
382
|
return
|
|
365
383
|
}
|
|
@@ -383,13 +401,11 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
383
401
|
if success {
|
|
384
402
|
resolve?(["success": success])
|
|
385
403
|
} 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
404
|
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
390
405
|
}
|
|
391
406
|
})
|
|
392
407
|
self?.recentRoleChangeRequest = nil
|
|
408
|
+
self?.previewForRoleTracks = nil
|
|
393
409
|
}
|
|
394
410
|
}
|
|
395
411
|
|
|
@@ -423,9 +439,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
423
439
|
if success {
|
|
424
440
|
resolve?(["success": success])
|
|
425
441
|
} 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
442
|
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
430
443
|
}
|
|
431
444
|
})
|
|
@@ -461,9 +474,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
461
474
|
if success {
|
|
462
475
|
resolve?(["success": success])
|
|
463
476
|
} 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
477
|
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
468
478
|
}
|
|
469
479
|
}
|
|
@@ -494,9 +504,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
494
504
|
if success {
|
|
495
505
|
resolve?(["success": success])
|
|
496
506
|
} 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
507
|
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
501
508
|
}
|
|
502
509
|
})
|
|
@@ -531,9 +538,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
531
538
|
if success {
|
|
532
539
|
resolve?(["success": success])
|
|
533
540
|
} 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
541
|
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
538
542
|
}
|
|
539
543
|
})
|
|
@@ -557,9 +561,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
557
561
|
guard let remotePeers = self?.hms?.remotePeers,
|
|
558
562
|
let track = HMSHelper.getTrackFromTrackId(trackId, remotePeers)
|
|
559
563
|
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
564
|
reject?("Track not found", "Track not found", nil)
|
|
564
565
|
return
|
|
565
566
|
}
|
|
@@ -597,9 +598,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
597
598
|
if success {
|
|
598
599
|
resolve?(["success": success])
|
|
599
600
|
} else {
|
|
600
|
-
if self?.eventsEnableStatus[HMSConstants.ON_ERROR] == true {
|
|
601
|
-
self?.delegate?.emitEvent(HMSConstants.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
602
|
-
}
|
|
603
601
|
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
604
602
|
}
|
|
605
603
|
})
|
|
@@ -623,9 +621,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
623
621
|
resolve?(["success": success])
|
|
624
622
|
self?.cleanup() // resetting states and doing data cleanup
|
|
625
623
|
} 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
624
|
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
630
625
|
}
|
|
631
626
|
})
|
|
@@ -704,9 +699,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
704
699
|
resolve?(["success": success])
|
|
705
700
|
return
|
|
706
701
|
} 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
702
|
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
711
703
|
return
|
|
712
704
|
}
|
|
@@ -730,8 +722,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
730
722
|
|
|
731
723
|
if remoteAudioTrack != nil {
|
|
732
724
|
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
725
|
}
|
|
736
726
|
}
|
|
737
727
|
}
|
|
@@ -754,9 +744,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
754
744
|
if let meetLink = URL(string: meetingString) {
|
|
755
745
|
meetingUrl = meetLink
|
|
756
746
|
} 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
747
|
reject?("Invalid meeting url passed", "Invalid meeting url passed", nil)
|
|
761
748
|
}
|
|
762
749
|
}
|
|
@@ -769,9 +756,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
769
756
|
resolve?(["success": success])
|
|
770
757
|
return
|
|
771
758
|
} 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
759
|
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
776
760
|
return
|
|
777
761
|
}
|
|
@@ -784,9 +768,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
784
768
|
resolve?(["success": success])
|
|
785
769
|
return
|
|
786
770
|
} 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
771
|
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
791
772
|
return
|
|
792
773
|
}
|
|
@@ -806,9 +787,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
806
787
|
resolve?(["success": success])
|
|
807
788
|
return
|
|
808
789
|
} 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
790
|
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
813
791
|
return
|
|
814
792
|
}
|
|
@@ -821,9 +799,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
821
799
|
resolve?(["success": success])
|
|
822
800
|
return
|
|
823
801
|
} 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
802
|
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
828
803
|
return
|
|
829
804
|
}
|
|
@@ -843,9 +818,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
843
818
|
if success {
|
|
844
819
|
resolve?(["success": success])
|
|
845
820
|
} 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
821
|
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
850
822
|
}
|
|
851
823
|
}
|
|
@@ -887,9 +859,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
887
859
|
|
|
888
860
|
func startScreenshare(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
889
861
|
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
862
|
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
863
|
return
|
|
895
864
|
}
|
|
@@ -911,9 +880,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
911
880
|
|
|
912
881
|
func stopScreenshare(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
913
882
|
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
883
|
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
884
|
return
|
|
919
885
|
}
|
|
@@ -937,6 +903,48 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
937
903
|
resolve?(isScreenShared)
|
|
938
904
|
}
|
|
939
905
|
|
|
906
|
+
func raiseLocalPeerHand(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
907
|
+
self.hms?.raiseLocalPeerHand { success, error in
|
|
908
|
+
if error != nil {
|
|
909
|
+
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
910
|
+
return
|
|
911
|
+
}
|
|
912
|
+
resolve?(success)
|
|
913
|
+
}
|
|
914
|
+
}
|
|
915
|
+
|
|
916
|
+
func lowerLocalPeerHand(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
917
|
+
self.hms?.lowerLocalPeerHand { success, error in
|
|
918
|
+
if error != nil {
|
|
919
|
+
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
920
|
+
return
|
|
921
|
+
}
|
|
922
|
+
resolve?(success)
|
|
923
|
+
}
|
|
924
|
+
}
|
|
925
|
+
|
|
926
|
+
func lowerRemotePeerHand(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
927
|
+
guard let peerId = data.value(forKey: "peerId") as? String else {
|
|
928
|
+
let errorMessage = "lowerRemotePeerHand: " + HMSHelper.getUnavailableRequiredKey(data, ["peerId"])
|
|
929
|
+
reject?(errorMessage, errorMessage, nil)
|
|
930
|
+
return
|
|
931
|
+
}
|
|
932
|
+
|
|
933
|
+
guard let remotePeer = HMSHelper.getRemotePeerFromPeerId(peerId, remotePeers: self.hms?.remotePeers) else {
|
|
934
|
+
let errorMessage = "lowerRemotePeerHand: Could not find remote peer with peerID - " + peerId
|
|
935
|
+
reject?(errorMessage, errorMessage, nil)
|
|
936
|
+
return
|
|
937
|
+
}
|
|
938
|
+
|
|
939
|
+
self.hms?.lowerRemotePeerHand(remotePeer) { success, error in
|
|
940
|
+
if error != nil {
|
|
941
|
+
reject?(error?.localizedDescription, error?.localizedDescription, nil)
|
|
942
|
+
return
|
|
943
|
+
}
|
|
944
|
+
resolve?(success)
|
|
945
|
+
}
|
|
946
|
+
}
|
|
947
|
+
|
|
940
948
|
func playAudioShare(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
941
949
|
guard let fileUrl = data.value(forKey: "fileUrl") as? String,
|
|
942
950
|
let audioNodeName = data.value(forKey: "audioNode") as? String,
|
|
@@ -956,21 +964,12 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
956
964
|
try audioFilePlayerNode.play(fileUrl: url, loops: loops, interrupts: interrupts)
|
|
957
965
|
resolve?(["success": true])
|
|
958
966
|
} 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
967
|
reject?(error.localizedDescription, error.localizedDescription, nil)
|
|
963
968
|
}
|
|
964
969
|
} 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
970
|
reject?("Incorrect URL", "Incorrect URL", nil)
|
|
969
971
|
}
|
|
970
972
|
} 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
973
|
reject?("AudioFilePlayerNode not found", "AudioFilePlayerNode not found", nil)
|
|
975
974
|
}
|
|
976
975
|
}
|
|
@@ -1004,8 +1003,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1004
1003
|
}
|
|
1005
1004
|
if let audioFilePlayerNode = playerNode as? HMSAudioFilePlayerNode {
|
|
1006
1005
|
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
1006
|
}
|
|
1010
1007
|
}
|
|
1011
1008
|
|
|
@@ -1026,8 +1023,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1026
1023
|
delegate?.emitEvent(HMSConstants.ON_ERROR, ["error": ["code": 6002, "description": error.localizedDescription, "isTerminal": false, "canRetry": true, "params": ["function": #function]] as [String: Any], "id": id])
|
|
1027
1024
|
}
|
|
1028
1025
|
}
|
|
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
1026
|
}
|
|
1032
1027
|
}
|
|
1033
1028
|
|
|
@@ -1042,8 +1037,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1042
1037
|
}
|
|
1043
1038
|
if let audioFilePlayerNode = playerNode as? HMSAudioFilePlayerNode {
|
|
1044
1039
|
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
1040
|
}
|
|
1048
1041
|
}
|
|
1049
1042
|
|
|
@@ -1060,9 +1053,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1060
1053
|
if let audioFilePlayerNode = playerNode as? HMSAudioFilePlayerNode {
|
|
1061
1054
|
resolve?(audioFilePlayerNode.isPlaying)
|
|
1062
1055
|
} 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
1056
|
reject?("AudioFilePlayerNode not found", "AudioFilePlayerNode not found", nil)
|
|
1067
1057
|
}
|
|
1068
1058
|
}
|
|
@@ -1080,9 +1070,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1080
1070
|
if let audioFilePlayerNode = playerNode as? HMSAudioFilePlayerNode {
|
|
1081
1071
|
resolve?(audioFilePlayerNode.currentTime)
|
|
1082
1072
|
} 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
1073
|
reject?("AudioFilePlayerNode not found", "AudioFilePlayerNode not found", nil)
|
|
1087
1074
|
}
|
|
1088
1075
|
}
|
|
@@ -1100,9 +1087,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1100
1087
|
if let audioFilePlayerNode = playerNode as? HMSAudioFilePlayerNode {
|
|
1101
1088
|
resolve?(audioFilePlayerNode.duration)
|
|
1102
1089
|
} 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
1090
|
reject?("AudioFilePlayerNode not found", "AudioFilePlayerNode not found", nil)
|
|
1107
1091
|
}
|
|
1108
1092
|
}
|
|
@@ -1200,6 +1184,8 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1200
1184
|
}
|
|
1201
1185
|
case "metadata":
|
|
1202
1186
|
return ["metadata": peer.metadata ?? ""]
|
|
1187
|
+
case "isHandRaised":
|
|
1188
|
+
return ["isHandRaised": peer.isHandRaised]
|
|
1203
1189
|
case "role":
|
|
1204
1190
|
return ["role": HMSDecoder.getHmsRole(peer.role)]
|
|
1205
1191
|
case "customerUserID":
|
|
@@ -1361,6 +1347,24 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1361
1347
|
self.delegate?.emitEvent(HMSConstants.ON_ROOM_UPDATE, ["event": HMSConstants.ON_ROOM_UPDATE, "id": self.id, "type": type, "room": roomData])
|
|
1362
1348
|
}
|
|
1363
1349
|
|
|
1350
|
+
func onPeerListUpdate(added: [HMSPeer], removed: [HMSPeer]) {
|
|
1351
|
+
if eventsEnableStatus["ON_PEER_LIST_UPDATED"] != true {
|
|
1352
|
+
return
|
|
1353
|
+
}
|
|
1354
|
+
var addedPeers = [[String: Any]]()
|
|
1355
|
+
var removedPeers = [[String: Any]]()
|
|
1356
|
+
|
|
1357
|
+
for peer in added {
|
|
1358
|
+
addedPeers.append(HMSDecoder.getHmsPeerSubset(peer))
|
|
1359
|
+
}
|
|
1360
|
+
|
|
1361
|
+
for peer in removed {
|
|
1362
|
+
removedPeers.append(HMSDecoder.getHmsPeerSubset(peer))
|
|
1363
|
+
}
|
|
1364
|
+
|
|
1365
|
+
self.delegate?.emitEvent(HMSConstants.ON_PEER_LIST_UPDATED, ["event": HMSConstants.ON_PEER_LIST_UPDATED, "id": self.id, "addedPeers": addedPeers, "removedPeers": removedPeers])
|
|
1366
|
+
}
|
|
1367
|
+
|
|
1364
1368
|
func on(peer: HMSPeer, update: HMSPeerUpdate) {
|
|
1365
1369
|
|
|
1366
1370
|
guard let isPeerUpdateEnabled = eventsEnableStatus[HMSConstants.ON_PEER_UPDATE],
|
|
@@ -1891,6 +1895,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1891
1895
|
// Handle resetting states and data cleanup
|
|
1892
1896
|
private func cleanup() {
|
|
1893
1897
|
self.recentRoleChangeRequest = nil
|
|
1898
|
+
self.previewForRoleTracks = nil
|
|
1894
1899
|
self.reconnectingStage = false
|
|
1895
1900
|
self.preferredExtension = nil
|
|
1896
1901
|
self.systemBroadcastPicker = nil
|
|
@@ -1949,9 +1954,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
1949
1954
|
|
|
1950
1955
|
func getString(from update: HMSRoomUpdate) -> String {
|
|
1951
1956
|
switch update {
|
|
1952
|
-
case .roomTypeChanged:
|
|
1953
|
-
return "ROOM_PEER_COUNT_UPDATED"
|
|
1954
|
-
case .metaDataUpdated:
|
|
1957
|
+
case .roomTypeChanged, .metaDataUpdated, .peerCountUpdated:
|
|
1955
1958
|
return "ROOM_PEER_COUNT_UPDATED"
|
|
1956
1959
|
case .browserRecordingStateUpdated:
|
|
1957
1960
|
return "BROWSER_RECORDING_STATE_UPDATED"
|
package/ios/HMSView.swift
CHANGED
|
@@ -91,14 +91,28 @@ class HmssdkDisplayView: UIView {
|
|
|
91
91
|
return
|
|
92
92
|
}
|
|
93
93
|
|
|
94
|
-
|
|
95
|
-
|
|
94
|
+
if let videoTrack = HMSUtilities.getVideoTrack(for: trackID, in: room) {
|
|
95
|
+
videoView.setVideoTrack(videoTrack)
|
|
96
|
+
} else if let videoTrack = getPreviewForRoleTrack(trackID) {
|
|
97
|
+
videoView.setVideoTrack(videoTrack)
|
|
98
|
+
} else {
|
|
96
99
|
print(#function, "Could not find video track in room with trackID: \(trackID)")
|
|
97
100
|
return
|
|
98
101
|
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
99
104
|
|
|
100
|
-
|
|
105
|
+
private func getPreviewForRoleTrack(_ trackID: String) -> HMSVideoTrack? {
|
|
106
|
+
|
|
107
|
+
if let hmsRnSdk = hmsCollection["12345"] {
|
|
108
|
+
if let tracks = hmsRnSdk.previewForRoleTracks {
|
|
109
|
+
if let videoTrack = tracks.first(where: { $0.trackId == trackID }) as? HMSVideoTrack {
|
|
110
|
+
return videoTrack
|
|
111
|
+
}
|
|
112
|
+
}
|
|
101
113
|
}
|
|
114
|
+
|
|
115
|
+
return nil
|
|
102
116
|
}
|
|
103
117
|
|
|
104
118
|
@objc func captureHmsView( _ requestId: NSNumber) {
|
|
Binary file
|
package/ios/Hmssdk.xcodeproj/xcuserdata/jatinnagar.xcuserdatad/xcschemes/xcschememanagement.plist
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
3
|
+
<plist version="1.0">
|
|
4
|
+
<dict>
|
|
5
|
+
<key>SchemeUserState</key>
|
|
6
|
+
<dict>
|
|
7
|
+
<key>Hmssdk.xcscheme_^#shared#^_</key>
|
|
8
|
+
<dict>
|
|
9
|
+
<key>orderHint</key>
|
|
10
|
+
<integer>0</integer>
|
|
11
|
+
</dict>
|
|
12
|
+
</dict>
|
|
13
|
+
</dict>
|
|
14
|
+
</plist>
|