@stream-io/video-react-native-sdk 1.3.1 → 1.3.3
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/useAndroidKeepCallAliveEffect.js +8 -7
- package/dist/commonjs/hooks/useAndroidKeepCallAliveEffect.js.map +1 -1
- package/dist/commonjs/utils/StreamVideoRN/index.js +7 -0
- package/dist/commonjs/utils/StreamVideoRN/index.js.map +1 -1
- package/dist/commonjs/utils/push/android.js +16 -4
- package/dist/commonjs/utils/push/android.js.map +1 -1
- package/dist/commonjs/utils/push/libs/notifee.js +50 -5
- package/dist/commonjs/utils/push/libs/notifee.js.map +1 -1
- package/dist/commonjs/version.js +1 -1
- package/dist/module/hooks/useAndroidKeepCallAliveEffect.js +9 -8
- package/dist/module/hooks/useAndroidKeepCallAliveEffect.js.map +1 -1
- package/dist/module/utils/StreamVideoRN/index.js +7 -0
- package/dist/module/utils/StreamVideoRN/index.js.map +1 -1
- package/dist/module/utils/push/android.js +18 -6
- package/dist/module/utils/push/android.js.map +1 -1
- package/dist/module/utils/push/libs/notifee.js +48 -5
- package/dist/module/utils/push/libs/notifee.js.map +1 -1
- package/dist/module/version.js +1 -1
- package/dist/typescript/hooks/useAndroidKeepCallAliveEffect.d.ts +1 -1
- package/dist/typescript/hooks/useAndroidKeepCallAliveEffect.d.ts.map +1 -1
- package/dist/typescript/utils/StreamVideoRN/index.d.ts.map +1 -1
- package/dist/typescript/utils/StreamVideoRN/types.d.ts +4 -2
- package/dist/typescript/utils/StreamVideoRN/types.d.ts.map +1 -1
- package/dist/typescript/utils/push/android.d.ts.map +1 -1
- package/dist/typescript/utils/push/libs/notifee.d.ts +20 -0
- package/dist/typescript/utils/push/libs/notifee.d.ts.map +1 -1
- package/dist/typescript/version.d.ts +1 -1
- package/expo-config-plugin/dist/common/types.d.ts +1 -0
- package/expo-config-plugin/dist/withAndroidManifest.js +8 -4
- package/expo-config-plugin/dist/withAndroidPermissions.js +3 -0
- package/package.json +5 -5
- package/src/hooks/useAndroidKeepCallAliveEffect.ts +14 -9
- package/src/utils/StreamVideoRN/index.ts +7 -0
- package/src/utils/StreamVideoRN/types.ts +4 -2
- package/src/utils/push/android.ts +23 -4
- package/src/utils/push/libs/notifee.ts +58 -6
- package/src/version.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
## [1.3.3](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-1.3.2...@stream-io/video-react-native-sdk-1.3.3) (2024-11-20)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* use foreground service to keep call alive ([#1580](https://github.com/GetStream/stream-video-js/issues/1580)) ([22bc042](https://github.com/GetStream/stream-video-js/commit/22bc042a629508c8b2536d4b448308b1d8ec1d47))
|
|
11
|
+
|
|
12
|
+
## [1.3.2](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-1.3.1...@stream-io/video-react-native-sdk-1.3.2) (2024-11-14)
|
|
13
|
+
|
|
14
|
+
### Dependency Updates
|
|
15
|
+
|
|
16
|
+
* `@stream-io/video-client` updated to version `1.11.2`
|
|
17
|
+
* `@stream-io/video-react-bindings` updated to version `1.1.19`
|
|
5
18
|
## [1.3.1](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-1.3.0...@stream-io/video-react-native-sdk-1.3.1) (2024-11-14)
|
|
6
19
|
|
|
7
20
|
### Dependency Updates
|
|
@@ -10,10 +10,8 @@ var _utils = require("../utils");
|
|
|
10
10
|
var _reactNative = require("react-native");
|
|
11
11
|
var _videoClient = require("@stream-io/video-client");
|
|
12
12
|
var _notifee = require("../utils/push/libs/notifee");
|
|
13
|
-
const isAndroid7OrBelow = _reactNative.Platform.OS === 'android' && _reactNative.Platform.Version < 26;
|
|
14
13
|
const notifeeLib = (0, _notifee.getNotifeeLibNoThrowForKeepCallAlive)();
|
|
15
14
|
function setForegroundService() {
|
|
16
|
-
if (!isAndroid7OrBelow) return;
|
|
17
15
|
notifeeLib?.default.registerForegroundService(() => {
|
|
18
16
|
return new Promise(() => {
|
|
19
17
|
const logger = (0, _videoClient.getLogger)(['setForegroundService method']);
|
|
@@ -22,7 +20,6 @@ function setForegroundService() {
|
|
|
22
20
|
});
|
|
23
21
|
}
|
|
24
22
|
async function startForegroundService(call_cid) {
|
|
25
|
-
if (!isAndroid7OrBelow) return;
|
|
26
23
|
const foregroundServiceConfig = _utils.StreamVideoRN.getConfig().foregroundService;
|
|
27
24
|
const {
|
|
28
25
|
title,
|
|
@@ -37,12 +34,16 @@ async function startForegroundService(call_cid) {
|
|
|
37
34
|
logger('info', 'Notification permission not granted, can not start foreground service to keep the call alive');
|
|
38
35
|
return;
|
|
39
36
|
}
|
|
40
|
-
|
|
37
|
+
const channelId = foregroundServiceConfig.android.channel.id;
|
|
38
|
+
await notifeeLib.default.createChannel(foregroundServiceConfig.android.channel);
|
|
39
|
+
const foregroundServiceTypes = await (0, _notifee.getKeepCallAliveForegroundServiceTypes)();
|
|
41
40
|
await notifeeLib.default.displayNotification({
|
|
42
41
|
id: call_cid,
|
|
43
42
|
title,
|
|
44
43
|
body,
|
|
45
44
|
android: {
|
|
45
|
+
channelId,
|
|
46
|
+
foregroundServiceTypes,
|
|
46
47
|
asForegroundService: true,
|
|
47
48
|
ongoing: true,
|
|
48
49
|
// user cannot dismiss the notification
|
|
@@ -62,10 +63,10 @@ let isSetForegroundServiceRan = false;
|
|
|
62
63
|
* This hook is used to keep the call alive in the background for Android.
|
|
63
64
|
* It starts a foreground service to keep the call alive as soon as the call is joined
|
|
64
65
|
* and stops the foreground Service when the call is left.
|
|
65
|
-
*
|
|
66
|
+
* Additionally: also responsible for cancelling any notifee displayed notification when the call has transitioned out of ringing
|
|
66
67
|
*/
|
|
67
68
|
const useAndroidKeepCallAliveEffect = () => {
|
|
68
|
-
if (!isSetForegroundServiceRan
|
|
69
|
+
if (!isSetForegroundServiceRan) {
|
|
69
70
|
isSetForegroundServiceRan = true;
|
|
70
71
|
setForegroundService();
|
|
71
72
|
}
|
|
@@ -76,10 +77,10 @@ const useAndroidKeepCallAliveEffect = () => {
|
|
|
76
77
|
} = (0, _videoReactBindings.useCallStateHooks)();
|
|
77
78
|
const callingState = useCallCallingState();
|
|
78
79
|
(0, _react.useEffect)(() => {
|
|
79
|
-
if (!notifeeLib) return;
|
|
80
80
|
if (_reactNative.Platform.OS === 'ios' || !activeCallCid) {
|
|
81
81
|
return;
|
|
82
82
|
}
|
|
83
|
+
if (!notifeeLib) return;
|
|
83
84
|
|
|
84
85
|
// start foreground service as soon as the call is joined
|
|
85
86
|
if (callingState === _videoClient.CallingState.JOINED) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_videoReactBindings","require","_react","_utils","_reactNative","_videoClient","_notifee","
|
|
1
|
+
{"version":3,"names":["_videoReactBindings","require","_react","_utils","_reactNative","_videoClient","_notifee","notifeeLib","getNotifeeLibNoThrowForKeepCallAlive","setForegroundService","default","registerForegroundService","Promise","logger","getLogger","startForegroundService","call_cid","foregroundServiceConfig","StreamVideoRN","getConfig","foregroundService","title","body","android","notificationTexts","settings","getNotificationSettings","authorizationStatus","AuthorizationStatus","AUTHORIZED","channelId","channel","id","createChannel","foregroundServiceTypes","getKeepCallAliveForegroundServiceTypes","displayNotification","asForegroundService","ongoing","colorized","pressAction","launchActivity","isSetForegroundServiceRan","useAndroidKeepCallAliveEffect","foregroundServiceStartedRef","useRef","activeCallCid","useCall","cid","useCallCallingState","useCallStateHooks","callingState","useEffect","Platform","OS","CallingState","JOINED","run","current","notifee","getDisplayedNotifications","then","displayedNotifications","activeCallNotification","find","notification","stopForegroundService","cancelDisplayedNotification","RINGING","IDLE","LEFT","exports"],"sourceRoot":"../../../src","sources":["hooks/useAndroidKeepCallAliveEffect.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -10,6 +10,13 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
|
10
10
|
const DEFAULT_STREAM_VIDEO_CONFIG = {
|
|
11
11
|
foregroundService: {
|
|
12
12
|
android: {
|
|
13
|
+
channel: {
|
|
14
|
+
id: 'stream_call_foreground_service',
|
|
15
|
+
name: 'To keep calls alive',
|
|
16
|
+
lights: false,
|
|
17
|
+
vibration: false,
|
|
18
|
+
importance: 3
|
|
19
|
+
},
|
|
13
20
|
notificationTexts: {
|
|
14
21
|
title: 'Call in progress',
|
|
15
22
|
body: 'Tap to return to the call'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_pushLogoutCallback","_interopRequireDefault","require","_newNotificationCallbacks","e","__esModule","default","DEFAULT_STREAM_VIDEO_CONFIG","foregroundService","android","notificationTexts","title","body","StreamVideoRN","config","updateConfig","updateAndroidIncomingCallChannel","updateChannel","prevChannel","push","incomingCallChannel","setPushConfig","pushConfig","__DEV__","navigateAcceptCall","navigateToIncomingCall","Error","getConfig","onPushLogout","pushLogoutCallbacks","current","Promise","all","map","callback","then","resolve","addOnNewCallNotificationListener","newNotificationCallbacks","filter","cb","exports"],"sourceRoot":"../../../../src","sources":["utils/StreamVideoRN/index.ts"],"mappings":";;;;;;AACA,IAAAA,mBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,yBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAE8C,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE9C,MAAMG,2BAA8C,GAAG;EACrDC,iBAAiB,EAAE;IACjBC,OAAO,EAAE;MACPC,iBAAiB,EAAE;QACjBC,KAAK,EAAE,kBAAkB;QACzBC,IAAI,EAAE;MACR;IACF;EACF;AACF,CAAC;AAEM,MAAMC,aAAa,CAAC;EACzB,OAAeC,MAAM,
|
|
1
|
+
{"version":3,"names":["_pushLogoutCallback","_interopRequireDefault","require","_newNotificationCallbacks","e","__esModule","default","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","pushLogoutCallbacks","current","Promise","all","map","callback","then","resolve","addOnNewCallNotificationListener","newNotificationCallbacks","filter","cb","exports"],"sourceRoot":"../../../../src","sources":["utils/StreamVideoRN/index.ts"],"mappings":";;;;;;AACA,IAAAA,mBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,yBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAE8C,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE9C,MAAMG,2BAA8C,GAAG;EACrDC,iBAAiB,EAAE;IACjBC,OAAO,EAAE;MACPC,OAAO,EAAE;QACPC,EAAE,EAAE,gCAAgC;QACpCC,IAAI,EAAE,qBAAqB;QAC3BC,MAAM,EAAE,KAAK;QACbC,SAAS,EAAE,KAAK;QAChBC,UAAU,EAAE;MACd,CAAC;MACDC,iBAAiB,EAAE;QACjBC,KAAK,EAAE,kBAAkB;QACzBC,IAAI,EAAE;MACR;IACF;EACF;AACF,CAAC;AAEM,MAAMC,aAAa,CAAC;EACzB,OAAeC,MAAM,GAAGb,2BAA2B;;EAEnD;AACF;AACA;AACA;AACA;EACE,OAAOc,YAAYA,CAACA,YAAsD,EAAE;IAC1E,IAAI,CAACD,MAAM,GAAG;MACZ,GAAG,IAAI,CAACA,MAAM;MACd,GAAGC;IACL,CAAC;EACH;EAEA,OAAOC,gCAAgCA,CACrCC,aAEC,EACD;IACA,MAAMC,WAAW,GAAG,IAAI,CAACJ,MAAM,CAACK,IAAI,EAAEhB,OAAO,EAAEiB,mBAAmB;IAClE,IAAIF,WAAW,EAAE;MACf,IAAI,CAACJ,MAAM,CAACK,IAAI,CAAEhB,OAAO,CAACiB,mBAAmB,GAAG;QAC9C,GAAGF,WAAW;QACd,GAAGD;MACL,CAAC;IACH;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOI,aAAaA,CAACC,UAAkD,EAAE;IACvE,IAAI,IAAI,CAACR,MAAM,CAACK,IAAI,EAAE;MACpB;MACA;IACF;IACA,IACEI,OAAO,KACND,UAAU,CAACE,kBAAkB,IAAIF,UAAU,CAACG,sBAAsB,CAAC,EACpE;MACA,MAAM,IAAIC,KAAK,CACb;AACR;AACA,oJACM,CAAC;IACH;IAEA,IAAI,CAACZ,MAAM,CAACK,IAAI,GAAGG,UAAU;EAC/B;EAEA,OAAOK,SAASA,CAAA,EAAG;IACjB,OAAO,IAAI,CAACb,MAAM;EACpB;;EAEA;AACF;AACA;AACA;EACE,OAAOc,YAAYA,CAAA,EAAG;IACpB,IAAIC,2BAAmB,CAACC,OAAO,EAAE;MAC/B,OAAOC,OAAO,CAACC,GAAG,CAChBH,2BAAmB,CAACC,OAAO,CAACG,GAAG,CAAEC,QAAQ,IAAKA,QAAQ,CAAC,CAAC,CAC1D,CAAC,CAACC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAClB;IACA,OAAOJ,OAAO,CAACK,OAAO,CAAC,CAAC;EAC1B;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAOC,gCAAgCA,CACrCH,QAAqC,EACrC;IACA,IAAI,CAACI,iCAAwB,CAACR,OAAO,EAAE;MACrCQ,iCAAwB,CAACR,OAAO,GAAG,CAACI,QAAQ,CAAC;IAC/C,CAAC,MAAM;MACLI,iCAAwB,CAACR,OAAO,CAACX,IAAI,CAACe,QAAQ,CAAC;IACjD;IACA,OAAO,MAAM;MACXI,iCAAwB,CAACR,OAAO,GAC9BQ,iCAAwB,CAACR,OAAO,EAAES,MAAM,CAAEC,EAAE,IAAKA,EAAE,KAAKN,QAAQ,CAAC;IACrE,CAAC;EACH;AACF;AAACO,OAAA,CAAA5B,aAAA,GAAAA,aAAA","ignoreList":[]}
|
|
@@ -97,12 +97,12 @@ const firebaseDataHandler = async data => {
|
|
|
97
97
|
const call_cid = data.call_cid;
|
|
98
98
|
const created_by_id = data.created_by_id;
|
|
99
99
|
const receiver_id = data.receiver_id;
|
|
100
|
-
|
|
100
|
+
const shouldCallBeClosed = callToCheck => {
|
|
101
101
|
const {
|
|
102
102
|
mustEndCall
|
|
103
103
|
} = (0, _utils.shouldCallBeEnded)(callToCheck, created_by_id, receiver_id);
|
|
104
104
|
return mustEndCall;
|
|
105
|
-
}
|
|
105
|
+
};
|
|
106
106
|
const canListenToWS = () => _utils.canAddPushWSSubscriptionsRef.current && _reactNative.AppState.currentState !== 'active';
|
|
107
107
|
const asForegroundService = canListenToWS();
|
|
108
108
|
const notifeeLib = (0, _libs.getNotifeeLibThrowIfNotInstalledForPush)();
|
|
@@ -122,14 +122,25 @@ const firebaseDataHandler = async data => {
|
|
|
122
122
|
notifee.stopForegroundService();
|
|
123
123
|
return;
|
|
124
124
|
}
|
|
125
|
+
const unsubscribeFunctions = [];
|
|
126
|
+
// check if service needs to be closed if accept/decline event was done on another device
|
|
125
127
|
const unsubscribe = callFromPush.on('all', () => {
|
|
126
128
|
if (!canListenToWS() || shouldCallBeClosed(callFromPush)) {
|
|
127
|
-
|
|
129
|
+
unsubscribeFunctions.forEach(fn => fn());
|
|
130
|
+
notifee.stopForegroundService();
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
// check if service needs to be closed if call was left
|
|
134
|
+
const subscription = callFromPush.state.callingState$.subscribe(callingState => {
|
|
135
|
+
if (callingState === _videoClient.CallingState.IDLE || callingState === _videoClient.CallingState.LEFT) {
|
|
136
|
+
unsubscribeFunctions.forEach(fn => fn());
|
|
128
137
|
notifee.stopForegroundService();
|
|
129
138
|
}
|
|
130
139
|
});
|
|
140
|
+
unsubscribeFunctions.push(unsubscribe);
|
|
141
|
+
unsubscribeFunctions.push(() => subscription.unsubscribe());
|
|
131
142
|
const unsubscriptionCallbacks = _videoClient.RxUtils.getCurrentValue(_rxSubjects.pushUnsubscriptionCallbacks$) ?? [];
|
|
132
|
-
_rxSubjects.pushUnsubscriptionCallbacks$.next([...unsubscriptionCallbacks,
|
|
143
|
+
_rxSubjects.pushUnsubscriptionCallbacks$.next([...unsubscriptionCallbacks, ...unsubscribeFunctions]);
|
|
133
144
|
});
|
|
134
145
|
});
|
|
135
146
|
}
|
|
@@ -162,6 +173,7 @@ const firebaseDataHandler = async data => {
|
|
|
162
173
|
data,
|
|
163
174
|
android: {
|
|
164
175
|
channelId,
|
|
176
|
+
foregroundServiceTypes: (0, _libs.getIncomingCallForegroundServiceTypes)(),
|
|
165
177
|
asForegroundService,
|
|
166
178
|
sound: incomingCallChannel.sound,
|
|
167
179
|
vibrationPattern: incomingCallChannel.vibrationPattern,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_videoClient","require","_reactNative","_libs","_rxSubjects","_utils","_pushLogoutCallback","_getAndroidDefaultRingtoneUrl","_StreamVideoRN","ACCEPT_CALL_ACTION_ID","DECLINE_CALL_ACTION_ID","lastFirebaseToken","token","userId","initAndroidPushToken","client","pushConfig","setUnsubscribeListener","Platform","OS","android","pushProviderName","setDeviceToken","streamClient","_user","id","setPushLogoutCallback","removeDevice","err","logger","getLogger","push_provider_name","addDevice","isExpo","expoNotificationsLib","getExpoNotificationsLib","subscription","addPushTokenListener","devicePushToken","data","remove","getDevicePushTokenAsync","messaging","getFirebaseMessagingLib","unsubscribe","onTokenRefresh","refreshedToken","getToken","firebaseDataHandler","StreamVideoRN","getConfig","push","sender","type","call_cid","created_by_id","receiver_id","shouldCallBeClosed","callToCheck","mustEndCall","shouldCallBeEnded","canListenToWS","canAddPushWSSubscriptionsRef","current","AppState","currentState","asForegroundService","notifeeLib","getNotifeeLibThrowIfNotInstalledForPush","notifee","default","registerForegroundService","Promise","createStreamVideoClient","stopForegroundService","callFromPush","onRingingCall","on","unsubscriptionCallbacks","RxUtils","getCurrentValue","pushUnsubscriptionCallbacks$","next","incomingCallChannel","incomingCallNotificationTextGetters","sound","getAndroidDefaultRingtoneUrl","createChannel","getTitle","getBody","createdUserName","created_by_display_name","channelId","displayNotification","title","body","vibrationPattern","pressAction","launchActivity","actions","category","AndroidCategory","CALL","fullScreenAction","timeoutAfter","cancelDisplayedNotification","callChannel","callNotificationTextGetters","cid","pushNonRingingCallData$","exports","onAndroidNotifeeEvent","event","isBackground","detail","notification","notificationId","hasObservers","pushAcceptedIncomingCallCId$","observed","pushRejectedIncomingCallCId$","didPressDecline","EventType","ACTION_PRESS","didDismiss","DISMISSED","mustDecline","mustAccept","clearPushWSEventSubscriptions","processCallFromPushInBackground","PRESS","pushTappedIncomingCallCId$","DELIVERED","pushAndroidBackgroundDeliveredIncomingCallCId$","onTapNonRingingCallNotification"],"sourceRoot":"../../../../src","sources":["utils/push/android.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_videoClient","require","_reactNative","_libs","_rxSubjects","_utils","_pushLogoutCallback","_getAndroidDefaultRingtoneUrl","_StreamVideoRN","ACCEPT_CALL_ACTION_ID","DECLINE_CALL_ACTION_ID","lastFirebaseToken","token","userId","initAndroidPushToken","client","pushConfig","setUnsubscribeListener","Platform","OS","android","pushProviderName","setDeviceToken","streamClient","_user","id","setPushLogoutCallback","removeDevice","err","logger","getLogger","push_provider_name","addDevice","isExpo","expoNotificationsLib","getExpoNotificationsLib","subscription","addPushTokenListener","devicePushToken","data","remove","getDevicePushTokenAsync","messaging","getFirebaseMessagingLib","unsubscribe","onTokenRefresh","refreshedToken","getToken","firebaseDataHandler","StreamVideoRN","getConfig","push","sender","type","call_cid","created_by_id","receiver_id","shouldCallBeClosed","callToCheck","mustEndCall","shouldCallBeEnded","canListenToWS","canAddPushWSSubscriptionsRef","current","AppState","currentState","asForegroundService","notifeeLib","getNotifeeLibThrowIfNotInstalledForPush","notifee","default","registerForegroundService","Promise","createStreamVideoClient","stopForegroundService","callFromPush","onRingingCall","unsubscribeFunctions","on","forEach","fn","state","callingState$","subscribe","callingState","CallingState","IDLE","LEFT","unsubscriptionCallbacks","RxUtils","getCurrentValue","pushUnsubscriptionCallbacks$","next","incomingCallChannel","incomingCallNotificationTextGetters","sound","getAndroidDefaultRingtoneUrl","createChannel","getTitle","getBody","createdUserName","created_by_display_name","channelId","displayNotification","title","body","foregroundServiceTypes","getIncomingCallForegroundServiceTypes","vibrationPattern","pressAction","launchActivity","actions","category","AndroidCategory","CALL","fullScreenAction","timeoutAfter","cancelDisplayedNotification","callChannel","callNotificationTextGetters","cid","pushNonRingingCallData$","exports","onAndroidNotifeeEvent","event","isBackground","detail","notification","notificationId","hasObservers","pushAcceptedIncomingCallCId$","observed","pushRejectedIncomingCallCId$","didPressDecline","EventType","ACTION_PRESS","didDismiss","DISMISSED","mustDecline","mustAccept","clearPushWSEventSubscriptions","processCallFromPushInBackground","PRESS","pushTappedIncomingCallCId$","DELIVERED","pushAndroidBackgroundDeliveredIncomingCallCId$","onTapNonRingingCallNotification"],"sourceRoot":"../../../../src","sources":["utils/push/android.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,15 +3,34 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.getIncomingCallForegroundServiceTypes = getIncomingCallForegroundServiceTypes;
|
|
7
|
+
exports.getKeepCallAliveForegroundServiceTypes = getKeepCallAliveForegroundServiceTypes;
|
|
6
8
|
exports.getNotifeeLibNoThrowForKeepCallAlive = getNotifeeLibNoThrowForKeepCallAlive;
|
|
7
9
|
exports.getNotifeeLibThrowIfNotInstalledForPush = getNotifeeLibThrowIfNotInstalledForPush;
|
|
10
|
+
var _videoClient = require("@stream-io/video-client");
|
|
8
11
|
var _reactNative = require("react-native");
|
|
9
|
-
var
|
|
12
|
+
var AndroidForegroundServiceType = /*#__PURE__*/function (AndroidForegroundServiceType) {
|
|
13
|
+
AndroidForegroundServiceType[AndroidForegroundServiceType["FOREGROUND_SERVICE_TYPE_CAMERA"] = 64] = "FOREGROUND_SERVICE_TYPE_CAMERA";
|
|
14
|
+
AndroidForegroundServiceType[AndroidForegroundServiceType["FOREGROUND_SERVICE_TYPE_CONNECTED_DEVICE"] = 16] = "FOREGROUND_SERVICE_TYPE_CONNECTED_DEVICE";
|
|
15
|
+
AndroidForegroundServiceType[AndroidForegroundServiceType["FOREGROUND_SERVICE_TYPE_DATA_SYNC"] = 1] = "FOREGROUND_SERVICE_TYPE_DATA_SYNC";
|
|
16
|
+
AndroidForegroundServiceType[AndroidForegroundServiceType["FOREGROUND_SERVICE_TYPE_HEALTH"] = 256] = "FOREGROUND_SERVICE_TYPE_HEALTH";
|
|
17
|
+
AndroidForegroundServiceType[AndroidForegroundServiceType["FOREGROUND_SERVICE_TYPE_LOCATION"] = 8] = "FOREGROUND_SERVICE_TYPE_LOCATION";
|
|
18
|
+
AndroidForegroundServiceType[AndroidForegroundServiceType["FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK"] = 2] = "FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK";
|
|
19
|
+
AndroidForegroundServiceType[AndroidForegroundServiceType["FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION"] = 32] = "FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION";
|
|
20
|
+
AndroidForegroundServiceType[AndroidForegroundServiceType["FOREGROUND_SERVICE_TYPE_MEDIA_PROCESSING"] = 8192] = "FOREGROUND_SERVICE_TYPE_MEDIA_PROCESSING";
|
|
21
|
+
AndroidForegroundServiceType[AndroidForegroundServiceType["FOREGROUND_SERVICE_TYPE_MICROPHONE"] = 128] = "FOREGROUND_SERVICE_TYPE_MICROPHONE";
|
|
22
|
+
AndroidForegroundServiceType[AndroidForegroundServiceType["FOREGROUND_SERVICE_TYPE_PHONE_CALL"] = 4] = "FOREGROUND_SERVICE_TYPE_PHONE_CALL";
|
|
23
|
+
AndroidForegroundServiceType[AndroidForegroundServiceType["FOREGROUND_SERVICE_TYPE_REMOTE_MESSAGING"] = 512] = "FOREGROUND_SERVICE_TYPE_REMOTE_MESSAGING";
|
|
24
|
+
AndroidForegroundServiceType[AndroidForegroundServiceType["FOREGROUND_SERVICE_TYPE_SHORT_SERVICE"] = 2048] = "FOREGROUND_SERVICE_TYPE_SHORT_SERVICE";
|
|
25
|
+
AndroidForegroundServiceType[AndroidForegroundServiceType["FOREGROUND_SERVICE_TYPE_SPECIAL_USE"] = 1073741824] = "FOREGROUND_SERVICE_TYPE_SPECIAL_USE";
|
|
26
|
+
AndroidForegroundServiceType[AndroidForegroundServiceType["FOREGROUND_SERVICE_TYPE_SYSTEM_EXEMPTED"] = 1024] = "FOREGROUND_SERVICE_TYPE_SYSTEM_EXEMPTED";
|
|
27
|
+
AndroidForegroundServiceType[AndroidForegroundServiceType["FOREGROUND_SERVICE_TYPE_MANIFEST"] = -1] = "FOREGROUND_SERVICE_TYPE_MANIFEST";
|
|
28
|
+
return AndroidForegroundServiceType;
|
|
29
|
+
}(AndroidForegroundServiceType || {});
|
|
10
30
|
let notifeeLib;
|
|
11
31
|
try {
|
|
12
32
|
notifeeLib = require('@notifee/react-native');
|
|
13
33
|
} catch (_e) {}
|
|
14
|
-
const isAndroid7OrBelow = _reactNative.Platform.OS === 'android' && _reactNative.Platform.Version < 26;
|
|
15
34
|
const INSTALLATION_INSTRUCTION = 'Please see https://notifee.app/react-native/docs/installation for installation instructions';
|
|
16
35
|
function getNotifeeLibThrowIfNotInstalledForPush() {
|
|
17
36
|
if (!notifeeLib) {
|
|
@@ -20,10 +39,36 @@ function getNotifeeLibThrowIfNotInstalledForPush() {
|
|
|
20
39
|
return notifeeLib;
|
|
21
40
|
}
|
|
22
41
|
function getNotifeeLibNoThrowForKeepCallAlive() {
|
|
23
|
-
if (!notifeeLib
|
|
24
|
-
const logger = (0,
|
|
25
|
-
logger('info', `${'@notifee/react-native library not installed. It is required to keep call alive in the background for Android
|
|
42
|
+
if (!notifeeLib) {
|
|
43
|
+
const logger = (0, _videoClient.getLogger)(['getNotifeeLibNoThrow']);
|
|
44
|
+
logger('info', `${'@notifee/react-native library not installed. It is required to keep call alive in the background for Android. '}${INSTALLATION_INSTRUCTION}`);
|
|
26
45
|
}
|
|
27
46
|
return notifeeLib;
|
|
28
47
|
}
|
|
48
|
+
async function getKeepCallAliveForegroundServiceTypes() {
|
|
49
|
+
const types = [];
|
|
50
|
+
const hasCameraPermission = await _reactNative.PermissionsAndroid.check(_reactNative.PermissionsAndroid.PERMISSIONS.CAMERA);
|
|
51
|
+
if (hasCameraPermission) {
|
|
52
|
+
types.push(AndroidForegroundServiceType.FOREGROUND_SERVICE_TYPE_CAMERA);
|
|
53
|
+
}
|
|
54
|
+
const hasMicrophonePermission = await _reactNative.PermissionsAndroid.check(_reactNative.PermissionsAndroid.PERMISSIONS.RECORD_AUDIO);
|
|
55
|
+
if (hasMicrophonePermission) {
|
|
56
|
+
types.push(AndroidForegroundServiceType.FOREGROUND_SERVICE_TYPE_MICROPHONE);
|
|
57
|
+
}
|
|
58
|
+
const hasConnectionPermission = await _reactNative.PermissionsAndroid.check(_reactNative.PermissionsAndroid.PERMISSIONS.BLUETOOTH_CONNECT);
|
|
59
|
+
if (hasConnectionPermission) {
|
|
60
|
+
types.push(AndroidForegroundServiceType.FOREGROUND_SERVICE_TYPE_CONNECTED_DEVICE);
|
|
61
|
+
}
|
|
62
|
+
if (types.length === 0) {
|
|
63
|
+
types.push(AndroidForegroundServiceType.FOREGROUND_SERVICE_TYPE_DATA_SYNC);
|
|
64
|
+
}
|
|
65
|
+
console.log({
|
|
66
|
+
types
|
|
67
|
+
});
|
|
68
|
+
return types;
|
|
69
|
+
}
|
|
70
|
+
function getIncomingCallForegroundServiceTypes() {
|
|
71
|
+
const types = [AndroidForegroundServiceType.FOREGROUND_SERVICE_TYPE_SHORT_SERVICE];
|
|
72
|
+
return types;
|
|
73
|
+
}
|
|
29
74
|
//# sourceMappingURL=notifee.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_videoClient","require","_reactNative","AndroidForegroundServiceType","notifeeLib","_e","INSTALLATION_INSTRUCTION","getNotifeeLibThrowIfNotInstalledForPush","Error","getNotifeeLibNoThrowForKeepCallAlive","logger","getLogger","getKeepCallAliveForegroundServiceTypes","types","hasCameraPermission","PermissionsAndroid","check","PERMISSIONS","CAMERA","push","FOREGROUND_SERVICE_TYPE_CAMERA","hasMicrophonePermission","RECORD_AUDIO","FOREGROUND_SERVICE_TYPE_MICROPHONE","hasConnectionPermission","BLUETOOTH_CONNECT","FOREGROUND_SERVICE_TYPE_CONNECTED_DEVICE","length","FOREGROUND_SERVICE_TYPE_DATA_SYNC","console","log","getIncomingCallForegroundServiceTypes","FOREGROUND_SERVICE_TYPE_SHORT_SERVICE"],"sourceRoot":"../../../../../src","sources":["utils/push/libs/notifee.ts"],"mappings":";;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAAkD,IAI7CE,4BAA4B,0BAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAAA,OAA5BA,4BAA4B;AAAA,EAA5BA,4BAA4B;AAkBjC,IAAIC,UAAkC;AAEtC,IAAI;EACFA,UAAU,GAAGH,OAAO,CAAC,uBAAuB,CAAC;AAC/C,CAAC,CAAC,OAAOI,EAAE,EAAE,CAAC;AAEd,MAAMC,wBAAwB,GAC5B,6FAA6F;AAExF,SAASC,uCAAuCA,CAAA,EAAG;EACxD,IAAI,CAACH,UAAU,EAAE;IACf,MAAMI,KAAK,CACT,8FAA8F,GAC5FF,wBACJ,CAAC;EACH;EACA,OAAOF,UAAU;AACnB;AAEO,SAASK,oCAAoCA,CAAA,EAAG;EACrD,IAAI,CAACL,UAAU,EAAE;IACf,MAAMM,MAAM,GAAG,IAAAC,sBAAS,EAAC,CAAC,sBAAsB,CAAC,CAAC;IAClDD,MAAM,CACJ,MAAM,EACN,GAAG,gHAAgH,GAAGJ,wBAAwB,EAChJ,CAAC;EACH;EACA,OAAOF,UAAU;AACnB;AAEO,eAAeQ,sCAAsCA,CAAA,EAAG;EAC7D,MAAMC,KAAqC,GAAG,EAAE;EAChD,MAAMC,mBAAmB,GAAG,MAAMC,+BAAkB,CAACC,KAAK,CACxDD,+BAAkB,CAACE,WAAW,CAACC,MACjC,CAAC;EACD,IAAIJ,mBAAmB,EAAE;IACvBD,KAAK,CAACM,IAAI,CAAChB,4BAA4B,CAACiB,8BAA8B,CAAC;EACzE;EACA,MAAMC,uBAAuB,GAAG,MAAMN,+BAAkB,CAACC,KAAK,CAC5DD,+BAAkB,CAACE,WAAW,CAACK,YACjC,CAAC;EACD,IAAID,uBAAuB,EAAE;IAC3BR,KAAK,CAACM,IAAI,CAAChB,4BAA4B,CAACoB,kCAAkC,CAAC;EAC7E;EACA,MAAMC,uBAAuB,GAAG,MAAMT,+BAAkB,CAACC,KAAK,CAC5DD,+BAAkB,CAACE,WAAW,CAACQ,iBACjC,CAAC;EACD,IAAID,uBAAuB,EAAE;IAC3BX,KAAK,CAACM,IAAI,CACRhB,4BAA4B,CAACuB,wCAC/B,CAAC;EACH;EACA,IAAIb,KAAK,CAACc,MAAM,KAAK,CAAC,EAAE;IACtBd,KAAK,CAACM,IAAI,CAAChB,4BAA4B,CAACyB,iCAAiC,CAAC;EAC5E;EACAC,OAAO,CAACC,GAAG,CAAC;IAAEjB;EAAM,CAAC,CAAC;EACtB,OAAOA,KAAK;AACd;AAEO,SAASkB,qCAAqCA,CAAA,EAAG;EACtD,MAAMlB,KAAqC,GAAG,CAC5CV,4BAA4B,CAAC6B,qCAAqC,CACnE;EACD,OAAOnB,KAAK;AACd","ignoreList":[]}
|
package/dist/commonjs/version.js
CHANGED
|
@@ -3,11 +3,9 @@ import { useEffect, useRef } from 'react';
|
|
|
3
3
|
import { StreamVideoRN } from '../utils';
|
|
4
4
|
import { Platform } from 'react-native';
|
|
5
5
|
import { CallingState, getLogger } from '@stream-io/video-client';
|
|
6
|
-
import { getNotifeeLibNoThrowForKeepCallAlive } from '../utils/push/libs/notifee';
|
|
7
|
-
const isAndroid7OrBelow = Platform.OS === 'android' && Platform.Version < 26;
|
|
6
|
+
import { getNotifeeLibNoThrowForKeepCallAlive, getKeepCallAliveForegroundServiceTypes } from '../utils/push/libs/notifee';
|
|
8
7
|
const notifeeLib = getNotifeeLibNoThrowForKeepCallAlive();
|
|
9
8
|
function setForegroundService() {
|
|
10
|
-
if (!isAndroid7OrBelow) return;
|
|
11
9
|
notifeeLib?.default.registerForegroundService(() => {
|
|
12
10
|
return new Promise(() => {
|
|
13
11
|
const logger = getLogger(['setForegroundService method']);
|
|
@@ -16,7 +14,6 @@ function setForegroundService() {
|
|
|
16
14
|
});
|
|
17
15
|
}
|
|
18
16
|
async function startForegroundService(call_cid) {
|
|
19
|
-
if (!isAndroid7OrBelow) return;
|
|
20
17
|
const foregroundServiceConfig = StreamVideoRN.getConfig().foregroundService;
|
|
21
18
|
const {
|
|
22
19
|
title,
|
|
@@ -31,12 +28,16 @@ async function startForegroundService(call_cid) {
|
|
|
31
28
|
logger('info', 'Notification permission not granted, can not start foreground service to keep the call alive');
|
|
32
29
|
return;
|
|
33
30
|
}
|
|
34
|
-
|
|
31
|
+
const channelId = foregroundServiceConfig.android.channel.id;
|
|
32
|
+
await notifeeLib.default.createChannel(foregroundServiceConfig.android.channel);
|
|
33
|
+
const foregroundServiceTypes = await getKeepCallAliveForegroundServiceTypes();
|
|
35
34
|
await notifeeLib.default.displayNotification({
|
|
36
35
|
id: call_cid,
|
|
37
36
|
title,
|
|
38
37
|
body,
|
|
39
38
|
android: {
|
|
39
|
+
channelId,
|
|
40
|
+
foregroundServiceTypes,
|
|
40
41
|
asForegroundService: true,
|
|
41
42
|
ongoing: true,
|
|
42
43
|
// user cannot dismiss the notification
|
|
@@ -56,10 +57,10 @@ let isSetForegroundServiceRan = false;
|
|
|
56
57
|
* This hook is used to keep the call alive in the background for Android.
|
|
57
58
|
* It starts a foreground service to keep the call alive as soon as the call is joined
|
|
58
59
|
* and stops the foreground Service when the call is left.
|
|
59
|
-
*
|
|
60
|
+
* Additionally: also responsible for cancelling any notifee displayed notification when the call has transitioned out of ringing
|
|
60
61
|
*/
|
|
61
62
|
export const useAndroidKeepCallAliveEffect = () => {
|
|
62
|
-
if (!isSetForegroundServiceRan
|
|
63
|
+
if (!isSetForegroundServiceRan) {
|
|
63
64
|
isSetForegroundServiceRan = true;
|
|
64
65
|
setForegroundService();
|
|
65
66
|
}
|
|
@@ -70,10 +71,10 @@ export const useAndroidKeepCallAliveEffect = () => {
|
|
|
70
71
|
} = useCallStateHooks();
|
|
71
72
|
const callingState = useCallCallingState();
|
|
72
73
|
useEffect(() => {
|
|
73
|
-
if (!notifeeLib) return;
|
|
74
74
|
if (Platform.OS === 'ios' || !activeCallCid) {
|
|
75
75
|
return;
|
|
76
76
|
}
|
|
77
|
+
if (!notifeeLib) return;
|
|
77
78
|
|
|
78
79
|
// start foreground service as soon as the call is joined
|
|
79
80
|
if (callingState === CallingState.JOINED) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCall","useCallStateHooks","useEffect","useRef","StreamVideoRN","Platform","CallingState","getLogger","getNotifeeLibNoThrowForKeepCallAlive","
|
|
1
|
+
{"version":3,"names":["useCall","useCallStateHooks","useEffect","useRef","StreamVideoRN","Platform","CallingState","getLogger","getNotifeeLibNoThrowForKeepCallAlive","getKeepCallAliveForegroundServiceTypes","notifeeLib","setForegroundService","default","registerForegroundService","Promise","logger","startForegroundService","call_cid","foregroundServiceConfig","getConfig","foregroundService","title","body","android","notificationTexts","settings","getNotificationSettings","authorizationStatus","AuthorizationStatus","AUTHORIZED","channelId","channel","id","createChannel","foregroundServiceTypes","displayNotification","asForegroundService","ongoing","colorized","pressAction","launchActivity","isSetForegroundServiceRan","useAndroidKeepCallAliveEffect","foregroundServiceStartedRef","activeCallCid","cid","useCallCallingState","callingState","OS","JOINED","run","current","notifee","getDisplayedNotifications","then","displayedNotifications","activeCallNotification","find","notification","stopForegroundService","cancelDisplayedNotification","RINGING","IDLE","LEFT"],"sourceRoot":"../../../src","sources":["hooks/useAndroidKeepCallAliveEffect.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,6 +3,13 @@ import newNotificationCallbacks from '../internal/newNotificationCallbacks';
|
|
|
3
3
|
const DEFAULT_STREAM_VIDEO_CONFIG = {
|
|
4
4
|
foregroundService: {
|
|
5
5
|
android: {
|
|
6
|
+
channel: {
|
|
7
|
+
id: 'stream_call_foreground_service',
|
|
8
|
+
name: 'To keep calls alive',
|
|
9
|
+
lights: false,
|
|
10
|
+
vibration: false,
|
|
11
|
+
importance: 3
|
|
12
|
+
},
|
|
6
13
|
notificationTexts: {
|
|
7
14
|
title: 'Call in progress',
|
|
8
15
|
body: 'Tap to return to the call'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["pushLogoutCallbacks","newNotificationCallbacks","DEFAULT_STREAM_VIDEO_CONFIG","foregroundService","android","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","addOnNewCallNotificationListener","filter","cb"],"sourceRoot":"../../../../src","sources":["utils/StreamVideoRN/index.ts"],"mappings":"AACA,OAAOA,mBAAmB,MAAM,gCAAgC;AAChE,OAAOC,wBAAwB,MAExB,sCAAsC;AAE7C,MAAMC,2BAA8C,GAAG;EACrDC,iBAAiB,EAAE;IACjBC,OAAO,EAAE;MACPC,iBAAiB,EAAE;QACjBC,KAAK,EAAE,kBAAkB;QACzBC,IAAI,EAAE;MACR;IACF;EACF;AACF,CAAC;AAED,OAAO,MAAMC,aAAa,CAAC;EACzB,OAAeC,MAAM,
|
|
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","addOnNewCallNotificationListener","filter","cb"],"sourceRoot":"../../../../src","sources":["utils/StreamVideoRN/index.ts"],"mappings":"AACA,OAAOA,mBAAmB,MAAM,gCAAgC;AAChE,OAAOC,wBAAwB,MAExB,sCAAsC;AAE7C,MAAMC,2BAA8C,GAAG;EACrDC,iBAAiB,EAAE;IACjBC,OAAO,EAAE;MACPC,OAAO,EAAE;QACPC,EAAE,EAAE,gCAAgC;QACpCC,IAAI,EAAE,qBAAqB;QAC3BC,MAAM,EAAE,KAAK;QACbC,SAAS,EAAE,KAAK;QAChBC,UAAU,EAAE;MACd,CAAC;MACDC,iBAAiB,EAAE;QACjBC,KAAK,EAAE,kBAAkB;QACzBC,IAAI,EAAE;MACR;IACF;EACF;AACF,CAAC;AAED,OAAO,MAAMC,aAAa,CAAC;EACzB,OAAeC,MAAM,GAAGb,2BAA2B;;EAEnD;AACF;AACA;AACA;AACA;EACE,OAAOc,YAAYA,CAACA,YAAsD,EAAE;IAC1E,IAAI,CAACD,MAAM,GAAG;MACZ,GAAG,IAAI,CAACA,MAAM;MACd,GAAGC;IACL,CAAC;EACH;EAEA,OAAOC,gCAAgCA,CACrCC,aAEC,EACD;IACA,MAAMC,WAAW,GAAG,IAAI,CAACJ,MAAM,CAACK,IAAI,EAAEhB,OAAO,EAAEiB,mBAAmB;IAClE,IAAIF,WAAW,EAAE;MACf,IAAI,CAACJ,MAAM,CAACK,IAAI,CAAEhB,OAAO,CAACiB,mBAAmB,GAAG;QAC9C,GAAGF,WAAW;QACd,GAAGD;MACL,CAAC;IACH;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOI,aAAaA,CAACC,UAAkD,EAAE;IACvE,IAAI,IAAI,CAACR,MAAM,CAACK,IAAI,EAAE;MACpB;MACA;IACF;IACA,IACEI,OAAO,KACND,UAAU,CAACE,kBAAkB,IAAIF,UAAU,CAACG,sBAAsB,CAAC,EACpE;MACA,MAAM,IAAIC,KAAK,CACb;AACR;AACA,oJACM,CAAC;IACH;IAEA,IAAI,CAACZ,MAAM,CAACK,IAAI,GAAGG,UAAU;EAC/B;EAEA,OAAOK,SAASA,CAAA,EAAG;IACjB,OAAO,IAAI,CAACb,MAAM;EACpB;;EAEA;AACF;AACA;AACA;EACE,OAAOc,YAAYA,CAAA,EAAG;IACpB,IAAI7B,mBAAmB,CAAC8B,OAAO,EAAE;MAC/B,OAAOC,OAAO,CAACC,GAAG,CAChBhC,mBAAmB,CAAC8B,OAAO,CAACG,GAAG,CAAEC,QAAQ,IAAKA,QAAQ,CAAC,CAAC,CAC1D,CAAC,CAACC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAClB;IACA,OAAOJ,OAAO,CAACK,OAAO,CAAC,CAAC;EAC1B;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAOC,gCAAgCA,CACrCH,QAAqC,EACrC;IACA,IAAI,CAACjC,wBAAwB,CAAC6B,OAAO,EAAE;MACrC7B,wBAAwB,CAAC6B,OAAO,GAAG,CAACI,QAAQ,CAAC;IAC/C,CAAC,MAAM;MACLjC,wBAAwB,CAAC6B,OAAO,CAACV,IAAI,CAACc,QAAQ,CAAC;IACjD;IACA,OAAO,MAAM;MACXjC,wBAAwB,CAAC6B,OAAO,GAC9B7B,wBAAwB,CAAC6B,OAAO,EAAEQ,MAAM,CAAEC,EAAE,IAAKA,EAAE,KAAKL,QAAQ,CAAC;IACrE,CAAC;EACH;AACF","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { RxUtils, getLogger } from '@stream-io/video-client';
|
|
1
|
+
import { CallingState, RxUtils, getLogger } from '@stream-io/video-client';
|
|
2
2
|
import { AppState, Platform } from 'react-native';
|
|
3
|
-
import { getFirebaseMessagingLib, getExpoNotificationsLib, getNotifeeLibThrowIfNotInstalledForPush } from './libs';
|
|
3
|
+
import { getFirebaseMessagingLib, getExpoNotificationsLib, getNotifeeLibThrowIfNotInstalledForPush, getIncomingCallForegroundServiceTypes } from './libs';
|
|
4
4
|
import { pushAcceptedIncomingCallCId$, pushRejectedIncomingCallCId$, pushTappedIncomingCallCId$, pushNonRingingCallData$, pushUnsubscriptionCallbacks$, pushAndroidBackgroundDeliveredIncomingCallCId$ } from './internal/rxSubjects';
|
|
5
5
|
import { canAddPushWSSubscriptionsRef, clearPushWSEventSubscriptions, processCallFromPushInBackground, shouldCallBeEnded } from './internal/utils';
|
|
6
6
|
import { setPushLogoutCallback } from '../internal/pushLogoutCallback';
|
|
@@ -89,12 +89,12 @@ export const firebaseDataHandler = async data => {
|
|
|
89
89
|
const call_cid = data.call_cid;
|
|
90
90
|
const created_by_id = data.created_by_id;
|
|
91
91
|
const receiver_id = data.receiver_id;
|
|
92
|
-
|
|
92
|
+
const shouldCallBeClosed = callToCheck => {
|
|
93
93
|
const {
|
|
94
94
|
mustEndCall
|
|
95
95
|
} = shouldCallBeEnded(callToCheck, created_by_id, receiver_id);
|
|
96
96
|
return mustEndCall;
|
|
97
|
-
}
|
|
97
|
+
};
|
|
98
98
|
const canListenToWS = () => canAddPushWSSubscriptionsRef.current && AppState.currentState !== 'active';
|
|
99
99
|
const asForegroundService = canListenToWS();
|
|
100
100
|
const notifeeLib = getNotifeeLibThrowIfNotInstalledForPush();
|
|
@@ -114,14 +114,25 @@ export const firebaseDataHandler = async data => {
|
|
|
114
114
|
notifee.stopForegroundService();
|
|
115
115
|
return;
|
|
116
116
|
}
|
|
117
|
+
const unsubscribeFunctions = [];
|
|
118
|
+
// check if service needs to be closed if accept/decline event was done on another device
|
|
117
119
|
const unsubscribe = callFromPush.on('all', () => {
|
|
118
120
|
if (!canListenToWS() || shouldCallBeClosed(callFromPush)) {
|
|
119
|
-
|
|
121
|
+
unsubscribeFunctions.forEach(fn => fn());
|
|
122
|
+
notifee.stopForegroundService();
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
// check if service needs to be closed if call was left
|
|
126
|
+
const subscription = callFromPush.state.callingState$.subscribe(callingState => {
|
|
127
|
+
if (callingState === CallingState.IDLE || callingState === CallingState.LEFT) {
|
|
128
|
+
unsubscribeFunctions.forEach(fn => fn());
|
|
120
129
|
notifee.stopForegroundService();
|
|
121
130
|
}
|
|
122
131
|
});
|
|
132
|
+
unsubscribeFunctions.push(unsubscribe);
|
|
133
|
+
unsubscribeFunctions.push(() => subscription.unsubscribe());
|
|
123
134
|
const unsubscriptionCallbacks = RxUtils.getCurrentValue(pushUnsubscriptionCallbacks$) ?? [];
|
|
124
|
-
pushUnsubscriptionCallbacks$.next([...unsubscriptionCallbacks,
|
|
135
|
+
pushUnsubscriptionCallbacks$.next([...unsubscriptionCallbacks, ...unsubscribeFunctions]);
|
|
125
136
|
});
|
|
126
137
|
});
|
|
127
138
|
}
|
|
@@ -154,6 +165,7 @@ export const firebaseDataHandler = async data => {
|
|
|
154
165
|
data,
|
|
155
166
|
android: {
|
|
156
167
|
channelId,
|
|
168
|
+
foregroundServiceTypes: getIncomingCallForegroundServiceTypes(),
|
|
157
169
|
asForegroundService,
|
|
158
170
|
sound: incomingCallChannel.sound,
|
|
159
171
|
vibrationPattern: incomingCallChannel.vibrationPattern,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["RxUtils","getLogger","AppState","Platform","getFirebaseMessagingLib","getExpoNotificationsLib","getNotifeeLibThrowIfNotInstalledForPush","pushAcceptedIncomingCallCId$","pushRejectedIncomingCallCId$","pushTappedIncomingCallCId$","pushNonRingingCallData$","pushUnsubscriptionCallbacks$","pushAndroidBackgroundDeliveredIncomingCallCId$","canAddPushWSSubscriptionsRef","clearPushWSEventSubscriptions","processCallFromPushInBackground","shouldCallBeEnded","setPushLogoutCallback","getAndroidDefaultRingtoneUrl","StreamVideoRN","ACCEPT_CALL_ACTION_ID","DECLINE_CALL_ACTION_ID","lastFirebaseToken","token","userId","initAndroidPushToken","client","pushConfig","setUnsubscribeListener","OS","android","pushProviderName","setDeviceToken","streamClient","_user","id","removeDevice","err","logger","push_provider_name","addDevice","isExpo","expoNotificationsLib","subscription","addPushTokenListener","devicePushToken","data","remove","getDevicePushTokenAsync","messaging","unsubscribe","onTokenRefresh","refreshedToken","getToken","firebaseDataHandler","getConfig","push","sender","type","call_cid","created_by_id","receiver_id","shouldCallBeClosed","callToCheck","mustEndCall","canListenToWS","current","currentState","asForegroundService","notifeeLib","notifee","default","registerForegroundService","Promise","createStreamVideoClient","stopForegroundService","callFromPush","onRingingCall","on","unsubscriptionCallbacks","getCurrentValue","next","incomingCallChannel","incomingCallNotificationTextGetters","sound","createChannel","getTitle","getBody","createdUserName","created_by_display_name","channelId","displayNotification","title","body","vibrationPattern","pressAction","launchActivity","actions","category","AndroidCategory","CALL","fullScreenAction","timeoutAfter","cancelDisplayedNotification","callChannel","callNotificationTextGetters","cid","onAndroidNotifeeEvent","event","isBackground","detail","notification","notificationId","hasObservers","observed","didPressDecline","EventType","ACTION_PRESS","didDismiss","DISMISSED","mustDecline","mustAccept","PRESS","DELIVERED","onTapNonRingingCallNotification"],"sourceRoot":"../../../../src","sources":["utils/push/android.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["CallingState","RxUtils","getLogger","AppState","Platform","getFirebaseMessagingLib","getExpoNotificationsLib","getNotifeeLibThrowIfNotInstalledForPush","getIncomingCallForegroundServiceTypes","pushAcceptedIncomingCallCId$","pushRejectedIncomingCallCId$","pushTappedIncomingCallCId$","pushNonRingingCallData$","pushUnsubscriptionCallbacks$","pushAndroidBackgroundDeliveredIncomingCallCId$","canAddPushWSSubscriptionsRef","clearPushWSEventSubscriptions","processCallFromPushInBackground","shouldCallBeEnded","setPushLogoutCallback","getAndroidDefaultRingtoneUrl","StreamVideoRN","ACCEPT_CALL_ACTION_ID","DECLINE_CALL_ACTION_ID","lastFirebaseToken","token","userId","initAndroidPushToken","client","pushConfig","setUnsubscribeListener","OS","android","pushProviderName","setDeviceToken","streamClient","_user","id","removeDevice","err","logger","push_provider_name","addDevice","isExpo","expoNotificationsLib","subscription","addPushTokenListener","devicePushToken","data","remove","getDevicePushTokenAsync","messaging","unsubscribe","onTokenRefresh","refreshedToken","getToken","firebaseDataHandler","getConfig","push","sender","type","call_cid","created_by_id","receiver_id","shouldCallBeClosed","callToCheck","mustEndCall","canListenToWS","current","currentState","asForegroundService","notifeeLib","notifee","default","registerForegroundService","Promise","createStreamVideoClient","stopForegroundService","callFromPush","onRingingCall","unsubscribeFunctions","on","forEach","fn","state","callingState$","subscribe","callingState","IDLE","LEFT","unsubscriptionCallbacks","getCurrentValue","next","incomingCallChannel","incomingCallNotificationTextGetters","sound","createChannel","getTitle","getBody","createdUserName","created_by_display_name","channelId","displayNotification","title","body","foregroundServiceTypes","vibrationPattern","pressAction","launchActivity","actions","category","AndroidCategory","CALL","fullScreenAction","timeoutAfter","cancelDisplayedNotification","callChannel","callNotificationTextGetters","cid","onAndroidNotifeeEvent","event","isBackground","detail","notification","notificationId","hasObservers","observed","didPressDecline","EventType","ACTION_PRESS","didDismiss","DISMISSED","mustDecline","mustAccept","PRESS","DELIVERED","onTapNonRingingCallNotification"],"sourceRoot":"../../../../src","sources":["utils/push/android.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,10 +1,27 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { getLogger } from '@stream-io/video-client';
|
|
2
|
+
import { PermissionsAndroid } from 'react-native';
|
|
3
|
+
var AndroidForegroundServiceType = /*#__PURE__*/function (AndroidForegroundServiceType) {
|
|
4
|
+
AndroidForegroundServiceType[AndroidForegroundServiceType["FOREGROUND_SERVICE_TYPE_CAMERA"] = 64] = "FOREGROUND_SERVICE_TYPE_CAMERA";
|
|
5
|
+
AndroidForegroundServiceType[AndroidForegroundServiceType["FOREGROUND_SERVICE_TYPE_CONNECTED_DEVICE"] = 16] = "FOREGROUND_SERVICE_TYPE_CONNECTED_DEVICE";
|
|
6
|
+
AndroidForegroundServiceType[AndroidForegroundServiceType["FOREGROUND_SERVICE_TYPE_DATA_SYNC"] = 1] = "FOREGROUND_SERVICE_TYPE_DATA_SYNC";
|
|
7
|
+
AndroidForegroundServiceType[AndroidForegroundServiceType["FOREGROUND_SERVICE_TYPE_HEALTH"] = 256] = "FOREGROUND_SERVICE_TYPE_HEALTH";
|
|
8
|
+
AndroidForegroundServiceType[AndroidForegroundServiceType["FOREGROUND_SERVICE_TYPE_LOCATION"] = 8] = "FOREGROUND_SERVICE_TYPE_LOCATION";
|
|
9
|
+
AndroidForegroundServiceType[AndroidForegroundServiceType["FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK"] = 2] = "FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK";
|
|
10
|
+
AndroidForegroundServiceType[AndroidForegroundServiceType["FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION"] = 32] = "FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION";
|
|
11
|
+
AndroidForegroundServiceType[AndroidForegroundServiceType["FOREGROUND_SERVICE_TYPE_MEDIA_PROCESSING"] = 8192] = "FOREGROUND_SERVICE_TYPE_MEDIA_PROCESSING";
|
|
12
|
+
AndroidForegroundServiceType[AndroidForegroundServiceType["FOREGROUND_SERVICE_TYPE_MICROPHONE"] = 128] = "FOREGROUND_SERVICE_TYPE_MICROPHONE";
|
|
13
|
+
AndroidForegroundServiceType[AndroidForegroundServiceType["FOREGROUND_SERVICE_TYPE_PHONE_CALL"] = 4] = "FOREGROUND_SERVICE_TYPE_PHONE_CALL";
|
|
14
|
+
AndroidForegroundServiceType[AndroidForegroundServiceType["FOREGROUND_SERVICE_TYPE_REMOTE_MESSAGING"] = 512] = "FOREGROUND_SERVICE_TYPE_REMOTE_MESSAGING";
|
|
15
|
+
AndroidForegroundServiceType[AndroidForegroundServiceType["FOREGROUND_SERVICE_TYPE_SHORT_SERVICE"] = 2048] = "FOREGROUND_SERVICE_TYPE_SHORT_SERVICE";
|
|
16
|
+
AndroidForegroundServiceType[AndroidForegroundServiceType["FOREGROUND_SERVICE_TYPE_SPECIAL_USE"] = 1073741824] = "FOREGROUND_SERVICE_TYPE_SPECIAL_USE";
|
|
17
|
+
AndroidForegroundServiceType[AndroidForegroundServiceType["FOREGROUND_SERVICE_TYPE_SYSTEM_EXEMPTED"] = 1024] = "FOREGROUND_SERVICE_TYPE_SYSTEM_EXEMPTED";
|
|
18
|
+
AndroidForegroundServiceType[AndroidForegroundServiceType["FOREGROUND_SERVICE_TYPE_MANIFEST"] = -1] = "FOREGROUND_SERVICE_TYPE_MANIFEST";
|
|
19
|
+
return AndroidForegroundServiceType;
|
|
20
|
+
}(AndroidForegroundServiceType || {});
|
|
3
21
|
let notifeeLib;
|
|
4
22
|
try {
|
|
5
23
|
notifeeLib = require('@notifee/react-native');
|
|
6
24
|
} catch (_e) {}
|
|
7
|
-
const isAndroid7OrBelow = Platform.OS === 'android' && Platform.Version < 26;
|
|
8
25
|
const INSTALLATION_INSTRUCTION = 'Please see https://notifee.app/react-native/docs/installation for installation instructions';
|
|
9
26
|
export function getNotifeeLibThrowIfNotInstalledForPush() {
|
|
10
27
|
if (!notifeeLib) {
|
|
@@ -13,10 +30,36 @@ export function getNotifeeLibThrowIfNotInstalledForPush() {
|
|
|
13
30
|
return notifeeLib;
|
|
14
31
|
}
|
|
15
32
|
export function getNotifeeLibNoThrowForKeepCallAlive() {
|
|
16
|
-
if (!notifeeLib
|
|
33
|
+
if (!notifeeLib) {
|
|
17
34
|
const logger = getLogger(['getNotifeeLibNoThrow']);
|
|
18
|
-
logger('info', `${'@notifee/react-native library not installed. It is required to keep call alive in the background for Android
|
|
35
|
+
logger('info', `${'@notifee/react-native library not installed. It is required to keep call alive in the background for Android. '}${INSTALLATION_INSTRUCTION}`);
|
|
19
36
|
}
|
|
20
37
|
return notifeeLib;
|
|
21
38
|
}
|
|
39
|
+
export async function getKeepCallAliveForegroundServiceTypes() {
|
|
40
|
+
const types = [];
|
|
41
|
+
const hasCameraPermission = await PermissionsAndroid.check(PermissionsAndroid.PERMISSIONS.CAMERA);
|
|
42
|
+
if (hasCameraPermission) {
|
|
43
|
+
types.push(AndroidForegroundServiceType.FOREGROUND_SERVICE_TYPE_CAMERA);
|
|
44
|
+
}
|
|
45
|
+
const hasMicrophonePermission = await PermissionsAndroid.check(PermissionsAndroid.PERMISSIONS.RECORD_AUDIO);
|
|
46
|
+
if (hasMicrophonePermission) {
|
|
47
|
+
types.push(AndroidForegroundServiceType.FOREGROUND_SERVICE_TYPE_MICROPHONE);
|
|
48
|
+
}
|
|
49
|
+
const hasConnectionPermission = await PermissionsAndroid.check(PermissionsAndroid.PERMISSIONS.BLUETOOTH_CONNECT);
|
|
50
|
+
if (hasConnectionPermission) {
|
|
51
|
+
types.push(AndroidForegroundServiceType.FOREGROUND_SERVICE_TYPE_CONNECTED_DEVICE);
|
|
52
|
+
}
|
|
53
|
+
if (types.length === 0) {
|
|
54
|
+
types.push(AndroidForegroundServiceType.FOREGROUND_SERVICE_TYPE_DATA_SYNC);
|
|
55
|
+
}
|
|
56
|
+
console.log({
|
|
57
|
+
types
|
|
58
|
+
});
|
|
59
|
+
return types;
|
|
60
|
+
}
|
|
61
|
+
export function getIncomingCallForegroundServiceTypes() {
|
|
62
|
+
const types = [AndroidForegroundServiceType.FOREGROUND_SERVICE_TYPE_SHORT_SERVICE];
|
|
63
|
+
return types;
|
|
64
|
+
}
|
|
22
65
|
//# sourceMappingURL=notifee.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["getLogger","PermissionsAndroid","AndroidForegroundServiceType","notifeeLib","require","_e","INSTALLATION_INSTRUCTION","getNotifeeLibThrowIfNotInstalledForPush","Error","getNotifeeLibNoThrowForKeepCallAlive","logger","getKeepCallAliveForegroundServiceTypes","types","hasCameraPermission","check","PERMISSIONS","CAMERA","push","FOREGROUND_SERVICE_TYPE_CAMERA","hasMicrophonePermission","RECORD_AUDIO","FOREGROUND_SERVICE_TYPE_MICROPHONE","hasConnectionPermission","BLUETOOTH_CONNECT","FOREGROUND_SERVICE_TYPE_CONNECTED_DEVICE","length","FOREGROUND_SERVICE_TYPE_DATA_SYNC","console","log","getIncomingCallForegroundServiceTypes","FOREGROUND_SERVICE_TYPE_SHORT_SERVICE"],"sourceRoot":"../../../../../src","sources":["utils/push/libs/notifee.ts"],"mappings":"AAAA,SAASA,SAAS,QAAQ,yBAAyB;AACnD,SAASC,kBAAkB,QAAQ,cAAc;AAAC,IAI7CC,4BAA4B,0BAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAAA,OAA5BA,4BAA4B;AAAA,EAA5BA,4BAA4B;AAkBjC,IAAIC,UAAkC;AAEtC,IAAI;EACFA,UAAU,GAAGC,OAAO,CAAC,uBAAuB,CAAC;AAC/C,CAAC,CAAC,OAAOC,EAAE,EAAE,CAAC;AAEd,MAAMC,wBAAwB,GAC5B,6FAA6F;AAE/F,OAAO,SAASC,uCAAuCA,CAAA,EAAG;EACxD,IAAI,CAACJ,UAAU,EAAE;IACf,MAAMK,KAAK,CACT,8FAA8F,GAC5FF,wBACJ,CAAC;EACH;EACA,OAAOH,UAAU;AACnB;AAEA,OAAO,SAASM,oCAAoCA,CAAA,EAAG;EACrD,IAAI,CAACN,UAAU,EAAE;IACf,MAAMO,MAAM,GAAGV,SAAS,CAAC,CAAC,sBAAsB,CAAC,CAAC;IAClDU,MAAM,CACJ,MAAM,EACN,GAAG,gHAAgH,GAAGJ,wBAAwB,EAChJ,CAAC;EACH;EACA,OAAOH,UAAU;AACnB;AAEA,OAAO,eAAeQ,sCAAsCA,CAAA,EAAG;EAC7D,MAAMC,KAAqC,GAAG,EAAE;EAChD,MAAMC,mBAAmB,GAAG,MAAMZ,kBAAkB,CAACa,KAAK,CACxDb,kBAAkB,CAACc,WAAW,CAACC,MACjC,CAAC;EACD,IAAIH,mBAAmB,EAAE;IACvBD,KAAK,CAACK,IAAI,CAACf,4BAA4B,CAACgB,8BAA8B,CAAC;EACzE;EACA,MAAMC,uBAAuB,GAAG,MAAMlB,kBAAkB,CAACa,KAAK,CAC5Db,kBAAkB,CAACc,WAAW,CAACK,YACjC,CAAC;EACD,IAAID,uBAAuB,EAAE;IAC3BP,KAAK,CAACK,IAAI,CAACf,4BAA4B,CAACmB,kCAAkC,CAAC;EAC7E;EACA,MAAMC,uBAAuB,GAAG,MAAMrB,kBAAkB,CAACa,KAAK,CAC5Db,kBAAkB,CAACc,WAAW,CAACQ,iBACjC,CAAC;EACD,IAAID,uBAAuB,EAAE;IAC3BV,KAAK,CAACK,IAAI,CACRf,4BAA4B,CAACsB,wCAC/B,CAAC;EACH;EACA,IAAIZ,KAAK,CAACa,MAAM,KAAK,CAAC,EAAE;IACtBb,KAAK,CAACK,IAAI,CAACf,4BAA4B,CAACwB,iCAAiC,CAAC;EAC5E;EACAC,OAAO,CAACC,GAAG,CAAC;IAAEhB;EAAM,CAAC,CAAC;EACtB,OAAOA,KAAK;AACd;AAEA,OAAO,SAASiB,qCAAqCA,CAAA,EAAG;EACtD,MAAMjB,KAAqC,GAAG,CAC5CV,4BAA4B,CAAC4B,qCAAqC,CACnE;EACD,OAAOlB,KAAK;AACd","ignoreList":[]}
|
package/dist/module/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const version = '1.3.
|
|
1
|
+
export const version = '1.3.3';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* This hook is used to keep the call alive in the background for Android.
|
|
3
3
|
* It starts a foreground service to keep the call alive as soon as the call is joined
|
|
4
4
|
* and stops the foreground Service when the call is left.
|
|
5
|
-
*
|
|
5
|
+
* Additionally: also responsible for cancelling any notifee displayed notification when the call has transitioned out of ringing
|
|
6
6
|
*/
|
|
7
7
|
export declare const useAndroidKeepCallAliveEffect: () => void;
|
|
8
8
|
//# sourceMappingURL=useAndroidKeepCallAliveEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAndroidKeepCallAliveEffect.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAndroidKeepCallAliveEffect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useAndroidKeepCallAliveEffect.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAndroidKeepCallAliveEffect.ts"],"names":[],"mappings":"AAgEA;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,YAgFzC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/StreamVideoRN/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAiC,EAC/B,2BAA2B,EAC5B,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/StreamVideoRN/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAiC,EAC/B,2BAA2B,EAC5B,MAAM,sCAAsC,CAAC;AAoB9C,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,MAAM,CAA+B;IAEpD;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IAO1E,MAAM,CAAC,gCAAgC,CACrC,aAAa,EAAE,OAAO,CACpB,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CACzE;IAWH;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,aAAa,CAAC,UAAU,EAAE,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAmBvE,MAAM,CAAC,SAAS;IAIhB;;;OAGG;IACH,MAAM,CAAC,YAAY;IASnB;;;;OAIG;IACH,MAAM,CAAC,gCAAgC,CACrC,QAAQ,EAAE,2BAA2B;CAYxC"}
|
|
@@ -113,10 +113,12 @@ export type StreamVideoConfig = {
|
|
|
113
113
|
};
|
|
114
114
|
foregroundService: {
|
|
115
115
|
android: {
|
|
116
|
+
/**
|
|
117
|
+
* The notification channel to keep call alive in the background for Android using a foreground service.
|
|
118
|
+
*/
|
|
119
|
+
channel: AndroidChannel;
|
|
116
120
|
/**
|
|
117
121
|
* The texts shown in the notification to keep call alive in the background
|
|
118
|
-
* for Android 24 and 25 platforms using a foreground service.
|
|
119
|
-
* On Android 26 and above, Picture in Picture mode is used to keep the call alive.
|
|
120
122
|
*/
|
|
121
123
|
notificationTexts: {
|
|
122
124
|
title: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/utils/StreamVideoRN/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,MAAM,mBAAmB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAE5E,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;;;OAIG;IACH,IAAI,CAAC,EAAE;QACL,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB;;;;WAIG;QACH,cAAc,CAAC,EAAE,cAAc,CAAC;QAChC,GAAG,EAAE;YACH;;;;eAIG;YACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;SAC3B,CAAC;QACF,OAAO,EAAE;YACP;;;;eAIG;YACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAC1B;;;;;;;;;eASG;YACH,WAAW,CAAC,EAAE,cAAc,CAAC;YAC7B;;;;;;;;;eASG;YACH,mBAAmB,CAAC,EAAE,cAAc,CAAC;YACrC;;;;;;;eAOG;YACH,mCAAmC,CAAC,EAAE;gBACpC,QAAQ,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,MAAM,CAAC;gBAC9C,OAAO,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,MAAM,CAAC;aAC9C,CAAC;YACF;;;;;;;;;;;;;eAaG;YACH,2BAA2B,CAAC,EAAE;gBAC5B,QAAQ,EAAE,CACR,IAAI,EAAE,mBAAmB,EACzB,eAAe,EAAE,MAAM,KACpB,MAAM,CAAC;gBACZ,OAAO,EAAE,CAAC,IAAI,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,KAAK,MAAM,CAAC;aACzE,CAAC;SACH,CAAC;QACF;;;;;;;;;;;;;;;;;WAiBG;QACH,uBAAuB,EAAE,MAAM,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAC;QACtE;yJACiJ;QACjJ,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;QAChC;yJACiJ;QACjJ,sBAAsB,CAAC,EAAE,MAAM,IAAI,CAAC;QACpC,8EAA8E;QAC9E,+BAA+B,CAAC,EAAE,CAChC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,mBAAmB,KACtB,IAAI,CAAC;KACX,CAAC;IACF,iBAAiB,EAAE;QACjB,OAAO,EAAE;YACP
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/utils/StreamVideoRN/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,MAAM,mBAAmB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAE5E,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;;;OAIG;IACH,IAAI,CAAC,EAAE;QACL,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB;;;;WAIG;QACH,cAAc,CAAC,EAAE,cAAc,CAAC;QAChC,GAAG,EAAE;YACH;;;;eAIG;YACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;SAC3B,CAAC;QACF,OAAO,EAAE;YACP;;;;eAIG;YACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAC1B;;;;;;;;;eASG;YACH,WAAW,CAAC,EAAE,cAAc,CAAC;YAC7B;;;;;;;;;eASG;YACH,mBAAmB,CAAC,EAAE,cAAc,CAAC;YACrC;;;;;;;eAOG;YACH,mCAAmC,CAAC,EAAE;gBACpC,QAAQ,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,MAAM,CAAC;gBAC9C,OAAO,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,MAAM,CAAC;aAC9C,CAAC;YACF;;;;;;;;;;;;;eAaG;YACH,2BAA2B,CAAC,EAAE;gBAC5B,QAAQ,EAAE,CACR,IAAI,EAAE,mBAAmB,EACzB,eAAe,EAAE,MAAM,KACpB,MAAM,CAAC;gBACZ,OAAO,EAAE,CAAC,IAAI,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,KAAK,MAAM,CAAC;aACzE,CAAC;SACH,CAAC;QACF;;;;;;;;;;;;;;;;;WAiBG;QACH,uBAAuB,EAAE,MAAM,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAC;QACtE;yJACiJ;QACjJ,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;QAChC;yJACiJ;QACjJ,sBAAsB,CAAC,EAAE,MAAM,IAAI,CAAC;QACpC,8EAA8E;QAC9E,+BAA+B,CAAC,EAAE,CAChC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,mBAAmB,KACtB,IAAI,CAAC;KACX,CAAC;IACF,iBAAiB,EAAE;QACjB,OAAO,EAAE;YACP;;eAEG;YACH,OAAO,EAAE,cAAc,CAAC;YACxB;;eAEG;YACH,iBAAiB,EAAE;gBACjB,KAAK,EAAE,MAAM,CAAC;gBACd,IAAI,EAAE,MAAM,CAAC;aACd,CAAC;SACH,CAAC;KACH,CAAC;CACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"android.d.ts","sourceRoot":"","sources":["../../../../src/utils/push/android.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"android.d.ts","sourceRoot":"","sources":["../../../../src/utils/push/android.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,iBAAiB,EAElB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAEV,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAIL,UAAU,EACV,sBAAsB,EAEvB,MAAM,QAAQ,CAAC;AAsBhB,KAAK,UAAU,GAAG,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;AAEzD,KAAK,+BAA+B,GAAG,UAAU,CAC/C,UAAU,CAAC,SAAS,CAAC,CAAC,mBAAmB,CAAC,CAC3C,CAAC,CAAC,CAAC,CAAC;AAEL,KAAK,KAAK,GAAG,UAAU,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC,CAAC;AAI5D,0DAA0D;AAC1D,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,iBAAiB,EACzB,UAAU,EAAE,UAAU,EACtB,sBAAsB,EAAE,CAAC,WAAW,EAAE,MAAM,IAAI,KAAK,IAAI,iBA+C1D;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,SACxB,sBAAsB,CAAC,aAAa,CAAC,MAAM,CAAC,kBAgNnD,CAAC;AAEF,eAAO,MAAM,qBAAqB,6BAG/B;IACD,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,EAAE,OAAO,CAAC;CACvB,kBA2EA,CAAC"}
|
|
@@ -1,4 +1,24 @@
|
|
|
1
1
|
export type NotifeeLib = typeof import('@notifee/react-native');
|
|
2
|
+
declare enum AndroidForegroundServiceType {
|
|
3
|
+
FOREGROUND_SERVICE_TYPE_CAMERA = 64,
|
|
4
|
+
FOREGROUND_SERVICE_TYPE_CONNECTED_DEVICE = 16,
|
|
5
|
+
FOREGROUND_SERVICE_TYPE_DATA_SYNC = 1,
|
|
6
|
+
FOREGROUND_SERVICE_TYPE_HEALTH = 256,
|
|
7
|
+
FOREGROUND_SERVICE_TYPE_LOCATION = 8,
|
|
8
|
+
FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK = 2,
|
|
9
|
+
FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION = 32,
|
|
10
|
+
FOREGROUND_SERVICE_TYPE_MEDIA_PROCESSING = 8192,
|
|
11
|
+
FOREGROUND_SERVICE_TYPE_MICROPHONE = 128,
|
|
12
|
+
FOREGROUND_SERVICE_TYPE_PHONE_CALL = 4,
|
|
13
|
+
FOREGROUND_SERVICE_TYPE_REMOTE_MESSAGING = 512,
|
|
14
|
+
FOREGROUND_SERVICE_TYPE_SHORT_SERVICE = 2048,
|
|
15
|
+
FOREGROUND_SERVICE_TYPE_SPECIAL_USE = 1073741824,
|
|
16
|
+
FOREGROUND_SERVICE_TYPE_SYSTEM_EXEMPTED = 1024,
|
|
17
|
+
FOREGROUND_SERVICE_TYPE_MANIFEST = -1
|
|
18
|
+
}
|
|
2
19
|
export declare function getNotifeeLibThrowIfNotInstalledForPush(): typeof import("@notifee/react-native");
|
|
3
20
|
export declare function getNotifeeLibNoThrowForKeepCallAlive(): typeof import("@notifee/react-native") | undefined;
|
|
21
|
+
export declare function getKeepCallAliveForegroundServiceTypes(): Promise<AndroidForegroundServiceType[]>;
|
|
22
|
+
export declare function getIncomingCallForegroundServiceTypes(): AndroidForegroundServiceType[];
|
|
23
|
+
export {};
|
|
4
24
|
//# sourceMappingURL=notifee.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifee.d.ts","sourceRoot":"","sources":["../../../../../src/utils/push/libs/notifee.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,UAAU,GAAG,cAAc,uBAAuB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"notifee.d.ts","sourceRoot":"","sources":["../../../../../src/utils/push/libs/notifee.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,UAAU,GAAG,cAAc,uBAAuB,CAAC,CAAC;AAEhE,aAAK,4BAA4B;IAC/B,8BAA8B,KAAK;IACnC,wCAAwC,KAAK;IAC7C,iCAAiC,IAAI;IACrC,8BAA8B,MAAM;IACpC,gCAAgC,IAAI;IACpC,sCAAsC,IAAI;IAC1C,wCAAwC,KAAK;IAC7C,wCAAwC,OAAO;IAC/C,kCAAkC,MAAM;IACxC,kCAAkC,IAAI;IACtC,wCAAwC,MAAM;IAC9C,qCAAqC,OAAO;IAC5C,mCAAmC,aAAa;IAChD,uCAAuC,OAAO;IAC9C,gCAAgC,KAAK;CACtC;AAWD,wBAAgB,uCAAuC,2CAQtD;AAED,wBAAgB,oCAAoC,uDASnD;AAED,wBAAsB,sCAAsC,4CA2B3D;AAED,wBAAgB,qCAAqC,mCAKpD"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "1.3.
|
|
1
|
+
export declare const version = "1.3.3";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
|
@@ -10,6 +10,7 @@ export type ConfigProps = {
|
|
|
10
10
|
ringingPushNotifications?: RingingPushNotifications;
|
|
11
11
|
enableNonRingingPushNotifications?: boolean;
|
|
12
12
|
androidPictureInPicture?: AndroidPictureInPicture;
|
|
13
|
+
androidKeepCallAlive?: boolean;
|
|
13
14
|
enableScreenshare?: boolean;
|
|
14
15
|
appleTeamId?: string;
|
|
15
16
|
} | undefined;
|
|
@@ -2,14 +2,18 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const config_plugins_1 = require("@expo/config-plugins");
|
|
4
4
|
const { prefixAndroidKeys, getMainApplicationOrThrow, getMainActivityOrThrow } = config_plugins_1.AndroidConfig.Manifest;
|
|
5
|
-
function getNotifeeService() {
|
|
5
|
+
function getNotifeeService(isKeepCallAliveEnabled = false) {
|
|
6
6
|
/* We add this service to the AndroidManifest.xml:
|
|
7
7
|
<service
|
|
8
8
|
android:name="app.notifee.core.ForegroundService"
|
|
9
9
|
android:stopWithTask="true"
|
|
10
10
|
android:foregroundServiceType="shortService" />
|
|
11
11
|
*/
|
|
12
|
-
|
|
12
|
+
let foregroundServiceType = 'shortService';
|
|
13
|
+
if (isKeepCallAliveEnabled) {
|
|
14
|
+
foregroundServiceType =
|
|
15
|
+
'dataSync|camera|microphone|connectedDevice|' + foregroundServiceType;
|
|
16
|
+
}
|
|
13
17
|
let head = prefixAndroidKeys({
|
|
14
18
|
name: 'app.notifee.core.ForegroundService',
|
|
15
19
|
stopWithTask: 'true',
|
|
@@ -24,12 +28,12 @@ const withStreamVideoReactNativeSDKManifest = (configuration, props) => {
|
|
|
24
28
|
return (0, config_plugins_1.withAndroidManifest)(configuration, (config) => {
|
|
25
29
|
const androidManifest = config.modResults;
|
|
26
30
|
const mainApplication = getMainApplicationOrThrow(androidManifest);
|
|
27
|
-
if (props?.ringingPushNotifications) {
|
|
31
|
+
if (props?.ringingPushNotifications || props?.androidKeepCallAlive) {
|
|
28
32
|
/* Add the notifee foreground Service */
|
|
29
33
|
let services = mainApplication.service ?? [];
|
|
30
34
|
// we filter out the existing notifee service (if any) so that we can override it
|
|
31
35
|
services = services.filter((service) => service.$['android:name'] !== 'app.notifee.core.ForegroundService');
|
|
32
|
-
services.push(getNotifeeService());
|
|
36
|
+
services.push(getNotifeeService(!!props?.androidKeepCallAlive));
|
|
33
37
|
mainApplication.service = services;
|
|
34
38
|
}
|
|
35
39
|
if (props?.androidPictureInPicture) {
|
|
@@ -13,6 +13,9 @@ const withStreamVideoReactNativeSDKAndroidPermissions = (configuration, props) =
|
|
|
13
13
|
permissions.push('android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION');
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
|
+
if (props?.androidKeepCallAlive) {
|
|
17
|
+
permissions.push('android.permission.FOREGROUND_SERVICE_CAMERA', 'android.permission.FOREGROUND_SERVICE_MICROPHONE', 'android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE', 'android.permission.FOREGROUND_SERVICE_DATA_SYNC');
|
|
18
|
+
}
|
|
16
19
|
if (props?.ringingPushNotifications?.showWhenLockedAndroid) {
|
|
17
20
|
permissions.push('android.permission.USE_FULL_SCREEN_INTENT');
|
|
18
21
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stream-io/video-react-native-sdk",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.3",
|
|
4
4
|
"packageManager": "yarn@3.2.4",
|
|
5
5
|
"main": "dist/commonjs/index.js",
|
|
6
6
|
"module": "dist/module/index.js",
|
|
@@ -46,8 +46,8 @@
|
|
|
46
46
|
"!**/.*"
|
|
47
47
|
],
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@stream-io/video-client": "1.11.
|
|
50
|
-
"@stream-io/video-react-bindings": "1.1.
|
|
49
|
+
"@stream-io/video-client": "1.11.2",
|
|
50
|
+
"@stream-io/video-react-bindings": "1.1.19",
|
|
51
51
|
"intl-pluralrules": "2.0.1",
|
|
52
52
|
"lodash.merge": "^4.6.2",
|
|
53
53
|
"react-native-url-polyfill": "1.3.0",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"text-encoding-polyfill": "0.6.7"
|
|
56
56
|
},
|
|
57
57
|
"peerDependencies": {
|
|
58
|
-
"@notifee/react-native": ">=
|
|
58
|
+
"@notifee/react-native": ">=9.0.0",
|
|
59
59
|
"@react-native-community/netinfo": ">=9.0.0",
|
|
60
60
|
"@react-native-community/push-notification-ios": ">=1.11.0",
|
|
61
61
|
"@react-native-firebase/app": ">=17.5.0",
|
|
@@ -115,7 +115,7 @@
|
|
|
115
115
|
"devDependencies": {
|
|
116
116
|
"@babel/preset-typescript": "^7.24.7",
|
|
117
117
|
"@expo/config-plugins": "~7.8.4",
|
|
118
|
-
"@notifee/react-native": "
|
|
118
|
+
"@notifee/react-native": "9.1.2",
|
|
119
119
|
"@react-native-community/netinfo": "9.3.9",
|
|
120
120
|
"@react-native-community/push-notification-ios": "1.11.0",
|
|
121
121
|
"@react-native-firebase/app": "19.2.2",
|
|
@@ -3,14 +3,14 @@ import { useEffect, useRef } from 'react';
|
|
|
3
3
|
import { StreamVideoRN } from '../utils';
|
|
4
4
|
import { Platform } from 'react-native';
|
|
5
5
|
import { CallingState, getLogger } from '@stream-io/video-client';
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
import {
|
|
7
|
+
getNotifeeLibNoThrowForKeepCallAlive,
|
|
8
|
+
getKeepCallAliveForegroundServiceTypes,
|
|
9
|
+
} from '../utils/push/libs/notifee';
|
|
9
10
|
|
|
10
11
|
const notifeeLib = getNotifeeLibNoThrowForKeepCallAlive();
|
|
11
12
|
|
|
12
13
|
function setForegroundService() {
|
|
13
|
-
if (!isAndroid7OrBelow) return;
|
|
14
14
|
notifeeLib?.default.registerForegroundService(() => {
|
|
15
15
|
return new Promise(() => {
|
|
16
16
|
const logger = getLogger(['setForegroundService method']);
|
|
@@ -20,7 +20,6 @@ function setForegroundService() {
|
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
async function startForegroundService(call_cid: string) {
|
|
23
|
-
if (!isAndroid7OrBelow) return;
|
|
24
23
|
const foregroundServiceConfig = StreamVideoRN.getConfig().foregroundService;
|
|
25
24
|
const { title, body } = foregroundServiceConfig.android.notificationTexts;
|
|
26
25
|
|
|
@@ -37,12 +36,18 @@ async function startForegroundService(call_cid: string) {
|
|
|
37
36
|
);
|
|
38
37
|
return;
|
|
39
38
|
}
|
|
40
|
-
|
|
39
|
+
const channelId = foregroundServiceConfig.android.channel.id;
|
|
40
|
+
await notifeeLib.default.createChannel(
|
|
41
|
+
foregroundServiceConfig.android.channel
|
|
42
|
+
);
|
|
43
|
+
const foregroundServiceTypes = await getKeepCallAliveForegroundServiceTypes();
|
|
41
44
|
await notifeeLib.default.displayNotification({
|
|
42
45
|
id: call_cid,
|
|
43
46
|
title,
|
|
44
47
|
body,
|
|
45
48
|
android: {
|
|
49
|
+
channelId,
|
|
50
|
+
foregroundServiceTypes,
|
|
46
51
|
asForegroundService: true,
|
|
47
52
|
ongoing: true, // user cannot dismiss the notification
|
|
48
53
|
colorized: true,
|
|
@@ -61,10 +66,10 @@ let isSetForegroundServiceRan = false;
|
|
|
61
66
|
* This hook is used to keep the call alive in the background for Android.
|
|
62
67
|
* It starts a foreground service to keep the call alive as soon as the call is joined
|
|
63
68
|
* and stops the foreground Service when the call is left.
|
|
64
|
-
*
|
|
69
|
+
* Additionally: also responsible for cancelling any notifee displayed notification when the call has transitioned out of ringing
|
|
65
70
|
*/
|
|
66
71
|
export const useAndroidKeepCallAliveEffect = () => {
|
|
67
|
-
if (!isSetForegroundServiceRan
|
|
72
|
+
if (!isSetForegroundServiceRan) {
|
|
68
73
|
isSetForegroundServiceRan = true;
|
|
69
74
|
setForegroundService();
|
|
70
75
|
}
|
|
@@ -75,10 +80,10 @@ export const useAndroidKeepCallAliveEffect = () => {
|
|
|
75
80
|
const callingState = useCallCallingState();
|
|
76
81
|
|
|
77
82
|
useEffect((): (() => void) | undefined => {
|
|
78
|
-
if (!notifeeLib) return;
|
|
79
83
|
if (Platform.OS === 'ios' || !activeCallCid) {
|
|
80
84
|
return;
|
|
81
85
|
}
|
|
86
|
+
if (!notifeeLib) return;
|
|
82
87
|
|
|
83
88
|
// start foreground service as soon as the call is joined
|
|
84
89
|
if (callingState === CallingState.JOINED) {
|
|
@@ -7,6 +7,13 @@ import newNotificationCallbacks, {
|
|
|
7
7
|
const DEFAULT_STREAM_VIDEO_CONFIG: StreamVideoConfig = {
|
|
8
8
|
foregroundService: {
|
|
9
9
|
android: {
|
|
10
|
+
channel: {
|
|
11
|
+
id: 'stream_call_foreground_service',
|
|
12
|
+
name: 'To keep calls alive',
|
|
13
|
+
lights: false,
|
|
14
|
+
vibration: false,
|
|
15
|
+
importance: 3,
|
|
16
|
+
},
|
|
10
17
|
notificationTexts: {
|
|
11
18
|
title: 'Call in progress',
|
|
12
19
|
body: 'Tap to return to the call',
|
|
@@ -121,10 +121,12 @@ export type StreamVideoConfig = {
|
|
|
121
121
|
};
|
|
122
122
|
foregroundService: {
|
|
123
123
|
android: {
|
|
124
|
+
/**
|
|
125
|
+
* The notification channel to keep call alive in the background for Android using a foreground service.
|
|
126
|
+
*/
|
|
127
|
+
channel: AndroidChannel;
|
|
124
128
|
/**
|
|
125
129
|
* The texts shown in the notification to keep call alive in the background
|
|
126
|
-
* for Android 24 and 25 platforms using a foreground service.
|
|
127
|
-
* On Android 26 and above, Picture in Picture mode is used to keep the call alive.
|
|
128
130
|
*/
|
|
129
131
|
notificationTexts: {
|
|
130
132
|
title: string;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Call,
|
|
3
|
+
CallingState,
|
|
3
4
|
RxUtils,
|
|
4
5
|
StreamVideoClient,
|
|
5
6
|
getLogger,
|
|
@@ -15,6 +16,7 @@ import {
|
|
|
15
16
|
getNotifeeLibThrowIfNotInstalledForPush,
|
|
16
17
|
NotifeeLib,
|
|
17
18
|
FirebaseMessagingTypes,
|
|
19
|
+
getIncomingCallForegroundServiceTypes,
|
|
18
20
|
} from './libs';
|
|
19
21
|
import {
|
|
20
22
|
pushAcceptedIncomingCallCId$,
|
|
@@ -133,14 +135,14 @@ export const firebaseDataHandler = async (
|
|
|
133
135
|
const created_by_id = data.created_by_id as string;
|
|
134
136
|
const receiver_id = data.receiver_id as string;
|
|
135
137
|
|
|
136
|
-
|
|
138
|
+
const shouldCallBeClosed = (callToCheck: Call) => {
|
|
137
139
|
const { mustEndCall } = shouldCallBeEnded(
|
|
138
140
|
callToCheck,
|
|
139
141
|
created_by_id,
|
|
140
142
|
receiver_id
|
|
141
143
|
);
|
|
142
144
|
return mustEndCall;
|
|
143
|
-
}
|
|
145
|
+
};
|
|
144
146
|
|
|
145
147
|
const canListenToWS = () =>
|
|
146
148
|
canAddPushWSSubscriptionsRef.current &&
|
|
@@ -165,17 +167,33 @@ export const firebaseDataHandler = async (
|
|
|
165
167
|
notifee.stopForegroundService();
|
|
166
168
|
return;
|
|
167
169
|
}
|
|
170
|
+
const unsubscribeFunctions: Array<() => void> = [];
|
|
171
|
+
// check if service needs to be closed if accept/decline event was done on another device
|
|
168
172
|
const unsubscribe = callFromPush.on('all', () => {
|
|
169
173
|
if (!canListenToWS() || shouldCallBeClosed(callFromPush)) {
|
|
170
|
-
|
|
174
|
+
unsubscribeFunctions.forEach((fn) => fn());
|
|
171
175
|
notifee.stopForegroundService();
|
|
172
176
|
}
|
|
173
177
|
});
|
|
178
|
+
// check if service needs to be closed if call was left
|
|
179
|
+
const subscription = callFromPush.state.callingState$.subscribe(
|
|
180
|
+
(callingState) => {
|
|
181
|
+
if (
|
|
182
|
+
callingState === CallingState.IDLE ||
|
|
183
|
+
callingState === CallingState.LEFT
|
|
184
|
+
) {
|
|
185
|
+
unsubscribeFunctions.forEach((fn) => fn());
|
|
186
|
+
notifee.stopForegroundService();
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
);
|
|
190
|
+
unsubscribeFunctions.push(unsubscribe);
|
|
191
|
+
unsubscribeFunctions.push(() => subscription.unsubscribe());
|
|
174
192
|
const unsubscriptionCallbacks =
|
|
175
193
|
RxUtils.getCurrentValue(pushUnsubscriptionCallbacks$) ?? [];
|
|
176
194
|
pushUnsubscriptionCallbacks$.next([
|
|
177
195
|
...unsubscriptionCallbacks,
|
|
178
|
-
|
|
196
|
+
...unsubscribeFunctions,
|
|
179
197
|
]);
|
|
180
198
|
});
|
|
181
199
|
});
|
|
@@ -211,6 +229,7 @@ export const firebaseDataHandler = async (
|
|
|
211
229
|
data,
|
|
212
230
|
android: {
|
|
213
231
|
channelId,
|
|
232
|
+
foregroundServiceTypes: getIncomingCallForegroundServiceTypes(),
|
|
214
233
|
asForegroundService,
|
|
215
234
|
sound: incomingCallChannel.sound,
|
|
216
235
|
vibrationPattern: incomingCallChannel.vibrationPattern,
|
|
@@ -1,16 +1,32 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { getLogger } from '@stream-io/video-client';
|
|
2
|
+
import { PermissionsAndroid } from 'react-native';
|
|
3
3
|
|
|
4
4
|
export type NotifeeLib = typeof import('@notifee/react-native');
|
|
5
5
|
|
|
6
|
+
enum AndroidForegroundServiceType {
|
|
7
|
+
FOREGROUND_SERVICE_TYPE_CAMERA = 64,
|
|
8
|
+
FOREGROUND_SERVICE_TYPE_CONNECTED_DEVICE = 16,
|
|
9
|
+
FOREGROUND_SERVICE_TYPE_DATA_SYNC = 1,
|
|
10
|
+
FOREGROUND_SERVICE_TYPE_HEALTH = 256,
|
|
11
|
+
FOREGROUND_SERVICE_TYPE_LOCATION = 8,
|
|
12
|
+
FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK = 2,
|
|
13
|
+
FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION = 32,
|
|
14
|
+
FOREGROUND_SERVICE_TYPE_MEDIA_PROCESSING = 8192,
|
|
15
|
+
FOREGROUND_SERVICE_TYPE_MICROPHONE = 128,
|
|
16
|
+
FOREGROUND_SERVICE_TYPE_PHONE_CALL = 4,
|
|
17
|
+
FOREGROUND_SERVICE_TYPE_REMOTE_MESSAGING = 512,
|
|
18
|
+
FOREGROUND_SERVICE_TYPE_SHORT_SERVICE = 2048,
|
|
19
|
+
FOREGROUND_SERVICE_TYPE_SPECIAL_USE = 1073741824,
|
|
20
|
+
FOREGROUND_SERVICE_TYPE_SYSTEM_EXEMPTED = 1024,
|
|
21
|
+
FOREGROUND_SERVICE_TYPE_MANIFEST = -1,
|
|
22
|
+
}
|
|
23
|
+
|
|
6
24
|
let notifeeLib: NotifeeLib | undefined;
|
|
7
25
|
|
|
8
26
|
try {
|
|
9
27
|
notifeeLib = require('@notifee/react-native');
|
|
10
28
|
} catch (_e) {}
|
|
11
29
|
|
|
12
|
-
const isAndroid7OrBelow = Platform.OS === 'android' && Platform.Version < 26;
|
|
13
|
-
|
|
14
30
|
const INSTALLATION_INSTRUCTION =
|
|
15
31
|
'Please see https://notifee.app/react-native/docs/installation for installation instructions';
|
|
16
32
|
|
|
@@ -25,12 +41,48 @@ export function getNotifeeLibThrowIfNotInstalledForPush() {
|
|
|
25
41
|
}
|
|
26
42
|
|
|
27
43
|
export function getNotifeeLibNoThrowForKeepCallAlive() {
|
|
28
|
-
if (!notifeeLib
|
|
44
|
+
if (!notifeeLib) {
|
|
29
45
|
const logger = getLogger(['getNotifeeLibNoThrow']);
|
|
30
46
|
logger(
|
|
31
47
|
'info',
|
|
32
|
-
`${'@notifee/react-native library not installed. It is required to keep call alive in the background for Android
|
|
48
|
+
`${'@notifee/react-native library not installed. It is required to keep call alive in the background for Android. '}${INSTALLATION_INSTRUCTION}`
|
|
33
49
|
);
|
|
34
50
|
}
|
|
35
51
|
return notifeeLib;
|
|
36
52
|
}
|
|
53
|
+
|
|
54
|
+
export async function getKeepCallAliveForegroundServiceTypes() {
|
|
55
|
+
const types: AndroidForegroundServiceType[] = [];
|
|
56
|
+
const hasCameraPermission = await PermissionsAndroid.check(
|
|
57
|
+
PermissionsAndroid.PERMISSIONS.CAMERA!
|
|
58
|
+
);
|
|
59
|
+
if (hasCameraPermission) {
|
|
60
|
+
types.push(AndroidForegroundServiceType.FOREGROUND_SERVICE_TYPE_CAMERA);
|
|
61
|
+
}
|
|
62
|
+
const hasMicrophonePermission = await PermissionsAndroid.check(
|
|
63
|
+
PermissionsAndroid.PERMISSIONS.RECORD_AUDIO!
|
|
64
|
+
);
|
|
65
|
+
if (hasMicrophonePermission) {
|
|
66
|
+
types.push(AndroidForegroundServiceType.FOREGROUND_SERVICE_TYPE_MICROPHONE);
|
|
67
|
+
}
|
|
68
|
+
const hasConnectionPermission = await PermissionsAndroid.check(
|
|
69
|
+
PermissionsAndroid.PERMISSIONS.BLUETOOTH_CONNECT!
|
|
70
|
+
);
|
|
71
|
+
if (hasConnectionPermission) {
|
|
72
|
+
types.push(
|
|
73
|
+
AndroidForegroundServiceType.FOREGROUND_SERVICE_TYPE_CONNECTED_DEVICE
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
if (types.length === 0) {
|
|
77
|
+
types.push(AndroidForegroundServiceType.FOREGROUND_SERVICE_TYPE_DATA_SYNC);
|
|
78
|
+
}
|
|
79
|
+
console.log({ types });
|
|
80
|
+
return types;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export function getIncomingCallForegroundServiceTypes() {
|
|
84
|
+
const types: AndroidForegroundServiceType[] = [
|
|
85
|
+
AndroidForegroundServiceType.FOREGROUND_SERVICE_TYPE_SHORT_SERVICE,
|
|
86
|
+
];
|
|
87
|
+
return types;
|
|
88
|
+
}
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = '1.3.
|
|
1
|
+
export const version = '1.3.3';
|