@100mslive/react-native-hms 0.9.2 → 0.9.3

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.
Files changed (60) hide show
  1. package/android/.gradle/6.9/fileHashes/fileHashes.bin +0 -0
  2. package/android/.gradle/6.9/fileHashes/fileHashes.lock +0 -0
  3. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  4. package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
  5. package/android/.gradle/checksums/checksums.lock +0 -0
  6. package/android/.gradle/checksums/md5-checksums.bin +0 -0
  7. package/android/.gradle/checksums/sha1-checksums.bin +0 -0
  8. package/android/src/main/java/com/reactnativehmssdk/HmsDecoder.kt +12 -0
  9. package/android/src/main/java/com/reactnativehmssdk/HmsHelper.kt +96 -0
  10. package/android/src/main/java/com/reactnativehmssdk/HmsSDK.kt +2 -72
  11. package/android/src/main/java/com/reactnativehmssdk/HmsView.kt +2 -26
  12. package/android/src/main/java/com/reactnativehmssdk/HmssdkViewManager.kt +0 -2
  13. package/ios/HmsDecoder.swift +12 -2
  14. package/ios/HmsSDK.swift +9 -4
  15. package/lib/commonjs/classes/HMSConfig.js +3 -0
  16. package/lib/commonjs/classes/HMSConfig.js.map +1 -1
  17. package/lib/commonjs/classes/HMSEncoder.js +16 -1
  18. package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
  19. package/lib/commonjs/classes/HMSLocalPeer.js.map +1 -1
  20. package/lib/commonjs/classes/HMSNetworkQuality.js +20 -0
  21. package/lib/commonjs/classes/HMSNetworkQuality.js.map +1 -0
  22. package/lib/commonjs/classes/HMSPeer.js +3 -0
  23. package/lib/commonjs/classes/HMSPeer.js.map +1 -1
  24. package/lib/commonjs/classes/HMSPeerUpdate.js +1 -0
  25. package/lib/commonjs/classes/HMSPeerUpdate.js.map +1 -1
  26. package/lib/commonjs/classes/HMSRemotePeer.js.map +1 -1
  27. package/lib/commonjs/index.js +14 -0
  28. package/lib/commonjs/index.js.map +1 -1
  29. package/lib/module/classes/HMSConfig.js +3 -0
  30. package/lib/module/classes/HMSConfig.js.map +1 -1
  31. package/lib/module/classes/HMSEncoder.js +15 -1
  32. package/lib/module/classes/HMSEncoder.js.map +1 -1
  33. package/lib/module/classes/HMSLocalPeer.js.map +1 -1
  34. package/lib/module/classes/HMSNetworkQuality.js +11 -0
  35. package/lib/module/classes/HMSNetworkQuality.js.map +1 -0
  36. package/lib/module/classes/HMSPeer.js +3 -0
  37. package/lib/module/classes/HMSPeer.js.map +1 -1
  38. package/lib/module/classes/HMSPeerUpdate.js +1 -0
  39. package/lib/module/classes/HMSPeerUpdate.js.map +1 -1
  40. package/lib/module/classes/HMSRemotePeer.js.map +1 -1
  41. package/lib/module/index.js +1 -0
  42. package/lib/module/index.js.map +1 -1
  43. package/lib/typescript/classes/HMSConfig.d.ts +2 -0
  44. package/lib/typescript/classes/HMSEncoder.d.ts +2 -0
  45. package/lib/typescript/classes/HMSLocalPeer.d.ts +2 -0
  46. package/lib/typescript/classes/HMSNetworkQuality.d.ts +6 -0
  47. package/lib/typescript/classes/HMSPeer.d.ts +3 -0
  48. package/lib/typescript/classes/HMSPeerUpdate.d.ts +2 -1
  49. package/lib/typescript/classes/HMSRemotePeer.d.ts +2 -0
  50. package/lib/typescript/index.d.ts +1 -0
  51. package/package.json +1 -1
  52. package/react-native-hms.podspec +1 -1
  53. package/src/classes/HMSConfig.ts +3 -0
  54. package/src/classes/HMSEncoder.ts +15 -1
  55. package/src/classes/HMSLocalPeer.ts +2 -0
  56. package/src/classes/HMSNetworkQuality.ts +7 -0
  57. package/src/classes/HMSPeer.ts +4 -2
  58. package/src/classes/HMSPeerUpdate.ts +1 -0
  59. package/src/classes/HMSRemotePeer.ts +2 -0
  60. package/src/index.ts +1 -0
