@stream-io/video-react-native-sdk 1.29.3 → 1.29.4-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 (209) hide show
  1. package/android/src/main/AndroidManifest.xml +8 -1
  2. package/android/src/main/AndroidManifestNew.xml +11 -0
  3. package/android/src/main/java/com/streamvideo/reactnative/StreamVideoReactNativeModule.kt +42 -5
  4. package/android/src/main/java/com/streamvideo/reactnative/audio/utils/WebRtcAudioUtils.kt +70 -6
  5. package/android/src/main/java/com/streamvideo/reactnative/callmanager/StreamInCallManagerModule.kt +6 -4
  6. package/android/src/main/java/com/streamvideo/reactnative/keepalive/KeepAliveNotification.kt +83 -0
  7. package/android/src/main/java/com/streamvideo/reactnative/keepalive/StreamCallKeepAliveHeadlessService.kt +149 -0
  8. package/dist/commonjs/hooks/push/index.js +0 -2
  9. package/dist/commonjs/hooks/push/index.js.map +1 -1
  10. package/dist/commonjs/hooks/push/useCallingExpWithCallingStateEffect.js +121 -0
  11. package/dist/commonjs/hooks/push/useCallingExpWithCallingStateEffect.js.map +1 -0
  12. package/dist/commonjs/hooks/push/useIosVoipPushEventsSetupEffect.js +18 -31
  13. package/dist/commonjs/hooks/push/useIosVoipPushEventsSetupEffect.js.map +1 -1
  14. package/dist/commonjs/hooks/useAndroidKeepCallAliveEffect.js +64 -97
  15. package/dist/commonjs/hooks/useAndroidKeepCallAliveEffect.js.map +1 -1
  16. package/dist/commonjs/index.js +1 -0
  17. package/dist/commonjs/index.js.map +1 -1
  18. package/dist/commonjs/modules/call-manager/CallManager.js +26 -0
  19. package/dist/commonjs/modules/call-manager/CallManager.js.map +1 -1
  20. package/dist/commonjs/providers/StreamCall/index.js +6 -6
  21. package/dist/commonjs/providers/StreamCall/index.js.map +1 -1
  22. package/dist/commonjs/utils/StreamVideoRN/index.js +33 -21
  23. package/dist/commonjs/utils/StreamVideoRN/index.js.map +1 -1
  24. package/dist/commonjs/utils/internal/callingx/audioSessionPromise.js +58 -0
  25. package/dist/commonjs/utils/internal/callingx/audioSessionPromise.js.map +1 -0
  26. package/dist/commonjs/utils/internal/callingx/callingx.js +109 -0
  27. package/dist/commonjs/utils/internal/callingx/callingx.js.map +1 -0
  28. package/dist/commonjs/utils/internal/registerSDKGlobals.js +52 -3
  29. package/dist/commonjs/utils/internal/registerSDKGlobals.js.map +1 -1
  30. package/dist/commonjs/utils/keepCallAliveHeadlessTask.js +48 -0
  31. package/dist/commonjs/utils/keepCallAliveHeadlessTask.js.map +1 -0
  32. package/dist/commonjs/utils/push/android.js +151 -202
  33. package/dist/commonjs/utils/push/android.js.map +1 -1
  34. package/dist/commonjs/utils/push/internal/ios.js +17 -34
  35. package/dist/commonjs/utils/push/internal/ios.js.map +1 -1
  36. package/dist/commonjs/utils/push/internal/rxSubjects.js +1 -45
  37. package/dist/commonjs/utils/push/internal/rxSubjects.js.map +1 -1
  38. package/dist/commonjs/utils/push/internal/utils.js +32 -20
  39. package/dist/commonjs/utils/push/internal/utils.js.map +1 -1
  40. package/dist/commonjs/utils/push/ios.js.map +1 -1
  41. package/dist/commonjs/utils/push/libs/callingx.js +75 -0
  42. package/dist/commonjs/utils/push/libs/callingx.js.map +1 -0
  43. package/dist/commonjs/utils/push/libs/index.js +8 -19
  44. package/dist/commonjs/utils/push/libs/index.js.map +1 -1
  45. package/dist/commonjs/utils/push/libs/notifee/index.js +0 -19
  46. package/dist/commonjs/utils/push/libs/notifee/index.js.map +1 -1
  47. package/dist/commonjs/utils/push/setupCallingExpEvents.js +108 -0
  48. package/dist/commonjs/utils/push/setupCallingExpEvents.js.map +1 -0
  49. package/dist/commonjs/utils/push/setupIosVoipPushEvents.js +7 -6
  50. package/dist/commonjs/utils/push/setupIosVoipPushEvents.js.map +1 -1
  51. package/dist/commonjs/version.js +1 -1
  52. package/dist/commonjs/version.js.map +1 -1
  53. package/dist/module/hooks/push/index.js +0 -2
  54. package/dist/module/hooks/push/index.js.map +1 -1
  55. package/dist/module/hooks/push/useCallingExpWithCallingStateEffect.js +114 -0
  56. package/dist/module/hooks/push/useCallingExpWithCallingStateEffect.js.map +1 -0
  57. package/dist/module/hooks/push/useIosVoipPushEventsSetupEffect.js +18 -31
  58. package/dist/module/hooks/push/useIosVoipPushEventsSetupEffect.js.map +1 -1
  59. package/dist/module/hooks/useAndroidKeepCallAliveEffect.js +66 -99
  60. package/dist/module/hooks/useAndroidKeepCallAliveEffect.js.map +1 -1
  61. package/dist/module/index.js +1 -0
  62. package/dist/module/index.js.map +1 -1
  63. package/dist/module/modules/call-manager/CallManager.js +26 -0
  64. package/dist/module/modules/call-manager/CallManager.js.map +1 -1
  65. package/dist/module/providers/StreamCall/index.js +6 -6
  66. package/dist/module/providers/StreamCall/index.js.map +1 -1
  67. package/dist/module/utils/StreamVideoRN/index.js +33 -21
  68. package/dist/module/utils/StreamVideoRN/index.js.map +1 -1
  69. package/dist/module/utils/internal/callingx/audioSessionPromise.js +51 -0
  70. package/dist/module/utils/internal/callingx/audioSessionPromise.js.map +1 -0
  71. package/dist/module/utils/internal/callingx/callingx.js +100 -0
  72. package/dist/module/utils/internal/callingx/callingx.js.map +1 -0
  73. package/dist/module/utils/internal/registerSDKGlobals.js +52 -3
  74. package/dist/module/utils/internal/registerSDKGlobals.js.map +1 -1
  75. package/dist/module/utils/keepCallAliveHeadlessTask.js +42 -0
  76. package/dist/module/utils/keepCallAliveHeadlessTask.js.map +1 -0
  77. package/dist/module/utils/push/android.js +153 -204
  78. package/dist/module/utils/push/android.js.map +1 -1
  79. package/dist/module/utils/push/internal/ios.js +17 -34
  80. package/dist/module/utils/push/internal/ios.js.map +1 -1
  81. package/dist/module/utils/push/internal/rxSubjects.js +0 -44
  82. package/dist/module/utils/push/internal/rxSubjects.js.map +1 -1
  83. package/dist/module/utils/push/internal/utils.js +29 -19
  84. package/dist/module/utils/push/internal/utils.js.map +1 -1
  85. package/dist/module/utils/push/ios.js.map +1 -1
  86. package/dist/module/utils/push/libs/callingx.js +67 -0
  87. package/dist/module/utils/push/libs/callingx.js.map +1 -0
  88. package/dist/module/utils/push/libs/index.js +1 -2
  89. package/dist/module/utils/push/libs/index.js.map +1 -1
  90. package/dist/module/utils/push/libs/notifee/index.js +0 -18
  91. package/dist/module/utils/push/libs/notifee/index.js.map +1 -1
  92. package/dist/module/utils/push/setupCallingExpEvents.js +102 -0
  93. package/dist/module/utils/push/setupCallingExpEvents.js.map +1 -0
  94. package/dist/module/utils/push/setupIosVoipPushEvents.js +7 -6
  95. package/dist/module/utils/push/setupIosVoipPushEvents.js.map +1 -1
  96. package/dist/module/version.js +1 -1
  97. package/dist/module/version.js.map +1 -1
  98. package/dist/typescript/hooks/push/index.d.ts.map +1 -1
  99. package/dist/typescript/hooks/push/useCallingExpWithCallingStateEffect.d.ts +5 -0
  100. package/dist/typescript/hooks/push/useCallingExpWithCallingStateEffect.d.ts.map +1 -0
  101. package/dist/typescript/hooks/push/useIosVoipPushEventsSetupEffect.d.ts.map +1 -1
  102. package/dist/typescript/hooks/useAndroidKeepCallAliveEffect.d.ts.map +1 -1
  103. package/dist/typescript/index.d.ts +1 -0
  104. package/dist/typescript/index.d.ts.map +1 -1
  105. package/dist/typescript/modules/call-manager/CallManager.d.ts +5 -0
  106. package/dist/typescript/modules/call-manager/CallManager.d.ts.map +1 -1
  107. package/dist/typescript/utils/StreamVideoRN/index.d.ts +20 -2
  108. package/dist/typescript/utils/StreamVideoRN/index.d.ts.map +1 -1
  109. package/dist/typescript/utils/StreamVideoRN/types.d.ts +54 -29
  110. package/dist/typescript/utils/StreamVideoRN/types.d.ts.map +1 -1
  111. package/dist/typescript/utils/internal/callingx/audioSessionPromise.d.ts +16 -0
  112. package/dist/typescript/utils/internal/callingx/audioSessionPromise.d.ts.map +1 -0
  113. package/dist/typescript/utils/internal/callingx/callingx.d.ts +14 -0
  114. package/dist/typescript/utils/internal/callingx/callingx.d.ts.map +1 -0
  115. package/dist/typescript/utils/internal/registerSDKGlobals.d.ts.map +1 -1
  116. package/dist/typescript/utils/keepCallAliveHeadlessTask.d.ts +10 -0
  117. package/dist/typescript/utils/keepCallAliveHeadlessTask.d.ts.map +1 -0
  118. package/dist/typescript/utils/push/android.d.ts +1 -2
  119. package/dist/typescript/utils/push/android.d.ts.map +1 -1
  120. package/dist/typescript/utils/push/internal/ios.d.ts.map +1 -1
  121. package/dist/typescript/utils/push/internal/rxSubjects.d.ts +0 -33
  122. package/dist/typescript/utils/push/internal/rxSubjects.d.ts.map +1 -1
  123. package/dist/typescript/utils/push/internal/utils.d.ts +8 -1
  124. package/dist/typescript/utils/push/internal/utils.d.ts.map +1 -1
  125. package/dist/typescript/utils/push/ios.d.ts +1 -2
  126. package/dist/typescript/utils/push/ios.d.ts.map +1 -1
  127. package/dist/typescript/utils/push/libs/callingx.d.ts +9 -0
  128. package/dist/typescript/utils/push/libs/callingx.d.ts.map +1 -0
  129. package/dist/typescript/utils/push/libs/index.d.ts +1 -2
  130. package/dist/typescript/utils/push/libs/index.d.ts.map +1 -1
  131. package/dist/typescript/utils/push/libs/notifee/index.d.ts +0 -1
  132. package/dist/typescript/utils/push/libs/notifee/index.d.ts.map +1 -1
  133. package/dist/typescript/utils/push/setupCallingExpEvents.d.ts +8 -0
  134. package/dist/typescript/utils/push/setupCallingExpEvents.d.ts.map +1 -0
  135. package/dist/typescript/utils/push/setupIosVoipPushEvents.d.ts.map +1 -1
  136. package/dist/typescript/version.d.ts +1 -1
  137. package/dist/typescript/version.d.ts.map +1 -1
  138. package/expo-config-plugin/dist/withAndroidManifest.js +1 -33
  139. package/expo-config-plugin/dist/withAndroidPermissions.js +2 -7
  140. package/expo-config-plugin/dist/withAppDelegate.js +19 -197
  141. package/expo-config-plugin/dist/withMainActivity.js +1 -1
  142. package/expo-config-plugin/dist/withiOSInfoPlist.js +2 -3
  143. package/ios/StreamInCallManager.m +2 -0
  144. package/ios/StreamInCallManager.swift +19 -7
  145. package/ios/StreamVideoReactNative.h +7 -4
  146. package/ios/StreamVideoReactNative.m +189 -82
  147. package/package.json +13 -18
  148. package/src/hooks/push/index.ts +0 -2
  149. package/src/hooks/push/useCallingExpWithCallingStateEffect.ts +147 -0
  150. package/src/hooks/push/useIosVoipPushEventsSetupEffect.ts +21 -34
  151. package/src/hooks/useAndroidKeepCallAliveEffect.ts +94 -120
  152. package/src/index.ts +1 -0
  153. package/src/modules/call-manager/CallManager.ts +36 -0
  154. package/src/modules/call-manager/native-module.d.ts +7 -0
  155. package/src/providers/StreamCall/index.tsx +6 -6
  156. package/src/utils/StreamVideoRN/index.ts +40 -30
  157. package/src/utils/StreamVideoRN/types.ts +56 -29
  158. package/src/utils/internal/callingx/audioSessionPromise.ts +53 -0
  159. package/src/utils/internal/callingx/callingx.ts +146 -0
  160. package/src/utils/internal/registerSDKGlobals.ts +47 -4
  161. package/src/utils/keepCallAliveHeadlessTask.ts +54 -0
  162. package/src/utils/push/android.ts +227 -309
  163. package/src/utils/push/internal/ios.ts +28 -44
  164. package/src/utils/push/internal/rxSubjects.ts +0 -61
  165. package/src/utils/push/internal/utils.ts +45 -26
  166. package/src/utils/push/ios.ts +1 -6
  167. package/src/utils/push/libs/callingx.ts +90 -0
  168. package/src/utils/push/libs/index.ts +1 -2
  169. package/src/utils/push/libs/notifee/index.ts +0 -27
  170. package/src/utils/push/setupCallingExpEvents.ts +130 -0
  171. package/src/utils/push/setupIosVoipPushEvents.ts +11 -7
  172. package/src/version.ts +1 -1
  173. package/CHANGELOG.md +0 -3144
  174. package/android/src/main/java/com/streamvideo/reactnative/util/CallAliveServiceChecker.kt +0 -95
  175. package/dist/commonjs/hooks/push/useIosCallkeepWithCallingStateEffect.js +0 -160
  176. package/dist/commonjs/hooks/push/useIosCallkeepWithCallingStateEffect.js.map +0 -1
  177. package/dist/commonjs/hooks/push/useProcessPushCallEffect.js +0 -67
  178. package/dist/commonjs/hooks/push/useProcessPushCallEffect.js.map +0 -1
  179. package/dist/commonjs/utils/push/libs/callkeep.js +0 -17
  180. package/dist/commonjs/utils/push/libs/callkeep.js.map +0 -1
  181. package/dist/commonjs/utils/push/libs/voipPushNotification.js +0 -17
  182. package/dist/commonjs/utils/push/libs/voipPushNotification.js.map +0 -1
  183. package/dist/commonjs/utils/push/setupIosCallKeepEvents.js +0 -205
  184. package/dist/commonjs/utils/push/setupIosCallKeepEvents.js.map +0 -1
  185. package/dist/module/hooks/push/useIosCallkeepWithCallingStateEffect.js +0 -153
  186. package/dist/module/hooks/push/useIosCallkeepWithCallingStateEffect.js.map +0 -1
  187. package/dist/module/hooks/push/useProcessPushCallEffect.js +0 -60
  188. package/dist/module/hooks/push/useProcessPushCallEffect.js.map +0 -1
  189. package/dist/module/utils/push/libs/callkeep.js +0 -11
  190. package/dist/module/utils/push/libs/callkeep.js.map +0 -1
  191. package/dist/module/utils/push/libs/voipPushNotification.js +0 -11
  192. package/dist/module/utils/push/libs/voipPushNotification.js.map +0 -1
  193. package/dist/module/utils/push/setupIosCallKeepEvents.js +0 -199
  194. package/dist/module/utils/push/setupIosCallKeepEvents.js.map +0 -1
  195. package/dist/typescript/hooks/push/useIosCallkeepWithCallingStateEffect.d.ts +0 -5
  196. package/dist/typescript/hooks/push/useIosCallkeepWithCallingStateEffect.d.ts.map +0 -1
  197. package/dist/typescript/hooks/push/useProcessPushCallEffect.d.ts +0 -8
  198. package/dist/typescript/hooks/push/useProcessPushCallEffect.d.ts.map +0 -1
  199. package/dist/typescript/utils/push/libs/callkeep.d.ts +0 -3
  200. package/dist/typescript/utils/push/libs/callkeep.d.ts.map +0 -1
  201. package/dist/typescript/utils/push/libs/voipPushNotification.d.ts +0 -3
  202. package/dist/typescript/utils/push/libs/voipPushNotification.d.ts.map +0 -1
  203. package/dist/typescript/utils/push/setupIosCallKeepEvents.d.ts +0 -6
  204. package/dist/typescript/utils/push/setupIosCallKeepEvents.d.ts.map +0 -1
  205. package/src/hooks/push/useIosCallkeepWithCallingStateEffect.ts +0 -235
  206. package/src/hooks/push/useProcessPushCallEffect.ts +0 -108
  207. package/src/utils/push/libs/callkeep.ts +0 -16
  208. package/src/utils/push/libs/voipPushNotification.ts +0 -17
  209. package/src/utils/push/setupIosCallKeepEvents.ts +0 -252
