@100mslive/react-native-hms 0.9.94 → 1.1.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 (285) hide show
  1. package/README.md +44 -29
  2. package/android/.gradle/6.9/fileHashes/fileHashes.bin +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/outputFiles.bin +0 -0
  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/.idea/jarRepositories.xml +10 -0
  10. package/android/.idea/libraries/Gradle__androidx_tracing_tracing_1_1_0_aar.xml +13 -0
  11. package/android/.idea/libraries/Gradle__com_facebook_fbjni_fbjni_0_3_0_aar.xml +14 -0
  12. package/android/.idea/libraries/Gradle__com_facebook_react_react_native_0_71_0_rc_0_debug_aar.xml +14 -0
  13. package/android/.idea/libraries/{Gradle__com_github_100mslive_android_sdk_lib_2_5_0_aar.xml → Gradle__com_github_100mslive_android_sdk_lib_2_5_1_aar.xml} +3 -3
  14. package/android/.idea/libraries/{Gradle__com_github_100mslive_webrtc_m104_hms_1_2_aar.xml → Gradle__com_github_100mslive_webrtc_m104_hms_1_3_aar.xml} +3 -3
  15. package/android/.idea/modules/android.androidTest.iml +10 -8
  16. package/android/.idea/modules/android.main.iml +10 -8
  17. package/android/.idea/modules/android.unitTest.iml +10 -8
  18. package/android/.idea/sonarlint/issuestore/3/c/3c46088b6add3088181589d8ed726652742b6221 +4 -4
  19. package/android/.idea/sonarlint/issuestore/a/8/a8c9f5ddd88723818e51ae3cf8693d02355a8691 +0 -0
  20. package/android/.idea/sonarlint/issuestore/index.pb +2 -0
  21. package/android/build.gradle +5 -1
  22. package/android/src/main/java/com/reactnativehmssdk/HMSDecoder.kt +23 -23
  23. package/android/src/main/java/com/reactnativehmssdk/HMSManager.kt +421 -3
  24. package/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +670 -531
  25. package/android/src/main/java/com/reactnativehmssdk/PipActionReceiver.kt +66 -0
  26. package/android/src/main/res/drawable/ic_call_end_24.xml +10 -0
  27. package/android/src/main/res/drawable/ic_camera_toggle_off.xml +11 -0
  28. package/android/src/main/res/drawable/ic_camera_toggle_on.xml +10 -0
  29. package/android/src/main/res/drawable/ic_mic_24.xml +10 -0
  30. package/android/src/main/res/drawable/ic_mic_off_24.xml +10 -0
  31. package/ios/HMSDecoder.swift +10 -7
  32. package/ios/HMSHelper.swift +22 -16
  33. package/ios/HMSManager.m +4 -0
  34. package/ios/HMSManager.swift +29 -0
  35. package/ios/HMSRNSDK.swift +60 -0
  36. package/ios/Hmssdk.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  37. package/ios/Hmssdk.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  38. package/ios/Hmssdk.xcodeproj/project.xcworkspace/xcuserdata/yogesh.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  39. package/ios/Hmssdk.xcodeproj/xcuserdata/yogesh.xcuserdatad/xcschemes/xcschememanagement.plist +14 -0
  40. package/lib/commonjs/classes/HMSAudioMixerSource.js +3 -1
  41. package/lib/commonjs/classes/HMSAudioMixerSource.js.map +1 -1
  42. package/lib/commonjs/classes/HMSAudioNode.js +3 -1
  43. package/lib/commonjs/classes/HMSAudioNode.js.map +1 -1
  44. package/lib/commonjs/classes/HMSAudioSettings.js +3 -1
  45. package/lib/commonjs/classes/HMSAudioSettings.js.map +1 -1
  46. package/lib/commonjs/classes/HMSAudioTrackSettings.js +3 -1
  47. package/lib/commonjs/classes/HMSAudioTrackSettings.js.map +1 -1
  48. package/lib/commonjs/classes/HMSBrowserRecordingState.js +3 -1
  49. package/lib/commonjs/classes/HMSBrowserRecordingState.js.map +1 -1
  50. package/lib/commonjs/classes/HMSChangeTrackStateRequest.js +3 -1
  51. package/lib/commonjs/classes/HMSChangeTrackStateRequest.js.map +1 -1
  52. package/lib/commonjs/classes/HMSConfig.js +3 -1
  53. package/lib/commonjs/classes/HMSConfig.js.map +1 -1
  54. package/lib/commonjs/classes/HMSEncoder.js +2 -1
  55. package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
  56. package/lib/commonjs/classes/HMSException.js +3 -1
  57. package/lib/commonjs/classes/HMSException.js.map +1 -1
  58. package/lib/commonjs/classes/HMSHLSConfig.js +3 -1
  59. package/lib/commonjs/classes/HMSHLSConfig.js.map +1 -1
  60. package/lib/commonjs/classes/HMSHLSMeetingURLVariant.js +3 -1
  61. package/lib/commonjs/classes/HMSHLSMeetingURLVariant.js.map +1 -1
  62. package/lib/commonjs/classes/HMSHLSRecordingConfig.js +3 -1
  63. package/lib/commonjs/classes/HMSHLSRecordingConfig.js.map +1 -1
  64. package/lib/commonjs/classes/HMSHLSRecordingState.js +3 -1
  65. package/lib/commonjs/classes/HMSHLSRecordingState.js.map +1 -1
  66. package/lib/commonjs/classes/HMSHLSStreamingState.js +3 -1
  67. package/lib/commonjs/classes/HMSHLSStreamingState.js.map +1 -1
  68. package/lib/commonjs/classes/HMSHLSVariant.js +3 -1
  69. package/lib/commonjs/classes/HMSHLSVariant.js.map +1 -1
  70. package/lib/commonjs/classes/HMSLocalAudioStats.js +3 -1
  71. package/lib/commonjs/classes/HMSLocalAudioStats.js.map +1 -1
  72. package/lib/commonjs/classes/HMSLocalAudioTrack.js +3 -1
  73. package/lib/commonjs/classes/HMSLocalAudioTrack.js.map +1 -1
  74. package/lib/commonjs/classes/HMSLocalPeer.js +3 -1
  75. package/lib/commonjs/classes/HMSLocalPeer.js.map +1 -1
  76. package/lib/commonjs/classes/HMSLocalVideoStats.js +3 -1
  77. package/lib/commonjs/classes/HMSLocalVideoStats.js.map +1 -1
  78. package/lib/commonjs/classes/HMSLocalVideoTrack.js +3 -1
  79. package/lib/commonjs/classes/HMSLocalVideoTrack.js.map +1 -1
  80. package/lib/commonjs/classes/HMSLogSettings.js +3 -1
  81. package/lib/commonjs/classes/HMSLogSettings.js.map +1 -1
  82. package/lib/commonjs/classes/HMSLogger.js +3 -1
  83. package/lib/commonjs/classes/HMSLogger.js.map +1 -1
  84. package/lib/commonjs/classes/HMSMessage.js +3 -1
  85. package/lib/commonjs/classes/HMSMessage.js.map +1 -1
  86. package/lib/commonjs/classes/HMSMessageRecipient.js +3 -1
  87. package/lib/commonjs/classes/HMSMessageRecipient.js.map +1 -1
  88. package/lib/commonjs/classes/HMSMessageType.js +13 -0
  89. package/lib/commonjs/classes/HMSMessageType.js.map +1 -0
  90. package/lib/commonjs/classes/HMSNetworkQuality.js +3 -1
  91. package/lib/commonjs/classes/HMSNetworkQuality.js.map +1 -1
  92. package/lib/commonjs/classes/HMSPIPListenerActions.js +12 -0
  93. package/lib/commonjs/classes/HMSPIPListenerActions.js.map +1 -0
  94. package/lib/commonjs/classes/HMSPeer.js +3 -1
  95. package/lib/commonjs/classes/HMSPeer.js.map +1 -1
  96. package/lib/commonjs/classes/HMSPermissions.js +3 -1
  97. package/lib/commonjs/classes/HMSPermissions.js.map +1 -1
  98. package/lib/commonjs/classes/HMSPublishSettings.js +3 -1
  99. package/lib/commonjs/classes/HMSPublishSettings.js.map +1 -1
  100. package/lib/commonjs/classes/HMSRTCStats.js +3 -1
  101. package/lib/commonjs/classes/HMSRTCStats.js.map +1 -1
  102. package/lib/commonjs/classes/HMSRTCStatsReport.js +3 -1
  103. package/lib/commonjs/classes/HMSRTCStatsReport.js.map +1 -1
  104. package/lib/commonjs/classes/HMSRTMPConfig.js +3 -1
  105. package/lib/commonjs/classes/HMSRTMPConfig.js.map +1 -1
  106. package/lib/commonjs/classes/HMSRemoteAudioStats.js +3 -1
  107. package/lib/commonjs/classes/HMSRemoteAudioStats.js.map +1 -1
  108. package/lib/commonjs/classes/HMSRemoteAudioTrack.js +3 -1
  109. package/lib/commonjs/classes/HMSRemoteAudioTrack.js.map +1 -1
  110. package/lib/commonjs/classes/HMSRemotePeer.js +3 -1
  111. package/lib/commonjs/classes/HMSRemotePeer.js.map +1 -1
  112. package/lib/commonjs/classes/HMSRemoteVideoStats.js +3 -1
  113. package/lib/commonjs/classes/HMSRemoteVideoStats.js.map +1 -1
  114. package/lib/commonjs/classes/HMSRemoteVideoTrack.js +3 -1
  115. package/lib/commonjs/classes/HMSRemoteVideoTrack.js.map +1 -1
  116. package/lib/commonjs/classes/HMSRole.js +3 -1
  117. package/lib/commonjs/classes/HMSRole.js.map +1 -1
  118. package/lib/commonjs/classes/HMSRoleChangeRequest.js +3 -1
  119. package/lib/commonjs/classes/HMSRoleChangeRequest.js.map +1 -1
  120. package/lib/commonjs/classes/HMSRoom.js +5 -1
  121. package/lib/commonjs/classes/HMSRoom.js.map +1 -1
  122. package/lib/commonjs/classes/HMSRtmpStreamingState.js +3 -1
  123. package/lib/commonjs/classes/HMSRtmpStreamingState.js.map +1 -1
  124. package/lib/commonjs/classes/HMSRtmpVideoResolution.js +3 -1
  125. package/lib/commonjs/classes/HMSRtmpVideoResolution.js.map +1 -1
  126. package/lib/commonjs/classes/HMSSDK.js +92 -4
  127. package/lib/commonjs/classes/HMSSDK.js.map +1 -1
  128. package/lib/commonjs/classes/HMSServerRecordingState.js +3 -1
  129. package/lib/commonjs/classes/HMSServerRecordingState.js.map +1 -1
  130. package/lib/commonjs/classes/HMSSimulcastLayerSettings.js +3 -1
  131. package/lib/commonjs/classes/HMSSimulcastLayerSettings.js.map +1 -1
  132. package/lib/commonjs/classes/HMSSimulcastSettings.js +3 -1
  133. package/lib/commonjs/classes/HMSSimulcastSettings.js.map +1 -1
  134. package/lib/commonjs/classes/HMSSpeaker.js +3 -1
  135. package/lib/commonjs/classes/HMSSpeaker.js.map +1 -1
  136. package/lib/commonjs/classes/HMSSubscribeSettings.js +3 -1
  137. package/lib/commonjs/classes/HMSSubscribeSettings.js.map +1 -1
  138. package/lib/commonjs/classes/HMSTrack.js +3 -1
  139. package/lib/commonjs/classes/HMSTrack.js.map +1 -1
  140. package/lib/commonjs/classes/HMSTrackSettings.js +3 -1
  141. package/lib/commonjs/classes/HMSTrackSettings.js.map +1 -1
  142. package/lib/commonjs/classes/HMSVideoResolution.js +3 -1
  143. package/lib/commonjs/classes/HMSVideoResolution.js.map +1 -1
  144. package/lib/commonjs/classes/HMSVideoSettings.js +3 -1
  145. package/lib/commonjs/classes/HMSVideoSettings.js.map +1 -1
  146. package/lib/commonjs/classes/HMSVideoTrack.js +3 -1
  147. package/lib/commonjs/classes/HMSVideoTrack.js.map +1 -1
  148. package/lib/commonjs/classes/HMSVideoTrackSettings.js +3 -1
  149. package/lib/commonjs/classes/HMSVideoTrackSettings.js.map +1 -1
  150. package/lib/commonjs/classes/HmsView.js +13 -1
  151. package/lib/commonjs/classes/HmsView.js.map +1 -1
  152. package/lib/commonjs/index.js +24 -0
  153. package/lib/commonjs/index.js.map +1 -1
  154. package/lib/module/classes/HMSAudioMixerSource.js +3 -1
  155. package/lib/module/classes/HMSAudioMixerSource.js.map +1 -1
  156. package/lib/module/classes/HMSAudioNode.js +3 -1
  157. package/lib/module/classes/HMSAudioNode.js.map +1 -1
  158. package/lib/module/classes/HMSAudioSettings.js +3 -1
  159. package/lib/module/classes/HMSAudioSettings.js.map +1 -1
  160. package/lib/module/classes/HMSAudioTrackSettings.js +3 -1
  161. package/lib/module/classes/HMSAudioTrackSettings.js.map +1 -1
  162. package/lib/module/classes/HMSBrowserRecordingState.js +3 -1
  163. package/lib/module/classes/HMSBrowserRecordingState.js.map +1 -1
  164. package/lib/module/classes/HMSChangeTrackStateRequest.js +3 -1
  165. package/lib/module/classes/HMSChangeTrackStateRequest.js.map +1 -1
  166. package/lib/module/classes/HMSConfig.js +3 -1
  167. package/lib/module/classes/HMSConfig.js.map +1 -1
  168. package/lib/module/classes/HMSEncoder.js +2 -1
  169. package/lib/module/classes/HMSEncoder.js.map +1 -1
  170. package/lib/module/classes/HMSException.js +3 -1
  171. package/lib/module/classes/HMSException.js.map +1 -1
  172. package/lib/module/classes/HMSHLSConfig.js +3 -1
  173. package/lib/module/classes/HMSHLSConfig.js.map +1 -1
  174. package/lib/module/classes/HMSHLSMeetingURLVariant.js +3 -1
  175. package/lib/module/classes/HMSHLSMeetingURLVariant.js.map +1 -1
  176. package/lib/module/classes/HMSHLSRecordingConfig.js +3 -1
  177. package/lib/module/classes/HMSHLSRecordingConfig.js.map +1 -1
  178. package/lib/module/classes/HMSHLSRecordingState.js +3 -1
  179. package/lib/module/classes/HMSHLSRecordingState.js.map +1 -1
  180. package/lib/module/classes/HMSHLSStreamingState.js +3 -1
  181. package/lib/module/classes/HMSHLSStreamingState.js.map +1 -1
  182. package/lib/module/classes/HMSHLSVariant.js +3 -1
  183. package/lib/module/classes/HMSHLSVariant.js.map +1 -1
  184. package/lib/module/classes/HMSLocalAudioStats.js +3 -1
  185. package/lib/module/classes/HMSLocalAudioStats.js.map +1 -1
  186. package/lib/module/classes/HMSLocalAudioTrack.js +3 -1
  187. package/lib/module/classes/HMSLocalAudioTrack.js.map +1 -1
  188. package/lib/module/classes/HMSLocalPeer.js +3 -1
  189. package/lib/module/classes/HMSLocalPeer.js.map +1 -1
  190. package/lib/module/classes/HMSLocalVideoStats.js +3 -1
  191. package/lib/module/classes/HMSLocalVideoStats.js.map +1 -1
  192. package/lib/module/classes/HMSLocalVideoTrack.js +3 -1
  193. package/lib/module/classes/HMSLocalVideoTrack.js.map +1 -1
  194. package/lib/module/classes/HMSLogSettings.js +3 -1
  195. package/lib/module/classes/HMSLogSettings.js.map +1 -1
  196. package/lib/module/classes/HMSLogger.js +3 -1
  197. package/lib/module/classes/HMSLogger.js.map +1 -1
  198. package/lib/module/classes/HMSMessage.js +3 -1
  199. package/lib/module/classes/HMSMessage.js.map +1 -1
  200. package/lib/module/classes/HMSMessageRecipient.js +3 -1
  201. package/lib/module/classes/HMSMessageRecipient.js.map +1 -1
  202. package/lib/module/classes/HMSMessageType.js +6 -0
  203. package/lib/module/classes/HMSMessageType.js.map +1 -0
  204. package/lib/module/classes/HMSNetworkQuality.js +3 -1
  205. package/lib/module/classes/HMSNetworkQuality.js.map +1 -1
  206. package/lib/module/classes/HMSPIPListenerActions.js +5 -0
  207. package/lib/module/classes/HMSPIPListenerActions.js.map +1 -0
  208. package/lib/module/classes/HMSPeer.js +3 -1
  209. package/lib/module/classes/HMSPeer.js.map +1 -1
  210. package/lib/module/classes/HMSPermissions.js +3 -1
  211. package/lib/module/classes/HMSPermissions.js.map +1 -1
  212. package/lib/module/classes/HMSPublishSettings.js +3 -1
  213. package/lib/module/classes/HMSPublishSettings.js.map +1 -1
  214. package/lib/module/classes/HMSRTCStats.js +3 -1
  215. package/lib/module/classes/HMSRTCStats.js.map +1 -1
  216. package/lib/module/classes/HMSRTCStatsReport.js +3 -1
  217. package/lib/module/classes/HMSRTCStatsReport.js.map +1 -1
  218. package/lib/module/classes/HMSRTMPConfig.js +3 -1
  219. package/lib/module/classes/HMSRTMPConfig.js.map +1 -1
  220. package/lib/module/classes/HMSRemoteAudioStats.js +3 -1
  221. package/lib/module/classes/HMSRemoteAudioStats.js.map +1 -1
  222. package/lib/module/classes/HMSRemoteAudioTrack.js +3 -1
  223. package/lib/module/classes/HMSRemoteAudioTrack.js.map +1 -1
  224. package/lib/module/classes/HMSRemotePeer.js +3 -1
  225. package/lib/module/classes/HMSRemotePeer.js.map +1 -1
  226. package/lib/module/classes/HMSRemoteVideoStats.js +3 -1
  227. package/lib/module/classes/HMSRemoteVideoStats.js.map +1 -1
  228. package/lib/module/classes/HMSRemoteVideoTrack.js +3 -1
  229. package/lib/module/classes/HMSRemoteVideoTrack.js.map +1 -1
  230. package/lib/module/classes/HMSRole.js +3 -1
  231. package/lib/module/classes/HMSRole.js.map +1 -1
  232. package/lib/module/classes/HMSRoleChangeRequest.js +3 -1
  233. package/lib/module/classes/HMSRoleChangeRequest.js.map +1 -1
  234. package/lib/module/classes/HMSRoom.js +5 -1
  235. package/lib/module/classes/HMSRoom.js.map +1 -1
  236. package/lib/module/classes/HMSRtmpStreamingState.js +3 -1
  237. package/lib/module/classes/HMSRtmpStreamingState.js.map +1 -1
  238. package/lib/module/classes/HMSRtmpVideoResolution.js +3 -1
  239. package/lib/module/classes/HMSRtmpVideoResolution.js.map +1 -1
  240. package/lib/module/classes/HMSSDK.js +92 -4
  241. package/lib/module/classes/HMSSDK.js.map +1 -1
  242. package/lib/module/classes/HMSServerRecordingState.js +3 -1
  243. package/lib/module/classes/HMSServerRecordingState.js.map +1 -1
  244. package/lib/module/classes/HMSSimulcastLayerSettings.js +3 -1
  245. package/lib/module/classes/HMSSimulcastLayerSettings.js.map +1 -1
  246. package/lib/module/classes/HMSSimulcastSettings.js +3 -1
  247. package/lib/module/classes/HMSSimulcastSettings.js.map +1 -1
  248. package/lib/module/classes/HMSSpeaker.js +3 -1
  249. package/lib/module/classes/HMSSpeaker.js.map +1 -1
  250. package/lib/module/classes/HMSSubscribeSettings.js +3 -1
  251. package/lib/module/classes/HMSSubscribeSettings.js.map +1 -1
  252. package/lib/module/classes/HMSTrack.js +3 -1
  253. package/lib/module/classes/HMSTrack.js.map +1 -1
  254. package/lib/module/classes/HMSTrackSettings.js +3 -1
  255. package/lib/module/classes/HMSTrackSettings.js.map +1 -1
  256. package/lib/module/classes/HMSVideoResolution.js +3 -1
  257. package/lib/module/classes/HMSVideoResolution.js.map +1 -1
  258. package/lib/module/classes/HMSVideoSettings.js +3 -1
  259. package/lib/module/classes/HMSVideoSettings.js.map +1 -1
  260. package/lib/module/classes/HMSVideoTrack.js +3 -1
  261. package/lib/module/classes/HMSVideoTrack.js.map +1 -1
  262. package/lib/module/classes/HMSVideoTrackSettings.js +3 -1
  263. package/lib/module/classes/HMSVideoTrackSettings.js.map +1 -1
  264. package/lib/module/classes/HmsView.js +13 -1
  265. package/lib/module/classes/HmsView.js.map +1 -1
  266. package/lib/module/index.js +2 -0
  267. package/lib/module/index.js.map +1 -1
  268. package/lib/typescript/classes/HMSMessage.d.ts +3 -2
  269. package/lib/typescript/classes/HMSMessageType.d.ts +4 -0
  270. package/lib/typescript/classes/HMSPIPListenerActions.d.ts +3 -0
  271. package/lib/typescript/classes/HMSRoom.d.ts +3 -0
  272. package/lib/typescript/classes/HMSSDK.d.ts +53 -5
  273. package/lib/typescript/index.d.ts +2 -0
  274. package/package.json +1 -1
  275. package/react-native-hms.podspec +3 -2
  276. package/src/classes/HMSEncoder.ts +1 -0
  277. package/src/classes/HMSMessage.ts +3 -2
  278. package/src/classes/HMSMessageType.ts +4 -0
  279. package/src/classes/HMSPIPListenerActions.ts +3 -0
  280. package/src/classes/HMSRoom.ts +4 -0
  281. package/src/classes/HMSSDK.tsx +149 -5
  282. package/src/classes/HmsView.tsx +15 -1
  283. package/src/index.ts +2 -0
  284. package/android/.idea/libraries/Gradle__com_facebook_fbjni_fbjni_java_only_0_2_2.xml +0 -13
  285. package/android/.idea/libraries/Gradle__com_facebook_react_react_native_0_70_3_debug_aar.xml +0 -14
