@stream-io/video-react-native-sdk 1.44.0 → 2.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/CHANGELOG.md +26 -3
  2. package/android/src/main/java/com/streamvideo/reactnative/keepalive/StreamCallKeepAliveHeadlessService.kt +112 -26
  3. package/android/src/main/java/com/streamvideo/reactnative/util/CallAlivePermissionsHelper.kt +68 -37
  4. package/dist/commonjs/hooks/push/useCallingExpWithCallingStateEffect.js +12 -6
  5. package/dist/commonjs/hooks/push/useCallingExpWithCallingStateEffect.js.map +1 -1
  6. package/dist/commonjs/hooks/useAndroidKeepCallAliveEffect.js +38 -11
  7. package/dist/commonjs/hooks/useAndroidKeepCallAliveEffect.js.map +1 -1
  8. package/dist/commonjs/hooks/useLoopbackRecording.js +10 -127
  9. package/dist/commonjs/hooks/useLoopbackRecording.js.map +1 -1
  10. package/dist/commonjs/utils/StreamVideoRN/index.js +2 -0
  11. package/dist/commonjs/utils/StreamVideoRN/index.js.map +1 -1
  12. package/dist/commonjs/utils/internal/callingx/callingx.js +38 -56
  13. package/dist/commonjs/utils/internal/callingx/callingx.js.map +1 -1
  14. package/dist/commonjs/utils/keepCallAliveHeadlessTask.js +43 -4
  15. package/dist/commonjs/utils/keepCallAliveHeadlessTask.js.map +1 -1
  16. package/dist/commonjs/utils/push/android.js +7 -167
  17. package/dist/commonjs/utils/push/android.js.map +1 -1
  18. package/dist/commonjs/utils/push/internal/android.js +204 -0
  19. package/dist/commonjs/utils/push/internal/android.js.map +1 -0
  20. package/dist/commonjs/utils/push/libs/firebaseMessaging/index.js +9 -1
  21. package/dist/commonjs/utils/push/libs/firebaseMessaging/index.js.map +1 -1
  22. package/dist/commonjs/utils/push/libs/firebaseMessaging/lib.js +1 -1
  23. package/dist/commonjs/utils/push/libs/firebaseMessaging/lib.js.map +1 -1
  24. package/dist/commonjs/utils/push/setupAndroidPushEvents.js +25 -0
  25. package/dist/commonjs/utils/push/setupAndroidPushEvents.js.map +1 -0
  26. package/dist/commonjs/utils/push/setupCallingExpEvents.js +6 -2
  27. package/dist/commonjs/utils/push/setupCallingExpEvents.js.map +1 -1
  28. package/dist/commonjs/utils/push/setupIosVoipPushEvents.js +6 -7
  29. package/dist/commonjs/utils/push/setupIosVoipPushEvents.js.map +1 -1
  30. package/dist/commonjs/utils/push/utils.js.map +1 -1
  31. package/dist/commonjs/version.js +1 -1
  32. package/dist/commonjs/version.js.map +1 -1
  33. package/dist/module/hooks/push/useCallingExpWithCallingStateEffect.js +12 -6
  34. package/dist/module/hooks/push/useCallingExpWithCallingStateEffect.js.map +1 -1
  35. package/dist/module/hooks/useAndroidKeepCallAliveEffect.js +39 -12
  36. package/dist/module/hooks/useAndroidKeepCallAliveEffect.js.map +1 -1
  37. package/dist/module/hooks/useLoopbackRecording.js +10 -127
  38. package/dist/module/hooks/useLoopbackRecording.js.map +1 -1
  39. package/dist/module/utils/StreamVideoRN/index.js +2 -0
  40. package/dist/module/utils/StreamVideoRN/index.js.map +1 -1
  41. package/dist/module/utils/internal/callingx/callingx.js +38 -56
  42. package/dist/module/utils/internal/callingx/callingx.js.map +1 -1
  43. package/dist/module/utils/keepCallAliveHeadlessTask.js +41 -3
  44. package/dist/module/utils/keepCallAliveHeadlessTask.js.map +1 -1
  45. package/dist/module/utils/push/android.js +9 -169
  46. package/dist/module/utils/push/android.js.map +1 -1
  47. package/dist/module/utils/push/internal/android.js +200 -0
  48. package/dist/module/utils/push/internal/android.js.map +1 -0
  49. package/dist/module/utils/push/libs/firebaseMessaging/index.js +9 -1
  50. package/dist/module/utils/push/libs/firebaseMessaging/index.js.map +1 -1
  51. package/dist/module/utils/push/libs/firebaseMessaging/lib.js +1 -1
  52. package/dist/module/utils/push/libs/firebaseMessaging/lib.js.map +1 -1
  53. package/dist/module/utils/push/setupAndroidPushEvents.js +21 -0
  54. package/dist/module/utils/push/setupAndroidPushEvents.js.map +1 -0
  55. package/dist/module/utils/push/setupCallingExpEvents.js +6 -2
  56. package/dist/module/utils/push/setupCallingExpEvents.js.map +1 -1
  57. package/dist/module/utils/push/setupIosVoipPushEvents.js +6 -7
  58. package/dist/module/utils/push/setupIosVoipPushEvents.js.map +1 -1
  59. package/dist/module/utils/push/utils.js.map +1 -1
  60. package/dist/module/version.js +1 -1
  61. package/dist/module/version.js.map +1 -1
  62. package/dist/typescript/hooks/push/useCallingExpWithCallingStateEffect.d.ts.map +1 -1
  63. package/dist/typescript/hooks/useAndroidKeepCallAliveEffect.d.ts.map +1 -1
  64. package/dist/typescript/hooks/useLoopbackRecording.d.ts +12 -69
  65. package/dist/typescript/hooks/useLoopbackRecording.d.ts.map +1 -1
  66. package/dist/typescript/utils/StreamVideoRN/index.d.ts.map +1 -1
  67. package/dist/typescript/utils/StreamVideoRN/types.d.ts +1 -2
  68. package/dist/typescript/utils/StreamVideoRN/types.d.ts.map +1 -1
  69. package/dist/typescript/utils/internal/callingx/callingx.d.ts.map +1 -1
  70. package/dist/typescript/utils/keepCallAliveHeadlessTask.d.ts +9 -0
  71. package/dist/typescript/utils/keepCallAliveHeadlessTask.d.ts.map +1 -1
  72. package/dist/typescript/utils/push/android.d.ts +3 -4
  73. package/dist/typescript/utils/push/android.d.ts.map +1 -1
  74. package/dist/typescript/utils/push/internal/android.d.ts +8 -0
  75. package/dist/typescript/utils/push/internal/android.d.ts.map +1 -0
  76. package/dist/typescript/utils/push/libs/firebaseMessaging/index.d.ts +6 -4
  77. package/dist/typescript/utils/push/libs/firebaseMessaging/index.d.ts.map +1 -1
  78. package/dist/typescript/utils/push/libs/firebaseMessaging/lib.d.ts +2 -2
  79. package/dist/typescript/utils/push/libs/firebaseMessaging/lib.d.ts.map +1 -1
  80. package/dist/typescript/utils/push/setupAndroidPushEvents.d.ts +3 -0
  81. package/dist/typescript/utils/push/setupAndroidPushEvents.d.ts.map +1 -0
  82. package/dist/typescript/utils/push/setupCallingExpEvents.d.ts.map +1 -1
  83. package/dist/typescript/utils/push/setupIosVoipPushEvents.d.ts.map +1 -1
  84. package/dist/typescript/utils/push/utils.d.ts +2 -2
  85. package/dist/typescript/utils/push/utils.d.ts.map +1 -1
  86. package/dist/typescript/version.d.ts +1 -1
  87. package/dist/typescript/version.d.ts.map +1 -1
  88. package/expo-config-plugin/dist/withAndroidPermissions.js +1 -1
  89. package/ios/TracksRecorder/RecorderVideoSink.swift +92 -5
  90. package/package.json +4 -4
  91. package/src/hooks/push/useCallingExpWithCallingStateEffect.ts +25 -11
  92. package/src/hooks/useAndroidKeepCallAliveEffect.ts +59 -21
  93. package/src/hooks/useLoopbackRecording.ts +36 -248
  94. package/src/utils/StreamVideoRN/index.ts +2 -0
  95. package/src/utils/StreamVideoRN/types.ts +1 -2
  96. package/src/utils/internal/callingx/callingx.ts +49 -68
  97. package/src/utils/keepCallAliveHeadlessTask.ts +45 -3
  98. package/src/utils/push/android.ts +12 -237
  99. package/src/utils/push/internal/android.ts +273 -0
  100. package/src/utils/push/libs/firebaseMessaging/index.ts +16 -5
  101. package/src/utils/push/libs/firebaseMessaging/lib.ts +3 -3
  102. package/src/utils/push/setupAndroidPushEvents.ts +25 -0
  103. package/src/utils/push/setupCallingExpEvents.ts +6 -3
  104. package/src/utils/push/setupIosVoipPushEvents.ts +8 -7
  105. package/src/utils/push/utils.ts +2 -4
  106. package/src/version.ts +1 -1
