@100mslive/react-native-hms 1.10.6 → 1.10.8

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 (283) hide show
  1. package/android/build.gradle +0 -5
  2. package/android/src/main/java/com/reactnativehmssdk/HMSDecoder.kt +90 -0
  3. package/android/src/main/java/com/reactnativehmssdk/HMSHLSPlayer.kt +14 -3
  4. package/android/src/main/java/com/reactnativehmssdk/HMSHLSPlayerManager.kt +4 -6
  5. package/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt +2 -3
  6. package/android/src/main/java/com/reactnativehmssdk/HMSManager.kt +54 -15
  7. package/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +64 -3
  8. package/android/src/main/java/com/reactnativehmssdk/HMSSDKViewManager.kt +9 -17
  9. package/android/src/main/java/com/reactnativehmssdk/HMSView.kt +7 -3
  10. package/android/src/main/java/com/reactnativehmssdk/HmssdkPackage.kt +3 -6
  11. package/android/src/main/java/com/reactnativehmssdk/Interactivity/HMSInteractivityDecoder.kt +13 -16
  12. package/android/src/main/java/com/reactnativehmssdk/Interactivity/HMSInteractivityHelper.kt +14 -13
  13. package/android/src/main/java/com/reactnativehmssdk/Interactivity/HMSRNInteractivityCenter.kt +19 -4
  14. package/android/src/main/java/com/reactnativehmssdk/PipActionReceiver.kt +10 -2
  15. package/ios/HMSConstants.swift +2 -0
  16. package/ios/HMSDecoder.swift +75 -0
  17. package/ios/HMSManager.m +45 -0
  18. package/ios/HMSManager.swift +126 -1
  19. package/ios/HMSRNSDK.swift +335 -1
  20. package/ios/Hmssdk.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  21. package/ios/Hmssdk.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  22. package/ios/Hmssdk.xcodeproj/project.xcworkspace/xcuserdata/yogesh.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  23. package/ios/Hmssdk.xcodeproj/xcuserdata/yogesh.xcuserdatad/xcschemes/xcschememanagement.plist +14 -0
  24. package/ios/PIPMode/HMSPipModel.swift +18 -0
  25. package/ios/PIPMode/HMSPipView.swift +36 -0
  26. package/ios/PIPMode/HMSSampleBufferSwiftUIView.swift +45 -0
  27. package/lib/commonjs/classes/HMSAudioMixerSource.js +1 -1
  28. package/lib/commonjs/classes/HMSAudioNode.js +1 -1
  29. package/lib/commonjs/classes/HMSAudioNode.js.map +1 -1
  30. package/lib/commonjs/classes/HMSAudioSettings.js +1 -1
  31. package/lib/commonjs/classes/HMSAudioTrackSettings.js +1 -1
  32. package/lib/commonjs/classes/HMSBrowserRecordingState.js +1 -1
  33. package/lib/commonjs/classes/HMSCameraControl.js +1 -1
  34. package/lib/commonjs/classes/HMSCameraControl.js.map +1 -1
  35. package/lib/commonjs/classes/HMSChangeTrackStateRequest.js +1 -1
  36. package/lib/commonjs/classes/HMSConfig.js +1 -1
  37. package/lib/commonjs/classes/HMSEncoder.js +32 -2
  38. package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
  39. package/lib/commonjs/classes/HMSException.js +1 -1
  40. package/lib/commonjs/classes/HMSHLSConfig.js +1 -1
  41. package/lib/commonjs/classes/HMSHLSMeetingURLVariant.js +1 -1
  42. package/lib/commonjs/classes/HMSHLSRecordingConfig.js +1 -1
  43. package/lib/commonjs/classes/HMSHLSRecordingState.js +1 -1
  44. package/lib/commonjs/classes/HMSHLSStreamingState.js +1 -1
  45. package/lib/commonjs/classes/HMSHLSVariant.js +1 -1
  46. package/lib/commonjs/classes/HMSInteractivityCenter.js +2 -2
  47. package/lib/commonjs/classes/HMSInteractivityCenter.js.map +1 -1
  48. package/lib/commonjs/classes/HMSLocalAudioStats.js +1 -1
  49. package/lib/commonjs/classes/HMSLocalAudioTrack.js +1 -1
  50. package/lib/commonjs/classes/HMSLocalAudioTrack.js.map +1 -1
  51. package/lib/commonjs/classes/HMSLocalPeer.js +1 -1
  52. package/lib/commonjs/classes/HMSLocalPeer.js.map +1 -1
  53. package/lib/commonjs/classes/HMSLocalVideoStats.js +1 -1
  54. package/lib/commonjs/classes/HMSLocalVideoTrack.js +1 -1
  55. package/lib/commonjs/classes/HMSLocalVideoTrack.js.map +1 -1
  56. package/lib/commonjs/classes/HMSLogSettings.js +1 -1
  57. package/lib/commonjs/classes/HMSLogger.js +1 -1
  58. package/lib/commonjs/classes/HMSLogger.js.map +1 -1
  59. package/lib/commonjs/classes/HMSMessage.js +1 -1
  60. package/lib/commonjs/classes/HMSMessageRecipient.js +1 -1
  61. package/lib/commonjs/classes/HMSNativeEventEmitter.js +1 -1
  62. package/lib/commonjs/classes/HMSNativeEventEmitter.js.map +1 -1
  63. package/lib/commonjs/classes/HMSNativeEventListener.js +1 -1
  64. package/lib/commonjs/classes/HMSNativeEventListener.js.map +1 -1
  65. package/lib/commonjs/classes/HMSNetworkQuality.js +1 -1
  66. package/lib/commonjs/classes/HMSNoiseCancellationPlugin.js +2 -2
  67. package/lib/commonjs/classes/HMSNoiseCancellationPlugin.js.map +1 -1
  68. package/lib/commonjs/classes/HMSPIPConfig.js +4 -0
  69. package/lib/commonjs/classes/HMSPIPConfig.js.map +1 -1
  70. package/lib/commonjs/classes/HMSPeer.js +20 -3
  71. package/lib/commonjs/classes/HMSPeer.js.map +1 -1
  72. package/lib/commonjs/classes/HMSPeerListIterator.js +2 -2
  73. package/lib/commonjs/classes/HMSPeerListIterator.js.map +1 -1
  74. package/lib/commonjs/classes/HMSPeersCache.js +2 -2
  75. package/lib/commonjs/classes/HMSPeersCache.js.map +1 -1
  76. package/lib/commonjs/classes/HMSPermissions.js +3 -1
  77. package/lib/commonjs/classes/HMSPermissions.js.map +1 -1
  78. package/lib/commonjs/classes/HMSPublishSettings.js +1 -1
  79. package/lib/commonjs/classes/HMSQualityLimitationReasons.js +1 -1
  80. package/lib/commonjs/classes/HMSRTCStats.js +1 -1
  81. package/lib/commonjs/classes/HMSRTCStatsReport.js +1 -1
  82. package/lib/commonjs/classes/HMSRTMPConfig.js +1 -1
  83. package/lib/commonjs/classes/HMSRemoteAudioStats.js +1 -1
  84. package/lib/commonjs/classes/HMSRemoteAudioTrack.js +1 -1
  85. package/lib/commonjs/classes/HMSRemoteAudioTrack.js.map +1 -1
  86. package/lib/commonjs/classes/HMSRemotePeer.js +1 -1
  87. package/lib/commonjs/classes/HMSRemotePeer.js.map +1 -1
  88. package/lib/commonjs/classes/HMSRemoteVideoStats.js +1 -1
  89. package/lib/commonjs/classes/HMSRemoteVideoTrack.js +1 -1
  90. package/lib/commonjs/classes/HMSRemoteVideoTrack.js.map +1 -1
  91. package/lib/commonjs/classes/HMSRole.js +1 -1
  92. package/lib/commonjs/classes/HMSRoleChangeRequest.js +1 -1
  93. package/lib/commonjs/classes/HMSRoom.js +8 -1
  94. package/lib/commonjs/classes/HMSRoom.js.map +1 -1
  95. package/lib/commonjs/classes/HMSRoomCache.js +9 -2
  96. package/lib/commonjs/classes/HMSRoomCache.js.map +1 -1
  97. package/lib/commonjs/classes/HMSRoomUpdate.js +1 -0
  98. package/lib/commonjs/classes/HMSRoomUpdate.js.map +1 -1
  99. package/lib/commonjs/classes/HMSRtmpStreamingState.js +1 -1
  100. package/lib/commonjs/classes/HMSRtmpVideoResolution.js +1 -1
  101. package/lib/commonjs/classes/HMSSDK.js +105 -12
  102. package/lib/commonjs/classes/HMSSDK.js.map +1 -1
  103. package/lib/commonjs/classes/HMSServerRecordingState.js +1 -1
  104. package/lib/commonjs/classes/HMSSessionStore.js +2 -2
  105. package/lib/commonjs/classes/HMSSessionStore.js.map +1 -1
  106. package/lib/commonjs/classes/HMSSimulcastLayerDefinition.js +1 -1
  107. package/lib/commonjs/classes/HMSSimulcastLayerSettings.js +1 -1
  108. package/lib/commonjs/classes/HMSSimulcastLayerSettingsPolicy.js +1 -1
  109. package/lib/commonjs/classes/HMSSimulcastSettings.js +1 -1
  110. package/lib/commonjs/classes/HMSSimulcastSettingsPolicy.js +1 -1
  111. package/lib/commonjs/classes/HMSSpeaker.js +1 -1
  112. package/lib/commonjs/classes/HMSSubscribeDegradationPolicy.js +1 -1
  113. package/lib/commonjs/classes/HMSSubscribeSettings.js +1 -1
  114. package/lib/commonjs/classes/HMSTrack.js +1 -1
  115. package/lib/commonjs/classes/HMSTrackSettings.js +1 -1
  116. package/lib/commonjs/classes/HMSUpdateListenerActions.js +1 -0
  117. package/lib/commonjs/classes/HMSUpdateListenerActions.js.map +1 -1
  118. package/lib/commonjs/classes/HMSVideoResolution.js +1 -1
  119. package/lib/commonjs/classes/HMSVideoSettings.js +1 -1
  120. package/lib/commonjs/classes/HMSVideoTrack.js +1 -1
  121. package/lib/commonjs/classes/HMSVideoTrack.js.map +1 -1
  122. package/lib/commonjs/classes/HMSVideoTrackSettings.js +1 -1
  123. package/lib/commonjs/classes/transcriptions/HMSTranscript.js +6 -0
  124. package/lib/commonjs/classes/transcriptions/HMSTranscript.js.map +1 -0
  125. package/lib/commonjs/classes/transcriptions/OnTranscriptionError.js +2 -0
  126. package/lib/commonjs/classes/transcriptions/OnTranscriptionError.js.map +1 -0
  127. package/lib/commonjs/classes/transcriptions/TranscriptionState.js +14 -0
  128. package/lib/commonjs/classes/transcriptions/TranscriptionState.js.map +1 -0
  129. package/lib/commonjs/classes/transcriptions/Transcriptions.js +6 -0
  130. package/lib/commonjs/classes/transcriptions/Transcriptions.js.map +1 -0
  131. package/lib/commonjs/classes/transcriptions/TranscriptionsMode.js +12 -0
  132. package/lib/commonjs/classes/transcriptions/TranscriptionsMode.js.map +1 -0
  133. package/lib/commonjs/classes/transcriptions/index.js +61 -0
  134. package/lib/commonjs/classes/transcriptions/index.js.map +1 -0
  135. package/lib/commonjs/classes/whiteboard/registerCallbacks.js +1 -1
  136. package/lib/commonjs/classes/whiteboard/registerCallbacks.js.map +1 -1
  137. package/lib/commonjs/hooks/useHMSPeerUpdates.js +1 -1
  138. package/lib/commonjs/hooks/useHMSPeerUpdates.js.map +1 -1
  139. package/lib/commonjs/index.js +13 -1
  140. package/lib/commonjs/index.js.map +1 -1
  141. package/lib/commonjs/modules/HMSManagerModule.js.map +1 -1
  142. package/lib/commonjs/utils/emitter/EventEmitter.js +1 -1
  143. package/lib/commonjs/utils/emitter/EventEmitter.js.map +1 -1
  144. package/lib/commonjs/utils/emitter/_EmitterSubscription.js +1 -1
  145. package/lib/commonjs/utils/emitter/_EmitterSubscription.js.map +1 -1
  146. package/lib/commonjs/utils/emitter/_EventSubscription.js +1 -1
  147. package/lib/commonjs/utils/emitter/_EventSubscriptionVendor.js +1 -1
  148. package/lib/commonjs/utils/keyboard.js +1 -1
  149. package/lib/commonjs/utils/keyboard.js.map +1 -1
  150. package/lib/commonjs/utils/notification.js +1 -1
  151. package/lib/commonjs/utils/notification.js.map +1 -1
  152. package/lib/commonjs/utils/windowController.js +1 -1
  153. package/lib/commonjs/utils/windowController.js.map +1 -1
  154. package/lib/module/classes/HMSAudioMixerSource.js +1 -1
  155. package/lib/module/classes/HMSAudioNode.js +1 -1
  156. package/lib/module/classes/HMSAudioSettings.js +1 -1
  157. package/lib/module/classes/HMSAudioTrackSettings.js +1 -1
  158. package/lib/module/classes/HMSBrowserRecordingState.js +1 -1
  159. package/lib/module/classes/HMSChangeTrackStateRequest.js +1 -1
  160. package/lib/module/classes/HMSConfig.js +1 -1
  161. package/lib/module/classes/HMSEncoder.js +31 -1
  162. package/lib/module/classes/HMSEncoder.js.map +1 -1
  163. package/lib/module/classes/HMSException.js +1 -1
  164. package/lib/module/classes/HMSHLSConfig.js +1 -1
  165. package/lib/module/classes/HMSHLSMeetingURLVariant.js +1 -1
  166. package/lib/module/classes/HMSHLSRecordingConfig.js +1 -1
  167. package/lib/module/classes/HMSHLSRecordingState.js +1 -1
  168. package/lib/module/classes/HMSHLSStreamingState.js +1 -1
  169. package/lib/module/classes/HMSHLSVariant.js +1 -1
  170. package/lib/module/classes/HMSInteractivityCenter.js +1 -1
  171. package/lib/module/classes/HMSLocalAudioStats.js +1 -1
  172. package/lib/module/classes/HMSLocalAudioTrack.js +1 -1
  173. package/lib/module/classes/HMSLocalPeer.js +1 -1
  174. package/lib/module/classes/HMSLocalVideoStats.js +1 -1
  175. package/lib/module/classes/HMSLocalVideoTrack.js +1 -1
  176. package/lib/module/classes/HMSLogSettings.js +1 -1
  177. package/lib/module/classes/HMSLogger.js +1 -1
  178. package/lib/module/classes/HMSLogger.js.map +1 -1
  179. package/lib/module/classes/HMSMessage.js +1 -1
  180. package/lib/module/classes/HMSMessageRecipient.js +1 -1
  181. package/lib/module/classes/HMSNativeEventEmitter.js +1 -1
  182. package/lib/module/classes/HMSNetworkQuality.js +1 -1
  183. package/lib/module/classes/HMSNoiseCancellationPlugin.js +1 -1
  184. package/lib/module/classes/HMSPIPConfig.js +1 -1
  185. package/lib/module/classes/HMSPIPConfig.js.map +1 -1
  186. package/lib/module/classes/HMSPeer.js +20 -3
  187. package/lib/module/classes/HMSPeer.js.map +1 -1
  188. package/lib/module/classes/HMSPeerListIterator.js +1 -1
  189. package/lib/module/classes/HMSPeersCache.js +1 -1
  190. package/lib/module/classes/HMSPermissions.js +3 -1
  191. package/lib/module/classes/HMSPermissions.js.map +1 -1
  192. package/lib/module/classes/HMSPublishSettings.js +1 -1
  193. package/lib/module/classes/HMSQualityLimitationReasons.js +1 -1
  194. package/lib/module/classes/HMSRTCStats.js +1 -1
  195. package/lib/module/classes/HMSRTCStatsReport.js +1 -1
  196. package/lib/module/classes/HMSRTMPConfig.js +1 -1
  197. package/lib/module/classes/HMSRemoteAudioStats.js +1 -1
  198. package/lib/module/classes/HMSRemoteAudioTrack.js +1 -1
  199. package/lib/module/classes/HMSRemotePeer.js +1 -1
  200. package/lib/module/classes/HMSRemoteVideoStats.js +1 -1
  201. package/lib/module/classes/HMSRemoteVideoTrack.js +1 -1
  202. package/lib/module/classes/HMSRole.js +1 -1
  203. package/lib/module/classes/HMSRoleChangeRequest.js +1 -1
  204. package/lib/module/classes/HMSRoom.js +8 -1
  205. package/lib/module/classes/HMSRoom.js.map +1 -1
  206. package/lib/module/classes/HMSRoomCache.js +8 -1
  207. package/lib/module/classes/HMSRoomCache.js.map +1 -1
  208. package/lib/module/classes/HMSRoomUpdate.js +1 -0
  209. package/lib/module/classes/HMSRoomUpdate.js.map +1 -1
  210. package/lib/module/classes/HMSRtmpStreamingState.js +1 -1
  211. package/lib/module/classes/HMSRtmpVideoResolution.js +1 -1
  212. package/lib/module/classes/HMSSDK.js +104 -11
  213. package/lib/module/classes/HMSSDK.js.map +1 -1
  214. package/lib/module/classes/HMSServerRecordingState.js +1 -1
  215. package/lib/module/classes/HMSSessionStore.js +1 -1
  216. package/lib/module/classes/HMSSimulcastLayerDefinition.js +1 -1
  217. package/lib/module/classes/HMSSimulcastLayerSettings.js +1 -1
  218. package/lib/module/classes/HMSSimulcastLayerSettingsPolicy.js +1 -1
  219. package/lib/module/classes/HMSSimulcastSettings.js +1 -1
  220. package/lib/module/classes/HMSSimulcastSettingsPolicy.js +1 -1
  221. package/lib/module/classes/HMSSpeaker.js +1 -1
  222. package/lib/module/classes/HMSSubscribeDegradationPolicy.js +1 -1
  223. package/lib/module/classes/HMSSubscribeSettings.js +1 -1
  224. package/lib/module/classes/HMSTrack.js +1 -1
  225. package/lib/module/classes/HMSTrackSettings.js +1 -1
  226. package/lib/module/classes/HMSUpdateListenerActions.js +1 -0
  227. package/lib/module/classes/HMSUpdateListenerActions.js.map +1 -1
  228. package/lib/module/classes/HMSVideoResolution.js +1 -1
  229. package/lib/module/classes/HMSVideoSettings.js +1 -1
  230. package/lib/module/classes/HMSVideoTrack.js +1 -1
  231. package/lib/module/classes/HMSVideoTrackSettings.js +1 -1
  232. package/lib/module/classes/transcriptions/HMSTranscript.js +2 -0
  233. package/lib/module/classes/transcriptions/HMSTranscript.js.map +1 -0
  234. package/lib/module/classes/transcriptions/OnTranscriptionError.js +2 -0
  235. package/lib/module/classes/transcriptions/OnTranscriptionError.js.map +1 -0
  236. package/lib/module/classes/transcriptions/TranscriptionState.js +8 -0
  237. package/lib/module/classes/transcriptions/TranscriptionState.js.map +1 -0
  238. package/lib/module/classes/transcriptions/Transcriptions.js +2 -0
  239. package/lib/module/classes/transcriptions/Transcriptions.js.map +1 -0
  240. package/lib/module/classes/transcriptions/TranscriptionsMode.js +6 -0
  241. package/lib/module/classes/transcriptions/TranscriptionsMode.js.map +1 -0
  242. package/lib/module/classes/transcriptions/index.js +6 -0
  243. package/lib/module/classes/transcriptions/index.js.map +1 -0
  244. package/lib/module/index.js +1 -0
  245. package/lib/module/index.js.map +1 -1
  246. package/lib/module/modules/HMSManagerModule.js.map +1 -1
  247. package/lib/module/utils/emitter/EventEmitter.js +1 -1
  248. package/lib/module/utils/emitter/_EmitterSubscription.js +1 -1
  249. package/lib/module/utils/emitter/_EventSubscription.js +1 -1
  250. package/lib/module/utils/emitter/_EventSubscriptionVendor.js +1 -1
  251. package/lib/typescript/classes/HMSEncoder.d.ts +3 -0
  252. package/lib/typescript/classes/HMSPIPConfig.d.ts +3 -0
  253. package/lib/typescript/classes/HMSPeer.d.ts +3 -1
  254. package/lib/typescript/classes/HMSPermissions.d.ts +7 -0
  255. package/lib/typescript/classes/HMSRoom.d.ts +2 -0
  256. package/lib/typescript/classes/HMSRoomUpdate.d.ts +2 -1
  257. package/lib/typescript/classes/HMSSDK.d.ts +7 -0
  258. package/lib/typescript/classes/HMSUpdateListenerActions.d.ts +2 -1
  259. package/lib/typescript/classes/transcriptions/HMSTranscript.d.ts +8 -0
  260. package/lib/typescript/classes/transcriptions/OnTranscriptionError.d.ts +4 -0
  261. package/lib/typescript/classes/transcriptions/TranscriptionState.d.ts +6 -0
  262. package/lib/typescript/classes/transcriptions/Transcriptions.d.ts +12 -0
  263. package/lib/typescript/classes/transcriptions/TranscriptionsMode.d.ts +4 -0
  264. package/lib/typescript/classes/transcriptions/index.d.ts +5 -0
  265. package/lib/typescript/index.d.ts +1 -0
  266. package/package.json +1 -1
  267. package/sdk-versions.json +2 -2
  268. package/src/classes/HMSEncoder.ts +35 -0
  269. package/src/classes/HMSPIPConfig.ts +30 -0
  270. package/src/classes/HMSPeer.ts +29 -2
  271. package/src/classes/HMSPermissions.ts +10 -0
  272. package/src/classes/HMSRoom.ts +14 -0
  273. package/src/classes/HMSRoomCache.ts +9 -0
  274. package/src/classes/HMSRoomUpdate.ts +1 -0
  275. package/src/classes/HMSSDK.tsx +121 -21
  276. package/src/classes/HMSUpdateListenerActions.ts +1 -0
  277. package/src/classes/transcriptions/HMSTranscript.ts +13 -0
  278. package/src/classes/transcriptions/OnTranscriptionError.ts +5 -0
  279. package/src/classes/transcriptions/TranscriptionState.ts +6 -0
  280. package/src/classes/transcriptions/Transcriptions.ts +19 -0
  281. package/src/classes/transcriptions/TranscriptionsMode.ts +4 -0
  282. package/src/classes/transcriptions/index.ts +5 -0
  283. package/src/index.ts +2 -0
