@100mslive/react-native-hms 0.8.0 → 0.8.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/README.md +37 -39
  2. package/android/.gradle/6.9/executionHistory/executionHistory.lock +0 -0
  3. package/android/.gradle/6.9/fileHashes/fileHashes.lock +0 -0
  4. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  5. package/android/.gradle/buildOutputCleanup/cache.properties +1 -1
  6. package/android/.gradle/checksums/checksums.lock +0 -0
  7. package/android/.gradle/checksums/md5-checksums.bin +0 -0
  8. package/android/.gradle/checksums/sha1-checksums.bin +0 -0
  9. package/android/build.gradle +1 -2
  10. package/android/src/main/java/com/reactnativehmssdk/HmsDecoder.kt +249 -230
  11. package/android/src/main/java/com/reactnativehmssdk/HmsHelper.kt +145 -13
  12. package/android/src/main/java/com/reactnativehmssdk/HmsModule.kt +56 -21
  13. package/android/src/main/java/com/reactnativehmssdk/HmsSDK.kt +463 -247
  14. package/android/src/main/java/com/reactnativehmssdk/HmsView.kt +15 -18
  15. package/android/src/main/java/com/reactnativehmssdk/HmssdkPackage.kt +1 -2
  16. package/android/src/main/java/com/reactnativehmssdk/HmssdkViewManager.kt +4 -10
  17. package/ios/HmsDecoder.swift +135 -35
  18. package/ios/HmsHelper.swift +103 -1
  19. package/ios/HmsManager.m +13 -9
  20. package/ios/HmsManager.swift +59 -24
  21. package/ios/HmsSDK.swift +322 -85
  22. package/ios/HmsView.swift +1 -1
  23. package/lib/commonjs/classes/HMSAudioTrackSettings.js +3 -0
  24. package/lib/commonjs/classes/HMSAudioTrackSettings.js.map +1 -1
  25. package/lib/commonjs/classes/HMSBrowserRecordingState.js +23 -0
  26. package/lib/commonjs/classes/HMSBrowserRecordingState.js.map +1 -0
  27. package/lib/commonjs/classes/HMSCameraFacing.js +14 -0
  28. package/lib/commonjs/classes/HMSCameraFacing.js.map +1 -0
  29. package/lib/commonjs/classes/HMSChangeTrackStateRequest.js +3 -0
  30. package/lib/commonjs/classes/HMSChangeTrackStateRequest.js.map +1 -1
  31. package/lib/commonjs/classes/HMSConfig.js +3 -1
  32. package/lib/commonjs/classes/HMSConfig.js.map +1 -1
  33. package/lib/commonjs/classes/HMSEncoder.js +27 -7
  34. package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
  35. package/lib/commonjs/classes/HMSException.js +30 -0
  36. package/lib/commonjs/classes/HMSException.js.map +1 -0
  37. package/lib/commonjs/classes/HMSHelper.js +2 -2
  38. package/lib/commonjs/classes/HMSHelper.js.map +1 -1
  39. package/lib/commonjs/classes/HMSLocalAudioTrack.js +32 -0
  40. package/lib/commonjs/classes/HMSLocalAudioTrack.js.map +1 -1
  41. package/lib/commonjs/classes/HMSLocalPeer.js.map +1 -1
  42. package/lib/commonjs/classes/HMSLocalVideoTrack.js +18 -0
  43. package/lib/commonjs/classes/HMSLocalVideoTrack.js.map +1 -1
  44. package/lib/commonjs/classes/HMSLogger.js +28 -1
  45. package/lib/commonjs/classes/HMSLogger.js.map +1 -1
  46. package/lib/commonjs/classes/HMSPeer.js +3 -0
  47. package/lib/commonjs/classes/HMSPeer.js.map +1 -1
  48. package/lib/commonjs/classes/HMSPeerUpdate.js +1 -0
  49. package/lib/commonjs/classes/HMSPeerUpdate.js.map +1 -1
  50. package/lib/commonjs/classes/HMSPermissions.js +6 -0
  51. package/lib/commonjs/classes/HMSPermissions.js.map +1 -1
  52. package/lib/commonjs/classes/HMSRTMPConfig.js +26 -0
  53. package/lib/commonjs/classes/HMSRTMPConfig.js.map +1 -0
  54. package/lib/commonjs/classes/HMSRemoteAudioTrack.js +19 -0
  55. package/lib/commonjs/classes/HMSRemoteAudioTrack.js.map +1 -1
  56. package/lib/commonjs/classes/HMSRemotePeer.js.map +1 -1
  57. package/lib/commonjs/classes/HMSRemoteVideoTrack.js +19 -0
  58. package/lib/commonjs/classes/HMSRemoteVideoTrack.js.map +1 -1
  59. package/lib/commonjs/classes/HMSRoom.js +9 -0
  60. package/lib/commonjs/classes/HMSRoom.js.map +1 -1
  61. package/lib/commonjs/classes/HMSRtmpStreamingState.js +23 -0
  62. package/lib/commonjs/classes/HMSRtmpStreamingState.js.map +1 -0
  63. package/lib/commonjs/classes/HMSSDK.js +229 -125
  64. package/lib/commonjs/classes/HMSSDK.js.map +1 -1
  65. package/lib/commonjs/classes/HMSServerRecordingState.js +23 -0
  66. package/lib/commonjs/classes/HMSServerRecordingState.js.map +1 -0
  67. package/lib/commonjs/classes/HMSTrack.js +2 -19
  68. package/lib/commonjs/classes/HMSTrack.js.map +1 -1
  69. package/lib/commonjs/classes/HMSTrackSettings.js +3 -0
  70. package/lib/commonjs/classes/HMSTrackSettings.js.map +1 -1
  71. package/lib/commonjs/classes/HMSVideoCodec.js +4 -4
  72. package/lib/commonjs/classes/HMSVideoCodec.js.map +1 -1
  73. package/lib/commonjs/classes/HMSVideoResolution.js +23 -0
  74. package/lib/commonjs/classes/HMSVideoResolution.js.map +1 -0
  75. package/lib/commonjs/classes/HMSVideoSettings.js.map +1 -1
  76. package/lib/commonjs/classes/HMSVideoTrackSettings.js +0 -3
  77. package/lib/commonjs/classes/HMSVideoTrackSettings.js.map +1 -1
  78. package/lib/commonjs/index.js +98 -0
  79. package/lib/commonjs/index.js.map +1 -1
  80. package/lib/module/classes/HMSAudioTrackSettings.js +3 -0
  81. package/lib/module/classes/HMSAudioTrackSettings.js.map +1 -1
  82. package/lib/module/classes/HMSBrowserRecordingState.js +14 -0
  83. package/lib/module/classes/HMSBrowserRecordingState.js.map +1 -0
  84. package/lib/module/classes/HMSCameraFacing.js +7 -0
  85. package/lib/module/classes/HMSCameraFacing.js.map +1 -0
  86. package/lib/module/classes/HMSChangeTrackStateRequest.js +3 -0
  87. package/lib/module/classes/HMSChangeTrackStateRequest.js.map +1 -1
  88. package/lib/module/classes/HMSConfig.js +3 -1
  89. package/lib/module/classes/HMSConfig.js.map +1 -1
  90. package/lib/module/classes/HMSEncoder.js +26 -7
  91. package/lib/module/classes/HMSEncoder.js.map +1 -1
  92. package/lib/module/classes/HMSException.js +21 -0
  93. package/lib/module/classes/HMSException.js.map +1 -0
  94. package/lib/module/classes/HMSHelper.js +2 -2
  95. package/lib/module/classes/HMSHelper.js.map +1 -1
  96. package/lib/module/classes/HMSLocalAudioTrack.js +30 -1
  97. package/lib/module/classes/HMSLocalAudioTrack.js.map +1 -1
  98. package/lib/module/classes/HMSLocalPeer.js.map +1 -1
  99. package/lib/module/classes/HMSLocalVideoTrack.js +15 -0
  100. package/lib/module/classes/HMSLocalVideoTrack.js.map +1 -1
  101. package/lib/module/classes/HMSLogger.js +28 -1
  102. package/lib/module/classes/HMSLogger.js.map +1 -1
  103. package/lib/module/classes/HMSPeer.js +3 -0
  104. package/lib/module/classes/HMSPeer.js.map +1 -1
  105. package/lib/module/classes/HMSPeerUpdate.js +1 -0
  106. package/lib/module/classes/HMSPeerUpdate.js.map +1 -1
  107. package/lib/module/classes/HMSPermissions.js +6 -0
  108. package/lib/module/classes/HMSPermissions.js.map +1 -1
  109. package/lib/module/classes/HMSRTMPConfig.js +17 -0
  110. package/lib/module/classes/HMSRTMPConfig.js.map +1 -0
  111. package/lib/module/classes/HMSRemoteAudioTrack.js +16 -0
  112. package/lib/module/classes/HMSRemoteAudioTrack.js.map +1 -1
  113. package/lib/module/classes/HMSRemotePeer.js.map +1 -1
  114. package/lib/module/classes/HMSRemoteVideoTrack.js +16 -0
  115. package/lib/module/classes/HMSRemoteVideoTrack.js.map +1 -1
  116. package/lib/module/classes/HMSRoom.js +9 -0
  117. package/lib/module/classes/HMSRoom.js.map +1 -1
  118. package/lib/module/classes/HMSRtmpStreamingState.js +14 -0
  119. package/lib/module/classes/HMSRtmpStreamingState.js.map +1 -0
  120. package/lib/module/classes/HMSSDK.js +227 -125
  121. package/lib/module/classes/HMSSDK.js.map +1 -1
  122. package/lib/module/classes/HMSServerRecordingState.js +14 -0
  123. package/lib/module/classes/HMSServerRecordingState.js.map +1 -0
  124. package/lib/module/classes/HMSTrack.js +2 -17
  125. package/lib/module/classes/HMSTrack.js.map +1 -1
  126. package/lib/module/classes/HMSTrackSettings.js +3 -0
  127. package/lib/module/classes/HMSTrackSettings.js.map +1 -1
  128. package/lib/module/classes/HMSVideoCodec.js +4 -4
  129. package/lib/module/classes/HMSVideoCodec.js.map +1 -1
  130. package/lib/module/classes/HMSVideoResolution.js +14 -0
  131. package/lib/module/classes/HMSVideoResolution.js.map +1 -0
  132. package/lib/module/classes/HMSVideoSettings.js.map +1 -1
  133. package/lib/module/classes/HMSVideoTrackSettings.js +0 -3
  134. package/lib/module/classes/HMSVideoTrackSettings.js.map +1 -1
  135. package/lib/module/index.js +7 -0
  136. package/lib/module/index.js.map +1 -1
  137. package/lib/typescript/classes/HMSAudioTrackSettings.d.ts +3 -0
  138. package/lib/typescript/classes/HMSBrowserRecordingState.d.ts +9 -0
  139. package/lib/typescript/classes/HMSCameraFacing.d.ts +4 -0
  140. package/lib/typescript/classes/HMSChangeTrackStateRequest.d.ts +2 -0
  141. package/lib/typescript/classes/HMSConfig.d.ts +2 -0
  142. package/lib/typescript/classes/HMSEncoder.d.ts +3 -1
  143. package/lib/typescript/classes/HMSException.d.ts +22 -0
  144. package/lib/typescript/classes/HMSLocalAudioTrack.d.ts +1 -0
  145. package/lib/typescript/classes/HMSLocalPeer.d.ts +4 -0
  146. package/lib/typescript/classes/HMSLogger.d.ts +7 -0
  147. package/lib/typescript/classes/HMSPeer.d.ts +2 -0
  148. package/lib/typescript/classes/HMSPeerUpdate.d.ts +1 -0
  149. package/lib/typescript/classes/HMSPermissions.d.ts +4 -0
  150. package/lib/typescript/classes/HMSRTMPConfig.d.ts +10 -0
  151. package/lib/typescript/classes/HMSRemotePeer.d.ts +1 -0
  152. package/lib/typescript/classes/HMSRoom.d.ts +9 -0
  153. package/lib/typescript/classes/HMSRtmpStreamingState.d.ts +9 -0
  154. package/lib/typescript/classes/HMSSDK.d.ts +22 -13
  155. package/lib/typescript/classes/HMSServerRecordingState.d.ts +9 -0
  156. package/lib/typescript/classes/HMSTrack.d.ts +1 -1
  157. package/lib/typescript/classes/HMSTrackSettings.d.ts +2 -0
  158. package/lib/typescript/classes/HMSVideoCodec.d.ts +4 -4
  159. package/lib/typescript/classes/HMSVideoResolution.d.ts +8 -0
  160. package/lib/typescript/classes/HMSVideoSettings.d.ts +3 -3
  161. package/lib/typescript/classes/HMSVideoTrackSettings.d.ts +13 -10
  162. package/lib/typescript/index.d.ts +7 -0
  163. package/package.json +2 -1
  164. package/src/classes/HMSAudioTrackSettings.ts +9 -1
  165. package/src/classes/HMSBrowserRecordingState.ts +11 -0
  166. package/src/classes/HMSCameraFacing.ts +4 -0
  167. package/src/classes/HMSChangeTrackStateRequest.ts +7 -1
  168. package/src/classes/HMSConfig.ts +3 -1
  169. package/src/classes/HMSEncoder.ts +22 -2
  170. package/src/classes/HMSException.ts +33 -0
  171. package/src/classes/HMSHelper.ts +2 -2
  172. package/src/classes/HMSLocalAudioTrack.ts +29 -1
  173. package/src/classes/HMSLocalPeer.ts +4 -0
  174. package/src/classes/HMSLocalVideoTrack.ts +15 -0
  175. package/src/classes/HMSLogger.ts +14 -1
  176. package/src/classes/HMSPeer.ts +3 -0
  177. package/src/classes/HMSPeerUpdate.ts +1 -0
  178. package/src/classes/HMSPermissions.ts +6 -0
  179. package/src/classes/HMSRTMPConfig.ts +15 -0
  180. package/src/classes/HMSRemoteAudioTrack.ts +16 -0
  181. package/src/classes/HMSRemotePeer.ts +1 -0
  182. package/src/classes/HMSRemoteVideoTrack.ts +16 -0
  183. package/src/classes/HMSRoom.ts +12 -0
  184. package/src/classes/HMSRtmpStreamingState.ts +11 -0
  185. package/src/classes/HMSSDK.tsx +170 -71
  186. package/src/classes/HMSServerRecordingState.ts +11 -0
  187. package/src/classes/HMSTrack.ts +2 -15
  188. package/src/classes/HMSTrackSettings.ts +3 -0
  189. package/src/classes/HMSVideoCodec.ts +4 -4
  190. package/src/classes/HMSVideoResolution.ts +9 -0
  191. package/src/classes/HMSVideoSettings.ts +3 -3
  192. package/src/classes/HMSVideoTrackSettings.ts +13 -10
  193. package/src/index.ts +7 -0
  194. package/android/.gradle/6.9/executionHistory/executionHistory.bin +0 -0
  195. package/android/.gradle/6.9/fileHashes/fileHashes.bin +0 -0
  196. package/android/.gradle/6.9/fileHashes/resourceHashesCache.bin +0 -0
  197. package/android/.gradle/6.9/javaCompile/classAnalysis.bin +0 -0
  198. package/android/.gradle/6.9/javaCompile/jarAnalysis.bin +0 -0
  199. package/android/.gradle/6.9/javaCompile/javaCompile.lock +0 -0
  200. package/android/.gradle/6.9/javaCompile/taskHistory.bin +0 -0
  201. package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
  202. package/android/.project +0 -34