@@ -27,12 +27,25 @@ export function getCallDisplayName(callMembers, participants, currentUserId) {
27
27
 
28
28
  // if no names are found, we use the name of the current user
29
29
  if (names.length === 0) {
30
- names = [participants.find(participant => participant.userId === currentUserId)?.name ?? 'Call'];
30
+ names = [participants.find(participant => participant.userId === currentUserId)?.name || 'Call'];
31
31
  }
32
32
  return names.sort().join(', ');
33
33
  }
34
- function getCallDisplayNameFromCall(call) {
35
- return call.state.custom?.display_name ?? getCallDisplayName(call.state.members, call.state.participants, call.currentUserId);
34
+
35
+ /**
36
+ * Args shared by the callingx call registration APIs:
37
+ * `(callId, phoneNumber, callerName, hasVideo)`.
38
+ */
39
+ function getCallingxCallArgs(call) {
40
+ const callDisplayName = call.state.custom?.display_name || getCallDisplayName(call.state.members, call.state.participants, call.currentUserId);
41
+ return [call.cid,
42
+ // unique id for call
43
+ call.state.createdBy?.id ?? callDisplayName,
44
+ // handle for native call UI (prefer createdBy user id, fallback to call display name)
45
+ callDisplayName,
46
+ // display name for display in call screen
47
+ call.state.settings?.video?.enabled ?? false // is video call?
48
+ ];
36
49
  }
37
50
  export async function registerOutgoingCall(call) {
38
51
  if (!CallingxModule || !CallingxModule.isSetup || call.isOwnTracksLoopbackAllowed) {
@@ -45,15 +58,7 @@ export async function registerOutgoingCall(call) {
45
58
  const logger = videoLoggerSystem.getLogger('callingx');
46
59
  try {
47
60
  logger.debug(`registerOutgoingCall: Registering outgoing call ${call.cid}`);
48
- const callDisplayName = getCallDisplayNameFromCall(call);
49
- await CallingxModule.startCall(call.cid,
50
- // unique id for call
51
- call.state.createdBy?.id ?? callDisplayName,
52
- // handle for native call UI (prefer createdBy user id, fallback to call display name)
53
- callDisplayName,
54
- // display name for display in call screen
55
- call.state.settings?.video?.enabled ?? false // is video call?
56
- );
61
+ await CallingxModule.startCall(...getCallingxCallArgs(call));
57
62
  } catch (error) {
58
63
  logger.error(`registerOutgoingCall: Error registering outgoing call in callingx: ${call.cid}`, error);
59
64
  }
@@ -74,53 +79,30 @@ export async function joinCallingxCall(call, activeCalls) {
74
79
  const logger = videoLoggerSystem.getLogger('callingx');
75
80
  const isOutcomingCall = call.ringing && call.isCreatedByMe;
76
81
  const isIncomingCall = call.ringing && !call.isCreatedByMe;
77
- const startCallInCallingx = async () => {
78
- logger.debug(`joinCallingxCall: Joining call ${call.cid}`);
79
- const callDisplayName = getCallDisplayNameFromCall(call);
80
- await CallingxModule.startCall(call.cid,
81
- // unique id for call
82
- call.state.createdBy?.id ?? callDisplayName,
83
- // handle for native call UI (prefer createdBy user id, fallback to call display name)
84
- callDisplayName,
85
- // display name for display in call screen
86
- call.state.settings?.video?.enabled ?? false // is video call?
87
- );
88
- };
89
- if (isOutcomingCall || !call.ringing && CallingxModule.isOngoingCallsEnabled) {
90
- try {
91
- await startCallInCallingx();
92
- } catch (error) {
93
- logger.error(`startCallingxCall: Error starting call in callingx: ${call.cid}`, error);
82
+ const isOngoingCall = c => !c.ringing && CallingxModule.isOngoingCallsEnabled && !c.isOwnTracksLoopbackAllowed;
83
+ if (!isIncomingCall && !isOutcomingCall && !isOngoingCall(call)) {
84
+ return;
85
+ }
86
+ try {
87
+ const activeCallsToLeave = activeCalls.filter(c => c.cid !== call.cid && (c.ringing || isOngoingCall(c)) && c.state.callingState !== CallingState.LEFT);
88
+ for (const activeCall of activeCallsToLeave) {
89
+ logger.debug(`leaving currently-active-call:${activeCall.cid} before joining the call:${call.cid}`);
90
+ await activeCall.leave({
91
+ reason: 'cancel'
92
+ }).catch(e => {
93
+ logger.error(`failed to leave active call ${activeCall.cid}`, e);
94
+ });
94
95
  }
95
- } else if (isIncomingCall) {
96
- logger.debug(`joinCallingxCall: Joining incoming call ${call.cid}`);
97
- try {
98
- // Leave any existing active ringing calls before joining a new ringing call
99
- const activeCallsToLeave = activeCalls.filter(c => c.cid !== call.cid && c.ringing && c.state.callingState !== CallingState.LEFT);
100
- for (const activeCall of activeCallsToLeave) {
101
- logger.debug(`leaving active call ${activeCall.cid} before joining ${call.cid}`);
102
- await activeCall.leave({
103
- reason: 'cancel'
104
- }).catch(e => {
105
- logger.error(`failed to leave active call ${activeCall.cid}`, e);
106
- });
107
- }
108
- // Awaits native CallKit/Telecom registration before answering.
109
- // Safe to call even if the call is already registered (e.g. from VoIP push) --
110
- // iOS early-returns with no error, Android sends the registered broadcast.
111
- const callDisplayName = getCallDisplayNameFromCall(call);
112
- await CallingxModule.displayIncomingCall(call.cid,
113
- // unique id for call
114
- call.state.createdBy?.id ?? callDisplayName,
115
- // handle for native call UI (prefer createdBy user id, fallback to call display name)
116
- callDisplayName,
117
- // display name for display in call screen
118
- call.state.settings?.video?.enabled ?? false // is video call?
119
- );
96
+ logger.debug(`joinCallingxCall: Joining call ${call.cid} isIncoming: ${isIncomingCall} isOutgoing: ${isOutcomingCall}`);
97
+ const callArgs = getCallingxCallArgs(call);
98
+ if (isIncomingCall) {
99
+ await CallingxModule.displayIncomingCall(...callArgs);
120
100
  await CallingxModule.answerIncomingCall(call.cid);
121
- } catch (error) {
122
- logger.error(`Error joining incoming call in callingx: ${call.cid}`, error);
101
+ } else {
102
+ await CallingxModule.startCall(...callArgs);
123
103
  }
104
+ } catch (error) {
105
+ logger.error(`startCallingxCall: Error starting call in callingx: ${call.cid} isIncoming: ${isIncomingCall} isOutgoing: ${isOutcomingCall}`, error);
124
106
  }
125
107
  }
126
108
  export async function endCallingxCall(call, reason) {
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","getCallingxLibIfAvailable","CallingState","videoLoggerSystem","CallingxModule","getCallDisplayName","callMembers","participants","currentUserId","names","length","flatMap","member","user","id","name","participant","userId","find","sort","join","getCallDisplayNameFromCall","call","state","custom","display_name","members","registerOutgoingCall","isSetup","isOwnTracksLoopbackAllowed","isOutcomingCall","ringing","isCreatedByMe","logger","getLogger","debug","cid","callDisplayName","startCall","createdBy","settings","video","enabled","error","joinCallingxCall","activeCalls","isIncomingCall","startCallInCallingx","isOngoingCallsEnabled","activeCallsToLeave","filter","c","callingState","LEFT","activeCall","leave","reason","catch","e","displayIncomingCall","answerIncomingCall","endCallingxCall","isCallTracked","endCallWithReason","wireAudioEngineSubscription","OS","unwireAudioEngineSubscription"],"sourceRoot":"../../../../../src","sources":["utils/internal/callingx/callingx.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Platform","getCallingxLibIfAvailable","CallingState","videoLoggerSystem","CallingxModule","getCallDisplayName","callMembers","participants","currentUserId","names","length","flatMap","member","user","id","name","participant","userId","find","sort","join","getCallingxCallArgs","call","callDisplayName","state","custom","display_name","members","cid","createdBy","settings","video","enabled","registerOutgoingCall","isSetup","isOwnTracksLoopbackAllowed","isOutcomingCall","ringing","isCreatedByMe","logger","getLogger","debug","startCall","error","joinCallingxCall","activeCalls","isIncomingCall","isOngoingCall","c","isOngoingCallsEnabled","activeCallsToLeave","filter","callingState","LEFT","activeCall","leave","reason","catch","e","callArgs","displayIncomingCall","answerIncomingCall","endCallingxCall","isCallTracked","endCallWithReason","wireAudioEngineSubscription","OS","unwireAudioEngineSubscription"],"sourceRoot":"../../../../../src","sources":["utils/internal/callingx/callingx.ts"],"mappings":"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","ignoreList":[]}
@@ -12,6 +12,20 @@ export const KEEP_CALL_ALIVE_HEADLESS_TASK_NAME = 'StreamVideoKeepCallAlive';
12
12
  export const keepCallAliveCallRef = {
13
13
  current: undefined
14
14
  };
15
+ let resolveRunningTask;
16
+
17
+ /**
18
+ * Ends the currently running keep-alive headless task.
19
+ *
20
+ * The task's promise is app-provided (`foregroundService.android.taskToRun`) and by default never
21
+ * resolves, so stopping the native service alone would leave the task registered in
22
+ * `HeadlessJsTaskContext` forever - which keeps RN's timer choreographer callback posted for the
23
+ * rest of the process lifetime. Resolving it here lets React Native unwind the task properly.
24
+ */
25
+ export const endKeepCallAliveHeadlessTask = () => {
26
+ resolveRunningTask?.();
27
+ resolveRunningTask = undefined;
28
+ };
15
29
  function registerKeepCallAliveHeadlessTaskOnce() {
16
30
  if (Platform.OS !== 'android') return;
17
31
  AppRegistry.registerHeadlessTask(KEEP_CALL_ALIVE_HEADLESS_TASK_NAME, () => async data => {
@@ -33,10 +47,34 @@ function registerKeepCallAliveHeadlessTaskOnce() {
33
47
  }
34
48
  const config = StreamVideoRN.getConfig();
35
49
  const taskToRun = config.foregroundService.android.taskToRun;
50
+ // A previous task (if any) must not keep hanging around.
51
+ endKeepCallAliveHeadlessTask();
52
+ const taskEnded = new Promise(resolve => {
53
+ resolveRunningTask = resolve;
54
+ });
55
+ const ownResolver = resolveRunningTask;
56
+
57
+ // React Native stops the foreground service as soon as the promise returned from here
58
+ // settles. `taskToRun` is app-provided and may resolve early - or immediately - so its
59
+ // completion must not end the keep-alive: that would drop the call's background protection
60
+ // while the call is still ongoing. The task's lifetime is owned by the SDK instead, and ends
61
+ // via endKeepCallAliveHeadlessTask() when the call is left.
62
+ (async () => {
63
+ try {
64
+ await taskToRun(call);
65
+ logger.debug('Keep-alive taskToRun completed, keeping the call alive until the call ends');
66
+ } catch (e) {
67
+ logger.error('Keep-alive headless task failed', e);
68
+ }
69
+ })();
36
70
  try {
37
- await taskToRun(call);
38
- } catch (e) {
39
- logger.error('Keep-alive headless task failed', e);
71
+ await taskEnded;
72
+ } finally {
73
+ // a newer task may already have installed its own resolver - clearing it here would leave
74
+ // that task with no way to be ended.
75
+ if (resolveRunningTask === ownResolver) {
76
+ resolveRunningTask = undefined;
77
+ }
40
78
  }
41
79
  });
42
80
  }
@@ -1 +1 @@
1
- {"version":3,"names":["AppRegistry","Platform","videoLoggerSystem","StreamVideoRN","KEEP_CALL_ALIVE_HEADLESS_TASK_NAME","keepCallAliveCallRef","current","undefined","registerKeepCallAliveHeadlessTaskOnce","OS","registerHeadlessTask","data","logger","getLogger","callCid","call","warn","cid","activeCallCid","config","getConfig","taskToRun","foregroundService","android","e","error"],"sourceRoot":"../../../src","sources":["utils/keepCallAliveHeadlessTask.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,QAAQ,QAAQ,cAAc;AAEpD,SAASC,iBAAiB,QAAQ,yBAAyB;AAC3D,SAASC,aAAa,QAAQ,iBAAiB;AAE/C,OAAO,MAAMC,kCAAkC,GAAG,0BAA0B;;AAE5E;AACA;AACA;AACA;AACA,OAAO,MAAMC,oBAAmD,GAAG;EACjEC,OAAO,EAAEC;AACX,CAAC;AAED,SAASC,qCAAqCA,CAAA,EAAG;EAC/C,IAAIP,QAAQ,CAACQ,EAAE,KAAK,SAAS,EAAE;EAE/BT,WAAW,CAACU,oBAAoB,CAC9BN,kCAAkC,EAClC,MAAM,MAAOO,IAAsC,IAAK;IACtD,MAAMC,MAAM,GAAGV,iBAAiB,CAACW,SAAS,CACxC,+BACF,CAAC;IACD,MAAMC,OAAO,GAAGH,IAAI,EAAEG,OAAO;IAE7B,MAAMC,IAAI,GAAGV,oBAAoB,CAACC,OAAO;IACzC,IAAI,CAACS,IAAI,EAAE;MACTH,MAAM,CAACI,IAAI,CACT,kEAAkE,EAClE;QAAEF;MAAQ,CACZ,CAAC;MACD;IACF;IACA,IAAIA,OAAO,IAAIC,IAAI,CAACE,GAAG,IAAIF,IAAI,CAACE,GAAG,KAAKH,OAAO,EAAE;MAC/CF,MAAM,CAACI,IAAI,CACT,+DAA+D,EAC/D;QAAEF,OAAO;QAAEI,aAAa,EAAEH,IAAI,CAACE;MAAI,CACrC,CAAC;MACD;IACF;IAEA,MAAME,MAAM,GAAGhB,aAAa,CAACiB,SAAS,CAAC,CAAC;IACxC,MAAMC,SAAS,GAAGF,MAAM,CAACG,iBAAiB,CAACC,OAAO,CAACF,SAAS;IAC5D,IAAI;MACF,MAAMA,SAAS,CAACN,IAAI,CAAC;IACvB,CAAC,CAAC,OAAOS,CAAC,EAAE;MACVZ,MAAM,CAACa,KAAK,CAAC,iCAAiC,EAAED,CAAC,CAAC;IACpD;EACF,CACF,CAAC;AACH;AAEAhB,qCAAqC,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["AppRegistry","Platform","videoLoggerSystem","StreamVideoRN","KEEP_CALL_ALIVE_HEADLESS_TASK_NAME","keepCallAliveCallRef","current","undefined","resolveRunningTask","endKeepCallAliveHeadlessTask","registerKeepCallAliveHeadlessTaskOnce","OS","registerHeadlessTask","data","logger","getLogger","callCid","call","warn","cid","activeCallCid","config","getConfig","taskToRun","foregroundService","android","taskEnded","Promise","resolve","ownResolver","debug","e","error"],"sourceRoot":"../../../src","sources":["utils/keepCallAliveHeadlessTask.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,QAAQ,QAAQ,cAAc;AAEpD,SAASC,iBAAiB,QAAQ,yBAAyB;AAC3D,SAASC,aAAa,QAAQ,iBAAiB;AAE/C,OAAO,MAAMC,kCAAkC,GAAG,0BAA0B;;AAE5E;AACA;AACA;AACA;AACA,OAAO,MAAMC,oBAAmD,GAAG;EACjEC,OAAO,EAAEC;AACX,CAAC;AAED,IAAIC,kBAA4C;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,4BAA4B,GAAGA,CAAA,KAAM;EAChDD,kBAAkB,GAAG,CAAC;EACtBA,kBAAkB,GAAGD,SAAS;AAChC,CAAC;AAED,SAASG,qCAAqCA,CAAA,EAAG;EAC/C,IAAIT,QAAQ,CAACU,EAAE,KAAK,SAAS,EAAE;EAE/BX,WAAW,CAACY,oBAAoB,CAC9BR,kCAAkC,EAClC,MAAM,MAAOS,IAAsC,IAAK;IACtD,MAAMC,MAAM,GAAGZ,iBAAiB,CAACa,SAAS,CACxC,+BACF,CAAC;IACD,MAAMC,OAAO,GAAGH,IAAI,EAAEG,OAAO;IAE7B,MAAMC,IAAI,GAAGZ,oBAAoB,CAACC,OAAO;IACzC,IAAI,CAACW,IAAI,EAAE;MACTH,MAAM,CAACI,IAAI,CACT,kEAAkE,EAClE;QAAEF;MAAQ,CACZ,CAAC;MACD;IACF;IACA,IAAIA,OAAO,IAAIC,IAAI,CAACE,GAAG,IAAIF,IAAI,CAACE,GAAG,KAAKH,OAAO,EAAE;MAC/CF,MAAM,CAACI,IAAI,CACT,+DAA+D,EAC/D;QAAEF,OAAO;QAAEI,aAAa,EAAEH,IAAI,CAACE;MAAI,CACrC,CAAC;MACD;IACF;IAEA,MAAME,MAAM,GAAGlB,aAAa,CAACmB,SAAS,CAAC,CAAC;IACxC,MAAMC,SAAS,GAAGF,MAAM,CAACG,iBAAiB,CAACC,OAAO,CAACF,SAAS;IAC5D;IACAd,4BAA4B,CAAC,CAAC;IAC9B,MAAMiB,SAAS,GAAG,IAAIC,OAAO,CAAQC,OAAO,IAAK;MAC/CpB,kBAAkB,GAAGoB,OAAO;IAC9B,CAAC,CAAC;IACF,MAAMC,WAAW,GAAGrB,kBAAkB;;IAEtC;IACA;IACA;IACA;IACA;IACA,CAAC,YAAY;MACX,IAAI;QACF,MAAMe,SAAS,CAACN,IAAI,CAAC;QACrBH,MAAM,CAACgB,KAAK,CACV,4EACF,CAAC;MACH,CAAC,CAAC,OAAOC,CAAC,EAAE;QACVjB,MAAM,CAACkB,KAAK,CAAC,iCAAiC,EAAED,CAAC,CAAC;MACpD;IACF,CAAC,EAAE,CAAC;IAEJ,IAAI;MACF,MAAML,SAAS;IACjB,CAAC,SAAS;MACR;MACA;MACA,IAAIlB,kBAAkB,KAAKqB,WAAW,EAAE;QACtCrB,kBAAkB,GAAGD,SAAS;MAChC;IACF;EACF,CACF,CAAC;AACH;AAEAG,qCAAqC,CAAC,CAAC","ignoreList":[]}
@@ -1,13 +1,9 @@
1
1
  "use strict";
2
2
 
3
- import { CallingState, videoLoggerSystem } from '@stream-io/video-client';
4
- import { AppState, Platform } from 'react-native';
3
+ import { videoLoggerSystem } from '@stream-io/video-client';
4
+ import { Platform } from 'react-native';
5
5
  import { getFirebaseMessagingLib } from './libs';
6
- import { pushUnsubscriptionCallbacks } from './internal/constants';
7
- import { canListenToWS, shouldCallBeClosed } from './internal/utils';
8
6
  import { setPushLogoutCallback } from '../internal/pushLogoutCallback';
9
- import { StreamVideoRN } from '../StreamVideoRN';
10
- import { getCallingxLib } from './libs/callingx';
11
7
  let lastFirebaseToken = {
12
8
  token: '',
13
9
  userId: ''
@@ -56,172 +52,16 @@ export async function initAndroidPushToken(client, pushConfig, setUnsubscribeLis
56
52
  const token = await messaging().getToken();
57
53
  await setDeviceToken(token);
58
54
  }
59
-
55
+ let firebaseDataHandlerDeprecationLogged = false;
60
56
  /**
61
- * Creates notification from the push message data.
62
- * For Ringing and Non-Ringing calls.
57
+ * @deprecated Ring notifications are now handled by the SDK internally. This method is a no-op;
58
+ * you can safely remove `firebaseDataHandler(...)` wiring from your Firebase messaging handlers.
63
59
  */
64
-
65
60
  export const firebaseDataHandler = async data => {
66
- /* Example data from firebase
67
- "message": {
68
- "data": {
69
- call_cid: 'audio_room:dcc1638c-e90d-4dcb-bf3b-8fa7767bfbb0',
70
- call_display_name: '',
71
- created_by_display_name: 'tommaso',
72
- created_by_id: 'tommaso-03dcddb7-e9e2-42ec-b2f3-5043aac666ee',
73
- receiver_id: 'martin-21824f17-319b-401b-a61b-fcab646f0d3f',
74
- sender: 'stream.video',
75
- type: 'call.live_started',
76
- version: 'v2'
77
- },
78
- // other stuff
79
- }
80
- */
81
- if (Platform.OS !== 'android') return;
82
- const logger = videoLoggerSystem.getLogger('firebaseDataHandler');
83
- const pushConfig = StreamVideoRN.getConfig().push;
84
- if (!pushConfig || !data || data.sender !== 'stream.video') {
85
- return;
86
- }
87
- if (data.type === 'call.ring') {
88
- const call_cid = data.call_cid;
89
- const callingx = getCallingxLib();
90
- const client = await pushConfig.createStreamVideoClient();
91
- if (!client) {
92
- logger.debug(`video client not found, skipping the call.ring notification`);
93
- await callingx.stopService();
94
- return;
95
- }
96
- const asForegroundService = canListenToWS();
97
- if (asForegroundService) {
98
- // Listen to call events from WS with headless task, bound to call service.
99
- // By this moment the call service is already running, so we can acquire the background task.
100
- const backgroundTaskOwner = `push:${call_cid}`;
101
- await callingx.acquireBackgroundTask(backgroundTaskOwner).catch(e => {
102
- logger.error(`Failed to acquire background task for callCid: ${call_cid} error: ${e}`);
103
- });
104
- const finishBackgroundTask = () => {
105
- callingx.log(`Finishing background task for callCid: ${call_cid}`, 'debug');
106
- callingx.releaseBackgroundTask(backgroundTaskOwner);
107
- };
108
- (async () => {
109
- try {
110
- const _client = await pushConfig.createStreamVideoClient();
111
- if (!_client) {
112
- logger.debug(`Closing fg service as there is no client to create from push config`);
113
- finishBackgroundTask();
114
- return;
115
- }
116
- const callFromPush = await _client.onRingingCall(call_cid);
117
- const {
118
- mustEndCall,
119
- endCallReason
120
- } = shouldCallBeClosed(callFromPush, data);
121
- if (mustEndCall) {
122
- logger.debug(`Closing fg service callCid: ${call_cid} endCallReason: ${endCallReason}`);
123
- callingx.log(`Ending call with callCid: ${call_cid} endCallReason: ${endCallReason}`, 'debug');
124
- callingx.endCallWithReason(call_cid, endCallReason);
125
- callFromPush.leave({
126
- reject: false
127
- }).catch(error => {
128
- logger.error(`Failed to leave already-ended ringing call ${call_cid}: ${error}`);
129
- });
130
- finishBackgroundTask();
131
- return;
132
- }
133
- const unsubscribeFunctions = [];
134
- // check if service needs to be closed if accept/decline event was done on another device
135
- const unsubscribe = callFromPush.on('all', event => {
136
- const _canListenToWS = canListenToWS();
137
- if (!_canListenToWS) {
138
- logger.debug(`Closing fg service from event callCid: ${call_cid} canListenToWS: ${_canListenToWS}`, {
139
- event
140
- });
141
- unsubscribeFunctions.forEach(fn => fn());
142
- finishBackgroundTask();
143
- return;
144
- }
145
- const {
146
- mustEndCall: mustEndCallFromEvent,
147
- endCallReason: endCallReasonFromEvent
148
- } = shouldCallBeClosed(callFromPush, data);
149
- if (mustEndCallFromEvent) {
150
- logger.debug(`Closing fg service from event callCid: ${call_cid} canListenToWS: ${_canListenToWS} shouldCallBeClosed`, {
151
- event
152
- });
153
- unsubscribeFunctions.forEach(fn => fn());
154
- callingx.endCallWithReason(call_cid, endCallReasonFromEvent);
155
- finishBackgroundTask();
156
- }
157
- });
158
-
159
- // check if service needs to be closed if call was left
160
- const stateSubscription = callFromPush.state.callingState$.subscribe(callingState => {
161
- if (callingState === CallingState.IDLE || callingState === CallingState.LEFT) {
162
- logger.debug(`Closing fg service from callingState callCid: ${call_cid} callingState: ${callingState}`);
163
- unsubscribeFunctions.forEach(fn => fn());
164
- callingx.log(`Ending call with callCid: ${call_cid} callingState: ${callingState}`, 'debug');
165
- finishBackgroundTask();
166
- }
167
- });
168
- const endCallSubscription = callingx.addEventListener('endCall', async ({
169
- callId
170
- }) => {
171
- unsubscribeFunctions.forEach(fn => fn());
172
- try {
173
- await callFromPush.leave({
174
- reject: callFromPush.state.callingState === CallingState.RINGING,
175
- reason: 'decline'
176
- });
177
- } catch (error) {
178
- logger.error(`Failed to leave call with callCid: ${call_cid} error: ${error}`);
179
- } finally {
180
- callingx.log(`Ending call with callCid: ${call_cid} callId: ${callId}`, 'debug');
181
- finishBackgroundTask();
182
- }
183
- });
184
-
185
- //stop background task when app comes to foreground
186
- const appStateSubscription = AppState.addEventListener('change', nextAppState => {
187
- const _canListenToWS = canListenToWS();
188
- callingx.log(`AppState changed to: ${nextAppState} for callCid: ${call_cid} canListenToWS: ${_canListenToWS}`, 'debug');
189
- if (!_canListenToWS) {
190
- unsubscribeFunctions.forEach(fn => fn());
191
- finishBackgroundTask();
192
- return;
193
- }
194
- });
195
- unsubscribeFunctions.push(unsubscribe);
196
- unsubscribeFunctions.push(() => stateSubscription.unsubscribe());
197
- unsubscribeFunctions.push(() => endCallSubscription.remove());
198
- unsubscribeFunctions.push(() => appStateSubscription.remove());
199
- pushUnsubscriptionCallbacks.get(call_cid)?.forEach(cb => cb());
200
- pushUnsubscriptionCallbacks.set(call_cid, unsubscribeFunctions);
201
- } catch (error) {
202
- callingx.log(`Failed to start background task with callCid: ${call_cid} error: ${error}`, 'error');
203
- finishBackgroundTask();
204
- }
205
- })();
206
- }
207
- if (asForegroundService) {
208
- // no need to check if call has be closed as that will be handled by the fg service
209
- return;
210
- }
211
- const callFromPush = await client.onRingingCall(call_cid);
212
- const {
213
- mustEndCall,
214
- endCallReason
215
- } = shouldCallBeClosed(callFromPush, data);
216
- if (mustEndCall) {
217
- logger.debug(`Removing incoming call notification immediately with callCid: ${call_cid} as it should be closed`);
218
- callingx.endCallWithReason(call_cid, endCallReason);
219
- callFromPush.leave({
220
- reject: false
221
- }).catch(error => {
222
- logger.error(`Failed to leave already-ended ringing call ${call_cid}: ${error}`);
223
- });
224
- }
61
+ void data;
62
+ if (!firebaseDataHandlerDeprecationLogged) {
63
+ firebaseDataHandlerDeprecationLogged = true;
64
+ console.warn('[@stream-io/video-react-native-sdk] `firebaseDataHandler` is deprecated. Ring notifications are now handled by the SDK internally — you can remove calls to it from your Firebase messaging handlers.');
225
65
  }
226
66
  };
227
67
  //# sourceMappingURL=android.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["CallingState","videoLoggerSystem","AppState","Platform","getFirebaseMessagingLib","pushUnsubscriptionCallbacks","canListenToWS","shouldCallBeClosed","setPushLogoutCallback","StreamVideoRN","getCallingxLib","lastFirebaseToken","token","userId","initAndroidPushToken","client","pushConfig","setUnsubscribeListener","OS","android","pushProviderName","logger","getLogger","setDeviceToken","streamClient","_user","id","anonymous","debug","removeDevice","err","warn","push_provider_name","addDevice","messaging","unsubscribe","onTokenRefresh","refreshedToken","getToken","firebaseDataHandler","data","getConfig","push","sender","type","call_cid","callingx","createStreamVideoClient","stopService","asForegroundService","backgroundTaskOwner","acquireBackgroundTask","catch","e","error","finishBackgroundTask","log","releaseBackgroundTask","_client","callFromPush","onRingingCall","mustEndCall","endCallReason","endCallWithReason","leave","reject","unsubscribeFunctions","on","event","_canListenToWS","forEach","fn","mustEndCallFromEvent","endCallReasonFromEvent","stateSubscription","state","callingState$","subscribe","callingState","IDLE","LEFT","endCallSubscription","addEventListener","callId","RINGING","reason","appStateSubscription","nextAppState","remove","get","cb","set"],"sourceRoot":"../../../../src","sources":["utils/push/android.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["videoLoggerSystem","Platform","getFirebaseMessagingLib","setPushLogoutCallback","lastFirebaseToken","token","userId","initAndroidPushToken","client","pushConfig","setUnsubscribeListener","OS","android","pushProviderName","logger","getLogger","setDeviceToken","streamClient","_user","id","anonymous","debug","removeDevice","err","warn","push_provider_name","addDevice","messaging","unsubscribe","onTokenRefresh","refreshedToken","getToken","firebaseDataHandlerDeprecationLogged","firebaseDataHandler","data","console"],"sourceRoot":"../../../../src","sources":["utils/push/android.ts"],"mappings":";;AAAA,SAA4BA,iBAAiB,QAAQ,yBAAyB;AAC9E,SAASC,QAAQ,QAAQ,cAAc;AAEvC,SAASC,uBAAuB,QAAQ,QAAQ;AAChD,SAASC,qBAAqB,QAAQ,gCAAgC;AAItE,IAAIC,iBAAiB,GAAG;EAAEC,KAAK,EAAE,EAAE;EAAEC,MAAM,EAAE;AAAG,CAAC;;AAEjD;AACA,OAAO,eAAeC,oBAAoBA,CACxCC,MAAyB,EACzBC,UAAsB,EACtBC,sBAAyD,EACzD;EACA,IAAIT,QAAQ,CAACU,EAAE,KAAK,SAAS,IAAI,CAACF,UAAU,CAACG,OAAO,EAAEC,gBAAgB,EAAE;IACtE;EACF;EACA,MAAMC,MAAM,GAAGd,iBAAiB,CAACe,SAAS,CAAC,sBAAsB,CAAC;EAClE,MAAMC,cAAc,GAAG,MAAOX,KAAa,IAAK;IAC9C,MAAMC,MAAM,GAAGE,MAAM,CAACS,YAAY,CAACC,KAAK,EAAEC,EAAE,IAAI,EAAE;IAClD,IAAIX,MAAM,CAACS,YAAY,CAACG,SAAS,EAAE;MACjCN,MAAM,CAACO,KAAK,CAAC,mDAAmD,CAAC;MACjE;IACF;IACA,IACEjB,iBAAiB,CAACC,KAAK,KAAKA,KAAK,IACjCD,iBAAiB,CAACE,MAAM,KAAKA,MAAM,EACnC;MACAQ,MAAM,CAACO,KAAK,CACV,qDAAqDf,MAAM,eAAeD,KAAK,EACjF,CAAC;MACD;IACF;IACAD,iBAAiB,GAAG;MAAEC,KAAK;MAAEC;IAAO,CAAC;IACrCH,qBAAqB,CAAC,YAAY;MAChCC,iBAAiB,GAAG;QAAEC,KAAK,EAAE,EAAE;QAAEC,MAAM,EAAE;MAAG,CAAC;MAC7C,IAAI;QACFQ,MAAM,CAACO,KAAK,CAAC,6BAA6BhB,KAAK,EAAE,CAAC;QAClD,MAAMG,MAAM,CAACc,YAAY,CAACjB,KAAK,CAAC;MAClC,CAAC,CAAC,OAAOkB,GAAG,EAAE;QACZT,MAAM,CAACU,IAAI,CAAC,6CAA6C,EAAED,GAAG,CAAC;MACjE;IACF,CAAC,CAAC;IACF,MAAME,kBAAkB,GAAGhB,UAAU,CAACG,OAAO,EAAEC,gBAAgB;IAC/DC,MAAM,CAACO,KAAK,CAAC,2BAA2BhB,KAAK,gBAAgBC,MAAM,EAAE,CAAC;IACtE,MAAME,MAAM,CAACkB,SAAS,CAACrB,KAAK,EAAE,UAAU,EAAEoB,kBAAkB,CAAC;EAC/D,CAAC;EAED,MAAME,SAAS,GAAGzB,uBAAuB,CAAC,CAAC;EAC3CY,MAAM,CAACO,KAAK,CAAC,kCAAkC,CAAC;EAChD,MAAMO,WAAW,GAAGD,SAAS,CAAC,CAAC,CAACE,cAAc,CAAEC,cAAc,IAC5Dd,cAAc,CAACc,cAAc,CAC/B,CAAC;EACDpB,sBAAsB,CAACkB,WAAW,CAAC;EACnC,MAAMvB,KAAK,GAAG,MAAMsB,SAAS,CAAC,CAAC,CAACI,QAAQ,CAAC,CAAC;EAC1C,MAAMf,cAAc,CAACX,KAAK,CAAC;AAC7B;AAEA,IAAI2B,oCAAoC,GAAG,KAAK;AAChD;AACA;AACA;AACA;AACA,OAAO,MAAMC,mBAAmB,GAAG,MAAOC,IAAU,IAAK;EACvD,KAAKA,IAAI;EACT,IAAI,CAACF,oCAAoC,EAAE;IACzCA,oCAAoC,GAAG,IAAI;IAC3CG,OAAO,CAACX,IAAI,CACV,uMACF,CAAC;EACH;AACF,CAAC","ignoreList":[]}