@100mslive/react-native-hms 0.8.4 → 0.9.2

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 (201) hide show
  1. package/README.md +247 -26
  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/gradle.xml +13 -0
  10. package/android/.idea/misc.xml +9 -0
  11. package/android/.idea/modules/android.iml +18 -0
  12. package/android/.idea/modules.xml +8 -0
  13. package/android/.idea/sonarlint/issuestore/f/0/f07866736216be0ee2aba49e392191aeae700a35 +0 -0
  14. package/android/.idea/sonarlint/issuestore/index.pb +3 -0
  15. package/android/.idea/vcs.xml +6 -0
  16. package/android/build.gradle +4 -2
  17. package/android/local.properties +8 -0
  18. package/android/src/main/java/com/reactnativehmssdk/HmsDecoder.kt +67 -5
  19. package/android/src/main/java/com/reactnativehmssdk/HmsHelper.kt +67 -64
  20. package/android/src/main/java/com/reactnativehmssdk/HmsModule.kt +97 -6
  21. package/android/src/main/java/com/reactnativehmssdk/HmsSDK.kt +302 -118
  22. package/android/src/main/java/com/reactnativehmssdk/HmsScreenshareActivity.kt +77 -0
  23. package/android/src/main/java/com/reactnativehmssdk/HmsView.kt +28 -3
  24. package/android/src/main/java/com/reactnativehmssdk/HmssdkViewManager.kt +10 -1
  25. package/android/src/main/res/layout/hms_view.xml +19 -0
  26. package/ios/HmsDecoder.swift +250 -123
  27. package/ios/HmsHelper.swift +70 -38
  28. package/ios/HmsManager.m +11 -3
  29. package/ios/HmsManager.swift +123 -66
  30. package/ios/HmsSDK.swift +384 -195
  31. package/ios/HmsView.swift +50 -68
  32. package/ios/VideoCollectionViewCell.swift +4 -4
  33. package/lib/commonjs/classes/HMSBrowserRecordingState.js +6 -0
  34. package/lib/commonjs/classes/HMSBrowserRecordingState.js.map +1 -1
  35. package/lib/commonjs/classes/HMSEncoder.js +180 -3
  36. package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
  37. package/lib/commonjs/classes/HMSHLSConfig.js +23 -0
  38. package/lib/commonjs/classes/HMSHLSConfig.js.map +1 -0
  39. package/lib/commonjs/classes/HMSHLSMeetingURLVariant.js +23 -0
  40. package/lib/commonjs/classes/HMSHLSMeetingURLVariant.js.map +1 -0
  41. package/lib/commonjs/classes/HMSHLSRecordingConfig.js +23 -0
  42. package/lib/commonjs/classes/HMSHLSRecordingConfig.js.map +1 -0
  43. package/lib/commonjs/classes/HMSHLSRecordingState.js +29 -0
  44. package/lib/commonjs/classes/HMSHLSRecordingState.js.map +1 -0
  45. package/lib/commonjs/classes/HMSHLSStreamingState.js +23 -0
  46. package/lib/commonjs/classes/HMSHLSStreamingState.js.map +1 -0
  47. package/lib/commonjs/classes/HMSHLSVariant.js +29 -0
  48. package/lib/commonjs/classes/HMSHLSVariant.js.map +1 -0
  49. package/lib/commonjs/classes/HMSLocalAudioStats.js +26 -0
  50. package/lib/commonjs/classes/HMSLocalAudioStats.js.map +1 -0
  51. package/lib/commonjs/classes/HMSLocalVideoStats.js +32 -0
  52. package/lib/commonjs/classes/HMSLocalVideoStats.js.map +1 -0
  53. package/lib/commonjs/classes/HMSLogger.js +48 -21
  54. package/lib/commonjs/classes/HMSLogger.js.map +1 -1
  55. package/lib/commonjs/classes/HMSMessage.js +4 -1
  56. package/lib/commonjs/classes/HMSMessage.js.map +1 -1
  57. package/lib/commonjs/classes/HMSMessageRecipient.js +26 -0
  58. package/lib/commonjs/classes/HMSMessageRecipient.js.map +1 -0
  59. package/lib/commonjs/classes/HMSMessageRecipientType.js +15 -0
  60. package/lib/commonjs/classes/HMSMessageRecipientType.js.map +1 -0
  61. package/lib/commonjs/classes/HMSPeerUpdate.js +1 -7
  62. package/lib/commonjs/classes/HMSPeerUpdate.js.map +1 -1
  63. package/lib/commonjs/classes/HMSPermissions.js +2 -2
  64. package/lib/commonjs/classes/HMSPermissions.js.map +1 -1
  65. package/lib/commonjs/classes/HMSRTCStats.js +38 -0
  66. package/lib/commonjs/classes/HMSRTCStats.js.map +1 -0
  67. package/lib/commonjs/classes/HMSRTCStatsReport.js +26 -0
  68. package/lib/commonjs/classes/HMSRTCStatsReport.js.map +1 -0
  69. package/lib/commonjs/classes/HMSRemoteAudioStats.js +32 -0
  70. package/lib/commonjs/classes/HMSRemoteAudioStats.js.map +1 -0
  71. package/lib/commonjs/classes/HMSRemoteVideoStats.js +38 -0
  72. package/lib/commonjs/classes/HMSRemoteVideoStats.js.map +1 -0
  73. package/lib/commonjs/classes/HMSRoom.js +9 -0
  74. package/lib/commonjs/classes/HMSRoom.js.map +1 -1
  75. package/lib/commonjs/classes/HMSRoomUpdate.js +7 -0
  76. package/lib/commonjs/classes/HMSRoomUpdate.js.map +1 -1
  77. package/lib/commonjs/classes/HMSRtmpStreamingState.js +6 -0
  78. package/lib/commonjs/classes/HMSRtmpStreamingState.js.map +1 -1
  79. package/lib/commonjs/classes/HMSSDK.js +488 -114
  80. package/lib/commonjs/classes/HMSSDK.js.map +1 -1
  81. package/lib/commonjs/classes/HMSServerRecordingState.js +3 -0
  82. package/lib/commonjs/classes/HMSServerRecordingState.js.map +1 -1
  83. package/lib/commonjs/classes/HMSUpdateListenerActions.js +5 -0
  84. package/lib/commonjs/classes/HMSUpdateListenerActions.js.map +1 -1
  85. package/lib/commonjs/classes/HmsView.js +26 -4
  86. package/lib/commonjs/classes/HmsView.js.map +1 -1
  87. package/lib/commonjs/index.js +196 -0
  88. package/lib/commonjs/index.js.map +1 -1
  89. package/lib/module/classes/HMSBrowserRecordingState.js +6 -0
  90. package/lib/module/classes/HMSBrowserRecordingState.js.map +1 -1
  91. package/lib/module/classes/HMSEncoder.js +172 -3
  92. package/lib/module/classes/HMSEncoder.js.map +1 -1
  93. package/lib/module/classes/HMSHLSConfig.js +14 -0
  94. package/lib/module/classes/HMSHLSConfig.js.map +1 -0
  95. package/lib/module/classes/HMSHLSMeetingURLVariant.js +14 -0
  96. package/lib/module/classes/HMSHLSMeetingURLVariant.js.map +1 -0
  97. package/lib/module/classes/HMSHLSRecordingConfig.js +14 -0
  98. package/lib/module/classes/HMSHLSRecordingConfig.js.map +1 -0
  99. package/lib/module/classes/HMSHLSRecordingState.js +20 -0
  100. package/lib/module/classes/HMSHLSRecordingState.js.map +1 -0
  101. package/lib/module/classes/HMSHLSStreamingState.js +14 -0
  102. package/lib/module/classes/HMSHLSStreamingState.js.map +1 -0
  103. package/lib/module/classes/HMSHLSVariant.js +20 -0
  104. package/lib/module/classes/HMSHLSVariant.js.map +1 -0
  105. package/lib/module/classes/HMSLocalAudioStats.js +17 -0
  106. package/lib/module/classes/HMSLocalAudioStats.js.map +1 -0
  107. package/lib/module/classes/HMSLocalVideoStats.js +23 -0
  108. package/lib/module/classes/HMSLocalVideoStats.js.map +1 -0
  109. package/lib/module/classes/HMSLogger.js +48 -21
  110. package/lib/module/classes/HMSLogger.js.map +1 -1
  111. package/lib/module/classes/HMSMessage.js +4 -1
  112. package/lib/module/classes/HMSMessage.js.map +1 -1
  113. package/lib/module/classes/HMSMessageRecipient.js +17 -0
  114. package/lib/module/classes/HMSMessageRecipient.js.map +1 -0
  115. package/lib/module/classes/HMSMessageRecipientType.js +8 -0
  116. package/lib/module/classes/HMSMessageRecipientType.js.map +1 -0
  117. package/lib/module/classes/HMSPeerUpdate.js +1 -7
  118. package/lib/module/classes/HMSPeerUpdate.js.map +1 -1
  119. package/lib/module/classes/HMSPermissions.js +2 -2
  120. package/lib/module/classes/HMSPermissions.js.map +1 -1
  121. package/lib/module/classes/HMSRTCStats.js +29 -0
  122. package/lib/module/classes/HMSRTCStats.js.map +1 -0
  123. package/lib/module/classes/HMSRTCStatsReport.js +17 -0
  124. package/lib/module/classes/HMSRTCStatsReport.js.map +1 -0
  125. package/lib/module/classes/HMSRemoteAudioStats.js +23 -0
  126. package/lib/module/classes/HMSRemoteAudioStats.js.map +1 -0
  127. package/lib/module/classes/HMSRemoteVideoStats.js +29 -0
  128. package/lib/module/classes/HMSRemoteVideoStats.js.map +1 -0
  129. package/lib/module/classes/HMSRoom.js +9 -0
  130. package/lib/module/classes/HMSRoom.js.map +1 -1
  131. package/lib/module/classes/HMSRoomUpdate.js +7 -0
  132. package/lib/module/classes/HMSRoomUpdate.js.map +1 -1
  133. package/lib/module/classes/HMSRtmpStreamingState.js +6 -0
  134. package/lib/module/classes/HMSRtmpStreamingState.js.map +1 -1
  135. package/lib/module/classes/HMSSDK.js +476 -115
  136. package/lib/module/classes/HMSSDK.js.map +1 -1
  137. package/lib/module/classes/HMSServerRecordingState.js +3 -0
  138. package/lib/module/classes/HMSServerRecordingState.js.map +1 -1
  139. package/lib/module/classes/HMSUpdateListenerActions.js +5 -0
  140. package/lib/module/classes/HMSUpdateListenerActions.js.map +1 -1
  141. package/lib/module/classes/HmsView.js +23 -4
  142. package/lib/module/classes/HmsView.js.map +1 -1
  143. package/lib/module/index.js +14 -0
  144. package/lib/module/index.js.map +1 -1
  145. package/lib/typescript/classes/HMSBrowserRecordingState.d.ts +4 -0
  146. package/lib/typescript/classes/HMSEncoder.d.ts +23 -0
  147. package/lib/typescript/classes/HMSHLSConfig.d.ts +10 -0
  148. package/lib/typescript/classes/HMSHLSMeetingURLVariant.d.ts +8 -0
  149. package/lib/typescript/classes/HMSHLSRecordingConfig.d.ts +8 -0
  150. package/lib/typescript/classes/HMSHLSRecordingState.d.ts +12 -0
  151. package/lib/typescript/classes/HMSHLSStreamingState.d.ts +9 -0
  152. package/lib/typescript/classes/HMSHLSVariant.d.ts +12 -0
  153. package/lib/typescript/classes/HMSLocalAudioStats.d.ts +10 -0
  154. package/lib/typescript/classes/HMSLocalVideoStats.d.ts +15 -0
  155. package/lib/typescript/classes/HMSLogger.d.ts +2 -0
  156. package/lib/typescript/classes/HMSMessage.d.ts +8 -4
  157. package/lib/typescript/classes/HMSMessageRecipient.d.ts +13 -0
  158. package/lib/typescript/classes/HMSMessageRecipientType.d.ts +5 -0
  159. package/lib/typescript/classes/HMSPeerUpdate.d.ts +2 -8
  160. package/lib/typescript/classes/HMSPermissions.d.ts +2 -2
  161. package/lib/typescript/classes/HMSRTCStats.d.ts +18 -0
  162. package/lib/typescript/classes/HMSRTCStatsReport.d.ts +11 -0
  163. package/lib/typescript/classes/HMSRemoteAudioStats.d.ts +14 -0
  164. package/lib/typescript/classes/HMSRemoteVideoStats.d.ts +19 -0
  165. package/lib/typescript/classes/HMSRoom.d.ts +8 -0
  166. package/lib/typescript/classes/HMSRoomUpdate.d.ts +8 -1
  167. package/lib/typescript/classes/HMSRtmpStreamingState.d.ts +4 -0
  168. package/lib/typescript/classes/HMSSDK.d.ts +325 -14
  169. package/lib/typescript/classes/HMSServerRecordingState.d.ts +2 -0
  170. package/lib/typescript/classes/HMSUpdateListenerActions.d.ts +6 -1
  171. package/lib/typescript/index.d.ts +14 -0
  172. package/package.json +1 -2
  173. package/react-native-hms.podspec +1 -1
  174. package/src/classes/HMSBrowserRecordingState.ts +10 -1
  175. package/src/classes/HMSEncoder.ts +193 -3
  176. package/src/classes/HMSHLSConfig.ts +15 -0
  177. package/src/classes/HMSHLSMeetingURLVariant.ts +9 -0
  178. package/src/classes/HMSHLSRecordingConfig.ts +9 -0
  179. package/src/classes/HMSHLSRecordingState.ts +18 -0
  180. package/src/classes/HMSHLSStreamingState.ts +11 -0
  181. package/src/classes/HMSHLSVariant.ts +18 -0
  182. package/src/classes/HMSLocalAudioStats.ts +15 -0
  183. package/src/classes/HMSLocalVideoStats.ts +23 -0
  184. package/src/classes/HMSLogger.ts +17 -3
  185. package/src/classes/HMSMessage.ts +11 -5
  186. package/src/classes/HMSMessageRecipient.ts +19 -0
  187. package/src/classes/HMSMessageRecipientType.ts +5 -0
  188. package/src/classes/HMSPeerUpdate.ts +1 -7
  189. package/src/classes/HMSPermissions.ts +3 -3
  190. package/src/classes/HMSRTCStats.ts +27 -0
  191. package/src/classes/HMSRTCStatsReport.ts +17 -0
  192. package/src/classes/HMSRemoteAudioStats.ts +21 -0
  193. package/src/classes/HMSRemoteVideoStats.ts +29 -0
  194. package/src/classes/HMSRoom.ts +11 -0
  195. package/src/classes/HMSRoomUpdate.ts +7 -0
  196. package/src/classes/HMSRtmpStreamingState.ts +10 -1
  197. package/src/classes/HMSSDK.tsx +618 -30
  198. package/src/classes/HMSServerRecordingState.ts +7 -1
  199. package/src/classes/HMSUpdateListenerActions.ts +5 -0
  200. package/src/classes/HmsView.tsx +32 -4
  201. package/src/index.ts +14 -0
