@100mslive/react-native-hms 1.12.2 → 2.0.0-alpha.1

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 (70) hide show
  1. package/android/build.gradle +70 -12
  2. package/android/src/main/java/com/reactnativehmssdk/HMSAudioshareActivity.kt +8 -8
  3. package/android/src/main/java/com/reactnativehmssdk/HMSHLSPlayer.kt +38 -12
  4. package/android/src/main/java/com/reactnativehmssdk/HMSHLSPlayerManagerImpl.kt +185 -0
  5. package/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt +20 -10
  6. package/android/src/main/java/com/reactnativehmssdk/{HMSManager.kt → HMSManagerImpl.kt} +28 -111
  7. package/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +3 -3
  8. package/android/src/main/java/com/reactnativehmssdk/HMSReactNativeEvent.kt +29 -0
  9. package/android/src/main/java/com/reactnativehmssdk/HMSSDKViewManagerImpl.kt +119 -0
  10. package/android/src/main/java/com/reactnativehmssdk/HMSView.kt +33 -5
  11. package/android/src/main/java/com/reactnativehmssdk/HmsScreenshareActivity.kt +9 -9
  12. package/android/src/main/java/com/reactnativehmssdk/HmssdkPackage.kt +42 -3
  13. package/android/src/newarch/java/com/reactnativehmssdk/HMSHLSPlayerManager.kt +128 -0
  14. package/android/src/newarch/java/com/reactnativehmssdk/HMSManager.kt +332 -0
  15. package/android/src/newarch/java/com/reactnativehmssdk/HMSSDKViewManager.kt +102 -0
  16. package/android/src/oldarch/java/com/reactnativehmssdk/HMSHLSPlayerManager.kt +61 -0
  17. package/android/src/oldarch/java/com/reactnativehmssdk/HMSManager.kt +351 -0
  18. package/android/src/oldarch/java/com/reactnativehmssdk/HMSSDKViewManager.kt +87 -0
  19. package/ios/HMSHLSPlayerComponentView.mm +325 -0
  20. package/ios/HMSHLSPlayerManager.m +10 -0
  21. package/ios/HMSHLSPlayerManager.swift +91 -79
  22. package/ios/HMSManager.m +13 -0
  23. package/ios/HMSManager.mm +365 -0
  24. package/ios/HMSManager.swift +109 -103
  25. package/ios/HMSView.m +9 -0
  26. package/ios/HMSView.swift +44 -14
  27. package/ios/HMSViewComponentView.mm +229 -0
  28. package/lib/commonjs/classes/HmsView.js +45 -48
  29. package/lib/commonjs/classes/HmsView.js.map +1 -1
  30. package/lib/commonjs/components/HMSHLSPlayer/HMSHLSPlayer.js +46 -26
  31. package/lib/commonjs/components/HMSHLSPlayer/HMSHLSPlayer.js.map +1 -1
  32. package/lib/commonjs/components/HMSHLSPlayer/RCTHMSHLSPlayer.js +5 -4
  33. package/lib/commonjs/components/HMSHLSPlayer/RCTHMSHLSPlayer.js.map +1 -1
  34. package/lib/commonjs/modules/HMSManagerModule.js +3 -10
  35. package/lib/commonjs/modules/HMSManagerModule.js.map +1 -1
  36. package/lib/commonjs/specs/HMSHLSPlayerNativeComponent.js +75 -0
  37. package/lib/commonjs/specs/HMSHLSPlayerNativeComponent.js.map +1 -0
  38. package/lib/commonjs/specs/HMSViewNativeComponent.js +55 -0
  39. package/lib/commonjs/specs/HMSViewNativeComponent.js.map +1 -0
  40. package/lib/commonjs/specs/NativeHMSManager.js +38 -0
  41. package/lib/commonjs/specs/NativeHMSManager.js.map +1 -0
  42. package/lib/module/classes/HmsView.js +46 -49
  43. package/lib/module/classes/HmsView.js.map +1 -1
  44. package/lib/module/components/HMSHLSPlayer/HMSHLSPlayer.js +48 -28
  45. package/lib/module/components/HMSHLSPlayer/HMSHLSPlayer.js.map +1 -1
  46. package/lib/module/components/HMSHLSPlayer/RCTHMSHLSPlayer.js +3 -3
  47. package/lib/module/components/HMSHLSPlayer/RCTHMSHLSPlayer.js.map +1 -1
  48. package/lib/module/modules/HMSManagerModule.js +1 -9
  49. package/lib/module/modules/HMSManagerModule.js.map +1 -1
  50. package/lib/module/specs/HMSHLSPlayerNativeComponent.js +69 -0
  51. package/lib/module/specs/HMSHLSPlayerNativeComponent.js.map +1 -0
  52. package/lib/module/specs/HMSViewNativeComponent.js +49 -0
  53. package/lib/module/specs/HMSViewNativeComponent.js.map +1 -0
  54. package/lib/module/specs/NativeHMSManager.js +33 -0
  55. package/lib/module/specs/NativeHMSManager.js.map +1 -0
  56. package/lib/typescript/components/HMSHLSPlayer/RCTHMSHLSPlayer.d.ts +6 -9
  57. package/lib/typescript/specs/HMSHLSPlayerNativeComponent.d.ts +115 -0
  58. package/lib/typescript/specs/HMSViewNativeComponent.d.ts +97 -0
  59. package/lib/typescript/specs/NativeHMSManager.d.ts +147 -0
  60. package/package.json +16 -1
  61. package/react-native-hms.podspec +43 -0
  62. package/src/classes/HmsView.tsx +60 -78
  63. package/src/components/HMSHLSPlayer/HMSHLSPlayer.tsx +62 -128
  64. package/src/components/HMSHLSPlayer/RCTHMSHLSPlayer.ts +8 -13
  65. package/src/modules/HMSManagerModule.ts +1 -14
  66. package/src/specs/HMSHLSPlayerNativeComponent.ts +203 -0
  67. package/src/specs/HMSViewNativeComponent.ts +119 -0
  68. package/src/specs/NativeHMSManager.ts +307 -0
  69. package/android/src/main/java/com/reactnativehmssdk/HMSHLSPlayerManager.kt +0 -144
  70. package/android/src/main/java/com/reactnativehmssdk/HMSSDKViewManager.kt +0 -111