@@ -66,32 +66,29 @@ object HMSInteractivityHelper {
66
66
  // endregion
67
67
 
68
68
  // region Poll Builder Helpers
69
- private fun getQuestionType(type: Int): HMSPollQuestionType {
70
- return when (type) {
69
+ private fun getQuestionType(type: Int): HMSPollQuestionType =
70
+ when (type) {
71
71
  0 -> HMSPollQuestionType.singleChoice
72
72
  1 -> HMSPollQuestionType.multiChoice
73
73
  2 -> HMSPollQuestionType.shortAnswer
74
74
  3 -> HMSPollQuestionType.longAnswer
75
75
  else -> HMSPollQuestionType.singleChoice
76
76
  }
77
- }
78
77
 
79
- private fun getUserTrackingMode(data: ReadableMap): HmsPollUserTrackingMode {
80
- return when (data.getInt("mode")) {
78
+ private fun getUserTrackingMode(data: ReadableMap): HmsPollUserTrackingMode =
79
+ when (data.getInt("mode")) {
81
80
  0 -> HmsPollUserTrackingMode.PEER_ID
82
81
  1 -> HmsPollUserTrackingMode.USER_ID
83
82
  2 -> HmsPollUserTrackingMode.USERNAME
84
83
  else -> HmsPollUserTrackingMode.PEER_ID
85
84
  }
86
- }
87
85
 
88
- fun getPollCategory(data: ReadableMap): HmsPollCategory {
89
- return when (data.getInt("type")) {
86
+ fun getPollCategory(data: ReadableMap): HmsPollCategory =
87
+ when (data.getInt("type")) {
90
88
  0 -> HmsPollCategory.POLL
91
89
  1 -> HmsPollCategory.QUIZ
92
90
  else -> HmsPollCategory.POLL
93
91
  }
94
- }
95
92
 
96
93
  private fun getRolesThatCanViewResponses(
97
94
  data: ReadableMap,
@@ -134,7 +131,8 @@ object HMSInteractivityHelper {
134
131
 
135
132
  if (title != null && options != null) {
136
133
  val questionBuilder =
137
- HMSPollQuestionBuilder.Builder(HMSPollQuestionType.singleChoice)
134
+ HMSPollQuestionBuilder
135
+ .Builder(HMSPollQuestionType.singleChoice)
138
136
  .withTitle(title)
139
137
 
140
138
  for (i in 0 until options.size) {
@@ -155,7 +153,8 @@ object HMSInteractivityHelper {
155
153
 
156
154
  if (title != null && options != null) {
157
155
  val questionBuilder =
158
- HMSPollQuestionBuilder.Builder(HMSPollQuestionType.multiChoice)
156
+ HMSPollQuestionBuilder
157
+ .Builder(HMSPollQuestionType.multiChoice)
159
158
  .withTitle(title)
160
159
 
161
160
  for (i in 0 until options.size) {
@@ -175,7 +174,8 @@ object HMSInteractivityHelper {
175
174
 
176
175
  if (title != null) {
177
176
  val questionBuilder =
178
- HMSPollQuestionBuilder.Builder(HMSPollQuestionType.shortAnswer)
177
+ HMSPollQuestionBuilder
178
+ .Builder(HMSPollQuestionType.shortAnswer)
179
179
  .withTitle(title)
180
180
  pollBuilder.addQuestion(questionBuilder.build())
181
181
  }
@@ -191,7 +191,8 @@ object HMSInteractivityHelper {
191
191
 
192
192
  if (title != null) {
193
193
  val questionBuilder =
194
- HMSPollQuestionBuilder.Builder(HMSPollQuestionType.longAnswer)
194
+ HMSPollQuestionBuilder
195
+ .Builder(HMSPollQuestionType.longAnswer)
195
196
  .withTitle(title)
196
197
  pollBuilder.addQuestion(questionBuilder.build())
197
198
  }
@@ -16,7 +16,10 @@ import live.hms.video.sdk.HmsTypedActionResultListener
16
16
  import live.hms.video.whiteboard.HMSWhiteboardUpdate
17
17
  import live.hms.video.whiteboard.HMSWhiteboardUpdateListener
18
18
 
19
- class HMSRNInteractivityCenter(private val sdk: HMSSDK, private val rnSDK: HMSRNSDK) {
19
+ class HMSRNInteractivityCenter(
20
+ private val sdk: HMSSDK,
21
+ private val rnSDK: HMSRNSDK,
22
+ ) {
20
23
  init {
21
24
  //region Listen for poll updates
22
25
  this.sdk.getHmsInteractivityCenter().pollUpdateListener =
@@ -94,7 +97,11 @@ class HMSRNInteractivityCenter(private val sdk: HMSSDK, private val rnSDK: HMSRN
94
97
  promise?.reject("6004", "pollId is required")
95
98
  return
96
99
  }
97
- val poll = this.sdk.getHmsInteractivityCenter().polls.find { it.pollId == pollId }
100
+ val poll =
101
+ this.sdk
102
+ .getHmsInteractivityCenter()
103
+ .polls
104
+ .find { it.pollId == pollId }
98
105
  if (poll == null) {
99
106
  promise?.reject("6004", "No HMSPoll with pollId `$pollId`")
100
107
  return
@@ -134,7 +141,11 @@ class HMSRNInteractivityCenter(private val sdk: HMSSDK, private val rnSDK: HMSRN
134
141
  promise?.reject("6004", "pollId is required")
135
142
  return
136
143
  }
137
- val poll = this.sdk.getHmsInteractivityCenter().polls.find { it.pollId == pollId }
144
+ val poll =
145
+ this.sdk
146
+ .getHmsInteractivityCenter()
147
+ .polls
148
+ .find { it.pollId == pollId }
138
149
  if (poll == null) {
139
150
  promise?.reject("6004", "No HMSPoll with pollId `$pollId`")
140
151
  return
@@ -162,7 +173,11 @@ class HMSRNInteractivityCenter(private val sdk: HMSSDK, private val rnSDK: HMSRN
162
173
  promise?.reject("6004", "pollId is required")
163
174
  return
164
175
  }
165
- val poll = this.sdk.getHmsInteractivityCenter().polls.find { it.pollId == pollId }
176
+ val poll =
177
+ this.sdk
178
+ .getHmsInteractivityCenter()
179
+ .polls
180
+ .find { it.pollId == pollId }
166
181
  if (poll == null) {
167
182
  promise?.reject("6004", "No HMSPoll with pollId `$pollId`")
168
183
  return
@@ -8,9 +8,17 @@ import android.content.IntentFilter
8
8
  import android.os.Build
9
9
  import androidx.annotation.RequiresApi
10
10
 
11
- data class PIPAction(val title: String, val description: String, val requestCode: Int)
11
+ data class PIPAction(
12
+ val title: String,
13
+ val description: String,
14
+ val requestCode: Int,
15
+ )
12
16
 
13
- data class PIPActions(val endMeet: PIPAction, val localAudio: PIPAction, val localVideo: PIPAction)
17
+ data class PIPActions(
18
+ val endMeet: PIPAction,
19
+ val localAudio: PIPAction,
20
+ val localVideo: PIPAction,
21
+ )
14
22
 
15
23
  @RequiresApi(Build.VERSION_CODES.O)
16
24
  class PipActionReceiver(
@@ -33,4 +33,6 @@ struct HMSConstants {
33
33
  static let ON_SESSION_STORE_CHANGED = "ON_SESSION_STORE_CHANGED"
34
34
  static let ON_POLL_UPDATE = "ON_POLL_UPDATE"
35
35
  static let ON_WHITEBOARD_UPDATE = "ON_WHITEBOARD_UPDATE"
36
+ static let ON_TRANSCRIPTS = "ON_TRANSCRIPTS"
37
+ static let ON_PIP_MODE_CHANGED = "ON_PIP_MODE_CHANGED"
36
38
  }
@@ -44,6 +44,9 @@ class HMSDecoder: NSObject {
44
44
  let serverRecordingState = HMSDecoder.getServerRecordingState(hmsRoom?.serverRecordingState)
45
45
  data["serverRecordingState"] = serverRecordingState
46
46
  return data
47
+ case .transcriptionStateUpdated:
48
+ data["transcriptions"] = HMSDecoder.getTranscriptionStates(hmsRoom?.transcriptionStates)
49
+ return data
47
50
  default:
48
51
  return data
49
52
  }
@@ -84,6 +87,8 @@ class HMSDecoder: NSObject {
84
87
 
85
88
  data["isLargeRoom"] = room.isLarge
86
89
 
90
+ data["transcriptions"] = HMSDecoder.getTranscriptionStates(room.transcriptionStates)
91
+
87
92
  return data
88
93
  }
89
94
 
@@ -470,6 +475,16 @@ class HMSDecoder: NSObject {
470
475
  "write": whiteboardPermissions.write
471
476
  ]
472
477
  }
478
+ if let transcriptionPermissions = permissions.transcriptions {
479
+ var transcriptionPermissionsArray: [[String: AnyHashable]] = []
480
+ transcriptionPermissions.forEach({ hmsTranscriptionPermissions in
481
+ transcriptionPermissionsArray.append([
482
+ "admin": hmsTranscriptionPermissions.admin ?? false,
483
+ "mode": hmsTranscriptionPermissions.mode?.uppercased()
484
+ ])
485
+ })
486
+ permissionsDict["transcriptions"] = transcriptionPermissionsArray
487
+ }
473
488
  return permissionsDict
474
489
  }
475
490
 
@@ -642,6 +657,66 @@ class HMSDecoder: NSObject {
642
657
  }
643
658
  // MARK: END: - HMSRole Subscribe Settings and Utility functions
644
659
 
660
+ // MARK: - WebRTC Transcriptions
661
+ static func getTranscriptionStates(_ transcriptionStates: [HMSTranscriptionState]?) -> [[String: AnyHashable]] {
662
+ var data: [[String: AnyHashable]] = []
663
+ transcriptionStates?.forEach { transcriptionState in
664
+ data.append(getTranscriptionState(transcriptionState))
665
+ }
666
+ return data
667
+ }
668
+
669
+ static func getTranscriptionState(_ transcriptionState: HMSTranscriptionState) -> [String: AnyHashable] {
670
+ var data: [String: AnyHashable] = [
671
+ "mode": transcriptionState.mode.uppercased(),
672
+ "state": getHMSTranscriptionStatus(transcriptionState.state)
673
+ ]
674
+ if let error = transcriptionState.error {
675
+ data["error"] = [
676
+ "message": error.localizedDescription
677
+ ]
678
+ }
679
+ if let startedAt = transcriptionState.startedAt?.timeIntervalSince1970 {
680
+ data["startedAt"] = startedAt * 1000
681
+ }
682
+ if let stoppedAt = transcriptionState.stoppedAt?.timeIntervalSince1970 {
683
+ data["stoppedAt"] = stoppedAt * 1000
684
+ }
685
+ if let updatedAt = transcriptionState.updatedAt?.timeIntervalSince1970 {
686
+ data["updatedAt"] = updatedAt * 1000
687
+ }
688
+ return data
689
+ }
690
+
691
+ static func getHMSTranscriptionStatus(_ hmsTranscriptionStatus: HMSTranscriptionStatus) -> String {
692
+ return switch hmsTranscriptionStatus {
693
+ case .failed: "FAILED"
694
+ case .started: "STARTED"
695
+ case .stopped: "STOPPED"
696
+ case .none: "NONE"
697
+ case .starting: "STARTING"
698
+ @unknown default: fatalError()
699
+ }
700
+ }
701
+
702
+ static func getHmsTranscripts(_ hmsTranscripts: [HMSTranscript]) -> [[String: AnyHashable]] {
703
+ var transcripts: [[String: AnyHashable]] = []
704
+ hmsTranscripts.forEach { hmsTranscript in
705
+ transcripts.append(getHmsTranscript(hmsTranscript))
706
+ }
707
+ return transcripts
708
+ }
709
+
710
+ static func getHmsTranscript(_ hmsTranscript: HMSTranscript) -> [String: AnyHashable] {
711
+ return [
712
+ "transcript": hmsTranscript.transcript,
713
+ "peerId": hmsTranscript.peer.peerID,
714
+ "end": hmsTranscript.end,
715
+ "start": hmsTranscript.start,
716
+ "isFinal": hmsTranscript.isFinal
717
+ ]
718
+ }
719
+
645
720
  static func getHmsRoleChangeRequest(_ roleChangeRequest: HMSRoleChangeRequest, _ id: String?) -> [String: Any] {
646
721
 
647
722
  if let sdkId = id {
package/ios/HMSManager.m CHANGED
@@ -387,4 +387,49 @@ RCT_EXTERN_METHOD(stopWhiteboard
387
387
  : (RCTPromiseResolveBlock)resolve
388
388
  : (RCTPromiseRejectBlock)reject)
389
389
 
390
+ #pragma mark - WebRTC Transcriptions
391
+
392
+ RCT_EXTERN_METHOD(handleRealTimeTranscription
393
+ : (NSDictionary)data
394
+ : (RCTPromiseResolveBlock)resolve
395
+ : (RCTPromiseRejectBlock)reject)
396
+
397
+ #pragma mark - PIP Mode Support
398
+
399
+ RCT_EXTERN_METHOD(handlePipActions
400
+ : (NSString)action
401
+ : (NSDictionary)data
402
+ : (RCTPromiseResolveBlock)resolve
403
+ : (RCTPromiseRejectBlock)reject)
404
+
405
+ RCT_EXTERN_METHOD(setupPIP
406
+ : (NSDictionary)data
407
+ : (RCTPromiseResolveBlock)resolve
408
+ : (RCTPromiseRejectBlock)reject)
409
+
410
+ RCT_EXTERN_METHOD(stopPIP
411
+ : (NSDictionary)data
412
+ : (RCTPromiseResolveBlock)resolve
413
+ : (RCTPromiseRejectBlock)reject)
414
+
415
+ RCT_EXTERN_METHOD(disposePIP
416
+ : (NSDictionary)data
417
+ : (RCTPromiseResolveBlock)resolve
418
+ : (RCTPromiseRejectBlock)reject)
419
+
420
+ RCT_EXTERN_METHOD(isPIPActive
421
+ : (NSDictionary)data
422
+ : (RCTPromiseResolveBlock)resolve
423
+ : (RCTPromiseRejectBlock)reject)
424
+
425
+ RCT_EXTERN_METHOD(changeIOSPIPVideoTrack
426
+ : (NSDictionary)data
427
+ : (RCTPromiseResolveBlock)resolve
428
+ : (RCTPromiseRejectBlock)reject)
429
+
430
+ RCT_EXTERN_METHOD(setActiveSpeakerInIOSPIP
431
+ : (NSDictionary)data
432
+ : (RCTPromiseResolveBlock)resolve
433
+ : (RCTPromiseRejectBlock)reject)
434
+
390
435
  @end
@@ -37,7 +37,7 @@ class HMSManager: RCTEventEmitter {
37
37
  }
38
38
 
39
39
  override func supportedEvents() -> [String]! {
40
- return [ON_JOIN, ON_PREVIEW, ON_ROOM_UPDATE, ON_PEER_UPDATE, ON_TRACK_UPDATE, ON_ERROR, ON_MESSAGE, ON_SPEAKER, RECONNECTING, RECONNECTED, ON_ROLE_CHANGE_REQUEST, ON_CHANGE_TRACK_STATE_REQUEST, ON_REMOVED_FROM_ROOM, ON_RTC_STATS, ON_LOCAL_AUDIO_STATS, ON_LOCAL_VIDEO_STATS, ON_REMOTE_AUDIO_STATS, ON_REMOTE_VIDEO_STATS, ON_AUDIO_DEVICE_CHANGED, HMSConstants.ON_SESSION_STORE_AVAILABLE, HMSConstants.ON_SESSION_STORE_CHANGED, HMSConstants.ON_PEER_LIST_UPDATED, HMSConstants.ON_POLL_UPDATE, HMSConstants.ON_WHITEBOARD_UPDATE]
40
+ return [ON_JOIN, ON_PREVIEW, ON_ROOM_UPDATE, ON_PEER_UPDATE, ON_TRACK_UPDATE, ON_ERROR, ON_MESSAGE, ON_SPEAKER, RECONNECTING, RECONNECTED, ON_ROLE_CHANGE_REQUEST, ON_CHANGE_TRACK_STATE_REQUEST, ON_REMOVED_FROM_ROOM, ON_RTC_STATS, ON_LOCAL_AUDIO_STATS, ON_LOCAL_VIDEO_STATS, ON_REMOTE_AUDIO_STATS, ON_REMOTE_VIDEO_STATS, ON_AUDIO_DEVICE_CHANGED, HMSConstants.ON_SESSION_STORE_AVAILABLE, HMSConstants.ON_SESSION_STORE_CHANGED, HMSConstants.ON_PEER_LIST_UPDATED, HMSConstants.ON_POLL_UPDATE, HMSConstants.ON_WHITEBOARD_UPDATE, HMSConstants.ON_TRANSCRIPTS, HMSConstants.ON_PIP_MODE_CHANGED]
41
41
  }
42
42
 
43
43
  // MARK: - HMS SDK Delegate Callbacks
@@ -827,4 +827,129 @@ class HMSManager: RCTEventEmitter {
827
827
  }
828
828
  interactivity.stopWhiteboard(resolve, reject)
829
829
  }
830
+
831
+ // MARK: - WebRTC Transcriptions
832
+ @objc
833
+ func handleRealTimeTranscription(_ data: NSDictionary, _ resolve: RCTPromiseResolveBlock?, _ reject: RCTPromiseRejectBlock?) {
834
+ guard let rnsdk = HMSHelper.getHms(data, hmsCollection) else {
835
+ reject?("6004", "HMSRNSDK instance not found!", nil)
836
+ return
837
+ }
838
+ rnsdk.handleRealTimeTranscription(data, resolve, reject)
839
+ }
840
+
841
+ // MARK: - PIP Mode Support
842
+
843
+ @objc
844
+ func handlePipActions(_ action: String,
845
+ _ data: NSDictionary,
846
+ _ resolve: RCTPromiseResolveBlock?,
847
+ _ reject: RCTPromiseRejectBlock?) {
848
+
849
+ guard let rnsdk = HMSHelper.getHms(data, hmsCollection) else {
850
+ reject?("6004", "HMSRNSDK instance not found!", nil)
851
+ return
852
+ }
853
+
854
+ DispatchQueue.main.async { [weak self] in
855
+ switch action {
856
+ case "isPipModeSupported":
857
+ self?.isPipModeSupported(resolve, reject)
858
+ case "enterPipMode":
859
+ rnsdk.enterPipMode(resolve, reject)
860
+ case "setPictureInPictureParams":
861
+ if #available(iOS 15.0, *) {
862
+ rnsdk.setPictureInPictureParams(data, resolve, reject)
863
+ } else {
864
+ reject?("6004", "setPictureInPictureParams should be invoked for iOS 15 & above versions", nil)
865
+ }
866
+ default:
867
+ reject?("6004", "Unknown action type received", nil)
868
+ }
869
+ }
870
+ }
871
+
872
+ @objc
873
+ func stopPIP(_ data: NSDictionary,
874
+ _ resolve: RCTPromiseResolveBlock?,
875
+ _ reject: RCTPromiseRejectBlock?) {
876
+
877
+ guard let rnsdk = HMSHelper.getHms(data, hmsCollection) else {
878
+ reject?("6004", "HMSRNSDK instance not found!", nil)
879
+ return
880
+ }
881
+
882
+ DispatchQueue.main.async {
883
+ rnsdk.stopPIP(resolve, reject)
884
+ }
885
+ }
886
+
887
+ @objc
888
+ func disposePIP(_ data: NSDictionary,
889
+ _ resolve: RCTPromiseResolveBlock?,
890
+ _ reject: RCTPromiseRejectBlock?) {
891
+
892
+ guard let rnsdk = HMSHelper.getHms(data, hmsCollection) else {
893
+ reject?("6004", "HMSRNSDK instance not found!", nil)
894
+ return
895
+ }
896
+
897
+ DispatchQueue.main.async {
898
+ rnsdk.disposePIP(resolve, reject)
899
+ }
900
+ }
901
+
902
+ @objc
903
+ func isPipModeSupported(_ resolve: RCTPromiseResolveBlock?,
904
+ _ reject: RCTPromiseRejectBlock?) {
905
+
906
+ resolve?(AVPictureInPictureController.isPictureInPictureSupported())
907
+ }
908
+
909
+ @objc
910
+ func isPIPActive(_ data: NSDictionary,
911
+ _ resolve: RCTPromiseResolveBlock?,
912
+ _ reject: RCTPromiseRejectBlock?) {
913
+
914
+ guard let rnsdk = HMSHelper.getHms(data, hmsCollection) else {
915
+ reject?("6004", "HMSRNSDK instance not found!", nil)
916
+ return
917
+ }
918
+
919
+ DispatchQueue.main.async {
920
+ rnsdk.isPIPActive(resolve, reject)
921
+ }
922
+ }
923
+
924
+ @objc
925
+ func changeIOSPIPVideoTrack(_ data: NSDictionary,
926
+ _ resolve: RCTPromiseResolveBlock?,
927
+ _ reject: RCTPromiseRejectBlock?) {
928
+
929
+ guard let rnsdk = HMSHelper.getHms(data, hmsCollection) else {
930
+ reject?("6004", "HMSRNSDK instance not found!", nil)
931
+ return
932
+ }
933
+ DispatchQueue.main.async {
934
+ if #available(iOS 15.0, *) {
935
+ rnsdk.changeIOSPIPVideoTrack(data, resolve, reject)
936
+ } else {
937
+ reject?("6004", "changeIOSPIPVideoTrack is not supported on iOS version lower than 15.0", nil)
938
+ }
939
+ }
940
+ }
941
+
942
+ @objc
943
+ func setActiveSpeakerInIOSPIP(_ data: NSDictionary,
944
+ _ resolve: RCTPromiseResolveBlock?,
945
+ _ reject: RCTPromiseRejectBlock?) {
946
+
947
+ guard let rnsdk = HMSHelper.getHms(data, hmsCollection) else {
948
+ reject?("6004", "HMSRNSDK instance not found!", nil)
949
+ return
950
+ }
951
+ DispatchQueue.main.async {
952
+ rnsdk.setActiveSpeakerInIOSPIP(data, resolve, reject)
953
+ }
954
+ }
830
955
  }