@100mslive/react-native-hms 1.1.1 → 1.3.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 (312) hide show
  1. package/README.md +145 -340
  2. package/android/build.gradle +1 -1
  3. package/android/src/main/java/com/reactnativehmssdk/HMSDecoder.kt +292 -94
  4. package/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt +127 -127
  5. package/android/src/main/java/com/reactnativehmssdk/HMSManager.kt +167 -115
  6. package/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +283 -45
  7. package/android/src/main/java/com/reactnativehmssdk/HMSSDKViewManager.kt +7 -7
  8. package/ios/HMSDecoder.swift +276 -137
  9. package/ios/HMSHelper.swift +3 -3
  10. package/ios/HMSManager.m +7 -0
  11. package/ios/HMSManager.swift +37 -2
  12. package/ios/HMSRNSDK.swift +339 -97
  13. package/ios/HMSView.m +2 -0
  14. package/ios/HMSView.swift +35 -3
  15. package/ios/Hmssdk.xcodeproj/project.xcworkspace/xcuserdata/yogesh.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  16. package/lib/commonjs/classes/HMSAudioCodec.js +4 -4
  17. package/lib/commonjs/classes/HMSAudioCodec.js.map +1 -1
  18. package/lib/commonjs/classes/HMSAudioDevice.js +4 -4
  19. package/lib/commonjs/classes/HMSAudioDevice.js.map +1 -1
  20. package/lib/commonjs/classes/HMSAudioFilePlayerNode.js.map +1 -1
  21. package/lib/commonjs/classes/HMSAudioMixerSource.js.map +1 -1
  22. package/lib/commonjs/classes/HMSAudioMixingMode.js +4 -4
  23. package/lib/commonjs/classes/HMSAudioMixingMode.js.map +1 -1
  24. package/lib/commonjs/classes/HMSAudioMode.js +4 -4
  25. package/lib/commonjs/classes/HMSAudioMode.js.map +1 -1
  26. package/lib/commonjs/classes/HMSAudioNode.js +2 -1
  27. package/lib/commonjs/classes/HMSAudioNode.js.map +1 -1
  28. package/lib/commonjs/classes/HMSAudioSettings.js.map +1 -1
  29. package/lib/commonjs/classes/HMSAudioTrack.js.map +1 -1
  30. package/lib/commonjs/classes/HMSAudioTrackSettings.js.map +1 -1
  31. package/lib/commonjs/classes/HMSBrowserRecordingState.js.map +1 -1
  32. package/lib/commonjs/classes/HMSCameraFacing.js +4 -4
  33. package/lib/commonjs/classes/HMSCameraFacing.js.map +1 -1
  34. package/lib/commonjs/classes/HMSChangeTrackStateRequest.js.map +1 -1
  35. package/lib/commonjs/classes/HMSConfig.js.map +1 -1
  36. package/lib/commonjs/classes/HMSConstants.js +11 -0
  37. package/lib/commonjs/classes/HMSConstants.js.map +1 -0
  38. package/lib/commonjs/classes/HMSEncoder.js +129 -102
  39. package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
  40. package/lib/commonjs/classes/HMSException.js.map +1 -1
  41. package/lib/commonjs/classes/HMSHLSConfig.js.map +1 -1
  42. package/lib/commonjs/classes/HMSHLSMeetingURLVariant.js.map +1 -1
  43. package/lib/commonjs/classes/HMSHLSRecordingConfig.js.map +1 -1
  44. package/lib/commonjs/classes/HMSHLSRecordingState.js.map +1 -1
  45. package/lib/commonjs/classes/HMSHLSStreamingState.js.map +1 -1
  46. package/lib/commonjs/classes/HMSHLSVariant.js.map +1 -1
  47. package/lib/commonjs/classes/HMSHelper.js.map +1 -1
  48. package/lib/commonjs/classes/HMSLocalAudioStats.js.map +1 -1
  49. package/lib/commonjs/classes/HMSLocalAudioTrack.js.map +1 -1
  50. package/lib/commonjs/classes/HMSLocalPeer.js +0 -1
  51. package/lib/commonjs/classes/HMSLocalPeer.js.map +1 -1
  52. package/lib/commonjs/classes/HMSLocalVideoStats.js.map +1 -1
  53. package/lib/commonjs/classes/HMSLocalVideoTrack.js +0 -2
  54. package/lib/commonjs/classes/HMSLocalVideoTrack.js.map +1 -1
  55. package/lib/commonjs/classes/HMSLogAlarmManager.js +4 -4
  56. package/lib/commonjs/classes/HMSLogAlarmManager.js.map +1 -1
  57. package/lib/commonjs/classes/HMSLogLevel.js +4 -4
  58. package/lib/commonjs/classes/HMSLogLevel.js.map +1 -1
  59. package/lib/commonjs/classes/HMSLogSettings.js.map +1 -1
  60. package/lib/commonjs/classes/HMSLogger.js +17 -25
  61. package/lib/commonjs/classes/HMSLogger.js.map +1 -1
  62. package/lib/commonjs/classes/HMSMessage.js.map +1 -1
  63. package/lib/commonjs/classes/HMSMessageRecipient.js +1 -1
  64. package/lib/commonjs/classes/HMSMessageRecipient.js.map +1 -1
  65. package/lib/commonjs/classes/HMSMessageRecipientType.js +4 -4
  66. package/lib/commonjs/classes/HMSMessageRecipientType.js.map +1 -1
  67. package/lib/commonjs/classes/HMSMessageType.js +4 -4
  68. package/lib/commonjs/classes/HMSMessageType.js.map +1 -1
  69. package/lib/commonjs/classes/HMSMicNode.js.map +1 -1
  70. package/lib/commonjs/classes/HMSNativeEventEmitter.js +101 -0
  71. package/lib/commonjs/classes/HMSNativeEventEmitter.js.map +1 -0
  72. package/lib/commonjs/classes/HMSNetworkQuality.js.map +1 -1
  73. package/lib/commonjs/classes/HMSPIPListenerActions.js +4 -4
  74. package/lib/commonjs/classes/HMSPIPListenerActions.js.map +1 -1
  75. package/lib/commonjs/classes/HMSPeer.js +69 -18
  76. package/lib/commonjs/classes/HMSPeer.js.map +1 -1
  77. package/lib/commonjs/classes/HMSPeerUpdate.js +7 -5
  78. package/lib/commonjs/classes/HMSPeerUpdate.js.map +1 -1
  79. package/lib/commonjs/classes/HMSPeersCache.js +229 -0
  80. package/lib/commonjs/classes/HMSPeersCache.js.map +1 -0
  81. package/lib/commonjs/classes/HMSPermissions.js.map +1 -1
  82. package/lib/commonjs/classes/HMSPublishSettings.js +0 -6
  83. package/lib/commonjs/classes/HMSPublishSettings.js.map +1 -1
  84. package/lib/commonjs/classes/HMSRTCStats.js.map +1 -1
  85. package/lib/commonjs/classes/HMSRTCStatsReport.js.map +1 -1
  86. package/lib/commonjs/classes/HMSRTMPConfig.js.map +1 -1
  87. package/lib/commonjs/classes/HMSRemoteAudioStats.js.map +1 -1
  88. package/lib/commonjs/classes/HMSRemoteAudioTrack.js.map +1 -1
  89. package/lib/commonjs/classes/HMSRemotePeer.js +0 -1
  90. package/lib/commonjs/classes/HMSRemotePeer.js.map +1 -1
  91. package/lib/commonjs/classes/HMSRemoteVideoStats.js.map +1 -1
  92. package/lib/commonjs/classes/HMSRemoteVideoTrack.js.map +1 -1
  93. package/lib/commonjs/classes/HMSRole.js +0 -6
  94. package/lib/commonjs/classes/HMSRole.js.map +1 -1
  95. package/lib/commonjs/classes/HMSRoleChangeRequest.js +3 -1
  96. package/lib/commonjs/classes/HMSRoleChangeRequest.js.map +1 -1
  97. package/lib/commonjs/classes/HMSRoom.js +79 -22
  98. package/lib/commonjs/classes/HMSRoom.js.map +1 -1
  99. package/lib/commonjs/classes/HMSRoomCache.js +128 -0
  100. package/lib/commonjs/classes/HMSRoomCache.js.map +1 -0
  101. package/lib/commonjs/classes/HMSRoomUpdate.js +4 -4
  102. package/lib/commonjs/classes/HMSRoomUpdate.js.map +1 -1
  103. package/lib/commonjs/classes/HMSRtmpStreamingState.js.map +1 -1
  104. package/lib/commonjs/classes/HMSRtmpVideoResolution.js.map +1 -1
  105. package/lib/commonjs/classes/HMSSDK.js +933 -158
  106. package/lib/commonjs/classes/HMSSDK.js.map +1 -1
  107. package/lib/commonjs/classes/HMSScreenBroadcastAudioReceiverNode.js.map +1 -1
  108. package/lib/commonjs/classes/HMSServerRecordingState.js.map +1 -1
  109. package/lib/commonjs/classes/HMSSimulcastLayerSettings.js.map +1 -1
  110. package/lib/commonjs/classes/HMSSimulcastSettings.js.map +1 -1
  111. package/lib/commonjs/classes/HMSSpeaker.js.map +1 -1
  112. package/lib/commonjs/classes/HMSSubscribeSettings.js +0 -2
  113. package/lib/commonjs/classes/HMSSubscribeSettings.js.map +1 -1
  114. package/lib/commonjs/classes/HMSTrack.js.map +1 -1
  115. package/lib/commonjs/classes/HMSTrackSettings.js.map +1 -1
  116. package/lib/commonjs/classes/HMSTrackSettingsInitState.js +4 -4
  117. package/lib/commonjs/classes/HMSTrackSettingsInitState.js.map +1 -1
  118. package/lib/commonjs/classes/HMSTrackSource.js +4 -4
  119. package/lib/commonjs/classes/HMSTrackSource.js.map +1 -1
  120. package/lib/commonjs/classes/HMSTrackType.js +4 -4
  121. package/lib/commonjs/classes/HMSTrackType.js.map +1 -1
  122. package/lib/commonjs/classes/HMSTrackUpdate.js +4 -4
  123. package/lib/commonjs/classes/HMSTrackUpdate.js.map +1 -1
  124. package/lib/commonjs/classes/HMSUpdateListenerActions.js +5 -5
  125. package/lib/commonjs/classes/HMSUpdateListenerActions.js.map +1 -1
  126. package/lib/commonjs/classes/HMSVideoCodec.js +4 -4
  127. package/lib/commonjs/classes/HMSVideoCodec.js.map +1 -1
  128. package/lib/commonjs/classes/HMSVideoResolution.js.map +1 -1
  129. package/lib/commonjs/classes/HMSVideoSettings.js.map +1 -1
  130. package/lib/commonjs/classes/HMSVideoTrack.js.map +1 -1
  131. package/lib/commonjs/classes/HMSVideoTrackSettings.js.map +1 -1
  132. package/lib/commonjs/classes/HMSVideoViewMode.js +4 -4
  133. package/lib/commonjs/classes/HMSVideoViewMode.js.map +1 -1
  134. package/lib/commonjs/classes/HmsView.js +2 -1
  135. package/lib/commonjs/classes/HmsView.js.map +1 -1
  136. package/lib/commonjs/index.js.map +1 -1
  137. package/lib/module/classes/HMSAudioCodec.js +3 -3
  138. package/lib/module/classes/HMSAudioCodec.js.map +1 -1
  139. package/lib/module/classes/HMSAudioDevice.js +3 -3
  140. package/lib/module/classes/HMSAudioDevice.js.map +1 -1
  141. package/lib/module/classes/HMSAudioFilePlayerNode.js.map +1 -1
  142. package/lib/module/classes/HMSAudioMixerSource.js.map +1 -1
  143. package/lib/module/classes/HMSAudioMixingMode.js +3 -3
  144. package/lib/module/classes/HMSAudioMixingMode.js.map +1 -1
  145. package/lib/module/classes/HMSAudioMode.js +3 -3
  146. package/lib/module/classes/HMSAudioMode.js.map +1 -1
  147. package/lib/module/classes/HMSAudioNode.js +2 -1
  148. package/lib/module/classes/HMSAudioNode.js.map +1 -1
  149. package/lib/module/classes/HMSAudioSettings.js.map +1 -1
  150. package/lib/module/classes/HMSAudioTrack.js.map +1 -1
  151. package/lib/module/classes/HMSAudioTrackSettings.js.map +1 -1
  152. package/lib/module/classes/HMSBrowserRecordingState.js.map +1 -1
  153. package/lib/module/classes/HMSCameraFacing.js +3 -3
  154. package/lib/module/classes/HMSCameraFacing.js.map +1 -1
  155. package/lib/module/classes/HMSChangeTrackStateRequest.js.map +1 -1
  156. package/lib/module/classes/HMSConfig.js.map +1 -1
  157. package/lib/module/classes/HMSConstants.js +4 -0
  158. package/lib/module/classes/HMSConstants.js.map +1 -0
  159. package/lib/module/classes/HMSEncoder.js +129 -102
  160. package/lib/module/classes/HMSEncoder.js.map +1 -1
  161. package/lib/module/classes/HMSException.js.map +1 -1
  162. package/lib/module/classes/HMSHLSConfig.js.map +1 -1
  163. package/lib/module/classes/HMSHLSMeetingURLVariant.js.map +1 -1
  164. package/lib/module/classes/HMSHLSRecordingConfig.js.map +1 -1
  165. package/lib/module/classes/HMSHLSRecordingState.js.map +1 -1
  166. package/lib/module/classes/HMSHLSStreamingState.js.map +1 -1
  167. package/lib/module/classes/HMSHLSVariant.js.map +1 -1
  168. package/lib/module/classes/HMSHelper.js.map +1 -1
  169. package/lib/module/classes/HMSLocalAudioStats.js.map +1 -1
  170. package/lib/module/classes/HMSLocalAudioTrack.js.map +1 -1
  171. package/lib/module/classes/HMSLocalPeer.js +0 -1
  172. package/lib/module/classes/HMSLocalPeer.js.map +1 -1
  173. package/lib/module/classes/HMSLocalVideoStats.js.map +1 -1
  174. package/lib/module/classes/HMSLocalVideoTrack.js +0 -2
  175. package/lib/module/classes/HMSLocalVideoTrack.js.map +1 -1
  176. package/lib/module/classes/HMSLogAlarmManager.js +3 -3
  177. package/lib/module/classes/HMSLogAlarmManager.js.map +1 -1
  178. package/lib/module/classes/HMSLogLevel.js +3 -3
  179. package/lib/module/classes/HMSLogLevel.js.map +1 -1
  180. package/lib/module/classes/HMSLogSettings.js.map +1 -1
  181. package/lib/module/classes/HMSLogger.js +17 -25
  182. package/lib/module/classes/HMSLogger.js.map +1 -1
  183. package/lib/module/classes/HMSMessage.js.map +1 -1
  184. package/lib/module/classes/HMSMessageRecipient.js +1 -1
  185. package/lib/module/classes/HMSMessageRecipient.js.map +1 -1
  186. package/lib/module/classes/HMSMessageRecipientType.js +3 -3
  187. package/lib/module/classes/HMSMessageRecipientType.js.map +1 -1
  188. package/lib/module/classes/HMSMessageType.js +3 -3
  189. package/lib/module/classes/HMSMessageType.js.map +1 -1
  190. package/lib/module/classes/HMSMicNode.js.map +1 -1
  191. package/lib/module/classes/HMSNativeEventEmitter.js +94 -0
  192. package/lib/module/classes/HMSNativeEventEmitter.js.map +1 -0
  193. package/lib/module/classes/HMSNetworkQuality.js.map +1 -1
  194. package/lib/module/classes/HMSPIPListenerActions.js +3 -3
  195. package/lib/module/classes/HMSPIPListenerActions.js.map +1 -1
  196. package/lib/module/classes/HMSPeer.js +69 -18
  197. package/lib/module/classes/HMSPeer.js.map +1 -1
  198. package/lib/module/classes/HMSPeerUpdate.js +4 -3
  199. package/lib/module/classes/HMSPeerUpdate.js.map +1 -1
  200. package/lib/module/classes/HMSPeersCache.js +216 -0
  201. package/lib/module/classes/HMSPeersCache.js.map +1 -0
  202. package/lib/module/classes/HMSPermissions.js.map +1 -1
  203. package/lib/module/classes/HMSPublishSettings.js +0 -6
  204. package/lib/module/classes/HMSPublishSettings.js.map +1 -1
  205. package/lib/module/classes/HMSRTCStats.js.map +1 -1
  206. package/lib/module/classes/HMSRTCStatsReport.js.map +1 -1
  207. package/lib/module/classes/HMSRTMPConfig.js.map +1 -1
  208. package/lib/module/classes/HMSRemoteAudioStats.js.map +1 -1
  209. package/lib/module/classes/HMSRemoteAudioTrack.js.map +1 -1
  210. package/lib/module/classes/HMSRemotePeer.js +0 -1
  211. package/lib/module/classes/HMSRemotePeer.js.map +1 -1
  212. package/lib/module/classes/HMSRemoteVideoStats.js.map +1 -1
  213. package/lib/module/classes/HMSRemoteVideoTrack.js.map +1 -1
  214. package/lib/module/classes/HMSRole.js +0 -6
  215. package/lib/module/classes/HMSRole.js.map +1 -1
  216. package/lib/module/classes/HMSRoleChangeRequest.js +3 -1
  217. package/lib/module/classes/HMSRoleChangeRequest.js.map +1 -1
  218. package/lib/module/classes/HMSRoom.js +79 -22
  219. package/lib/module/classes/HMSRoom.js.map +1 -1
  220. package/lib/module/classes/HMSRoomCache.js +115 -0
  221. package/lib/module/classes/HMSRoomCache.js.map +1 -0
  222. package/lib/module/classes/HMSRoomUpdate.js +3 -3
  223. package/lib/module/classes/HMSRoomUpdate.js.map +1 -1
  224. package/lib/module/classes/HMSRtmpStreamingState.js.map +1 -1
  225. package/lib/module/classes/HMSRtmpVideoResolution.js.map +1 -1
  226. package/lib/module/classes/HMSSDK.js +934 -159
  227. package/lib/module/classes/HMSSDK.js.map +1 -1
  228. package/lib/module/classes/HMSScreenBroadcastAudioReceiverNode.js.map +1 -1
  229. package/lib/module/classes/HMSServerRecordingState.js.map +1 -1
  230. package/lib/module/classes/HMSSimulcastLayerSettings.js.map +1 -1
  231. package/lib/module/classes/HMSSimulcastSettings.js.map +1 -1
  232. package/lib/module/classes/HMSSpeaker.js.map +1 -1
  233. package/lib/module/classes/HMSSubscribeSettings.js +0 -2
  234. package/lib/module/classes/HMSSubscribeSettings.js.map +1 -1
  235. package/lib/module/classes/HMSTrack.js.map +1 -1
  236. package/lib/module/classes/HMSTrackSettings.js.map +1 -1
  237. package/lib/module/classes/HMSTrackSettingsInitState.js +3 -3
  238. package/lib/module/classes/HMSTrackSettingsInitState.js.map +1 -1
  239. package/lib/module/classes/HMSTrackSource.js +3 -3
  240. package/lib/module/classes/HMSTrackSource.js.map +1 -1
  241. package/lib/module/classes/HMSTrackType.js +3 -3
  242. package/lib/module/classes/HMSTrackType.js.map +1 -1
  243. package/lib/module/classes/HMSTrackUpdate.js +3 -3
  244. package/lib/module/classes/HMSTrackUpdate.js.map +1 -1
  245. package/lib/module/classes/HMSUpdateListenerActions.js +4 -4
  246. package/lib/module/classes/HMSUpdateListenerActions.js.map +1 -1
  247. package/lib/module/classes/HMSVideoCodec.js +3 -3
  248. package/lib/module/classes/HMSVideoCodec.js.map +1 -1
  249. package/lib/module/classes/HMSVideoResolution.js.map +1 -1
  250. package/lib/module/classes/HMSVideoSettings.js.map +1 -1
  251. package/lib/module/classes/HMSVideoTrack.js.map +1 -1
  252. package/lib/module/classes/HMSVideoTrackSettings.js.map +1 -1
  253. package/lib/module/classes/HMSVideoViewMode.js +3 -3
  254. package/lib/module/classes/HMSVideoViewMode.js.map +1 -1
  255. package/lib/module/classes/HmsView.js +2 -1
  256. package/lib/module/classes/HmsView.js.map +1 -1
  257. package/lib/module/index.js.map +1 -1
  258. package/lib/typescript/classes/HMSBrowserRecordingState.d.ts +4 -4
  259. package/lib/typescript/classes/HMSChangeTrackStateRequest.d.ts +2 -2
  260. package/lib/typescript/classes/HMSConstants.d.ts +3 -0
  261. package/lib/typescript/classes/HMSEncoder.d.ts +10 -6
  262. package/lib/typescript/classes/HMSHLSStreamingState.d.ts +2 -2
  263. package/lib/typescript/classes/HMSLocalPeer.d.ts +0 -14
  264. package/lib/typescript/classes/HMSLocalVideoTrack.d.ts +0 -2
  265. package/lib/typescript/classes/HMSLogger.d.ts +1 -7
  266. package/lib/typescript/classes/HMSMessageRecipient.d.ts +2 -2
  267. package/lib/typescript/classes/HMSNativeEventEmitter.d.ts +13 -0
  268. package/lib/typescript/classes/HMSPeer.d.ts +12 -18
  269. package/lib/typescript/classes/HMSPeerUpdate.d.ts +1 -0
  270. package/lib/typescript/classes/HMSPeersCache.d.ts +17 -0
  271. package/lib/typescript/classes/HMSPublishSettings.d.ts +8 -15
  272. package/lib/typescript/classes/HMSRemotePeer.d.ts +0 -14
  273. package/lib/typescript/classes/HMSRole.d.ts +0 -6
  274. package/lib/typescript/classes/HMSRoleChangeRequest.d.ts +2 -2
  275. package/lib/typescript/classes/HMSRoom.d.ts +11 -22
  276. package/lib/typescript/classes/HMSRoomCache.d.ts +16 -0
  277. package/lib/typescript/classes/HMSRtmpStreamingState.d.ts +4 -4
  278. package/lib/typescript/classes/HMSSDK.d.ts +3 -13
  279. package/lib/typescript/classes/HMSServerRecordingState.d.ts +2 -2
  280. package/lib/typescript/classes/HMSSubscribeSettings.d.ts +0 -2
  281. package/lib/typescript/classes/HMSUpdateListenerActions.d.ts +1 -1
  282. package/lib/typescript/index.d.ts +1 -0
  283. package/package.json +5 -4
  284. package/react-native-hms.podspec +1 -1
  285. package/sdk-versions.json +3 -2
  286. package/src/classes/HMSAudioNode.ts +3 -1
  287. package/src/classes/HMSBrowserRecordingState.ts +4 -4
  288. package/src/classes/HMSChangeTrackStateRequest.ts +2 -2
  289. package/src/classes/HMSConstants.ts +3 -0
  290. package/src/classes/HMSEncoder.ts +162 -120
  291. package/src/classes/HMSHLSStreamingState.ts +2 -2
  292. package/src/classes/HMSLocalPeer.ts +0 -15
  293. package/src/classes/HMSLocalVideoTrack.ts +0 -2
  294. package/src/classes/HMSLogger.ts +20 -19
  295. package/src/classes/HMSMessageRecipient.ts +3 -3
  296. package/src/classes/HMSNativeEventEmitter.ts +109 -0
  297. package/src/classes/HMSPeer.ts +135 -32
  298. package/src/classes/HMSPeerUpdate.ts +9 -0
  299. package/src/classes/HMSPeersCache.ts +252 -0
  300. package/src/classes/HMSPublishSettings.ts +8 -18
  301. package/src/classes/HMSRemotePeer.ts +0 -16
  302. package/src/classes/HMSRole.ts +0 -9
  303. package/src/classes/HMSRoleChangeRequest.ts +5 -3
  304. package/src/classes/HMSRoom.ts +141 -37
  305. package/src/classes/HMSRoomCache.ts +157 -0
  306. package/src/classes/HMSRtmpStreamingState.ts +4 -4
  307. package/src/classes/HMSSDK.tsx +685 -292
  308. package/src/classes/HMSServerRecordingState.ts +2 -2
  309. package/src/classes/HMSSubscribeSettings.ts +1 -7
  310. package/src/classes/HMSUpdateListenerActions.ts +1 -1
  311. package/src/classes/HmsView.tsx +2 -1
  312. package/src/index.ts +1 -0
