@stream-io/video-react-native-sdk 1.19.0 → 1.20.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.
- package/CHANGELOG.md +28 -0
- package/android/src/main/java/com/streamvideo/reactnative/StreamVideoReactNativeModule.kt +10 -0
- package/android/src/main/java/com/streamvideo/reactnative/util/PiPHelper.kt +18 -0
- package/dist/commonjs/components/Call/CallContent/CallContent.js +20 -0
- package/dist/commonjs/components/Call/CallContent/CallContent.js.map +1 -1
- package/dist/commonjs/components/Call/CallLayout/CallParticipantsGrid.js +10 -1
- package/dist/commonjs/components/Call/CallLayout/CallParticipantsGrid.js.map +1 -1
- package/dist/commonjs/components/Participant/ParticipantView/VideoRenderer.js +3 -2
- package/dist/commonjs/components/Participant/ParticipantView/VideoRenderer.js.map +1 -1
- package/dist/commonjs/contexts/BackgroundFilters.js +4 -0
- package/dist/commonjs/contexts/BackgroundFilters.js.map +1 -1
- package/dist/commonjs/hooks/useAndroidKeepCallAliveEffect.js +31 -12
- package/dist/commonjs/hooks/useAndroidKeepCallAliveEffect.js.map +1 -1
- package/dist/commonjs/hooks/useTrackDimensions.js +31 -35
- package/dist/commonjs/hooks/useTrackDimensions.js.map +1 -1
- package/dist/commonjs/providers/StreamCall/AppStateListener.js +3 -2
- package/dist/commonjs/providers/StreamCall/AppStateListener.js.map +1 -1
- package/dist/commonjs/providers/StreamCall/DeviceStats.js +19 -8
- package/dist/commonjs/providers/StreamCall/DeviceStats.js.map +1 -1
- package/dist/commonjs/utils/StreamVideoRN/index.js +22 -6
- package/dist/commonjs/utils/StreamVideoRN/index.js.map +1 -1
- package/dist/commonjs/version.js +1 -1
- package/dist/module/components/Call/CallContent/CallContent.js +22 -2
- package/dist/module/components/Call/CallContent/CallContent.js.map +1 -1
- package/dist/module/components/Call/CallLayout/CallParticipantsGrid.js +10 -1
- package/dist/module/components/Call/CallLayout/CallParticipantsGrid.js.map +1 -1
- package/dist/module/components/Participant/ParticipantView/VideoRenderer.js +3 -2
- package/dist/module/components/Participant/ParticipantView/VideoRenderer.js.map +1 -1
- package/dist/module/contexts/BackgroundFilters.js +4 -0
- package/dist/module/contexts/BackgroundFilters.js.map +1 -1
- package/dist/module/hooks/useAndroidKeepCallAliveEffect.js +31 -12
- package/dist/module/hooks/useAndroidKeepCallAliveEffect.js.map +1 -1
- package/dist/module/hooks/useTrackDimensions.js +30 -35
- package/dist/module/hooks/useTrackDimensions.js.map +1 -1
- package/dist/module/providers/StreamCall/AppStateListener.js +3 -2
- package/dist/module/providers/StreamCall/AppStateListener.js.map +1 -1
- package/dist/module/providers/StreamCall/DeviceStats.js +20 -9
- package/dist/module/providers/StreamCall/DeviceStats.js.map +1 -1
- package/dist/module/utils/StreamVideoRN/index.js +23 -6
- package/dist/module/utils/StreamVideoRN/index.js.map +1 -1
- package/dist/module/version.js +1 -1
- package/dist/typescript/components/Call/CallContent/CallContent.d.ts.map +1 -1
- package/dist/typescript/components/Call/CallLayout/CallParticipantsGrid.d.ts.map +1 -1
- package/dist/typescript/components/Participant/ParticipantView/VideoRenderer.d.ts.map +1 -1
- package/dist/typescript/contexts/BackgroundFilters.d.ts.map +1 -1
- package/dist/typescript/hooks/useAndroidKeepCallAliveEffect.d.ts.map +1 -1
- package/dist/typescript/hooks/useTrackDimensions.d.ts +2 -2
- package/dist/typescript/hooks/useTrackDimensions.d.ts.map +1 -1
- package/dist/typescript/providers/StreamCall/AppStateListener.d.ts.map +1 -1
- package/dist/typescript/providers/StreamCall/DeviceStats.d.ts.map +1 -1
- package/dist/typescript/utils/StreamVideoRN/index.d.ts +6 -2
- package/dist/typescript/utils/StreamVideoRN/index.d.ts.map +1 -1
- package/dist/typescript/utils/StreamVideoRN/types.d.ts +6 -1
- package/dist/typescript/utils/StreamVideoRN/types.d.ts.map +1 -1
- package/dist/typescript/version.d.ts +1 -1
- package/package.json +7 -7
- package/src/components/Call/CallContent/CallContent.tsx +39 -3
- package/src/components/Call/CallLayout/CallParticipantsGrid.tsx +12 -5
- package/src/components/Participant/ParticipantView/VideoRenderer.tsx +7 -2
- package/src/contexts/BackgroundFilters.tsx +4 -0
- package/src/hooks/useAndroidKeepCallAliveEffect.ts +30 -10
- package/src/hooks/useTrackDimensions.ts +51 -34
- package/src/providers/StreamCall/AppStateListener.tsx +3 -5
- package/src/providers/StreamCall/DeviceStats.tsx +20 -9
- package/src/utils/StreamVideoRN/index.ts +41 -6
- package/src/utils/StreamVideoRN/types.ts +6 -0
- package/src/version.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,34 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
## [1.20.0](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-1.19.1...@stream-io/video-react-native-sdk-1.20.0) (2025-07-25)
|
|
6
|
+
|
|
7
|
+
### Dependency Updates
|
|
8
|
+
|
|
9
|
+
- `@stream-io/noise-cancellation-react-native` updated to version `0.2.0`
|
|
10
|
+
- `@stream-io/video-filters-react-native` updated to version `0.6.0`
|
|
11
|
+
- `@stream-io/video-client` updated to version `1.27.1`
|
|
12
|
+
- `@stream-io/video-react-bindings` updated to version `1.7.10`
|
|
13
|
+
|
|
14
|
+
- bump webrtc version ([#1865](https://github.com/GetStream/stream-video-js/issues/1865)) ([18fd609](https://github.com/GetStream/stream-video-js/commit/18fd60945ef74eb23c089dc0b5adb2373b700602))
|
|
15
|
+
|
|
16
|
+
### Features
|
|
17
|
+
|
|
18
|
+
- add ability to run a custom promise option for android keep call alive service ([#1864](https://github.com/GetStream/stream-video-js/issues/1864)) ([81fdd0b](https://github.com/GetStream/stream-video-js/commit/81fdd0b381a0e6aae4b5e5063c9b6c10b3c4d3bf))
|
|
19
|
+
- do not detect video dimensions through rtc stats ([#1852](https://github.com/GetStream/stream-video-js/issues/1852)) ([280e008](https://github.com/GetStream/stream-video-js/commit/280e0087d646188e71dec6e4d4e5e8b93878904d))
|
|
20
|
+
|
|
21
|
+
### Bug Fixes
|
|
22
|
+
|
|
23
|
+
- improved audio and video filter tracing ([#1862](https://github.com/GetStream/stream-video-js/issues/1862)) ([701ea4b](https://github.com/GetStream/stream-video-js/commit/701ea4b3266f68072c1325b70221fdefd77137ec))
|
|
24
|
+
- trace available devices and thermal state changes ([#1866](https://github.com/GetStream/stream-video-js/issues/1866)) ([d8312b5](https://github.com/GetStream/stream-video-js/commit/d8312b5c109b14baa28ee764202d387499d0fd52))
|
|
25
|
+
|
|
26
|
+
## [1.19.1](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-1.19.0...@stream-io/video-react-native-sdk-1.19.1) (2025-07-23)
|
|
27
|
+
|
|
28
|
+
### Bug Fixes
|
|
29
|
+
|
|
30
|
+
- automatically exit android pip mode if call is left ([#1863](https://github.com/GetStream/stream-video-js/issues/1863)) ([51850f4](https://github.com/GetStream/stream-video-js/commit/51850f49bc67595a4cacb766863894483712fc75))
|
|
31
|
+
- ios pip blank local track issue ([47d8119](https://github.com/GetStream/stream-video-js/commit/47d811928f9f155b4d9f9cb23042a7556fd8414a))
|
|
32
|
+
|
|
5
33
|
## [1.19.0](https://github.com/GetStream/stream-video-js/compare/@stream-io/video-react-native-sdk-1.18.1...@stream-io/video-react-native-sdk-1.19.0) (2025-07-18)
|
|
6
34
|
|
|
7
35
|
### Dependency Updates
|
|
@@ -115,6 +115,16 @@ class StreamVideoReactNativeModule(reactContext: ReactApplicationContext) :
|
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
117
|
|
|
118
|
+
@ReactMethod
|
|
119
|
+
fun exitPipMode(promise: Promise) {
|
|
120
|
+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
|
121
|
+
val success = PiPHelper.exitPipMode(reactApplicationContext)
|
|
122
|
+
promise.resolve(success)
|
|
123
|
+
} else {
|
|
124
|
+
promise.resolve(false)
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
118
128
|
@ReactMethod
|
|
119
129
|
fun startThermalStatusUpdates(promise: Promise) {
|
|
120
130
|
try {
|
|
@@ -88,6 +88,24 @@ object PiPHelper {
|
|
|
88
88
|
return reactApplicationContext.currentActivity?.isInPictureInPictureMode
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
+
fun exitPipMode(reactApplicationContext: ReactApplicationContext): Boolean {
|
|
92
|
+
return try {
|
|
93
|
+
reactApplicationContext.currentActivity?.let { activity ->
|
|
94
|
+
if (activity.isInPictureInPictureMode) {
|
|
95
|
+
// Move the task to back to exit PiP mode and return to normal app view
|
|
96
|
+
activity.moveTaskToBack(false)
|
|
97
|
+
true
|
|
98
|
+
} else {
|
|
99
|
+
// Not in PiP mode, so nothing to do
|
|
100
|
+
false
|
|
101
|
+
}
|
|
102
|
+
} ?: false
|
|
103
|
+
} catch (e: Exception) {
|
|
104
|
+
Log.e(NAME, "Failed to exit Picture-in-Picture mode", e)
|
|
105
|
+
false
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
91
109
|
private fun getPiPParams(activity: Activity): PictureInPictureParams.Builder {
|
|
92
110
|
val currentOrientation = activity.resources.configuration.orientation
|
|
93
111
|
val aspect =
|
|
@@ -10,6 +10,7 @@ var _reactNativeIncallManager = _interopRequireDefault(require("react-native-inc
|
|
|
10
10
|
var _CallLayout = require("../CallLayout");
|
|
11
11
|
var _CallControls = require("../CallControls");
|
|
12
12
|
var _videoReactBindings = require("@stream-io/video-react-bindings");
|
|
13
|
+
var _videoClient = require("@stream-io/video-client");
|
|
13
14
|
var _constants = require("../../../constants");
|
|
14
15
|
var _hooks = require("../../../utils/hooks");
|
|
15
16
|
var _Participant = require("../../Participant");
|
|
@@ -46,6 +47,7 @@ const CallContent = ({
|
|
|
46
47
|
callContent
|
|
47
48
|
}
|
|
48
49
|
} = (0, _contexts.useTheme)();
|
|
50
|
+
const call = (0, _videoReactBindings.useCall)();
|
|
49
51
|
const {
|
|
50
52
|
useHasOngoingScreenShare,
|
|
51
53
|
useRemoteParticipants,
|
|
@@ -59,6 +61,24 @@ const CallContent = ({
|
|
|
59
61
|
const isInPiPMode = (0, _hooks2.useIsInPiPMode)();
|
|
60
62
|
const hasScreenShare = useHasOngoingScreenShare();
|
|
61
63
|
const showSpotlightLayout = hasScreenShare || layout === 'spotlight';
|
|
64
|
+
(0, _react.useEffect)(() => {
|
|
65
|
+
if (isInPiPMode && _reactNative.Platform.OS === 'android') {
|
|
66
|
+
const unsubFunc = call?.on('call.ended', () => {
|
|
67
|
+
(0, _videoClient.getLogger)(['CallContent'])('debug', `exiting PiP mode due to call.ended`);
|
|
68
|
+
_reactNative.NativeModules.StreamVideoReactNative.exitPipMode();
|
|
69
|
+
});
|
|
70
|
+
const subscription = call?.state.callingState$.subscribe(state => {
|
|
71
|
+
if (state === _videoClient.CallingState.LEFT) {
|
|
72
|
+
(0, _videoClient.getLogger)(['CallContent'])('debug', `exiting PiP mode due to callingState: LEFT`);
|
|
73
|
+
_reactNative.NativeModules.StreamVideoReactNative.exitPipMode();
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
return () => {
|
|
77
|
+
unsubFunc?.();
|
|
78
|
+
subscription?.unsubscribe();
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
}, [isInPiPMode, call]);
|
|
62
82
|
const showFloatingView = !showSpotlightLayout && !isInPiPMode && remoteParticipants.length > 0 && remoteParticipants.length < 3;
|
|
63
83
|
const isRemoteParticipantInFloatingView = showFloatingView && showRemoteParticipantInFloatingView && remoteParticipants.length === 1;
|
|
64
84
|
|
|
@@ -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","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_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","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeIncallManager","_interopRequireDefault","_CallLayout","_CallControls","_videoReactBindings","_videoClient","_constants","_hooks","_Participant","_contexts","_hooks2","_ScreenShareOverlay","_RTCViewPipIOS","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_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","useCall","useHasOngoingScreenShare","useRemoteParticipants","useLocalParticipant","useCallStateHooks","useAutoEnterPiPEffect","incallManagerModeRef","useRef","_remoteParticipants","remoteParticipants","useDebouncedValue","localParticipant","isInPiPMode","useIsInPiPMode","hasScreenShare","showSpotlightLayout","useEffect","Platform","OS","unsubFunc","on","getLogger","NativeModules","StreamVideoReactNative","exitPipMode","subscription","state","callingState$","subscribe","CallingState","LEFT","unsubscribe","showFloatingView","isRemoteParticipantInFloatingView","InCallManager","start","media","current","stop","handleFloatingViewParticipantSwitch","prevState","participantViewProps","callParticipantsGridProps","showLocalParticipant","callParticipantsSpotlightProps","landscapeStyles","flexDirection","createElement","Fragment","RTCViewPipIOS","includeLocalParticipantVideo","View","style","container","content","callParticipantsContainer","view","topContainer","pointerEvents","participant","onPressHandler","objectFit","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":[]}
|
|
@@ -57,7 +57,16 @@ const CallParticipantsGrid = ({
|
|
|
57
57
|
};
|
|
58
58
|
const isInPiPMode = (0, _useIsInPiPMode.useIsInPiPMode)();
|
|
59
59
|
const showFloatingView = !isInPiPMode && remoteParticipants.length > 0 && remoteParticipants.length < 3;
|
|
60
|
-
let participants
|
|
60
|
+
let participants;
|
|
61
|
+
if (showFloatingView) {
|
|
62
|
+
if (showLocalParticipant && localParticipant) {
|
|
63
|
+
participants = [localParticipant];
|
|
64
|
+
} else {
|
|
65
|
+
participants = remoteParticipants;
|
|
66
|
+
}
|
|
67
|
+
} else {
|
|
68
|
+
participants = allParticipants;
|
|
69
|
+
}
|
|
61
70
|
if (isInPiPMode) {
|
|
62
71
|
if (dominantSpeaker && !dominantSpeaker.isLocalParticipant) {
|
|
63
72
|
participants = [dominantSpeaker];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_videoReactBindings","_useDebouncedValue","_CallParticipantsList","_TestIds","_ThemeContext","_useIsInPiPMode","e","__esModule","default","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","CallParticipantsGrid","CallParticipantsList","DefaultCallParticipantsList","ParticipantLabel","ParticipantNetworkQualityIndicator","ParticipantReaction","ParticipantVideoFallback","ParticipantView","VideoRenderer","showLocalParticipant","supportedReactions","landscape","theme","colors","callParticipantsGrid","useTheme","useRemoteParticipants","useParticipants","useLocalParticipant","useDominantSpeaker","useCallStateHooks","_remoteParticipants","localParticipant","_allParticipants","dominantSpeaker","remoteParticipants","useDebouncedValue","allParticipants","landscapeStyles","flexDirection","isInPiPMode","useIsInPiPMode","showFloatingView","participants","isLocalParticipant","participantViewProps","createElement","View","style","styles","container","backgroundColor","sheetPrimary","testID","ComponentTestIds","CALL_PARTICIPANTS_GRID","exports","StyleSheet","create","flex"],"sourceRoot":"../../../../../src","sources":["components/Call/CallLayout/CallParticipantsGrid.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA;AACA,IAAAG,kBAAA,GAAAH,OAAA;AACA,IAAAI,qBAAA,GAAAJ,OAAA;AAIA,IAAAK,QAAA,GAAAL,OAAA;AACA,IAAAM,aAAA,GAAAN,OAAA;AAGA,IAAAO,eAAA,GAAAP,OAAA;AAA+D,SAAAD,uBAAAS,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,SAAA,WAAAA,QAAA,GAAAC,MAAA,CAAAC,MAAA,GAAAD,MAAA,CAAAC,MAAA,CAAAC,IAAA,eAAAC,CAAA,aAAAP,CAAA,MAAAA,CAAA,GAAAQ,SAAA,CAAAC,MAAA,EAAAT,CAAA,UAAAU,CAAA,GAAAF,SAAA,CAAAR,CAAA,YAAAW,CAAA,IAAAD,CAAA,OAAAE,cAAA,CAAAC,IAAA,CAAAH,CAAA,EAAAC,CAAA,MAAAJ,CAAA,CAAAI,CAAA,IAAAD,CAAA,CAAAC,CAAA,aAAAJ,CAAA,KAAAJ,QAAA,CAAAW,KAAA,OAAAN,SAAA;
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_videoReactBindings","_useDebouncedValue","_CallParticipantsList","_TestIds","_ThemeContext","_useIsInPiPMode","e","__esModule","default","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","CallParticipantsGrid","CallParticipantsList","DefaultCallParticipantsList","ParticipantLabel","ParticipantNetworkQualityIndicator","ParticipantReaction","ParticipantVideoFallback","ParticipantView","VideoRenderer","showLocalParticipant","supportedReactions","landscape","theme","colors","callParticipantsGrid","useTheme","useRemoteParticipants","useParticipants","useLocalParticipant","useDominantSpeaker","useCallStateHooks","_remoteParticipants","localParticipant","_allParticipants","dominantSpeaker","remoteParticipants","useDebouncedValue","allParticipants","landscapeStyles","flexDirection","isInPiPMode","useIsInPiPMode","showFloatingView","participants","isLocalParticipant","participantViewProps","createElement","View","style","styles","container","backgroundColor","sheetPrimary","testID","ComponentTestIds","CALL_PARTICIPANTS_GRID","exports","StyleSheet","create","flex"],"sourceRoot":"../../../../../src","sources":["components/Call/CallLayout/CallParticipantsGrid.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -61,7 +61,8 @@ const VideoRenderer = ({
|
|
|
61
61
|
register: registerIosScreenshot,
|
|
62
62
|
deregister: deregisterIosScreenshot
|
|
63
63
|
} = (0, _ScreenshotIosContext.useScreenshotIosContext)();
|
|
64
|
-
const videoDimensions = (0, _useTrackDimensions.useTrackDimensions)(participant);
|
|
64
|
+
const videoDimensions = (0, _useTrackDimensions.useTrackDimensions)(participant, trackType);
|
|
65
|
+
const isVideoDimensionsValid = videoDimensions.width > 0 && videoDimensions.height > 0;
|
|
65
66
|
const {
|
|
66
67
|
isLocalParticipant,
|
|
67
68
|
sessionId,
|
|
@@ -214,7 +215,7 @@ const VideoRenderer = ({
|
|
|
214
215
|
return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
215
216
|
onLayout: onLayout,
|
|
216
217
|
style: [styles.container, videoRenderer.container]
|
|
217
|
-
}, canShowVideo && videoStreamToRender ? /*#__PURE__*/_react.default.createElement(_reactNativeWebrtc.RTCView, {
|
|
218
|
+
}, canShowVideo && videoStreamToRender && (objectFit || isVideoDimensionsValid) ? /*#__PURE__*/_react.default.createElement(_reactNativeWebrtc.RTCView, {
|
|
218
219
|
style: [styles.videoStream, videoRenderer.videoStream],
|
|
219
220
|
streamURL: videoStreamToRender.toURL(),
|
|
220
221
|
mirror: mirror,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeWebrtc","_videoClient","_videoReactBindings","_ParticipantVideoFallback","_ThemeContext","_useTrackDimensions","_ScreenshotIosContext","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DEFAULT_VIEWPORT_VISIBILITY_STATE","videoTrack","VisibilityState","UNKNOWN","screenShareTrack","VideoRenderer","trackType","participant","isVisible","ParticipantVideoFallback","DefaultParticipantVideoFallback","objectFit","videoZOrder","theme","videoRenderer","useTheme","useCall","useCallCallingState","useCameraState","useIncomingVideoSettings","useCallStateHooks","isParticipantVideoEnabled","callingState","pendingVideoLayoutRef","useRef","undefined","subscribedVideoLayoutRef","direction","viewRef","register","registerIosScreenshot","deregister","deregisterIosScreenshot","useScreenshotIosContext","videoDimensions","useTrackDimensions","isLocalParticipant","sessionId","viewportVisibilityState","videoStream","screenShareStream","isScreenSharing","isPublishingVideoTrack","hasScreenShare","hasVideo","hasJoinedCall","CallingState","JOINED","videoStreamToRender","canShowVideo","hasPausedTrack","useEffect","Platform","OS","current","mirror","VISIBLE","state","updateParticipant","p","INVISIBLE","updateIsNeeded","dimension","updateParticipantTracks","dynascaleManager","applyTrackSubscriptions","onLayout","event","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeWebrtc","_videoClient","_videoReactBindings","_ParticipantVideoFallback","_ThemeContext","_useTrackDimensions","_ScreenshotIosContext","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DEFAULT_VIEWPORT_VISIBILITY_STATE","videoTrack","VisibilityState","UNKNOWN","screenShareTrack","VideoRenderer","trackType","participant","isVisible","ParticipantVideoFallback","DefaultParticipantVideoFallback","objectFit","videoZOrder","theme","videoRenderer","useTheme","useCall","useCallCallingState","useCameraState","useIncomingVideoSettings","useCallStateHooks","isParticipantVideoEnabled","callingState","pendingVideoLayoutRef","useRef","undefined","subscribedVideoLayoutRef","direction","viewRef","register","registerIosScreenshot","deregister","deregisterIosScreenshot","useScreenshotIosContext","videoDimensions","useTrackDimensions","isVideoDimensionsValid","width","height","isLocalParticipant","sessionId","viewportVisibilityState","videoStream","screenShareStream","isScreenSharing","isPublishingVideoTrack","hasScreenShare","hasVideo","hasJoinedCall","CallingState","JOINED","videoStreamToRender","canShowVideo","hasPausedTrack","useEffect","Platform","OS","current","mirror","VISIBLE","state","updateParticipant","p","INVISIBLE","updateIsNeeded","dimension","updateParticipantTracks","dynascaleManager","applyTrackSubscriptions","onLayout","event","Math","trunc","nativeEvent","layout","createElement","View","style","styles","container","RTCView","streamURL","toURL","ref","zOrder","exports","StyleSheet","create","absoluteFillObject"],"sourceRoot":"../../../../../src","sources":["components/Participant/ParticipantView/VideoRenderer.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -75,6 +75,7 @@ const BackgroundFiltersProvider = ({
|
|
|
75
75
|
} else if (blurIntensity === 'light') {
|
|
76
76
|
filterName = 'BackgroundBlurLight';
|
|
77
77
|
}
|
|
78
|
+
call?.tracer.trace('backgroundFilters.apply', filterName);
|
|
78
79
|
call?.camera.state.mediaStream?.getVideoTracks().forEach(track => {
|
|
79
80
|
track._setVideoEffect(filterName);
|
|
80
81
|
});
|
|
@@ -96,6 +97,7 @@ const BackgroundFiltersProvider = ({
|
|
|
96
97
|
} else if (blurIntensity === 'light') {
|
|
97
98
|
filterName = 'BlurLight';
|
|
98
99
|
}
|
|
100
|
+
call?.tracer.trace('backgroundFilters.apply', filterName);
|
|
99
101
|
call?.camera.state.mediaStream?.getVideoTracks().forEach(track => {
|
|
100
102
|
track._setVideoEffect(filterName);
|
|
101
103
|
});
|
|
@@ -115,6 +117,7 @@ const BackgroundFiltersProvider = ({
|
|
|
115
117
|
registeredImageFiltersSetRef.current.add(imageUri);
|
|
116
118
|
}
|
|
117
119
|
const filterName = `VirtualBackground-${imageUri}`;
|
|
120
|
+
call?.tracer.trace('backgroundFilters.apply', filterName);
|
|
118
121
|
call?.camera.state.mediaStream?.getVideoTracks().forEach(track => {
|
|
119
122
|
track._setVideoEffect(filterName);
|
|
120
123
|
});
|
|
@@ -126,6 +129,7 @@ const BackgroundFiltersProvider = ({
|
|
|
126
129
|
if (!isSupported) {
|
|
127
130
|
return;
|
|
128
131
|
}
|
|
132
|
+
call?.tracer.trace('backgroundFilters.disableAll', null);
|
|
129
133
|
call?.camera.state.mediaStream?.getVideoTracks().forEach(track => {
|
|
130
134
|
track._setVideoEffect(null);
|
|
131
135
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_videoReactBindings","_reactNative","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","isSupported","Platform","OS","currentVersion","parseInt","Version","videoFiltersModule","resolveAssetSourceFunc","Image","resolveAssetSource","BackgroundFiltersContext","createContext","undefined","useBackgroundFilters","context","useContext","Error","exports","BackgroundFiltersProvider","children","useCall","isBackgroundBlurRegisteredRef","useRef","isVideoBlurRegisteredRef","registeredImageFiltersSetRef","Set","currentBackgroundFilter","setCurrentBackgroundFilter","useState","applyBackgroundBlurFilter","useCallback","blurIntensity","current","registerBackgroundBlurVideoFilters","filterName","camera","state","mediaStream","getVideoTracks","forEach","track","_setVideoEffect","blur","applyVideoBlurFilter","registerBlurVideoFilters","applyBackgroundImageFilter","imageSource","source","imageUri","uri","registeredImageFiltersSet","registerVirtualBackgroundFilter","add","image","disableAllFilters","value","useMemo","createElement","Provider"],"sourceRoot":"../../../src","sources":["contexts/BackgroundFilters.tsx"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_videoReactBindings","_reactNative","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","isSupported","Platform","OS","currentVersion","parseInt","Version","videoFiltersModule","resolveAssetSourceFunc","Image","resolveAssetSource","BackgroundFiltersContext","createContext","undefined","useBackgroundFilters","context","useContext","Error","exports","BackgroundFiltersProvider","children","useCall","isBackgroundBlurRegisteredRef","useRef","isVideoBlurRegisteredRef","registeredImageFiltersSetRef","Set","currentBackgroundFilter","setCurrentBackgroundFilter","useState","applyBackgroundBlurFilter","useCallback","blurIntensity","current","registerBackgroundBlurVideoFilters","filterName","tracer","trace","camera","state","mediaStream","getVideoTracks","forEach","track","_setVideoEffect","blur","applyVideoBlurFilter","registerBlurVideoFilters","applyBackgroundImageFilter","imageSource","source","imageUri","uri","registeredImageFiltersSet","registerVirtualBackgroundFilter","add","image","disableAllFilters","value","useMemo","createElement","Provider"],"sourceRoot":"../../../src","sources":["contexts/BackgroundFilters.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -11,6 +11,9 @@ var _reactNative = require("react-native");
|
|
|
11
11
|
var _videoClient = require("@stream-io/video-client");
|
|
12
12
|
var _notifee = require("../utils/push/libs/notifee");
|
|
13
13
|
const notifeeLib = (0, _notifee.getNotifeeLibNoThrowForKeepCallAlive)();
|
|
14
|
+
const callToPassToForegroundService = {
|
|
15
|
+
current: undefined
|
|
16
|
+
};
|
|
14
17
|
function setForegroundService() {
|
|
15
18
|
if (_reactNative.Platform.OS === 'ios' || !notifeeLib) return;
|
|
16
19
|
_reactNative.NativeModules.StreamVideoReactNative.isCallAliveConfigured().then(isConfigured => {
|
|
@@ -20,35 +23,46 @@ function setForegroundService() {
|
|
|
20
23
|
return;
|
|
21
24
|
}
|
|
22
25
|
notifeeLib.default.registerForegroundService(() => {
|
|
23
|
-
|
|
26
|
+
const task = new Promise(resolve => {
|
|
24
27
|
const logger = (0, _videoClient.getLogger)(['setForegroundService method']);
|
|
25
28
|
logger('info', 'Foreground service running for call in progress');
|
|
29
|
+
// any task to run from SDK in the foreground service must be added
|
|
30
|
+
resolve(true);
|
|
26
31
|
});
|
|
32
|
+
const videoConfig = _utils.StreamVideoRN.getConfig();
|
|
33
|
+
const foregroundServiceConfig = videoConfig.foregroundService;
|
|
34
|
+
const {
|
|
35
|
+
taskToRun
|
|
36
|
+
} = foregroundServiceConfig.android;
|
|
37
|
+
const call = callToPassToForegroundService.current;
|
|
38
|
+
if (!call) {
|
|
39
|
+
const logger = (0, _videoClient.getLogger)(['setForegroundService method']);
|
|
40
|
+
logger('warn', 'No call to pass to foreground service');
|
|
41
|
+
return task.then(() => new Promise(() => {}));
|
|
42
|
+
}
|
|
43
|
+
callToPassToForegroundService.current = undefined;
|
|
44
|
+
return task.then(() => taskToRun(call));
|
|
27
45
|
});
|
|
28
46
|
});
|
|
29
47
|
}
|
|
30
48
|
async function startForegroundService(call_cid) {
|
|
31
|
-
const videoConfig = _utils.StreamVideoRN.getConfig();
|
|
32
|
-
const foregroundServiceConfig = videoConfig.foregroundService;
|
|
33
|
-
const {
|
|
34
|
-
title,
|
|
35
|
-
body
|
|
36
|
-
} = foregroundServiceConfig.android.notificationTexts;
|
|
37
|
-
|
|
38
|
-
// check for notification permission and then start the foreground service
|
|
39
|
-
if (!notifeeLib) return;
|
|
40
49
|
const isCallAliveConfigured = await _reactNative.NativeModules.StreamVideoReactNative.isCallAliveConfigured();
|
|
41
50
|
if (!isCallAliveConfigured) {
|
|
42
51
|
const logger = (0, _videoClient.getLogger)(['startForegroundService']);
|
|
43
52
|
logger('info', 'KeepCallAlive is not configured. Skipping foreground service setup.');
|
|
44
53
|
return;
|
|
45
54
|
}
|
|
55
|
+
// check for notification permission and then start the foreground service
|
|
56
|
+
if (!notifeeLib) return;
|
|
46
57
|
const settings = await notifeeLib.default.getNotificationSettings();
|
|
47
58
|
if (settings.authorizationStatus !== notifeeLib.AuthorizationStatus.AUTHORIZED) {
|
|
48
59
|
const logger = (0, _videoClient.getLogger)(['startForegroundService']);
|
|
49
60
|
logger('info', 'Notification permission not granted, can not start foreground service to keep the call alive');
|
|
50
61
|
return;
|
|
51
62
|
}
|
|
63
|
+
const videoConfig = _utils.StreamVideoRN.getConfig();
|
|
64
|
+
const foregroundServiceConfig = videoConfig.foregroundService;
|
|
65
|
+
const notificationTexts = foregroundServiceConfig.android.notificationTexts;
|
|
52
66
|
const channelId = foregroundServiceConfig.android.channel.id;
|
|
53
67
|
await notifeeLib.default.createChannel(foregroundServiceConfig.android.channel);
|
|
54
68
|
const foregroundServiceTypes = await (0, _notifee.getKeepCallAliveForegroundServiceTypes)();
|
|
@@ -58,8 +72,8 @@ async function startForegroundService(call_cid) {
|
|
|
58
72
|
requestAnimationFrame(() => {
|
|
59
73
|
notifeeLib.default.displayNotification({
|
|
60
74
|
id: call_cid,
|
|
61
|
-
title,
|
|
62
|
-
body,
|
|
75
|
+
title: notificationTexts.title,
|
|
76
|
+
body: notificationTexts.body,
|
|
63
77
|
android: {
|
|
64
78
|
channelId,
|
|
65
79
|
smallIcon: videoConfig.push?.android.smallIcon,
|
|
@@ -89,6 +103,7 @@ let isSetForegroundServiceRan = false;
|
|
|
89
103
|
const useAndroidKeepCallAliveEffect = () => {
|
|
90
104
|
const foregroundServiceStartedRef = (0, _react.useRef)(false);
|
|
91
105
|
const call = (0, _videoReactBindings.useCall)();
|
|
106
|
+
callToPassToForegroundService.current = call;
|
|
92
107
|
const activeCallCid = call?.cid;
|
|
93
108
|
const {
|
|
94
109
|
useCallCallingState
|
|
@@ -117,6 +132,7 @@ const useAndroidKeepCallAliveEffect = () => {
|
|
|
117
132
|
const displayedNotifications = await notifee.getDisplayedNotifications();
|
|
118
133
|
const activeCallNotification = displayedNotifications.find(notification => notification.id === activeCallCid);
|
|
119
134
|
if (activeCallNotification) {
|
|
135
|
+
callToPassToForegroundService.current = undefined;
|
|
120
136
|
// this means that we have a incoming call notification shown as foreground service and we must stop it
|
|
121
137
|
notifee.stopForegroundService();
|
|
122
138
|
notifee.cancelDisplayedNotification(activeCallCid);
|
|
@@ -149,6 +165,7 @@ const useAndroidKeepCallAliveEffect = () => {
|
|
|
149
165
|
};
|
|
150
166
|
} else if (callingState === _videoClient.CallingState.IDLE || callingState === _videoClient.CallingState.LEFT) {
|
|
151
167
|
if (foregroundServiceStartedRef.current) {
|
|
168
|
+
callToPassToForegroundService.current = undefined;
|
|
152
169
|
// stop foreground service when the call is not active
|
|
153
170
|
notifeeLib.default.stopForegroundService();
|
|
154
171
|
foregroundServiceStartedRef.current = false;
|
|
@@ -156,6 +173,7 @@ const useAndroidKeepCallAliveEffect = () => {
|
|
|
156
173
|
notifeeLib.default.getDisplayedNotifications().then(displayedNotifications => {
|
|
157
174
|
const activeCallNotification = displayedNotifications.find(notification => notification.id === activeCallCid);
|
|
158
175
|
if (activeCallNotification) {
|
|
176
|
+
callToPassToForegroundService.current = undefined;
|
|
159
177
|
// this means that we have a incoming call notification shown as foreground service and we must stop it
|
|
160
178
|
notifeeLib.default.stopForegroundService();
|
|
161
179
|
}
|
|
@@ -169,6 +187,7 @@ const useAndroidKeepCallAliveEffect = () => {
|
|
|
169
187
|
// stop foreground service when this effect is unmounted
|
|
170
188
|
if (foregroundServiceStartedRef.current) {
|
|
171
189
|
if (!notifeeLib) return;
|
|
190
|
+
callToPassToForegroundService.current = undefined;
|
|
172
191
|
notifeeLib.default.stopForegroundService();
|
|
173
192
|
foregroundServiceStartedRef.current = false;
|
|
174
193
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_videoReactBindings","require","_react","_utils","_reactNative","_videoClient","_notifee","notifeeLib","getNotifeeLibNoThrowForKeepCallAlive","setForegroundService","Platform","OS","NativeModules","StreamVideoReactNative","isCallAliveConfigured","then","isConfigured","logger","getLogger","default","registerForegroundService","
|
|
1
|
+
{"version":3,"names":["_videoReactBindings","require","_react","_utils","_reactNative","_videoClient","_notifee","notifeeLib","getNotifeeLibNoThrowForKeepCallAlive","callToPassToForegroundService","current","undefined","setForegroundService","Platform","OS","NativeModules","StreamVideoReactNative","isCallAliveConfigured","then","isConfigured","logger","getLogger","default","registerForegroundService","task","Promise","resolve","videoConfig","StreamVideoRN","getConfig","foregroundServiceConfig","foregroundService","taskToRun","android","call","startForegroundService","call_cid","settings","getNotificationSettings","authorizationStatus","AuthorizationStatus","AUTHORIZED","notificationTexts","channelId","channel","id","createChannel","foregroundServiceTypes","getKeepCallAliveForegroundServiceTypes","requestAnimationFrame","displayNotification","title","body","smallIcon","push","asForegroundService","ongoing","colorized","pressAction","launchActivity","isSetForegroundServiceRan","useAndroidKeepCallAliveEffect","foregroundServiceStartedRef","useRef","useCall","activeCallCid","cid","useCallCallingState","useCallStateHooks","callingState","isOutgoingCall","CallingState","RINGING","isCreatedByMe","isCallJoined","JOINED","shouldStartForegroundService","useEffect","run","notifee","displayedNotifications","getDisplayedNotifications","activeCallNotification","find","notification","stopForegroundService","cancelDisplayedNotification","AppState","currentState","sub","addEventListener","nextAppState","remove","IDLE","LEFT","exports"],"sourceRoot":"../../../src","sources":["hooks/useAndroidKeepCallAliveEffect.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,59 +4,55 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.useTrackDimensions = useTrackDimensions;
|
|
7
|
-
var _videoReactBindings = require("@stream-io/video-react-bindings");
|
|
8
7
|
var _react = require("react");
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
const webRTCEventEmitter = new _reactNative.NativeEventEmitter(_reactNative.NativeModules.WebRTCModule);
|
|
10
|
+
|
|
9
11
|
/**
|
|
10
12
|
* This is a utility hook to get the dimensions of the video track of the participant.
|
|
11
13
|
* Note: the `tracktype` is used only for local participants.
|
|
12
14
|
* `tracktype` should be 'videoTrack' for video track and 'screenShareTrack' for screen share track.
|
|
13
15
|
*/
|
|
14
|
-
function useTrackDimensions(participant) {
|
|
15
|
-
const [trackDimensions, setTrackDimensions] = (0, _react.useState)({
|
|
16
|
-
width: 0,
|
|
17
|
-
height: 0
|
|
18
|
-
});
|
|
19
|
-
const call = (0, _videoReactBindings.useCall)();
|
|
16
|
+
function useTrackDimensions(participant, trackType) {
|
|
20
17
|
const {
|
|
21
|
-
|
|
18
|
+
videoStream,
|
|
19
|
+
screenShareStream
|
|
22
20
|
} = participant;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
21
|
+
const stream = trackType === 'screenShareTrack' ? screenShareStream : videoStream;
|
|
22
|
+
const [track] = stream?.getVideoTracks() ?? [];
|
|
23
|
+
const trackId = track?.id;
|
|
24
|
+
const [trackDimensions, setTrackDimensions] = (0, _react.useState)(() => {
|
|
25
|
+
const settings = track?.getSettings();
|
|
26
|
+
const width = settings?.width ?? 0;
|
|
27
|
+
const height = settings?.height ?? 0;
|
|
28
|
+
return {
|
|
29
|
+
width,
|
|
30
|
+
height
|
|
28
31
|
};
|
|
29
|
-
}
|
|
32
|
+
});
|
|
30
33
|
|
|
31
|
-
//
|
|
32
|
-
// and for local participants we can get from track.getSettings() but it reports the wrong dimensions as it sends the constraints
|
|
33
|
-
// so we need to rely on call stats for all participants to get the dimensions
|
|
34
|
+
// Set up videoTrackDimensionChanged event listener for more direct dimension updates
|
|
34
35
|
(0, _react.useEffect)(() => {
|
|
35
|
-
if (!
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
const trackStats = reportForTracks?.flatMap(r => r.streams).filter(track => track.kind === 'video');
|
|
40
|
-
if (!trackStats) return;
|
|
41
|
-
const stat = trackStats[0];
|
|
42
|
-
if (stat) {
|
|
43
|
-
const {
|
|
44
|
-
frameWidth = 0,
|
|
45
|
-
frameHeight = 0
|
|
46
|
-
} = stat;
|
|
36
|
+
if (!trackId || !_reactNative.NativeModules.WebRTCModule) return;
|
|
37
|
+
const handleVideoTrackDimensionChanged = eventData => {
|
|
38
|
+
// Only handle events for this specific participant
|
|
39
|
+
if (eventData.trackId === trackId) {
|
|
47
40
|
setTrackDimensions(prev => {
|
|
48
|
-
if (prev.width !==
|
|
41
|
+
if (prev.width !== eventData.width || prev.height !== eventData.height) {
|
|
49
42
|
return {
|
|
50
|
-
width:
|
|
51
|
-
height:
|
|
43
|
+
width: eventData.width,
|
|
44
|
+
height: eventData.height
|
|
52
45
|
};
|
|
53
46
|
}
|
|
54
47
|
return prev;
|
|
55
48
|
});
|
|
56
49
|
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
|
|
50
|
+
};
|
|
51
|
+
const subscription = webRTCEventEmitter.addListener('videoTrackDimensionChanged', handleVideoTrackDimensionChanged);
|
|
52
|
+
return () => {
|
|
53
|
+
subscription.remove();
|
|
54
|
+
};
|
|
55
|
+
}, [trackId, track]);
|
|
60
56
|
return trackDimensions;
|
|
61
57
|
}
|
|
62
58
|
//# sourceMappingURL=useTrackDimensions.js.map
|