@ethora/chat-component-rn 26.10.4 → 26.10.5
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/lib/commonjs/components/VideoCalls/ActiveCallBar.js +61 -16
- package/lib/commonjs/components/VideoCalls/ActiveCallBar.js.map +1 -1
- package/lib/commonjs/components/VideoCalls/CallIcons.js +41 -16
- package/lib/commonjs/components/VideoCalls/CallIcons.js.map +1 -1
- package/lib/commonjs/components/VideoCalls/VideoCallOverlay.js +183 -9
- package/lib/commonjs/components/VideoCalls/VideoCallOverlay.js.map +1 -1
- package/lib/commonjs/components/VideoCalls/VideoCallSession.js +40 -15
- package/lib/commonjs/components/VideoCalls/VideoCallSession.js.map +1 -1
- package/lib/commonjs/components/VideoCalls/callSessionController.js +49 -26
- package/lib/commonjs/components/VideoCalls/callSessionController.js.map +1 -1
- package/lib/commonjs/components/VideoCalls/callUiStore.js +33 -4
- package/lib/commonjs/components/VideoCalls/callUiStore.js.map +1 -1
- package/lib/commonjs/components/VideoCalls/livekitRuntime.js +9 -1
- package/lib/commonjs/components/VideoCalls/livekitRuntime.js.map +1 -1
- package/lib/commonjs/components/VideoCalls/useCallKeep.js +197 -28
- package/lib/commonjs/components/VideoCalls/useCallKeep.js.map +1 -1
- package/lib/commonjs/components/VideoCalls/useOngoingCallNotification.js +88 -0
- package/lib/commonjs/components/VideoCalls/useOngoingCallNotification.js.map +1 -0
- package/lib/commonjs/components/VideoCalls/usePipTile.js +232 -0
- package/lib/commonjs/components/VideoCalls/usePipTile.js.map +1 -0
- package/lib/commonjs/helpers/updateMessagesTillLast.js +3 -1
- package/lib/commonjs/helpers/updateMessagesTillLast.js.map +1 -1
- package/lib/commonjs/i18n/strings.js +48 -0
- package/lib/commonjs/i18n/strings.js.map +1 -1
- package/lib/commonjs/main.js.map +1 -1
- package/lib/commonjs/version.js +1 -1
- package/lib/module/components/VideoCalls/ActiveCallBar.js +63 -18
- package/lib/module/components/VideoCalls/ActiveCallBar.js.map +1 -1
- package/lib/module/components/VideoCalls/CallIcons.js +38 -15
- package/lib/module/components/VideoCalls/CallIcons.js.map +1 -1
- package/lib/module/components/VideoCalls/VideoCallOverlay.js +185 -11
- package/lib/module/components/VideoCalls/VideoCallOverlay.js.map +1 -1
- package/lib/module/components/VideoCalls/VideoCallSession.js +41 -16
- package/lib/module/components/VideoCalls/VideoCallSession.js.map +1 -1
- package/lib/module/components/VideoCalls/callSessionController.js +46 -24
- package/lib/module/components/VideoCalls/callSessionController.js.map +1 -1
- package/lib/module/components/VideoCalls/callUiStore.js +30 -3
- package/lib/module/components/VideoCalls/callUiStore.js.map +1 -1
- package/lib/module/components/VideoCalls/livekitRuntime.js +9 -1
- package/lib/module/components/VideoCalls/livekitRuntime.js.map +1 -1
- package/lib/module/components/VideoCalls/useCallKeep.js +198 -29
- package/lib/module/components/VideoCalls/useCallKeep.js.map +1 -1
- package/lib/module/components/VideoCalls/useOngoingCallNotification.js +84 -0
- package/lib/module/components/VideoCalls/useOngoingCallNotification.js.map +1 -0
- package/lib/module/components/VideoCalls/usePipTile.js +228 -0
- package/lib/module/components/VideoCalls/usePipTile.js.map +1 -0
- package/lib/module/helpers/updateMessagesTillLast.js +3 -1
- package/lib/module/helpers/updateMessagesTillLast.js.map +1 -1
- package/lib/module/i18n/strings.js +48 -0
- package/lib/module/i18n/strings.js.map +1 -1
- package/lib/module/main.js.map +1 -1
- package/lib/module/version.js +1 -1
- package/lib/typescript/components/VideoCalls/ActiveCallBar.d.ts +9 -3
- package/lib/typescript/components/VideoCalls/ActiveCallBar.d.ts.map +1 -1
- package/lib/typescript/components/VideoCalls/CallIcons.d.ts +9 -0
- package/lib/typescript/components/VideoCalls/CallIcons.d.ts.map +1 -1
- package/lib/typescript/components/VideoCalls/VideoCallOverlay.d.ts.map +1 -1
- package/lib/typescript/components/VideoCalls/VideoCallSession.d.ts.map +1 -1
- package/lib/typescript/components/VideoCalls/callSessionController.d.ts +7 -0
- package/lib/typescript/components/VideoCalls/callSessionController.d.ts.map +1 -1
- package/lib/typescript/components/VideoCalls/callUiStore.d.ts +13 -0
- package/lib/typescript/components/VideoCalls/callUiStore.d.ts.map +1 -1
- package/lib/typescript/components/VideoCalls/livekitRuntime.d.ts +5 -0
- package/lib/typescript/components/VideoCalls/livekitRuntime.d.ts.map +1 -1
- package/lib/typescript/components/VideoCalls/useCallKeep.d.ts +12 -0
- package/lib/typescript/components/VideoCalls/useCallKeep.d.ts.map +1 -1
- package/lib/typescript/components/VideoCalls/useOngoingCallNotification.d.ts +10 -0
- package/lib/typescript/components/VideoCalls/useOngoingCallNotification.d.ts.map +1 -0
- package/lib/typescript/components/VideoCalls/usePipTile.d.ts +46 -0
- package/lib/typescript/components/VideoCalls/usePipTile.d.ts.map +1 -0
- package/lib/typescript/helpers/updateMessagesTillLast.d.ts.map +1 -1
- package/lib/typescript/i18n/strings.d.ts.map +1 -1
- package/lib/typescript/main.d.ts +1 -1
- package/lib/typescript/main.d.ts.map +1 -1
- package/lib/typescript/types/types.d.ts +40 -0
- package/lib/typescript/types/types.d.ts.map +1 -1
- package/lib/typescript/version.d.ts +1 -1
- package/package.json +1 -1
- package/src/components/VideoCalls/ActiveCallBar.tsx +56 -10
- package/src/components/VideoCalls/CallIcons.tsx +36 -12
- package/src/components/VideoCalls/VideoCallOverlay.tsx +205 -8
- package/src/components/VideoCalls/VideoCallSession.tsx +45 -13
- package/src/components/VideoCalls/callSessionController.ts +51 -20
- package/src/components/VideoCalls/callUiStore.ts +33 -3
- package/src/components/VideoCalls/livekitRuntime.ts +13 -0
- package/src/components/VideoCalls/useCallKeep.ts +204 -33
- package/src/components/VideoCalls/useOngoingCallNotification.ts +113 -0
- package/src/components/VideoCalls/usePipTile.ts +214 -0
- package/src/helpers/updateMessagesTillLast.tsx +2 -1
- package/src/i18n/strings.ts +48 -0
- package/src/main.ts +3 -0
- package/src/types/types.ts +48 -0
- package/src/version.ts +1 -1
- package/lib/commonjs/components/VideoCalls/useDraggable.js +0 -59
- package/lib/commonjs/components/VideoCalls/useDraggable.js.map +0 -1
- package/lib/module/components/VideoCalls/useDraggable.js +0 -55
- package/lib/module/components/VideoCalls/useDraggable.js.map +0 -1
- package/lib/typescript/components/VideoCalls/useDraggable.d.ts +0 -19
- package/lib/typescript/components/VideoCalls/useDraggable.d.ts.map +0 -1
- package/src/components/VideoCalls/useDraggable.ts +0 -46
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.useCallUi = exports.setCallMinimized = exports.registerCallBarHost = exports.getCallUiState = void 0;
|
|
6
|
+
exports.useCallUi = exports.setCallSystemRinging = exports.setCallMinimized = exports.setCallBarAnchor = exports.registerCallBarHost = exports.getCallUiState = void 0;
|
|
7
7
|
var _react = require("react");
|
|
8
8
|
var _roomStore = require("../../roomStore");
|
|
9
9
|
/**
|
|
@@ -21,7 +21,9 @@ var _roomStore = require("../../roomStore");
|
|
|
21
21
|
|
|
22
22
|
let state = {
|
|
23
23
|
minimized: false,
|
|
24
|
-
|
|
24
|
+
systemRinging: false,
|
|
25
|
+
barHost: null,
|
|
26
|
+
barAnchorY: null
|
|
25
27
|
};
|
|
26
28
|
const hosts = [];
|
|
27
29
|
let nextHostId = 1;
|
|
@@ -41,11 +43,17 @@ const ensureStoreWatcher = () => {
|
|
|
41
43
|
return;
|
|
42
44
|
}
|
|
43
45
|
storeUnsubscribe = _roomStore.store.subscribe(() => {
|
|
44
|
-
|
|
46
|
+
const phase = _roomStore.store.getState().call.phase;
|
|
47
|
+
if (state.minimized && phase === 'idle') {
|
|
45
48
|
emit({
|
|
46
49
|
minimized: false
|
|
47
50
|
});
|
|
48
51
|
}
|
|
52
|
+
if (state.systemRinging && phase !== 'ringing-incoming') {
|
|
53
|
+
emit({
|
|
54
|
+
systemRinging: false
|
|
55
|
+
});
|
|
56
|
+
}
|
|
49
57
|
});
|
|
50
58
|
};
|
|
51
59
|
const subscribe = listener => {
|
|
@@ -70,6 +78,14 @@ const setCallMinimized = minimized => {
|
|
|
70
78
|
}
|
|
71
79
|
};
|
|
72
80
|
exports.setCallMinimized = setCallMinimized;
|
|
81
|
+
const setCallSystemRinging = systemRinging => {
|
|
82
|
+
if (state.systemRinging !== systemRinging) {
|
|
83
|
+
emit({
|
|
84
|
+
systemRinging
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
exports.setCallSystemRinging = setCallSystemRinging;
|
|
73
89
|
const registerCallBarHost = onId => {
|
|
74
90
|
const id = nextHostId++;
|
|
75
91
|
hosts.push(id);
|
|
@@ -82,10 +98,23 @@ const registerCallBarHost = onId => {
|
|
|
82
98
|
if (index >= 0) {
|
|
83
99
|
hosts.splice(index, 1);
|
|
84
100
|
}
|
|
101
|
+
const next = hosts.length ? hosts[hosts.length - 1] : null;
|
|
85
102
|
emit({
|
|
86
|
-
barHost:
|
|
103
|
+
barHost: next,
|
|
104
|
+
barAnchorY: next === null ? null : state.barAnchorY
|
|
87
105
|
});
|
|
88
106
|
};
|
|
89
107
|
};
|
|
108
|
+
|
|
109
|
+
/** The hosting header reports where its strip slot is on screen. */
|
|
90
110
|
exports.registerCallBarHost = registerCallBarHost;
|
|
111
|
+
const setCallBarAnchor = (hostId, y) => {
|
|
112
|
+
if (state.barHost !== hostId || state.barAnchorY === y) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
emit({
|
|
116
|
+
barAnchorY: y
|
|
117
|
+
});
|
|
118
|
+
};
|
|
119
|
+
exports.setCallBarAnchor = setCallBarAnchor;
|
|
91
120
|
//# sourceMappingURL=callUiStore.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_roomStore","state","minimized","barHost","hosts","nextHostId","listeners","Set","storeUnsubscribe","emit","patch","forEach","listener","ensureStoreWatcher","store","subscribe","
|
|
1
|
+
{"version":3,"names":["_react","require","_roomStore","state","minimized","systemRinging","barHost","barAnchorY","hosts","nextHostId","listeners","Set","storeUnsubscribe","emit","patch","forEach","listener","ensureStoreWatcher","store","subscribe","phase","getState","call","add","delete","getSnapshot","getCallUiState","exports","useCallUi","useSyncExternalStore","setCallMinimized","setCallSystemRinging","registerCallBarHost","onId","id","push","index","indexOf","splice","next","length","setCallBarAnchor","hostId","y"],"sourceRoot":"../../../../src","sources":["components/VideoCalls/callUiStore.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -45,6 +45,13 @@ const loadLiveKit = () => {
|
|
|
45
45
|
// moving subset across versions, the core package does not.
|
|
46
46
|
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
47
47
|
const core = require('livekit-client');
|
|
48
|
+
let webrtc = null;
|
|
49
|
+
try {
|
|
50
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
51
|
+
webrtc = require('@livekit/react-native-webrtc');
|
|
52
|
+
} catch {
|
|
53
|
+
// Only needed for CallKit; calls work without it.
|
|
54
|
+
}
|
|
48
55
|
cached = {
|
|
49
56
|
Room: core.Room,
|
|
50
57
|
RoomEvent: core.RoomEvent,
|
|
@@ -53,7 +60,8 @@ const loadLiveKit = () => {
|
|
|
53
60
|
VideoPresets: core.VideoPresets,
|
|
54
61
|
VideoTrack: rn.VideoTrack,
|
|
55
62
|
AudioSession: rn.AudioSession,
|
|
56
|
-
registerGlobals: rn.registerGlobals
|
|
63
|
+
registerGlobals: rn.registerGlobals,
|
|
64
|
+
RTCAudioSession: webrtc?.RTCAudioSession ?? null
|
|
57
65
|
};
|
|
58
66
|
} catch {
|
|
59
67
|
cached = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["cached","isLiveKitAvailable","loadLiveKit","exports","undefined","rn","require","core","Room","RoomEvent","Track","ConnectionState","VideoPresets","VideoTrack","AudioSession","registerGlobals","globalsRegistered","ensureLiveKitGlobals","runtime","__resetLiveKitRuntimeForTests"],"sourceRoot":"../../../../src","sources":["components/VideoCalls/livekitRuntime.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;
|
|
1
|
+
{"version":3,"names":["cached","isLiveKitAvailable","loadLiveKit","exports","undefined","rn","require","core","webrtc","Room","RoomEvent","Track","ConnectionState","VideoPresets","VideoTrack","AudioSession","registerGlobals","RTCAudioSession","globalsRegistered","ensureLiveKitGlobals","runtime","__resetLiveKitRuntimeForTests"],"sourceRoot":"../../../../src","sources":["components/VideoCalls/livekitRuntime.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA0BA,IAAIA,MAAyC;AAEtC,MAAMC,kBAAkB,GAAGA,CAAA,KAAeC,WAAW,CAAC,CAAC,KAAK,IAAI;;AAEvE;AACA;AACA;AACA;AACA;AAJAC,OAAA,CAAAF,kBAAA,GAAAA,kBAAA;AAKO,MAAMC,WAAW,GAAGA,CAAA,KAA6B;EACtD,IAAIF,MAAM,KAAKI,SAAS,EAAE;IACxB,OAAOJ,MAAM;EACf;EAEA,IAAI;IACF;IACA,MAAMK,EAAE,GAAGC,OAAO,CAAC,uBAAuB,CAAC;IAC3C;IACA;IACA;IACA;IACA;IACA,MAAMC,IAAI,GAAGD,OAAO,CAAC,gBAAgB,CAAC;IACtC,IAAIE,MAAW,GAAG,IAAI;IACtB,IAAI;MACF;MACAA,MAAM,GAAGF,OAAO,CAAC,8BAA8B,CAAC;IAClD,CAAC,CAAC,MAAM;MACN;IAAA;IAGFN,MAAM,GAAG;MACPS,IAAI,EAAEF,IAAI,CAACE,IAAI;MACfC,SAAS,EAAEH,IAAI,CAACG,SAAS;MACzBC,KAAK,EAAEJ,IAAI,CAACI,KAAK;MACjBC,eAAe,EAAEL,IAAI,CAACK,eAAe;MACrCC,YAAY,EAAEN,IAAI,CAACM,YAAY;MAC/BC,UAAU,EAAET,EAAE,CAACS,UAAU;MACzBC,YAAY,EAAEV,EAAE,CAACU,YAAY;MAC7BC,eAAe,EAAEX,EAAE,CAACW,eAAe;MACnCC,eAAe,EAAET,MAAM,EAAES,eAAe,IAAI;IAC9C,CAAC;EACH,CAAC,CAAC,MAAM;IACNjB,MAAM,GAAG,IAAI;EACf;EAEA,OAAOA,MAAM;AACf,CAAC;AAACG,OAAA,CAAAD,WAAA,GAAAA,WAAA;AAEF,IAAIgB,iBAAiB,GAAG,KAAK;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,oBAAoB,GAAIC,OAAuB,IAAW;EACrE,IAAIF,iBAAiB,EAAE;IAAC;EAAO;EAC/B,IAAI;IACFE,OAAO,CAACJ,eAAe,GAAG,CAAC;EAC7B,CAAC,CAAC,MAAM;IACN;EAAA;EAEFE,iBAAiB,GAAG,IAAI;AAC1B,CAAC;;AAED;AAAAf,OAAA,CAAAgB,oBAAA,GAAAA,oBAAA;AACO,MAAME,6BAA6B,GAAGA,CAAA,KAAY;EACvDrB,MAAM,GAAGI,SAAS;EAClBc,iBAAiB,GAAG,KAAK;AAC3B,CAAC;AAACf,OAAA,CAAAkB,6BAAA,GAAAA,6BAAA","ignoreList":[]}
|
|
@@ -10,6 +10,10 @@ var _reactRedux = require("react-redux");
|
|
|
10
10
|
var _roomStore = require("../../roomStore");
|
|
11
11
|
var _callSlice = require("../../roomStore/callSlice");
|
|
12
12
|
var _callTokenStanza = require("../../networking/callTokenStanza");
|
|
13
|
+
var _callActions = require("./callActions");
|
|
14
|
+
var _callSessionController = require("./callSessionController");
|
|
15
|
+
var _livekitRuntime = require("./livekitRuntime");
|
|
16
|
+
var _callUiStore = require("./callUiStore");
|
|
13
17
|
/**
|
|
14
18
|
* Native incoming-call UI (Android ConnectionService / iOS CallKit) via
|
|
15
19
|
* the optional `react-native-callkeep` package.
|
|
@@ -19,6 +23,12 @@ var _callTokenStanza = require("../../networking/callTokenStanza");
|
|
|
19
23
|
* loaded lazily exactly like the LiveKit packages, so hosts that don't
|
|
20
24
|
* install it get the plain in-app ring screen and nothing breaks.
|
|
21
25
|
*
|
|
26
|
+
* On iOS every call, incoming or outgoing, is also reported to CallKit for
|
|
27
|
+
* as long as it lasts. That is what puts it in the Dynamic Island / the
|
|
28
|
+
* green status-bar pill when the app is in the background, with the
|
|
29
|
+
* system's own mute and end buttons, and what keeps the call's audio
|
|
30
|
+
* running in the background.
|
|
31
|
+
*
|
|
22
32
|
* Platform reality, stated plainly:
|
|
23
33
|
* - Android: full value. A ConnectionService call shows the system
|
|
24
34
|
* incoming-call screen over the lock screen.
|
|
@@ -78,16 +88,31 @@ const toUuid = seed => {
|
|
|
78
88
|
const hex = bytes.map(b => b.toString(16).padStart(2, '0')).join('');
|
|
79
89
|
return [hex.slice(0, 8), hex.slice(8, 12), '4' + hex.slice(13, 16), (parseInt(hex[16], 16) & 0x3 | 0x8).toString(16) + hex.slice(17, 20), hex.slice(20, 32)].join('-');
|
|
80
90
|
};
|
|
91
|
+
const trace = (...args) => {
|
|
92
|
+
if (__DEV__) {
|
|
93
|
+
console.log('[calls] CallKit:', ...args);
|
|
94
|
+
}
|
|
95
|
+
};
|
|
81
96
|
const useCallKeep = () => {
|
|
82
97
|
const dispatch = (0, _reactRedux.useDispatch)();
|
|
83
98
|
const call = (0, _reactRedux.useSelector)(state => state.call);
|
|
99
|
+
const session = (0, _callSessionController.useCallSession)();
|
|
84
100
|
const callKeep = (0, _react.useMemo)(() => loadCallKeep(), []);
|
|
101
|
+
const [ready, setReady] = (0, _react.useState)(false);
|
|
85
102
|
const activeUuidRef = (0, _react.useRef)(null);
|
|
86
|
-
|
|
103
|
+
// The CallKit call has been answered (from the system screen or in-app).
|
|
104
|
+
const answeredRef = (0, _react.useRef)(false);
|
|
105
|
+
const outgoingReportedRef = (0, _react.useRef)('none');
|
|
106
|
+
const isIOS = _reactNative.Platform.OS === 'ios';
|
|
87
107
|
|
|
88
108
|
// One-time native setup.
|
|
89
109
|
(0, _react.useEffect)(() => {
|
|
90
110
|
if (!callKeep) {
|
|
111
|
+
if (isIOS) {
|
|
112
|
+
// The usual reason for "no Dynamic Island": the JS package is there
|
|
113
|
+
// but the binary was built without the RNCallKeep pod.
|
|
114
|
+
trace('unavailable (react-native-callkeep is not linked in this build)');
|
|
115
|
+
}
|
|
91
116
|
return;
|
|
92
117
|
}
|
|
93
118
|
let cancelled = false;
|
|
@@ -96,7 +121,12 @@ const useCallKeep = () => {
|
|
|
96
121
|
await callKeep.setup({
|
|
97
122
|
ios: {
|
|
98
123
|
appName: 'Ethora',
|
|
99
|
-
supportsVideo: true
|
|
124
|
+
supportsVideo: true,
|
|
125
|
+
maximumCallGroups: '1',
|
|
126
|
+
maximumCallsPerCallGroup: '1',
|
|
127
|
+
// Our calls are not phone calls: keep them out of the Phone
|
|
128
|
+
// app's Recents, whose entries would dial back into nowhere.
|
|
129
|
+
includesCallsInRecents: false
|
|
100
130
|
},
|
|
101
131
|
android: {
|
|
102
132
|
alertTitle: 'Permissions required',
|
|
@@ -115,28 +145,35 @@ const useCallKeep = () => {
|
|
|
115
145
|
return;
|
|
116
146
|
}
|
|
117
147
|
callKeep.setAvailable?.(true);
|
|
118
|
-
|
|
119
|
-
|
|
148
|
+
trace('ready');
|
|
149
|
+
setReady(true);
|
|
150
|
+
} catch (error) {
|
|
151
|
+
trace('setup failed', error);
|
|
120
152
|
// Host didn't grant phone-account permission, or the module isn't
|
|
121
153
|
// linked. The in-app ring screen still works, so stay quiet.
|
|
122
|
-
|
|
154
|
+
setReady(false);
|
|
123
155
|
}
|
|
124
156
|
})();
|
|
125
157
|
return () => {
|
|
126
158
|
cancelled = true;
|
|
127
159
|
};
|
|
128
|
-
}, [callKeep]);
|
|
160
|
+
}, [callKeep, isIOS]);
|
|
129
161
|
|
|
130
|
-
// Bridge native
|
|
162
|
+
// Bridge native actions back into the call.
|
|
131
163
|
(0, _react.useEffect)(() => {
|
|
132
164
|
if (!callKeep) {
|
|
133
165
|
return;
|
|
134
166
|
}
|
|
135
167
|
const onAnswer = () => {
|
|
168
|
+
answeredRef.current = true;
|
|
136
169
|
// The user answered from the system screen, which on Android may
|
|
137
170
|
// mean the app was not even in the foreground.
|
|
138
171
|
callKeep.backToForeground?.();
|
|
139
|
-
|
|
172
|
+
// Only from the ring: CallKit also reports the answer we make on its
|
|
173
|
+
// behalf after an in-app accept, and re-accepting then would drop an
|
|
174
|
+
// in-progress call back to 'connecting'.
|
|
175
|
+
const current = _roomStore.store.getState().call;
|
|
176
|
+
if (current.direction === 'incoming' && current.phase === 'ringing-incoming') {
|
|
140
177
|
dispatch((0, _callSlice.acceptIncomingCall)());
|
|
141
178
|
}
|
|
142
179
|
};
|
|
@@ -148,54 +185,190 @@ const useCallKeep = () => {
|
|
|
148
185
|
if (snapshot.direction === 'incoming' && snapshot.phase === 'ringing-incoming') {
|
|
149
186
|
(0, _callTokenStanza.sendCallStateSignal)('declined');
|
|
150
187
|
dispatch((0, _callSlice.declineIncomingCall)());
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
// Ended from the Dynamic Island, the lock screen or a headset.
|
|
191
|
+
if (snapshot.phase === 'error') {
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
(0, _callActions.terminateActiveCall)(snapshot.phase === 'requesting' ? 'cancelled' : 'ended');
|
|
195
|
+
};
|
|
196
|
+
|
|
197
|
+
// The system mute button (Dynamic Island, lock screen, CarPlay).
|
|
198
|
+
const onMuted = ({
|
|
199
|
+
muted
|
|
200
|
+
}) => {
|
|
201
|
+
void (0, _callSessionController.setCallMicEnabled)(!muted);
|
|
202
|
+
};
|
|
203
|
+
|
|
204
|
+
// Another call (e.g. a phone call) put ours on hold: stop sending audio.
|
|
205
|
+
const onHold = ({
|
|
206
|
+
hold
|
|
207
|
+
}) => {
|
|
208
|
+
if (hold) {
|
|
209
|
+
void (0, _callSessionController.setCallMicEnabled)(false);
|
|
210
|
+
}
|
|
211
|
+
};
|
|
212
|
+
|
|
213
|
+
// CallKit owns the iOS audio session: WebRTC may only start its audio
|
|
214
|
+
// unit once CallKit has activated the session.
|
|
215
|
+
const onAudioActivated = () => {
|
|
216
|
+
try {
|
|
217
|
+
(0, _livekitRuntime.loadLiveKit)()?.RTCAudioSession?.audioSessionDidActivate?.();
|
|
218
|
+
} catch {
|
|
219
|
+
// Older webrtc builds manage the session on their own.
|
|
220
|
+
}
|
|
221
|
+
};
|
|
222
|
+
const onAudioDeactivated = () => {
|
|
223
|
+
try {
|
|
224
|
+
(0, _livekitRuntime.loadLiveKit)()?.RTCAudioSession?.audioSessionDidDeactivate?.();
|
|
225
|
+
} catch {
|
|
226
|
+
// noop
|
|
151
227
|
}
|
|
152
228
|
};
|
|
153
229
|
callKeep.addEventListener('answerCall', onAnswer);
|
|
154
230
|
callKeep.addEventListener('endCall', onEnd);
|
|
231
|
+
callKeep.addEventListener('didPerformSetMutedCallAction', onMuted);
|
|
232
|
+
callKeep.addEventListener('didToggleHoldCallAction', onHold);
|
|
233
|
+
callKeep.addEventListener('didActivateAudioSession', onAudioActivated);
|
|
234
|
+
// CallKit rejected or dropped our calls (e.g. a build without the voip
|
|
235
|
+
// background mode): there is nothing to end any more.
|
|
236
|
+
const onReset = () => {
|
|
237
|
+
trace('provider reset');
|
|
238
|
+
};
|
|
239
|
+
callKeep.addEventListener('didResetProvider', onReset);
|
|
240
|
+
// The system's verdict on displayIncomingCall ("Unentitled" means the
|
|
241
|
+
// app lacks the voip background mode).
|
|
242
|
+
const onDisplayed = ({
|
|
243
|
+
error,
|
|
244
|
+
errorCode
|
|
245
|
+
}) => {
|
|
246
|
+
trace('incoming call shown', error ? `failed: ${errorCode || ''} ${error}` : 'ok');
|
|
247
|
+
// CallKit refused it (Do Not Disturb, unentitled...): bring the
|
|
248
|
+
// in-app ring card back so the call can still be answered.
|
|
249
|
+
if (error) {
|
|
250
|
+
(0, _callUiStore.setCallSystemRinging)(false);
|
|
251
|
+
}
|
|
252
|
+
};
|
|
253
|
+
callKeep.addEventListener('didDisplayIncomingCall', onDisplayed);
|
|
254
|
+
callKeep.addEventListener('didDeactivateAudioSession', onAudioDeactivated);
|
|
155
255
|
return () => {
|
|
156
256
|
callKeep.removeEventListener('answerCall');
|
|
157
257
|
callKeep.removeEventListener('endCall');
|
|
258
|
+
callKeep.removeEventListener('didPerformSetMutedCallAction');
|
|
259
|
+
callKeep.removeEventListener('didToggleHoldCallAction');
|
|
260
|
+
callKeep.removeEventListener('didActivateAudioSession');
|
|
261
|
+
callKeep.removeEventListener('didDeactivateAudioSession');
|
|
262
|
+
callKeep.removeEventListener('didResetProvider');
|
|
263
|
+
callKeep.removeEventListener('didDisplayIncomingCall');
|
|
158
264
|
};
|
|
159
265
|
}, [callKeep, dispatch]);
|
|
266
|
+
const displayName = call.roomName || 'Ethora';
|
|
267
|
+
const isRinging = call.direction === 'incoming' && call.phase === 'ringing-incoming';
|
|
268
|
+
const isLive = call.phase === 'connecting' || call.phase === 'in-call';
|
|
269
|
+
const isOutgoing = call.direction === 'outgoing';
|
|
270
|
+
const peerConnected = session.anchorAt !== null;
|
|
160
271
|
|
|
161
|
-
//
|
|
272
|
+
// Report the call to the system as its state changes.
|
|
162
273
|
(0, _react.useEffect)(() => {
|
|
163
|
-
if (!callKeep || !
|
|
274
|
+
if (!callKeep || !ready) {
|
|
164
275
|
return;
|
|
165
276
|
}
|
|
166
|
-
const
|
|
167
|
-
|
|
277
|
+
const release = () => {
|
|
278
|
+
if (!activeUuidRef.current) {
|
|
279
|
+
return;
|
|
280
|
+
}
|
|
281
|
+
try {
|
|
282
|
+
callKeep.endCall(activeUuidRef.current);
|
|
283
|
+
} catch {
|
|
284
|
+
// Screen already gone.
|
|
285
|
+
}
|
|
286
|
+
activeUuidRef.current = null;
|
|
287
|
+
answeredRef.current = false;
|
|
288
|
+
outgoingReportedRef.current = 'none';
|
|
289
|
+
};
|
|
290
|
+
if (call.phase === 'idle' || call.phase === 'error') {
|
|
291
|
+
release();
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
294
|
+
if (isRinging) {
|
|
295
|
+
if (activeUuidRef.current) {
|
|
296
|
+
return;
|
|
297
|
+
}
|
|
168
298
|
const uuid = toUuid(call.callId || call.roomJid || String(Date.now()));
|
|
169
299
|
activeUuidRef.current = uuid;
|
|
300
|
+
answeredRef.current = false;
|
|
301
|
+
// iOS: the system banner is the ring UI (Telegram-style); the in-app
|
|
302
|
+
// card would only cover the screen under it.
|
|
303
|
+
if (isIOS) {
|
|
304
|
+
(0, _callUiStore.setCallSystemRinging)(true);
|
|
305
|
+
}
|
|
170
306
|
try {
|
|
171
|
-
callKeep.displayIncomingCall(uuid,
|
|
307
|
+
callKeep.displayIncomingCall(uuid, displayName, displayName, 'generic', call.kind === 'video');
|
|
172
308
|
} catch {
|
|
173
309
|
activeUuidRef.current = null;
|
|
310
|
+
(0, _callUiStore.setCallSystemRinging)(false);
|
|
174
311
|
}
|
|
175
312
|
return;
|
|
176
313
|
}
|
|
177
314
|
|
|
178
|
-
//
|
|
179
|
-
//
|
|
180
|
-
if (
|
|
315
|
+
// iOS: an outgoing call is a CallKit call from the first ring, so it
|
|
316
|
+
// shows in the Dynamic Island even before the peer answers.
|
|
317
|
+
if (isIOS && isOutgoing && !activeUuidRef.current && callKeep.startCall) {
|
|
318
|
+
// Unique per call: CallKit refuses a UUID it has seen before, and
|
|
319
|
+
// the callId only arrives with the token.
|
|
320
|
+
const uuid = toUuid(`${call.roomJid || ''}|${call.startedAt || Date.now()}`);
|
|
321
|
+
activeUuidRef.current = uuid;
|
|
322
|
+
outgoingReportedRef.current = 'none';
|
|
323
|
+
trace('startCall', uuid);
|
|
181
324
|
try {
|
|
182
|
-
callKeep.
|
|
325
|
+
callKeep.startCall(uuid, displayName, displayName, 'generic', call.kind === 'video');
|
|
183
326
|
} catch {
|
|
184
|
-
|
|
327
|
+
activeUuidRef.current = null;
|
|
185
328
|
}
|
|
186
|
-
|
|
329
|
+
return;
|
|
330
|
+
}
|
|
331
|
+
const uuid = activeUuidRef.current;
|
|
332
|
+
if (!uuid) {
|
|
333
|
+
return;
|
|
334
|
+
}
|
|
335
|
+
if (isIOS && isOutgoing) {
|
|
336
|
+
if (peerConnected && outgoingReportedRef.current !== 'connected') {
|
|
337
|
+
outgoingReportedRef.current = 'connected';
|
|
338
|
+
callKeep.reportConnectedOutgoingCallWithUUID?.(uuid);
|
|
339
|
+
} else if (isLive && !peerConnected && outgoingReportedRef.current === 'none') {
|
|
340
|
+
outgoingReportedRef.current = 'connecting';
|
|
341
|
+
callKeep.reportConnectingOutgoingCallWithUUID?.(uuid);
|
|
342
|
+
}
|
|
343
|
+
return;
|
|
187
344
|
}
|
|
188
|
-
|
|
345
|
+
|
|
346
|
+
// Incoming, accepted with the in-app button: tell CallKit, or its
|
|
347
|
+
// screen keeps ringing on top of the call.
|
|
348
|
+
if (isIOS && isLive && !answeredRef.current) {
|
|
349
|
+
answeredRef.current = true;
|
|
189
350
|
try {
|
|
190
|
-
callKeep.
|
|
351
|
+
callKeep.answerIncomingCall?.(uuid);
|
|
191
352
|
} catch {
|
|
192
353
|
// noop
|
|
193
354
|
}
|
|
194
|
-
activeUuidRef.current = null;
|
|
195
355
|
}
|
|
196
|
-
}, [callKeep,
|
|
356
|
+
}, [callKeep, ready, isIOS, isRinging, isLive, isOutgoing, peerConnected, displayName, call.phase, call.callId, call.roomJid, call.startedAt, call.kind]);
|
|
197
357
|
|
|
198
|
-
//
|
|
358
|
+
// Keep the system mute button in step with ours.
|
|
359
|
+
(0, _react.useEffect)(() => {
|
|
360
|
+
const uuid = activeUuidRef.current;
|
|
361
|
+
if (!callKeep || !ready || !isIOS || !uuid || !isLive) {
|
|
362
|
+
return;
|
|
363
|
+
}
|
|
364
|
+
try {
|
|
365
|
+
callKeep.setMutedCall?.(uuid, !session.micOn);
|
|
366
|
+
} catch {
|
|
367
|
+
// noop
|
|
368
|
+
}
|
|
369
|
+
}, [callKeep, ready, isIOS, isLive, session.micOn]);
|
|
370
|
+
|
|
371
|
+
// Nothing to clean up on unmount beyond the active call: this hook
|
|
199
372
|
// lives for the lifetime of the provider.
|
|
200
373
|
(0, _react.useEffect)(() => () => {
|
|
201
374
|
if (callKeep && activeUuidRef.current) {
|
|
@@ -206,10 +379,6 @@ const useCallKeep = () => {
|
|
|
206
379
|
}
|
|
207
380
|
}
|
|
208
381
|
}, [callKeep]);
|
|
209
|
-
|
|
210
|
-
// iOS-only note kept as a runtime no-op so the import isn't unused when
|
|
211
|
-
// the platform check is tree-shaken in release builds.
|
|
212
|
-
void _reactNative.Platform.OS;
|
|
213
382
|
};
|
|
214
383
|
exports.useCallKeep = useCallKeep;
|
|
215
384
|
//# sourceMappingURL=useCallKeep.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_reactRedux","_roomStore","_callSlice","_callTokenStanza","cachedCallKeep","loadCallKeep","undefined","NativeModules","RNCallKeep","mod","default","exports","toUuid","seed","hash","bytes","i","ch","charCodeAt","Math","max","length","imul","push","hex","map","b","toString","padStart","join","slice","parseInt","useCallKeep","dispatch","useDispatch","call","useSelector","state","callKeep","useMemo","activeUuidRef","useRef","readyRef","useEffect","cancelled","setup","ios","appName","supportsVideo","android","alertTitle","alertDescription","cancelButton","okButton","additionalPermissions","foregroundService","channelId","channelName","notificationTitle","setAvailable","current","onAnswer","backToForeground","store","getState","direction","acceptIncomingCall","onEnd","snapshot","phase","sendCallStateSignal","declineIncomingCall","addEventListener","removeEventListener","isRinging","uuid","callId","roomJid","String","Date","now","displayIncomingCall","peerXmppUsername","roomName","kind","endCall","Platform","OS"],"sourceRoot":"../../../../src","sources":["components/VideoCalls/useCallKeep.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_reactRedux","_roomStore","_callSlice","_callTokenStanza","_callActions","_callSessionController","_livekitRuntime","_callUiStore","cachedCallKeep","loadCallKeep","undefined","NativeModules","RNCallKeep","mod","default","exports","toUuid","seed","hash","bytes","i","ch","charCodeAt","Math","max","length","imul","push","hex","map","b","toString","padStart","join","slice","parseInt","trace","args","__DEV__","console","log","useCallKeep","dispatch","useDispatch","call","useSelector","state","session","useCallSession","callKeep","useMemo","ready","setReady","useState","activeUuidRef","useRef","answeredRef","outgoingReportedRef","isIOS","Platform","OS","useEffect","cancelled","setup","ios","appName","supportsVideo","maximumCallGroups","maximumCallsPerCallGroup","includesCallsInRecents","android","alertTitle","alertDescription","cancelButton","okButton","additionalPermissions","foregroundService","channelId","channelName","notificationTitle","setAvailable","error","onAnswer","current","backToForeground","store","getState","direction","phase","acceptIncomingCall","onEnd","snapshot","sendCallStateSignal","declineIncomingCall","terminateActiveCall","onMuted","muted","setCallMicEnabled","onHold","hold","onAudioActivated","loadLiveKit","RTCAudioSession","audioSessionDidActivate","onAudioDeactivated","audioSessionDidDeactivate","addEventListener","onReset","onDisplayed","errorCode","setCallSystemRinging","removeEventListener","displayName","roomName","isRinging","isLive","isOutgoing","peerConnected","anchorAt","release","endCall","uuid","callId","roomJid","String","Date","now","displayIncomingCall","kind","startCall","startedAt","reportConnectedOutgoingCallWithUUID","reportConnectingOutgoingCallWithUUID","answerIncomingCall","setMutedCall","micOn"],"sourceRoot":"../../../../src","sources":["components/VideoCalls/useCallKeep.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useOngoingCallNotification = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _reactRedux = require("react-redux");
|
|
9
|
+
var _useT = require("../../i18n/useT");
|
|
10
|
+
var _callActions = require("./callActions");
|
|
11
|
+
var _callSessionController = require("./callSessionController");
|
|
12
|
+
var _callUiStore = require("./callUiStore");
|
|
13
|
+
/**
|
|
14
|
+
* Drives the host's ongoing-call notification (`videoCalls.
|
|
15
|
+
* ongoingCallNotification`, an Android foreground-service notification in
|
|
16
|
+
* the Ethora app): shown while a call is connecting or connected, updated
|
|
17
|
+
* when the mic, camera or timer anchor change, and its buttons act on the
|
|
18
|
+
* call like the in-app ones.
|
|
19
|
+
*/
|
|
20
|
+
const useOngoingCallNotification = adapter => {
|
|
21
|
+
const t = (0, _useT.useT)();
|
|
22
|
+
const call = (0, _reactRedux.useSelector)(state => state.call);
|
|
23
|
+
const session = (0, _callSessionController.useCallSession)();
|
|
24
|
+
const shownRef = (0, _react.useRef)(false);
|
|
25
|
+
const live = !!call.token && (call.phase === 'connecting' || call.phase === 'in-call');
|
|
26
|
+
(0, _react.useEffect)(() => {
|
|
27
|
+
if (!adapter) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
return adapter.addActionListener(action => {
|
|
31
|
+
switch (action) {
|
|
32
|
+
case 'hangUp':
|
|
33
|
+
(0, _callActions.terminateActiveCall)('ended');
|
|
34
|
+
break;
|
|
35
|
+
case 'toggleMic':
|
|
36
|
+
void (0, _callSessionController.toggleCallMic)();
|
|
37
|
+
break;
|
|
38
|
+
case 'toggleCamera':
|
|
39
|
+
void (0, _callSessionController.toggleCallCamera)();
|
|
40
|
+
break;
|
|
41
|
+
case 'open':
|
|
42
|
+
// Back from the notification: show the call, not the strip.
|
|
43
|
+
(0, _callUiStore.setCallMinimized)(false);
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
}, [adapter]);
|
|
48
|
+
const isVideo = call.kind === 'video';
|
|
49
|
+
const connectedAt = session.anchorAt;
|
|
50
|
+
const text = connectedAt !== null ? isVideo ? t('call.notification.ongoingVideo') : t('call.notification.ongoing') : !session.connected ? t('call.status.connecting') : t('call.status.waitingForPeer');
|
|
51
|
+
(0, _react.useEffect)(() => {
|
|
52
|
+
if (!adapter) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
if (!live) {
|
|
56
|
+
if (shownRef.current) {
|
|
57
|
+
shownRef.current = false;
|
|
58
|
+
adapter.hide();
|
|
59
|
+
}
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
shownRef.current = true;
|
|
63
|
+
adapter.show({
|
|
64
|
+
callId: call.callId || call.roomJid || 'call',
|
|
65
|
+
title: call.roomName || t('call.unknownCaller'),
|
|
66
|
+
text,
|
|
67
|
+
kind: call.kind,
|
|
68
|
+
connectedAt,
|
|
69
|
+
micOn: session.micOn,
|
|
70
|
+
cameraOn: isVideo && session.cameraOn,
|
|
71
|
+
labels: {
|
|
72
|
+
hangUp: t('call.action.hangUp'),
|
|
73
|
+
mute: t('call.notification.mute'),
|
|
74
|
+
unmute: t('call.notification.unmute'),
|
|
75
|
+
cameraOn: t('call.notification.cameraOn'),
|
|
76
|
+
cameraOff: t('call.notification.cameraOff')
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
}, [adapter, live, t, text, connectedAt, isVideo, call.callId, call.roomJid, call.roomName, call.kind, session.micOn, session.cameraOn]);
|
|
80
|
+
(0, _react.useEffect)(() => () => {
|
|
81
|
+
if (adapter && shownRef.current) {
|
|
82
|
+
shownRef.current = false;
|
|
83
|
+
adapter.hide();
|
|
84
|
+
}
|
|
85
|
+
}, [adapter]);
|
|
86
|
+
};
|
|
87
|
+
exports.useOngoingCallNotification = useOngoingCallNotification;
|
|
88
|
+
//# sourceMappingURL=useOngoingCallNotification.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactRedux","_useT","_callActions","_callSessionController","_callUiStore","useOngoingCallNotification","adapter","t","useT","call","useSelector","state","session","useCallSession","shownRef","useRef","live","token","phase","useEffect","addActionListener","action","terminateActiveCall","toggleCallMic","toggleCallCamera","setCallMinimized","isVideo","kind","connectedAt","anchorAt","text","connected","current","hide","show","callId","roomJid","title","roomName","micOn","cameraOn","labels","hangUp","mute","unmute","cameraOff","exports"],"sourceRoot":"../../../../src","sources":["components/VideoCalls/useOngoingCallNotification.ts"],"mappings":"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","ignoreList":[]}
|