@@ -0,0 +1,351 @@
1
+ package com.reactnativehmssdk
2
+
3
+ import com.facebook.react.bridge.*
4
+ import com.facebook.react.module.annotations.ReactModule
5
+
6
+ /**
7
+ * HMSManager — old-arch wrapper for the HMSManager native module.
8
+ *
9
+ * Phase 1 / 1C-2 of the New Architecture migration. This wrapper is compiled
10
+ * only when the consumer's app uses old architecture (newArchEnabled=false).
11
+ * It extends ReactContextBaseJavaModule (the legacy bridge base class) and
12
+ * exposes ~98 @ReactMethod-annotated functions that all delegate to
13
+ * HMSManagerImpl in src/main/.
14
+ *
15
+ * The new-arch counterpart at src/newarch/.../HMSManager.kt extends the
16
+ * Codegen-generated NativeHMSManagerSpec and forwards to the same impl.
17
+ *
18
+ * Pattern reference:
19
+ * https://github.com/reactwg/react-native-new-architecture/blob/main/docs/backwards-compat-turbo-modules.md
20
+ */
21
+ @ReactModule(name = HMSManagerImpl.REACT_CLASS)
22
+ class HMSManager(
23
+ reactContext: ReactApplicationContext,
24
+ ) : ReactContextBaseJavaModule(reactContext) {
25
+ private val impl = HMSManagerImpl(reactContext)
26
+
27
+ override fun getName(): String = HMSManagerImpl.REACT_CLASS
28
+
29
+ /**
30
+ * Lifecycle hooks that consumer apps' MainActivity calls. Forward to
31
+ * the Impl's companion-object methods for backward compatibility with
32
+ * apps that already call HMSManager.onPictureInPictureModeChanged(...)
33
+ * etc.
34
+ */
35
+ companion object {
36
+ @JvmStatic
37
+ fun onPictureInPictureModeChanged(
38
+ isInPictureInPictureMode: Boolean,
39
+ newConfig: android.content.res.Configuration,
40
+ ) = HMSManagerImpl.onPictureInPictureModeChanged(isInPictureInPictureMode, newConfig)
41
+
42
+ @JvmStatic
43
+ fun onResume() = HMSManagerImpl.onResume()
44
+
45
+ @JvmStatic
46
+ fun onUserLeaveHint() = HMSManagerImpl.onUserLeaveHint()
47
+
48
+ /** Backward-compat: external packages (e.g. react-native-video-plugin) read this map. */
49
+ @JvmStatic
50
+ val hmsCollection: MutableMap<String, HMSRNSDK>
51
+ get() = HMSManagerImpl.hmsCollection
52
+ }
53
+
54
+ /** Used by view managers to look up the active SDK instances map. */
55
+ fun getHmsInstance(): MutableMap<String, HMSRNSDK> = impl.getHmsInstance()
56
+
57
+ @ReactMethod
58
+ fun build(data: ReadableMap?, callback: Promise?) = impl.build(data, callback)
59
+
60
+ @ReactMethod
61
+ fun preview(credentials: ReadableMap) = impl.preview(credentials)
62
+
63
+ @ReactMethod
64
+ fun join(credentials: ReadableMap) = impl.join(credentials)
65
+
66
+ @ReactMethod
67
+ fun setLocalMute(data: ReadableMap) = impl.setLocalMute(data)
68
+
69
+ @ReactMethod
70
+ fun setLocalVideoMute(data: ReadableMap) = impl.setLocalVideoMute(data)
71
+
72
+ @ReactMethod
73
+ fun switchCamera(data: ReadableMap) = impl.switchCamera(data)
74
+
75
+ @ReactMethod
76
+ fun leave(data: ReadableMap, callback: Promise?) = impl.leave(data, callback)
77
+
78
+ @ReactMethod
79
+ fun sendBroadcastMessage(data: ReadableMap, callback: Promise?) = impl.sendBroadcastMessage(data, callback)
80
+
81
+ @ReactMethod
82
+ fun sendGroupMessage(data: ReadableMap, callback: Promise?) = impl.sendGroupMessage(data, callback)
83
+
84
+ @ReactMethod
85
+ fun sendDirectMessage(data: ReadableMap, callback: Promise?) = impl.sendDirectMessage(data, callback)
86
+
87
+ @ReactMethod
88
+ fun changeRole(data: ReadableMap, callback: Promise?) = impl.changeRole(data, callback)
89
+
90
+ @ReactMethod
91
+ fun changeRoleOfPeer(data: ReadableMap, promise: Promise?) = impl.changeRoleOfPeer(data, promise)
92
+
93
+ @ReactMethod
94
+ fun changeRoleOfPeersWithRoles(data: ReadableMap, promise: Promise?) = impl.changeRoleOfPeersWithRoles(data, promise)
95
+
96
+ @ReactMethod
97
+ fun changeTrackState(data: ReadableMap, callback: Promise?) = impl.changeTrackState(data, callback)
98
+
99
+ @ReactMethod
100
+ fun changeTrackStateForRoles(data: ReadableMap, callback: Promise?) = impl.changeTrackStateForRoles(data, callback)
101
+
102
+ @ReactMethod
103
+ fun isMute(data: ReadableMap, callback: Promise?) = impl.isMute(data, callback)
104
+
105
+ @ReactMethod
106
+ fun removePeer(data: ReadableMap, callback: Promise?) = impl.removePeer(data, callback)
107
+
108
+ @ReactMethod
109
+ fun isPlaybackAllowed(data: ReadableMap, callback: Promise?) = impl.isPlaybackAllowed(data, callback)
110
+
111
+ @ReactMethod
112
+ fun getRoom(data: ReadableMap, callback: Promise?) = impl.getRoom(data, callback)
113
+
114
+ @ReactMethod
115
+ fun getLocalPeer(data: ReadableMap, callback: Promise?) = impl.getLocalPeer(data, callback)
116
+
117
+ @ReactMethod
118
+ fun getRemotePeers(data: ReadableMap, callback: Promise?) = impl.getRemotePeers(data, callback)
119
+
120
+ @ReactMethod
121
+ fun getRoles(data: ReadableMap, callback: Promise?) = impl.getRoles(data, callback)
122
+
123
+ @ReactMethod
124
+ fun setPlaybackAllowed(data: ReadableMap, callback: Promise?) = impl.setPlaybackAllowed(data, callback)
125
+
126
+ @ReactMethod
127
+ fun endRoom(data: ReadableMap, callback: Promise?) = impl.endRoom(data, callback)
128
+
129
+ @ReactMethod
130
+ fun previewForRole(data: ReadableMap, callback: Promise?) = impl.previewForRole(data, callback)
131
+
132
+ @ReactMethod
133
+ fun cancelPreview(data: ReadableMap, callback: Promise?) = impl.cancelPreview(data, callback)
134
+
135
+ @ReactMethod
136
+ fun acceptRoleChange(data: ReadableMap, callback: Promise?) = impl.acceptRoleChange(data, callback)
137
+
138
+ @ReactMethod
139
+ fun setVolume(data: ReadableMap, callback: Promise?) = impl.setVolume(data, callback)
140
+
141
+ @ReactMethod
142
+ fun getVolume(data: ReadableMap, callback: Promise?) = impl.getVolume(data, callback)
143
+
144
+ @ReactMethod
145
+ fun setPlaybackForAllAudio(data: ReadableMap, callback: Promise?) = impl.setPlaybackForAllAudio(data, callback)
146
+
147
+ @ReactMethod
148
+ fun remoteMuteAllAudio(data: ReadableMap, callback: Promise?) = impl.remoteMuteAllAudio(data, callback)
149
+
150
+ @ReactMethod
151
+ fun changeMetadata(data: ReadableMap, callback: Promise?) = impl.changeMetadata(data, callback)
152
+
153
+ @ReactMethod
154
+ fun startScreenshare(data: ReadableMap, callback: Promise?) = impl.startScreenshare(data, callback)
155
+
156
+ @ReactMethod
157
+ fun isScreenShared(data: ReadableMap, callback: Promise?) = impl.isScreenShared(data, callback)
158
+
159
+ @ReactMethod
160
+ fun stopScreenshare(data: ReadableMap, callback: Promise?) = impl.stopScreenshare(data, callback)
161
+
162
+ @ReactMethod
163
+ fun startAudioshare(data: ReadableMap, callback: Promise?) = impl.startAudioshare(data, callback)
164
+
165
+ @ReactMethod
166
+ fun isAudioShared(data: ReadableMap, callback: Promise?) = impl.isAudioShared(data, callback)
167
+
168
+ @ReactMethod
169
+ fun stopAudioshare(data: ReadableMap, callback: Promise?) = impl.stopAudioshare(data, callback)
170
+
171
+ @ReactMethod
172
+ fun getAudioMixingMode(data: ReadableMap, callback: Promise?) = impl.getAudioMixingMode(data, callback)
173
+
174
+ @ReactMethod
175
+ fun setAudioMixingMode(data: ReadableMap, callback: Promise?) = impl.setAudioMixingMode(data, callback)
176
+
177
+ @ReactMethod
178
+ fun startRTMPOrRecording(data: ReadableMap, callback: Promise?) = impl.startRTMPOrRecording(data, callback)
179
+
180
+ @ReactMethod
181
+ fun stopRtmpAndRecording(data: ReadableMap, callback: Promise?) = impl.stopRtmpAndRecording(data, callback)
182
+
183
+ @ReactMethod
184
+ fun startHLSStreaming(data: ReadableMap, callback: Promise?) = impl.startHLSStreaming(data, callback)
185
+
186
+ @ReactMethod
187
+ fun stopHLSStreaming(data: ReadableMap, callback: Promise?) = impl.stopHLSStreaming(data, callback)
188
+
189
+ @ReactMethod
190
+ fun sendHLSTimedMetadata(data: ReadableMap, callback: Promise?) = impl.sendHLSTimedMetadata(data, callback)
191
+
192
+ @ReactMethod
193
+ fun changeName(data: ReadableMap, callback: Promise?) = impl.changeName(data, callback)
194
+
195
+ @ReactMethod
196
+ fun destroy(data: ReadableMap, callback: Promise?) = impl.destroy(data, callback)
197
+
198
+ @ReactMethod
199
+ fun enableNetworkQualityUpdates(data: ReadableMap) = impl.enableNetworkQualityUpdates(data)
200
+
201
+ @ReactMethod
202
+ fun disableNetworkQualityUpdates(data: ReadableMap) = impl.disableNetworkQualityUpdates(data)
203
+
204
+ @ReactMethod
205
+ fun getAudioDevicesList(data: ReadableMap, callback: Promise?) = impl.getAudioDevicesList(data, callback)
206
+
207
+ @ReactMethod
208
+ fun getAudioOutputRouteType(data: ReadableMap, callback: Promise?) = impl.getAudioOutputRouteType(data, callback)
209
+
210
+ @ReactMethod
211
+ fun switchAudioOutput(data: ReadableMap, callback: Promise?) = impl.switchAudioOutput(data, callback)
212
+
213
+ @ReactMethod
214
+ fun setAudioMode(data: ReadableMap, callback: Promise?) = impl.setAudioMode(data, callback)
215
+
216
+ @ReactMethod
217
+ fun setAudioDeviceChangeListener(data: ReadableMap) = impl.setAudioDeviceChangeListener(data)
218
+
219
+ @ReactMethod(isBlockingSynchronousMethod = true)
220
+ fun getPeerProperty(data: ReadableMap): WritableMap? = impl.getPeerProperty(data)
221
+
222
+ @ReactMethod(isBlockingSynchronousMethod = true)
223
+ fun getRoomProperty(data: ReadableMap): WritableMap? = impl.getRoomProperty(data)
224
+
225
+ @ReactMethod
226
+ fun enableEvent(data: ReadableMap, promise: Promise?) = impl.enableEvent(data, promise)
227
+
228
+ @ReactMethod
229
+ fun disableEvent(data: ReadableMap, promise: Promise?) = impl.disableEvent(data, promise)
230
+
231
+ @ReactMethod
232
+ fun restrictData(data: ReadableMap, promise: Promise?) = impl.restrictData(data, promise)
233
+
234
+ @ReactMethod
235
+ fun getAuthTokenByRoomCode(data: ReadableMap, promise: Promise) = impl.getAuthTokenByRoomCode(data, promise)
236
+
237
+ @ReactMethod
238
+ fun handlePipActions(action: String, data: ReadableMap, promise: Promise?) = impl.handlePipActions(action, data, promise)
239
+
240
+ @ReactMethod
241
+ fun getRemoteVideoTrackFromTrackId(data: ReadableMap, promise: Promise) = impl.getRemoteVideoTrackFromTrackId(data, promise)
242
+
243
+ @ReactMethod
244
+ fun getRemoteAudioTrackFromTrackId(data: ReadableMap, promise: Promise) = impl.getRemoteAudioTrackFromTrackId(data, promise)
245
+
246
+ @ReactMethod
247
+ fun getVideoTrackLayer(data: ReadableMap, promise: Promise) = impl.getVideoTrackLayer(data, promise)
248
+
249
+ @ReactMethod
250
+ fun getVideoTrackLayerDefinition(data: ReadableMap, promise: Promise) = impl.getVideoTrackLayerDefinition(data, promise)
251
+
252
+ @ReactMethod
253
+ fun setVideoTrackLayer(data: ReadableMap, promise: Promise?) = impl.setVideoTrackLayer(data, promise)
254
+
255
+ @ReactMethod
256
+ fun captureImageAtMaxSupportedResolution(data: ReadableMap, promise: Promise?) = impl.captureImageAtMaxSupportedResolution(data, promise)
257
+
258
+ @ReactMethod
259
+ fun setSessionMetadataForKey(data: ReadableMap, promise: Promise?) = impl.setSessionMetadataForKey(data, promise)
260
+
261
+ @ReactMethod
262
+ fun getSessionMetadataForKey(data: ReadableMap, promise: Promise?) = impl.getSessionMetadataForKey(data, promise)
263
+
264
+ @ReactMethod
265
+ fun addKeyChangeListener(data: ReadableMap, promise: Promise?) = impl.addKeyChangeListener(data, promise)
266
+
267
+ @ReactMethod
268
+ fun removeKeyChangeListener(data: ReadableMap, promise: Promise?) = impl.removeKeyChangeListener(data, promise)
269
+
270
+ @ReactMethod
271
+ fun getRoomLayout(data: ReadableMap, promise: Promise?) = impl.getRoomLayout(data, promise)
272
+
273
+ @ReactMethod
274
+ fun raiseLocalPeerHand(data: ReadableMap, promise: Promise?) = impl.raiseLocalPeerHand(data, promise)
275
+
276
+ @ReactMethod
277
+ fun lowerLocalPeerHand(data: ReadableMap, promise: Promise?) = impl.lowerLocalPeerHand(data, promise)
278
+
279
+ @ReactMethod
280
+ fun lowerRemotePeerHand(data: ReadableMap, promise: Promise?) = impl.lowerRemotePeerHand(data, promise)
281
+
282
+ @ReactMethod(isBlockingSynchronousMethod = true)
283
+ fun getPeerListIterator(data: ReadableMap): WritableMap? = impl.getPeerListIterator(data)
284
+
285
+ @ReactMethod
286
+ fun peerListIteratorHasNext(data: ReadableMap, promise: Promise?) = impl.peerListIteratorHasNext(data, promise)
287
+
288
+ @ReactMethod
289
+ fun peerListIteratorNext(data: ReadableMap, promise: Promise?) = impl.peerListIteratorNext(data, promise)
290
+
291
+ @ReactMethod
292
+ fun checkNotifications(promise: Promise?) = impl.checkNotifications(promise)
293
+
294
+ @ReactMethod(isBlockingSynchronousMethod = true)
295
+ fun setSoftInputMode(inputMode: Int): Int = impl.setSoftInputMode(inputMode)
296
+
297
+ @ReactMethod(isBlockingSynchronousMethod = true)
298
+ fun getSoftInputMode(): Int = impl.getSoftInputMode()
299
+
300
+ @ReactMethod
301
+ fun hideSystemBars() = impl.hideSystemBars()
302
+
303
+ @ReactMethod
304
+ fun showSystemBars() = impl.showSystemBars()
305
+
306
+ @ReactMethod
307
+ fun setAlwaysScreenOn(data: ReadableMap, promise: Promise?) = impl.setAlwaysScreenOn(data, promise)
308
+
309
+ @ReactMethod
310
+ fun quickStartPoll(data: ReadableMap, promise: Promise?) = impl.quickStartPoll(data, promise)
311
+
312
+ @ReactMethod
313
+ fun addResponseOnPollQuestion(data: ReadableMap, promise: Promise?) = impl.addResponseOnPollQuestion(data, promise)
314
+
315
+ @ReactMethod
316
+ fun stopPoll(data: ReadableMap, promise: Promise?) = impl.stopPoll(data, promise)
317
+
318
+ @ReactMethod
319
+ fun fetchLeaderboard(data: ReadableMap, promise: Promise?) = impl.fetchLeaderboard(data, promise)
320
+
321
+ @ReactMethod
322
+ fun startWhiteboard(data: ReadableMap, promise: Promise?) = impl.startWhiteboard(data, promise)
323
+
324
+ @ReactMethod
325
+ fun stopWhiteboard(data: ReadableMap, promise: Promise?) = impl.stopWhiteboard(data, promise)
326
+
327
+ @ReactMethod
328
+ fun enableNoiseCancellationPlugin(data: ReadableMap, promise: Promise?) = impl.enableNoiseCancellationPlugin(data, promise)
329
+
330
+ @ReactMethod
331
+ fun disableNoiseCancellationPlugin(data: ReadableMap, promise: Promise?) = impl.disableNoiseCancellationPlugin(data, promise)
332
+
333
+ @ReactMethod
334
+ fun isNoiseCancellationPluginEnabled(data: ReadableMap, promise: Promise?) = impl.isNoiseCancellationPluginEnabled(data, promise)
335
+
336
+ @ReactMethod
337
+ fun isNoiseCancellationPluginAvailable(data: ReadableMap, promise: Promise?) = impl.isNoiseCancellationPluginAvailable(data, promise)
338
+
339
+ @ReactMethod
340
+ fun handleRealTimeTranscription(data: ReadableMap, promise: Promise?) = impl.handleRealTimeTranscription(data, promise)
341
+
342
+ @ReactMethod
343
+ fun setPermissionsAccepted(data: ReadableMap, promise: Promise?) = impl.setPermissionsAccepted(data, promise)
344
+
345
+ @ReactMethod
346
+ fun addListener(eventName: String) = impl.addListener(eventName)
347
+
348
+ @ReactMethod
349
+ fun removeListeners(count: Int) = impl.removeListeners(count)
350
+
351
+ }
@@ -0,0 +1,87 @@
1
+ package com.reactnativehmssdk
2
+
3
+ import android.os.Build
4
+ import androidx.annotation.NonNull
5
+ import androidx.annotation.Nullable
6
+ import androidx.annotation.RequiresApi
7
+ import com.facebook.react.bridge.ReadableArray
8
+ import com.facebook.react.bridge.ReadableMap
9
+ import com.facebook.react.uimanager.SimpleViewManager
10
+ import com.facebook.react.uimanager.ThemedReactContext
11
+ import com.facebook.react.uimanager.annotations.ReactProp
12
+
13
+ /**
14
+ * HMSSDKViewManager — old-arch (paper) view manager for `<HMSView />`.
15
+ *
16
+ * Phase 1 / 1C-3 of the New Architecture migration. This wrapper is
17
+ * compiled only when the consumer's app uses old architecture. It
18
+ * extends SimpleViewManager and uses the legacy @ReactProp setter
19
+ * mechanism. All logic delegates to HMSSDKViewManagerImpl in src/main/.
20
+ */
21
+ class HMSSDKViewManager : SimpleViewManager<HMSView>() {
22
+ private var reactContext: ThemedReactContext? = null
23
+
24
+ override fun getName(): String = HMSSDKViewManagerImpl.REACT_CLASS
25
+
26
+ override fun createViewInstance(reactContext: ThemedReactContext): HMSView {
27
+ this.reactContext = reactContext
28
+ return HMSSDKViewManagerImpl.createViewInstance(reactContext)
29
+ }
30
+
31
+ override fun onDropViewInstance(view: HMSView) {
32
+ super.onDropViewInstance(view)
33
+ HMSSDKViewManagerImpl.onDropViewInstance(view)
34
+ }
35
+
36
+ override fun getExportedCustomDirectEventTypeConstants(): Map<String, Any> =
37
+ HMSSDKViewManagerImpl.getExportedCustomDirectEventTypeConstants()
38
+
39
+ @RequiresApi(Build.VERSION_CODES.N)
40
+ override fun receiveCommand(
41
+ @NonNull root: HMSView,
42
+ commandId: String?,
43
+ args: ReadableArray?,
44
+ ) {
45
+ when (commandId) {
46
+ "capture" -> HMSSDKViewManagerImpl.capture(root, args)
47
+ }
48
+ }
49
+
50
+ @RequiresApi(Build.VERSION_CODES.N)
51
+ override fun receiveCommand(
52
+ @NonNull root: HMSView,
53
+ commandId: Int,
54
+ args: ReadableArray?,
55
+ ) {
56
+ when (commandId) {
57
+ 1 -> HMSSDKViewManagerImpl.capture(root, args)
58
+ }
59
+ }
60
+
61
+ @Nullable
62
+ override fun getCommandsMap(): Map<String, Int>? = HMSSDKViewManagerImpl.getCommandsMap()
63
+
64
+ @ReactProp(name = "data")
65
+ fun setData(
66
+ view: HMSView,
67
+ data: ReadableMap,
68
+ ) = HMSSDKViewManagerImpl.setData(view, data, reactContext)
69
+
70
+ @ReactProp(name = "scaleType")
71
+ fun setScaleType(
72
+ view: HMSView,
73
+ data: String?,
74
+ ) = HMSSDKViewManagerImpl.setScaleType(view, data)
75
+
76
+ @ReactProp(name = "setZOrderMediaOverlay")
77
+ fun setZOrderMediaOverlay(
78
+ view: HMSView,
79
+ data: Boolean?,
80
+ ) = HMSSDKViewManagerImpl.setZOrderMediaOverlay(view, data)
81
+
82
+ @ReactProp(name = "autoSimulcast")
83
+ fun setAutoSimulcast(
84
+ view: HMSView,
85
+ data: Boolean?,
86
+ ) = HMSSDKViewManagerImpl.setAutoSimulcast(view, data)
87
+ }