snapshot of https://github.com/jitsi/jitsi-meet.git @ fd1749dd28f4138aa80234fc7f311b19aaffa0e7 (2026-09-15)
This commit is contained in:
41
react/features/mobile/call-integration/ConnectionService.ts
Normal file
41
react/features/mobile/call-integration/ConnectionService.ts
Normal file
@@ -0,0 +1,41 @@
|
||||
import { NativeEventEmitter, NativeModules } from 'react-native';
|
||||
|
||||
const RNConnectionService = NativeModules.ConnectionService;
|
||||
|
||||
// Use a proxy because spreading a new arch native module silently loses its methods.
|
||||
let ConnectionService: any;
|
||||
|
||||
if (RNConnectionService) {
|
||||
const eventEmitter = new NativeEventEmitter(RNConnectionService);
|
||||
const augmented: Record<string, any> = {
|
||||
addListener: eventEmitter.addListener.bind(eventEmitter),
|
||||
registerSubscriptions(context: any, delegate: any) {
|
||||
return [
|
||||
eventEmitter.addListener(
|
||||
'org.jitsi.meet:features/connection_service#disconnect',
|
||||
delegate._onPerformEndCallAction,
|
||||
context),
|
||||
eventEmitter.addListener(
|
||||
'org.jitsi.meet:features/connection_service#abort',
|
||||
delegate._onPerformEndCallAction,
|
||||
context)
|
||||
];
|
||||
},
|
||||
setMuted() {
|
||||
// Currently no-op, but remember to remove when implemented on
|
||||
// the native side
|
||||
}
|
||||
};
|
||||
|
||||
ConnectionService = new Proxy(RNConnectionService, {
|
||||
get(target, prop, receiver) {
|
||||
if (prop in augmented) {
|
||||
return augmented[prop as string];
|
||||
}
|
||||
|
||||
return Reflect.get(target, prop, receiver);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
export default ConnectionService;
|
||||
Reference in New Issue
Block a user