@@ -34,6 +34,8 @@ import type { HMSAudioDevice } from './HMSAudioDevice';
34
34
  import type { HMSAudioMode } from './HMSAudioMode';
35
35
  import type { HMSAudioMixingMode } from './HMSAudioMixingMode';
36
36
  import type { HMSLogSettings } from './HMSLogSettings';
37
+ import { HMSMessageType } from './HMSMessageType';
38
+ import { HMSPIPListenerActions } from './HMSPIPListenerActions';
37
39
 
38
40
  interface HmsViewProps {
39
41
  trackId: string;
@@ -43,6 +45,13 @@ interface HmsViewProps {
43
45
  setZOrderMediaOverlay?: boolean;
44
46
  }
45
47
 
48
+ interface PIPConfig {
49
+ aspectRatio?: [number, number];
50
+ endButton?: boolean;
51
+ audioButton?: boolean;
52
+ videoButton?: boolean;
53
+ }
54
+
46
55
  const {
47
56
  /**
48
57
  * @ignore
@@ -80,6 +89,7 @@ export class HMSSDK {
80
89
  private onRemoteAudioStatsDelegate?: any;
81
90
  private onRemoteVideoStatsDelegate?: any;
82
91
  private onAudioDeviceChangedDelegate?: any;
92
+ private onPIPRoomLeaveDelegate?: any;
83
93
 
84
94
  private constructor(id: string) {
85
95
  this.id = id;
@@ -254,6 +264,13 @@ export class HMSSDK {
254
264
  HMSUpdateListenerActions.ON_AUDIO_DEVICE_CHANGED,
255
265
  this.onAudioDeviceChangedListener
256
266
  );
267
+
268
+ if (Platform.OS === 'android') {
269
+ HmsEventEmitter.addListener(
270
+ HMSPIPListenerActions.ON_PIP_ROOM_LEAVE,
271
+ this.onPIPRoomLeaveListener
272
+ );
273
+ }
257
274
  };
258
275
 
259
276
  /**
@@ -356,6 +373,13 @@ export class HMSSDK {
356
373
  HMSUpdateListenerActions.ON_AUDIO_DEVICE_CHANGED,
357
374
  this.onAudioDeviceChangedListener
358
375
  );
376
+
377
+ if (Platform.OS === 'android') {
378
+ HmsEventEmitter.removeListener(
379
+ HMSPIPListenerActions.ON_PIP_ROOM_LEAVE,
380
+ this.onPIPRoomLeaveListener
381
+ );
382
+ }
359
383
  };
360
384
 
361
385
  /**
@@ -464,7 +488,10 @@ export class HMSSDK {
464
488
  * @param {message: string} and @param {type: string}
465
489
  * @memberof HMSSDK
466
490
  */
467
- sendBroadcastMessage = async (message: string, type: string = 'chat') => {
491
+ sendBroadcastMessage = async (
492
+ message: string,
493
+ type: HMSMessageType = HMSMessageType.CHAT
494
+ ) => {
468
495
  logger?.verbose('#Function sendBroadcastMessage', {
469
496
  message,
470
497
  type: type || null,
@@ -488,7 +515,7 @@ export class HMSSDK {
488
515
  sendGroupMessage = async (
489
516
  message: string,
490
517
  roles: HMSRole[],
491
- type: string = 'chat'
518
+ type: HMSMessageType = HMSMessageType.CHAT
492
519
  ) => {
493
520
  logger?.verbose('#Function sendGroupMessage', {
494
521
  message,
@@ -515,7 +542,7 @@ export class HMSSDK {
515
542
  sendDirectMessage = async (
516
543
  message: string,
517
544
  peer: HMSPeer,
518
- type: string = 'chat'
545
+ type: HMSMessageType = HMSMessageType.CHAT
519
546
  ) => {
520
547
  logger?.verbose('#Function sendDirectMessage', {
521
548
  message,
@@ -612,6 +639,8 @@ export class HMSSDK {
612
639
  };
613
640
 
614
641
  /**
642
+ * @deprecated This function has been deprecated in favor of #Function changeRoleOfPeer
643
+ *
615
644
  * - This function can be used in a situation when we want to change role hence manipulate their
616
645
  * access and rights in the current room, it takes the peer {@link HMSPeer} whom role we want to change,
617
646
  * role {@link HMSRole} which will be the new role for that peer and weather to forcefully change
@@ -636,6 +665,58 @@ export class HMSSDK {
636
665
  return await HMSManager.changeRole(data);
637
666
  };
638
667
 
668
+ /**
669
+ * - This function can be used in a situation when we want to change role hence manipulate their
670
+ * access and rights in the current room, it takes the peer {@link HMSPeer} whom role we want to change,
671
+ * role {@link HMSRole} which will be the new role for that peer and weather to forcefully change
672
+ * the role or ask the to accept the role change request using a boolean force.
673
+ *
674
+ * - if we change the role forcefully the peer's role will be updated without asking the peer
675
+ * otherwise the user will get the roleChangeRequest in roleChangeRequest listener.
676
+ * for more information on this checkout {@link onRoleChangeRequestListener}
677
+ *
678
+ * checkout {@link https://www.100ms.live/docs/react-native/v2/features/change-role} for more info
679
+ *
680
+ * @memberof HMSSDK
681
+ */
682
+ changeRoleOfPeer = async (
683
+ peer: HMSPeer,
684
+ role: HMSRole,
685
+ force: boolean = false
686
+ ) => {
687
+ const data = {
688
+ peerId: peer.peerID,
689
+ role: role.name,
690
+ force: force,
691
+ id: this.id,
692
+ };
693
+ logger?.verbose('#Function changeRoleOfPeer', data);
694
+ return HMSManager.changeRoleOfPeer(data);
695
+ };
696
+
697
+ /**
698
+ * - This function can be used in a situation when we want to change role of multiple peers by specifying their roles.
699
+ * Hence manipulate their access and rights in the current room.
700
+ * It takes the list of roles {@link HMSRole} whom role we want to change
701
+ * and role {@link HMSRole} which will be the new role for peers.
702
+ *
703
+ * - Note that role will be updated without asking the peers.
704
+ * Meaning, Peers will not get the roleChangeRequest in roleChangeRequest listener.
705
+ *
706
+ * checkout {@link https://www.100ms.live/docs/react-native/v2/features/change-role} for more info
707
+ *
708
+ * @memberof HMSSDK
709
+ */
710
+ changeRoleOfPeersWithRoles = async (ofRoles: HMSRole[], toRole: HMSRole) => {
711
+ const data = {
712
+ ofRoles: ofRoles.map((ofRole) => ofRole.name).filter(Boolean),
713
+ toRole: toRole.name,
714
+ id: this.id,
715
+ };
716
+ logger?.verbose('#Function changeRoleOfPeersWithRoles', data);
717
+ return HMSManager.changeRoleOfPeersWithRoles(data);
718
+ };
719
+
639
720
  /**
640
721
  * - This function can be used to manipulate mute status of any track.
641
722
  * - Targeted peer affected by this action will get a callback in onChangeTrackStateRequestListener.
@@ -1188,6 +1269,24 @@ export class HMSSDK {
1188
1269
  }
1189
1270
  };
1190
1271
 
1272
+ setSessionMetaData = async (sessionMetaData: string | null) => {
1273
+ logger?.verbose('#Function setSessionMetaData', {
1274
+ id: this.id,
1275
+ sessionMetaData,
1276
+ });
1277
+ return await HMSManager.setSessionMetaData({
1278
+ id: this.id,
1279
+ sessionMetaData,
1280
+ });
1281
+ };
1282
+
1283
+ getSessionMetaData = async () => {
1284
+ logger?.verbose('#Function getSessionMetaData', {
1285
+ id: this.id,
1286
+ });
1287
+ return await HMSManager.getSessionMetaData({ id: this.id });
1288
+ };
1289
+
1191
1290
  /**
1192
1291
  * - This is a prototype event listener that takes action and listens for updates related to that particular action
1193
1292
  *
@@ -1195,7 +1294,10 @@ export class HMSSDK {
1195
1294
  * @param {*} callback
1196
1295
  * @memberof HMSSDK
1197
1296
  */
1198
- addEventListener = (action: HMSUpdateListenerActions, callback: any) => {
1297
+ addEventListener = (
1298
+ action: HMSUpdateListenerActions | HMSPIPListenerActions,
1299
+ callback: any
1300
+ ) => {
1199
1301
  logger?.verbose('#Function addEventListener', {
1200
1302
  action,
1201
1303
  id: this.id,
@@ -1258,6 +1360,9 @@ export class HMSSDK {
1258
1360
  case HMSUpdateListenerActions.ON_AUDIO_DEVICE_CHANGED:
1259
1361
  this.onAudioDeviceChangedDelegate = callback;
1260
1362
  break;
1363
+ case HMSPIPListenerActions.ON_PIP_ROOM_LEAVE:
1364
+ this.onPIPRoomLeaveDelegate = callback;
1365
+ break;
1261
1366
  default:
1262
1367
  }
1263
1368
  };
@@ -1269,7 +1374,9 @@ export class HMSSDK {
1269
1374
  * @param {*} callback
1270
1375
  * @memberof HMSSDK
1271
1376
  */
1272
- removeEventListener = (action: HMSUpdateListenerActions) => {
1377
+ removeEventListener = (
1378
+ action: HMSUpdateListenerActions | HMSPIPListenerActions
1379
+ ) => {
1273
1380
  logger?.verbose('#Function removeEventListener', { action, id: this.id });
1274
1381
  switch (action) {
1275
1382
  case HMSUpdateListenerActions.ON_PREVIEW:
@@ -1329,6 +1436,9 @@ export class HMSSDK {
1329
1436
  case HMSUpdateListenerActions.ON_AUDIO_DEVICE_CHANGED:
1330
1437
  this.onAudioDeviceChangedDelegate = null;
1331
1438
  break;
1439
+ case HMSPIPListenerActions.ON_PIP_ROOM_LEAVE:
1440
+ this.onPIPRoomLeaveDelegate = null;
1441
+ break;
1332
1442
  default:
1333
1443
  }
1334
1444
  };
@@ -1352,6 +1462,7 @@ export class HMSSDK {
1352
1462
  this.onRoleChangeRequestDelegate = null;
1353
1463
  this.onChangeTrackStateRequestDelegate = null;
1354
1464
  this.onRemovedFromRoomDelegate = null;
1465
+ this.onPIPRoomLeaveDelegate = null;
1355
1466
 
1356
1467
  logger?.verbose('#Function REMOVE_ALL_LISTENER', { id: this.id });
1357
1468
  };
@@ -1693,4 +1804,37 @@ export class HMSSDK {
1693
1804
  });
1694
1805
  }
1695
1806
  };
1807
+
1808
+ onPIPRoomLeaveListener = (data: { id: string }) => {
1809
+ if (data.id !== this.id) {
1810
+ return;
1811
+ }
1812
+ this.muteStatus = undefined;
1813
+ this?.appStateSubscription?.remove();
1814
+
1815
+ if (this.onPIPRoomLeaveDelegate) {
1816
+ logger?.verbose('#Listener onPIPRoomLeave_CALL', data);
1817
+ this.onPIPRoomLeaveDelegate({
1818
+ ...data,
1819
+ });
1820
+ }
1821
+ };
1822
+
1823
+ async isPipModeSupported(): Promise<undefined | boolean> {
1824
+ return HMSManager.handlePipActions('isPipModeSupported', { id: this.id });
1825
+ }
1826
+
1827
+ async enablePipMode(data?: PIPConfig): Promise<undefined | boolean> {
1828
+ return HMSManager.handlePipActions('enablePipMode', {
1829
+ ...data,
1830
+ id: this.id,
1831
+ });
1832
+ }
1833
+
1834
+ async setPipParams(data?: PIPConfig): Promise<undefined | boolean> {
1835
+ return HMSManager.handlePipActions('setPictureInPictureParams', {
1836
+ ...data,
1837
+ id: this.id,
1838
+ });
1839
+ }
1696
1840
  }
@@ -46,6 +46,7 @@ export const HmsViewComponent = React.forwardRef<any, HmsComponentProps>(
46
46
  } = props;
47
47
 
48
48
  const hmsViewRef: any = useRef();
49
+ const timerRef = useRef<null | NodeJS.Timeout>(null);
49
50
  const [tempVal, setTempVal] = useState(0);
50
51
  const data = {
51
52
  trackId,
@@ -53,10 +54,23 @@ export const HmsViewComponent = React.forwardRef<any, HmsComponentProps>(
53
54
  mirror,
54
55
  };
55
56
 
57
+ useEffect(() => {
58
+ return () => {
59
+ if (timerRef.current) {
60
+ clearTimeout(timerRef.current);
61
+ }
62
+ };
63
+ }, []);
64
+
56
65
  const onChange = (values: any) => {
57
66
  console.log(values, 'values');
58
- setTimeout(() => {
67
+ if (timerRef.current) {
68
+ clearTimeout(timerRef.current);
69
+ }
70
+
71
+ timerRef.current = setTimeout(() => {
59
72
  setTempVal(1);
73
+ timerRef.current = null;
60
74
  }, 2000);
61
75
  };
62
76
 
package/src/index.ts CHANGED
@@ -73,6 +73,8 @@ export * from './classes/HMSAudioMixerSource';
73
73
  export * from './classes/HMSTrackSettingsInitState';
74
74
  export * from './classes/HMSLogSettings';
75
75
  export * from './classes/HMSLogAlarmManager';
76
+ export * from './classes/HMSMessageType';
77
+ export * from './classes/HMSPIPListenerActions';
76
78
 
77
79
  import { HMSSDK as HmsManager } from './classes/HMSSDK';
78
80
  export default HmsManager;
@@ -1,13 +0,0 @@
1
- <component name="libraryTable">
2
- <library name="Gradle: com.facebook.fbjni:fbjni-java-only:0.2.2">
3
- <CLASSES>
4
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.facebook.fbjni/fbjni-java-only/0.2.2/de5152e6b7ce18dd242be23994e702309e66e7da/fbjni-java-only-0.2.2.jar!/" />
5
- </CLASSES>
6
- <JAVADOC>
7
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.facebook.fbjni/fbjni-java-only/0.2.2/3ae63793d5de5510511fc9b06e9b0a962b0c0f1b/fbjni-java-only-0.2.2-javadoc.jar!/" />
8
- </JAVADOC>
9
- <SOURCES>
10
- <root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.facebook.fbjni/fbjni-java-only/0.2.2/151550a3db34fafa434c02050086e78fa9c0b44f/fbjni-java-only-0.2.2-sources.jar!/" />
11
- </SOURCES>
12
- </library>
13
- </component>
@@ -1,14 +0,0 @@
1
- <component name="libraryTable">
2
- <library name="Gradle: com.facebook.react:react-native:0.70.3:debug@aar">
3
- <ANNOTATIONS>
4
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-3/573f2f2b52609e6becf85013f675e3c1/transformed/react-native-0.70.3-debug/annotations.zip!/" />
5
- </ANNOTATIONS>
6
- <CLASSES>
7
- <root url="jar://$USER_HOME$/.gradle/caches/transforms-3/573f2f2b52609e6becf85013f675e3c1/transformed/react-native-0.70.3-debug/jars/classes.jar!/" />
8
- <root url="file://$USER_HOME$/.gradle/caches/transforms-3/573f2f2b52609e6becf85013f675e3c1/transformed/react-native-0.70.3-debug/res" />
9
- <root url="file://$USER_HOME$/.gradle/caches/transforms-3/573f2f2b52609e6becf85013f675e3c1/transformed/react-native-0.70.3-debug/AndroidManifest.xml" />
10
- </CLASSES>
11
- <JAVADOC />
12
- <SOURCES />
13
- </library>
14
- </component>