@@ -1,14 +1,12 @@
1
1
  import { CallingState, videoLoggerSystem } from '@stream-io/video-client';
2
2
  import { AppState, Platform } from 'react-native';
3
- import { getExpoNotificationsLib, getExpoNotificationsLibNoThrow, getFirebaseMessagingLib, getFirebaseMessagingLibNoThrow, getIncomingCallForegroundServiceTypes, getNotifeeLibThrowIfNotInstalledForPush } from './libs';
4
- import { pushAcceptedIncomingCallCId$, pushAndroidBackgroundDeliveredIncomingCallCId$, pushNonRingingCallData$, pushRejectedIncomingCallCId$, pushTappedIncomingCallCId$ } from './internal/rxSubjects';
3
+ import { getExpoNotificationsLib, getExpoNotificationsLibNoThrow, getFirebaseMessagingLib, getFirebaseMessagingLibNoThrow, getNotifeeLibThrowIfNotInstalledForPush } from './libs';
4
+ import { pushNonRingingCallData$ } from './internal/rxSubjects';
5
5
  import { pushUnsubscriptionCallbacks } from './internal/constants';
6
- import { canAddPushWSSubscriptionsRef, clearPushWSEventSubscriptions, processCallFromPushInBackground, shouldCallBeEnded } from './internal/utils';
6
+ import { canListenToWS, shouldCallBeClosed } from './internal/utils';
7
7
  import { setPushLogoutCallback } from '../internal/pushLogoutCallback';
