@stream-io/video-react-native-sdk 0.3.18 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/commonjs/components/Call/CallControls/AcceptCallButton.js +0 -5
  3. package/dist/commonjs/components/Call/CallControls/AcceptCallButton.js.map +1 -1
  4. package/dist/commonjs/components/Call/CallControls/RejectCallButton.js +0 -5
  5. package/dist/commonjs/components/Call/CallControls/RejectCallButton.js.map +1 -1
  6. package/dist/commonjs/hooks/push/useIosVoipPushEventsSetupEffect.js +58 -7
  7. package/dist/commonjs/hooks/push/useIosVoipPushEventsSetupEffect.js.map +1 -1
  8. package/dist/commonjs/hooks/useAndroidKeepCallAliveEffect.js +15 -6
  9. package/dist/commonjs/hooks/useAndroidKeepCallAliveEffect.js.map +1 -1
  10. package/dist/commonjs/providers/MediaStreamManagement.js +25 -34
  11. package/dist/commonjs/providers/MediaStreamManagement.js.map +1 -1
  12. package/dist/commonjs/providers/StreamCall.js +22 -5
  13. package/dist/commonjs/providers/StreamCall.js.map +1 -1
  14. package/dist/commonjs/utils/push/android.js +60 -1
  15. package/dist/commonjs/utils/push/android.js.map +1 -1
  16. package/dist/commonjs/utils/push/ios.js +2 -0
  17. package/dist/commonjs/utils/push/ios.js.map +1 -1
  18. package/dist/commonjs/utils/push/rxSubjects.js +6 -1
  19. package/dist/commonjs/utils/push/rxSubjects.js.map +1 -1
  20. package/dist/commonjs/utils/push/utils.js +68 -1
  21. package/dist/commonjs/utils/push/utils.js.map +1 -1
  22. package/dist/commonjs/version.js +1 -1
  23. package/dist/commonjs/version.js.map +1 -1
  24. package/dist/module/components/Call/CallControls/AcceptCallButton.js +0 -5
  25. package/dist/module/components/Call/CallControls/AcceptCallButton.js.map +1 -1
  26. package/dist/module/components/Call/CallControls/RejectCallButton.js +0 -5
  27. package/dist/module/components/Call/CallControls/RejectCallButton.js.map +1 -1
  28. package/dist/module/hooks/push/useIosVoipPushEventsSetupEffect.js +61 -9
  29. package/dist/module/hooks/push/useIosVoipPushEventsSetupEffect.js.map +1 -1
  30. package/dist/module/hooks/useAndroidKeepCallAliveEffect.js +16 -7
  31. package/dist/module/hooks/useAndroidKeepCallAliveEffect.js.map +1 -1
  32. package/dist/module/providers/MediaStreamManagement.js +25 -34
  33. package/dist/module/providers/MediaStreamManagement.js.map +1 -1
  34. package/dist/module/providers/StreamCall.js +19 -3
  35. package/dist/module/providers/StreamCall.js.map +1 -1
  36. package/dist/module/utils/push/android.js +63 -4
  37. package/dist/module/utils/push/android.js.map +1 -1
  38. package/dist/module/utils/push/ios.js +3 -1
  39. package/dist/module/utils/push/ios.js.map +1 -1
  40. package/dist/module/utils/push/rxSubjects.js +5 -0
  41. package/dist/module/utils/push/rxSubjects.js.map +1 -1
  42. package/dist/module/utils/push/utils.js +65 -0
  43. package/dist/module/utils/push/utils.js.map +1 -1
  44. package/dist/module/version.js +1 -1
  45. package/dist/module/version.js.map +1 -1
  46. package/dist/typescript/components/Call/CallControls/AcceptCallButton.d.ts.map +1 -1
  47. package/dist/typescript/components/Call/CallControls/RejectCallButton.d.ts.map +1 -1
  48. package/dist/typescript/hooks/push/useIosVoipPushEventsSetupEffect.d.ts.map +1 -1
  49. package/dist/typescript/hooks/useAndroidKeepCallAliveEffect.d.ts +1 -0
  50. package/dist/typescript/hooks/useAndroidKeepCallAliveEffect.d.ts.map +1 -1
  51. package/dist/typescript/providers/MediaStreamManagement.d.ts.map +1 -1
  52. package/dist/typescript/providers/StreamCall.d.ts +3 -1
  53. package/dist/typescript/providers/StreamCall.d.ts.map +1 -1
  54. package/dist/typescript/utils/push/android.d.ts.map +1 -1
  55. package/dist/typescript/utils/push/ios.d.ts.map +1 -1
  56. package/dist/typescript/utils/push/rxSubjects.d.ts +6 -0
  57. package/dist/typescript/utils/push/rxSubjects.d.ts.map +1 -1
  58. package/dist/typescript/utils/push/utils.d.ts +22 -1
  59. package/dist/typescript/utils/push/utils.d.ts.map +1 -1
  60. package/dist/typescript/version.d.ts +1 -1
  61. package/dist/typescript/version.d.ts.map +1 -1
  62. package/expo-config-plugin/dist/withAndroidPermissions.js +1 -0
  63. package/expo-config-plugin/dist/withPushAppDelegate.js +7 -1
  64. package/ios/StreamVideoReactNative.h +3 -1
  65. package/ios/StreamVideoReactNative.m +24 -1
  66. package/package.json +3 -3
  67. package/src/components/Call/CallControls/AcceptCallButton.tsx +0 -5
  68. package/src/components/Call/CallControls/RejectCallButton.tsx +0 -5
  69. package/src/hooks/push/useIosVoipPushEventsSetupEffect.ts +76 -8
  70. package/src/hooks/useAndroidKeepCallAliveEffect.ts +18 -7
  71. package/src/providers/MediaStreamManagement.tsx +30 -39
  72. package/src/providers/StreamCall.tsx +25 -3
  73. package/src/utils/push/android.ts +82 -4
  74. package/src/utils/push/ios.ts +6 -1
  75. package/src/utils/push/rxSubjects.ts +10 -0
  76. package/src/utils/push/utils.ts +70 -1
  77. package/src/version.ts +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,23 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ### [0.4.1](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-0.4.0...@stream-io/video-react-native-sdk-0.4.1) (2024-02-12)
