@stream-io/video-react-native-sdk 1.10.6 → 1.10.8

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 (25) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/commonjs/components/Call/CallContent/CallContent.js +5 -6
  3. package/dist/commonjs/components/Call/CallContent/CallContent.js.map +1 -1
  4. package/dist/commonjs/hooks/internal/useCallMediaStreamCleanup.js +1 -0
  5. package/dist/commonjs/hooks/internal/useCallMediaStreamCleanup.js.map +1 -1
  6. package/dist/commonjs/providers/StreamCall/AppStateListener.js +19 -11
  7. package/dist/commonjs/providers/StreamCall/AppStateListener.js.map +1 -1
  8. package/dist/commonjs/version.js +1 -1
  9. package/dist/module/components/Call/CallContent/CallContent.js +6 -7
  10. package/dist/module/components/Call/CallContent/CallContent.js.map +1 -1
  11. package/dist/module/hooks/internal/useCallMediaStreamCleanup.js +2 -1
  12. package/dist/module/hooks/internal/useCallMediaStreamCleanup.js.map +1 -1
  13. package/dist/module/providers/StreamCall/AppStateListener.js +20 -12
  14. package/dist/module/providers/StreamCall/AppStateListener.js.map +1 -1
  15. package/dist/module/version.js +1 -1
  16. package/dist/typescript/components/Call/CallContent/CallContent.d.ts +9 -1
  17. package/dist/typescript/components/Call/CallContent/CallContent.d.ts.map +1 -1
  18. package/dist/typescript/hooks/internal/useCallMediaStreamCleanup.d.ts.map +1 -1
  19. package/dist/typescript/providers/StreamCall/AppStateListener.d.ts.map +1 -1
  20. package/dist/typescript/version.d.ts +1 -1
  21. package/package.json +2 -2
  22. package/src/components/Call/CallContent/CallContent.tsx +13 -6
  23. package/src/hooks/internal/useCallMediaStreamCleanup.ts +9 -1
  24. package/src/providers/StreamCall/AppStateListener.tsx +30 -13
  25. package/src/version.ts +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,23 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ## [1.10.8](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-1.10.7...@stream-io/video-react-native-sdk-1.10.8) (2025-02-27)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * do not stop incall manager on change of audio settings ([#1702](https://github.com/GetStream/stream-video-js/issues/1702)) ([e35194d](https://github.com/GetStream/stream-video-js/commit/e35194dc4a789cc281b9f2d4488ffe11840986f7))