@@ -2,8 +2,8 @@ package com.reactnativehmssdk
2
2
 
3
3
  import com.facebook.react.bridge.*
4
4
  import live.hms.video.error.HMSException
5
- import java.util.*
6
5
  import live.hms.video.media.settings.HMSAudioTrackSettings
6
+ import live.hms.video.media.settings.HMSVideoResolution
7
7
  import live.hms.video.media.settings.HMSVideoTrackSettings
8
8
  import live.hms.video.media.tracks.*
9
9
  import live.hms.video.sdk.models.*
@@ -18,11 +18,21 @@ object HmsDecoder {
18
18
  room.putString("id", hmsRoom.roomId)
19
19
  room.putString("name", hmsRoom.name)
20
20
  room.putString("metaData", null)
21
- var peers: WritableArray = Arguments.createArray()
22
- for (peer in hmsRoom.peerList) {
23
- peers.pushMap(getHmsPeer(peer))
24
- }
25
- room.putArray("peers", peers)
21
+ room.putString("startedAt", hmsRoom.startedAt.toString())
22
+ room.putMap(
23
+ "browserRecordingState",
24
+ this.getHMSBrowserRecordingState(hmsRoom.browserRecordingState)
25
+ )
26
+ room.putMap(
27
+ "rtmpHMSRtmpStreamingState",
28
+ this.getHMSRtmpStreamingState(hmsRoom.rtmpHMSRtmpStreamingState)
29
+ )
30
+ room.putMap(
31
+ "serverRecordingState",
32
+ this.getHMSServerRecordingState(hmsRoom.serverRecordingState)
33
+ )
34
+ room.putMap("localPeer", this.getHmsLocalPeer(hmsRoom.localPeer))
35
+ room.putArray("peers", this.getAllPeers(hmsRoom.peerList))
26
36
  }
