@stream-io/video-react-native-sdk 0.8.9 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/commonjs/hooks/useAndroidKeepCallAliveEffect.js +6 -14
  3. package/dist/commonjs/hooks/useAndroidKeepCallAliveEffect.js.map +1 -1
  4. package/dist/commonjs/hooks/useIsInPiPMode.js +9 -8
  5. package/dist/commonjs/hooks/useIsInPiPMode.js.map +1 -1
  6. package/dist/commonjs/utils/StreamVideoRN/index.js +0 -8
  7. package/dist/commonjs/utils/StreamVideoRN/index.js.map +1 -1
  8. package/dist/commonjs/version.js +1 -1
  9. package/dist/module/hooks/useAndroidKeepCallAliveEffect.js +6 -14
  10. package/dist/module/hooks/useAndroidKeepCallAliveEffect.js.map +1 -1
  11. package/dist/module/hooks/useIsInPiPMode.js +9 -8
  12. package/dist/module/hooks/useIsInPiPMode.js.map +1 -1
  13. package/dist/module/utils/StreamVideoRN/index.js +0 -8
  14. package/dist/module/utils/StreamVideoRN/index.js.map +1 -1
  15. package/dist/module/version.js +1 -1
  16. package/dist/typescript/hooks/useAndroidKeepCallAliveEffect.d.ts.map +1 -1
  17. package/dist/typescript/hooks/useIsInPiPMode.d.ts.map +1 -1
  18. package/dist/typescript/utils/StreamVideoRN/index.d.ts.map +1 -1
  19. package/dist/typescript/utils/StreamVideoRN/types.d.ts +3 -5
  20. package/dist/typescript/utils/StreamVideoRN/types.d.ts.map +1 -1
  21. package/dist/typescript/version.d.ts +1 -1
  22. package/expo-config-plugin/dist/withAndroidManifest.js +5 -6
  23. package/expo-config-plugin/dist/withAndroidPermissions.js +1 -1
  24. package/package.json +2 -2
  25. package/src/hooks/useAndroidKeepCallAliveEffect.ts +7 -14
  26. package/src/hooks/useIsInPiPMode.tsx +15 -10
  27. package/src/utils/StreamVideoRN/index.ts +0 -8
  28. package/src/utils/StreamVideoRN/types.ts +3 -5
  29. package/src/version.ts +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,17 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ## [0.9.0](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-0.8.9...@stream-io/video-react-native-sdk-0.9.0) (2024-07-05)
