@100mslive/react-native-hms 0.9.93 → 1.0.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 (394) hide show
  1. package/README.md +54 -13
  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_facebook_soloader_annotation_0_10_4.xml +13 -0
  14. package/android/.idea/libraries/Gradle__com_facebook_soloader_nativeloader_0_10_4.xml +13 -0
  15. package/android/.idea/libraries/Gradle__com_facebook_soloader_soloader_0_10_4_aar.xml +14 -0
  16. package/android/.idea/libraries/Gradle__com_github_100mslive_android_sdk_lib_2_5_1_aar.xml +10 -0
  17. package/android/.idea/libraries/Gradle__com_github_100mslive_webrtc_m104_hms_1_3_aar.xml +10 -0
  18. package/android/.idea/modules/android.androidTest.iml +35 -33
  19. package/android/.idea/modules/android.main.iml +36 -33
  20. package/android/.idea/modules/android.unitTest.iml +35 -33
  21. package/android/.idea/sonarlint/issuestore/3/c/3c46088b6add3088181589d8ed726652742b6221 +5 -0
  22. package/android/.idea/sonarlint/issuestore/a/8/a8c9f5ddd88723818e51ae3cf8693d02355a8691 +0 -0
  23. package/android/.idea/sonarlint/issuestore/index.pb +5 -1
  24. package/android/build.gradle +12 -10
  25. package/android/src/main/java/com/reactnativehmssdk/HMSDecoder.kt +8 -25
  26. package/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt +119 -89
  27. package/android/src/main/java/com/reactnativehmssdk/HMSManager.kt +196 -0
  28. package/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +99 -40
  29. package/android/src/main/java/com/reactnativehmssdk/HMSView.kt +1 -1
  30. package/ios/HMSDecoder.swift +17 -15
  31. package/ios/HMSHelper.swift +52 -22
  32. package/ios/HMSManager.m +7 -0
  33. package/ios/HMSManager.swift +62 -14
  34. package/ios/HMSRNSDK.swift +71 -30
  35. package/ios/Hmssdk.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  36. package/ios/Hmssdk.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  37. package/ios/Hmssdk.xcodeproj/project.xcworkspace/xcuserdata/yogesh.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  38. package/ios/Hmssdk.xcodeproj/xcuserdata/yogesh.xcuserdatad/xcschemes/xcschememanagement.plist +14 -0
  39. package/lib/commonjs/classes/HMSAudioCodec.js +0 -1
  40. package/lib/commonjs/classes/HMSAudioCodec.js.map +1 -1
  41. package/lib/commonjs/classes/HMSAudioDevice.js +0 -1
  42. package/lib/commonjs/classes/HMSAudioDevice.js.map +1 -1
  43. package/lib/commonjs/classes/HMSAudioFilePlayerNode.js +0 -14
  44. package/lib/commonjs/classes/HMSAudioFilePlayerNode.js.map +1 -1
  45. package/lib/commonjs/classes/HMSAudioMixerSource.js +3 -7
  46. package/lib/commonjs/classes/HMSAudioMixerSource.js.map +1 -1
  47. package/lib/commonjs/classes/HMSAudioMixingMode.js +0 -1
  48. package/lib/commonjs/classes/HMSAudioMixingMode.js.map +1 -1
  49. package/lib/commonjs/classes/HMSAudioMode.js +0 -1
  50. package/lib/commonjs/classes/HMSAudioMode.js.map +1 -1
  51. package/lib/commonjs/classes/HMSAudioNode.js +3 -8
  52. package/lib/commonjs/classes/HMSAudioNode.js.map +1 -1
  53. package/lib/commonjs/classes/HMSAudioSettings.js +3 -7
  54. package/lib/commonjs/classes/HMSAudioSettings.js.map +1 -1
  55. package/lib/commonjs/classes/HMSAudioTrack.js +0 -4
  56. package/lib/commonjs/classes/HMSAudioTrack.js.map +1 -1
  57. package/lib/commonjs/classes/HMSAudioTrackSettings.js +9 -17
  58. package/lib/commonjs/classes/HMSAudioTrackSettings.js.map +1 -1
  59. package/lib/commonjs/classes/HMSBrowserRecordingState.js +3 -9
  60. package/lib/commonjs/classes/HMSBrowserRecordingState.js.map +1 -1
  61. package/lib/commonjs/classes/HMSCameraFacing.js +0 -1
  62. package/lib/commonjs/classes/HMSCameraFacing.js.map +1 -1
  63. package/lib/commonjs/classes/HMSChangeTrackStateRequest.js +3 -8
  64. package/lib/commonjs/classes/HMSChangeTrackStateRequest.js.map +1 -1
  65. package/lib/commonjs/classes/HMSConfig.js +3 -10
  66. package/lib/commonjs/classes/HMSConfig.js.map +1 -1
  67. package/lib/commonjs/classes/HMSEncoder.js +12 -86
  68. package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
  69. package/lib/commonjs/classes/HMSException.js +5 -12
  70. package/lib/commonjs/classes/HMSException.js.map +1 -1
  71. package/lib/commonjs/classes/HMSHLSConfig.js +3 -7
  72. package/lib/commonjs/classes/HMSHLSConfig.js.map +1 -1
  73. package/lib/commonjs/classes/HMSHLSMeetingURLVariant.js +3 -7
  74. package/lib/commonjs/classes/HMSHLSMeetingURLVariant.js.map +1 -1
  75. package/lib/commonjs/classes/HMSHLSRecordingConfig.js +3 -7
  76. package/lib/commonjs/classes/HMSHLSRecordingConfig.js.map +1 -1
  77. package/lib/commonjs/classes/HMSHLSRecordingState.js +3 -9
  78. package/lib/commonjs/classes/HMSHLSRecordingState.js.map +1 -1
  79. package/lib/commonjs/classes/HMSHLSStreamingState.js +3 -7
  80. package/lib/commonjs/classes/HMSHLSStreamingState.js.map +1 -1
  81. package/lib/commonjs/classes/HMSHLSVariant.js +3 -9
  82. package/lib/commonjs/classes/HMSHLSVariant.js.map +1 -1
  83. package/lib/commonjs/classes/HMSHelper.js +0 -3
  84. package/lib/commonjs/classes/HMSHelper.js.map +1 -1
  85. package/lib/commonjs/classes/HMSLocalAudioStats.js +3 -8
  86. package/lib/commonjs/classes/HMSLocalAudioStats.js.map +1 -1
  87. package/lib/commonjs/classes/HMSLocalAudioTrack.js +3 -16
  88. package/lib/commonjs/classes/HMSLocalAudioTrack.js.map +1 -1
  89. package/lib/commonjs/classes/HMSLocalPeer.js +3 -15
  90. package/lib/commonjs/classes/HMSLocalPeer.js.map +1 -1
  91. package/lib/commonjs/classes/HMSLocalVideoStats.js +3 -10
  92. package/lib/commonjs/classes/HMSLocalVideoStats.js.map +1 -1
  93. package/lib/commonjs/classes/HMSLocalVideoTrack.js +3 -16
  94. package/lib/commonjs/classes/HMSLocalVideoTrack.js.map +1 -1
  95. package/lib/commonjs/classes/HMSLogAlarmManager.js +14 -0
  96. package/lib/commonjs/classes/HMSLogAlarmManager.js.map +1 -0
  97. package/lib/commonjs/classes/HMSLogLevel.js +0 -1
  98. package/lib/commonjs/classes/HMSLogLevel.js.map +1 -1
  99. package/lib/commonjs/classes/HMSLogSettings.js +21 -0
  100. package/lib/commonjs/classes/HMSLogSettings.js.map +1 -0
  101. package/lib/commonjs/classes/HMSLogger.js +3 -31
  102. package/lib/commonjs/classes/HMSLogger.js.map +1 -1
  103. package/lib/commonjs/classes/HMSMessage.js +4 -10
  104. package/lib/commonjs/classes/HMSMessage.js.map +1 -1
  105. package/lib/commonjs/classes/HMSMessageRecipient.js +3 -8
  106. package/lib/commonjs/classes/HMSMessageRecipient.js.map +1 -1
  107. package/lib/commonjs/classes/HMSMessageRecipientType.js +0 -1
  108. package/lib/commonjs/classes/HMSMessageRecipientType.js.map +1 -1
  109. package/lib/commonjs/classes/HMSMessageType.js +13 -0
  110. package/lib/commonjs/classes/HMSMessageType.js.map +1 -0
  111. package/lib/commonjs/classes/HMSMicNode.js +0 -7
  112. package/lib/commonjs/classes/HMSMicNode.js.map +1 -1
  113. package/lib/commonjs/classes/HMSNetworkQuality.js +3 -6
  114. package/lib/commonjs/classes/HMSNetworkQuality.js.map +1 -1
  115. package/lib/commonjs/classes/HMSPeer.js +3 -16
  116. package/lib/commonjs/classes/HMSPeer.js.map +1 -1
  117. package/lib/commonjs/classes/HMSPeerUpdate.js +0 -1
  118. package/lib/commonjs/classes/HMSPeerUpdate.js.map +1 -1
  119. package/lib/commonjs/classes/HMSPermissions.js +3 -13
  120. package/lib/commonjs/classes/HMSPermissions.js.map +1 -1
  121. package/lib/commonjs/classes/HMSPublishSettings.js +3 -12
  122. package/lib/commonjs/classes/HMSPublishSettings.js.map +1 -1
  123. package/lib/commonjs/classes/HMSRTCStats.js +3 -12
  124. package/lib/commonjs/classes/HMSRTCStats.js.map +1 -1
  125. package/lib/commonjs/classes/HMSRTCStatsReport.js +3 -8
  126. package/lib/commonjs/classes/HMSRTCStatsReport.js.map +1 -1
  127. package/lib/commonjs/classes/HMSRTMPConfig.js +3 -9
  128. package/lib/commonjs/classes/HMSRTMPConfig.js.map +1 -1
  129. package/lib/commonjs/classes/HMSRemoteAudioStats.js +3 -10
  130. package/lib/commonjs/classes/HMSRemoteAudioStats.js.map +1 -1
  131. package/lib/commonjs/classes/HMSRemoteAudioTrack.js +3 -11
  132. package/lib/commonjs/classes/HMSRemoteAudioTrack.js.map +1 -1
  133. package/lib/commonjs/classes/HMSRemotePeer.js +3 -15
  134. package/lib/commonjs/classes/HMSRemotePeer.js.map +1 -1
  135. package/lib/commonjs/classes/HMSRemoteVideoStats.js +3 -12
  136. package/lib/commonjs/classes/HMSRemoteVideoStats.js.map +1 -1
  137. package/lib/commonjs/classes/HMSRemoteVideoTrack.js +3 -13
  138. package/lib/commonjs/classes/HMSRemoteVideoTrack.js.map +1 -1
  139. package/lib/commonjs/classes/HMSRole.js +3 -13
  140. package/lib/commonjs/classes/HMSRole.js.map +1 -1
  141. package/lib/commonjs/classes/HMSRoleChangeRequest.js +3 -7
  142. package/lib/commonjs/classes/HMSRoleChangeRequest.js.map +1 -1
  143. package/lib/commonjs/classes/HMSRoom.js +5 -16
  144. package/lib/commonjs/classes/HMSRoom.js.map +1 -1
  145. package/lib/commonjs/classes/HMSRoomUpdate.js +0 -1
  146. package/lib/commonjs/classes/HMSRoomUpdate.js.map +1 -1
  147. package/lib/commonjs/classes/HMSRtmpStreamingState.js +3 -9
  148. package/lib/commonjs/classes/HMSRtmpStreamingState.js.map +1 -1
  149. package/lib/commonjs/classes/HMSRtmpVideoResolution.js +3 -7
  150. package/lib/commonjs/classes/HMSRtmpVideoResolution.js.map +1 -1
  151. package/lib/commonjs/classes/HMSSDK.js +172 -382
  152. package/lib/commonjs/classes/HMSSDK.js.map +1 -1
  153. package/lib/commonjs/classes/HMSScreenBroadcastAudioReceiverNode.js +0 -4
  154. package/lib/commonjs/classes/HMSScreenBroadcastAudioReceiverNode.js.map +1 -1
  155. package/lib/commonjs/classes/HMSServerRecordingState.js +3 -8
  156. package/lib/commonjs/classes/HMSServerRecordingState.js.map +1 -1
  157. package/lib/commonjs/classes/HMSSimulcastLayerSettings.js +3 -9
  158. package/lib/commonjs/classes/HMSSimulcastLayerSettings.js.map +1 -1
  159. package/lib/commonjs/classes/HMSSimulcastSettings.js +3 -7
  160. package/lib/commonjs/classes/HMSSimulcastSettings.js.map +1 -1
  161. package/lib/commonjs/classes/HMSSpeaker.js +3 -8
  162. package/lib/commonjs/classes/HMSSpeaker.js.map +1 -1
  163. package/lib/commonjs/classes/HMSSubscribeSettings.js +5 -10
  164. package/lib/commonjs/classes/HMSSubscribeSettings.js.map +1 -1
  165. package/lib/commonjs/classes/HMSTrack.js +3 -12
  166. package/lib/commonjs/classes/HMSTrack.js.map +1 -1
  167. package/lib/commonjs/classes/HMSTrackSettings.js +3 -10
  168. package/lib/commonjs/classes/HMSTrackSettings.js.map +1 -1
  169. package/lib/commonjs/classes/HMSTrackSettingsInitState.js +13 -0
  170. package/lib/commonjs/classes/HMSTrackSettingsInitState.js.map +1 -0
  171. package/lib/commonjs/classes/HMSTrackSource.js +0 -1
  172. package/lib/commonjs/classes/HMSTrackSource.js.map +1 -1
  173. package/lib/commonjs/classes/HMSTrackType.js +0 -1
  174. package/lib/commonjs/classes/HMSTrackType.js.map +1 -1
  175. package/lib/commonjs/classes/HMSTrackUpdate.js +0 -1
  176. package/lib/commonjs/classes/HMSTrackUpdate.js.map +1 -1
  177. package/lib/commonjs/classes/HMSUpdateListenerActions.js +0 -1
  178. package/lib/commonjs/classes/HMSUpdateListenerActions.js.map +1 -1
  179. package/lib/commonjs/classes/HMSVideoCodec.js +0 -1
  180. package/lib/commonjs/classes/HMSVideoCodec.js.map +1 -1
  181. package/lib/commonjs/classes/HMSVideoResolution.js +3 -7
  182. package/lib/commonjs/classes/HMSVideoResolution.js.map +1 -1
  183. package/lib/commonjs/classes/HMSVideoSettings.js +3 -10
  184. package/lib/commonjs/classes/HMSVideoSettings.js.map +1 -1
  185. package/lib/commonjs/classes/HMSVideoTrack.js +3 -12
  186. package/lib/commonjs/classes/HMSVideoTrack.js.map +1 -1
  187. package/lib/commonjs/classes/HMSVideoTrackSettings.js +14 -24
  188. package/lib/commonjs/classes/HMSVideoTrackSettings.js.map +1 -1
  189. package/lib/commonjs/classes/HMSVideoViewMode.js +0 -1
  190. package/lib/commonjs/classes/HMSVideoViewMode.js.map +1 -1
  191. package/lib/commonjs/classes/HmsView.js +20 -26
  192. package/lib/commonjs/classes/HmsView.js.map +1 -1
  193. package/lib/commonjs/index.js +48 -144
  194. package/lib/commonjs/index.js.map +1 -1
  195. package/lib/module/classes/HMSAudioCodec.js +0 -1
  196. package/lib/module/classes/HMSAudioCodec.js.map +1 -1
  197. package/lib/module/classes/HMSAudioDevice.js +0 -1
  198. package/lib/module/classes/HMSAudioDevice.js.map +1 -1
  199. package/lib/module/classes/HMSAudioFilePlayerNode.js +0 -9
  200. package/lib/module/classes/HMSAudioFilePlayerNode.js.map +1 -1
  201. package/lib/module/classes/HMSAudioMixerSource.js +3 -5
  202. package/lib/module/classes/HMSAudioMixerSource.js.map +1 -1
  203. package/lib/module/classes/HMSAudioMixingMode.js +0 -1
  204. package/lib/module/classes/HMSAudioMixingMode.js.map +1 -1
  205. package/lib/module/classes/HMSAudioMode.js +0 -1
  206. package/lib/module/classes/HMSAudioMode.js.map +1 -1
  207. package/lib/module/classes/HMSAudioNode.js +3 -6
  208. package/lib/module/classes/HMSAudioNode.js.map +1 -1
  209. package/lib/module/classes/HMSAudioSettings.js +3 -5
  210. package/lib/module/classes/HMSAudioSettings.js.map +1 -1
  211. package/lib/module/classes/HMSAudioTrack.js +0 -1
  212. package/lib/module/classes/HMSAudioTrack.js.map +1 -1
  213. package/lib/module/classes/HMSAudioTrackSettings.js +9 -15
  214. package/lib/module/classes/HMSAudioTrackSettings.js.map +1 -1
  215. package/lib/module/classes/HMSBrowserRecordingState.js +3 -7
  216. package/lib/module/classes/HMSBrowserRecordingState.js.map +1 -1
  217. package/lib/module/classes/HMSCameraFacing.js +0 -1
  218. package/lib/module/classes/HMSCameraFacing.js.map +1 -1
  219. package/lib/module/classes/HMSChangeTrackStateRequest.js +3 -6
  220. package/lib/module/classes/HMSChangeTrackStateRequest.js.map +1 -1
  221. package/lib/module/classes/HMSConfig.js +3 -8
  222. package/lib/module/classes/HMSConfig.js.map +1 -1
  223. package/lib/module/classes/HMSEncoder.js +12 -54
  224. package/lib/module/classes/HMSEncoder.js.map +1 -1
  225. package/lib/module/classes/HMSException.js +5 -10
  226. package/lib/module/classes/HMSException.js.map +1 -1
  227. package/lib/module/classes/HMSHLSConfig.js +3 -5
  228. package/lib/module/classes/HMSHLSConfig.js.map +1 -1
  229. package/lib/module/classes/HMSHLSMeetingURLVariant.js +3 -5
  230. package/lib/module/classes/HMSHLSMeetingURLVariant.js.map +1 -1
  231. package/lib/module/classes/HMSHLSRecordingConfig.js +3 -5
  232. package/lib/module/classes/HMSHLSRecordingConfig.js.map +1 -1
  233. package/lib/module/classes/HMSHLSRecordingState.js +3 -7
  234. package/lib/module/classes/HMSHLSRecordingState.js.map +1 -1
  235. package/lib/module/classes/HMSHLSStreamingState.js +3 -5
  236. package/lib/module/classes/HMSHLSStreamingState.js.map +1 -1
  237. package/lib/module/classes/HMSHLSVariant.js +3 -7
  238. package/lib/module/classes/HMSHLSVariant.js.map +1 -1
  239. package/lib/module/classes/HMSHelper.js +0 -1
  240. package/lib/module/classes/HMSHelper.js.map +1 -1
  241. package/lib/module/classes/HMSLocalAudioStats.js +3 -6
  242. package/lib/module/classes/HMSLocalAudioStats.js.map +1 -1
  243. package/lib/module/classes/HMSLocalAudioTrack.js +3 -10
  244. package/lib/module/classes/HMSLocalAudioTrack.js.map +1 -1
  245. package/lib/module/classes/HMSLocalPeer.js +3 -10
  246. package/lib/module/classes/HMSLocalPeer.js.map +1 -1
  247. package/lib/module/classes/HMSLocalVideoStats.js +3 -8
  248. package/lib/module/classes/HMSLocalVideoStats.js.map +1 -1
  249. package/lib/module/classes/HMSLocalVideoTrack.js +3 -10
  250. package/lib/module/classes/HMSLocalVideoTrack.js.map +1 -1
  251. package/lib/module/classes/HMSLogAlarmManager.js +7 -0
  252. package/lib/module/classes/HMSLogAlarmManager.js.map +1 -0
  253. package/lib/module/classes/HMSLogLevel.js +0 -1
  254. package/lib/module/classes/HMSLogLevel.js.map +1 -1
  255. package/lib/module/classes/HMSLogSettings.js +14 -0
  256. package/lib/module/classes/HMSLogSettings.js.map +1 -0
  257. package/lib/module/classes/HMSLogger.js +3 -23
  258. package/lib/module/classes/HMSLogger.js.map +1 -1
  259. package/lib/module/classes/HMSMessage.js +4 -8
  260. package/lib/module/classes/HMSMessage.js.map +1 -1
  261. package/lib/module/classes/HMSMessageRecipient.js +3 -6
  262. package/lib/module/classes/HMSMessageRecipient.js.map +1 -1
  263. package/lib/module/classes/HMSMessageRecipientType.js +0 -1
  264. package/lib/module/classes/HMSMessageRecipientType.js.map +1 -1
  265. package/lib/module/classes/HMSMessageType.js +6 -0
  266. package/lib/module/classes/HMSMessageType.js.map +1 -0
  267. package/lib/module/classes/HMSMicNode.js +0 -2
  268. package/lib/module/classes/HMSMicNode.js.map +1 -1
  269. package/lib/module/classes/HMSNetworkQuality.js +3 -4
  270. package/lib/module/classes/HMSNetworkQuality.js.map +1 -1
  271. package/lib/module/classes/HMSPeer.js +3 -14
  272. package/lib/module/classes/HMSPeer.js.map +1 -1
  273. package/lib/module/classes/HMSPeerUpdate.js +0 -1
  274. package/lib/module/classes/HMSPeerUpdate.js.map +1 -1
  275. package/lib/module/classes/HMSPermissions.js +3 -11
  276. package/lib/module/classes/HMSPermissions.js.map +1 -1
  277. package/lib/module/classes/HMSPublishSettings.js +3 -10
  278. package/lib/module/classes/HMSPublishSettings.js.map +1 -1
  279. package/lib/module/classes/HMSRTCStats.js +3 -10
  280. package/lib/module/classes/HMSRTCStats.js.map +1 -1
  281. package/lib/module/classes/HMSRTCStatsReport.js +3 -6
  282. package/lib/module/classes/HMSRTCStatsReport.js.map +1 -1
  283. package/lib/module/classes/HMSRTMPConfig.js +3 -7
  284. package/lib/module/classes/HMSRTMPConfig.js.map +1 -1
  285. package/lib/module/classes/HMSRemoteAudioStats.js +3 -8
  286. package/lib/module/classes/HMSRemoteAudioStats.js.map +1 -1
  287. package/lib/module/classes/HMSRemoteAudioTrack.js +3 -5
  288. package/lib/module/classes/HMSRemoteAudioTrack.js.map +1 -1
  289. package/lib/module/classes/HMSRemotePeer.js +3 -10
  290. package/lib/module/classes/HMSRemotePeer.js.map +1 -1
  291. package/lib/module/classes/HMSRemoteVideoStats.js +3 -10
  292. package/lib/module/classes/HMSRemoteVideoStats.js.map +1 -1
  293. package/lib/module/classes/HMSRemoteVideoTrack.js +3 -7
  294. package/lib/module/classes/HMSRemoteVideoTrack.js.map +1 -1
  295. package/lib/module/classes/HMSRole.js +3 -11
  296. package/lib/module/classes/HMSRole.js.map +1 -1
  297. package/lib/module/classes/HMSRoleChangeRequest.js +3 -5
  298. package/lib/module/classes/HMSRoleChangeRequest.js.map +1 -1
  299. package/lib/module/classes/HMSRoom.js +5 -14
  300. package/lib/module/classes/HMSRoom.js.map +1 -1
  301. package/lib/module/classes/HMSRoomUpdate.js +0 -1
  302. package/lib/module/classes/HMSRoomUpdate.js.map +1 -1
  303. package/lib/module/classes/HMSRtmpStreamingState.js +3 -7
  304. package/lib/module/classes/HMSRtmpStreamingState.js.map +1 -1
  305. package/lib/module/classes/HMSRtmpVideoResolution.js +3 -5
  306. package/lib/module/classes/HMSRtmpVideoResolution.js.map +1 -1
  307. package/lib/module/classes/HMSSDK.js +172 -336
  308. package/lib/module/classes/HMSSDK.js.map +1 -1
  309. package/lib/module/classes/HMSScreenBroadcastAudioReceiverNode.js +0 -1
  310. package/lib/module/classes/HMSScreenBroadcastAudioReceiverNode.js.map +1 -1
  311. package/lib/module/classes/HMSServerRecordingState.js +3 -6
  312. package/lib/module/classes/HMSServerRecordingState.js.map +1 -1
  313. package/lib/module/classes/HMSSimulcastLayerSettings.js +3 -7
  314. package/lib/module/classes/HMSSimulcastLayerSettings.js.map +1 -1
  315. package/lib/module/classes/HMSSimulcastSettings.js +3 -5
  316. package/lib/module/classes/HMSSimulcastSettings.js.map +1 -1
  317. package/lib/module/classes/HMSSpeaker.js +3 -6
  318. package/lib/module/classes/HMSSpeaker.js.map +1 -1
  319. package/lib/module/classes/HMSSubscribeSettings.js +5 -8
  320. package/lib/module/classes/HMSSubscribeSettings.js.map +1 -1
  321. package/lib/module/classes/HMSTrack.js +3 -10
  322. package/lib/module/classes/HMSTrack.js.map +1 -1
  323. package/lib/module/classes/HMSTrackSettings.js +3 -8
  324. package/lib/module/classes/HMSTrackSettings.js.map +1 -1
  325. package/lib/module/classes/HMSTrackSettingsInitState.js +6 -0
  326. package/lib/module/classes/HMSTrackSettingsInitState.js.map +1 -0
  327. package/lib/module/classes/HMSTrackSource.js +0 -1
  328. package/lib/module/classes/HMSTrackSource.js.map +1 -1
  329. package/lib/module/classes/HMSTrackType.js +0 -1
  330. package/lib/module/classes/HMSTrackType.js.map +1 -1
  331. package/lib/module/classes/HMSTrackUpdate.js +0 -1
  332. package/lib/module/classes/HMSTrackUpdate.js.map +1 -1
  333. package/lib/module/classes/HMSUpdateListenerActions.js +0 -1
  334. package/lib/module/classes/HMSUpdateListenerActions.js.map +1 -1
  335. package/lib/module/classes/HMSVideoCodec.js +0 -1
  336. package/lib/module/classes/HMSVideoCodec.js.map +1 -1
  337. package/lib/module/classes/HMSVideoResolution.js +3 -5
  338. package/lib/module/classes/HMSVideoResolution.js.map +1 -1
  339. package/lib/module/classes/HMSVideoSettings.js +3 -8
  340. package/lib/module/classes/HMSVideoSettings.js.map +1 -1
  341. package/lib/module/classes/HMSVideoTrack.js +3 -9
  342. package/lib/module/classes/HMSVideoTrack.js.map +1 -1
  343. package/lib/module/classes/HMSVideoTrackSettings.js +14 -22
  344. package/lib/module/classes/HMSVideoTrackSettings.js.map +1 -1
  345. package/lib/module/classes/HMSVideoViewMode.js +0 -1
  346. package/lib/module/classes/HMSVideoViewMode.js.map +1 -1
  347. package/lib/module/classes/HmsView.js +20 -15
  348. package/lib/module/classes/HmsView.js.map +1 -1
  349. package/lib/module/index.js +4 -0
  350. package/lib/module/index.js.map +1 -1
  351. package/lib/typescript/classes/HMSAudioTrackSettings.d.ts +5 -7
  352. package/lib/typescript/classes/HMSBrowserRecordingState.d.ts +2 -2
  353. package/lib/typescript/classes/HMSEncoder.d.ts +2 -5
  354. package/lib/typescript/classes/HMSLogAlarmManager.d.ts +5 -0
  355. package/lib/typescript/classes/HMSLogSettings.d.ts +12 -0
  356. package/lib/typescript/classes/HMSMessage.d.ts +3 -2
  357. package/lib/typescript/classes/HMSMessageType.d.ts +4 -0
  358. package/lib/typescript/classes/HMSRoom.d.ts +3 -0
  359. package/lib/typescript/classes/HMSRtmpStreamingState.d.ts +2 -2
  360. package/lib/typescript/classes/HMSSDK.d.ts +52 -17
  361. package/lib/typescript/classes/HMSServerRecordingState.d.ts +2 -2
  362. package/lib/typescript/classes/HMSSubscribeSettings.d.ts +2 -2
  363. package/lib/typescript/classes/HMSTrackSettings.d.ts +0 -2
  364. package/lib/typescript/classes/HMSTrackSettingsInitState.d.ts +4 -0
  365. package/lib/typescript/classes/HMSVideoTrack.d.ts +0 -2
  366. package/lib/typescript/classes/HMSVideoTrackSettings.d.ts +10 -15
  367. package/lib/typescript/index.d.ts +4 -0
  368. package/package.json +1 -1
  369. package/react-native-hms.podspec +2 -2
  370. package/src/classes/HMSAudioTrackSettings.ts +8 -10
  371. package/src/classes/HMSBrowserRecordingState.ts +2 -2
  372. package/src/classes/HMSEncoder.ts +12 -20
  373. package/src/classes/HMSLogAlarmManager.ts +5 -0
  374. package/src/classes/HMSLogSettings.ts +18 -0
  375. package/src/classes/HMSMessage.ts +3 -2
  376. package/src/classes/HMSMessageType.ts +4 -0
  377. package/src/classes/HMSRoom.ts +4 -0
  378. package/src/classes/HMSRtmpStreamingState.ts +2 -2
  379. package/src/classes/HMSSDK.tsx +165 -149
  380. package/src/classes/HMSServerRecordingState.ts +2 -2
  381. package/src/classes/HMSSubscribeSettings.ts +3 -3
  382. package/src/classes/HMSTrackSettings.ts +0 -3
  383. package/src/classes/HMSTrackSettingsInitState.ts +4 -0
  384. package/src/classes/HMSVideoTrack.ts +0 -2
  385. package/src/classes/HMSVideoTrackSettings.ts +14 -21
  386. package/src/classes/HmsView.tsx +15 -1
  387. package/src/index.ts +4 -0
  388. package/android/.idea/libraries/Gradle__com_facebook_fbjni_fbjni_java_only_0_2_2.xml +0 -13
  389. package/android/.idea/libraries/Gradle__com_facebook_react_react_native_0_69_1_debug_aar.xml +0 -14
  390. package/android/.idea/libraries/Gradle__com_facebook_soloader_annotation_0_10_3.xml +0 -13
  391. package/android/.idea/libraries/Gradle__com_facebook_soloader_nativeloader_0_10_3.xml +0 -13
  392. package/android/.idea/libraries/Gradle__com_facebook_soloader_soloader_0_10_3_aar.xml +0 -15
  393. package/android/.idea/libraries/Gradle__com_github_100mslive_android_sdk_lib_2_4_7_aar.xml +0 -11
  394. package/android/.idea/libraries/Gradle__com_github_100mslive_webrtc_m97_hms_1_1_aar.xml +0 -11
