@stream-io/video-react-native-sdk 1.10.13 → 1.10.15
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 +13 -0
- package/dist/commonjs/hooks/push/index.js +0 -2
- package/dist/commonjs/hooks/push/index.js.map +1 -1
- package/dist/commonjs/hooks/push/useIosCallkeepWithCallingStateEffect.js +20 -23
- package/dist/commonjs/hooks/push/useIosCallkeepWithCallingStateEffect.js.map +1 -1
- package/dist/commonjs/hooks/push/useIosVoipPushEventsSetupEffect.js +6 -103
- package/dist/commonjs/hooks/push/useIosVoipPushEventsSetupEffect.js.map +1 -1
- package/dist/commonjs/utils/StreamVideoRN/index.js +4 -0
- package/dist/commonjs/utils/StreamVideoRN/index.js.map +1 -1
- package/dist/commonjs/utils/push/ios.js +95 -1
- package/dist/commonjs/utils/push/ios.js.map +1 -1
- package/dist/commonjs/utils/push/setupIosCallKeepEvents.js +150 -0
- package/dist/commonjs/utils/push/setupIosCallKeepEvents.js.map +1 -0
- package/dist/commonjs/utils/push/setupIosVoipPushEvents.js +27 -0
- package/dist/commonjs/utils/push/setupIosVoipPushEvents.js.map +1 -0
- package/dist/commonjs/version.js +1 -1
- package/dist/module/hooks/push/index.js +0 -2
- package/dist/module/hooks/push/index.js.map +1 -1
- package/dist/module/hooks/push/useIosCallkeepWithCallingStateEffect.js +21 -24
- package/dist/module/hooks/push/useIosCallkeepWithCallingStateEffect.js.map +1 -1
- package/dist/module/hooks/push/useIosVoipPushEventsSetupEffect.js +10 -108
- package/dist/module/hooks/push/useIosVoipPushEventsSetupEffect.js.map +1 -1
- package/dist/module/utils/StreamVideoRN/index.js +4 -0
- package/dist/module/utils/StreamVideoRN/index.js.map +1 -1
- package/dist/module/utils/push/ios.js +97 -4
- package/dist/module/utils/push/ios.js.map +1 -1
- package/dist/module/utils/push/setupIosCallKeepEvents.js +145 -0
- package/dist/module/utils/push/setupIosCallKeepEvents.js.map +1 -0
- package/dist/module/utils/push/setupIosVoipPushEvents.js +21 -0
- package/dist/module/utils/push/setupIosVoipPushEvents.js.map +1 -0
- package/dist/module/version.js +1 -1
- package/dist/typescript/hooks/push/index.d.ts.map +1 -1
- package/dist/typescript/hooks/push/useIosCallkeepWithCallingStateEffect.d.ts.map +1 -1
- package/dist/typescript/hooks/push/useIosVoipPushEventsSetupEffect.d.ts.map +1 -1
- package/dist/typescript/utils/StreamVideoRN/index.d.ts.map +1 -1
- package/dist/typescript/utils/push/ios.d.ts +1 -0
- package/dist/typescript/utils/push/ios.d.ts.map +1 -1
- 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 +3 -0
- package/dist/typescript/utils/push/setupIosVoipPushEvents.d.ts.map +1 -0
- package/dist/typescript/version.d.ts +1 -1
- package/ios/StreamVideoReactNative.m +72 -22
- package/package.json +3 -3
- package/src/hooks/push/index.ts +0 -2
- package/src/hooks/push/useIosCallkeepWithCallingStateEffect.ts +37 -31
- package/src/hooks/push/useIosVoipPushEventsSetupEffect.ts +10 -145
- package/src/utils/StreamVideoRN/index.ts +5 -0
- package/src/utils/push/ios.ts +135 -3
- package/src/utils/push/setupIosCallKeepEvents.ts +187 -0
- package/src/utils/push/setupIosVoipPushEvents.ts +29 -0
- package/src/version.ts +1 -1
- package/dist/commonjs/hooks/push/useIosCallKeepEventsSetupEffect.js +0 -109
- package/dist/commonjs/hooks/push/useIosCallKeepEventsSetupEffect.js.map +0 -1
- package/dist/module/hooks/push/useIosCallKeepEventsSetupEffect.js +0 -103
- package/dist/module/hooks/push/useIosCallKeepEventsSetupEffect.js.map +0 -1
- package/dist/typescript/hooks/push/useIosCallKeepEventsSetupEffect.d.ts +0 -5
- package/dist/typescript/hooks/push/useIosCallKeepEventsSetupEffect.d.ts.map +0 -1
- package/src/hooks/push/useIosCallKeepEventsSetupEffect.ts +0 -132
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.setupIosCallKeepEvents = setupIosCallKeepEvents;
|
|
7
|
+
var _rxSubjects = require("./internal/rxSubjects");
|
|
8
|
+
var _videoClient = require("@stream-io/video-client");
|
|
9
|
+
var _libs = require("./libs");
|
|
10
|
+
var _utils = require("./internal/utils");
|
|
11
|
+
var _reactNative = require("react-native");
|
|
12
|
+
var _pushLogoutCallback = require("../internal/pushLogoutCallback");
|
|
13
|
+
/**
|
|
14
|
+
* This hook is used to listen to callkeep events and do the necessary actions
|
|
15
|
+
*/
|
|
16
|
+
function setupIosCallKeepEvents(pushConfig) {
|
|
17
|
+
if (_reactNative.Platform.OS !== 'ios' || !pushConfig.ios.pushProviderName) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const logger = (0, _videoClient.getLogger)(['setupIosCallKeepEvents']);
|
|
21
|
+
const callkeep = (0, _libs.getCallKeepLib)();
|
|
22
|
+
async function getCallCid(callUUID) {
|
|
23
|
+
let call_cid = _videoClient.RxUtils.getCurrentValue(_rxSubjects.voipPushNotificationCallCId$);
|
|
24
|
+
if (!call_cid) {
|
|
25
|
+
// if call_cid is not available, try to get it from native module
|
|
26
|
+
try {
|
|
27
|
+
call_cid = await _reactNative.NativeModules?.StreamVideoReactNative?.getIncomingCallCid(callUUID);
|
|
28
|
+
_rxSubjects.voipPushNotificationCallCId$.next(call_cid);
|
|
29
|
+
} catch (error) {
|
|
30
|
+
logger('debug', 'Error in getting call cid from native module - probably the call was already processed, so ignoring this callkeep event');
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return call_cid;
|
|
34
|
+
}
|
|
35
|
+
function answerCall(callUUID) {
|
|
36
|
+
getCallCid(callUUID).then(call_cid => {
|
|
37
|
+
logger('debug', `answerCall event with call_cid: ${call_cid}`);
|
|
38
|
+
iosCallkeepAcceptCall(call_cid, callUUID);
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
function endCall(callUUID) {
|
|
42
|
+
getCallCid(callUUID).then(call_cid => {
|
|
43
|
+
logger('debug', `endCall event with call_cid: ${call_cid}`);
|
|
44
|
+
iosCallkeepRejectCall(call_cid, callUUID, pushConfig);
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
function didDisplayIncomingCall(callUUID, payload) {
|
|
48
|
+
const voipPushNotification = (0, _libs.getVoipPushNotificationLib)();
|
|
49
|
+
// @ts-expect-error
|
|
50
|
+
const call_cid = payload?.call_cid;
|
|
51
|
+
logger('debug', `didDisplayIncomingCall event with callUUID: ${callUUID} call_cid: ${call_cid}`);
|
|
52
|
+
if (call_cid) {
|
|
53
|
+
if (_reactNative.AppState.currentState === 'background') {
|
|
54
|
+
(0, _utils.processCallFromPushInBackground)(pushConfig, call_cid, 'backgroundDelivered');
|
|
55
|
+
}
|
|
56
|
+
_rxSubjects.voipCallkeepCallOnForegroundMap$.next({
|
|
57
|
+
uuid: callUUID,
|
|
58
|
+
cid: call_cid
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
voipPushNotification.onVoipNotificationCompleted(callUUID);
|
|
62
|
+
}
|
|
63
|
+
const {
|
|
64
|
+
remove: removeAnswerCall
|
|
65
|
+
} = callkeep.addEventListener('answerCall', ({
|
|
66
|
+
callUUID
|
|
67
|
+
}) => {
|
|
68
|
+
answerCall(callUUID);
|
|
69
|
+
});
|
|
70
|
+
const {
|
|
71
|
+
remove: removeEndCall
|
|
72
|
+
} = callkeep.addEventListener('endCall', ({
|
|
73
|
+
callUUID
|
|
74
|
+
}) => {
|
|
75
|
+
endCall(callUUID);
|
|
76
|
+
});
|
|
77
|
+
const {
|
|
78
|
+
remove: removeDisplayIncomingCall
|
|
79
|
+
} = callkeep.addEventListener('didDisplayIncomingCall', ({
|
|
80
|
+
callUUID,
|
|
81
|
+
payload
|
|
82
|
+
}) => {
|
|
83
|
+
didDisplayIncomingCall(callUUID, payload);
|
|
84
|
+
});
|
|
85
|
+
const {
|
|
86
|
+
remove: removeDidLoadWithEvents
|
|
87
|
+
} = callkeep.addEventListener('didLoadWithEvents', events => {
|
|
88
|
+
if (!events || !Array.isArray(events) || events.length < 1) {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
events.forEach(event => {
|
|
92
|
+
const {
|
|
93
|
+
name,
|
|
94
|
+
data
|
|
95
|
+
} = event;
|
|
96
|
+
if (name === 'RNCallKeepDidDisplayIncomingCall') {
|
|
97
|
+
didDisplayIncomingCall(data.callUUID, data.payload);
|
|
98
|
+
} else if (name === 'RNCallKeepPerformAnswerCallAction') {
|
|
99
|
+
answerCall(data.callUUID);
|
|
100
|
+
} else if (name === 'RNCallKeepPerformEndCallAction') {
|
|
101
|
+
endCall(data.callUUID);
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
(0, _pushLogoutCallback.setPushLogoutCallback)(async () => {
|
|
106
|
+
removeAnswerCall();
|
|
107
|
+
removeEndCall();
|
|
108
|
+
removeDisplayIncomingCall();
|
|
109
|
+
removeDidLoadWithEvents();
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
const iosCallkeepAcceptCall = (call_cid, callUUIDFromCallkeep) => {
|
|
113
|
+
if (!shouldProcessCallFromCallkeep(call_cid, callUUIDFromCallkeep)) {
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
(0, _utils.clearPushWSEventSubscriptions)();
|
|
117
|
+
// to call end callkeep later if ended in app and not through callkeep
|
|
118
|
+
_rxSubjects.voipCallkeepAcceptedCallOnNativeDialerMap$.next({
|
|
119
|
+
uuid: callUUIDFromCallkeep,
|
|
120
|
+
cid: call_cid
|
|
121
|
+
});
|
|
122
|
+
// to process the call in the app
|
|
123
|
+
_rxSubjects.pushAcceptedIncomingCallCId$.next(call_cid);
|
|
124
|
+
// no need to keep these references anymore
|
|
125
|
+
_rxSubjects.voipCallkeepCallOnForegroundMap$.next(undefined);
|
|
126
|
+
};
|
|
127
|
+
const iosCallkeepRejectCall = async (call_cid, callUUIDFromCallkeep, pushConfig) => {
|
|
128
|
+
if (!shouldProcessCallFromCallkeep(call_cid, callUUIDFromCallkeep)) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
(0, _utils.clearPushWSEventSubscriptions)();
|
|
132
|
+
// no need to keep these references anymore
|
|
133
|
+
_rxSubjects.voipCallkeepAcceptedCallOnNativeDialerMap$.next(undefined);
|
|
134
|
+
_rxSubjects.voipCallkeepCallOnForegroundMap$.next(undefined);
|
|
135
|
+
_rxSubjects.voipPushNotificationCallCId$.next(undefined);
|
|
136
|
+
await (0, _utils.processCallFromPushInBackground)(pushConfig, call_cid, 'decline');
|
|
137
|
+
await _reactNative.NativeModules.StreamVideoReactNative?.removeIncomingCall(call_cid);
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Helper function to determine if the answer/end call event from callkeep must be processed
|
|
142
|
+
* Just checks if we have a valid call_cid and acts as a type guard for call_cid
|
|
143
|
+
*/
|
|
144
|
+
const shouldProcessCallFromCallkeep = (call_cid, callUUIDFromCallkeep) => {
|
|
145
|
+
if (!call_cid || !callUUIDFromCallkeep) {
|
|
146
|
+
return false;
|
|
147
|
+
}
|
|
148
|
+
return true;
|
|
149
|
+
};
|
|
150
|
+
//# sourceMappingURL=setupIosCallKeepEvents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_rxSubjects","require","_videoClient","_libs","_utils","_reactNative","_pushLogoutCallback","setupIosCallKeepEvents","pushConfig","Platform","OS","ios","pushProviderName","logger","getLogger","callkeep","getCallKeepLib","getCallCid","callUUID","call_cid","RxUtils","getCurrentValue","voipPushNotificationCallCId$","NativeModules","StreamVideoReactNative","getIncomingCallCid","next","error","answerCall","then","iosCallkeepAcceptCall","endCall","iosCallkeepRejectCall","didDisplayIncomingCall","payload","voipPushNotification","getVoipPushNotificationLib","AppState","currentState","processCallFromPushInBackground","voipCallkeepCallOnForegroundMap$","uuid","cid","onVoipNotificationCompleted","remove","removeAnswerCall","addEventListener","removeEndCall","removeDisplayIncomingCall","removeDidLoadWithEvents","events","Array","isArray","length","forEach","event","name","data","setPushLogoutCallback","callUUIDFromCallkeep","shouldProcessCallFromCallkeep","clearPushWSEventSubscriptions","voipCallkeepAcceptedCallOnNativeDialerMap$","pushAcceptedIncomingCallCId$","undefined","removeIncomingCall"],"sourceRoot":"../../../../src","sources":["utils/push/setupIosCallKeepEvents.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.setupIosVoipPushEvents = setupIosVoipPushEvents;
|
|
7
|
+
var _libs = require("./libs");
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _ = require("..");
|
|
10
|
+
var _pushLogoutCallback = require("../internal/pushLogoutCallback");
|
|
11
|
+
var _videoClient = require("@stream-io/video-client");
|
|
12
|
+
function setupIosVoipPushEvents(pushConfig) {
|
|
13
|
+
if (_reactNative.Platform.OS !== 'ios' || !pushConfig.ios?.pushProviderName) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
const logger = (0, _videoClient.getLogger)(['setupIosVoipPushEvents']);
|
|
17
|
+
const voipPushNotification = (0, _libs.getVoipPushNotificationLib)();
|
|
18
|
+
logger('debug', 'notification event listener added');
|
|
19
|
+
voipPushNotification.addEventListener('notification', notification => {
|
|
20
|
+
(0, _.onVoipNotificationReceived)(notification);
|
|
21
|
+
});
|
|
22
|
+
(0, _pushLogoutCallback.setPushLogoutCallback)(async () => {
|
|
23
|
+
(0, _videoClient.getLogger)(['setPushLogoutCallback'])('debug', 'notification event listener removed');
|
|
24
|
+
voipPushNotification.removeEventListener('notification');
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=setupIosVoipPushEvents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_libs","require","_reactNative","_","_pushLogoutCallback","_videoClient","setupIosVoipPushEvents","pushConfig","Platform","OS","ios","pushProviderName","logger","getLogger","voipPushNotification","getVoipPushNotificationLib","addEventListener","notification","onVoipNotificationReceived","setPushLogoutCallback","removeEventListener"],"sourceRoot":"../../../../src","sources":["utils/push/setupIosVoipPushEvents.ts"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,CAAA,GAAAF,OAAA;AACA,IAAAG,mBAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA;AAGO,SAASK,sBAAsBA,CACpCC,UAAkD,EAClD;EACA,IAAIC,qBAAQ,CAACC,EAAE,KAAK,KAAK,IAAI,CAACF,UAAU,CAACG,GAAG,EAAEC,gBAAgB,EAAE;IAC9D;EACF;EACA,MAAMC,MAAM,GAAG,IAAAC,sBAAS,EAAC,CAAC,wBAAwB,CAAC,CAAC;EACpD,MAAMC,oBAAoB,GAAG,IAAAC,gCAA0B,EAAC,CAAC;EAEzDH,MAAM,CAAC,OAAO,EAAE,mCAAmC,CAAC;EACpDE,oBAAoB,CAACE,gBAAgB,CAAC,cAAc,EAAGC,YAAY,IAAK;IACtE,IAAAC,4BAA0B,EAACD,YAAY,CAAC;EAC1C,CAAC,CAAC;EACF,IAAAE,yCAAqB,EAAC,YAAY;IAChC,IAAAN,sBAAS,EAAC,CAAC,uBAAuB,CAAC,CAAC,CAClC,OAAO,EACP,qCACF,CAAC;IACDC,oBAAoB,CAACM,mBAAmB,CAAC,cAAc,CAAC;EAC1D,CAAC,CAAC;AACJ","ignoreList":[]}
|
package/dist/commonjs/version.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { useIosCallKeepEventsSetupEffect } from './useIosCallKeepEventsSetupEffect';
|
|
2
1
|
import { useIosVoipPushEventsSetupEffect } from './useIosVoipPushEventsSetupEffect';
|
|
3
2
|
import { useProcessPushCallEffect } from './useProcessPushCallEffect';
|
|
4
3
|
import { useInitAndroidTokenAndRest } from './useInitAndroidTokenAndRest';
|
|
@@ -11,7 +10,6 @@ import { useProcessPushNonRingingCallEffect } from './useProcessPushNonRingingCa
|
|
|
11
10
|
*/
|
|
12
11
|
export const usePushRegisterEffect = () => {
|
|
13
12
|
useIosInitRemoteNotifications();
|
|
14
|
-
useIosCallKeepEventsSetupEffect();
|
|
15
13
|
useIosVoipPushEventsSetupEffect();
|
|
16
14
|
useProcessPushNonRingingCallEffect();
|
|
17
15
|
useProcessPushCallEffect();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["useIosVoipPushEventsSetupEffect","useProcessPushCallEffect","useInitAndroidTokenAndRest","useIosInitRemoteNotifications","useProcessPushNonRingingCallEffect","usePushRegisterEffect"],"sourceRoot":"../../../../src","sources":["hooks/push/index.ts"],"mappings":"AAAA,SAASA,+BAA+B,QAAQ,mCAAmC;AACnF,SAASC,wBAAwB,QAAQ,4BAA4B;AACrE,SAASC,0BAA0B,QAAQ,8BAA8B;AACzE,SAASC,6BAA6B,QAAQ,iCAAiC;AAC/E,SAASC,kCAAkC,QAAQ,sCAAsC;;AAEzF;AACA;AACA;AACA;AACA,OAAO,MAAMC,qBAAqB,GAAGA,CAAA,KAAM;EACzCF,6BAA6B,CAAC,CAAC;EAC/BH,+BAA+B,CAAC,CAAC;EACjCI,kCAAkC,CAAC,CAAC;EACpCH,wBAAwB,CAAC,CAAC;EAC1BC,0BAA0B,CAAC,CAAC;AAC9B,CAAC","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CallingState, getLogger, RxUtils } from '@stream-io/video-client';
|
|
2
2
|
import { useCall, useCallStateHooks } from '@stream-io/video-react-bindings';
|
|
3
|
-
import { Platform } from 'react-native';
|
|
3
|
+
import { NativeModules, Platform } from 'react-native';
|
|
4
4
|
import { useEffect, useState } from 'react';
|
|
5
5
|
import { StreamVideoRN } from '../../utils';
|
|
6
6
|
import { getCallKeepLib } from '../../utils/push/libs';
|
|
@@ -11,14 +11,18 @@ const isNonActiveCallingState = callingState => {
|
|
|
11
11
|
const isAcceptedCallingState = callingState => {
|
|
12
12
|
return callingState === CallingState.JOINING || callingState === CallingState.JOINED;
|
|
13
13
|
};
|
|
14
|
-
const unsubscribeCallkeepEvents = activeCallCid => {
|
|
14
|
+
const unsubscribeCallkeepEvents = async activeCallCid => {
|
|
15
15
|
const voipPushNotificationCallCId = RxUtils.getCurrentValue(voipPushNotificationCallCId$);
|
|
16
16
|
if (activeCallCid && activeCallCid === voipPushNotificationCallCId) {
|
|
17
17
|
// callkeep events should not be listened anymore so clear the call cid
|
|
18
18
|
voipPushNotificationCallCId$.next(undefined);
|
|
19
19
|
}
|
|
20
|
+
return await NativeModules.StreamVideoReactNative?.removeIncomingCall(activeCallCid);
|
|
20
21
|
};
|
|
21
22
|
const logger = getLogger(['useIosCallkeepWithCallingStateEffect']);
|
|
23
|
+
const log = message => {
|
|
24
|
+
logger('warn', message);
|
|
25
|
+
};
|
|
22
26
|
|
|
23
27
|
/**
|
|
24
28
|
* This hook is used to inform the callkeep library that the call has been joined or ended.
|
|
@@ -39,10 +43,8 @@ export const useIosCallkeepWithCallingStateEffect = () => {
|
|
|
39
43
|
const callkeep = getCallKeepLib();
|
|
40
44
|
// if the component is unmounted and the callID was not reported to callkeep, then report it now
|
|
41
45
|
if (acceptedForegroundCallkeepMap) {
|
|
42
|
-
|
|
43
|
-
unsubscribeCallkeepEvents(acceptedForegroundCallkeepMap.cid);
|
|
44
|
-
// this call should be ended in callkeep
|
|
45
|
-
callkeep.endCall(acceptedForegroundCallkeepMap.uuid);
|
|
46
|
+
log(`Ending call in callkeep: ${acceptedForegroundCallkeepMap.cid}, reason: component unmounted and call was present in acceptedForegroundCallkeepMap`);
|
|
47
|
+
unsubscribeCallkeepEvents(acceptedForegroundCallkeepMap.cid).then(() => callkeep.endCall(acceptedForegroundCallkeepMap.uuid));
|
|
46
48
|
}
|
|
47
49
|
};
|
|
48
50
|
}, [acceptedForegroundCallkeepMap]);
|
|
@@ -57,17 +59,13 @@ export const useIosCallkeepWithCallingStateEffect = () => {
|
|
|
57
59
|
const foregroundIncomingCallkeepMap = RxUtils.getCurrentValue(voipCallkeepCallOnForegroundMap$);
|
|
58
60
|
const callkeep = getCallKeepLib();
|
|
59
61
|
if (activeCallCid === nativeDialerAcceptedCallMap?.cid) {
|
|
60
|
-
|
|
61
|
-
unsubscribeCallkeepEvents(activeCallCid);
|
|
62
|
-
callkeep.endCall(nativeDialerAcceptedCallMap.uuid);
|
|
62
|
+
log(`Ending call in callkeep: ${activeCallCid}, reason: activeCallCid changed or was removed and call was present in nativeDialerAcceptedCallMap`);
|
|
63
|
+
unsubscribeCallkeepEvents(activeCallCid).then(() => callkeep.endCall(nativeDialerAcceptedCallMap.uuid));
|
|
63
64
|
// no need to keep this reference anymore
|
|
64
65
|
voipCallkeepAcceptedCallOnNativeDialerMap$.next(undefined);
|
|
65
66
|
} else if (activeCallCid === foregroundIncomingCallkeepMap?.cid) {
|
|
66
|
-
|
|
67
|
-
unsubscribeCallkeepEvents(activeCallCid);
|
|
68
|
-
callkeep.endCall(foregroundIncomingCallkeepMap.uuid);
|
|
69
|
-
// no need to keep this reference anymore
|
|
70
|
-
voipCallkeepCallOnForegroundMap$.next(undefined);
|
|
67
|
+
log(`Ending call in callkeep: ${activeCallCid}, reason: activeCallCid changed or was removed and call was present in foregroundIncomingCallkeepMap`);
|
|
68
|
+
unsubscribeCallkeepEvents(activeCallCid).then(() => callkeep.endCall(foregroundIncomingCallkeepMap.uuid));
|
|
71
69
|
}
|
|
72
70
|
};
|
|
73
71
|
}, [activeCallCid]);
|
|
@@ -85,13 +83,13 @@ export const useIosCallkeepWithCallingStateEffect = () => {
|
|
|
85
83
|
// but the call has been accepted through the app and not through the native dialer
|
|
86
84
|
const foregroundCallkeepMap = RxUtils.getCurrentValue(voipCallkeepCallOnForegroundMap$);
|
|
87
85
|
if (foregroundCallkeepMap && foregroundCallkeepMap.cid === activeCallCid) {
|
|
88
|
-
|
|
86
|
+
log(
|
|
89
87
|
// @ts-ignore
|
|
90
88
|
`Accepting call in callkeep: ${activeCallCid}, reason: callingstate went to ${CallingState[callingState]} and call was present in foregroundCallkeepMap`);
|
|
91
|
-
// this call should be accepted in callkeep
|
|
92
|
-
callkeep.answerIncomingCall(foregroundCallkeepMap.uuid);
|
|
93
89
|
// no need to keep this reference anymore
|
|
94
90
|
voipCallkeepCallOnForegroundMap$.next(undefined);
|
|
91
|
+
NativeModules.StreamVideoReactNative?.removeIncomingCall(activeCallCid).then(() => callkeep.answerIncomingCall(foregroundCallkeepMap.uuid));
|
|
92
|
+
// this call should be accepted in callkeep
|
|
95
93
|
setAcceptedForegroundCallkeepMap(foregroundCallkeepMap);
|
|
96
94
|
}
|
|
97
95
|
}
|
|
@@ -101,16 +99,15 @@ export const useIosCallkeepWithCallingStateEffect = () => {
|
|
|
101
99
|
*/
|
|
102
100
|
if (isNonActiveCallingState(callingState)) {
|
|
103
101
|
const callkeep = getCallKeepLib();
|
|
104
|
-
unsubscribeCallkeepEvents(activeCallCid);
|
|
105
102
|
|
|
106
103
|
// this was a previously joined call which had push notification displayed
|
|
107
104
|
// the call was accepted through the app and not through native dialer
|
|
108
105
|
// the call was left using the leave button in the app and not through native dialer
|
|
109
106
|
if (activeCallCid === acceptedForegroundCallkeepMap?.cid) {
|
|
110
|
-
|
|
107
|
+
log(
|
|
111
108
|
// @ts-ignore
|
|
112
109
|
`Ending call in callkeep: ${activeCallCid}, reason: callingstate went to ${CallingState[callingState]} and call was present in acceptedForegroundCallkeepMap`);
|
|
113
|
-
callkeep.endCall(acceptedForegroundCallkeepMap.uuid);
|
|
110
|
+
unsubscribeCallkeepEvents(activeCallCid).then(() => callkeep.endCall(acceptedForegroundCallkeepMap.uuid));
|
|
114
111
|
setAcceptedForegroundCallkeepMap(undefined);
|
|
115
112
|
return;
|
|
116
113
|
}
|
|
@@ -118,10 +115,10 @@ export const useIosCallkeepWithCallingStateEffect = () => {
|
|
|
118
115
|
// the user rejected in the app and not from native dialer
|
|
119
116
|
const foregroundIncomingCallkeepMap = RxUtils.getCurrentValue(voipCallkeepCallOnForegroundMap$);
|
|
120
117
|
if (activeCallCid === foregroundIncomingCallkeepMap?.cid) {
|
|
121
|
-
|
|
118
|
+
log(
|
|
122
119
|
// @ts-ignore
|
|
123
120
|
`Ending call in callkeep: ${activeCallCid}, reason: callingstate went to ${CallingState[callingState]} and call was present in foregroundIncomingCallkeepMap`);
|
|
124
|
-
callkeep.endCall(foregroundIncomingCallkeepMap.uuid);
|
|
121
|
+
unsubscribeCallkeepEvents(activeCallCid).then(() => callkeep.endCall(foregroundIncomingCallkeepMap.uuid));
|
|
125
122
|
// no need to keep this reference anymore
|
|
126
123
|
voipCallkeepCallOnForegroundMap$.next(undefined);
|
|
127
124
|
return;
|
|
@@ -131,10 +128,10 @@ export const useIosCallkeepWithCallingStateEffect = () => {
|
|
|
131
128
|
// the user left using the leave button in the app
|
|
132
129
|
const nativeDialerAcceptedCallMap = RxUtils.getCurrentValue(voipCallkeepAcceptedCallOnNativeDialerMap$);
|
|
133
130
|
if (activeCallCid === nativeDialerAcceptedCallMap?.cid) {
|
|
134
|
-
|
|
131
|
+
log(
|
|
135
132
|
// @ts-ignore
|
|
136
133
|
`Ending call in callkeep: ${activeCallCid}, reason: callingstate went to ${CallingState[callingState]} and call was present in nativeDialerAcceptedCallMap`);
|
|
137
|
-
callkeep.endCall(nativeDialerAcceptedCallMap.uuid);
|
|
134
|
+
unsubscribeCallkeepEvents(activeCallCid).then(() => callkeep.endCall(nativeDialerAcceptedCallMap.uuid));
|
|
138
135
|
// no need to keep this reference anymore
|
|
139
136
|
voipCallkeepAcceptedCallOnNativeDialerMap$.next(undefined);
|
|
140
137
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CallingState","getLogger","RxUtils","useCall","useCallStateHooks","Platform","useEffect","useState","StreamVideoRN","getCallKeepLib","voipCallkeepAcceptedCallOnNativeDialerMap$","voipCallkeepCallOnForegroundMap$","voipPushNotificationCallCId$","isNonActiveCallingState","callingState","IDLE","UNKNOWN","LEFT","isAcceptedCallingState","JOINING","JOINED","unsubscribeCallkeepEvents","activeCallCid","voipPushNotificationCallCId","getCurrentValue","next","undefined","logger","useIosCallkeepWithCallingStateEffect","activeCall","useCallCallingState","acceptedForegroundCallkeepMap","setAcceptedForegroundCallkeepMap","pushConfig","getConfig","push","OS","callkeep","cid","endCall","uuid","nativeDialerAcceptedCallMap","foregroundIncomingCallkeepMap","foregroundCallkeepMap","answerIncomingCall"],"sourceRoot":"../../../../src","sources":["hooks/push/useIosCallkeepWithCallingStateEffect.ts"],"mappings":"AAAA,SAASA,YAAY,EAAEC,SAAS,EAAEC,OAAO,QAAQ,yBAAyB;AAC1E,SAASC,OAAO,EAAEC,iBAAiB,QAAQ,iCAAiC;AAC5E,SAASC,QAAQ,QAAQ,cAAc;
|
|
1
|
+
{"version":3,"names":["CallingState","getLogger","RxUtils","useCall","useCallStateHooks","NativeModules","Platform","useEffect","useState","StreamVideoRN","getCallKeepLib","voipCallkeepAcceptedCallOnNativeDialerMap$","voipCallkeepCallOnForegroundMap$","voipPushNotificationCallCId$","isNonActiveCallingState","callingState","IDLE","UNKNOWN","LEFT","isAcceptedCallingState","JOINING","JOINED","unsubscribeCallkeepEvents","activeCallCid","voipPushNotificationCallCId","getCurrentValue","next","undefined","StreamVideoReactNative","removeIncomingCall","logger","log","message","useIosCallkeepWithCallingStateEffect","activeCall","useCallCallingState","acceptedForegroundCallkeepMap","setAcceptedForegroundCallkeepMap","pushConfig","getConfig","push","OS","callkeep","cid","then","endCall","uuid","nativeDialerAcceptedCallMap","foregroundIncomingCallkeepMap","foregroundCallkeepMap","answerIncomingCall"],"sourceRoot":"../../../../src","sources":["hooks/push/useIosCallkeepWithCallingStateEffect.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
import { useEffect, useRef, useState } from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { StreamVideoRN } from '../../utils';
|
|
2
|
+
import { getVoipPushNotificationLib } from '../../utils/push/libs';
|
|
3
|
+
import { Platform } from 'react-native';
|
|
4
|
+
import { onVoipNotificationReceived, StreamVideoRN } from '../../utils';
|
|
5
5
|
import { useConnectedUser, useStreamVideoClient } from '@stream-io/video-react-bindings';
|
|
6
6
|
import { setPushLogoutCallback } from '../../utils/internal/pushLogoutCallback';
|
|
7
|
-
import {
|
|
8
|
-
import { canAddPushWSSubscriptionsRef, shouldCallBeEnded } from '../../utils/push/internal/utils';
|
|
9
|
-
import { pushUnsubscriptionCallbacks$, voipPushNotificationCallCId$ } from '../../utils/push/internal/rxSubjects';
|
|
10
|
-
import { RxUtils, getLogger } from '@stream-io/video-client';
|
|
7
|
+
import { getLogger } from '@stream-io/video-client';
|
|
11
8
|
const logger = getLogger(['useIosVoipPushEventsSetupEffect']);
|
|
12
9
|
|
|
13
10
|
/* VoipPushNotificationLib has support for only one listener type at a time
|
|
@@ -43,6 +40,8 @@ export const useIosVoipPushEventsSetupEffect = () => {
|
|
|
43
40
|
userId: ''
|
|
44
41
|
});
|
|
45
42
|
const [unsentToken, setUnsentToken] = useState();
|
|
43
|
+
|
|
44
|
+
// this effect is used to send the unsent token to stream
|
|
46
45
|
useEffect(() => {
|
|
47
46
|
const pushConfig = StreamVideoRN.getConfig().push;
|
|
48
47
|
// we need to wait for user to be connected before we can send the push token
|
|
@@ -64,7 +63,8 @@ export const useIosVoipPushEventsSetupEffect = () => {
|
|
|
64
63
|
}, [client, connectedUserId, unsentToken]);
|
|
65
64
|
useEffect(() => {
|
|
66
65
|
const pushConfig = StreamVideoRN.getConfig().push;
|
|
67
|
-
|
|
66
|
+
const pushProviderName = pushConfig?.ios.pushProviderName;
|
|
67
|
+
if (Platform.OS !== 'ios' || !pushConfig || !client || !pushProviderName) {
|
|
68
68
|
return;
|
|
69
69
|
}
|
|
70
70
|
const voipPushNotification = getVoipPushNotificationLib();
|
|
@@ -85,12 +85,8 @@ export const useIosVoipPushEventsSetupEffect = () => {
|
|
|
85
85
|
logger('debug', `Skipped sending voip token to stream as it is same as last token - token: ${token}, userId: ${userId}`);
|
|
86
86
|
return;
|
|
87
87
|
}
|
|
88
|
-
const push_provider_name = pushConfig.ios.pushProviderName;
|
|
89
|
-
if (!push_provider_name) {
|
|
90
|
-
return;
|
|
91
|
-
}
|
|
92
88
|
logger('debug', `Sending voip token to stream, token: ${token} userId: ${userId}`);
|
|
93
|
-
client.addVoipDevice(token, 'apn',
|
|
89
|
+
client.addVoipDevice(token, 'apn', pushProviderName).then(() => {
|
|
94
90
|
logger('debug', `Sent voip token to stream, token: ${token} userId: ${userId}`);
|
|
95
91
|
setLogoutCallback(client, token, lastVoipTokenRef);
|
|
96
92
|
lastVoipTokenRef.current = {
|
|
@@ -106,9 +102,6 @@ export const useIosVoipPushEventsSetupEffect = () => {
|
|
|
106
102
|
voipPushNotification.addEventListener('register', token => {
|
|
107
103
|
onTokenReceived(token);
|
|
108
104
|
});
|
|
109
|
-
voipPushNotification.addEventListener('notification', notification => {
|
|
110
|
-
onNotificationReceived(notification);
|
|
111
|
-
});
|
|
112
105
|
|
|
113
106
|
// this will fire when there are events occured before js bridge initialized
|
|
114
107
|
voipPushNotification.addEventListener('didLoadWithEvents', events => {
|
|
@@ -123,7 +116,7 @@ export const useIosVoipPushEventsSetupEffect = () => {
|
|
|
123
116
|
if (name === 'RNVoipPushRemoteNotificationsRegisteredEvent') {
|
|
124
117
|
onTokenReceived(data);
|
|
125
118
|
} else if (name === 'RNVoipPushRemoteNotificationReceivedEvent') {
|
|
126
|
-
|
|
119
|
+
onVoipNotificationReceived(data);
|
|
127
120
|
}
|
|
128
121
|
}
|
|
129
122
|
});
|
|
@@ -138,98 +131,7 @@ export const useIosVoipPushEventsSetupEffect = () => {
|
|
|
138
131
|
logger('debug', 'Voip event listeners are removed for user: ' + userId);
|
|
139
132
|
voipPushNotification.removeEventListener('didLoadWithEvents');
|
|
140
133
|
voipPushNotification.removeEventListener('register');
|
|
141
|
-
voipPushNotification.removeEventListener('notification');
|
|
142
134
|
};
|
|
143
135
|
}, [client]);
|
|
144
136
|
};
|
|
145
|
-
const onNotificationReceived = async notification => {
|
|
146
|
-
/* --- Example payload ---
|
|
147
|
-
{
|
|
148
|
-
"aps": {
|
|
149
|
-
"alert": {
|
|
150
|
-
"body": "",
|
|
151
|
-
"title": "Vishal Narkhede is calling you"
|
|
152
|
-
},
|
|
153
|
-
"badge": 0,
|
|
154
|
-
"category": "stream.video",
|
|
155
|
-
"mutable-content": 1
|
|
156
|
-
},
|
|
157
|
-
"stream": {
|
|
158
|
-
"call_cid": "default:ixbm7y0k74pbjnq",
|
|
159
|
-
"call_display_name": "",
|
|
160
|
-
"created_by_display_name": "Vishal Narkhede",
|
|
161
|
-
"created_by_id": "vishalexpo",
|
|
162
|
-
"receiver_id": "santhoshexpo",
|
|
163
|
-
"sender": "stream.video",
|
|
164
|
-
"type": "call.ring",
|
|
165
|
-
"version": "v2"
|
|
166
|
-
}
|
|
167
|
-
} */
|
|
168
|
-
const sender = notification?.stream?.sender;
|
|
169
|
-
const type = notification?.stream?.type;
|
|
170
|
-
// do not process any other notifications other than stream.video or ringing
|
|
171
|
-
if (sender !== 'stream.video' && type !== 'call.ring') {
|
|
172
|
-
return;
|
|
173
|
-
}
|
|
174
|
-
const call_cid = notification?.stream?.call_cid;
|
|
175
|
-
const pushConfig = StreamVideoRN.getConfig().push;
|
|
176
|
-
if (!call_cid || Platform.OS !== 'ios' || !pushConfig) {
|
|
177
|
-
return;
|
|
178
|
-
}
|
|
179
|
-
const client = await pushConfig.createStreamVideoClient();
|
|
180
|
-
if (!client) {
|
|
181
|
-
return;
|
|
182
|
-
}
|
|
183
|
-
const callFromPush = await client.onRingingCall(call_cid);
|
|
184
|
-
let uuid = '';
|
|
185
|
-
try {
|
|
186
|
-
uuid = await NativeModules?.StreamVideoReactNative?.getIncomingCallUUid(call_cid);
|
|
187
|
-
} catch (error) {
|
|
188
|
-
logger('error', 'Error in getting call uuid from native module', error);
|
|
189
|
-
}
|
|
190
|
-
if (!uuid) {
|
|
191
|
-
logger('error', `Not processing call.ring push notification, as no uuid found for call_cid: ${call_cid}`);
|
|
192
|
-
return;
|
|
193
|
-
}
|
|
194
|
-
const created_by_id = notification?.stream?.created_by_id;
|
|
195
|
-
const receiver_id = notification?.stream?.receiver_id;
|
|
196
|
-
function closeCallIfNecessary() {
|
|
197
|
-
const {
|
|
198
|
-
mustEndCall,
|
|
199
|
-
callkeepReason
|
|
200
|
-
} = shouldCallBeEnded(callFromPush, created_by_id, receiver_id);
|
|
201
|
-
if (mustEndCall) {
|
|
202
|
-
const callkeep = getCallKeepLib();
|
|
203
|
-
logger('debug', `callkeep.reportEndCallWithUUID for uuid: ${uuid}, call_cid: ${call_cid}, reason: ${callkeepReason}`);
|
|
204
|
-
callkeep.reportEndCallWithUUID(uuid, callkeepReason);
|
|
205
|
-
const voipPushNotification = getVoipPushNotificationLib();
|
|
206
|
-
voipPushNotification.onVoipNotificationCompleted(uuid);
|
|
207
|
-
return true;
|
|
208
|
-
}
|
|
209
|
-
return false;
|
|
210
|
-
}
|
|
211
|
-
const closed = closeCallIfNecessary();
|
|
212
|
-
const canListenToWS = () => canAddPushWSSubscriptionsRef.current && AppState.currentState !== 'active';
|
|
213
|
-
if (!closed && canListenToWS()) {
|
|
214
|
-
const unsubscribe = callFromPush.on('all', event => {
|
|
215
|
-
const _canListenToWS = canListenToWS();
|
|
216
|
-
if (!_canListenToWS) {
|
|
217
|
-
logger('debug', `unsubscribe due to event callCid: ${call_cid} canListenToWS: ${_canListenToWS}`, event);
|
|
218
|
-
unsubscribe();
|
|
219
|
-
return;
|
|
220
|
-
}
|
|
221
|
-
const _closed = closeCallIfNecessary();
|
|
222
|
-
if (_closed) {
|
|
223
|
-
logger('debug', `unsubscribe due to event callCid: ${call_cid} canListenToWS: ${_canListenToWS} shouldCallBeClosed: ${_closed}`, event);
|
|
224
|
-
unsubscribe();
|
|
225
|
-
}
|
|
226
|
-
});
|
|
227
|
-
const unsubscriptionCallbacks = RxUtils.getCurrentValue(pushUnsubscriptionCallbacks$) ?? [];
|
|
228
|
-
pushUnsubscriptionCallbacks$.next([...unsubscriptionCallbacks, unsubscribe]);
|
|
229
|
-
}
|
|
230
|
-
// send the info to this subject, it is listened by callkeep events
|
|
231
|
-
// callkeep events will then accept/reject the call
|
|
232
|
-
logger('debug', `call_cid:${call_cid} uuid:${uuid} received and processed from call.ring push notification`);
|
|
233
|
-
voipPushNotificationCallCId$.next(call_cid);
|
|
234
|
-
};
|
|
235
137
|
//# sourceMappingURL=useIosVoipPushEventsSetupEffect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useRef","useState","
|
|
1
|
+
{"version":3,"names":["useEffect","useRef","useState","getVoipPushNotificationLib","Platform","onVoipNotificationReceived","StreamVideoRN","useConnectedUser","useStreamVideoClient","setPushLogoutCallback","getLogger","logger","lastListener","count","setLogoutCallback","client","token","lastVoipTokenRef","current","userId","removeDevice","err","useIosVoipPushEventsSetupEffect","connectedUserId","id","unsentToken","setUnsentToken","pushConfig","getConfig","push","ios","pushProviderName","addVoipDevice","then","undefined","catch","error","OS","voipPushNotification","registerVoipToken","onTokenReceived","streamClient","_user","lastVoipToken","addEventListener","events","Array","isArray","length","voipPushEvent","name","data","currentListenerCount","removeEventListener"],"sourceRoot":"../../../../src","sources":["hooks/push/useIosVoipPushEventsSetupEffect.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import pushLogoutCallbacks from '../internal/pushLogoutCallback';
|
|
2
2
|
import newNotificationCallbacks from '../internal/newNotificationCallbacks';
|
|
3
|
+
import { setupIosCallKeepEvents } from '../push/setupIosCallKeepEvents';
|
|
4
|
+
import { setupIosVoipPushEvents } from '../push/setupIosVoipPushEvents';
|
|
3
5
|
const DEFAULT_STREAM_VIDEO_CONFIG = {
|
|
4
6
|
foregroundService: {
|
|
5
7
|
android: {
|
|
@@ -67,6 +69,8 @@ export class StreamVideoRN {
|
|
|
67
69
|
Please see https://getstream.io/video/docs/react-native/advanced/ringing-calls/#watch-for-incoming-and-outgoing-calls for more information.`);
|
|
68
70
|
}
|
|
69
71
|
this.config.push = pushConfig;
|
|
72
|
+
setupIosCallKeepEvents(pushConfig);
|
|
73
|
+
setupIosVoipPushEvents(pushConfig);
|
|
70
74
|
}
|
|
71
75
|
static getConfig() {
|
|
72
76
|
return this.config;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["pushLogoutCallbacks","newNotificationCallbacks","DEFAULT_STREAM_VIDEO_CONFIG","foregroundService","android","channel","id","name","lights","vibration","importance","notificationTexts","title","body","StreamVideoRN","config","updateConfig","updateAndroidIncomingCallChannel","updateChannel","prevChannel","push","incomingCallChannel","setPushConfig","pushConfig","__DEV__","navigateAcceptCall","navigateToIncomingCall","Error","getConfig","onPushLogout","current","Promise","all","map","callback","then","resolve","clearPushLogoutCallbacks","addOnNewCallNotificationListener","filter","cb"],"sourceRoot":"../../../../src","sources":["utils/StreamVideoRN/index.ts"],"mappings":"AACA,OAAOA,mBAAmB,MAAM,gCAAgC;AAChE,OAAOC,wBAAwB,MAExB,sCAAsC;
|
|
1
|
+
{"version":3,"names":["pushLogoutCallbacks","newNotificationCallbacks","setupIosCallKeepEvents","setupIosVoipPushEvents","DEFAULT_STREAM_VIDEO_CONFIG","foregroundService","android","channel","id","name","lights","vibration","importance","notificationTexts","title","body","StreamVideoRN","config","updateConfig","updateAndroidIncomingCallChannel","updateChannel","prevChannel","push","incomingCallChannel","setPushConfig","pushConfig","__DEV__","navigateAcceptCall","navigateToIncomingCall","Error","getConfig","onPushLogout","current","Promise","all","map","callback","then","resolve","clearPushLogoutCallbacks","addOnNewCallNotificationListener","filter","cb"],"sourceRoot":"../../../../src","sources":["utils/StreamVideoRN/index.ts"],"mappings":"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","ignoreList":[]}
|