omikit-plugin 4.0.1 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/README.md +344 -45
  2. package/android/build.gradle +21 -71
  3. package/android/gradle.properties +4 -4
  4. package/android/src/main/java/com/omikitplugin/OmiLocalCameraView.kt +112 -0
  5. package/android/src/main/java/com/omikitplugin/OmiRemoteCameraView.kt +99 -0
  6. package/android/src/main/java/com/omikitplugin/OmikitPluginModule.kt +57 -38
  7. package/android/src/main/java/com/omikitplugin/OmikitPluginPackage.kt +11 -8
  8. package/ios/CallProcess/CallManager.swift +99 -29
  9. package/ios/Library/OmikitPlugin.m +18 -0
  10. package/ios/Library/OmikitPlugin.swift +233 -1
  11. package/ios/OmikitPlugin-Bridging-Header.h +1 -0
  12. package/ios/OmikitPlugin.xcodeproj/project.pbxproj +4 -4
  13. package/ios/VideoCall/OmiLocalCameraViewBridge.m +14 -0
  14. package/ios/VideoCall/OmiLocalCameraViewManager.swift +41 -0
  15. package/ios/VideoCall/OmiRemoteCameraViewBridge.m +14 -0
  16. package/ios/VideoCall/OmiRemoteCameraViewManager.swift +40 -0
  17. package/lib/commonjs/NativeOmikitPlugin.js +2 -1
  18. package/lib/commonjs/NativeOmikitPlugin.js.map +1 -1
  19. package/lib/commonjs/index.js.map +1 -1
  20. package/lib/commonjs/omi_audio_type.js +5 -7
  21. package/lib/commonjs/omi_audio_type.js.map +1 -1
  22. package/lib/commonjs/omi_call_state.js +5 -3
  23. package/lib/commonjs/omi_call_state.js.map +1 -1
  24. package/lib/commonjs/omi_local_camera.js +20 -12
  25. package/lib/commonjs/omi_local_camera.js.map +1 -1
  26. package/lib/commonjs/omi_remote_camera.js +21 -12
  27. package/lib/commonjs/omi_remote_camera.js.map +1 -1
  28. package/lib/commonjs/omi_start_call_status.js +5 -24
  29. package/lib/commonjs/omi_start_call_status.js.map +1 -1
  30. package/lib/commonjs/omikit.js +91 -21
  31. package/lib/commonjs/omikit.js.map +1 -1
  32. package/lib/commonjs/types/index.d.js.map +1 -1
  33. package/lib/module/NativeOmikitPlugin.js.map +1 -1
  34. package/lib/module/index.js.map +1 -1
  35. package/lib/module/omi_audio_type.js +4 -7
  36. package/lib/module/omi_audio_type.js.map +1 -1
  37. package/lib/module/omi_call_state.js +4 -3
  38. package/lib/module/omi_call_state.js.map +1 -1
  39. package/lib/module/omi_local_camera.js +20 -13
  40. package/lib/module/omi_local_camera.js.map +1 -1
  41. package/lib/module/omi_remote_camera.js +21 -13
  42. package/lib/module/omi_remote_camera.js.map +1 -1
  43. package/lib/module/omi_start_call_status.js +4 -24
  44. package/lib/module/omi_start_call_status.js.map +1 -1
  45. package/lib/module/omikit.js +85 -20
  46. package/lib/module/omikit.js.map +1 -1
  47. package/lib/module/types/index.d.js.map +1 -1
  48. package/omikit-plugin.podspec +1 -1
  49. package/package.json +2 -11
  50. package/react-native.config.js +14 -0
  51. package/src/NativeOmikitPlugin.ts +1 -0
  52. package/src/omi_call_state.tsx +1 -0
  53. package/src/omi_local_camera.tsx +16 -15
  54. package/src/omi_remote_camera.tsx +17 -15
  55. package/src/omikit.tsx +104 -28
  56. package/src/types/index.d.ts +344 -62
  57. package/android/src/main/java/com/omikitplugin/FLLocalCameraModule.kt +0 -34
  58. package/android/src/main/java/com/omikitplugin/FLLocalCameraView.kt +0 -44
  59. package/android/src/main/java/com/omikitplugin/FLRemoteCameraModule.kt +0 -37
  60. package/android/src/main/java/com/omikitplugin/FLRemoteCameraView.kt +0 -23
  61. package/ios/VideoCall/FLLocalCameraView.m +0 -17
  62. package/ios/VideoCall/FLLocalCameraView.swift +0 -44
  63. package/ios/VideoCall/FLRemoteCameraView.m +0 -18
  64. package/ios/VideoCall/FLRemoteCameraView.swift +0 -124