@@ -10,15 +10,12 @@ import android.view.PixelCopy
10
10
  import android.webkit.URLUtil
11
11
  import androidx.annotation.RequiresApi
12
12
  import com.facebook.react.bridge.*
13
- import com.facebook.react.bridge.ReadableArray
14
- import com.facebook.react.bridge.ReadableMap
15
13
  import com.facebook.react.uimanager.events.RCTEventEmitter
16
14
  import java.io.ByteArrayOutputStream
17
15
  import java.util.*
18
16
  import live.hms.video.audio.HMSAudioManager
19
17
  import live.hms.video.error.HMSException
20
- import live.hms.video.media.codec.HMSAudioCodec
21
- import live.hms.video.media.codec.HMSVideoCodec
18
+ import live.hms.video.events.AgentType
22
19
  import live.hms.video.media.settings.*
23
20
  import live.hms.video.media.tracks.HMSRemoteAudioTrack
24
21
  import live.hms.video.media.tracks.HMSRemoteVideoTrack
@@ -26,6 +23,8 @@ import live.hms.video.media.tracks.HMSTrack
26
23
  import live.hms.video.sdk.models.*
27
24
  import live.hms.video.sdk.models.enums.AudioMixingMode
28
25
  import live.hms.video.sdk.models.role.HMSRole