@@ -9,10 +9,69 @@ import live.hms.video.media.settings.HMSVideoResolution
9
9
  import live.hms.video.media.settings.HMSVideoTrackSettings
10
10
  import live.hms.video.media.tracks.*
11
11
  import live.hms.video.sdk.models.*
12
+ import live.hms.video.sdk.models.enums.HMSPeerUpdate
13
+ import live.hms.video.sdk.models.enums.HMSRoomUpdate
12
14
  import live.hms.video.sdk.models.role.*
13
15
  import live.hms.video.sdk.models.trackchangerequest.HMSChangeTrackStateRequest
14
16
 
15
17
  object HMSDecoder {
18
+ private var restrictRoleData = mutableMapOf<String, Boolean>()
19
+
20
+ fun setRestrictRoleData(roleName: String, value: Boolean) {
21
+ this.restrictRoleData[roleName] = value
22
+ }
23
+
24
+ fun clearRestrictDataStates() {
25
+ this.restrictRoleData.clear()
26
+ }
27
+
28
+ fun getHmsRoomSubset(hmsRoom: HMSRoom?, hmsRoomUpdateType: HMSRoomUpdate? = null): WritableMap {
29
+ val room: WritableMap = Arguments.createMap()
30
+ if (hmsRoom != null) {
31
+ room.putString("id", hmsRoom.roomId)
32
+
33
+ when (hmsRoomUpdateType) {
34
+ HMSRoomUpdate.ROOM_PEER_COUNT_UPDATED -> {
35
+ room.putInt("peerCount", hmsRoom.peerCount)
36
+ }
37
+ HMSRoomUpdate.HLS_RECORDING_STATE_UPDATED -> {
38
+ hmsRoom.hlsRecordingState?.let {
39
+ room.putMap("hlsRecordingState", this.getHMSHlsRecordingState(it))
40
+ }
41
+ }
42
+ HMSRoomUpdate.BROWSER_RECORDING_STATE_UPDATED -> {
43
+ hmsRoom.browserRecordingState?.let {
44
+ room.putMap(
45
+ "browserRecordingState",
46
+ this.getHMSBrowserRecordingState(it)
47
+ )
48
+ }
49
+ }
50
+ HMSRoomUpdate.HLS_STREAMING_STATE_UPDATED -> {
51
+ hmsRoom.hlsStreamingState?.let {
52
+ room.putMap("hlsStreamingState", this.getHMSHlsStreamingState(it))
53
+ }
54
+ }
55
+ HMSRoomUpdate.RTMP_STREAMING_STATE_UPDATED -> {
56
+ hmsRoom.rtmpHMSRtmpStreamingState?.let {
57
+ room.putMap(
58
+ "rtmpHMSRtmpStreamingState",
59
+ this.getHMSRtmpStreamingState(it)
60
+ )
61
+ }
62
+ }
63
+ HMSRoomUpdate.SERVER_RECORDING_STATE_UPDATED -> {
64
+ hmsRoom.serverRecordingState?.let {
65
+ room.putMap(
66
+ "serverRecordingState",
67
+ this.getHMSServerRecordingState(it)
68
+ )
69
+ }
70
+ }
71
+ }
72
+ }
73
+ return room
74
+ }
16
75
 
17
76
  fun getHmsRoom(hmsRoom: HMSRoom?): WritableMap {
18
77
  val room: WritableMap = Arguments.createMap()
@@ -21,46 +80,139 @@ object HMSDecoder {
21
80
  room.putString("sessionId", hmsRoom.sessionId)
22
81
  room.putString("name", hmsRoom.name)
23
82
  room.putString("metaData", null)
24
- room.putString("startedAt", hmsRoom.startedAt.toString())
25
- room.putMap(
26
- "browserRecordingState",
27
- this.getHMSBrowserRecordingState(hmsRoom.browserRecordingState)
28
- )
29
- room.putMap(
30
- "rtmpHMSRtmpStreamingState",
31
- this.getHMSRtmpStreamingState(hmsRoom.rtmpHMSRtmpStreamingState)
32
- )
33
- room.putMap(
34
- "serverRecordingState",
35
- this.getHMSServerRecordingState(hmsRoom.serverRecordingState)
36
- )
37
- room.putMap("hlsStreamingState", this.getHMSHlsStreamingState(hmsRoom.hlsStreamingState))
38
- room.putMap("hlsRecordingState", this.getHMSHlsRecordingState(hmsRoom.hlsRecordingState))
83
+ hmsRoom.startedAt?.let {
84
+ room.putString("startedAt", it.toString())
85
+ }
86
+
87
+ hmsRoom.browserRecordingState?.let {
88
+ room.putMap(
89
+ "browserRecordingState",
90
+ this.getHMSBrowserRecordingState(it)
91
+ )
92
+ }
93
+
94
+ hmsRoom.rtmpHMSRtmpStreamingState?.let {
95
+ room.putMap(
96
+ "rtmpHMSRtmpStreamingState",
97
+ this.getHMSRtmpStreamingState(it)
98
+ )
99
+ }
100
+
101
+ hmsRoom.serverRecordingState?.let {
102
+ room.putMap(
103
+ "serverRecordingState",
104
+ this.getHMSServerRecordingState(it)
105
+ )
106
+ }
107
+
108
+ hmsRoom.hlsStreamingState?.let {
109
+ room.putMap("hlsStreamingState", this.getHMSHlsStreamingState(hmsRoom.hlsStreamingState))
110
+ }
111
+
112
+ hmsRoom.hlsRecordingState?.let {
113
+ room.putMap("hlsRecordingState", this.getHMSHlsRecordingState(hmsRoom.hlsRecordingState))
114
+ }
115
+
39
116
  room.putMap("localPeer", this.getHmsLocalPeer(hmsRoom.localPeer))
117
+
40
118
  room.putArray("peers", this.getAllPeers(hmsRoom.peerList))
119
+
41
120
  room.putInt("peerCount", hmsRoom.peerCount)
42
121
  }
43
122
  return room
44
123
  }
45
124
 
125
+ fun getHmsPeerSubsetForPeerUpdateEvent(hmsPeer: HMSPeer?, peerUpdateType: HMSPeerUpdate): WritableMap {
126
+ val peer: WritableMap = Arguments.createMap()
127
+ if (hmsPeer != null) {
128
+ peer.putString(peerUpdateType.ordinal.toString(), hmsPeer.peerID)
129
+
130
+ if (peerUpdateType !== null) {
131
+ when (peerUpdateType) {
132
+ HMSPeerUpdate.NAME_CHANGED -> {
133
+ peer.putString("name", hmsPeer.name)
134
+ }
135
+ HMSPeerUpdate.METADATA_CHANGED -> {
136
+ peer.putString("metadata", hmsPeer.metadata)
137
+ }
138
+ HMSPeerUpdate.ROLE_CHANGED -> {
139
+ peer.putMap("role", this.getHmsRole(hmsPeer.hmsRole))
140
+ }
141
+ HMSPeerUpdate.NETWORK_QUALITY_UPDATED -> {
142
+ hmsPeer.networkQuality?.let {
143
+ peer.putMap("networkQuality", this.getHmsNetworkQuality(it))
144
+ }
145
+ }
146
+ }
147
+ }
148
+ }
149
+ return peer
150
+ }
151
+
152
+ fun getHmsPeerSubset(hmsPeer: HMSPeer?, peerUpdateType: HMSPeerUpdate? = null): WritableMap {
153
+ val peer: WritableMap = Arguments.createMap()
154
+ if (hmsPeer != null) {
155
+ peer.putString("peerID", hmsPeer.peerID)
156
+
157
+ if (peerUpdateType !== null) {
158
+ when (peerUpdateType) {
159
+ HMSPeerUpdate.NAME_CHANGED -> {
160
+ peer.putString("name", hmsPeer.name)
161
+ }
162
+ HMSPeerUpdate.METADATA_CHANGED -> {
163
+ peer.putString("metadata", hmsPeer.metadata)
164
+ }
165
+ HMSPeerUpdate.ROLE_CHANGED -> {
166
+ peer.putMap("role", this.getHmsRole(hmsPeer.hmsRole))
167
+ }
168
+ HMSPeerUpdate.NETWORK_QUALITY_UPDATED -> {
169
+ hmsPeer.networkQuality?.let {
170
+ peer.putMap("networkQuality", this.getHmsNetworkQuality(it))
171
+ }
172
+ }
173
+ }
174
+ }
175
+ }
176
+ return peer
177
+ }
178
+
46
179
  fun getHmsPeer(hmsPeer: HMSPeer?): WritableMap {
47
180
  val peer: WritableMap = Arguments.createMap()
48
181
  if (hmsPeer != null) {
49
182
  peer.putString("peerID", hmsPeer.peerID)
50
183
  peer.putString("name", hmsPeer.name)
51
184
  peer.putBoolean("isLocal", hmsPeer.isLocal)
52
- peer.putString("customerUserID", hmsPeer.customerUserID)
185
+
186
+ hmsPeer.customerUserID?.let {
187
+ peer.putString("customerUserID", it)
188
+ }
189
+
190
+ peer.putString("joinedAt", hmsPeer.joinedAt.toString())
191
+
53
192
  peer.putString("metadata", hmsPeer.metadata)
54
- peer.putMap("networkQuality", this.getHmsNetworkQuality(hmsPeer.networkQuality))
55
- peer.putMap("audioTrack", this.getHmsAudioTrack(hmsPeer.audioTrack))
56
- peer.putMap("videoTrack", this.getHmsVideoTrack(hmsPeer.videoTrack))
193
+
57
194
  peer.putMap("role", this.getHmsRole(hmsPeer.hmsRole))
58
- peer.putArray("auxiliaryTracks", this.getAllTracks(hmsPeer.auxiliaryTracks))
195
+
196
+ hmsPeer.networkQuality?.let {
197
+ peer.putMap("networkQuality", this.getHmsNetworkQuality(it))
198
+ }
199
+
200
+ hmsPeer.audioTrack?.let {
201
+ peer.putMap("audioTrack", this.getHmsAudioTrack(it))
202
+ }
203
+
204
+ hmsPeer.videoTrack?.let {
205
+ peer.putMap("videoTrack", this.getHmsVideoTrack(it))
206
+ }
207
+
208
+ hmsPeer.auxiliaryTracks.let {
209
+ peer.putArray("auxiliaryTracks", this.getAllTracks(it))
210
+ }
59
211
  }
60
212
  return peer
61
213
  }
62
214
 
63
- private fun getHmsAudioTrack(hmsAudioTrack: HMSAudioTrack?): WritableMap {
215
+ fun getHmsAudioTrack(hmsAudioTrack: HMSAudioTrack?): WritableMap {
64
216
  val hmsTrack: WritableMap = Arguments.createMap()
65
217
  if (hmsAudioTrack != null) {
66
218
  hmsTrack.putString("type", hmsAudioTrack.type.name)
@@ -72,7 +224,7 @@ object HMSDecoder {
72
224
  return hmsTrack
73
225
  }
74
226
 
75
- private fun getHmsVideoTrack(hmsVideoTrack: HMSVideoTrack?): WritableMap {
227
+ fun getHmsVideoTrack(hmsVideoTrack: HMSVideoTrack?): WritableMap {
76
228
  val hmsTrack: WritableMap = Arguments.createMap()
77
229
  if (hmsVideoTrack != null) {
78
230
  hmsTrack.putString("type", hmsVideoTrack.type.name)
@@ -108,14 +260,21 @@ object HMSDecoder {
108
260
  return decodedRoles
109
261
  }
110
262
 
111
- private fun getHmsRole(hmsRole: HMSRole?): WritableMap {
263
+ fun getHmsRole(hmsRole: HMSRole?): WritableMap {
112
264
  val role: WritableMap = Arguments.createMap()
113
265
  if (hmsRole != null) {
114
266
  role.putString("name", hmsRole.name)
115
- role.putMap("permissions", this.getHmsPermissions(hmsRole.permission))
116
- role.putMap("publishSettings", this.getHmsPublishSettings(hmsRole.publishParams))
117
- role.putMap("subscribeSettings", this.getHmsSubscribeSettings(hmsRole.subscribeParams))
118
- role.putInt("priority", hmsRole.priority)
267
+ if (this.restrictRoleData[hmsRole.name] != true) {
268
+ role.putMap("permissions", this.getHmsPermissions(hmsRole.permission))
269
+ hmsRole.publishParams?.let {
270
+ role.putMap("publishSettings", this.getHmsPublishSettings(it))
271
+ }
272
+ hmsRole.subscribeParams?.let {
273
+ role.putMap("subscribeSettings", this.getHmsSubscribeSettings(it))
274
+ }
275
+
276
+ role.putInt("priority", hmsRole.priority)
277
+ }
119
278
  }
120
279
  return role
121
280
  }
@@ -138,11 +297,18 @@ object HMSDecoder {
138
297
  private fun getHmsPublishSettings(hmsPublishSettings: PublishParams?): WritableMap {
139
298
  val publishSettings: WritableMap = Arguments.createMap()
140
299
  if (hmsPublishSettings != null) {
141
- publishSettings.putMap("audio", this.getHmsAudioSettings(hmsPublishSettings.audio))
142
- publishSettings.putMap("video", this.getHmsVideoSettings(hmsPublishSettings.video))
143
- publishSettings.putMap("screen", this.getHmsVideoSettings(hmsPublishSettings.screen))
144
- publishSettings.putMap("videoSimulcastLayers", null)
145
- publishSettings.putMap("screenSimulcastLayers", null)
300
+ hmsPublishSettings.audio?.let {
301
+ publishSettings.putMap("audio", this.getHmsAudioSettings(it))
302
+ }
303
+
304
+ hmsPublishSettings.video?.let {
305
+ publishSettings.putMap("video", this.getHmsVideoSettings(it))
306
+ }
307
+
308
+ hmsPublishSettings.screen?.let {
309
+ publishSettings.putMap("screen", this.getHmsVideoSettings(it))
310
+ }
311
+
146
312
  publishSettings.putArray("allowed", this.getWriteableArray(hmsPublishSettings.allowed))
147
313
  }
148
314
  return publishSettings
@@ -160,7 +326,7 @@ object HMSDecoder {
160
326
 
161
327
  private fun getHmsAudioSettings(hmsAudioSettings: AudioParams?): WritableMap {
162
328
  val audioSettings: WritableMap = Arguments.createMap()
163
- if (hmsAudioSettings != null && hmsAudioSettings.codec != null) {
329
+ if (hmsAudioSettings != null) {
164
330
  audioSettings.putInt("bitRate", hmsAudioSettings.bitRate)
165
331
  audioSettings.putString("codec", hmsAudioSettings.codec.name)
166
332
  }
@@ -169,7 +335,7 @@ object HMSDecoder {
169
335
 
170
336
  private fun getHmsVideoSettings(hmsVideoSettings: VideoParams?): WritableMap {
171
337
  val videoSettings: WritableMap = Arguments.createMap()
172
- if (hmsVideoSettings != null && hmsVideoSettings.codec != null) {
338
+ if (hmsVideoSettings != null) {
173
339
  videoSettings.putInt("bitRate", hmsVideoSettings.bitRate)
174
340
  videoSettings.putInt("frameRate", hmsVideoSettings.frameRate)
175
341
  videoSettings.putInt("width", hmsVideoSettings.width)
@@ -183,17 +349,14 @@ object HMSDecoder {
183
349
  val peer: WritableMap = Arguments.createMap()
184
350
  if (hmsLocalPeer != null) {
185
351
  peer.putString("peerID", hmsLocalPeer.peerID)
186
- peer.putString("name", hmsLocalPeer.name)
187
- peer.putBoolean("isLocal", hmsLocalPeer.isLocal)
188
- peer.putString("customerUserID", hmsLocalPeer.customerUserID)
189
- peer.putString("metadata", hmsLocalPeer.metadata)
190
- peer.putMap("networkQuality", this.getHmsNetworkQuality(hmsLocalPeer.networkQuality))
191
- peer.putMap("audioTrack", this.getHmsAudioTrack(hmsLocalPeer.audioTrack))
192
- peer.putMap("videoTrack", this.getHmsVideoTrack(hmsLocalPeer.videoTrack))
193
- peer.putMap("role", this.getHmsRole(hmsLocalPeer.hmsRole))
194
- peer.putArray("auxiliaryTracks", this.getAllTracks(hmsLocalPeer.auxiliaryTracks))
195
- peer.putMap("localAudioTrackData", this.getHmsLocalAudioTrack(hmsLocalPeer.audioTrack))
196
- peer.putMap("localVideoTrackData", this.getHmsLocalVideoTrack(hmsLocalPeer.videoTrack))
352
+
353
+ hmsLocalPeer.audioTrack?.let {
354
+ peer.putMap("localAudioTrackData", this.getHmsLocalAudioTrack(it))
355
+ }
356
+
357
+ hmsLocalPeer.videoTrack?.let {
358
+ peer.putMap("localVideoTrackData", this.getHmsLocalVideoTrack(it))
359
+ }
197
360
  }
198
361
  return peer
199
362
  }
@@ -270,17 +433,14 @@ object HMSDecoder {
270
433
  val peer: WritableMap = Arguments.createMap()
271
434
  if (hmsRemotePeer != null) {
272
435
  peer.putString("peerID", hmsRemotePeer.peerID)
273
- peer.putString("name", hmsRemotePeer.name)
274
- peer.putBoolean("isLocal", hmsRemotePeer.isLocal)
275
- peer.putString("customerUserID", hmsRemotePeer.customerUserID)
276
- peer.putString("metadata", hmsRemotePeer.metadata)
277
- peer.putMap("networkQuality", this.getHmsNetworkQuality(hmsRemotePeer.networkQuality))
278
- peer.putMap("audioTrack", this.getHmsAudioTrack(hmsRemotePeer.audioTrack))
279
- peer.putMap("videoTrack", this.getHmsVideoTrack(hmsRemotePeer.videoTrack))
280
- peer.putMap("role", this.getHmsRole(hmsRemotePeer.hmsRole))
281
- peer.putArray("auxiliaryTracks", this.getAllTracks(hmsRemotePeer.auxiliaryTracks))
282
- peer.putMap("remoteAudioTrackData", this.getHmsRemoteAudioTrack(hmsRemotePeer.audioTrack))
283
- peer.putMap("remoteVideoTrackData", this.getHmsRemoteVideoTrack(hmsRemotePeer.videoTrack))
436
+
437
+ hmsRemotePeer.audioTrack?.let {
438
+ peer.putMap("remoteAudioTrackData", this.getHmsRemoteAudioTrack(it))
439
+ }
440
+
441
+ hmsRemotePeer.videoTrack?.let {
442
+ peer.putMap("remoteVideoTrackData", this.getHmsRemoteVideoTrack(hmsRemotePeer.videoTrack))
443
+ }
284
444
  }
285
445
  return peer
286
446
  }
@@ -330,7 +490,9 @@ object HMSDecoder {
330
490
  fun getHmsRoleChangeRequest(request: HMSRoleChangeRequest, id: String?): WritableMap {
331
491
  val roleChangeRequest: WritableMap = Arguments.createMap()
332
492
  if (id != null) {
333
- roleChangeRequest.putMap("requestedBy", this.getHmsPeer(request.requestedBy))
493
+ request.requestedBy?.let {
494
+ roleChangeRequest.putMap("requestedBy", this.getHmsPeerSubset(it))
495
+ }
334
496
  roleChangeRequest.putMap("suggestedRole", this.getHmsRole(request.suggestedRole))
335
497
  roleChangeRequest.putString("id", id)
336
498
  return roleChangeRequest
@@ -341,7 +503,9 @@ object HMSDecoder {
341
503
  fun getHmsChangeTrackStateRequest(request: HMSChangeTrackStateRequest, id: String): WritableMap {
342
504
  val changeTrackStateRequest: WritableMap = Arguments.createMap()
343
505
 
344
- changeTrackStateRequest.putMap("requestedBy", this.getHmsPeer(request.requestedBy))
506
+ request.requestedBy?.let {
507
+ changeTrackStateRequest.putMap("requestedBy", this.getHmsPeerSubset(it))
508
+ }
345
509
  changeTrackStateRequest.putString("trackType", request.track.type.name)
346
510
  changeTrackStateRequest.putBoolean("mute", request.mute)
347
511
  changeTrackStateRequest.putString("id", id)
@@ -363,54 +527,82 @@ object HMSDecoder {
363
527
  return null
364
528
  }
365
529
 
366
- private fun getHMSBrowserRecordingState(data: HMSBrowserRecordingState?): ReadableMap {
530
+ fun getHMSBrowserRecordingState(data: HMSBrowserRecordingState?): ReadableMap {
367
531
  val input = Arguments.createMap()
368
532
  if (data !== null) {
369
533
  input.putBoolean("running", data.running)
370
- input.putString("startedAt", data.startedAt.toString())
371
- input.putString("stoppedAt", data.stoppedAt.toString())
372
- input.putBoolean("running", data.running)
373
- input.putMap("error", this.getError(data.error))
534
+
535
+ data.startedAt?.let {
536
+ input.putString("startedAt", it.toString())
537
+ }
538
+
539
+ data.stoppedAt?.let {
540
+ input.putString("stoppedAt", it.toString())
541
+ }
542
+
543
+ data.error?.let {
544
+ input.putMap("error", this.getError(it))
545
+ }
374
546
  }
375
547
  return input
376
548
  }
377
549
 
378
- private fun getHMSRtmpStreamingState(data: HMSRtmpStreamingState?): ReadableMap {
550
+ fun getHMSRtmpStreamingState(data: HMSRtmpStreamingState?): ReadableMap {
379
551
  val input = Arguments.createMap()
380
552
  if (data !== null) {
381
553
  input.putBoolean("running", data.running)
382
- input.putString("startedAt", data.startedAt.toString())
383
- input.putString("stoppedAt", data.stoppedAt.toString())
384
- input.putMap("error", this.getError(data.error))
554
+
555
+ data.startedAt?.let {
556
+ input.putString("startedAt", it.toString())
557
+ }
558
+
559
+ data.stoppedAt?.let {
560
+ input.putString("stoppedAt", it.toString())
561
+ }
562
+
563
+ data.error?.let {
564
+ input.putMap("error", this.getError(it))
565
+ }
385
566
  }
386
567
  return input
387
568
  }
388
569
 
389
- private fun getHMSServerRecordingState(data: HMSServerRecordingState?): ReadableMap {
570
+ fun getHMSServerRecordingState(data: HMSServerRecordingState?): ReadableMap {
390
571
  val input = Arguments.createMap()
391
572
  if (data !== null) {
392
573
  input.putBoolean("running", data.running)
393
- input.putString("startedAt", data.startedAt.toString())
394
- input.putMap("error", this.getError(data.error))
574
+
575
+ data.startedAt?.let {
576
+ input.putString("startedAt", it.toString())
577
+ }
578
+
579
+ data.error?.let {
580
+ input.putMap("error", this.getError(it))
581
+ }
395
582
  }
396
583
  return input
397
584
  }
398
585
 
399
- private fun getHMSHlsStreamingState(data: HMSHLSStreamingState?): ReadableMap {
586
+ fun getHMSHlsStreamingState(data: HMSHLSStreamingState?): ReadableMap {
400
587
  val input = Arguments.createMap()
401
588
  if (data !== null) {
402
589
  input.putBoolean("running", data.running)
403
- input.putArray("variants", this.getHMSHLSVariant(data.variants))
590
+ data.variants?.let {
591
+ input.putArray("variants", this.getHMSHLSVariant(it))
592
+ }
404
593
  }
405
594
  return input
406
595
  }
407
596
 
408
- private fun getHMSHlsRecordingState(data: HmsHlsRecordingState?): ReadableMap {
597
+ fun getHMSHlsRecordingState(data: HmsHlsRecordingState?): ReadableMap {
409
598
  val input = Arguments.createMap()
410
599
  if (data !== null) {
411
600
  data.running?.let { input.putBoolean("running", it) }
412
- input.putString("startedAt", data.startedAt.toString())
413
- // input.putMap("hlsRecordingConfig", this.getHMSHlsRecordingConfig(data.hlsRecordingConfig))
601
+
602
+ data.startedAt?.let {
603
+ input.putString("startedAt", it.toString())
604
+ }
605
+
414
606
  data.hlsRecordingConfig?.let { input.putBoolean("singleFilePerLayer", it.singleFilePerLayer) }
415
607
  data.hlsRecordingConfig?.let { input.putBoolean("videoOnDemand", it.videoOnDemand) }
416
608
  }
@@ -425,7 +617,9 @@ object HMSDecoder {
425
617
  input.putString("hlsStreamUrl", variant.hlsStreamUrl)
426
618
  input.putString("meetingUrl", variant.meetingUrl)
427
619
  input.putString("metadata", variant.metadata)
428
- input.putString("startedAt", variant.startedAt.toString())
620
+ variant.startedAt?.let {
621
+ input.putString("startedAt", it.toString())
622
+ }
429
623
  variants.pushMap(input)
430
624
  }
431
625
  }
@@ -436,10 +630,6 @@ object HMSDecoder {
436
630
  val subscribeSettings: WritableMap = Arguments.createMap()
437
631
  if (hmsSubscribeSettings != null) {
438
632
  subscribeSettings.putInt("maxSubsBitRate", hmsSubscribeSettings.maxSubsBitRate)
439
- subscribeSettings.putMap(
440
- "subscribeDegradationParam",
441
- this.getHmsSubscribeDegradationSettings(hmsSubscribeSettings.subscribeDegradationParam)
442
- )
443
633
  subscribeSettings.putArray(
444
634
  "subscribeTo",
445
635
  this.getWriteableArray(hmsSubscribeSettings.subscribeTo)
@@ -469,18 +659,18 @@ object HMSDecoder {
469
659
  return subscribeDegradationParams
470
660
  }
471
661
 
472
- private fun getAllPeers(peers: List<HMSPeer>?): WritableArray {
662
+ fun getAllPeers(peers: List<HMSPeer>?): WritableArray {
473
663
  val decodedPeers: WritableArray = Arguments.createArray()
474
664
  if (peers != null) {
475
665
  for (peer in peers) {
476
- val decodedPeer = this.getHmsPeer(peer)
666
+ val decodedPeer = this.getHmsPeerSubset(peer)
477
667
  decodedPeers.pushMap(decodedPeer)
478
668
  }
479
669
  }
480
670
  return decodedPeers
481
671
  }
482
672
 
483
- private fun getAllTracks(tracks: MutableList<HMSTrack>?): WritableArray {
673
+ fun getAllTracks(tracks: MutableList<HMSTrack>?): WritableArray {
484
674
  val decodedTracks: WritableArray = Arguments.createArray()
485
675
  if (tracks != null) {
486
676
  for (track in tracks) {
@@ -494,14 +684,17 @@ object HMSDecoder {
494
684
  fun getHmsMessageRecipient(recipient: HMSMessageRecipient?): WritableMap {
495
685
  val hmsRecipient: WritableMap = Arguments.createMap()
496
686
  if (recipient != null) {
497
- hmsRecipient.putMap("recipientPeer", this.getHmsPeer(recipient.recipientPeer))
687
+ recipient.recipientPeer?.let {
688
+ hmsRecipient.putMap("recipientPeer", this.getHmsPeerSubset(it))
689
+ }
690
+
498
691
  hmsRecipient.putArray("recipientRoles", this.getAllRoles(recipient.recipientRoles))
499
692
  hmsRecipient.putString("recipientType", recipient.recipientType.name)
500
693
  }
501
694
  return hmsRecipient
502
695
  }
503
696
 
504
- private fun getHmsNetworkQuality(networkQuality: HMSNetworkQuality?): WritableMap {
697
+ fun getHmsNetworkQuality(networkQuality: HMSNetworkQuality?): WritableMap {
505
698
  val hmsNetworkQuality: WritableMap = Arguments.createMap()
506
699
  if (networkQuality != null) {
507
700
  hmsNetworkQuality.putInt("downlinkQuality", networkQuality.downlinkQuality)
@@ -533,19 +726,24 @@ object HMSDecoder {
533
726
  return localAudioStats
534
727
  }
535
728
 
536
- fun getLocalVideoStats(hmsLocalVideoStats: HMSLocalVideoStats?): WritableMap {
537
- val localVideoStats: WritableMap = Arguments.createMap()
538
- if (hmsLocalVideoStats != null) {
539
- localVideoStats.putString("bytesSent", hmsLocalVideoStats.bytesSent.toString())
729
+ fun getLocalVideoStats(hmsLocalVideoStats: List<HMSLocalVideoStats>): WritableArray {
730
+ val stats: WritableArray = Arguments.createArray()
731
+
732
+ for (stat in hmsLocalVideoStats) {
733
+ val localVideoStats: WritableMap = Arguments.createMap()
734
+
735
+ localVideoStats.putString("bytesSent", stat.bytesSent.toString())
540
736
  localVideoStats.putMap(
541
737
  "resolution",
542
- hmsLocalVideoStats.resolution?.let { this.getHmsVideoTrackResolution(it) }
738
+ stat.resolution?.let { this.getHmsVideoTrackResolution(it) }
543
739
  )
544
- hmsLocalVideoStats.bitrate?.let { localVideoStats.putDouble("bitrate", it) }
545
- hmsLocalVideoStats.roundTripTime?.let { localVideoStats.putDouble("roundTripTime", it) }
546
- hmsLocalVideoStats.frameRate?.let { localVideoStats.putDouble("frameRate", it) }
740
+ stat.bitrate?.let { localVideoStats.putDouble("bitrate", it) }
741
+ stat.roundTripTime?.let { localVideoStats.putDouble("roundTripTime", it) }
742
+ stat.frameRate?.let { localVideoStats.putDouble("frameRate", it) }
743
+ stats.pushMap(localVideoStats)
547
744
  }
548
- return localVideoStats
745
+
746
+ return stats
549
747
  }
550
748
 
551
749
  fun getRemoteAudioStats(hmsRemoteAudioStats: HMSRemoteAudioStats?): WritableMap {