omikit-plugin 4.0.2 → 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.
- package/README.md +272 -24
- package/android/src/main/java/com/omikitplugin/OmiLocalCameraView.kt +112 -0
- package/android/src/main/java/com/omikitplugin/OmiRemoteCameraView.kt +99 -0
- package/android/src/main/java/com/omikitplugin/OmikitPluginModule.kt +5 -4
- package/android/src/main/java/com/omikitplugin/OmikitPluginPackage.kt +11 -8
- package/ios/CallProcess/CallManager.swift +99 -29
- package/ios/Library/OmikitPlugin.m +18 -0
- package/ios/Library/OmikitPlugin.swift +233 -1
- package/ios/OmikitPlugin-Bridging-Header.h +1 -0
- package/ios/OmikitPlugin.xcodeproj/project.pbxproj +4 -4
- package/ios/VideoCall/OmiLocalCameraViewBridge.m +14 -0
- package/ios/VideoCall/OmiLocalCameraViewManager.swift +41 -0
- package/ios/VideoCall/OmiRemoteCameraViewBridge.m +14 -0
- package/ios/VideoCall/OmiRemoteCameraViewManager.swift +40 -0
- package/lib/commonjs/NativeOmikitPlugin.js +2 -1
- package/lib/commonjs/NativeOmikitPlugin.js.map +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/omi_audio_type.js +5 -7
- package/lib/commonjs/omi_audio_type.js.map +1 -1
- package/lib/commonjs/omi_call_state.js +5 -3
- package/lib/commonjs/omi_call_state.js.map +1 -1
- package/lib/commonjs/omi_local_camera.js +19 -17
- package/lib/commonjs/omi_local_camera.js.map +1 -1
- package/lib/commonjs/omi_remote_camera.js +20 -17
- package/lib/commonjs/omi_remote_camera.js.map +1 -1
- package/lib/commonjs/omi_start_call_status.js +5 -24
- package/lib/commonjs/omi_start_call_status.js.map +1 -1
- package/lib/commonjs/omikit.js +56 -3
- package/lib/commonjs/omikit.js.map +1 -1
- package/lib/commonjs/types/index.d.js.map +1 -1
- package/lib/module/NativeOmikitPlugin.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/omi_audio_type.js +4 -7
- package/lib/module/omi_audio_type.js.map +1 -1
- package/lib/module/omi_call_state.js +4 -3
- package/lib/module/omi_call_state.js.map +1 -1
- package/lib/module/omi_local_camera.js +19 -18
- package/lib/module/omi_local_camera.js.map +1 -1
- package/lib/module/omi_remote_camera.js +20 -18
- package/lib/module/omi_remote_camera.js.map +1 -1
- package/lib/module/omi_start_call_status.js +4 -24
- package/lib/module/omi_start_call_status.js.map +1 -1
- package/lib/module/omikit.js +49 -1
- package/lib/module/omikit.js.map +1 -1
- package/lib/module/types/index.d.js.map +1 -1
- package/omikit-plugin.podspec +1 -1
- package/package.json +2 -11
- package/react-native.config.js +14 -0
- package/src/NativeOmikitPlugin.ts +1 -0
- package/src/omi_call_state.tsx +1 -0
- package/src/omi_local_camera.tsx +15 -19
- package/src/omi_remote_camera.tsx +16 -19
- package/src/omikit.tsx +63 -0
- package/src/types/index.d.ts +344 -62
- package/android/src/main/java/com/omikitplugin/FLLocalCameraModule.kt +0 -34
- package/android/src/main/java/com/omikitplugin/FLLocalCameraView.kt +0 -44
- package/android/src/main/java/com/omikitplugin/FLRemoteCameraModule.kt +0 -37
- package/android/src/main/java/com/omikitplugin/FLRemoteCameraView.kt +0 -23
- package/ios/VideoCall/FLLocalCameraView.m +0 -17
- package/ios/VideoCall/FLLocalCameraView.swift +0 -44
- package/ios/VideoCall/FLRemoteCameraView.m +0 -18
- package/ios/VideoCall/FLRemoteCameraView.swift +0 -124
package/lib/module/omikit.js
CHANGED
|
@@ -182,6 +182,44 @@ export function switchOmiCamera() {
|
|
|
182
182
|
return OmikitPlugin.switchOmiCamera();
|
|
183
183
|
}
|
|
184
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
|
+
|
|
185
223
|
/**
|
|
186
224
|
* Toggles the video stream on or off during a video call.
|
|
187
225
|
* @returns {Promise<boolean>} A promise that resolves to `true` if the video is toggled successfully.
|
|
@@ -206,6 +244,15 @@ export function registerVideoEvent() {
|
|
|
206
244
|
return OmikitPlugin.registerVideoEvent();
|
|
207
245
|
}
|
|
208
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
|
+
|
|
209
256
|
/**
|
|
210
257
|
* Removes video call event listeners.
|
|
211
258
|
* @returns {Promise<boolean>} A promise that resolves to `true` if the removal is successful.
|
|
@@ -358,7 +405,8 @@ export function checkPermissionStatus() {
|
|
|
358
405
|
* @param {boolean} isVideo - Whether this is for video call (requires camera permission)
|
|
359
406
|
* @returns {Promise<boolean>} True if all permissions granted (always true on iOS)
|
|
360
407
|
*/
|
|
361
|
-
export function checkAndRequestPermissions(
|
|
408
|
+
export function checkAndRequestPermissions() {
|
|
409
|
+
let isVideo = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
362
410
|
if (Platform.OS !== 'android') {
|
|
363
411
|
return Promise.resolve(true);
|
|
364
412
|
}
|
package/lib/module/omikit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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","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","
|
|
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":""
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["index.d.ts"],"mappings":""}
|
package/omikit-plugin.podspec
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omikit-plugin",
|
|
3
|
-
"version": "4.0
|
|
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;
|
package/src/omi_call_state.tsx
CHANGED
package/src/omi_local_camera.tsx
CHANGED
|
@@ -1,25 +1,21 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { NativeModules, requireNativeComponent, ViewProps } from 'react-native';
|
|
1
|
+
import { NativeModules, Platform, View } from 'react-native';
|
|
3
2
|
|
|
4
|
-
// Safe
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
if (
|
|
9
|
-
|
|
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');
|
|
10
9
|
}
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
} catch (_) {
|
|
11
|
+
// Fallback to plain View — iOS Fabric uses native window rendering instead
|
|
12
|
+
}
|
|
13
13
|
|
|
14
|
-
export const OmiLocalCameraView =
|
|
15
|
-
get(_target, prop) {
|
|
16
|
-
return (getLocalCameraView() as any)[prop];
|
|
17
|
-
},
|
|
18
|
-
});
|
|
14
|
+
export const OmiLocalCameraView = OmiLocalCameraViewNative;
|
|
19
15
|
|
|
20
|
-
//
|
|
21
|
-
const
|
|
16
|
+
// Imperative refresh method
|
|
17
|
+
const OmiLocalCamera = NativeModules.OmiLocalCameraView;
|
|
22
18
|
export function refreshLocalCamera(): Promise<boolean> {
|
|
23
|
-
if (!
|
|
24
|
-
return
|
|
19
|
+
if (!OmiLocalCamera) return Promise.resolve(false);
|
|
20
|
+
return OmiLocalCamera.refresh();
|
|
25
21
|
}
|
|
@@ -1,25 +1,22 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { NativeModules, requireNativeComponent, ViewProps } from 'react-native';
|
|
1
|
+
import { NativeModules, Platform, View } from 'react-native';
|
|
3
2
|
|
|
4
|
-
// Safe
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
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
10
|
}
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
} catch (_) {
|
|
12
|
+
// Fallback to plain View — iOS Fabric uses native window rendering instead
|
|
13
|
+
}
|
|
13
14
|
|
|
14
|
-
export const OmiRemoteCameraView =
|
|
15
|
-
get(_target, prop) {
|
|
16
|
-
return (getRemoteCameraView() as any)[prop];
|
|
17
|
-
},
|
|
18
|
-
});
|
|
15
|
+
export const OmiRemoteCameraView = OmiRemoteCameraViewNative;
|
|
19
16
|
|
|
20
|
-
//
|
|
21
|
-
const
|
|
17
|
+
// Imperative refresh method
|
|
18
|
+
const OmiRemoteCamera = NativeModules.OmiRemoteCameraView;
|
|
22
19
|
export function refreshRemoteCamera(): Promise<boolean> {
|
|
23
|
-
if (!
|
|
24
|
-
return
|
|
20
|
+
if (!OmiRemoteCamera) return Promise.resolve(false);
|
|
21
|
+
return OmiRemoteCamera.refresh();
|
|
25
22
|
}
|
package/src/omikit.tsx
CHANGED
|
@@ -185,6 +185,57 @@ export function switchOmiCamera(): Promise<boolean> {
|
|
|
185
185
|
return OmikitPlugin.switchOmiCamera();
|
|
186
186
|
}
|
|
187
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
|
+
|
|
188
239
|
/**
|
|
189
240
|
* Toggles the video stream on or off during a video call.
|
|
190
241
|
* @returns {Promise<boolean>} A promise that resolves to `true` if the video is toggled successfully.
|
|
@@ -209,6 +260,18 @@ export function registerVideoEvent(): Promise<boolean> {
|
|
|
209
260
|
return OmikitPlugin.registerVideoEvent();
|
|
210
261
|
}
|
|
211
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
|
+
|
|
212
275
|
/**
|
|
213
276
|
* Removes video call event listeners.
|
|
214
277
|
* @returns {Promise<boolean>} A promise that resolves to `true` if the removal is successful.
|