@100mslive/react-native-hms 1.7.2 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/android/src/main/java/com/reactnativehmssdk/HMSAudioshareActivity.kt +1 -0
  2. package/android/src/main/java/com/reactnativehmssdk/HMSDecoder.kt +28 -10
  3. package/android/src/main/java/com/reactnativehmssdk/HMSHLSPlayer.kt +113 -68
  4. package/android/src/main/java/com/reactnativehmssdk/HMSHLSPlayerManager.kt +17 -4
  5. package/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt +34 -18
  6. package/android/src/main/java/com/reactnativehmssdk/HMSManager.kt +363 -159
  7. package/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +367 -151
  8. package/android/src/main/java/com/reactnativehmssdk/HMSSDKViewManager.kt +26 -7
  9. package/android/src/main/java/com/reactnativehmssdk/HMSView.kt +32 -12
  10. package/android/src/main/java/com/reactnativehmssdk/HmsScreenshareActivity.kt +1 -0
  11. package/android/src/main/java/com/reactnativehmssdk/PipActionReceiver.kt +10 -6
  12. package/android/src/main/res/layout/player_view.xml +3 -2
  13. package/ios/HMSDecoder.swift +2 -2
  14. package/ios/HMSHLSPlayerManager.swift +18 -2
  15. package/ios/HMSManager.m +227 -70
  16. package/ios/HMSManager.swift +2 -2
  17. package/ios/HMSRNSDK.swift +67 -126
  18. package/ios/HMSView.swift +17 -3
  19. package/lib/commonjs/classes/HMSEncoder.js +6 -0
  20. package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
  21. package/lib/commonjs/classes/HMSSDK.js +40 -26
  22. package/lib/commonjs/classes/HMSSDK.js.map +1 -1
  23. package/lib/commonjs/components/HMSHLSPlayer/HMSHLSPlayer.js +10 -5
  24. package/lib/commonjs/components/HMSHLSPlayer/HMSHLSPlayer.js.map +1 -1
  25. package/lib/commonjs/index.js.map +1 -1
  26. package/lib/commonjs/types.js +1 -0
  27. package/lib/commonjs/types.js.map +1 -1
  28. package/lib/module/classes/HMSEncoder.js +6 -0
  29. package/lib/module/classes/HMSEncoder.js.map +1 -1
  30. package/lib/module/classes/HMSSDK.js +40 -26
  31. package/lib/module/classes/HMSSDK.js.map +1 -1
  32. package/lib/module/components/HMSHLSPlayer/HMSHLSPlayer.js +11 -6
  33. package/lib/module/components/HMSHLSPlayer/HMSHLSPlayer.js.map +1 -1
  34. package/lib/module/index.js.map +1 -1
  35. package/lib/module/types.js +1 -0
  36. package/lib/module/types.js.map +1 -1
  37. package/lib/typescript/classes/HMSEncoder.d.ts +1 -0
  38. package/lib/typescript/classes/HMSSDK.d.ts +23 -12
  39. package/lib/typescript/index.d.ts +1 -1
  40. package/lib/typescript/types.d.ts +3 -1
  41. package/package.json +1 -1
  42. package/sdk-versions.json +2 -2
  43. package/src/classes/HMSEncoder.ts +9 -0
  44. package/src/classes/HMSSDK.tsx +48 -24
  45. package/src/components/HMSHLSPlayer/HMSHLSPlayer.tsx +15 -13
  46. package/src/index.ts +4 -1
  47. package/src/types.ts +2 -0
@@ -25,6 +25,7 @@ class HMSAudioshareActivity : ComponentActivity() {
25
25
  HMSManager.hmsCollection[id]?.audioshareCallback?.reject(error)
26
26
  HMSManager.hmsCollection[id]?.emitHMSError(error)
27
27
  }