@@ -1,6 +1,7 @@
1
1
  package com.reactnativehmssdk
2
2
 
3
3
  import com.facebook.react.bridge.*
4
+ import live.hms.video.connection.stats.quality.HMSNetworkQuality
4
5
  import live.hms.video.error.HMSException
5
6
  import live.hms.video.media.settings.HMSAudioTrackSettings
6
7
  import live.hms.video.media.settings.HMSVideoResolution
@@ -47,6 +48,7 @@ object HmsDecoder {
47
48
  peer.putBoolean("isLocal", hmsPeer.isLocal)
48
49
  peer.putString("customerUserID", hmsPeer.customerUserID)
49
50
  peer.putString("metadata", hmsPeer.metadata)
51
+ peer.putMap("networkQuality", this.getHmsNetworkQuality(hmsPeer.networkQuality))
50
52
  peer.putMap("audioTrack", this.getHmsAudioTrack(hmsPeer.audioTrack))
51
53
  peer.putMap("videoTrack", this.getHmsVideoTrack(hmsPeer.videoTrack))
52
54
  peer.putMap("role", this.getHmsRole(hmsPeer.hmsRole))
@@ -182,6 +184,7 @@ object HmsDecoder {
182
184
  peer.putBoolean("isLocal", hmsLocalPeer.isLocal)
183
185
  peer.putString("customerUserID", hmsLocalPeer.customerUserID)
184
186
  peer.putString("metadata", hmsLocalPeer.metadata)
187
+ peer.putMap("networkQuality", this.getHmsNetworkQuality(hmsLocalPeer.networkQuality))
185
188
  peer.putMap("audioTrack", this.getHmsAudioTrack(hmsLocalPeer.audioTrack))
186
189
  peer.putMap("videoTrack", this.getHmsVideoTrack(hmsLocalPeer.videoTrack))
187
190
  peer.putMap("role", this.getHmsRole(hmsLocalPeer.hmsRole))
@@ -276,6 +279,7 @@ object HmsDecoder {
276
279
  peer.putBoolean("isLocal", hmsRemotePeer.isLocal)
277
280
  peer.putString("customerUserID", hmsRemotePeer.customerUserID)
278
281
  peer.putString("metadata", hmsRemotePeer.metadata)
282
+ peer.putMap("networkQuality", this.getHmsNetworkQuality(hmsRemotePeer.networkQuality))
279
283
  peer.putMap("audioTrack", this.getHmsAudioTrack(hmsRemotePeer.audioTrack))
280
284
  peer.putMap("videoTrack", this.getHmsVideoTrack(hmsRemotePeer.videoTrack))
281
285
  peer.putMap("role", this.getHmsRole(hmsRemotePeer.hmsRole))
@@ -508,4 +512,12 @@ object HmsDecoder {
508
512
  }
509
513
  return hmsRecipient
510
514
  }
515
+
516
+ private fun getHmsNetworkQuality(networkQuality: HMSNetworkQuality?): WritableMap {
517
+ val hmsNetworkQuality: WritableMap = Arguments.createMap()
518
+ if (networkQuality != null) {
519
+ hmsNetworkQuality.putInt("downlinkQuality", networkQuality.downlinkQuality)
520
+ }
521
+ return hmsNetworkQuality
522
+ }
511
523
  }
@@ -307,4 +307,100 @@ object HmsHelper {
307
307
  }
308
308
  return meetingURLVariant
309
309
  }
310
+
311
+ fun getHmsConfig(credentials: ReadableMap): HMSConfig {
312
+ var config =
313
+ HMSConfig(
314
+ credentials.getString("username") as String,
315
+ credentials.getString("authToken") as String,
316
+ )
317
+
318
+ when {
319
+ areAllRequiredKeysAvailable(
320
+ credentials,
321
+ arrayOf(
322
+ Pair("endpoint", "String"),
323
+ Pair("metadata", "String"),
324
+ Pair("captureNetworkQualityInPreview", "Boolean")
325
+ )
326
+ ) -> {
327
+ config =
328
+ HMSConfig(
329
+ credentials.getString("username") as String,
330
+ credentials.getString("authToken") as String,
331
+ initEndpoint = credentials.getString("endpoint") as String,
332
+ metadata = credentials.getString("metadata") as String,
333
+ captureNetworkQualityInPreview =
334
+ credentials.getBoolean("captureNetworkQualityInPreview"),
335
+ )
336
+ }
337
+ areAllRequiredKeysAvailable(
338
+ credentials,
339
+ arrayOf(Pair("endpoint", "String"), Pair("metadata", "String"))
340
+ ) -> {
341
+ config =
342
+ HMSConfig(
343
+ credentials.getString("username") as String,
344
+ credentials.getString("authToken") as String,
345
+ initEndpoint = credentials.getString("endpoint") as String,
346
+ metadata = credentials.getString("metadata") as String,
347
+ )
348
+ }
349
+ areAllRequiredKeysAvailable(
350
+ credentials,
351
+ arrayOf(Pair("endpoint", "String"), Pair("captureNetworkQualityInPreview", "Boolean"))
352
+ ) -> {
353
+ config =
354
+ HMSConfig(
355
+ credentials.getString("username") as String,
356
+ credentials.getString("authToken") as String,
357
+ initEndpoint = credentials.getString("endpoint") as String,
358
+ captureNetworkQualityInPreview =
359
+ credentials.getBoolean("captureNetworkQualityInPreview"),
360
+ )
361
+ }
362
+ areAllRequiredKeysAvailable(
363
+ credentials,
364
+ arrayOf(Pair("metadata", "String"), Pair("captureNetworkQualityInPreview", "Boolean"))
365
+ ) -> {
366
+ config =
367
+ HMSConfig(
368
+ credentials.getString("username") as String,
369
+ credentials.getString("authToken") as String,
370
+ metadata = credentials.getString("metadata") as String,
371
+ captureNetworkQualityInPreview =
372
+ credentials.getBoolean("captureNetworkQualityInPreview"),
373
+ )
374
+ }
375
+ areAllRequiredKeysAvailable(credentials, arrayOf(Pair("endpoint", "String"))) -> {
376
+ config =
377
+ HMSConfig(
378
+ credentials.getString("username") as String,
379
+ credentials.getString("authToken") as String,
380
+ initEndpoint = credentials.getString("endpoint") as String,
381
+ )
382
+ }
383
+ areAllRequiredKeysAvailable(credentials, arrayOf(Pair("metadata", "String"))) -> {
384
+ config =
385
+ HMSConfig(
386
+ credentials.getString("username") as String,
387
+ credentials.getString("authToken") as String,
388
+ metadata = credentials.getString("metadata") as String,
389
+ )
390
+ }
391
+ areAllRequiredKeysAvailable(
392
+ credentials,
393
+ arrayOf(Pair("captureNetworkQualityInPreview", "Boolean"))
394
+ ) -> {
395
+ config =
396
+ HMSConfig(
397
+ credentials.getString("username") as String,
398
+ credentials.getString("authToken") as String,
399
+ captureNetworkQualityInPreview =
400
+ credentials.getBoolean("captureNetworkQualityInPreview")
401
+ )
402
+ }
403
+ }
404
+ return config
405
+ }
310
406
  }
@@ -97,42 +97,7 @@ class HmsSDK(
97
97
  )