27
37
  return room
28
38
  }
@@ -33,29 +43,20 @@ object HmsDecoder {
33
43
  peer.putString("peerID", hmsPeer.peerID)
34
44
  peer.putString("name", hmsPeer.name)
35
45
  peer.putBoolean("isLocal", hmsPeer.isLocal)
36
- peer.putString(
37
- "customerUserID",
38
- if (hmsPeer.customerUserID == null) hmsPeer.customerUserID else ""
39
- )
40
- peer.putString(
41
- "customerDescription",
42
- if (hmsPeer.customerDescription == null) hmsPeer.customerDescription else ""
43
- )
44
- peer.putMap("audioTrack", getHmsAudioTrack(hmsPeer.audioTrack))
45
- peer.putMap("videoTrack", getHmsVideoTrack(hmsPeer.videoTrack))
46
- peer.putMap("role", getHmsRole(hmsPeer.hmsRole))
47
- var auxiliaryTracks: WritableArray = Arguments.createArray()
48
- for (track in hmsPeer.auxiliaryTracks) {
49
- auxiliaryTracks.pushMap(getHmsTrack(track))
50
- }
51
- peer.putArray("auxiliaryTracks", auxiliaryTracks)
46
+ peer.putString("customerUserID", hmsPeer.customerUserID)
47
+ peer.putString("metadata", hmsPeer.metadata)
48
+ peer.putMap("audioTrack", this.getHmsAudioTrack(hmsPeer.audioTrack))
49
+ peer.putMap("videoTrack", this.getHmsVideoTrack(hmsPeer.videoTrack))
50
+ peer.putMap("role", this.getHmsRole(hmsPeer.hmsRole))
51
+ peer.putArray("auxiliaryTracks", this.getAllTracks(hmsPeer.auxiliaryTracks))
52
52
  }
53
53
  return peer
54
54
  }
55
55
 