28
+
28
29
  override fun onSuccess() {
29
30
  HMSManager.hmsCollection[id]?.isAudioSharing = true
30
31
  HMSManager.hmsCollection[id]?.audioshareCallback?.resolve(
@@ -16,7 +16,10 @@ import live.hms.video.sdk.models.trackchangerequest.HMSChangeTrackStateRequest
16
16
  object HMSDecoder {
17
17
  private var restrictRoleData = mutableMapOf<String, Boolean>()
18
18
 
19
- fun setRestrictRoleData(roleName: String, value: Boolean) {
19
+ fun setRestrictRoleData(
20
+ roleName: String,
21
+ value: Boolean,
22
+ ) {
20
23
  this.restrictRoleData[roleName] = value
21
24
  }
22
25
 
@@ -24,7 +27,10 @@ object HMSDecoder {
24
27
  this.restrictRoleData.clear()
25
28
  }
26
29
 
27
- fun getHmsRoomSubset(hmsRoom: HMSRoom?, hmsRoomUpdateType: HMSRoomUpdate? = null): WritableMap {
30
+ fun getHmsRoomSubset(
31
+ hmsRoom: HMSRoom?,
32
+ hmsRoomUpdateType: HMSRoomUpdate? = null,
33
+ ): WritableMap {
28
34
  val room: WritableMap = Arguments.createMap()
29
35
  if (hmsRoom != null) {
30
36
  room.putString("id", hmsRoom.roomId)
@@ -142,7 +148,10 @@ object HMSDecoder {
142
148
  return room
143
149
  }
144
150
 
145
- fun getHmsPeerSubsetForPeerUpdateEvent(hmsPeer: HMSPeer?, peerUpdateType: HMSPeerUpdate): WritableMap {
151
+ fun getHmsPeerSubsetForPeerUpdateEvent(
152
+ hmsPeer: HMSPeer?,
153
+ peerUpdateType: HMSPeerUpdate,
154
+ ): WritableMap {
146
155
  val peer: WritableMap = Arguments.createMap()
147
156
  if (hmsPeer != null) {
148
157
  peer.putString(peerUpdateType.ordinal.toString(), hmsPeer.peerID)
@@ -171,7 +180,10 @@ object HMSDecoder {
171
180
  return peer
172
181
  }
173
182
 
174
- fun getHmsPeerSubset(hmsPeer: HMSPeer?, peerUpdateType: HMSPeerUpdate? = null): WritableMap {
183
+ fun getHmsPeerSubset(
184
+ hmsPeer: HMSPeer?,
185
+ peerUpdateType: HMSPeerUpdate? = null,
186
+ ): WritableMap {
175
187
  val peer: WritableMap = Arguments.createMap()
176
188
  if (hmsPeer != null) {
177
189
  peer.putString("peerID", hmsPeer.peerID)
@@ -564,7 +576,10 @@ object HMSDecoder {
564
576
  return hmsTracks
565
577
  }
566
578
 
567
- fun getHmsRoleChangeRequest(request: HMSRoleChangeRequest, id: String?): WritableMap {
579
+ fun getHmsRoleChangeRequest(
580
+ request: HMSRoleChangeRequest,
581
+ id: String?,
582
+ ): WritableMap {
568
583
  val roleChangeRequest: WritableMap = Arguments.createMap()
569
584
  if (id != null) {
570
585
  request.requestedBy?.let {
@@ -577,7 +592,10 @@ object HMSDecoder {
577
592
  return roleChangeRequest
578
593
  }
579
594
 
580
- fun getHmsChangeTrackStateRequest(request: HMSChangeTrackStateRequest, id: String): WritableMap {
595
+ fun getHmsChangeTrackStateRequest(
596
+ request: HMSChangeTrackStateRequest,
597
+ id: String,
598
+ ): WritableMap {
581
599
  val changeTrackStateRequest: WritableMap = Arguments.createMap()
582
600
 
583
601
  request.requestedBy?.let {
@@ -722,9 +740,7 @@ object HMSDecoder {
722
740
  return subscribeSettings
723
741
  }
724
742
 
725
- private fun getHmsSubscribeDegradationSettings(
726
- hmsSubscribeDegradationParams: SubscribeDegradationParams?,
727
- ): WritableMap {
743
+ private fun getHmsSubscribeDegradationSettings(hmsSubscribeDegradationParams: SubscribeDegradationParams?): WritableMap {
728
744
  val subscribeDegradationParams: WritableMap = Arguments.createMap()
729
745
  if (hmsSubscribeDegradationParams != null) {
730
746
  subscribeDegradationParams.putString(
@@ -862,7 +878,9 @@ object HMSDecoder {
862
878
  hmsQualityLimitationReasons.cpu?.let { qualityLimitationReasons.putDouble("cpu", it) }
863
879
  hmsQualityLimitationReasons.none?.let { qualityLimitationReasons.putDouble("none", it) }
864
880
  hmsQualityLimitationReasons.other?.let { qualityLimitationReasons.putDouble("other", it) }
865
- hmsQualityLimitationReasons.qualityLimitationResolutionChanges?.let { qualityLimitationReasons.putInt("qualityLimitationResolutionChanges", it.toInt()) }
881
+ hmsQualityLimitationReasons.qualityLimitationResolutionChanges?.let {
882
+ qualityLimitationReasons.putInt("qualityLimitationResolutionChanges", it.toInt())
883
+ }
866
884
  qualityLimitationReasons.putString("reason", hmsQualityLimitationReasons.reason.name)
867
885
  }
868
886
  return qualityLimitationReasons
@@ -4,6 +4,10 @@ import android.annotation.SuppressLint
4
4
  import android.content.Context
5
5
  import android.view.LayoutInflater
6
6
  import android.widget.FrameLayout
7
+ import androidx.media3.common.Player
8
+ import androidx.media3.common.VideoSize
9
+ import androidx.media3.ui.AspectRatioFrameLayout.RESIZE_MODE_FIT
10
+ import androidx.media3.ui.AspectRatioFrameLayout.RESIZE_MODE_ZOOM
7
11
  import androidx.media3.ui.PlayerView
8
12
  import com.facebook.react.bridge.Arguments
9
13
  import com.facebook.react.bridge.ReactContext
@@ -22,83 +26,85 @@ class HMSHLSPlayer(context: ReactContext) : FrameLayout(context) {
22
26
  private var hmsHlsPlayer: HmsHlsPlayer? = null // 100ms HLS Player
23
27
  private var hmssdkInstance: HMSSDK? = null
24
28
  private var statsMonitorAttached = false
25
- private val hmsHlsPlaybackEventsObject = object : HmsHlsPlaybackEvents {
26
- override fun onCue(cue: HmsHlsCue) {
27
- super.onCue(cue)
29
+ private val hmsHlsPlaybackEventsObject =
30
+ object : HmsHlsPlaybackEvents {
31
+ override fun onCue(cue: HmsHlsCue) {
32
+ super.onCue(cue)
33
+
34
+ val data = Arguments.createMap()
35
+ cue.endDate?.let { data.putString("endDate", it.time.toString()) }
36
+ cue.id?.let { data.putString("id", it) }
37
+ cue.payloadval?.let { data.putString("payloadval", it) }
38
+ data.putString("startDate", cue.startDate.time.toString())
39
+
40
+ sendHLSPlaybackEventToJS(HMSHLSPlayerConstants.ON_PLAYBACK_CUE_EVENT, data)
41
+ }
28
42
 
29
- val data = Arguments.createMap()
30
- cue.endDate?.let { data.putString("endDate", it.time.toString()) }
31
- cue.id?.let { data.putString("id", it) }
32
- cue.payloadval?.let { data.putString("payloadval", it) }
33
- data.putString("startDate", cue.startDate.time.toString())
43
+ override fun onPlaybackFailure(error: HmsHlsException) {
44
+ super.onPlaybackFailure(error)
34
45
 
35
- sendHLSPlaybackEventToJS(HMSHLSPlayerConstants.ON_PLAYBACK_CUE_EVENT, data)
36
- }
46
+ val data = Arguments.createMap()
37
47
 
38
- override fun onPlaybackFailure(error: HmsHlsException) {
39
- super.onPlaybackFailure(error)
48
+ // error
49
+ val errorData = Arguments.createMap()
50
+ errorData.putInt("errorCode", error.error.errorCode)
51
+ errorData.putString("errorCodeName", error.error.errorCodeName)
52
+ error.error.message?.let {
53
+ errorData.putString("message", it)
54
+ }
40
55
 
41
- val data = Arguments.createMap()
56
+ data.putMap("error", errorData)
42
57
 
43
- // error
44
- val errorData = Arguments.createMap()
45
- errorData.putInt("errorCode", error.error.errorCode)
46
- errorData.putString("errorCodeName", error.error.errorCodeName)
47
- error.error.message?.let {
48
- errorData.putString("message", it)
58
+ sendHLSPlaybackEventToJS(HMSHLSPlayerConstants.ON_PLAYBACK_FAILURE_EVENT, data)
49
59
  }
50
60
 
51
- data.putMap("error", errorData)
52
-
53
- sendHLSPlaybackEventToJS(HMSHLSPlayerConstants.ON_PLAYBACK_FAILURE_EVENT, data)
54
- }
55
-
56
- override fun onPlaybackStateChanged(state: HmsHlsPlaybackState) {
57
- super.onPlaybackStateChanged(state)
58
-
59
- val data = Arguments.createMap()
60
- data.putString("state", state.name)
61
- sendHLSPlaybackEventToJS(HMSHLSPlayerConstants.ON_PLAYBACK_STATE_CHANGE_EVENT, data)
62
- }
63
- }
64
- private val hmsHlsPlayerStatsListenerObject = object : PlayerStatsListener {
65
- override fun onError(error: HMSException) {
66
- val data = Arguments.createMap()
67
-
68
- data.putString("action", error.action)
69
- data.putInt("code", error.code)
70
- data.putString("description", error.description)
71
- data.putBoolean("isTerminal", error.isTerminal)
72
- data.putString("message", error.message)
73
- data.putString("name", error.name)
61
+ override fun onPlaybackStateChanged(state: HmsHlsPlaybackState) {
62
+ super.onPlaybackStateChanged(state)
74
63
 
75
- sendHLSStatsEventToJS(HMSHLSPlayerConstants.ON_STATS_EVENT_ERROR, data)
64
+ val data = Arguments.createMap()
65
+ data.putString("state", state.name)
66
+ sendHLSPlaybackEventToJS(HMSHLSPlayerConstants.ON_PLAYBACK_STATE_CHANGE_EVENT, data)
67
+ }
76
68
  }
69
+ private val hmsHlsPlayerStatsListenerObject =
70
+ object : PlayerStatsListener {
71
+ override fun onError(error: HMSException) {
72
+ val data = Arguments.createMap()
73
+
74
+ data.putString("action", error.action)
75
+ data.putInt("code", error.code)
76
+ data.putString("description", error.description)
77
+ data.putBoolean("isTerminal", error.isTerminal)
78
+ data.putString("message", error.message)
79
+ data.putString("name", error.name)
80
+
81
+ sendHLSStatsEventToJS(HMSHLSPlayerConstants.ON_STATS_EVENT_ERROR, data)
82
+ }
77
83
 
78
- override fun onEventUpdate(playerStatsModel: PlayerStatsModel) {
79
- val data = Arguments.createMap()
84
+ override fun onEventUpdate(playerStatsModel: PlayerStatsModel) {
85
+ val data = Arguments.createMap()
80
86
 
81
- // bandwidth
82
- data.putInt("bandWidthEstimate", playerStatsModel.bandwidth.bandWidthEstimate.toInt())
83
- data.putInt("totalBytesLoaded", playerStatsModel.bandwidth.totalBytesLoaded.toInt())
87
+ // bandwidth
88
+ data.putInt("bandWidthEstimate", playerStatsModel.bandwidth.bandWidthEstimate.toInt())
89
+ data.putInt("totalBytesLoaded", playerStatsModel.bandwidth.totalBytesLoaded.toInt())
84
90
 
85
- // bufferedDuration
86
- data.putInt("bufferedDuration", playerStatsModel.bufferedDuration.toInt())
91
+ // bufferedDuration
92
+ data.putInt("bufferedDuration", playerStatsModel.bufferedDuration.toInt())
87
93
 
88
- // distanceFromLive
89
- data.putInt("distanceFromLive", playerStatsModel.distanceFromLive.toInt())
94
+ // distanceFromLive
95
+ data.putInt("distanceFromLive", playerStatsModel.distanceFromLive.toInt())
90
96
 
91
- // frameInfo
92
- data.putInt("droppedFrameCount", playerStatsModel.frameInfo.droppedFrameCount)
97
+ // frameInfo
98
+ data.putInt("droppedFrameCount", playerStatsModel.frameInfo.droppedFrameCount)
93
99
 
94
- // videoInfo
95
- data.putInt("averageBitrate", playerStatsModel.videoInfo.averageBitrate)
96
- data.putInt("videoHeight", playerStatsModel.videoInfo.videoHeight)
97
- data.putInt("videoWidth", playerStatsModel.videoInfo.videoWidth)
100
+ // videoInfo
101
+ data.putInt("averageBitrate", playerStatsModel.videoInfo.averageBitrate)
102
+ data.putInt("videoHeight", playerStatsModel.videoInfo.videoHeight)
103
+ data.putInt("videoWidth", playerStatsModel.videoInfo.videoWidth)
98
104
 
99
- sendHLSStatsEventToJS(HMSHLSPlayerConstants.ON_STATS_EVENT_UPDATE, data)
105
+ sendHLSStatsEventToJS(HMSHLSPlayerConstants.ON_STATS_EVENT_UPDATE, data)
106
+ }
100
107
  }
101
- }
102
108
 
103
109
  init {
104
110
  val inflater = getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
@@ -109,6 +115,7 @@ class HMSHLSPlayer(context: ReactContext) : FrameLayout(context) {
109
115
  // getting Exoplayer View from above xml
110
116
  val localPlayerView = view.findViewById<PlayerView>(R.id.hls_view)
111
117
  playerView = localPlayerView
118
+ localPlayerView.useController = false
112
119
 
113
120
  val hmssdkCollection = context.getNativeModule(HMSManager::class.java)?.getHmsInstance()
114
121
  hmssdkInstance = hmssdkCollection?.get("12345")?.hmsSDK
@@ -122,6 +129,37 @@ class HMSHLSPlayer(context: ReactContext) : FrameLayout(context) {
122
129
 
123
130
  // setting 100ms HLS Player on Exoplayer
124
131
  localPlayerView.player = localHmsHlsPlayer.getNativePlayer()
132
+
133
+ localPlayerView?.player?.addListener(
134
+ object : Player.Listener {
135
+ override fun onSurfaceSizeChanged(
136
+ width: Int,
137
+ height: Int,
138
+ ) {
139
+ super.onSurfaceSizeChanged(width, height)
140
+ }
141
+
142
+ override fun onVideoSizeChanged(videoSize: VideoSize) {
143
+ super.onVideoSizeChanged(videoSize)
144
+
145
+ if (videoSize.height != 0 && videoSize.width != 0) {
146
+ val width = videoSize.width.toDouble()
147
+ val height = videoSize.height.toDouble()
148
+
149
+ if (width >= height) {
150
+ playerView?.resizeMode = RESIZE_MODE_FIT
151
+ } else {
152
+ playerView?.resizeMode = RESIZE_MODE_ZOOM
153
+ }
154
+
155
+ val data = Arguments.createMap()
156
+ data.putString("state", "onVideoSizeChanged")
157
+ data.putDouble("aspectRatio", (width / height))
158
+ sendHLSPlaybackEventToJS(HMSHLSPlayerConstants.ON_PLAYBACK_STATE_CHANGE_EVENT, data)
159
+ }
160
+ }
161
+ },
162
+ )
125
163
  }
126
164
 
127
165
  fun cleanup() {
@@ -138,13 +176,14 @@ class HMSHLSPlayer(context: ReactContext) : FrameLayout(context) {
138
176
 
139
177
  val hlsStreamingState = this.hmssdkInstance?.getRoom()?.hlsStreamingState
140
178
 
141
- val defaultURL: String? = hlsStreamingState?.let {
142
- if (it.running) {
143
- it.variants?.get(0)?.hlsStreamUrl
144
- } else {
145
- null
179
+ val defaultURL: String? =
180
+ hlsStreamingState?.let {
181
+ if (it.running) {
182
+ it.variants?.get(0)?.hlsStreamUrl
183
+ } else {
184
+ null
185
+ }
146
186
  }
147
- }
148
187
 
149
188
  if (defaultURL !== null) {
150
189
  hmsHlsPlayer?.play(defaultURL)
@@ -215,7 +254,10 @@ class HMSHLSPlayer(context: ReactContext) : FrameLayout(context) {
215
254
  statsMonitorAttached = false
216
255
  }
217
256
 
218
- private fun sendHLSPlaybackEventToJS(eventName: String, data: WritableMap) {
257
+ private fun sendHLSPlaybackEventToJS(
258
+ eventName: String,
259
+ data: WritableMap,
260
+ ) {
219
261
  val event: WritableMap = Arguments.createMap()
220
262
  event.putString("event", eventName)
221
263
  event.putMap("data", data)
@@ -224,7 +266,10 @@ class HMSHLSPlayer(context: ReactContext) : FrameLayout(context) {
224
266
  reactContext.getJSModule(RCTEventEmitter::class.java).receiveEvent(id, HMSHLSPlayerConstants.HMS_HLS_PLAYBACK_EVENT, event)
225
267
  }
226
268
 
227
- private fun sendHLSStatsEventToJS(eventName: String, data: WritableMap) {
269
+ private fun sendHLSStatsEventToJS(
270
+ eventName: String,
271
+ data: WritableMap,
272
+ ) {
228
273
  val event: WritableMap = Arguments.createMap()
229
274
  event.putString("event", eventName)
230
275
  event.putMap("data", data)
@@ -34,7 +34,11 @@ class HMSHLSPlayerManager : SimpleViewManager<HMSHLSPlayer>() {
34
34
  )
35
35
  }
36
36
 
37
- override fun receiveCommand(root: HMSHLSPlayer, commandId: Int, args: ReadableArray?) {
37
+ override fun receiveCommand(
38
+ root: HMSHLSPlayer,
39
+ commandId: Int,
40
+ args: ReadableArray?,
41
+ ) {
38
42
  super.receiveCommand(root, commandId, args)
39
43
 
40
44
  when (commandId) {
@@ -81,17 +85,26 @@ class HMSHLSPlayerManager : SimpleViewManager<HMSHLSPlayer>() {
81
85
  }
82
86
 
83
87
  @ReactProp(name = "url")
84
- fun setStreamURL(view: HMSHLSPlayer, data: String?) {
88
+ fun setStreamURL(
89
+ view: HMSHLSPlayer,
90
+ data: String?,
91
+ ) {
85
92
  view.play(data)
86
93
  }
87
94
 
88
95
  @ReactProp(name = "enableStats", defaultBoolean = false)
89
- fun setEnableStats(view: HMSHLSPlayer, data: Boolean) {
96
+ fun setEnableStats(
97
+ view: HMSHLSPlayer,
98
+ data: Boolean,
99
+ ) {
90
100
  view.enableStats(data)
91
101
  }
92
102
 
93
103
  @ReactProp(name = "enableControls", defaultBoolean = false)
94
- fun setEnableControls(view: HMSHLSPlayer, data: Boolean) {
104
+ fun setEnableControls(
105
+ view: HMSHLSPlayer,
106
+ data: Boolean,
107
+ ) {
95
108
  view.enableControls(data)
96
109
  }
97
110
 
@@ -29,7 +29,6 @@ import java.io.ByteArrayOutputStream
29
29
  import java.util.*
30
30
 
31
31
  object HMSHelper {
32
-
33
32
  fun areAllRequiredKeysAvailable(
34
33
  map: ReadableMap?,
35
34
  requiredKeys: Array<Pair<String, String>>,
@@ -96,14 +95,20 @@ object HMSHelper {
96
95
  return null
97
96
  }
98
97
 
99
- fun getPeerFromPeerId(peerId: String?, room: HMSRoom?): HMSPeer? {
98
+ fun getPeerFromPeerId(
99
+ peerId: String?,
100
+ room: HMSRoom?,
101
+ ): HMSPeer? {
100
102
  if (peerId != null && room != null) {
101
103
  return HmsUtilities.getPeer(peerId, room)
102
104
  }
103
105
  return null
104
106
  }
105
107
 
106
- fun getRemotePeerFromPeerId(peerId: String?, room: HMSRoom?): HMSRemotePeer? {
108
+ fun getRemotePeerFromPeerId(
109
+ peerId: String?,
110
+ room: HMSRoom?,
111
+ ): HMSRemotePeer? {
107
112
  if (peerId != null && room != null) {
108
113
  return HmsUtilities.getPeer(peerId, room) as? HMSRemotePeer
109
114
  }
@@ -128,7 +133,10 @@ object HMSHelper {
128
133
  return encodedRoles.toList()
129
134
  }
130
135
 
131
- fun getRoleFromRoleName(role: String?, roles: List<HMSRole>?): HMSRole? {
136
+ fun getRoleFromRoleName(
137
+ role: String?,
138
+ roles: List<HMSRole>?,
139
+ ): HMSRole? {
132
140
  if (role != null && roles != null) {
133
141
  for (hmsRole in roles) {
134
142
  if (role == hmsRole.name) {
@@ -139,21 +147,30 @@ object HMSHelper {
139
147
  return null
140
148
  }
141
149
 
142
- fun getRemoteAudioTrackFromTrackId(trackId: String?, room: HMSRoom?): HMSRemoteAudioTrack? {
150
+ fun getRemoteAudioTrackFromTrackId(
151
+ trackId: String?,
152
+ room: HMSRoom?,
153
+ ): HMSRemoteAudioTrack? {
143
154
  if (trackId != null && room != null) {
144
155
  return HmsUtilities.getAudioTrack(trackId, room) as? HMSRemoteAudioTrack
145
156
  }
146
157
  return null
147
158
  }
148
159
 
149
- fun getRemoteVideoTrackFromTrackId(trackId: String?, room: HMSRoom?): HMSRemoteVideoTrack? {
160
+ fun getRemoteVideoTrackFromTrackId(
161
+ trackId: String?,
162
+ room: HMSRoom?,
163
+ ): HMSRemoteVideoTrack? {
150
164
  if (trackId != null && room != null) {
151
165
  return HmsUtilities.getVideoTrack(trackId, room) as? HMSRemoteVideoTrack
152
166
  }
153
167
  return null
154
168
  }
155
169
 
156
- fun getTrackFromTrackId(trackId: String?, room: HMSRoom?): HMSTrack? {
170
+ fun getTrackFromTrackId(
171
+ trackId: String?,
172
+ room: HMSRoom?,
173
+ ): HMSTrack? {
157
174
  if (trackId != null && room != null) {
158
175
  return HmsUtilities.getTrack(trackId, room)
159
176
  }
@@ -334,7 +351,10 @@ object HMSHelper {
334
351
  return HMSVideoTrackSettings.CameraFacing.FRONT
335
352
  }
336
353
 
337
- fun getHms(credentials: ReadableMap, hmsCollection: MutableMap<String, HMSRNSDK>): HMSRNSDK? {
354
+ fun getHms(
355
+ credentials: ReadableMap,
356
+ hmsCollection: MutableMap<String, HMSRNSDK>,
357
+ ): HMSRNSDK? {
338
358
  val id = credentials.getString("id")
339
359
 
340
360
  return if (id != null) {
@@ -372,9 +392,7 @@ object HMSHelper {
372
392
  return HMSHLSConfig(hlsMeetingUrlVariant, hlsRecordingConfig)
373
393
  }
374
394
 
375
- private fun getHMSHLSMeetingURLVariants(
376
- hmsMeetingURLVariants: ArrayList<HashMap<String, String>>?,
377
- ): List<HMSHLSMeetingURLVariant> {
395
+ private fun getHMSHLSMeetingURLVariants(hmsMeetingURLVariants: ArrayList<HashMap<String, String>>?): List<HMSHLSMeetingURLVariant> {
378
396
  val meetingURLVariants = mutableListOf<HMSHLSMeetingURLVariant>()
379
397
  if (hmsMeetingURLVariants !== null) {
380
398
  for (variant in hmsMeetingURLVariants) {
@@ -408,9 +426,7 @@ object HMSHelper {
408
426
  return null
409
427
  }
410
428
 
411
- private fun getHMSHLSMeetingURLVariant(
412
- hmsMeetingURLVariant: HashMap<String, String>?,
413
- ): HMSHLSMeetingURLVariant {
429
+ private fun getHMSHLSMeetingURLVariant(hmsMeetingURLVariant: HashMap<String, String>?): HMSHLSMeetingURLVariant {
414
430
  var meetingURLVariant = HMSHLSMeetingURLVariant("", "")
415
431
  if (hmsMeetingURLVariant !== null) {
416
432
  val meetingUrl = hmsMeetingURLVariant["meetingUrl"] as String
@@ -478,7 +494,7 @@ object HMSHelper {
478
494
  initEndpoint = credentials.getString("endpoint") as String,
479
495
  metadata = credentials.getString("metadata") as String,
480
496
  captureNetworkQualityInPreview =
481
- credentials.getBoolean("captureNetworkQualityInPreview"),
497
+ credentials.getBoolean("captureNetworkQualityInPreview"),
482
498
  )
483
499
  }
484
500
  areAllRequiredKeysAvailable(
@@ -503,7 +519,7 @@ object HMSHelper {
503
519
  credentials.getString("authToken") as String,
504
520
  initEndpoint = credentials.getString("endpoint") as String,
505
521
  captureNetworkQualityInPreview =
506
- credentials.getBoolean("captureNetworkQualityInPreview"),
522
+ credentials.getBoolean("captureNetworkQualityInPreview"),
507
523
  )
508
524
  }
509
525
  areAllRequiredKeysAvailable(
@@ -516,7 +532,7 @@ object HMSHelper {
516
532
  credentials.getString("authToken") as String,
517
533
  metadata = credentials.getString("metadata") as String,
518
534
  captureNetworkQualityInPreview =
519
- credentials.getBoolean("captureNetworkQualityInPreview"),
535
+ credentials.getBoolean("captureNetworkQualityInPreview"),
520
536
  )
521
537
  }
522
538
  areAllRequiredKeysAvailable(credentials, arrayOf(Pair("endpoint", "String"))) -> {
@@ -544,7 +560,7 @@ object HMSHelper {
544
560
  credentials.getString("username") as String,
545
561
  credentials.getString("authToken") as String,
546
562
  captureNetworkQualityInPreview =
547
- credentials.getBoolean("captureNetworkQualityInPreview"),
563
+ credentials.getBoolean("captureNetworkQualityInPreview"),
548
564
  )
549
565
  }
550
566
  }