@stream-io/video-react-native-sdk 1.29.0-beta.1 → 1.29.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/CHANGELOG.md +3114 -0
- package/android/src/main/AndroidManifest.xml +1 -8
- package/android/src/main/AndroidManifestNew.xml +0 -11
- package/android/src/main/java/com/streamvideo/reactnative/StreamVideoReactNativeModule.kt +5 -42
- package/android/src/main/java/com/streamvideo/reactnative/audio/utils/WebRtcAudioUtils.kt +6 -70
- package/android/src/main/java/com/streamvideo/reactnative/callmanager/StreamInCallManagerModule.kt +4 -6
- package/android/src/main/java/com/streamvideo/reactnative/util/CallAliveServiceChecker.kt +95 -0
- package/dist/commonjs/hooks/push/useIosCallkeepWithCallingStateEffect.js +160 -0
- package/dist/commonjs/hooks/push/useIosCallkeepWithCallingStateEffect.js.map +1 -0
- package/dist/commonjs/hooks/push/useIosVoipPushEventsSetupEffect.js +31 -18
- package/dist/commonjs/hooks/push/useIosVoipPushEventsSetupEffect.js.map +1 -1
- package/dist/commonjs/hooks/useAndroidKeepCallAliveEffect.js +97 -64
- package/dist/commonjs/hooks/useAndroidKeepCallAliveEffect.js.map +1 -1
- package/dist/commonjs/index.js +0 -1
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/modules/call-manager/CallManager.js +0 -26
- package/dist/commonjs/modules/call-manager/CallManager.js.map +1 -1
- package/dist/commonjs/providers/StreamCall/index.js +6 -6
- package/dist/commonjs/providers/StreamCall/index.js.map +1 -1
- package/dist/commonjs/utils/StreamVideoRN/index.js +21 -33
- package/dist/commonjs/utils/StreamVideoRN/index.js.map +1 -1
- package/dist/commonjs/utils/internal/registerSDKGlobals.js +3 -52
- package/dist/commonjs/utils/internal/registerSDKGlobals.js.map +1 -1
- package/dist/commonjs/utils/push/android.js +200 -145
- package/dist/commonjs/utils/push/android.js.map +1 -1
- package/dist/commonjs/utils/push/internal/ios.js +34 -16
- package/dist/commonjs/utils/push/internal/ios.js.map +1 -1
- package/dist/commonjs/utils/push/internal/rxSubjects.js +20 -1
- package/dist/commonjs/utils/push/internal/rxSubjects.js.map +1 -1
- package/dist/commonjs/utils/push/internal/utils.js +1 -17
- package/dist/commonjs/utils/push/internal/utils.js.map +1 -1
- package/dist/commonjs/utils/push/ios.js.map +1 -1
- package/dist/commonjs/utils/push/libs/callkeep.js +17 -0
- package/dist/commonjs/utils/push/libs/callkeep.js.map +1 -0
- package/dist/commonjs/utils/push/libs/index.js +19 -8
- package/dist/commonjs/utils/push/libs/index.js.map +1 -1
- package/dist/commonjs/utils/push/libs/notifee/index.js +19 -0
- package/dist/commonjs/utils/push/libs/notifee/index.js.map +1 -1
- package/dist/commonjs/utils/push/libs/voipPushNotification.js +17 -0
- package/dist/commonjs/utils/push/libs/voipPushNotification.js.map +1 -0
- package/dist/commonjs/utils/push/setupIosCallKeepEvents.js +205 -0
- package/dist/commonjs/utils/push/setupIosCallKeepEvents.js.map +1 -0
- package/dist/commonjs/utils/push/setupIosVoipPushEvents.js +6 -7
- package/dist/commonjs/utils/push/setupIosVoipPushEvents.js.map +1 -1
- package/dist/commonjs/version.js +1 -1
- package/dist/commonjs/version.js.map +1 -1
- package/dist/module/hooks/push/useIosCallkeepWithCallingStateEffect.js +153 -0
- package/dist/module/hooks/push/useIosCallkeepWithCallingStateEffect.js.map +1 -0
- package/dist/module/hooks/push/useIosVoipPushEventsSetupEffect.js +31 -18
- package/dist/module/hooks/push/useIosVoipPushEventsSetupEffect.js.map +1 -1
- package/dist/module/hooks/useAndroidKeepCallAliveEffect.js +99 -66
- package/dist/module/hooks/useAndroidKeepCallAliveEffect.js.map +1 -1
- package/dist/module/index.js +0 -1
- package/dist/module/index.js.map +1 -1
- package/dist/module/modules/call-manager/CallManager.js +0 -26
- package/dist/module/modules/call-manager/CallManager.js.map +1 -1
- package/dist/module/providers/StreamCall/index.js +6 -6
- package/dist/module/providers/StreamCall/index.js.map +1 -1
- package/dist/module/utils/StreamVideoRN/index.js +21 -33
- package/dist/module/utils/StreamVideoRN/index.js.map +1 -1
- package/dist/module/utils/internal/registerSDKGlobals.js +4 -53
- package/dist/module/utils/internal/registerSDKGlobals.js.map +1 -1
- package/dist/module/utils/push/android.js +202 -147
- package/dist/module/utils/push/android.js.map +1 -1
- package/dist/module/utils/push/internal/ios.js +34 -16
- package/dist/module/utils/push/internal/ios.js.map +1 -1
- package/dist/module/utils/push/internal/rxSubjects.js +19 -0
- package/dist/module/utils/push/internal/rxSubjects.js.map +1 -1
- package/dist/module/utils/push/internal/utils.js +0 -14
- package/dist/module/utils/push/internal/utils.js.map +1 -1
- package/dist/module/utils/push/ios.js.map +1 -1
- package/dist/module/utils/push/libs/callkeep.js +11 -0
- package/dist/module/utils/push/libs/callkeep.js.map +1 -0
- package/dist/module/utils/push/libs/index.js +2 -1
- package/dist/module/utils/push/libs/index.js.map +1 -1
- package/dist/module/utils/push/libs/notifee/index.js +18 -0
- package/dist/module/utils/push/libs/notifee/index.js.map +1 -1
- package/dist/module/utils/push/libs/voipPushNotification.js +11 -0
- package/dist/module/utils/push/libs/voipPushNotification.js.map +1 -0
- package/dist/module/utils/push/setupIosCallKeepEvents.js +199 -0
- package/dist/module/utils/push/setupIosCallKeepEvents.js.map +1 -0
- package/dist/module/utils/push/setupIosVoipPushEvents.js +6 -7
- package/dist/module/utils/push/setupIosVoipPushEvents.js.map +1 -1
- package/dist/module/version.js +1 -1
- package/dist/module/version.js.map +1 -1
- package/dist/typescript/hooks/push/useIosCallkeepWithCallingStateEffect.d.ts +5 -0
- package/dist/typescript/hooks/push/useIosCallkeepWithCallingStateEffect.d.ts.map +1 -0
- package/dist/typescript/hooks/push/useIosVoipPushEventsSetupEffect.d.ts.map +1 -1
- package/dist/typescript/hooks/useAndroidKeepCallAliveEffect.d.ts.map +1 -1
- package/dist/typescript/index.d.ts +0 -1
- package/dist/typescript/index.d.ts.map +1 -1
- package/dist/typescript/modules/call-manager/CallManager.d.ts +0 -5
- package/dist/typescript/modules/call-manager/CallManager.d.ts.map +1 -1
- package/dist/typescript/utils/StreamVideoRN/index.d.ts +2 -20
- package/dist/typescript/utils/StreamVideoRN/index.d.ts.map +1 -1
- package/dist/typescript/utils/StreamVideoRN/types.d.ts +29 -54
- package/dist/typescript/utils/StreamVideoRN/types.d.ts.map +1 -1
- package/dist/typescript/utils/internal/registerSDKGlobals.d.ts.map +1 -1
- package/dist/typescript/utils/push/android.d.ts +2 -1
- package/dist/typescript/utils/push/android.d.ts.map +1 -1
- package/dist/typescript/utils/push/internal/ios.d.ts.map +1 -1
- package/dist/typescript/utils/push/internal/rxSubjects.d.ts +12 -0
- package/dist/typescript/utils/push/internal/rxSubjects.d.ts.map +1 -1
- package/dist/typescript/utils/push/internal/utils.d.ts +0 -4
- package/dist/typescript/utils/push/internal/utils.d.ts.map +1 -1
- package/dist/typescript/utils/push/ios.d.ts +2 -1
- package/dist/typescript/utils/push/ios.d.ts.map +1 -1
- package/dist/typescript/utils/push/libs/callkeep.d.ts +3 -0
- package/dist/typescript/utils/push/libs/callkeep.d.ts.map +1 -0
- package/dist/typescript/utils/push/libs/firebaseMessaging/index.d.ts +2 -16
- package/dist/typescript/utils/push/libs/firebaseMessaging/index.d.ts.map +1 -1
- package/dist/typescript/utils/push/libs/index.d.ts +2 -1
- package/dist/typescript/utils/push/libs/index.d.ts.map +1 -1
- package/dist/typescript/utils/push/libs/notifee/index.d.ts +1 -0
- package/dist/typescript/utils/push/libs/notifee/index.d.ts.map +1 -1
- package/dist/typescript/utils/push/libs/voipPushNotification.d.ts +3 -0
- package/dist/typescript/utils/push/libs/voipPushNotification.d.ts.map +1 -0
- package/dist/typescript/utils/push/setupIosCallKeepEvents.d.ts +6 -0
- package/dist/typescript/utils/push/setupIosCallKeepEvents.d.ts.map +1 -0
- package/dist/typescript/utils/push/setupIosVoipPushEvents.d.ts.map +1 -1
- package/dist/typescript/version.d.ts +1 -1
- package/dist/typescript/version.d.ts.map +1 -1
- package/expo-config-plugin/dist/withAndroidManifest.js +33 -1
- package/expo-config-plugin/dist/withAndroidPermissions.js +7 -2
- package/expo-config-plugin/dist/withAppDelegate.js +197 -19
- package/expo-config-plugin/dist/withMainActivity.js +1 -1
- package/expo-config-plugin/dist/withiOSInfoPlist.js +3 -2
- package/ios/StreamInCallManager.m +0 -2
- package/ios/StreamInCallManager.swift +5 -20
- package/ios/StreamVideoReactNative.h +4 -7
- package/ios/StreamVideoReactNative.m +82 -191
- package/package.json +17 -12
- package/src/hooks/push/useIosCallkeepWithCallingStateEffect.ts +235 -0
- package/src/hooks/push/useIosVoipPushEventsSetupEffect.ts +34 -21
- package/src/hooks/useAndroidKeepCallAliveEffect.ts +120 -94
- package/src/index.ts +0 -1
- package/src/modules/call-manager/CallManager.ts +0 -36
- package/src/modules/call-manager/native-module.d.ts +0 -7
- package/src/providers/StreamCall/index.tsx +6 -6
- package/src/utils/StreamVideoRN/index.ts +30 -40
- package/src/utils/StreamVideoRN/types.ts +29 -56
- package/src/utils/internal/registerSDKGlobals.ts +4 -47
- package/src/utils/push/android.ts +308 -223
- package/src/utils/push/internal/ios.ts +46 -25
- package/src/utils/push/internal/rxSubjects.ts +29 -0
- package/src/utils/push/internal/utils.ts +0 -25
- package/src/utils/push/ios.ts +6 -1
- package/src/utils/push/libs/callkeep.ts +16 -0
- package/src/utils/push/libs/index.ts +2 -1
- package/src/utils/push/libs/notifee/index.ts +27 -0
- package/src/utils/push/libs/voipPushNotification.ts +17 -0
- package/src/utils/push/setupIosCallKeepEvents.ts +252 -0
- package/src/utils/push/setupIosVoipPushEvents.ts +7 -11
- package/src/version.ts +1 -1
- package/android/src/main/java/com/streamvideo/reactnative/keepalive/KeepAliveNotification.kt +0 -83
- package/android/src/main/java/com/streamvideo/reactnative/keepalive/StreamCallKeepAliveHeadlessService.kt +0 -134
- package/dist/commonjs/hooks/push/useCallingExpWithCallingStateEffect.js +0 -216
- package/dist/commonjs/hooks/push/useCallingExpWithCallingStateEffect.js.map +0 -1
- package/dist/commonjs/utils/internal/audioSessionPromise.js +0 -46
- package/dist/commonjs/utils/internal/audioSessionPromise.js.map +0 -1
- package/dist/commonjs/utils/internal/callingx.js +0 -84
- package/dist/commonjs/utils/internal/callingx.js.map +0 -1
- package/dist/commonjs/utils/keepCallAliveHeadlessTask.js +0 -48
- package/dist/commonjs/utils/keepCallAliveHeadlessTask.js.map +0 -1
- package/dist/commonjs/utils/push/libs/callingx.js +0 -75
- package/dist/commonjs/utils/push/libs/callingx.js.map +0 -1
- package/dist/commonjs/utils/push/setupCallingExpEvents.js +0 -97
- package/dist/commonjs/utils/push/setupCallingExpEvents.js.map +0 -1
- package/dist/module/hooks/push/useCallingExpWithCallingStateEffect.js +0 -209
- package/dist/module/hooks/push/useCallingExpWithCallingStateEffect.js.map +0 -1
- package/dist/module/utils/internal/audioSessionPromise.js +0 -39
- package/dist/module/utils/internal/audioSessionPromise.js.map +0 -1
- package/dist/module/utils/internal/callingx.js +0 -75
- package/dist/module/utils/internal/callingx.js.map +0 -1
- package/dist/module/utils/keepCallAliveHeadlessTask.js +0 -42
- package/dist/module/utils/keepCallAliveHeadlessTask.js.map +0 -1
- package/dist/module/utils/push/libs/callingx.js +0 -67
- package/dist/module/utils/push/libs/callingx.js.map +0 -1
- package/dist/module/utils/push/setupCallingExpEvents.js +0 -91
- package/dist/module/utils/push/setupCallingExpEvents.js.map +0 -1
- package/dist/typescript/hooks/push/useCallingExpWithCallingStateEffect.d.ts +0 -5
- package/dist/typescript/hooks/push/useCallingExpWithCallingStateEffect.d.ts.map +0 -1
- package/dist/typescript/utils/internal/audioSessionPromise.d.ts +0 -16
- package/dist/typescript/utils/internal/audioSessionPromise.d.ts.map +0 -1
- package/dist/typescript/utils/internal/callingx.d.ts +0 -13
- package/dist/typescript/utils/internal/callingx.d.ts.map +0 -1
- package/dist/typescript/utils/keepCallAliveHeadlessTask.d.ts +0 -10
- package/dist/typescript/utils/keepCallAliveHeadlessTask.d.ts.map +0 -1
- package/dist/typescript/utils/push/libs/callingx.d.ts +0 -9
- package/dist/typescript/utils/push/libs/callingx.d.ts.map +0 -1
- package/dist/typescript/utils/push/setupCallingExpEvents.d.ts +0 -8
- package/dist/typescript/utils/push/setupCallingExpEvents.d.ts.map +0 -1
- package/src/hooks/push/useCallingExpWithCallingStateEffect.ts +0 -307
- package/src/utils/internal/audioSessionPromise.ts +0 -39
- package/src/utils/internal/callingx.ts +0 -108
- package/src/utils/keepCallAliveHeadlessTask.ts +0 -54
- package/src/utils/push/libs/callingx.ts +0 -90
- package/src/utils/push/setupCallingExpEvents.ts +0 -117
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.setupCallingExpEvents = setupCallingExpEvents;
|
|
7
|
-
var _rxSubjects = require("./internal/rxSubjects");
|
|
8
|
-
var _videoClient = require("@stream-io/video-client");
|
|
9
|
-
var _utils = require("./internal/utils");
|
|
10
|
-
var _pushLogoutCallback = require("../internal/pushLogoutCallback");
|
|
11
|
-
var _audioSessionPromise = require("../internal/audioSessionPromise");
|
|
12
|
-
var _callingx = require("./libs/callingx");
|
|
13
|
-
var _reactNative = require("react-native");
|
|
14
|
-
const logger = _videoClient.videoLoggerSystem.getLogger('Callingx');
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* This hook is used to listen to callkeep events and do the necessary actions
|
|
18
|
-
*/
|
|
19
|
-
function setupCallingExpEvents(pushConfig) {
|
|
20
|
-
const hasPushProvider = _reactNative.Platform.OS === 'android' && pushConfig.android?.pushProviderName || _reactNative.Platform.OS === 'ios' && pushConfig.ios?.pushProviderName;
|
|
21
|
-
if (!hasPushProvider) {
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
const callingx = (0, _callingx.getCallingxLib)();
|
|
25
|
-
const {
|
|
26
|
-
remove: removeAnswerCall
|
|
27
|
-
} = callingx.addEventListener('answerCall', onAcceptCall);
|
|
28
|
-
const {
|
|
29
|
-
remove: removeEndCall
|
|
30
|
-
} = callingx.addEventListener('endCall', onEndCall(pushConfig));
|
|
31
|
-
const {
|
|
32
|
-
remove: removeDidActivateAudioSession
|
|
33
|
-
} = callingx.addEventListener('didActivateAudioSession', onDidActivateAudioSession);
|
|
34
|
-
const {
|
|
35
|
-
remove: removeDidDeactivateAudioSession
|
|
36
|
-
} = callingx.addEventListener('didDeactivateAudioSession', onDidDeactivateAudioSession);
|
|
37
|
-
|
|
38
|
-
//NOTE: until getInitialEvents invocation, events are delayed and won't be sent to event listeners, this is a way to make sure none of required events are missed
|
|
39
|
-
//in most cases there will be no delayed answers or ends, but it we don't want to miss any of them
|
|
40
|
-
const events = callingx.getInitialEvents();
|
|
41
|
-
events.forEach(event => {
|
|
42
|
-
const {
|
|
43
|
-
eventName,
|
|
44
|
-
params
|
|
45
|
-
} = event;
|
|
46
|
-
if (eventName === 'answerCall') {
|
|
47
|
-
logger.debug(`answerCall delayed event callId: ${params?.callId}`);
|
|
48
|
-
onAcceptCall(params);
|
|
49
|
-
} else if (eventName === 'endCall') {
|
|
50
|
-
logger.debug(`endCall delayed event callId: ${params?.callId}`);
|
|
51
|
-
onEndCall(pushConfig)(params);
|
|
52
|
-
} else if (eventName === 'didActivateAudioSession') {
|
|
53
|
-
onDidActivateAudioSession();
|
|
54
|
-
} else if (eventName === 'didDeactivateAudioSession') {
|
|
55
|
-
onDidDeactivateAudioSession();
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
(0, _pushLogoutCallback.setPushLogoutCallback)(async () => {
|
|
59
|
-
removeAnswerCall();
|
|
60
|
-
removeEndCall();
|
|
61
|
-
removeDidActivateAudioSession();
|
|
62
|
-
removeDidDeactivateAudioSession();
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
const onDidActivateAudioSession = () => {
|
|
66
|
-
logger.debug('callingExpDidActivateAudioSession');
|
|
67
|
-
(0, _audioSessionPromise.resolvePendingAudioSession)();
|
|
68
|
-
};
|
|
69
|
-
const onDidDeactivateAudioSession = () => {
|
|
70
|
-
logger.debug('callingExpDidDeactivateAudioSession');
|
|
71
|
-
};
|
|
72
|
-
const onAcceptCall = ({
|
|
73
|
-
callId: call_cid,
|
|
74
|
-
source
|
|
75
|
-
}) => {
|
|
76
|
-
logger.debug(`onAcceptCall event callId: ${call_cid} source: ${source}`);
|
|
77
|
-
if (source === 'app' || !call_cid) {
|
|
78
|
-
//we only need to process the call if the call was answered from the system
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
|
-
(0, _utils.clearPushWSEventSubscriptions)(call_cid);
|
|
82
|
-
// to process the call in the app
|
|
83
|
-
_rxSubjects.pushAcceptedIncomingCallCId$.next(call_cid);
|
|
84
|
-
};
|
|
85
|
-
const onEndCall = pushConfig => async ({
|
|
86
|
-
callId: call_cid,
|
|
87
|
-
source
|
|
88
|
-
}) => {
|
|
89
|
-
logger.debug(`onEndCall event callId: ${call_cid} source: ${source}`);
|
|
90
|
-
if (source === 'app' || !call_cid) {
|
|
91
|
-
//we only need to process the call if the call was rejected from the system
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
(0, _utils.clearPushWSEventSubscriptions)(call_cid);
|
|
95
|
-
await (0, _utils.processCallFromPushInBackground)(pushConfig, call_cid, 'decline');
|
|
96
|
-
};
|
|
97
|
-
//# sourceMappingURL=setupCallingExpEvents.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_rxSubjects","require","_videoClient","_utils","_pushLogoutCallback","_audioSessionPromise","_callingx","_reactNative","logger","videoLoggerSystem","getLogger","setupCallingExpEvents","pushConfig","hasPushProvider","Platform","OS","android","pushProviderName","ios","callingx","getCallingxLib","remove","removeAnswerCall","addEventListener","onAcceptCall","removeEndCall","onEndCall","removeDidActivateAudioSession","onDidActivateAudioSession","removeDidDeactivateAudioSession","onDidDeactivateAudioSession","events","getInitialEvents","forEach","event","eventName","params","debug","callId","setPushLogoutCallback","resolvePendingAudioSession","call_cid","source","clearPushWSEventSubscriptions","pushAcceptedIncomingCallCId$","next","processCallFromPushInBackground"],"sourceRoot":"../../../../src","sources":["utils/push/setupCallingExpEvents.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
import { CallingState, videoLoggerSystem } from '@stream-io/video-client';
|
|
2
|
-
import { useCall, useCallStateHooks } from '@stream-io/video-react-bindings';
|
|
3
|
-
import { useEffect, useMemo, useRef } from 'react';
|
|
4
|
-
import { getCallDisplayName } from '../../utils/internal/callingx';
|
|
5
|
-
import { getCallingxLibIfAvailable } from '../../utils/push/libs/callingx';
|
|
6
|
-
const logger = videoLoggerSystem.getLogger('Callingx - useCallingExpWithCallingStateEffect');
|
|
7
|
-
|
|
8
|
-
//calling state methods are not exhaustive, so we need to add more methods to cover different cases
|
|
9
|
-
const canActivateCall = (prevState, currentState) => {
|
|
10
|
-
if (!prevState && !currentState) {
|
|
11
|
-
return false;
|
|
12
|
-
}
|
|
13
|
-
const isJoined = state => {
|
|
14
|
-
if (!state) {
|
|
15
|
-
return false;
|
|
16
|
-
}
|
|
17
|
-
return state === CallingState.JOINING || state === CallingState.JOINED;
|
|
18
|
-
};
|
|
19
|
-
return !isJoined(prevState) && isJoined(currentState);
|
|
20
|
-
};
|
|
21
|
-
const canEndCall = (prevState, currentState) => {
|
|
22
|
-
if (!prevState && !currentState) {
|
|
23
|
-
return false;
|
|
24
|
-
}
|
|
25
|
-
return (prevState === CallingState.JOINED || prevState === CallingState.JOINING || prevState === CallingState.RINGING || prevState === CallingState.RECONNECTING || prevState === CallingState.MIGRATING || prevState === CallingState.OFFLINE) && (currentState === CallingState.LEFT || currentState === CallingState.RECONNECTING_FAILED || currentState === CallingState.IDLE);
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* This hook is used to inform sync call state with CallKit/Telecom (i.e. start call, end call, mute/unmute call).
|
|
30
|
-
*/
|
|
31
|
-
export const useCallingExpWithCallingStateEffect = () => {
|
|
32
|
-
const {
|
|
33
|
-
useCallCallingState,
|
|
34
|
-
// useMicrophoneState,
|
|
35
|
-
useParticipants,
|
|
36
|
-
useCallMembers
|
|
37
|
-
} = useCallStateHooks();
|
|
38
|
-
const activeCall = useCall();
|
|
39
|
-
const callingState = useCallCallingState();
|
|
40
|
-
// const { isMute, microphone } = useMicrophoneState();
|
|
41
|
-
const callMembers = useCallMembers();
|
|
42
|
-
const participants = useParticipants();
|
|
43
|
-
const prevState = useRef(undefined);
|
|
44
|
-
const activeCallCid = activeCall?.cid;
|
|
45
|
-
const isIncomingCall = activeCall?.ringing && !activeCall?.isCreatedByMe;
|
|
46
|
-
const isOutcomingCall = activeCall?.ringing && activeCall?.isCreatedByMe;
|
|
47
|
-
const currentUserId = activeCall?.currentUserId;
|
|
48
|
-
const isVideoCall = activeCall?.state.settings?.video?.enabled ?? false;
|
|
49
|
-
const callDisplayName = useMemo(() => getCallDisplayName(callMembers, participants, currentUserId), [callMembers, participants, currentUserId]);
|
|
50
|
-
useEffect(() => {
|
|
51
|
-
return () => {
|
|
52
|
-
const callingx = getCallingxLibIfAvailable();
|
|
53
|
-
if (!callingx?.isSetup || !activeCallCid) {
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
const isCallRegistered = callingx.isCallRegistered(activeCallCid);
|
|
57
|
-
if (!isCallRegistered) {
|
|
58
|
-
logger.debug(`No active call cid to end in calling exp: ${activeCallCid} isCallRegistered: ${isCallRegistered}`);
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
//if incoming stream call was unmounted, we need to end the call in CallKit/Telecom
|
|
62
|
-
logger.debug(`Ending call in callingx: ${activeCallCid}`);
|
|
63
|
-
callingx.endCallWithReason(activeCallCid, 'local').catch(error => {
|
|
64
|
-
logger.error(`Error ending call in callingx: ${activeCallCid}`, error);
|
|
65
|
-
});
|
|
66
|
-
};
|
|
67
|
-
}, [activeCallCid]);
|
|
68
|
-
useEffect(() => {
|
|
69
|
-
const callingx = getCallingxLibIfAvailable();
|
|
70
|
-
if (!callingx?.isSetup || !activeCallCid || prevState.current === callingState) {
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
//tells if call is registered in CallKit/Telecom
|
|
75
|
-
const isCallRegistered = callingx.isCallRegistered(activeCallCid);
|
|
76
|
-
logger.debug(`useEffect: ${activeCallCid} isCallRegistered: ${isCallRegistered}
|
|
77
|
-
isIncomingCall: ${isIncomingCall} isOutcomingCall: ${isOutcomingCall}
|
|
78
|
-
prevState: ${prevState.current}, currentState: ${callingState}
|
|
79
|
-
isOngoingCallsEnabled: ${callingx.isOngoingCallsEnabled}`);
|
|
80
|
-
if (isIncomingCall && isCallRegistered && canActivateCall(prevState.current, callingState)) {
|
|
81
|
-
logger.debug(`Should accept call in callingx: ${activeCallCid}`);
|
|
82
|
-
callingx.answerIncomingCall(activeCallCid).catch(error => {
|
|
83
|
-
logger.error(`Error answering call in callingx: ${activeCallCid}`, error);
|
|
84
|
-
});
|
|
85
|
-
} else if ((isOutcomingCall || callingx.isOngoingCallsEnabled) && isCallRegistered && canActivateCall(prevState.current, callingState)) {
|
|
86
|
-
logger.debug(`Should set call active in callingx: ${activeCallCid}`);
|
|
87
|
-
callingx.setCurrentCallActive(activeCallCid);
|
|
88
|
-
} else if (isCallRegistered && canEndCall(prevState.current, callingState)) {
|
|
89
|
-
//in case call was registered as incoming and state changed to "not joined", we need to end the call and clear rxjs subject
|
|
90
|
-
logger.debug(`Should end call in callingx: ${activeCallCid}`);
|
|
91
|
-
//TODO: think about sending appropriate reason for end call
|
|
92
|
-
callingx.endCallWithReason(activeCallCid, 'local').catch(error => {
|
|
93
|
-
logger.error(`Error ending call in callingx: ${activeCallCid}`, error);
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
prevState.current = callingState;
|
|
97
|
-
}, [activeCallCid, callingState, callDisplayName, isIncomingCall, isOutcomingCall, isVideoCall]);
|
|
98
|
-
useEffect(() => {
|
|
99
|
-
const callingx = getCallingxLibIfAvailable();
|
|
100
|
-
if (!callingx?.isSetup || !activeCallCid) {
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
const isCallRegistered = callingx.isCallRegistered(activeCallCid);
|
|
104
|
-
if (!isCallRegistered) {
|
|
105
|
-
logger.debug(`No active call cid to update callingx: ${activeCallCid} isCallRegistered: ${isCallRegistered}`);
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
callingx.updateDisplay(activeCallCid, activeCallCid, callDisplayName);
|
|
109
|
-
}, [activeCallCid, callDisplayName]);
|
|
110
|
-
useEffect(() => {
|
|
111
|
-
const callingx = getCallingxLibIfAvailable();
|
|
112
|
-
if (!callingx?.isSetup || !activeCallCid || !isIncomingCall) {
|
|
113
|
-
return;
|
|
114
|
-
}
|
|
115
|
-
let isUnsubscribed = false;
|
|
116
|
-
const subscription = callingx.addEventListener('didDisplayIncomingCall', event => {
|
|
117
|
-
if (event.callId === activeCallCid) {
|
|
118
|
-
//we need to report the call as answered only if user accepts the call from the app UI and push notification was delivered after that
|
|
119
|
-
const _callingState = activeCall?.state.callingState;
|
|
120
|
-
const shouldSkip = _callingState !== CallingState.JOINING && _callingState !== CallingState.JOINED && _callingState !== CallingState.RECONNECTING && _callingState !== CallingState.MIGRATING;
|
|
121
|
-
if (shouldSkip) {
|
|
122
|
-
return;
|
|
123
|
-
}
|
|
124
|
-
logger.debug(`Reporting the incoming call as answered in callingx as already join() calledin the app: ${activeCallCid}`);
|
|
125
|
-
callingx.answerIncomingCall(activeCallCid).catch(error => {
|
|
126
|
-
logger.error(`Error answering call in callingx: ${activeCallCid}`, error);
|
|
127
|
-
}).finally(() => {
|
|
128
|
-
subscription.remove();
|
|
129
|
-
isUnsubscribed = true;
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
});
|
|
133
|
-
return () => {
|
|
134
|
-
if (!isUnsubscribed) {
|
|
135
|
-
subscription.remove();
|
|
136
|
-
}
|
|
137
|
-
};
|
|
138
|
-
}, [activeCall, activeCallCid, isIncomingCall]);
|
|
139
|
-
|
|
140
|
-
// useEffect(() => {
|
|
141
|
-
// const callingx = getCallingxLibIfAvailable();
|
|
142
|
-
// if (!callingx?.isSetup || !activeCallCid) {
|
|
143
|
-
// return;
|
|
144
|
-
// }
|
|
145
|
-
|
|
146
|
-
// const isCallRegistered = callingx.isCallRegistered(activeCallCid);
|
|
147
|
-
// if (!isCallRegistered) {
|
|
148
|
-
// logger.debug(
|
|
149
|
-
// `No active call cid to set muted in calling exp: ${activeCallCid} isCallRegistered: ${isCallRegistered}`,
|
|
150
|
-
// );
|
|
151
|
-
// return;
|
|
152
|
-
// }
|
|
153
|
-
|
|
154
|
-
// callingx.setMutedCall(activeCallCid, isMute);
|
|
155
|
-
// }, [activeCallCid, isMute]);
|
|
156
|
-
|
|
157
|
-
// useEffect(() => {
|
|
158
|
-
// const callingx = getCallingxLibIfAvailable();
|
|
159
|
-
// if (!callingx?.isSetup || !activeCallCid) {
|
|
160
|
-
// return;
|
|
161
|
-
// }
|
|
162
|
-
|
|
163
|
-
// const isCallRegistered = callingx.isCallRegistered(activeCallCid);
|
|
164
|
-
// if (!isCallRegistered) {
|
|
165
|
-
// logger.debug(
|
|
166
|
-
// `No active call cid to set muted in calling exp: ${activeCallCid} isCallRegistered: ${isCallRegistered}`,
|
|
167
|
-
// );
|
|
168
|
-
// return;
|
|
169
|
-
// }
|
|
170
|
-
|
|
171
|
-
// //listen to mic toggle events from CallKit/Telecom and update stream call microphone state
|
|
172
|
-
// const subscription = callingx.addEventListener(
|
|
173
|
-
// 'didPerformSetMutedCallAction',
|
|
174
|
-
// async (event: { callId: string; muted: boolean }) => {
|
|
175
|
-
// const { callId, muted } = event;
|
|
176
|
-
|
|
177
|
-
// if (callId === activeCallCid) {
|
|
178
|
-
// const isCurrentlyMuted =
|
|
179
|
-
// RxUtils.getCurrentValue(microphone.state.status$) === 'disabled';
|
|
180
|
-
// if (isCurrentlyMuted === muted) {
|
|
181
|
-
// logger.debug(
|
|
182
|
-
// `Mic toggle is already in the desired state: ${muted} for call: ${activeCallCid}`,
|
|
183
|
-
// );
|
|
184
|
-
// //this check prevents mic toggle when state change was initiated from client and not from CallKit/Telecom
|
|
185
|
-
// return;
|
|
186
|
-
// }
|
|
187
|
-
|
|
188
|
-
// try {
|
|
189
|
-
// if (muted) {
|
|
190
|
-
// await microphone.disable();
|
|
191
|
-
// } else {
|
|
192
|
-
// await microphone.enable();
|
|
193
|
-
// }
|
|
194
|
-
// } catch (error: unknown) {
|
|
195
|
-
// logger.error(
|
|
196
|
-
// `Error toggling mic in calling exp: ${activeCallCid}`,
|
|
197
|
-
// error,
|
|
198
|
-
// );
|
|
199
|
-
// }
|
|
200
|
-
// }
|
|
201
|
-
// },
|
|
202
|
-
// );
|
|
203
|
-
|
|
204
|
-
// return () => {
|
|
205
|
-
// subscription.remove();
|
|
206
|
-
// };
|
|
207
|
-
// }, [activeCallCid, microphone, isOutcomingCall, isIncomingCall]);
|
|
208
|
-
};
|
|
209
|
-
//# sourceMappingURL=useCallingExpWithCallingStateEffect.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["CallingState","videoLoggerSystem","useCall","useCallStateHooks","useEffect","useMemo","useRef","getCallDisplayName","getCallingxLibIfAvailable","logger","getLogger","canActivateCall","prevState","currentState","isJoined","state","JOINING","JOINED","canEndCall","RINGING","RECONNECTING","MIGRATING","OFFLINE","LEFT","RECONNECTING_FAILED","IDLE","useCallingExpWithCallingStateEffect","useCallCallingState","useParticipants","useCallMembers","activeCall","callingState","callMembers","participants","undefined","activeCallCid","cid","isIncomingCall","ringing","isCreatedByMe","isOutcomingCall","currentUserId","isVideoCall","settings","video","enabled","callDisplayName","callingx","isSetup","isCallRegistered","debug","endCallWithReason","catch","error","current","isOngoingCallsEnabled","answerIncomingCall","setCurrentCallActive","updateDisplay","isUnsubscribed","subscription","addEventListener","event","callId","_callingState","shouldSkip","finally","remove"],"sourceRoot":"../../../../src","sources":["hooks/push/useCallingExpWithCallingStateEffect.ts"],"mappings":"AAAA,SAASA,YAAY,EAAEC,iBAAiB,QAAQ,yBAAyB;AACzE,SAASC,OAAO,EAAEC,iBAAiB,QAAQ,iCAAiC;AAC5E,SAASC,SAAS,EAAEC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AAClD,SAASC,kBAAkB,QAAQ,+BAA+B;AAClE,SAASC,yBAAyB,QAAQ,gCAAgC;AAE1E,MAAMC,MAAM,GAAGR,iBAAiB,CAACS,SAAS,CACxC,gDACF,CAAC;;AAED;AACA,MAAMC,eAAe,GAAGA,CACtBC,SAAmC,EACnCC,YAAsC,KACnC;EACH,IAAI,CAACD,SAAS,IAAI,CAACC,YAAY,EAAE;IAC/B,OAAO,KAAK;EACd;EAEA,MAAMC,QAAQ,GAAIC,KAA+B,IAAK;IACpD,IAAI,CAACA,KAAK,EAAE;MACV,OAAO,KAAK;IACd;IAEA,OAAOA,KAAK,KAAKf,YAAY,CAACgB,OAAO,IAAID,KAAK,KAAKf,YAAY,CAACiB,MAAM;EACxE,CAAC;EAED,OAAO,CAACH,QAAQ,CAACF,SAAS,CAAC,IAAIE,QAAQ,CAACD,YAAY,CAAC;AACvD,CAAC;AAED,MAAMK,UAAU,GAAGA,CACjBN,SAAmC,EACnCC,YAAsC,KACnC;EACH,IAAI,CAACD,SAAS,IAAI,CAACC,YAAY,EAAE;IAC/B,OAAO,KAAK;EACd;EAEA,OACE,CAACD,SAAS,KAAKZ,YAAY,CAACiB,MAAM,IAChCL,SAAS,KAAKZ,YAAY,CAACgB,OAAO,IAClCJ,SAAS,KAAKZ,YAAY,CAACmB,OAAO,IAClCP,SAAS,KAAKZ,YAAY,CAACoB,YAAY,IACvCR,SAAS,KAAKZ,YAAY,CAACqB,SAAS,IACpCT,SAAS,KAAKZ,YAAY,CAACsB,OAAO,MACnCT,YAAY,KAAKb,YAAY,CAACuB,IAAI,IACjCV,YAAY,KAAKb,YAAY,CAACwB,mBAAmB,IACjDX,YAAY,KAAKb,YAAY,CAACyB,IAAI,CAAC;AAEzC,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMC,mCAAmC,GAAGA,CAAA,KAAM;EACvD,MAAM;IACJC,mBAAmB;IACnB;IACAC,eAAe;IACfC;EACF,CAAC,GAAG1B,iBAAiB,CAAC,CAAC;EAEvB,MAAM2B,UAAU,GAAG5B,OAAO,CAAC,CAAC;EAC5B,MAAM6B,YAAY,GAAGJ,mBAAmB,CAAC,CAAC;EAC1C;EACA,MAAMK,WAAW,GAAGH,cAAc,CAAC,CAAC;EACpC,MAAMI,YAAY,GAAGL,eAAe,CAAC,CAAC;EAEtC,MAAMhB,SAAS,GAAGN,MAAM,CAA2B4B,SAAS,CAAC;EAE7D,MAAMC,aAAa,GAAGL,UAAU,EAAEM,GAAG;EACrC,MAAMC,cAAc,GAAGP,UAAU,EAAEQ,OAAO,IAAI,CAACR,UAAU,EAAES,aAAa;EACxE,MAAMC,eAAe,GAAGV,UAAU,EAAEQ,OAAO,IAAIR,UAAU,EAAES,aAAa;EACxE,MAAME,aAAa,GAAGX,UAAU,EAAEW,aAAa;EAC/C,MAAMC,WAAW,GAAGZ,UAAU,EAAEf,KAAK,CAAC4B,QAAQ,EAAEC,KAAK,EAAEC,OAAO,IAAI,KAAK;EAEvE,MAAMC,eAAe,GAAGzC,OAAO,CAC7B,MAAME,kBAAkB,CAACyB,WAAW,EAAEC,YAAY,EAAEQ,aAAa,CAAC,EAClE,CAACT,WAAW,EAAEC,YAAY,EAAEQ,aAAa,CAC3C,CAAC;EAEDrC,SAAS,CAAC,MAAM;IACd,OAAO,MAAM;MACX,MAAM2C,QAAQ,GAAGvC,yBAAyB,CAAC,CAAC;MAC5C,IAAI,CAACuC,QAAQ,EAAEC,OAAO,IAAI,CAACb,aAAa,EAAE;QACxC;MACF;MAEA,MAAMc,gBAAgB,GAAGF,QAAQ,CAACE,gBAAgB,CAACd,aAAa,CAAC;MACjE,IAAI,CAACc,gBAAgB,EAAE;QACrBxC,MAAM,CAACyC,KAAK,CACV,6CAA6Cf,aAAa,sBAAsBc,gBAAgB,EAClG,CAAC;QACD;MACF;MACA;MACAxC,MAAM,CAACyC,KAAK,CAAC,4BAA4Bf,aAAa,EAAE,CAAC;MACzDY,QAAQ,CACLI,iBAAiB,CAAChB,aAAa,EAAE,OAAO,CAAC,CACzCiB,KAAK,CAAEC,KAAc,IAAK;QACzB5C,MAAM,CAAC4C,KAAK,CACV,kCAAkClB,aAAa,EAAE,EACjDkB,KACF,CAAC;MACH,CAAC,CAAC;IACN,CAAC;EACH,CAAC,EAAE,CAAClB,aAAa,CAAC,CAAC;EAEnB/B,SAAS,CAAC,MAAM;IACd,MAAM2C,QAAQ,GAAGvC,yBAAyB,CAAC,CAAC;IAC5C,IACE,CAACuC,QAAQ,EAAEC,OAAO,IAClB,CAACb,aAAa,IACdvB,SAAS,CAAC0C,OAAO,KAAKvB,YAAY,EAClC;MACA;IACF;;IAEA;IACA,MAAMkB,gBAAgB,GAAGF,QAAQ,CAACE,gBAAgB,CAACd,aAAa,CAAC;IACjE1B,MAAM,CAACyC,KAAK,CACV,cAAcf,aAAa,sBAAsBc,gBAAgB;AACvE,wBAAwBZ,cAAc,qBAAqBG,eAAe;AAC1E,mBAAmB5B,SAAS,CAAC0C,OAAO,mBAAmBvB,YAAY;AACnE,+BAA+BgB,QAAQ,CAACQ,qBAAqB,EACzD,CAAC;IAED,IACElB,cAAc,IACdY,gBAAgB,IAChBtC,eAAe,CAACC,SAAS,CAAC0C,OAAO,EAAEvB,YAAY,CAAC,EAChD;MACAtB,MAAM,CAACyC,KAAK,CAAC,mCAAmCf,aAAa,EAAE,CAAC;MAChEY,QAAQ,CAACS,kBAAkB,CAACrB,aAAa,CAAC,CAACiB,KAAK,CAAEC,KAAc,IAAK;QACnE5C,MAAM,CAAC4C,KAAK,CACV,qCAAqClB,aAAa,EAAE,EACpDkB,KACF,CAAC;MACH,CAAC,CAAC;IACJ,CAAC,MAAM,IACL,CAACb,eAAe,IAAIO,QAAQ,CAACQ,qBAAqB,KAClDN,gBAAgB,IAChBtC,eAAe,CAACC,SAAS,CAAC0C,OAAO,EAAEvB,YAAY,CAAC,EAChD;MACAtB,MAAM,CAACyC,KAAK,CAAC,uCAAuCf,aAAa,EAAE,CAAC;MACpEY,QAAQ,CAACU,oBAAoB,CAACtB,aAAa,CAAC;IAC9C,CAAC,MAAM,IACLc,gBAAgB,IAChB/B,UAAU,CAACN,SAAS,CAAC0C,OAAO,EAAEvB,YAAY,CAAC,EAC3C;MACA;MACAtB,MAAM,CAACyC,KAAK,CAAC,gCAAgCf,aAAa,EAAE,CAAC;MAC7D;MACAY,QAAQ,CACLI,iBAAiB,CAAChB,aAAa,EAAE,OAAO,CAAC,CACzCiB,KAAK,CAAEC,KAAc,IAAK;QACzB5C,MAAM,CAAC4C,KAAK,CACV,kCAAkClB,aAAa,EAAE,EACjDkB,KACF,CAAC;MACH,CAAC,CAAC;IACN;IAEAzC,SAAS,CAAC0C,OAAO,GAAGvB,YAAY;EAClC,CAAC,EAAE,CACDI,aAAa,EACbJ,YAAY,EACZe,eAAe,EACfT,cAAc,EACdG,eAAe,EACfE,WAAW,CACZ,CAAC;EAEFtC,SAAS,CAAC,MAAM;IACd,MAAM2C,QAAQ,GAAGvC,yBAAyB,CAAC,CAAC;IAC5C,IAAI,CAACuC,QAAQ,EAAEC,OAAO,IAAI,CAACb,aAAa,EAAE;MACxC;IACF;IAEA,MAAMc,gBAAgB,GAAGF,QAAQ,CAACE,gBAAgB,CAACd,aAAa,CAAC;IACjE,IAAI,CAACc,gBAAgB,EAAE;MACrBxC,MAAM,CAACyC,KAAK,CACV,0CAA0Cf,aAAa,sBAAsBc,gBAAgB,EAC/F,CAAC;MACD;IACF;IAEAF,QAAQ,CAACW,aAAa,CAACvB,aAAa,EAAEA,aAAa,EAAEW,eAAe,CAAC;EACvE,CAAC,EAAE,CAACX,aAAa,EAAEW,eAAe,CAAC,CAAC;EAEpC1C,SAAS,CAAC,MAAM;IACd,MAAM2C,QAAQ,GAAGvC,yBAAyB,CAAC,CAAC;IAC5C,IAAI,CAACuC,QAAQ,EAAEC,OAAO,IAAI,CAACb,aAAa,IAAI,CAACE,cAAc,EAAE;MAC3D;IACF;IAEA,IAAIsB,cAAc,GAAG,KAAK;IAC1B,MAAMC,YAAY,GAAGb,QAAQ,CAACc,gBAAgB,CAC5C,wBAAwB,EACvBC,KAAyB,IAAK;MAC7B,IAAIA,KAAK,CAACC,MAAM,KAAK5B,aAAa,EAAE;QAClC;QACA,MAAM6B,aAAa,GAAGlC,UAAU,EAAEf,KAAK,CAACgB,YAAY;QACpD,MAAMkC,UAAU,GACdD,aAAa,KAAKhE,YAAY,CAACgB,OAAO,IACtCgD,aAAa,KAAKhE,YAAY,CAACiB,MAAM,IACrC+C,aAAa,KAAKhE,YAAY,CAACoB,YAAY,IAC3C4C,aAAa,KAAKhE,YAAY,CAACqB,SAAS;QAC1C,IAAI4C,UAAU,EAAE;UACd;QACF;QAEAxD,MAAM,CAACyC,KAAK,CACV,2FAA2Ff,aAAa,EAC1G,CAAC;QACDY,QAAQ,CACLS,kBAAkB,CAACrB,aAAa,CAAC,CACjCiB,KAAK,CAAEC,KAAc,IAAK;UACzB5C,MAAM,CAAC4C,KAAK,CACV,qCAAqClB,aAAa,EAAE,EACpDkB,KACF,CAAC;QACH,CAAC,CAAC,CACDa,OAAO,CAAC,MAAM;UACbN,YAAY,CAACO,MAAM,CAAC,CAAC;UACrBR,cAAc,GAAG,IAAI;QACvB,CAAC,CAAC;MACN;IACF,CACF,CAAC;IAED,OAAO,MAAM;MACX,IAAI,CAACA,cAAc,EAAE;QACnBC,YAAY,CAACO,MAAM,CAAC,CAAC;MACvB;IACF,CAAC;EACH,CAAC,EAAE,CAACrC,UAAU,EAAEK,aAAa,EAAEE,cAAc,CAAC,CAAC;;EAE/C;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;EACA;;EAEA;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA;AACF,CAAC","ignoreList":[]}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Module to manage pending promise for audio session activation.
|
|
3
|
-
* Used to wait for iOS CallKit's didActivateAudioSession event after starting a call.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
let pendingResolve = null;
|
|
7
|
-
let pendingTimeout = null;
|
|
8
|
-
const AUDIO_SESSION_TIMEOUT_MS = 5000;
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Creates a promise that resolves when the audio session is activated,
|
|
12
|
-
* or after a timeout to prevent hanging indefinitely.
|
|
13
|
-
* @returns Promise that resolves when audio session is activated or timeout occurs
|
|
14
|
-
*/
|
|
15
|
-
export function waitForAudioSessionActivation() {
|
|
16
|
-
return new Promise(resolve => {
|
|
17
|
-
pendingResolve = resolve;
|
|
18
|
-
pendingTimeout = setTimeout(() => {
|
|
19
|
-
// Resolve on timeout to prevent hanging
|
|
20
|
-
resolvePendingAudioSession();
|
|
21
|
-
}, AUDIO_SESSION_TIMEOUT_MS);
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Resolves the pending audio session activation promise.
|
|
27
|
-
* Called when the didActivateAudioSession event fires or on timeout.
|
|
28
|
-
*/
|
|
29
|
-
export function resolvePendingAudioSession() {
|
|
30
|
-
if (pendingTimeout) {
|
|
31
|
-
clearTimeout(pendingTimeout);
|
|
32
|
-
pendingTimeout = null;
|
|
33
|
-
}
|
|
34
|
-
if (pendingResolve) {
|
|
35
|
-
pendingResolve();
|
|
36
|
-
pendingResolve = null;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=audioSessionPromise.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["pendingResolve","pendingTimeout","AUDIO_SESSION_TIMEOUT_MS","waitForAudioSessionActivation","Promise","resolve","setTimeout","resolvePendingAudioSession","clearTimeout"],"sourceRoot":"../../../../src","sources":["utils/internal/audioSessionPromise.ts"],"mappings":"AAAA;AACA;AACA;AACA;;AAEA,IAAIA,cAAmC,GAAG,IAAI;AAC9C,IAAIC,cAAoD,GAAG,IAAI;AAE/D,MAAMC,wBAAwB,GAAG,IAAI;;AAErC;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,6BAA6BA,CAAA,EAAkB;EAC7D,OAAO,IAAIC,OAAO,CAAEC,OAAO,IAAK;IAC9BL,cAAc,GAAGK,OAAO;IACxBJ,cAAc,GAAGK,UAAU,CAAC,MAAM;MAChC;MACAC,0BAA0B,CAAC,CAAC;IAC9B,CAAC,EAAEL,wBAAwB,CAAC;EAC9B,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASK,0BAA0BA,CAAA,EAAS;EACjD,IAAIN,cAAc,EAAE;IAClBO,YAAY,CAACP,cAAc,CAAC;IAC5BA,cAAc,GAAG,IAAI;EACvB;EACA,IAAID,cAAc,EAAE;IAClBA,cAAc,CAAC,CAAC;IAChBA,cAAc,GAAG,IAAI;EACvB;AACF","ignoreList":[]}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
/***
|
|
2
|
-
* Internal utils for callingx library usage from video-client.
|
|
3
|
-
* See @./registerSDKGlobals.ts for more usage details.
|
|
4
|
-
*/
|
|
5
|
-
import { Platform } from 'react-native';
|
|
6
|
-
import { getCallingxLibIfAvailable } from '../push/libs/callingx';
|
|
7
|
-
import { videoLoggerSystem } from '@stream-io/video-client';
|
|
8
|
-
import { waitForAudioSessionActivation } from './audioSessionPromise';
|
|
9
|
-
const CallingxModule = getCallingxLibIfAvailable();
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Gets the call display name. To be used for display in native call screen.
|
|
13
|
-
*/
|
|
14
|
-
export function getCallDisplayName(callMembers, participants, currentUserId) {
|
|
15
|
-
if (!callMembers || !participants || !currentUserId) {
|
|
16
|
-
return 'Call';
|
|
17
|
-
}
|
|
18
|
-
let names = [];
|
|
19
|
-
if (callMembers.length > 0) {
|
|
20
|
-
// for ringing calls, members array contains all call members from the very early state and participants array is empty in the beginning
|
|
21
|
-
names = callMembers.filter(member => member.user.id !== currentUserId).map(member => member.user.name).filter(name => name !== undefined);
|
|
22
|
-
} else if (participants.length > 0) {
|
|
23
|
-
// for non-ringing calls, members array is empty and we rely on participants array there
|
|
24
|
-
names = participants.filter(participant => participant.userId !== currentUserId).map(participant => participant.name).filter(Boolean);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
// if no names are found, we use the name of the current user
|
|
28
|
-
if (names.length === 0) {
|
|
29
|
-
names = [participants.find(participant => participant.userId === currentUserId)?.name ?? 'Call'];
|
|
30
|
-
}
|
|
31
|
-
return names.sort().join(', ');
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Starts the call in the callingx library.
|
|
36
|
-
* Must be called for all outgoing calls
|
|
37
|
-
* and optionally for non-ringing calls when ongoing calls are enabled.
|
|
38
|
-
*/
|
|
39
|
-
export async function startCallingxCall(call) {
|
|
40
|
-
if (!CallingxModule || CallingxModule.isCallRegistered(call.cid)) {
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
const isOutcomingCall = call.ringing && call.isCreatedByMe;
|
|
44
|
-
if (isOutcomingCall || !call.ringing && CallingxModule.isOngoingCallsEnabled) {
|
|
45
|
-
const callDisplayName = getCallDisplayName(call.state.members, call.state.participants, call.currentUserId);
|
|
46
|
-
try {
|
|
47
|
-
await CallingxModule.startCall(call.cid,
|
|
48
|
-
// unique id for call
|
|
49
|
-
call.id,
|
|
50
|
-
// phone number for display in dialer (we use call id as phone number)
|
|
51
|
-
callDisplayName,
|
|
52
|
-
// display name for display in call screen
|
|
53
|
-
call.state.settings?.video?.enabled ?? false // is video call?
|
|
54
|
-
);
|
|
55
|
-
|
|
56
|
-
// Wait for audio session activation on iOS only
|
|
57
|
-
if (Platform.OS === 'ios') {
|
|
58
|
-
await waitForAudioSessionActivation();
|
|
59
|
-
}
|
|
60
|
-
} catch (error) {
|
|
61
|
-
videoLoggerSystem.getLogger('startCallingxCall').error(`Error starting call in callingx: ${call.cid}`, error);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
export async function endCallingxCall(call) {
|
|
66
|
-
if (!CallingxModule || !CallingxModule.isCallRegistered(call.cid)) {
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
try {
|
|
70
|
-
await CallingxModule.endCallWithReason(call.cid, 'local');
|
|
71
|
-
} catch (error) {
|
|
72
|
-
videoLoggerSystem.getLogger('endCallingxCall').error(`Error ending call in callingx: ${call.cid}`, error);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
//# sourceMappingURL=callingx.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","getCallingxLibIfAvailable","videoLoggerSystem","waitForAudioSessionActivation","CallingxModule","getCallDisplayName","callMembers","participants","currentUserId","names","length","filter","member","user","id","map","name","undefined","participant","userId","Boolean","find","sort","join","startCallingxCall","call","isCallRegistered","cid","isOutcomingCall","ringing","isCreatedByMe","isOngoingCallsEnabled","callDisplayName","state","members","startCall","settings","video","enabled","OS","error","getLogger","endCallingxCall","endCallWithReason"],"sourceRoot":"../../../../src","sources":["utils/internal/callingx.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { AppRegistry, Platform } from 'react-native';
|
|
2
|
-
import { videoLoggerSystem } from '@stream-io/video-client';
|
|
3
|
-
import { StreamVideoRN } from './StreamVideoRN';
|
|
4
|
-
export const KEEP_CALL_ALIVE_HEADLESS_TASK_NAME = 'StreamVideoKeepCallAlive';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* The keep-alive headless task needs access to the active `Call` instance.
|
|
8
|
-
* The keep-alive hook will set this reference before starting the native service.
|
|
9
|
-
*/
|
|
10
|
-
export const keepCallAliveCallRef = {
|
|
11
|
-
current: undefined
|
|
12
|
-
};
|
|
13
|
-
function registerKeepCallAliveHeadlessTaskOnce() {
|
|
14
|
-
if (Platform.OS !== 'android') return;
|
|
15
|
-
AppRegistry.registerHeadlessTask(KEEP_CALL_ALIVE_HEADLESS_TASK_NAME, () => async data => {
|
|
16
|
-
const logger = videoLoggerSystem.getLogger('KEEP_CALL_ALIVE_HEADLESS_TASK');
|
|
17
|
-
const callCid = data?.callCid;
|
|
18
|
-
const call = keepCallAliveCallRef.current;
|
|
19
|
-
if (!call) {
|
|
20
|
-
logger.warn('No active call instance available for keep-alive task; skipping.', {
|
|
21
|
-
callCid
|
|
22
|
-
});
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
if (callCid && call.cid && call.cid !== callCid) {
|
|
26
|
-
logger.warn('Keep-alive task callCid does not match active call; skipping.', {
|
|
27
|
-
callCid,
|
|
28
|
-
activeCallCid: call.cid
|
|
29
|
-
});
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
const config = StreamVideoRN.getConfig();
|
|
33
|
-
const taskToRun = config.foregroundService.android.taskToRun;
|
|
34
|
-
try {
|
|
35
|
-
await taskToRun(call);
|
|
36
|
-
} catch (e) {
|
|
37
|
-
logger.error('Keep-alive headless task failed', e);
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
registerKeepCallAliveHeadlessTaskOnce();
|
|
42
|
-
//# sourceMappingURL=keepCallAliveHeadlessTask.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["AppRegistry","Platform","videoLoggerSystem","StreamVideoRN","KEEP_CALL_ALIVE_HEADLESS_TASK_NAME","keepCallAliveCallRef","current","undefined","registerKeepCallAliveHeadlessTaskOnce","OS","registerHeadlessTask","data","logger","getLogger","callCid","call","warn","cid","activeCallCid","config","getConfig","taskToRun","foregroundService","android","e","error"],"sourceRoot":"../../../src","sources":["utils/keepCallAliveHeadlessTask.ts"],"mappings":"AAAA,SAASA,WAAW,EAAEC,QAAQ,QAAQ,cAAc;AAEpD,SAASC,iBAAiB,QAAQ,yBAAyB;AAC3D,SAASC,aAAa,QAAQ,iBAAiB;AAE/C,OAAO,MAAMC,kCAAkC,GAAG,0BAA0B;;AAE5E;AACA;AACA;AACA;AACA,OAAO,MAAMC,oBAAmD,GAAG;EACjEC,OAAO,EAAEC;AACX,CAAC;AAED,SAASC,qCAAqCA,CAAA,EAAG;EAC/C,IAAIP,QAAQ,CAACQ,EAAE,KAAK,SAAS,EAAE;EAE/BT,WAAW,CAACU,oBAAoB,CAC9BN,kCAAkC,EAClC,MAAM,MAAOO,IAAsC,IAAK;IACtD,MAAMC,MAAM,GAAGV,iBAAiB,CAACW,SAAS,CACxC,+BACF,CAAC;IACD,MAAMC,OAAO,GAAGH,IAAI,EAAEG,OAAO;IAE7B,MAAMC,IAAI,GAAGV,oBAAoB,CAACC,OAAO;IACzC,IAAI,CAACS,IAAI,EAAE;MACTH,MAAM,CAACI,IAAI,CACT,kEAAkE,EAClE;QAAEF;MAAQ,CACZ,CAAC;MACD;IACF;IACA,IAAIA,OAAO,IAAIC,IAAI,CAACE,GAAG,IAAIF,IAAI,CAACE,GAAG,KAAKH,OAAO,EAAE;MAC/CF,MAAM,CAACI,IAAI,CACT,+DAA+D,EAC/D;QAAEF,OAAO;QAAEI,aAAa,EAAEH,IAAI,CAACE;MAAI,CACrC,CAAC;MACD;IACF;IAEA,MAAME,MAAM,GAAGhB,aAAa,CAACiB,SAAS,CAAC,CAAC;IACxC,MAAMC,SAAS,GAAGF,MAAM,CAACG,iBAAiB,CAACC,OAAO,CAACF,SAAS;IAC5D,IAAI;MACF,MAAMA,SAAS,CAACN,IAAI,CAAC;IACvB,CAAC,CAAC,OAAOS,CAAC,EAAE;MACVZ,MAAM,CAACa,KAAK,CAAC,iCAAiC,EAAED,CAAC,CAAC;IACpD;EACF,CACF,CAAC;AACH;AAEAhB,qCAAqC,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
let callingx;
|
|
2
|
-
try {
|
|
3
|
-
callingx = require('@stream-io/react-native-callingx').CallingxModule;
|
|
4
|
-
} catch {}
|
|
5
|
-
export function getCallingxLib() {
|
|
6
|
-
if (!callingx) {
|
|
7
|
-
throw Error('react-native-callingx library is not installed.');
|
|
8
|
-
}
|
|
9
|
-
return callingx;
|
|
10
|
-
}
|
|
11
|
-
export function getCallingxLibIfAvailable() {
|
|
12
|
-
return callingx ?? undefined;
|
|
13
|
-
}
|
|
14
|
-
export function extractCallingExpOptions(config) {
|
|
15
|
-
const {
|
|
16
|
-
push: pushConfig,
|
|
17
|
-
foregroundService: foregroundServiceConfig
|
|
18
|
-
} = config;
|
|
19
|
-
const callingExpOptions = {};
|
|
20
|
-
if (pushConfig?.ios) {
|
|
21
|
-
const iosOptions = {};
|
|
22
|
-
if (pushConfig.ios.supportsVideo !== undefined) {
|
|
23
|
-
iosOptions.supportsVideo = pushConfig.ios.supportsVideo;
|
|
24
|
-
}
|
|
25
|
-
if (pushConfig.ios.sound !== undefined) {
|
|
26
|
-
iosOptions.sound = pushConfig.ios.sound;
|
|
27
|
-
}
|
|
28
|
-
if (pushConfig.ios.imageName !== undefined) {
|
|
29
|
-
iosOptions.imageName = pushConfig.ios.imageName;
|
|
30
|
-
}
|
|
31
|
-
if (pushConfig.ios.callsHistory !== undefined) {
|
|
32
|
-
iosOptions.callsHistory = pushConfig.ios.callsHistory;
|
|
33
|
-
}
|
|
34
|
-
if (pushConfig.ios.displayCallTimeout !== undefined) {
|
|
35
|
-
iosOptions.displayCallTimeout = pushConfig.ios.displayCallTimeout;
|
|
36
|
-
}
|
|
37
|
-
if (Object.keys(iosOptions).length > 0) {
|
|
38
|
-
callingExpOptions.ios = iosOptions;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
const androidOptions = {};
|
|
42
|
-
if (pushConfig?.android) {
|
|
43
|
-
if (pushConfig.android.incomingChannel) {
|
|
44
|
-
androidOptions.incomingChannel = pushConfig.android.incomingChannel;
|
|
45
|
-
}
|
|
46
|
-
if (pushConfig.android.titleTransformer) {
|
|
47
|
-
androidOptions.titleTransformer = pushConfig.android.titleTransformer;
|
|
48
|
-
}
|
|
49
|
-
if (pushConfig.android.subtitleTransformer) {
|
|
50
|
-
androidOptions.subtitleTransformer = pushConfig.android.subtitleTransformer;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
if (foregroundServiceConfig.android.channel) {
|
|
54
|
-
androidOptions.ongoingChannel = foregroundServiceConfig.android.channel;
|
|
55
|
-
}
|
|
56
|
-
if (Object.keys(androidOptions).length > 0) {
|
|
57
|
-
callingExpOptions.android = androidOptions;
|
|
58
|
-
}
|
|
59
|
-
if (pushConfig?.shouldRejectCallWhenBusy !== undefined) {
|
|
60
|
-
callingExpOptions.shouldRejectCallWhenBusy = pushConfig.shouldRejectCallWhenBusy;
|
|
61
|
-
}
|
|
62
|
-
if (pushConfig?.enableOngoingCalls !== undefined) {
|
|
63
|
-
callingExpOptions.enableOngoingCalls = pushConfig?.enableOngoingCalls;
|
|
64
|
-
}
|
|
65
|
-
return callingExpOptions;
|
|
66
|
-
}
|
|
67
|
-
//# sourceMappingURL=callingx.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["callingx","require","CallingxModule","getCallingxLib","Error","getCallingxLibIfAvailable","undefined","extractCallingExpOptions","config","push","pushConfig","foregroundService","foregroundServiceConfig","callingExpOptions","ios","iosOptions","supportsVideo","sound","imageName","callsHistory","displayCallTimeout","Object","keys","length","androidOptions","android","incomingChannel","titleTransformer","subtitleTransformer","channel","ongoingChannel","shouldRejectCallWhenBusy","enableOngoingCalls"],"sourceRoot":"../../../../../src","sources":["utils/push/libs/callingx.ts"],"mappings":"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","ignoreList":[]}
|