@100mslive/react-native-hms 1.2.0 → 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 (267) hide show
  1. package/README.md +2 -2
  2. package/android/src/main/java/com/reactnativehmssdk/HMSDecoder.kt +121 -53
  3. package/android/src/main/java/com/reactnativehmssdk/HMSManager.kt +14 -0
  4. package/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +139 -31
  5. package/ios/HMSDecoder.swift +113 -50
  6. package/ios/HMSManager.m +4 -0
  7. package/ios/HMSManager.swift +15 -1
  8. package/ios/HMSRNSDK.swift +119 -26
  9. package/ios/HMSView.swift +1 -1
  10. package/lib/commonjs/classes/HMSAudioCodec.js +4 -4
  11. package/lib/commonjs/classes/HMSAudioCodec.js.map +1 -1
  12. package/lib/commonjs/classes/HMSAudioDevice.js +4 -4
  13. package/lib/commonjs/classes/HMSAudioDevice.js.map +1 -1
  14. package/lib/commonjs/classes/HMSAudioFilePlayerNode.js.map +1 -1
  15. package/lib/commonjs/classes/HMSAudioMixerSource.js.map +1 -1
  16. package/lib/commonjs/classes/HMSAudioMixingMode.js +4 -4
  17. package/lib/commonjs/classes/HMSAudioMixingMode.js.map +1 -1
  18. package/lib/commonjs/classes/HMSAudioMode.js +4 -4
  19. package/lib/commonjs/classes/HMSAudioMode.js.map +1 -1
  20. package/lib/commonjs/classes/HMSAudioNode.js +2 -1
  21. package/lib/commonjs/classes/HMSAudioNode.js.map +1 -1
  22. package/lib/commonjs/classes/HMSAudioSettings.js.map +1 -1
  23. package/lib/commonjs/classes/HMSAudioTrack.js.map +1 -1
  24. package/lib/commonjs/classes/HMSAudioTrackSettings.js.map +1 -1
  25. package/lib/commonjs/classes/HMSBrowserRecordingState.js.map +1 -1
  26. package/lib/commonjs/classes/HMSCameraFacing.js +4 -4
  27. package/lib/commonjs/classes/HMSCameraFacing.js.map +1 -1
  28. package/lib/commonjs/classes/HMSChangeTrackStateRequest.js.map +1 -1
  29. package/lib/commonjs/classes/HMSConfig.js.map +1 -1
  30. package/lib/commonjs/classes/HMSConstants.js +11 -0
  31. package/lib/commonjs/classes/HMSConstants.js.map +1 -0
  32. package/lib/commonjs/classes/HMSEncoder.js +21 -43
  33. package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
  34. package/lib/commonjs/classes/HMSException.js.map +1 -1
  35. package/lib/commonjs/classes/HMSHLSConfig.js.map +1 -1
  36. package/lib/commonjs/classes/HMSHLSMeetingURLVariant.js.map +1 -1
  37. package/lib/commonjs/classes/HMSHLSRecordingConfig.js.map +1 -1
  38. package/lib/commonjs/classes/HMSHLSRecordingState.js.map +1 -1
  39. package/lib/commonjs/classes/HMSHLSStreamingState.js.map +1 -1
  40. package/lib/commonjs/classes/HMSHLSVariant.js.map +1 -1
  41. package/lib/commonjs/classes/HMSHelper.js.map +1 -1
  42. package/lib/commonjs/classes/HMSLocalAudioStats.js.map +1 -1
  43. package/lib/commonjs/classes/HMSLocalAudioTrack.js.map +1 -1
  44. package/lib/commonjs/classes/HMSLocalPeer.js +0 -1
  45. package/lib/commonjs/classes/HMSLocalPeer.js.map +1 -1
  46. package/lib/commonjs/classes/HMSLocalVideoStats.js.map +1 -1
  47. package/lib/commonjs/classes/HMSLocalVideoTrack.js.map +1 -1
  48. package/lib/commonjs/classes/HMSLogAlarmManager.js +4 -4
  49. package/lib/commonjs/classes/HMSLogAlarmManager.js.map +1 -1
  50. package/lib/commonjs/classes/HMSLogLevel.js +4 -4
  51. package/lib/commonjs/classes/HMSLogLevel.js.map +1 -1
  52. package/lib/commonjs/classes/HMSLogSettings.js.map +1 -1
  53. package/lib/commonjs/classes/HMSLogger.js +17 -25
  54. package/lib/commonjs/classes/HMSLogger.js.map +1 -1
  55. package/lib/commonjs/classes/HMSMessage.js.map +1 -1
  56. package/lib/commonjs/classes/HMSMessageRecipient.js.map +1 -1
  57. package/lib/commonjs/classes/HMSMessageRecipientType.js +4 -4
  58. package/lib/commonjs/classes/HMSMessageRecipientType.js.map +1 -1
  59. package/lib/commonjs/classes/HMSMessageType.js +4 -4
  60. package/lib/commonjs/classes/HMSMessageType.js.map +1 -1
  61. package/lib/commonjs/classes/HMSMicNode.js.map +1 -1
  62. package/lib/commonjs/classes/HMSNativeEventEmitter.js +0 -5
  63. package/lib/commonjs/classes/HMSNativeEventEmitter.js.map +1 -1
  64. package/lib/commonjs/classes/HMSNetworkQuality.js.map +1 -1
  65. package/lib/commonjs/classes/HMSPIPListenerActions.js +4 -4
  66. package/lib/commonjs/classes/HMSPIPListenerActions.js.map +1 -1
  67. package/lib/commonjs/classes/HMSPeer.js +66 -19
  68. package/lib/commonjs/classes/HMSPeer.js.map +1 -1
  69. package/lib/commonjs/classes/HMSPeerUpdate.js +7 -5
  70. package/lib/commonjs/classes/HMSPeerUpdate.js.map +1 -1
  71. package/lib/commonjs/classes/HMSPeersCache.js +229 -0
  72. package/lib/commonjs/classes/HMSPeersCache.js.map +1 -0
  73. package/lib/commonjs/classes/HMSPermissions.js.map +1 -1
  74. package/lib/commonjs/classes/HMSPublishSettings.js.map +1 -1
  75. package/lib/commonjs/classes/HMSRTCStats.js.map +1 -1
  76. package/lib/commonjs/classes/HMSRTCStatsReport.js.map +1 -1
  77. package/lib/commonjs/classes/HMSRTMPConfig.js.map +1 -1
  78. package/lib/commonjs/classes/HMSRemoteAudioStats.js.map +1 -1
  79. package/lib/commonjs/classes/HMSRemoteAudioTrack.js.map +1 -1
  80. package/lib/commonjs/classes/HMSRemotePeer.js +0 -1
  81. package/lib/commonjs/classes/HMSRemotePeer.js.map +1 -1
  82. package/lib/commonjs/classes/HMSRemoteVideoStats.js.map +1 -1
  83. package/lib/commonjs/classes/HMSRemoteVideoTrack.js.map +1 -1
  84. package/lib/commonjs/classes/HMSRole.js.map +1 -1
  85. package/lib/commonjs/classes/HMSRoleChangeRequest.js.map +1 -1
  86. package/lib/commonjs/classes/HMSRoom.js +79 -22
  87. package/lib/commonjs/classes/HMSRoom.js.map +1 -1
  88. package/lib/commonjs/classes/HMSRoomCache.js +128 -0
  89. package/lib/commonjs/classes/HMSRoomCache.js.map +1 -0
  90. package/lib/commonjs/classes/HMSRoomUpdate.js +4 -4
  91. package/lib/commonjs/classes/HMSRoomUpdate.js.map +1 -1
  92. package/lib/commonjs/classes/HMSRtmpStreamingState.js.map +1 -1
  93. package/lib/commonjs/classes/HMSRtmpVideoResolution.js.map +1 -1
  94. package/lib/commonjs/classes/HMSSDK.js +468 -21
  95. package/lib/commonjs/classes/HMSSDK.js.map +1 -1
  96. package/lib/commonjs/classes/HMSScreenBroadcastAudioReceiverNode.js.map +1 -1
  97. package/lib/commonjs/classes/HMSServerRecordingState.js.map +1 -1
  98. package/lib/commonjs/classes/HMSSimulcastLayerSettings.js.map +1 -1
  99. package/lib/commonjs/classes/HMSSimulcastSettings.js.map +1 -1
  100. package/lib/commonjs/classes/HMSSpeaker.js.map +1 -1
  101. package/lib/commonjs/classes/HMSSubscribeSettings.js.map +1 -1
  102. package/lib/commonjs/classes/HMSTrack.js.map +1 -1
  103. package/lib/commonjs/classes/HMSTrackSettings.js.map +1 -1
  104. package/lib/commonjs/classes/HMSTrackSettingsInitState.js +4 -4
  105. package/lib/commonjs/classes/HMSTrackSettingsInitState.js.map +1 -1
  106. package/lib/commonjs/classes/HMSTrackSource.js +4 -4
  107. package/lib/commonjs/classes/HMSTrackSource.js.map +1 -1
  108. package/lib/commonjs/classes/HMSTrackType.js +4 -4
  109. package/lib/commonjs/classes/HMSTrackType.js.map +1 -1
  110. package/lib/commonjs/classes/HMSTrackUpdate.js +4 -4
  111. package/lib/commonjs/classes/HMSTrackUpdate.js.map +1 -1
  112. package/lib/commonjs/classes/HMSUpdateListenerActions.js +5 -5
  113. package/lib/commonjs/classes/HMSUpdateListenerActions.js.map +1 -1
  114. package/lib/commonjs/classes/HMSVideoCodec.js +4 -4
  115. package/lib/commonjs/classes/HMSVideoCodec.js.map +1 -1
  116. package/lib/commonjs/classes/HMSVideoResolution.js.map +1 -1
  117. package/lib/commonjs/classes/HMSVideoSettings.js.map +1 -1
  118. package/lib/commonjs/classes/HMSVideoTrack.js.map +1 -1
  119. package/lib/commonjs/classes/HMSVideoTrackSettings.js.map +1 -1
  120. package/lib/commonjs/classes/HMSVideoViewMode.js +4 -4
  121. package/lib/commonjs/classes/HMSVideoViewMode.js.map +1 -1
  122. package/lib/commonjs/classes/HmsView.js +2 -1
  123. package/lib/commonjs/classes/HmsView.js.map +1 -1
  124. package/lib/commonjs/index.js.map +1 -1
  125. package/lib/module/classes/HMSAudioCodec.js +3 -3
  126. package/lib/module/classes/HMSAudioCodec.js.map +1 -1
  127. package/lib/module/classes/HMSAudioDevice.js +3 -3
  128. package/lib/module/classes/HMSAudioDevice.js.map +1 -1
  129. package/lib/module/classes/HMSAudioFilePlayerNode.js.map +1 -1
  130. package/lib/module/classes/HMSAudioMixerSource.js.map +1 -1
  131. package/lib/module/classes/HMSAudioMixingMode.js +3 -3
  132. package/lib/module/classes/HMSAudioMixingMode.js.map +1 -1
  133. package/lib/module/classes/HMSAudioMode.js +3 -3
  134. package/lib/module/classes/HMSAudioMode.js.map +1 -1
  135. package/lib/module/classes/HMSAudioNode.js +2 -1
  136. package/lib/module/classes/HMSAudioNode.js.map +1 -1
  137. package/lib/module/classes/HMSAudioSettings.js.map +1 -1
  138. package/lib/module/classes/HMSAudioTrack.js.map +1 -1
  139. package/lib/module/classes/HMSAudioTrackSettings.js.map +1 -1
  140. package/lib/module/classes/HMSBrowserRecordingState.js.map +1 -1
  141. package/lib/module/classes/HMSCameraFacing.js +3 -3
  142. package/lib/module/classes/HMSCameraFacing.js.map +1 -1
  143. package/lib/module/classes/HMSChangeTrackStateRequest.js.map +1 -1
  144. package/lib/module/classes/HMSConfig.js.map +1 -1
  145. package/lib/module/classes/HMSConstants.js +4 -0
  146. package/lib/module/classes/HMSConstants.js.map +1 -0
  147. package/lib/module/classes/HMSEncoder.js +21 -43
  148. package/lib/module/classes/HMSEncoder.js.map +1 -1
  149. package/lib/module/classes/HMSException.js.map +1 -1
  150. package/lib/module/classes/HMSHLSConfig.js.map +1 -1
  151. package/lib/module/classes/HMSHLSMeetingURLVariant.js.map +1 -1
  152. package/lib/module/classes/HMSHLSRecordingConfig.js.map +1 -1
  153. package/lib/module/classes/HMSHLSRecordingState.js.map +1 -1
  154. package/lib/module/classes/HMSHLSStreamingState.js.map +1 -1
  155. package/lib/module/classes/HMSHLSVariant.js.map +1 -1
  156. package/lib/module/classes/HMSHelper.js.map +1 -1
  157. package/lib/module/classes/HMSLocalAudioStats.js.map +1 -1
  158. package/lib/module/classes/HMSLocalAudioTrack.js.map +1 -1
  159. package/lib/module/classes/HMSLocalPeer.js +0 -1
  160. package/lib/module/classes/HMSLocalPeer.js.map +1 -1
  161. package/lib/module/classes/HMSLocalVideoStats.js.map +1 -1
  162. package/lib/module/classes/HMSLocalVideoTrack.js.map +1 -1
  163. package/lib/module/classes/HMSLogAlarmManager.js +3 -3
  164. package/lib/module/classes/HMSLogAlarmManager.js.map +1 -1
  165. package/lib/module/classes/HMSLogLevel.js +3 -3
  166. package/lib/module/classes/HMSLogLevel.js.map +1 -1
  167. package/lib/module/classes/HMSLogSettings.js.map +1 -1
  168. package/lib/module/classes/HMSLogger.js +17 -25
  169. package/lib/module/classes/HMSLogger.js.map +1 -1
  170. package/lib/module/classes/HMSMessage.js.map +1 -1
  171. package/lib/module/classes/HMSMessageRecipient.js.map +1 -1
  172. package/lib/module/classes/HMSMessageRecipientType.js +3 -3
  173. package/lib/module/classes/HMSMessageRecipientType.js.map +1 -1
  174. package/lib/module/classes/HMSMessageType.js +3 -3
  175. package/lib/module/classes/HMSMessageType.js.map +1 -1
  176. package/lib/module/classes/HMSMicNode.js.map +1 -1
  177. package/lib/module/classes/HMSNativeEventEmitter.js +1 -6
  178. package/lib/module/classes/HMSNativeEventEmitter.js.map +1 -1
  179. package/lib/module/classes/HMSNetworkQuality.js.map +1 -1
  180. package/lib/module/classes/HMSPIPListenerActions.js +3 -3
  181. package/lib/module/classes/HMSPIPListenerActions.js.map +1 -1
  182. package/lib/module/classes/HMSPeer.js +66 -19
  183. package/lib/module/classes/HMSPeer.js.map +1 -1
  184. package/lib/module/classes/HMSPeerUpdate.js +4 -3
  185. package/lib/module/classes/HMSPeerUpdate.js.map +1 -1
  186. package/lib/module/classes/HMSPeersCache.js +216 -0
  187. package/lib/module/classes/HMSPeersCache.js.map +1 -0
  188. package/lib/module/classes/HMSPermissions.js.map +1 -1
  189. package/lib/module/classes/HMSPublishSettings.js.map +1 -1
  190. package/lib/module/classes/HMSRTCStats.js.map +1 -1
  191. package/lib/module/classes/HMSRTCStatsReport.js.map +1 -1
  192. package/lib/module/classes/HMSRTMPConfig.js.map +1 -1
  193. package/lib/module/classes/HMSRemoteAudioStats.js.map +1 -1
  194. package/lib/module/classes/HMSRemoteAudioTrack.js.map +1 -1
  195. package/lib/module/classes/HMSRemotePeer.js +0 -1
  196. package/lib/module/classes/HMSRemotePeer.js.map +1 -1
  197. package/lib/module/classes/HMSRemoteVideoStats.js.map +1 -1
  198. package/lib/module/classes/HMSRemoteVideoTrack.js.map +1 -1
  199. package/lib/module/classes/HMSRole.js.map +1 -1
  200. package/lib/module/classes/HMSRoleChangeRequest.js.map +1 -1
  201. package/lib/module/classes/HMSRoom.js +79 -22
  202. package/lib/module/classes/HMSRoom.js.map +1 -1
  203. package/lib/module/classes/HMSRoomCache.js +115 -0
  204. package/lib/module/classes/HMSRoomCache.js.map +1 -0
  205. package/lib/module/classes/HMSRoomUpdate.js +3 -3
  206. package/lib/module/classes/HMSRoomUpdate.js.map +1 -1
  207. package/lib/module/classes/HMSRtmpStreamingState.js.map +1 -1
  208. package/lib/module/classes/HMSRtmpVideoResolution.js.map +1 -1
  209. package/lib/module/classes/HMSSDK.js +468 -21
  210. package/lib/module/classes/HMSSDK.js.map +1 -1
  211. package/lib/module/classes/HMSScreenBroadcastAudioReceiverNode.js.map +1 -1
  212. package/lib/module/classes/HMSServerRecordingState.js.map +1 -1
  213. package/lib/module/classes/HMSSimulcastLayerSettings.js.map +1 -1
  214. package/lib/module/classes/HMSSimulcastSettings.js.map +1 -1
  215. package/lib/module/classes/HMSSpeaker.js.map +1 -1
  216. package/lib/module/classes/HMSSubscribeSettings.js.map +1 -1
  217. package/lib/module/classes/HMSTrack.js.map +1 -1
  218. package/lib/module/classes/HMSTrackSettings.js.map +1 -1
  219. package/lib/module/classes/HMSTrackSettingsInitState.js +3 -3
  220. package/lib/module/classes/HMSTrackSettingsInitState.js.map +1 -1
  221. package/lib/module/classes/HMSTrackSource.js +3 -3
  222. package/lib/module/classes/HMSTrackSource.js.map +1 -1
  223. package/lib/module/classes/HMSTrackType.js +3 -3
  224. package/lib/module/classes/HMSTrackType.js.map +1 -1
  225. package/lib/module/classes/HMSTrackUpdate.js +3 -3
  226. package/lib/module/classes/HMSTrackUpdate.js.map +1 -1
  227. package/lib/module/classes/HMSUpdateListenerActions.js +4 -4
  228. package/lib/module/classes/HMSUpdateListenerActions.js.map +1 -1
  229. package/lib/module/classes/HMSVideoCodec.js +3 -3
  230. package/lib/module/classes/HMSVideoCodec.js.map +1 -1
  231. package/lib/module/classes/HMSVideoResolution.js.map +1 -1
  232. package/lib/module/classes/HMSVideoSettings.js.map +1 -1
  233. package/lib/module/classes/HMSVideoTrack.js.map +1 -1
  234. package/lib/module/classes/HMSVideoTrackSettings.js.map +1 -1
  235. package/lib/module/classes/HMSVideoViewMode.js +3 -3
  236. package/lib/module/classes/HMSVideoViewMode.js.map +1 -1
  237. package/lib/module/classes/HmsView.js +2 -1
  238. package/lib/module/classes/HmsView.js.map +1 -1
  239. package/lib/typescript/classes/HMSConstants.d.ts +3 -0
  240. package/lib/typescript/classes/HMSEncoder.d.ts +7 -6
  241. package/lib/typescript/classes/HMSLocalPeer.d.ts +0 -14
  242. package/lib/typescript/classes/HMSLogger.d.ts +1 -7
  243. package/lib/typescript/classes/HMSPeer.d.ts +12 -18
  244. package/lib/typescript/classes/HMSPeerUpdate.d.ts +1 -0
  245. package/lib/typescript/classes/HMSPeersCache.d.ts +17 -0
  246. package/lib/typescript/classes/HMSRemotePeer.d.ts +0 -14
  247. package/lib/typescript/classes/HMSRoom.d.ts +11 -22
  248. package/lib/typescript/classes/HMSRoomCache.d.ts +16 -0
  249. package/lib/typescript/classes/HMSSDK.d.ts +1 -1
  250. package/lib/typescript/classes/HMSUpdateListenerActions.d.ts +1 -1
  251. package/package.json +1 -1
  252. package/sdk-versions.json +3 -3
  253. package/src/classes/HMSAudioNode.ts +3 -1
  254. package/src/classes/HMSConstants.ts +3 -0
  255. package/src/classes/HMSEncoder.ts +24 -69
  256. package/src/classes/HMSLocalPeer.ts +0 -15
  257. package/src/classes/HMSLogger.ts +20 -19
  258. package/src/classes/HMSNativeEventEmitter.ts +35 -12
  259. package/src/classes/HMSPeer.ts +133 -34
  260. package/src/classes/HMSPeerUpdate.ts +9 -0
  261. package/src/classes/HMSPeersCache.ts +252 -0
  262. package/src/classes/HMSRemotePeer.ts +0 -16
  263. package/src/classes/HMSRoom.ts +141 -37
  264. package/src/classes/HMSRoomCache.ts +157 -0
  265. package/src/classes/HMSSDK.tsx +57 -24
  266. package/src/classes/HMSUpdateListenerActions.ts +1 -1
  267. package/src/classes/HmsView.tsx +2 -1
