@stream-io/video-react-native-sdk 1.41.0 → 1.43.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 (98) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/android/src/main/java/com/streamvideo/reactnative/audio/AudioDeviceManager.kt +79 -54
  3. package/android/src/main/java/com/streamvideo/reactnative/audio/utils/AudioManagerUtil.kt +6 -2
  4. package/android/src/main/java/com/streamvideo/reactnative/callmanager/StreamInCallManagerModule.kt +3 -3
  5. package/dist/commonjs/components/Call/RingingCallContent/OutgoingCall.js.map +1 -1
  6. package/dist/commonjs/components/Participant/FloatingParticipantView/index.js.map +1 -1
  7. package/dist/commonjs/contexts/ThemeContext.js +10 -0
  8. package/dist/commonjs/contexts/ThemeContext.js.map +1 -1
  9. package/dist/commonjs/hooks/index.js +11 -0
  10. package/dist/commonjs/hooks/index.js.map +1 -1
  11. package/dist/commonjs/hooks/push/useCallingExpWithCallingStateEffect.js +73 -0
  12. package/dist/commonjs/hooks/push/useCallingExpWithCallingStateEffect.js.map +1 -1
  13. package/dist/commonjs/hooks/useAudioDeviceStatus.js +76 -0
  14. package/dist/commonjs/hooks/useAudioDeviceStatus.js.map +1 -0
  15. package/dist/commonjs/hooks/useScreenShareButton.js.map +1 -1
  16. package/dist/commonjs/modules/call-manager/CallManager.js +94 -47
  17. package/dist/commonjs/modules/call-manager/CallManager.js.map +1 -1
  18. package/dist/commonjs/providers/NoiseCancellation/lib.js.map +1 -1
  19. package/dist/commonjs/providers/StreamCall/AudioInterruptionTracer.js.map +1 -1
  20. package/dist/commonjs/utils/internal/callingx/callingx.js +0 -7
  21. package/dist/commonjs/utils/internal/callingx/callingx.js.map +1 -1
  22. package/dist/commonjs/utils/push/setupCallingExpEvents.js +0 -2
  23. package/dist/commonjs/utils/push/setupCallingExpEvents.js.map +1 -1
  24. package/dist/commonjs/version.js +1 -1
  25. package/dist/module/components/Call/RingingCallContent/OutgoingCall.js.map +1 -1
  26. package/dist/module/components/Participant/FloatingParticipantView/index.js.map +1 -1
  27. package/dist/module/contexts/ThemeContext.js +10 -0
  28. package/dist/module/contexts/ThemeContext.js.map +1 -1
  29. package/dist/module/hooks/index.js +1 -0
  30. package/dist/module/hooks/index.js.map +1 -1
  31. package/dist/module/hooks/push/useCallingExpWithCallingStateEffect.js +73 -0
  32. package/dist/module/hooks/push/useCallingExpWithCallingStateEffect.js.map +1 -1
  33. package/dist/module/hooks/useAudioDeviceStatus.js +71 -0
  34. package/dist/module/hooks/useAudioDeviceStatus.js.map +1 -0
  35. package/dist/module/hooks/useScreenShareButton.js.map +1 -1
  36. package/dist/module/modules/call-manager/CallManager.js +94 -47
  37. package/dist/module/modules/call-manager/CallManager.js.map +1 -1
  38. package/dist/module/providers/NoiseCancellation/lib.js.map +1 -1
  39. package/dist/module/providers/StreamCall/AudioInterruptionTracer.js.map +1 -1
  40. package/dist/module/utils/internal/callingx/callingx.js +0 -7
  41. package/dist/module/utils/internal/callingx/callingx.js.map +1 -1
  42. package/dist/module/utils/push/setupCallingExpEvents.js +0 -2
  43. package/dist/module/utils/push/setupCallingExpEvents.js.map +1 -1
  44. package/dist/module/version.js +1 -1
  45. package/dist/typescript/components/Participant/FloatingParticipantView/index.d.ts.map +1 -1
  46. package/dist/typescript/contexts/ThemeContext.d.ts +10 -1
  47. package/dist/typescript/contexts/ThemeContext.d.ts.map +1 -1
  48. package/dist/typescript/hooks/index.d.ts +1 -0
  49. package/dist/typescript/hooks/index.d.ts.map +1 -1
  50. package/dist/typescript/hooks/push/useCallingExpWithCallingStateEffect.d.ts.map +1 -1
  51. package/dist/typescript/hooks/useAudioDeviceStatus.d.ts +21 -0
  52. package/dist/typescript/hooks/useAudioDeviceStatus.d.ts.map +1 -0
  53. package/dist/typescript/hooks/useScreenShareButton.d.ts +2 -1
  54. package/dist/typescript/hooks/useScreenShareButton.d.ts.map +1 -1
  55. package/dist/typescript/modules/call-manager/CallManager.d.ts +25 -11
  56. package/dist/typescript/modules/call-manager/CallManager.d.ts.map +1 -1
  57. package/dist/typescript/modules/call-manager/types.d.ts +29 -3
  58. package/dist/typescript/modules/call-manager/types.d.ts.map +1 -1
  59. package/dist/typescript/providers/NoiseCancellation/lib.d.ts.map +1 -1
  60. package/dist/typescript/providers/StreamCall/AudioInterruptionTracer.d.ts.map +1 -1
  61. package/dist/typescript/utils/StreamVideoRN/types.d.ts.map +1 -1
  62. package/dist/typescript/utils/internal/callingx/callingx.d.ts.map +1 -1
  63. package/dist/typescript/utils/push/setupCallingExpEvents.d.ts.map +1 -1
  64. package/dist/typescript/version.d.ts +1 -1
  65. package/expo-config-plugin/dist/index.js +2 -0
  66. package/expo-config-plugin/dist/withAndroidMessagingService.js +313 -0
  67. package/expo-config-plugin/dist/withIosScreenCapture/addBroadcastExtensionXcodeTarget.js +84 -2
  68. package/expo-config-plugin/dist/withIosScreenCapture/withPlistUpdates.js +3 -6
  69. package/expo-config-plugin/dist/withIosScreenCapture/withTarget.js +6 -4
  70. package/expo-config-plugin/static/AudioUploader.swift +230 -0
  71. package/expo-config-plugin/static/SampleHandler.swift +67 -14
  72. package/ios/StreamInCallManager.m +7 -0
  73. package/ios/StreamInCallManager.swift +258 -15
  74. package/ios/StreamVideoReactNative.m +15 -5
  75. package/package.json +27 -25
  76. package/src/components/Call/RingingCallContent/OutgoingCall.tsx +1 -2
  77. package/src/components/Participant/FloatingParticipantView/index.tsx +1 -4
  78. package/src/contexts/ThemeContext.tsx +10 -1
  79. package/src/hooks/index.ts +1 -0
  80. package/src/hooks/push/useCallingExpWithCallingStateEffect.ts +95 -0
  81. package/src/hooks/useAudioDeviceStatus.ts +90 -0
  82. package/src/hooks/useScreenShareButton.ts +2 -1
  83. package/src/modules/call-manager/CallManager.ts +123 -66
  84. package/src/modules/call-manager/native-module.d.ts +14 -7
  85. package/src/modules/call-manager/types.ts +30 -3
  86. package/src/providers/NoiseCancellation/lib.ts +1 -2
  87. package/src/providers/StreamCall/AudioInterruptionTracer.tsx +1 -2
  88. package/src/utils/StreamVideoRN/types.ts +1 -3
  89. package/src/utils/internal/callingx/callingx.ts +0 -8
  90. package/src/utils/push/setupCallingExpEvents.ts +0 -2
  91. package/src/version.ts +1 -1
  92. package/dist/commonjs/utils/internal/callingx/audioSessionPromise.js +0 -68
  93. package/dist/commonjs/utils/internal/callingx/audioSessionPromise.js.map +0 -1
  94. package/dist/module/utils/internal/callingx/audioSessionPromise.js +0 -63
  95. package/dist/module/utils/internal/callingx/audioSessionPromise.js.map +0 -1
  96. package/dist/typescript/utils/internal/callingx/audioSessionPromise.d.ts +0 -16
  97. package/dist/typescript/utils/internal/callingx/audioSessionPromise.d.ts.map +0 -1
  98. package/src/utils/internal/callingx/audioSessionPromise.ts +0 -65
