@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
|
@@ -9,56 +9,91 @@ var _react = require("react");
|
|
|
9
9
|
var _utils = require("../utils");
|
|
10
10
|
var _reactNative = require("react-native");
|
|
11
11
|
var _videoClient = require("@stream-io/video-client");
|
|
12
|
-
var _keepCallAliveHeadlessTask = require("../utils/keepCallAliveHeadlessTask");
|
|
13
12
|
var _notifee = require("../utils/push/libs/notifee");
|
|
14
|
-
var _libs = require("../utils/push/libs");
|
|
15
13
|
const notifeeLib = (0, _notifee.getNotifeeLibNoThrowForKeepCallAlive)();
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
14
|
+
const callToPassToForegroundService = {
|
|
15
|
+
current: undefined
|
|
16
|
+
};
|
|
17
|
+
function setForegroundService() {
|
|
18
|
+
if (_reactNative.Platform.OS === 'ios' || !notifeeLib) return;
|
|
19
|
+
_reactNative.NativeModules.StreamVideoReactNative.isCallAliveConfigured().then(isConfigured => {
|
|
20
|
+
if (!isConfigured) {
|
|
21
|
+
const logger = _videoClient.videoLoggerSystem.getLogger('setForegroundService method');
|
|
22
|
+
logger.info('KeepCallAlive is not configured. Skipping foreground service setup.');
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
notifeeLib.default.registerForegroundService(() => {
|
|
26
|
+
const task = new Promise(resolve => {
|
|
27
|
+
const logger = _videoClient.videoLoggerSystem.getLogger('setForegroundService method');
|
|
28
|
+
logger.info('Foreground service running for call in progress');
|
|
29
|
+
// any task to run from SDK in the foreground service must be added
|
|
30
|
+
resolve(true);
|
|
31
|
+
});
|
|
32
|
+
const videoConfig = _utils.StreamVideoRN.getConfig();
|
|
33
|
+
const foregroundServiceConfig = videoConfig.foregroundService;
|
|
34
|
+
const {
|
|
35
|
+
taskToRun
|
|
36
|
+
} = foregroundServiceConfig.android;
|
|
37
|
+
const call = callToPassToForegroundService.current;
|
|
38
|
+
if (!call) {
|
|
39
|
+
const logger = _videoClient.videoLoggerSystem.getLogger('setForegroundService method');
|
|
40
|
+
logger.warn('No call to pass to foreground service');
|
|
41
|
+
return task.then(() => new Promise(() => {}));
|
|
42
|
+
}
|
|
43
|
+
callToPassToForegroundService.current = undefined;
|
|
44
|
+
return task.then(() => taskToRun(call));
|
|
45
|
+
});
|
|
46
|
+
});
|
|
23
47
|
}
|
|
24
48
|
async function startForegroundService(call_cid) {
|
|
25
|
-
const
|
|
26
|
-
const isCallAliveConfigured = await (async () => {
|
|
27
|
-
try {
|
|
28
|
-
return await _reactNative.NativeModules.StreamVideoReactNative.isCallAliveConfigured();
|
|
29
|
-
} catch (e) {
|
|
30
|
-
logger.warn('Failed to check whether KeepCallAlive is configured', e);
|
|
31
|
-
return false;
|
|
32
|
-
}
|
|
33
|
-
})();
|
|
49
|
+
const isCallAliveConfigured = await _reactNative.NativeModules.StreamVideoReactNative.isCallAliveConfigured();
|
|
34
50
|
if (!isCallAliveConfigured) {
|
|
51
|
+
const logger = _videoClient.videoLoggerSystem.getLogger('startForegroundService');
|
|
35
52
|
logger.info('KeepCallAlive is not configured. Skipping foreground service setup.');
|
|
36
53
|
return;
|
|
37
54
|
}
|
|
38
|
-
//
|
|
39
|
-
|
|
40
|
-
|
|
55
|
+
// check for notification permission and then start the foreground service
|
|
56
|
+
if (!notifeeLib) return;
|
|
57
|
+
const settings = await notifeeLib.default.getNotificationSettings();
|
|
58
|
+
if (settings.authorizationStatus !== notifeeLib.AuthorizationStatus.AUTHORIZED) {
|
|
59
|
+
const logger = _videoClient.videoLoggerSystem.getLogger('startForegroundService');
|
|
41
60
|
logger.info('Notification permission not granted, can not start foreground service to keep the call alive');
|
|
42
61
|
return;
|
|
43
62
|
}
|
|
44
63
|
const videoConfig = _utils.StreamVideoRN.getConfig();
|
|
45
64
|
const foregroundServiceConfig = videoConfig.foregroundService;
|
|
46
65
|
const notificationTexts = foregroundServiceConfig.android.notificationTexts;
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
|
|
66
|
+
const channelId = foregroundServiceConfig.android.channel.id;
|
|
67
|
+
await notifeeLib.default.createChannel(foregroundServiceConfig.android.channel);
|
|
68
|
+
const foregroundServiceTypes = await (0, _notifee.getKeepCallAliveForegroundServiceTypes)();
|
|
50
69
|
// NOTE: we use requestAnimationFrame to ensure that the foreground service is started after all the current UI operations are done
|
|
51
70
|
// this is a workaround for the crash - android.app.RemoteServiceException$ForegroundServiceDidNotStartInTimeException: Context.startForegroundService() did not then call Service.startForeground()
|
|
52
71
|
// this crash was reproducible only in some android devices
|
|
53
|
-
requestAnimationFrame(
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
72
|
+
requestAnimationFrame(() => {
|
|
73
|
+
notifeeLib.default.displayNotification({
|
|
74
|
+
id: call_cid,
|
|
75
|
+
title: notificationTexts.title,
|
|
76
|
+
body: notificationTexts.body,
|
|
77
|
+
android: {
|
|
78
|
+
channelId,
|
|
79
|
+
smallIcon: videoConfig.push?.android.smallIcon,
|
|
80
|
+
foregroundServiceTypes,
|
|
81
|
+
asForegroundService: true,
|
|
82
|
+
ongoing: true,
|
|
83
|
+
// user cannot dismiss the notification
|
|
84
|
+
colorized: true,
|
|
85
|
+
pressAction: {
|
|
86
|
+
id: 'default',
|
|
87
|
+
launchActivity: 'default' // open the app when the notification is pressed
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
});
|
|
59
91
|
});
|
|
60
92
|
}
|
|
61
93
|
|
|
94
|
+
// flag to check if setForegroundService has already been run once
|
|
95
|
+
let isSetForegroundServiceRan = false;
|
|
96
|
+
|
|
62
97
|
/**
|
|
63
98
|
* This hook is used to keep the call alive in the background for Android.
|
|
64
99
|
* It starts a foreground service to keep the call alive as soon as the call is joined
|
|
@@ -68,7 +103,7 @@ async function startForegroundService(call_cid) {
|
|
|
68
103
|
const useAndroidKeepCallAliveEffect = () => {
|
|
69
104
|
const foregroundServiceStartedRef = (0, _react.useRef)(false);
|
|
70
105
|
const call = (0, _videoReactBindings.useCall)();
|
|
71
|
-
|
|
106
|
+
callToPassToForegroundService.current = call;
|
|
72
107
|
const activeCallCid = call?.cid;
|
|
73
108
|
const {
|
|
74
109
|
useCallCallingState
|
|
@@ -76,16 +111,12 @@ const useAndroidKeepCallAliveEffect = () => {
|
|
|
76
111
|
const callingState = useCallCallingState();
|
|
77
112
|
const isOutgoingCall = callingState === _videoClient.CallingState.RINGING && call?.isCreatedByMe;
|
|
78
113
|
const isCallJoined = callingState === _videoClient.CallingState.JOINED;
|
|
79
|
-
const isRingingCall = call?.ringing;
|
|
80
114
|
const shouldStartForegroundService = !foregroundServiceStartedRef.current && (isOutgoingCall || isCallJoined);
|
|
81
115
|
(0, _react.useEffect)(() => {
|
|
82
116
|
if (_reactNative.Platform.OS === 'ios' || !activeCallCid) {
|
|
83
117
|
return undefined;
|
|
84
118
|
}
|
|
85
|
-
|
|
86
|
-
if (callingx?.isSetup && (isRingingCall || !isRingingCall && callingx?.isOngoingCallsEnabled)) {
|
|
87
|
-
return undefined;
|
|
88
|
-
}
|
|
119
|
+
if (!notifeeLib) return undefined;
|
|
89
120
|
|
|
90
121
|
// start foreground service as soon as the call is joined
|
|
91
122
|
if (shouldStartForegroundService) {
|
|
@@ -93,18 +124,21 @@ const useAndroidKeepCallAliveEffect = () => {
|
|
|
93
124
|
if (foregroundServiceStartedRef.current) {
|
|
94
125
|
return;
|
|
95
126
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
127
|
+
if (!isSetForegroundServiceRan) {
|
|
128
|
+
isSetForegroundServiceRan = true;
|
|
129
|
+
setForegroundService();
|
|
130
|
+
}
|
|
131
|
+
const notifee = notifeeLib.default;
|
|
132
|
+
const displayedNotifications = await notifee.getDisplayedNotifications();
|
|
133
|
+
const activeCallNotification = displayedNotifications.find(notification => notification.id === activeCallCid);
|
|
134
|
+
if (activeCallNotification) {
|
|
135
|
+
callToPassToForegroundService.current = undefined;
|
|
136
|
+
// this means that we have a incoming call notification shown as foreground service and we must stop it
|
|
137
|
+
notifee.stopForegroundService();
|
|
138
|
+
notifee.cancelDisplayedNotification(activeCallCid);
|
|
107
139
|
}
|
|
140
|
+
// check for notification permission and then start the foreground service
|
|
141
|
+
|
|
108
142
|
await startForegroundService(activeCallCid);
|
|
109
143
|
foregroundServiceStartedRef.current = true;
|
|
110
144
|
};
|
|
@@ -112,6 +146,7 @@ const useAndroidKeepCallAliveEffect = () => {
|
|
|
112
146
|
// ensure that app is active before running the function
|
|
113
147
|
if (_reactNative.AppState.currentState === 'active') {
|
|
114
148
|
run();
|
|
149
|
+
return undefined;
|
|
115
150
|
}
|
|
116
151
|
const sub = _reactNative.AppState.addEventListener('change', nextAppState => {
|
|
117
152
|
if (nextAppState === 'active') {
|
|
@@ -126,36 +161,34 @@ const useAndroidKeepCallAliveEffect = () => {
|
|
|
126
161
|
return () => {
|
|
127
162
|
// cancel any notifee displayed notification when the call has transitioned out of ringing
|
|
128
163
|
// NOTE: cancels only the non fg service notifications
|
|
129
|
-
|
|
130
|
-
notifeeLib.default.cancelDisplayedNotification(activeCallCid);
|
|
131
|
-
}
|
|
164
|
+
notifeeLib.default.cancelDisplayedNotification(activeCallCid);
|
|
132
165
|
};
|
|
133
166
|
} else if (callingState === _videoClient.CallingState.IDLE || callingState === _videoClient.CallingState.LEFT) {
|
|
134
167
|
if (foregroundServiceStartedRef.current) {
|
|
135
|
-
|
|
168
|
+
callToPassToForegroundService.current = undefined;
|
|
136
169
|
// stop foreground service when the call is not active
|
|
137
|
-
|
|
170
|
+
notifeeLib.default.stopForegroundService();
|
|
138
171
|
foregroundServiceStartedRef.current = false;
|
|
139
172
|
} else {
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
}
|
|
173
|
+
notifeeLib.default.getDisplayedNotifications().then(displayedNotifications => {
|
|
174
|
+
const activeCallNotification = displayedNotifications.find(notification => notification.id === activeCallCid);
|
|
175
|
+
if (activeCallNotification) {
|
|
176
|
+
callToPassToForegroundService.current = undefined;
|
|
177
|
+
// this means that we have a incoming call notification shown as foreground service and we must stop it
|
|
178
|
+
notifeeLib.default.stopForegroundService();
|
|
179
|
+
}
|
|
180
|
+
});
|
|
149
181
|
}
|
|
150
182
|
}
|
|
151
183
|
return undefined;
|
|
152
|
-
}, [activeCallCid, callingState, shouldStartForegroundService
|
|
184
|
+
}, [activeCallCid, callingState, shouldStartForegroundService]);
|
|
153
185
|
(0, _react.useEffect)(() => {
|
|
154
186
|
return () => {
|
|
155
187
|
// stop foreground service when this effect is unmounted
|
|
156
188
|
if (foregroundServiceStartedRef.current) {
|
|
157
|
-
|
|
158
|
-
|
|
189
|
+
if (!notifeeLib) return;
|
|
190
|
+
callToPassToForegroundService.current = undefined;
|
|
191
|
+
notifeeLib.default.stopForegroundService();
|
|
159
192
|
foregroundServiceStartedRef.current = false;
|
|
160
193
|
}
|
|
161
194
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_videoReactBindings","require","_react","_utils","_reactNative","_videoClient","
|
|
1
|
+
{"version":3,"names":["_videoReactBindings","require","_react","_utils","_reactNative","_videoClient","_notifee","notifeeLib","getNotifeeLibNoThrowForKeepCallAlive","callToPassToForegroundService","current","undefined","setForegroundService","Platform","OS","NativeModules","StreamVideoReactNative","isCallAliveConfigured","then","isConfigured","logger","videoLoggerSystem","getLogger","info","default","registerForegroundService","task","Promise","resolve","videoConfig","StreamVideoRN","getConfig","foregroundServiceConfig","foregroundService","taskToRun","android","call","warn","startForegroundService","call_cid","settings","getNotificationSettings","authorizationStatus","AuthorizationStatus","AUTHORIZED","notificationTexts","channelId","channel","id","createChannel","foregroundServiceTypes","getKeepCallAliveForegroundServiceTypes","requestAnimationFrame","displayNotification","title","body","smallIcon","push","asForegroundService","ongoing","colorized","pressAction","launchActivity","isSetForegroundServiceRan","useAndroidKeepCallAliveEffect","foregroundServiceStartedRef","useRef","useCall","activeCallCid","cid","useCallCallingState","useCallStateHooks","callingState","isOutgoingCall","CallingState","RINGING","isCreatedByMe","isCallJoined","JOINED","shouldStartForegroundService","useEffect","run","notifee","displayedNotifications","getDisplayedNotifications","activeCallNotification","find","notification","stopForegroundService","cancelDisplayedNotification","AppState","currentState","sub","addEventListener","nextAppState","remove","IDLE","LEFT","exports"],"sourceRoot":"../../../src","sources":["hooks/useAndroidKeepCallAliveEffect.ts"],"mappings":"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","ignoreList":[]}
|
package/dist/commonjs/index.js
CHANGED
|
@@ -27,7 +27,6 @@ var _reactNativeWebrtc = require("@stream-io/react-native-webrtc");
|
|
|
27
27
|
var _Logger = _interopRequireDefault(require("@stream-io/react-native-webrtc/src/Logger"));
|
|
28
28
|
var _reactNative = require("react-native");
|
|
29
29
|
var _registerSDKGlobals = require("./utils/internal/registerSDKGlobals");
|
|
30
|
-
require("./utils/keepCallAliveHeadlessTask");
|
|
31
30
|
var _videoClient = require("@stream-io/video-client");
|
|
32
31
|
Object.keys(_videoClient).forEach(function (key) {
|
|
33
32
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_setClientDetails","require","_reactNativeWebrtc","_Logger","_interopRequireDefault","_reactNative","_registerSDKGlobals","_videoClient","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_videoReactBindings","_components","_contexts","_hooks","_theme","_utils","_translations","_callManager","_StreamVideo","_StreamCall","_NoiseCancellation","e","__esModule","default","Platform","OS","registerGlobals","registerSDKGlobals","Logger","enable","ROOT_PREFIX","setClientDetails"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAEAA,OAAA;AAEAA,OAAA;AAEAA,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA;AACA,IAAAK,mBAAA,GAAAL,OAAA;
|
|
1
|
+
{"version":3,"names":["_setClientDetails","require","_reactNativeWebrtc","_Logger","_interopRequireDefault","_reactNative","_registerSDKGlobals","_videoClient","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_videoReactBindings","_components","_contexts","_hooks","_theme","_utils","_translations","_callManager","_StreamVideo","_StreamCall","_NoiseCancellation","e","__esModule","default","Platform","OS","registerGlobals","registerSDKGlobals","Logger","enable","ROOT_PREFIX","setClientDetails"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,10 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.CallManager = void 0;
|
|
7
7
|
var _reactNative = require("react-native");
|
|
8
|
-
var _callingx = require("../../utils/push/libs/callingx");
|
|
9
|
-
var _videoClient = require("@stream-io/video-client");
|
|
10
8
|
const NativeManager = _reactNative.NativeModules.StreamInCallManager;
|
|
11
|
-
const CallingxModule = (0, _callingx.getCallingxLibIfAvailable)();
|
|
12
9
|
const invariant = (condition, message) => {
|
|
13
10
|
if (!condition) throw new Error(message);
|
|
14
11
|
};
|
|
@@ -70,15 +67,6 @@ class SpeakerManager {
|
|
|
70
67
|
NativeManager.setForceSpeakerphoneOn(force);
|
|
71
68
|
};
|
|
72
69
|
}
|
|
73
|
-
const shouldBypassForCallKit = () => {
|
|
74
|
-
if (_reactNative.Platform.OS !== 'ios') {
|
|
75
|
-
return false;
|
|
76
|
-
}
|
|
77
|
-
if (!CallingxModule) {
|
|
78
|
-
return false;
|
|
79
|
-
}
|
|
80
|
-
return CallingxModule.isSetup && (CallingxModule.hasRegisteredCall() || CallingxModule.isOngoingCallsEnabled);
|
|
81
|
-
};
|
|
82
70
|
class CallManager {
|
|
83
71
|
android = new AndroidCallManager();
|
|
84
72
|
ios = new IOSCallManager();
|
|
@@ -102,10 +90,6 @@ class CallManager {
|
|
|
102
90
|
* @param config.enableStereoAudioOutput Whether to enable stereo audio output. Only supported for listener audio role.
|
|
103
91
|
*/
|
|
104
92
|
start = config => {
|
|
105
|
-
if (shouldBypassForCallKit()) {
|
|
106
|
-
_videoClient.videoLoggerSystem.getLogger('CallManager').debug('start: skipping start as callkit is handling the audio session');
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
109
93
|
NativeManager.setAudioRole(config?.audioRole ?? 'communicator');
|
|
110
94
|
if (config?.audioRole === 'communicator') {
|
|
111
95
|
const type = config.deviceEndpointType ?? 'speaker';
|
|
@@ -121,10 +105,6 @@ class CallManager {
|
|
|
121
105
|
* Stops the in call manager.
|
|
122
106
|
*/
|
|
123
107
|
stop = () => {
|
|
124
|
-
if (shouldBypassForCallKit()) {
|
|
125
|
-
_videoClient.videoLoggerSystem.getLogger('CallManager').debug('stop: skipping stop as callkit is handling the audio session');
|
|
126
|
-
return;
|
|
127
|
-
}
|
|
128
108
|
NativeManager.stop();
|
|
129
109
|
};
|
|
130
110
|
|
|
@@ -133,12 +113,6 @@ class CallManager {
|
|
|
133
113
|
* in the native layer.
|
|
134
114
|
*/
|
|
135
115
|
logAudioState = () => NativeManager.logAudioState();
|
|
136
|
-
|
|
137
|
-
/**
|
|
138
|
-
* For debugging purposes, returns the current audio state as a string.
|
|
139
|
-
* @returns A string containing the current audio state information.
|
|
140
|
-
*/
|
|
141
|
-
getAudioStateLog = () => NativeManager.getAudioStateLog();
|
|
142
116
|
}
|
|
143
117
|
exports.CallManager = CallManager;
|
|
144
118
|
//# sourceMappingURL=CallManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","NativeManager","NativeModules","StreamInCallManager","invariant","condition","message","Error","AndroidCallManager","getAudioDeviceStatus","Platform","OS","selectAudioDevice","endpointName","chooseAudioDeviceEndpoint","addAudioDeviceChangeListener","onChange","eventEmitter","NativeEventEmitter","s","addListener","remove","IOSCallManager","showDeviceSelector","showAudioRoutePicker","SpeakerManager","setMute","mute","muteAudioOutput","unmuteAudioOutput","setForceSpeakerphoneOn","force","CallManager","android","ios","speaker","start","config","setAudioRole","audioRole","type","deviceEndpointType","setDefaultAudioDeviceEndpointType","enableStereoAudioOutput","setEnableStereoAudioOutput","stop","logAudioState","exports"],"sourceRoot":"../../../../src","sources":["modules/call-manager/CallManager.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,12 +6,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.StreamCall = void 0;
|
|
7
7
|
var _videoReactBindings = require("@stream-io/video-react-bindings");
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _useIosCallkeepWithCallingStateEffect = require("../../hooks/push/useIosCallkeepWithCallingStateEffect");
|
|
9
10
|
var _utils = require("../../utils/push/internal/utils");
|
|
10
11
|
var _useAndroidKeepCallAliveEffect = require("../../hooks/useAndroidKeepCallAliveEffect");
|
|
11
12
|
var _AppStateListener = require("./AppStateListener");
|
|
12
13
|
var _DeviceStats = require("./DeviceStats");
|
|
13
14
|
var _constants = require("../../utils/push/internal/constants");
|
|
14
|
-
var _useCallingExpWithCallingStateEffect = require("../../hooks/push/useCallingExpWithCallingStateEffect");
|
|
15
15
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
16
16
|
// const PIP_CHANGE_EVENT = 'StreamVideoReactNative_PIP_CHANGE_EVENT';
|
|
17
17
|
|
|
@@ -30,7 +30,7 @@ const StreamCall = ({
|
|
|
30
30
|
}) => {
|
|
31
31
|
return /*#__PURE__*/_react.default.createElement(_videoReactBindings.StreamCallProvider, {
|
|
32
32
|
call: call
|
|
33
|
-
}, /*#__PURE__*/_react.default.createElement(_AppStateListener.AppStateListener, null), /*#__PURE__*/_react.default.createElement(AndroidKeepCallAlive, null), /*#__PURE__*/_react.default.createElement(
|
|
33
|
+
}, /*#__PURE__*/_react.default.createElement(_AppStateListener.AppStateListener, null), /*#__PURE__*/_react.default.createElement(AndroidKeepCallAlive, null), /*#__PURE__*/_react.default.createElement(IosInformCallkeepCallEnd, null), /*#__PURE__*/_react.default.createElement(ClearPushWSSubscriptions, null), /*#__PURE__*/_react.default.createElement(_DeviceStats.DeviceStats, null), children);
|
|
34
34
|
};
|
|
35
35
|
|
|
36
36
|
/**
|
|
@@ -44,11 +44,11 @@ const AndroidKeepCallAlive = () => {
|
|
|
44
44
|
};
|
|
45
45
|
|
|
46
46
|
/**
|
|
47
|
-
* This is a renderless component to
|
|
48
|
-
*
|
|
47
|
+
* This is a renderless component to end the call in callkeep for ios.
|
|
48
|
+
* useAndroidKeepCallAliveEffect needs to called inside a child of StreamCallProvider.
|
|
49
49
|
*/
|
|
50
|
-
const
|
|
51
|
-
(0,
|
|
50
|
+
const IosInformCallkeepCallEnd = () => {
|
|
51
|
+
(0, _useIosCallkeepWithCallingStateEffect.useIosCallkeepWithCallingStateEffect)();
|
|
52
52
|
return null;
|
|
53
53
|
};
|
|
54
54
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_videoReactBindings","require","_react","_interopRequireWildcard","_utils","_useAndroidKeepCallAliveEffect","_AppStateListener","_DeviceStats","_constants","
|
|
1
|
+
{"version":3,"names":["_videoReactBindings","require","_react","_interopRequireWildcard","_useIosCallkeepWithCallingStateEffect","_utils","_useAndroidKeepCallAliveEffect","_AppStateListener","_DeviceStats","_constants","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","StreamCall","children","createElement","StreamCallProvider","AppStateListener","AndroidKeepCallAlive","IosInformCallkeepCallEnd","ClearPushWSSubscriptions","DeviceStats","exports","useAndroidKeepCallAliveEffect","useIosCallkeepWithCallingStateEffect","useEffect","pushUnsubscriptionCallbacks","forEach","cbArray","cb","clear","canAddPushWSSubscriptionsRef","current"],"sourceRoot":"../../../../src","sources":["providers/StreamCall/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,11 +6,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.StreamVideoRN = void 0;
|
|
7
7
|
var _pushLogoutCallback = _interopRequireDefault(require("../internal/pushLogoutCallback"));
|
|
8
8
|
var _newNotificationCallbacks = _interopRequireDefault(require("../internal/newNotificationCallbacks"));
|
|
9
|
+
var _setupIosCallKeepEvents = require("../push/setupIosCallKeepEvents");
|
|
9
10
|
var _setupIosVoipPushEvents = require("../push/setupIosVoipPushEvents");
|
|
10
|
-
var _setupCallingExpEvents = require("../push/setupCallingExpEvents");
|
|
11
|
-
var _callingx = require("../push/libs/callingx");
|
|
12
11
|
var _reactNative = require("react-native");
|
|
13
|
-
var _videoClient = require("@stream-io/video-client");
|
|
14
12
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
13
|
// Utility type for deep partial
|
|
16
14
|
|
|
@@ -35,7 +33,10 @@ const DEFAULT_STREAM_VIDEO_CONFIG = {
|
|
|
35
33
|
android: {
|
|
36
34
|
channel: {
|
|
37
35
|
id: 'stream_call_foreground_service',
|
|
38
|
-
name: '
|
|
36
|
+
name: 'To keep calls alive',
|
|
37
|
+
lights: false,
|
|
38
|
+
vibration: false,
|
|
39
|
+
importance: 3
|
|
39
40
|
},
|
|
40
41
|
notificationTexts: {
|
|
41
42
|
title: 'Call in progress',
|
|
@@ -57,6 +58,15 @@ class StreamVideoRN {
|
|
|
57
58
|
static updateConfig(updateConfig) {
|
|
58
59
|
this.config = deepMerge(this.config, updateConfig);
|
|
59
60
|
}
|
|
61
|
+
static updateAndroidIncomingCallChannel(updateChannel) {
|
|
62
|
+
const prevChannel = this.config.push?.android?.incomingCallChannel;
|
|
63
|
+
if (prevChannel) {
|
|
64
|
+
this.config.push.android.incomingCallChannel = {
|
|
65
|
+
...prevChannel,
|
|
66
|
+
...updateChannel
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
}
|
|
60
70
|
|
|
61
71
|
/**
|
|
62
72
|
* Set the push config for StreamVideoRN.
|
|
@@ -70,26 +80,7 @@ class StreamVideoRN {
|
|
|
70
80
|
* import App from './App';
|
|
71
81
|
* // Set push config
|
|
72
82
|
* const pushConfig = {}; // construct your config
|
|
73
|
-
*
|
|
74
|
-
* const callingExpOptions = {
|
|
75
|
-
* ios: {
|
|
76
|
-
* callsHistory: true,
|
|
77
|
-
* displayCallTimeout: 60000,
|
|
78
|
-
* sound: 'ringtone',
|
|
79
|
-
* imageName: 'callkit_icon',
|
|
80
|
-
* },
|
|
81
|
-
* android: {
|
|
82
|
-
* incomingChannel: {
|
|
83
|
-
* id: 'stream_incoming_call_notifications',
|
|
84
|
-
* name: 'Call notifications',
|
|
85
|
-
* vibration: true,
|
|
86
|
-
* sound: 'default',
|
|
87
|
-
* },
|
|
88
|
-
* titleTransformer: (text: string) => text,
|
|
89
|
-
* subtitleTransformer: (text: string) => text,
|
|
90
|
-
* },
|
|
91
|
-
* };
|
|
92
|
-
* StreamVideoRN.setPushConfig(pushConfig, callingExpOptions);
|
|
83
|
+
* StreamVideoRN.setPushConfig(pushConfig);
|
|
93
84
|
* AppRegistry.registerComponent('app', () => App);
|
|
94
85
|
*/
|
|
95
86
|
static setPushConfig(pushConfig) {
|
|
@@ -97,16 +88,13 @@ class StreamVideoRN {
|
|
|
97
88
|
// Ignoring this config as push config was already set
|
|
98
89
|
return;
|
|
99
90
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
const options = (0, _callingx.extractCallingExpOptions)(this.config);
|
|
105
|
-
callingx.setup(options);
|
|
106
|
-
} catch {
|
|
107
|
-
throw new Error('react-native-callingx library is not installed. Please check the installation instructions: https://getstream.io/video/docs/react-native/incoming-calls/ringing-setup/react-native/.');
|
|
91
|
+
if (__DEV__ && (pushConfig.navigateAcceptCall || pushConfig.navigateToIncomingCall)) {
|
|
92
|
+
throw new Error(`Support for navigateAcceptCall or navigateToIncomingCall in pushConfig has been removed.
|
|
93
|
+
Please watch for incoming and outgoing calls in the root component of your app.
|
|
94
|
+
Please see https://getstream.io/video/docs/react-native/advanced/ringing-calls/#watch-for-incoming-and-outgoing-calls for more information.`);
|
|
108
95
|
}
|
|
109
|
-
|
|
96
|
+
this.config.push = pushConfig;
|
|
97
|
+
(0, _setupIosCallKeepEvents.setupIosCallKeepEvents)(pushConfig);
|
|
110
98
|
(0, _setupIosVoipPushEvents.setupIosVoipPushEvents)(pushConfig);
|
|
111
99
|
}
|
|
112
100
|
static getConfig() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_pushLogoutCallback","_interopRequireDefault","require","_newNotificationCallbacks","
|
|
1
|
+
{"version":3,"names":["_pushLogoutCallback","_interopRequireDefault","require","_newNotificationCallbacks","_setupIosCallKeepEvents","_setupIosVoipPushEvents","_reactNative","e","__esModule","default","deepMerge","target","source","result","key","undefined","Array","isArray","DEFAULT_STREAM_VIDEO_CONFIG","foregroundService","android","channel","id","name","lights","vibration","importance","notificationTexts","title","body","taskToRun","Promise","StreamVideoRN","config","busyToneTimeout","updateConfig","updateAndroidIncomingCallChannel","updateChannel","prevChannel","push","incomingCallChannel","setPushConfig","pushConfig","__DEV__","navigateAcceptCall","navigateToIncomingCall","Error","setupIosCallKeepEvents","setupIosVoipPushEvents","getConfig","onPushLogout","pushLogoutCallbacks","current","all","map","callback","then","resolve","clearPushLogoutCallbacks","addOnNewCallNotificationListener","newNotificationCallbacks","filter","cb","playBusyTone","NativeModules","StreamVideoReactNative","stopBusyTone","androidHasAudioOutputHardware","Platform","OS","hasAudioOutputHardware","androidHasMicrophoneHardware","hasMicrophoneHardware","androidHasCameraHardware","hasCameraHardware","exports"],"sourceRoot":"../../../../src","sources":["utils/StreamVideoRN/index.ts"],"mappings":"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","ignoreList":[]}
|