@@ -2,43 +2,23 @@
2
2
  * Status codes returned by startCall() function
3
3
  * Use these to handle different call initiation results
4
4
  */
5
- export let OmiStartCallStatus = /*#__PURE__*/function (OmiStartCallStatus) {
6
- // Validation errors (0-3)
5
+ export let OmiStartCallStatus; // No network connection available
6
+ (function (OmiStartCallStatus) {
7
7
  OmiStartCallStatus[OmiStartCallStatus["invalidUuid"] = 0] = "invalidUuid";
8
- // Invalid user UUID
9
8
  OmiStartCallStatus[OmiStartCallStatus["invalidPhoneNumber"] = 1] = "invalidPhoneNumber";
10
- // Invalid phone number format
11
9
  OmiStartCallStatus[OmiStartCallStatus["samePhoneNumber"] = 2] = "samePhoneNumber";
12
- // Cannot call same phone number
13
10
  OmiStartCallStatus[OmiStartCallStatus["maxRetry"] = 3] = "maxRetry";
14
- // Maximum retry attempts reached
15
- // Permission errors (4, 450-452)
16
11
  OmiStartCallStatus[OmiStartCallStatus["permissionDenied"] = 4] = "permissionDenied";
17
- // Microphone/Camera permission denied
18
12
  OmiStartCallStatus[OmiStartCallStatus["permissionMicrophone"] = 450] = "permissionMicrophone";
19
- // Microphone permission required (Android 15+)
20
13
  OmiStartCallStatus[OmiStartCallStatus["permissionCamera"] = 451] = "permissionCamera";
21
- // Camera permission required (Android 15+)
22
14
  OmiStartCallStatus[OmiStartCallStatus["permissionOverlay"] = 452] = "permissionOverlay";
23
- // System alert window permission required (Android 15+)
24
- // Call errors (5-7)
25
15
  OmiStartCallStatus[OmiStartCallStatus["couldNotFindEndpoint"] = 5] = "couldNotFindEndpoint";
26
- // Could not find endpoint
27
16
  OmiStartCallStatus[OmiStartCallStatus["accountRegisterFailed"] = 6] = "accountRegisterFailed";
28
- // Account registration failed
29
17
  OmiStartCallStatus[OmiStartCallStatus["startCallFailed"] = 7] = "startCallFailed";
30
- // Start call failed
31
- // Success statuses (8, 407)
32
18
  OmiStartCallStatus[OmiStartCallStatus["startCallSuccess"] = 8] = "startCallSuccess";
33
- // Call initiated successfully (Android)
34
19
  OmiStartCallStatus[OmiStartCallStatus["startCallSuccessIOS"] = 407] = "startCallSuccessIOS";
35
- // Call initiated successfully (iOS)
36
- // Other errors (9+)
37
20
  OmiStartCallStatus[OmiStartCallStatus["haveAnotherCall"] = 9] = "haveAnotherCall";
38
- // Already have another call in progress
39
21
  OmiStartCallStatus[OmiStartCallStatus["accountTurnOffNumberInternal"] = 10] = "accountTurnOffNumberInternal";
40
- // Internal number has been deactivated
41
- OmiStartCallStatus[OmiStartCallStatus["noNetwork"] = 11] = "noNetwork"; // No network connection available
42
- return OmiStartCallStatus;
43
- }({});
22
+ OmiStartCallStatus[OmiStartCallStatus["noNetwork"] = 11] = "noNetwork";
23
+ })(OmiStartCallStatus || (OmiStartCallStatus = {}));
44
24
  //# sourceMappingURL=omi_start_call_status.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["OmiStartCallStatus"],"sourceRoot":"../../src","sources":["omi_start_call_status.tsx"],"mappings":"AAAA;AACA;AACA;AACA;AACA,WAAYA,kBAAkB,0BAAlBA,kBAAkB;EAC5B;EADUA,kBAAkB,CAAlBA,kBAAkB;EAEE;EAFpBA,kBAAkB,CAAlBA,kBAAkB;EAGE;EAHpBA,kBAAkB,CAAlBA,kBAAkB;EAIE;EAJpBA,kBAAkB,CAAlBA,kBAAkB;EAKE;EAE9B;EAPUA,kBAAkB,CAAlBA,kBAAkB;EAQE;EARpBA,kBAAkB,CAAlBA,kBAAkB;EASE;EATpBA,kBAAkB,CAAlBA,kBAAkB;EAUE;EAVpBA,kBAAkB,CAAlBA,kBAAkB;EAWE;EAE9B;EAbUA,kBAAkB,CAAlBA,kBAAkB;EAcE;EAdpBA,kBAAkB,CAAlBA,kBAAkB;EAeE;EAfpBA,kBAAkB,CAAlBA,kBAAkB;EAgBE;EAE9B;EAlBUA,kBAAkB,CAAlBA,kBAAkB;EAmBE;EAnBpBA,kBAAkB,CAAlBA,kBAAkB;EAoBE;EAE9B;EAtBUA,kBAAkB,CAAlBA,kBAAkB;EAuBE;EAvBpBA,kBAAkB,CAAlBA,kBAAkB;EAwBO;EAxBzBA,kBAAkB,CAAlBA,kBAAkB,mCAyBE;EAAA,OAzBpBA,kBAAkB;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["OmiStartCallStatus"],"sourceRoot":"../../src","sources":["omi_start_call_status.tsx"],"mappings":"AAAA;AACA;AACA;AACA;AACA,WAAYA,kBAAkB,EAyBE;AAC/B,WA1BWA,kBAAkB;EAAlBA,kBAAkB,CAAlBA,kBAAkB;EAAlBA,kBAAkB,CAAlBA,kBAAkB;EAAlBA,kBAAkB,CAAlBA,kBAAkB;EAAlBA,kBAAkB,CAAlBA,kBAAkB;EAAlBA,kBAAkB,CAAlBA,kBAAkB;EAAlBA,kBAAkB,CAAlBA,kBAAkB;EAAlBA,kBAAkB,CAAlBA,kBAAkB;EAAlBA,kBAAkB,CAAlBA,kBAAkB;EAAlBA,kBAAkB,CAAlBA,kBAAkB;EAAlBA,kBAAkB,CAAlBA,kBAAkB;EAAlBA,kBAAkB,CAAlBA,kBAAkB;EAAlBA,kBAAkB,CAAlBA,kBAAkB;EAAlBA,kBAAkB,CAAlBA,kBAAkB;EAAlBA,kBAAkB,CAAlBA,kBAAkB;EAAlBA,kBAAkB,CAAlBA,kBAAkB;EAAlBA,kBAAkB,CAAlBA,kBAAkB;AAAA,GAAlBA,kBAAkB,KAAlBA,kBAAkB"}
