Commit 931ea75e authored by Stanisław Chmiela's avatar Stanisław Chmiela
Browse files

Implement delegate in RCTVideo

parent 9fefa996
Loading
Loading
Loading
Loading
+2 −2
Changes for RCTVideo.h: 2 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -3,14 +3,14 @@
#import "AVKit/AVKit.h"
#import "UIView+FindUIViewController.h"
#import "RCTVideoPlayerViewController.h"
#import "RCTVideoPlayerViewControllerDelegate.h"

@class RCTEventDispatcher;

@interface RCTVideo : UIView
@interface RCTVideo : UIView <RCTVideoPlayerViewControllerDelegate>

- (instancetype)initWithEventDispatcher:(RCTEventDispatcher *)eventDispatcher NS_DESIGNATED_INITIALIZER;

- (AVPlayerViewController*)createPlayerViewController:(AVPlayer*)player withPlayerItem:(AVPlayerItem*)playerItem;
- (void)setFullscreen:(BOOL)fullscreen;

@end
+23 −6
Changes for RCTVideo.m: 23 added lines, 6 removed lines.
Original line number Diff line number Diff line
@@ -469,17 +469,13 @@ static NSString *const playbackBufferEmptyKeyPath = @"playbackBufferEmpty";
    }
    else
    {
        [_eventDispatcher sendInputEventWithName:@"onVideoFullscreenPlayerWillDismiss" body:@{@"target": self.reactTag}];
        [self videoPlayerViewControllerWillDismiss:_playerViewController];
        [_presentingViewController dismissViewControllerAnimated:true completion:^{
            _fullScreenPlayerPresented = fullscreen;
            _presentingViewController = nil;
            [self setControls:_controls];
            [_eventDispatcher sendInputEventWithName:@"onVideoFullscreenPlayerDidDismiss" body:@{@"target": self.reactTag}];
            [self videoPlayerViewControllerDidDismiss:_playerViewController];
        }];
    }
}


- (void)usePlayerViewController
{
    if( _player )
@@ -522,6 +518,27 @@ static NSString *const playbackBufferEmptyKeyPath = @"playbackBufferEmpty";
    }
}

#pragma mark - RCTVideoPlayerViewControllerDelegate

- (void)videoPlayerViewControllerWillDismiss:(AVPlayerViewController *)playerViewController
{
    if (_playerViewController == playerViewController && _fullScreenPlayerPresented)
    {
        [_eventDispatcher sendInputEventWithName:@"onVideoFullscreenPlayerWillDismiss" body:@{@"target": self.reactTag}];
    }
}

- (void)videoPlayerViewControllerDidDismiss:(AVPlayerViewController *)playerViewController
{
    if (_playerViewController == playerViewController && _fullScreenPlayerPresented)
    {
        _fullScreenPlayerPresented = false;
        _presentingViewController = nil;
        [self setControls:_controls];
        [_eventDispatcher sendInputEventWithName:@"onVideoFullscreenPlayerDidDismiss" body:@{@"target": self.reactTag}];
    }
}

#pragma mark - React View Management

- (void)insertReactSubview:(UIView *)view atIndex:(NSInteger)atIndex