6
+
7
+
8
+ ### ⚠ BREAKING CHANGES
9
+
10
+ * **react-native:** support targetSdk android 14 (#1432)
11
+
12
+ ### Features
13
+
14
+ * **react-native:** support targetSdk android 14 ([#1432](https://github.com/GetStream/stream-video-js/issues/1432)) ([2e98fbe](https://github.com/GetStream/stream-video-js/commit/2e98fbe5000161088030d553fc38cd5243327dd1))
15
+
5
16
  ### [0.8.9](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-0.8.8...@stream-io/video-react-native-sdk-0.8.9) (2024-07-02)
6
17
 
7
18
  ### Dependency Updates
@@ -12,10 +12,9 @@ var _reactNative2 = require("react-native");
12
12
  var _videoClient = require("@stream-io/video-client");
13
13
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
14
14
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
15
+ const isAndroid7OrBelow = _reactNative2.Platform.OS === 'android' && _reactNative2.Platform.Version < 26;
15
16
  function setForegroundService() {
16
- if (_reactNative2.Platform.OS !== 'android') {
17
- return;
18
- }
17
+ if (!isAndroid7OrBelow) return;
19
18
  _reactNative.default.registerForegroundService(() => {
20
19
  return new Promise(() => {
21
20
  const logger = (0, _videoClient.getLogger)(['setForegroundService method']);
@@ -24,15 +23,12 @@ function setForegroundService() {
24
23
  });
25
24
  }
26
25
  async function startForegroundService(call_cid) {
27
- if (_reactNative2.Platform.OS !== 'android') {
28
- return;
29
- }
26
+ if (!isAndroid7OrBelow) return;
30
27
  const foregroundServiceConfig = _utils.StreamVideoRN.getConfig().foregroundService;
31
28
  const {
32
29
  title,
33
30
  body
34
31
  } = foregroundServiceConfig.android.notificationTexts;
35
- const channelId = foregroundServiceConfig.android.channel.id;
36
32
 
37
33
  // request for notification permission and then start the foreground service
38
34
  const settings = await _reactNative.default.getNotificationSettings();
@@ -41,13 +37,11 @@ async function startForegroundService(call_cid) {
41
37
  logger('info', 'Notification permission not granted, can not start foreground service to keep the call alive');
42
38
  return;
43
39
  }
44
- await _reactNative.default.createChannel(foregroundServiceConfig.android.channel);
45
40
  await _reactNative.default.displayNotification({
46
41
  id: call_cid,
47
42
  title,
48
43
  body,
49
44
  android: {
50
- channelId,
51
45
  asForegroundService: true,
52
46
  ongoing: true,
53
47
  // user cannot dismiss the notification
@@ -60,9 +54,7 @@ async function startForegroundService(call_cid) {
60
54
  });
61
55
  }
62
56
  async function stopForegroundService() {
63
- if (_reactNative2.Platform.OS !== 'android') {
64
- return;
65
- }
57
+ if (!isAndroid7OrBelow) return;
66
58
  await _reactNative.default.stopForegroundService();
67
59
  }
68
60
 
@@ -76,7 +68,7 @@ let isSetForegroundServiceRan = false;
76
68
  * Additonally: also responsible for cancelling any notifee displayed notification when the call has transitioned out of ringing
77
69
  */
78
70
  const useAndroidKeepCallAliveEffect = () => {
79
- if (!isSetForegroundServiceRan && _reactNative2.Platform.OS === 'android') {
71
+ if (!isSetForegroundServiceRan && isAndroid7OrBelow) {
80
72
  isSetForegroundServiceRan = true;
81
73
  setForegroundService();
82
74
  }
@@ -87,7 +79,7 @@ const useAndroidKeepCallAliveEffect = () => {
87
79
  } = (0, _videoReactBindings.useCallStateHooks)();
88
80
  const callingState = useCallCallingState();
89
81
  (0, _react.useEffect)(() => {
90
- if (_reactNative2.Platform.OS !== 'android' || !activeCallCid) {
82
+ if (!isAndroid7OrBelow || !activeCallCid) {
91
83
  return;
92
84
  }
93
85
 
@@ -1 +1 @@
1
- {"version":3,"names":["_videoReactBindings","require","_react","_reactNative","_interopRequireWildcard","_utils","_reactNative2","_videoClient","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","setForegroundService","Platform","OS","notifee","registerForegroundService","Promise","logger","getLogger","startForegroundService","call_cid","foregroundServiceConfig","StreamVideoRN","getConfig","foregroundService","title","body","android","notificationTexts","channelId","channel","id","settings","getNotificationSettings","authorizationStatus","AuthorizationStatus","AUTHORIZED","createChannel","displayNotification","asForegroundService","ongoing","colorized","pressAction","launchActivity","stopForegroundService","isSetForegroundServiceRan","useAndroidKeepCallAliveEffect","foregroundServiceStartedRef","useRef","activeCallCid","useCall","cid","useCallCallingState","useCallStateHooks","callingState","useEffect","CallingState","JOINED","run","current","getDisplayedNotifications","then","displayedNotifications","activeCallNotification","find","notification","cancelDisplayedNotification","RINGING","IDLE","LEFT","exports"],"sourceRoot":"../../../src","sources":["hooks/useAndroidKeepCallAliveEffect.ts"],"mappings":";;;;;;AAAA,IAAAA,mBAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAC,uBAAA,CAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAL,OAAA;AACA,IAAAM,YAAA,GAAAN,OAAA;AAAkE,SAAAO,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAL,wBAAAK,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAElE,SAASW,oBAAoBA,CAAA,EAAG;EAC9B,IAAIC,sBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;IAC7B;EACF;EACAC,oBAAO,CAACC,yBAAyB,CAAC,MAAM;IACtC,OAAO,IAAIC,OAAO,CAAC,MAAM;MACvB,MAAMC,MAAM,GAAG,IAAAC,sBAAS,EAAC,CAAC,6BAA6B,CAAC,CAAC;MACzDD,MAAM,CAAC,MAAM,EAAE,iDAAiD,CAAC;IACnE,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ;AAEA,eAAeE,sBAAsBA,CAACC,QAAgB,EAAE;EACtD,IAAIR,sBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;IAC7B;EACF;EACA,MAAMQ,uBAAuB,GAAGC,oBAAa,CAACC,SAAS,CAAC,CAAC,CAACC,iBAAiB;EAC3E,MAAM;IAAEC,KAAK;IAAEC;EAAK,CAAC,GAAGL,uBAAuB,CAACM,OAAO,CAACC,iBAAiB;EACzE,MAAMC,SAAS,GAAGR,uBAAuB,CAACM,OAAO,CAACG,OAAO,CAACC,EAAE;;EAE5D;EACA,MAAMC,QAAQ,GAAG,MAAMlB,oBAAO,CAACmB,uBAAuB,CAAC,CAAC;EACxD,IAAID,QAAQ,CAACE,mBAAmB,KAAKC,gCAAmB,CAACC,UAAU,EAAE;IACnE,MAAMnB,MAAM,GAAG,IAAAC,sBAAS,EAAC,CAAC,wBAAwB,CAAC,CAAC;IACpDD,MAAM,CACJ,MAAM,EACN,8FACF,CAAC;IACD;EACF;EACA,MAAMH,oBAAO,CAACuB,aAAa,CAAChB,uBAAuB,CAACM,OAAO,CAACG,OAAO,CAAC;EACpE,MAAMhB,oBAAO,CAACwB,mBAAmB,CAAC;IAChCP,EAAE,EAAEX,QAAQ;IACZK,KAAK;IACLC,IAAI;IACJC,OAAO,EAAE;MACPE,SAAS;MACTU,mBAAmB,EAAE,IAAI;MACzBC,OAAO,EAAE,IAAI;MAAE;MACfC,SAAS,EAAE,IAAI;MACfC,WAAW,EAAE;QACXX,EAAE,EAAE,SAAS;QACbY,cAAc,EAAE,SAAS,CAAE;MAC7B;IACF;EACF,CAAC,CAAC;AACJ;AAEA,eAAeC,qBAAqBA,CAAA,EAAG;EACrC,IAAIhC,sBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;IAC7B;EACF;EACA,MAAMC,oBAAO,CAAC8B,qBAAqB,CAAC,CAAC;AACvC;;AAEA;AACA,IAAIC,yBAAyB,GAAG,KAAK;;AAErC;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,6BAA6B,GAAGA,CAAA,KAAM;EACjD,IAAI,CAACD,yBAAyB,IAAIjC,sBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;IAC3DgC,yBAAyB,GAAG,IAAI;IAChClC,oBAAoB,CAAC,CAAC;EACxB;EACA,MAAMoC,2BAA2B,GAAG,IAAAC,aAAM,EAAC,KAAK,CAAC;EAEjD,MAAMC,aAAa,GAAG,IAAAC,2BAAO,EAAC,CAAC,EAAEC,GAAG;EACpC,MAAM;IAAEC;EAAoB,CAAC,GAAG,IAAAC,qCAAiB,EAAC,CAAC;EACnD,MAAMC,YAAY,GAAGF,mBAAmB,CAAC,CAAC;EAE1C,IAAAG,gBAAS,EAAC,MAAgC;IACxC,IAAI3C,sBAAQ,CAACC,EAAE,KAAK,SAAS,IAAI,CAACoC,aAAa,EAAE;MAC/C;IACF;;IAEA;IACA,IAAIK,YAAY,KAAKE,yBAAY,CAACC,MAAM,EAAE;MACxC,MAAMC,GAAG,GAAG,MAAAA,CAAA,KAAY;QACtB,IAAIX,2BAA2B,CAACY,OAAO,EAAE;UACvC;QACF;QACA7C,oBAAO,CAAC8C,yBAAyB,CAAC,CAAC,CAACC,IAAI,CAAEC,sBAAsB,IAAK;UACnE,MAAMC,sBAAsB,GAAGD,sBAAsB,CAACE,IAAI,CACvDC,YAAY,IAAKA,YAAY,CAAClC,EAAE,KAAKkB,aACxC,CAAC;UACD,IAAIc,sBAAsB,EAAE;YAC1B;YACAjD,oBAAO,CAAC8B,qBAAqB,CAAC,CAAC;YAC/B9B,oBAAO,CAACoD,2BAA2B,CAACjB,aAAa,CAAC;UACpD;UACA;UACA9B,sBAAsB,CAAC8B,aAAa,CAAC,CAACY,IAAI,CAAC,MAAM;YAC/Cd,2BAA2B,CAACY,OAAO,GAAG,IAAI;UAC5C,CAAC,CAAC;QACJ,CAAC,CAAC;MACJ,CAAC;MACDD,GAAG,CAAC,CAAC;IACP,CAAC,MAAM,IAAIJ,YAAY,KAAKE,yBAAY,CAACW,OAAO,EAAE;MAChD;MACA,OAAO,MAAM;QACX;QACArD,oBAAO,CAACoD,2BAA2B,CAACjB,aAAa,CAAC;MACpD,CAAC;IACH,CAAC,MAAM,IACLK,YAAY,KAAKE,yBAAY,CAACY,IAAI,IAClCd,YAAY,KAAKE,yBAAY,CAACa,IAAI,EAClC;MACA,IAAItB,2BAA2B,CAACY,OAAO,EAAE;QACvC;QACAf,qBAAqB,CAAC,CAAC;QACvBG,2BAA2B,CAACY,OAAO,GAAG,KAAK;MAC7C,CAAC,MAAM;QACL7C,oBAAO,CAAC8C,yBAAyB,CAAC,CAAC,CAACC,IAAI,CAAEC,sBAAsB,IAAK;UACnE,MAAMC,sBAAsB,GAAGD,sBAAsB,CAACE,IAAI,CACvDC,YAAY,IAAKA,YAAY,CAAClC,EAAE,KAAKkB,aACxC,CAAC;UACD,IAAIc,sBAAsB,EAAE;YAC1B;YACAjD,oBAAO,CAAC8B,qBAAqB,CAAC,CAAC;UACjC;QACF,CAAC,CAAC;MACJ;IACF;EACF,CAAC,EAAE,CAACK,aAAa,EAAEK,YAAY,CAAC,CAAC;EAEjC,IAAAC,gBAAS,EAAC,MAAM;IACd,OAAO,MAAM;MACX;MACA,IAAIR,2BAA2B,CAACY,OAAO,EAAE;QACvCf,qBAAqB,CAAC,CAAC;QACvBG,2BAA2B,CAACY,OAAO,GAAG,KAAK;MAC7C;IACF,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;AACR,CAAC;AAACW,OAAA,CAAAxB,6BAAA,GAAAA,6BAAA","ignoreList":[]}
1
+ {"version":3,"names":["_videoReactBindings","require","_react","_reactNative","_interopRequireWildcard","_utils","_reactNative2","_videoClient","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","isAndroid7OrBelow","Platform","OS","Version","setForegroundService","notifee","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","stopForegroundService","isSetForegroundServiceRan","useAndroidKeepCallAliveEffect","foregroundServiceStartedRef","useRef","activeCallCid","useCall","cid","useCallCallingState","useCallStateHooks","callingState","useEffect","CallingState","JOINED","run","current","getDisplayedNotifications","then","displayedNotifications","activeCallNotification","find","notification","cancelDisplayedNotification","RINGING","IDLE","LEFT","exports"],"sourceRoot":"../../../src","sources":["hooks/useAndroidKeepCallAliveEffect.ts"],"mappings":";;;;;;AAAA,IAAAA,mBAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAC,uBAAA,CAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAL,OAAA;AACA,IAAAM,YAAA,GAAAN,OAAA;AAAkE,SAAAO,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAL,wBAAAK,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAElE,MAAMW,iBAAiB,GAAGC,sBAAQ,CAACC,EAAE,KAAK,SAAS,IAAID,sBAAQ,CAACE,OAAO,GAAG,EAAE;AAE5E,SAASC,oBAAoBA,CAAA,EAAG;EAC9B,IAAI,CAACJ,iBAAiB,EAAE;EACxBK,oBAAO,CAACC,yBAAyB,CAAC,MAAM;IACtC,OAAO,IAAIC,OAAO,CAAC,MAAM;MACvB,MAAMC,MAAM,GAAG,IAAAC,sBAAS,EAAC,CAAC,6BAA6B,CAAC,CAAC;MACzDD,MAAM,CAAC,MAAM,EAAE,iDAAiD,CAAC;IACnE,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ;AAEA,eAAeE,sBAAsBA,CAACC,QAAgB,EAAE;EACtD,IAAI,CAACX,iBAAiB,EAAE;EACxB,MAAMY,uBAAuB,GAAGC,oBAAa,CAACC,SAAS,CAAC,CAAC,CAACC,iBAAiB;EAC3E,MAAM;IAAEC,KAAK;IAAEC;EAAK,CAAC,GAAGL,uBAAuB,CAACM,OAAO,CAACC,iBAAiB;;EAEzE;EACA,MAAMC,QAAQ,GAAG,MAAMf,oBAAO,CAACgB,uBAAuB,CAAC,CAAC;EACxD,IAAID,QAAQ,CAACE,mBAAmB,KAAKC,gCAAmB,CAACC,UAAU,EAAE;IACnE,MAAMhB,MAAM,GAAG,IAAAC,sBAAS,EAAC,CAAC,wBAAwB,CAAC,CAAC;IACpDD,MAAM,CACJ,MAAM,EACN,8FACF,CAAC;IACD;EACF;EACA,MAAMH,oBAAO,CAACoB,mBAAmB,CAAC;IAChCC,EAAE,EAAEf,QAAQ;IACZK,KAAK;IACLC,IAAI;IACJC,OAAO,EAAE;MACPS,mBAAmB,EAAE,IAAI;MACzBC,OAAO,EAAE,IAAI;MAAE;MACfC,SAAS,EAAE,IAAI;MACfC,WAAW,EAAE;QACXJ,EAAE,EAAE,SAAS;QACbK,cAAc,EAAE,SAAS,CAAE;MAC7B;IACF;EACF,CAAC,CAAC;AACJ;AAEA,eAAeC,qBAAqBA,CAAA,EAAG;EACrC,IAAI,CAAChC,iBAAiB,EAAE;EACxB,MAAMK,oBAAO,CAAC2B,qBAAqB,CAAC,CAAC;AACvC;;AAEA;AACA,IAAIC,yBAAyB,GAAG,KAAK;;AAErC;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,6BAA6B,GAAGA,CAAA,KAAM;EACjD,IAAI,CAACD,yBAAyB,IAAIjC,iBAAiB,EAAE;IACnDiC,yBAAyB,GAAG,IAAI;IAChC7B,oBAAoB,CAAC,CAAC;EACxB;EACA,MAAM+B,2BAA2B,GAAG,IAAAC,aAAM,EAAC,KAAK,CAAC;EAEjD,MAAMC,aAAa,GAAG,IAAAC,2BAAO,EAAC,CAAC,EAAEC,GAAG;EACpC,MAAM;IAAEC;EAAoB,CAAC,GAAG,IAAAC,qCAAiB,EAAC,CAAC;EACnD,MAAMC,YAAY,GAAGF,mBAAmB,CAAC,CAAC;EAE1C,IAAAG,gBAAS,EAAC,MAAgC;IACxC,IAAI,CAAC3C,iBAAiB,IAAI,CAACqC,aAAa,EAAE;MACxC;IACF;;IAEA;IACA,IAAIK,YAAY,KAAKE,yBAAY,CAACC,MAAM,EAAE;MACxC,MAAMC,GAAG,GAAG,MAAAA,CAAA,KAAY;QACtB,IAAIX,2BAA2B,CAACY,OAAO,EAAE;UACvC;QACF;QACA1C,oBAAO,CAAC2C,yBAAyB,CAAC,CAAC,CAACC,IAAI,CAAEC,sBAAsB,IAAK;UACnE,MAAMC,sBAAsB,GAAGD,sBAAsB,CAACE,IAAI,CACvDC,YAAY,IAAKA,YAAY,CAAC3B,EAAE,KAAKW,aACxC,CAAC;UACD,IAAIc,sBAAsB,EAAE;YAC1B;YACA9C,oBAAO,CAAC2B,qBAAqB,CAAC,CAAC;YAC/B3B,oBAAO,CAACiD,2BAA2B,CAACjB,aAAa,CAAC;UACpD;UACA;UACA3B,sBAAsB,CAAC2B,aAAa,CAAC,CAACY,IAAI,CAAC,MAAM;YAC/Cd,2BAA2B,CAACY,OAAO,GAAG,IAAI;UAC5C,CAAC,CAAC;QACJ,CAAC,CAAC;MACJ,CAAC;MACDD,GAAG,CAAC,CAAC;IACP,CAAC,MAAM,IAAIJ,YAAY,KAAKE,yBAAY,CAACW,OAAO,EAAE;MAChD;MACA,OAAO,MAAM;QACX;QACAlD,oBAAO,CAACiD,2BAA2B,CAACjB,aAAa,CAAC;MACpD,CAAC;IACH,CAAC,MAAM,IACLK,YAAY,KAAKE,yBAAY,CAACY,IAAI,IAClCd,YAAY,KAAKE,yBAAY,CAACa,IAAI,EAClC;MACA,IAAItB,2BAA2B,CAACY,OAAO,EAAE;QACvC;QACAf,qBAAqB,CAAC,CAAC;QACvBG,2BAA2B,CAACY,OAAO,GAAG,KAAK;MAC7C,CAAC,MAAM;QACL1C,oBAAO,CAAC2C,yBAAyB,CAAC,CAAC,CAACC,IAAI,CAAEC,sBAAsB,IAAK;UACnE,MAAMC,sBAAsB,GAAGD,sBAAsB,CAACE,IAAI,CACvDC,YAAY,IAAKA,YAAY,CAAC3B,EAAE,KAAKW,aACxC,CAAC;UACD,IAAIc,sBAAsB,EAAE;YAC1B;YACA9C,oBAAO,CAAC2B,qBAAqB,CAAC,CAAC;UACjC;QACF,CAAC,CAAC;MACJ;IACF;EACF,CAAC,EAAE,CAACK,aAAa,EAAEK,YAAY,CAAC,CAAC;EAEjC,IAAAC,gBAAS,EAAC,MAAM;IACd,OAAO,MAAM;MACX;MACA,IAAIR,2BAA2B,CAACY,OAAO,EAAE;QACvCf,qBAAqB,CAAC,CAAC;QACvBG,2BAA2B,CAACY,OAAO,GAAG,KAAK;MAC7C;IACF,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;AACR,CAAC;AAACW,OAAA,CAAAxB,6BAAA,GAAAA,6BAAA","ignoreList":[]}
@@ -7,26 +7,27 @@ exports.useIsInPiPMode = useIsInPiPMode;
7
7
  var _react = require("react");
8
8
  var _reactNative = require("react-native");
9
9
  const PIP_CHANGE_EVENT = 'StreamVideoReactNative_PIP_CHANGE_EVENT';
10
+ const isAndroid8OrAbove = _reactNative.Platform.OS === 'android' && _reactNative.Platform.Version >= 26;
10
11
  function useIsInPiPMode() {
11
- const [isInPiPMode, setIsInPiPMode] = (0, _react.useState)(false);
12
+ const [isInPiPMode, setIsInPiPMode] = (0, _react.useState)(isAndroid8OrAbove && _reactNative.AppState.currentState === 'background');
12
13
  (0, _react.useEffect)(() => {
13
- if (_reactNative.Platform.OS !== 'android') {
14
+ if (!isAndroid8OrAbove) {
14
15
  return;
15
16
  }
16
17
  const eventEmitter = new _reactNative.NativeEventEmitter(_reactNative.NativeModules.StreamVideoReactNative);
17
18
  const subscriptionPiPChange = eventEmitter.addListener(PIP_CHANGE_EVENT, setIsInPiPMode);
19
+ const setFromNativeMethod = async () => {
20
+ const isInPiPNativeMethod = await _reactNative.NativeModules?.StreamVideoReactNative?.isInPiPMode();
21
+ setIsInPiPMode(!!isInPiPNativeMethod);
22
+ };
18
23
  const subscriptionAppState = _reactNative.AppState.addEventListener('change', nextAppState => {
19
24
  if (nextAppState === 'background') {
20
25
  setIsInPiPMode(true); // set with an assumption that its enabled so that UI disabling happens faster
21
26
  // if PiP was not enabled anyway, then in the next code we ll set it to false and UI wont be shown anyway
22
27
  }
23
- // attempt to take the value as soon as app state is changed
24
- // this can be faster than event emitter at times
25
- // also in new arch this can be made a synchronous method
26
- _reactNative.NativeModules?.StreamVideoReactNative?.isInPiPMode().then(isInPiPNativeMethod => {
27
- setIsInPiPMode(!!isInPiPNativeMethod);
28
- });
28
+ setFromNativeMethod();
29
29
  });
30
+ setFromNativeMethod();
30
31
  return () => {
31
32
  subscriptionPiPChange.remove();
32
33
  subscriptionAppState.remove();
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","PIP_CHANGE_EVENT","useIsInPiPMode","isInPiPMode","setIsInPiPMode","useState","useEffect","Platform","OS","eventEmitter","NativeEventEmitter","NativeModules","StreamVideoReactNative","subscriptionPiPChange","addListener","subscriptionAppState","AppState","addEventListener","nextAppState","then","isInPiPNativeMethod","remove"],"sourceRoot":"../../../src","sources":["hooks/useIsInPiPMode.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAOA,MAAME,gBAAgB,GAAG,yCAAyC;AAE3D,SAASC,cAAcA,CAAA,EAAG;EAC/B,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAG,IAAAC,eAAQ,EAAC,KAAK,CAAC;EAErD,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAIC,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;MAC7B;IACF;IAEA,MAAMC,YAAY,GAAG,IAAIC,+BAAkB,CACzCC,0BAAa,CAACC,sBAChB,CAAC;IAED,MAAMC,qBAAqB,GAAGJ,YAAY,CAACK,WAAW,CACpDb,gBAAgB,EAChBG,cACF,CAAC;IAED,MAAMW,oBAAoB,GAAGC,qBAAQ,CAACC,gBAAgB,CACpD,QAAQ,EACPC,YAAY,IAAK;MAChB,IAAIA,YAAY,KAAK,YAAY,EAAE;QACjCd,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QACtB;MACF;MACA;MACA;MACA;MACAO,0BAAa,EAAEC,sBAAsB,EAAET,WAAW,CAAC,CAAC,CAACgB,IAAI,CACtDC,mBAA+C,IAAK;QACnDhB,cAAc,CAAC,CAAC,CAACgB,mBAAmB,CAAC;MACvC,CACF,CAAC;IACH,CACF,CAAC;IAED,OAAO,MAAM;MACXP,qBAAqB,CAACQ,MAAM,CAAC,CAAC;MAC9BN,oBAAoB,CAACM,MAAM,CAAC,CAAC;IAC/B,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOlB,WAAW;AACpB","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","PIP_CHANGE_EVENT","isAndroid8OrAbove","Platform","OS","Version","useIsInPiPMode","isInPiPMode","setIsInPiPMode","useState","AppState","currentState","useEffect","eventEmitter","NativeEventEmitter","NativeModules","StreamVideoReactNative","subscriptionPiPChange","addListener","setFromNativeMethod","isInPiPNativeMethod","subscriptionAppState","addEventListener","nextAppState","remove"],"sourceRoot":"../../../src","sources":["hooks/useIsInPiPMode.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAOA,MAAME,gBAAgB,GAAG,yCAAyC;AAElE,MAAMC,iBAAiB,GAAGC,qBAAQ,CAACC,EAAE,KAAK,SAAS,IAAID,qBAAQ,CAACE,OAAO,IAAI,EAAE;AAEtE,SAASC,cAAcA,CAAA,EAAG;EAC/B,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAG,IAAAC,eAAQ,EAC5CP,iBAAiB,IAAIQ,qBAAQ,CAACC,YAAY,KAAK,YACjD,CAAC;EAED,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAI,CAACV,iBAAiB,EAAE;MACtB;IACF;IAEA,MAAMW,YAAY,GAAG,IAAIC,+BAAkB,CACzCC,0BAAa,CAACC,sBAChB,CAAC;IAED,MAAMC,qBAAqB,GAAGJ,YAAY,CAACK,WAAW,CACpDjB,gBAAgB,EAChBO,cACF,CAAC;IAED,MAAMW,mBAAmB,GAAG,MAAAA,CAAA,KAAY;MACtC,MAAMC,mBAA+C,GACnD,MAAML,0BAAa,EAAEC,sBAAsB,EAAET,WAAW,CAAC,CAAC;MAC5DC,cAAc,CAAC,CAAC,CAACY,mBAAmB,CAAC;IACvC,CAAC;IAED,MAAMC,oBAAoB,GAAGX,qBAAQ,CAACY,gBAAgB,CACpD,QAAQ,EACPC,YAAY,IAAK;MAChB,IAAIA,YAAY,KAAK,YAAY,EAAE;QACjCf,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QACtB;MACF;MACAW,mBAAmB,CAAC,CAAC;IACvB,CACF,CAAC;IAEDA,mBAAmB,CAAC,CAAC;IAErB,OAAO,MAAM;MACXF,qBAAqB,CAACO,MAAM,CAAC,CAAC;MAC9BH,oBAAoB,CAACG,MAAM,CAAC,CAAC;IAC/B,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOjB,WAAW;AACpB","ignoreList":[]}
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.StreamVideoRN = void 0;
7
- var _reactNative = require("@notifee/react-native");
8
7
  var _android = require("../push/android");
9
8
  var _pushLogoutCallback = _interopRequireDefault(require("../internal/pushLogoutCallback"));
10
9
  var _ios = require("../push/ios");
@@ -13,13 +12,6 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
13
12
  const DEFAULT_STREAM_VIDEO_CONFIG = {
14
13
  foregroundService: {
15
14
  android: {
16
- channel: {
17
- id: 'stream_call_foreground_service',
18
- name: 'Notification Service to keep call alive',
19
- lights: false,
20
- vibration: false,
21
- importance: _reactNative.AndroidImportance.DEFAULT
22
- },
23
15
  notificationTexts: {
24
16
  title: 'Call in progress',
25
17
  body: 'Tap to return to the call'
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_android","_pushLogoutCallback","_interopRequireDefault","_ios","_newNotificationCallbacks","e","__esModule","default","DEFAULT_STREAM_VIDEO_CONFIG","foregroundService","android","channel","id","name","lights","vibration","importance","AndroidImportance","DEFAULT","notificationTexts","title","body","StreamVideoRN","config","updateConfig","updateAndroidIncomingCallChannel","updateChannel","prevChannel","push","incomingCallChannel","setPushConfig","pushConfig","setupFirebaseHandlerAndroid","setupRemoteNotificationsHandleriOS","getConfig","onPushLogout","pushLogoutCallbacks","current","Promise","all","map","callback","then","resolve","addOnNewCallNotificationListener","newNotificationCallbacks","filter","cb","exports"],"sourceRoot":"../../../../src","sources":["utils/StreamVideoRN/index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_android","require","_pushLogoutCallback","_interopRequireDefault","_ios","_newNotificationCallbacks","e","__esModule","default","DEFAULT_STREAM_VIDEO_CONFIG","foregroundService","android","notificationTexts","title","body","StreamVideoRN","config","updateConfig","updateAndroidIncomingCallChannel","updateChannel","prevChannel","push","incomingCallChannel","setPushConfig","pushConfig","setupFirebaseHandlerAndroid","setupRemoteNotificationsHandleriOS","getConfig","onPushLogout","pushLogoutCallbacks","current","Promise","all","map","callback","then","resolve","addOnNewCallNotificationListener","newNotificationCallbacks","filter","cb","exports"],"sourceRoot":"../../../../src","sources":["utils/StreamVideoRN/index.ts"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,mBAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,IAAA,GAAAH,OAAA;AACA,IAAAI,yBAAA,GAAAF,sBAAA,CAAAF,OAAA;AAE8C,SAAAE,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,IAAI,CAACL,MAAM,CAACK,IAAI,GAAGG,UAAU;IAC7B;IACA,IAAAC,oCAA2B,EAACD,UAAU,CAAC;IACvC;IACA,IAAAE,uCAAkC,EAACF,UAAU,CAAC;EAChD;EAEA,OAAOG,SAASA,CAAA,EAAG;IACjB,OAAO,IAAI,CAACX,MAAM;EACpB;;EAEA;AACF;AACA;AACA;EACE,OAAOY,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,CAACT,IAAI,CAACa,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,CAAA1B,aAAA,GAAAA,aAAA","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 = '0.8.9';
7
+ const version = exports.version = '0.9.0';
8
8
  //# sourceMappingURL=version.js.map
@@ -4,10 +4,9 @@ import notifee, { AuthorizationStatus } from '@notifee/react-native';
4
4
  import { StreamVideoRN } from '../utils';
5
5
  import { Platform } from 'react-native';
6
6
  import { CallingState, getLogger } from '@stream-io/video-client';
7
+ const isAndroid7OrBelow = Platform.OS === 'android' && Platform.Version < 26;
7
8
  function setForegroundService() {
8
- if (Platform.OS !== 'android') {
9
- return;
10
- }
9
+ if (!isAndroid7OrBelow) return;
11
10
  notifee.registerForegroundService(() => {
12
11
  return new Promise(() => {
13
12
  const logger = getLogger(['setForegroundService method']);
@@ -16,15 +15,12 @@ function setForegroundService() {
16
15
  });
17
16
  }
18
17
  async function startForegroundService(call_cid) {
19
- if (Platform.OS !== 'android') {
20
- return;
21
- }
18
+ if (!isAndroid7OrBelow) return;
22
19
  const foregroundServiceConfig = StreamVideoRN.getConfig().foregroundService;
23
20
  const {
24
21
  title,
25
22
  body
26
23
  } = foregroundServiceConfig.android.notificationTexts;
27
- const channelId = foregroundServiceConfig.android.channel.id;
28
24
 
29
25
  // request for notification permission and then start the foreground service
30
26
  const settings = await notifee.getNotificationSettings();
@@ -33,13 +29,11 @@ async function startForegroundService(call_cid) {
33
29
  logger('info', 'Notification permission not granted, can not start foreground service to keep the call alive');
34
30
  return;
35
31
  }
36
- await notifee.createChannel(foregroundServiceConfig.android.channel);
37
32
  await notifee.displayNotification({
38
33
  id: call_cid,
39
34
  title,
40
35
  body,
41
36
  android: {
42
- channelId,
43
37
  asForegroundService: true,
44
38
  ongoing: true,
45
39
  // user cannot dismiss the notification
@@ -52,9 +46,7 @@ async function startForegroundService(call_cid) {
52
46
  });
53
47
  }
54
48
  async function stopForegroundService() {
55
- if (Platform.OS !== 'android') {
56
- return;
57
- }
49
+ if (!isAndroid7OrBelow) return;
58
50
  await notifee.stopForegroundService();
59
51
  }
60
52
 
@@ -68,7 +60,7 @@ let isSetForegroundServiceRan = false;
68
60
  * Additonally: also responsible for cancelling any notifee displayed notification when the call has transitioned out of ringing
69
61
  */
70
62
  export const useAndroidKeepCallAliveEffect = () => {
71
- if (!isSetForegroundServiceRan && Platform.OS === 'android') {
63
+ if (!isSetForegroundServiceRan && isAndroid7OrBelow) {
72
64
  isSetForegroundServiceRan = true;
73
65
  setForegroundService();
74
66
  }
@@ -79,7 +71,7 @@ export const useAndroidKeepCallAliveEffect = () => {
79
71
  } = useCallStateHooks();
80
72
  const callingState = useCallCallingState();
81
73
  useEffect(() => {
82
- if (Platform.OS !== 'android' || !activeCallCid) {
74
+ if (!isAndroid7OrBelow || !activeCallCid) {
83
75
  return;
84
76
  }
85
77
 
@@ -1 +1 @@
1
- {"version":3,"names":["useCall","useCallStateHooks","useEffect","useRef","notifee","AuthorizationStatus","StreamVideoRN","Platform","CallingState","getLogger","setForegroundService","OS","registerForegroundService","Promise","logger","startForegroundService","call_cid","foregroundServiceConfig","getConfig","foregroundService","title","body","android","notificationTexts","channelId","channel","id","settings","getNotificationSettings","authorizationStatus","AUTHORIZED","createChannel","displayNotification","asForegroundService","ongoing","colorized","pressAction","launchActivity","stopForegroundService","isSetForegroundServiceRan","useAndroidKeepCallAliveEffect","foregroundServiceStartedRef","activeCallCid","cid","useCallCallingState","callingState","JOINED","run","current","getDisplayedNotifications","then","displayedNotifications","activeCallNotification","find","notification","cancelDisplayedNotification","RINGING","IDLE","LEFT"],"sourceRoot":"../../../src","sources":["hooks/useAndroidKeepCallAliveEffect.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCall","useCallStateHooks","useEffect","useRef","notifee","AuthorizationStatus","StreamVideoRN","Platform","CallingState","getLogger","isAndroid7OrBelow","OS","Version","setForegroundService","registerForegroundService","Promise","logger","startForegroundService","call_cid","foregroundServiceConfig","getConfig","foregroundService","title","body","android","notificationTexts","settings","getNotificationSettings","authorizationStatus","AUTHORIZED","displayNotification","id","asForegroundService","ongoing","colorized","pressAction","launchActivity","stopForegroundService","isSetForegroundServiceRan","useAndroidKeepCallAliveEffect","foregroundServiceStartedRef","activeCallCid","cid","useCallCallingState","callingState","JOINED","run","current","getDisplayedNotifications","then","displayedNotifications","activeCallNotification","find","notification","cancelDisplayedNotification","RINGING","IDLE","LEFT"],"sourceRoot":"../../../src","sources":["hooks/useAndroidKeepCallAliveEffect.ts"],"mappings":"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","ignoreList":[]}
@@ -1,26 +1,27 @@
1
1
  import { useEffect, useState } from 'react';
2
2
  import { AppState, NativeEventEmitter, NativeModules, Platform } from 'react-native';
3
3
  const PIP_CHANGE_EVENT = 'StreamVideoReactNative_PIP_CHANGE_EVENT';
4
+ const isAndroid8OrAbove = Platform.OS === 'android' && Platform.Version >= 26;
4
5
  export function useIsInPiPMode() {
5
- const [isInPiPMode, setIsInPiPMode] = useState(false);
6
+ const [isInPiPMode, setIsInPiPMode] = useState(isAndroid8OrAbove && AppState.currentState === 'background');
6
7
  useEffect(() => {
7
- if (Platform.OS !== 'android') {
8
+ if (!isAndroid8OrAbove) {
8
9
  return;
9
10
  }
10
11
  const eventEmitter = new NativeEventEmitter(NativeModules.StreamVideoReactNative);
11
12
  const subscriptionPiPChange = eventEmitter.addListener(PIP_CHANGE_EVENT, setIsInPiPMode);
13
+ const setFromNativeMethod = async () => {
14
+ const isInPiPNativeMethod = await NativeModules?.StreamVideoReactNative?.isInPiPMode();
15
+ setIsInPiPMode(!!isInPiPNativeMethod);
16
+ };
12
17
  const subscriptionAppState = AppState.addEventListener('change', nextAppState => {
13
18
  if (nextAppState === 'background') {
14
19
  setIsInPiPMode(true); // set with an assumption that its enabled so that UI disabling happens faster
15
20
  // if PiP was not enabled anyway, then in the next code we ll set it to false and UI wont be shown anyway
16
21
  }
17
- // attempt to take the value as soon as app state is changed
18
- // this can be faster than event emitter at times
19
- // also in new arch this can be made a synchronous method
20
- NativeModules?.StreamVideoReactNative?.isInPiPMode().then(isInPiPNativeMethod => {
21
- setIsInPiPMode(!!isInPiPNativeMethod);
22
- });
22
+ setFromNativeMethod();
23
23
  });
24
+ setFromNativeMethod();
24
25
  return () => {
25
26
  subscriptionPiPChange.remove();
26
27
  subscriptionAppState.remove();
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useState","AppState","NativeEventEmitter","NativeModules","Platform","PIP_CHANGE_EVENT","useIsInPiPMode","isInPiPMode","setIsInPiPMode","OS","eventEmitter","StreamVideoReactNative","subscriptionPiPChange","addListener","subscriptionAppState","addEventListener","nextAppState","then","isInPiPNativeMethod","remove"],"sourceRoot":"../../../src","sources":["hooks/useIsInPiPMode.tsx"],"mappings":"AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,SACEC,QAAQ,EACRC,kBAAkB,EAClBC,aAAa,EACbC,QAAQ,QACH,cAAc;AAErB,MAAMC,gBAAgB,GAAG,yCAAyC;AAElE,OAAO,SAASC,cAAcA,CAAA,EAAG;EAC/B,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAGR,QAAQ,CAAC,KAAK,CAAC;EAErDD,SAAS,CAAC,MAAM;IACd,IAAIK,QAAQ,CAACK,EAAE,KAAK,SAAS,EAAE;MAC7B;IACF;IAEA,MAAMC,YAAY,GAAG,IAAIR,kBAAkB,CACzCC,aAAa,CAACQ,sBAChB,CAAC;IAED,MAAMC,qBAAqB,GAAGF,YAAY,CAACG,WAAW,CACpDR,gBAAgB,EAChBG,cACF,CAAC;IAED,MAAMM,oBAAoB,GAAGb,QAAQ,CAACc,gBAAgB,CACpD,QAAQ,EACPC,YAAY,IAAK;MAChB,IAAIA,YAAY,KAAK,YAAY,EAAE;QACjCR,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QACtB;MACF;MACA;MACA;MACA;MACAL,aAAa,EAAEQ,sBAAsB,EAAEJ,WAAW,CAAC,CAAC,CAACU,IAAI,CACtDC,mBAA+C,IAAK;QACnDV,cAAc,CAAC,CAAC,CAACU,mBAAmB,CAAC;MACvC,CACF,CAAC;IACH,CACF,CAAC;IAED,OAAO,MAAM;MACXN,qBAAqB,CAACO,MAAM,CAAC,CAAC;MAC9BL,oBAAoB,CAACK,MAAM,CAAC,CAAC;IAC/B,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOZ,WAAW;AACpB","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useState","AppState","NativeEventEmitter","NativeModules","Platform","PIP_CHANGE_EVENT","isAndroid8OrAbove","OS","Version","useIsInPiPMode","isInPiPMode","setIsInPiPMode","currentState","eventEmitter","StreamVideoReactNative","subscriptionPiPChange","addListener","setFromNativeMethod","isInPiPNativeMethod","subscriptionAppState","addEventListener","nextAppState","remove"],"sourceRoot":"../../../src","sources":["hooks/useIsInPiPMode.tsx"],"mappings":"AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,SACEC,QAAQ,EACRC,kBAAkB,EAClBC,aAAa,EACbC,QAAQ,QACH,cAAc;AAErB,MAAMC,gBAAgB,GAAG,yCAAyC;AAElE,MAAMC,iBAAiB,GAAGF,QAAQ,CAACG,EAAE,KAAK,SAAS,IAAIH,QAAQ,CAACI,OAAO,IAAI,EAAE;AAE7E,OAAO,SAASC,cAAcA,CAAA,EAAG;EAC/B,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAGX,QAAQ,CAC5CM,iBAAiB,IAAIL,QAAQ,CAACW,YAAY,KAAK,YACjD,CAAC;EAEDb,SAAS,CAAC,MAAM;IACd,IAAI,CAACO,iBAAiB,EAAE;MACtB;IACF;IAEA,MAAMO,YAAY,GAAG,IAAIX,kBAAkB,CACzCC,aAAa,CAACW,sBAChB,CAAC;IAED,MAAMC,qBAAqB,GAAGF,YAAY,CAACG,WAAW,CACpDX,gBAAgB,EAChBM,cACF,CAAC;IAED,MAAMM,mBAAmB,GAAG,MAAAA,CAAA,KAAY;MACtC,MAAMC,mBAA+C,GACnD,MAAMf,aAAa,EAAEW,sBAAsB,EAAEJ,WAAW,CAAC,CAAC;MAC5DC,cAAc,CAAC,CAAC,CAACO,mBAAmB,CAAC;IACvC,CAAC;IAED,MAAMC,oBAAoB,GAAGlB,QAAQ,CAACmB,gBAAgB,CACpD,QAAQ,EACPC,YAAY,IAAK;MAChB,IAAIA,YAAY,KAAK,YAAY,EAAE;QACjCV,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QACtB;MACF;MACAM,mBAAmB,CAAC,CAAC;IACvB,CACF,CAAC;IAEDA,mBAAmB,CAAC,CAAC;IAErB,OAAO,MAAM;MACXF,qBAAqB,CAACO,MAAM,CAAC,CAAC;MAC9BH,oBAAoB,CAACG,MAAM,CAAC,CAAC;IAC/B,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOZ,WAAW;AACpB","ignoreList":[]}
@@ -1,4 +1,3 @@
1
- import { AndroidImportance } from '@notifee/react-native';
2
1
  import { setupFirebaseHandlerAndroid } from '../push/android';
3
2
  import pushLogoutCallbacks from '../internal/pushLogoutCallback';
4
3
  import { setupRemoteNotificationsHandleriOS } from '../push/ios';
@@ -6,13 +5,6 @@ import newNotificationCallbacks from '../internal/newNotificationCallbacks';
6
5
  const DEFAULT_STREAM_VIDEO_CONFIG = {
7
6
  foregroundService: {
8
7
  android: {
9
- channel: {
10
- id: 'stream_call_foreground_service',
11
- name: 'Notification Service to keep call alive',
12
- lights: false,
13
- vibration: false,
14
- importance: AndroidImportance.DEFAULT
15
- },
16
8
  notificationTexts: {
17
9
  title: 'Call in progress',
18
10
  body: 'Tap to return to the call'
@@ -1 +1 @@
1
- {"version":3,"names":["AndroidImportance","setupFirebaseHandlerAndroid","pushLogoutCallbacks","setupRemoteNotificationsHandleriOS","newNotificationCallbacks","DEFAULT_STREAM_VIDEO_CONFIG","foregroundService","android","channel","id","name","lights","vibration","importance","DEFAULT","notificationTexts","title","body","StreamVideoRN","config","updateConfig","updateAndroidIncomingCallChannel","updateChannel","prevChannel","push","incomingCallChannel","setPushConfig","pushConfig","getConfig","onPushLogout","current","Promise","all","map","callback","then","resolve","addOnNewCallNotificationListener","filter","cb"],"sourceRoot":"../../../../src","sources":["utils/StreamVideoRN/index.ts"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,uBAAuB;AACzD,SAASC,2BAA2B,QAAQ,iBAAiB;AAE7D,OAAOC,mBAAmB,MAAM,gCAAgC;AAChE,SAASC,kCAAkC,QAAQ,aAAa;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,yCAAyC;QAC/CC,MAAM,EAAE,KAAK;QACbC,SAAS,EAAE,KAAK;QAChBC,UAAU,EAAEb,iBAAiB,CAACc;MAChC,CAAC;MACDC,iBAAiB,EAAE;QACjBC,KAAK,EAAE,kBAAkB;QACzBC,IAAI,EAAE;MACR;IACF;EACF;AACF,CAAC;AAED,OAAO,MAAMC,aAAa,CAAC;EACzB,OAAeC,MAAM,GAAGd,2BAA2B;;EAEnD;AACF;AACA;AACA;AACA;EACE,OAAOe,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,EAAEjB,OAAO,EAAEkB,mBAAmB;IAClE,IAAIF,WAAW,EAAE;MACf,IAAI,CAACJ,MAAM,CAACK,IAAI,CAAEjB,OAAO,CAACkB,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,IAAI,CAACL,MAAM,CAACK,IAAI,GAAGG,UAAU;IAC7B;IACA1B,2BAA2B,CAAC0B,UAAU,CAAC;IACvC;IACAxB,kCAAkC,CAACwB,UAAU,CAAC;EAChD;EAEA,OAAOC,SAASA,CAAA,EAAG;IACjB,OAAO,IAAI,CAACT,MAAM;EACpB;;EAEA;AACF;AACA;AACA;EACE,OAAOU,YAAYA,CAAA,EAAG;IACpB,IAAI3B,mBAAmB,CAAC4B,OAAO,EAAE;MAC/B,OAAOC,OAAO,CAACC,GAAG,CAChB9B,mBAAmB,CAAC4B,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,CAAC9B,wBAAwB,CAAC0B,OAAO,EAAE;MACrC1B,wBAAwB,CAAC0B,OAAO,GAAG,CAACI,QAAQ,CAAC;IAC/C,CAAC,MAAM;MACL9B,wBAAwB,CAAC0B,OAAO,CAACN,IAAI,CAACU,QAAQ,CAAC;IACjD;IACA,OAAO,MAAM;MACX9B,wBAAwB,CAAC0B,OAAO,GAC9B1B,wBAAwB,CAAC0B,OAAO,EAAEQ,MAAM,CAAEC,EAAE,IAAKA,EAAE,KAAKL,QAAQ,CAAC;IACrE,CAAC;EACH;AACF","ignoreList":[]}
1
+ {"version":3,"names":["setupFirebaseHandlerAndroid","pushLogoutCallbacks","setupRemoteNotificationsHandleriOS","newNotificationCallbacks","DEFAULT_STREAM_VIDEO_CONFIG","foregroundService","android","notificationTexts","title","body","StreamVideoRN","config","updateConfig","updateAndroidIncomingCallChannel","updateChannel","prevChannel","push","incomingCallChannel","setPushConfig","pushConfig","getConfig","onPushLogout","current","Promise","all","map","callback","then","resolve","addOnNewCallNotificationListener","filter","cb"],"sourceRoot":"../../../../src","sources":["utils/StreamVideoRN/index.ts"],"mappings":"AAAA,SAASA,2BAA2B,QAAQ,iBAAiB;AAE7D,OAAOC,mBAAmB,MAAM,gCAAgC;AAChE,SAASC,kCAAkC,QAAQ,aAAa;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,IAAI,CAACL,MAAM,CAACK,IAAI,GAAGG,UAAU;IAC7B;IACAnB,2BAA2B,CAACmB,UAAU,CAAC;IACvC;IACAjB,kCAAkC,CAACiB,UAAU,CAAC;EAChD;EAEA,OAAOC,SAASA,CAAA,EAAG;IACjB,OAAO,IAAI,CAACT,MAAM;EACpB;;EAEA;AACF;AACA;AACA;EACE,OAAOU,YAAYA,CAAA,EAAG;IACpB,IAAIpB,mBAAmB,CAACqB,OAAO,EAAE;MAC/B,OAAOC,OAAO,CAACC,GAAG,CAChBvB,mBAAmB,CAACqB,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,CAACvB,wBAAwB,CAACmB,OAAO,EAAE;MACrCnB,wBAAwB,CAACmB,OAAO,GAAG,CAACI,QAAQ,CAAC;IAC/C,CAAC,MAAM;MACLvB,wBAAwB,CAACmB,OAAO,CAACN,IAAI,CAACU,QAAQ,CAAC;IACjD;IACA,OAAO,MAAM;MACXvB,wBAAwB,CAACmB,OAAO,GAC9BnB,wBAAwB,CAACmB,OAAO,EAAEQ,MAAM,CAAEC,EAAE,IAAKA,EAAE,KAAKL,QAAQ,CAAC;IACrE,CAAC;EACH;AACF","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- export const version = '0.8.9';
1
+ export const version = '0.9.0';
2
2
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAndroidKeepCallAliveEffect.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAndroidKeepCallAliveEffect.ts"],"names":[],"mappings":"AAiEA;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,YA2EzC,CAAC"}
1
+ {"version":3,"file":"useAndroidKeepCallAliveEffect.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAndroidKeepCallAliveEffect.ts"],"names":[],"mappings":"AA0DA;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,YA2EzC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useIsInPiPMode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useIsInPiPMode.tsx"],"names":[],"mappings":"AAUA,wBAAgB,cAAc,YA0C7B"}
1
+ {"version":3,"file":"useIsInPiPMode.d.ts","sourceRoot":"","sources":["../../../src/hooks/useIsInPiPMode.tsx"],"names":[],"mappings":"AAYA,wBAAgB,cAAc,YA6C7B"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/StreamVideoRN/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAG5C,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;IAYvE,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":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAG5C,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;IAYvE,MAAM,CAAC,SAAS;IAIhB;;;OAGG;IACH,MAAM,CAAC,YAAY;IASnB;;;;OAIG;IACH,MAAM,CAAC,gCAAgC,CACrC,QAAQ,EAAE,2BAA2B;CAYxC"}
@@ -105,11 +105,9 @@ export type StreamVideoConfig = {
105
105
  foregroundService: {
106
106
  android: {
107
107
  /**
108
- * The notification channel to keep call alive in the background for Android using a foreground service.
109
- */
110
- channel: AndroidChannel;
111
- /**
112
- * The texts shown in the notification to keep call alive in the background for Android using a foreground service.
108
+ * The texts shown in the notification to keep call alive in the background
109
+ * for Android 24 and 25 platforms using a foreground service.
110
+ * On Android 26 and above, Picture in Picture mode is used to keep the call alive.
113
111
  */
114
112
  notificationTexts: {
115
113
  title: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/utils/StreamVideoRN/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,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,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;;;;;;;;;;;;;;;;WAgBG;QACH,uBAAuB,EAAE,MAAM,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAC;QACtE,+EAA+E;QAC/E,kBAAkB,EAAE,MAAM,IAAI,CAAC;QAC/B,mIAAmI;QACnI,sBAAsB,EAAE,MAAM,IAAI,CAAC;QACnC,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
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/utils/StreamVideoRN/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,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,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;;;;;;;;;;;;;;;;WAgBG;QACH,uBAAuB,EAAE,MAAM,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAC;QACtE,+EAA+E;QAC/E,kBAAkB,EAAE,MAAM,IAAI,CAAC;QAC/B,mIAAmI;QACnI,sBAAsB,EAAE,MAAM,IAAI,CAAC;QACnC,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,2 +1,2 @@
1
- export declare const version = "0.8.9";
1
+ export declare const version = "0.9.0";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -3,21 +3,20 @@ 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
5
  function getNotifeeService() {
6
- /*
6
+ /* Example:
7
7
  <service
8
8
  android:name="app.notifee.core.ForegroundService"
9
9
  android:stopWithTask="true"
10
+
10
11
  android:foregroundServiceType="mediaProjection" />
11
12
  */
12
- let foregroundServiceType = 'microphone';
13
- // if (enableScreenshare) {
14
- // foregroundServiceType = 'mediaProjection|' + foregroundServiceType;
15
- // }
16
- const head = prefixAndroidKeys({
13
+ const foregroundServiceType = 'dataSync';
14
+ let head = prefixAndroidKeys({
17
15
  name: 'app.notifee.core.ForegroundService',
18
16
  stopWithTask: 'true',
19
17
  foregroundServiceType,
20
18
  });
19
+ head = { ...head, 'tools:replace': 'android:foregroundServiceType' };
21
20
  return {
22
21
  $: head,
23
22
  };
@@ -4,7 +4,7 @@ const config_plugins_1 = require("@expo/config-plugins");
4
4
  const withStreamVideoReactNativeSDKAndroidPermissions = (configuration, props) => {
5
5
  const foregroundServicePermissions = [
6
6
  'android.permission.FOREGROUND_SERVICE',
7
- 'android.permission.FOREGROUND_SERVICE_MICROPHONE',
7
+ 'android.permission.FOREGROUND_SERVICE_DATA_SYNC',
8
8
  ];
9
9
  if (props?.enableScreenshare) {
10
10
  foregroundServicePermissions.push('android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stream-io/video-react-native-sdk",
3
- "version": "0.8.9",
3
+ "version": "0.9.0",
4
4
  "packageManager": "yarn@3.2.4",
5
5
  "main": "dist/commonjs/index.js",
6
6
  "module": "dist/module/index.js",
@@ -69,7 +69,7 @@
69
69
  "react-native": ">=0.67.0",
70
70
  "react-native-callkeep": ">=4.3.11",
71
71
  "react-native-gesture-handler": ">=2.8.0",
72
- "react-native-incall-manager": ">=4.1.0",
72
+ "react-native-incall-manager": ">=4.2.0",
73
73
  "react-native-reanimated": ">=2.7.0",
74
74
  "react-native-svg": ">=13.6.0",
75
75
  "react-native-voip-push-notification": ">=3.3.1"
@@ -5,10 +5,10 @@ import { StreamVideoRN } from '../utils';
5
5
  import { Platform } from 'react-native';
6
6
  import { CallingState, getLogger } from '@stream-io/video-client';
7
7
 
8
+ const isAndroid7OrBelow = Platform.OS === 'android' && Platform.Version < 26;
9
+
8
10
  function setForegroundService() {
9
- if (Platform.OS !== 'android') {
10
- return;
11
- }
11
+ if (!isAndroid7OrBelow) return;
12
12
  notifee.registerForegroundService(() => {
13
13
  return new Promise(() => {
14
14
  const logger = getLogger(['setForegroundService method']);
@@ -18,12 +18,9 @@ function setForegroundService() {
18
18
  }
19
19
 
20
20
  async function startForegroundService(call_cid: string) {
21
- if (Platform.OS !== 'android') {
22
- return;
23
- }
21
+ if (!isAndroid7OrBelow) return;
24
22
  const foregroundServiceConfig = StreamVideoRN.getConfig().foregroundService;
25
23
  const { title, body } = foregroundServiceConfig.android.notificationTexts;
26
- const channelId = foregroundServiceConfig.android.channel.id;
27
24
 
28
25
  // request for notification permission and then start the foreground service
29
26
  const settings = await notifee.getNotificationSettings();
@@ -35,13 +32,11 @@ async function startForegroundService(call_cid: string) {
35
32
  );
36
33
  return;
37
34
  }
38
- await notifee.createChannel(foregroundServiceConfig.android.channel);
39
35
  await notifee.displayNotification({
40
36
  id: call_cid,
41
37
  title,
42
38
  body,
43
39
  android: {
44
- channelId,
45
40
  asForegroundService: true,
46
41
  ongoing: true, // user cannot dismiss the notification
47
42
  colorized: true,
@@ -54,9 +49,7 @@ async function startForegroundService(call_cid: string) {
54
49
  }
55
50
 
56
51
  async function stopForegroundService() {
57
- if (Platform.OS !== 'android') {
58
- return;
59
- }
52
+ if (!isAndroid7OrBelow) return;
60
53
  await notifee.stopForegroundService();
61
54
  }
62
55
 
@@ -70,7 +63,7 @@ let isSetForegroundServiceRan = false;
70
63
  * Additonally: also responsible for cancelling any notifee displayed notification when the call has transitioned out of ringing
71
64
  */
72
65
  export const useAndroidKeepCallAliveEffect = () => {
73
- if (!isSetForegroundServiceRan && Platform.OS === 'android') {
66
+ if (!isSetForegroundServiceRan && isAndroid7OrBelow) {
74
67
  isSetForegroundServiceRan = true;
75
68
  setForegroundService();
76
69
  }
@@ -81,7 +74,7 @@ export const useAndroidKeepCallAliveEffect = () => {
81
74
  const callingState = useCallCallingState();
82
75
 
83
76
  useEffect((): (() => void) | undefined => {
84
- if (Platform.OS !== 'android' || !activeCallCid) {
77
+ if (!isAndroid7OrBelow || !activeCallCid) {
85
78
  return;
86
79
  }
87
80
 
@@ -8,11 +8,15 @@ import {
8
8
 
9
9
  const PIP_CHANGE_EVENT = 'StreamVideoReactNative_PIP_CHANGE_EVENT';
10
10
 
11
+ const isAndroid8OrAbove = Platform.OS === 'android' && Platform.Version >= 26;
12
+
11
13
  export function useIsInPiPMode() {
12
- const [isInPiPMode, setIsInPiPMode] = useState(false);
14
+ const [isInPiPMode, setIsInPiPMode] = useState(
15
+ isAndroid8OrAbove && AppState.currentState === 'background'
16
+ );
13
17
 
14
18
  useEffect(() => {
15
- if (Platform.OS !== 'android') {
19
+ if (!isAndroid8OrAbove) {
16
20
  return;
17
21
  }
18
22
 
@@ -25,6 +29,12 @@ export function useIsInPiPMode() {
25
29
  setIsInPiPMode
26
30
  );
27
31
 
32
+ const setFromNativeMethod = async () => {
33
+ const isInPiPNativeMethod: boolean | null | undefined =
34
+ await NativeModules?.StreamVideoReactNative?.isInPiPMode();
35
+ setIsInPiPMode(!!isInPiPNativeMethod);
36
+ };
37
+
28
38
  const subscriptionAppState = AppState.addEventListener(
29
39
  'change',
30
40
  (nextAppState) => {
@@ -32,17 +42,12 @@ export function useIsInPiPMode() {
32
42
  setIsInPiPMode(true); // set with an assumption that its enabled so that UI disabling happens faster
33
43
  // if PiP was not enabled anyway, then in the next code we ll set it to false and UI wont be shown anyway
34
44
  }
35
- // attempt to take the value as soon as app state is changed
36
- // this can be faster than event emitter at times
37
- // also in new arch this can be made a synchronous method
38
- NativeModules?.StreamVideoReactNative?.isInPiPMode().then(
39
- (isInPiPNativeMethod: boolean | null | undefined) => {
40
- setIsInPiPMode(!!isInPiPNativeMethod);
41
- }
42
- );
45
+ setFromNativeMethod();
43
46
  }
44
47
  );
45
48
 
49
+ setFromNativeMethod();
50
+
46
51
  return () => {
47
52
  subscriptionPiPChange.remove();
48
53
  subscriptionAppState.remove();
@@ -1,4 +1,3 @@
1
- import { AndroidImportance } from '@notifee/react-native';
2
1
  import { setupFirebaseHandlerAndroid } from '../push/android';
3
2
  import { StreamVideoConfig } from './types';
4
3
  import pushLogoutCallbacks from '../internal/pushLogoutCallback';
@@ -10,13 +9,6 @@ import newNotificationCallbacks, {
10
9
  const DEFAULT_STREAM_VIDEO_CONFIG: StreamVideoConfig = {
11
10
  foregroundService: {
12
11
  android: {
13
- channel: {
14
- id: 'stream_call_foreground_service',
15
- name: 'Notification Service to keep call alive',
16
- lights: false,
17
- vibration: false,
18
- importance: AndroidImportance.DEFAULT,
19
- },
20
12
  notificationTexts: {
21
13
  title: 'Call in progress',
22
14
  body: 'Tap to return to the call',
@@ -113,11 +113,9 @@ export type StreamVideoConfig = {
113
113
  foregroundService: {
114
114
  android: {
115
115
  /**
116
- * The notification channel to keep call alive in the background for Android using a foreground service.
117
- */
118
- channel: AndroidChannel;
119
- /**
120
- * The texts shown in the notification to keep call alive in the background for Android using a foreground service.
116
+ * The texts shown in the notification to keep call alive in the background
117
+ * for Android 24 and 25 platforms using a foreground service.
118
+ * On Android 26 and above, Picture in Picture mode is used to keep the call alive.
121
119
  */
122
120
  notificationTexts: {
123
121
  title: string;
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = '0.8.9';
1
+ export const version = '0.9.0';