Commit 011ecff8 authored by Brent Vatne's avatar Brent Vatne
Browse files

Move resizeMode to prop from style (at request of @vjeux) and add pause

prop
parent b8df485c
Loading
Loading
Loading
Loading
+9 −0
Changes for RCTVideo.m: 9 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -34,6 +34,15 @@
  _playerLayer.videoGravity = mode;
}

- (void)setPause:(BOOL)wantsToPause
{
  if (wantsToPause) {
    [_player pause];
  } else {
    [_player play];
  }
}


- (void)playerItemDidReachEnd:(NSNotification *)notification {
  AVPlayerItem *item = [notification object];
+1 −0
Changes for RCTVideoManager.m: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@
RCT_EXPORT_VIEW_PROPERTY(src, NSString);
RCT_EXPORT_VIEW_PROPERTY(resizeMode, NSString);
RCT_EXPORT_VIEW_PROPERTY(repeat, BOOL);
RCT_EXPORT_VIEW_PROPERTY(pause, BOOL);

- (NSDictionary *)constantsToExport
{
+12 −8
Changes for Video.ios.js: 12 added lines, 8 removed lines.
Original line number Diff line number Diff line
@@ -15,7 +15,9 @@ var Video = React.createClass({
  propTypes: {
    source: PropTypes.string,
    style: StyleSheetPropType(VideoStylePropTypes),
    resizeMode: PropTypes.string,
    repeat: PropTypes.bool,
    pause: PropTypes.bool,
  },

  mixins: [NativeMethodsMixin],
@@ -30,18 +32,19 @@ var Video = React.createClass({
    var source = this.props.source;

    var resizeMode;
    var contentModes = NativeModules.VideoManager;
    if (style.resizeMode === VideoResizeMode.stretch) {
      resizeMode = contentModes.ScaleToFill;
    } else if (style.resizeMode === VideoResizeMode.contain) {
      resizeMode = contentModes.ScaleAspectFit;
    if (this.props.resizeMode === VideoResizeMode.stretch) {
      resizeMode = NativeModules.VideoManager.ScaleToFill;
    } else if (this.props.resizeMode === VideoResizeMode.contain) {
      resizeMode = NativeModules.VideoManager.ScaleAspectFit;
    } else if (this.props.resizeMode == VideoResizeMode.cover) {
      resizeMode = NativeModules.VideoManager.ScaleAspectFill;
    } else {
      resizeMode = contentModes.ScaleAspectFill;
      resizeMode = NativeModules.VideoManager.ScaleNone;
    }

    var nativeProps = merge(this.props, {
      style,
      resizeMode,
      resizeMode: resizeMode,
      src: source,
    });

@@ -50,7 +53,8 @@ var Video = React.createClass({
});

var RCTVideo = createReactIOSNativeComponentClass({
  validAttributes: merge(ReactIOSViewAttributes.UIView, {src: true, resizeMode: true, repeat: true}),
  validAttributes: merge(ReactIOSViewAttributes.UIView,
                         {src: true, resizeMode: true, repeat: true, pause: true}),
  uiViewClassName: 'RCTVideo',
});

+0 −1
Changes for VideoStylePropTypes.js: 0 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -6,7 +6,6 @@ var ReactPropTypes = require('ReactPropTypes');

var VideoStylePropTypes = {
  ...LayoutPropTypes,
  resizeMode: ReactPropTypes.oneOf(Object.keys(VideoResizeMode)),
};

module.exports = VideoStylePropTypes;