@100mslive/react-native-hms 0.8.1 → 0.8.2

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 (73) hide show
  1. package/android/build.gradle +1 -2
  2. package/android/src/main/java/com/reactnativehmssdk/HmsDecoder.kt +198 -254
  3. package/android/src/main/java/com/reactnativehmssdk/HmsHelper.kt +18 -30
  4. package/android/src/main/java/com/reactnativehmssdk/HmsModule.kt +18 -18
  5. package/android/src/main/java/com/reactnativehmssdk/HmsSDK.kt +182 -146
  6. package/android/src/main/java/com/reactnativehmssdk/HmsView.kt +15 -21
  7. package/android/src/main/java/com/reactnativehmssdk/HmssdkPackage.kt +1 -2
  8. package/android/src/main/java/com/reactnativehmssdk/HmssdkViewManager.kt +4 -10
  9. package/ios/HmsDecoder.swift +33 -20
  10. package/ios/HmsHelper.swift +13 -3
  11. package/ios/HmsManager.m +8 -8
  12. package/ios/HmsManager.swift +16 -16
  13. package/ios/HmsSDK.swift +97 -29
  14. package/lib/commonjs/classes/HMSEncoder.js +6 -4
  15. package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
  16. package/lib/commonjs/classes/HMSLocalAudioTrack.js +20 -0
  17. package/lib/commonjs/classes/HMSLocalAudioTrack.js.map +1 -1
  18. package/lib/commonjs/classes/HMSLocalPeer.js.map +1 -1
  19. package/lib/commonjs/classes/HMSLocalVideoTrack.js +18 -0
  20. package/lib/commonjs/classes/HMSLocalVideoTrack.js.map +1 -1
  21. package/lib/commonjs/classes/HMSLogger.js +28 -1
  22. package/lib/commonjs/classes/HMSLogger.js.map +1 -1
  23. package/lib/commonjs/classes/HMSRemoteAudioTrack.js +19 -0
  24. package/lib/commonjs/classes/HMSRemoteAudioTrack.js.map +1 -1
  25. package/lib/commonjs/classes/HMSRemoteVideoTrack.js +19 -0
  26. package/lib/commonjs/classes/HMSRemoteVideoTrack.js.map +1 -1
  27. package/lib/commonjs/classes/HMSSDK.js +179 -134
  28. package/lib/commonjs/classes/HMSSDK.js.map +1 -1
  29. package/lib/commonjs/classes/HMSTrackSettings.js +3 -0
  30. package/lib/commonjs/classes/HMSTrackSettings.js.map +1 -1
  31. package/lib/commonjs/classes/HMSVideoCodec.js +4 -4
  32. package/lib/commonjs/classes/HMSVideoCodec.js.map +1 -1
  33. package/lib/commonjs/index.js +14 -0
  34. package/lib/commonjs/index.js.map +1 -1
  35. package/lib/module/classes/HMSEncoder.js +6 -4
  36. package/lib/module/classes/HMSEncoder.js.map +1 -1
  37. package/lib/module/classes/HMSLocalAudioTrack.js +17 -0
  38. package/lib/module/classes/HMSLocalAudioTrack.js.map +1 -1
  39. package/lib/module/classes/HMSLocalPeer.js.map +1 -1
  40. package/lib/module/classes/HMSLocalVideoTrack.js +15 -0
  41. package/lib/module/classes/HMSLocalVideoTrack.js.map +1 -1
  42. package/lib/module/classes/HMSLogger.js +28 -1
  43. package/lib/module/classes/HMSLogger.js.map +1 -1
  44. package/lib/module/classes/HMSRemoteAudioTrack.js +16 -0
  45. package/lib/module/classes/HMSRemoteAudioTrack.js.map +1 -1
  46. package/lib/module/classes/HMSRemoteVideoTrack.js +16 -0
  47. package/lib/module/classes/HMSRemoteVideoTrack.js.map +1 -1
  48. package/lib/module/classes/HMSSDK.js +176 -134
  49. package/lib/module/classes/HMSSDK.js.map +1 -1
  50. package/lib/module/classes/HMSTrackSettings.js +3 -0
  51. package/lib/module/classes/HMSTrackSettings.js.map +1 -1
  52. package/lib/module/classes/HMSVideoCodec.js +4 -4
  53. package/lib/module/classes/HMSVideoCodec.js.map +1 -1
  54. package/lib/module/index.js +1 -0
  55. package/lib/module/index.js.map +1 -1
  56. package/lib/typescript/classes/HMSLocalPeer.d.ts +3 -0
  57. package/lib/typescript/classes/HMSLogger.d.ts +7 -0
  58. package/lib/typescript/classes/HMSSDK.d.ts +11 -11
  59. package/lib/typescript/classes/HMSTrackSettings.d.ts +2 -0
  60. package/lib/typescript/classes/HMSVideoCodec.d.ts +4 -4
  61. package/lib/typescript/index.d.ts +1 -0
  62. package/package.json +1 -1
  63. package/src/classes/HMSEncoder.ts +3 -1
  64. package/src/classes/HMSLocalAudioTrack.ts +16 -0
  65. package/src/classes/HMSLocalPeer.ts +3 -0
  66. package/src/classes/HMSLocalVideoTrack.ts +15 -0
  67. package/src/classes/HMSLogger.ts +14 -1
  68. package/src/classes/HMSRemoteAudioTrack.ts +16 -0
  69. package/src/classes/HMSRemoteVideoTrack.ts +16 -0
  70. package/src/classes/HMSSDK.tsx +134 -73
  71. package/src/classes/HMSTrackSettings.ts +3 -0
  72. package/src/classes/HMSVideoCodec.ts +4 -4
  73. package/src/index.ts +1 -0
