@stream-io/video-react-native-sdk 1.3.2 → 1.3.4

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.
Files changed (38) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/commonjs/hooks/useAndroidKeepCallAliveEffect.js +8 -7
  3. package/dist/commonjs/hooks/useAndroidKeepCallAliveEffect.js.map +1 -1
  4. package/dist/commonjs/utils/StreamVideoRN/index.js +7 -0
  5. package/dist/commonjs/utils/StreamVideoRN/index.js.map +1 -1
  6. package/dist/commonjs/utils/push/android.js +16 -4
  7. package/dist/commonjs/utils/push/android.js.map +1 -1
  8. package/dist/commonjs/utils/push/libs/notifee.js +50 -5
  9. package/dist/commonjs/utils/push/libs/notifee.js.map +1 -1
  10. package/dist/commonjs/version.js +1 -1
  11. package/dist/module/hooks/useAndroidKeepCallAliveEffect.js +9 -8
  12. package/dist/module/hooks/useAndroidKeepCallAliveEffect.js.map +1 -1
  13. package/dist/module/utils/StreamVideoRN/index.js +7 -0
  14. package/dist/module/utils/StreamVideoRN/index.js.map +1 -1
  15. package/dist/module/utils/push/android.js +18 -6
  16. package/dist/module/utils/push/android.js.map +1 -1
  17. package/dist/module/utils/push/libs/notifee.js +48 -5
  18. package/dist/module/utils/push/libs/notifee.js.map +1 -1
  19. package/dist/module/version.js +1 -1
  20. package/dist/typescript/hooks/useAndroidKeepCallAliveEffect.d.ts +1 -1
  21. package/dist/typescript/hooks/useAndroidKeepCallAliveEffect.d.ts.map +1 -1
  22. package/dist/typescript/utils/StreamVideoRN/index.d.ts.map +1 -1
  23. package/dist/typescript/utils/StreamVideoRN/types.d.ts +4 -2
  24. package/dist/typescript/utils/StreamVideoRN/types.d.ts.map +1 -1
  25. package/dist/typescript/utils/push/android.d.ts.map +1 -1
  26. package/dist/typescript/utils/push/libs/notifee.d.ts +20 -0
  27. package/dist/typescript/utils/push/libs/notifee.d.ts.map +1 -1
  28. package/dist/typescript/version.d.ts +1 -1
  29. package/expo-config-plugin/dist/common/types.d.ts +1 -0
  30. package/expo-config-plugin/dist/withAndroidManifest.js +8 -4
  31. package/expo-config-plugin/dist/withAndroidPermissions.js +3 -0
  32. package/package.json +5 -5
  33. package/src/hooks/useAndroidKeepCallAliveEffect.ts +14 -9
  34. package/src/utils/StreamVideoRN/index.ts +7 -0
  35. package/src/utils/StreamVideoRN/types.ts +4 -2
  36. package/src/utils/push/android.ts +23 -4
  37. package/src/utils/push/libs/notifee.ts +58 -6
  38. 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.4](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-1.3.3...@stream-io/video-react-native-sdk-1.3.4) (2024-11-20)