8
- import { getAndroidDefaultRingtoneUrl } from '../getAndroidDefaultRingtoneUrl';
9
8
  import { StreamVideoRN } from '../StreamVideoRN';
10
- const ACCEPT_CALL_ACTION_ID = 'accept';
11
- const DECLINE_CALL_ACTION_ID = 'decline';
9
+ import { getCallingxLib } from './libs/callingx';
12
10
  let lastFirebaseToken = {
13
11
  token: '',
14
12
  userId: ''
@@ -63,8 +61,7 @@ export async function initAndroidPushToken(client, pushConfig, setUnsubscribeLis
63
61
  await setDeviceToken(token);
64
62
  }
65
63
  }
66
- // TODO: remove the incomingCallChannel check and find a better way once we have telecom integration for android
67
- const messaging = pushConfig.isExpo && !pushConfig.android.incomingCallChannel ? getFirebaseMessagingLibNoThrow(true) : getFirebaseMessagingLib();
64
+ const messaging = pushConfig.isExpo ? getFirebaseMessagingLibNoThrow(true) : getFirebaseMessagingLib();
68
65
  if (messaging) {
69
66
  logger.debug(`setting firebase token listeners`);
70
67
  const unsubscribe = messaging().onTokenRefresh(refreshedToken => setDeviceToken(refreshedToken));
@@ -78,8 +75,8 @@ export async function initAndroidPushToken(client, pushConfig, setUnsubscribeLis
78
75
  * Creates notification from the push message data.
79
76
  * For Ringing and Non-Ringing calls.
80
77
  */
78
+
81
79
  export const firebaseDataHandler = async data => {
82
- if (Platform.OS !== 'android') return;
83
80
  /* Example data from firebase
84
81
  "message": {
85
82
  "data": {
@@ -95,174 +92,171 @@ export const firebaseDataHandler = async data => {
95
92
  // other stuff
96
93
  }
97
94
  */
95
+ if (Platform.OS !== 'android') return;
96
+ const logger = videoLoggerSystem.getLogger('firebaseDataHandler');
98
97
  const pushConfig = StreamVideoRN.getConfig().push;
99
98
  if (!pushConfig || !data || data.sender !== 'stream.video') {
100
99
  return;
101
100
  }
102
- const notifeeLib = getNotifeeLibThrowIfNotInstalledForPush();
103
- const notifee = notifeeLib.default;
104
- const settings = await notifee.getNotificationSettings();
105
- if (settings.authorizationStatus !== 1) {
106
- const logger = videoLoggerSystem.getLogger('firebaseDataHandler');
107
- logger.debug(`Notification permission not granted, unable to post ${data.type} notifications`);
108
- return;
109
- }
110
101
  if (data.type === 'call.ring') {
111
102
  const call_cid = data.call_cid;
112
- const created_by_id = data.created_by_id;
113
- const receiver_id = data.receiver_id;
114
- const video_client = await pushConfig.createStreamVideoClient();
115
- await video_client?.onRingingCall(call_cid);
116
- const shouldCallBeClosed = callToCheck => {
117
- const {
118
- mustEndCall
119
- } = shouldCallBeEnded(callToCheck, created_by_id, receiver_id);
120
- return mustEndCall;
121
- };
122
- const canListenToWS = () => canAddPushWSSubscriptionsRef.current && AppState.currentState !== 'active';
103
+ if (!call_cid) {
104
+ logger.debug(`call_cid is not provided, skipping the call.ring notification`);
105
+ return;
106
+ }
107
+ const callingx = getCallingxLib();
108
+ if (!callingx.canPostNotifications) {
109
+ logger.warn(`Cannot post notifications, skipping the call.ring notification`);
110
+ return;
111
+ }
112
+ const client = await pushConfig.createStreamVideoClient();
113
+ if (!client) {
114
+ logger.debug(`video client not found, skipping the call.ring notification`);
115
+ return;
116
+ }
117
+ const shouldRejectCallWhenBusy = client['rejectCallWhenBusy'] ?? false;
118
+ if (callingx.hasRegisteredCall() && shouldRejectCallWhenBusy) {
119
+ logger.debug(`registered call found, skipping the call.ring notification`);
120
+ return;
121
+ }
123
122
  const asForegroundService = canListenToWS();
123
+ const callerName = data.created_by_display_name;
124
+ const hasVideo = data.video === 'true';
124
125
  if (asForegroundService) {
125
126
  // Listen to call events from WS through fg service
126
127
  // note: this will replace the current empty fg service runner
127
- notifee.registerForegroundService(() => {
128
- return new Promise(async () => {
129
- const client = await pushConfig.createStreamVideoClient();
130
- if (!client) {
131
- videoLoggerSystem.getLogger('firebaseMessagingOnMessageHandler').debug(`Closing fg service as there is no client to create from push config`);
132
- notifee.stopForegroundService();
133
- return;
134
- }
135
- const callFromPush = await client.onRingingCall(call_cid);
136
- let _shouldCallBeClosed = shouldCallBeClosed(callFromPush);
137
- if (_shouldCallBeClosed) {
138
- videoLoggerSystem.getLogger('firebaseMessagingOnMessageHandler').debug(`Closing fg service callCid: ${call_cid} shouldCallBeClosed: ${_shouldCallBeClosed}`);
139
- notifee.stopForegroundService();
140
- return;
141
- }
142
- const unsubscribeFunctions = [];
143
- // check if service needs to be closed if accept/decline event was done on another device
144
- const unsubscribe = callFromPush.on('all', event => {
145
- const _canListenToWS = canListenToWS();
146
- if (!_canListenToWS) {
147
- videoLoggerSystem.getLogger('firebaseMessagingOnMessageHandler').debug(`Closing fg service from event callCid: ${call_cid} canListenToWS: ${_canListenToWS}`, {
148
- event
128
+ //we need to start service (e.g. by calling display incoming call) and than launch bg task, consider making those steps independent
129
+ callingx.registerBackgroundTask((_, stopTask) => {
130
+ return new Promise(resolve => {
131
+ const finishBackgroundTask = () => {
132
+ callingx.log(`Finishing background task for callCid: ${call_cid}`, 'debug');
133
+ resolve(undefined);
134
+ stopTask();
135
+ };
136
+ (async () => {
137
+ try {
138
+ const _client = await pushConfig.createStreamVideoClient();
139
+ if (!_client) {
140
+ logger.debug(`Closing fg service as there is no client to create from push config`);
141
+ finishBackgroundTask();
142
+ return;
143
+ }
144
+ const callFromPush = await _client.onRingingCall(call_cid);
145
+ const {
146
+ mustEndCall,
147
+ endCallReason
148
+ } = shouldCallBeClosed(callFromPush, data);
149
+ if (mustEndCall) {
150
+ logger.debug(`Closing fg service callCid: ${call_cid} endCallReason: ${endCallReason}`);
151
+ finishBackgroundTask();
152
+ callingx.log(`Ending call with callCid: ${call_cid} endCallReason: ${endCallReason}`, 'debug');
153
+ callingx.endCallWithReason(call_cid, endCallReason);
154
+ return;
155
+ }
156
+ const unsubscribeFunctions = [];
157
+ // check if service needs to be closed if accept/decline event was done on another device
158
+ const unsubscribe = callFromPush.on('all', event => {
159
+ const _canListenToWS = canListenToWS();
160
+ if (!_canListenToWS) {
161
+ logger.debug(`Closing fg service from event callCid: ${call_cid} canListenToWS: ${_canListenToWS}`, {
162
+ event
163
+ });
164
+ unsubscribeFunctions.forEach(fn => fn());
165
+ finishBackgroundTask();
166
+ return;
167
+ }
168
+ const {
169
+ mustEndCall: mustEndCallFromEvent,
170
+ endCallReason: endCallReasonFromEvent
171
+ } = shouldCallBeClosed(callFromPush, data);
172
+ if (mustEndCallFromEvent) {
173
+ logger.debug(`Closing fg service from event callCid: ${call_cid} canListenToWS: ${_canListenToWS} shouldCallBeClosed`, {
174
+ event
175
+ });
176
+ unsubscribeFunctions.forEach(fn => fn());
177
+ finishBackgroundTask();
178
+ callingx.endCallWithReason(call_cid, endCallReasonFromEvent);
179
+ }
149
180
  });
150
- unsubscribeFunctions.forEach(fn => fn());
151
- notifee.stopForegroundService();
152
- return;
153
- }
154
- _shouldCallBeClosed = shouldCallBeClosed(callFromPush);
155
- if (_shouldCallBeClosed) {
156
- videoLoggerSystem.getLogger('firebaseMessagingOnMessageHandler').debug(`Closing fg service from event callCid: ${call_cid} canListenToWS: ${_canListenToWS} shouldCallBeClosed: ${_shouldCallBeClosed}`, {
157
- event
181
+
182
+ // check if service needs to be closed if call was left
183
+ const stateSubscription = callFromPush.state.callingState$.subscribe(callingState => {
184
+ if (callingState === CallingState.IDLE || callingState === CallingState.LEFT) {
185
+ logger.debug(`Closing fg service from callingState callCid: ${call_cid} callingState: ${callingState}`);
186
+ unsubscribeFunctions.forEach(fn => fn());
187
+ callingx.log(`Ending call with callCid: ${call_cid} callingState: ${callingState}`, 'debug');
188
+ finishBackgroundTask();
189
+ }
158
190
  });
159
- unsubscribeFunctions.forEach(fn => fn());
160
- notifee.stopForegroundService();
161
- }
162
- });
163
- // check if service needs to be closed if call was left
164
- const subscription = callFromPush.state.callingState$.subscribe(callingState => {
165
- if (callingState === CallingState.IDLE || callingState === CallingState.LEFT) {
166
- videoLoggerSystem.getLogger('firebaseMessagingOnMessageHandler').debug(`Closing fg service from callingState callCid: ${call_cid} callingState: ${callingState}`);
167
- unsubscribeFunctions.forEach(fn => fn());
168
- notifee.stopForegroundService();
191
+ const endCallSubscription = callingx.addEventListener('endCall', async ({
192
+ callId
193
+ }) => {
194
+ unsubscribeFunctions.forEach(fn => fn());
195
+ try {
196
+ await callFromPush.leave({
197
+ reject: true,
198
+ reason: 'decline'
199
+ });
200
+ } catch (error) {
201
+ logger.error(`Failed to leave call with callCid: ${call_cid} error: ${error}`);
202
+ } finally {
203
+ callingx.log(`Ending call with callCid: ${call_cid} callId: ${callId}`, 'debug');
204
+ finishBackgroundTask();
205
+ }
206
+ });
207
+
208
+ //stop background task when app comes to foreground
209
+ const appStateSubscription = AppState.addEventListener('change', nextAppState => {
210
+ const _canListenToWS = canListenToWS();
211
+ callingx.log(`AppState changed to: ${nextAppState} for callCid: ${call_cid} canListenToWS: ${_canListenToWS}`, 'debug');
212
+ if (!_canListenToWS) {
213
+ unsubscribeFunctions.forEach(fn => fn());
214
+ finishBackgroundTask();
215
+ return;
216
+ }
217
+ });
218
+ unsubscribeFunctions.push(unsubscribe);
219
+ unsubscribeFunctions.push(() => stateSubscription.unsubscribe());
220
+ unsubscribeFunctions.push(() => endCallSubscription.remove());
221
+ unsubscribeFunctions.push(() => appStateSubscription.remove());
222
+ pushUnsubscriptionCallbacks.get(call_cid)?.forEach(cb => cb());
223
+ pushUnsubscriptionCallbacks.set(call_cid, unsubscribeFunctions);
224
+ } catch (error) {
225
+ callingx.log(`Failed to start background task with callCid: ${call_cid} error: ${error}`, 'error');
226
+ finishBackgroundTask();
169
227
  }
170
- });
171
- unsubscribeFunctions.push(unsubscribe);
172
- unsubscribeFunctions.push(() => subscription.unsubscribe());
173
- pushUnsubscriptionCallbacks.get(call_cid)?.forEach(cb => cb());
174
- pushUnsubscriptionCallbacks.set(call_cid, unsubscribeFunctions);
228
+ })();
175
229
  });
176
230
  });
177
231
  }
178
- const incomingCallChannel = pushConfig.android.incomingCallChannel;
179
- const incomingCallNotificationTextGetters = pushConfig.android.incomingCallNotificationTextGetters;
180
- if (!incomingCallChannel || !incomingCallNotificationTextGetters) {
181
- const logger = videoLoggerSystem.getLogger('firebaseMessagingOnMessageHandler');
182
- logger.error("Can't show incoming call notification as either or both incomingCallChannel and incomingCallNotificationTextGetters were not provided");
183
- return;
184
- }
185
- /*
186
- * Sound has to be set on channel level for android 8 and above and cant be updated later after creation!
187
- * For android 7 and below, sound should be set on notification level
188
- */
189
- // set default ringtone if not provided
190
- if (!incomingCallChannel.sound) {
191
- incomingCallChannel.sound = await getAndroidDefaultRingtoneUrl();
192
- }
193
- await notifee.createChannel(incomingCallChannel);
194
- const {
195
- getTitle,
196
- getBody,
197
- getAcceptButtonTitle,
198
- getDeclineButtonTitle
199
- } = incomingCallNotificationTextGetters;
200
- const createdUserName = data.created_by_display_name;
201
- const title = getTitle(createdUserName);
202
- const body = getBody(createdUserName);
203
- videoLoggerSystem.getLogger('firebaseMessagingOnMessageHandler').debug(`Displaying incoming call notification with callCid: ${call_cid} title: ${title} body: ${body} asForegroundService: ${asForegroundService}`);
204
- const channelId = incomingCallChannel.id;
205
- await notifee.displayNotification({
206
- id: call_cid,
207
- title: getTitle(createdUserName),
208
- body: getBody(createdUserName),
209
- data,
210
- android: {
211
- channelId,
212
- smallIcon: pushConfig.android.smallIcon,
213
- importance: 4,
214
- // high importance
215
- foregroundServiceTypes: getIncomingCallForegroundServiceTypes(),
216
- asForegroundService,
217
- ongoing: true,
218
- sound: incomingCallChannel.sound,
219
- vibrationPattern: incomingCallChannel.vibrationPattern,
220
- loopSound: true,
221
- pressAction: {
222
- id: 'default',
223
- launchActivity: 'default' // open the app when the notification is pressed
224
- },
225
- actions: [{
226
- title: getDeclineButtonTitle?.() ?? 'Decline',
227
- pressAction: {
228
- id: DECLINE_CALL_ACTION_ID
229
- }
230
- }, {
231
- title: getAcceptButtonTitle?.() ?? 'Accept',
232
- pressAction: {
233
- id: ACCEPT_CALL_ACTION_ID,
234
- launchActivity: 'default' // open the app when the notification is pressed
235
- }
236
- }],
237
- category: notifeeLib.AndroidCategory.CALL,
238
- fullScreenAction: {
239
- id: 'stream_ringing_incoming_call'
240
- },
241
- timeoutAfter: 60000 // 60 seconds, after which the notification will be dismissed automatically
242
- }
243
- });
232
+ await callingx.displayIncomingCall(call_cid, call_cid, callerName, hasVideo);
233
+ logger.debug(`Displaying incoming call notification with callCid: ${call_cid} asForegroundService: ${asForegroundService}`);
244
234
  if (asForegroundService) {
245
235
  // no need to check if call has be closed as that will be handled by the fg service
246
236
  return;
247
237
  }
248
-
249
- // check if call needs to be closed if accept/decline event was done
250
- // before the notification was shown
251
- const client = await pushConfig.createStreamVideoClient();
252
- if (!client) {
253
- return;
254
- }
255
238
  const callFromPush = await client.onRingingCall(call_cid);
256
- if (shouldCallBeClosed(callFromPush)) {
257
- videoLoggerSystem.getLogger('firebaseMessagingOnMessageHandler').debug(`Removing incoming call notification immediately with callCid: ${call_cid} as it should be closed`);
258
- notifee.cancelDisplayedNotification(call_cid);
239
+ const {
240
+ mustEndCall,
241
+ endCallReason
242
+ } = shouldCallBeClosed(callFromPush, data);
243
+ if (mustEndCall) {
244
+ logger.debug(`Removing incoming call notification immediately with callCid: ${call_cid} as it should be closed`);
245
+ callingx.endCallWithReason(call_cid, endCallReason);
259
246
  }
260
247
  } else {
248
+ const notifeeLib = getNotifeeLibThrowIfNotInstalledForPush();
249
+ const notifee = notifeeLib.default;
250
+ const settings = await notifee.getNotificationSettings();
251
+ if (settings.authorizationStatus !== 1) {
252
+ logger.debug(`Notification permission not granted, unable to post ${data.type} notifications`);
253
+ return;
254
+ }
255
+
261
256
  // the other types are call.live_started and call.notification
262
257
  const callChannel = pushConfig.android.callChannel;
263
258
  const callNotificationTextGetters = pushConfig.android.callNotificationTextGetters;
264
259
  if (!callChannel || !callNotificationTextGetters) {
265
- const logger = videoLoggerSystem.getLogger('firebaseMessagingOnMessageHandler');
266
260
  logger.debug("Can't show call notification as either or both callChannel and callNotificationTextGetters is not provided");
267
261
  return;
268
262
  }
@@ -277,10 +271,10 @@ export const firebaseDataHandler = async data => {
277
271
  const type = data.type;
278
272
  const title = getTitle(type, createdUserName);
279
273
  const body = getBody(type, createdUserName);
280
- videoLoggerSystem.getLogger('firebaseMessagingOnMessageHandler').debug(`Displaying NonRingingPushEvent ${type} notification with title: ${title} body: ${body}`);
274
+ logger.debug(`Displaying NonRingingPushEvent ${type} notification with title: ${title} body: ${body}`);
281
275
  await notifee.displayNotification({
282
- title: getTitle(type, createdUserName),
283
- body: getBody(type, createdUserName),
276
+ title,
277
+ body,
284
278
  data,
285
279
  android: {
286
280
  sound: callChannel.sound,
@@ -304,8 +298,7 @@ export const firebaseDataHandler = async data => {
304
298
  }
305
299
  };
306
300
  export const onAndroidNotifeeEvent = async ({
307
- event,
308
- isBackground
301
+ event
309
302
  }) => {
310
303
  if (Platform.OS !== 'android') return;
311
304
  const {
@@ -313,8 +306,7 @@ export const onAndroidNotifeeEvent = async ({
313
306
  detail
314
307
  } = event;
315
308
  const {
316
- notification,
317
- pressAction
309
+ notification
318
310
  } = detail;
319
311
  const notificationId = notification?.id;
320
312
  const data = notification?.data;
@@ -325,53 +317,10 @@ export const onAndroidNotifeeEvent = async ({
325
317
 
326
318
  // we can safely cast to string because the data is from "stream.video"
327
319
  const call_cid = data.call_cid;
328
- if (data.type === 'call.ring') {
329
- // check if we have observers for the call cid (this means the app is in the foreground state)
330
- const hasObservers = pushAcceptedIncomingCallCId$.observed && pushRejectedIncomingCallCId$.observed;
331
- const notifeeLib = getNotifeeLibThrowIfNotInstalledForPush();
332
- const notifee = notifeeLib.default;
333
- // Check if we need to decline the call
334
- const didPressDecline = type === notifeeLib.EventType.ACTION_PRESS && pressAction?.id === DECLINE_CALL_ACTION_ID;
335
- const didDismiss = type === notifeeLib.EventType.DISMISSED;
336
- const mustDecline = didPressDecline || didDismiss;
337
- // Check if we need to accept the call
338
- const mustAccept = type === notifeeLib.EventType.ACTION_PRESS && pressAction?.id === ACCEPT_CALL_ACTION_ID;
339
- if (mustAccept || mustDecline || type === notifeeLib.EventType.ACTION_PRESS) {
340
- videoLoggerSystem.getLogger('onAndroidNotifeeEvent').debug(`clearPushWSEventSubscriptions for callCId: ${call_cid} mustAccept: ${mustAccept} mustDecline: ${mustDecline}`);
341
- clearPushWSEventSubscriptions(call_cid);
342
- notifee.stopForegroundService();
343
- }
344
- if (mustAccept) {
345
- videoLoggerSystem.getLogger('onAndroidNotifeeEvent').debug(`pushAcceptedIncomingCallCId$ added with callCId: ${call_cid}`);
346
- pushAcceptedIncomingCallCId$.next(call_cid);
347
- // NOTE: accept will be handled by the app with rxjs observers as the app will go to foreground always
348
- } else if (mustDecline) {
349
- videoLoggerSystem.getLogger('onAndroidNotifeeEvent').debug(`pushRejectedIncomingCallCId$ added with callCId: ${call_cid}`);
350
- pushRejectedIncomingCallCId$.next(call_cid);
351
- if (hasObservers) {
352
- // if we had observers we can return here as the observers will handle the call as the app is in the foreground state
353
- videoLoggerSystem.getLogger('onAndroidNotifeeEvent').debug(`Skipped processCallFromPushInBackground for Declining call with callCId: ${call_cid} as the app is in the foreground state`);
354
- return;
355
- }
356
- videoLoggerSystem.getLogger('onAndroidNotifeeEvent').debug(`start processCallFromPushInBackground - Declining call with callCId: ${call_cid}`);
357
- await processCallFromPushInBackground(pushConfig, call_cid, 'decline');
358
- } else {
359
- if (type === notifeeLib.EventType.PRESS) {
360
- videoLoggerSystem.getLogger('onAndroidNotifeeEvent').debug(`pushTappedIncomingCallCId$ added with callCId: ${call_cid}`);
361
- pushTappedIncomingCallCId$.next(call_cid);
362
- // pressed state will be handled by the app with rxjs observers as the app will go to foreground always
363
- } else if (isBackground && type === notifeeLib.EventType.DELIVERED) {
364
- videoLoggerSystem.getLogger('onAndroidNotifeeEvent').debug(`pushAndroidBackgroundDeliveredIncomingCallCId$ added with callCId: ${call_cid}`);
365
- pushAndroidBackgroundDeliveredIncomingCallCId$.next(call_cid);
366
- // background delivered state will be handled by the app with rxjs observers as processing needs to happen only when app is opened
367
- }
368
- }
369
- } else {
370
- const notifeeLib = getNotifeeLibThrowIfNotInstalledForPush();
371
- if (type === notifeeLib.EventType.PRESS) {
372
- videoLoggerSystem.getLogger('onAndroidNotifeeEvent').debug(`onTapNonRingingCallNotification with callCId: ${call_cid}`);
373
- pushConfig.onTapNonRingingCallNotification?.(call_cid, data.type);
374
- }
320
+ const notifeeLib = getNotifeeLibThrowIfNotInstalledForPush();
321
+ if (type === notifeeLib.EventType.PRESS) {
322
+ videoLoggerSystem.getLogger('onAndroidNotifeeEvent').debug(`onTapNonRingingCallNotification with callCId: ${call_cid}`);
323
+ pushConfig.onTapNonRingingCallNotification?.(call_cid, data.type);
375
324
  }
376
325
  };
377
326
  //# sourceMappingURL=android.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["CallingState","videoLoggerSystem","AppState","Platform","getExpoNotificationsLib","getExpoNotificationsLibNoThrow","getFirebaseMessagingLib","getFirebaseMessagingLibNoThrow","getIncomingCallForegroundServiceTypes","getNotifeeLibThrowIfNotInstalledForPush","pushAcceptedIncomingCallCId$","pushAndroidBackgroundDeliveredIncomingCallCId$","pushNonRingingCallData$","pushRejectedIncomingCallCId$","pushTappedIncomingCallCId$","pushUnsubscriptionCallbacks","canAddPushWSSubscriptionsRef","clearPushWSEventSubscriptions","processCallFromPushInBackground","shouldCallBeEnded","setPushLogoutCallback","getAndroidDefaultRingtoneUrl","StreamVideoRN","ACCEPT_CALL_ACTION_ID","DECLINE_CALL_ACTION_ID","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","isExpo","expoNotificationsLib","onTapNonRingingCallNotification","subscription","addPushTokenListener","devicePushToken","data","remove","getDevicePushTokenAsync","messaging","incomingCallChannel","unsubscribe","onTokenRefresh","refreshedToken","getToken","firebaseDataHandler","getConfig","push","sender","notifeeLib","notifee","default","settings","getNotificationSettings","authorizationStatus","type","call_cid","created_by_id","receiver_id","video_client","createStreamVideoClient","onRingingCall","shouldCallBeClosed","callToCheck","mustEndCall","canListenToWS","current","currentState","asForegroundService","registerForegroundService","Promise","stopForegroundService","callFromPush","_shouldCallBeClosed","unsubscribeFunctions","on","event","_canListenToWS","forEach","fn","state","callingState$","subscribe","callingState","IDLE","LEFT","get","cb","set","incomingCallNotificationTextGetters","error","sound","createChannel","getTitle","getBody","getAcceptButtonTitle","getDeclineButtonTitle","createdUserName","created_by_display_name","title","body","channelId","displayNotification","smallIcon","importance","foregroundServiceTypes","ongoing","vibrationPattern","loopSound","pressAction","launchActivity","actions","category","AndroidCategory","CALL","fullScreenAction","timeoutAfter","cancelDisplayedNotification","callChannel","callNotificationTextGetters","cid","next","onAndroidNotifeeEvent","isBackground","detail","notification","notificationId","hasObservers","observed","didPressDecline","EventType","ACTION_PRESS","didDismiss","DISMISSED","mustDecline","mustAccept","PRESS","DELIVERED"],"sourceRoot":"../../../../src","sources":["utils/push/android.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["CallingState","videoLoggerSystem","AppState","Platform","getExpoNotificationsLib","getExpoNotificationsLibNoThrow","getFirebaseMessagingLib","getFirebaseMessagingLibNoThrow","getNotifeeLibThrowIfNotInstalledForPush","pushNonRingingCallData$","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","isExpo","expoNotificationsLib","onTapNonRingingCallNotification","subscription","addPushTokenListener","devicePushToken","data","remove","getDevicePushTokenAsync","messaging","unsubscribe","onTokenRefresh","refreshedToken","getToken","firebaseDataHandler","getConfig","push","sender","type","call_cid","callingx","canPostNotifications","createStreamVideoClient","shouldRejectCallWhenBusy","hasRegisteredCall","asForegroundService","callerName","created_by_display_name","hasVideo","video","registerBackgroundTask","_","stopTask","Promise","resolve","finishBackgroundTask","log","undefined","_client","callFromPush","onRingingCall","mustEndCall","endCallReason","endCallWithReason","unsubscribeFunctions","on","event","_canListenToWS","forEach","fn","mustEndCallFromEvent","endCallReasonFromEvent","stateSubscription","state","callingState$","subscribe","callingState","IDLE","LEFT","endCallSubscription","addEventListener","callId","leave","reject","reason","error","appStateSubscription","nextAppState","get","cb","set","displayIncomingCall","notifeeLib","notifee","default","settings","getNotificationSettings","authorizationStatus","callChannel","callNotificationTextGetters","createChannel","channelId","getTitle","getBody","createdUserName","title","body","displayNotification","sound","smallIcon","vibrationPattern","importance","pressAction","launchActivity","timeoutAfter","cid","next","onAndroidNotifeeEvent","detail","notification","notificationId","EventType","PRESS"],"sourceRoot":"../../../../src","sources":["utils/push/android.ts"],"mappings":"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","ignoreList":[]}
@@ -1,9 +1,8 @@
1
- import { AppState, NativeModules, Platform } from 'react-native';
2
- import { getCallKeepLib, getVoipPushNotificationLib } from '../libs';
3
- import { voipPushNotificationCallCId$ } from './rxSubjects';
1
+ import { Platform } from 'react-native';
4
2
  import { pushUnsubscriptionCallbacks } from './constants';
5
- import { canAddPushWSSubscriptionsRef, shouldCallBeEnded } from './utils';
3
+ import { canListenToWS, shouldCallBeClosed } from './utils';
6
4
  import { videoLoggerSystem } from '@stream-io/video-client';
5
+ import { getCallingxLib } from '../libs/callingx';
7
6
  export const onVoipNotificationReceived = async (notification, pushConfig) => {
8
7
  /* --- Example payload ---
9
8
  {
@@ -27,6 +26,7 @@ export const onVoipNotificationReceived = async (notification, pushConfig) => {
27
26
  "version": "v2"
28
27
  }
29
28
  } */
29
+ const logger = videoLoggerSystem.getLogger('callingx - onVoipNotificationReceived');
30
30
  const sender = notification?.stream?.sender;
31
31
  const type = notification?.stream?.type;
32
32
  // do not process any other notifications other than stream.video or ringing
@@ -37,47 +37,31 @@ export const onVoipNotificationReceived = async (notification, pushConfig) => {
37
37
  if (!call_cid || Platform.OS !== 'ios' || !pushConfig.ios.pushProviderName) {
38
38
  return;
39
39
  }
40
- const logger = videoLoggerSystem.getLogger('setupIosVoipPushEvents');
40
+ const callingx = getCallingxLib();
41
+ if (callingx.isCallTracked(call_cid)) {
42
+ //same call_cid is already tracked, so we skip the notification
43
+ logger.debug(`the same call_cid ${call_cid} is already tracked, skipping the call.ring notification`);
44
+ return;
45
+ }
41
46
  const client = await pushConfig.createStreamVideoClient();
42
47
  if (!client) {
43
48
  logger.debug('client not found, not processing call.ring voip push notification');
44
49
  return;
45
50
  }
46
- const shouldRejectCallWhenBusy = client['rejectCallWhenBusy'] ?? false;
47
- if (shouldRejectCallWhenBusy) {
48
- // inform the iOS native module that we should reject call when busy
49
- NativeModules.StreamVideoReactNative.setShouldRejectCallWhenBusy(shouldRejectCallWhenBusy);
50
- }
51
51
  const callFromPush = await client.onRingingCall(call_cid);
52
- let uuid = '';
53
- try {
54
- uuid = await NativeModules?.StreamVideoReactNative?.getIncomingCallUUid(call_cid);
55
- } catch (error) {
56
- logger.error('Error in getting call uuid from native module', error);
57
- }
58
- if (!uuid) {
59
- logger.error(`Not processing call.ring push notification, as no uuid found for call_cid: ${call_cid}`);
60
- return;
61
- }
62
- const created_by_id = notification?.stream?.created_by_id;
63
- const receiver_id = notification?.stream?.receiver_id;
64
52
  function closeCallIfNecessary() {
65
53
  const {
66
54
  mustEndCall,
67
- callkeepReason
68
- } = shouldCallBeEnded(callFromPush, created_by_id, receiver_id);
55
+ endCallReason
56
+ } = shouldCallBeClosed(callFromPush, notification?.stream);
69
57
  if (mustEndCall) {
70
- const callkeep = getCallKeepLib();
71
- logger.debug(`callkeep.reportEndCallWithUUID for uuid: ${uuid}, call_cid: ${call_cid}, reason: ${callkeepReason}`);
72
- callkeep.reportEndCallWithUUID(uuid, callkeepReason);
73
- const voipPushNotification = getVoipPushNotificationLib();
74
- voipPushNotification.onVoipNotificationCompleted(uuid);
58
+ logger.debug(`callingx.endCallWithReason for call_cid: ${call_cid} endCallReason: ${endCallReason}`);
59
+ callingx.endCallWithReason(call_cid, endCallReason);
75
60
  return true;
76
61
  }
77
62
  return false;
78
63
  }
79
64
  const closed = closeCallIfNecessary();
80
- const canListenToWS = () => canAddPushWSSubscriptionsRef.current && AppState.currentState !== 'active';
81
65
  if (!closed && canListenToWS()) {
82
66
  const unsubscribe = callFromPush.on('all', event => {
83
67
  const _canListenToWS = canListenToWS();
@@ -95,9 +79,8 @@ export const onVoipNotificationReceived = async (notification, pushConfig) => {
95
79
  pushUnsubscriptionCallbacks.get(call_cid)?.forEach(cb => cb());
96
80
  pushUnsubscriptionCallbacks.set(call_cid, [unsubscribe]);
97
81
  }
98
- // send the info to this subject, it is listened by callkeep events
99
- // callkeep events will then accept/reject the call
100
- logger.debug(`call_cid:${call_cid} uuid:${uuid} received and processed from call.ring push notification`);
101
- voipPushNotificationCallCId$.next(call_cid);
82
+
83
+ // callingx event listeners (setupCallingExpEvents) will handle accept/reject
84
+ logger.debug(`call_cid:${call_cid} received and processed from call.ring push notification`);
102
85
  };
103
86
  //# sourceMappingURL=ios.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["AppState","NativeModules","Platform","getCallKeepLib","getVoipPushNotificationLib","voipPushNotificationCallCId$","pushUnsubscriptionCallbacks","canAddPushWSSubscriptionsRef","shouldCallBeEnded","videoLoggerSystem","onVoipNotificationReceived","notification","pushConfig","sender","stream","type","call_cid","OS","ios","pushProviderName","logger","getLogger","client","createStreamVideoClient","debug","shouldRejectCallWhenBusy","StreamVideoReactNative","setShouldRejectCallWhenBusy","callFromPush","onRingingCall","uuid","getIncomingCallUUid","error","created_by_id","receiver_id","closeCallIfNecessary","mustEndCall","callkeepReason","callkeep","reportEndCallWithUUID","voipPushNotification","onVoipNotificationCompleted","closed","canListenToWS","current","currentState","unsubscribe","on","event","_canListenToWS","_closed","get","forEach","cb","set","next"],"sourceRoot":"../../../../../src","sources":["utils/push/internal/ios.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Platform","pushUnsubscriptionCallbacks","canListenToWS","shouldCallBeClosed","videoLoggerSystem","getCallingxLib","onVoipNotificationReceived","notification","pushConfig","logger","getLogger","sender","stream","type","call_cid","OS","ios","pushProviderName","callingx","isCallTracked","debug","client","createStreamVideoClient","callFromPush","onRingingCall","closeCallIfNecessary","mustEndCall","endCallReason","endCallWithReason","closed","unsubscribe","on","event","_canListenToWS","_closed","get","forEach","cb","set"],"sourceRoot":"../../../../../src","sources":["utils/push/internal/ios.ts"],"mappings":"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","ignoreList":[]}