26
+ import live.hms.video.services.LogAlarmManager
27
+ import live.hms.video.utils.HMSLogger
29
28
  import live.hms.video.utils.HmsUtilities
30
29
  import org.webrtc.SurfaceViewRenderer
31
30
 
@@ -161,93 +160,148 @@ object HMSHelper {
161
160
  return null
162
161
  }
163
162
 
164
- fun getTrackSettings(data: ReadableMap?): HMSTrackSettings? {
165
- if (data == null) {
166
- return null
163
+ fun getFrameworkInfo(data: ReadableMap?): FrameworkInfo? {
164
+ if (data != null &&
165
+ this.areAllRequiredKeysAvailable(
166
+ data,
167
+ arrayOf(Pair("version", "String"), Pair("sdkVersion", "String"))
168
+ )
169
+ ) {
170
+ val version = data.getString("version") as String
171
+ val sdkVersion = data.getString("sdkVersion") as String
172
+ return FrameworkInfo(AgentType.REACT_NATIVE, sdkVersion, version)
167
173
  }
174
+ return null
175
+ }
168
176
 
169
- var useHardwareEchoCancellation = false
170
- val requiredKeysUseHardwareEchoCancellation =
171
- this.areAllRequiredKeysAvailable(
172
- data,
173
- arrayOf(Pair("useHardwareEchoCancellation", "Boolean"))
174
- )
175
- if (requiredKeysUseHardwareEchoCancellation) {
176
- useHardwareEchoCancellation = data.getBoolean("useHardwareEchoCancellation")
177
+ fun getLogSettings(data: ReadableMap?): HMSLogSettings? {
178
+ if (data != null &&
179
+ this.areAllRequiredKeysAvailable(
180
+ data,
181
+ arrayOf(
182
+ Pair("level", "String"),
183
+ Pair("maxDirSizeInBytes", "String"),
184
+ Pair("isLogStorageEnabled", "Boolean")
185
+ )
186
+ )
187
+ ) {
188
+ val level = getLogLevel(data.getString("level"))
189
+ val maxDirSizeInBytes = getLogAlarmManager(data.getString("maxDirSizeInBytes"))
190
+ val isLogStorageEnabled = data.getBoolean("isLogStorageEnabled")
191
+ return HMSLogSettings(maxDirSizeInBytes, isLogStorageEnabled, level)
177
192
  }
193
+ return null
194
+ }
178
195
 
179
- var video: ReadableMap? = null
180
- val requiredKeysVideo = this.areAllRequiredKeysAvailable(data, arrayOf(Pair("video", "Map")))
181
- if (requiredKeysVideo) {
182
- video = data.getMap("video")
196
+ private fun getLogAlarmManager(logAlarmManager: String?): Long {
197
+ when (logAlarmManager) {
198
+ "DEFAULT_DIR_SIZE" -> {
199
+ return LogAlarmManager.DEFAULT_DIR_SIZE
200
+ }
201
+ "DEFAULT_LOGS_FILE_NAME" -> {
202
+ return LogAlarmManager.DEFAULT_LOGS_FILE_NAME.toLong()
203
+ }
204
+ "MAX_DIR_SIZE" -> {
205
+ return LogAlarmManager.MAX_DIR_SIZE.toLong()
206
+ }
183
207
  }
208
+ return LogAlarmManager.DEFAULT_DIR_SIZE
209
+ }
184
210
 
185
- var audio: ReadableMap? = null
186
- val requiredKeysAudio = this.areAllRequiredKeysAvailable(data, arrayOf(Pair("audio", "Map")))
187
- if (requiredKeysAudio) {
188
- audio = data.getMap("audio")
211
+ private fun getLogLevel(logLevel: String?): HMSLogger.LogLevel {
212
+ when (logLevel) {
213
+ "VERBOSE" -> {
214
+ return HMSLogger.LogLevel.VERBOSE
215
+ }
216
+ "WARN" -> {
217
+ return HMSLogger.LogLevel.WARN
218
+ }
219
+ "ERROR" -> {
220
+ return HMSLogger.LogLevel.ERROR
221
+ }
189
222
  }
223
+ return HMSLogger.LogLevel.VERBOSE
224
+ }
190
225
 
191
- if (video == null && audio == null && !useHardwareEchoCancellation) {
226
+ fun getTrackSettings(data: ReadableMap?): HMSTrackSettings? {
227
+ if (data == null) {
192
228
  return null
193
229
  }
230
+ val builder = HMSTrackSettings.Builder()
231
+ if (this.areAllRequiredKeysAvailable(data, arrayOf(Pair("video", "Map")))) {
232
+ val video = data.getMap("video")
233
+ val videoSettings = this.getVideoTrackSettings(video)
234
+ if (videoSettings != null) {
235
+ builder.video(videoSettings)
236
+ }
237
+ }
194
238
 
195
- val videoSettings = this.getVideoTrackSettings(video)
196
- val audioSettings = this.getAudioTrackSettings(audio, useHardwareEchoCancellation)
197
- val trackSettingsBuilder = HMSTrackSettings.Builder()
198
- return trackSettingsBuilder.audio(audioSettings).video(videoSettings).build()
239
+ if (this.areAllRequiredKeysAvailable(data, arrayOf(Pair("audio", "Map")))) {
240
+ val audio = data.getMap("audio")
241
+ val audioSettings = this.getAudioTrackSettings(audio)
242
+ if (audioSettings != null) {
243
+ builder.audio(audioSettings)
244
+ }
245
+ }
246
+ return builder.build()
199
247
  }
200
248
 
201
- private fun getAudioTrackSettings(
202
- data: ReadableMap?,
203
- useHardwareEchoCancellation: Boolean
204
- ): HMSAudioTrackSettings {
205
- val builder =
206
- HMSAudioTrackSettings.Builder()
207
- .setUseHardwareAcousticEchoCanceler(useHardwareEchoCancellation)
208
-
209
- if (data != null) {
210
- val maxBitrate = data.getInt("maxBitrate")
211
- val codec = getAudioCodec(data.getString("codec"))
212
-
213
- builder.maxBitrate(maxBitrate)
214
- builder.codec(codec)
249
+ private fun getAudioTrackSettings(data: ReadableMap?): HMSAudioTrackSettings? {
250
+ if (data == null) {
251
+ return null
252
+ }
253
+ val builder = HMSAudioTrackSettings.Builder()
254
+ if (areAllRequiredKeysAvailable(data, arrayOf(Pair("useHardwareEchoCancellation", "Boolean")))
255
+ ) {
256
+ val useHardwareEchoCancellation = data.getBoolean("useHardwareEchoCancellation")
257
+ builder.setUseHardwareAcousticEchoCanceler(useHardwareEchoCancellation)
215
258
  }
216
259
 
260
+ if (areAllRequiredKeysAvailable(data, arrayOf(Pair("initialState", "String")))) {
261
+ val initialState = getHMSTrackSettingsInitState(data.getString("initialState"))
262
+ builder.initialState(initialState)
263
+ }
217
264
  return builder.build()
218
265
  }
219
266
 
220
- // TODO: find out a way to set settings required to create HMSVideoTrackSettings
221
-
222
- private fun getVideoTrackSettings(data: ReadableMap?): HMSVideoTrackSettings {
267
+ private fun getVideoTrackSettings(data: ReadableMap?): HMSVideoTrackSettings? {
268
+ if (data == null) {
269
+ return null
270
+ }
223
271
  val builder = HMSVideoTrackSettings.Builder()
224
- if (data != null) {
225
- val codec = getVideoCodec(data.getString("codec"))
226
- val resolution = getVideoResolution(data.getMap("resolution"))
227
- val maxBitrate = data.getInt("maxBitrate")
228
- val maxFrameRate = data.getInt("maxFrameRate")
229
- val cameraFacing = getCameraFacing(data.getString("cameraFacing"))
230
272
 
231
- builder.codec(codec)
273
+ if (areAllRequiredKeysAvailable(data, arrayOf(Pair("cameraFacing", "String")))) {
274
+ val cameraFacing = getCameraFacing(data.getString("cameraFacing"))
232
275
  builder.cameraFacing(cameraFacing)
233
- if (resolution != null) {
234
- builder.resolution(resolution)
235
- }
236
- builder.maxBitrate(maxBitrate)
237
- builder.maxFrameRate(maxFrameRate)
276
+ }
277
+
278
+ if (areAllRequiredKeysAvailable(data, arrayOf(Pair("disableAutoResize", "Boolean")))) {
279
+ val disableAutoResize = data.getBoolean("disableAutoResize")
280
+ builder.disableAutoResize(disableAutoResize)
281
+ }
282
+
283
+ if (areAllRequiredKeysAvailable(data, arrayOf(Pair("initialState", "String")))) {
284
+ val initialState = getHMSTrackSettingsInitState(data.getString("initialState"))
285
+ builder.initialState(initialState)
286
+ }
287
+
288
+ if (areAllRequiredKeysAvailable(data, arrayOf(Pair("forceSoftwareDecoder", "Boolean")))) {
289
+ val forceSoftwareDecoder = data.getBoolean("forceSoftwareDecoder")
290
+ builder.forceSoftwareDecoder(forceSoftwareDecoder)
238
291
  }
239
292
  return builder.build()
240
293
  }
241
294
 
242
- private fun getVideoResolution(map: ReadableMap?): HMSVideoResolution? {
243
- val width = map?.getDouble("width")
244
- val height = map?.getDouble("height")
245
-
246
- return if (width != null && height != null) {
247
- HMSVideoResolution(width = width.toInt(), height = height.toInt())
248
- } else {
249
- null
295
+ private fun getHMSTrackSettingsInitState(initState: String?): HMSTrackSettings.InitState {
296
+ when (initState) {
297
+ "UNMUTED" -> {
298
+ return HMSTrackSettings.InitState.UNMUTED
299
+ }
300
+ "MUTED" -> {
301
+ return HMSTrackSettings.InitState.MUTED
302
+ }
250
303
  }
304
+ return HMSTrackSettings.InitState.UNMUTED
251
305
  }
252
306
 
253
307
  fun getAudioMixingMode(audioMixingMode: String?): AudioMixingMode {
@@ -265,30 +319,6 @@ object HMSHelper {
265
319
  return AudioMixingMode.TALK_AND_MUSIC
266
320
  }
267
321
 
268
- private fun getAudioCodec(codecString: String?): HMSAudioCodec {
269
- when (codecString) {
270
- "opus" -> {
271
- return HMSAudioCodec.OPUS
272
- }
273
- }
274
- return HMSAudioCodec.OPUS
275
- }
276
-
277
- private fun getVideoCodec(codecString: String?): HMSVideoCodec {
278
- when (codecString) {
279
- "H264" -> {
280
- return HMSVideoCodec.H264
281
- }
282
- "VP8" -> {
283
- return HMSVideoCodec.VP8
284
- }
285
- "VP9" -> {
286
- return HMSVideoCodec.VP9
287
- }
288
- }
289
- return HMSVideoCodec.H264
290
- }
291
-
292
322
  private fun getCameraFacing(cameraFacing: String?): HMSVideoTrackSettings.CameraFacing {
293
323
  when (cameraFacing) {
294
324
  "FRONT" -> {
@@ -2,7 +2,12 @@ package com.reactnativehmssdk
2
2
 
3
3
  import android.app.Activity
4
4
  import android.app.Application
5
+ import android.app.PictureInPictureParams
6
+ import android.content.pm.PackageManager
7
+ import android.os.Build
5
8
  import android.os.Bundle
9
+ import android.util.Rational
10
+ import androidx.annotation.RequiresApi
6
11
  import com.facebook.react.bridge.*
7
12
  import com.facebook.react.module.annotations.ReactModule
8
13
  import com.facebook.react.modules.core.DeviceEventManagerModule
@@ -159,6 +164,27 @@ class HMSManager(reactContext: ReactApplicationContext) :
159
164
  hms?.getRoom(callback)
160
165
  }
161
166
 
167
+ @ReactMethod
168
+ fun getLocalPeer(data: ReadableMap, callback: Promise?) {
169
+ val hms = HMSHelper.getHms(data, hmsCollection)
170
+
171
+ hms?.getLocalPeer(callback)
172
+ }
173
+
174
+ @ReactMethod
175
+ fun getRemotePeers(data: ReadableMap, callback: Promise?) {
176
+ val hms = HMSHelper.getHms(data, hmsCollection)
177
+
178
+ hms?.getRemotePeers(callback)
179
+ }
180
+
181
+ @ReactMethod
182
+ fun getRoles(data: ReadableMap, callback: Promise?) {
183
+ val hms = HMSHelper.getHms(data, hmsCollection)
184
+
185
+ hms?.getRoles(callback)
186
+ }
187
+
162
188
  @ReactMethod
163
189
  fun setPlaybackAllowed(data: ReadableMap) {
164
190
  val hms = HMSHelper.getHms(data, hmsCollection)
@@ -341,6 +367,20 @@ class HMSManager(reactContext: ReactApplicationContext) :
341
367
  hms?.disableRTCStats()
342
368
  }
343
369
 
370
+ @ReactMethod
371
+ fun enableNetworkQualityUpdates(data: ReadableMap) {
372
+ val hms = HMSHelper.getHms(data, hmsCollection)
373
+
374
+ hms?.enableNetworkQualityUpdates()
375
+ }
376
+
377
+ @ReactMethod
378
+ fun disableNetworkQualityUpdates(data: ReadableMap) {
379
+ val hms = HMSHelper.getHms(data, hmsCollection)
380
+
381
+ hms?.disableNetworkQualityUpdates()
382
+ }
383
+
344
384
  @ReactMethod
345
385
  fun getAudioDevicesList(data: ReadableMap, callback: Promise?) {
346
386
  val hms = HMSHelper.getHms(data, hmsCollection)
@@ -376,6 +416,162 @@ class HMSManager(reactContext: ReactApplicationContext) :
376
416
  hms?.setAudioDeviceChangeListener()
377
417
  }
378
418
 
419
+ @ReactMethod
420
+ fun setSessionMetaData(data: ReadableMap, callback: Promise?) {
421
+ val hms = HMSHelper.getHms(data, hmsCollection)
422
+
423
+ hms?.setSessionMetaData(data, callback)
424
+ }
425
+
426
+ @ReactMethod
427
+ fun getSessionMetaData(data: ReadableMap, callback: Promise?) {
428
+ val hms = HMSHelper.getHms(data, hmsCollection)
429
+
430
+ hms?.getSessionMetaData(callback)
431
+ }
432
+
433
+ data class PipParamConfig(val aspectRatio: Pair<Int, Int>?)
434
+
435
+ @ReactMethod
436
+ fun handlePipActions(action: String, data: ReadableMap?, promise: Promise?) {
437
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
438
+ promise?.reject(Throwable("PIP mode is not supported!"))
439
+ return
440
+ }
441
+
442
+ try {
443
+ when(action) {
444
+ "isPipModeSupported" -> {
445
+ val result = isPipModeSupported()
446
+ promise?.resolve(result)
447
+ }
448
+ "enablePipMode" -> {
449
+ val result = enablePipMode(data)
450
+ promise?.resolve(result)
451
+ }
452
+ "setPictureInPictureParams" -> {
453
+ val result = setPictureInPictureParams(data)
454
+ promise?.resolve(result)
455
+ }
456
+ }
457
+ } catch (e: Exception) {
458
+ promise?.reject(e)
459
+ }
460
+ }
461
+
462
+ /**
463
+ * Builds and returns PictureInPictureParams as per given config
464
+ * Currently we are supporting only "aspectRatio" in config
465
+ */
466
+ @RequiresApi(Build.VERSION_CODES.O)
467
+ private fun buildPipParams(config: PipParamConfig): PictureInPictureParams {
468
+ val pipParams = PictureInPictureParams.Builder().let {
469
+ if (config.aspectRatio !== null) {
470
+ it.setAspectRatio(Rational(
471
+ config.aspectRatio.first,
472
+ config.aspectRatio.second
473
+ ))
474
+ }
475
+
476
+ // TODO:= We need compileSdkVersion >= 31 for autoEnterEnabled
477
+ // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S && config.autoEnterEnabled !== null)
478
+ // it.setAutoEnterEnabled(config.autoEnterEnabled)
479
+ // }
480
+
481
+ it.build()
482
+ }
483
+
484
+ return pipParams
485
+ }
486
+
487
+ @RequiresApi(Build.VERSION_CODES.O)
488
+ private fun readableMapToPipParamConfig(data: ReadableMap?): PipParamConfig {
489
+ var aspectRatio: Pair<Int, Int>? = null;
490
+ // TODO:= We need compileSdkVersion >= 31 for autoEnterEnabled
491
+ // var autoEnterEnabled: Boolean? = null;
492
+
493
+ if (data !== null) {
494
+ if (data.hasKey("aspectRatio")) {
495
+ val aspectRatioArray = data.getArray("aspectRatio")
496
+
497
+ if (aspectRatioArray !== null) {
498
+ val firstItemType = aspectRatioArray.getType(0)
499
+ var firstItem: Int? = null
500
+ if (firstItemType === ReadableType.Number) {
501
+ firstItem = aspectRatioArray.getInt(0)
502
+ }
503
+
504
+ val secondItemType = aspectRatioArray.getType(1)
505
+ var secondItem: Int? = null
506
+ if (secondItemType === ReadableType.Number) {
507
+ secondItem = aspectRatioArray.getInt(1)
508
+ }
509
+
510
+ if (firstItem !== null && secondItem !== null) {
511
+ aspectRatio = Pair(firstItem, secondItem)
512
+ }
513
+ }
514
+ }
515
+
516
+ // TODO:= We need compileSdkVersion >= 31 for autoEnterEnabled
517
+ // if (data.hasKey("autoEnterEnabled")) {
518
+ // val autoEnterEnabledType = data.getType("autoEnterEnabled")
519
+ //
520
+ // if (autoEnterEnabledType === ReadableType.Boolean) {
521
+ // autoEnterEnabled = data.getBoolean("autoEnterEnabled")
522
+ // }
523
+ // }
524
+ }
525
+
526
+ return PipParamConfig(aspectRatio)
527
+ }
528
+
529
+ @RequiresApi(Build.VERSION_CODES.O)
530
+ private fun setPictureInPictureParams(data: ReadableMap?): Boolean {
531
+ if (!isPipModeSupported()) {
532
+ throw Throwable(message = "PIP Mode is not supported!")
533
+ }
534
+
535
+ val activity = currentActivity;
536
+
537
+ if (activity !== null) {
538
+ val pipParamConfig = readableMapToPipParamConfig(data)
539
+ val pipParams = buildPipParams(pipParamConfig)
540
+
541
+ activity.setPictureInPictureParams(pipParams)
542
+ return true
543
+ }
544
+
545
+ return false
546
+ }
547
+
548
+ @RequiresApi(Build.VERSION_CODES.O)
549
+ private fun isPipModeSupported(): Boolean {
550
+ return reactApplicationContext.packageManager.hasSystemFeature(PackageManager.FEATURE_PICTURE_IN_PICTURE)
551
+ }
552
+
553
+ @RequiresApi(Build.VERSION_CODES.O)
554
+ private fun enablePipMode(data: ReadableMap?): Boolean {
555
+ try {
556
+ if (!isPipModeSupported()) {
557
+ throw Throwable(message = "PIP Mode is not supported!")
558
+ }
559
+
560
+ val activity = currentActivity;
561
+
562
+ if (activity !== null) {
563
+ val pipParamConfig = readableMapToPipParamConfig(data)
564
+ val pipParams = buildPipParams(pipParamConfig)
565
+
566
+ return activity.enterPictureInPictureMode(pipParams)
567
+ }
568
+
569
+ return false;
570
+ } catch (e: Exception) {
571
+ throw e
572
+ }
573
+ }
574
+
379
575
  fun emitEvent(event: String, data: WritableMap) {
380
576
  reactApplicationContext
381
577
  .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)