6
+
7
+ ### Dependency Updates
8
+
9
+ * `@stream-io/video-client` updated to version `1.11.3`
10
+ * `@stream-io/video-react-bindings` updated to version `1.1.20`
11
+ ## [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)
12
+
13
+
14
+ ### Bug Fixes
15
+
16
+ * 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))
17
+
5
18
  ## [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)
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
- // channel id is not required for notifee as its only used on android 7 and below here
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
- * Additonally: also responsible for cancelling any notifee displayed notification when the call has transitioned out of ringing
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 && isAndroid7OrBelow) {
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","isAndroid7OrBelow","Platform","OS","Version","notifeeLib","getNotifeeLibNoThrowForKeepCallAlive","setForegroundService","default","registerForegroundService","Promise","logger","getLogger","startForegroundService","call_cid","foregroundServiceConfig","StreamVideoRN","getConfig","foregroundService","title","body","android","notificationTexts","settings","getNotificationSettings","authorizationStatus","AuthorizationStatus","AUTHORIZED","displayNotification","id","asForegroundService","ongoing","colorized","pressAction","launchActivity","isSetForegroundServiceRan","useAndroidKeepCallAliveEffect","foregroundServiceStartedRef","useRef","activeCallCid","useCall","cid","useCallCallingState","useCallStateHooks","callingState","useEffect","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":[]}
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,GAAGP,2BAA2B;;EAEnD;AACF;AACA;AACA;AACA;EACE,OAAOQ,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,EAAEV,OAAO,EAAEW,mBAAmB;IAClE,IAAIF,WAAW,EAAE;MACf,IAAI,CAACJ,MAAM,CAACK,IAAI,CAAEV,OAAO,CAACW,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":[]}
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
- function shouldCallBeClosed(callToCheck) {
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
- unsubscribe();
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, unsubscribe]);
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 _ = require("../../..");
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 && isAndroid7OrBelow) {
24
- const logger = (0, _.getLogger)(['getNotifeeLibNoThrow']);
25
- logger('info', `${'@notifee/react-native library not installed. It is required to keep call alive in the background for Android < 26. '}${INSTALLATION_INSTRUCTION}`);
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":["_reactNative","require","_","notifeeLib","_e","isAndroid7OrBelow","Platform","OS","Version","INSTALLATION_INSTRUCTION","getNotifeeLibThrowIfNotInstalledForPush","Error","getNotifeeLibNoThrowForKeepCallAlive","logger","getLogger"],"sourceRoot":"../../../../../src","sources":["utils/push/libs/notifee.ts"],"mappings":";;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,CAAA,GAAAD,OAAA;AAIA,IAAIE,UAAkC;AAEtC,IAAI;EACFA,UAAU,GAAGF,OAAO,CAAC,uBAAuB,CAAC;AAC/C,CAAC,CAAC,OAAOG,EAAE,EAAE,CAAC;AAEd,MAAMC,iBAAiB,GAAGC,qBAAQ,CAACC,EAAE,KAAK,SAAS,IAAID,qBAAQ,CAACE,OAAO,GAAG,EAAE;AAE5E,MAAMC,wBAAwB,GAC5B,6FAA6F;AAExF,SAASC,uCAAuCA,CAAA,EAAG;EACxD,IAAI,CAACP,UAAU,EAAE;IACf,MAAMQ,KAAK,CACT,8FAA8F,GAC5FF,wBACJ,CAAC;EACH;EACA,OAAON,UAAU;AACnB;AAEO,SAASS,oCAAoCA,CAAA,EAAG;EACrD,IAAI,CAACT,UAAU,IAAIE,iBAAiB,EAAE;IACpC,MAAMQ,MAAM,GAAG,IAAAC,WAAS,EAAC,CAAC,sBAAsB,CAAC,CAAC;IAClDD,MAAM,CACJ,MAAM,EACN,GAAG,qHAAqH,GAAGJ,wBAAwB,EACrJ,CAAC;EACH;EACA,OAAON,UAAU;AACnB","ignoreList":[]}
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":[]}
@@ -4,5 +4,5 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.version = void 0;
7
- const version = exports.version = '1.3.2';
7
+ const version = exports.version = '1.3.4';
8
8
  //# sourceMappingURL=version.js.map
@@ -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
- // channel id is not required for notifee as its only used on android 7 and below here
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
- * Additonally: also responsible for cancelling any notifee displayed notification when the call has transitioned out of ringing
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 && isAndroid7OrBelow) {
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","isAndroid7OrBelow","OS","Version","notifeeLib","setForegroundService","default","registerForegroundService","Promise","logger","startForegroundService","call_cid","foregroundServiceConfig","getConfig","foregroundService","title","body","android","notificationTexts","settings","getNotificationSettings","authorizationStatus","AuthorizationStatus","AUTHORIZED","displayNotification","id","asForegroundService","ongoing","colorized","pressAction","launchActivity","isSetForegroundServiceRan","useAndroidKeepCallAliveEffect","foregroundServiceStartedRef","activeCallCid","cid","useCallCallingState","callingState","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":[]}
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,GAAGP,2BAA2B;;EAEnD;AACF;AACA;AACA;AACA;EACE,OAAOQ,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,EAAEV,OAAO,EAAEW,mBAAmB;IAClE,IAAIF,WAAW,EAAE;MACf,IAAI,CAACJ,MAAM,CAACK,IAAI,CAAEV,OAAO,CAACW,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,IAAIvB,mBAAmB,CAACwB,OAAO,EAAE;MAC/B,OAAOC,OAAO,CAACC,GAAG,CAChB1B,mBAAmB,CAACwB,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,CAAC3B,wBAAwB,CAACuB,OAAO,EAAE;MACrCvB,wBAAwB,CAACuB,OAAO,GAAG,CAACI,QAAQ,CAAC;IAC/C,CAAC,MAAM;MACL3B,wBAAwB,CAACuB,OAAO,CAACV,IAAI,CAACc,QAAQ,CAAC;IACjD;IACA,OAAO,MAAM;MACX3B,wBAAwB,CAACuB,OAAO,GAC9BvB,wBAAwB,CAACuB,OAAO,EAAEQ,MAAM,CAAEC,EAAE,IAAKA,EAAE,KAAKL,QAAQ,CAAC;IACrE,CAAC;EACH;AACF","ignoreList":[]}
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
- function shouldCallBeClosed(callToCheck) {
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
- unsubscribe();
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, unsubscribe]);
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":"AAAA,SAEEA,YAAY,EACZC,OAAO,EAEPC,SAAS,QACJ,yBAAyB;AAChC,SAASC,QAAQ,EAAEC,QAAQ,QAAQ,cAAc;AAKjD,SACEC,uBAAuB,EACvBC,uBAAuB,EACvBC,uCAAuC,EAGvCC,qCAAqC,QAChC,QAAQ;AACf,SACEC,4BAA4B,EAC5BC,4BAA4B,EAC5BC,0BAA0B,EAC1BC,uBAAuB,EACvBC,4BAA4B,EAC5BC,8CAA8C,QACzC,uBAAuB;AAC9B,SACEC,4BAA4B,EAC5BC,6BAA6B,EAC7BC,+BAA+B,EAC/BC,iBAAiB,QACZ,kBAAkB;AACzB,SAASC,qBAAqB,QAAQ,gCAAgC;AACtE,SAASC,4BAA4B,QAAQ,iCAAiC;AAC9E,SAASC,aAAa,QAAQ,kBAAkB;AAEhD,MAAMC,qBAAqB,GAAG,QAAQ;AACtC,MAAMC,sBAAsB,GAAG,SAAS;AAUxC,IAAIC,iBAAiB,GAAG;EAAEC,KAAK,EAAE,EAAE;EAAEC,MAAM,EAAE;AAAG,CAAC;;AAEjD;AACA,OAAO,eAAeC,oBAAoBA,CACxCC,MAAyB,EACzBC,UAAsB,EACtBC,sBAAyD,EACzD;EACA,IAAI1B,QAAQ,CAAC2B,EAAE,KAAK,SAAS,IAAI,CAACF,UAAU,CAACG,OAAO,CAACC,gBAAgB,EAAE;IACrE;EACF;EACA,MAAMC,cAAc,GAAG,MAAOT,KAAa,IAAK;IAC9C,MAAMC,MAAM,GAAGE,MAAM,CAACO,YAAY,CAACC,KAAK,EAAEC,EAAE,IAAI,EAAE;IAClD,IACEb,iBAAiB,CAACC,KAAK,KAAKA,KAAK,IACjCD,iBAAiB,CAACE,MAAM,KAAKA,MAAM,EACnC;MACA;IACF;IACAF,iBAAiB,GAAG;MAAEC,KAAK;MAAEC;IAAO,CAAC;IACrCP,qBAAqB,CAAC,YAAY;MAChCK,iBAAiB,GAAG;QAAEC,KAAK,EAAE,EAAE;QAAEC,MAAM,EAAE;MAAG,CAAC;MAC7C,IAAI;QACF,MAAME,MAAM,CAACU,YAAY,CAACb,KAAK,CAAC;MAClC,CAAC,CAAC,OAAOc,GAAG,EAAE;QACZ,MAAMC,MAAM,GAAGtC,SAAS,CAAC,CAAC,sBAAsB,CAAC,CAAC;QAClDsC,MAAM,CAAC,MAAM,EAAE,6CAA6C,EAAED,GAAG,CAAC;MACpE;IACF,CAAC,CAAC;IACF,MAAME,kBAAkB,GAAGZ,UAAU,CAACG,OAAO,CAACC,gBAAgB;IAC9D,MAAML,MAAM,CAACc,SAAS,CAACjB,KAAK,EAAE,UAAU,EAAEgB,kBAAkB,CAAC;EAC/D,CAAC;EACD,IAAIZ,UAAU,CAACc,MAAM,EAAE;IACrB,MAAMC,oBAAoB,GAAGtC,uBAAuB,CAAC,CAAC;IACtD,MAAMuC,YAAY,GAAGD,oBAAoB,CAACE,oBAAoB,CAC3DC,eAAe,IAAK;MACnBb,cAAc,CAACa,eAAe,CAACC,IAAI,CAAC;IACtC,CACF,CAAC;IACDlB,sBAAsB,CAAC,MAAMe,YAAY,CAACI,MAAM,CAAC,CAAC,CAAC;IACnD,MAAMF,eAAe,GACnB,MAAMH,oBAAoB,CAACM,uBAAuB,CAAC,CAAC;IACtD,MAAMzB,KAAK,GAAGsB,eAAe,CAACC,IAAI;IAClC,MAAMd,cAAc,CAACT,KAAK,CAAC;EAC7B,CAAC,MAAM;IACL,MAAM0B,SAAS,GAAG9C,uBAAuB,CAAC,CAAC;IAC3C,MAAM+C,WAAW,GAAGD,SAAS,CAAC,CAAC,CAACE,cAAc,CAAEC,cAAc,IAC5DpB,cAAc,CAACoB,cAAc,CAC/B,CAAC;IACDxB,sBAAsB,CAACsB,WAAW,CAAC;IACnC,MAAM3B,KAAK,GAAG,MAAM0B,SAAS,CAAC,CAAC,CAACI,QAAQ,CAAC,CAAC;IAC1C,MAAMrB,cAAc,CAACT,KAAK,CAAC;EAC7B;AACF;;AAEA;AACA;AACA;AACA;AACA,OAAO,MAAM+B,mBAAmB,GAAG,MACjCR,IAAkD,IAC/C;EACH,IAAI5C,QAAQ,CAAC2B,EAAE,KAAK,SAAS,EAAE;EAC/B;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMF,UAAU,GAAGR,aAAa,CAACoC,SAAS,CAAC,CAAC,CAACC,IAAI;EACjD,IAAI,CAAC7B,UAAU,IAAI,CAACmB,IAAI,IAAIA,IAAI,CAACW,MAAM,KAAK,cAAc,EAAE;IAC1D;EACF;EAEA,IAAIX,IAAI,CAACY,IAAI,KAAK,WAAW,EAAE;IAC7B,MAAMC,QAAQ,GAAGb,IAAI,CAACa,QAAkB;IACxC,MAAMC,aAAa,GAAGd,IAAI,CAACc,aAAuB;IAClD,MAAMC,WAAW,GAAGf,IAAI,CAACe,WAAqB;IAE9C,MAAMC,kBAAkB,GAAIC,WAAiB,IAAK;MAChD,MAAM;QAAEC;MAAY,CAAC,GAAGhD,iBAAiB,CACvC+C,WAAW,EACXH,aAAa,EACbC,WACF,CAAC;MACD,OAAOG,WAAW;IACpB,CAAC;IAED,MAAMC,aAAa,GAAGA,CAAA,KACpBpD,4BAA4B,CAACqD,OAAO,IACpCjE,QAAQ,CAACkE,YAAY,KAAK,QAAQ;IACpC,MAAMC,mBAAmB,GAAGH,aAAa,CAAC,CAAC;IAE3C,MAAMI,UAAU,GAAGhE,uCAAuC,CAAC,CAAC;IAC5D,MAAMiE,OAAO,GAAGD,UAAU,CAACE,OAAO;IAElC,IAAIH,mBAAmB,EAAE;MACvB;MACA;MACAE,OAAO,CAACE,yBAAyB,CAAC,MAAM;QACtC,OAAO,IAAIC,OAAO,CAAC,YAAY;UAC7B,MAAM/C,MAAM,GAAG,MAAMC,UAAU,CAAC+C,uBAAuB,CAAC,CAAC;UACzD,IAAI,CAAChD,MAAM,EAAE;YACX4C,OAAO,CAACK,qBAAqB,CAAC,CAAC;YAC/B;UACF;UACA,MAAMC,YAAY,GAAG,MAAMlD,MAAM,CAACmD,aAAa,CAAClB,QAAQ,CAAC;UACzD,IAAIG,kBAAkB,CAACc,YAAY,CAAC,EAAE;YACpCN,OAAO,CAACK,qBAAqB,CAAC,CAAC;YAC/B;UACF;UACA,MAAMG,oBAAuC,GAAG,EAAE;UAClD;UACA,MAAM5B,WAAW,GAAG0B,YAAY,CAACG,EAAE,CAAC,KAAK,EAAE,MAAM;YAC/C,IAAI,CAACd,aAAa,CAAC,CAAC,IAAIH,kBAAkB,CAACc,YAAY,CAAC,EAAE;cACxDE,oBAAoB,CAACE,OAAO,CAAEC,EAAE,IAAKA,EAAE,CAAC,CAAC,CAAC;cAC1CX,OAAO,CAACK,qBAAqB,CAAC,CAAC;YACjC;UACF,CAAC,CAAC;UACF;UACA,MAAMhC,YAAY,GAAGiC,YAAY,CAACM,KAAK,CAACC,aAAa,CAACC,SAAS,CAC5DC,YAAY,IAAK;YAChB,IACEA,YAAY,KAAKvF,YAAY,CAACwF,IAAI,IAClCD,YAAY,KAAKvF,YAAY,CAACyF,IAAI,EAClC;cACAT,oBAAoB,CAACE,OAAO,CAAEC,EAAE,IAAKA,EAAE,CAAC,CAAC,CAAC;cAC1CX,OAAO,CAACK,qBAAqB,CAAC,CAAC;YACjC;UACF,CACF,CAAC;UACDG,oBAAoB,CAACtB,IAAI,CAACN,WAAW,CAAC;UACtC4B,oBAAoB,CAACtB,IAAI,CAAC,MAAMb,YAAY,CAACO,WAAW,CAAC,CAAC,CAAC;UAC3D,MAAMsC,uBAAuB,GAC3BzF,OAAO,CAAC0F,eAAe,CAAC9E,4BAA4B,CAAC,IAAI,EAAE;UAC7DA,4BAA4B,CAAC+E,IAAI,CAAC,CAChC,GAAGF,uBAAuB,EAC1B,GAAGV,oBAAoB,CACxB,CAAC;QACJ,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ;IACA,MAAMa,mBAAmB,GAAGhE,UAAU,CAACG,OAAO,CAAC6D,mBAAmB;IAClE,MAAMC,mCAAmC,GACvCjE,UAAU,CAACG,OAAO,CAAC8D,mCAAmC;IACxD,IAAI,CAACD,mBAAmB,IAAI,CAACC,mCAAmC,EAAE;MAChE,MAAMtD,MAAM,GAAGtC,SAAS,CAAC,CAAC,mCAAmC,CAAC,CAAC;MAC/DsC,MAAM,CACJ,MAAM,EACN,uIACF,CAAC;MACD;IACF;IACA;AACJ;AACA;AACA;IACI;IACA,IAAI,CAACqD,mBAAmB,CAACE,KAAK,EAAE;MAC9BF,mBAAmB,CAACE,KAAK,GAAG,MAAM3E,4BAA4B,CAAC,CAAC;IAClE;IACA,MAAMoD,OAAO,CAACwB,aAAa,CAACH,mBAAmB,CAAC;IAChD,MAAM;MAAEI,QAAQ;MAAEC;IAAQ,CAAC,GAAGJ,mCAAmC;IACjE,MAAMK,eAAe,GAAGnD,IAAI,CAACoD,uBAAiC;IAE9D,MAAMC,SAAS,GAAGR,mBAAmB,CAACxD,EAAE;IACxC,MAAMmC,OAAO,CAAC8B,mBAAmB,CAAC;MAChCjE,EAAE,EAAEwB,QAAQ;MACZ0C,KAAK,EAAEN,QAAQ,CAACE,eAAe,CAAC;MAChCK,IAAI,EAAEN,OAAO,CAACC,eAAe,CAAC;MAC9BnD,IAAI;MACJhB,OAAO,EAAE;QACPqE,SAAS;QACTI,sBAAsB,EAAEjG,qCAAqC,CAAC,CAAC;QAC/D8D,mBAAmB;QACnByB,KAAK,EAAEF,mBAAmB,CAACE,KAAK;QAChCW,gBAAgB,EAAEb,mBAAmB,CAACa,gBAAgB;QACtDC,WAAW,EAAE;UACXtE,EAAE,EAAE,SAAS;UACbuE,cAAc,EAAE,SAAS,CAAE;QAC7B,CAAC;QACDC,OAAO,EAAE,CACP;UACEN,KAAK,EAAE,SAAS;UAChBI,WAAW,EAAE;YACXtE,EAAE,EAAEd;UACN;QACF,CAAC,EACD;UACEgF,KAAK,EAAE,QAAQ;UACfI,WAAW,EAAE;YACXtE,EAAE,EAAEf,qBAAqB;YACzBsF,cAAc,EAAE,SAAS,CAAE;UAC7B;QACF,CAAC,CACF;QACDE,QAAQ,EAAEvC,UAAU,CAACwC,eAAe,CAACC,IAAI;QACzCC,gBAAgB,EAAE;UAChB5E,EAAE,EAAE;QACN,CAAC;QACD6E,YAAY,EAAE,KAAK,CAAE;MACvB;IACF,CAAC,CAAC;IAEF,IAAI5C,mBAAmB,EAAE;MACvB;MACA;IACF;;IAEA;IACA;IACA,MAAM1C,MAAM,GAAG,MAAMC,UAAU,CAAC+C,uBAAuB,CAAC,CAAC;IACzD,IAAI,CAAChD,MAAM,EAAE;MACX;IACF;IACA,MAAMkD,YAAY,GAAG,MAAMlD,MAAM,CAACmD,aAAa,CAAClB,QAAQ,CAAC;IAEzD,IAAIG,kBAAkB,CAACc,YAAY,CAAC,EAAE;MACpCN,OAAO,CAAC2C,2BAA2B,CAACtD,QAAQ,CAAC;IAC/C;EACF,CAAC,MAAM;IACL,MAAMU,UAAU,GAAGhE,uCAAuC,CAAC,CAAC;IAC5D,MAAMiE,OAAO,GAAGD,UAAU,CAACE,OAAO;IAClC;IACA,MAAM2C,WAAW,GAAGvF,UAAU,CAACG,OAAO,CAACoF,WAAW;IAClD,MAAMC,2BAA2B,GAC/BxF,UAAU,CAACG,OAAO,CAACqF,2BAA2B;IAChD,IAAI,CAACD,WAAW,IAAI,CAACC,2BAA2B,EAAE;MAChD,MAAM7E,MAAM,GAAGtC,SAAS,CAAC,CAAC,mCAAmC,CAAC,CAAC;MAC/DsC,MAAM,CACJ,MAAM,EACN,4GACF,CAAC;MACD;IACF;IACA,MAAMgC,OAAO,CAACwB,aAAa,CAACoB,WAAW,CAAC;IACxC,MAAMf,SAAS,GAAGe,WAAW,CAAC/E,EAAE;IAChC,MAAM;MAAE4D,QAAQ;MAAEC;IAAQ,CAAC,GAAGmB,2BAA2B;IACzD,MAAMlB,eAAe,GAAGnD,IAAI,CAACoD,uBAAiC;IAC9D;IACA,MAAMxC,IAAI,GAAGZ,IAAI,CAACY,IAA2B;IAC7C,MAAMY,OAAO,CAAC8B,mBAAmB,CAAC;MAChCC,KAAK,EAAEN,QAAQ,CAACrC,IAAI,EAAEuC,eAAe,CAAC;MACtCK,IAAI,EAAEN,OAAO,CAACtC,IAAI,EAAEuC,eAAe,CAAC;MACpCnD,IAAI;MACJhB,OAAO,EAAE;QACP+D,KAAK,EAAEqB,WAAW,CAACrB,KAAK;QACxBW,gBAAgB,EAAEU,WAAW,CAACV,gBAAgB;QAC9CL,SAAS;QACTM,WAAW,EAAE;UACXtE,EAAE,EAAE,SAAS;UACbuE,cAAc,EAAE,SAAS,CAAE;QAC7B,CAAC;QACDM,YAAY,EAAE,KAAK,CAAE;MACvB;IACF,CAAC,CAAC;IACF,MAAMI,GAAG,GAAGtE,IAAI,CAACa,QAAkB;IACnCjD,uBAAuB,CAACgF,IAAI,CAAC;MAAE0B,GAAG;MAAE1D;IAAK,CAAC,CAAC;EAC7C;AACF,CAAC;AAED,OAAO,MAAM2D,qBAAqB,GAAG,MAAAA,CAAO;EAC1CC,KAAK;EACLC;AAIF,CAAC,KAAK;EACJ,IAAIrH,QAAQ,CAAC2B,EAAE,KAAK,SAAS,EAAE;EAC/B,MAAM;IAAE6B,IAAI;IAAE8D;EAAO,CAAC,GAAGF,KAAK;EAC9B,MAAM;IAAEG,YAAY;IAAEhB;EAAY,CAAC,GAAGe,MAAM;EAC5C,MAAME,cAAc,GAAGD,YAAY,EAAEtF,EAAE;EACvC,MAAMW,IAAI,GAAG2E,YAAY,EAAE3E,IAAI;EAC/B,MAAMnB,UAAU,GAAGR,aAAa,CAACoC,SAAS,CAAC,CAAC,CAACC,IAAI;EACjD,IACE,CAAC7B,UAAU,IACX,CAACmB,IAAI,IACL,CAAC4E,cAAc,IACf5E,IAAI,CAACW,MAAM,KAAK,cAAc,EAC9B;IACA;EACF;;EAEA;EACA,MAAME,QAAQ,GAAGb,IAAI,CAACa,QAAkB;EAExC,IAAIb,IAAI,CAACY,IAAI,KAAK,WAAW,EAAE;IAC7B;IACA,MAAMiE,YAAY,GAChBpH,4BAA4B,CAACqH,QAAQ,IACrCpH,4BAA4B,CAACoH,QAAQ;IAEvC,MAAMvD,UAAU,GAAGhE,uCAAuC,CAAC,CAAC;IAC5D,MAAMiE,OAAO,GAAGD,UAAU,CAACE,OAAO;IAClC;IACA,MAAMsD,eAAe,GACnBnE,IAAI,KAAKW,UAAU,CAACyD,SAAS,CAACC,YAAY,IAC1CtB,WAAW,EAAEtE,EAAE,KAAKd,sBAAsB;IAC5C,MAAM2G,UAAU,GAAGtE,IAAI,KAAKW,UAAU,CAACyD,SAAS,CAACG,SAAS;IAC1D,MAAMC,WAAW,GAAGL,eAAe,IAAIG,UAAU;IACjD;IACA,MAAMG,UAAU,GACdzE,IAAI,KAAKW,UAAU,CAACyD,SAAS,CAACC,YAAY,IAC1CtB,WAAW,EAAEtE,EAAE,KAAKf,qBAAqB;IAE3C,IACE+G,UAAU,IACVD,WAAW,IACXxE,IAAI,KAAKW,UAAU,CAACyD,SAAS,CAACC,YAAY,EAC1C;MACAjH,6BAA6B,CAAC,CAAC;MAC/BwD,OAAO,CAACK,qBAAqB,CAAC,CAAC;IACjC;IAEA,IAAIwD,UAAU,EAAE;MACd5H,4BAA4B,CAACmF,IAAI,CAAC/B,QAAQ,CAAC;MAC3C;IACF,CAAC,MAAM,IAAIuE,WAAW,EAAE;MACtB1H,4BAA4B,CAACkF,IAAI,CAAC/B,QAAQ,CAAC;MAC3C,IAAIgE,YAAY,EAAE;QAChB;QACA;MACF;MACA,MAAM5G,+BAA+B,CAACY,UAAU,EAAEgC,QAAQ,EAAE,SAAS,CAAC;IACxE,CAAC,MAAM;MACL,IAAID,IAAI,KAAKW,UAAU,CAACyD,SAAS,CAACM,KAAK,EAAE;QACvC3H,0BAA0B,CAACiF,IAAI,CAAC/B,QAAQ,CAAC;QACzC;MACF,CAAC,MAAM,IAAI4D,YAAY,IAAI7D,IAAI,KAAKW,UAAU,CAACyD,SAAS,CAACO,SAAS,EAAE;QAClEzH,8CAA8C,CAAC8E,IAAI,CAAC/B,QAAQ,CAAC;QAC7D;MACF;IACF;EACF,CAAC,MAAM;IACL,MAAMU,UAAU,GAAGhE,uCAAuC,CAAC,CAAC;IAC5D,IAAIqD,IAAI,KAAKW,UAAU,CAACyD,SAAS,CAACM,KAAK,EAAE;MACvCzG,UAAU,CAAC2G,+BAA+B,GACxC3E,QAAQ,EACRb,IAAI,CAACY,IACP,CAAC;IACH;EACF;AACF,CAAC","ignoreList":[]}
@@ -1,10 +1,27 @@
1
- import { Platform } from 'react-native';
2
- import { getLogger } from '../../..';
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 && isAndroid7OrBelow) {
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 < 26. '}${INSTALLATION_INSTRUCTION}`);
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":["Platform","getLogger","notifeeLib","require","_e","isAndroid7OrBelow","OS","Version","INSTALLATION_INSTRUCTION","getNotifeeLibThrowIfNotInstalledForPush","Error","getNotifeeLibNoThrowForKeepCallAlive","logger"],"sourceRoot":"../../../../../src","sources":["utils/push/libs/notifee.ts"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,cAAc;AACvC,SAASC,SAAS,QAAQ,UAAU;AAIpC,IAAIC,UAAkC;AAEtC,IAAI;EACFA,UAAU,GAAGC,OAAO,CAAC,uBAAuB,CAAC;AAC/C,CAAC,CAAC,OAAOC,EAAE,EAAE,CAAC;AAEd,MAAMC,iBAAiB,GAAGL,QAAQ,CAACM,EAAE,KAAK,SAAS,IAAIN,QAAQ,CAACO,OAAO,GAAG,EAAE;AAE5E,MAAMC,wBAAwB,GAC5B,6FAA6F;AAE/F,OAAO,SAASC,uCAAuCA,CAAA,EAAG;EACxD,IAAI,CAACP,UAAU,EAAE;IACf,MAAMQ,KAAK,CACT,8FAA8F,GAC5FF,wBACJ,CAAC;EACH;EACA,OAAON,UAAU;AACnB;AAEA,OAAO,SAASS,oCAAoCA,CAAA,EAAG;EACrD,IAAI,CAACT,UAAU,IAAIG,iBAAiB,EAAE;IACpC,MAAMO,MAAM,GAAGX,SAAS,CAAC,CAAC,sBAAsB,CAAC,CAAC;IAClDW,MAAM,CACJ,MAAM,EACN,GAAG,qHAAqH,GAAGJ,wBAAwB,EACrJ,CAAC;EACH;EACA,OAAON,UAAU;AACnB","ignoreList":[]}
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":[]}
@@ -1,2 +1,2 @@
1
- export const version = '1.3.2';
1
+ export const version = '1.3.4';
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
- * Additonally: also responsible for cancelling any notifee displayed notification when the call has transitioned out of ringing
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":"AA2DA;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,YAgFzC,CAAC"}
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;AAa9C,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"}
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;;;;eAIG;YACH,iBAAiB,EAAE;gBACjB,KAAK,EAAE,MAAM,CAAC;gBACd,IAAI,EAAE,MAAM,CAAC;aACd,CAAC;SACH,CAAC;KACH,CAAC;CACH,CAAC"}
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,EAGL,iBAAiB,EAElB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAEV,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAIL,UAAU,EACV,sBAAsB,EACvB,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,kBA+LnD,CAAC;AAEF,eAAO,MAAM,qBAAqB,6BAG/B;IACD,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,EAAE,OAAO,CAAC;CACvB,kBA2EA,CAAC"}
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;AAahE,wBAAgB,uCAAuC,2CAQtD;AAED,wBAAgB,oCAAoC,uDASnD"}
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.2";
1
+ export declare const version = "1.3.4";
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
- const foregroundServiceType = 'shortService';
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.2",
3
+ "version": "1.3.4",
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.2",
50
- "@stream-io/video-react-bindings": "1.1.19",
49
+ "@stream-io/video-client": "1.11.3",
50
+ "@stream-io/video-react-bindings": "1.1.20",
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": ">=7.8.0",
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": "7.8.0",
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 { getNotifeeLibNoThrowForKeepCallAlive } from '../utils/push/libs/notifee';
7
-
8
- const isAndroid7OrBelow = Platform.OS === 'android' && Platform.Version < 26;
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
- // channel id is not required for notifee as its only used on android 7 and below here
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
- * Additonally: also responsible for cancelling any notifee displayed notification when the call has transitioned out of ringing
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 && isAndroid7OrBelow) {
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
- function shouldCallBeClosed(callToCheck: Call) {
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
- unsubscribe();
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
- unsubscribe,
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 { Platform } from 'react-native';
2
- import { getLogger } from '../../..';
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 && isAndroid7OrBelow) {
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 < 26. '}${INSTALLATION_INSTRUCTION}`
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.2';
1
+ export const version = '1.3.4';