@stream-io/video-react-native-sdk 1.31.1-beta.0 → 1.31.1
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 +11 -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/components/Participant/ParticipantView/ParticipantLabel.js +2 -6
- package/dist/commonjs/components/Participant/ParticipantView/ParticipantLabel.js.map +1 -1
- package/dist/commonjs/hooks/push/index.js +2 -0
- package/dist/commonjs/hooks/push/index.js.map +1 -1
- 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/push/useProcessPushCallEffect.js +67 -0
- package/dist/commonjs/hooks/push/useProcessPushCallEffect.js.map +1 -0
- 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 -35
- package/dist/commonjs/utils/StreamVideoRN/index.js.map +1 -1
- package/dist/commonjs/utils/internal/registerSDKGlobals.js +3 -53
- package/dist/commonjs/utils/internal/registerSDKGlobals.js.map +1 -1
- package/dist/commonjs/utils/push/android.js +202 -135
- package/dist/commonjs/utils/push/android.js.map +1 -1
- package/dist/commonjs/utils/push/internal/ios.js +34 -17
- package/dist/commonjs/utils/push/internal/ios.js.map +1 -1
- package/dist/commonjs/utils/push/internal/rxSubjects.js +45 -1
- package/dist/commonjs/utils/push/internal/rxSubjects.js.map +1 -1
- package/dist/commonjs/utils/push/internal/utils.js +53 -71
- 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/components/Participant/ParticipantView/ParticipantLabel.js +2 -6
- package/dist/module/components/Participant/ParticipantView/ParticipantLabel.js.map +1 -1
- package/dist/module/hooks/push/index.js +2 -0
- package/dist/module/hooks/push/index.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/push/useProcessPushCallEffect.js +60 -0
- package/dist/module/hooks/push/useProcessPushCallEffect.js.map +1 -0
- 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 -35
- package/dist/module/utils/StreamVideoRN/index.js.map +1 -1
- package/dist/module/utils/internal/registerSDKGlobals.js +3 -53
- package/dist/module/utils/internal/registerSDKGlobals.js.map +1 -1
- package/dist/module/utils/push/android.js +204 -137
- package/dist/module/utils/push/android.js.map +1 -1
- package/dist/module/utils/push/internal/ios.js +34 -17
- package/dist/module/utils/push/internal/ios.js.map +1 -1
- package/dist/module/utils/push/internal/rxSubjects.js +44 -0
- package/dist/module/utils/push/internal/rxSubjects.js.map +1 -1
- package/dist/module/utils/push/internal/utils.js +50 -67
- 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/components/Participant/ParticipantView/ParticipantLabel.d.ts.map +1 -1
- package/dist/typescript/hooks/push/index.d.ts.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/push/useProcessPushCallEffect.d.ts +8 -0
- package/dist/typescript/hooks/push/useProcessPushCallEffect.d.ts.map +1 -0
- 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 -22
- package/dist/typescript/utils/StreamVideoRN/index.d.ts.map +1 -1
- package/dist/typescript/utils/StreamVideoRN/types.d.ts +25 -59
- 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 +33 -0
- package/dist/typescript/utils/push/internal/rxSubjects.d.ts.map +1 -1
- package/dist/typescript/utils/push/internal/utils.d.ts +8 -14
- 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 +7 -19
- package/ios/StreamVideoReactNative.h +4 -7
- package/ios/StreamVideoReactNative.m +82 -189
- package/package.json +16 -11
- package/src/components/Participant/ParticipantView/ParticipantLabel.tsx +2 -7
- package/src/hooks/push/index.ts +2 -0
- package/src/hooks/push/useIosCallkeepWithCallingStateEffect.ts +235 -0
- package/src/hooks/push/useIosVoipPushEventsSetupEffect.ts +34 -21
- package/src/hooks/push/useProcessPushCallEffect.ts +108 -0
- 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 -42
- package/src/utils/StreamVideoRN/types.ts +25 -61
- package/src/utils/internal/registerSDKGlobals.ts +4 -52
- package/src/utils/push/android.ts +311 -198
- package/src/utils/push/internal/ios.ts +44 -28
- package/src/utils/push/internal/rxSubjects.ts +61 -0
- package/src/utils/push/internal/utils.ts +64 -108
- 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 -149
- package/dist/commonjs/hooks/push/useCallingExpWithCallingStateEffect.js +0 -144
- package/dist/commonjs/hooks/push/useCallingExpWithCallingStateEffect.js.map +0 -1
- package/dist/commonjs/utils/internal/callingx/audioSessionPromise.js +0 -68
- package/dist/commonjs/utils/internal/callingx/audioSessionPromise.js.map +0 -1
- package/dist/commonjs/utils/internal/callingx/callingx.js +0 -150
- package/dist/commonjs/utils/internal/callingx/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 -105
- package/dist/commonjs/utils/push/setupCallingExpEvents.js.map +0 -1
- package/dist/module/hooks/push/useCallingExpWithCallingStateEffect.js +0 -137
- package/dist/module/hooks/push/useCallingExpWithCallingStateEffect.js.map +0 -1
- package/dist/module/utils/internal/callingx/audioSessionPromise.js +0 -61
- package/dist/module/utils/internal/callingx/audioSessionPromise.js.map +0 -1
- package/dist/module/utils/internal/callingx/callingx.js +0 -140
- package/dist/module/utils/internal/callingx/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 -99
- 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/callingx/audioSessionPromise.d.ts +0 -16
- package/dist/typescript/utils/internal/callingx/audioSessionPromise.d.ts.map +0 -1
- package/dist/typescript/utils/internal/callingx/callingx.d.ts +0 -18
- package/dist/typescript/utils/internal/callingx/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 -189
- package/src/utils/internal/callingx/audioSessionPromise.ts +0 -65
- package/src/utils/internal/callingx/callingx.ts +0 -194
- package/src/utils/keepCallAliveHeadlessTask.ts +0 -54
- package/src/utils/push/libs/callingx.ts +0 -89
- package/src/utils/push/setupCallingExpEvents.ts +0 -135
|
@@ -5,13 +5,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.useIosVoipPushEventsSetupEffect = void 0;
|
|
7
7
|
var _react = require("react");
|
|
8
|
+
var _libs = require("../../utils/push/libs");
|
|
8
9
|
var _reactNative = require("react-native");
|
|
9
10
|
var _utils = require("../../utils");
|
|
10
11
|
var _ios = require("../../utils/push/internal/ios");
|
|
11
12
|
var _videoReactBindings = require("@stream-io/video-react-bindings");
|
|
12
13
|
var _pushLogoutCallback = require("../../utils/internal/pushLogoutCallback");
|
|
13
14
|
var _videoClient = require("@stream-io/video-client");
|
|
14
|
-
var _libs = require("../../utils/push/libs");
|
|
15
15
|
const logger = _videoClient.videoLoggerSystem.getLogger('useIosVoipPushEventsSetupEffect');
|
|
16
16
|
|
|
17
17
|
/* VoipPushNotificationLib has support for only one listener type at a time
|
|
@@ -29,7 +29,6 @@ function setLogoutCallback(client, token, lastVoipTokenRef) {
|
|
|
29
29
|
};
|
|
30
30
|
try {
|
|
31
31
|
await client.removeDevice(token);
|
|
32
|
-
logger.debug('PushLogoutCallback - Removed voip token', token);
|
|
33
32
|
} catch (err) {
|
|
34
33
|
logger.warn('PushLogoutCallback - Failed to remove voip token', err);
|
|
35
34
|
}
|
|
@@ -84,10 +83,20 @@ const useIosVoipPushEventsSetupEffect = () => {
|
|
|
84
83
|
(0, _react.useEffect)(() => {
|
|
85
84
|
const pushConfig = _utils.StreamVideoRN.getConfig().push;
|
|
86
85
|
const pushProviderName = pushConfig?.ios.pushProviderName;
|
|
87
|
-
|
|
88
|
-
|
|
86
|
+
if (_reactNative.Platform.OS !== 'ios' || !client || !pushProviderName) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
if (!pushConfig.android.incomingCallChannel) {
|
|
90
|
+
// TODO: remove this check and find a better way once we have telecom integration for android
|
|
91
|
+
logger.debug('android incomingCallChannel is not defined, so skipping the useIosVoipPushEventsSetupEffect');
|
|
89
92
|
return;
|
|
90
93
|
}
|
|
94
|
+
const voipPushNotification = (0, _libs.getVoipPushNotificationLib)();
|
|
95
|
+
|
|
96
|
+
// even though we do this natively, we have to still register here again
|
|
97
|
+
// natively this will make sure "register" event for JS is sent with the last push token
|
|
98
|
+
// Necessary if client changed before we got the event here or user logged out and logged in again
|
|
99
|
+
voipPushNotification.registerVoipToken();
|
|
91
100
|
const onTokenReceived = token => {
|
|
92
101
|
const userId = client.streamClient._user?.id ?? '';
|
|
93
102
|
if (client.streamClient.anonymous || !token || !userId) {
|
|
@@ -115,24 +124,27 @@ const useIosVoipPushEventsSetupEffect = () => {
|
|
|
115
124
|
});
|
|
116
125
|
};
|
|
117
126
|
// fired when PushKit give us the latest token
|
|
118
|
-
|
|
119
|
-
token
|
|
120
|
-
}) => {
|
|
127
|
+
voipPushNotification.addEventListener('register', token => {
|
|
121
128
|
onTokenReceived(token);
|
|
122
129
|
});
|
|
123
130
|
|
|
124
|
-
// this will
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
131
|
+
// this will fire when there are events occured before js bridge initialized
|
|
132
|
+
voipPushNotification.addEventListener('didLoadWithEvents', events => {
|
|
133
|
+
if (!events || !Array.isArray(events) || events.length < 1) {
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
for (const voipPushEvent of events) {
|
|
137
|
+
const {
|
|
138
|
+
name,
|
|
139
|
+
data
|
|
140
|
+
} = voipPushEvent;
|
|
141
|
+
if (name === 'RNVoipPushRemoteNotificationsRegisteredEvent') {
|
|
142
|
+
onTokenReceived(data);
|
|
143
|
+
} else if (name === 'RNVoipPushRemoteNotificationReceivedEvent') {
|
|
144
|
+
(0, _ios.onVoipNotificationReceived)(data, pushConfig);
|
|
145
|
+
}
|
|
133
146
|
}
|
|
134
147
|
});
|
|
135
|
-
callingx.registerVoipToken();
|
|
136
148
|
lastListener.count += 1;
|
|
137
149
|
const currentListenerCount = lastListener.count;
|
|
138
150
|
return () => {
|
|
@@ -142,7 +154,8 @@ const useIosVoipPushEventsSetupEffect = () => {
|
|
|
142
154
|
return;
|
|
143
155
|
}
|
|
144
156
|
logger.debug(`Voip event listeners are removed for user: ${userId}`);
|
|
145
|
-
|
|
157
|
+
voipPushNotification.removeEventListener('didLoadWithEvents');
|
|
158
|
+
voipPushNotification.removeEventListener('register');
|
|
146
159
|
};
|
|
147
160
|
}, [client]);
|
|
148
161
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_utils","_ios","_videoReactBindings","_pushLogoutCallback","_videoClient","
|
|
1
|
+
{"version":3,"names":["_react","require","_libs","_reactNative","_utils","_ios","_videoReactBindings","_pushLogoutCallback","_videoClient","logger","videoLoggerSystem","getLogger","lastListener","count","setLogoutCallback","client","token","lastVoipTokenRef","setPushLogoutCallback","current","userId","removeDevice","err","warn","useIosVoipPushEventsSetupEffect","useStreamVideoClient","connectedUserId","useConnectedUser","id","useRef","unsentToken","setUnsentToken","useState","useEffect","pushProviderName","StreamVideoRN","getConfig","push","ios","tokenToSend","debug","addVoipDevice","then","undefined","catch","error","pushConfig","Platform","OS","android","incomingCallChannel","voipPushNotification","getVoipPushNotificationLib","registerVoipToken","onTokenReceived","streamClient","_user","anonymous","reason","lastVoipToken","addEventListener","events","Array","isArray","length","voipPushEvent","name","data","onVoipNotificationReceived","currentListenerCount","removeEventListener","exports"],"sourceRoot":"../../../../src","sources":["hooks/push/useIosVoipPushEventsSetupEffect.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useProcessPushCallEffect = void 0;
|
|
7
|
+
var _rxSubjects = require("../../utils/push/internal/rxSubjects");
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
var _utils = require("../../utils");
|
|
10
|
+
var _videoReactBindings = require("@stream-io/video-react-bindings");
|
|
11
|
+
var _operators = require("rxjs/operators");
|
|
12
|
+
var _utils2 = require("../../utils/push/internal/utils");
|
|
13
|
+
var _videoClient = require("@stream-io/video-client");
|
|
14
|
+
/**
|
|
15
|
+
* This hook is used to process the incoming call data via push notifications using the relevant rxjs subjects
|
|
16
|
+
* It either joins or leaves the call based on the user's action.
|
|
17
|
+
* Note: this effect cannot work when push notifications are received when the app is in quit state or in other words when the client is not connected with a websocket.
|
|
18
|
+
* So we essentially run this effect only when the client is connected with a websocket.
|
|
19
|
+
*/
|
|
20
|
+
const useProcessPushCallEffect = () => {
|
|
21
|
+
const client = (0, _videoReactBindings.useStreamVideoClient)();
|
|
22
|
+
const connectedUserId = (0, _videoReactBindings.useConnectedUser)()?.id;
|
|
23
|
+
// The Effect to join/reject call automatically when incoming call was received and processed from push notification
|
|
24
|
+
(0, _react.useEffect)(() => {
|
|
25
|
+
const pushConfig = _utils.StreamVideoRN.getConfig().push;
|
|
26
|
+
if (!pushConfig || !client || !connectedUserId) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
_videoClient.videoLoggerSystem.getLogger('useProcessPushCallEffect').debug(`Adding subscriptions to process incoming call from push notification`);
|
|
30
|
+
|
|
31
|
+
// if the user accepts the call from push notification we join the call
|
|
32
|
+
const acceptedCallSubscription = createCallSubscription(_rxSubjects.pushAcceptedIncomingCallCId$, client, pushConfig, 'accept');
|
|
33
|
+
|
|
34
|
+
// if the user rejects the call from push notification we leave the call
|
|
35
|
+
const declinedCallSubscription = createCallSubscription(_rxSubjects.pushRejectedIncomingCallCId$, client, pushConfig, 'decline');
|
|
36
|
+
|
|
37
|
+
// if the user taps the call from push notification we do nothing as the only thing is to get the call which adds it to the client
|
|
38
|
+
const pressedCallSubscription = createCallSubscription(_rxSubjects.pushTappedIncomingCallCId$, client, pushConfig, 'pressed');
|
|
39
|
+
const backgroundIncomingDeliveredCallSubscription = createCallSubscription(_rxSubjects.pushAndroidBackgroundDeliveredIncomingCallCId$, client, pushConfig, 'backgroundDelivered');
|
|
40
|
+
return () => {
|
|
41
|
+
acceptedCallSubscription.unsubscribe();
|
|
42
|
+
declinedCallSubscription.unsubscribe();
|
|
43
|
+
pressedCallSubscription.unsubscribe();
|
|
44
|
+
backgroundIncomingDeliveredCallSubscription.unsubscribe();
|
|
45
|
+
};
|
|
46
|
+
}, [client, connectedUserId]);
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* A type guard to check if the cid is not undefined
|
|
51
|
+
*/
|
|
52
|
+
exports.useProcessPushCallEffect = useProcessPushCallEffect;
|
|
53
|
+
function cidIsNotUndefined(cid) {
|
|
54
|
+
return cid !== undefined;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* The common logic to create a subscription for the given call cid and action
|
|
59
|
+
*/
|
|
60
|
+
const createCallSubscription = (behaviourSubjectWithCallCid, client, pushConfig, action) => {
|
|
61
|
+
return behaviourSubjectWithCallCid.pipe((0, _operators.distinctUntilChanged)(), (0, _operators.filter)(cidIsNotUndefined)).subscribe(async callCId => {
|
|
62
|
+
_videoClient.videoLoggerSystem.getLogger('useProcessPushCallEffect').debug(`Processing call from push notification with action: ${action} and callCId: ${callCId}`);
|
|
63
|
+
await (0, _utils2.processCallFromPush)(client, callCId, action, pushConfig);
|
|
64
|
+
behaviourSubjectWithCallCid.next(undefined); // remove the current call id to avoid processing again
|
|
65
|
+
});
|
|
66
|
+
};
|
|
67
|
+
//# sourceMappingURL=useProcessPushCallEffect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_rxSubjects","require","_react","_utils","_videoReactBindings","_operators","_utils2","_videoClient","useProcessPushCallEffect","client","useStreamVideoClient","connectedUserId","useConnectedUser","id","useEffect","pushConfig","StreamVideoRN","getConfig","push","videoLoggerSystem","getLogger","debug","acceptedCallSubscription","createCallSubscription","pushAcceptedIncomingCallCId$","declinedCallSubscription","pushRejectedIncomingCallCId$","pressedCallSubscription","pushTappedIncomingCallCId$","backgroundIncomingDeliveredCallSubscription","pushAndroidBackgroundDeliveredIncomingCallCId$","unsubscribe","exports","cidIsNotUndefined","cid","undefined","behaviourSubjectWithCallCid","action","pipe","distinctUntilChanged","filter","subscribe","callCId","processCallFromPush","next"],"sourceRoot":"../../../../src","sources":["hooks/push/useProcessPushCallEffect.ts"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAMA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,mBAAA,GAAAH,OAAA;AAKA,IAAAI,UAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AACA,IAAAM,YAAA,GAAAN,OAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMO,wBAAwB,GAAGA,CAAA,KAAM;EAC5C,MAAMC,MAAM,GAAG,IAAAC,wCAAoB,EAAC,CAAC;EACrC,MAAMC,eAAe,GAAG,IAAAC,oCAAgB,EAAC,CAAC,EAAEC,EAAE;EAC9C;EACA,IAAAC,gBAAS,EAAC,MAAM;IACd,MAAMC,UAAU,GAAGC,oBAAa,CAACC,SAAS,CAAC,CAAC,CAACC,IAAI;IACjD,IAAI,CAACH,UAAU,IAAI,CAACN,MAAM,IAAI,CAACE,eAAe,EAAE;MAC9C;IACF;IAEAQ,8BAAiB,CACdC,SAAS,CAAC,0BAA0B,CAAC,CACrCC,KAAK,CACJ,sEACF,CAAC;;IAEH;IACA,MAAMC,wBAAwB,GAAGC,sBAAsB,CACrDC,wCAA4B,EAC5Bf,MAAM,EACNM,UAAU,EACV,QACF,CAAC;;IAED;IACA,MAAMU,wBAAwB,GAAGF,sBAAsB,CACrDG,wCAA4B,EAC5BjB,MAAM,EACNM,UAAU,EACV,SACF,CAAC;;IAED;IACA,MAAMY,uBAAuB,GAAGJ,sBAAsB,CACpDK,sCAA0B,EAC1BnB,MAAM,EACNM,UAAU,EACV,SACF,CAAC;IAED,MAAMc,2CAA2C,GAAGN,sBAAsB,CACxEO,0DAA8C,EAC9CrB,MAAM,EACNM,UAAU,EACV,qBACF,CAAC;IAED,OAAO,MAAM;MACXO,wBAAwB,CAACS,WAAW,CAAC,CAAC;MACtCN,wBAAwB,CAACM,WAAW,CAAC,CAAC;MACtCJ,uBAAuB,CAACI,WAAW,CAAC,CAAC;MACrCF,2CAA2C,CAACE,WAAW,CAAC,CAAC;IAC3D,CAAC;EACH,CAAC,EAAE,CAACtB,MAAM,EAAEE,eAAe,CAAC,CAAC;AAC/B,CAAC;;AAED;AACA;AACA;AAFAqB,OAAA,CAAAxB,wBAAA,GAAAA,wBAAA;AAGA,SAASyB,iBAAiBA,CAACC,GAAuB,EAAiB;EACjE,OAAOA,GAAG,KAAKC,SAAS;AAC1B;;AAEA;AACA;AACA;AACA,MAAMZ,sBAAsB,GAAGA,CAC7Ba,2BAAgE,EAChE3B,MAAyB,EACzBM,UAAkD,EAClDsB,MAAgE,KAC7D;EACH,OAAOD,2BAA2B,CAC/BE,IAAI,CAAC,IAAAC,+BAAoB,EAAC,CAAC,EAAE,IAAAC,iBAAM,EAACP,iBAAiB,CAAC,CAAC,CACvDQ,SAAS,CAAC,MAAOC,OAAO,IAAK;IAC5BvB,8BAAiB,CACdC,SAAS,CAAC,0BAA0B,CAAC,CACrCC,KAAK,CACJ,uDAAuDgB,MAAM,iBAAiBK,OAAO,EACvF,CAAC;IACH,MAAM,IAAAC,2BAAmB,EAAClC,MAAM,EAAEiC,OAAO,EAAEL,MAAM,EAAEtB,UAAU,CAAC;IAC9DqB,2BAA2B,CAACQ,IAAI,CAACT,SAAS,CAAC,CAAC,CAAC;EAC/C,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
|
|
@@ -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
|