package/README.md CHANGED
@@ -41,9 +41,9 @@ Troubleshooting Guide for resolving issues in running the Example app is [availa
41
41
 
42
42
  ## ☝️ Minimum Configuration
43
43
 
44
- - Support for React Native 0.63.4 or above
44
+ - Support for React Native 0.64.4 or above
45
45
  - Support for Java 8 or above
46
- - Support for Android API level 21 or above
46
+ - Support for Android API level 24 or above
47
47
  - Xcode 13 or above
48
48
  - Support for iOS 12 or above
49
49
 
@@ -9,6 +9,8 @@ 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
 
@@ -23,6 +25,54 @@ object HMSDecoder {
23
25
  this.restrictRoleData.clear()
24
26
  }
25
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
+ }
75
+
26
76
  fun getHmsRoom(hmsRoom: HMSRoom?): WritableMap {
27
77
  val room: WritableMap = Arguments.createMap()
28
78
  if (hmsRoom != null) {
@@ -64,12 +114,68 @@ object HMSDecoder {
64
114
  }
65
115
 
66
116
  room.putMap("localPeer", this.getHmsLocalPeer(hmsRoom.localPeer))
117
+
67
118
  room.putArray("peers", this.getAllPeers(hmsRoom.peerList))
119
+
68
120
  room.putInt("peerCount", hmsRoom.peerCount)
69
121
  }
70
122
  return room
71
123
  }