98
98
  if (requiredKeys) {
99
99
  previewInProgress = true
100
- var config =
101
- HMSConfig(
102
- credentials.getString("username") as String,
103
- credentials.getString("authToken") as String,
104
- )
105
-
106
- when {
107
- HmsHelper.areAllRequiredKeysAvailable(
108
- credentials,
109
- arrayOf(Pair("endpoint", "String"), Pair("metadata", "String"))
110
- ) -> {
111
- config =
112
- HMSConfig(
113
- credentials.getString("username") as String,
114
- credentials.getString("authToken") as String,
115
- initEndpoint = credentials.getString("endpoint") as String,
116
- metadata = credentials.getString("metadata") as String,
117
- )
118
- }
119
- HmsHelper.areAllRequiredKeysAvailable(credentials, arrayOf(Pair("endpoint", "String"))) -> {
120
- config =
121
- HMSConfig(
122
- credentials.getString("username") as String,
123
- credentials.getString("authToken") as String,
124
- initEndpoint = credentials.getString("endpoint") as String,
125
- )
126
- }
127
- HmsHelper.areAllRequiredKeysAvailable(credentials, arrayOf(Pair("metadata", "String"))) -> {
128
- config =
129
- HMSConfig(
130
- credentials.getString("username") as String,
131
- credentials.getString("authToken") as String,
132
- metadata = credentials.getString("metadata") as String,
133
- )
134
- }
135
- }
100
+ val config = HmsHelper.getHmsConfig(credentials)
136
101
 
137
102
  hmsSDK?.preview(
138
103
  config,
@@ -217,42 +182,7 @@ class HmsSDK(
217
182
  arrayOf(Pair("username", "String"), Pair("authToken", "String"))
218
183
  )
219
184
  if (requiredKeys) {
220
- var config =
221
- HMSConfig(
222
- credentials.getString("username") as String,
223
- credentials.getString("authToken") as String
224
- )
225
-
226
- when {
227
- HmsHelper.areAllRequiredKeysAvailable(
228
- credentials,
229
- arrayOf(Pair("endpoint", "String"), Pair("metadata", "String"))
230
- ) -> {
231
- config =
232
- HMSConfig(
233
- credentials.getString("username") as String,
234
- credentials.getString("authToken") as String,
235
- initEndpoint = credentials.getString("endpoint") as String,
236
- metadata = credentials.getString("metadata") as String,
237
- )
238
- }
239
- HmsHelper.areAllRequiredKeysAvailable(credentials, arrayOf(Pair("endpoint", "String"))) -> {
240
- config =
241
- HMSConfig(
242
- credentials.getString("username") as String,
243
- credentials.getString("authToken") as String,
244
- initEndpoint = credentials.getString("endpoint") as String,
245
- )
246
- }
247
- HmsHelper.areAllRequiredKeysAvailable(credentials, arrayOf(Pair("metadata", "String"))) -> {
248
- config =
249
- HMSConfig(
250
- credentials.getString("username") as String,
251
- credentials.getString("authToken") as String,
252
- metadata = credentials.getString("metadata") as String,
253
- )
254
- }
255
- }
185
+ val config = HmsHelper.getHmsConfig(credentials)
256
186
 
257
187
  HMSCoroutineScope.launch {
258
188
  try {
@@ -8,8 +8,8 @@ import com.facebook.react.bridge.Arguments
8
8
  import com.facebook.react.bridge.ReactContext
9
9
  import com.facebook.react.bridge.WritableMap
10
10
  import com.facebook.react.uimanager.events.RCTEventEmitter
11
- import live.hms.video.media.tracks.HMSTrackType
12
11
  import live.hms.video.media.tracks.HMSVideoTrack
12
+ import live.hms.video.utils.HmsUtilities
13
13
  import live.hms.video.utils.SharedEglContext
14
14
  import org.webrtc.RendererCommon
15
15
  import org.webrtc.SurfaceViewRenderer
@@ -18,7 +18,6 @@ import org.webrtc.SurfaceViewRenderer
18
18
  class HmsView(context: ReactContext) : FrameLayout(context) {
19
19
  private var surfaceView: SurfaceViewRenderer = SurfaceViewRenderer(context)
20
20
  private var videoTrack: HMSVideoTrack? = null
21
- private var localTrack: String? = null
22
21
  private var scaleTypeApplied: Boolean = false
23
22
  private var currentScaleType: RendererCommon.ScalingType =
24
23
  RendererCommon.ScalingType.SCALE_ASPECT_FILL
@@ -91,36 +90,13 @@ class HmsView(context: ReactContext) : FrameLayout(context) {
91
90
  if (id != null) {
92
91
  sdkId = id
93
92
  }
94
-
95
93
  val hms = hmsCollection[sdkId]?.hmsSDK
96
94
 
97
95
  if (trackId != null && hms != null) {
98
96
  if (mirror != null) {
99
97
  surfaceView.setMirror(mirror)
100
98
  }
101
- localTrack = trackId
102
- val localTrackId = hms.getLocalPeer()?.videoTrack?.trackId
103
- if (localTrackId == localTrack) {
104
- videoTrack = hms.getLocalPeer()?.videoTrack
105
- }
106
-
107
- val remotePeers = hms.getRemotePeers()
108
- for (peer in remotePeers) {
109
- val videoTrackId = peer.videoTrack?.trackId
110
-
111
- val auxiliaryTracks = peer.auxiliaryTracks
112
- for (track in auxiliaryTracks) {
113
- val auxTrackId = track.trackId
114
- if (trackId == auxTrackId && track.type == HMSTrackType.VIDEO && !track.isMute) {
115
- videoTrack = track as HMSVideoTrack
116
- return
117
- }
118
- }
119
- if (videoTrackId == localTrack) {
120
- videoTrack = peer.videoTrack
121
- return
122
- }
123
- }
99
+ videoTrack = hms.getRoom()?.let { HmsUtilities.getVideoTrack(trackId, it) }
124
100
  }
125
101
  }
126
102
  }
@@ -31,14 +31,12 @@ class HmssdkViewManager : SimpleViewManager<HmsView>() {
31
31
  @ReactProp(name = "data")
32
32
  fun setData(view: HmsView, data: ReadableMap) {
33
33
  val trackId = data.getString("trackId")
34
- // val sink = data.getBoolean("sink")
35
34
  val id = data.getString("id")
36
35
  val mirror = data.getBoolean("mirror")
37
36
  val hmsCollection = getHms()
38
37
  if (hmsCollection != null) {
39
38
  view.setData(id, trackId, hmsCollection, mirror)
40
39
  }
41
- // do the processing here
42
40
  }
43
41
 
44
42
  @ReactProp(name = "scaleType")
@@ -37,6 +37,7 @@ class HmsDecoder: NSObject {
37
37
  let audioTrack = getHmsAudioTrack(peer.audioTrack)
38
38
  let videoTrack = getHmsVideoTrack(peer.videoTrack)
39
39
  let role = getHmsRole(peer.role)
40
+ let networkQuality = getHmsNetworkQuality(peer.networkQuality)
40
41
 
41
42
  let auxiliaryTracks = getAllTracks(peer.auxiliaryTracks ?? [] )
42
43
 
@@ -49,6 +50,7 @@ class HmsDecoder: NSObject {
49
50
  "audioTrack": audioTrack,
50
51
  "videoTrack": videoTrack,
51
52
  "auxiliaryTracks": auxiliaryTracks,
53
+ "networkQuality": networkQuality,
52
54
  "role": role]
53
55
  }
54
56
 
@@ -114,6 +116,7 @@ class HmsDecoder: NSObject {
114
116
  let audioTrack = getHmsAudioTrack(peer.audioTrack)
115
117
  let videoTrack = getHmsVideoTrack(peer.videoTrack)
116
118
  let role = getHmsRole(peer.role)
119
+ let networkQuality = getHmsNetworkQuality(peer.networkQuality)
117
120
 
118
121
  var auxiliaryTracks = [[String: Any]]()
119
122
  for track in peer.auxiliaryTracks ?? [] {
@@ -133,7 +136,7 @@ class HmsDecoder: NSObject {
133
136
  localVideoTrackData = getHmsLocalVideoTrack(localVideo)
134
137
  }
135
138
 
136
- return ["peerID": peerID, "name": name, "isLocal": isLocal, "customerUserID": customerUserID, "customerDescription": customerDescription, "metadata": metadata, "audioTrack": audioTrack, "videoTrack": videoTrack, "auxiliaryTracks": auxiliaryTracks, "localAudioTrackData": localAudioTrackData, "localVideoTrackData": localVideoTrackData, "role": role]
139
+ return ["peerID": peerID, "name": name, "isLocal": isLocal, "customerUserID": customerUserID, "customerDescription": customerDescription, "metadata": metadata, "audioTrack": audioTrack, "videoTrack": videoTrack, "auxiliaryTracks": auxiliaryTracks, "localAudioTrackData": localAudioTrackData, "localVideoTrackData": localVideoTrackData, "role": role, "networkQuality": networkQuality]
137
140
  }
138
141
 
139
142
  static func getHmsLocalAudioTrack(_ localAudio: HMSLocalAudioTrack) -> [String: Any] {
@@ -232,6 +235,7 @@ class HmsDecoder: NSObject {
232
235
  let audioTrack = getHmsAudioTrack(hmsRemotePeer.audioTrack)
233
236
  let videoTrack = getHmsVideoTrack(hmsRemotePeer.videoTrack)
234
237
  let role = getHmsRole(hmsRemotePeer.role)
238
+ let networkQuality = getHmsNetworkQuality(hmsRemotePeer.networkQuality)
235
239
 
236
240
  var auxiliaryTracks = [[String: Any]]()
237
241
 
@@ -252,7 +256,7 @@ class HmsDecoder: NSObject {
252
256
  remoteVideoTrackData = getHMSRemoteVideoTrack(remoteVideo)
253
257
  }
254
258
 
255
- return ["peerID": peerID, "name": name, "isLocal": isLocal, "customerUserID": customerUserID, "customerDescription": customerDescription, "metadata": metadata, "audioTrack": audioTrack, "videoTrack": videoTrack, "auxiliaryTracks": auxiliaryTracks, "remoteAudioTrackData": remoteAudioTrackData, "remoteVideoTrackData": remoteVideoTrackData, "role": role]
259
+ return ["peerID": peerID, "name": name, "isLocal": isLocal, "customerUserID": customerUserID, "customerDescription": customerDescription, "metadata": metadata, "audioTrack": audioTrack, "videoTrack": videoTrack, "auxiliaryTracks": auxiliaryTracks, "remoteAudioTrackData": remoteAudioTrackData, "remoteVideoTrackData": remoteVideoTrackData, "role": role, "networkQuality": networkQuality]
256
260
  }
257
261
 
258
262
  static func getHMSRemoteAudioTrack(_ remoteAudio: HMSRemoteAudioTrack) -> [String: Any] {
@@ -589,6 +593,12 @@ class HmsDecoder: NSObject {
589
593
  return ["recipientPeer": getHmsPeer(recipient.peerRecipient), "recipientRoles": getAllRoles(recipient.rolesRecipient), "type": self.getRecipientType(from: recipient.type)]
590
594
  }
591
595
 
596
+ static func getHmsNetworkQuality(_ hmsNetworkQuality: HMSNetworkQuality?) -> [String: Any] {
597
+ guard let networkQuality = hmsNetworkQuality else { return [:] }
598
+
599
+ return ["downlinkQuality": networkQuality.downlinkQuality]
600
+ }
601
+
592
602
  static private func getRecipientType(from recipientType: HMSMessageRecipientType) -> String {
593
603
  switch recipientType {
594
604
  case .broadcast:
package/ios/HmsSDK.swift CHANGED
@@ -72,13 +72,15 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
72
72
  }
73
73
 
74
74
  let metadata = credentials.value(forKey: "metadata") as? String
75
+ let captureNetworkQualityInPreview = credentials.value(forKey: "captureNetworkQualityInPreview") as? Bool ?? false
76
+
75
77
  DispatchQueue.main.async { [weak self] in
76
78
  guard let strongSelf = self else { return }
77
79
  if let endpoint = credentials.value(forKey: "endpoint") as? String {
78
- strongSelf.config = HMSConfig(userName: user, authToken: authToken, metadata: metadata, endpoint: endpoint)
80
+ strongSelf.config = HMSConfig(userName: user, authToken: authToken, metadata: metadata, endpoint: endpoint, captureNetworkQualityInPreview: captureNetworkQualityInPreview)
79
81
  strongSelf.hms?.preview(config: strongSelf.config!, delegate: strongSelf)
80
82
  } else {
81
- strongSelf.config = HMSConfig(userName: user, authToken: authToken, metadata: metadata)
83
+ strongSelf.config = HMSConfig(userName: user, authToken: authToken, metadata: metadata, captureNetworkQualityInPreview: captureNetworkQualityInPreview)
82
84
  strongSelf.hms?.preview(config: strongSelf.config!, delegate: strongSelf)
83
85
  }
84
86
  strongSelf.previewInProgress = true
@@ -135,6 +137,7 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
135
137
  }
136
138
 
137
139
  let metadata = credentials.value(forKey: "metadata") as? String
140
+ let captureNetworkQualityInPreview = credentials.value(forKey: "captureNetworkQualityInPreview") as? Bool ?? false
138
141
 
139
142
  DispatchQueue.main.async { [weak self] in
140
143
  guard let strongSelf = self else { return }
@@ -142,10 +145,10 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
142
145
  strongSelf.hms?.join(config: config, delegate: strongSelf)
143
146
  } else {
144
147
  if let endpoint = credentials.value(forKey: "endpoint") as? String {
145
- strongSelf.config = HMSConfig(userName: user, authToken: authToken, metadata: metadata, endpoint: endpoint)
148
+ strongSelf.config = HMSConfig(userName: user, authToken: authToken, metadata: metadata, endpoint: endpoint, captureNetworkQualityInPreview: captureNetworkQualityInPreview)
146
149
  strongSelf.hms?.join(config: strongSelf.config!, delegate: strongSelf)
147
150
  } else {
148
- strongSelf.config = HMSConfig(userName: user, authToken: authToken, metadata: metadata)
151
+ strongSelf.config = HMSConfig(userName: user, authToken: authToken, metadata: metadata, captureNetworkQualityInPreview: captureNetworkQualityInPreview)
149
152
  strongSelf.hms?.join(config: strongSelf.config!, delegate: strongSelf)
150
153
  }
151
154
  }
@@ -950,6 +953,8 @@ class HmsSDK: HMSUpdateListener, HMSPreviewListener {
950
953
  return "NAME_CHANGED"
951
954
  case .defaultUpdate:
952
955
  return "DEFAULT_UPDATE"
956
+ case .networkQualityUpdated:
957
+ return "NETWORK_QUALITY_UPDATED"
953
958
  default:
954
959
  return ""
955
960
  }
@@ -17,10 +17,13 @@ class HMSConfig {
17
17
 
18
18
  _defineProperty(this, "metadata", void 0);
19
19
 
20
+ _defineProperty(this, "captureNetworkQualityInPreview", void 0);
21
+
20
22
  this.username = params.username;
21
23
  this.authToken = params.authToken;
22
24
  this.endpoint = params.endpoint;
23
25
  this.metadata = params.metadata;
26
+ this.captureNetworkQualityInPreview = params.captureNetworkQualityInPreview;
24
27
  }
25
28
 
26
29
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["HMSConfig.ts"],"names":["HMSConfig","constructor","params","username","authToken","endpoint","metadata"],"mappings":";;;;;;;;;AAAO,MAAMA,SAAN,CAAgB;AAMrBC,EAAAA,WAAW,CAACC,MAAD,EAKR;AAAA;;AAAA;;AAAA;;AAAA;;AACD,SAAKC,QAAL,GAAgBD,MAAM,CAACC,QAAvB;AACA,SAAKC,SAAL,GAAiBF,MAAM,CAACE,SAAxB;AACA,SAAKC,QAAL,GAAgBH,MAAM,CAACG,QAAvB;AACA,SAAKC,QAAL,GAAgBJ,MAAM,CAACI,QAAvB;AACD;;AAhBoB","sourcesContent":["export class HMSConfig {\n username: string;\n authToken: string;\n endpoint?: string;\n metadata?: string;\n\n constructor(params: {\n username: string;\n authToken: string;\n endpoint?: string;\n metadata?: string;\n }) {\n this.username = params.username;\n this.authToken = params.authToken;\n this.endpoint = params.endpoint;\n this.metadata = params.metadata;\n }\n}\n"]}
1
+ {"version":3,"sources":["HMSConfig.ts"],"names":["HMSConfig","constructor","params","username","authToken","endpoint","metadata","captureNetworkQualityInPreview"],"mappings":";;;;;;;;;AAAO,MAAMA,SAAN,CAAgB;AAOrBC,EAAAA,WAAW,CAACC,MAAD,EAMR;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AACD,SAAKC,QAAL,GAAgBD,MAAM,CAACC,QAAvB;AACA,SAAKC,SAAL,GAAiBF,MAAM,CAACE,SAAxB;AACA,SAAKC,QAAL,GAAgBH,MAAM,CAACG,QAAvB;AACA,SAAKC,QAAL,GAAgBJ,MAAM,CAACI,QAAvB;AACA,SAAKC,8BAAL,GAAsCL,MAAM,CAACK,8BAA7C;AACD;;AAnBoB","sourcesContent":["export class HMSConfig {\n username: string;\n authToken: string;\n endpoint?: string;\n metadata?: string;\n captureNetworkQualityInPreview?: boolean;\n\n constructor(params: {\n username: string;\n authToken: string;\n endpoint?: string;\n metadata?: string;\n captureNetworkQualityInPreview?: boolean;\n }) {\n this.username = params.username;\n this.authToken = params.authToken;\n this.endpoint = params.endpoint;\n this.metadata = params.metadata;\n this.captureNetworkQualityInPreview = params.captureNetworkQualityInPreview;\n }\n}\n"]}
@@ -51,6 +51,8 @@ var _ = require("..");
51
51
 
52
52
  var _HMSHLSRecordingState = require("./HMSHLSRecordingState");
53
53
 
54
+ var _HMSNetworkQuality = require("./HMSNetworkQuality");
55
+
54
56
  class HMSEncoder {
55
57
  static encodeHmsRoom(room, id) {
56
58
  const encodedObj = {
@@ -81,10 +83,11 @@ class HMSEncoder {
81
83
  peerID: peer === null || peer === void 0 ? void 0 : peer.peerID,
82
84
  name: peer === null || peer === void 0 ? void 0 : peer.name,
83
85
  isLocal: peer === null || peer === void 0 ? void 0 : peer.isLocal,
84
- role: HMSEncoder.encodeHmsRole(peer === null || peer === void 0 ? void 0 : peer.role),
85
86
  customerUserID: peer === null || peer === void 0 ? void 0 : peer.customerUserID,
86
87
  customerDescription: peer === null || peer === void 0 ? void 0 : peer.customerDescription,
87
88
  metadata: peer === null || peer === void 0 ? void 0 : peer.metadata,
89
+ role: HMSEncoder.encodeHmsRole(peer === null || peer === void 0 ? void 0 : peer.role),
90
+ networkQuality: HMSEncoder.encodeHMSNetworkQuality(peer === null || peer === void 0 ? void 0 : peer.networkQuality),
88
91
  audioTrack: HMSEncoder.encodeHmsAudioTrack(peer === null || peer === void 0 ? void 0 : peer.audioTrack, id),
89
92
  videoTrack: HMSEncoder.encodeHmsVideoTrack(peer === null || peer === void 0 ? void 0 : peer.videoTrack, id),
90
93
  auxiliaryTracks: HMSEncoder.encodeHmsAuxiliaryTracks(peer === null || peer === void 0 ? void 0 : peer.auxiliaryTracks, id)
@@ -148,6 +151,7 @@ class HMSEncoder {
148
151
  customerDescription: peer.customerDescription,
149
152
  metadata: peer.metadata,
150
153
  role: HMSEncoder.encodeHmsRole(peer === null || peer === void 0 ? void 0 : peer.role),
154
+ networkQuality: HMSEncoder.encodeHMSNetworkQuality(peer === null || peer === void 0 ? void 0 : peer.networkQuality),
151
155
  audioTrack: HMSEncoder.encodeHmsAudioTrack(peer.audioTrack, id),
152
156
  videoTrack: HMSEncoder.encodeHmsVideoTrack(peer.videoTrack, id),
153
157
  auxiliaryTracks: HMSEncoder.encodeHmsAuxiliaryTracks(peer.auxiliaryTracks, id),
@@ -248,6 +252,7 @@ class HMSEncoder {
248
252
  customerDescription: peer.customerDescription,
249
253
  metadata: peer.metadata,
250
254
  role: HMSEncoder.encodeHmsRole(peer === null || peer === void 0 ? void 0 : peer.role),
255
+ networkQuality: HMSEncoder.encodeHMSNetworkQuality(peer === null || peer === void 0 ? void 0 : peer.networkQuality),
251
256
  audioTrack: HMSEncoder.encodeHmsAudioTrack(peer.audioTrack, id),
252
257
  videoTrack: HMSEncoder.encodeHmsVideoTrack(peer.videoTrack, id),
253
258
  auxiliaryTracks: HMSEncoder.encodeHmsAuxiliaryTracks(peer.auxiliaryTracks, id),
@@ -442,6 +447,16 @@ class HMSEncoder {
442
447
  return variants;
443
448
  }
444
449
 
450
+ static encodeHMSNetworkQuality(data) {
451
+ if (data) {
452
+ return new _HMSNetworkQuality.HMSNetworkQuality({
453
+ downlinkQuality: data === null || data === void 0 ? void 0 : data.downlinkQuality
454
+ });
455
+ } else {
456
+ return undefined;
457
+ }
458
+ }
459
+
445
460
  }
446
461
 
447
462
  exports.HMSEncoder = HMSEncoder;