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

Fix dismissal code not running by creating subclass of view controller and notifying view

parent 4bbce5e3
Loading
Loading
Loading
Loading
+2 −0
Changes for RCTVideo.h: 2 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@
#import <AVFoundation/AVFoundation.h>
#import "AVKit/AVKit.h"
#import "UIView+FindUIViewController.h"
#import "RCTVideoPlayerViewController.h"

@class RCTEventDispatcher;

@@ -10,5 +11,6 @@
- (instancetype)initWithEventDispatcher:(RCTEventDispatcher *)eventDispatcher NS_DESIGNATED_INITIALIZER;

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

@end
+3 −1
Changes for RCTVideo.m: 3 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -71,7 +71,8 @@ static NSString *const playbackBufferEmptyKeyPath = @"playbackBufferEmpty";
}

- (AVPlayerViewController*)createPlayerViewController:(AVPlayer*)player withPlayerItem:(AVPlayerItem*)playerItem {
    AVPlayerViewController* playerLayer= [[AVPlayerViewController alloc] init];
    RCTVideoPlayerViewController* playerLayer= [[RCTVideoPlayerViewController alloc] init];
    playerLayer.rctDelegate = self;
    playerLayer.view.frame = self.bounds;
    playerLayer.player = _player;
    playerLayer.view.frame = self.bounds;
@@ -472,6 +473,7 @@ static NSString *const playbackBufferEmptyKeyPath = @"playbackBufferEmpty";
        [_presentingViewController dismissViewControllerAnimated:true completion:^{
            _fullScreenPlayerPresented = fullscreen;
            _presentingViewController = nil;
            [self setControls:_controls];
            [_eventDispatcher sendInputEventWithName:@"onVideoFullscreenPlayerDidDismiss" body:@{@"target": self.reactTag}];
        }];
    }
+6 −0
Changes for RCTVideo.xcodeproj/project.pbxproj: 6 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@

/* Begin PBXBuildFile section */
		31CAFB211CADA8CD009BCF6F /* UIView+FindUIViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 31CAFB201CADA8CD009BCF6F /* UIView+FindUIViewController.m */; };
		31CAFB2F1CADC77F009BCF6F /* RCTVideoPlayerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 31CAFB2E1CADC77F009BCF6F /* RCTVideoPlayerViewController.m */; };
		BBD49E3F1AC8DEF000610F8E /* RCTVideo.m in Sources */ = {isa = PBXBuildFile; fileRef = BBD49E3A1AC8DEF000610F8E /* RCTVideo.m */; };
		BBD49E401AC8DEF000610F8E /* RCTVideoManager.m in Sources */ = {isa = PBXBuildFile; fileRef = BBD49E3C1AC8DEF000610F8E /* RCTVideoManager.m */; };
/* End PBXBuildFile section */
@@ -28,6 +29,8 @@
		134814201AA4EA6300B7C361 /* libRCTVideo.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libRCTVideo.a; sourceTree = BUILT_PRODUCTS_DIR; };
		31CAFB1F1CADA8CD009BCF6F /* UIView+FindUIViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+FindUIViewController.h"; sourceTree = "<group>"; };
		31CAFB201CADA8CD009BCF6F /* UIView+FindUIViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+FindUIViewController.m"; sourceTree = "<group>"; };
		31CAFB2D1CADC77F009BCF6F /* RCTVideoPlayerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTVideoPlayerViewController.h; sourceTree = "<group>"; };
		31CAFB2E1CADC77F009BCF6F /* RCTVideoPlayerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTVideoPlayerViewController.m; sourceTree = "<group>"; };
		BBD49E391AC8DEF000610F8E /* RCTVideo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTVideo.h; sourceTree = "<group>"; };
		BBD49E3A1AC8DEF000610F8E /* RCTVideo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTVideo.m; sourceTree = "<group>"; };
		BBD49E3B1AC8DEF000610F8E /* RCTVideoManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTVideoManager.h; sourceTree = "<group>"; };
@@ -60,6 +63,8 @@
				31CAFB201CADA8CD009BCF6F /* UIView+FindUIViewController.m */,
				BBD49E391AC8DEF000610F8E /* RCTVideo.h */,
				BBD49E3A1AC8DEF000610F8E /* RCTVideo.m */,
				31CAFB2D1CADC77F009BCF6F /* RCTVideoPlayerViewController.h */,
				31CAFB2E1CADC77F009BCF6F /* RCTVideoPlayerViewController.m */,
				BBD49E3B1AC8DEF000610F8E /* RCTVideoManager.h */,
				BBD49E3C1AC8DEF000610F8E /* RCTVideoManager.m */,
				134814211AA4EA7D00B7C361 /* Products */,
@@ -123,6 +128,7 @@
			buildActionMask = 2147483647;
			files = (
				31CAFB211CADA8CD009BCF6F /* UIView+FindUIViewController.m in Sources */,
				31CAFB2F1CADC77F009BCF6F /* RCTVideoPlayerViewController.m in Sources */,
				BBD49E3F1AC8DEF000610F8E /* RCTVideo.m in Sources */,
				BBD49E401AC8DEF000610F8E /* RCTVideoManager.m in Sources */,
			);
+14 −0
Changes for RCTVideoPlayerViewController.h: 14 added lines, 0 removed lines.
Original line number Diff line number Diff line
//
//  RCTVideoPlayerViewController.h
//  RCTVideo
//
//  Created by Stanisław Chmiela on 31.03.2016.
//  Copyright © 2016 Facebook. All rights reserved.
//

#import <AVKit/AVKit.h>
#import "RCTVideo.h"

@interface RCTVideoPlayerViewController : AVPlayerViewController
@property (nonatomic, weak) id<RCTVideo> rctVideoView;
@end
+22 −0
Changes for RCTVideoPlayerViewController.m: 22 added lines, 0 removed lines.
Original line number Diff line number Diff line
//
//  RCTVideoPlayerViewController.m
//  RCTVideo
//
//  Created by Stanisław Chmiela on 31.03.2016.
//  Copyright © 2016 Facebook. All rights reserved.
//

#import "RCTVideoPlayerViewController.h"

@interface RCTVideoPlayerViewController ()

@end

@implementation RCTVideoPlayerViewController

- (IBAction)close:(id)sender
{
    [self.rctVideoView setFullscreen:false];
}

@end