@stream-io/video-react-native-sdk 1.40.1 → 1.40.2
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 +18 -2
- package/android/src/main/java/com/streamvideo/reactnative/audio/AudioDeviceManager.kt +45 -16
- package/android/src/main/java/com/streamvideo/reactnative/callmanager/StreamInCallManagerModule.kt +12 -0
- package/dist/commonjs/components/Participant/ParticipantView/VideoRenderer/TrackSubscriber.js +1 -1
- package/dist/commonjs/components/Participant/ParticipantView/VideoRenderer/TrackSubscriber.js.map +1 -1
- package/dist/commonjs/hooks/useAndroidKeepCallAliveEffect.js +36 -4
- package/dist/commonjs/hooks/useAndroidKeepCallAliveEffect.js.map +1 -1
- package/dist/commonjs/modules/call-manager/CallManager.js +133 -1
- package/dist/commonjs/modules/call-manager/CallManager.js.map +1 -1
- package/dist/commonjs/utils/internal/callingx/callingx.js +37 -0
- package/dist/commonjs/utils/internal/callingx/callingx.js.map +1 -1
- package/dist/commonjs/utils/internal/registerSDKGlobals.js +34 -0
- package/dist/commonjs/utils/internal/registerSDKGlobals.js.map +1 -1
- package/dist/commonjs/utils/push/android.js +101 -103
- package/dist/commonjs/utils/push/android.js.map +1 -1
- package/dist/commonjs/utils/push/libs/callingx.js +3 -0
- package/dist/commonjs/utils/push/libs/callingx.js.map +1 -1
- package/dist/commonjs/version.js +1 -1
- package/dist/module/components/Participant/ParticipantView/VideoRenderer/TrackSubscriber.js +2 -2
- package/dist/module/components/Participant/ParticipantView/VideoRenderer/TrackSubscriber.js.map +1 -1
- package/dist/module/hooks/useAndroidKeepCallAliveEffect.js +36 -4
- package/dist/module/hooks/useAndroidKeepCallAliveEffect.js.map +1 -1
- package/dist/module/modules/call-manager/CallManager.js +133 -1
- package/dist/module/modules/call-manager/CallManager.js.map +1 -1
- package/dist/module/utils/internal/callingx/callingx.js +38 -1
- package/dist/module/utils/internal/callingx/callingx.js.map +1 -1
- package/dist/module/utils/internal/registerSDKGlobals.js +34 -0
- package/dist/module/utils/internal/registerSDKGlobals.js.map +1 -1
- package/dist/module/utils/push/android.js +101 -103
- package/dist/module/utils/push/android.js.map +1 -1
- package/dist/module/utils/push/libs/callingx.js +3 -0
- package/dist/module/utils/push/libs/callingx.js.map +1 -1
- package/dist/module/version.js +1 -1
- package/dist/typescript/components/Participant/ParticipantView/VideoRenderer/TrackSubscriber.d.ts.map +1 -1
- package/dist/typescript/hooks/useAndroidKeepCallAliveEffect.d.ts.map +1 -1
- package/dist/typescript/modules/call-manager/CallManager.d.ts.map +1 -1
- package/dist/typescript/utils/StreamVideoRN/types.d.ts +5 -0
- package/dist/typescript/utils/StreamVideoRN/types.d.ts.map +1 -1
- package/dist/typescript/utils/internal/callingx/callingx.d.ts.map +1 -1
- package/dist/typescript/utils/internal/registerSDKGlobals.d.ts.map +1 -1
- package/dist/typescript/utils/push/android.d.ts.map +1 -1
- package/dist/typescript/utils/push/libs/callingx.d.ts.map +1 -1
- package/dist/typescript/version.d.ts +1 -1
- package/expo-config-plugin/dist/index.js +0 -2
- package/package.json +6 -10
- package/src/components/Participant/ParticipantView/VideoRenderer/TrackSubscriber.tsx +3 -2
- package/src/hooks/useAndroidKeepCallAliveEffect.ts +54 -10
- package/src/modules/call-manager/CallManager.ts +162 -1
- package/src/modules/call-manager/native-module.d.ts +8 -0
- package/src/utils/StreamVideoRN/types.ts +5 -0
- package/src/utils/internal/callingx/callingx.ts +44 -1
- package/src/utils/internal/registerSDKGlobals.ts +38 -0
- package/src/utils/push/android.ts +141 -140
- package/src/utils/push/libs/callingx.ts +4 -0
- package/src/version.ts +1 -1
- package/expo-config-plugin/dist/withBuildProperties.js +0 -13
|
@@ -33,6 +33,25 @@ const shouldBypassForCallKit = ({
|
|
|
33
33
|
const bypass = CallingxModule.isSetup && (isRingingTypeCall || CallingxModule.isOngoingCallsEnabled);
|
|
34
34
|
return bypass;
|
|
35
35
|
};
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* On Android, when the call is registered with the Telecom stack (via CallingX),
|
|
39
|
+
* routing/focus/mode must be owned by Telecom (per Android guidance we must not use
|
|
40
|
+
* AudioManager.setCommunicationDevice / startBluetoothSco). Unlike iOS, we do NOT skip
|
|
41
|
+
* StreamInCallManager entirely — Telecom provides no proximity/keep-screen-on — instead we
|
|
42
|
+
* run it in "telecom-managed" mode where it only keeps proximity/keep-screen-on/mute.
|
|
43
|
+
*/
|
|
44
|
+
const isAndroidTelecomManaged = ({
|
|
45
|
+
isRingingTypeCall
|
|
46
|
+
}) => {
|
|
47
|
+
if (_reactNative.Platform.OS !== 'android') {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
if (!CallingxModule) {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
return CallingxModule.isSetup && CallingxModule.isTelecomBacked && (isRingingTypeCall || CallingxModule.isOngoingCallsEnabled);
|
|
54
|
+
};
|
|
36
55
|
const streamRNVideoSDKGlobals = {
|
|
37
56
|
callingX: {
|
|
38
57
|
joinCall: _callingx2.joinCallingxCall,
|
|
@@ -51,6 +70,19 @@ const streamRNVideoSDKGlobals = {
|
|
|
51
70
|
CallingxModule?.setDefaultAudioDeviceEndpointType(defaultDevice);
|
|
52
71
|
return;
|
|
53
72
|
}
|
|
73
|
+
if (isAndroidTelecomManaged({
|
|
74
|
+
isRingingTypeCall
|
|
75
|
+
})) {
|
|
76
|
+
// Telecom owns routing; forward the sticky preference to callingx and run the
|
|
77
|
+
// in-call manager in telecom-managed mode (proximity/keep-screen-on only).
|
|
78
|
+
CallingxModule?.setDefaultAudioDeviceEndpointType(defaultDevice);
|
|
79
|
+
StreamInCallManagerNativeModule.setTelecomManagedMode(true);
|
|
80
|
+
StreamInCallManagerNativeModule.setup();
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
if (_reactNative.Platform.OS === 'android') {
|
|
84
|
+
StreamInCallManagerNativeModule.setTelecomManagedMode(false);
|
|
85
|
+
}
|
|
54
86
|
StreamInCallManagerNativeModule.setDefaultAudioDeviceEndpointType(defaultDevice);
|
|
55
87
|
StreamInCallManagerNativeModule.setup();
|
|
56
88
|
},
|
|
@@ -62,6 +94,8 @@ const streamRNVideoSDKGlobals = {
|
|
|
62
94
|
})) {
|
|
63
95
|
return;
|
|
64
96
|
}
|
|
97
|
+
// Android telecom-managed calls still start (for proximity/keep-screen-on);
|
|
98
|
+
// the native side skips routing/focus internally.
|
|
65
99
|
StreamInCallManagerNativeModule.start();
|
|
66
100
|
},
|
|
67
101
|
stop: ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_reactNativeWebrtc","_callingx","_callingx2","StreamInCallManagerNativeModule","NativeModules","StreamInCallManager","StreamVideoReactNativeModule","StreamVideoReactNative","CallingxModule","getCallingxLibIfAvailable","shouldBypassForCallKit","isRingingTypeCall","Platform","OS","bypass","isSetup","isOngoingCallsEnabled","streamRNVideoSDKGlobals","callingX","joinCall","joinCallingxCall","endCall","endCallingxCall","registerOutgoingCall","callManager","setup","defaultDevice","setDefaultAudioDeviceEndpointType","start","stop","setMutedRecordingPrepared","enabled","AudioDeviceModule","setMuteMode","AudioEngineMuteMode","VoiceProcessing","catch","setRecordingAlwaysPreparedMode","permissions","check","permission","nativeAndroidPermission","PermissionsAndroid","PERMISSIONS","CAMERA","RECORD_AUDIO","Boolean","checkPermission","nativeEvents","speechActivity","subscribe","cb","subscription","audioDeviceModuleEvents","addSpeechActivityListener","data","isSoundDetected","event","remove","registerSDKGlobals","globalThis","streamRNVideoSDK"],"sourceRoot":"../../../../src","sources":["utils/internal/registerSDKGlobals.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AAKA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AAMA,MAAMI,+BAA+B,GAAGC,0BAAa,CAACC,mBAAmB;AACzE,MAAMC,4BAA4B,GAAGF,0BAAa,CAACG,sBAElD;AAED,MAAMC,cAAc,GAAG,IAAAC,mCAAyB,EAAC,CAAC;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,sBAAsB,GAAGA,CAAC;EAC9BC;AAGF,CAAC,KAAc;EACb,IAAIC,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;IACzB,OAAO,KAAK;EACd;EACA,IAAI,CAACL,cAAc,EAAE;IACnB,OAAO,KAAK;EACd;EACA,MAAMM,MAAM,GACVN,cAAc,CAACO,OAAO,KACrBJ,iBAAiB,IAAIH,cAAc,CAACQ,qBAAqB,CAAC;EAC7D,OAAOF,MAAM;AACf,CAAC;AAED,MAAMG,uBAAgD,GAAG;EACvDC,QAAQ,EAAE;IACRC,QAAQ,EAAEC,2BAAgB;IAC1BC,OAAO,EAAEC,0BAAe;IACxBC,oBAAoB,EAAEA;EACxB,CAAC;EACDC,WAAW,EAAE;IACXC,KAAK,EAAEA,CAAC;MAAEC,aAAa;
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_reactNativeWebrtc","_callingx","_callingx2","StreamInCallManagerNativeModule","NativeModules","StreamInCallManager","StreamVideoReactNativeModule","StreamVideoReactNative","CallingxModule","getCallingxLibIfAvailable","shouldBypassForCallKit","isRingingTypeCall","Platform","OS","bypass","isSetup","isOngoingCallsEnabled","isAndroidTelecomManaged","isTelecomBacked","streamRNVideoSDKGlobals","callingX","joinCall","joinCallingxCall","endCall","endCallingxCall","registerOutgoingCall","callManager","setup","defaultDevice","setDefaultAudioDeviceEndpointType","setTelecomManagedMode","start","stop","setMutedRecordingPrepared","enabled","AudioDeviceModule","setMuteMode","AudioEngineMuteMode","VoiceProcessing","catch","setRecordingAlwaysPreparedMode","permissions","check","permission","nativeAndroidPermission","PermissionsAndroid","PERMISSIONS","CAMERA","RECORD_AUDIO","Boolean","checkPermission","nativeEvents","speechActivity","subscribe","cb","subscription","audioDeviceModuleEvents","addSpeechActivityListener","data","isSoundDetected","event","remove","registerSDKGlobals","globalThis","streamRNVideoSDK"],"sourceRoot":"../../../../src","sources":["utils/internal/registerSDKGlobals.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -102,116 +102,114 @@ const firebaseDataHandler = async data => {
|
|
|
102
102
|
}
|
|
103
103
|
const asForegroundService = (0, _utils.canListenToWS)();
|
|
104
104
|
if (asForegroundService) {
|
|
105
|
-
// Listen to call events from WS
|
|
106
|
-
//
|
|
107
|
-
|
|
108
|
-
await callingx.
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
});
|
|
148
|
-
unsubscribeFunctions.forEach(fn => fn());
|
|
149
|
-
finishBackgroundTask();
|
|
150
|
-
return;
|
|
151
|
-
}
|
|
152
|
-
const {
|
|
153
|
-
mustEndCall: mustEndCallFromEvent,
|
|
154
|
-
endCallReason: endCallReasonFromEvent
|
|
155
|
-
} = (0, _utils.shouldCallBeClosed)(callFromPush, data);
|
|
156
|
-
if (mustEndCallFromEvent) {
|
|
157
|
-
logger.debug(`Closing fg service from event callCid: ${call_cid} canListenToWS: ${_canListenToWS} shouldCallBeClosed`, {
|
|
158
|
-
event
|
|
159
|
-
});
|
|
160
|
-
unsubscribeFunctions.forEach(fn => fn());
|
|
161
|
-
callingx.endCallWithReason(call_cid, endCallReasonFromEvent);
|
|
162
|
-
resolve(undefined);
|
|
163
|
-
}
|
|
164
|
-
});
|
|
165
|
-
|
|
166
|
-
// check if service needs to be closed if call was left
|
|
167
|
-
const stateSubscription = callFromPush.state.callingState$.subscribe(callingState => {
|
|
168
|
-
if (callingState === _videoClient.CallingState.IDLE || callingState === _videoClient.CallingState.LEFT) {
|
|
169
|
-
logger.debug(`Closing fg service from callingState callCid: ${call_cid} callingState: ${callingState}`);
|
|
170
|
-
unsubscribeFunctions.forEach(fn => fn());
|
|
171
|
-
callingx.log(`Ending call with callCid: ${call_cid} callingState: ${callingState}`, 'debug');
|
|
172
|
-
resolve(undefined);
|
|
173
|
-
}
|
|
105
|
+
// Listen to call events from WS with headless task, bound to call service.
|
|
106
|
+
// By this moment the call service is already running, so we can acquire the background task.
|
|
107
|
+
const backgroundTaskOwner = `push:${call_cid}`;
|
|
108
|
+
await callingx.acquireBackgroundTask(backgroundTaskOwner).catch(e => {
|
|
109
|
+
logger.error(`Failed to acquire background task for callCid: ${call_cid} error: ${e}`);
|
|
110
|
+
});
|
|
111
|
+
const finishBackgroundTask = () => {
|
|
112
|
+
callingx.log(`Finishing background task for callCid: ${call_cid}`, 'debug');
|
|
113
|
+
callingx.releaseBackgroundTask(backgroundTaskOwner);
|
|
114
|
+
};
|
|
115
|
+
(async () => {
|
|
116
|
+
try {
|
|
117
|
+
const _client = await pushConfig.createStreamVideoClient();
|
|
118
|
+
if (!_client) {
|
|
119
|
+
logger.debug(`Closing fg service as there is no client to create from push config`);
|
|
120
|
+
finishBackgroundTask();
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
const callFromPush = await _client.onRingingCall(call_cid);
|
|
124
|
+
const {
|
|
125
|
+
mustEndCall,
|
|
126
|
+
endCallReason
|
|
127
|
+
} = (0, _utils.shouldCallBeClosed)(callFromPush, data);
|
|
128
|
+
if (mustEndCall) {
|
|
129
|
+
logger.debug(`Closing fg service callCid: ${call_cid} endCallReason: ${endCallReason}`);
|
|
130
|
+
callingx.log(`Ending call with callCid: ${call_cid} endCallReason: ${endCallReason}`, 'debug');
|
|
131
|
+
callingx.endCallWithReason(call_cid, endCallReason);
|
|
132
|
+
callFromPush.leave({
|
|
133
|
+
reject: false
|
|
134
|
+
}).catch(error => {
|
|
135
|
+
logger.error(`Failed to leave already-ended ringing call ${call_cid}: ${error}`);
|
|
136
|
+
});
|
|
137
|
+
finishBackgroundTask();
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
const unsubscribeFunctions = [];
|
|
141
|
+
// check if service needs to be closed if accept/decline event was done on another device
|
|
142
|
+
const unsubscribe = callFromPush.on('all', event => {
|
|
143
|
+
const _canListenToWS = (0, _utils.canListenToWS)();
|
|
144
|
+
if (!_canListenToWS) {
|
|
145
|
+
logger.debug(`Closing fg service from event callCid: ${call_cid} canListenToWS: ${_canListenToWS}`, {
|
|
146
|
+
event
|
|
174
147
|
});
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
} finally {
|
|
187
|
-
callingx.log(`Ending call with callCid: ${call_cid} callId: ${callId}`, 'debug');
|
|
188
|
-
resolve(undefined);
|
|
189
|
-
}
|
|
148
|
+
unsubscribeFunctions.forEach(fn => fn());
|
|
149
|
+
finishBackgroundTask();
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
const {
|
|
153
|
+
mustEndCall: mustEndCallFromEvent,
|
|
154
|
+
endCallReason: endCallReasonFromEvent
|
|
155
|
+
} = (0, _utils.shouldCallBeClosed)(callFromPush, data);
|
|
156
|
+
if (mustEndCallFromEvent) {
|
|
157
|
+
logger.debug(`Closing fg service from event callCid: ${call_cid} canListenToWS: ${_canListenToWS} shouldCallBeClosed`, {
|
|
158
|
+
event
|
|
190
159
|
});
|
|
160
|
+
unsubscribeFunctions.forEach(fn => fn());
|
|
161
|
+
callingx.endCallWithReason(call_cid, endCallReasonFromEvent);
|
|
162
|
+
finishBackgroundTask();
|
|
163
|
+
}
|
|
164
|
+
});
|
|
191
165
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
166
|
+
// check if service needs to be closed if call was left
|
|
167
|
+
const stateSubscription = callFromPush.state.callingState$.subscribe(callingState => {
|
|
168
|
+
if (callingState === _videoClient.CallingState.IDLE || callingState === _videoClient.CallingState.LEFT) {
|
|
169
|
+
logger.debug(`Closing fg service from callingState callCid: ${call_cid} callingState: ${callingState}`);
|
|
170
|
+
unsubscribeFunctions.forEach(fn => fn());
|
|
171
|
+
callingx.log(`Ending call with callCid: ${call_cid} callingState: ${callingState}`, 'debug');
|
|
172
|
+
finishBackgroundTask();
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
const endCallSubscription = callingx.addEventListener('endCall', async ({
|
|
176
|
+
callId
|
|
177
|
+
}) => {
|
|
178
|
+
unsubscribeFunctions.forEach(fn => fn());
|
|
179
|
+
try {
|
|
180
|
+
await callFromPush.leave({
|
|
181
|
+
reject: callFromPush.state.callingState === _videoClient.CallingState.RINGING,
|
|
182
|
+
reason: 'decline'
|
|
201
183
|
});
|
|
202
|
-
unsubscribeFunctions.push(unsubscribe);
|
|
203
|
-
unsubscribeFunctions.push(() => stateSubscription.unsubscribe());
|
|
204
|
-
unsubscribeFunctions.push(() => endCallSubscription.remove());
|
|
205
|
-
unsubscribeFunctions.push(() => appStateSubscription.remove());
|
|
206
|
-
_constants.pushUnsubscriptionCallbacks.get(call_cid)?.forEach(cb => cb());
|
|
207
|
-
_constants.pushUnsubscriptionCallbacks.set(call_cid, unsubscribeFunctions);
|
|
208
184
|
} catch (error) {
|
|
209
|
-
|
|
185
|
+
logger.error(`Failed to leave call with callCid: ${call_cid} error: ${error}`);
|
|
186
|
+
} finally {
|
|
187
|
+
callingx.log(`Ending call with callCid: ${call_cid} callId: ${callId}`, 'debug');
|
|
210
188
|
finishBackgroundTask();
|
|
211
189
|
}
|
|
212
|
-
})
|
|
213
|
-
|
|
214
|
-
|
|
190
|
+
});
|
|
191
|
+
|
|
192
|
+
//stop background task when app comes to foreground
|
|
193
|
+
const appStateSubscription = _reactNative.AppState.addEventListener('change', nextAppState => {
|
|
194
|
+
const _canListenToWS = (0, _utils.canListenToWS)();
|
|
195
|
+
callingx.log(`AppState changed to: ${nextAppState} for callCid: ${call_cid} canListenToWS: ${_canListenToWS}`, 'debug');
|
|
196
|
+
if (!_canListenToWS) {
|
|
197
|
+
unsubscribeFunctions.forEach(fn => fn());
|
|
198
|
+
finishBackgroundTask();
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
unsubscribeFunctions.push(unsubscribe);
|
|
203
|
+
unsubscribeFunctions.push(() => stateSubscription.unsubscribe());
|
|
204
|
+
unsubscribeFunctions.push(() => endCallSubscription.remove());
|
|
205
|
+
unsubscribeFunctions.push(() => appStateSubscription.remove());
|
|
206
|
+
_constants.pushUnsubscriptionCallbacks.get(call_cid)?.forEach(cb => cb());
|
|
207
|
+
_constants.pushUnsubscriptionCallbacks.set(call_cid, unsubscribeFunctions);
|
|
208
|
+
} catch (error) {
|
|
209
|
+
callingx.log(`Failed to start background task with callCid: ${call_cid} error: ${error}`, 'error');
|
|
210
|
+
finishBackgroundTask();
|
|
211
|
+
}
|
|
212
|
+
})();
|
|
215
213
|
}
|
|
216
214
|
if (asForegroundService) {
|
|
217
215
|
// no need to check if call has be closed as that will be handled by the fg service
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_videoClient","require","_reactNative","_libs","_constants","_utils","_pushLogoutCallback","_StreamVideoRN","_callingx","lastFirebaseToken","token","userId","initAndroidPushToken","client","pushConfig","setUnsubscribeListener","Platform","OS","android","pushProviderName","logger","videoLoggerSystem","getLogger","setDeviceToken","streamClient","_user","id","anonymous","debug","setPushLogoutCallback","removeDevice","err","warn","push_provider_name","addDevice","messaging","isExpo","getFirebaseMessagingLibNoThrow","getFirebaseMessagingLib","unsubscribe","onTokenRefresh","refreshedToken","getToken","firebaseDataHandler","data","StreamVideoRN","getConfig","push","sender","type","call_cid","callingx","getCallingxLib","createStreamVideoClient","stopService","asForegroundService","canListenToWS","
|
|
1
|
+
{"version":3,"names":["_videoClient","require","_reactNative","_libs","_constants","_utils","_pushLogoutCallback","_StreamVideoRN","_callingx","lastFirebaseToken","token","userId","initAndroidPushToken","client","pushConfig","setUnsubscribeListener","Platform","OS","android","pushProviderName","logger","videoLoggerSystem","getLogger","setDeviceToken","streamClient","_user","id","anonymous","debug","setPushLogoutCallback","removeDevice","err","warn","push_provider_name","addDevice","messaging","isExpo","getFirebaseMessagingLibNoThrow","getFirebaseMessagingLib","unsubscribe","onTokenRefresh","refreshedToken","getToken","firebaseDataHandler","data","StreamVideoRN","getConfig","push","sender","type","call_cid","callingx","getCallingxLib","createStreamVideoClient","stopService","asForegroundService","canListenToWS","backgroundTaskOwner","acquireBackgroundTask","catch","e","error","finishBackgroundTask","log","releaseBackgroundTask","_client","callFromPush","onRingingCall","mustEndCall","endCallReason","shouldCallBeClosed","endCallWithReason","leave","reject","unsubscribeFunctions","on","event","_canListenToWS","forEach","fn","mustEndCallFromEvent","endCallReasonFromEvent","stateSubscription","state","callingState$","subscribe","callingState","CallingState","IDLE","LEFT","endCallSubscription","addEventListener","callId","RINGING","reason","appStateSubscription","AppState","nextAppState","remove","pushUnsubscriptionCallbacks","get","cb","set","exports"],"sourceRoot":"../../../../src","sources":["utils/push/android.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -72,6 +72,9 @@ function extractCallingExpOptions(config) {
|
|
|
72
72
|
if (pushConfig.android.skipIncomingPushInForeground !== undefined) {
|
|
73
73
|
androidOptions.skipIncomingPushInForeground = pushConfig.android.skipIncomingPushInForeground;
|
|
74
74
|
}
|
|
75
|
+
if (pushConfig.android.defaultDeviceEndpointType !== undefined) {
|
|
76
|
+
androidOptions.defaultDeviceEndpointType = pushConfig.android.defaultDeviceEndpointType;
|
|
77
|
+
}
|
|
75
78
|
}
|
|
76
79
|
if (foregroundServiceConfig.android.channel) {
|
|
77
80
|
androidOptions.ongoingChannel = foregroundServiceConfig.android.channel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["callingx","require","CallingxModule","getCallingxLib","Error","getCallingxLibIfAvailable","undefined","extractCallingExpOptions","config","push","pushConfig","foregroundService","foregroundServiceConfig","callingExpOptions","ios","iosOptions","supportsVideo","sound","imageName","callsHistory","displayCallTimeout","enableOngoingCalls","skipIncomingPushInForeground","defaultDeviceEndpointType","Object","keys","length","androidOptions","android","incomingChannel","titleTransformer","notificationTexts","channel","ongoingChannel","shouldRejectCallWhenBusy"],"sourceRoot":"../../../../../src","sources":["utils/push/libs/callingx.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["callingx","require","CallingxModule","getCallingxLib","Error","getCallingxLibIfAvailable","undefined","extractCallingExpOptions","config","push","pushConfig","foregroundService","foregroundServiceConfig","callingExpOptions","ios","iosOptions","supportsVideo","sound","imageName","callsHistory","displayCallTimeout","enableOngoingCalls","skipIncomingPushInForeground","defaultDeviceEndpointType","Object","keys","length","androidOptions","android","incomingChannel","titleTransformer","notificationTexts","channel","ongoingChannel","shouldRejectCallWhenBusy"],"sourceRoot":"../../../../../src","sources":["utils/push/libs/callingx.ts"],"mappings":"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","ignoreList":[]}
|
package/dist/commonjs/version.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { forwardRef, useImperativeHandle, useEffect, useMemo } from 'react';
|
|
4
4
|
import { CallingState, DebounceType, hasScreenShare, hasVideo } from '@stream-io/video-client';
|
|
5
|
-
import { BehaviorSubject, combineLatest, distinctUntilChanged, distinctUntilKeyChanged,
|
|
5
|
+
import { BehaviorSubject, combineLatest, distinctUntilChanged, distinctUntilKeyChanged, filter, map } from 'rxjs';
|
|
6
6
|
/**
|
|
7
7
|
* This component is used to subscribe to the video + audio track of the participant in the following cases:
|
|
8
8
|
* 1. When the participant starts publishing the video track
|
|
@@ -40,7 +40,7 @@ const TrackSubscriber = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
40
40
|
});
|
|
41
41
|
call.trackSubscriptionManager.apply(debounceType);
|
|
42
42
|
};
|
|
43
|
-
const isPublishingTrack$ = call.state.participants$.pipe(map(ps => ps.find(p => p.sessionId === participantSessionId)),
|
|
43
|
+
const isPublishingTrack$ = call.state.participants$.pipe(map(ps => ps.find(p => p.sessionId === participantSessionId)), filter(p => !!p), distinctUntilKeyChanged('publishedTracks'), map(p => trackType === 'videoTrack' ? hasVideo(p) : hasScreenShare(p)), distinctUntilChanged());
|
|
44
44
|
const isJoinedState$ = call.state.callingState$.pipe(map(callingState => callingState === CallingState.JOINED));
|
|
45
45
|
const subscription = combineLatest([dimensions$, isPublishingTrack$, isJoinedState$]).subscribe(([dimension, isPublishing, isJoined]) => {
|
|
46
46
|
if (isJoined) {
|
package/dist/module/components/Participant/ParticipantView/VideoRenderer/TrackSubscriber.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["forwardRef","useImperativeHandle","useEffect","useMemo","CallingState","DebounceType","hasScreenShare","hasVideo","BehaviorSubject","combineLatest","distinctUntilChanged","distinctUntilKeyChanged","
|
|
1
|
+
{"version":3,"names":["forwardRef","useImperativeHandle","useEffect","useMemo","CallingState","DebounceType","hasScreenShare","hasVideo","BehaviorSubject","combineLatest","distinctUntilChanged","distinctUntilKeyChanged","filter","map","TrackSubscriber","props","ref","call","participantSessionId","trackType","isVisible","dimensions$","undefined","requestTrackWithDimensions","debounceType","dimension","width","height","state","updateParticipantTracks","trackSubscriptionManager","apply","isPublishingTrack$","participants$","pipe","ps","find","p","sessionId","isJoinedState$","callingState$","callingState","JOINED","subscription","subscribe","isPublishing","isJoined","MEDIUM","IMMEDIATE","unsubscribe","onLayoutUpdate","event","Math","trunc","nativeEvent","layout","next","displayName"],"sourceRoot":"../../../../../../src","sources":["components/Participant/ParticipantView/VideoRenderer/TrackSubscriber.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,mBAAmB,EAAEC,SAAS,EAAEC,OAAO,QAAQ,OAAO;AAE3E,SAEEC,YAAY,EACZC,YAAY,EACZC,cAAc,EACdC,QAAQ,QAIH,yBAAyB;AAChC,SACEC,eAAe,EACfC,aAAa,EACbC,oBAAoB,EACpBC,uBAAuB,EACvBC,MAAM,EACNC,GAAG,QACE,MAAM;AAYb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,eAAe,gBAAGd,UAAU,CAChC,CAACe,KAAK,EAAEC,GAAG,KAAK;EACd,MAAM;IAAEC,IAAI;IAAEC,oBAAoB;IAAEC,SAAS;IAAEC;EAAU,CAAC,GAAGL,KAAK;EAClE,MAAMM,WAAW,GAAGlB,OAAO,CAAC,MAAM;IAChC,OAAO,IAAIK,eAAe,CACxBc,SACF,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAENpB,SAAS,CAAC,MAAM;IACd,MAAMqB,0BAA0B,GAAGA,CACjCC,YAA0B,EAC1BC,SAA+C,KAC5C;MACH,IAAIA,SAAS,KAAKA,SAAS,CAACC,KAAK,KAAK,CAAC,IAAID,SAAS,CAACE,MAAM,KAAK,CAAC,CAAC,EAAE;QAClE;QACA;QACA;QACA;QACAF,SAAS,GAAGH,SAAS;MACvB;MACAL,IAAI,CAACW,KAAK,CAACC,uBAAuB,CAACV,SAAS,EAAE;QAC5C,CAACD,oBAAoB,GAAG;UAAEO;QAAU;MACtC,CAAC,CAAC;MACFR,IAAI,CAACa,wBAAwB,CAACC,KAAK,CAACP,YAAY,CAAC;IACnD,CAAC;IACD,MAAMQ,kBAAkB,GAAGf,IAAI,CAACW,KAAK,CAACK,aAAa,CAACC,IAAI,CACtDrB,GAAG,CAAEsB,EAAE,IAAKA,EAAE,CAACC,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,SAAS,KAAKpB,oBAAoB,CAAC,CAAC,EACjEN,MAAM,CAAEyB,CAAC,IAAkC,CAAC,CAACA,CAAC,CAAC,EAC/C1B,uBAAuB,CAAC,iBAAiB,CAAC,EAC1CE,GAAG,CAAEwB,CAAC,IACJlB,SAAS,KAAK,YAAY,GAAGZ,QAAQ,CAAC8B,CAAC,CAAC,GAAG/B,cAAc,CAAC+B,CAAC,CAC7D,CAAC,EACD3B,oBAAoB,CAAC,CACvB,CAAC;IACD,MAAM6B,cAAc,GAAGtB,IAAI,CAACW,KAAK,CAACY,aAAa,CAACN,IAAI,CAClDrB,GAAG,CAAE4B,YAAY,IAAKA,YAAY,KAAKrC,YAAY,CAACsC,MAAM,CAC5D,CAAC;IAED,MAAMC,YAAY,GAAGlC,aAAa,CAAC,CACjCY,WAAW,EACXW,kBAAkB,EAClBO,cAAc,CACf,CAAC,CAACK,SAAS,CAAC,CAAC,CAACnB,SAAS,EAAEoB,YAAY,EAAEC,QAAQ,CAAC,KAAK;MACpD,IAAIA,QAAQ,EAAE;QACZ,IAAI,CAAC1B,SAAS,IAAI,CAACyB,YAAY,EAAE;UAC/BtB,0BAA0B,CAAClB,YAAY,CAAC0C,MAAM,EAAEzB,SAAS,CAAC;QAC5D,CAAC,MAAM,IAAIG,SAAS,EAAE;UACpBF,0BAA0B,CAAClB,YAAY,CAAC2C,SAAS,EAAEvB,SAAS,CAAC;QAC/D;MACF;IACF,CAAC,CAAC;IAEF,OAAO,MAAM;MACXkB,YAAY,CAACM,WAAW,CAAC,CAAC;IAC5B,CAAC;EACH,CAAC,EAAE,CAAChC,IAAI,EAAEC,oBAAoB,EAAEC,SAAS,EAAEC,SAAS,EAAEC,WAAW,CAAC,CAAC;EAEnEpB,mBAAmB,CACjBe,GAAG,EACH,OAAO;IACLkC,cAAc,EAAGC,KAAK,IAAK;MACzB,MAAM1B,SAAS,GAAG;QAChBC,KAAK,EAAE0B,IAAI,CAACC,KAAK,CAACF,KAAK,CAACG,WAAW,CAACC,MAAM,CAAC7B,KAAK,CAAC;QACjDC,MAAM,EAAEyB,IAAI,CAACC,KAAK,CAACF,KAAK,CAACG,WAAW,CAACC,MAAM,CAAC5B,MAAM;MACpD,CAAC;MACDN,WAAW,CAACmC,IAAI,CAAC/B,SAAS,CAAC;IAC7B;EACF,CAAC,CAAC,EACF,CAACJ,WAAW,CACd,CAAC;EAED,OAAO,IAAI;AACb,CACF,CAAC;AAEDP,eAAe,CAAC2C,WAAW,GAAG,iBAAiB;AAE/C,eAAe3C,eAAe","ignoreList":[]}
|
|
@@ -61,6 +61,7 @@ async function startForegroundService(call_cid) {
|
|
|
61
61
|
*/
|
|
62
62
|
export const useAndroidKeepCallAliveEffect = () => {
|
|
63
63
|
const foregroundServiceStartedRef = useRef(false);
|
|
64
|
+
const callingxKeepAliveOwnerRef = useRef(undefined);
|
|
64
65
|
const call = useCall();
|
|
65
66
|
keepCallAliveCallRef.current = call;
|
|
66
67
|
const activeCallCid = call?.cid;
|
|
@@ -76,12 +77,35 @@ export const useAndroidKeepCallAliveEffect = () => {
|
|
|
76
77
|
return undefined;
|
|
77
78
|
}
|
|
78
79
|
const callingx = getCallingxLibIfAvailable();
|
|
79
|
-
|
|
80
|
+
const isCallingxManaged = !!callingx?.isSetup && (isRingingCall || !isRingingCall && callingx?.isOngoingCallsEnabled);
|
|
81
|
+
const isCallEnded = callingState === CallingState.IDLE || callingState === CallingState.LEFT;
|
|
82
|
+
|
|
83
|
+
// Release the callingx keep-alive task when the call ends.
|
|
84
|
+
if (callingxKeepAliveOwnerRef.current && isCallEnded) {
|
|
85
|
+
const currentOwner = callingxKeepAliveOwnerRef.current;
|
|
86
|
+
callingxKeepAliveOwnerRef.current = undefined;
|
|
87
|
+
callingx?.releaseBackgroundTask(currentOwner).catch(() => {});
|
|
88
|
+
return undefined;
|
|
89
|
+
}
|
|
90
|
+
if (isCallingxManaged && callingx) {
|
|
91
|
+
// Mutual exclusion: never acquire the callingx task while the SDK's own keep-alive FGS is
|
|
92
|
+
// running — only one keep-alive mechanism should be active per call.
|
|
93
|
+
if (!callingxKeepAliveOwnerRef.current && !isCallEnded && !foregroundServiceStartedRef.current) {
|
|
94
|
+
const owner = `keepalive:${activeCallCid}`;
|
|
95
|
+
callingxKeepAliveOwnerRef.current = owner;
|
|
96
|
+
callingx.acquireBackgroundTask(owner).catch(e => {
|
|
97
|
+
if (callingxKeepAliveOwnerRef.current === owner) {
|
|
98
|
+
callingxKeepAliveOwnerRef.current = undefined;
|
|
99
|
+
}
|
|
100
|
+
videoLoggerSystem.getLogger('useAndroidKeepCallAliveEffect').warn('Failed to acquire callingx keep-alive background task', e);
|
|
101
|
+
});
|
|
102
|
+
}
|
|
80
103
|
return undefined;
|
|
81
104
|
}
|
|
82
105
|
|
|
83
|
-
//
|
|
84
|
-
|
|
106
|
+
// Start keep-alive FGS as soon as the call is joined — but only if the callingx
|
|
107
|
+
// keep-alive task isn't already holding the call alive.
|
|
108
|
+
if (shouldStartForegroundService && !callingxKeepAliveOwnerRef.current) {
|
|
85
109
|
const run = async () => {
|
|
86
110
|
if (foregroundServiceStartedRef.current) {
|
|
87
111
|
return;
|
|
@@ -103,7 +127,7 @@ export const useAndroidKeepCallAliveEffect = () => {
|
|
|
103
127
|
return () => {
|
|
104
128
|
sub.remove();
|
|
105
129
|
};
|
|
106
|
-
} else if (
|
|
130
|
+
} else if (isCallEnded) {
|
|
107
131
|
if (foregroundServiceStartedRef.current) {
|
|
108
132
|
keepCallAliveCallRef.current = undefined;
|
|
109
133
|
// stop foreground service when the call is not active
|
|
@@ -121,6 +145,14 @@ export const useAndroidKeepCallAliveEffect = () => {
|
|
|
121
145
|
stopForegroundServiceNoThrow();
|
|
122
146
|
foregroundServiceStartedRef.current = false;
|
|
123
147
|
}
|
|
148
|
+
// release the callingx keep-alive task if still held
|
|
149
|
+
if (callingxKeepAliveOwnerRef.current) {
|
|
150
|
+
const owner = callingxKeepAliveOwnerRef.current;
|
|
151
|
+
callingxKeepAliveOwnerRef.current = undefined;
|
|
152
|
+
getCallingxLibIfAvailable()?.releaseBackgroundTask(owner).catch(() => {
|
|
153
|
+
videoLoggerSystem.getLogger('useAndroidKeepCallAliveEffect').warn('Failed to release callingx keep-alive background task', owner);
|
|
154
|
+
});
|
|
155
|
+
}
|
|
124
156
|
};
|
|
125
157
|
}, []);
|
|
126
158
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCall","useCallStateHooks","useEffect","useRef","StreamVideoRN","AppState","NativeModules","PermissionsAndroid","Platform","CallingState","videoLoggerSystem","keepCallAliveCallRef","getCallingxLibIfAvailable","stopForegroundServiceNoThrow","logger","getLogger","StreamVideoReactNative","stopKeepCallAliveService","e","warn","startForegroundService","call_cid","isCallAliveConfigured","info","hasPostNotificationsPermission","Number","Version","check","PERMISSIONS","POST_NOTIFICATIONS","videoConfig","getConfig","foregroundServiceConfig","foregroundService","notificationTexts","android","channel","smallIconName","push","smallIcon","requestAnimationFrame","startKeepCallAliveService","id","name","title","body","useAndroidKeepCallAliveEffect","foregroundServiceStartedRef","call","current","activeCallCid","cid","useCallCallingState","callingState","isCallJoined","JOINED","isRingingCall","ringing","shouldStartForegroundService","OS","
|
|
1
|
+
{"version":3,"names":["useCall","useCallStateHooks","useEffect","useRef","StreamVideoRN","AppState","NativeModules","PermissionsAndroid","Platform","CallingState","videoLoggerSystem","keepCallAliveCallRef","getCallingxLibIfAvailable","stopForegroundServiceNoThrow","logger","getLogger","StreamVideoReactNative","stopKeepCallAliveService","e","warn","startForegroundService","call_cid","isCallAliveConfigured","info","hasPostNotificationsPermission","Number","Version","check","PERMISSIONS","POST_NOTIFICATIONS","videoConfig","getConfig","foregroundServiceConfig","foregroundService","notificationTexts","android","channel","smallIconName","push","smallIcon","requestAnimationFrame","startKeepCallAliveService","id","name","title","body","useAndroidKeepCallAliveEffect","foregroundServiceStartedRef","callingxKeepAliveOwnerRef","undefined","call","current","activeCallCid","cid","useCallCallingState","callingState","isCallJoined","JOINED","isRingingCall","ringing","shouldStartForegroundService","OS","callingx","isCallingxManaged","isSetup","isOngoingCallsEnabled","isCallEnded","IDLE","LEFT","currentOwner","releaseBackgroundTask","catch","owner","acquireBackgroundTask","run","currentState","sub","addEventListener","nextAppState","remove"],"sourceRoot":"../../../src","sources":["hooks/useAndroidKeepCallAliveEffect.ts"],"mappings":"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","ignoreList":[]}
|