@100mslive/react-native-hms 0.9.7 → 0.9.91
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 +63 -44
- package/android/.gradle/6.9/fileHashes/fileHashes.bin +0 -0
- package/android/.gradle/6.9/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- 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 +6 -1
- package/android/.idea/jarRepositories.xml +40 -0
- package/android/.idea/libraries/Gradle__androidx_activity_activity_1_2_4_aar.xml +16 -0
- package/android/.idea/libraries/Gradle__androidx_annotation_annotation_1_3_0.xml +11 -0
- package/android/.idea/libraries/Gradle__androidx_annotation_annotation_experimental_1_1_0_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_appcompat_appcompat_1_4_1_aar.xml +16 -0
- package/android/.idea/libraries/Gradle__androidx_appcompat_appcompat_resources_1_4_1_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_arch_core_core_common_2_1_0.xml +11 -0
- package/android/.idea/libraries/Gradle__androidx_arch_core_core_runtime_2_1_0_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_autofill_autofill_1_1_0_aar.xml +16 -0
- package/android/.idea/libraries/Gradle__androidx_collection_collection_1_1_0.xml +11 -0
- package/android/.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_2_1_3_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_core_core_1_7_0_aar.xml +16 -0
- package/android/.idea/libraries/Gradle__androidx_cursoradapter_cursoradapter_1_0_0_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_customview_customview_1_0_0_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_drawerlayout_drawerlayout_1_0_0_aar.xml +16 -0
- package/android/.idea/libraries/Gradle__androidx_fragment_fragment_1_3_6_aar.xml +16 -0
- package/android/.idea/libraries/Gradle__androidx_interpolator_interpolator_1_0_0_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_common_2_4_0.xml +11 -0
- package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_2_0_0_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_core_2_3_1_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_4_0_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_2_3_1_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_savedstate_2_3_1_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_loader_loader_1_0_0_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_savedstate_savedstate_1_1_0_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_swiperefreshlayout_swiperefreshlayout_1_0_0_aar.xml +16 -0
- package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_1_1_0_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_animated_1_1_0_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_versionedparcelable_versionedparcelable_1_1_1_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__androidx_viewpager_viewpager_1_0_0_aar.xml +13 -0
- package/android/.idea/libraries/Gradle__com_facebook_fbjni_fbjni_java_only_0_2_2.xml +13 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_drawee_2_5_0_aar.xml +15 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_fbcore_2_5_0_aar.xml +18 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_fresco_2_5_0_aar.xml +18 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_2_5_0_aar.xml +18 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_base_2_5_0_aar.xml +18 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_native_2_5_0_aar.xml +15 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_okhttp3_2_5_0_aar.xml +15 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_memory_type_ashmem_2_5_0_aar.xml +15 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_memory_type_java_2_5_0_aar.xml +15 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_memory_type_native_2_5_0_aar.xml +15 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_nativeimagefilters_2_5_0_aar.xml +15 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_nativeimagetranscoder_2_5_0_aar.xml +15 -0
- package/android/.idea/libraries/Gradle__com_facebook_fresco_ui_common_2_5_0_aar.xml +15 -0
- package/android/.idea/libraries/Gradle__com_facebook_infer_annotation_infer_annotation_0_18_0.xml +13 -0
- package/android/.idea/libraries/Gradle__com_facebook_react_react_native_0_69_1_debug_aar.xml +14 -0
- package/android/.idea/libraries/Gradle__com_facebook_soloader_annotation_0_10_3.xml +13 -0
- package/android/.idea/libraries/Gradle__com_facebook_soloader_nativeloader_0_10_3.xml +13 -0
- package/android/.idea/libraries/Gradle__com_facebook_soloader_soloader_0_10_3_aar.xml +15 -0
- package/android/.idea/libraries/Gradle__com_facebook_yoga_proguard_annotations_1_19_0.xml +13 -0
- package/android/.idea/libraries/Gradle__com_github_100mslive_android_sdk_lib_2_4_7_aar.xml +11 -0
- package/android/.idea/libraries/Gradle__com_github_100mslive_webrtc_m97_hms_1_1_aar.xml +11 -0
- package/android/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_3_0_2.xml +13 -0
- package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_4_9_2.xml +13 -0
- package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_urlconnection_4_9_2.xml +13 -0
- package/android/.idea/libraries/Gradle__com_squareup_okio_okio_2_9_0.xml +13 -0
- package/android/.idea/libraries/Gradle__javax_inject_javax_inject_1.xml +13 -0
- package/android/.idea/libraries/Gradle__org_jetbrains_annotations_13_0.xml +13 -0
- package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_annotations_jvm_1_3_72.xml +13 -0
- package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_6_10.xml +13 -0
- package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_6_10.xml +13 -0
- package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_6_10.xml +13 -0
- package/android/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk8_1_6_10.xml +13 -0
- package/android/.idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_android_1_6_0.xml +13 -0
- package/android/.idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_core_jvm_1_6_0.xml +13 -0
- package/android/.idea/misc.xml +1 -1
- package/android/.idea/modules/android.androidTest.iml +201 -0
- package/android/.idea/modules/android.iml +28 -6
- package/android/.idea/modules/android.main.iml +196 -0
- package/android/.idea/modules/android.unitTest.iml +195 -0
- package/android/.idea/modules.xml +3 -0
- package/android/build.gradle +2 -2
- package/android/src/main/java/com/reactnativehmssdk/HMSAudioshareActivity.kt +84 -0
- package/android/src/main/java/com/reactnativehmssdk/HMSDecoder.kt +79 -10
- package/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt +130 -27
- package/android/src/main/java/com/reactnativehmssdk/HMSManager.kt +88 -2
- package/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +307 -82
- package/ios/HMSDecoder.swift +9 -8
- package/ios/HMSHelper.swift +18 -8
- package/ios/HMSManager.m +1 -1
- package/ios/HMSManager.swift +7 -6
- package/ios/HMSRNSDK.swift +198 -173
- package/lib/commonjs/classes/HMSAudioDevice.js +17 -0
- package/lib/commonjs/classes/HMSAudioDevice.js.map +1 -0
- package/lib/commonjs/classes/HMSAudioMixingMode.js +15 -0
- package/lib/commonjs/classes/HMSAudioMixingMode.js.map +1 -0
- package/lib/commonjs/classes/HMSAudioMode.js +17 -0
- package/lib/commonjs/classes/HMSAudioMode.js.map +1 -0
- package/lib/commonjs/classes/HMSEncoder.js +15 -0
- package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
- package/lib/commonjs/classes/HMSException.js +18 -13
- package/lib/commonjs/classes/HMSException.js.map +1 -1
- package/lib/commonjs/classes/HMSHLSConfig.js.map +1 -1
- package/lib/commonjs/classes/HMSLogger.js +2 -2
- package/lib/commonjs/classes/HMSLogger.js.map +1 -1
- package/lib/commonjs/classes/HMSPermissions.js +7 -4
- package/lib/commonjs/classes/HMSPermissions.js.map +1 -1
- package/lib/commonjs/classes/HMSRTMPConfig.js +3 -0
- package/lib/commonjs/classes/HMSRTMPConfig.js.map +1 -1
- package/lib/commonjs/classes/HMSRtmpVideoResolution.js +23 -0
- package/lib/commonjs/classes/HMSRtmpVideoResolution.js.map +1 -0
- package/lib/commonjs/classes/HMSSDK.js +268 -48
- 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/index.js +56 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/classes/HMSAudioDevice.js +10 -0
- package/lib/module/classes/HMSAudioDevice.js.map +1 -0
- package/lib/module/classes/HMSAudioMixingMode.js +8 -0
- package/lib/module/classes/HMSAudioMixingMode.js.map +1 -0
- package/lib/module/classes/HMSAudioMode.js +10 -0
- package/lib/module/classes/HMSAudioMode.js.map +1 -0
- package/lib/module/classes/HMSEncoder.js +14 -0
- package/lib/module/classes/HMSEncoder.js.map +1 -1
- package/lib/module/classes/HMSException.js +18 -13
- package/lib/module/classes/HMSException.js.map +1 -1
- package/lib/module/classes/HMSHLSConfig.js.map +1 -1
- package/lib/module/classes/HMSLogger.js +2 -2
- package/lib/module/classes/HMSLogger.js.map +1 -1
- package/lib/module/classes/HMSPermissions.js +7 -4
- package/lib/module/classes/HMSPermissions.js.map +1 -1
- package/lib/module/classes/HMSRTMPConfig.js +3 -0
- package/lib/module/classes/HMSRTMPConfig.js.map +1 -1
- package/lib/module/classes/HMSRtmpVideoResolution.js +14 -0
- package/lib/module/classes/HMSRtmpVideoResolution.js.map +1 -0
- package/lib/module/classes/HMSSDK.js +267 -42
- 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/index.js +4 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/classes/HMSAudioDevice.d.ts +7 -0
- package/lib/typescript/classes/HMSAudioMixingMode.d.ts +5 -0
- package/lib/typescript/classes/HMSAudioMode.d.ts +7 -0
- package/lib/typescript/classes/HMSEncoder.d.ts +2 -0
- package/lib/typescript/classes/HMSException.d.ts +8 -14
- package/lib/typescript/classes/HMSHLSConfig.d.ts +2 -2
- package/lib/typescript/classes/HMSLogger.d.ts +1 -1
- package/lib/typescript/classes/HMSPermissions.d.ts +6 -4
- package/lib/typescript/classes/HMSRTMPConfig.d.ts +3 -0
- package/lib/typescript/classes/HMSRtmpVideoResolution.d.ts +8 -0
- package/lib/typescript/classes/HMSSDK.d.ts +109 -11
- package/lib/typescript/classes/HMSUpdateListenerActions.d.ts +2 -1
- package/lib/typescript/index.d.ts +4 -0
- package/package.json +1 -19
- package/react-native-hms.podspec +1 -1
- package/src/classes/HMSAudioDevice.ts +7 -0
- package/src/classes/HMSAudioMixingMode.ts +5 -0
- package/src/classes/HMSAudioMode.ts +7 -0
- package/src/classes/HMSEncoder.ts +12 -0
- package/src/classes/HMSException.ts +15 -24
- package/src/classes/HMSHLSConfig.ts +2 -2
- package/src/classes/HMSLogger.ts +2 -2
- package/src/classes/HMSPermissions.ts +9 -6
- package/src/classes/HMSRTMPConfig.ts +5 -0
- package/src/classes/HMSRtmpVideoResolution.ts +9 -0
- package/src/classes/HMSSDK.tsx +341 -49
- package/src/classes/HMSUpdateListenerActions.ts +1 -0
- package/src/index.ts +4 -0
package/ios/HMSRNSDK.swift
CHANGED
|
@@ -17,6 +17,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
17
17
|
var id: String = "12345"
|
|
18
18
|
var rtcStatsAttached = false
|
|
19
19
|
var recentPreviewTracks: [HMSTrack]? = []
|
|
20
|
+
private var reconnectingStage: Bool = false
|
|
20
21
|
|
|
21
22
|
let ON_PREVIEW = "ON_PREVIEW"
|
|
22
23
|
let ON_JOIN = "ON_JOIN"
|
|
@@ -55,6 +56,10 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
55
56
|
|
|
56
57
|
private var previewInProgress = false
|
|
57
58
|
|
|
59
|
+
func emitRequiredKeysError(_ error: String) {
|
|
60
|
+
delegate?.emitEvent(ON_ERROR, ["error": ["code": HMSErrorCode.genericErrorUnknown.rawValue, "description": error, "message": error, "name": "REQUIRED_KEYS_NOT_FOUND", "action": "SEND_ALL_REQUIRED_KEYS", "id": 102, "isTerminal": false], "id": id])
|
|
61
|
+
}
|
|
62
|
+
|
|
58
63
|
func preview(_ credentials: NSDictionary) {
|
|
59
64
|
|
|
60
65
|
guard !previewInProgress else {
|
|
@@ -66,8 +71,8 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
66
71
|
guard let authToken = credentials.value(forKey: "authToken") as? String,
|
|
67
72
|
let user = credentials.value(forKey: "username") as? String
|
|
68
73
|
else {
|
|
69
|
-
let
|
|
70
|
-
|
|
74
|
+
let errorMessage = "preview: " + HMSHelper.getUnavailableRequiredKey(credentials, ["authToken", "username"])
|
|
75
|
+
emitRequiredKeysError(errorMessage)
|
|
71
76
|
return
|
|
72
77
|
}
|
|
73
78
|
|
|
@@ -90,9 +95,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
90
95
|
func previewForRole(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
91
96
|
guard let role = data.value(forKey: "role") as? String
|
|
92
97
|
else {
|
|
93
|
-
let
|
|
94
|
-
|
|
95
|
-
reject?(
|
|
98
|
+
let errorMessage = "previewForRole: " + HMSHelper.getUnavailableRequiredKey(data, ["role"])
|
|
99
|
+
emitRequiredKeysError(errorMessage)
|
|
100
|
+
reject?(errorMessage, errorMessage, nil)
|
|
96
101
|
return
|
|
97
102
|
}
|
|
98
103
|
|
|
@@ -101,7 +106,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
101
106
|
if let extractedRole = roleObj {
|
|
102
107
|
hms?.preview(role: extractedRole, completion: { tracks, error in
|
|
103
108
|
if (error != nil) {
|
|
104
|
-
delegate?.emitEvent(ON_ERROR, ["
|
|
109
|
+
delegate?.emitEvent(ON_ERROR, ["error": HMSDecoder.getError(error), "id": id])
|
|
105
110
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
106
111
|
return
|
|
107
112
|
}
|
|
@@ -131,11 +136,11 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
131
136
|
guard let authToken = credentials.value(forKey: "authToken") as? String,
|
|
132
137
|
let user = credentials.value(forKey: "username") as? String
|
|
133
138
|
else {
|
|
134
|
-
let
|
|
135
|
-
|
|
139
|
+
let errorMessage = "join: " + HMSHelper.getUnavailableRequiredKey(credentials, ["authToken", "username"])
|
|
140
|
+
emitRequiredKeysError(errorMessage)
|
|
136
141
|
return
|
|
137
142
|
}
|
|
138
|
-
|
|
143
|
+
reconnectingStage = false
|
|
139
144
|
let metadata = credentials.value(forKey: "metadata") as? String
|
|
140
145
|
let captureNetworkQualityInPreview = credentials.value(forKey: "captureNetworkQualityInPreview") as? Bool ?? false
|
|
141
146
|
|
|
@@ -158,8 +163,8 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
158
163
|
func setLocalMute(_ data: NSDictionary) {
|
|
159
164
|
guard let isMute = data.value(forKey: "isMute") as? Bool
|
|
160
165
|
else {
|
|
161
|
-
let
|
|
162
|
-
|
|
166
|
+
let errorMessage = "setLocalMute: " + HMSHelper.getUnavailableRequiredKey(data, ["isMute"])
|
|
167
|
+
emitRequiredKeysError(errorMessage)
|
|
163
168
|
return
|
|
164
169
|
}
|
|
165
170
|
|
|
@@ -171,8 +176,8 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
171
176
|
func setLocalVideoMute(_ data: NSDictionary) {
|
|
172
177
|
guard let isMute = data.value(forKey: "isMute") as? Bool
|
|
173
178
|
else {
|
|
174
|
-
let
|
|
175
|
-
|
|
179
|
+
let errorMessage = "setLocalVideoMute: " + HMSHelper.getUnavailableRequiredKey(data, ["isMute"])
|
|
180
|
+
emitRequiredKeysError(errorMessage)
|
|
176
181
|
return
|
|
177
182
|
}
|
|
178
183
|
|
|
@@ -188,26 +193,31 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
188
193
|
}
|
|
189
194
|
|
|
190
195
|
func leave(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
self
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
196
|
+
if(reconnectingStage) {
|
|
197
|
+
reject?("101", "Still in reconnecting stage", nil)
|
|
198
|
+
} else {
|
|
199
|
+
DispatchQueue.main.async { [weak self] in
|
|
200
|
+
guard let strongSelf = self else { return }
|
|
201
|
+
self?.config = nil
|
|
202
|
+
self?.recentRoleChangeRequest = nil
|
|
203
|
+
self?.hms?.leave({ success, error in
|
|
204
|
+
if success {
|
|
205
|
+
resolve?(["success": success])
|
|
206
|
+
} else {
|
|
207
|
+
strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["error": HMSDecoder.getError(error), "id": strongSelf.id])
|
|
208
|
+
reject?(nil, "error in leave", nil)
|
|
209
|
+
}
|
|
210
|
+
})
|
|
211
|
+
}
|
|
203
212
|
}
|
|
204
213
|
}
|
|
205
214
|
|
|
206
215
|
func sendBroadcastMessage(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
207
216
|
guard let message = data.value(forKey: "message") as? String
|
|
208
217
|
else {
|
|
209
|
-
let
|
|
210
|
-
|
|
218
|
+
let errorMessage = "sendBroadcastMessage: " + HMSHelper.getUnavailableRequiredKey(data, ["message"])
|
|
219
|
+
emitRequiredKeysError(errorMessage)
|
|
220
|
+
reject?(errorMessage, errorMessage, nil)
|
|
211
221
|
return
|
|
212
222
|
}
|
|
213
223
|
|
|
@@ -219,7 +229,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
219
229
|
resolve?(["success": true, "data": ["sender": message?.sender?.name ?? "", "message": message?.message ?? "", "type": message?.type]])
|
|
220
230
|
return
|
|
221
231
|
} else {
|
|
222
|
-
self?.delegate?.emitEvent("ON_ERROR", ["
|
|
232
|
+
self?.delegate?.emitEvent("ON_ERROR", ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
223
233
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
224
234
|
return
|
|
225
235
|
}
|
|
@@ -231,8 +241,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
231
241
|
guard let message = data.value(forKey: "message") as? String,
|
|
232
242
|
let targetedRoles = data.value(forKey: "roles") as? [String]
|
|
233
243
|
else {
|
|
234
|
-
let
|
|
235
|
-
|
|
244
|
+
let errorMessage = "sendGroupMessage: " + HMSHelper.getUnavailableRequiredKey(data, ["message", "roles"])
|
|
245
|
+
emitRequiredKeysError(errorMessage)
|
|
246
|
+
reject?(errorMessage, errorMessage, nil)
|
|
236
247
|
return
|
|
237
248
|
}
|
|
238
249
|
|
|
@@ -244,7 +255,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
244
255
|
resolve?(["success": true, "data": ["sender": message?.sender?.name ?? "", "message": message?.message ?? "", "type": message?.type]])
|
|
245
256
|
return
|
|
246
257
|
} else {
|
|
247
|
-
self?.delegate?.emitEvent("ON_ERROR", ["
|
|
258
|
+
self?.delegate?.emitEvent("ON_ERROR", ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
248
259
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
249
260
|
return
|
|
250
261
|
}
|
|
@@ -256,8 +267,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
256
267
|
guard let message = data.value(forKey: "message") as? String,
|
|
257
268
|
let peerId = data.value(forKey: "peerId") as? String
|
|
258
269
|
else {
|
|
259
|
-
let
|
|
260
|
-
|
|
270
|
+
let errorMessage = "sendDirectMessage: " + HMSHelper.getUnavailableRequiredKey(data, ["message", "peerId"])
|
|
271
|
+
emitRequiredKeysError(errorMessage)
|
|
272
|
+
reject?(errorMessage, errorMessage, nil)
|
|
261
273
|
return
|
|
262
274
|
}
|
|
263
275
|
|
|
@@ -269,7 +281,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
269
281
|
resolve?(["success": true, "data": ["sender": message?.sender?.name ?? "", "message": message?.message ?? "", "type": message?.type]])
|
|
270
282
|
return
|
|
271
283
|
} else {
|
|
272
|
-
self?.delegate?.emitEvent("ON_ERROR", ["
|
|
284
|
+
self?.delegate?.emitEvent("ON_ERROR", ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
273
285
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
274
286
|
return
|
|
275
287
|
}
|
|
@@ -281,13 +293,19 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
281
293
|
|
|
282
294
|
DispatchQueue.main.async { [weak self] in
|
|
283
295
|
|
|
284
|
-
guard let request = self?.recentRoleChangeRequest
|
|
296
|
+
guard let request = self?.recentRoleChangeRequest
|
|
297
|
+
else {
|
|
298
|
+
let errorMessage = "acceptRoleChange: recentRoleChangeRequest not found"
|
|
299
|
+
self?.emitRequiredKeysError(errorMessage)
|
|
300
|
+
reject?(errorMessage, errorMessage, nil)
|
|
301
|
+
return
|
|
302
|
+
}
|
|
285
303
|
|
|
286
304
|
self?.hms?.accept(changeRole: request, completion: { success, error in
|
|
287
305
|
if success {
|
|
288
|
-
resolve?(["success":
|
|
306
|
+
resolve?(["success": success])
|
|
289
307
|
} else {
|
|
290
|
-
self?.delegate?.emitEvent("ON_ERROR", ["
|
|
308
|
+
self?.delegate?.emitEvent("ON_ERROR", ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
291
309
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
292
310
|
}
|
|
293
311
|
})
|
|
@@ -301,8 +319,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
301
319
|
guard let peerId = data.value(forKey: "peerId") as? String,
|
|
302
320
|
let role = data.value(forKey: "role") as? String
|
|
303
321
|
else {
|
|
304
|
-
let
|
|
305
|
-
|
|
322
|
+
let errorMessage = "changeRole: " + HMSHelper.getUnavailableRequiredKey(data, ["peerId", "role"])
|
|
323
|
+
emitRequiredKeysError(errorMessage)
|
|
324
|
+
reject?(errorMessage, errorMessage, nil)
|
|
306
325
|
return
|
|
307
326
|
}
|
|
308
327
|
|
|
@@ -315,9 +334,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
315
334
|
|
|
316
335
|
self?.hms?.changeRole(for: peer, to: role, force: force, completion: { success, error in
|
|
317
336
|
if success {
|
|
318
|
-
resolve?(["success":
|
|
337
|
+
resolve?(["success": success])
|
|
319
338
|
} else {
|
|
320
|
-
self?.delegate?.emitEvent("ON_ERROR", ["
|
|
339
|
+
self?.delegate?.emitEvent("ON_ERROR", ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
321
340
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
322
341
|
}
|
|
323
342
|
})
|
|
@@ -328,8 +347,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
328
347
|
|
|
329
348
|
guard let trackId = data.value(forKey: "trackId") as? String
|
|
330
349
|
else {
|
|
331
|
-
let
|
|
332
|
-
|
|
350
|
+
let errorMessage = "changeTrackState: " + HMSHelper.getUnavailableRequiredKey(data, ["trackId"])
|
|
351
|
+
emitRequiredKeysError(errorMessage)
|
|
352
|
+
reject?(errorMessage, errorMessage, nil)
|
|
333
353
|
return
|
|
334
354
|
}
|
|
335
355
|
|
|
@@ -338,13 +358,16 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
338
358
|
DispatchQueue.main.async { [weak self] in
|
|
339
359
|
guard let remotePeers = self?.hms?.remotePeers,
|
|
340
360
|
let track = HMSHelper.getTrackFromTrackId(trackId, remotePeers)
|
|
341
|
-
else {
|
|
361
|
+
else {
|
|
362
|
+
reject?(nil, "TRACK_NOT_FOUND", nil)
|
|
363
|
+
return
|
|
364
|
+
}
|
|
342
365
|
|
|
343
366
|
self?.hms?.changeTrackState(for: track, mute: mute, completion: { success, error in
|
|
344
367
|
if success {
|
|
345
|
-
resolve?(["success":
|
|
368
|
+
resolve?(["success": success])
|
|
346
369
|
} else {
|
|
347
|
-
self?.delegate?.emitEvent("ON_ERROR", ["
|
|
370
|
+
self?.delegate?.emitEvent("ON_ERROR", ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
348
371
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
349
372
|
}
|
|
350
373
|
})
|
|
@@ -355,8 +378,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
355
378
|
|
|
356
379
|
guard let mute = data.value(forKey: "mute") as? Bool
|
|
357
380
|
else {
|
|
358
|
-
let
|
|
359
|
-
|
|
381
|
+
let errorMessage = "changeTrackStateForRoles: " + HMSHelper.getUnavailableRequiredKey(data, ["mute"])
|
|
382
|
+
emitRequiredKeysError(errorMessage)
|
|
383
|
+
reject?(errorMessage, errorMessage, nil)
|
|
360
384
|
return
|
|
361
385
|
}
|
|
362
386
|
let source = data.value(forKey: "source") as? String
|
|
@@ -376,9 +400,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
376
400
|
let encodedTargetedRoles = HMSHelper.getRolesFromRoleNames(targetedRoles, roles: self?.hms?.roles)
|
|
377
401
|
self?.hms?.changeTrackState(mute: mute, for: decodeType, source: source, roles: encodedTargetedRoles, completion: { success, error in
|
|
378
402
|
if success {
|
|
379
|
-
resolve?(["success":
|
|
403
|
+
resolve?(["success": success])
|
|
380
404
|
} else {
|
|
381
|
-
self?.delegate?.emitEvent("ON_ERROR", ["
|
|
405
|
+
self?.delegate?.emitEvent("ON_ERROR", ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
382
406
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
383
407
|
}
|
|
384
408
|
})
|
|
@@ -388,9 +412,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
388
412
|
func isMute(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
389
413
|
guard let trackId = data.value(forKey: "trackId") as? String
|
|
390
414
|
else {
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
415
|
+
let errorMessage = "isMute: " + HMSHelper.getUnavailableRequiredKey(data, ["trackId"])
|
|
416
|
+
emitRequiredKeysError(errorMessage)
|
|
417
|
+
reject?(errorMessage, errorMessage, nil)
|
|
394
418
|
return
|
|
395
419
|
}
|
|
396
420
|
|
|
@@ -402,9 +426,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
402
426
|
guard let remotePeers = self?.hms?.remotePeers,
|
|
403
427
|
let track = HMSHelper.getTrackFromTrackId(trackId, remotePeers)
|
|
404
428
|
else {
|
|
405
|
-
let error = HMSError(id: "120", code: HMSErrorCode.genericErrorUnknown, message: "
|
|
406
|
-
strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["
|
|
407
|
-
reject?(nil, "
|
|
429
|
+
let error = HMSError(id: "120", code: HMSErrorCode.genericErrorUnknown, message: "TRACK_NOT_FOUND")
|
|
430
|
+
strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["error": HMSDecoder.getError(error), "id": strongSelf.id])
|
|
431
|
+
reject?(nil, "TRACK_NOT_FOUND", nil)
|
|
408
432
|
return
|
|
409
433
|
}
|
|
410
434
|
let mute = track.isMute()
|
|
@@ -420,8 +444,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
420
444
|
|
|
421
445
|
guard let peerId = data.value(forKey: "peerId") as? String
|
|
422
446
|
else {
|
|
423
|
-
let
|
|
424
|
-
|
|
447
|
+
let errorMessage = "removePeer: " + HMSHelper.getUnavailableRequiredKey(data, ["peerId"])
|
|
448
|
+
emitRequiredKeysError(errorMessage)
|
|
449
|
+
reject?(errorMessage, errorMessage, nil)
|
|
425
450
|
return
|
|
426
451
|
}
|
|
427
452
|
|
|
@@ -431,13 +456,16 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
431
456
|
|
|
432
457
|
guard let remotePeers = self?.hms?.remotePeers,
|
|
433
458
|
let peer = HMSHelper.getRemotePeerFromPeerId(peerId, remotePeers: remotePeers)
|
|
434
|
-
else {
|
|
459
|
+
else {
|
|
460
|
+
reject?(nil, "PEER_NOT_FOUND", nil)
|
|
461
|
+
return
|
|
462
|
+
}
|
|
435
463
|
|
|
436
464
|
self?.hms?.removePeer(peer, reason: reason ?? "Removed from room", completion: { success, error in
|
|
437
465
|
if success {
|
|
438
|
-
resolve?(["success":
|
|
466
|
+
resolve?(["success": success])
|
|
439
467
|
} else {
|
|
440
|
-
self?.delegate?.emitEvent("ON_ERROR", ["
|
|
468
|
+
self?.delegate?.emitEvent("ON_ERROR", ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
441
469
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
442
470
|
}
|
|
443
471
|
})
|
|
@@ -449,17 +477,18 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
449
477
|
guard let lock = data.value(forKey: "lock") as? Bool,
|
|
450
478
|
let reason = data.value(forKey: "reason") as? String
|
|
451
479
|
else {
|
|
452
|
-
let
|
|
453
|
-
|
|
480
|
+
let errorMessage = "endRoom: " + HMSHelper.getUnavailableRequiredKey(data, ["lock", "reason"])
|
|
481
|
+
emitRequiredKeysError(errorMessage)
|
|
482
|
+
reject?(errorMessage, errorMessage, nil)
|
|
454
483
|
return
|
|
455
484
|
}
|
|
456
485
|
|
|
457
486
|
DispatchQueue.main.async { [weak self] in
|
|
458
487
|
self?.hms?.endRoom(lock: lock, reason: reason, completion: { success, error in
|
|
459
488
|
if success {
|
|
460
|
-
resolve?(["success":
|
|
489
|
+
resolve?(["success": success])
|
|
461
490
|
} else {
|
|
462
|
-
self?.delegate?.emitEvent("ON_ERROR", ["
|
|
491
|
+
self?.delegate?.emitEvent("ON_ERROR", ["error": HMSDecoder.getError(error), "id": self?.id ?? "12345"])
|
|
463
492
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
464
493
|
}
|
|
465
494
|
})
|
|
@@ -469,18 +498,15 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
469
498
|
func isPlaybackAllowed(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
470
499
|
guard let trackId = data.value(forKey: "trackId") as? String
|
|
471
500
|
else {
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
501
|
+
let errorMessage = "isPlaybackAllowed: " + HMSHelper.getUnavailableRequiredKey(data, ["trackId"])
|
|
502
|
+
emitRequiredKeysError(errorMessage)
|
|
503
|
+
reject?(errorMessage, errorMessage, nil)
|
|
475
504
|
return
|
|
476
505
|
}
|
|
477
506
|
DispatchQueue.main.async { [weak self] in
|
|
478
|
-
guard let strongSelf = self else { return }
|
|
479
507
|
guard let remotePeers = self?.hms?.remotePeers
|
|
480
508
|
else {
|
|
481
|
-
|
|
482
|
-
strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["event": strongSelf.ON_ERROR, "error": HMSDecoder.getError(error), "id": strongSelf.id])
|
|
483
|
-
reject?(nil, "NOT_FOUND", nil)
|
|
509
|
+
reject?(nil, "REMOTE_PEERS_NOT_FOUND", nil)
|
|
484
510
|
return
|
|
485
511
|
}
|
|
486
512
|
let remoteAudioTrack = HMSHelper.getRemoteAudioTrackFromTrackId(trackId, remotePeers)
|
|
@@ -494,9 +520,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
494
520
|
resolve?(isPlaybackAllowed)
|
|
495
521
|
return
|
|
496
522
|
} else {
|
|
497
|
-
|
|
498
|
-
strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["event": strongSelf.ON_ERROR, "error": HMSDecoder.getError(error), "id": strongSelf.id])
|
|
499
|
-
reject?(nil, "NOT_FOUND", nil)
|
|
523
|
+
reject?(nil, "TRACK_NOT_FOUND", nil)
|
|
500
524
|
return
|
|
501
525
|
}
|
|
502
526
|
}
|
|
@@ -512,8 +536,8 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
512
536
|
guard let trackId = data.value(forKey: "trackId") as? String,
|
|
513
537
|
let playbackAllowed = data.value(forKey: "playbackAllowed") as? Bool
|
|
514
538
|
else {
|
|
515
|
-
let
|
|
516
|
-
|
|
539
|
+
let errorMessage = "setPlaybackAllowed: " + HMSHelper.getUnavailableRequiredKey(data, ["trackId", "playbackAllowed"])
|
|
540
|
+
emitRequiredKeysError(errorMessage)
|
|
517
541
|
return
|
|
518
542
|
}
|
|
519
543
|
DispatchQueue.main.async { [weak self] in
|
|
@@ -538,9 +562,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
538
562
|
func changeMetadata(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
539
563
|
guard let metadata = data.value(forKey: "metadata") as? String
|
|
540
564
|
else {
|
|
541
|
-
let
|
|
542
|
-
|
|
543
|
-
reject?(
|
|
565
|
+
let errorMessage = "changeMetadata: " + HMSHelper.getUnavailableRequiredKey(data, ["metadata"])
|
|
566
|
+
emitRequiredKeysError(errorMessage)
|
|
567
|
+
reject?(errorMessage, errorMessage, nil)
|
|
544
568
|
return
|
|
545
569
|
}
|
|
546
570
|
|
|
@@ -549,7 +573,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
549
573
|
resolve?(["success": success])
|
|
550
574
|
return
|
|
551
575
|
} else {
|
|
552
|
-
self.delegate?.emitEvent(self.ON_ERROR, ["
|
|
576
|
+
self.delegate?.emitEvent(self.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self.id])
|
|
553
577
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
554
578
|
return
|
|
555
579
|
}
|
|
@@ -560,8 +584,8 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
560
584
|
guard let trackId = data.value(forKey: "trackId") as? String,
|
|
561
585
|
let volume = data.value(forKey: "volume") as? Double
|
|
562
586
|
else {
|
|
563
|
-
let
|
|
564
|
-
|
|
587
|
+
let errorMessage = "setVolume: " + HMSHelper.getUnavailableRequiredKey(data, ["trackId", "volume"])
|
|
588
|
+
emitRequiredKeysError(errorMessage)
|
|
565
589
|
return
|
|
566
590
|
}
|
|
567
591
|
|
|
@@ -574,29 +598,31 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
574
598
|
if remoteAudioTrack != nil {
|
|
575
599
|
remoteAudioTrack?.setVolume(volume)
|
|
576
600
|
} else {
|
|
577
|
-
let error = HMSError(id: "125", code: HMSErrorCode.genericErrorUnknown, message: "
|
|
578
|
-
strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["
|
|
601
|
+
let error = HMSError(id: "125", code: HMSErrorCode.genericErrorUnknown, message: "TRACK_NOT_FOUND")
|
|
602
|
+
strongSelf.delegate?.emitEvent(strongSelf.ON_ERROR, ["error": HMSDecoder.getError(error), "id": strongSelf.id])
|
|
579
603
|
}
|
|
580
604
|
}
|
|
581
605
|
}
|
|
582
606
|
|
|
583
607
|
func startRTMPOrRecording(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
584
|
-
guard let record = data.value(forKey: "record") as? Bool
|
|
608
|
+
guard let record = data.value(forKey: "record") as? Bool,
|
|
609
|
+
let meetingString = data.value(forKey: "meetingURL") as? String
|
|
585
610
|
else {
|
|
586
|
-
let
|
|
587
|
-
|
|
611
|
+
let errorMessage = "startRTMPOrRecording: " + HMSHelper.getUnavailableRequiredKey(data, ["record", "meetingURL"])
|
|
612
|
+
emitRequiredKeysError(errorMessage)
|
|
613
|
+
reject?(errorMessage, errorMessage, nil)
|
|
588
614
|
return
|
|
589
615
|
}
|
|
590
616
|
|
|
591
|
-
let meetingString = data.value(forKey: "meetingURL") as? String
|
|
592
617
|
let rtmpStrings = data.value(forKey: "rtmpURLs") as? [String]
|
|
593
618
|
|
|
594
619
|
var meetingUrl: URL?
|
|
595
|
-
if let meetLink = meetingString {
|
|
596
|
-
meetingUrl =
|
|
620
|
+
if let meetLink = URL(string: meetingString) {
|
|
621
|
+
meetingUrl = meetLink
|
|
597
622
|
} else {
|
|
598
623
|
let error = HMSError(id: "127", code: HMSErrorCode.genericErrorUnknown, message: "INVALID_MEETING_URL_PASSED")
|
|
599
|
-
delegate?.emitEvent(ON_ERROR, ["
|
|
624
|
+
delegate?.emitEvent(ON_ERROR, ["error": HMSDecoder.getError(error), "id": id])
|
|
625
|
+
reject?("INVALID_MEETING_URL_PASSED", "INVALID_MEETING_URL_PASSED", nil)
|
|
600
626
|
}
|
|
601
627
|
|
|
602
628
|
let URLs = HMSHelper.getRtmpUrls(rtmpStrings)
|
|
@@ -613,7 +639,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
613
639
|
resolve?(["success": success])
|
|
614
640
|
return
|
|
615
641
|
} else {
|
|
616
|
-
self.delegate?.emitEvent(self.ON_ERROR, ["
|
|
642
|
+
self.delegate?.emitEvent(self.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self.id])
|
|
617
643
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
618
644
|
return
|
|
619
645
|
}
|
|
@@ -632,7 +658,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
632
658
|
resolve?(["success": success])
|
|
633
659
|
return
|
|
634
660
|
} else {
|
|
635
|
-
self.delegate?.emitEvent(self.ON_ERROR, ["
|
|
661
|
+
self.delegate?.emitEvent(self.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self.id])
|
|
636
662
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
637
663
|
return
|
|
638
664
|
}
|
|
@@ -640,16 +666,12 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
640
666
|
}
|
|
641
667
|
|
|
642
668
|
func startHLSStreaming(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
669
|
+
let recordConfig = HMSHelper.getHlsRecordingConfig(data.value(forKey: "hlsRecordingConfig") as? NSDictionary)
|
|
670
|
+
let hlsMeetingUrlVariant = HMSHelper.getHMSHLSMeetingURLVariants(data.value(forKey: "meetingURLVariants") as? [[String : Any]])
|
|
671
|
+
var config: HMSHLSConfig? = nil
|
|
672
|
+
if(!hlsMeetingUrlVariant.isEmpty || recordConfig !== nil){
|
|
673
|
+
config = HMSHLSConfig(variants: hlsMeetingUrlVariant, recording: recordConfig)
|
|
648
674
|
}
|
|
649
|
-
|
|
650
|
-
let recordConfig = HMSHelper.getHlsRecordingConfig(data)
|
|
651
|
-
let hlsMeetingUrlVariant = HMSHelper.getHMSHLSMeetingURLVariants(meetingURLVariants)
|
|
652
|
-
let config = HMSHLSConfig(variants: hlsMeetingUrlVariant, recording: recordConfig)
|
|
653
675
|
|
|
654
676
|
hms?.startHLSStreaming(config: config, completion: { success, error in
|
|
655
677
|
if success {
|
|
@@ -662,7 +684,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
662
684
|
resolve?(["success": success])
|
|
663
685
|
return
|
|
664
686
|
} else {
|
|
665
|
-
self.delegate?.emitEvent(self.ON_ERROR, ["
|
|
687
|
+
self.delegate?.emitEvent(self.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self.id])
|
|
666
688
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
667
689
|
return
|
|
668
690
|
}
|
|
@@ -681,7 +703,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
681
703
|
resolve?(["success": success])
|
|
682
704
|
return
|
|
683
705
|
} else {
|
|
684
|
-
self.delegate?.emitEvent(self.ON_ERROR, ["
|
|
706
|
+
self.delegate?.emitEvent(self.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self.id])
|
|
685
707
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
686
708
|
return
|
|
687
709
|
}
|
|
@@ -691,9 +713,9 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
691
713
|
func changeName(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
692
714
|
guard let name = data.value(forKey: "name") as? String
|
|
693
715
|
else {
|
|
694
|
-
let
|
|
695
|
-
|
|
696
|
-
reject?(
|
|
716
|
+
let errorMessage = "changeName: " + HMSHelper.getUnavailableRequiredKey(data, ["name"])
|
|
717
|
+
emitRequiredKeysError(errorMessage)
|
|
718
|
+
reject?(errorMessage, errorMessage, nil)
|
|
697
719
|
return
|
|
698
720
|
}
|
|
699
721
|
|
|
@@ -701,12 +723,51 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
701
723
|
if success {
|
|
702
724
|
resolve?(["success": success])
|
|
703
725
|
} else {
|
|
704
|
-
self.delegate?.emitEvent(self.ON_ERROR, ["
|
|
726
|
+
self.delegate?.emitEvent(self.ON_ERROR, ["error": HMSDecoder.getError(error), "id": self.id])
|
|
705
727
|
reject?(error?.message, error?.localizedDescription, nil)
|
|
706
728
|
}
|
|
707
729
|
}
|
|
708
730
|
}
|
|
709
731
|
|
|
732
|
+
func remoteMuteAllAudio(_ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
733
|
+
let allAudioTracks = HMSUtilities.getAllAudioTracks(in: (self.hms?.room)!!)
|
|
734
|
+
var customError: HMSError? = nil
|
|
735
|
+
for audioTrack in allAudioTracks {
|
|
736
|
+
self.hms?.changeTrackState(for: audioTrack, mute: true, completion: { success, error in
|
|
737
|
+
if success {
|
|
738
|
+
} else {
|
|
739
|
+
customError = error
|
|
740
|
+
}
|
|
741
|
+
})
|
|
742
|
+
}
|
|
743
|
+
if (customError === nil) {
|
|
744
|
+
resolve?(["success": true])
|
|
745
|
+
} else {
|
|
746
|
+
reject?(customError?.message, customError?.localizedDescription, nil)
|
|
747
|
+
}
|
|
748
|
+
}
|
|
749
|
+
|
|
750
|
+
func setPlaybackForAllAudio(_ data: NSDictionary) {
|
|
751
|
+
guard let mute = data.value(forKey: "mute") as? Bool
|
|
752
|
+
else {
|
|
753
|
+
let errorMessage = "setPlaybackForAllAudio: " + HMSHelper.getUnavailableRequiredKey(data, ["setPlaybackForAllAudio"])
|
|
754
|
+
emitRequiredKeysError(errorMessage)
|
|
755
|
+
return
|
|
756
|
+
}
|
|
757
|
+
|
|
758
|
+
DispatchQueue.main.async { [weak self] in
|
|
759
|
+
let remotePeers = self?.hms?.remotePeers
|
|
760
|
+
for peer in remotePeers ?? [] {
|
|
761
|
+
peer.remoteAudioTrack()?.setPlaybackAllowed(!mute)
|
|
762
|
+
}
|
|
763
|
+
}
|
|
764
|
+
let roomData = HMSDecoder.getHmsRoom(hms?.room)
|
|
765
|
+
let localPeerData = HMSDecoder.getHmsLocalPeer(hms?.localPeer)
|
|
766
|
+
let remotePeerData = HMSDecoder.getHmsRemotePeers(hms?.remotePeers)
|
|
767
|
+
|
|
768
|
+
self.delegate?.emitEvent(ON_PEER_UPDATE, ["event": ON_PEER_UPDATE, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData])
|
|
769
|
+
}
|
|
770
|
+
|
|
710
771
|
func enableRTCStats() {
|
|
711
772
|
rtcStatsAttached = true
|
|
712
773
|
}
|
|
@@ -715,36 +776,35 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
715
776
|
rtcStatsAttached = false
|
|
716
777
|
}
|
|
717
778
|
|
|
718
|
-
|
|
719
|
-
//
|
|
720
|
-
//
|
|
721
|
-
//
|
|
722
|
-
//
|
|
723
|
-
//
|
|
724
|
-
//
|
|
725
|
-
//
|
|
779
|
+
// TODO: to be implemented after volume is exposed for iOS
|
|
780
|
+
// func getVolume(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
|
|
781
|
+
// guard let trackId = data.value(forKey: "trackId") as? String
|
|
782
|
+
// else {
|
|
783
|
+
// let errorMessage = "getVolume: " + HMSHelper.getUnavailableRequiredKey(data, ["trackId"])
|
|
784
|
+
// emitRequiredKeysError(errorMessage)
|
|
785
|
+
// reject?(errorMessage, errorMessage, nil)
|
|
786
|
+
// return
|
|
787
|
+
// }
|
|
726
788
|
//
|
|
789
|
+
// if (localPeer?.localAudioTrack()?.trackId == trackId) {
|
|
727
790
|
//
|
|
728
|
-
//
|
|
729
|
-
//
|
|
730
|
-
// }
|
|
731
|
-
// }
|
|
791
|
+
// }
|
|
792
|
+
// }
|
|
732
793
|
|
|
733
|
-
//
|
|
734
|
-
//
|
|
794
|
+
// func setLocalVideoSettings(_ data: NSDictionary) {
|
|
795
|
+
// let localVideoTrack = self.hms?.localPeer?.localVideoTrack()
|
|
735
796
|
//
|
|
736
|
-
//
|
|
737
|
-
//
|
|
738
|
-
//
|
|
739
|
-
//
|
|
740
|
-
//
|
|
741
|
-
//
|
|
742
|
-
//
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
797
|
+
// guard let settings = HMSHelper.getLocalVideoSettings(data)
|
|
798
|
+
// else {
|
|
799
|
+
// let errorMessage = "setLocalVideoSettings: " + HMSHelper.getUnavailableRequiredKey(data)
|
|
800
|
+
// emitRequiredKeysError(errorMessage)
|
|
801
|
+
// return
|
|
802
|
+
// }
|
|
803
|
+
// localVideoTrack?.settings = settings
|
|
804
|
+
// }
|
|
805
|
+
|
|
806
|
+
// MARK: - HMS SDK Delegate Callbacks
|
|
746
807
|
func on(join room: HMSRoom) {
|
|
747
|
-
// Callback from join action
|
|
748
808
|
let roomData = HMSDecoder.getHmsRoom(room)
|
|
749
809
|
let localPeerData = HMSDecoder.getHmsLocalPeer(hms?.localPeer)
|
|
750
810
|
let remotePeerData = HMSDecoder.getHmsRemotePeers(hms?.remotePeers)
|
|
@@ -801,7 +861,7 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
801
861
|
|
|
802
862
|
func on(error: HMSError) {
|
|
803
863
|
if previewInProgress { previewInProgress = false }
|
|
804
|
-
self.delegate?.emitEvent(ON_ERROR, ["
|
|
864
|
+
self.delegate?.emitEvent(ON_ERROR, ["error": HMSDecoder.getError(error), "id": id])
|
|
805
865
|
}
|
|
806
866
|
|
|
807
867
|
func on(message: HMSMessage) {
|
|
@@ -817,10 +877,12 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
817
877
|
}
|
|
818
878
|
|
|
819
879
|
func onReconnecting() {
|
|
820
|
-
|
|
880
|
+
reconnectingStage = true
|
|
881
|
+
self.delegate?.emitEvent(RECONNECTING, ["event": RECONNECTING, "error": ["code": HMSErrorCode.websocketConnectionLost, "description": "Software caused connection abort", "localizedDescription": "Network connection lost ", "debugDescription": "Network connection lost ", "message": "Network connection lost ", "name": "WebSocketConnectionLost", "action": "NONE", "id": 101], "id": self.id ])
|
|
821
882
|
}
|
|
822
883
|
|
|
823
884
|
func onReconnected() {
|
|
885
|
+
reconnectingStage = false
|
|
824
886
|
self.delegate?.emitEvent(RECONNECTED, ["event": RECONNECTED, "id": self.id ])
|
|
825
887
|
}
|
|
826
888
|
|
|
@@ -902,43 +964,6 @@ class HMSRNSDK: HMSUpdateListener, HMSPreviewListener {
|
|
|
902
964
|
}
|
|
903
965
|
|
|
904
966
|
// MARK: Helper Functions
|
|
905
|
-
func remoteMuteAllAudio() {
|
|
906
|
-
let allAudioTracks = HMSUtilities.getAllAudioTracks(in: (self.hms?.room)!!)
|
|
907
|
-
var customError: HMSError? = nil
|
|
908
|
-
for audioTrack in allAudioTracks {
|
|
909
|
-
self.hms?.changeTrackState(for: audioTrack, mute: true, completion: { success, error in
|
|
910
|
-
if success {
|
|
911
|
-
} else {
|
|
912
|
-
customError = error
|
|
913
|
-
}
|
|
914
|
-
})
|
|
915
|
-
}
|
|
916
|
-
if (customError != nil) {
|
|
917
|
-
delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HMSDecoder.getError(customError), "id": id])
|
|
918
|
-
}
|
|
919
|
-
}
|
|
920
|
-
|
|
921
|
-
func setPlaybackForAllAudio(_ data: NSDictionary) {
|
|
922
|
-
guard let mute = data.value(forKey: "mute") as? Bool
|
|
923
|
-
else {
|
|
924
|
-
let error = HMSError(id: "119", code: HMSErrorCode.genericErrorUnknown, message: "REQUIRED_KEYS_NOT_FOUND")
|
|
925
|
-
delegate?.emitEvent(ON_ERROR, ["event": ON_ERROR, "error": HMSDecoder.getError(error), "id": id])
|
|
926
|
-
return
|
|
927
|
-
}
|
|
928
|
-
|
|
929
|
-
DispatchQueue.main.async { [weak self] in
|
|
930
|
-
let remotePeers = self?.hms?.remotePeers
|
|
931
|
-
for peer in remotePeers ?? [] {
|
|
932
|
-
peer.remoteAudioTrack()?.setPlaybackAllowed(!mute)
|
|
933
|
-
}
|
|
934
|
-
}
|
|
935
|
-
let roomData = HMSDecoder.getHmsRoom(hms?.room)
|
|
936
|
-
let localPeerData = HMSDecoder.getHmsLocalPeer(hms?.localPeer)
|
|
937
|
-
let remotePeerData = HMSDecoder.getHmsRemotePeers(hms?.remotePeers)
|
|
938
|
-
|
|
939
|
-
self.delegate?.emitEvent(ON_PEER_UPDATE, ["event": ON_PEER_UPDATE, "room": roomData, "localPeer": localPeerData, "remotePeers": remotePeerData])
|
|
940
|
-
}
|
|
941
|
-
|
|
942
967
|
private func getString(from update: HMSPeerUpdate) -> String {
|
|
943
968
|
switch update {
|
|
944
969
|
case .peerJoined:
|