6
+
7
+ ### Dependency Updates
8
+
9
+ * `@stream-io/video-client` updated to version `0.5.9`
10
+ * `@stream-io/video-react-bindings` updated to version `0.3.20`
11
+ ## [0.4.0](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-0.3.18...@stream-io/video-react-native-sdk-0.4.0) (2024-02-12)
12
+
13
+
14
+ ### ⚠ BREAKING CHANGES
15
+
16
+ * **react-native:** add missing push call.cancellation support in app terminated state (#1264)
17
+
18
+ ### Bug Fixes
19
+
20
+ * **react-native:** add missing push call.cancellation support in app terminated state ([#1264](https://github.com/GetStream/stream-video-js/issues/1264)) ([e5dae2e](https://github.com/GetStream/stream-video-js/commit/e5dae2e7f2a99185b5329d5dd5634fbfad318b63))
21
+
5
22
  ### [0.3.18](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-0.3.17...@stream-io/video-react-native-sdk-0.3.18) (2024-02-06)
6
23
 
7
24
  ### Dependency Updates
@@ -9,8 +9,6 @@ var _react = _interopRequireDefault(require("react"));
9
9
  var _CallControlsButton = require("./CallControlsButton");
10
10
  var _icons = require("../../../icons");
11
11
  var _ThemeContext = require("../../../contexts/ThemeContext");
12
- var _reactNative = require("react-native");
13
- var _reactNative2 = _interopRequireDefault(require("@notifee/react-native"));
14
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
13
  /**
16
14
  * The props for the Accept Call button.
@@ -42,9 +40,6 @@ const AcceptCallButton = _ref => {
42
40
  return;
43
41
  }
44
42
  try {
45
- if (_reactNative.Platform.OS === 'android' && call !== null && call !== void 0 && call.cid) {
46
- _reactNative2.default.cancelDisplayedNotification(call === null || call === void 0 ? void 0 : call.cid);
47
- }
48
43
  await (call === null || call === void 0 ? void 0 : call.join());
49
44
  if (onAcceptCallHandler) {
50
45
  onAcceptCallHandler();
@@ -1 +1 @@
1
- {"version":3,"names":["_videoReactBindings","require","_react","_interopRequireDefault","_CallControlsButton","_icons","_ThemeContext","_reactNative","_reactNative2","obj","__esModule","default","AcceptCallButton","_ref","onPressHandler","onAcceptCallHandler","call","useCall","theme","colors","variants","buttonSizes","acceptCallButton","useTheme","acceptCallHandler","Platform","OS","cid","notifee","cancelDisplayedNotification","join","error","console","log","createElement","CallControlsButton","onPress","color","info","size","lg","style","Phone","static_white","exports"],"sourceRoot":"../../../../../src","sources":["components/Call/CallControls/AcceptCallButton.tsx"],"mappings":";;;;;;AAAA,IAAAA,mBAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,mBAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAL,OAAA;AACA,IAAAM,YAAA,GAAAN,OAAA;AACA,IAAAO,aAAA,GAAAL,sBAAA,CAAAF,OAAA;AAA4C,SAAAE,uBAAAM,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAE5C;AACA;AACA;;AAcA;AACA;AACA;AACA;AACA;AACO,MAAMG,gBAAgB,GAAGC,IAAA,IAGH;EAAA,IAHI;IAC/BC,cAAc;IACdC;EACqB,CAAC,GAAAF,IAAA;EACtB,MAAMG,IAAI,GAAG,IAAAC,2BAAO,EAAC,CAAC;EACtB,MAAM;IACJC,KAAK,EAAE;MACLC,MAAM;MACNC,QAAQ,EAAE;QAAEC;MAAY,CAAC;MACzBC;IACF;EACF,CAAC,GAAG,IAAAC,sBAAQ,EAAC,CAAC;EACd,MAAMC,iBAAiB,GAAG,MAAAA,CAAA,KAAY;IACpC,IAAIV,cAAc,EAAE;MAClBA,cAAc,CAAC,CAAC;MAChB;IACF;IACA,IAAI;MACF,IAAIW,qBAAQ,CAACC,EAAE,KAAK,SAAS,IAAIV,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAEW,GAAG,EAAE;QAC1CC,qBAAO,CAACC,2BAA2B,CAACb,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEW,GAAG,CAAC;MAChD;MACA,OAAMX,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEc,IAAI,CAAC,CAAC;MAClB,IAAIf,mBAAmB,EAAE;QACvBA,mBAAmB,CAAC,CAAC;MACvB;IACF,CAAC,CAAC,OAAOgB,KAAK,EAAE;MACdC,OAAO,CAACC,GAAG,CAAC,oBAAoB,EAAEF,KAAK,CAAC;IAC1C;EACF,CAAC;EAED,oBACE7B,MAAA,CAAAS,OAAA,CAAAuB,aAAA,CAAC9B,mBAAA,CAAA+B,kBAAkB;IACjBC,OAAO,EAAEZ,iBAAkB;IAC3Ba,KAAK,EAAElB,MAAM,CAACmB,IAAK;IACnBC,IAAI,EAAElB,WAAW,CAACmB,EAAG;IACrBC,KAAK,EAAEnB;EAAiB,gBAExBpB,MAAA,CAAAS,OAAA,CAAAuB,aAAA,CAAC7B,MAAA,CAAAqC,KAAK;IAACL,KAAK,EAAElB,MAAM,CAACwB;EAAa,CAAE,CAClB,CAAC;AAEzB,CAAC;AAACC,OAAA,CAAAhC,gBAAA,GAAAA,gBAAA"}
1
+ {"version":3,"names":["_videoReactBindings","require","_react","_interopRequireDefault","_CallControlsButton","_icons","_ThemeContext","obj","__esModule","default","AcceptCallButton","_ref","onPressHandler","onAcceptCallHandler","call","useCall","theme","colors","variants","buttonSizes","acceptCallButton","useTheme","acceptCallHandler","join","error","console","log","createElement","CallControlsButton","onPress","color","info","size","lg","style","Phone","static_white","exports"],"sourceRoot":"../../../../../src","sources":["components/Call/CallControls/AcceptCallButton.tsx"],"mappings":";;;;;;AAAA,IAAAA,mBAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,mBAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAL,OAAA;AAA0D,SAAAE,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAE1D;AACA;AACA;;AAcA;AACA;AACA;AACA;AACA;AACO,MAAMG,gBAAgB,GAAGC,IAAA,IAGH;EAAA,IAHI;IAC/BC,cAAc;IACdC;EACqB,CAAC,GAAAF,IAAA;EACtB,MAAMG,IAAI,GAAG,IAAAC,2BAAO,EAAC,CAAC;EACtB,MAAM;IACJC,KAAK,EAAE;MACLC,MAAM;MACNC,QAAQ,EAAE;QAAEC;MAAY,CAAC;MACzBC;IACF;EACF,CAAC,GAAG,IAAAC,sBAAQ,EAAC,CAAC;EACd,MAAMC,iBAAiB,GAAG,MAAAA,CAAA,KAAY;IACpC,IAAIV,cAAc,EAAE;MAClBA,cAAc,CAAC,CAAC;MAChB;IACF;IACA,IAAI;MACF,OAAME,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAES,IAAI,CAAC,CAAC;MAClB,IAAIV,mBAAmB,EAAE;QACvBA,mBAAmB,CAAC,CAAC;MACvB;IACF,CAAC,CAAC,OAAOW,KAAK,EAAE;MACdC,OAAO,CAACC,GAAG,CAAC,oBAAoB,EAAEF,KAAK,CAAC;IAC1C;EACF,CAAC;EAED,oBACEtB,MAAA,CAAAO,OAAA,CAAAkB,aAAA,CAACvB,mBAAA,CAAAwB,kBAAkB;IACjBC,OAAO,EAAEP,iBAAkB;IAC3BQ,KAAK,EAAEb,MAAM,CAACc,IAAK;IACnBC,IAAI,EAAEb,WAAW,CAACc,EAAG;IACrBC,KAAK,EAAEd;EAAiB,gBAExBlB,MAAA,CAAAO,OAAA,CAAAkB,aAAA,CAACtB,MAAA,CAAA8B,KAAK;IAACL,KAAK,EAAEb,MAAM,CAACmB;EAAa,CAAE,CAClB,CAAC;AAEzB,CAAC;AAACC,OAAA,CAAA3B,gBAAA,GAAAA,gBAAA"}
@@ -10,8 +10,6 @@ var _CallControlsButton = require("./CallControlsButton");
10
10
  var _icons = require("../../../icons");
11
11
  var _videoClient = require("@stream-io/video-client");
12
12
  var _ThemeContext = require("../../../contexts/ThemeContext");
13
- var _reactNative = require("react-native");
14
- var _reactNative2 = _interopRequireDefault(require("@notifee/react-native"));
15
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
14
  /**
17
15
  * The props for the Reject Call button.
@@ -50,9 +48,6 @@ const RejectCallButton = _ref => {
50
48
  if (callingState === _videoClient.CallingState.LEFT) {
51
49
  return;
52
50
  }
53
- if (_reactNative.Platform.OS === 'android' && call !== null && call !== void 0 && call.cid) {
54
- _reactNative2.default.cancelDisplayedNotification(call === null || call === void 0 ? void 0 : call.cid);
55
- }
56
51
  await (call === null || call === void 0 ? void 0 : call.leave({
57
52
  reject: true
58
53
  }));
@@ -1 +1 @@
1
- {"version":3,"names":["_videoReactBindings","require","_react","_interopRequireDefault","_CallControlsButton","_icons","_videoClient","_ThemeContext","_reactNative","_reactNative2","obj","__esModule","default","RejectCallButton","_ref","onPressHandler","onRejectCallHandler","call","useCall","useCallCallingState","useCallStateHooks","callingState","theme","colors","rejectCallButton","variants","buttonSizes","useTheme","rejectCallHandler","CallingState","LEFT","Platform","OS","cid","notifee","cancelDisplayedNotification","leave","reject","error","console","log","createElement","CallControlsButton","onPress","color","size","lg","style","PhoneDown","static_white","exports"],"sourceRoot":"../../../../../src","sources":["components/Call/CallControls/RejectCallButton.tsx"],"mappings":";;;;;;AAAA,IAAAA,mBAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,mBAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAL,OAAA;AACA,IAAAM,aAAA,GAAAN,OAAA;AACA,IAAAO,YAAA,GAAAP,OAAA;AACA,IAAAQ,aAAA,GAAAN,sBAAA,CAAAF,OAAA;AAA4C,SAAAE,uBAAAO,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAE5C;AACA;AACA;;AAeA;AACA;AACA;AACA;AACA;AACO,MAAMG,gBAAgB,GAAGC,IAAA,IAGH;EAAA,IAHI;IAC/BC,cAAc;IACdC;EACqB,CAAC,GAAAF,IAAA;EACtB,MAAMG,IAAI,GAAG,IAAAC,2BAAO,EAAC,CAAC;EACtB,MAAM;IAAEC;EAAoB,CAAC,GAAG,IAAAC,qCAAiB,EAAC,CAAC;EACnD,MAAMC,YAAY,GAAGF,mBAAmB,CAAC,CAAC;EAC1C,MAAM;IACJG,KAAK,EAAE;MACLC,MAAM;MACNC,gBAAgB;MAChBC,QAAQ,EAAE;QAAEC;MAAY;IAC1B;EACF,CAAC,GAAG,IAAAC,sBAAQ,EAAC,CAAC;EACd,MAAMC,iBAAiB,GAAG,MAAAA,CAAA,KAAY;IACpC,IAAIb,cAAc,EAAE;MAClBA,cAAc,CAAC,CAAC;MAChB;IACF;IACA,IAAI;MACF,IAAIM,YAAY,KAAKQ,yBAAY,CAACC,IAAI,EAAE;QACtC;MACF;MACA,IAAIC,qBAAQ,CAACC,EAAE,KAAK,SAAS,IAAIf,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAEgB,GAAG,EAAE;QAC1CC,qBAAO,CAACC,2BAA2B,CAAClB,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEgB,GAAG,CAAC;MAChD;MACA,OAAMhB,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEmB,KAAK,CAAC;QAAEC,MAAM,EAAE;MAAK,CAAC,CAAC;MACnC,IAAIrB,mBAAmB,EAAE;QACvBA,mBAAmB,CAAC,CAAC;MACvB;IACF,CAAC,CAAC,OAAOsB,KAAK,EAAE;MACdC,OAAO,CAACC,GAAG,CAAC,sBAAsB,EAAEF,KAAK,CAAC;IAC5C;EACF,CAAC;EAED,oBACEpC,MAAA,CAAAU,OAAA,CAAA6B,aAAA,CAACrC,mBAAA,CAAAsC,kBAAkB;IACjBC,OAAO,EAAEf,iBAAkB;IAC3BgB,KAAK,EAAErB,MAAM,CAACe,KAAM;IACpBO,IAAI,EAAEnB,WAAW,CAACoB;IAClB;IACA;IAAA;IACAC,KAAK,EAAEvB;EAAiB,gBAExBtB,MAAA,CAAAU,OAAA,CAAA6B,aAAA,CAACpC,MAAA,CAAA2C,SAAS;IAACJ,KAAK,EAAErB,MAAM,CAAC0B;EAAa,CAAE,CACtB,CAAC;AAEzB,CAAC;AAACC,OAAA,CAAArC,gBAAA,GAAAA,gBAAA"}
1
+ {"version":3,"names":["_videoReactBindings","require","_react","_interopRequireDefault","_CallControlsButton","_icons","_videoClient","_ThemeContext","obj","__esModule","default","RejectCallButton","_ref","onPressHandler","onRejectCallHandler","call","useCall","useCallCallingState","useCallStateHooks","callingState","theme","colors","rejectCallButton","variants","buttonSizes","useTheme","rejectCallHandler","CallingState","LEFT","leave","reject","error","console","log","createElement","CallControlsButton","onPress","color","size","lg","style","PhoneDown","static_white","exports"],"sourceRoot":"../../../../../src","sources":["components/Call/CallControls/RejectCallButton.tsx"],"mappings":";;;;;;AAAA,IAAAA,mBAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,mBAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAL,OAAA;AACA,IAAAM,aAAA,GAAAN,OAAA;AAA0D,SAAAE,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAE1D;AACA;AACA;;AAeA;AACA;AACA;AACA;AACA;AACO,MAAMG,gBAAgB,GAAGC,IAAA,IAGH;EAAA,IAHI;IAC/BC,cAAc;IACdC;EACqB,CAAC,GAAAF,IAAA;EACtB,MAAMG,IAAI,GAAG,IAAAC,2BAAO,EAAC,CAAC;EACtB,MAAM;IAAEC;EAAoB,CAAC,GAAG,IAAAC,qCAAiB,EAAC,CAAC;EACnD,MAAMC,YAAY,GAAGF,mBAAmB,CAAC,CAAC;EAC1C,MAAM;IACJG,KAAK,EAAE;MACLC,MAAM;MACNC,gBAAgB;MAChBC,QAAQ,EAAE;QAAEC;MAAY;IAC1B;EACF,CAAC,GAAG,IAAAC,sBAAQ,EAAC,CAAC;EACd,MAAMC,iBAAiB,GAAG,MAAAA,CAAA,KAAY;IACpC,IAAIb,cAAc,EAAE;MAClBA,cAAc,CAAC,CAAC;MAChB;IACF;IACA,IAAI;MACF,IAAIM,YAAY,KAAKQ,yBAAY,CAACC,IAAI,EAAE;QACtC;MACF;MACA,OAAMb,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEc,KAAK,CAAC;QAAEC,MAAM,EAAE;MAAK,CAAC,CAAC;MACnC,IAAIhB,mBAAmB,EAAE;QACvBA,mBAAmB,CAAC,CAAC;MACvB;IACF,CAAC,CAAC,OAAOiB,KAAK,EAAE;MACdC,OAAO,CAACC,GAAG,CAAC,sBAAsB,EAAEF,KAAK,CAAC;IAC5C;EACF,CAAC;EAED,oBACE7B,MAAA,CAAAQ,OAAA,CAAAwB,aAAA,CAAC9B,mBAAA,CAAA+B,kBAAkB;IACjBC,OAAO,EAAEV,iBAAkB;IAC3BW,KAAK,EAAEhB,MAAM,CAACU,KAAM;IACpBO,IAAI,EAAEd,WAAW,CAACe;IAClB;IACA;IAAA;IACAC,KAAK,EAAElB;EAAiB,gBAExBpB,MAAA,CAAAQ,OAAA,CAAAwB,aAAA,CAAC7B,MAAA,CAAAoC,SAAS;IAACJ,KAAK,EAAEhB,MAAM,CAACqB;EAAa,CAAE,CACtB,CAAC;AAEzB,CAAC;AAACC,OAAA,CAAAhC,gBAAA,GAAAA,gBAAA"}
@@ -9,8 +9,10 @@ var _libs = require("../../utils/push/libs");
9
9
  var _reactNative = require("react-native");
10
10
  var _utils = require("../../utils");
11
11
  var _videoReactBindings = require("@stream-io/video-react-bindings");
12
- var _rxSubjects = require("../../utils/push/rxSubjects");
13
12
  var _pushLogoutCallback = require("../../utils/internal/pushLogoutCallback");
13
+ var _utils2 = require("../../utils/push/utils");
14
+ var _rxSubjects = require("../../utils/push/rxSubjects");
15
+ var _videoClient = require("@stream-io/video-client");
14
16
  let lastVoipToken = '';
15
17
 
16
18
  /**
@@ -95,8 +97,8 @@ const useIosVoipPushEventsSetupEffect = () => {
95
97
  }, []);
96
98
  };
97
99
  exports.useIosVoipPushEventsSetupEffect = useIosVoipPushEventsSetupEffect;
98
- const onNotificationReceived = notification => {
99
- var _notification$stream, _notification$stream2, _notification$stream3;
100
+ const onNotificationReceived = async notification => {
101
+ var _notification$stream, _notification$stream2, _notification$stream3, _notification$stream4, _notification$stream5;
100
102
  /* --- Example payload ---
101
103
  {
102
104
  "aps": {
@@ -126,10 +128,59 @@ const onNotificationReceived = notification => {
126
128
  return;
127
129
  }
128
130
  const call_cid = notification === null || notification === void 0 || (_notification$stream3 = notification.stream) === null || _notification$stream3 === void 0 ? void 0 : _notification$stream3.call_cid;
129
- if (call_cid) {
130
- // send the info to this subject, it is listened by callkeep events
131
- // callkeep events will then accept/reject the call
132
- _rxSubjects.voipPushNotificationCallCId$.next(call_cid);
131
+ const pushConfig = _utils.StreamVideoRN.getConfig().push;
132
+ if (!call_cid || _reactNative.Platform.OS !== 'ios' || !pushConfig) {
133
+ return;
134
+ }
135
+ const client = await pushConfig.createStreamVideoClient();
136
+ if (!client) {
137
+ return;
138
+ }
139
+ const callFromPush = await client.onRingingCall(call_cid);
140
+ let uuid = '';
141
+ try {
142
+ var _NativeModules$Stream;
143
+ uuid = await (_reactNative.NativeModules === null || _reactNative.NativeModules === void 0 || (_NativeModules$Stream = _reactNative.NativeModules.StreamVideoReactNative) === null || _NativeModules$Stream === void 0 ? void 0 : _NativeModules$Stream.getIncomingCallUUid(call_cid));
144
+ } catch (error) {
145
+ console.log('Error in getting call uuid', error);
146
+ }
147
+ if (!uuid) {
148
+ return;
149
+ }
150
+ const created_by_id = notification === null || notification === void 0 || (_notification$stream4 = notification.stream) === null || _notification$stream4 === void 0 ? void 0 : _notification$stream4.created_by_id;
151
+ const receiver_id = notification === null || notification === void 0 || (_notification$stream5 = notification.stream) === null || _notification$stream5 === void 0 ? void 0 : _notification$stream5.receiver_id;
152
+ function closeCallIfNecessary() {
153
+ const {
154
+ mustEndCall,
155
+ callkeepReason
156
+ } = (0, _utils2.shouldCallBeEnded)(callFromPush, created_by_id, receiver_id);
157
+ if (mustEndCall) {
158
+ const callkeep = (0, _libs.getCallKeepLib)();
159
+ callkeep.reportEndCallWithUUID(uuid, callkeepReason);
160
+ return true;
161
+ }
162
+ return false;
163
+ }
164
+ const closed = closeCallIfNecessary();
165
+ const canListenToWS = () => _utils2.canAddPushWSSubscriptionsRef.current && _reactNative.AppState.currentState !== 'active';
166
+ if (!closed && canListenToWS()) {
167
+ const unsubscribe = callFromPush.on('all', () => {
168
+ if (!canListenToWS()) {
169
+ unsubscribe();
170
+ return;
171
+ }
172
+ const _closed = closeCallIfNecessary();
173
+ if (_closed) {
174
+ unsubscribe();
175
+ }
176
+ });
177
+ const unsubscriptionCallbacks = _videoClient.RxUtils.getCurrentValue(_rxSubjects.pushUnsubscriptionCallbacks$) ?? [];
178
+ _rxSubjects.pushUnsubscriptionCallbacks$.next([...unsubscriptionCallbacks, unsubscribe]);
133
179
  }
180
+ // send the info to this subject, it is listened by callkeep events
181
+ // callkeep events will then accept/reject the call
182
+ _rxSubjects.voipPushNotificationCallCId$.next(call_cid);
183
+ const voipPushNotification = (0, _libs.getVoipPushNotificationLib)();
184
+ voipPushNotification.onVoipNotificationCompleted(uuid);
134
185
  };
135
186
  //# sourceMappingURL=useIosVoipPushEventsSetupEffect.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_libs","_reactNative","_utils","_videoReactBindings","_rxSubjects","_pushLogoutCallback","lastVoipToken","useIosVoipPushEventsSetupEffect","client","useStreamVideoClient","useEffect","pushConfig","StreamVideoRN","getConfig","push","Platform","OS","push_provider_name","ios","pushProviderName","addVoipDevice","catch","err","console","warn","voipPushNotification","getVoipPushNotificationLib","onTokenReceived","token","setPushLogoutCallback","removeDevice","addEventListener","events","Array","isArray","length","voipPushEvent","name","data","onNotificationReceived","removeEventListener","notification","exports","_notification$stream","_notification$stream2","_notification$stream3","sender","stream","type","call_cid","voipPushNotificationCallCId$","next"],"sourceRoot":"../../../../src","sources":["hooks/push/useIosVoipPushEventsSetupEffect.ts"],"mappings":"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"}
1
+ {"version":3,"names":["_react","require","_libs","_reactNative","_utils","_videoReactBindings","_pushLogoutCallback","_utils2","_rxSubjects","_videoClient","lastVoipToken","useIosVoipPushEventsSetupEffect","client","useStreamVideoClient","useEffect","pushConfig","StreamVideoRN","getConfig","push","Platform","OS","push_provider_name","ios","pushProviderName","addVoipDevice","catch","err","console","warn","voipPushNotification","getVoipPushNotificationLib","onTokenReceived","token","setPushLogoutCallback","removeDevice","addEventListener","events","Array","isArray","length","voipPushEvent","name","data","onNotificationReceived","removeEventListener","notification","exports","_notification$stream","_notification$stream2","_notification$stream3","_notification$stream4","_notification$stream5","sender","stream","type","call_cid","createStreamVideoClient","callFromPush","onRingingCall","uuid","_NativeModules$Stream","NativeModules","StreamVideoReactNative","getIncomingCallUUid","error","log","created_by_id","receiver_id","closeCallIfNecessary","mustEndCall","callkeepReason","shouldCallBeEnded","callkeep","getCallKeepLib","reportEndCallWithUUID","closed","canListenToWS","canAddPushWSSubscriptionsRef","current","AppState","currentState","unsubscribe","on","_closed","unsubscriptionCallbacks","RxUtils","getCurrentValue","pushUnsubscriptionCallbacks$","next","voipPushNotificationCallCId$","onVoipNotificationCompleted"],"sourceRoot":"../../../../src","sources":["hooks/push/useIosVoipPushEventsSetupEffect.ts"],"mappings":"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"}
@@ -71,13 +71,16 @@ let isSetForegroundServiceRan = false;
71
71
  * This hook is used to keep the call alive in the background for Android.
72
72
  * It starts a foreground service to keep the call alive as soon as the call is joined
73
73
  * and stops the foreground Service when the call is left.
74
+ * Additonally: also responsible for cancelling any notifee displayed notification when the call has transitioned out of ringing
74
75
  */
75
76
  const useAndroidKeepCallAliveEffect = () => {
77
+ var _useCall;
76
78
  if (!isSetForegroundServiceRan && _reactNative2.Platform.OS === 'android') {
77
79
  isSetForegroundServiceRan = true;
78
80
  setForegroundService();
79
81
  }
80
82
  const foregroundServiceStartedRef = (0, _react.useRef)(false);
83
+ const activeCallCid = (_useCall = (0, _videoReactBindings.useCall)()) === null || _useCall === void 0 ? void 0 : _useCall.cid;
81
84
  const {
82
85
  useCallCallingState
83
86
  } = (0, _videoReactBindings.useCallStateHooks)();
@@ -98,16 +101,22 @@ const useAndroidKeepCallAliveEffect = () => {
98
101
  foregroundServiceStartedRef.current = true;
99
102
  };
100
103
  run();
104
+ } else if (callingState === _videoClient.CallingState.RINGING) {
105
+ // cancel any notifee displayed notification when the call has transitioned out of ringing
101
106
  return () => {
102
- if (!foregroundServiceStartedRef.current) {
103
- return;
107
+ if (activeCallCid) {
108
+ _reactNative.default.cancelDisplayedNotification(activeCallCid);
104
109
  }
105
- // stop foreground service when the call is not active
106
- stopForegroundService();
107
- foregroundServiceStartedRef.current = false;
108
110
  };
111
+ } else if (callingState === _videoClient.CallingState.IDLE || callingState === _videoClient.CallingState.LEFT) {
112
+ if (!foregroundServiceStartedRef.current) {
113
+ return;
114
+ }
115
+ // stop foreground service when the call is not active
116
+ stopForegroundService();
117
+ foregroundServiceStartedRef.current = false;
109
118
  }
110
- }, [callingState]);
119
+ }, [activeCallCid, callingState]);
111
120
  (0, _react.useEffect)(() => {
112
121
  return () => {
113
122
  // stop foreground service when this effect is unmounted
@@ -1 +1 @@
1
- {"version":3,"names":["_videoReactBindings","require","_react","_reactNative","_interopRequireWildcard","_utils","_reactNative2","_videoClient","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","setForegroundService","Platform","OS","notifee","registerForegroundService","Promise","console","log","startForegroundService","foregroundServiceConfig","StreamVideoRN","getConfig","foregroundService","title","body","android","notificationTexts","channelId","channel","id","settings","getNotificationSettings","authorizationStatus","AuthorizationStatus","AUTHORIZED","warn","createChannel","displayNotification","asForegroundService","ongoing","colorized","pressAction","launchActivity","stopForegroundService","isSetForegroundServiceRan","useAndroidKeepCallAliveEffect","foregroundServiceStartedRef","useRef","useCallCallingState","useCallStateHooks","callingState","useEffect","CallingState","JOINED","run","current","exports"],"sourceRoot":"../../../src","sources":["hooks/useAndroidKeepCallAliveEffect.ts"],"mappings":"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"}
1
+ {"version":3,"names":["_videoReactBindings","require","_react","_reactNative","_interopRequireWildcard","_utils","_reactNative2","_videoClient","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","setForegroundService","Platform","OS","notifee","registerForegroundService","Promise","console","log","startForegroundService","foregroundServiceConfig","StreamVideoRN","getConfig","foregroundService","title","body","android","notificationTexts","channelId","channel","id","settings","getNotificationSettings","authorizationStatus","AuthorizationStatus","AUTHORIZED","warn","createChannel","displayNotification","asForegroundService","ongoing","colorized","pressAction","launchActivity","stopForegroundService","isSetForegroundServiceRan","useAndroidKeepCallAliveEffect","_useCall","foregroundServiceStartedRef","useRef","activeCallCid","useCall","cid","useCallCallingState","useCallStateHooks","callingState","useEffect","CallingState","JOINED","run","current","RINGING","cancelDisplayedNotification","IDLE","LEFT","exports"],"sourceRoot":"../../../src","sources":["hooks/useAndroidKeepCallAliveEffect.ts"],"mappings":"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"}
@@ -36,14 +36,14 @@ const MediaStreamManagement = _ref => {
36
36
  // Memoization is needed to avoid unnecessary useEffect triggers
37
37
  const targetResolutionSetting = (0, _react.useMemo)(() => {
38
38
  var _settings$video$targe, _settings$video$targe2, _settings$video$targe3;
39
- if ((settings === null || settings === void 0 || (_settings$video$targe = settings.video.target_resolution) === null || _settings$video$targe === void 0 ? void 0 : _settings$video$targe.width) === undefined || (settings === null || settings === void 0 || (_settings$video$targe2 = settings.video.target_resolution) === null || _settings$video$targe2 === void 0 ? void 0 : _settings$video$targe2.height) === undefined || (settings === null || settings === void 0 || (_settings$video$targe3 = settings.video.target_resolution) === null || _settings$video$targe3 === void 0 ? void 0 : _settings$video$targe3.bitrate) === undefined) {
40
- return undefined;
39
+ if ((settings === null || settings === void 0 || (_settings$video$targe = settings.video.target_resolution) === null || _settings$video$targe === void 0 ? void 0 : _settings$video$targe.width) !== undefined || (settings === null || settings === void 0 || (_settings$video$targe2 = settings.video.target_resolution) === null || _settings$video$targe2 === void 0 ? void 0 : _settings$video$targe2.height) !== undefined || (settings === null || settings === void 0 || (_settings$video$targe3 = settings.video.target_resolution) === null || _settings$video$targe3 === void 0 ? void 0 : _settings$video$targe3.bitrate) !== undefined) {
40
+ return {
41
+ width: settings === null || settings === void 0 ? void 0 : settings.video.target_resolution.width,
42
+ height: settings === null || settings === void 0 ? void 0 : settings.video.target_resolution.height,
43
+ bitrate: settings === null || settings === void 0 ? void 0 : settings.video.target_resolution.bitrate
44
+ };
41
45
  }
42
- return {
43
- width: settings === null || settings === void 0 ? void 0 : settings.video.target_resolution.width,
44
- height: settings === null || settings === void 0 ? void 0 : settings.video.target_resolution.height,
45
- bitrate: settings === null || settings === void 0 ? void 0 : settings.video.target_resolution.bitrate
46
- };
46
+ return undefined;
47
47
  }, [settings === null || settings === void 0 ? void 0 : settings.video.target_resolution.width, settings === null || settings === void 0 ? void 0 : settings.video.target_resolution.height, settings === null || settings === void 0 ? void 0 : settings.video.target_resolution.bitrate]);
48
48
 
49
49
  // Resume/Disable video stream tracks when app goes to background/foreground
@@ -72,52 +72,43 @@ const MediaStreamManagement = _ref => {
72
72
  * This is the object is used to track the initial audio/video enablement
73
73
  * Uses backend settings or the Prop to set initial audio/video enabled
74
74
  * Backend settings is applied only if the prop was undefined -- meaning user did not provide any value
75
+ * Memoization is needed to avoid unnecessary useEffect triggers
75
76
  */
76
77
  const {
77
78
  initialAudioEnabled,
78
79
  initialVideoEnabled
79
80
  } = (0, _react.useMemo)(() => {
80
- let _initialAudioEnabled;
81
- let _initialVideoEnabled;
82
- if (propInitialAudioEnabled !== undefined) {
83
- _initialAudioEnabled = propInitialAudioEnabled;
84
- } else if ((settings === null || settings === void 0 ? void 0 : settings.audio.mic_default_on) !== undefined) {
85
- _initialAudioEnabled = settings === null || settings === void 0 ? void 0 : settings.audio.mic_default_on;
86
- }
87
- if (propInitialVideoEnabled !== undefined) {
88
- _initialVideoEnabled = propInitialVideoEnabled;
89
- } else if ((settings === null || settings === void 0 ? void 0 : settings.video.camera_default_on) !== undefined) {
90
- _initialVideoEnabled = settings === null || settings === void 0 ? void 0 : settings.video.camera_default_on;
91
- }
92
81
  return {
93
- initialAudioEnabled: _initialAudioEnabled,
94
- initialVideoEnabled: _initialVideoEnabled
82
+ initialAudioEnabled: propInitialAudioEnabled ?? (settings === null || settings === void 0 ? void 0 : settings.audio.mic_default_on),
83
+ initialVideoEnabled: propInitialVideoEnabled ?? (settings === null || settings === void 0 ? void 0 : settings.video.camera_default_on)
95
84
  };
96
85
  }, [settings === null || settings === void 0 ? void 0 : settings.audio.mic_default_on, settings === null || settings === void 0 ? void 0 : settings.video.camera_default_on, propInitialAudioEnabled, propInitialVideoEnabled]);
97
86
 
98
87
  // The main logic
99
88
  // Enable or Disable the audio/video stream based on the initial state
100
89
  (0, _react.useEffect)(() => {
101
- if (initialAudioEnabled === undefined) {
90
+ if (!call) {
102
91
  return;
103
92
  }
104
- if (initialVideoEnabled === undefined) {
105
- return;
93
+ if (initialAudioEnabled !== undefined) {
94
+ if (initialAudioEnabled) {
95
+ call.microphone.enable();
96
+ } else {
97
+ call.microphone.disable();
98
+ }
106
99
  }
100
+
107
101
  // we wait until we receive the resolution settings from the backend
108
- if (!call || !targetResolutionSetting) {
102
+ if (!targetResolutionSetting) {
109
103
  return;
110
104
  }
111
- if (initialAudioEnabled) {
112
- call.microphone.enable();
113
- } else {
114
- call.microphone.disable();
115
- }
116
105
  call.camera.selectTargetResolution(targetResolutionSetting);
117
- if (initialVideoEnabled) {
118
- call.camera.enable();
119
- } else {
120
- call.camera.disable();
106
+ if (initialVideoEnabled !== undefined) {
107
+ if (initialVideoEnabled) {
108
+ call.camera.enable();
109
+ } else {
110
+ call.camera.disable();
111
+ }
121
112
  }
122
113
  }, [call, initialAudioEnabled, initialVideoEnabled, targetResolutionSetting]);
123
114
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children);
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_videoReactBindings","_hooks","_reactNative","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","MediaStreamManagement","_ref","initialAudioEnabled","propInitialAudioEnabled","initialVideoEnabled","propInitialVideoEnabled","children","useCall","useCallSettings","useCallStateHooks","settings","targetResolutionSetting","useMemo","_settings$video$targe","_settings$video$targe2","_settings$video$targe3","video","target_resolution","width","undefined","height","bitrate","useAppStateListener","_call$camera","camera","resume","Platform","OS","_NativeModules$Stream","NativeModules","StreamVideoReactNative","isInPiPMode","then","isInPiP","_call$camera2","disable","_call$camera3","_initialAudioEnabled","_initialVideoEnabled","audio","mic_default_on","camera_default_on","useEffect","microphone","enable","selectTargetResolution","createElement","Fragment","exports"],"sourceRoot":"../../../src","sources":["providers/MediaStreamManagement.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_videoReactBindings","_hooks","_reactNative","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","MediaStreamManagement","_ref","initialAudioEnabled","propInitialAudioEnabled","initialVideoEnabled","propInitialVideoEnabled","children","useCall","useCallSettings","useCallStateHooks","settings","targetResolutionSetting","useMemo","_settings$video$targe","_settings$video$targe2","_settings$video$targe3","video","target_resolution","width","undefined","height","bitrate","useAppStateListener","_call$camera","camera","resume","Platform","OS","_NativeModules$Stream","NativeModules","StreamVideoReactNative","isInPiPMode","then","isInPiP","_call$camera2","disable","_call$camera3","audio","mic_default_on","camera_default_on","useEffect","microphone","enable","selectTargetResolution","createElement","Fragment","exports"],"sourceRoot":"../../../src","sources":["providers/MediaStreamManagement.tsx"],"mappings":"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"}
@@ -5,11 +5,13 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.StreamCall = void 0;
7
7
  var _videoReactBindings = require("@stream-io/video-react-bindings");
8
- var _react = _interopRequireDefault(require("react"));
9
- var _hooks = require("../hooks");
8
+ var _react = _interopRequireWildcard(require("react"));
10
9
  var _useIosCallkeepWithCallingStateEffect = require("../hooks/push/useIosCallkeepWithCallingStateEffect");
11
10
  var _MediaStreamManagement = require("./MediaStreamManagement");
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+ var _utils = require("../utils/push/utils");
12
+ var _useAndroidKeepCallAliveEffect = require("../hooks/useAndroidKeepCallAliveEffect");
13
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
14
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
13
15
  /**
14
16
  * StreamCall is a wrapper component that orchestrates the call life cycle logic and
15
17
  * provides the call object to the children components.
@@ -25,7 +27,7 @@ const StreamCall = _ref => {
25
27
  } = _ref;
26
28
  return /*#__PURE__*/_react.default.createElement(_videoReactBindings.StreamCallProvider, {
27
29
  call: call
28
- }, /*#__PURE__*/_react.default.createElement(_MediaStreamManagement.MediaStreamManagement, mediaDeviceInitialState, /*#__PURE__*/_react.default.createElement(AndroidKeepCallAlive, null), /*#__PURE__*/_react.default.createElement(IosInformCallkeepCallEnd, null), children));
30
+ }, /*#__PURE__*/_react.default.createElement(_MediaStreamManagement.MediaStreamManagement, mediaDeviceInitialState, /*#__PURE__*/_react.default.createElement(AndroidKeepCallAlive, null), /*#__PURE__*/_react.default.createElement(IosInformCallkeepCallEnd, null), /*#__PURE__*/_react.default.createElement(ClearPushWSSubscriptions, null), children));
29
31
  };
30
32
 
31
33
  /**
@@ -34,7 +36,7 @@ const StreamCall = _ref => {
34
36
  */
35
37
  exports.StreamCall = StreamCall;
36
38
  const AndroidKeepCallAlive = () => {
37
- (0, _hooks.useAndroidKeepCallAliveEffect)();
39
+ (0, _useAndroidKeepCallAliveEffect.useAndroidKeepCallAliveEffect)();
38
40
  return null;
39
41
  };
40
42
 
@@ -46,4 +48,19 @@ const IosInformCallkeepCallEnd = () => {
46
48
  (0, _useIosCallkeepWithCallingStateEffect.useIosCallkeepWithCallingStateEffect)();
47
49
  return null;
48
50
  };
51
+
52
+ /**
53
+ * This is a renderless component to clear all push ws event subscriptions
54
+ * and set whether push ws subscriptions can be added or not.
55
+ */
56
+ const ClearPushWSSubscriptions = () => {
57
+ (0, _react.useEffect)(() => {
58
+ (0, _utils.clearPushWSEventSubscriptions)();
59
+ _utils.canAddPushWSSubscriptionsRef.current = false;
60
+ return () => {
61
+ _utils.canAddPushWSSubscriptionsRef.current = true;
62
+ };
63
+ }, []);
64
+ return null;
65
+ };
49
66
  //# sourceMappingURL=StreamCall.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_videoReactBindings","require","_react","_interopRequireDefault","_hooks","_useIosCallkeepWithCallingStateEffect","_MediaStreamManagement","obj","__esModule","default","StreamCall","_ref","call","mediaDeviceInitialState","children","createElement","StreamCallProvider","MediaStreamManagement","AndroidKeepCallAlive","IosInformCallkeepCallEnd","exports","useAndroidKeepCallAliveEffect","useIosCallkeepWithCallingStateEffect"],"sourceRoot":"../../../src","sources":["providers/StreamCall.tsx"],"mappings":";;;;;;AAAA,IAAAA,mBAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,qCAAA,GAAAJ,OAAA;AACA,IAAAK,sBAAA,GAAAL,OAAA;AAGiC,SAAAE,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAajC;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMG,UAAU,GAAGC,IAAA,IAIgB;EAAA,IAJf;IACzBC,IAAI;IACJC,uBAAuB,GAAG,CAAC,CAAC;IAC5BC;EACkC,CAAC,GAAAH,IAAA;EACnC,oBACET,MAAA,CAAAO,OAAA,CAAAM,aAAA,CAACf,mBAAA,CAAAgB,kBAAkB;IAACJ,IAAI,EAAEA;EAAK,gBAC7BV,MAAA,CAAAO,OAAA,CAAAM,aAAA,CAACT,sBAAA,CAAAW,qBAAqB,EAAKJ,uBAAuB,eAChDX,MAAA,CAAAO,OAAA,CAAAM,aAAA,CAACG,oBAAoB,MAAE,CAAC,eACxBhB,MAAA,CAAAO,OAAA,CAAAM,aAAA,CAACI,wBAAwB,MAAE,CAAC,EAC3BL,QACoB,CACL,CAAC;AAEzB,CAAC;;AAED;AACA;AACA;AACA;AAHAM,OAAA,CAAAV,UAAA,GAAAA,UAAA;AAIA,MAAMQ,oBAAoB,GAAGA,CAAA,KAAM;EACjC,IAAAG,oCAA6B,EAAC,CAAC;EAC/B,OAAO,IAAI;AACb,CAAC;;AAED;AACA;AACA;AACA;AACA,MAAMF,wBAAwB,GAAGA,CAAA,KAAM;EACrC,IAAAG,0EAAoC,EAAC,CAAC;EACtC,OAAO,IAAI;AACb,CAAC"}
1
+ {"version":3,"names":["_videoReactBindings","require","_react","_interopRequireWildcard","_useIosCallkeepWithCallingStateEffect","_MediaStreamManagement","_utils","_useAndroidKeepCallAliveEffect","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","StreamCall","_ref","mediaDeviceInitialState","children","createElement","StreamCallProvider","MediaStreamManagement","AndroidKeepCallAlive","IosInformCallkeepCallEnd","ClearPushWSSubscriptions","exports","useAndroidKeepCallAliveEffect","useIosCallkeepWithCallingStateEffect","useEffect","clearPushWSEventSubscriptions","canAddPushWSSubscriptionsRef","current"],"sourceRoot":"../../../src","sources":["providers/StreamCall.tsx"],"mappings":"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"}
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.initAndroidPushToken = initAndroidPushToken;
7
7
  exports.setupFirebaseHandlerAndroid = setupFirebaseHandlerAndroid;
8
8
  var _reactNative = _interopRequireWildcard(require("@notifee/react-native"));
9
+ var _videoClient = require("@stream-io/video-client");
9
10
  var _reactNative2 = require("react-native");
10
11
  var _libs = require("./libs");
11
12
  var _rxSubjects = require("./rxSubjects");
@@ -130,6 +131,43 @@ const firebaseMessagingOnMessageHandler = async (data, pushConfig) => {
130
131
  return;
131
132
  }
132
133
  if (data.type === 'call.ring') {
134
+ const call_cid = data.call_cid;
135
+ const created_by_id = data.created_by_id;
136
+ const receiver_id = data.receiver_id;
137
+ function shouldCallBeClosed(callToCheck) {
138
+ const {
139
+ mustEndCall
140
+ } = (0, _utils.shouldCallBeEnded)(callToCheck, created_by_id, receiver_id);
141
+ return mustEndCall;
142
+ }
143
+ const canListenToWS = () => _utils.canAddPushWSSubscriptionsRef.current && _reactNative2.AppState.currentState !== 'active';
144
+ const asForegroundService = canListenToWS();
145
+ if (asForegroundService) {
146
+ // Listen to call events from WS through fg service
147
+ // note: this will replace the current empty fg service runner
148
+ _reactNative.default.registerForegroundService(() => {
149
+ return new Promise(async () => {
150
+ const client = await pushConfig.createStreamVideoClient();
151
+ if (!client) {
152
+ _reactNative.default.stopForegroundService();
153
+ return;
154
+ }
155
+ const callFromPush = await client.onRingingCall(call_cid);
156
+ if (shouldCallBeClosed(callFromPush)) {
157
+ _reactNative.default.stopForegroundService();
158
+ return;
159
+ }
160
+ const unsubscribe = callFromPush.on('all', () => {
161
+ if (!canListenToWS() || shouldCallBeClosed(callFromPush)) {
162
+ unsubscribe();
163
+ _reactNative.default.stopForegroundService();
164
+ }
165
+ });
166
+ const unsubscriptionCallbacks = _videoClient.RxUtils.getCurrentValue(_rxSubjects.pushUnsubscriptionCallbacks$) ?? [];
167
+ _rxSubjects.pushUnsubscriptionCallbacks$.next([...unsubscriptionCallbacks, unsubscribe]);
168
+ });
169
+ });
170
+ }
133
171
  const incomingCallChannel = pushConfig.android.incomingCallChannel;
134
172
  const incomingCallNotificationTextGetters = pushConfig.android.incomingCallNotificationTextGetters;
135
173
  if (!incomingCallChannel || !incomingCallNotificationTextGetters) {
@@ -148,12 +186,13 @@ const firebaseMessagingOnMessageHandler = async (data, pushConfig) => {
148
186
  const createdUserName = data.created_by_display_name;
149
187
  const channelId = incomingCallChannel.id;
150
188
  await _reactNative.default.displayNotification({
151
- id: data.call_cid,
189
+ id: call_cid,
152
190
  title: getTitle(createdUserName),
153
191
  body: getBody(createdUserName),
154
192
  data,
155
193
  android: {
156
194
  channelId,
195
+ asForegroundService,
157
196
  sound: incomingCallChannel.sound,
158
197
  vibrationPattern: incomingCallChannel.vibrationPattern,
159
198
  pressAction: {
@@ -177,6 +216,22 @@ const firebaseMessagingOnMessageHandler = async (data, pushConfig) => {
177
216
  timeoutAfter: 60000 // 60 seconds, after which the notification will be dismissed automatically
178
217
  }
179
218
  });
219
+
220
+ // check if call needs to be closed if accept/decline event was done
221
+ // before the notification was shown
222
+ const client = await pushConfig.createStreamVideoClient();
223
+ if (!client) {
224
+ return;
225
+ }
226
+ const callFromPush = await client.onRingingCall(call_cid);
227
+ if (shouldCallBeClosed(callFromPush)) {
228
+ if (asForegroundService) {
229
+ _reactNative.default.stopForegroundService();
230
+ } else {
231
+ _reactNative.default.cancelDisplayedNotification(call_cid);
232
+ }
233
+ return;
234
+ }
180
235
  } else {
181
236
  // the other types are call.live_started and call.notification
182
237
  const callChannel = pushConfig.android.callChannel;
@@ -245,6 +300,10 @@ const onNotifeeEvent = async (event, pushConfig) => {
245
300
  const mustDecline = didPressDecline || didDismiss;
246
301
  // Check if we need to accept the call
247
302
  const mustAccept = type === _reactNative.EventType.ACTION_PRESS && pressAction.id === ACCEPT_CALL_ACTION_ID;
303
+ if (mustAccept || mustDecline || type === _reactNative.EventType.ACTION_PRESS) {
304
+ (0, _utils.clearPushWSEventSubscriptions)();
305
+ _reactNative.default.stopForegroundService();
306
+ }
248
307
  if (mustAccept) {
249
308
  _rxSubjects.pushAcceptedIncomingCallCId$.next(call_cid);
250
309
  // NOTE: accept will be handled by the app with rxjs observers as the app will go to foreground always