@100mslive/react-native-hms 0.8.0 → 0.8.4
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/README.md +37 -39
- package/android/.gradle/6.9/executionHistory/executionHistory.lock +0 -0
- package/android/.gradle/6.9/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +1 -1
- 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/build.gradle +1 -2
- package/android/src/main/java/com/reactnativehmssdk/HmsDecoder.kt +249 -230
- package/android/src/main/java/com/reactnativehmssdk/HmsHelper.kt +145 -13
- package/android/src/main/java/com/reactnativehmssdk/HmsModule.kt +56 -21
- package/android/src/main/java/com/reactnativehmssdk/HmsSDK.kt +463 -247
- package/android/src/main/java/com/reactnativehmssdk/HmsView.kt +15 -18
- package/android/src/main/java/com/reactnativehmssdk/HmssdkPackage.kt +1 -2
- package/android/src/main/java/com/reactnativehmssdk/HmssdkViewManager.kt +4 -10
- package/ios/HmsDecoder.swift +135 -35
- package/ios/HmsHelper.swift +103 -1
- package/ios/HmsManager.m +13 -9
- package/ios/HmsManager.swift +59 -24
- package/ios/HmsSDK.swift +322 -85
- package/ios/HmsView.swift +1 -1
- package/lib/commonjs/classes/HMSAudioTrackSettings.js +3 -0
- package/lib/commonjs/classes/HMSAudioTrackSettings.js.map +1 -1
- package/lib/commonjs/classes/HMSBrowserRecordingState.js +23 -0
- package/lib/commonjs/classes/HMSBrowserRecordingState.js.map +1 -0
- package/lib/commonjs/classes/HMSCameraFacing.js +14 -0
- package/lib/commonjs/classes/HMSCameraFacing.js.map +1 -0
- package/lib/commonjs/classes/HMSChangeTrackStateRequest.js +3 -0
- package/lib/commonjs/classes/HMSChangeTrackStateRequest.js.map +1 -1
- package/lib/commonjs/classes/HMSConfig.js +3 -1
- package/lib/commonjs/classes/HMSConfig.js.map +1 -1
- package/lib/commonjs/classes/HMSEncoder.js +27 -7
- package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
- package/lib/commonjs/classes/HMSException.js +30 -0
- package/lib/commonjs/classes/HMSException.js.map +1 -0
- package/lib/commonjs/classes/HMSHelper.js +2 -2
- package/lib/commonjs/classes/HMSHelper.js.map +1 -1
- package/lib/commonjs/classes/HMSLocalAudioTrack.js +32 -0
- package/lib/commonjs/classes/HMSLocalAudioTrack.js.map +1 -1
- package/lib/commonjs/classes/HMSLocalPeer.js.map +1 -1
- package/lib/commonjs/classes/HMSLocalVideoTrack.js +18 -0
- package/lib/commonjs/classes/HMSLocalVideoTrack.js.map +1 -1
- package/lib/commonjs/classes/HMSLogger.js +28 -1
- package/lib/commonjs/classes/HMSLogger.js.map +1 -1
- package/lib/commonjs/classes/HMSPeer.js +3 -0
- package/lib/commonjs/classes/HMSPeer.js.map +1 -1
- package/lib/commonjs/classes/HMSPeerUpdate.js +1 -0
- package/lib/commonjs/classes/HMSPeerUpdate.js.map +1 -1
- package/lib/commonjs/classes/HMSPermissions.js +6 -0
- package/lib/commonjs/classes/HMSPermissions.js.map +1 -1
- package/lib/commonjs/classes/HMSRTMPConfig.js +26 -0
- package/lib/commonjs/classes/HMSRTMPConfig.js.map +1 -0
- package/lib/commonjs/classes/HMSRemoteAudioTrack.js +19 -0
- package/lib/commonjs/classes/HMSRemoteAudioTrack.js.map +1 -1
- package/lib/commonjs/classes/HMSRemotePeer.js.map +1 -1
- package/lib/commonjs/classes/HMSRemoteVideoTrack.js +19 -0
- package/lib/commonjs/classes/HMSRemoteVideoTrack.js.map +1 -1
- package/lib/commonjs/classes/HMSRoom.js +9 -0
- package/lib/commonjs/classes/HMSRoom.js.map +1 -1
- package/lib/commonjs/classes/HMSRtmpStreamingState.js +23 -0
- package/lib/commonjs/classes/HMSRtmpStreamingState.js.map +1 -0
- package/lib/commonjs/classes/HMSSDK.js +229 -125
- package/lib/commonjs/classes/HMSSDK.js.map +1 -1
- package/lib/commonjs/classes/HMSServerRecordingState.js +23 -0
- package/lib/commonjs/classes/HMSServerRecordingState.js.map +1 -0
- package/lib/commonjs/classes/HMSTrack.js +2 -19
- package/lib/commonjs/classes/HMSTrack.js.map +1 -1
- package/lib/commonjs/classes/HMSTrackSettings.js +3 -0
- package/lib/commonjs/classes/HMSTrackSettings.js.map +1 -1
- package/lib/commonjs/classes/HMSVideoCodec.js +4 -4
- package/lib/commonjs/classes/HMSVideoCodec.js.map +1 -1
- package/lib/commonjs/classes/HMSVideoResolution.js +23 -0
- package/lib/commonjs/classes/HMSVideoResolution.js.map +1 -0
- package/lib/commonjs/classes/HMSVideoSettings.js.map +1 -1
- package/lib/commonjs/classes/HMSVideoTrackSettings.js +0 -3
- package/lib/commonjs/classes/HMSVideoTrackSettings.js.map +1 -1
- package/lib/commonjs/index.js +98 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/classes/HMSAudioTrackSettings.js +3 -0
- package/lib/module/classes/HMSAudioTrackSettings.js.map +1 -1
- package/lib/module/classes/HMSBrowserRecordingState.js +14 -0
- package/lib/module/classes/HMSBrowserRecordingState.js.map +1 -0
- package/lib/module/classes/HMSCameraFacing.js +7 -0
- package/lib/module/classes/HMSCameraFacing.js.map +1 -0
- package/lib/module/classes/HMSChangeTrackStateRequest.js +3 -0
- package/lib/module/classes/HMSChangeTrackStateRequest.js.map +1 -1
- package/lib/module/classes/HMSConfig.js +3 -1
- package/lib/module/classes/HMSConfig.js.map +1 -1
- package/lib/module/classes/HMSEncoder.js +26 -7
- package/lib/module/classes/HMSEncoder.js.map +1 -1
- package/lib/module/classes/HMSException.js +21 -0
- package/lib/module/classes/HMSException.js.map +1 -0
- package/lib/module/classes/HMSHelper.js +2 -2
- package/lib/module/classes/HMSHelper.js.map +1 -1
- package/lib/module/classes/HMSLocalAudioTrack.js +30 -1
- package/lib/module/classes/HMSLocalAudioTrack.js.map +1 -1
- package/lib/module/classes/HMSLocalPeer.js.map +1 -1
- package/lib/module/classes/HMSLocalVideoTrack.js +15 -0
- package/lib/module/classes/HMSLocalVideoTrack.js.map +1 -1
- package/lib/module/classes/HMSLogger.js +28 -1
- package/lib/module/classes/HMSLogger.js.map +1 -1
- package/lib/module/classes/HMSPeer.js +3 -0
- package/lib/module/classes/HMSPeer.js.map +1 -1
- package/lib/module/classes/HMSPeerUpdate.js +1 -0
- package/lib/module/classes/HMSPeerUpdate.js.map +1 -1
- package/lib/module/classes/HMSPermissions.js +6 -0
- package/lib/module/classes/HMSPermissions.js.map +1 -1
- package/lib/module/classes/HMSRTMPConfig.js +17 -0
- package/lib/module/classes/HMSRTMPConfig.js.map +1 -0
- package/lib/module/classes/HMSRemoteAudioTrack.js +16 -0
- package/lib/module/classes/HMSRemoteAudioTrack.js.map +1 -1
- package/lib/module/classes/HMSRemotePeer.js.map +1 -1
- package/lib/module/classes/HMSRemoteVideoTrack.js +16 -0
- package/lib/module/classes/HMSRemoteVideoTrack.js.map +1 -1
- package/lib/module/classes/HMSRoom.js +9 -0
- package/lib/module/classes/HMSRoom.js.map +1 -1
- package/lib/module/classes/HMSRtmpStreamingState.js +14 -0
- package/lib/module/classes/HMSRtmpStreamingState.js.map +1 -0
- package/lib/module/classes/HMSSDK.js +227 -125
- package/lib/module/classes/HMSSDK.js.map +1 -1
- package/lib/module/classes/HMSServerRecordingState.js +14 -0
- package/lib/module/classes/HMSServerRecordingState.js.map +1 -0
- package/lib/module/classes/HMSTrack.js +2 -17
- package/lib/module/classes/HMSTrack.js.map +1 -1
- package/lib/module/classes/HMSTrackSettings.js +3 -0
- package/lib/module/classes/HMSTrackSettings.js.map +1 -1
- package/lib/module/classes/HMSVideoCodec.js +4 -4
- package/lib/module/classes/HMSVideoCodec.js.map +1 -1
- package/lib/module/classes/HMSVideoResolution.js +14 -0
- package/lib/module/classes/HMSVideoResolution.js.map +1 -0
- package/lib/module/classes/HMSVideoSettings.js.map +1 -1
- package/lib/module/classes/HMSVideoTrackSettings.js +0 -3
- package/lib/module/classes/HMSVideoTrackSettings.js.map +1 -1
- package/lib/module/index.js +7 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/classes/HMSAudioTrackSettings.d.ts +3 -0
- package/lib/typescript/classes/HMSBrowserRecordingState.d.ts +9 -0
- package/lib/typescript/classes/HMSCameraFacing.d.ts +4 -0
- package/lib/typescript/classes/HMSChangeTrackStateRequest.d.ts +2 -0
- package/lib/typescript/classes/HMSConfig.d.ts +2 -0
- package/lib/typescript/classes/HMSEncoder.d.ts +3 -1
- package/lib/typescript/classes/HMSException.d.ts +22 -0
- package/lib/typescript/classes/HMSLocalAudioTrack.d.ts +1 -0
- package/lib/typescript/classes/HMSLocalPeer.d.ts +4 -0
- package/lib/typescript/classes/HMSLogger.d.ts +7 -0
- package/lib/typescript/classes/HMSPeer.d.ts +2 -0
- package/lib/typescript/classes/HMSPeerUpdate.d.ts +1 -0
- package/lib/typescript/classes/HMSPermissions.d.ts +4 -0
- package/lib/typescript/classes/HMSRTMPConfig.d.ts +10 -0
- package/lib/typescript/classes/HMSRemotePeer.d.ts +1 -0
- package/lib/typescript/classes/HMSRoom.d.ts +9 -0
- package/lib/typescript/classes/HMSRtmpStreamingState.d.ts +9 -0
- package/lib/typescript/classes/HMSSDK.d.ts +22 -13
- package/lib/typescript/classes/HMSServerRecordingState.d.ts +9 -0
- package/lib/typescript/classes/HMSTrack.d.ts +1 -1
- package/lib/typescript/classes/HMSTrackSettings.d.ts +2 -0
- package/lib/typescript/classes/HMSVideoCodec.d.ts +4 -4
- package/lib/typescript/classes/HMSVideoResolution.d.ts +8 -0
- package/lib/typescript/classes/HMSVideoSettings.d.ts +3 -3
- package/lib/typescript/classes/HMSVideoTrackSettings.d.ts +13 -10
- package/lib/typescript/index.d.ts +7 -0
- package/package.json +2 -1
- package/src/classes/HMSAudioTrackSettings.ts +9 -1
- package/src/classes/HMSBrowserRecordingState.ts +11 -0
- package/src/classes/HMSCameraFacing.ts +4 -0
- package/src/classes/HMSChangeTrackStateRequest.ts +7 -1
- package/src/classes/HMSConfig.ts +3 -1
- package/src/classes/HMSEncoder.ts +22 -2
- package/src/classes/HMSException.ts +33 -0
- package/src/classes/HMSHelper.ts +2 -2
- package/src/classes/HMSLocalAudioTrack.ts +29 -1
- package/src/classes/HMSLocalPeer.ts +4 -0
- package/src/classes/HMSLocalVideoTrack.ts +15 -0
- package/src/classes/HMSLogger.ts +14 -1
- package/src/classes/HMSPeer.ts +3 -0
- package/src/classes/HMSPeerUpdate.ts +1 -0
- package/src/classes/HMSPermissions.ts +6 -0
- package/src/classes/HMSRTMPConfig.ts +15 -0
- package/src/classes/HMSRemoteAudioTrack.ts +16 -0
- package/src/classes/HMSRemotePeer.ts +1 -0
- package/src/classes/HMSRemoteVideoTrack.ts +16 -0
- package/src/classes/HMSRoom.ts +12 -0
- package/src/classes/HMSRtmpStreamingState.ts +11 -0
- package/src/classes/HMSSDK.tsx +170 -71
- package/src/classes/HMSServerRecordingState.ts +11 -0
- package/src/classes/HMSTrack.ts +2 -15
- package/src/classes/HMSTrackSettings.ts +3 -0
- package/src/classes/HMSVideoCodec.ts +4 -4
- package/src/classes/HMSVideoResolution.ts +9 -0
- package/src/classes/HMSVideoSettings.ts +3 -3
- package/src/classes/HMSVideoTrackSettings.ts +13 -10
- package/src/index.ts +7 -0
- package/android/.gradle/6.9/executionHistory/executionHistory.bin +0 -0
- package/android/.gradle/6.9/fileHashes/fileHashes.bin +0 -0
- package/android/.gradle/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/outputFiles.bin +0 -0
- package/android/.project +0 -34
package/ios/HmsSDK.swift
CHANGED
|
@@ -7,14 +7,15 @@
|
|
|
7
7
|
|
|
8
8
|
import Foundation
|
|
9
9
|
import HMSSDK
|
|
10
|
+
|
|
11
|
+
|
|
10
12
|
class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
11
13
|
|
|
12
14
|
var hms: HMSSDK?
|
|
13
15
|
var config: HMSConfig?
|
|
14
16
|
var recentRoleChangeRequest: HMSRoleChangeRequest?
|
|
15
|
-
var recentChangeTrackStateRequest: HMSChangeTrackStateRequest?
|
|
16
17
|
var delegate: HmsManager?
|
|
17
|
-
var id: String
|
|
18
|
+
var id: String = "12345"
|
|
18
19
|
|
|
19
20
|
let ON_PREVIEW = "ON_PREVIEW"
|
|
20
21
|
let ON_JOIN = "ON_JOIN"
|
|
@@ -31,72 +32,71 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
31
32
|
|
|
32
33
|
// MARK: - Setup
|
|
33
34
|
|
|
34
|
-
init(delegate manager: HmsManager?, uid id: String) {
|
|
35
|
+
init(data: NSDictionary?, delegate manager: HmsManager?, uid id: String) {
|
|
36
|
+
let videoSettings = HmsHelper.getLocalVideoSettings(data?.value(forKey: "video") as? NSDictionary)
|
|
37
|
+
let audioSettings = HmsHelper.getLocalAudioSettings(data?.value(forKey: "audio") as? NSDictionary)
|
|
35
38
|
DispatchQueue.main.async { [weak self] in
|
|
36
|
-
|
|
39
|
+
let hmsTrackSettings = HMSTrackSettings(videoSettings: videoSettings, audioSettings: audioSettings)
|
|
40
|
+
self?.hms = HMSSDK.build { sdk in
|
|
41
|
+
sdk.trackSettings = hmsTrackSettings
|
|
42
|
+
}
|
|
37
43
|
}
|
|
38
44
|
self.delegate = manager
|
|
39
45
|
self.id = id
|
|
40
46
|
}
|
|
41
47
|
|
|
42
48
|
// MARK: - HMS SDK Actions
|
|
43
|
-
|
|
49
|
+
|
|
50
|
+
private var previewInProgress = false
|
|
51
|
+
|
|
44
52
|
func preview(_ credentials: NSDictionary) {
|
|
45
53
|
|
|
54
|
+
guard !previewInProgress else {
|
|
55
|
+
let error = HMSError(id: "PREVIEW", code: .joinErrorServer, message: "PREVIEW_IS_IN_PROGRESS", params: ["function": #function, "credentials": credentials])
|
|
56
|
+
on(error: error)
|
|
57
|
+
return
|
|
58
|
+
}
|
|
59
|
+
|
|
46
60
|
guard let authToken = credentials.value(forKey: "authToken") as? String,
|
|
47
61
|
let user = credentials.value(forKey: "username") as? String
|
|
48
62
|
else {
|
|
49
|
-
|
|
63
|
+
let error = HMSError(id: "101", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
|
|
64
|
+
delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
|
|
50
65
|
return
|
|
51
66
|
}
|
|
52
67
|
|
|
68
|
+
let metadata = credentials.value(forKey: "metadata") as? String
|
|
53
69
|
DispatchQueue.main.async { [weak self] in
|
|
54
70
|
guard let strongSelf = self else { return }
|
|
55
71
|
if let endpoint = credentials.value(forKey: "endpoint") as? String {
|
|
56
|
-
strongSelf.config = HMSConfig(userName: user, authToken: authToken, endpoint: endpoint)
|
|
72
|
+
strongSelf.config = HMSConfig(userName: user, authToken: authToken, metadata: metadata, endpoint: endpoint)
|
|
57
73
|
strongSelf.hms?.preview(config: strongSelf.config!, delegate: strongSelf)
|
|
58
74
|
} else {
|
|
59
|
-
strongSelf.config = HMSConfig(userName: user, authToken: authToken)
|
|
75
|
+
strongSelf.config = HMSConfig(userName: user, authToken: authToken, metadata: metadata)
|
|
60
76
|
strongSelf.hms?.preview(config: strongSelf.config!, delegate: strongSelf)
|
|
61
77
|
}
|
|
78
|
+
strongSelf.previewInProgress = true
|
|
62
79
|
}
|
|
63
80
|
}
|
|
64
81
|
|
|
82
|
+
|
|
65
83
|
func join(_ credentials: NSDictionary) {
|
|
66
84
|
|
|
85
|
+
guard !previewInProgress else {
|
|
86
|
+
let error = HMSError(id: "PREVIEW", code: .joinErrorServer, message: "PREVIEW_IS_IN_PROGRESS", params: ["function": #function, "credentials": credentials])
|
|
87
|
+
on(error: error)
|
|
88
|
+
return
|
|
89
|
+
}
|
|
90
|
+
|
|
67
91
|
guard let authToken = credentials.value(forKey: "authToken") as? String,
|
|
68
92
|
let user = credentials.value(forKey: "username") as? String
|
|
69
93
|
else {
|
|
70
|
-
|
|
94
|
+
let error = HMSError(id: "102", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
|
|
95
|
+
delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
|
|
71
96
|
return
|
|
72
97
|
}
|
|
73
98
|
|
|
74
|
-
|
|
75
|
-
guard let strongSelf = self else { return }
|
|
76
|
-
if let config = strongSelf.config {
|
|
77
|
-
do{
|
|
78
|
-
try strongSelf.hms?.join(config: config, delegate: strongSelf)
|
|
79
|
-
} catch let error{
|
|
80
|
-
strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["event": strongSelf.ON_ERROR, "error": error.localizedDescription])
|
|
81
|
-
}
|
|
82
|
-
} else {
|
|
83
|
-
if let endpoint = credentials.value(forKey: "endpoint") as? String {
|
|
84
|
-
do{
|
|
85
|
-
strongSelf.config = HMSConfig(userName: user, authToken: authToken, endpoint: endpoint)
|
|
86
|
-
try strongSelf.hms?.join(config: strongSelf.config!, delegate: strongSelf)
|
|
87
|
-
} catch let error{
|
|
88
|
-
strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["event": strongSelf.ON_ERROR, "error": error.localizedDescription])
|
|
89
|
-
}
|
|
90
|
-
} else {
|
|
91
|
-
do{
|
|
92
|
-
strongSelf.config = HMSConfig(userName: user, authToken: authToken)
|
|
93
|
-
try strongSelf.hms?.join(config: strongSelf.config!, delegate: strongSelf)
|
|
94
|
-
} catch let error{
|
|
95
|
-
strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["event": strongSelf.ON_ERROR, "error": error.localizedDescription])
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
}
|
|
99
|
+
let metadata = credentials.value(forKey: "metadata") as? String
|
|
100
100
|
|
|
101
101
|
DispatchQueue.main.async { [weak self] in
|
|
102
102
|
guard let strongSelf = self else { return }
|
|
@@ -104,10 +104,10 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
104
104
|
strongSelf.hms?.join(config: config, delegate: strongSelf)
|
|
105
105
|
} else {
|
|
106
106
|
if let endpoint = credentials.value(forKey: "endpoint") as? String {
|
|
107
|
-
strongSelf.config = HMSConfig(userName: user, authToken: authToken, endpoint: endpoint)
|
|
107
|
+
strongSelf.config = HMSConfig(userName: user, authToken: authToken, metadata: metadata, endpoint: endpoint)
|
|
108
108
|
strongSelf.hms?.join(config: strongSelf.config!, delegate: strongSelf)
|
|
109
109
|
} else {
|
|
110
|
-
strongSelf.config = HMSConfig(userName: user, authToken: authToken)
|
|
110
|
+
strongSelf.config = HMSConfig(userName: user, authToken: authToken, metadata: metadata)
|
|
111
111
|
strongSelf.hms?.join(config: strongSelf.config!, delegate: strongSelf)
|
|
112
112
|
}
|
|
113
113
|
}
|
|
@@ -117,7 +117,8 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
117
117
|
func setLocalMute(_ data: NSDictionary) {
|
|
118
118
|
guard let isMute = data.value(forKey: "isMute") as? Bool
|
|
119
119
|
else {
|
|
120
|
-
|
|
120
|
+
let error = HMSError(id: "106", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
|
|
121
|
+
delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
|
|
121
122
|
return
|
|
122
123
|
}
|
|
123
124
|
|
|
@@ -129,7 +130,8 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
129
130
|
func setLocalVideoMute(_ data: NSDictionary) {
|
|
130
131
|
guard let isMute = data.value(forKey: "isMute") as? Bool
|
|
131
132
|
else {
|
|
132
|
-
|
|
133
|
+
let error = HMSError(id: "107", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
|
|
134
|
+
delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
|
|
133
135
|
return
|
|
134
136
|
}
|
|
135
137
|
|
|
@@ -146,100 +148,148 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
146
148
|
|
|
147
149
|
func leave(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
148
150
|
DispatchQueue.main.async { [weak self] in
|
|
151
|
+
guard let strongSelf = self else { return }
|
|
149
152
|
self?.config = nil
|
|
150
153
|
self?.recentRoleChangeRequest = nil
|
|
151
|
-
self?.recentChangeTrackStateRequest = nil
|
|
152
154
|
self?.hms?.leave({ success, error in
|
|
153
155
|
if(success){
|
|
154
156
|
resolve?("")
|
|
155
157
|
}else{
|
|
158
|
+
strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["event": strongSelf.ON_ERROR, "error": HmsDecoder.getError(error), "id":strongSelf.id])
|
|
156
159
|
reject?(nil, "error in leave",nil)
|
|
157
160
|
}
|
|
158
161
|
})
|
|
159
162
|
}
|
|
160
163
|
}
|
|
161
164
|
|
|
162
|
-
func sendBroadcastMessage(_ data: NSDictionary) {
|
|
165
|
+
func sendBroadcastMessage(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
163
166
|
guard let message = data.value(forKey: "message") as? String
|
|
164
167
|
else {
|
|
165
|
-
|
|
168
|
+
let error = HMSError(id: "108", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
|
|
169
|
+
delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
|
|
166
170
|
return
|
|
167
171
|
}
|
|
168
172
|
|
|
169
173
|
let type = data.value(forKey: "type") as? String ?? "chat"
|
|
170
174
|
|
|
171
175
|
DispatchQueue.main.async { [weak self] in
|
|
172
|
-
self?.hms?.sendBroadcastMessage(type: type, message: message
|
|
176
|
+
self?.hms?.sendBroadcastMessage(type: type, message: message, completion: { message, error in
|
|
177
|
+
if (error == nil) {
|
|
178
|
+
resolve?(["success": true, "data": ["sender": message?.sender?.name ?? "", "message": message?.message ?? "", "type": message?.type]])
|
|
179
|
+
return
|
|
180
|
+
} else {
|
|
181
|
+
self?.delegate?.emitEvent("ON_ERROR", ["event": "ON_ERROR", "error": HmsDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
182
|
+
reject?(error?.message, error?.localizedDescription, nil)
|
|
183
|
+
return
|
|
184
|
+
}
|
|
185
|
+
})
|
|
173
186
|
}
|
|
174
187
|
}
|
|
175
188
|
|
|
176
|
-
func sendGroupMessage(_ data: NSDictionary) {
|
|
189
|
+
func sendGroupMessage(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
177
190
|
guard let message = data.value(forKey: "message") as? String,
|
|
178
191
|
let targetedRoles = data.value(forKey: "roles") as? [String]
|
|
179
192
|
else {
|
|
180
|
-
|
|
193
|
+
let error = HMSError(id: "109", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
|
|
194
|
+
delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
|
|
181
195
|
return
|
|
182
196
|
}
|
|
183
197
|
|
|
184
198
|
let type = data.value(forKey: "type") as? String ?? "chat"
|
|
185
199
|
DispatchQueue.main.async { [weak self] in
|
|
186
200
|
let encodedTargetedRoles = HmsHelper.getRolesFromRoleNames(targetedRoles, roles: self?.hms?.roles)
|
|
187
|
-
self?.hms?.sendGroupMessage(type: type, message: message, roles: encodedTargetedRoles
|
|
201
|
+
self?.hms?.sendGroupMessage(type: type, message: message, roles: encodedTargetedRoles, completion: { message, error in
|
|
202
|
+
if (error == nil) {
|
|
203
|
+
resolve?(["success": true, "data": ["sender": message?.sender?.name ?? "", "message": message?.message ?? "", "type": message?.type]])
|
|
204
|
+
return
|
|
205
|
+
} else {
|
|
206
|
+
self?.delegate?.emitEvent("ON_ERROR", ["event": "ON_ERROR", "error": HmsDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
207
|
+
reject?(error?.message, error?.localizedDescription, nil)
|
|
208
|
+
return
|
|
209
|
+
}
|
|
210
|
+
})
|
|
188
211
|
}
|
|
189
212
|
}
|
|
190
213
|
|
|
191
|
-
func sendDirectMessage(_ data: NSDictionary) {
|
|
214
|
+
func sendDirectMessage(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
192
215
|
guard let message = data.value(forKey: "message") as? String,
|
|
193
216
|
let peerId = data.value(forKey: "peerId") as? String
|
|
194
217
|
else {
|
|
195
|
-
|
|
218
|
+
let error = HMSError(id: "110", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
|
|
219
|
+
delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
|
|
196
220
|
return
|
|
197
221
|
}
|
|
198
222
|
|
|
199
223
|
let type = data.value(forKey: "type") as? String ?? "chat"
|
|
200
224
|
DispatchQueue.main.async { [weak self] in
|
|
201
|
-
guard let peer = HmsHelper.
|
|
225
|
+
guard let peer = HmsHelper.getRemotePeerFromPeerId(peerId, remotePeers: self?.hms?.remotePeers) else { return }
|
|
226
|
+
self?.hms?.sendDirectMessage(type: type, message: message, peer: peer, completion: { message, error in
|
|
227
|
+
if (error == nil) {
|
|
228
|
+
resolve?(["success": true, "data": ["sender": message?.sender?.name ?? "", "message": message?.message ?? "", "type": message?.type]])
|
|
229
|
+
return
|
|
230
|
+
} else {
|
|
231
|
+
self?.delegate?.emitEvent("ON_ERROR", ["event": "ON_ERROR", "error": HmsDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
232
|
+
reject?(error?.message, error?.localizedDescription, nil)
|
|
233
|
+
return
|
|
234
|
+
}
|
|
235
|
+
})
|
|
202
236
|
self?.hms?.sendDirectMessage(type: type, message: message, peer: peer)
|
|
203
237
|
}
|
|
204
238
|
}
|
|
205
239
|
|
|
206
|
-
func acceptRoleChange() {
|
|
240
|
+
func acceptRoleChange(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
207
241
|
|
|
208
242
|
DispatchQueue.main.async { [weak self] in
|
|
209
243
|
|
|
210
244
|
guard let request = self?.recentRoleChangeRequest else { return }
|
|
211
245
|
|
|
212
|
-
self?.hms?.accept(changeRole: request
|
|
246
|
+
self?.hms?.accept(changeRole: request, completion: { success, error in
|
|
247
|
+
if(success) {
|
|
248
|
+
resolve?(["success": true])
|
|
249
|
+
} else{
|
|
250
|
+
self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error": HmsDecoder.getError(error), "id":self?.id ?? "12345"])
|
|
251
|
+
reject?(error?.message, error?.localizedDescription,nil)
|
|
252
|
+
}
|
|
253
|
+
})
|
|
213
254
|
|
|
214
255
|
self?.recentRoleChangeRequest = nil
|
|
215
256
|
}
|
|
216
257
|
}
|
|
217
258
|
|
|
218
|
-
func changeRole(_ data: NSDictionary) {
|
|
259
|
+
func changeRole(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
219
260
|
|
|
220
261
|
guard let peerId = data.value(forKey: "peerId") as? String,
|
|
221
262
|
let role = data.value(forKey: "role") as? String
|
|
222
263
|
else {
|
|
223
|
-
|
|
264
|
+
let error = HMSError(id: "111", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
|
|
265
|
+
delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
|
|
224
266
|
return
|
|
225
267
|
}
|
|
226
268
|
|
|
227
269
|
let force = data.value(forKey: "force") as? Bool ?? false
|
|
228
270
|
|
|
229
271
|
DispatchQueue.main.async { [weak self] in
|
|
230
|
-
guard let peer = HmsHelper.getPeerFromPeerId(peerId, remotePeers: self?.hms?.remotePeers),
|
|
272
|
+
guard let peer = HmsHelper.getPeerFromPeerId(peerId, remotePeers: self?.hms?.remotePeers, localPeer:self?.hms?.localPeer),
|
|
231
273
|
let role = HmsHelper.getRoleFromRoleName(role, roles: self?.hms?.roles)
|
|
232
274
|
else { return }
|
|
233
|
-
|
|
234
|
-
self?.hms?.changeRole(for: peer, to: role, force: force
|
|
275
|
+
|
|
276
|
+
self?.hms?.changeRole(for: peer, to: role, force: force, completion: { success, error in
|
|
277
|
+
if(success) {
|
|
278
|
+
resolve?(["success": true])
|
|
279
|
+
} else{
|
|
280
|
+
self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error": HmsDecoder.getError(error), "id":self?.id ?? "12345"])
|
|
281
|
+
reject?(error?.message, error?.localizedDescription,nil)
|
|
282
|
+
}
|
|
283
|
+
})
|
|
235
284
|
}
|
|
236
285
|
}
|
|
237
286
|
|
|
238
|
-
func changeTrackState(_ data: NSDictionary) {
|
|
287
|
+
func changeTrackState(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
239
288
|
|
|
240
289
|
guard let trackId = data.value(forKey: "trackId") as? String
|
|
241
290
|
else {
|
|
242
|
-
|
|
291
|
+
let error = HMSError(id: "112", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
|
|
292
|
+
delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
|
|
243
293
|
return
|
|
244
294
|
}
|
|
245
295
|
|
|
@@ -250,17 +300,25 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
250
300
|
let track = HmsHelper.getTrackFromTrackId(trackId, remotePeers)
|
|
251
301
|
else { return }
|
|
252
302
|
|
|
253
|
-
self?.hms?.changeTrackState(for: track, mute: mute
|
|
303
|
+
self?.hms?.changeTrackState(for: track, mute: mute, completion: { success, error in
|
|
304
|
+
if(success) {
|
|
305
|
+
resolve?(["success": true])
|
|
306
|
+
} else{
|
|
307
|
+
self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error": HmsDecoder.getError(error), "id":self?.id ?? "12345"])
|
|
308
|
+
reject?(error?.message, error?.localizedDescription, nil)
|
|
309
|
+
}
|
|
310
|
+
})
|
|
254
311
|
}
|
|
255
312
|
}
|
|
256
313
|
|
|
257
|
-
func changeTrackStateRoles(_ data: NSDictionary) {
|
|
314
|
+
func changeTrackStateRoles(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
258
315
|
|
|
259
316
|
guard let source = data.value(forKey: "source") as? String,
|
|
260
317
|
let targetedRoles = data.value(forKey: "roles") as? [String],
|
|
261
318
|
let type = data.value(forKey: "type") as? String
|
|
262
319
|
else {
|
|
263
|
-
|
|
320
|
+
let error = HMSError(id: "113", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
|
|
321
|
+
delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
|
|
264
322
|
return
|
|
265
323
|
}
|
|
266
324
|
var decodeType: HMSTrackKind;
|
|
@@ -273,7 +331,14 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
273
331
|
|
|
274
332
|
DispatchQueue.main.async { [weak self] in
|
|
275
333
|
let encodedTargetedRoles = HmsHelper.getRolesFromRoleNames(targetedRoles, roles: self?.hms?.roles)
|
|
276
|
-
self?.hms?.changeTrackState(mute: mute, for: decodeType, source: source, roles: encodedTargetedRoles
|
|
334
|
+
self?.hms?.changeTrackState(mute: mute, for: decodeType, source: source, roles: encodedTargetedRoles, completion: { success, error in
|
|
335
|
+
if(success) {
|
|
336
|
+
resolve?(["success": true])
|
|
337
|
+
} else{
|
|
338
|
+
self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error": HmsDecoder.getError(error), "id":self?.id ?? "12345"])
|
|
339
|
+
reject?(error?.message, error?.localizedDescription,nil)
|
|
340
|
+
}
|
|
341
|
+
})
|
|
277
342
|
}
|
|
278
343
|
}
|
|
279
344
|
|
|
@@ -281,17 +346,21 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
281
346
|
guard let trackId = data.value(forKey: "trackId") as? String
|
|
282
347
|
else {
|
|
283
348
|
reject?(nil, "NO_SDK_ID", nil)
|
|
284
|
-
|
|
349
|
+
let error = HMSError(id: "114", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
|
|
350
|
+
delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
|
|
285
351
|
return
|
|
286
352
|
}
|
|
287
353
|
|
|
288
354
|
DispatchQueue.main.async { [weak self] in
|
|
355
|
+
guard let strongSelf = self else { return }
|
|
289
356
|
guard let localPeer = self?.hms?.localPeer,
|
|
290
357
|
let localTrack = HmsHelper.getLocalTrackFromTrackId(trackId, localPeer: localPeer)
|
|
291
358
|
else {
|
|
292
359
|
guard let remotePeers = self?.hms?.remotePeers,
|
|
293
360
|
let track = HmsHelper.getTrackFromTrackId(trackId, remotePeers)
|
|
294
361
|
else {
|
|
362
|
+
let error = HMSError(id: "120", code: HMSErrorCode.genericErrorUnknown, message: "NOT_FOUND")
|
|
363
|
+
strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["event": strongSelf.ON_ERROR, "error": HmsDecoder.getError(error), "id":strongSelf.id])
|
|
295
364
|
reject?(nil, "NOT_FOUND", nil)
|
|
296
365
|
return
|
|
297
366
|
}
|
|
@@ -304,11 +373,12 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
304
373
|
}
|
|
305
374
|
}
|
|
306
375
|
|
|
307
|
-
func removePeer(_ data: NSDictionary) {
|
|
376
|
+
func removePeer(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
308
377
|
|
|
309
378
|
guard let peerId = data.value(forKey: "peerId") as? String
|
|
310
379
|
else {
|
|
311
|
-
|
|
380
|
+
let error = HMSError(id: "115", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
|
|
381
|
+
delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
|
|
312
382
|
return
|
|
313
383
|
}
|
|
314
384
|
|
|
@@ -317,25 +387,40 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
317
387
|
DispatchQueue.main.async { [weak self] in
|
|
318
388
|
|
|
319
389
|
guard let remotePeers = self?.hms?.remotePeers,
|
|
320
|
-
let peer = HmsHelper.
|
|
390
|
+
let peer = HmsHelper.getRemotePeerFromPeerId(peerId, remotePeers: remotePeers)
|
|
321
391
|
else { return }
|
|
322
392
|
|
|
323
|
-
self?.hms?.removePeer(peer, reason: reason ?? "Removed from room"
|
|
393
|
+
self?.hms?.removePeer(peer, reason: reason ?? "Removed from room", completion: { success, error in
|
|
394
|
+
if(success) {
|
|
395
|
+
resolve?(["success": true])
|
|
396
|
+
} else{
|
|
397
|
+
self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error": HmsDecoder.getError(error), "id":self?.id ?? "12345"])
|
|
398
|
+
reject?(error?.message, error?.localizedDescription,nil)
|
|
399
|
+
}
|
|
400
|
+
})
|
|
324
401
|
}
|
|
325
402
|
}
|
|
326
403
|
|
|
327
404
|
|
|
328
|
-
func endRoom(_ data: NSDictionary) {
|
|
405
|
+
func endRoom(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
329
406
|
|
|
330
407
|
guard let lock = data.value(forKey: "lock") as? Bool,
|
|
331
408
|
let reason = data.value(forKey: "reason") as? String
|
|
332
409
|
else {
|
|
333
|
-
|
|
410
|
+
let error = HMSError(id: "116", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
|
|
411
|
+
delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
|
|
334
412
|
return
|
|
335
413
|
}
|
|
336
414
|
|
|
337
415
|
DispatchQueue.main.async { [weak self] in
|
|
338
|
-
self?.hms?.endRoom(lock: lock
|
|
416
|
+
self?.hms?.endRoom(lock: lock, reason: reason, completion: { success, error in
|
|
417
|
+
if(success) {
|
|
418
|
+
resolve?(["success": true])
|
|
419
|
+
} else{
|
|
420
|
+
self?.delegate?.emitEvent("ON_ERROR", ["event": self?.ON_ERROR ?? "", "error": HmsDecoder.getError(error), "id":self?.id ?? "12345"])
|
|
421
|
+
reject?(error?.message, error?.localizedDescription,nil)
|
|
422
|
+
}
|
|
423
|
+
})
|
|
339
424
|
}
|
|
340
425
|
}
|
|
341
426
|
|
|
@@ -343,12 +428,16 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
343
428
|
guard let trackId = data.value(forKey: "trackId") as? String
|
|
344
429
|
else {
|
|
345
430
|
reject?(nil, "NOT_FOUND", nil)
|
|
346
|
-
|
|
431
|
+
let error = HMSError(id: "117", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
|
|
432
|
+
delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
|
|
347
433
|
return
|
|
348
434
|
}
|
|
349
435
|
DispatchQueue.main.async { [weak self] in
|
|
436
|
+
guard let strongSelf = self else { return }
|
|
350
437
|
guard let remotePeers = self?.hms?.remotePeers
|
|
351
438
|
else {
|
|
439
|
+
let error = HMSError(id: "121", code: HMSErrorCode.genericErrorUnknown, message: "NOT_FOUND")
|
|
440
|
+
strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["event": strongSelf.ON_ERROR, "error": HmsDecoder.getError(error), "id":strongSelf.id])
|
|
352
441
|
reject?(nil, "NOT_FOUND", nil)
|
|
353
442
|
return
|
|
354
443
|
}
|
|
@@ -363,6 +452,8 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
363
452
|
resolve?(isPlaybackAllowed)
|
|
364
453
|
return
|
|
365
454
|
} else {
|
|
455
|
+
let error = HMSError(id: "122", code: HMSErrorCode.genericErrorUnknown, message: "NOT_FOUND")
|
|
456
|
+
strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["event": strongSelf.ON_ERROR, "error": HmsDecoder.getError(error), "id":strongSelf.id])
|
|
366
457
|
reject?(nil, "NOT_FOUND",nil)
|
|
367
458
|
return
|
|
368
459
|
}
|
|
@@ -379,7 +470,8 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
379
470
|
guard let trackId = data.value(forKey: "trackId") as? String,
|
|
380
471
|
let playbackAllowed = data.value(forKey: "playbackAllowed") as? Bool
|
|
381
472
|
else {
|
|
382
|
-
|
|
473
|
+
let error = HMSError(id: "118", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
|
|
474
|
+
delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
|
|
383
475
|
return
|
|
384
476
|
}
|
|
385
477
|
DispatchQueue.main.async { [weak self] in
|
|
@@ -401,6 +493,137 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
401
493
|
}
|
|
402
494
|
}
|
|
403
495
|
|
|
496
|
+
func changeMetadata(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
497
|
+
guard let metadata = data.value(forKey: "metadata") as? String
|
|
498
|
+
else {
|
|
499
|
+
let error = HMSError(id: "123", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
|
|
500
|
+
delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
|
|
501
|
+
reject?(nil, "REQUIRED_KEYS_NOT_FOUND", nil)
|
|
502
|
+
return
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
hms?.change(metadata: metadata, completion: { success, error in
|
|
506
|
+
if (success) {
|
|
507
|
+
resolve?(["success": success])
|
|
508
|
+
return
|
|
509
|
+
} else {
|
|
510
|
+
self.delegate?.emitEvent(self.ON_ERROR, ["event": self.ON_ERROR, "error": HmsDecoder.getError(error), "id":self.id])
|
|
511
|
+
reject?(error?.message, error?.localizedDescription, nil)
|
|
512
|
+
return
|
|
513
|
+
}
|
|
514
|
+
})
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
func setVolume(_ data: NSDictionary) {
|
|
518
|
+
guard let trackId = data.value(forKey: "trackId") as? String,
|
|
519
|
+
let volume = data.value(forKey: "volume") as? Double
|
|
520
|
+
else {
|
|
521
|
+
let error = HMSError(id: "124", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
|
|
522
|
+
delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
|
|
523
|
+
return
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
DispatchQueue.main.async { [weak self] in
|
|
527
|
+
guard let strongSelf = self else { return }
|
|
528
|
+
let remotePeers = self?.hms?.remotePeers
|
|
529
|
+
|
|
530
|
+
let remoteAudioTrack = HmsHelper.getRemoteAudioAuxiliaryTrackFromTrackId(trackId, remotePeers)
|
|
531
|
+
|
|
532
|
+
if (remoteAudioTrack != nil) {
|
|
533
|
+
remoteAudioTrack?.setVolume(volume)
|
|
534
|
+
} else {
|
|
535
|
+
let error = HMSError(id: "125", code: HMSErrorCode.genericErrorUnknown, message: "TRACK_ID_NOT_FOUND_IN_REMOTE_TRACKS")
|
|
536
|
+
strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["event": strongSelf.ON_ERROR, "error": HmsDecoder.getError(error), "id":strongSelf.id])
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
func startRTMPOrRecording(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
542
|
+
guard let record = data.value(forKey: "record") as? Bool
|
|
543
|
+
else {
|
|
544
|
+
let error = HMSError(id: "126", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
|
|
545
|
+
delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
|
|
546
|
+
return
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
let meetingString = data.value(forKey: "meetingURL") as? String
|
|
550
|
+
let rtmpStrings = data.value(forKey: "rtmpURLs") as? [String]
|
|
551
|
+
|
|
552
|
+
var meetingUrl: URL? = nil
|
|
553
|
+
if let meetLink = meetingString {
|
|
554
|
+
meetingUrl = URL(string: meetLink)
|
|
555
|
+
} else {
|
|
556
|
+
let error = HMSError(id: "127", code: HMSErrorCode.genericErrorUnknown, message: "INVALID_MEETING_URL_PASSED")
|
|
557
|
+
delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
let URLs = HmsHelper.getRtmpUrls(rtmpStrings)
|
|
561
|
+
|
|
562
|
+
|
|
563
|
+
let config = HMSRTMPConfig(meetingURL: meetingUrl, rtmpURLs: URLs, record: record)
|
|
564
|
+
hms?.startRTMPOrRecording(config: config, completion: { success, error in
|
|
565
|
+
if (success) {
|
|
566
|
+
let roomData = HmsDecoder.getHmsRoom(self.hms?.room)
|
|
567
|
+
let type = self.getString(from: HMSRoomUpdate.browserRecordingStateUpdated)
|
|
568
|
+
|
|
569
|
+
let localPeerData = HmsDecoder.getHmsLocalPeer(self.hms?.localPeer)
|
|
570
|
+
let remotePeerData = HmsDecoder.getHmsRemotePeers(self.hms?.remotePeers)
|
|
571
|
+
self.delegate?.emitEvent(self.ON_ROOM_UPDATE, ["event": self.ON_ROOM_UPDATE, "id": self.id, "type": type, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData])
|
|
572
|
+
resolve?(["success": success])
|
|
573
|
+
return
|
|
574
|
+
} else {
|
|
575
|
+
self.delegate?.emitEvent(self.ON_ERROR, ["event": self.ON_ERROR, "error": HmsDecoder.getError(error), "id":self.id])
|
|
576
|
+
reject?(error?.message, error?.localizedDescription, nil)
|
|
577
|
+
return
|
|
578
|
+
}
|
|
579
|
+
})
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
func stopRtmpAndRecording(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
583
|
+
hms?.stopRTMPAndRecording(completion: { success, error in
|
|
584
|
+
if (success) {
|
|
585
|
+
let roomData = HmsDecoder.getHmsRoom(self.hms?.room)
|
|
586
|
+
let type = self.getString(from: HMSRoomUpdate.browserRecordingStateUpdated)
|
|
587
|
+
|
|
588
|
+
let localPeerData = HmsDecoder.getHmsLocalPeer(self.hms?.localPeer)
|
|
589
|
+
let remotePeerData = HmsDecoder.getHmsRemotePeers(self.hms?.remotePeers)
|
|
590
|
+
self.delegate?.emitEvent(self.ON_ROOM_UPDATE, ["event": self.ON_ROOM_UPDATE, "id": self.id, "type": type, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData])
|
|
591
|
+
resolve?(["success": success])
|
|
592
|
+
return
|
|
593
|
+
} else {
|
|
594
|
+
self.delegate?.emitEvent(self.ON_ERROR, ["event": self.ON_ERROR, "error": HmsDecoder.getError(error), "id":self.id])
|
|
595
|
+
reject?(error?.message, error?.localizedDescription, nil)
|
|
596
|
+
return
|
|
597
|
+
}
|
|
598
|
+
})
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
//TODO: to be implemented after volume is exposed for iOS
|
|
602
|
+
// func getVolume(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
603
|
+
// guard let trackId = data.value(forKey: "trackId") as? String
|
|
604
|
+
// else {
|
|
605
|
+
// delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": "REQUIRED_KEYS_NOT_FOUND"])
|
|
606
|
+
// reject?(nil, "REQUIRED_KEYS_NOT_FOUND", nil)
|
|
607
|
+
// return
|
|
608
|
+
// }
|
|
609
|
+
//
|
|
610
|
+
//
|
|
611
|
+
// if (localPeer?.localAudioTrack()?.trackId == trackId) {
|
|
612
|
+
//
|
|
613
|
+
// }
|
|
614
|
+
// }
|
|
615
|
+
|
|
616
|
+
// func setLocalVideoSettings(_ data: NSDictionary) {
|
|
617
|
+
// let localVideoTrack = self.hms?.localPeer?.localVideoTrack()
|
|
618
|
+
//
|
|
619
|
+
// guard let settings = HmsHelper.getLocalVideoSettings(data)
|
|
620
|
+
// else {
|
|
621
|
+
// //TODO: throw an error for invalid arguements
|
|
622
|
+
// return
|
|
623
|
+
// }
|
|
624
|
+
// localVideoTrack?.settings = settings
|
|
625
|
+
// }
|
|
626
|
+
|
|
404
627
|
// MARK: - HMS SDK Delegate Callbacks
|
|
405
628
|
|
|
406
629
|
func on(join room: HMSRoom) {
|
|
@@ -411,7 +634,7 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
411
634
|
|
|
412
635
|
let decodedRoles = HmsDecoder.getAllRoles(hms?.roles)
|
|
413
636
|
|
|
414
|
-
self.delegate?.emitEvent(ON_JOIN, ["event": ON_JOIN, "id": self.id
|
|
637
|
+
self.delegate?.emitEvent(ON_JOIN, ["event": ON_JOIN, "id": self.id , "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData, "roles": decodedRoles])
|
|
415
638
|
}
|
|
416
639
|
|
|
417
640
|
func onPreview(room: HMSRoom, localTracks: [HMSTrack]) {
|
|
@@ -419,7 +642,8 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
419
642
|
let hmsRoom = HmsDecoder.getHmsRoom(room)
|
|
420
643
|
let localPeerData = HmsDecoder.getHmsLocalPeer(hms?.localPeer)
|
|
421
644
|
|
|
422
|
-
|
|
645
|
+
previewInProgress = false
|
|
646
|
+
self.delegate?.emitEvent(ON_PREVIEW, ["event": ON_PREVIEW, "id": self.id , "room": hmsRoom, "previewTracks": previewTracks, "localPeer": localPeerData])
|
|
423
647
|
}
|
|
424
648
|
|
|
425
649
|
func on(room: HMSRoom, update: HMSRoomUpdate) {
|
|
@@ -430,7 +654,7 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
430
654
|
let localPeerData = HmsDecoder.getHmsLocalPeer(hms?.localPeer)
|
|
431
655
|
let remotePeerData = HmsDecoder.getHmsRemotePeers(hms?.remotePeers)
|
|
432
656
|
|
|
433
|
-
self.delegate?.emitEvent(ON_ROOM_UPDATE, ["event": ON_ROOM_UPDATE, "id": self.id, "type": type, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData])
|
|
657
|
+
self.delegate?.emitEvent(ON_ROOM_UPDATE, ["event": ON_ROOM_UPDATE, "id": self.id , "type": type, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData])
|
|
434
658
|
}
|
|
435
659
|
|
|
436
660
|
func on(peer: HMSPeer, update: HMSPeerUpdate) {
|
|
@@ -440,8 +664,9 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
440
664
|
|
|
441
665
|
let localPeerData = HmsDecoder.getHmsLocalPeer(hms?.localPeer)
|
|
442
666
|
let remotePeerData = HmsDecoder.getHmsRemotePeers(hms?.remotePeers)
|
|
667
|
+
let hmsPeer = HmsDecoder.getHmsPeer(peer)
|
|
443
668
|
|
|
444
|
-
self.delegate?.emitEvent(ON_PEER_UPDATE, ["event": ON_PEER_UPDATE, "id": self.id, "type": type, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData])
|
|
669
|
+
self.delegate?.emitEvent(ON_PEER_UPDATE, ["event": ON_PEER_UPDATE, "id": self.id, "type": type, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData, "peer": hmsPeer])
|
|
445
670
|
}
|
|
446
671
|
|
|
447
672
|
func on(track: HMSTrack, update: HMSTrackUpdate, for peer: HMSPeer) {
|
|
@@ -451,17 +676,19 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
451
676
|
|
|
452
677
|
let localPeerData = HmsDecoder.getHmsLocalPeer(hms?.localPeer)
|
|
453
678
|
let remotePeerData = HmsDecoder.getHmsRemotePeers(hms?.remotePeers)
|
|
679
|
+
let hmsPeer = HmsDecoder.getHmsPeer(peer)
|
|
680
|
+
let hmsTrack = HmsDecoder.getHmsTrack(track)
|
|
454
681
|
|
|
455
|
-
self.delegate?.emitEvent(ON_TRACK_UPDATE, ["event": ON_TRACK_UPDATE, "id": self.id, "room": roomData, "type": type, "localPeer": localPeerData, "remotePeers": remotePeerData])
|
|
682
|
+
self.delegate?.emitEvent(ON_TRACK_UPDATE, ["event": ON_TRACK_UPDATE, "id": self.id, "room": roomData, "type": type, "localPeer": localPeerData, "remotePeers": remotePeerData, "peer": hmsPeer, "track": hmsTrack])
|
|
456
683
|
}
|
|
457
684
|
|
|
458
685
|
func on(error: HMSError) {
|
|
459
|
-
|
|
460
|
-
self.delegate?.emitEvent(ON_ERROR,
|
|
686
|
+
if (previewInProgress) { previewInProgress = false }
|
|
687
|
+
self.delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
|
|
461
688
|
}
|
|
462
689
|
|
|
463
690
|
func on(message: HMSMessage) {
|
|
464
|
-
self.delegate?.emitEvent(ON_MESSAGE, ["event": ON_MESSAGE, "id": self.id, "sender": message.sender?.name ?? "", "time": message.time, "message": message.message, "type": message.type])
|
|
691
|
+
self.delegate?.emitEvent(ON_MESSAGE, ["event": ON_MESSAGE, "id": self.id , "sender": message.sender?.name ?? "", "time": message.time, "message": message.message, "type": message.type])
|
|
465
692
|
}
|
|
466
693
|
|
|
467
694
|
func on(updated speakers: [HMSSpeaker]) {
|
|
@@ -469,15 +696,15 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
469
696
|
for speaker in speakers {
|
|
470
697
|
speakerPeerIds.append(["peer": HmsDecoder.getHmsPeer(speaker.peer), "level": speaker.level, "track": HmsDecoder.getHmsTrack(speaker.track)])
|
|
471
698
|
}
|
|
472
|
-
self.delegate?.emitEvent(ON_SPEAKER, ["event": ON_SPEAKER, "id": self.id, "count": speakers.count, "peers" :speakerPeerIds])
|
|
699
|
+
self.delegate?.emitEvent(ON_SPEAKER, ["event": ON_SPEAKER, "id": self.id , "count": speakers.count, "peers" :speakerPeerIds])
|
|
473
700
|
}
|
|
474
701
|
|
|
475
702
|
func onReconnecting() {
|
|
476
|
-
self.delegate?.emitEvent(RECONNECTING, ["event": RECONNECTING, "id": self.id])
|
|
703
|
+
self.delegate?.emitEvent(RECONNECTING, ["event": RECONNECTING, "id": self.id ])
|
|
477
704
|
}
|
|
478
705
|
|
|
479
706
|
func onReconnected() {
|
|
480
|
-
self.delegate?.emitEvent(RECONNECTED, ["event": RECONNECTED, "id": self.id])
|
|
707
|
+
self.delegate?.emitEvent(RECONNECTED, ["event": RECONNECTED, "id": self.id ])
|
|
481
708
|
}
|
|
482
709
|
|
|
483
710
|
func on(roleChangeRequest: HMSRoleChangeRequest) {
|
|
@@ -487,7 +714,8 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
487
714
|
}
|
|
488
715
|
|
|
489
716
|
func on(changeTrackStateRequest: HMSChangeTrackStateRequest) {
|
|
490
|
-
|
|
717
|
+
let decodedChangeTrackStateRequest = HmsDecoder.getHmsChangeTrackStateRequest(changeTrackStateRequest, id)
|
|
718
|
+
delegate?.emitEvent("ON_CHANGE_TRACK_STATE_REQUEST", decodedChangeTrackStateRequest)
|
|
491
719
|
}
|
|
492
720
|
|
|
493
721
|
func on(removedFromRoom notification: HMSRemovedFromRoomNotification) {
|
|
@@ -507,7 +735,8 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
507
735
|
func muteAllPeersAudio(_ data: NSDictionary) {
|
|
508
736
|
guard let mute = data.value(forKey: "mute") as? Bool
|
|
509
737
|
else {
|
|
510
|
-
|
|
738
|
+
let error = HMSError(id: "119", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
|
|
739
|
+
delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HmsDecoder.getError(error), "id":id])
|
|
511
740
|
return
|
|
512
741
|
}
|
|
513
742
|
|
|
@@ -532,6 +761,8 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
532
761
|
return "PEER_LEFT"
|
|
533
762
|
case .roleUpdated:
|
|
534
763
|
return "ROLE_CHANGED"
|
|
764
|
+
case .metadataUpdated:
|
|
765
|
+
return "METADATA_CHANGED"
|
|
535
766
|
default:
|
|
536
767
|
return ""
|
|
537
768
|
}
|
|
@@ -575,3 +806,9 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
575
806
|
}
|
|
576
807
|
}
|
|
577
808
|
}
|
|
809
|
+
|
|
810
|
+
//extension HmsSDK: HMSLogger {
|
|
811
|
+
// func log(_ message: String, _ level: HMSLogLevel) {
|
|
812
|
+
//
|
|
813
|
+
// }
|
|
814
|
+
//}
|