72
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
+
73
179
  fun getHmsPeer(hmsPeer: HMSPeer?): WritableMap {
74
180
  val peer: WritableMap = Arguments.createMap()
75
181
  if (hmsPeer != null) {
@@ -106,7 +212,7 @@ object HMSDecoder {
106
212
  return peer
107
213
  }
108
214
 
109
- private fun getHmsAudioTrack(hmsAudioTrack: HMSAudioTrack?): WritableMap {
215
+ fun getHmsAudioTrack(hmsAudioTrack: HMSAudioTrack?): WritableMap {
110
216
  val hmsTrack: WritableMap = Arguments.createMap()
111
217
  if (hmsAudioTrack != null) {
112
218
  hmsTrack.putString("type", hmsAudioTrack.type.name)
@@ -118,7 +224,7 @@ object HMSDecoder {
118
224
  return hmsTrack
119
225
  }
120
226
 
121
- private fun getHmsVideoTrack(hmsVideoTrack: HMSVideoTrack?): WritableMap {
227
+ fun getHmsVideoTrack(hmsVideoTrack: HMSVideoTrack?): WritableMap {
122
228
  val hmsTrack: WritableMap = Arguments.createMap()
123
229
  if (hmsVideoTrack != null) {
124
230
  hmsTrack.putString("type", hmsVideoTrack.type.name)
@@ -154,7 +260,7 @@ object HMSDecoder {
154
260
  return decodedRoles
155
261
  }
156
262
 
157
- private fun getHmsRole(hmsRole: HMSRole?): WritableMap {
263
+ fun getHmsRole(hmsRole: HMSRole?): WritableMap {
158
264
  val role: WritableMap = Arguments.createMap()
159
265
  if (hmsRole != null) {
160
266
  role.putString("name", hmsRole.name)
@@ -243,34 +349,14 @@ object HMSDecoder {
243
349
  val peer: WritableMap = Arguments.createMap()
244
350
  if (hmsLocalPeer != null) {
245
351
  peer.putString("peerID", hmsLocalPeer.peerID)
246
- peer.putString("name", hmsLocalPeer.name)
247
- peer.putBoolean("isLocal", hmsLocalPeer.isLocal)
248
-
249
- peer.putMap("role", this.getHmsRole(hmsLocalPeer.hmsRole))
250
-
251
- peer.putString("metadata", hmsLocalPeer.metadata)
252
-
253
- hmsLocalPeer.customerUserID?.let {
254
- peer.putString("customerUserID", it)
255
- }
256
-
257
- hmsLocalPeer.networkQuality?.let {
258
- peer.putMap("networkQuality", this.getHmsNetworkQuality(it))
259
- }
260
352
 
261
353
  hmsLocalPeer.audioTrack?.let {
262
- peer.putMap("audioTrack", this.getHmsAudioTrack(it))
263
354
  peer.putMap("localAudioTrackData", this.getHmsLocalAudioTrack(it))
264
355
  }
265
356
 
266
357
  hmsLocalPeer.videoTrack?.let {
267
- peer.putMap("videoTrack", this.getHmsVideoTrack(it))
268
358
  peer.putMap("localVideoTrackData", this.getHmsLocalVideoTrack(it))
269
359
  }
270
-
271
- hmsLocalPeer.auxiliaryTracks.let {
272
- peer.putArray("auxiliaryTracks", this.getAllTracks(it))
273
- }
274
360
  }
275
361
  return peer
276
362
  }
@@ -347,32 +433,14 @@ object HMSDecoder {
347
433
  val peer: WritableMap = Arguments.createMap()
348
434
  if (hmsRemotePeer != null) {
349
435
  peer.putString("peerID", hmsRemotePeer.peerID)
350
- peer.putString("name", hmsRemotePeer.name)
351
- peer.putBoolean("isLocal", hmsRemotePeer.isLocal)
352
- peer.putString("metadata", hmsRemotePeer.metadata)
353
- peer.putMap("role", this.getHmsRole(hmsRemotePeer.hmsRole))
354
-
355
- hmsRemotePeer.customerUserID?.let {
356
- peer.putString("customerUserID", it)
357
- }
358
-
359
- hmsRemotePeer.networkQuality?.let {
360
- peer.putMap("networkQuality", this.getHmsNetworkQuality(it))
361
- }
362
436
 
363
437
  hmsRemotePeer.audioTrack?.let {
364
- peer.putMap("audioTrack", this.getHmsAudioTrack(it))
365
438
  peer.putMap("remoteAudioTrackData", this.getHmsRemoteAudioTrack(it))
366
439
  }
367
440
 
368
441
  hmsRemotePeer.videoTrack?.let {
369
- peer.putMap("videoTrack", this.getHmsVideoTrack(hmsRemotePeer.videoTrack))
370
442
  peer.putMap("remoteVideoTrackData", this.getHmsRemoteVideoTrack(hmsRemotePeer.videoTrack))
371
443
  }
372
-
373
- hmsRemotePeer.auxiliaryTracks.let {
374
- peer.putArray("auxiliaryTracks", this.getAllTracks(it))
375
- }
376
444
  }
377
445
  return peer
378
446
  }
@@ -423,7 +491,7 @@ object HMSDecoder {
423
491
  val roleChangeRequest: WritableMap = Arguments.createMap()
424
492
  if (id != null) {
425
493
  request.requestedBy?.let {
426
- roleChangeRequest.putMap("requestedBy", this.getHmsPeer(it))
494
+ roleChangeRequest.putMap("requestedBy", this.getHmsPeerSubset(it))
427
495
  }
428
496
  roleChangeRequest.putMap("suggestedRole", this.getHmsRole(request.suggestedRole))
429
497
  roleChangeRequest.putString("id", id)
@@ -436,7 +504,7 @@ object HMSDecoder {
436
504
  val changeTrackStateRequest: WritableMap = Arguments.createMap()
437
505
 
438
506
  request.requestedBy?.let {
439
- changeTrackStateRequest.putMap("requestedBy", this.getHmsPeer(it))
507
+ changeTrackStateRequest.putMap("requestedBy", this.getHmsPeerSubset(it))
440
508
  }
441
509
  changeTrackStateRequest.putString("trackType", request.track.type.name)
442
510
  changeTrackStateRequest.putBoolean("mute", request.mute)
@@ -459,7 +527,7 @@ object HMSDecoder {
459
527
  return null
460
528
  }
461
529
 
462
- private fun getHMSBrowserRecordingState(data: HMSBrowserRecordingState?): ReadableMap {
530
+ fun getHMSBrowserRecordingState(data: HMSBrowserRecordingState?): ReadableMap {
463
531
  val input = Arguments.createMap()
464
532
  if (data !== null) {
465
533
  input.putBoolean("running", data.running)
@@ -479,7 +547,7 @@ object HMSDecoder {
479
547
  return input
480
548
  }
481
549
 
482
- private fun getHMSRtmpStreamingState(data: HMSRtmpStreamingState?): ReadableMap {
550
+ fun getHMSRtmpStreamingState(data: HMSRtmpStreamingState?): ReadableMap {
483
551
  val input = Arguments.createMap()
484
552
  if (data !== null) {
485
553
  input.putBoolean("running", data.running)
@@ -499,7 +567,7 @@ object HMSDecoder {
499
567
  return input
500
568
  }
501
569
 
502
- private fun getHMSServerRecordingState(data: HMSServerRecordingState?): ReadableMap {
570
+ fun getHMSServerRecordingState(data: HMSServerRecordingState?): ReadableMap {
503
571
  val input = Arguments.createMap()
504
572
  if (data !== null) {
505
573
  input.putBoolean("running", data.running)
@@ -515,7 +583,7 @@ object HMSDecoder {
515
583
  return input
516
584
  }
517
585
 
518
- private fun getHMSHlsStreamingState(data: HMSHLSStreamingState?): ReadableMap {
586
+ fun getHMSHlsStreamingState(data: HMSHLSStreamingState?): ReadableMap {
519
587
  val input = Arguments.createMap()
520
588
  if (data !== null) {
521
589
  input.putBoolean("running", data.running)
@@ -526,7 +594,7 @@ object HMSDecoder {
526
594
  return input
527
595
  }
528
596
 
529
- private fun getHMSHlsRecordingState(data: HmsHlsRecordingState?): ReadableMap {
597
+ fun getHMSHlsRecordingState(data: HmsHlsRecordingState?): ReadableMap {
530
598
  val input = Arguments.createMap()
531
599
  if (data !== null) {
532
600
  data.running?.let { input.putBoolean("running", it) }
@@ -591,18 +659,18 @@ object HMSDecoder {
591
659
  return subscribeDegradationParams
592
660
  }
593
661
 
594
- private fun getAllPeers(peers: List<HMSPeer>?): WritableArray {
662
+ fun getAllPeers(peers: List<HMSPeer>?): WritableArray {
595
663
  val decodedPeers: WritableArray = Arguments.createArray()
596
664
  if (peers != null) {
597
665
  for (peer in peers) {
598
- val decodedPeer = this.getHmsPeer(peer)
666
+ val decodedPeer = this.getHmsPeerSubset(peer)
599
667
  decodedPeers.pushMap(decodedPeer)
600
668
  }
601
669
  }
602
670
  return decodedPeers
603
671
  }
604
672
 
605
- private fun getAllTracks(tracks: MutableList<HMSTrack>?): WritableArray {
673
+ fun getAllTracks(tracks: MutableList<HMSTrack>?): WritableArray {
606
674
  val decodedTracks: WritableArray = Arguments.createArray()
607
675
  if (tracks != null) {
608
676
  for (track in tracks) {
@@ -617,7 +685,7 @@ object HMSDecoder {
617
685
  val hmsRecipient: WritableMap = Arguments.createMap()
618
686
  if (recipient != null) {
619
687
  recipient.recipientPeer?.let {
620
- hmsRecipient.putMap("recipientPeer", this.getHmsPeer(it))
688
+ hmsRecipient.putMap("recipientPeer", this.getHmsPeerSubset(it))
621
689
  }
622
690
 
623
691
  hmsRecipient.putArray("recipientRoles", this.getAllRoles(recipient.recipientRoles))
@@ -626,7 +694,7 @@ object HMSDecoder {
626
694
  return hmsRecipient
627
695
  }
628
696
 
629
- private fun getHmsNetworkQuality(networkQuality: HMSNetworkQuality?): WritableMap {
697
+ fun getHmsNetworkQuality(networkQuality: HMSNetworkQuality?): WritableMap {
630
698
  val hmsNetworkQuality: WritableMap = Arguments.createMap()
631
699
  if (networkQuality != null) {
632
700
  hmsNetworkQuality.putInt("downlinkQuality", networkQuality.downlinkQuality)
@@ -447,6 +447,20 @@ class HMSManager(reactContext: ReactApplicationContext) :
447
447
  hms?.getSessionMetaData(callback)
448
448
  }
449
449
 
450
+ @ReactMethod(isBlockingSynchronousMethod = true)
451
+ fun getPeerProperty(data: ReadableMap): WritableMap? {
452
+ val hms = HMSHelper.getHms(data, hmsCollection) ?: return null
453
+
454
+ return hms.getPeerProperty(data)
455
+ }
456
+
457
+ @ReactMethod(isBlockingSynchronousMethod = true)
458
+ fun getRoomProperty(data: ReadableMap): WritableMap? {
459
+ val hms = HMSHelper.getHms(data, hmsCollection) ?: return null
460
+
461
+ return hms.getRoomProperty(data)
462
+ }
463
+
450
464
  @ReactMethod
451
465
  fun enableEvent(data: ReadableMap, promise: Promise?) {
452
466
  val hms = HMSHelper.getHms(data, hmsCollection)
@@ -151,7 +151,7 @@ class HMSRNSDK(
151
151
  }
152
152
 
153
153
  override fun onPeerUpdate(type: HMSPeerUpdate, peer: HMSPeer) {
154
- if (eventsEnableStatus["ON_PEER_UPDATE"] != true) {
154
+ if (eventsEnableStatus["3"] != true) {
155
155
  return
156
156
  }
157
157
  if (type === HMSPeerUpdate.AUDIO_TOGGLED ||
@@ -168,15 +168,8 @@ class HMSRNSDK(
168
168
  ) {
169
169
  return
170
170
  }
171
- val updateType = type.name
172
- val hmsPeer = HMSDecoder.getHmsPeer(peer)
173
-
174
- val data: WritableMap = Arguments.createMap()
175
-
176
- data.putMap("peer", hmsPeer)
177
- data.putString("type", updateType)
178
- data.putString("id", id)
179
- delegate.emitEvent("ON_PEER_UPDATE", data)
171
+ val hmsPeer = HMSDecoder.getHmsPeerSubsetForPeerUpdateEvent(peer, type)
172
+ delegate.emitEvent("3", hmsPeer)
180
173
  }
181
174
 
182
175
  override fun onRoomUpdate(type: HMSRoomUpdate, hmsRoom: HMSRoom) {
@@ -188,7 +181,7 @@ class HMSRNSDK(
188
181
  }
189
182
 
190
183
  val updateType = type.name
191
- val roomData = HMSDecoder.getHmsRoom(hmsRoom)
184
+ val roomData = HMSDecoder.getHmsRoomSubset(hmsRoom, type)
192
185
 
193
186
  val data: WritableMap = Arguments.createMap()
194
187
 
@@ -204,7 +197,7 @@ class HMSRNSDK(
204
197
  return
205
198
  }
206
199
  val previewTracks = HMSDecoder.getPreviewTracks(localTracks)
207
- val hmsRoom = HMSDecoder.getHmsRoom(room)
200
+ val hmsRoom = HMSDecoder.getHmsRoomSubset(room)
208
201
  val data: WritableMap = Arguments.createMap()
209
202
 
210
203
  data.putArray("previewTracks", previewTracks)
@@ -283,7 +276,7 @@ class HMSRNSDK(
283
276
  if (eventsEnableStatus["ON_JOIN"] != true) {
284
277
  return
285
278
  }
286
- val roomData = HMSDecoder.getHmsRoom(room)
279
+ val roomData = HMSDecoder.getHmsRoomSubset(room)
287
280
 
288
281
  val data: WritableMap = Arguments.createMap()
289
282
 
@@ -293,7 +286,7 @@ class HMSRNSDK(
293
286
  }
294
287
 
295
288
  override fun onPeerUpdate(type: HMSPeerUpdate, peer: HMSPeer) {
296
- if (eventsEnableStatus["ON_PEER_UPDATE"] != true) {
289
+ if (eventsEnableStatus["3"] != true) {
297
290
  return
298
291
  }
299
292
  if (type === HMSPeerUpdate.AUDIO_TOGGLED ||
@@ -311,15 +304,8 @@ class HMSRNSDK(
311
304
  ) {
312
305
  return
313
306
  }
314
- val updateType = type.name
315
- val hmsPeer = HMSDecoder.getHmsPeer(peer)
316
-
317
- val data: WritableMap = Arguments.createMap()
318
-
319
- data.putMap("peer", hmsPeer)
320
- data.putString("type", updateType)
321
- data.putString("id", id)
322
- delegate.emitEvent("ON_PEER_UPDATE", data)
307
+ val hmsPeer = HMSDecoder.getHmsPeerSubsetForPeerUpdateEvent(peer, type)
308
+ delegate.emitEvent("3", hmsPeer)
323
309
  }
324
310
 
325
311
  override fun onRoomUpdate(type: HMSRoomUpdate, hmsRoom: HMSRoom) {
@@ -331,7 +317,7 @@ class HMSRNSDK(
331
317
  }
332
318
 
333
319
  val updateType = type.name
334
- val roomData = HMSDecoder.getHmsRoom(hmsRoom)
320
+ val roomData = HMSDecoder.getHmsRoomSubset(hmsRoom, type)
335
321
 
336
322
  val data: WritableMap = Arguments.createMap()
337
323
 
@@ -346,7 +332,7 @@ class HMSRNSDK(
346
332
  return
347
333
  }
348
334
  val updateType = type.name
349
- val hmsPeer = HMSDecoder.getHmsPeer(peer)
335
+ val hmsPeer = HMSDecoder.getHmsPeerSubset(peer)
350
336
  val hmsTrack = HMSDecoder.getHmsTrack(track)
351
337
 
352
338
  val data: WritableMap = Arguments.createMap()
@@ -364,7 +350,7 @@ class HMSRNSDK(
364
350
  }
365
351
  val data: WritableMap = Arguments.createMap()
366
352
 
367
- data.putMap("sender", HMSDecoder.getHmsPeer(message.sender))
353
+ data.putMap("sender", HMSDecoder.getHmsPeerSubset(message.sender))
368
354
  data.putString("message", message.message)
369
355
  data.putString("type", message.type)
370
356
  data.putString("time", message.serverReceiveTime.toString())
@@ -425,7 +411,7 @@ class HMSRNSDK(
425
411
  if (speaker.peer != null && speaker.hmsTrack != null) {
426
412
  val speakerArray: WritableMap = Arguments.createMap()
427
413
  speakerArray.putInt("level", speaker.level)
428
- speakerArray.putMap("peer", HMSDecoder.getHmsPeer(speaker.peer))
414
+ speakerArray.putMap("peer", HMSDecoder.getHmsPeerSubset(speaker.peer))
429
415
  speakerArray.putMap("track", HMSDecoder.getHmsTrack(speaker.hmsTrack))
430
416
  peers.pushMap(speakerArray)
431
417
  }
@@ -452,7 +438,7 @@ class HMSRNSDK(
452
438
  }
453
439
  val localAudioStats = HMSDecoder.getLocalAudioStats(audioStats)
454
440
  val track = HMSDecoder.getHmsLocalAudioTrack(hmsTrack as HMSLocalAudioTrack)
455
- val peer = HMSDecoder.getHmsPeer(hmsPeer)
441
+ val peer = HMSDecoder.getHmsPeerSubset(hmsPeer)
456
442
 
457
443
  val data: WritableMap = Arguments.createMap()
458
444
  data.putMap("localAudioStats", localAudioStats)
@@ -476,7 +462,7 @@ class HMSRNSDK(
476
462
 
477
463
  val localVideoStats = HMSDecoder.getLocalVideoStats(videoStats)
478
464
  val track = HMSDecoder.getHmsLocalVideoTrack(hmsTrack as HMSLocalVideoTrack)
479
- val peer = HMSDecoder.getHmsPeer(hmsPeer)
465
+ val peer = HMSDecoder.getHmsPeerSubset(hmsPeer)
480
466
 
481
467
  val data: WritableMap = Arguments.createMap()
482
468
  data.putArray("localVideoStats", localVideoStats)
@@ -519,7 +505,7 @@ class HMSRNSDK(
519
505
 
520
506
  val remoteAudioStats = HMSDecoder.getRemoteAudioStats(audioStats)
521
507
  val track = HMSDecoder.getHmsRemoteAudioTrack(hmsTrack as HMSRemoteAudioTrack)
522
- val peer = HMSDecoder.getHmsPeer(hmsPeer)
508
+ val peer = HMSDecoder.getHmsPeerSubset(hmsPeer)
523
509
 
524
510
  val data: WritableMap = Arguments.createMap()
525
511
  data.putMap("remoteAudioStats", remoteAudioStats)
@@ -543,7 +529,7 @@ class HMSRNSDK(
543
529
 
544
530
  val remoteVideoStats = HMSDecoder.getRemoteVideoStats(videoStats)
545
531
  val track = HMSDecoder.getHmsRemoteVideoTrack(hmsTrack as HMSRemoteVideoTrack)
546
- val peer = HMSDecoder.getHmsPeer(hmsPeer)
532
+ val peer = HMSDecoder.getHmsPeerSubset(hmsPeer)
547
533
 
548
534
  val data: WritableMap = Arguments.createMap()
549
535
  data.putMap("remoteVideoStats", remoteVideoStats)
@@ -1545,6 +1531,128 @@ class HMSRNSDK(
1545
1531
  )
1546
1532
  }
1547
1533
 
1534
+ fun getPeerProperty(data: ReadableMap): WritableMap? {
1535
+ val requiredKeys =
1536
+ HMSHelper.getUnavailableRequiredKey(data, arrayOf(Pair("peerId", "String"), Pair("property", "String")))
1537
+
1538
+ val nativeHmsSDK = hmsSDK
1539
+
1540
+ if (requiredKeys !== null || nativeHmsSDK === null) {
1541
+ return null
1542
+ }
1543
+
1544
+ val peerId = data.getString("peerId")!!
1545
+ val property = data.getString("property")!!
1546
+
1547
+ val peer = HMSHelper.getPeerFromPeerId(peerId, nativeHmsSDK.getRoom())
1548
+
1549
+ if (peer !== null) {
1550
+ val result: WritableMap = Arguments.createMap()
1551
+
1552
+ when (property) {
1553
+ "name" -> {
1554
+ result.putString("name", peer.name)
1555
+ }
1556
+ "isLocal" -> {
1557
+ result.putBoolean("isLocal", peer.isLocal)
1558
+ }
1559
+ "networkQuality" -> {
1560
+ if (peer.networkQuality !== null) {
1561
+ result.putMap("networkQuality", HMSDecoder.getHmsNetworkQuality(peer.networkQuality))
1562
+ }
1563
+ }
1564
+ "metadata" -> {
1565
+ result.putString("metadata", peer.metadata)
1566
+ }
1567
+ "role" -> {
1568
+ result.putMap("role", HMSDecoder.getHmsRole(peer.hmsRole))
1569
+ }
1570
+ "customerUserID" -> {
1571
+ if (peer.customerUserID !== null) {
1572
+ result.putString("customerUserID", peer.customerUserID)
1573
+ }
1574
+ }
1575
+ "audioTrack" -> {
1576
+ if (peer.audioTrack !== null) {
1577
+ result.putMap("audioTrack", HMSDecoder.getHmsAudioTrack(peer.audioTrack))
1578
+ }
1579
+ }
1580
+ "videoTrack" -> {
1581
+ if (peer.videoTrack !== null) {
1582
+ result.putMap("videoTrack", HMSDecoder.getHmsVideoTrack(peer.videoTrack))
1583
+ }
1584
+ }
1585
+ "auxiliaryTracks" -> {
1586
+ result.putArray("auxiliaryTracks", HMSDecoder.getAllTracks(peer.auxiliaryTracks))
1587
+ }
1588
+ else -> null
1589
+ }
1590
+
1591
+ return result
1592
+ }
1593
+
1594
+ return null
1595
+ }
1596
+
1597
+ fun getRoomProperty(data: ReadableMap): WritableMap? {
1598
+ val requiredKeys =
1599
+ HMSHelper.getUnavailableRequiredKey(data, arrayOf(Pair("property", "String")))
1600
+
1601
+ val nativeHmsSDK = hmsSDK
1602
+
1603
+ if (requiredKeys !== null || nativeHmsSDK === null) {
1604
+ return null
1605
+ }
1606
+
1607
+ val property = data.getString("property")!!
1608
+
1609
+ val hmsRoom = nativeHmsSDK.getRoom()
1610
+
1611
+ if (hmsRoom !== null) {
1612
+ val data: WritableMap = Arguments.createMap()
1613
+
1614
+ when (property) {
1615
+ "sessionId" -> {
1616
+ data.putString("sessionId", hmsRoom.sessionId)
1617
+ }
1618
+ "name" -> {
1619
+ data.putString("name", hmsRoom.name)
1620
+ }
1621
+ "metaData" -> {
1622
+ data.putString("metaData", null)
1623
+ }
1624
+ "peerCount" -> {
1625
+ data.putInt("peerCount", hmsRoom.peerCount)
1626
+ }
1627
+ "peers" -> {
1628
+ data.putArray("peers", HMSDecoder.getAllPeers(hmsRoom.peerList))
1629
+ }
1630
+ "localPeer" -> {
1631
+ data.putMap("localPeer", HMSDecoder.getHmsLocalPeer(hmsRoom.localPeer))
1632
+ }
1633
+ "browserRecordingState" -> {
1634
+ data.putMap("browserRecordingState", HMSDecoder.getHMSBrowserRecordingState(hmsRoom.browserRecordingState))
1635
+ }
1636
+ "rtmpHMSRtmpStreamingState" -> {
1637
+ data.putMap("rtmpHMSRtmpStreamingState", HMSDecoder.getHMSRtmpStreamingState(hmsRoom.rtmpHMSRtmpStreamingState))
1638
+ }
1639
+ "serverRecordingState" -> {
1640
+ data.putMap("serverRecordingState", HMSDecoder.getHMSServerRecordingState(hmsRoom.serverRecordingState))
1641
+ }
1642
+ "hlsStreamingState" -> {
1643
+ data.putMap("hlsStreamingState", HMSDecoder.getHMSHlsStreamingState(hmsRoom.hlsStreamingState))
1644
+ }
1645
+ "hlsRecordingState" -> {
1646
+ data.putMap("hlsRecordingState", HMSDecoder.getHMSHlsRecordingState(hmsRoom.hlsRecordingState))
1647
+ }
1648
+ }
1649
+
1650
+ return data
1651
+ }
1652
+
1653
+ return null
1654
+ }
1655
+
1548
1656
  fun enableEvent(data: ReadableMap, promise: Promise?) {
1549
1657
  val requiredKeys =
1550
1658
  HMSHelper.getUnavailableRequiredKey(data, arrayOf(Pair("eventType", "String")))