@@ -24,13 +24,18 @@ class HmsSDK(
24
24
  var hmsSDK: HMSSDK? = null
25
25
  private var recentRoleChangeRequest: HMSRoleChangeRequest? = null
26
26
  private var changeTrackStateRequest: HMSChangeTrackStateRequest? = null
27
- val delegate: HmsModule = HmsDelegate
28
- val id: String = sdkId
29
- val self = this
27
+ private var delegate: HmsModule = HmsDelegate
28
+ private var id: String = sdkId
29
+ private var self = this
30
30
 
31
31
  init {
32
+ var useHardwareEchoCancellation = data?.getBoolean("useHardwareEchoCancellation")
33
+ if (useHardwareEchoCancellation == null) {
34
+ useHardwareEchoCancellation = false
35
+ }
32
36
  val videoSettings = HmsHelper.getVideoTrackSettings(data?.getMap("video"))
33
- val audioSettings = HmsHelper.getAudioTrackSettings(data?.getMap("audio"))
37
+ val audioSettings =
38
+ HmsHelper.getAudioTrackSettings(data?.getMap("audio"), useHardwareEchoCancellation)
34
39
 
35
40
  val trackSettingsBuilder = HMSTrackSettings.Builder()
36
41
  val trackSettings = trackSettingsBuilder.audio(audioSettings).video(videoSettings).build()
@@ -38,7 +43,7 @@ class HmsSDK(
38
43
  this.hmsSDK = HMSSDK.Builder(reactApplicationContext).setTrackSettings(trackSettings).build()
39
44
  }
40
45
 
41
- fun emitRequiredKeysError() {
46
+ private fun emitRequiredKeysError() {
42
47
  val data: WritableMap = Arguments.createMap()
43
48
  val hmsError =
44
49
  HMSException(
@@ -62,6 +67,15 @@ class HmsSDK(
62
67
  delegate.emitEvent("ON_ERROR", data)
63
68
  }
64
69
 
70
+ fun emitHMSSuccess(message: HMSMessage? = null): ReadableMap {
71
+ val hmsMessage =
72
+ if (message !== null) message.message else "function call executed successfully"
73
+ val data: WritableMap = Arguments.createMap()
74
+ data.putBoolean("success", true)
75
+ data.putString("message", hmsMessage)
76
+ return data
77
+ }
78
+
65
79
  fun preview(credentials: ReadableMap) {
66
80
  val requiredKeys =
67
81
  HmsHelper.areAllRequiredKeysAvailable(
@@ -75,40 +89,35 @@ class HmsSDK(
75
89
  credentials.getString("authToken") as String,
76
90
  )
77
91
 
78
- if (HmsHelper.areAllRequiredKeysAvailable(
79
- credentials,
80
- arrayOf(Pair("endpoint", "String"), Pair("metadata", "String"))
81
- )
82
- ) {
83
- config =
84
- HMSConfig(
85
- credentials.getString("username") as String,
86
- credentials.getString("authToken") as String,
87
- initEndpoint = credentials.getString("endpoint") as String,
88
- metadata = credentials.getString("metadata") as String,
89
- )
90
- } else if (HmsHelper.areAllRequiredKeysAvailable(
91
- credentials,
92
- arrayOf(Pair("endpoint", "String"))
93
- )
94
- ) {
95
- config =
96
- HMSConfig(
97
- credentials.getString("username") as String,
98
- credentials.getString("authToken") as String,
99
- initEndpoint = credentials.getString("endpoint") as String,
100
- )
101
- } else if (HmsHelper.areAllRequiredKeysAvailable(
102
- credentials,
103
- arrayOf(Pair("metadata", "String"))
104
- )
105
- ) {
106
- config =
107
- HMSConfig(
108
- credentials.getString("username") as String,
109
- credentials.getString("authToken") as String,
110
- metadata = credentials.getString("metadata") as String,
111
- )
92
+ when {
93
+ HmsHelper.areAllRequiredKeysAvailable(
94
+ credentials,
95
+ arrayOf(Pair("endpoint", "String"), Pair("metadata", "String"))
96
+ ) -> {
97
+ config =
98
+ HMSConfig(
99
+ credentials.getString("username") as String,
100
+ credentials.getString("authToken") as String,
101
+ initEndpoint = credentials.getString("endpoint") as String,
102
+ metadata = credentials.getString("metadata") as String,
103
+ )
104
+ }
105
+ HmsHelper.areAllRequiredKeysAvailable(credentials, arrayOf(Pair("endpoint", "String"))) -> {
106
+ config =
107
+ HMSConfig(
108
+ credentials.getString("username") as String,
109
+ credentials.getString("authToken") as String,
110
+ initEndpoint = credentials.getString("endpoint") as String,
111
+ )
112
+ }
113
+ HmsHelper.areAllRequiredKeysAvailable(credentials, arrayOf(Pair("metadata", "String"))) -> {
114
+ config =
115
+ HMSConfig(
116
+ credentials.getString("username") as String,
117
+ credentials.getString("authToken") as String,
118
+ metadata = credentials.getString("metadata") as String,
119
+ )
120
+ }
112
121
  }
113
122
 
114
123
  hmsSDK?.preview(
@@ -150,40 +159,35 @@ class HmsSDK(
150
159
  credentials.getString("authToken") as String
151
160
  )
152
161
 
153
- if (HmsHelper.areAllRequiredKeysAvailable(
154
- credentials,
155
- arrayOf(Pair("endpoint", "String"), Pair("metadata", "String"))
156
- )
157
- ) {
158
- config =
159
- HMSConfig(
160
- credentials.getString("username") as String,
161
- credentials.getString("authToken") as String,
162
- initEndpoint = credentials.getString("endpoint") as String,
163
- metadata = credentials.getString("metadata") as String,
164
- )
165
- } else if (HmsHelper.areAllRequiredKeysAvailable(
166
- credentials,
167
- arrayOf(Pair("endpoint", "String"))
168
- )
169
- ) {
170
- config =
171
- HMSConfig(
172
- credentials.getString("username") as String,
173
- credentials.getString("authToken") as String,
174
- initEndpoint = credentials.getString("endpoint") as String,
175
- )
176
- } else if (HmsHelper.areAllRequiredKeysAvailable(
177
- credentials,
178
- arrayOf(Pair("metadata", "String"))
179
- )
180
- ) {
181
- config =
182
- HMSConfig(
183
- credentials.getString("username") as String,
184
- credentials.getString("authToken") as String,
185
- metadata = credentials.getString("metadata") as String,
186
- )
162
+ when {
163
+ HmsHelper.areAllRequiredKeysAvailable(
164
+ credentials,
165
+ arrayOf(Pair("endpoint", "String"), Pair("metadata", "String"))
166
+ ) -> {
167
+ config =
168
+ HMSConfig(
169
+ credentials.getString("username") as String,
170
+ credentials.getString("authToken") as String,
171
+ initEndpoint = credentials.getString("endpoint") as String,
172
+ metadata = credentials.getString("metadata") as String,
173
+ )
174
+ }
175
+ HmsHelper.areAllRequiredKeysAvailable(credentials, arrayOf(Pair("endpoint", "String"))) -> {
176
+ config =
177
+ HMSConfig(
178
+ credentials.getString("username") as String,
179
+ credentials.getString("authToken") as String,
180
+ initEndpoint = credentials.getString("endpoint") as String,
181
+ )
182
+ }
183
+ HmsHelper.areAllRequiredKeysAvailable(credentials, arrayOf(Pair("metadata", "String"))) -> {
184
+ config =
185
+ HMSConfig(
186
+ credentials.getString("username") as String,
187
+ credentials.getString("authToken") as String,
188
+ metadata = credentials.getString("metadata") as String,
189
+ )
190
+ }
187
191
  }
188
192
 
189
193
  HMSCoroutineScope.launch {
@@ -191,14 +195,14 @@ class HmsSDK(
191
195
  hmsSDK?.join(
192
196
  config,
193
197
  object : HMSUpdateListener {
194
- override fun onChangeTrackStateRequest(request: HMSChangeTrackStateRequest) {
198
+ override fun onChangeTrackStateRequest(details: HMSChangeTrackStateRequest) {
195
199
  val decodedChangeTrackStateRequest =
196
- HmsDecoder.getHmsChangeTrackStateRequest(request)
200
+ HmsDecoder.getHmsChangeTrackStateRequest(details, id)
197
201
  delegate.emitEvent(
198
202
  "ON_CHANGE_TRACK_STATE_REQUEST",
199
203
  decodedChangeTrackStateRequest
200
204
  )
201
- changeTrackStateRequest = request
205
+ changeTrackStateRequest = details
202
206
  }
203
207
 
204
208
  override fun onRemovedFromRoom(notification: HMSRemovedFromRoom) {
@@ -238,16 +242,18 @@ class HmsSDK(
238
242
  delegate.emitEvent("ON_JOIN", data)
239
243
  }
240
244
 
241
- override fun onPeerUpdate(type: HMSPeerUpdate, hmsPeer: HMSPeer) {
242
- val type = type.name
245
+ override fun onPeerUpdate(type: HMSPeerUpdate, peer: HMSPeer) {
246
+ val updateType = type.name
243
247
  val roomData = HmsDecoder.getHmsRoom(hmsSDK?.getRoom())
244
248
  val localPeerData = HmsDecoder.getHmsLocalPeer(hmsSDK?.getLocalPeer())
245
249
  val remotePeerData = HmsDecoder.getHmsRemotePeers(hmsSDK?.getRemotePeers())
250
+ val hmsPeer = HmsDecoder.getHmsPeer(peer)
246
251
 
247
252
  val data: WritableMap = Arguments.createMap()
248
253
 
254
+ data.putMap("peer", hmsPeer)
249
255
  data.putMap("room", roomData)
250
- data.putString("type", type)
256
+ data.putString("type", updateType)
251
257
  data.putMap("localPeer", localPeerData)
252
258
  data.putArray("remotePeers", remotePeerData)
253
259
  data.putString("id", id)
@@ -255,14 +261,14 @@ class HmsSDK(
255
261
  }
256
262
 
257
263
  override fun onRoomUpdate(type: HMSRoomUpdate, hmsRoom: HMSRoom) {
258
- val type = type.name
264
+ val updateType = type.name
259
265
  val roomData = HmsDecoder.getHmsRoom(hmsRoom)
260
266
  val localPeerData = HmsDecoder.getHmsLocalPeer(hmsSDK?.getLocalPeer())
261
267
  val remotePeerData = HmsDecoder.getHmsRemotePeers(hmsSDK?.getRemotePeers())
262
268
 
263
269
  val data: WritableMap = Arguments.createMap()
264
270
 
265
- data.putString("type", type)
271
+ data.putString("type", updateType)
266
272
  data.putMap("room", roomData)
267
273
  data.putMap("localPeer", localPeerData)
268
274
  data.putArray("remotePeers", remotePeerData)
@@ -271,15 +277,19 @@ class HmsSDK(
271
277
  }
272
278
 
273
279
  override fun onTrackUpdate(type: HMSTrackUpdate, track: HMSTrack, peer: HMSPeer) {
274
- val type = type.name
280
+ val updateType = type.name
275
281
  val localPeerData = HmsDecoder.getHmsLocalPeer(hmsSDK?.getLocalPeer())
276
282
  val remotePeerData = HmsDecoder.getHmsRemotePeers(hmsSDK?.getRemotePeers())
277
283
  val roomData = HmsDecoder.getHmsRoom(hmsSDK?.getRoom())
284
+ val hmsPeer = HmsDecoder.getHmsPeer(peer)
285
+ val hmsTrack = HmsDecoder.getHmsTrack(track)
278
286
 
279
287
  val data: WritableMap = Arguments.createMap()
280
288
 
289
+ data.putMap("peer", hmsPeer)
290
+ data.putMap("track", hmsTrack)
281
291
  data.putMap("room", roomData)
282
- data.putString("type", type)
292
+ data.putString("type", updateType)
283
293
  data.putMap("localPeer", localPeerData)
284
294
  data.putArray("remotePeers", remotePeerData)
285
295
  data.putString("id", id)
@@ -334,9 +344,9 @@ class HmsSDK(
334
344
  val peers: WritableArray = Arguments.createArray()
335
345
  for (speaker in speakers) {
336
346
  val speakerArray: WritableMap = Arguments.createMap()
337
- speakerArray.putMap("peer", HmsDecoder.getHmsPeer(speaker?.peer))
338
- speakerArray.putInt("level", speaker?.level)
339
- speakerArray.putMap("track", HmsDecoder.getHmsTrack(speaker?.hmsTrack))
347
+ speakerArray.putMap("peer", HmsDecoder.getHmsPeer(speaker.peer))
348
+ speakerArray.putInt("level", speaker.level)
349
+ speakerArray.putMap("track", HmsDecoder.getHmsTrack(speaker.hmsTrack))
340
350
  peers.pushMap(speakerArray)
341
351
  }
342
352
  data.putArray("peers", peers)
@@ -359,14 +369,14 @@ class HmsSDK(
359
369
  val remotePeerData = HmsDecoder.getHmsRemotePeers(hmsSDK?.getRemotePeers())
360
370
  val roomData = HmsDecoder.getHmsRoom(hmsSDK?.getRoom())
361
371
 
362
- val data: WritableMap = Arguments.createMap()
372
+ val map: WritableMap = Arguments.createMap()
363
373
 
364
- data.putMap("room", roomData)
365
- data.putString("type", type)
366
- data.putMap("localPeer", localPeerData)
367
- data.putArray("remotePeers", remotePeerData)
368
- data.putString("id", id)
369
- delegate.emitEvent("ON_TRACK_UPDATE", data)
374
+ map.putMap("room", roomData)
375
+ map.putString("type", type)
376
+ map.putMap("localPeer", localPeerData)
377
+ map.putArray("remotePeers", remotePeerData)
378
+ map.putString("id", id)
379
+ delegate.emitEvent("ON_TRACK_UPDATE", map)
370
380
  }
371
381
 
372
382
  fun setLocalVideoMute(data: ReadableMap) {
@@ -375,7 +385,7 @@ class HmsSDK(
375
385
  }
376
386
 
377
387
  fun switchCamera() {
378
- if (hmsSDK?.getLocalPeer()?.videoTrack?.isMute ?: true) {} else {
388
+ if (hmsSDK?.getLocalPeer()?.videoTrack?.isMute == false) {
379
389
  HMSCoroutineScope.launch { hmsSDK?.getLocalPeer()?.videoTrack?.switchCamera() }
380
390
  }
381
391
  }
@@ -384,18 +394,18 @@ class HmsSDK(
384
394
  hmsSDK?.leave(
385
395
  object : HMSActionResultListener {
386
396
  override fun onSuccess() {
387
- callback?.resolve("")
397
+ callback?.resolve(emitHMSSuccess())
388
398
  }
389
399
 
390
400
  override fun onError(error: HMSException) {
391
- callback?.reject("101", "NOT_FOUND")
401
+ callback?.reject(error.code.toString(), error.message)
392
402
  self.emitHMSError(error)
393
403
  }
394
404
  }
395
405
  )
396
406
  }
397
407
 
398
- fun sendBroadcastMessage(data: ReadableMap) {
408
+ fun sendBroadcastMessage(data: ReadableMap, callback: Promise?) {
399
409
  val requiredKeys =
400
410
  HmsHelper.areAllRequiredKeysAvailable(data, arrayOf(Pair("message", "String")))
401
411
  if (requiredKeys) {
@@ -409,16 +419,20 @@ class HmsSDK(
409
419
  object : HMSMessageResultListener {
410
420
  override fun onError(error: HMSException) {
411
421
  self.emitHMSError(error)
422
+ callback?.reject(error.code.toString(), error.message)
423
+ }
424
+ override fun onSuccess(hmsMessage: HMSMessage) {
425
+ callback?.resolve(emitHMSSuccess(hmsMessage))
412
426
  }
413
- override fun onSuccess(hmsMessage: HMSMessage) {}
414
427
  }
415
428
  )
416
429
  } else {
417
430
  self.emitRequiredKeysError()
431
+ callback?.reject("101", "REQUIRED_KEYS_NOT_FOUND")
418
432
  }
419
433
  }
420
434
 
421
- fun sendGroupMessage(data: ReadableMap) {
435
+ fun sendGroupMessage(data: ReadableMap, callback: Promise?) {
422
436
  val requiredKeys =
423
437
  HmsHelper.areAllRequiredKeysAvailable(
424
438
  data,
@@ -442,17 +456,21 @@ class HmsSDK(
442
456
  object : HMSMessageResultListener {
443
457
  override fun onError(error: HMSException) {
444
458
  self.emitHMSError(error)
459
+ callback?.reject(error.code.toString(), error.message)
460
+ }
461
+ override fun onSuccess(hmsMessage: HMSMessage) {
462
+ callback?.resolve(emitHMSSuccess(hmsMessage))
445
463
  }
446
- override fun onSuccess(hmsMessage: HMSMessage) {}
447
464
  }
448
465
  )
449
466
  }
450
467
  } else {
451
468
  self.emitRequiredKeysError()
469
+ callback?.reject("101", "REQUIRED_KEYS_NOT_FOUND")
452
470
  }
453
471
  }
454
472
 
455
- fun sendDirectMessage(data: ReadableMap) {
473
+ fun sendDirectMessage(data: ReadableMap, callback: Promise?) {
456
474
  val requiredKeys =
457
475
  HmsHelper.areAllRequiredKeysAvailable(
458
476
  data,
@@ -475,17 +493,21 @@ class HmsSDK(
475
493
  object : HMSMessageResultListener {
476
494
  override fun onError(error: HMSException) {
477
495
  self.emitHMSError(error)
496
+ callback?.reject(error.code.toString(), error.message)
497
+ }
498
+ override fun onSuccess(hmsMessage: HMSMessage) {
499
+ callback?.resolve(emitHMSSuccess(hmsMessage))
478
500
  }
479
- override fun onSuccess(hmsMessage: HMSMessage) {}
480
501
  }
481
502
  )
482
503
  }
483
504
  } else {
484
505
  self.emitRequiredKeysError()
506
+ callback?.reject("101", "REQUIRED_KEYS_NOT_FOUND")
485
507
  }
486
508
  }
487
509
 
488
- fun changeRole(data: ReadableMap) {
510
+ fun changeRole(data: ReadableMap, callback: Promise?) {
489
511
  val requiredKeys =
490
512
  HmsHelper.areAllRequiredKeysAvailable(
491
513
  data,
@@ -502,13 +524,16 @@ class HmsSDK(
502
524
 
503
525
  if (hmsRole != null && hmsPeer != null) {
504
526
  hmsSDK?.changeRole(
505
- hmsPeer as HMSRemotePeer,
527
+ hmsPeer,
506
528
  hmsRole,
507
529
  force,
508
530
  object : HMSActionResultListener {
509
- override fun onSuccess() {}
531
+ override fun onSuccess() {
532
+ callback?.resolve(emitHMSSuccess())
533
+ }
510
534
  override fun onError(error: HMSException) {
511
535
  self.emitHMSError(error)
536
+ callback?.reject(error.code.toString(), error.message)
512
537
  }
513
538
  }
514
539
  )
@@ -516,10 +541,11 @@ class HmsSDK(
516
541
  }
517
542
  } else {
518
543
  self.emitRequiredKeysError()
544
+ callback?.reject("101", "REQUIRED_KEYS_NOT_FOUND")
519
545
  }
520
546
  }
521
547
 
522
- fun changeTrackState(data: ReadableMap) {
548
+ fun changeTrackState(data: ReadableMap, callback: Promise?) {
523
549
  val requiredKeys =
524
550
  HmsHelper.areAllRequiredKeysAvailable(
525
551
  data,
@@ -535,19 +561,23 @@ class HmsSDK(
535
561
  track,
536
562
  mute,
537
563
  object : HMSActionResultListener {
538
- override fun onSuccess() {}
564
+ override fun onSuccess() {
565
+ callback?.resolve(emitHMSSuccess())
566
+ }
539
567
  override fun onError(error: HMSException) {
540
568
  self.emitHMSError(error)
569
+ callback?.reject(error.code.toString(), error.message)
541
570
  }
542
571
  }
543
572
  )
544
573
  }
545
574
  } else {
546
575
  self.emitRequiredKeysError()
576
+ callback?.reject("101", "REQUIRED_KEYS_NOT_FOUND")
547
577
  }
548
578
  }
549
579
 
550
- fun changeTrackStateRoles(data: ReadableMap) {
580
+ fun changeTrackStateRoles(data: ReadableMap, callback: Promise?) {
551
581
  val requiredKeys =
552
582
  HmsHelper.areAllRequiredKeysAvailable(
553
583
  data,
@@ -573,14 +603,18 @@ class HmsSDK(
573
603
  source,
574
604
  encodedTargetedRoles,
575
605
  object : HMSActionResultListener {
576
- override fun onSuccess() {}
606
+ override fun onSuccess() {
607
+ callback?.resolve(emitHMSSuccess())
608
+ }
577
609
  override fun onError(error: HMSException) {
578
610
  self.emitHMSError(error)
611
+ callback?.reject(error.code.toString(), error.message)
579
612
  }
580
613
  }
581
614
  )
582
615
  } else {
583
616
  self.emitRequiredKeysError()
617
+ callback?.reject("101", "REQUIRED_KEYS_NOT_FOUND")
584
618
  }
585
619
  }
586
620
 
@@ -605,11 +639,11 @@ class HmsSDK(
605
639
  callback?.resolve(mute)
606
640
  }
607
641
  } else {
608
- callback?.reject("102", "REQUIRED_KEYS_NOT_AVAILABLE")
642
+ callback?.reject("101", "REQUIRED_KEYS_NOT_FOUND")
609
643
  }
610
644
  }
611
645
 
612
- fun removePeer(data: ReadableMap) {
646
+ fun removePeer(data: ReadableMap, callback: Promise?) {
613
647
  val requiredKeys =
614
648
  HmsHelper.areAllRequiredKeysAvailable(data, arrayOf(Pair("peerId", "String")))
615
649
  if (requiredKeys) {
@@ -629,19 +663,25 @@ class HmsSDK(
629
663
  peer,
630
664
  reason,
631
665
  object : HMSActionResultListener {
632
- override fun onSuccess() {}
666
+ override fun onSuccess() {
667
+ callback?.resolve(emitHMSSuccess())
668
+ }
633
669
  override fun onError(error: HMSException) {
634
670
  self.emitHMSError(error)
671
+ callback?.reject(error.code.toString(), error.message)
635
672
  }
636
673
  }
637
674
  )
675
+ } else {
676
+ callback?.reject("101", "PEER_NOT_FOUND")
638
677
  }
639
678
  } else {
640
679
  self.emitRequiredKeysError()
680
+ callback?.reject("101", "REQUIRED_KEYS_NOT_FOUND")
641
681
  }
642
682
  }
643
683
 
644
- fun endRoom(data: ReadableMap) {
684
+ fun endRoom(data: ReadableMap, callback: Promise?) {
645
685
  val lock = data.getBoolean("lock")
646
686
  var reason = data.getString("reason")
647
687
  if (reason == null) {
@@ -652,9 +692,12 @@ class HmsSDK(
652
692
  reason,
653
693
  lock,
654
694
  object : HMSActionResultListener {
655
- override fun onSuccess() {}
695
+ override fun onSuccess() {
696
+ callback?.resolve(emitHMSSuccess())
697
+ }
656
698
  override fun onError(error: HMSException) {
657
699
  self.emitHMSError(error)
700
+ callback?.reject(error.code.toString(), error.message)
658
701
  }
659
702
  }
660
703
  )
@@ -687,19 +730,17 @@ class HmsSDK(
687
730
  for (remotePeer in peers) {
688
731
  val peerId = remotePeer.peerID
689
732
  val peer = HmsHelper.getRemotePeerFromPeerId(peerId, peers)
690
- if (peerId != null) {
691
- peer?.audioTrack?.isPlaybackAllowed = !mute
692
- }
733
+ peer?.audioTrack?.isPlaybackAllowed = !mute
693
734
  }
694
735
  val localPeerData = HmsDecoder.getHmsLocalPeer(hmsSDK?.getLocalPeer())
695
736
  val remotePeerData = HmsDecoder.getHmsRemotePeers(hmsSDK?.getRemotePeers())
696
737
 
697
- val data: WritableMap = Arguments.createMap()
738
+ val map: WritableMap = Arguments.createMap()
698
739
 
699
- data.putMap("localPeer", localPeerData)
700
- data.putArray("remotePeers", remotePeerData)
701
- data.putString("id", id)
702
- delegate.emitEvent("ON_PEER_UPDATE", data)
740
+ map.putMap("localPeer", localPeerData)
741
+ map.putArray("remotePeers", remotePeerData)
742
+ map.putString("id", id)
743
+ delegate.emitEvent("ON_PEER_UPDATE", map)
703
744
  }
704
745
  } else {
705
746
  this.emitRequiredKeysError()
@@ -736,14 +777,18 @@ class HmsSDK(
736
777
  val remotePeers = hmsSDK?.getRemotePeers()
737
778
  val remoteAudioTrack = HmsHelper.getRemoteAudioTrackFromTrackId(trackId, remotePeers)
738
779
  val remoteVideoTrack = HmsHelper.getRemoteVideoTrackFromTrackId(trackId, remotePeers)
739
- if (remoteAudioTrack != null) {
740
- val isPlaybackAllowed = remoteAudioTrack.isPlaybackAllowed
741
- callback?.resolve(isPlaybackAllowed)
742
- } else if (remoteVideoTrack != null) {
743
- val isPlaybackAllowed = remoteVideoTrack.isPlaybackAllowed
744
- callback?.resolve(isPlaybackAllowed)
745
- } else {
746
- callback?.reject("101", "NOT_FOUND")
780
+ when {
781
+ remoteAudioTrack != null -> {
782
+ val isPlaybackAllowed = remoteAudioTrack.isPlaybackAllowed
783
+ callback?.resolve(isPlaybackAllowed)
784
+ }
785
+ remoteVideoTrack != null -> {
786
+ val isPlaybackAllowed = remoteVideoTrack.isPlaybackAllowed
787
+ callback?.resolve(isPlaybackAllowed)
788
+ }
789
+ else -> {
790
+ callback?.reject("101", "NOT_FOUND")
791
+ }
747
792
  }
748
793
  } else {
749
794
  callback?.reject("101", "TRACK_ID_NOT_FOUND")
@@ -752,7 +797,6 @@ class HmsSDK(
752
797
 
753
798
  fun getRoom(callback: Promise?) {
754
799
  val roomData = HmsDecoder.getHmsRoom(hmsSDK?.getRoom())
755
-
756
800
  callback?.resolve(roomData)
757
801
  }
758
802
 
@@ -827,14 +871,10 @@ class HmsSDK(
827
871
  metadata,
828
872
  object : HMSActionResultListener {
829
873
  override fun onSuccess() {
830
- val result: WritableMap = Arguments.createMap()
831
-
832
- result.putBoolean("success", true)
833
-
834
- callback?.resolve(result)
874
+ callback?.resolve(emitHMSSuccess())
835
875
  }
836
876
  override fun onError(error: HMSException) {
837
- callback?.reject(error.message, error.description)
877
+ callback?.reject(error.code.toString(), error.message)
838
878
  self.emitHMSError(error)
839
879
  }
840
880
  }
@@ -853,7 +893,7 @@ class HmsSDK(
853
893
  )
854
894
  if (requiredKeys) {
855
895
  val record = data.getBoolean("record")
856
- var meetingURL = data.getString("meetingURL") as String
896
+ val meetingURL = data.getString("meetingURL") as String
857
897
  var rtmpURLs = data.getArray("rtmpURLs")
858
898
  if (rtmpURLs == null) {
859
899
  rtmpURLs = Arguments.createArray()
@@ -865,12 +905,10 @@ class HmsSDK(
865
905
  config,
866
906
  object : HMSActionResultListener {
867
907
  override fun onSuccess() {
868
- val result: WritableMap = Arguments.createMap()
869
- result.putBoolean("success", true)
870
- callback?.resolve(result)
908
+ callback?.resolve(emitHMSSuccess())
871
909
  }
872
910
  override fun onError(error: HMSException) {
873
- callback?.reject(error.message, error.description)
911
+ callback?.reject(error.code.toString(), error.message)
874
912
  self.emitHMSError(error)
875
913
  }
876
914
  }
@@ -885,12 +923,10 @@ class HmsSDK(
885
923
  hmsSDK?.stopRtmpAndRecording(
886
924
  object : HMSActionResultListener {
887
925
  override fun onSuccess() {
888
- val result: WritableMap = Arguments.createMap()
889
- result.putBoolean("success", true)
890
- callback?.resolve(result)
926
+ callback?.resolve(emitHMSSuccess())
891
927
  }
892
928
  override fun onError(error: HMSException) {
893
- callback?.reject(error.message, error.description)
929
+ callback?.reject(error.code.toString(), error.message)
894
930
  self.emitHMSError(error)
895
931
  }
896
932
  }