@stream-io/video-react-native-sdk 0.3.18 → 0.4.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.
- package/CHANGELOG.md +11 -0
- package/dist/commonjs/components/Call/CallControls/AcceptCallButton.js +0 -5
- package/dist/commonjs/components/Call/CallControls/AcceptCallButton.js.map +1 -1
- package/dist/commonjs/components/Call/CallControls/RejectCallButton.js +0 -5
- package/dist/commonjs/components/Call/CallControls/RejectCallButton.js.map +1 -1
- package/dist/commonjs/hooks/push/useIosVoipPushEventsSetupEffect.js +58 -7
- package/dist/commonjs/hooks/push/useIosVoipPushEventsSetupEffect.js.map +1 -1
- package/dist/commonjs/hooks/useAndroidKeepCallAliveEffect.js +15 -6
- package/dist/commonjs/hooks/useAndroidKeepCallAliveEffect.js.map +1 -1
- package/dist/commonjs/providers/MediaStreamManagement.js +25 -34
- package/dist/commonjs/providers/MediaStreamManagement.js.map +1 -1
- package/dist/commonjs/providers/StreamCall.js +22 -5
- package/dist/commonjs/providers/StreamCall.js.map +1 -1
- package/dist/commonjs/utils/push/android.js +60 -1
- package/dist/commonjs/utils/push/android.js.map +1 -1
- package/dist/commonjs/utils/push/ios.js +2 -0
- package/dist/commonjs/utils/push/ios.js.map +1 -1
- package/dist/commonjs/utils/push/rxSubjects.js +6 -1
- package/dist/commonjs/utils/push/rxSubjects.js.map +1 -1
- package/dist/commonjs/utils/push/utils.js +68 -1
- package/dist/commonjs/utils/push/utils.js.map +1 -1
- package/dist/commonjs/version.js +1 -1
- package/dist/commonjs/version.js.map +1 -1
- package/dist/module/components/Call/CallControls/AcceptCallButton.js +0 -5
- package/dist/module/components/Call/CallControls/AcceptCallButton.js.map +1 -1
- package/dist/module/components/Call/CallControls/RejectCallButton.js +0 -5
- package/dist/module/components/Call/CallControls/RejectCallButton.js.map +1 -1
- package/dist/module/hooks/push/useIosVoipPushEventsSetupEffect.js +61 -9
- package/dist/module/hooks/push/useIosVoipPushEventsSetupEffect.js.map +1 -1
- package/dist/module/hooks/useAndroidKeepCallAliveEffect.js +16 -7
- package/dist/module/hooks/useAndroidKeepCallAliveEffect.js.map +1 -1
- package/dist/module/providers/MediaStreamManagement.js +25 -34
- package/dist/module/providers/MediaStreamManagement.js.map +1 -1
- package/dist/module/providers/StreamCall.js +19 -3
- package/dist/module/providers/StreamCall.js.map +1 -1
- package/dist/module/utils/push/android.js +63 -4
- package/dist/module/utils/push/android.js.map +1 -1
- package/dist/module/utils/push/ios.js +3 -1
- package/dist/module/utils/push/ios.js.map +1 -1
- package/dist/module/utils/push/rxSubjects.js +5 -0
- package/dist/module/utils/push/rxSubjects.js.map +1 -1
- package/dist/module/utils/push/utils.js +65 -0
- package/dist/module/utils/push/utils.js.map +1 -1
- package/dist/module/version.js +1 -1
- package/dist/module/version.js.map +1 -1
- package/dist/typescript/components/Call/CallControls/AcceptCallButton.d.ts.map +1 -1
- package/dist/typescript/components/Call/CallControls/RejectCallButton.d.ts.map +1 -1
- package/dist/typescript/hooks/push/useIosVoipPushEventsSetupEffect.d.ts.map +1 -1
- package/dist/typescript/hooks/useAndroidKeepCallAliveEffect.d.ts +1 -0
- package/dist/typescript/hooks/useAndroidKeepCallAliveEffect.d.ts.map +1 -1
- package/dist/typescript/providers/MediaStreamManagement.d.ts.map +1 -1
- package/dist/typescript/providers/StreamCall.d.ts +3 -1
- package/dist/typescript/providers/StreamCall.d.ts.map +1 -1
- package/dist/typescript/utils/push/android.d.ts.map +1 -1
- package/dist/typescript/utils/push/ios.d.ts.map +1 -1
- package/dist/typescript/utils/push/rxSubjects.d.ts +6 -0
- package/dist/typescript/utils/push/rxSubjects.d.ts.map +1 -1
- package/dist/typescript/utils/push/utils.d.ts +22 -1
- package/dist/typescript/utils/push/utils.d.ts.map +1 -1
- package/dist/typescript/version.d.ts +1 -1
- package/dist/typescript/version.d.ts.map +1 -1
- package/expo-config-plugin/dist/withAndroidPermissions.js +1 -0
- package/expo-config-plugin/dist/withPushAppDelegate.js +7 -1
- package/ios/StreamVideoReactNative.h +3 -1
- package/ios/StreamVideoReactNative.m +24 -1
- package/package.json +1 -1
- package/src/components/Call/CallControls/AcceptCallButton.tsx +0 -5
- package/src/components/Call/CallControls/RejectCallButton.tsx +0 -5
- package/src/hooks/push/useIosVoipPushEventsSetupEffect.ts +76 -8
- package/src/hooks/useAndroidKeepCallAliveEffect.ts +18 -7
- package/src/providers/MediaStreamManagement.tsx +30 -39
- package/src/providers/StreamCall.tsx +25 -3
- package/src/utils/push/android.ts +82 -4
- package/src/utils/push/ios.ts +6 -1
- package/src/utils/push/rxSubjects.ts +10 -0
- package/src/utils/push/utils.ts +70 -1
- package/src/version.ts +1 -1
|
@@ -28,14 +28,14 @@ export const MediaStreamManagement = _ref => {
|
|
|
28
28
|
// Memoization is needed to avoid unnecessary useEffect triggers
|
|
29
29
|
const targetResolutionSetting = useMemo(() => {
|
|
30
30
|
var _settings$video$targe, _settings$video$targe2, _settings$video$targe3;
|
|
31
|
-
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)
|
|
32
|
-
return
|
|
31
|
+
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) {
|
|
32
|
+
return {
|
|
33
|
+
width: settings === null || settings === void 0 ? void 0 : settings.video.target_resolution.width,
|
|
34
|
+
height: settings === null || settings === void 0 ? void 0 : settings.video.target_resolution.height,
|
|
35
|
+
bitrate: settings === null || settings === void 0 ? void 0 : settings.video.target_resolution.bitrate
|
|
36
|
+
};
|
|
33
37
|
}
|
|
34
|
-
return
|
|
35
|
-
width: settings === null || settings === void 0 ? void 0 : settings.video.target_resolution.width,
|
|
36
|
-
height: settings === null || settings === void 0 ? void 0 : settings.video.target_resolution.height,
|
|
37
|
-
bitrate: settings === null || settings === void 0 ? void 0 : settings.video.target_resolution.bitrate
|
|
38
|
-
};
|
|
38
|
+
return undefined;
|
|
39
39
|
}, [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]);
|
|
40
40
|
|
|
41
41
|
// Resume/Disable video stream tracks when app goes to background/foreground
|
|
@@ -64,52 +64,43 @@ export const MediaStreamManagement = _ref => {
|
|
|
64
64
|
* This is the object is used to track the initial audio/video enablement
|
|
65
65
|
* Uses backend settings or the Prop to set initial audio/video enabled
|
|
66
66
|
* Backend settings is applied only if the prop was undefined -- meaning user did not provide any value
|
|
67
|
+
* Memoization is needed to avoid unnecessary useEffect triggers
|
|
67
68
|
*/
|
|
68
69
|
const {
|
|
69
70
|
initialAudioEnabled,
|
|
70
71
|
initialVideoEnabled
|
|
71
72
|
} = useMemo(() => {
|
|
72
|
-
let _initialAudioEnabled;
|
|
73
|
-
let _initialVideoEnabled;
|
|
74
|
-
if (propInitialAudioEnabled !== undefined) {
|
|
75
|
-
_initialAudioEnabled = propInitialAudioEnabled;
|
|
76
|
-
} else if ((settings === null || settings === void 0 ? void 0 : settings.audio.mic_default_on) !== undefined) {
|
|
77
|
-
_initialAudioEnabled = settings === null || settings === void 0 ? void 0 : settings.audio.mic_default_on;
|
|
78
|
-
}
|
|
79
|
-
if (propInitialVideoEnabled !== undefined) {
|
|
80
|
-
_initialVideoEnabled = propInitialVideoEnabled;
|
|
81
|
-
} else if ((settings === null || settings === void 0 ? void 0 : settings.video.camera_default_on) !== undefined) {
|
|
82
|
-
_initialVideoEnabled = settings === null || settings === void 0 ? void 0 : settings.video.camera_default_on;
|
|
83
|
-
}
|
|
84
73
|
return {
|
|
85
|
-
initialAudioEnabled:
|
|
86
|
-
initialVideoEnabled:
|
|
74
|
+
initialAudioEnabled: propInitialAudioEnabled ?? (settings === null || settings === void 0 ? void 0 : settings.audio.mic_default_on),
|
|
75
|
+
initialVideoEnabled: propInitialVideoEnabled ?? (settings === null || settings === void 0 ? void 0 : settings.video.camera_default_on)
|
|
87
76
|
};
|
|
88
77
|
}, [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]);
|
|
89
78
|
|
|
90
79
|
// The main logic
|
|
91
80
|
// Enable or Disable the audio/video stream based on the initial state
|
|
92
81
|
useEffect(() => {
|
|
93
|
-
if (
|
|
82
|
+
if (!call) {
|
|
94
83
|
return;
|
|
95
84
|
}
|
|
96
|
-
if (
|
|
97
|
-
|
|
85
|
+
if (initialAudioEnabled !== undefined) {
|
|
86
|
+
if (initialAudioEnabled) {
|
|
87
|
+
call.microphone.enable();
|
|
88
|
+
} else {
|
|
89
|
+
call.microphone.disable();
|
|
90
|
+
}
|
|
98
91
|
}
|
|
92
|
+
|
|
99
93
|
// we wait until we receive the resolution settings from the backend
|
|
100
|
-
if (!
|
|
94
|
+
if (!targetResolutionSetting) {
|
|
101
95
|
return;
|
|
102
96
|
}
|
|
103
|
-
if (initialAudioEnabled) {
|
|
104
|
-
call.microphone.enable();
|
|
105
|
-
} else {
|
|
106
|
-
call.microphone.disable();
|
|
107
|
-
}
|
|
108
97
|
call.camera.selectTargetResolution(targetResolutionSetting);
|
|
109
|
-
if (initialVideoEnabled) {
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
98
|
+
if (initialVideoEnabled !== undefined) {
|
|
99
|
+
if (initialVideoEnabled) {
|
|
100
|
+
call.camera.enable();
|
|
101
|
+
} else {
|
|
102
|
+
call.camera.disable();
|
|
103
|
+
}
|
|
113
104
|
}
|
|
114
105
|
}, [call, initialAudioEnabled, initialVideoEnabled, targetResolutionSetting]);
|
|
115
106
|
return /*#__PURE__*/React.createElement(React.Fragment, null, children);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useMemo","useCall","useCallStateHooks","useAppStateListener","NativeModules","Platform","MediaStreamManagement","_ref","initialAudioEnabled","propInitialAudioEnabled","initialVideoEnabled","propInitialVideoEnabled","children","call","useCallSettings","settings","targetResolutionSetting","_settings$video$targe","_settings$video$targe2","_settings$video$targe3","video","target_resolution","width","undefined","height","bitrate","_call$camera","camera","resume","OS","_NativeModules$Stream","StreamVideoReactNative","isInPiPMode","then","isInPiP","_call$camera2","disable","_call$camera3","
|
|
1
|
+
{"version":3,"names":["React","useEffect","useMemo","useCall","useCallStateHooks","useAppStateListener","NativeModules","Platform","MediaStreamManagement","_ref","initialAudioEnabled","propInitialAudioEnabled","initialVideoEnabled","propInitialVideoEnabled","children","call","useCallSettings","settings","targetResolutionSetting","_settings$video$targe","_settings$video$targe2","_settings$video$targe3","video","target_resolution","width","undefined","height","bitrate","_call$camera","camera","resume","OS","_NativeModules$Stream","StreamVideoReactNative","isInPiPMode","then","isInPiP","_call$camera2","disable","_call$camera3","audio","mic_default_on","camera_default_on","microphone","enable","selectTargetResolution","createElement","Fragment"],"sourceRoot":"../../../src","sources":["providers/MediaStreamManagement.tsx"],"mappings":"AAAA,OAAOA,KAAK,IAAuBC,SAAS,EAAEC,OAAO,QAAQ,OAAO;AACpE,SAASC,OAAO,EAAEC,iBAAiB,QAAQ,iCAAiC;AAC5E,SAASC,mBAAmB,QAAQ,gBAAgB;AACpD,SAASC,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AActD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,qBAAqB,GAAGC,IAAA,IAIc;EAAA,IAJb;IACpCC,mBAAmB,EAAEC,uBAAuB;IAC5CC,mBAAmB,EAAEC,uBAAuB;IAC5CC;EAC2C,CAAC,GAAAL,IAAA;EAC5C,MAAMM,IAAI,GAAGZ,OAAO,CAAC,CAAC;EACtB,MAAM;IAAEa;EAAgB,CAAC,GAAGZ,iBAAiB,CAAC,CAAC;EAC/C,MAAMa,QAAQ,GAAGD,eAAe,CAAC,CAAC;;EAElC;EACA;EACA,MAAME,uBAAuB,GAAGhB,OAAO,CAA+B,MAAM;IAAA,IAAAiB,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA;IAC1E,IACE,CAAAJ,QAAQ,aAARA,QAAQ,gBAAAE,qBAAA,GAARF,QAAQ,CAAEK,KAAK,CAACC,iBAAiB,cAAAJ,qBAAA,uBAAjCA,qBAAA,CAAmCK,KAAK,MAAKC,SAAS,IACtD,CAAAR,QAAQ,aAARA,QAAQ,gBAAAG,sBAAA,GAARH,QAAQ,CAAEK,KAAK,CAACC,iBAAiB,cAAAH,sBAAA,uBAAjCA,sBAAA,CAAmCM,MAAM,MAAKD,SAAS,IACvD,CAAAR,QAAQ,aAARA,QAAQ,gBAAAI,sBAAA,GAARJ,QAAQ,CAAEK,KAAK,CAACC,iBAAiB,cAAAF,sBAAA,uBAAjCA,sBAAA,CAAmCM,OAAO,MAAKF,SAAS,EACxD;MACA,OAAO;QACLD,KAAK,EAAEP,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEK,KAAK,CAACC,iBAAiB,CAACC,KAAK;QAC9CE,MAAM,EAAET,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEK,KAAK,CAACC,iBAAiB,CAACG,MAAM;QAChDC,OAAO,EAAEV,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEK,KAAK,CAACC,iBAAiB,CAACI;MAC7C,CAAC;IACH;IACA,OAAOF,SAAS;EAClB,CAAC,EAAE,CACDR,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEK,KAAK,CAACC,iBAAiB,CAACC,KAAK,EACvCP,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEK,KAAK,CAACC,iBAAiB,CAACG,MAAM,EACxCT,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEK,KAAK,CAACC,iBAAiB,CAACI,OAAO,CAC1C,CAAC;;EAEF;EACA;EACAtB,mBAAmB,CACjB,MAAM;IAAA,IAAAuB,YAAA;IACJb,IAAI,aAAJA,IAAI,gBAAAa,YAAA,GAAJb,IAAI,CAAEc,MAAM,cAAAD,YAAA,eAAZA,YAAA,CAAcE,MAAM,CAAC,CAAC;EACxB,CAAC,EACD,MAAM;IACJ,IAAIvB,QAAQ,CAACwB,EAAE,KAAK,SAAS,EAAE;MAAA,IAAAC,qBAAA;MAC7B;MACA;MACA1B,aAAa,aAAbA,aAAa,gBAAA0B,qBAAA,GAAb1B,aAAa,CAAE2B,sBAAsB,cAAAD,qBAAA,eAArCA,qBAAA,CAAuCE,WAAW,CAAC,CAAC,CAACC,IAAI,CACtDC,OAAgB,IAAK;QACpB,IAAI,CAACA,OAAO,EAAE;UAAA,IAAAC,aAAA;UACZtB,IAAI,aAAJA,IAAI,gBAAAsB,aAAA,GAAJtB,IAAI,CAAEc,MAAM,cAAAQ,aAAA,eAAZA,aAAA,CAAcC,OAAO,CAAC,CAAC;QACzB;MACF,CACF,CAAC;IACH,CAAC,MAAM;MAAA,IAAAC,aAAA;MACLxB,IAAI,aAAJA,IAAI,gBAAAwB,aAAA,GAAJxB,IAAI,CAAEc,MAAM,cAAAU,aAAA,eAAZA,aAAA,CAAcD,OAAO,CAAC,CAAC;IACzB;EACF,CACF,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;EACE,MAAM;IAAE5B,mBAAmB;IAAEE;EAAoB,CAAC,GAChDV,OAAO,CAA2B,MAAM;IACtC,OAAO;MACLQ,mBAAmB,EACjBC,uBAAuB,KAAIM,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEuB,KAAK,CAACC,cAAc;MAC3D7B,mBAAmB,EACjBC,uBAAuB,KAAII,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEK,KAAK,CAACoB,iBAAiB;IAChE,CAAC;EACH,CAAC,EAAE,CACDzB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEuB,KAAK,CAACC,cAAc,EAC9BxB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEK,KAAK,CAACoB,iBAAiB,EACjC/B,uBAAuB,EACvBE,uBAAuB,CACxB,CAAC;;EAEJ;EACA;EACAZ,SAAS,CAAC,MAAM;IACd,IAAI,CAACc,IAAI,EAAE;MACT;IACF;IAEA,IAAIL,mBAAmB,KAAKe,SAAS,EAAE;MACrC,IAAIf,mBAAmB,EAAE;QACvBK,IAAI,CAAC4B,UAAU,CAACC,MAAM,CAAC,CAAC;MAC1B,CAAC,MAAM;QACL7B,IAAI,CAAC4B,UAAU,CAACL,OAAO,CAAC,CAAC;MAC3B;IACF;;IAEA;IACA,IAAI,CAACpB,uBAAuB,EAAE;MAC5B;IACF;IACAH,IAAI,CAACc,MAAM,CAACgB,sBAAsB,CAAC3B,uBAAuB,CAAC;IAC3D,IAAIN,mBAAmB,KAAKa,SAAS,EAAE;MACrC,IAAIb,mBAAmB,EAAE;QACvBG,IAAI,CAACc,MAAM,CAACe,MAAM,CAAC,CAAC;MACtB,CAAC,MAAM;QACL7B,IAAI,CAACc,MAAM,CAACS,OAAO,CAAC,CAAC;MACvB;IACF;EACF,CAAC,EAAE,CAACvB,IAAI,EAAEL,mBAAmB,EAAEE,mBAAmB,EAAEM,uBAAuB,CAAC,CAAC;EAE7E,oBAAOlB,KAAA,CAAA8C,aAAA,CAAA9C,KAAA,CAAA+C,QAAA,QAAGjC,QAAW,CAAC;AACxB,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { StreamCallProvider } from '@stream-io/video-react-bindings';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import { useAndroidKeepCallAliveEffect } from '../hooks';
|
|
2
|
+
import React, { useEffect } from 'react';
|
|
4
3
|
import { useIosCallkeepWithCallingStateEffect } from '../hooks/push/useIosCallkeepWithCallingStateEffect';
|
|
5
4
|
import { MediaStreamManagement } from './MediaStreamManagement';
|
|
5
|
+
import { canAddPushWSSubscriptionsRef, clearPushWSEventSubscriptions } from '../utils/push/utils';
|
|
6
|
+
import { useAndroidKeepCallAliveEffect } from '../hooks/useAndroidKeepCallAliveEffect';
|
|
6
7
|
/**
|
|
7
8
|
* StreamCall is a wrapper component that orchestrates the call life cycle logic and
|
|
8
9
|
* provides the call object to the children components.
|
|
@@ -18,7 +19,7 @@ export const StreamCall = _ref => {
|
|
|
18
19
|
} = _ref;
|
|
19
20
|
return /*#__PURE__*/React.createElement(StreamCallProvider, {
|
|
20
21
|
call: call
|
|
21
|
-
}, /*#__PURE__*/React.createElement(MediaStreamManagement, mediaDeviceInitialState, /*#__PURE__*/React.createElement(AndroidKeepCallAlive, null), /*#__PURE__*/React.createElement(IosInformCallkeepCallEnd, null), children));
|
|
22
|
+
}, /*#__PURE__*/React.createElement(MediaStreamManagement, mediaDeviceInitialState, /*#__PURE__*/React.createElement(AndroidKeepCallAlive, null), /*#__PURE__*/React.createElement(IosInformCallkeepCallEnd, null), /*#__PURE__*/React.createElement(ClearPushWSSubscriptions, null), children));
|
|
22
23
|
};
|
|
23
24
|
|
|
24
25
|
/**
|
|
@@ -38,4 +39,19 @@ const IosInformCallkeepCallEnd = () => {
|
|
|
38
39
|
useIosCallkeepWithCallingStateEffect();
|
|
39
40
|
return null;
|
|
40
41
|
};
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* This is a renderless component to clear all push ws event subscriptions
|
|
45
|
+
* and set whether push ws subscriptions can be added or not.
|
|
46
|
+
*/
|
|
47
|
+
const ClearPushWSSubscriptions = () => {
|
|
48
|
+
useEffect(() => {
|
|
49
|
+
clearPushWSEventSubscriptions();
|
|
50
|
+
canAddPushWSSubscriptionsRef.current = false;
|
|
51
|
+
return () => {
|
|
52
|
+
canAddPushWSSubscriptionsRef.current = true;
|
|
53
|
+
};
|
|
54
|
+
}, []);
|
|
55
|
+
return null;
|
|
56
|
+
};
|
|
41
57
|
//# sourceMappingURL=StreamCall.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["StreamCallProvider","React","
|
|
1
|
+
{"version":3,"names":["StreamCallProvider","React","useEffect","useIosCallkeepWithCallingStateEffect","MediaStreamManagement","canAddPushWSSubscriptionsRef","clearPushWSEventSubscriptions","useAndroidKeepCallAliveEffect","StreamCall","_ref","call","mediaDeviceInitialState","children","createElement","AndroidKeepCallAlive","IosInformCallkeepCallEnd","ClearPushWSSubscriptions","current"],"sourceRoot":"../../../src","sources":["providers/StreamCall.tsx"],"mappings":"AAAA,SAASA,kBAAkB,QAAQ,iCAAiC;AACpE,OAAOC,KAAK,IAAuBC,SAAS,QAAQ,OAAO;AAE3D,SAASC,oCAAoC,QAAQ,oDAAoD;AACzG,SAEEC,qBAAqB,QAChB,yBAAyB;AAChC,SACEC,4BAA4B,EAC5BC,6BAA6B,QACxB,qBAAqB;AAC5B,SAASC,6BAA6B,QAAQ,wCAAwC;AAetF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,UAAU,GAAGC,IAAA,IAIgB;EAAA,IAJf;IACzBC,IAAI;IACJC,uBAAuB,GAAG,CAAC,CAAC;IAC5BC;EACkC,CAAC,GAAAH,IAAA;EACnC,oBACER,KAAA,CAAAY,aAAA,CAACb,kBAAkB;IAACU,IAAI,EAAEA;EAAK,gBAC7BT,KAAA,CAAAY,aAAA,CAACT,qBAAqB,EAAKO,uBAAuB,eAChDV,KAAA,CAAAY,aAAA,CAACC,oBAAoB,MAAE,CAAC,eACxBb,KAAA,CAAAY,aAAA,CAACE,wBAAwB,MAAE,CAAC,eAC5Bd,KAAA,CAAAY,aAAA,CAACG,wBAAwB,MAAE,CAAC,EAC3BJ,QACoB,CACL,CAAC;AAEzB,CAAC;;AAED;AACA;AACA;AACA;AACA,MAAME,oBAAoB,GAAGA,CAAA,KAAM;EACjCP,6BAA6B,CAAC,CAAC;EAC/B,OAAO,IAAI;AACb,CAAC;;AAED;AACA;AACA;AACA;AACA,MAAMQ,wBAAwB,GAAGA,CAAA,KAAM;EACrCZ,oCAAoC,CAAC,CAAC;EACtC,OAAO,IAAI;AACb,CAAC;;AAED;AACA;AACA;AACA;AACA,MAAMa,wBAAwB,GAAGA,CAAA,KAAM;EACrCd,SAAS,CAAC,MAAM;IACdI,6BAA6B,CAAC,CAAC;IAC/BD,4BAA4B,CAACY,OAAO,GAAG,KAAK;IAC5C,OAAO,MAAM;MACXZ,4BAA4B,CAACY,OAAO,GAAG,IAAI;IAC7C,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EACN,OAAO,IAAI;AACb,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import notifee, { EventType } from '@notifee/react-native';
|
|
2
|
-
import {
|
|
2
|
+
import { RxUtils } from '@stream-io/video-client';
|
|
3
|
+
import { AppState, Platform } from 'react-native';
|
|
3
4
|
import { getFirebaseMessagingLib, getExpoNotificationsLib, getExpoTaskManagerLib } from './libs';
|
|
4
|
-
import { pushAcceptedIncomingCallCId$, pushRejectedIncomingCallCId$, pushTappedIncomingCallCId$, pushNonRingingCallData$ } from './rxSubjects';
|
|
5
|
-
import { processCallFromPushInBackground } from './utils';
|
|
5
|
+
import { pushAcceptedIncomingCallCId$, pushRejectedIncomingCallCId$, pushTappedIncomingCallCId$, pushNonRingingCallData$, pushUnsubscriptionCallbacks$ } from './rxSubjects';
|
|
6
|
+
import { canAddPushWSSubscriptionsRef, clearPushWSEventSubscriptions, processCallFromPushInBackground, shouldCallBeEnded } from './utils';
|
|
6
7
|
import { setPushLogoutCallback } from '../internal/pushLogoutCallback';
|
|
7
8
|
import { getAndroidDefaultRingtoneUrl } from '../getAndroidDefaultRingtoneUrl';
|
|
8
9
|
const ACCEPT_CALL_ACTION_ID = 'accept';
|
|
@@ -121,6 +122,43 @@ const firebaseMessagingOnMessageHandler = async (data, pushConfig) => {
|
|
|
121
122
|
return;
|
|
122
123
|
}
|
|
123
124
|
if (data.type === 'call.ring') {
|
|
125
|
+
const call_cid = data.call_cid;
|
|
126
|
+
const created_by_id = data.created_by_id;
|
|
127
|
+
const receiver_id = data.receiver_id;
|
|
128
|
+
function shouldCallBeClosed(callToCheck) {
|
|
129
|
+
const {
|
|
130
|
+
mustEndCall
|
|
131
|
+
} = shouldCallBeEnded(callToCheck, created_by_id, receiver_id);
|
|
132
|
+
return mustEndCall;
|
|
133
|
+
}
|
|
134
|
+
const canListenToWS = () => canAddPushWSSubscriptionsRef.current && AppState.currentState !== 'active';
|
|
135
|
+
const asForegroundService = canListenToWS();
|
|
136
|
+
if (asForegroundService) {
|
|
137
|
+
// Listen to call events from WS through fg service
|
|
138
|
+
// note: this will replace the current empty fg service runner
|
|
139
|
+
notifee.registerForegroundService(() => {
|
|
140
|
+
return new Promise(async () => {
|
|
141
|
+
const client = await pushConfig.createStreamVideoClient();
|
|
142
|
+
if (!client) {
|
|
143
|
+
notifee.stopForegroundService();
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
const callFromPush = await client.onRingingCall(call_cid);
|
|
147
|
+
if (shouldCallBeClosed(callFromPush)) {
|
|
148
|
+
notifee.stopForegroundService();
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
const unsubscribe = callFromPush.on('all', () => {
|
|
152
|
+
if (!canListenToWS() || shouldCallBeClosed(callFromPush)) {
|
|
153
|
+
unsubscribe();
|
|
154
|
+
notifee.stopForegroundService();
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
const unsubscriptionCallbacks = RxUtils.getCurrentValue(pushUnsubscriptionCallbacks$) ?? [];
|
|
158
|
+
pushUnsubscriptionCallbacks$.next([...unsubscriptionCallbacks, unsubscribe]);
|
|
159
|
+
});
|
|
160
|
+
});
|
|
161
|
+
}
|
|
124
162
|
const incomingCallChannel = pushConfig.android.incomingCallChannel;
|
|
125
163
|
const incomingCallNotificationTextGetters = pushConfig.android.incomingCallNotificationTextGetters;
|
|
126
164
|
if (!incomingCallChannel || !incomingCallNotificationTextGetters) {
|
|
@@ -139,12 +177,13 @@ const firebaseMessagingOnMessageHandler = async (data, pushConfig) => {
|
|
|
139
177
|
const createdUserName = data.created_by_display_name;
|
|
140
178
|
const channelId = incomingCallChannel.id;
|
|
141
179
|
await notifee.displayNotification({
|
|
142
|
-
id:
|
|
180
|
+
id: call_cid,
|
|
143
181
|
title: getTitle(createdUserName),
|
|
144
182
|
body: getBody(createdUserName),
|
|
145
183
|
data,
|
|
146
184
|
android: {
|
|
147
185
|
channelId,
|
|
186
|
+
asForegroundService,
|
|
148
187
|
sound: incomingCallChannel.sound,
|
|
149
188
|
vibrationPattern: incomingCallChannel.vibrationPattern,
|
|
150
189
|
pressAction: {
|
|
@@ -168,6 +207,22 @@ const firebaseMessagingOnMessageHandler = async (data, pushConfig) => {
|
|
|
168
207
|
timeoutAfter: 60000 // 60 seconds, after which the notification will be dismissed automatically
|
|
169
208
|
}
|
|
170
209
|
});
|
|
210
|
+
|
|
211
|
+
// check if call needs to be closed if accept/decline event was done
|
|
212
|
+
// before the notification was shown
|
|
213
|
+
const client = await pushConfig.createStreamVideoClient();
|
|
214
|
+
if (!client) {
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
const callFromPush = await client.onRingingCall(call_cid);
|
|
218
|
+
if (shouldCallBeClosed(callFromPush)) {
|
|
219
|
+
if (asForegroundService) {
|
|
220
|
+
notifee.stopForegroundService();
|
|
221
|
+
} else {
|
|
222
|
+
notifee.cancelDisplayedNotification(call_cid);
|
|
223
|
+
}
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
171
226
|
} else {
|
|
172
227
|
// the other types are call.live_started and call.notification
|
|
173
228
|
const callChannel = pushConfig.android.callChannel;
|
|
@@ -236,6 +291,10 @@ const onNotifeeEvent = async (event, pushConfig) => {
|
|
|
236
291
|
const mustDecline = didPressDecline || didDismiss;
|
|
237
292
|
// Check if we need to accept the call
|
|
238
293
|
const mustAccept = type === EventType.ACTION_PRESS && pressAction.id === ACCEPT_CALL_ACTION_ID;
|
|
294
|
+
if (mustAccept || mustDecline || type === EventType.ACTION_PRESS) {
|
|
295
|
+
clearPushWSEventSubscriptions();
|
|
296
|
+
notifee.stopForegroundService();
|
|
297
|
+
}
|
|
239
298
|
if (mustAccept) {
|
|
240
299
|
pushAcceptedIncomingCallCId$.next(call_cid);
|
|
241
300
|
// NOTE: accept will be handled by the app with rxjs observers as the app will go to foreground always
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["notifee","EventType","Platform","getFirebaseMessagingLib","getExpoNotificationsLib","getExpoTaskManagerLib","pushAcceptedIncomingCallCId$","pushRejectedIncomingCallCId$","pushTappedIncomingCallCId$","pushNonRingingCallData$","processCallFromPushInBackground","setPushLogoutCallback","getAndroidDefaultRingtoneUrl","ACCEPT_CALL_ACTION_ID","DECLINE_CALL_ACTION_ID","setupFirebaseHandlerAndroid","pushConfig","OS","isExpo","Notifications","TaskManager","BACKGROUND_NOTIFICATION_TASK","defineTask","_ref","_data$notification","data","error","dataToProcess","notification","firebaseMessagingOnMessageHandler","registerTaskAsync","setNotificationHandler","handleNotification","_notification$request","trigger","request","type","_trigger$remoteMessag","remoteMessage","sender","shouldShowAlert","shouldPlaySound","shouldSetBadge","messaging","setBackgroundMessageHandler","msg","onMessage","onBackgroundEvent","event","onNotifeeEvent","onForegroundEvent","initAndroidPushToken","client","setUnsubscribeListener","android","pushProviderName","setDeviceToken","token","removeDevice","catch","err","console","warn","push_provider_name","addDevice","expoNotificationsLib","subscription","addPushTokenListener","devicePushToken","remove","getDevicePushTokenAsync","unsubscribe","onTokenRefresh","refreshedToken","getToken","incomingCallChannel","incomingCallNotificationTextGetters","debug","sound","createChannel","getTitle","getBody","createdUserName","created_by_display_name","channelId","id","displayNotification","call_cid","title","body","vibrationPattern","pressAction","launchActivity","actions","timeoutAfter","callChannel","callNotificationTextGetters","cid","next","detail","notificationId","hasObservers","observed","didPressDecline","ACTION_PRESS","didDismiss","DISMISSED","mustDecline","mustAccept","PRESS","_pushConfig$onTapNonR","onTapNonRingingCallNotification","call"],"sourceRoot":"../../../../src","sources":["utils/push/android.ts"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["notifee","EventType","RxUtils","AppState","Platform","getFirebaseMessagingLib","getExpoNotificationsLib","getExpoTaskManagerLib","pushAcceptedIncomingCallCId$","pushRejectedIncomingCallCId$","pushTappedIncomingCallCId$","pushNonRingingCallData$","pushUnsubscriptionCallbacks$","canAddPushWSSubscriptionsRef","clearPushWSEventSubscriptions","processCallFromPushInBackground","shouldCallBeEnded","setPushLogoutCallback","getAndroidDefaultRingtoneUrl","ACCEPT_CALL_ACTION_ID","DECLINE_CALL_ACTION_ID","setupFirebaseHandlerAndroid","pushConfig","OS","isExpo","Notifications","TaskManager","BACKGROUND_NOTIFICATION_TASK","defineTask","_ref","_data$notification","data","error","dataToProcess","notification","firebaseMessagingOnMessageHandler","registerTaskAsync","setNotificationHandler","handleNotification","_notification$request","trigger","request","type","_trigger$remoteMessag","remoteMessage","sender","shouldShowAlert","shouldPlaySound","shouldSetBadge","messaging","setBackgroundMessageHandler","msg","onMessage","onBackgroundEvent","event","onNotifeeEvent","onForegroundEvent","initAndroidPushToken","client","setUnsubscribeListener","android","pushProviderName","setDeviceToken","token","removeDevice","catch","err","console","warn","push_provider_name","addDevice","expoNotificationsLib","subscription","addPushTokenListener","devicePushToken","remove","getDevicePushTokenAsync","unsubscribe","onTokenRefresh","refreshedToken","getToken","call_cid","created_by_id","receiver_id","shouldCallBeClosed","callToCheck","mustEndCall","canListenToWS","current","currentState","asForegroundService","registerForegroundService","Promise","createStreamVideoClient","stopForegroundService","callFromPush","onRingingCall","on","unsubscriptionCallbacks","getCurrentValue","next","incomingCallChannel","incomingCallNotificationTextGetters","debug","sound","createChannel","getTitle","getBody","createdUserName","created_by_display_name","channelId","id","displayNotification","title","body","vibrationPattern","pressAction","launchActivity","actions","timeoutAfter","cancelDisplayedNotification","callChannel","callNotificationTextGetters","cid","detail","notificationId","hasObservers","observed","didPressDecline","ACTION_PRESS","didDismiss","DISMISSED","mustDecline","mustAccept","PRESS","_pushConfig$onTapNonR","onTapNonRingingCallNotification","call"],"sourceRoot":"../../../../src","sources":["utils/push/android.ts"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Platform } from 'react-native';
|
|
2
2
|
import { pushAcceptedIncomingCallCId$, voipPushNotificationCallCId$, voipCallkeepCallOnForegroundMap$, voipCallkeepAcceptedCallOnNativeDialerMap$, pushNonRingingCallData$ } from './rxSubjects';
|
|
3
|
-
import { processCallFromPushInBackground } from './utils';
|
|
3
|
+
import { clearPushWSEventSubscriptions, processCallFromPushInBackground } from './utils';
|
|
4
4
|
import { getExpoNotificationsLib, getPushNotificationIosLib } from './libs';
|
|
5
5
|
import { setPushLogoutCallback } from '../internal/pushLogoutCallback';
|
|
6
6
|
import notifee, { EventType } from '@notifee/react-native';
|
|
@@ -22,6 +22,7 @@ export const iosCallkeepAcceptCall = (call_cid, callUUIDFromCallkeep) => {
|
|
|
22
22
|
if (!shouldProcessCallFromCallkeep(call_cid, callUUIDFromCallkeep)) {
|
|
23
23
|
return;
|
|
24
24
|
}
|
|
25
|
+
clearPushWSEventSubscriptions();
|
|
25
26
|
// to call end callkeep later if ended in app and not through callkeep
|
|
26
27
|
voipCallkeepAcceptedCallOnNativeDialerMap$.next({
|
|
27
28
|
uuid: callUUIDFromCallkeep,
|
|
@@ -36,6 +37,7 @@ export const iosCallkeepRejectCall = async (call_cid, callUUIDFromCallkeep, push
|
|
|
36
37
|
if (!shouldProcessCallFromCallkeep(call_cid, callUUIDFromCallkeep)) {
|
|
37
38
|
return;
|
|
38
39
|
}
|
|
40
|
+
clearPushWSEventSubscriptions();
|
|
39
41
|
// no need to keep these references anymore
|
|
40
42
|
voipCallkeepAcceptedCallOnNativeDialerMap$.next(undefined);
|
|
41
43
|
voipCallkeepCallOnForegroundMap$.next(undefined);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","pushAcceptedIncomingCallCId$","voipPushNotificationCallCId$","voipCallkeepCallOnForegroundMap$","voipCallkeepAcceptedCallOnNativeDialerMap$","pushNonRingingCallData$","processCallFromPushInBackground","getExpoNotificationsLib","getPushNotificationIosLib","setPushLogoutCallback","notifee","EventType","processNonRingingNotificationStreamPayload","streamPayload","sender","type","cid","call_cid","next","iosCallkeepAcceptCall","callUUIDFromCallkeep","shouldProcessCallFromCallkeep","uuid","undefined","iosCallkeepRejectCall","pushConfig","setupRemoteNotificationsHandleriOS","OS","onForegroundEvent","_ref","detail","PRESS","_detail$notification","notification","data","stream","result","_pushConfig$onTapNonR","onTapNonRingingCallNotification","call","isExpo","Notifications","setNotificationHandler","handleNotification","shouldShowAlert","shouldPlaySound","shouldSetBadge","initIosNonVoipToken","client","setUnsubscribeListener","ios","pushProviderName","setDeviceToken","token","removeDevice","catch","err","console","warn","push_provider_name","addDevice","expoNotificationsLib","subscription","addPushTokenListener","devicePushToken","subscriptionForReceive","addNotificationReceivedListener","event","request","trigger","_event$request$trigge","payload","remove","pushNotificationIosLib","addEventListener","getData","finish","FetchResult","NoData","removeEventListener"],"sourceRoot":"../../../../src","sources":["utils/push/ios.ts"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,cAAc;AAKvC,SACEC,4BAA4B,EAC5BC,4BAA4B,EAC5BC,gCAAgC,EAChCC,0CAA0C,EAC1CC,uBAAuB,QAClB,cAAc;AACrB,
|
|
1
|
+
{"version":3,"names":["Platform","pushAcceptedIncomingCallCId$","voipPushNotificationCallCId$","voipCallkeepCallOnForegroundMap$","voipCallkeepAcceptedCallOnNativeDialerMap$","pushNonRingingCallData$","clearPushWSEventSubscriptions","processCallFromPushInBackground","getExpoNotificationsLib","getPushNotificationIosLib","setPushLogoutCallback","notifee","EventType","processNonRingingNotificationStreamPayload","streamPayload","sender","type","cid","call_cid","next","iosCallkeepAcceptCall","callUUIDFromCallkeep","shouldProcessCallFromCallkeep","uuid","undefined","iosCallkeepRejectCall","pushConfig","setupRemoteNotificationsHandleriOS","OS","onForegroundEvent","_ref","detail","PRESS","_detail$notification","notification","data","stream","result","_pushConfig$onTapNonR","onTapNonRingingCallNotification","call","isExpo","Notifications","setNotificationHandler","handleNotification","shouldShowAlert","shouldPlaySound","shouldSetBadge","initIosNonVoipToken","client","setUnsubscribeListener","ios","pushProviderName","setDeviceToken","token","removeDevice","catch","err","console","warn","push_provider_name","addDevice","expoNotificationsLib","subscription","addPushTokenListener","devicePushToken","subscriptionForReceive","addNotificationReceivedListener","event","request","trigger","_event$request$trigge","payload","remove","pushNotificationIosLib","addEventListener","getData","finish","FetchResult","NoData","removeEventListener"],"sourceRoot":"../../../../src","sources":["utils/push/ios.ts"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,cAAc;AAKvC,SACEC,4BAA4B,EAC5BC,4BAA4B,EAC5BC,gCAAgC,EAChCC,0CAA0C,EAC1CC,uBAAuB,QAClB,cAAc;AACrB,SACEC,6BAA6B,EAC7BC,+BAA+B,QAC1B,SAAS;AAChB,SAASC,uBAAuB,EAAEC,yBAAyB,QAAQ,QAAQ;AAE3E,SAASC,qBAAqB,QAAQ,gCAAgC;AACtE,OAAOC,OAAO,IAAIC,SAAS,QAAQ,uBAAuB;AAY1D,SAASC,0CAA0CA,CACjDC,aAA4B,EAC5B;EACA,IACE,CAAAA,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEC,MAAM,MAAK,cAAc,IACxC,CAAAD,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEE,IAAI,MAAK,WAAW,EACnC;IACA,MAAMC,GAAG,GAAGH,aAAa,CAACI,QAAQ;IAClC,MAAMF,IAAI,GAAGF,aAAa,CAACE,IAAI;IAC/BX,uBAAuB,CAACc,IAAI,CAAC;MAAEF,GAAG;MAAED;IAAK,CAAC,CAAC;IAC3C,OAAO;MAAEC,GAAG;MAAED;IAAK,CAAC;EACtB;AACF;AAEA,OAAO,MAAMI,qBAAqB,GAAGA,CACnCF,QAA4B,EAC5BG,oBAA4B,KACzB;EACH,IAAI,CAACC,6BAA6B,CAACJ,QAAQ,EAAEG,oBAAoB,CAAC,EAAE;IAClE;EACF;EACAf,6BAA6B,CAAC,CAAC;EAC/B;EACAF,0CAA0C,CAACe,IAAI,CAAC;IAC9CI,IAAI,EAAEF,oBAAoB;IAC1BJ,GAAG,EAAEC;EACP,CAAC,CAAC;EACF;EACAjB,4BAA4B,CAACkB,IAAI,CAACD,QAAQ,CAAC;EAC3C;EACAf,gCAAgC,CAACgB,IAAI,CAACK,SAAS,CAAC;AAClD,CAAC;AAED,OAAO,MAAMC,qBAAqB,GAAG,MAAAA,CACnCP,QAA4B,EAC5BG,oBAA4B,EAC5BK,UAAsB,KACnB;EACH,IAAI,CAACJ,6BAA6B,CAACJ,QAAQ,EAAEG,oBAAoB,CAAC,EAAE;IAClE;EACF;EACAf,6BAA6B,CAAC,CAAC;EAC/B;EACAF,0CAA0C,CAACe,IAAI,CAACK,SAAS,CAAC;EAC1DrB,gCAAgC,CAACgB,IAAI,CAACK,SAAS,CAAC;EAChDtB,4BAA4B,CAACiB,IAAI,CAACK,SAAS,CAAC;EAC5C,MAAMjB,+BAA+B,CAACmB,UAAU,EAAER,QAAQ,EAAE,SAAS,CAAC;AACxE,CAAC;;AAED;AACA;AACA;AACA;AACA,MAAMI,6BAA6B,GAAGA,CACpCJ,QAA4B,EAC5BG,oBAA4B,KACL;EACvB,IAAI,CAACH,QAAQ,IAAI,CAACG,oBAAoB,EAAE;IACtC,OAAO,KAAK;EACd;EACA,OAAO,IAAI;AACb,CAAC;AAED,OAAO,MAAMM,kCAAkC,GAAID,UAAsB,IAAK;EAC5E,IAAI1B,QAAQ,CAAC4B,EAAE,KAAK,KAAK,EAAE;IACzB;EACF;EACAjB,OAAO,CAACkB,iBAAiB,CAACC,IAAA,IAAsB;IAAA,IAArB;MAAEd,IAAI;MAAEe;IAAO,CAAC,GAAAD,IAAA;IACzC,IAAId,IAAI,KAAKJ,SAAS,CAACoB,KAAK,EAAE;MAAA,IAAAC,oBAAA;MAC5B,MAAMnB,aAAa,IAAAmB,oBAAA,GAAGF,MAAM,CAACG,YAAY,cAAAD,oBAAA,gBAAAA,oBAAA,GAAnBA,oBAAA,CAAqBE,IAAI,cAAAF,oBAAA,uBAAzBA,oBAAA,CAA2BG,MAEpC;MACb,MAAMC,MAAM,GAAGxB,0CAA0C,CAACC,aAAa,CAAC;MACxE,IAAIuB,MAAM,EAAE;QAAA,IAAAC,qBAAA;QACV,CAAAA,qBAAA,GAAAZ,UAAU,CAACa,+BAA+B,cAAAD,qBAAA,eAA1CA,qBAAA,CAAAE,IAAA,CAAAd,UAAU,EAAmCW,MAAM,CAACpB,GAAG,EAAEoB,MAAM,CAACrB,IAAI,CAAC;MACvE;IACF;EACF,CAAC,CAAC;EACF,IAAIU,UAAU,CAACe,MAAM,EAAE;IACrB,MAAMC,aAAa,GAAGlC,uBAAuB,CAAC,CAAC;;IAE/C;IACAkC,aAAa,CAACC,sBAAsB,CAAC;MACnCC,kBAAkB,EAAE,MAAAA,CAAA,KAAY;QAC9B,OAAO;UACLC,eAAe,EAAE,IAAI;UACrBC,eAAe,EAAE,IAAI;UACrBC,cAAc,EAAE;QAClB,CAAC;MACH;IACF,CAAC,CAAC;EACJ;AACF,CAAC;;AAED;AACA,OAAO,eAAeC,mBAAmBA,CACvCC,MAAyB,EACzBvB,UAAsB,EACtBwB,sBAAyD,EACzD;EACA,IAAIlD,QAAQ,CAAC4B,EAAE,KAAK,KAAK,IAAI,CAACF,UAAU,CAACyB,GAAG,CAACC,gBAAgB,EAAE;IAC7D;EACF;EACA,MAAMC,cAAc,GAAG,MAAOC,KAAa,IAAK;IAC9C5C,qBAAqB,CAAC,MAAM;MAC1BuC,MAAM,CAACM,YAAY,CAACD,KAAK,CAAC,CAACE,KAAK,CAAEC,GAAG,IAAK;QACxCC,OAAO,CAACC,IAAI,CAAC,yCAAyC,EAAEF,GAAG,CAAC;MAC9D,CAAC,CAAC;IACJ,CAAC,CAAC;IACF,MAAMG,kBAAkB,GAAGlC,UAAU,CAACyB,GAAG,CAACC,gBAAgB;IAC1D,MAAMH,MAAM,CAACY,SAAS,CAACP,KAAK,EAAE,KAAK,EAAEM,kBAAkB,CAAC;EAC1D,CAAC;EACD,IAAIlC,UAAU,CAACe,MAAM,EAAE;IACrB,MAAMqB,oBAAoB,GAAGtD,uBAAuB,CAAC,CAAC;IACtD,MAAMuD,YAAY,GAAGD,oBAAoB,CAACE,oBAAoB,CAC3DC,eAAe,IAAK;MACnBZ,cAAc,CAACY,eAAe,CAAC9B,IAAI,CAAC;IACtC,CACF,CAAC;IACD,MAAM+B,sBAAsB,GAC1BJ,oBAAoB,CAACK,+BAA+B,CAAEC,KAAK,IAAK;MAC9D;MACA,IAAIA,KAAK,CAACC,OAAO,CAACC,OAAO,CAACtD,IAAI,KAAK,MAAM,EAAE;QAAA,IAAAuD,qBAAA;QACzC,MAAMzD,aAAa,IAAAyD,qBAAA,GAAGH,KAAK,CAACC,OAAO,CAACC,OAAO,CAACE,OAAO,cAAAD,qBAAA,uBAA7BA,qBAAA,CAClBnC,MAAuB;QAC3BvB,0CAA0C,CAACC,aAAa,CAAC;MAC3D;IACF,CAAC,CAAC;IACJoC,sBAAsB,CAAC,MAAM;MAC3Ba,YAAY,CAACU,MAAM,CAAC,CAAC;MACrBP,sBAAsB,CAACO,MAAM,CAAC,CAAC;IACjC,CAAC,CAAC;EACJ,CAAC,MAAM;IACL,MAAMC,sBAAsB,GAAGjE,yBAAyB,CAAC,CAAC;IAC1DiE,sBAAsB,CAACC,gBAAgB,CAAC,UAAU,EAAGrB,KAAK,IAAK;MAC7DD,cAAc,CAACC,KAAK,CAAC;IACvB,CAAC,CAAC;IACFoB,sBAAsB,CAACC,gBAAgB,CAAC,cAAc,EAAGzC,YAAY,IAAK;MACxE,MAAMC,IAAI,GAAGD,YAAY,CAAC0C,OAAO,CAAC,CAAC;MACnC,MAAM9D,aAAa,GAAGqB,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEC,MAAuB;MACnD;MACAvB,0CAA0C,CAACC,aAAa,CAAC;MACzDoB,YAAY,CAAC2C,MAAM,CAACH,sBAAsB,CAACI,WAAW,CAACC,MAAM,CAAC;IAChE,CAAC,CAAC;IACF7B,sBAAsB,CAAC,MAAM;MAC3BwB,sBAAsB,CAACM,mBAAmB,CAAC,UAAU,CAAC;MACtDN,sBAAsB,CAACM,mBAAmB,CAAC,cAAc,CAAC;IAC5D,CAAC,CAAC;EACJ;AACF"}
|
|
@@ -41,4 +41,9 @@ export const voipCallkeepCallOnForegroundMap$ = new BehaviorSubject(undefined);
|
|
|
41
41
|
* This rxjs subject should only used to store the CallkeepMap when it was accepted in the native dialer
|
|
42
42
|
*/
|
|
43
43
|
export const voipCallkeepAcceptedCallOnNativeDialerMap$ = new BehaviorSubject(undefined);
|
|
44
|
+
/**
|
|
45
|
+
* This rxjs subject is used to store the unsubscribe callbacks (if any) of the push notification processing
|
|
46
|
+
* Note: it should be used to clear it when app processes push notification from foreground
|
|
47
|
+
*/
|
|
48
|
+
export const pushUnsubscriptionCallbacks$ = new BehaviorSubject(undefined);
|
|
44
49
|
//# sourceMappingURL=rxSubjects.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BehaviorSubject","pushNonRingingCallData$","undefined","pushAcceptedIncomingCallCId$","pushTappedIncomingCallCId$","pushRejectedIncomingCallCId$","voipPushNotificationCallCId$","voipCallkeepCallOnForegroundMap$","voipCallkeepAcceptedCallOnNativeDialerMap$"],"sourceRoot":"../../../../src","sources":["utils/push/rxSubjects.ts"],"mappings":"AAAA,SAASA,eAAe,QAAQ,MAAM;AAGtC;AACA;AACA;AACA;AACA,OAAO,MAAMC,uBAAuB,GAAG,IAAID,eAAe,CAExDE,SAAS,CAAC;;AAEZ;AACA;AACA;AACA;AACA,OAAO,MAAMC,4BAA4B,GAAG,IAAIH,eAAe,CAE7DE,SAAS,CAAC;;AAEZ;AACA;AACA;AACA;AACA,OAAO,MAAME,0BAA0B,GAAG,IAAIJ,eAAe,CAE3DE,SAAS,CAAC;;AAEZ;AACA;AACA;AACA;AACA,OAAO,MAAMG,4BAA4B,GAAG,IAAIL,eAAe,CAE7DE,SAAS,CAAC;;AAEZ;AACA;AACA;AACA,OAAO,MAAMI,4BAA4B,GAAG,IAAIN,eAAe,CAE7DE,SAAS,CAAC;;AAEZ;;AAMA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMK,gCAAgC,GAAG,IAAIP,eAAe,CAEjEE,SAAS,CAAC;;AAEZ;AACA;AACA;AACA,OAAO,MAAMM,0CAA0C,GAAG,IAAIR,eAAe,CAE3EE,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"names":["BehaviorSubject","pushNonRingingCallData$","undefined","pushAcceptedIncomingCallCId$","pushTappedIncomingCallCId$","pushRejectedIncomingCallCId$","voipPushNotificationCallCId$","voipCallkeepCallOnForegroundMap$","voipCallkeepAcceptedCallOnNativeDialerMap$","pushUnsubscriptionCallbacks$"],"sourceRoot":"../../../../src","sources":["utils/push/rxSubjects.ts"],"mappings":"AAAA,SAASA,eAAe,QAAQ,MAAM;AAGtC;AACA;AACA;AACA;AACA,OAAO,MAAMC,uBAAuB,GAAG,IAAID,eAAe,CAExDE,SAAS,CAAC;;AAEZ;AACA;AACA;AACA;AACA,OAAO,MAAMC,4BAA4B,GAAG,IAAIH,eAAe,CAE7DE,SAAS,CAAC;;AAEZ;AACA;AACA;AACA;AACA,OAAO,MAAME,0BAA0B,GAAG,IAAIJ,eAAe,CAE3DE,SAAS,CAAC;;AAEZ;AACA;AACA;AACA;AACA,OAAO,MAAMG,4BAA4B,GAAG,IAAIL,eAAe,CAE7DE,SAAS,CAAC;;AAEZ;AACA;AACA;AACA,OAAO,MAAMI,4BAA4B,GAAG,IAAIN,eAAe,CAE7DE,SAAS,CAAC;;AAEZ;;AAMA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMK,gCAAgC,GAAG,IAAIP,eAAe,CAEjEE,SAAS,CAAC;;AAEZ;AACA;AACA;AACA,OAAO,MAAMM,0CAA0C,GAAG,IAAIR,eAAe,CAE3EE,SAAS,CAAC;AAIZ;AACA;AACA;AACA;AACA,OAAO,MAAMO,4BAA4B,GAAG,IAAIT,eAAe,CAE7DE,SAAS,CAAC"}
|
|
@@ -1,4 +1,49 @@
|
|
|
1
|
+
import { RxUtils } from '@stream-io/video-client';
|
|
1
2
|
import { onNewCallNotification } from '../internal/newNotificationCallbacks';
|
|
3
|
+
import { pushUnsubscriptionCallbacks$ } from './rxSubjects';
|
|
4
|
+
/**
|
|
5
|
+
* This function is used to check if the call should be ended based on the push notification
|
|
6
|
+
* Useful for callkeep management to end the call if necessary (with reportEndCallWithUUID)
|
|
7
|
+
*/
|
|
8
|
+
export const shouldCallBeEnded = (callFromPush, created_by_id, receiver_id) => {
|
|
9
|
+
/* callkeep reasons for ending a call
|
|
10
|
+
FAILED: 1,
|
|
11
|
+
REMOTE_ENDED: 2,
|
|
12
|
+
UNANSWERED: 3,
|
|
13
|
+
ANSWERED_ELSEWHERE: 4,
|
|
14
|
+
DECLINED_ELSEWHERE: 5,
|
|
15
|
+
MISSED: 6
|
|
16
|
+
*/
|
|
17
|
+
const callSession = callFromPush.state.session;
|
|
18
|
+
const rejected_by = callSession === null || callSession === void 0 ? void 0 : callSession.rejected_by;
|
|
19
|
+
const accepted_by = callSession === null || callSession === void 0 ? void 0 : callSession.accepted_by;
|
|
20
|
+
let mustEndCall = false;
|
|
21
|
+
let callkeepReason = 0;
|
|
22
|
+
if (created_by_id && rejected_by) {
|
|
23
|
+
if (rejected_by[created_by_id]) {
|
|
24
|
+
// call was cancelled by the caller
|
|
25
|
+
mustEndCall = true;
|
|
26
|
+
callkeepReason = 2;
|
|
27
|
+
}
|
|
28
|
+
} else if (receiver_id && rejected_by) {
|
|
29
|
+
if (rejected_by[receiver_id]) {
|
|
30
|
+
// call was rejected by the receiver in some other device
|
|
31
|
+
mustEndCall = true;
|
|
32
|
+
callkeepReason = 5;
|
|
33
|
+
}
|
|
34
|
+
} else if (receiver_id && accepted_by) {
|
|
35
|
+
if (accepted_by[receiver_id]) {
|
|
36
|
+
// call was accepted by the receiver in some other device
|
|
37
|
+
mustEndCall = true;
|
|
38
|
+
callkeepReason = 4;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return {
|
|
42
|
+
mustEndCall,
|
|
43
|
+
callkeepReason
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
|
|
2
47
|
/* An action for the notification or callkeep and app does not have JS context setup yet, so we need to do two steps:
|
|
3
48
|
1. we need to create a new client and connect the user to decline the call
|
|
4
49
|
2. this is because the app is in background state and we don't have a client to get the call and do an action
|
|
@@ -71,4 +116,24 @@ export const processNonIncomingCallFromPush = async (client, call_cid, nonRingin
|
|
|
71
116
|
}
|
|
72
117
|
onNewCallNotification(callFromPush, nonRingingNotificationType);
|
|
73
118
|
};
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* This function is used to clear all the push related WS subscriptions
|
|
122
|
+
* note: events are subscribed in push for accept/decline through WS
|
|
123
|
+
*/
|
|
124
|
+
export const clearPushWSEventSubscriptions = () => {
|
|
125
|
+
const unsubscriptionCallbacks = RxUtils.getCurrentValue(pushUnsubscriptionCallbacks$);
|
|
126
|
+
if (unsubscriptionCallbacks) {
|
|
127
|
+
unsubscriptionCallbacks.forEach(cb => cb());
|
|
128
|
+
}
|
|
129
|
+
pushUnsubscriptionCallbacks$.next(undefined);
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* This ref is used to check if the push WS subscriptions can be added
|
|
134
|
+
* It is used to avoid adding the push WS subscriptions when the client is connected to WS in the foreground
|
|
135
|
+
*/
|
|
136
|
+
export const canAddPushWSSubscriptionsRef = {
|
|
137
|
+
current: true
|
|
138
|
+
};
|
|
74
139
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["onNewCallNotification","processCallFromPushInBackground","pushConfig","call_cid","action","videoClient","createStreamVideoClient","e","console","log","processCallFromPush","client","
|
|
1
|
+
{"version":3,"names":["RxUtils","onNewCallNotification","pushUnsubscriptionCallbacks$","shouldCallBeEnded","callFromPush","created_by_id","receiver_id","callSession","state","session","rejected_by","accepted_by","mustEndCall","callkeepReason","processCallFromPushInBackground","pushConfig","call_cid","action","videoClient","createStreamVideoClient","e","console","log","processCallFromPush","client","onRingingCall","join","leave","reject","processNonIncomingCallFromPush","nonRingingNotificationType","_callFromPush","calls","find","c","cid","callType","callId","split","call","get","clearPushWSEventSubscriptions","unsubscriptionCallbacks","getCurrentValue","forEach","cb","next","undefined","canAddPushWSSubscriptionsRef","current"],"sourceRoot":"../../../../src","sources":["utils/push/utils.ts"],"mappings":"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"}
|
package/dist/module/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const version = '0.
|
|
1
|
+
export const version = '0.4.0';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["version"],"sourceRoot":"../../src","sources":["version.ts"],"mappings":"AAAA,OAAO,MAAMA,OAAO,GAAG,
|
|
1
|
+
{"version":3,"names":["version"],"sourceRoot":"../../src","sources":["version.ts"],"mappings":"AAAA,OAAO,MAAMA,OAAO,GAAG,OAAO"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcceptCallButton.d.ts","sourceRoot":"","sources":["../../../../../src/components/Call/CallControls/AcceptCallButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"AcceptCallButton.d.ts","sourceRoot":"","sources":["../../../../../src/components/Call/CallControls/AcceptCallButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B;;GAEG;AACH,KAAK,qBAAqB,GAAG;IAC3B;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;CAClC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,6CAG1B,qBAAqB,sBAkCvB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RejectCallButton.d.ts","sourceRoot":"","sources":["../../../../../src/components/Call/CallControls/RejectCallButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"RejectCallButton.d.ts","sourceRoot":"","sources":["../../../../../src/components/Call/CallControls/RejectCallButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B;;GAEG;AACH,KAAK,qBAAqB,GAAG;IAC3B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;CAClC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,6CAG1B,qBAAqB,sBAyCvB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIosVoipPushEventsSetupEffect.d.ts","sourceRoot":"","sources":["../../../../src/hooks/push/useIosVoipPushEventsSetupEffect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useIosVoipPushEventsSetupEffect.d.ts","sourceRoot":"","sources":["../../../../src/hooks/push/useIosVoipPushEventsSetupEffect.ts"],"names":[],"mappings":"AAuBA;;;GAGG;AACH,eAAO,MAAM,+BAA+B,YA4E3C,CAAC"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* This hook is used to keep the call alive in the background for Android.
|
|
3
3
|
* It starts a foreground service to keep the call alive as soon as the call is joined
|
|
4
4
|
* and stops the foreground Service when the call is left.
|
|
5
|
+
* Additonally: also responsible for cancelling any notifee displayed notification when the call has transitioned out of ringing
|
|
5
6
|
*/
|
|
6
7
|
export declare const useAndroidKeepCallAliveEffect: () => void;
|
|
7
8
|
//# sourceMappingURL=useAndroidKeepCallAliveEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAndroidKeepCallAliveEffect.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAndroidKeepCallAliveEffect.ts"],"names":[],"mappings":"AA6DA
|
|
1
|
+
{"version":3,"file":"useAndroidKeepCallAliveEffect.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAndroidKeepCallAliveEffect.ts"],"names":[],"mappings":"AA6DA;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,YAwDzC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaStreamManagement.d.ts","sourceRoot":"","sources":["../../../src/providers/MediaStreamManagement.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAsB,MAAM,OAAO,CAAC;AAMrE,MAAM,MAAM,wBAAwB,GAAG;IACrC;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,8GAI/B,kBAAkB,wBAAwB,CAAC,
|
|
1
|
+
{"version":3,"file":"MediaStreamManagement.d.ts","sourceRoot":"","sources":["../../../src/providers/MediaStreamManagement.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAsB,MAAM,OAAO,CAAC;AAMrE,MAAM,MAAM,wBAAwB,GAAG;IACrC;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,8GAI/B,kBAAkB,wBAAwB,CAAC,sBAoG7C,CAAC"}
|
|
@@ -8,7 +8,9 @@ export type StreamCallProps = {
|
|
|
8
8
|
*/
|
|
9
9
|
call: Call;
|
|
10
10
|
/**
|
|
11
|
-
*
|
|
11
|
+
* Optionally provide the initial status of the media devices(audio/video) to the `MediaStreamManagement`.
|
|
12
|
+
* Note: It will override the default state of the media devices set from the server side.
|
|
13
|
+
* It is used to control the initial state of the media devices(audio/video) in a custom lobby component.
|
|
12
14
|
*/
|
|
13
15
|
mediaDeviceInitialState?: MediaDevicesInitialState;
|
|
14
16
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StreamCall.d.ts","sourceRoot":"","sources":["../../../src/providers/StreamCall.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"StreamCall.d.ts","sourceRoot":"","sources":["../../../src/providers/StreamCall.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAa,MAAM,OAAO,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAE/C,OAAO,EACL,wBAAwB,EAEzB,MAAM,yBAAyB,CAAC;AAOjC,MAAM,MAAM,eAAe,GAAG;IAC5B;;;OAGG;IACH,IAAI,EAAE,IAAI,CAAC;IACX;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,wBAAwB,CAAC;CACpD,CAAC;AACF;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,iDAIpB,kBAAkB,eAAe,CAAC,sBAWpC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"android.d.ts","sourceRoot":"","sources":["../../../../src/utils/push/android.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"android.d.ts","sourceRoot":"","sources":["../../../../src/utils/push/android.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE3E,OAAO,KAAK,EAEV,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAyBhC,KAAK,UAAU,GAAG,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;AAEzD,2CAA2C;AAC3C,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,UAAU,QA2DjE;AAED,0DAA0D;AAC1D,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,iBAAiB,EACzB,UAAU,EAAE,UAAU,EACtB,sBAAsB,EAAE,CAAC,WAAW,EAAE,MAAM,IAAI,KAAK,IAAI,iBAmC1D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ios.d.ts","sourceRoot":"","sources":["../../../../src/utils/push/ios.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"ios.d.ts","sourceRoot":"","sources":["../../../../src/utils/push/ios.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAahC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAI5D,KAAK,UAAU,GAAG,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;AAwBzD,eAAO,MAAM,qBAAqB,aACtB,MAAM,GAAG,SAAS,wBACN,MAAM,SAe7B,CAAC;AAEF,eAAO,MAAM,qBAAqB,aACtB,MAAM,GAAG,SAAS,wBACN,MAAM,cAChB,UAAU,kBAWvB,CAAC;AAgBF,eAAO,MAAM,kCAAkC,eAAgB,UAAU,SA6BxE,CAAC;AAEF,2BAA2B;AAC3B,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,iBAAiB,EACzB,UAAU,EAAE,UAAU,EACtB,sBAAsB,EAAE,CAAC,WAAW,EAAE,MAAM,IAAI,KAAK,IAAI,iBAmD1D"}
|
|
@@ -34,5 +34,11 @@ type CallkeepMap = {
|
|
|
34
34
|
};
|
|
35
35
|
export declare const voipCallkeepCallOnForegroundMap$: BehaviorSubject<CallkeepMap | undefined>;
|
|
36
36
|
export declare const voipCallkeepAcceptedCallOnNativeDialerMap$: BehaviorSubject<CallkeepMap | undefined>;
|
|
37
|
+
type UnsubscribeCallback = () => void;
|
|
38
|
+
/**
|
|
39
|
+
* This rxjs subject is used to store the unsubscribe callbacks (if any) of the push notification processing
|
|
40
|
+
* Note: it should be used to clear it when app processes push notification from foreground
|
|
41
|
+
*/
|
|
42
|
+
export declare const pushUnsubscriptionCallbacks$: BehaviorSubject<UnsubscribeCallback[] | undefined>;
|
|
37
43
|
export {};
|
|
38
44
|
//# sourceMappingURL=rxSubjects.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rxSubjects.d.ts","sourceRoot":"","sources":["../../../../src/utils/push/rxSubjects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D;;;GAGG;AACH,eAAO,MAAM,uBAAuB;SAC3B,MAAM;UAAQ,mBAAmB;cAC9B,CAAC;AAEb;;;GAGG;AACH,eAAO,MAAM,4BAA4B,qCAE7B,CAAC;AAEb;;;GAGG;AACH,eAAO,MAAM,0BAA0B,qCAE3B,CAAC;AAEb;;;GAGG;AACH,eAAO,MAAM,4BAA4B,qCAE7B,CAAC;AAEb;;GAEG;AACH,eAAO,MAAM,4BAA4B,qCAE7B,CAAC;AAEb,sFAAsF;AACtF,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAOF,eAAO,MAAM,gCAAgC,0CAEjC,CAAC;AAKb,eAAO,MAAM,0CAA0C,0CAE3C,CAAC"}
|
|
1
|
+
{"version":3,"file":"rxSubjects.d.ts","sourceRoot":"","sources":["../../../../src/utils/push/rxSubjects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D;;;GAGG;AACH,eAAO,MAAM,uBAAuB;SAC3B,MAAM;UAAQ,mBAAmB;cAC9B,CAAC;AAEb;;;GAGG;AACH,eAAO,MAAM,4BAA4B,qCAE7B,CAAC;AAEb;;;GAGG;AACH,eAAO,MAAM,0BAA0B,qCAE3B,CAAC;AAEb;;;GAGG;AACH,eAAO,MAAM,4BAA4B,qCAE7B,CAAC;AAEb;;GAEG;AACH,eAAO,MAAM,4BAA4B,qCAE7B,CAAC;AAEb,sFAAsF;AACtF,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAOF,eAAO,MAAM,gCAAgC,0CAEjC,CAAC;AAKb,eAAO,MAAM,0CAA0C,0CAE3C,CAAC;AAEb,KAAK,mBAAmB,GAAG,MAAM,IAAI,CAAC;AAEtC;;;GAGG;AACH,eAAO,MAAM,4BAA4B,oDAE7B,CAAC"}
|