@@ -4,32 +4,49 @@ const LINKING_ERROR = `The package 'omikit-plugin' doesn't seem to be linked. Ma
4
4
  default: ''
5
5
  }) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
6
6
 
7
- // Runtime detection: Try TurboModule first, fallback to NativeModule
8
- const isTurboModuleEnabled = global.__turboModuleProxy != null;
9
- const OmikitPlugin = (() => {
10
- if (isTurboModuleEnabled) {
11
- // New Architecture - use TurboModule
7
+ // Resolve native module: TurboModule (New Arch) NativeModules (Old Arch) → null
8
+ const resolvedModule = (() => {
9
+ try {
10
+ // Try TurboModule first (New Architecture / bridgeless mode)
12
11
  const turboModule = TurboModuleRegistry.get('OmikitPlugin');
13
- if (turboModule) {
14
- return turboModule;
12
+ if (turboModule) return turboModule;
13
+ } catch (_) {}
14
+
15
+ // Fallback to NativeModules (Old Architecture / bridge mode)
16
+ if (NativeModules.OmikitPlugin) {
17
+ return NativeModules.OmikitPlugin;
18
+ }
19
+ return null;
20
+ })();
21
+
22
+ // Wrap in Proxy that throws LINKING_ERROR only when SDK methods are actually called
23
+ const OmikitPlugin = resolvedModule || new Proxy({}, {
24
+ get(_target, prop) {
25
+ if (prop === 'addListener' || prop === 'removeListeners') {
26
+ return () => {};
15
27
  }
28
+ throw new Error(LINKING_ERROR);
16
29
  }
30
+ });
17
31
 
18
- // Old Architecture - fallback to NativeModule
19
- return NativeModules.OmikitPlugin || new Proxy({}, {
20
- get() {
21
- throw new Error(LINKING_ERROR);
32
+ // Setup omiEmitter — safe for Old Arch, New Arch, and bridgeless mode
33
+ const omiEmitter = (() => {
34
+ if (Platform.OS !== 'ios') {
35
+ return DeviceEventEmitter;
36
+ }
37
+ try {
38
+ // Best case: NativeEventEmitter with resolved native module
39
+ if (resolvedModule) {
40
+ return new NativeEventEmitter(resolvedModule);
22
41
  }
23
- });
42
+ // New Arch without interop: NativeEventEmitter without module arg (RN 0.74+)
43
+ return new NativeEventEmitter();
44
+ } catch (_) {
45
+ // Last resort fallback
46
+ return DeviceEventEmitter;
47
+ }
24
48
  })();
25
49
 
26
- // Setup omiEmitter for iOS and Android
27
- // In bridgeless mode, NativeModules is empty — use TurboModule instance instead
28
- const omiEmitter = Platform.OS === 'ios' ? new NativeEventEmitter(NativeModules.OmikitPlugin ?? OmikitPlugin ?? {
29
- addListener: () => {},
30
- removeListeners: () => {}
31
- }) : DeviceEventEmitter;
32
-
33
50
  /**
34
51
  * Starts the Omikit services.
35
52
  * @returns {Promise<any>} A promise that resolves when the services start successfully.
@@ -165,6 +182,44 @@ export function switchOmiCamera() {
165
182
  return OmikitPlugin.switchOmiCamera();
166
183
  }
167
184
 
185
+ /**
186
+ * Configure camera view style on iOS (Fabric mode — native window rendering).
187
+ * On Android, use style props on OmiLocalCameraView/OmiRemoteCameraView instead.
188
+ *
189
+ * @param config.target - "local" or "remote"
190
+ * @param config.x - X position
191
+ * @param config.y - Y position
192
+ * @param config.width - View width
193
+ * @param config.height - View height
194
+ * @param config.borderRadius - Corner radius
195
+ * @param config.borderWidth - Border width
196
+ * @param config.borderColor - Border color (hex: "#FF0000" or "#FF000080")
197
+ * @param config.backgroundColor - Background color (hex)
198
+ * @param config.opacity - View opacity (0.0 - 1.0)
199
+ * @param config.hidden - Show/hide the view
200
+ * @param config.scaleMode - Video scale: "fill" (aspect fill), "fit" (aspect fit), "stretch"
201
+ * @returns {Promise<boolean>}
202
+ */
203
+ export function setCameraConfig(config) {
204
+ if (Platform.OS === 'ios') {
205
+ return OmikitPlugin.setCameraConfig(config);
206
+ }
207
+ return Promise.resolve(false);
208
+ }
209
+
210
+ /**
211
+ * Create video containers and add to window (iOS only).
212
+ * Call this when video call screen mounts and call is active.
213
+ * On Fabric, RCTViewManager.view() is not called, so containers must be created manually.
214
+ * @returns {Promise<boolean>}
215
+ */
216
+ export function setupVideoContainers() {
217
+ if (Platform.OS === 'ios') {
218
+ return OmikitPlugin.setupVideoContainers();
219
+ }
220
+ return Promise.resolve(true);
221
+ }
222
+
168
223
  /**
169
224
  * Toggles the video stream on or off during a video call.
170
225
  * @returns {Promise<boolean>} A promise that resolves to `true` if the video is toggled successfully.
@@ -189,6 +244,15 @@ export function registerVideoEvent() {
189
244
  return OmikitPlugin.registerVideoEvent();
190
245
  }
191
246
 
247
+ /**
248
+ * Setup video views by attaching native containers to React view tags.
249
+ * Required for New Architecture (Fabric) where ViewManager.view() is not called.
250
+ */
251
+ export function setupVideoViews(remoteTag, localTag) {
252
+ if (!OmikitPlugin.setupVideoViews) return Promise.resolve(false);
253
+ return OmikitPlugin.setupVideoViews(remoteTag, localTag);
254
+ }
255
+
192
256
  /**
193
257
  * Removes video call event listeners.
194
258
  * @returns {Promise<boolean>} A promise that resolves to `true` if the removal is successful.
@@ -341,7 +405,8 @@ export function checkPermissionStatus() {
341
405
  * @param {boolean} isVideo - Whether this is for video call (requires camera permission)
342
406
  * @returns {Promise<boolean>} True if all permissions granted (always true on iOS)
343
407
  */
344
- export function checkAndRequestPermissions(isVideo = false) {
408
+ export function checkAndRequestPermissions() {
409
+ let isVideo = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
345
410
  if (Platform.OS !== 'android') {
346
411
  return Promise.resolve(true);
347
412
  }
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","Platform","NativeEventEmitter","DeviceEventEmitter","TurboModuleRegistry","LINKING_ERROR","select","ios","default","isTurboModuleEnabled","global","__turboModuleProxy","OmikitPlugin","turboModule","get","Proxy","Error","omiEmitter","OS","addListener","removeListeners","startServices","configPushNotification","data","getInitialCall","counter","initCallWithUserPassword","initCallWithApiKey","startCall","startCallWithUuid","joinCall","endCall","toggleMute","toggleSpeaker","toggleHold","onHold","sendDTMF","switchOmiCamera","toggleOmiVideo","logout","registerVideoEvent","removeVideoEvent","getCurrentUser","getGuestUser","systemAlertWindow","openSystemAlertSetting","getAudio","setAudio","getCurrentAudio","transferCall","rejectCall","dropCall","hideSystemNotificationSafely","hideSystemNotificationOnly","hideSystemNotificationAndUnregister","reason","OmiCallEvent","onCallStateChanged","onSpeaker","onMuted","onRemoteVideoReady","onClickMissedCall","onSwitchboardAnswer","onCallQuality","onAudioChange","onRequestPermissionAndroid","checkCredentials","registerWithOptions","checkPermissionStatus","Promise","resolve","checkAndRequestPermissions","isVideo","requestSystemAlertWindowPermission","requestPermissionsByCodes","codes","getUserInfo","phone","getProjectId","getSipInfo","getAppId","getDeviceId","getFcmToken","getVoipToken"],"sourceRoot":"../../src","sources":["omikit.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["NativeModules","Platform","NativeEventEmitter","DeviceEventEmitter","TurboModuleRegistry","LINKING_ERROR","select","ios","default","resolvedModule","turboModule","get","_","OmikitPlugin","Proxy","_target","prop","Error","omiEmitter","OS","startServices","configPushNotification","data","getInitialCall","counter","initCallWithUserPassword","initCallWithApiKey","startCall","startCallWithUuid","joinCall","endCall","toggleMute","toggleSpeaker","toggleHold","onHold","sendDTMF","switchOmiCamera","setCameraConfig","config","Promise","resolve","setupVideoContainers","toggleOmiVideo","logout","registerVideoEvent","setupVideoViews","remoteTag","localTag","removeVideoEvent","getCurrentUser","getGuestUser","systemAlertWindow","openSystemAlertSetting","getAudio","setAudio","getCurrentAudio","transferCall","rejectCall","dropCall","hideSystemNotificationSafely","hideSystemNotificationOnly","hideSystemNotificationAndUnregister","reason","OmiCallEvent","onCallStateChanged","onSpeaker","onMuted","onRemoteVideoReady","onClickMissedCall","onSwitchboardAnswer","onCallQuality","onAudioChange","onRequestPermissionAndroid","checkCredentials","registerWithOptions","checkPermissionStatus","checkAndRequestPermissions","isVideo","arguments","length","undefined","requestSystemAlertWindowPermission","requestPermissionsByCodes","codes","getUserInfo","phone","getProjectId","getSipInfo","getAppId","getDeviceId","getFcmToken","getVoipToken"],"sourceRoot":"../../src","sources":["omikit.tsx"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sourceRoot":"../../src","sources":["index.d.ts"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["index.d.ts"],"mappings":""}
@@ -28,7 +28,7 @@ Pod::Spec.new do |s|
28
28
 
29
29
  # Dependencies
30
30
  s.dependency "React-Core"
31
- s.dependency "OmiKit", "1.10.34"
31
+ s.dependency "OmiKit", "1.11.4"
32
32
 
33
33
  # Base build settings (for both Old and New Architecture)
34
34
  base_xcconfig = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omikit-plugin",
3
- "version": "4.0.1",
3
+ "version": "4.1.0",
4
4
  "description": "Omikit Plugin by ViHAT",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -14,6 +14,7 @@
14
14
  "ios",
15
15
  "cpp",
16
16
  "*.podspec",
17
+ "react-native.config.js",
17
18
  "!lib/typescript/example",
18
19
  "!ios/build",
19
20
  "!android/build",
@@ -57,7 +58,6 @@
57
58
  "@release-it/conventional-changelog": "^5.0.0",
58
59
  "@types/jest": "^28.1.2",
59
60
  "@types/react": "18.3.1",
60
- "@types/react-native": "0.76.2",
61
61
  "react": "18.3.1",
62
62
  "react-native": "0.76.2",
63
63
  "del-cli": "^5.0.0",
@@ -127,15 +127,6 @@
127
127
  "module"
128
128
  ]
129
129
  },
130
- "react-native": {
131
- "android": {
132
- "sourceDir": "./android",
133
- "packageImportPath": "import com.omikitplugin.OmikitPluginPackage;"
134
- },
135
- "ios": {
136
- "podspecPath": "./omikit-plugin.podspec"
137
- }
138
- },
139
130
  "directories": {
140
131
  "example": "example"
141
132
  }
@@ -0,0 +1,14 @@
1
+ module.exports = {
2
+ dependency: {
3
+ platforms: {
4
+ ios: {},
5
+ android: {},
6
+ },
7
+ },
8
+ // Enable Fabric interop for legacy ViewManagers (OmiLocalCameraView, OmiRemoteCameraView)
9
+ // This allows requireNativeComponent to work with New Architecture (Fabric)
10
+ unstable_reactLegacyComponentNames: [
11
+ 'OmiLocalCameraView',
12
+ 'OmiRemoteCameraView',
13
+ ],
14
+ };
@@ -67,6 +67,7 @@ export interface Spec extends TurboModule {
67
67
  switchOmiCamera(): Promise<boolean>;
68
68
  registerVideoEvent(): Promise<boolean>;
69
69
  removeVideoEvent(): Promise<boolean>;
70
+ setupVideoViews(remoteTag: number, localTag: number): Promise<boolean>;
70
71
 
71
72
  sendDTMF(data: {
72
73
  character: string;
@@ -7,5 +7,6 @@ export enum OmiCallState {
7
7
  confirmed = 5,
8
8
  disconnected = 6,
9
9
  hold = 7,
10
+ disconnecting = 12,
10
11
  }
11
12
 
@@ -1,20 +1,21 @@
1
- import type { HostComponent } from 'react-native';
2
- import { NativeModules, requireNativeComponent, ViewProps } from 'react-native';
1
+ import { NativeModules, Platform, View } from 'react-native';
3
2
 
4
- // Camera Views always use Paper (requireNativeComponent) because:
5
- // - iOS native code doesn't have Fabric ComponentView implementation yet
6
- // - Paper components work fine even when New Architecture is enabled
7
- // - This avoids undefined symbol errors (_FLLocalCameraViewCls)
8
- const OmiLocalCameraViewPaper: HostComponent<ViewProps> = requireNativeComponent(
9
- 'FLLocalCameraView'
10
- );
3
+ // Safe requireNativeComponent returns fallback View if native config not available
4
+ let OmiLocalCameraViewNative: any = View;
5
+ try {
6
+ const { UIManager, requireNativeComponent } = require('react-native');
7
+ if (Platform.OS === 'android' || UIManager.getViewManagerConfig?.('OmiLocalCameraView')) {
8
+ OmiLocalCameraViewNative = requireNativeComponent('OmiLocalCameraView');
9
+ }
10
+ } catch (_) {
11
+ // Fallback to plain View — iOS Fabric uses native window rendering instead
12
+ }
11
13
 
12
- // Export the Paper component
13
- export const OmiLocalCameraView: HostComponent<ViewProps> = OmiLocalCameraViewPaper;
14
+ export const OmiLocalCameraView = OmiLocalCameraViewNative;
14
15
 
15
- // Module name separated from ViewManager name to avoid name collision
16
- const FLLocalCamera = NativeModules.FLLocalCameraModule || NativeModules.FLLocalCameraView;
16
+ // Imperative refresh method
17
+ const OmiLocalCamera = NativeModules.OmiLocalCameraView;
17
18
  export function refreshLocalCamera(): Promise<boolean> {
18
- if (!FLLocalCamera) return Promise.resolve(false);
19
- return FLLocalCamera.refresh();
19
+ if (!OmiLocalCamera) return Promise.resolve(false);
20
+ return OmiLocalCamera.refresh();
20
21
  }
@@ -1,20 +1,22 @@
1
- import type { HostComponent } from 'react-native';
2
- import { NativeModules, requireNativeComponent, ViewProps } from 'react-native';
1
+ import { NativeModules, Platform, View } from 'react-native';
3
2
 
4
- // Camera Views always use Paper (requireNativeComponent) because:
5
- // - iOS native code doesn't have Fabric ComponentView implementation yet
6
- // - Paper components work fine even when New Architecture is enabled
7
- // - This avoids undefined symbol errors (_FLRemoteCameraViewCls)
8
- const OmiRemoteCameraViewPaper: HostComponent<ViewProps> = requireNativeComponent(
9
- 'FLRemoteCameraView'
10
- );
3
+ // Safe requireNativeComponent returns fallback View if native config not available
4
+ let OmiRemoteCameraViewNative: any = View;
5
+ try {
6
+ const { UIManager, requireNativeComponent } = require('react-native');
7
+ // Only attempt on Android or Old Arch iOS where ViewManager config exists
8
+ if (Platform.OS === 'android' || UIManager.getViewManagerConfig?.('OmiRemoteCameraView')) {
9
+ OmiRemoteCameraViewNative = requireNativeComponent('OmiRemoteCameraView');
10
+ }
11
+ } catch (_) {
12
+ // Fallback to plain View — iOS Fabric uses native window rendering instead
13
+ }
11
14
 
12
- // Export the Paper component
13
- export const OmiRemoteCameraView: HostComponent<ViewProps> = OmiRemoteCameraViewPaper;
15
+ export const OmiRemoteCameraView = OmiRemoteCameraViewNative;
14
16
 
15
- // Module name separated from ViewManager name to avoid name collision
16
- const FLRemoteCamera = NativeModules.FLRemoteCameraModule || NativeModules.FLRemoteCameraView;
17
+ // Imperative refresh method
18
+ const OmiRemoteCamera = NativeModules.OmiRemoteCameraView;
17
19
  export function refreshRemoteCamera(): Promise<boolean> {
18
- if (!FLRemoteCamera) return Promise.resolve(false);
19
- return FLRemoteCamera.refresh();
20
+ if (!OmiRemoteCamera) return Promise.resolve(false);
21
+ return OmiRemoteCamera.refresh();
20
22
  }
package/src/omikit.tsx CHANGED
@@ -7,39 +7,52 @@ const LINKING_ERROR =
7
7
  '- You rebuilt the app after installing the package\n' +
8
8
  '- You are not using Expo Go\n';
9
9
 
10
- // Runtime detection: Try TurboModule first, fallback to NativeModule
11
- const isTurboModuleEnabled = (global as any).__turboModuleProxy != null;
12
-
13
- const OmikitPlugin: Spec = (() => {
14
- if (isTurboModuleEnabled) {
15
- // New Architecture - use TurboModule
10
+ // Resolve native module: TurboModule (New Arch) NativeModules (Old Arch) → null
11
+ const resolvedModule: Spec | null = (() => {
12
+ try {
13
+ // Try TurboModule first (New Architecture / bridgeless mode)
16
14
  const turboModule = TurboModuleRegistry.get<Spec>('OmikitPlugin');
17
- if (turboModule) {
18
- return turboModule;
19
- }
15
+ if (turboModule) return turboModule;
16
+ } catch (_) {}
17
+
18
+ // Fallback to NativeModules (Old Architecture / bridge mode)
19
+ if (NativeModules.OmikitPlugin) {
20
+ return NativeModules.OmikitPlugin;
20
21
  }
21
22
 
22
- // Old Architecture - fallback to NativeModule
23
- return NativeModules.OmikitPlugin || new Proxy(
24
- {},
25
- {
26
- get() {
27
- throw new Error(LINKING_ERROR);
28
- },
29
- }
30
- );
23
+ return null;
31
24
  })();
32
25
 
33
- // Setup omiEmitter for iOS and Android
34
- // In bridgeless mode, NativeModules is empty — use TurboModule instance instead
35
- const omiEmitter = Platform.OS === 'ios'
36
- ? new NativeEventEmitter(
37
- (NativeModules.OmikitPlugin ?? OmikitPlugin ?? {
38
- addListener: () => {},
39
- removeListeners: () => {},
40
- }) as any
41
- )
42
- : DeviceEventEmitter;
26
+ // Wrap in Proxy that throws LINKING_ERROR only when SDK methods are actually called
27
+ const OmikitPlugin: Spec = resolvedModule || new Proxy(
28
+ {} as Spec,
29
+ {
30
+ get(_target, prop) {
31
+ if (prop === 'addListener' || prop === 'removeListeners') {
32
+ return () => {};
33
+ }
34
+ throw new Error(LINKING_ERROR);
35
+ },
36
+ }
37
+ );
38
+
39
+ // Setup omiEmitter — safe for Old Arch, New Arch, and bridgeless mode
40
+ const omiEmitter = (() => {
41
+ if (Platform.OS !== 'ios') {
42
+ return DeviceEventEmitter;
43
+ }
44
+ try {
45
+ // Best case: NativeEventEmitter with resolved native module
46
+ if (resolvedModule) {
47
+ return new NativeEventEmitter(resolvedModule as any);
48
+ }
49
+ // New Arch without interop: NativeEventEmitter without module arg (RN 0.74+)
50
+ return new NativeEventEmitter();
51
+ } catch (_) {
52
+ // Last resort fallback
53
+ return DeviceEventEmitter;
54
+ }
55
+ })();
43
56
 
44
57
  /**
45
58
  * Starts the Omikit services.
@@ -172,6 +185,57 @@ export function switchOmiCamera(): Promise<boolean> {
172
185
  return OmikitPlugin.switchOmiCamera();
173
186
  }
174
187
 
188
+ /**
189
+ * Configure camera view style on iOS (Fabric mode — native window rendering).
190
+ * On Android, use style props on OmiLocalCameraView/OmiRemoteCameraView instead.
191
+ *
192
+ * @param config.target - "local" or "remote"
193
+ * @param config.x - X position
194
+ * @param config.y - Y position
195
+ * @param config.width - View width
196
+ * @param config.height - View height
197
+ * @param config.borderRadius - Corner radius
198
+ * @param config.borderWidth - Border width
199
+ * @param config.borderColor - Border color (hex: "#FF0000" or "#FF000080")
200
+ * @param config.backgroundColor - Background color (hex)
201
+ * @param config.opacity - View opacity (0.0 - 1.0)
202
+ * @param config.hidden - Show/hide the view
203
+ * @param config.scaleMode - Video scale: "fill" (aspect fill), "fit" (aspect fit), "stretch"
204
+ * @returns {Promise<boolean>}
205
+ */
206
+ export function setCameraConfig(config: {
207
+ target: 'local' | 'remote';
208
+ x?: number;
209
+ y?: number;
210
+ width?: number;
211
+ height?: number;
212
+ borderRadius?: number;
213
+ borderWidth?: number;
214
+ borderColor?: string;
215
+ backgroundColor?: string;
216
+ opacity?: number;
217
+ hidden?: boolean;
218
+ scaleMode?: 'fill' | 'fit' | 'stretch';
219
+ }): Promise<boolean> {
220
+ if (Platform.OS === 'ios') {
221
+ return OmikitPlugin.setCameraConfig(config);
222
+ }
223
+ return Promise.resolve(false);
224
+ }
225
+
226
+ /**
227
+ * Create video containers and add to window (iOS only).
228
+ * Call this when video call screen mounts and call is active.
229
+ * On Fabric, RCTViewManager.view() is not called, so containers must be created manually.
230
+ * @returns {Promise<boolean>}
231
+ */
232
+ export function setupVideoContainers(): Promise<boolean> {
233
+ if (Platform.OS === 'ios') {
234
+ return OmikitPlugin.setupVideoContainers();
235
+ }
236
+ return Promise.resolve(true);
237
+ }
238
+
175
239
  /**
176
240
  * Toggles the video stream on or off during a video call.
177
241
  * @returns {Promise<boolean>} A promise that resolves to `true` if the video is toggled successfully.
@@ -196,6 +260,18 @@ export function registerVideoEvent(): Promise<boolean> {
196
260
  return OmikitPlugin.registerVideoEvent();
197
261
  }
198
262
 
263
+ /**
264
+ * Setup video views by attaching native containers to React view tags.
265
+ * Required for New Architecture (Fabric) where ViewManager.view() is not called.
266
+ */
267
+ export function setupVideoViews(
268
+ remoteTag: number,
269
+ localTag: number
270
+ ): Promise<boolean> {
271
+ if (!OmikitPlugin.setupVideoViews) return Promise.resolve(false);
272
+ return OmikitPlugin.setupVideoViews(remoteTag, localTag);
273
+ }
274
+
199
275
  /**
200
276
  * Removes video call event listeners.
201
277
  * @returns {Promise<boolean>} A promise that resolves to `true` if the removal is successful.