11
+
12
+ ## [1.10.7](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-1.10.6...@stream-io/video-react-native-sdk-1.10.7) (2025-02-26)
13
+
14
+
15
+ * pinning rn dev dep for sdk ([0e78ddc](https://github.com/GetStream/stream-video-js/commit/0e78ddcfabdd7f42849cad47efa0da623c2021cb))
16
+
17
+
18
+ ### Bug Fixes
19
+
20
+ * pip race condition ([#1700](https://github.com/GetStream/stream-video-js/issues/1700)) ([60c8aa6](https://github.com/GetStream/stream-video-js/commit/60c8aa6c5651072f15da1770e9840d3f2b8c11c0))
21
+
5
22
  ## [1.10.6](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-1.10.5...@stream-io/video-react-native-sdk-1.10.6) (2025-02-26)
6
23
 
7
24
  ### Dependency Updates
@@ -37,7 +37,8 @@ const CallContent = ({
37
37
  landscape = false,
38
38
  supportedReactions,
39
39
  iOSPiPIncludeLocalParticipantVideo,
40
- disablePictureInPicture
40
+ disablePictureInPicture,
41
+ initialInCallManagerAudioMode = 'video'
41
42
  }) => {
42
43
  const [showRemoteParticipantInFloatingView, setShowRemoteParticipantInFloatingView] = (0, _react.useState)(false);
43
44
  const styles = useStyles();
@@ -47,14 +48,12 @@ const CallContent = ({
47
48
  }
48
49
  } = (0, _contexts.useTheme)();
49
50
  const {
50
- useCallSettings,
51
51
  useHasOngoingScreenShare,
52
52
  useRemoteParticipants,
53
53
  useLocalParticipant
54
54
  } = (0, _videoReactBindings.useCallStateHooks)();
55
55
  (0, _hooks2.useAutoEnterPiPEffect)(disablePictureInPicture);
56
- const callSettings = useCallSettings();
57
- const isVideoEnabledInCall = callSettings?.video.enabled;
56
+ const incallManagerModeRef = (0, _react.useRef)(initialInCallManagerAudioMode);
58
57
  const _remoteParticipants = useRemoteParticipants();
59
58
  const remoteParticipants = (0, _hooks.useDebouncedValue)(_remoteParticipants, 300); // we debounce the remote participants to avoid unnecessary rerenders that happen when participant tracks are all subscribed simultaneously
60
59
  const localParticipant = useLocalParticipant();
@@ -69,10 +68,10 @@ const CallContent = ({
69
68
  */
70
69
  (0, _react.useEffect)(() => {
71
70
  _reactNativeIncallManager.default.start({
72
- media: isVideoEnabledInCall ? 'video' : 'audio'
71
+ media: incallManagerModeRef.current
73
72
  });
74
73
  return () => _reactNativeIncallManager.default.stop();
75
- }, [isVideoEnabledInCall]);
74
+ }, []);
76
75
  const handleFloatingViewParticipantSwitch = () => {
77
76
  if (remoteParticipants.length !== 1) {
78
77
  return;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeIncallManager","_interopRequireDefault","_CallLayout","_CallControls","_videoReactBindings","_constants","_hooks","_Participant","_contexts","_hooks2","_ScreenShareOverlay","_RTCViewPipIOS","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","CallContent","onHangupCallHandler","CallParticipantsList","CallControls","DefaultCallControls","FloatingParticipantView","DefaultFloatingParticipantView","ScreenShareOverlay","DefaultScreenShareOverlay","ParticipantLabel","ParticipantNetworkQualityIndicator","ParticipantReaction","ParticipantVideoFallback","ParticipantView","VideoRenderer","layout","landscape","supportedReactions","iOSPiPIncludeLocalParticipantVideo","disablePictureInPicture","showRemoteParticipantInFloatingView","setShowRemoteParticipantInFloatingView","useState","styles","useStyles","theme","callContent","useTheme","useCallSettings","useHasOngoingScreenShare","useRemoteParticipants","useLocalParticipant","useCallStateHooks","useAutoEnterPiPEffect","callSettings","isVideoEnabledInCall","video","enabled","_remoteParticipants","remoteParticipants","useDebouncedValue","localParticipant","isInPiPMode","useIsInPiPMode","hasScreenShare","showSpotlightLayout","showFloatingView","isRemoteParticipantInFloatingView","useEffect","InCallManager","start","media","stop","handleFloatingViewParticipantSwitch","prevState","participantViewProps","callParticipantsGridProps","showLocalParticipant","callParticipantsSpotlightProps","landscapeStyles","flexDirection","createElement","Fragment","includeLocalParticipantVideo","View","style","container","content","callParticipantsContainer","view","topContainer","pointerEvents","participant","onPressHandler","CallParticipantsSpotlight","CallParticipantsGrid","exports","useMemo","StyleSheet","create","flex","paddingBottom","variants","insets","bottom","paddingLeft","left","paddingRight","right","paddingTop","top","backgroundColor","colors","sheetPrimary","absoluteFillObject","zIndex","Z_INDEX","IN_FRONT"],"sourceRoot":"../../../../../src","sources":["components/Call/CallContent/CallContent.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeIncallManager","_interopRequireDefault","_CallLayout","_CallControls","_videoReactBindings","_constants","_hooks","_Participant","_contexts","_hooks2","_ScreenShareOverlay","_RTCViewPipIOS","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","CallContent","onHangupCallHandler","CallParticipantsList","CallControls","DefaultCallControls","FloatingParticipantView","DefaultFloatingParticipantView","ScreenShareOverlay","DefaultScreenShareOverlay","ParticipantLabel","ParticipantNetworkQualityIndicator","ParticipantReaction","ParticipantVideoFallback","ParticipantView","VideoRenderer","layout","landscape","supportedReactions","iOSPiPIncludeLocalParticipantVideo","disablePictureInPicture","initialInCallManagerAudioMode","showRemoteParticipantInFloatingView","setShowRemoteParticipantInFloatingView","useState","styles","useStyles","theme","callContent","useTheme","useHasOngoingScreenShare","useRemoteParticipants","useLocalParticipant","useCallStateHooks","useAutoEnterPiPEffect","incallManagerModeRef","useRef","_remoteParticipants","remoteParticipants","useDebouncedValue","localParticipant","isInPiPMode","useIsInPiPMode","hasScreenShare","showSpotlightLayout","showFloatingView","isRemoteParticipantInFloatingView","useEffect","InCallManager","start","media","current","stop","handleFloatingViewParticipantSwitch","prevState","participantViewProps","callParticipantsGridProps","showLocalParticipant","callParticipantsSpotlightProps","landscapeStyles","flexDirection","createElement","Fragment","includeLocalParticipantVideo","View","style","container","content","callParticipantsContainer","view","topContainer","pointerEvents","participant","onPressHandler","CallParticipantsSpotlight","CallParticipantsGrid","exports","useMemo","StyleSheet","create","flex","paddingBottom","variants","insets","bottom","paddingLeft","left","paddingRight","right","paddingTop","top","backgroundColor","colors","sheetPrimary","absoluteFillObject","zIndex","Z_INDEX","IN_FRONT"],"sourceRoot":"../../../../../src","sources":["components/Call/CallContent/CallContent.tsx"],"mappings":"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","ignoreList":[]}
@@ -20,6 +20,7 @@ const useCallMediaStreamCleanup = () => {
20
20
  return () => {
21
21
  const mediaStream = callRef.current?.camera.state.mediaStream;
22
22
  if (mediaStream && !(callRef.current?.state.callingState === _videoClient.CallingState.JOINED || callRef.current?.state.callingState === _videoClient.CallingState.JOINING)) {
23
+ (0, _videoClient.getLogger)(['useCallMediaStreamCleanup'])('debug', 'Cleaning up camera media stream');
23
24
  // we cleanup media stream only if call is not joined or joining
24
25
  // @ts-ignore Due to DOM typing incompatible with RN
25
26
  (0, _videoClient.disposeOfMediaStream)(mediaStream);
@@ -1 +1 @@
1
- {"version":3,"names":["_videoClient","require","_videoReactBindings","_react","useCallMediaStreamCleanup","call","useCall","callRef","useRef","current","useEffect","mediaStream","camera","state","callingState","CallingState","JOINED","JOINING","disposeOfMediaStream","exports"],"sourceRoot":"../../../../src","sources":["hooks/internal/useCallMediaStreamCleanup.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,mBAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACA;AACO,MAAMG,yBAAyB,GAAGA,CAAA,KAAM;EAC7C,MAAMC,IAAI,GAAG,IAAAC,2BAAO,EAAC,CAAC;EACtB;EACA,MAAMC,OAAO,GAAG,IAAAC,aAAM,EAACH,IAAI,CAAC;EAC5BE,OAAO,CAACE,OAAO,GAAGJ,IAAI;EAEtB,IAAAK,gBAAS,EAAC,MAAM;IACd,OAAO,MAAM;MACX,MAAMC,WAAW,GAAGJ,OAAO,CAACE,OAAO,EAAEG,MAAM,CAACC,KAAK,CAACF,WAErC;MACb,IACEA,WAAW,IACX,EACEJ,OAAO,CAACE,OAAO,EAAEI,KAAK,CAACC,YAAY,KAAKC,yBAAY,CAACC,MAAM,IAC3DT,OAAO,CAACE,OAAO,EAAEI,KAAK,CAACC,YAAY,KAAKC,yBAAY,CAACE,OAAO,CAC7D,EACD;QACA;QACA;QACA,IAAAC,iCAAoB,EAACP,WAAW,CAAC;MACnC;IACF,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;AACR,CAAC;AAACQ,OAAA,CAAAf,yBAAA,GAAAA,yBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_videoClient","require","_videoReactBindings","_react","useCallMediaStreamCleanup","call","useCall","callRef","useRef","current","useEffect","mediaStream","camera","state","callingState","CallingState","JOINED","JOINING","getLogger","disposeOfMediaStream","exports"],"sourceRoot":"../../../../src","sources":["hooks/internal/useCallMediaStreamCleanup.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAKA,IAAAC,mBAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACA;AACO,MAAMG,yBAAyB,GAAGA,CAAA,KAAM;EAC7C,MAAMC,IAAI,GAAG,IAAAC,2BAAO,EAAC,CAAC;EACtB;EACA,MAAMC,OAAO,GAAG,IAAAC,aAAM,EAACH,IAAI,CAAC;EAC5BE,OAAO,CAACE,OAAO,GAAGJ,IAAI;EAEtB,IAAAK,gBAAS,EAAC,MAAM;IACd,OAAO,MAAM;MACX,MAAMC,WAAW,GAAGJ,OAAO,CAACE,OAAO,EAAEG,MAAM,CAACC,KAAK,CAACF,WAErC;MACb,IACEA,WAAW,IACX,EACEJ,OAAO,CAACE,OAAO,EAAEI,KAAK,CAACC,YAAY,KAAKC,yBAAY,CAACC,MAAM,IAC3DT,OAAO,CAACE,OAAO,EAAEI,KAAK,CAACC,YAAY,KAAKC,yBAAY,CAACE,OAAO,CAC7D,EACD;QACA,IAAAC,sBAAS,EAAC,CAAC,2BAA2B,CAAC,CAAC,CACtC,OAAO,EACP,iCACF,CAAC;QACD;QACA;QACA,IAAAC,iCAAoB,EAACR,WAAW,CAAC;MACnC;IACF,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;AACR,CAAC;AAACS,OAAA,CAAAhB,yBAAA,GAAAA,yBAAA","ignoreList":[]}
@@ -27,7 +27,14 @@ const AppStateListener = () => {
27
27
  return;
28
28
  }
29
29
  const disablePiP = _videoClient.RxUtils.getCurrentValue(_rxSubjects.disablePiPMode$);
30
- _rxSubjects.isInPiPModeAndroid$.next(!disablePiP && _reactNative.AppState.currentState === 'background');
30
+ const logger = (0, _videoClient.getLogger)(['AppStateListener']);
31
+ const initialPipMode = !disablePiP && _reactNative.AppState.currentState === 'background';
32
+ _rxSubjects.isInPiPModeAndroid$.next(initialPipMode);
33
+ logger('debug', 'Initial PiP mode on mount set to ', initialPipMode);
34
+ _reactNative.NativeModules?.StreamVideoReactNative?.isInPiPMode().then(isInPiP => {
35
+ _rxSubjects.isInPiPModeAndroid$.next(!!isInPiP);
36
+ logger('debug', 'Initial PiP mode on mount (after asking native module) set to ', !!isInPiP);
37
+ });
31
38
  const eventEmitter = new _reactNative.NativeEventEmitter(_reactNative.NativeModules.StreamVideoReactNative);
32
39
  const subscriptionPiPChange = eventEmitter.addListener(PIP_CHANGE_EVENT, isInPiPMode => {
33
40
  _rxSubjects.isInPiPModeAndroid$.next(isInPiPMode);
@@ -41,6 +48,7 @@ const AppStateListener = () => {
41
48
  // we dont check for inactive states
42
49
  // ref: https://www.reddit.com/r/reactnative/comments/15kib42/appstate_behavior_in_ios_when_swiping_down_to/
43
50
  const subscription = _reactNative.AppState.addEventListener('change', nextAppState => {
51
+ const logger = (0, _videoClient.getLogger)(['AppStateListener']);
44
52
  if (appState.current.match(/background/) && nextAppState === 'active') {
45
53
  if (call?.camera?.state.status === 'enabled' && _reactNative.Platform.OS === 'android') {
46
54
  // when device is locked and resumed, the status isnt made disabled but stays enabled
@@ -48,23 +56,26 @@ const AppStateListener = () => {
48
56
  call?.camera?.disable(true).then(() => {
49
57
  call?.camera?.enable();
50
58
  });
59
+ logger('debug', 'Disable and reenable camera as app came to foreground');
51
60
  } else {
52
61
  if (cameraDisabledByAppState.current) {
53
62
  call?.camera?.resume();
54
63
  cameraDisabledByAppState.current = false;
64
+ logger('debug', 'Resume camera as app came to foreground');
55
65
  }
56
66
  }
57
67
  appState.current = nextAppState;
58
68
  } else if (appState.current === 'active' && nextAppState.match(/background/)) {
69
+ const disableCameraIfNeeded = () => {
70
+ if (call?.camera?.state.status === 'enabled') {
71
+ cameraDisabledByAppState.current = true;
72
+ call?.camera?.disable();
73
+ logger('debug', 'Camera disabled by app going to background');
74
+ }
75
+ };
59
76
  if (_reactNative.Platform.OS === 'android') {
60
77
  // in Android, we need to check if we are in PiP mode
61
78
  // in PiP mode, we don't want to disable the camera
62
- const disableCameraIfNeeded = () => {
63
- if (call?.camera?.state.status === 'enabled') {
64
- cameraDisabledByAppState.current = true;
65
- call?.camera?.disable();
66
- }
67
- };
68
79
  if (isAndroid8OrAbove) {
69
80
  // set with an assumption that its enabled so that UI disabling happens faster
70
81
  const disablePiP = _videoClient.RxUtils.getCurrentValue(_rxSubjects.disablePiPMode$);
@@ -88,10 +99,7 @@ const AppStateListener = () => {
88
99
  } else {
89
100
  // shouldDisableIOSLocalVideoOnBackgroundRef is false, if local video is enabled on PiP
90
101
  if (_shouldDisableIOSLocalVideoOnBackground.shouldDisableIOSLocalVideoOnBackgroundRef.current) {
91
- if (call?.camera?.state.status === 'enabled') {
92
- cameraDisabledByAppState.current = true;
93
- call?.camera?.disable();
94
- }
102
+ disableCameraIfNeeded();
95
103
  }
96
104
  }
97
105
  appState.current = nextAppState;
@@ -1 +1 @@
1
- {"version":3,"names":["_videoReactBindings","require","_react","_reactNative","_shouldDisableIOSLocalVideoOnBackground","_rxSubjects","_videoClient","PIP_CHANGE_EVENT","isAndroid8OrAbove","Platform","OS","Version","AppStateListener","call","useCall","appState","useRef","AppState","currentState","cameraDisabledByAppState","useEffect","disablePiP","RxUtils","getCurrentValue","disablePiPMode$","isInPiPModeAndroid$","next","eventEmitter","NativeEventEmitter","NativeModules","StreamVideoReactNative","subscriptionPiPChange","addListener","isInPiPMode","remove","subscription","addEventListener","nextAppState","current","match","camera","state","status","disable","then","enable","resume","disableCameraIfNeeded","isInPiP","shouldDisableIOSLocalVideoOnBackgroundRef","exports"],"sourceRoot":"../../../../src","sources":["providers/StreamCall/AppStateListener.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_videoReactBindings","require","_react","_reactNative","_shouldDisableIOSLocalVideoOnBackground","_rxSubjects","_videoClient","PIP_CHANGE_EVENT","isAndroid8OrAbove","Platform","OS","Version","AppStateListener","call","useCall","appState","useRef","AppState","currentState","cameraDisabledByAppState","useEffect","disablePiP","RxUtils","getCurrentValue","disablePiPMode$","logger","getLogger","initialPipMode","isInPiPModeAndroid$","next","NativeModules","StreamVideoReactNative","isInPiPMode","then","isInPiP","eventEmitter","NativeEventEmitter","subscriptionPiPChange","addListener","remove","subscription","addEventListener","nextAppState","current","match","camera","state","status","disable","enable","resume","disableCameraIfNeeded","shouldDisableIOSLocalVideoOnBackgroundRef","exports"],"sourceRoot":"../../../../src","sources":["providers/StreamCall/AppStateListener.tsx"],"mappings":"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","ignoreList":[]}
@@ -4,5 +4,5 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.version = void 0;
7
- const version = exports.version = '1.10.6';
7
+ const version = exports.version = '1.10.8';
8
8
  //# sourceMappingURL=version.js.map
@@ -1,5 +1,5 @@
1
1
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
- import React, { useEffect, useState, useMemo } from 'react';
2
+ import React, { useEffect, useState, useMemo, useRef } from 'react';
3
3
  import { StyleSheet, View } from 'react-native';
4
4
  import InCallManager from 'react-native-incall-manager';
5
5
  import { CallParticipantsGrid, CallParticipantsSpotlight } from '../CallLayout';
@@ -28,7 +28,8 @@ export const CallContent = ({
28
28
  landscape = false,
29
29
  supportedReactions,
30
30
  iOSPiPIncludeLocalParticipantVideo,
31
- disablePictureInPicture
31
+ disablePictureInPicture,
32
+ initialInCallManagerAudioMode = 'video'
32
33
  }) => {
33
34
  const [showRemoteParticipantInFloatingView, setShowRemoteParticipantInFloatingView] = useState(false);
34
35
  const styles = useStyles();
@@ -38,14 +39,12 @@ export const CallContent = ({
38
39
  }
39
40
  } = useTheme();
40
41
  const {
41
- useCallSettings,
42
42
  useHasOngoingScreenShare,
43
43
  useRemoteParticipants,
44
44
  useLocalParticipant
45
45
  } = useCallStateHooks();
46
46
  useAutoEnterPiPEffect(disablePictureInPicture);
47
- const callSettings = useCallSettings();
48
- const isVideoEnabledInCall = callSettings?.video.enabled;
47
+ const incallManagerModeRef = useRef(initialInCallManagerAudioMode);
49
48
  const _remoteParticipants = useRemoteParticipants();
50
49
  const remoteParticipants = useDebouncedValue(_remoteParticipants, 300); // we debounce the remote participants to avoid unnecessary rerenders that happen when participant tracks are all subscribed simultaneously
51
50
  const localParticipant = useLocalParticipant();
@@ -60,10 +59,10 @@ export const CallContent = ({
60
59
  */
61
60
  useEffect(() => {
62
61
  InCallManager.start({
63
- media: isVideoEnabledInCall ? 'video' : 'audio'
62
+ media: incallManagerModeRef.current
64
63
  });
65
64
  return () => InCallManager.stop();
66
- }, [isVideoEnabledInCall]);
65
+ }, []);
67
66
  const handleFloatingViewParticipantSwitch = () => {
68
67
  if (remoteParticipants.length !== 1) {
69
68
  return;
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useState","useMemo","StyleSheet","View","InCallManager","CallParticipantsGrid","CallParticipantsSpotlight","CallControls","DefaultCallControls","useCallStateHooks","Z_INDEX","useDebouncedValue","FloatingParticipantView","DefaultFloatingParticipantView","useTheme","useIsInPiPMode","useAutoEnterPiPEffect","ScreenShareOverlay","DefaultScreenShareOverlay","RTCViewPipIOS","CallContent","onHangupCallHandler","CallParticipantsList","ParticipantLabel","ParticipantNetworkQualityIndicator","ParticipantReaction","ParticipantVideoFallback","ParticipantView","VideoRenderer","layout","landscape","supportedReactions","iOSPiPIncludeLocalParticipantVideo","disablePictureInPicture","showRemoteParticipantInFloatingView","setShowRemoteParticipantInFloatingView","styles","useStyles","theme","callContent","useCallSettings","useHasOngoingScreenShare","useRemoteParticipants","useLocalParticipant","callSettings","isVideoEnabledInCall","video","enabled","_remoteParticipants","remoteParticipants","localParticipant","isInPiPMode","hasScreenShare","showSpotlightLayout","showFloatingView","length","isRemoteParticipantInFloatingView","start","media","stop","handleFloatingViewParticipantSwitch","prevState","participantViewProps","callParticipantsGridProps","showLocalParticipant","callParticipantsSpotlightProps","landscapeStyles","flexDirection","createElement","Fragment","includeLocalParticipantVideo","style","container","content","callParticipantsContainer","view","topContainer","pointerEvents","_extends","participant","onPressHandler","create","flex","paddingBottom","variants","insets","bottom","paddingLeft","left","paddingRight","right","paddingTop","top","backgroundColor","colors","sheetPrimary","absoluteFillObject","zIndex","IN_FRONT"],"sourceRoot":"../../../../../src","sources":["components/Call/CallContent/CallContent.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","useState","useMemo","useRef","StyleSheet","View","InCallManager","CallParticipantsGrid","CallParticipantsSpotlight","CallControls","DefaultCallControls","useCallStateHooks","Z_INDEX","useDebouncedValue","FloatingParticipantView","DefaultFloatingParticipantView","useTheme","useIsInPiPMode","useAutoEnterPiPEffect","ScreenShareOverlay","DefaultScreenShareOverlay","RTCViewPipIOS","CallContent","onHangupCallHandler","CallParticipantsList","ParticipantLabel","ParticipantNetworkQualityIndicator","ParticipantReaction","ParticipantVideoFallback","ParticipantView","VideoRenderer","layout","landscape","supportedReactions","iOSPiPIncludeLocalParticipantVideo","disablePictureInPicture","initialInCallManagerAudioMode","showRemoteParticipantInFloatingView","setShowRemoteParticipantInFloatingView","styles","useStyles","theme","callContent","useHasOngoingScreenShare","useRemoteParticipants","useLocalParticipant","incallManagerModeRef","_remoteParticipants","remoteParticipants","localParticipant","isInPiPMode","hasScreenShare","showSpotlightLayout","showFloatingView","length","isRemoteParticipantInFloatingView","start","media","current","stop","handleFloatingViewParticipantSwitch","prevState","participantViewProps","callParticipantsGridProps","showLocalParticipant","callParticipantsSpotlightProps","landscapeStyles","flexDirection","createElement","Fragment","includeLocalParticipantVideo","style","container","content","callParticipantsContainer","view","topContainer","pointerEvents","_extends","participant","onPressHandler","create","flex","paddingBottom","variants","insets","bottom","paddingLeft","left","paddingRight","right","paddingTop","top","backgroundColor","colors","sheetPrimary","absoluteFillObject","zIndex","IN_FRONT"],"sourceRoot":"../../../../../src","sources":["components/Call/CallContent/CallContent.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { CallingState, disposeOfMediaStream } from '@stream-io/video-client';
1
+ import { CallingState, disposeOfMediaStream, getLogger } from '@stream-io/video-client';
2
2
  import { useCall } from '@stream-io/video-react-bindings';
3
3
  import { useEffect, useRef } from 'react';
4
4
 
@@ -15,6 +15,7 @@ export const useCallMediaStreamCleanup = () => {
15
15
  return () => {
16
16
  const mediaStream = callRef.current?.camera.state.mediaStream;
17
17
  if (mediaStream && !(callRef.current?.state.callingState === CallingState.JOINED || callRef.current?.state.callingState === CallingState.JOINING)) {
18
+ getLogger(['useCallMediaStreamCleanup'])('debug', 'Cleaning up camera media stream');
18
19
  // we cleanup media stream only if call is not joined or joining
19
20
  // @ts-ignore Due to DOM typing incompatible with RN
20
21
  disposeOfMediaStream(mediaStream);
@@ -1 +1 @@
1
- {"version":3,"names":["CallingState","disposeOfMediaStream","useCall","useEffect","useRef","useCallMediaStreamCleanup","call","callRef","current","mediaStream","camera","state","callingState","JOINED","JOINING"],"sourceRoot":"../../../../src","sources":["hooks/internal/useCallMediaStreamCleanup.ts"],"mappings":"AACA,SAASA,YAAY,EAAEC,oBAAoB,QAAQ,yBAAyB;AAC5E,SAASC,OAAO,QAAQ,iCAAiC;AACzD,SAASC,SAAS,EAAEC,MAAM,QAAQ,OAAO;;AAEzC;AACA;AACA;AACA;AACA,OAAO,MAAMC,yBAAyB,GAAGA,CAAA,KAAM;EAC7C,MAAMC,IAAI,GAAGJ,OAAO,CAAC,CAAC;EACtB;EACA,MAAMK,OAAO,GAAGH,MAAM,CAACE,IAAI,CAAC;EAC5BC,OAAO,CAACC,OAAO,GAAGF,IAAI;EAEtBH,SAAS,CAAC,MAAM;IACd,OAAO,MAAM;MACX,MAAMM,WAAW,GAAGF,OAAO,CAACC,OAAO,EAAEE,MAAM,CAACC,KAAK,CAACF,WAErC;MACb,IACEA,WAAW,IACX,EACEF,OAAO,CAACC,OAAO,EAAEG,KAAK,CAACC,YAAY,KAAKZ,YAAY,CAACa,MAAM,IAC3DN,OAAO,CAACC,OAAO,EAAEG,KAAK,CAACC,YAAY,KAAKZ,YAAY,CAACc,OAAO,CAC7D,EACD;QACA;QACA;QACAb,oBAAoB,CAACQ,WAAW,CAAC;MACnC;IACF,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;AACR,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["CallingState","disposeOfMediaStream","getLogger","useCall","useEffect","useRef","useCallMediaStreamCleanup","call","callRef","current","mediaStream","camera","state","callingState","JOINED","JOINING"],"sourceRoot":"../../../../src","sources":["hooks/internal/useCallMediaStreamCleanup.ts"],"mappings":"AACA,SACEA,YAAY,EACZC,oBAAoB,EACpBC,SAAS,QACJ,yBAAyB;AAChC,SAASC,OAAO,QAAQ,iCAAiC;AACzD,SAASC,SAAS,EAAEC,MAAM,QAAQ,OAAO;;AAEzC;AACA;AACA;AACA;AACA,OAAO,MAAMC,yBAAyB,GAAGA,CAAA,KAAM;EAC7C,MAAMC,IAAI,GAAGJ,OAAO,CAAC,CAAC;EACtB;EACA,MAAMK,OAAO,GAAGH,MAAM,CAACE,IAAI,CAAC;EAC5BC,OAAO,CAACC,OAAO,GAAGF,IAAI;EAEtBH,SAAS,CAAC,MAAM;IACd,OAAO,MAAM;MACX,MAAMM,WAAW,GAAGF,OAAO,CAACC,OAAO,EAAEE,MAAM,CAACC,KAAK,CAACF,WAErC;MACb,IACEA,WAAW,IACX,EACEF,OAAO,CAACC,OAAO,EAAEG,KAAK,CAACC,YAAY,KAAKb,YAAY,CAACc,MAAM,IAC3DN,OAAO,CAACC,OAAO,EAAEG,KAAK,CAACC,YAAY,KAAKb,YAAY,CAACe,OAAO,CAC7D,EACD;QACAb,SAAS,CAAC,CAAC,2BAA2B,CAAC,CAAC,CACtC,OAAO,EACP,iCACF,CAAC;QACD;QACA;QACAD,oBAAoB,CAACS,WAAW,CAAC;MACnC;IACF,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;AACR,CAAC","ignoreList":[]}
@@ -3,7 +3,7 @@ import { useEffect, useRef } from 'react';
3
3
  import { AppState, NativeEventEmitter, NativeModules, Platform } from 'react-native';
4
4
  import { shouldDisableIOSLocalVideoOnBackgroundRef } from '../../utils/internal/shouldDisableIOSLocalVideoOnBackground';
5
5
  import { disablePiPMode$, isInPiPModeAndroid$ } from '../../utils/internal/rxSubjects';
6
- import { RxUtils } from '@stream-io/video-client';
6
+ import { getLogger, RxUtils } from '@stream-io/video-client';
7
7
  const PIP_CHANGE_EVENT = 'StreamVideoReactNative_PIP_CHANGE_EVENT';
8
8
  const isAndroid8OrAbove = Platform.OS === 'android' && Platform.Version >= 26;
9
9
 
@@ -21,7 +21,14 @@ export const AppStateListener = () => {
21
21
  return;
22
22
  }
23
23
  const disablePiP = RxUtils.getCurrentValue(disablePiPMode$);
24
- isInPiPModeAndroid$.next(!disablePiP && AppState.currentState === 'background');
24
+ const logger = getLogger(['AppStateListener']);
25
+ const initialPipMode = !disablePiP && AppState.currentState === 'background';
26
+ isInPiPModeAndroid$.next(initialPipMode);
27
+ logger('debug', 'Initial PiP mode on mount set to ', initialPipMode);
28
+ NativeModules?.StreamVideoReactNative?.isInPiPMode().then(isInPiP => {
29
+ isInPiPModeAndroid$.next(!!isInPiP);
30
+ logger('debug', 'Initial PiP mode on mount (after asking native module) set to ', !!isInPiP);
31
+ });
25
32
  const eventEmitter = new NativeEventEmitter(NativeModules.StreamVideoReactNative);
26
33
  const subscriptionPiPChange = eventEmitter.addListener(PIP_CHANGE_EVENT, isInPiPMode => {
27
34
  isInPiPModeAndroid$.next(isInPiPMode);
@@ -35,6 +42,7 @@ export const AppStateListener = () => {
35
42
  // we dont check for inactive states
36
43
  // ref: https://www.reddit.com/r/reactnative/comments/15kib42/appstate_behavior_in_ios_when_swiping_down_to/
37
44
  const subscription = AppState.addEventListener('change', nextAppState => {
45
+ const logger = getLogger(['AppStateListener']);
38
46
  if (appState.current.match(/background/) && nextAppState === 'active') {
39
47
  if (call?.camera?.state.status === 'enabled' && Platform.OS === 'android') {
40
48
  // when device is locked and resumed, the status isnt made disabled but stays enabled
@@ -42,23 +50,26 @@ export const AppStateListener = () => {
42
50
  call?.camera?.disable(true).then(() => {
43
51
  call?.camera?.enable();
44
52
  });
53
+ logger('debug', 'Disable and reenable camera as app came to foreground');
45
54
  } else {
46
55
  if (cameraDisabledByAppState.current) {
47
56
  call?.camera?.resume();
48
57
  cameraDisabledByAppState.current = false;
58
+ logger('debug', 'Resume camera as app came to foreground');
49
59
  }
50
60
  }
51
61
  appState.current = nextAppState;
52
62
  } else if (appState.current === 'active' && nextAppState.match(/background/)) {
63
+ const disableCameraIfNeeded = () => {
64
+ if (call?.camera?.state.status === 'enabled') {
65
+ cameraDisabledByAppState.current = true;
66
+ call?.camera?.disable();
67
+ logger('debug', 'Camera disabled by app going to background');
68
+ }
69
+ };
53
70
  if (Platform.OS === 'android') {
54
71
  // in Android, we need to check if we are in PiP mode
55
72
  // in PiP mode, we don't want to disable the camera
56
- const disableCameraIfNeeded = () => {
57
- if (call?.camera?.state.status === 'enabled') {
58
- cameraDisabledByAppState.current = true;
59
- call?.camera?.disable();
60
- }
61
- };
62
73
  if (isAndroid8OrAbove) {
63
74
  // set with an assumption that its enabled so that UI disabling happens faster
64
75
  const disablePiP = RxUtils.getCurrentValue(disablePiPMode$);
@@ -82,10 +93,7 @@ export const AppStateListener = () => {
82
93
  } else {
83
94
  // shouldDisableIOSLocalVideoOnBackgroundRef is false, if local video is enabled on PiP
84
95
  if (shouldDisableIOSLocalVideoOnBackgroundRef.current) {
85
- if (call?.camera?.state.status === 'enabled') {
86
- cameraDisabledByAppState.current = true;
87
- call?.camera?.disable();
88
- }
96
+ disableCameraIfNeeded();
89
97
  }
90
98
  }
91
99
  appState.current = nextAppState;
@@ -1 +1 @@
1
- {"version":3,"names":["useCall","useEffect","useRef","AppState","NativeEventEmitter","NativeModules","Platform","shouldDisableIOSLocalVideoOnBackgroundRef","disablePiPMode$","isInPiPModeAndroid$","RxUtils","PIP_CHANGE_EVENT","isAndroid8OrAbove","OS","Version","AppStateListener","call","appState","currentState","cameraDisabledByAppState","disablePiP","getCurrentValue","next","eventEmitter","StreamVideoReactNative","subscriptionPiPChange","addListener","isInPiPMode","remove","subscription","addEventListener","nextAppState","current","match","camera","state","status","disable","then","enable","resume","disableCameraIfNeeded","isInPiP"],"sourceRoot":"../../../../src","sources":["providers/StreamCall/AppStateListener.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCall","useEffect","useRef","AppState","NativeEventEmitter","NativeModules","Platform","shouldDisableIOSLocalVideoOnBackgroundRef","disablePiPMode$","isInPiPModeAndroid$","getLogger","RxUtils","PIP_CHANGE_EVENT","isAndroid8OrAbove","OS","Version","AppStateListener","call","appState","currentState","cameraDisabledByAppState","disablePiP","getCurrentValue","logger","initialPipMode","next","StreamVideoReactNative","isInPiPMode","then","isInPiP","eventEmitter","subscriptionPiPChange","addListener","remove","subscription","addEventListener","nextAppState","current","match","camera","state","status","disable","enable","resume","disableCameraIfNeeded"],"sourceRoot":"../../../../src","sources":["providers/StreamCall/AppStateListener.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- export const version = '1.10.6';
1
+ export const version = '1.10.8';
2
2
  //# sourceMappingURL=version.js.map
@@ -40,7 +40,15 @@ export type CallContentProps = Pick<HangUpCallButtonProps, 'onHangupCallHandler'
40
40
  * If true, disables the Picture-in-Picture mode for iOS and Android
41
41
  */
42
42
  disablePictureInPicture?: boolean;
43
+ /**
44
+ * Props to set the audio mode for the InCallManager.
45
+ * If media type is video, audio is routed by default to speaker, otherwise it is routed to earpiece.
46
+ * Changing the mode on the fly is not supported.
47
+ * Manually invoke `InCallManager.start({ media })` to achieve this.
48
+ * @default 'video'
49
+ */
50
+ initialInCallManagerAudioMode?: 'video' | 'audio';
43
51
  };
44
- export declare const CallContent: ({ onHangupCallHandler, CallParticipantsList, CallControls, FloatingParticipantView, ScreenShareOverlay, ParticipantLabel, ParticipantNetworkQualityIndicator, ParticipantReaction, ParticipantVideoFallback, ParticipantView, VideoRenderer, layout, landscape, supportedReactions, iOSPiPIncludeLocalParticipantVideo, disablePictureInPicture, }: CallContentProps) => React.JSX.Element;
52
+ export declare const CallContent: ({ onHangupCallHandler, CallParticipantsList, CallControls, FloatingParticipantView, ScreenShareOverlay, ParticipantLabel, ParticipantNetworkQualityIndicator, ParticipantReaction, ParticipantVideoFallback, ParticipantView, VideoRenderer, layout, landscape, supportedReactions, iOSPiPIncludeLocalParticipantVideo, disablePictureInPicture, initialInCallManagerAudioMode, }: CallContentProps) => React.JSX.Element;
45
53
  export {};
46
54
  //# sourceMappingURL=CallContent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CallContent.d.ts","sourceRoot":"","sources":["../../../../../src/components/Call/CallContent/CallContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAS5D,OAAO,EACL,KAAK,gBAAgB,EAErB,KAAK,qBAAqB,EAC3B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAI9D,OAAO,EAEL,KAAK,4BAA4B,EACjC,KAAK,6BAA6B,EACnC,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,KAAK,kCAAkC,EACvC,KAAK,yBAAyB,EAC/B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,kCAAkC,CAAC;AAG1C,MAAM,MAAM,kBAAkB,GAAG,cAAc,GAAG;IAChD,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,yBAAyB,GAAG,6BAA6B,GAC5D,IAAI,CAAC,kCAAkC,EAAE,iBAAiB,CAAC,GAAG;IAC5D;;OAEG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;IAC5D;;OAEG;IACH,uBAAuB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,4BAA4B,CAAC,GAAG,IAAI,CAAC;IACnF;;OAEG;IACH,oBAAoB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,yBAAyB,CAAC,GAAG,IAAI,CAAC;IAC7E;;OAEG;IACH,kBAAkB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAAC;CAC1E,CAAC;AAEJ,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,qBAAqB,EACrB,qBAAqB,CACtB,GACC,yBAAyB,GAAG;IAC1B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAC9B;;OAEG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAK1C,SAAS,CAAC,EAAE,OAAO,CAAC;IAIpB,kCAAkC,CAAC,EAAE,OAAO,CAAC;IAC7C;;OAEG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC,CAAC;AAEJ,eAAO,MAAM,WAAW,uVAiBrB,gBAAgB,sBAmIlB,CAAC"}
1
+ {"version":3,"file":"CallContent.d.ts","sourceRoot":"","sources":["../../../../../src/components/Call/CallContent/CallContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AASpE,OAAO,EACL,KAAK,gBAAgB,EAErB,KAAK,qBAAqB,EAC3B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAI9D,OAAO,EAEL,KAAK,4BAA4B,EACjC,KAAK,6BAA6B,EACnC,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,KAAK,kCAAkC,EACvC,KAAK,yBAAyB,EAC/B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,kCAAkC,CAAC;AAG1C,MAAM,MAAM,kBAAkB,GAAG,cAAc,GAAG;IAChD,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,yBAAyB,GAAG,6BAA6B,GAC5D,IAAI,CAAC,kCAAkC,EAAE,iBAAiB,CAAC,GAAG;IAC5D;;OAEG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;IAC5D;;OAEG;IACH,uBAAuB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,4BAA4B,CAAC,GAAG,IAAI,CAAC;IACnF;;OAEG;IACH,oBAAoB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,yBAAyB,CAAC,GAAG,IAAI,CAAC;IAC7E;;OAEG;IACH,kBAAkB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAAC;CAC1E,CAAC;AAEJ,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,qBAAqB,EACrB,qBAAqB,CACtB,GACC,yBAAyB,GAAG;IAC1B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAC9B;;OAEG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAK1C,SAAS,CAAC,EAAE,OAAO,CAAC;IAIpB,kCAAkC,CAAC,EAAE,OAAO,CAAC;IAC7C;;OAEG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC;;;;;;OAMG;IACH,6BAA6B,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;CACnD,CAAC;AAEJ,eAAO,MAAM,WAAW,sXAkBrB,gBAAgB,sBAiIlB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useCallMediaStreamCleanup.d.ts","sourceRoot":"","sources":["../../../../src/hooks/internal/useCallMediaStreamCleanup.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,eAAO,MAAM,yBAAyB,YAwBrC,CAAC"}
1
+ {"version":3,"file":"useCallMediaStreamCleanup.d.ts","sourceRoot":"","sources":["../../../../src/hooks/internal/useCallMediaStreamCleanup.ts"],"names":[],"mappings":"AASA;;;GAGG;AACH,eAAO,MAAM,yBAAyB,YA4BrC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AppStateListener.d.ts","sourceRoot":"","sources":["../../../../src/providers/StreamCall/AppStateListener.tsx"],"names":[],"mappings":"AAsBA,eAAO,MAAM,gBAAgB,YA4G5B,CAAC"}
1
+ {"version":3,"file":"AppStateListener.d.ts","sourceRoot":"","sources":["../../../../src/providers/StreamCall/AppStateListener.tsx"],"names":[],"mappings":"AAsBA,eAAO,MAAM,gBAAgB,YA6H5B,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare const version = "1.10.6";
1
+ export declare const version = "1.10.8";
2
2
  //# sourceMappingURL=version.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stream-io/video-react-native-sdk",
3
- "version": "1.10.6",
3
+ "version": "1.10.8",
4
4
  "packageManager": "yarn@3.2.4",
5
5
  "description": "Stream Video SDK for React Native",
6
6
  "author": "https://getstream.io",
@@ -138,7 +138,7 @@
138
138
  "expo-modules-core": "1.12.16",
139
139
  "expo-notifications": "~0.29.11",
140
140
  "jest": "^29.7.0",
141
- "react-native": "^0.73",
141
+ "react-native": "~0.73",
142
142
  "react-native-builder-bob": "~0.23",
143
143
  "react-native-callkeep": "4.3.11",
144
144
  "react-native-gesture-handler": "2.16.2",
@@ -1,4 +1,4 @@
1
- import React, { useEffect, useState, useMemo } from 'react';
1
+ import React, { useEffect, useState, useMemo, useRef } from 'react';
2
2
  import { StyleSheet, View, type ViewStyle } from 'react-native';
3
3
  import InCallManager from 'react-native-incall-manager';
4
4
  import {
@@ -84,6 +84,14 @@ export type CallContentProps = Pick<
84
84
  * If true, disables the Picture-in-Picture mode for iOS and Android
85
85
  */
86
86
  disablePictureInPicture?: boolean;
87
+ /**
88
+ * Props to set the audio mode for the InCallManager.
89
+ * If media type is video, audio is routed by default to speaker, otherwise it is routed to earpiece.
90
+ * Changing the mode on the fly is not supported.
91
+ * Manually invoke `InCallManager.start({ media })` to achieve this.
92
+ * @default 'video'
93
+ */
94
+ initialInCallManagerAudioMode?: 'video' | 'audio';
87
95
  };
88
96
 
89
97
  export const CallContent = ({
@@ -103,6 +111,7 @@ export const CallContent = ({
103
111
  supportedReactions,
104
112
  iOSPiPIncludeLocalParticipantVideo,
105
113
  disablePictureInPicture,
114
+ initialInCallManagerAudioMode = 'video',
106
115
  }: CallContentProps) => {
107
116
  const [
108
117
  showRemoteParticipantInFloatingView,
@@ -113,7 +122,6 @@ export const CallContent = ({
113
122
  theme: { callContent },
114
123
  } = useTheme();
115
124
  const {
116
- useCallSettings,
117
125
  useHasOngoingScreenShare,
118
126
  useRemoteParticipants,
119
127
  useLocalParticipant,
@@ -121,8 +129,7 @@ export const CallContent = ({
121
129
 
122
130
  useAutoEnterPiPEffect(disablePictureInPicture);
123
131
 
124
- const callSettings = useCallSettings();
125
- const isVideoEnabledInCall = callSettings?.video.enabled;
132
+ const incallManagerModeRef = useRef(initialInCallManagerAudioMode);
126
133
 
127
134
  const _remoteParticipants = useRemoteParticipants();
128
135
  const remoteParticipants = useDebouncedValue(_remoteParticipants, 300); // we debounce the remote participants to avoid unnecessary rerenders that happen when participant tracks are all subscribed simultaneously
@@ -146,10 +153,10 @@ export const CallContent = ({
146
153
  * This hook is used to handle IncallManager specs of the application.
147
154
  */
148
155
  useEffect(() => {
149
- InCallManager.start({ media: isVideoEnabledInCall ? 'video' : 'audio' });
156
+ InCallManager.start({ media: incallManagerModeRef.current });
150
157
 
151
158
  return () => InCallManager.stop();
152
- }, [isVideoEnabledInCall]);
159
+ }, []);
153
160
 
154
161
  const handleFloatingViewParticipantSwitch = () => {
155
162
  if (remoteParticipants.length !== 1) {
@@ -1,5 +1,9 @@
1
1
  import { MediaStream } from '@stream-io/react-native-webrtc';
2
- import { CallingState, disposeOfMediaStream } from '@stream-io/video-client';
2
+ import {
3
+ CallingState,
4
+ disposeOfMediaStream,
5
+ getLogger,
6
+ } from '@stream-io/video-client';
3
7
  import { useCall } from '@stream-io/video-react-bindings';
4
8
  import { useEffect, useRef } from 'react';
5
9
 
@@ -25,6 +29,10 @@ export const useCallMediaStreamCleanup = () => {
25
29
  callRef.current?.state.callingState === CallingState.JOINING
26
30
  )
27
31
  ) {
32
+ getLogger(['useCallMediaStreamCleanup'])(
33
+ 'debug',
34
+ 'Cleaning up camera media stream'
35
+ );
28
36
  // we cleanup media stream only if call is not joined or joining
29
37
  // @ts-ignore Due to DOM typing incompatible with RN
30
38
  disposeOfMediaStream(mediaStream);
@@ -11,7 +11,7 @@ import {
11
11
  disablePiPMode$,
12
12
  isInPiPModeAndroid$,
13
13
  } from '../../utils/internal/rxSubjects';
14
- import { RxUtils } from '@stream-io/video-client';
14
+ import { getLogger, RxUtils } from '@stream-io/video-client';
15
15
 
16
16
  const PIP_CHANGE_EVENT = 'StreamVideoReactNative_PIP_CHANGE_EVENT';
17
17
 
@@ -32,8 +32,21 @@ export const AppStateListener = () => {
32
32
  }
33
33
 
34
34
  const disablePiP = RxUtils.getCurrentValue(disablePiPMode$);
35
- isInPiPModeAndroid$.next(
36
- !disablePiP && AppState.currentState === 'background'
35
+ const logger = getLogger(['AppStateListener']);
36
+ const initialPipMode =
37
+ !disablePiP && AppState.currentState === 'background';
38
+ isInPiPModeAndroid$.next(initialPipMode);
39
+ logger('debug', 'Initial PiP mode on mount set to ', initialPipMode);
40
+
41
+ NativeModules?.StreamVideoReactNative?.isInPiPMode().then(
42
+ (isInPiP: boolean | null | undefined) => {
43
+ isInPiPModeAndroid$.next(!!isInPiP);
44
+ logger(
45
+ 'debug',
46
+ 'Initial PiP mode on mount (after asking native module) set to ',
47
+ !!isInPiP
48
+ );
49
+ }
37
50
  );
38
51
 
39
52
  const eventEmitter = new NativeEventEmitter(
@@ -57,6 +70,7 @@ export const AppStateListener = () => {
57
70
  // we dont check for inactive states
58
71
  // ref: https://www.reddit.com/r/reactnative/comments/15kib42/appstate_behavior_in_ios_when_swiping_down_to/
59
72
  const subscription = AppState.addEventListener('change', (nextAppState) => {
73
+ const logger = getLogger(['AppStateListener']);
60
74
  if (appState.current.match(/background/) && nextAppState === 'active') {
61
75
  if (
62
76
  call?.camera?.state.status === 'enabled' &&
@@ -67,10 +81,15 @@ export const AppStateListener = () => {
67
81
  call?.camera?.disable(true).then(() => {
68
82
  call?.camera?.enable();
69
83
  });
84
+ logger(
85
+ 'debug',
86
+ 'Disable and reenable camera as app came to foreground'
87
+ );
70
88
  } else {
71
89
  if (cameraDisabledByAppState.current) {
72
90
  call?.camera?.resume();
73
91
  cameraDisabledByAppState.current = false;
92
+ logger('debug', 'Resume camera as app came to foreground');
74
93
  }
75
94
  }
76
95
  appState.current = nextAppState;
@@ -78,15 +97,16 @@ export const AppStateListener = () => {
78
97
  appState.current === 'active' &&
79
98
  nextAppState.match(/background/)
80
99
  ) {
100
+ const disableCameraIfNeeded = () => {
101
+ if (call?.camera?.state.status === 'enabled') {
102
+ cameraDisabledByAppState.current = true;
103
+ call?.camera?.disable();
104
+ logger('debug', 'Camera disabled by app going to background');
105
+ }
106
+ };
81
107
  if (Platform.OS === 'android') {
82
108
  // in Android, we need to check if we are in PiP mode
83
109
  // in PiP mode, we don't want to disable the camera
84
- const disableCameraIfNeeded = () => {
85
- if (call?.camera?.state.status === 'enabled') {
86
- cameraDisabledByAppState.current = true;
87
- call?.camera?.disable();
88
- }
89
- };
90
110
  if (isAndroid8OrAbove) {
91
111
  // set with an assumption that its enabled so that UI disabling happens faster
92
112
  const disablePiP = RxUtils.getCurrentValue(disablePiPMode$);
@@ -112,10 +132,7 @@ export const AppStateListener = () => {
112
132
  } else {
113
133
  // shouldDisableIOSLocalVideoOnBackgroundRef is false, if local video is enabled on PiP
114
134
  if (shouldDisableIOSLocalVideoOnBackgroundRef.current) {
115
- if (call?.camera?.state.status === 'enabled') {
116
- cameraDisabledByAppState.current = true;
117
- call?.camera?.disable();
118
- }
135
+ disableCameraIfNeeded();
119
136
  }
120
137
  }
121
138
  appState.current = nextAppState;
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = '1.10.6';
1
+ export const version = '1.10.8';