@@ -11,6 +11,7 @@ import live.hms.video.media.settings.HMSVideoTrackSettings
11
11
  import live.hms.video.media.tracks.*
12
12
  import live.hms.video.sdk.models.*
13
13
  import live.hms.video.sdk.models.role.*
14
+ import live.hms.video.utils.HmsUtilities
14
15
 
15
16
  object HmsHelper {
16
17
 
@@ -47,24 +48,16 @@ object HmsHelper {
47
48
  return true
48
49
  }
49
50
 
50
- fun getPeerFromPeerId(peerId: String?, peers: Array<HMSPeer>?): HMSPeer? {
51
- if (peerId != null && peers != null) {
52
- for (peer in peers) {
53
- if (peerId == peer.peerID) {
54
- return peer
55
- }
56
- }
51
+ fun getPeerFromPeerId(peerId: String?, room: HMSRoom?): HMSPeer? {
52
+ if (peerId != null && room != null) {
53
+ return HmsUtilities.getPeer(peerId, room)
57
54
  }
58
55
  return null
59
56
  }
60
57
 
61
- fun getRemotePeerFromPeerId(peerId: String?, peers: Array<HMSRemotePeer>?): HMSRemotePeer? {
62
- if (peerId != null && peers != null) {
63
- for (peer in peers) {
64
- if (peerId == peer.peerID) {
65
- return peer
66
- }
67
- }
58
+ fun getRemotePeerFromPeerId(peerId: String?, room: HMSRoom?): HMSRemotePeer? {
59
+ if (peerId != null && room != null) {
60
+ return HmsUtilities.getPeer(peerId, room) as? HMSRemotePeer
68
61
  }
69
62
  return null
70
63
  }
@@ -98,64 +91,23 @@ object HmsHelper {
98
91
  return null
99
92
  }
100
93
 
101
- fun getRemoteAudioTrackFromTrackId(
102
- trackId: String?,
103
- remotePeers: Array<HMSRemotePeer>?
104
- ): HMSRemoteAudioTrack? {
105
- if (trackId != null && remotePeers != null) {
106
- for (remotePeer in remotePeers) {
107
- if (remotePeer.audioTrack?.trackId == trackId) {
108
- return remotePeer.audioTrack as HMSRemoteAudioTrack
109
- }
110
- }
111
- }
112
- return null
113
- }
114
-
115
- fun getRemoteVideoTrackFromTrackId(
116
- trackId: String?,
117
- remotePeers: Array<HMSRemotePeer>?
118
- ): HMSRemoteVideoTrack? {
119
- if (trackId != null && remotePeers != null) {
120
- for (remotePeer in remotePeers) {
121
- if (remotePeer.videoTrack?.trackId == trackId) {
122
- return remotePeer.videoTrack as HMSRemoteVideoTrack
123
- }
124
- }
94
+ fun getRemoteAudioTrackFromTrackId(trackId: String?, room: HMSRoom?): HMSRemoteAudioTrack? {
95
+ if (trackId != null && room != null) {
96
+ return HmsUtilities.getAudioTrack(trackId, room) as? HMSRemoteAudioTrack
125
97
  }
126
98
  return null
127
99
  }
128
100
 
129
- fun getTrackFromTrackId(trackId: String?, remotePeers: Array<HMSRemotePeer>?): HMSTrack? {
130
- if (trackId != null && remotePeers != null) {
131
- for (remotePeer in remotePeers) {
132
- if (remotePeer.audioTrack?.trackId == trackId) {
133
- return remotePeer.audioTrack as HMSTrack
134
- }
135
-
136
- if (remotePeer.videoTrack?.trackId == trackId) {
137
- return remotePeer.videoTrack as HMSTrack
138
- }
139
- }
101
+ fun getRemoteVideoTrackFromTrackId(trackId: String?, room: HMSRoom?): HMSRemoteVideoTrack? {
102
+ if (trackId != null && room != null) {
103
+ return HmsUtilities.getVideoTrack(trackId, room) as? HMSRemoteVideoTrack
140
104
  }
141
105
  return null
142
106
  }
143
107
 
144
- fun getLocalTrackFromTrackId(trackId: String?, localPeer: HMSLocalPeer?): HMSTrack? {
145
- if (trackId != null && localPeer != null) {
146
- if (localPeer.audioTrack?.trackId == trackId) {
147
- return localPeer.audioTrack as HMSTrack
148
- }
149
-
150
- if (localPeer.videoTrack?.trackId == trackId) {
151
- return localPeer.videoTrack as HMSTrack
152
- }
153
-
154
- for (auxTrack in localPeer.auxiliaryTracks) {
155
- if (auxTrack.trackId == trackId) {
156
- return auxTrack
157
- }
158
- }
108
+ fun getTrackFromTrackId(trackId: String?, room: HMSRoom?): HMSTrack? {
109
+ if (trackId != null && room != null) {
110
+ return HmsUtilities.getTrack(trackId, room)
159
111
  }
160
112
  return null
161
113
  }
@@ -304,4 +256,55 @@ object HmsHelper {
304
256
  }
305
257
  return rtmpURLs
306
258
  }
259
+
260
+ fun getHMSHLSMeetingURLVariants(
261
+ hmsMeetingURLVariants: ArrayList<HashMap<String, String>>?
262
+ ): List<HMSHLSMeetingURLVariant> {
263
+ val meetingURLVariants = mutableListOf<HMSHLSMeetingURLVariant>()
264
+ if (hmsMeetingURLVariants !== null) {
265
+ for (variant in hmsMeetingURLVariants) {
266
+ val meetingURLVariant = this.getHMSHLSMeetingURLVariant(variant)
267
+ meetingURLVariants.add(meetingURLVariant)
268
+ }
269
+ }
270
+ return meetingURLVariants
271
+ }
272
+
273
+ fun getHlsRecordingConfig(data: ReadableMap): HMSHlsRecordingConfig? {
274
+ if (areAllRequiredKeysAvailable(data, arrayOf(Pair("hlsRecordingConfig", "Map")))) {
275
+ val hmsHlsRecordingConfig = data.getMap("hlsRecordingConfig")
276
+ if (hmsHlsRecordingConfig != null) {
277
+ var singleFilePerLayer = false
278
+ var videoOnDemand = false
279
+ if (areAllRequiredKeysAvailable(
280
+ hmsHlsRecordingConfig,
281
+ arrayOf(Pair("singleFilePerLayer", "Boolean"))
282
+ )
283
+ ) {
284
+ singleFilePerLayer = hmsHlsRecordingConfig.getBoolean("singleFilePerLayer")
285
+ }
286
+ if (areAllRequiredKeysAvailable(
287
+ hmsHlsRecordingConfig,
288
+ arrayOf(Pair("videoOnDemand", "Boolean"))
289
+ )
290
+ ) {
291
+ videoOnDemand = hmsHlsRecordingConfig.getBoolean("videoOnDemand")
292
+ }
293
+ return HMSHlsRecordingConfig(singleFilePerLayer, videoOnDemand)
294
+ }
295
+ }
296
+ return null
297
+ }
298
+
299
+ private fun getHMSHLSMeetingURLVariant(
300
+ hmsMeetingURLVariant: HashMap<String, String>?
301
+ ): HMSHLSMeetingURLVariant {
302
+ var meetingURLVariant = HMSHLSMeetingURLVariant("", "")
303
+ if (hmsMeetingURLVariant !== null) {
304
+ val meetingUrl = hmsMeetingURLVariant["meetingUrl"] as String
305
+ val metadata = hmsMeetingURLVariant["metadata"] as String
306
+ meetingURLVariant = HMSHLSMeetingURLVariant(meetingUrl, metadata)
307
+ }
308
+ return meetingURLVariant
309
+ }
307
310
  }
@@ -1,5 +1,8 @@
1
1
  package com.reactnativehmssdk
2
2
 
3
+ import android.app.Activity
4
+ import android.app.Application
5
+ import android.os.Bundle
3
6
  import com.facebook.react.bridge.*
4
7
  import com.facebook.react.module.annotations.ReactModule
5
8
  import com.facebook.react.modules.core.DeviceEventManagerModule
@@ -7,11 +10,12 @@ import com.reactnativehmssdk.HmsModule.Companion.REACT_CLASS
7
10
  import java.util.UUID
8
11
 
9
12
  @ReactModule(name = REACT_CLASS)
10
- class HmsModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaModule(reactContext) {
13
+ class HmsModule(reactContext: ReactApplicationContext) :
14
+ ReactContextBaseJavaModule(reactContext), Application.ActivityLifecycleCallbacks {
11
15
  companion object {
12
16
  const val REACT_CLASS = "HmsManager"
17
+ var hmsCollection = mutableMapOf<String, HmsSDK>()
13
18
  }
14
- private var hmsCollection = mutableMapOf<String, HmsSDK>()
15
19
  override fun getName(): String {
16
20
  return "HmsManager"
17
21
  }
@@ -121,10 +125,10 @@ class HmsModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaMod
121
125
  }
122
126
 
123
127
  @ReactMethod
124
- fun changeTrackStateRoles(data: ReadableMap, callback: Promise?) {
128
+ fun changeTrackStateForRoles(data: ReadableMap, callback: Promise?) {
125
129
  val hms = HmsHelper.getHms(data, hmsCollection)
126
130
 
127
- hms?.changeTrackStateRoles(data, callback)
131
+ hms?.changeTrackStateForRoles(data, callback)
128
132
  }
129
133
 
130
134
  @ReactMethod
@@ -191,10 +195,17 @@ class HmsModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaMod
191
195
  }
192
196
 
193
197
  @ReactMethod
194
- fun muteAllPeersAudio(data: ReadableMap) {
198
+ fun setPlaybackForAllAudio(data: ReadableMap) {
195
199
  val hms = HmsHelper.getHms(data, hmsCollection)
196
200
 
197
- hms?.muteAllPeersAudio(data)
201
+ hms?.setPlaybackForAllAudio(data)
202
+ }
203
+
204
+ @ReactMethod
205
+ fun remoteMuteAllAudio(data: ReadableMap) {
206
+ val hms = HmsHelper.getHms(data, hmsCollection)
207
+
208
+ hms?.remoteMuteAllAudio()
198
209
  }
199
210
 
200
211
  @ReactMethod
@@ -204,6 +215,29 @@ class HmsModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaMod
204
215
  hms?.changeMetadata(data, callback)
205
216
  }
206
217
 
218
+ @ReactMethod
219
+ fun startScreenshare(data: ReadableMap, callback: Promise?) {
220
+ currentActivity?.application?.registerActivityLifecycleCallbacks(this)
221
+ val hms = HmsHelper.getHms(data, hmsCollection)
222
+
223
+ hms?.startScreenshare(callback)
224
+ }
225
+
226
+ @ReactMethod
227
+ fun isScreenShared(data: ReadableMap, callback: Promise?) {
228
+ val hms = HmsHelper.getHms(data, hmsCollection)
229
+
230
+ hms?.isScreenShared(callback)
231
+ }
232
+
233
+ @ReactMethod
234
+ fun stopScreenshare(data: ReadableMap, callback: Promise?) {
235
+ val hms = HmsHelper.getHms(data, hmsCollection)
236
+
237
+ currentActivity?.application?.unregisterActivityLifecycleCallbacks(this)
238
+ hms?.stopScreenshare(callback)
239
+ }
240
+
207
241
  @ReactMethod
208
242
  fun startRTMPOrRecording(data: ReadableMap, callback: Promise?) {
209
243
  val hms = HmsHelper.getHms(data, hmsCollection)
@@ -218,9 +252,66 @@ class HmsModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaMod
218
252
  hms?.stopRtmpAndRecording(callback)
219
253
  }
220
254
 
255
+ @ReactMethod
256
+ fun startHLSStreaming(data: ReadableMap, callback: Promise?) {
257
+ val hms = HmsHelper.getHms(data, hmsCollection)
258
+
259
+ hms?.startHLSStreaming(data, callback)
260
+ }
261
+
262
+ @ReactMethod
263
+ fun stopHLSStreaming(data: ReadableMap, callback: Promise?) {
264
+ val hms = HmsHelper.getHms(data, hmsCollection)
265
+
266
+ hms?.stopHLSStreaming(callback)
267
+ }
268
+
269
+ @ReactMethod
270
+ fun resetVolume(data: ReadableMap) {
271
+ val hms = HmsHelper.getHms(data, hmsCollection)
272
+
273
+ hms?.resetVolume()
274
+ }
275
+
276
+ @ReactMethod
277
+ fun changeName(data: ReadableMap, callback: Promise?) {
278
+ val hms = HmsHelper.getHms(data, hmsCollection)
279
+
280
+ hms?.changeName(data, callback)
281
+ }
282
+
221
283
  fun emitEvent(event: String, data: WritableMap) {
222
284
  reactApplicationContext
223
285
  .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
224
286
  .emit(event, data)
225
287
  }
288
+
289
+ override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) {}
290
+
291
+ override fun onActivityStarted(activity: Activity) {}
292
+
293
+ override fun onActivityResumed(activity: Activity) {}
294
+
295
+ override fun onActivityPaused(activity: Activity) {}
296
+
297
+ override fun onActivityStopped(activity: Activity) {}
298
+
299
+ override fun onActivitySaveInstanceState(activity: Activity, outState: Bundle) {}
300
+
301
+ override fun onActivityDestroyed(activity: Activity) {
302
+ try {
303
+ if (activity.componentName.shortClassName == ".MainActivity") {
304
+ for (key in hmsCollection.keys) {
305
+ val hmsLocalPeer = hmsCollection[key]?.hmsSDK?.getLocalPeer()
306
+ if (hmsLocalPeer != null) {
307
+ hmsCollection[key]?.leave(null)
308
+ }
309
+ }
310
+ currentActivity?.application?.unregisterActivityLifecycleCallbacks(this)
311
+ hmsCollection = mutableMapOf()
312
+ }
313
+ } catch (e: Exception) {
314
+ // Log.d("error", e.message)
315
+ }
316
+ }
226
317
  }