feat(base/media): removed max offset value for wide view screen sharing
This commit is contained in:
parent
87f6d27fb2
commit
64fef80f31
|
@ -5,6 +5,7 @@ import { PanResponder, PixelRatio, View } from 'react-native';
|
||||||
import { type Dispatch } from 'redux';
|
import { type Dispatch } from 'redux';
|
||||||
|
|
||||||
import { connect } from '../../../redux';
|
import { connect } from '../../../redux';
|
||||||
|
import { ASPECT_RATIO_WIDE } from '../../../responsive-ui';
|
||||||
import { storeVideoTransform } from '../../actions';
|
import { storeVideoTransform } from '../../actions';
|
||||||
|
|
||||||
import styles from './styles';
|
import styles from './styles';
|
||||||
|
@ -61,6 +62,11 @@ type Transform = {
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The current aspect ratio of the screen.
|
||||||
|
*/
|
||||||
|
_aspectRatio: Symbol,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The children components of this view.
|
* The children components of this view.
|
||||||
*/
|
*/
|
||||||
|
@ -213,14 +219,18 @@ class VideoTransform extends Component<Props, State> {
|
||||||
* @inheritdoc
|
* @inheritdoc
|
||||||
*/
|
*/
|
||||||
render() {
|
render() {
|
||||||
const { children, style } = this.props;
|
const { _aspectRatio, children, style } = this.props;
|
||||||
|
const isAspectRatioWide = _aspectRatio === ASPECT_RATIO_WIDE;
|
||||||
|
|
||||||
|
const videoTransformedViewContainerStyles
|
||||||
|
= isAspectRatioWide ? styles.videoTransformedViewContainerWide : styles.videoTransformedViewContainer;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<View
|
<View
|
||||||
onLayout = { this._onLayout }
|
onLayout = { this._onLayout }
|
||||||
pointerEvents = 'box-only'
|
pointerEvents = 'box-only'
|
||||||
style = { [
|
style = { [
|
||||||
styles.videoTransformedViewContainer,
|
videoTransformedViewContainerStyles,
|
||||||
style
|
style
|
||||||
] }
|
] }
|
||||||
{ ...this.gestureHandlers.panHandlers }>
|
{ ...this.gestureHandlers.panHandlers }>
|
||||||
|
@ -371,8 +381,12 @@ class VideoTransform extends Component<Props, State> {
|
||||||
* @returns {void}
|
* @returns {void}
|
||||||
*/
|
*/
|
||||||
_limitAndApplyTransformation(transform: Transform) {
|
_limitAndApplyTransformation(transform: Transform) {
|
||||||
|
const { _aspectRatio } = this.props;
|
||||||
const { layout } = this.state;
|
const { layout } = this.state;
|
||||||
|
|
||||||
|
const isAspectRatioWide = _aspectRatio === ASPECT_RATIO_WIDE;
|
||||||
|
|
||||||
|
|
||||||
if (layout) {
|
if (layout) {
|
||||||
const { scale } = this.state.transform;
|
const { scale } = this.state.transform;
|
||||||
const { scale: newScaleUnlimited } = transform;
|
const { scale: newScaleUnlimited } = transform;
|
||||||
|
@ -421,10 +435,10 @@ class VideoTransform extends Component<Props, State> {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
let _MAX_OFFSET = MAX_OFFSET;
|
let _MAX_OFFSET = isAspectRatioWide ? 0 : MAX_OFFSET;
|
||||||
|
|
||||||
if (newScaleUnlimited < scale) {
|
if (newScaleUnlimited < scale) {
|
||||||
// This is a negative scale event so we dynamycally reduce the
|
// This is a negative scale event so we dynamically reduce the
|
||||||
// MAX_OFFSET to get the screen back to the center on
|
// MAX_OFFSET to get the screen back to the center on
|
||||||
// downscaling.
|
// downscaling.
|
||||||
_MAX_OFFSET = Math.min(MAX_OFFSET, MAX_OFFSET * (newScale - 1));
|
_MAX_OFFSET = Math.min(MAX_OFFSET, MAX_OFFSET * (newScale - 1));
|
||||||
|
@ -718,6 +732,8 @@ function _mapDispatchToProps(dispatch: Dispatch<any>) {
|
||||||
*/
|
*/
|
||||||
function _mapStateToProps(state) {
|
function _mapStateToProps(state) {
|
||||||
return {
|
return {
|
||||||
|
_aspectRatio: state['features/base/responsive-ui'].aspectRatio,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The stored transforms retrieved from Redux to be initially applied to
|
* The stored transforms retrieved from Redux to be initially applied to
|
||||||
* different streams.
|
* different streams.
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import { StyleSheet } from 'react-native';
|
import { StyleSheet } from 'react-native';
|
||||||
|
import BaseThemeNative from '../../../ui/components/BaseTheme';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The styles of the feature base/media.
|
* The styles of the feature base/media.
|
||||||
|
@ -21,6 +22,11 @@ export default StyleSheet.create({
|
||||||
overflow: 'hidden'
|
overflow: 'hidden'
|
||||||
},
|
},
|
||||||
|
|
||||||
|
videoTransformedViewContainerWide: {
|
||||||
|
overflow: 'hidden',
|
||||||
|
paddingRight: BaseThemeNative.spacing[10]
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Make {@code Video} fill its container.
|
* Make {@code Video} fill its container.
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue