diff --git a/package-lock.json b/package-lock.json index 270119234c40..5d7be208477a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -100,7 +100,7 @@ "react-native-url-polyfill": "2.0.0", "react-native-video": "6.0.0-alpha.11", "react-native-watch-connectivity": "1.1.0", - "react-native-webrtc": "124.0.4", + "react-native-webrtc": "git+https://git@github.com/react-native-webrtc/react-native-webrtc.git#6953b21a33382478c9d56674e4d4bd35a30149f9", "react-native-webview": "13.8.7", "react-native-youtube-iframe": "2.3.0", "react-redux": "7.2.9", @@ -16063,8 +16063,9 @@ }, "node_modules/react-native-webrtc": { "version": "124.0.4", - "resolved": "https://registry.npmjs.org/react-native-webrtc/-/react-native-webrtc-124.0.4.tgz", - "integrity": "sha512-ZbhSz1f+kc1v5VE0B84+v6ujIWTHa2fIuocrYzGUIFab7E5izmct7PNHb9dzzs0xhBGqh4c2rUa49jbL+P/e2w==", + "resolved": "git+https://git@github.com/react-native-webrtc/react-native-webrtc.git#6953b21a33382478c9d56674e4d4bd35a30149f9", + "integrity": "sha512-JMunPsk83dw+Vn1YaK8VuzBkJtE6WznjdIn4tj84DWqzj0h8L+JGBaYTR6QRQArNvL9Dh+0dwadmXPjuh3DtUw==", + "license": "MIT", "dependencies": { "base64-js": "1.5.1", "debug": "4.3.4", @@ -30642,9 +30643,9 @@ } }, "react-native-webrtc": { - "version": "124.0.4", - "resolved": "https://registry.npmjs.org/react-native-webrtc/-/react-native-webrtc-124.0.4.tgz", - "integrity": "sha512-ZbhSz1f+kc1v5VE0B84+v6ujIWTHa2fIuocrYzGUIFab7E5izmct7PNHb9dzzs0xhBGqh4c2rUa49jbL+P/e2w==", + "version": "git+https://git@github.com/react-native-webrtc/react-native-webrtc.git#6953b21a33382478c9d56674e4d4bd35a30149f9", + "integrity": "sha512-JMunPsk83dw+Vn1YaK8VuzBkJtE6WznjdIn4tj84DWqzj0h8L+JGBaYTR6QRQArNvL9Dh+0dwadmXPjuh3DtUw==", + "from": "react-native-webrtc@git+https://git@github.com/react-native-webrtc/react-native-webrtc.git#6953b21a33382478c9d56674e4d4bd35a30149f9", "requires": { "base64-js": "1.5.1", "debug": "4.3.4", diff --git a/package.json b/package.json index 4eb40d99a4b1..56b11448d8b3 100644 --- a/package.json +++ b/package.json @@ -106,7 +106,7 @@ "react-native-url-polyfill": "2.0.0", "react-native-video": "6.0.0-alpha.11", "react-native-watch-connectivity": "1.1.0", - "react-native-webrtc": "124.0.4", + "react-native-webrtc": "git+https://git@github.com/react-native-webrtc/react-native-webrtc.git#6953b21a33382478c9d56674e4d4bd35a30149f9", "react-native-webview": "13.8.7", "react-native-youtube-iframe": "2.3.0", "react-redux": "7.2.9", diff --git a/react/features/app/reducers.native.ts b/react/features/app/reducers.native.ts index 0ffc5800b794..a0a632cc4009 100644 --- a/react/features/app/reducers.native.ts +++ b/react/features/app/reducers.native.ts @@ -3,6 +3,7 @@ import '../mobile/background/reducer'; import '../mobile/call-integration/reducer'; import '../mobile/external-api/reducer'; import '../mobile/full-screen/reducer'; +import '../mobile/picture-in-picture/reducer'; import '../mobile/watchos/reducer'; import '../share-room/reducer'; diff --git a/react/features/app/types.ts b/react/features/app/types.ts index 272d5bd2ca9c..898b27338f8f 100644 --- a/react/features/app/types.ts +++ b/react/features/app/types.ts @@ -52,6 +52,7 @@ import { IBackgroundState } from '../mobile/background/reducer'; import { ICallIntegrationState } from '../mobile/call-integration/reducer'; import { IMobileExternalApiState } from '../mobile/external-api/reducer'; import { IFullScreenState } from '../mobile/full-screen/reducer'; +import { IMobilePictureInPictureState } from '../mobile/picture-in-picture/reducer'; import { IMobileWatchOSState } from '../mobile/watchos/reducer'; import { INoAudioSignalState } from '../no-audio-signal/reducer'; import { INoiseDetectionState } from '../noise-detection/reducer'; @@ -142,6 +143,7 @@ export interface IReduxState { 'features/lobby': ILobbyState; 'features/mobile/audio-mode': IMobileAudioModeState; 'features/mobile/external-api': IMobileExternalApiState; + 'features/mobile/picture-in-picture': IMobilePictureInPictureState; 'features/mobile/watchos': IMobileWatchOSState; 'features/no-audio-signal': INoAudioSignalState; 'features/noise-detection': INoiseDetectionState; diff --git a/react/features/base/media/components/AbstractVideoTrack.tsx b/react/features/base/media/components/AbstractVideoTrack.tsx index 03c405153901..9f7917c98774 100644 --- a/react/features/base/media/components/AbstractVideoTrack.tsx +++ b/react/features/base/media/components/AbstractVideoTrack.tsx @@ -1,4 +1,4 @@ -import React, { Component } from 'react'; +import React, { Component, ReactElement } from 'react'; import { IStore } from '../../../app/types'; import { trackVideoStarted } from '../../tracks/actions'; @@ -16,6 +16,11 @@ export interface IProps { */ dispatch: IStore['dispatch']; + /** + * IOS component for PiP view. + */ + fallbackView?: ReactElement; + /** * Callback to invoke when the {@link Video} of {@code AbstractVideoTrack} * is clicked/pressed. @@ -111,6 +116,7 @@ export default class AbstractVideoTrack

extends Component

{ return (