56
- fun getHmsAudioTrack(hmsAudioTrack: HMSAudioTrack?): WritableMap {
56
+ private fun getHmsAudioTrack(hmsAudioTrack: HMSAudioTrack?): WritableMap {
57
57
  val hmsTrack: WritableMap = Arguments.createMap()
58
58
  if (hmsAudioTrack != null) {
59
+ hmsTrack.putString("type", hmsAudioTrack.type.name)
59
60
  hmsTrack.putString("trackId", hmsAudioTrack.trackId)
60
61
  hmsTrack.putString("source", hmsAudioTrack.source)
61
62
  hmsTrack.putString("trackDescription", hmsAudioTrack.description)
@@ -64,9 +65,10 @@ object HmsDecoder {
64
65
  return hmsTrack
65
66
  }
66
67
 
67
- fun getHmsVideoTrack(hmsVideoTrack: HMSVideoTrack?): WritableMap {
68
+ private fun getHmsVideoTrack(hmsVideoTrack: HMSVideoTrack?): WritableMap {
68
69
  val hmsTrack: WritableMap = Arguments.createMap()
69
70
  if (hmsVideoTrack != null) {
71
+ hmsTrack.putString("type", hmsVideoTrack.type.name)
70
72
  hmsTrack.putString("trackId", hmsVideoTrack.trackId)
71
73
  hmsTrack.putString("source", hmsVideoTrack.source)
72
74
  hmsTrack.putString("trackDescription", hmsVideoTrack.description)
@@ -83,234 +85,182 @@ object HmsDecoder {
83
85
  hmsTrack.putString("source", track.source)
84
86
  hmsTrack.putString("trackDescription", track.description)
85
87
  hmsTrack.putBoolean("isMute", track.isMute)
86
- hmsTrack.putString("type", track.type.toString())
88
+ hmsTrack.putString("type", track.type.name)
87
89
  }
88
90
  return hmsTrack
89
91
  }
90
92
 
91
93
  fun getAllRoles(roles: List<HMSRole>?): WritableArray {
92
94
  val decodedRoles: WritableArray = Arguments.createArray()
93
-
94
95
  if (roles != null) {
95
96
  for (role in roles) {
96
- val decodedRole = getHmsRole(role)
97
-
97
+ val decodedRole = this.getHmsRole(role)
98
98
  decodedRoles.pushMap(decodedRole)
99
99
  }
100
100
  }
101
-
102
101
  return decodedRoles
103
102
  }
104
103
 
105
- fun getHmsRole(hmsRole: HMSRole?): WritableMap {
104
+ private fun getHmsRole(hmsRole: HMSRole?): WritableMap {
106
105
  val role: WritableMap = Arguments.createMap()
107
- // val emptyMap: WritableArray = Arguments.createMap();
108
106
  if (hmsRole != null) {
109
107
  role.putString("name", hmsRole.name)
110
- role.putMap("permissions", getHmsPermissions(hmsRole.permission))
111
- role.putMap("publishSettings", getHmsPublishSettings(hmsRole.publishParams))
108
+ role.putMap("permissions", this.getHmsPermissions(hmsRole.permission))
109
+ role.putMap("publishSettings", this.getHmsPublishSettings(hmsRole.publishParams))
110
+ role.putMap("subscribeSettings", this.getHmsSubscribeSettings(hmsRole.subscribeParams))
112
111
  role.putInt("priority", hmsRole.priority)
113
- // role.putArray("generalPermissions",
114
- // if(hmsRole.generalPermissions!=null)hmsRole.generalPermissions else emptyMap);
115
- // role.putArray("internalPlugins",
116
- // if(hmsRole.internalPlugins!=null)hmsRole.internalPlugins else emptyMap);
117
- // role.putArray("externalPlugins",
118
- // if(hmsRole.externalPlugins!=null)hmsRole.externalPlugins else emptyMap);
119
112
  }
120
113
  return role
121
114
  }
122
115
 
123
- fun getHmsPermissions(hmsPermissions: PermissionsParams?): WritableMap {
116
+ private fun getHmsPermissions(hmsPermissions: PermissionsParams?): WritableMap {
124
117
  val permissions: WritableMap = Arguments.createMap()
125
118
  if (hmsPermissions != null) {
126
- permissions.putBoolean(
127
- "endRoom",
128
- if (hmsPermissions.endRoom != null) hmsPermissions.endRoom else false
129
- )
130
- permissions.putBoolean(
131
- "removeOthers",
132
- if (hmsPermissions.removeOthers != null) hmsPermissions.removeOthers else false
133
- )
134
- permissions.putBoolean(
135
- "mute",
136
- if (hmsPermissions.mute != null) hmsPermissions.mute else false
137
- )
138
- permissions.putBoolean(
139
- "changeRoleForce",
140
- if (hmsPermissions.changeRoleForce != null) hmsPermissions.changeRoleForce else false
141
- )
142
- permissions.putBoolean(
143
- "unmute",
144
- if (hmsPermissions.unmute != null) hmsPermissions.unmute else false
145
- )
146
- permissions.putBoolean(
147
- "recording",
148
- if (hmsPermissions.recording != null) hmsPermissions.recording else false
149
- )
150
- permissions.putBoolean(
151
- "rtmp",
152
- if (hmsPermissions.rtmp != null) hmsPermissions.rtmp else false
153
- )
154
- permissions.putBoolean(
155
- "changeRole",
156
- if (hmsPermissions.changeRole != null) hmsPermissions.changeRole else false
157
- )
119
+ permissions.putBoolean("endRoom", hmsPermissions.endRoom)
120
+ permissions.putBoolean("removeOthers", hmsPermissions.removeOthers)
121
+ permissions.putBoolean("mute", hmsPermissions.mute)
122
+ permissions.putBoolean("changeRoleForce", hmsPermissions.changeRoleForce)
123
+ permissions.putBoolean("unmute", hmsPermissions.unmute)
124
+ permissions.putBoolean("recording", hmsPermissions.recording)
125
+ permissions.putBoolean("rtmp", hmsPermissions.rtmp)
126
+ permissions.putBoolean("changeRole", hmsPermissions.changeRole)
158
127
  }
159
128
  return permissions
160
129
  }
161
130
 
162
- fun getHmsPublishSettings(hmsPublishSettings: PublishParams?): WritableMap {
131
+ private fun getHmsPublishSettings(hmsPublishSettings: PublishParams?): WritableMap {
163
132
  val publishSettings: WritableMap = Arguments.createMap()
164
- val emptyArray: WritableArray = Arguments.createArray()
165
133
  if (hmsPublishSettings != null) {
166
- publishSettings.putMap("audio", getHmsAudioSettings(hmsPublishSettings.audio))
167
- publishSettings.putMap("video", getHmsVideoSettings(hmsPublishSettings.video))
168
- publishSettings.putMap("screen", getHmsVideoSettings(hmsPublishSettings.screen))
169
- // publishSettings.putMap("videoSimulcastLayers",
170
- // getHmsSimulcastLayers(hmsPublishSettings.videoSimulcastLayers));
171
- // publishSettings.putMap("screenSimulcastLayers",
172
- // getHmsSimulcastLayers(hmsPublishSettings.screenSimulcastLayers));
134
+ publishSettings.putMap("audio", this.getHmsAudioSettings(hmsPublishSettings.audio))
135
+ publishSettings.putMap("video", this.getHmsVideoSettings(hmsPublishSettings.video))
136
+ publishSettings.putMap("screen", this.getHmsVideoSettings(hmsPublishSettings.screen))
173
137
  publishSettings.putMap("videoSimulcastLayers", null)
174
138
  publishSettings.putMap("screenSimulcastLayers", null)
175
- // publishSettings.putArray("allowed", if (hmsPublishSettings.allowed != null)
176
- // hmsPublishSettings.allowed as WritableArray else emptyArray);
139
+ publishSettings.putArray("allowed", this.getWriteableArray(hmsPublishSettings.allowed))
177
140
  }
178
141
  return publishSettings
179
142
  }
180
- fun getHmsAudioSettings(hmsAudioSettings: AudioParams?): WritableMap {
143
+
144
+ private fun getWriteableArray(array: List<String>?): WritableArray {
145
+ val decodedArray: WritableArray = Arguments.createArray()
146
+ if (array != null) {
147
+ for (value in array) {
148
+ decodedArray.pushString(value)
149
+ }
150
+ }
151
+ return decodedArray
152
+ }
153
+
154
+ private fun getHmsAudioSettings(hmsAudioSettings: AudioParams?): WritableMap {
181
155
  val audioSettings: WritableMap = Arguments.createMap()
182
156
  if (hmsAudioSettings != null) {
183
157
  audioSettings.putInt("bitRate", hmsAudioSettings.bitRate)
184
- audioSettings.putString("codec", hmsAudioSettings.codec.toString())
158
+ audioSettings.putString("codec", hmsAudioSettings.codec.name)
185
159
  }
186
160
  return audioSettings
187
161
  }
188
162
 
189
- fun getHmsVideoSettings(hmsVideoSettings: VideoParams?): WritableMap {
163
+ private fun getHmsVideoSettings(hmsVideoSettings: VideoParams?): WritableMap {
190
164
  val videoSettings: WritableMap = Arguments.createMap()
191
165
  if (hmsVideoSettings != null) {
192
166
  videoSettings.putInt("bitRate", hmsVideoSettings.bitRate)
193
167
  videoSettings.putInt("frameRate", hmsVideoSettings.frameRate)
194
168
  videoSettings.putInt("width", hmsVideoSettings.width)
195
169
  videoSettings.putInt("height", hmsVideoSettings.height)
196
- videoSettings.putString("codec", hmsVideoSettings.codec.toString())
170
+ videoSettings.putString("codec", hmsVideoSettings.codec.name)
197
171
  }
198
172
  return videoSettings
199
173
  }
200
174
 
201
- // fun getHmsSimulcastLayers(videoSimulcastLayers: HMSSimulcastSettingsPolicy?): WritableMap {
202
- // val videoLayers: WritableMap = Arguments.createMap();
203
- // if(videoSimulcastLayers != null) {
204
- // videoLayers.putInt("width", videoSimulcastLayers.width);
205
- // videoLayers.putString("height", videoSimulcastLayers.height);
206
- // videoLayers.putArray("layers",
207
- // getHmsSimulcastLayerSettingsPolicy(videoSimulcastLayers.layers));
208
- // }
209
- // return videoLayers;
210
- // }
211
-
212
- // fun getHmsSimulcastLayerSettingsPolicy(layers: HMSSimulcastLayerSettingsPolicy?):
213
- // WritableArray {
214
- // val layersSettingsPolicy: WritableArray = Arguments.createArray();
215
- // val hmsLayersSettingsPolicy: WritableMap = Arguments.createMap();
216
- // if(layers != null) {
217
- // hmsLayersSettingsPolicy.putString("rid", layers.rid);
218
- // hmsLayersSettingsPolicy.putInt("scaleResolutionDownBy", if (layers.scaleResolutionDownBy
219
- // != null) layers.scaleResolutionDownBy else 0);
220
- // hmsLayersSettingsPolicy.putInt("maxBitrate", if (layers.maxBitrate != null)
221
- // layers.maxBitrate else -1);
222
- // hmsLayersSettingsPolicy.putInt("maxFramerate", if (layers.maxFramerate != null)
223
- // layers.maxFramerate else -1);
224
- // }
225
- // layersSettingsPolicy.pushMap(hmsLayersSettingsPolicy)
226
- // return layersSettingsPolicy;
227
- // }
228
-
229
175
  fun getHmsLocalPeer(hmsLocalPeer: HMSLocalPeer?): WritableMap {
230
176
  val peer: WritableMap = Arguments.createMap()
231
177
  if (hmsLocalPeer != null) {
232
178
  peer.putString("peerID", hmsLocalPeer.peerID)
233
179
  peer.putString("name", hmsLocalPeer.name)
234
180
  peer.putBoolean("isLocal", hmsLocalPeer.isLocal)
235
- peer.putString(
236
- "customerUserID",
237
- if (hmsLocalPeer.customerUserID != null) hmsLocalPeer.customerUserID else ""
238
- )
239
- peer.putString(
240
- "customerDescription",
241
- if (hmsLocalPeer.customerDescription != null) hmsLocalPeer.customerDescription else ""
242
- )
243
- peer.putMap("audioTrack", getHmsAudioTrack(hmsLocalPeer.audioTrack))
244
- peer.putMap("videoTrack", getHmsVideoTrack(hmsLocalPeer.videoTrack))
245
- peer.putMap("role", getHmsRole(hmsLocalPeer.hmsRole))
246
-
247
- var auxiliaryTracks: WritableArray = Arguments.createArray()
248
- for (track in hmsLocalPeer.auxiliaryTracks) {
249
- auxiliaryTracks.pushMap(getHmsTrack(track))
250
- }
251
- peer.putArray("auxiliaryTracks", auxiliaryTracks)
252
-
253
- val localAudioTrack = hmsLocalPeer.audioTrack
254
- var localAudioTrackData: WritableMap = Arguments.createMap()
255
- localAudioTrackData.putString("trackId", localAudioTrack?.trackId)
256
- localAudioTrackData.putString("source", localAudioTrack?.source)
257
- localAudioTrackData.putString("trackDescription", localAudioTrack?.description)
258
- localAudioTrackData.putMap("settings", getHmsAudioTrackSettings(localAudioTrack?.settings))
259
- if (localAudioTrack != null) {
260
- localAudioTrackData.putBoolean("isMute", localAudioTrack.isMute)
261
- }
262
- peer.putMap("localAudioTrackData", localAudioTrackData)
263
-
264
- val localVideoTrack = hmsLocalPeer.videoTrack
265
- var localVideoTrackData: WritableMap = Arguments.createMap()
266
- localVideoTrackData.putString("trackId", localVideoTrack?.trackId)
267
- localVideoTrackData.putString("source", localVideoTrack?.source)
268
- localVideoTrackData.putString("trackDescription", localVideoTrack?.description)
269
- localVideoTrackData.putMap("settings", getHmsVideoTrackSettings(localVideoTrack?.settings))
270
- if (localVideoTrack != null) {
271
- localVideoTrackData.putBoolean("isMute", localVideoTrack.isMute)
272
- }
273
- peer.putMap("localVideoTrackData", localVideoTrackData)
181
+ peer.putString("customerUserID", hmsLocalPeer.customerUserID)
182
+ peer.putString("metadata", hmsLocalPeer.metadata)
183
+ peer.putMap("audioTrack", this.getHmsAudioTrack(hmsLocalPeer.audioTrack))
184
+ peer.putMap("videoTrack", this.getHmsVideoTrack(hmsLocalPeer.videoTrack))
185
+ peer.putMap("role", this.getHmsRole(hmsLocalPeer.hmsRole))
186
+ peer.putArray("auxiliaryTracks", this.getAllTracks(hmsLocalPeer.auxiliaryTracks))
187
+ peer.putMap("localAudioTrackData", this.getHmsLocalAudioTrack(hmsLocalPeer.audioTrack))
188
+ peer.putMap("localVideoTrackData", this.getHmsLocalVideoTrack(hmsLocalPeer.videoTrack))
274
189
  }
275
190
  return peer
276
191
  }
277
192
 
278
- fun getHmsAudioTrackSettings(hmsAudioTrackSettings: HMSAudioTrackSettings?): WritableMap {
193
+ private fun getHmsLocalAudioTrack(track: HMSLocalAudioTrack?): WritableMap {
194
+ val hmsTrack: WritableMap = Arguments.createMap()
195
+ if (track != null) {
196
+ hmsTrack.putDouble("volume", track.volume)
197
+ hmsTrack.putMap("settings", this.getHmsAudioTrackSettings(track.settings))
198
+ hmsTrack.putString("trackId", track.trackId)
199
+ hmsTrack.putString("source", track.source)
200
+ hmsTrack.putString("trackDescription", track.description)
201
+ hmsTrack.putBoolean("isMute", track.isMute)
202
+ hmsTrack.putString("type", track.type.name)
203
+ }
204
+ return hmsTrack
205
+ }
206
+
207
+ private fun getHmsLocalVideoTrack(track: HMSLocalVideoTrack?): WritableMap {
208
+ val hmsTrack: WritableMap = Arguments.createMap()
209
+ if (track != null) {
210
+ hmsTrack.putBoolean("isDegraded", track.isDegraded)
211
+ hmsTrack.putMap("settings", this.getHmsVideoTrackSettings(track.settings))
212
+ hmsTrack.putString("trackId", track.trackId)
213
+ hmsTrack.putString("source", track.source)
214
+ hmsTrack.putString("trackDescription", track.description)
215
+ hmsTrack.putBoolean("isMute", track.isMute)
216
+ hmsTrack.putString("type", track.type.name)
217
+ }
218
+ return hmsTrack
219
+ }
220
+
221
+ private fun getHmsAudioTrackSettings(hmsAudioTrackSettings: HMSAudioTrackSettings?): WritableMap {
279
222
  val settings: WritableMap = Arguments.createMap()
280
223
  if (hmsAudioTrackSettings != null) {
281
224
  settings.putInt("maxBitrate", hmsAudioTrackSettings.maxBitrate)
282
- // settings.putString("trackDescription", hmsAudioTrackSettings.trackDescription);
225
+ settings.putDouble("volume", hmsAudioTrackSettings.volume)
226
+ settings.putBoolean(
227
+ "useHardwareAcousticEchoCanceler",
228
+ hmsAudioTrackSettings.useHardwareAcousticEchoCanceler
229
+ )
230
+ settings.putString("codec", hmsAudioTrackSettings.codec.name)
283
231
  settings.putString("trackDescription", "")
284
232
  }
285
233
  return settings
286
234
  }
287
235
 
288
- fun getHmsVideoTrackSettings(hmsVideoTrackSettings: HMSVideoTrackSettings?): WritableMap {
236
+ private fun getHmsVideoTrackSettings(hmsVideoTrackSettings: HMSVideoTrackSettings?): WritableMap {
289
237
  val settings: WritableMap = Arguments.createMap()
290
238
  if (hmsVideoTrackSettings != null) {
291
- settings.putInt("codec", hmsVideoTrackSettings.codec.ordinal)
292
-
293
- val resolution: WritableMap = Arguments.createMap()
294
- resolution.putInt("height", hmsVideoTrackSettings.resolution.height)
295
- resolution.putInt("width", hmsVideoTrackSettings.resolution.width)
296
- settings.putMap("resolution", resolution)
297
-
239
+ settings.putString("codec", hmsVideoTrackSettings.codec.name)
298
240
  settings.putInt("maxBitrate", hmsVideoTrackSettings.maxBitRate)
299
241
  settings.putInt("maxFrameRate", hmsVideoTrackSettings.maxFrameRate)
300
- settings.putInt("cameraFacing", hmsVideoTrackSettings.cameraFacing.ordinal)
301
- // settings.putString("trackDescription",
302
- // if(hmsVideoTrackSettings.trackDescription!==null)hmsVideoTrackSettings.trackDescription
303
- // else "");
304
- settings.putString("trackDescription", "")
242
+ settings.putString("cameraFacing", hmsVideoTrackSettings.cameraFacing.name)
243
+ settings.putString("trackDescription", hmsVideoTrackSettings.codec.name)
244
+ settings.putMap(
245
+ "resolution",
246
+ this.getHmsVideoTrackResolution(hmsVideoTrackSettings.resolution)
247
+ )
305
248
  }
306
249
  return settings
307
250
  }
308
251
 
252
+ private fun getHmsVideoTrackResolution(hmsResolution: HMSVideoResolution): WritableMap {
253
+ val resolution: WritableMap = Arguments.createMap()
254
+ resolution.putInt("height", hmsResolution.height)
255
+ resolution.putInt("width", hmsResolution.width)
256
+ return resolution
257
+ }
258
+
309
259
  fun getHmsRemotePeers(remotePeers: Array<HMSRemotePeer>?): WritableArray {
310
260
  val peers: WritableArray = Arguments.createArray()
311
261
  if (remotePeers != null) {
312
262
  for (peer in remotePeers) {
313
- peers.pushMap(getHmsRemotePeer(peer))
263
+ peers.pushMap(this.getHmsRemotePeer(peer))
314
264
  }
315
265
  }
316
266
  return peers
@@ -322,73 +272,54 @@ object HmsDecoder {
322
272
  peer.putString("peerID", hmsRemotePeer.peerID)
323
273
  peer.putString("name", hmsRemotePeer.name)
324
274
  peer.putBoolean("isLocal", hmsRemotePeer.isLocal)
325
- peer.putString(
326
- "customerUserID",
327
- if (hmsRemotePeer.customerUserID != null) hmsRemotePeer.customerUserID else ""
328
- )
329
- peer.putString(
330
- "customerDescription",
331
- if (hmsRemotePeer.customerDescription != null) hmsRemotePeer.customerDescription else ""
332
- )
333
- peer.putMap("audioTrack", getHmsAudioTrack(hmsRemotePeer.audioTrack))
334
- peer.putMap("videoTrack", getHmsVideoTrack(hmsRemotePeer.videoTrack))
335
- peer.putMap("role", getHmsRole(hmsRemotePeer.hmsRole))
336
-
337
- var auxiliaryTracks: WritableArray = Arguments.createArray()
338
- for (track in hmsRemotePeer.auxiliaryTracks) {
339
- auxiliaryTracks.pushMap(getHmsTrack(track))
340
- }
341
- peer.putArray("auxiliaryTracks", auxiliaryTracks)
342
-
343
- val remoteAudioTrack = hmsRemotePeer.audioTrack
344
- var remoteAudioTrackData: WritableMap = Arguments.createMap()
345
- remoteAudioTrackData.putString("trackId", remoteAudioTrack?.trackId)
346
- remoteAudioTrackData.putString("source", remoteAudioTrack?.source)
347
- remoteAudioTrackData.putString("trackDescription", remoteAudioTrack?.description)
348
- if (remoteAudioTrack != null) {
349
- remoteAudioTrackData.putBoolean("playbackAllowed", remoteAudioTrack.isPlaybackAllowed)
350
- remoteAudioTrackData.putBoolean("isMute", remoteAudioTrack.isMute)
351
- }
352
- // remoteAudioTrackData.putMap("settings",
353
- // getHmsAudioTrackSettings(remoteAudioTrack.settings));
354
- remoteAudioTrackData.putMap("settings", null)
355
- peer.putMap("remoteAudioTrackData", remoteAudioTrackData)
356
-
357
- val remoteVideoTrack = hmsRemotePeer.videoTrack
358
- var remoteVideoTrackData: WritableMap = Arguments.createMap()
359
- remoteVideoTrackData.putString("trackId", remoteVideoTrack?.trackId)
360
- remoteVideoTrackData.putString("source", remoteVideoTrack?.source)
361
- remoteVideoTrackData.putString("trackDescription", remoteVideoTrack?.description)
362
- if (remoteVideoTrack != null) {
363
- remoteVideoTrackData.putBoolean("playbackAllowed", remoteVideoTrack.isPlaybackAllowed)
364
- remoteVideoTrackData.putBoolean("isMute", remoteVideoTrack.isMute)
365
- }
366
- // remoteVideoTrackData.putMap("settings",
367
- // getHmsVideoTrackSettings(remoteVideoTrack.settings));
368
- remoteVideoTrackData.putMap("settings", null)
369
- peer.putMap("remoteVideoTrackData", remoteVideoTrackData)
275
+ peer.putString("customerUserID", hmsRemotePeer.customerUserID)
276
+ peer.putString("metadata", hmsRemotePeer.metadata)
277
+ peer.putMap("audioTrack", this.getHmsAudioTrack(hmsRemotePeer.audioTrack))
278
+ peer.putMap("videoTrack", this.getHmsVideoTrack(hmsRemotePeer.videoTrack))
279
+ peer.putMap("role", this.getHmsRole(hmsRemotePeer.hmsRole))
280
+ peer.putArray("auxiliaryTracks", this.getAllTracks(hmsRemotePeer.auxiliaryTracks))
281
+ peer.putMap("remoteAudioTrackData", this.getHmsRemoteAudioTrack(hmsRemotePeer.audioTrack))
282
+ peer.putMap("remoteVideoTrackData", this.getHmsRemoteVideoTrack(hmsRemotePeer.videoTrack))
370
283
  }
371
284
  return peer
372
285
  }
373
286
 
287
+ private fun getHmsRemoteAudioTrack(track: HMSRemoteAudioTrack?): WritableMap {
288
+ val hmsTrack: WritableMap = Arguments.createMap()
289
+ if (track != null) {
290
+ hmsTrack.putBoolean("isPlaybackAllowed", track.isPlaybackAllowed)
291
+ hmsTrack.putString("trackId", track.trackId)
292
+ hmsTrack.putString("source", track.source)
293
+ hmsTrack.putString("trackDescription", track.description)
294
+ hmsTrack.putBoolean("isMute", track.isMute)
295
+ hmsTrack.putString("type", track.type.name)
296
+ }
297
+ return hmsTrack
298
+ }
299
+
300
+ private fun getHmsRemoteVideoTrack(track: HMSRemoteVideoTrack?): WritableMap {
301
+ val hmsTrack: WritableMap = Arguments.createMap()
302
+ if (track != null) {
303
+ hmsTrack.putBoolean("isDegraded", track.isDegraded)
304
+ hmsTrack.putBoolean("isPlaybackAllowed", track.isPlaybackAllowed)
305
+ hmsTrack.putString("trackId", track.trackId)
306
+ hmsTrack.putString("source", track.source)
307
+ hmsTrack.putString("trackDescription", track.description)
308
+ hmsTrack.putBoolean("isMute", track.isMute)
309
+ hmsTrack.putString("type", track.type.name)
310
+ }
311
+ return hmsTrack
312
+ }
313
+
374
314
  fun getPreviewTracks(tracks: Array<HMSTrack>?): WritableMap {
375
315
  val hmsTracks: WritableMap = Arguments.createMap()
376
316
  if (tracks != null) {
377
317
  for (track: HMSTrack in tracks) {
378
318
  if (track is HMSLocalVideoTrack) {
379
- val localVideoTrackData: WritableMap = Arguments.createMap()
380
- localVideoTrackData.putString("trackId", track.trackId)
381
- localVideoTrackData.putString("source", track.source)
382
- localVideoTrackData.putString("trackDescription", track.description)
383
- localVideoTrackData.putMap("settings", getHmsVideoTrackSettings(track.settings))
384
- hmsTracks.putMap("videoTrack", localVideoTrackData)
319
+ hmsTracks.putMap("videoTrack", this.getHmsLocalVideoTrack(track))
385
320
  }
386
321
  if (track is HMSLocalAudioTrack) {
387
- val localAudioTrackData: WritableMap = Arguments.createMap()
388
- localAudioTrackData.putString("trackId", track.trackId)
389
- localAudioTrackData.putString("source", track.source)
390
- localAudioTrackData.putMap("settings", getHmsAudioTrackSettings(track.settings))
391
- hmsTracks.putMap("audioTrack", localAudioTrackData)
322
+ hmsTracks.putMap("audioTrack", this.getHmsLocalAudioTrack(track))
392
323
  }
393
324
  }
394
325
  }
@@ -398,19 +329,21 @@ object HmsDecoder {
398
329
  fun getHmsRoleChangeRequest(request: HMSRoleChangeRequest, id: String?): WritableMap {
399
330
  val roleChangeRequest: WritableMap = Arguments.createMap()
400
331
  if (id != null) {
401
- roleChangeRequest.putMap("requestedBy", getHmsPeer(request.requestedBy))
402
- roleChangeRequest.putMap("suggestedRole", getHmsRole(request.suggestedRole))
332
+ roleChangeRequest.putMap("requestedBy", this.getHmsPeer(request.requestedBy))
333
+ roleChangeRequest.putMap("suggestedRole", this.getHmsRole(request.suggestedRole))
403
334
  roleChangeRequest.putString("id", id)
404
335
  return roleChangeRequest
405
336
  }
406
337
  return roleChangeRequest
407
338
  }
408
339
 
409
- fun getHmsChangeTrackStateRequest(request: HMSChangeTrackStateRequest): WritableMap {
340
+ fun getHmsChangeTrackStateRequest(request: HMSChangeTrackStateRequest, id: String): WritableMap {
410
341
  val changeTrackStateRequest: WritableMap = Arguments.createMap()
411
342
 
412
- changeTrackStateRequest.putMap("requestedBy", getHmsPeer(request.requestedBy))
343
+ changeTrackStateRequest.putMap("requestedBy", this.getHmsPeer(request.requestedBy))
413
344
  changeTrackStateRequest.putString("trackType", request.track.type.name)
345
+ changeTrackStateRequest.putBoolean("mute", request.mute)
346
+ changeTrackStateRequest.putString("id", id)
414
347
 
415
348
  return changeTrackStateRequest
416
349
  }
@@ -427,4 +360,90 @@ object HmsDecoder {
427
360
 
428
361
  return decodedError
429
362
  }
363
+
364
+ private fun getHMSBrowserRecordingState(data: HMSBrowserRecordingState?): ReadableMap {
365
+ val input = Arguments.createMap()
366
+ if (data !== null) {
367
+ input.putBoolean("running", data.running)
368
+ input.putMap("error", data.error?.let { this.getError(it) })
369
+ }
370
+ return input
371
+ }
372
+
373
+ private fun getHMSRtmpStreamingState(data: HMSRtmpStreamingState?): ReadableMap {
374
+ val input = Arguments.createMap()
375
+ if (data !== null) {
376
+ input.putBoolean("running", data.running)
377
+ input.putMap("error", data.error?.let { this.getError(it) })
378
+ }
379
+ return input
380
+ }
381
+
382
+ private fun getHMSServerRecordingState(data: HMSServerRecordingState?): ReadableMap {
383
+ val input = Arguments.createMap()
384
+ if (data !== null) {
385
+ input.putBoolean("running", data.running)
386
+ input.putMap("error", data.error?.let { this.getError(it) })
387
+ }
388
+ return input
389
+ }
390
+
391
+ private fun getHmsSubscribeSettings(hmsSubscribeSettings: SubscribeParams?): WritableMap {
392
+ val subscribeSettings: WritableMap = Arguments.createMap()
393
+ if (hmsSubscribeSettings != null) {
394
+ subscribeSettings.putInt("maxSubsBitRate", hmsSubscribeSettings.maxSubsBitRate)
395
+ subscribeSettings.putMap(
396
+ "subscribeDegradationParam",
397
+ this.getHmsSubscribeDegradationSettings(hmsSubscribeSettings.subscribeDegradationParam)
398
+ )
399
+ subscribeSettings.putArray(
400
+ "subscribeTo",
401
+ this.getWriteableArray(hmsSubscribeSettings.subscribeTo)
402
+ )
403
+ }
404
+ return subscribeSettings
405
+ }
406
+
407
+ private fun getHmsSubscribeDegradationSettings(
408
+ hmsSubscribeDegradationParams: SubscribeDegradationParams?
409
+ ): WritableMap {
410
+ val subscribeDegradationParams: WritableMap = Arguments.createMap()
411
+ if (hmsSubscribeDegradationParams != null) {
412
+ subscribeDegradationParams.putString(
413
+ "degradeGracePeriodSeconds",
414
+ hmsSubscribeDegradationParams.degradeGracePeriodSeconds.toString()
415
+ )
416
+ subscribeDegradationParams.putString(
417
+ "packetLossThreshold",
418
+ hmsSubscribeDegradationParams.packetLossThreshold.toString()
419
+ )
420
+ subscribeDegradationParams.putString(
421
+ "recoverGracePeriodSeconds",
422
+ hmsSubscribeDegradationParams.recoverGracePeriodSeconds.toString()
423
+ )
424
+ }
425
+ return subscribeDegradationParams
426
+ }
427
+
428
+ private fun getAllPeers(peers: Array<HMSPeer>?): WritableArray {
429
+ val decodedPeers: WritableArray = Arguments.createArray()
430
+ if (peers != null) {
431
+ for (peer in peers) {
432
+ val decodedPeer = this.getHmsPeer(peer)
433
+ decodedPeers.pushMap(decodedPeer)
434
+ }
435
+ }
436
+ return decodedPeers
437
+ }
438
+
439
+ private fun getAllTracks(tracks: MutableList<HMSTrack>?): WritableArray {
440
+ val decodedTracks: WritableArray = Arguments.createArray()
441
+ if (tracks != null) {
442
+ for (track in tracks) {
443
+ val decodedTrack = this.getHmsTrack(track)
444
+ decodedTracks.pushMap(decodedTrack)
445
+ }
446
+ }
447
+ return decodedTracks
448
+ }
430
449
  }