@@ -1,68 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.resolvePendingAudioSession = resolvePendingAudioSession;
7
- exports.waitForAudioSessionActivation = waitForAudioSessionActivation;
8
- var _videoClient = require("@stream-io/video-client");
9
- /**
10
- * Module to manage pending promise for audio session activation.
11
- * Used to wait for iOS CallKit's didActivateAudioSession event after starting a call.
12
- */
13
-
14
- const logger = _videoClient.videoLoggerSystem.getLogger('callingx');
15
- let pendingResolve = null;
16
- let pendingTimeout = null;
17
- let resolveSetTime = null;
18
- /**
19
- * Flag to check if the audio session is already activated.
20
- * This solves race condition for a cold start case, when the audio session is activated before the promise is created.
21
- */
22
- let isAudioSessionAlreadyActivated = false;
23
- const AUDIO_SESSION_TIMEOUT_MS = 5000;
24
-
25
- /**
26
- * Creates a promise that resolves when the audio session is activated,
27
- * or after a timeout to prevent hanging indefinitely.
28
- * @returns Promise that resolves when audio session is activated or timeout occurs
29
- */
30
- function waitForAudioSessionActivation() {
31
- if (isAudioSessionAlreadyActivated) {
32
- isAudioSessionAlreadyActivated = false;
33
- return Promise.resolve();
34
- }
35
- resolveSetTime = Date.now();
36
- return new Promise(resolve => {
37
- pendingResolve = resolve;
38
- pendingTimeout = setTimeout(() => {
39
- // Resolve on timeout to prevent hanging
40
- logger.debug('audioSessionPromise timed out');
41
- resolvePendingAudioSession();
42
- }, AUDIO_SESSION_TIMEOUT_MS);
43
- });
44
- }
45
-
46
- /**
47
- * Resolves the pending audio session activation promise.
48
- * Called when the didActivateAudioSession event fires or on timeout.
49
- */
50
- function resolvePendingAudioSession() {
51
- if (pendingTimeout) {
52
- clearTimeout(pendingTimeout);
53
- pendingTimeout = null;
54
- }
55
- if (pendingResolve) {
56
- pendingResolve();
57
- if (resolveSetTime) {
58
- const elapsedTime = Date.now() - resolveSetTime;
59
- resolveSetTime = null;
60
- logger.debug(`audioSessionPromise resolved in ${elapsedTime}ms`);
61
- }
62
- pendingResolve = null;
63
- isAudioSessionAlreadyActivated = false;
64
- } else {
65
- isAudioSessionAlreadyActivated = true;
66
- }
67
- }
68
- //# sourceMappingURL=audioSessionPromise.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_videoClient","require","logger","videoLoggerSystem","getLogger","pendingResolve","pendingTimeout","resolveSetTime","isAudioSessionAlreadyActivated","AUDIO_SESSION_TIMEOUT_MS","waitForAudioSessionActivation","Promise","resolve","Date","now","setTimeout","debug","resolvePendingAudioSession","clearTimeout","elapsedTime"],"sourceRoot":"../../../../../src","sources":["utils/internal/callingx/audioSessionPromise.ts"],"mappings":";;;;;;;AAKA,IAAAA,YAAA,GAAAC,OAAA;AALA;AACA;AACA;AACA;;AAIA,MAAMC,MAAM,GAAGC,8BAAiB,CAACC,SAAS,CAAC,UAAU,CAAC;AAEtD,IAAIC,cAAmC,GAAG,IAAI;AAC9C,IAAIC,cAAoD,GAAG,IAAI;AAC/D,IAAIC,cAA6B,GAAG,IAAI;AACxC;AACA;AACA;AACA;AACA,IAAIC,8BAA8B,GAAG,KAAK;AAE1C,MAAMC,wBAAwB,GAAG,IAAI;;AAErC;AACA;AACA;AACA;AACA;AACO,SAASC,6BAA6BA,CAAA,EAAkB;EAC7D,IAAIF,8BAA8B,EAAE;IAClCA,8BAA8B,GAAG,KAAK;IACtC,OAAOG,OAAO,CAACC,OAAO,CAAC,CAAC;EAC1B;EAEAL,cAAc,GAAGM,IAAI,CAACC,GAAG,CAAC,CAAC;EAC3B,OAAO,IAAIH,OAAO,CAAEC,OAAO,IAAK;IAC9BP,cAAc,GAAGO,OAAO;IACxBN,cAAc,GAAGS,UAAU,CAAC,MAAM;MAChC;MACAb,MAAM,CAACc,KAAK,CAAC,+BAA+B,CAAC;MAC7CC,0BAA0B,CAAC,CAAC;IAC9B,CAAC,EAAER,wBAAwB,CAAC;EAC9B,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACO,SAASQ,0BAA0BA,CAAA,EAAS;EACjD,IAAIX,cAAc,EAAE;IAClBY,YAAY,CAACZ,cAAc,CAAC;IAC5BA,cAAc,GAAG,IAAI;EACvB;EAEA,IAAID,cAAc,EAAE;IAClBA,cAAc,CAAC,CAAC;IAChB,IAAIE,cAAc,EAAE;MAClB,MAAMY,WAAW,GAAGN,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGP,cAAc;MAC/CA,cAAc,GAAG,IAAI;MACrBL,MAAM,CAACc,KAAK,CAAC,mCAAmCG,WAAW,IAAI,CAAC;IAClE;IACAd,cAAc,GAAG,IAAI;IACrBG,8BAA8B,GAAG,KAAK;EACxC,CAAC,MAAM;IACLA,8BAA8B,GAAG,IAAI;EACvC;AACF","ignoreList":[]}
@@ -1,63 +0,0 @@
1
- "use strict";
2
-
3
- /**
4
- * Module to manage pending promise for audio session activation.
5
- * Used to wait for iOS CallKit's didActivateAudioSession event after starting a call.
6
- */
7
-
8
- import { videoLoggerSystem } from '@stream-io/video-client';
9
- const logger = videoLoggerSystem.getLogger('callingx');
10
- let pendingResolve = null;
11
- let pendingTimeout = null;
12
- let resolveSetTime = null;
13
- /**
14
- * Flag to check if the audio session is already activated.
15
- * This solves race condition for a cold start case, when the audio session is activated before the promise is created.
16
- */
17
- let isAudioSessionAlreadyActivated = false;
18
- const AUDIO_SESSION_TIMEOUT_MS = 5000;
19
-
20
- /**
21
- * Creates a promise that resolves when the audio session is activated,
22
- * or after a timeout to prevent hanging indefinitely.
23
- * @returns Promise that resolves when audio session is activated or timeout occurs
24
- */
25
- export function waitForAudioSessionActivation() {
26
- if (isAudioSessionAlreadyActivated) {
27
- isAudioSessionAlreadyActivated = false;
28
- return Promise.resolve();
29
- }
30
- resolveSetTime = Date.now();
31
- return new Promise(resolve => {
32
- pendingResolve = resolve;
33
- pendingTimeout = setTimeout(() => {
34
- // Resolve on timeout to prevent hanging
35
- logger.debug('audioSessionPromise timed out');
36
- resolvePendingAudioSession();
37
- }, AUDIO_SESSION_TIMEOUT_MS);
38
- });
39
- }
40
-
41
- /**
42
- * Resolves the pending audio session activation promise.
43
- * Called when the didActivateAudioSession event fires or on timeout.
44
- */
45
- export function resolvePendingAudioSession() {
46
- if (pendingTimeout) {
47
- clearTimeout(pendingTimeout);
48
- pendingTimeout = null;
49
- }
50
- if (pendingResolve) {
51
- pendingResolve();
52
- if (resolveSetTime) {
53
- const elapsedTime = Date.now() - resolveSetTime;
54
- resolveSetTime = null;
55
- logger.debug(`audioSessionPromise resolved in ${elapsedTime}ms`);
56
- }
57
- pendingResolve = null;
58
- isAudioSessionAlreadyActivated = false;
59
- } else {
60
- isAudioSessionAlreadyActivated = true;
61
- }
62
- }
63
- //# sourceMappingURL=audioSessionPromise.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["videoLoggerSystem","logger","getLogger","pendingResolve","pendingTimeout","resolveSetTime","isAudioSessionAlreadyActivated","AUDIO_SESSION_TIMEOUT_MS","waitForAudioSessionActivation","Promise","resolve","Date","now","setTimeout","debug","resolvePendingAudioSession","clearTimeout","elapsedTime"],"sourceRoot":"../../../../../src","sources":["utils/internal/callingx/audioSessionPromise.ts"],"mappings":";;AAAA;AACA;AACA;AACA;;AAEA,SAASA,iBAAiB,QAAQ,yBAAyB;AAE3D,MAAMC,MAAM,GAAGD,iBAAiB,CAACE,SAAS,CAAC,UAAU,CAAC;AAEtD,IAAIC,cAAmC,GAAG,IAAI;AAC9C,IAAIC,cAAoD,GAAG,IAAI;AAC/D,IAAIC,cAA6B,GAAG,IAAI;AACxC;AACA;AACA;AACA;AACA,IAAIC,8BAA8B,GAAG,KAAK;AAE1C,MAAMC,wBAAwB,GAAG,IAAI;;AAErC;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,6BAA6BA,CAAA,EAAkB;EAC7D,IAAIF,8BAA8B,EAAE;IAClCA,8BAA8B,GAAG,KAAK;IACtC,OAAOG,OAAO,CAACC,OAAO,CAAC,CAAC;EAC1B;EAEAL,cAAc,GAAGM,IAAI,CAACC,GAAG,CAAC,CAAC;EAC3B,OAAO,IAAIH,OAAO,CAAEC,OAAO,IAAK;IAC9BP,cAAc,GAAGO,OAAO;IACxBN,cAAc,GAAGS,UAAU,CAAC,MAAM;MAChC;MACAZ,MAAM,CAACa,KAAK,CAAC,+BAA+B,CAAC;MAC7CC,0BAA0B,CAAC,CAAC;IAC9B,CAAC,EAAER,wBAAwB,CAAC;EAC9B,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASQ,0BAA0BA,CAAA,EAAS;EACjD,IAAIX,cAAc,EAAE;IAClBY,YAAY,CAACZ,cAAc,CAAC;IAC5BA,cAAc,GAAG,IAAI;EACvB;EAEA,IAAID,cAAc,EAAE;IAClBA,cAAc,CAAC,CAAC;IAChB,IAAIE,cAAc,EAAE;MAClB,MAAMY,WAAW,GAAGN,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGP,cAAc;MAC/CA,cAAc,GAAG,IAAI;MACrBJ,MAAM,CAACa,KAAK,CAAC,mCAAmCG,WAAW,IAAI,CAAC;IAClE;IACAd,cAAc,GAAG,IAAI;IACrBG,8BAA8B,GAAG,KAAK;EACxC,CAAC,MAAM;IACLA,8BAA8B,GAAG,IAAI;EACvC;AACF","ignoreList":[]}
@@ -1,16 +0,0 @@
1
- /**
2
- * Module to manage pending promise for audio session activation.
3
- * Used to wait for iOS CallKit's didActivateAudioSession event after starting a call.
4
- */
5
- /**
6
- * Creates a promise that resolves when the audio session is activated,
7
- * or after a timeout to prevent hanging indefinitely.
8
- * @returns Promise that resolves when audio session is activated or timeout occurs
9
- */
10
- export declare function waitForAudioSessionActivation(): Promise<void>;
11
- /**
12
- * Resolves the pending audio session activation promise.
13
- * Called when the didActivateAudioSession event fires or on timeout.
14
- */
15
- export declare function resolvePendingAudioSession(): void;
16
- //# sourceMappingURL=audioSessionPromise.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"audioSessionPromise.d.ts","sourceRoot":"","sources":["../../../../../src/utils/internal/callingx/audioSessionPromise.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiBH;;;;GAIG;AACH,wBAAgB,6BAA6B,IAAI,OAAO,CAAC,IAAI,CAAC,CAe7D;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,IAAI,IAAI,CAkBjD"}
@@ -1,65 +0,0 @@
1
- /**
2
- * Module to manage pending promise for audio session activation.
3
- * Used to wait for iOS CallKit's didActivateAudioSession event after starting a call.
4
- */
5
-
6
- import { videoLoggerSystem } from '@stream-io/video-client';
7
-
8
- const logger = videoLoggerSystem.getLogger('callingx');
9
-
10
- let pendingResolve: (() => void) | null = null;
11
- let pendingTimeout: ReturnType<typeof setTimeout> | null = null;
12
- let resolveSetTime: number | null = null;
13
- /**
14
- * Flag to check if the audio session is already activated.
15
- * This solves race condition for a cold start case, when the audio session is activated before the promise is created.
16
- */
17
- let isAudioSessionAlreadyActivated = false;
18
-
19
- const AUDIO_SESSION_TIMEOUT_MS = 5000;
20
-
21
- /**
22
- * Creates a promise that resolves when the audio session is activated,
23
- * or after a timeout to prevent hanging indefinitely.
24
- * @returns Promise that resolves when audio session is activated or timeout occurs
25
- */
26
- export function waitForAudioSessionActivation(): Promise<void> {
27
- if (isAudioSessionAlreadyActivated) {
28
- isAudioSessionAlreadyActivated = false;
29
- return Promise.resolve();
30
- }
31
-
32
- resolveSetTime = Date.now();
33
- return new Promise((resolve) => {
34
- pendingResolve = resolve;
35
- pendingTimeout = setTimeout(() => {
36
- // Resolve on timeout to prevent hanging
37
- logger.debug('audioSessionPromise timed out');
38
- resolvePendingAudioSession();
39
- }, AUDIO_SESSION_TIMEOUT_MS);
40
- });
41
- }
42
-
43
- /**
44
- * Resolves the pending audio session activation promise.
45
- * Called when the didActivateAudioSession event fires or on timeout.
46
- */
47
- export function resolvePendingAudioSession(): void {
48
- if (pendingTimeout) {
49
- clearTimeout(pendingTimeout);
50
- pendingTimeout = null;
51
- }
52
-
53
- if (pendingResolve) {
54
- pendingResolve();
55
- if (resolveSetTime) {
56
- const elapsedTime = Date.now() - resolveSetTime;
57
- resolveSetTime = null;
58
- logger.debug(`audioSessionPromise resolved in ${elapsedTime}ms`);
59
- }
60
- pendingResolve = null;
61
- isAudioSessionAlreadyActivated = false;
62
- } else {
63
- isAudioSessionAlreadyActivated = true;
64
- }
65
- }