@@ -79,24 +79,30 @@ - (void)seekToTime:(CMTime)time
7979
8080@end
8181
82- // Convience to avoid having two copies of the StubViewProvider code.
83- #if TARGET_OS_OSX
84- #define PROVIDED_VIEW_TYPE NSView
82+ @interface StubViewProvider : NSObject <FVPViewProvider>
83+ #if TARGET_OS_IOS
84+ - (instancetype )initWithViewController : (UIViewController *)viewController ;
85+ @property (nonatomic , nullable ) UIViewController *viewController;
8586#else
86- #define PROVIDED_VIEW_TYPE UIView
87+ - (instancetype )initWithView : (NSView *)view ;
88+ @property (nonatomic , nullable ) NSView *view;
8789#endif
88-
89- @interface StubViewProvider : NSObject <FVPViewProvider>
90- - (instancetype )initWithView : (PROVIDED_VIEW_TYPE *)view ;
91- @property (nonatomic , nullable ) PROVIDED_VIEW_TYPE *view;
9290@end
9391
9492@implementation StubViewProvider
95- - (instancetype )initWithView : (PROVIDED_VIEW_TYPE *)view {
93+ #if TARGET_OS_IOS
94+ - (instancetype )initWithViewController : (UIViewController *)viewController {
95+ self = [super init ];
96+ _viewController = viewController;
97+ return self;
98+ }
99+ #else
100+ - (instancetype )initWithView : (NSView *)view {
96101 self = [super init ];
97102 _view = view;
98103 return self;
99104}
105+ #endif
100106@end
101107
102108@interface StubFVPAVFactory : NSObject <FVPAVFactory>
@@ -227,14 +233,19 @@ - (void)testBlankVideoBugWithEncryptedVideoStreamAndInvertedAspectRatioBugForSom
227233#if TARGET_OS_OSX
228234 NSView *view = [[NSView alloc ] initWithFrame: NSMakeRect (0 , 0 , 10 , 10 )];
229235 view.wantsLayer = true ;
236+ id <FVPViewProvider> viewProvider = [[StubViewProvider alloc ] initWithView: view];
230237#else
231238 UIView *view = [[UIView alloc ] initWithFrame: CGRectMake (0 , 0 , 10 , 10 )];
239+ UIViewController *viewController = [[UIViewController alloc ] init ];
240+ viewController.view = view;
241+ id <FVPViewProvider> viewProvider =
242+ [[StubViewProvider alloc ] initWithViewController: viewController];
232243#endif
233244 NSObject <FlutterPluginRegistrar> *registrar = OCMProtocolMock (@protocol (FlutterPluginRegistrar));
234245 FVPVideoPlayerPlugin *videoPlayerPlugin = [[FVPVideoPlayerPlugin alloc ]
235246 initWithAVFactory: [[StubFVPAVFactory alloc ] initWithPlayer: nil output: nil ]
236247 displayLinkFactory: nil
237- viewProvider: [[StubViewProvider alloc ] initWithView: view]
248+ viewProvider: viewProvider
238249 registrar: registrar];
239250
240251 FlutterError *error;
@@ -267,7 +278,7 @@ - (void)testPlayerForPlatformViewDoesNotRegisterTexture {
267278 FVPVideoPlayerPlugin *videoPlayerPlugin = [[FVPVideoPlayerPlugin alloc ]
268279 initWithAVFactory: [[StubFVPAVFactory alloc ] initWithPlayer: nil output: mockVideoOutput]
269280 displayLinkFactory: stubDisplayLinkFactory
270- viewProvider: [[StubViewProvider alloc ] initWithView: nil ]
281+ viewProvider: [[StubViewProvider alloc ] init ]
271282 registrar: registrar];
272283
273284 FlutterError *initializationError;
@@ -294,7 +305,7 @@ - (void)testSeekToWhilePausedStartsDisplayLinkTemporarily {
294305 FVPVideoPlayerPlugin *videoPlayerPlugin = [[FVPVideoPlayerPlugin alloc ]
295306 initWithAVFactory: [[StubFVPAVFactory alloc ] initWithPlayer: nil output: mockVideoOutput]
296307 displayLinkFactory: stubDisplayLinkFactory
297- viewProvider: [[StubViewProvider alloc ] initWithView: nil ]
308+ viewProvider: [[StubViewProvider alloc ] init ]
298309 registrar: registrar];
299310
300311 FlutterError *initializationError;
@@ -351,7 +362,7 @@ - (void)testInitStartsDisplayLinkTemporarily {
351362 initWithAVFactory: [[StubFVPAVFactory alloc ] initWithPlayer: stubAVPlayer
352363 output: mockVideoOutput]
353364 displayLinkFactory: stubDisplayLinkFactory
354- viewProvider: [[StubViewProvider alloc ] initWithView: nil ]
365+ viewProvider: [[StubViewProvider alloc ] init ]
355366 registrar: registrar];
356367
357368 FlutterError *initializationError;
@@ -397,7 +408,7 @@ - (void)testSeekToWhilePlayingDoesNotStopDisplayLink {
397408 FVPVideoPlayerPlugin *videoPlayerPlugin = [[FVPVideoPlayerPlugin alloc ]
398409 initWithAVFactory: [[StubFVPAVFactory alloc ] initWithPlayer: nil output: mockVideoOutput]
399410 displayLinkFactory: stubDisplayLinkFactory
400- viewProvider: [[StubViewProvider alloc ] initWithView: nil ]
411+ viewProvider: [[StubViewProvider alloc ] init ]
401412 registrar: registrar];
402413
403414 FlutterError *initializationError;
@@ -452,7 +463,7 @@ - (void)testPauseWhileWaitingForFrameDoesNotStopDisplayLink {
452463 FVPVideoPlayerPlugin *videoPlayerPlugin = [[FVPVideoPlayerPlugin alloc ]
453464 initWithAVFactory: [[StubFVPAVFactory alloc ] initWithPlayer: nil output: mockVideoOutput]
454465 displayLinkFactory: stubDisplayLinkFactory
455- viewProvider: [[StubViewProvider alloc ] initWithView: nil ]
466+ viewProvider: [[StubViewProvider alloc ] init ]
456467 registrar: registrar];
457468
458469 FlutterError *initializationError;
@@ -605,7 +616,7 @@ - (void)testSeekToleranceWhenNotSeekingToEnd {
605616 FVPVideoPlayer *player =
606617 [[FVPVideoPlayer alloc ] initWithPlayerItem: [self playerItemWithURL: self .mp4TestURL]
607618 avFactory: stubAVFactory
608- viewProvider: [[StubViewProvider alloc ] initWithView: nil ]];
619+ viewProvider: [[StubViewProvider alloc ] init ]];
609620 NSObject <FVPVideoEventListener> *listener = OCMProtocolMock (@protocol (FVPVideoEventListener));
610621 player.eventListener = listener;
611622
@@ -628,7 +639,7 @@ - (void)testSeekToleranceWhenSeekingToEnd {
628639 FVPVideoPlayer *player =
629640 [[FVPVideoPlayer alloc ] initWithPlayerItem: [self playerItemWithURL: self .mp4TestURL]
630641 avFactory: stubAVFactory
631- viewProvider: [[StubViewProvider alloc ] initWithView: nil ]];
642+ viewProvider: [[StubViewProvider alloc ] init ]];
632643 NSObject <FVPVideoEventListener> *listener = OCMProtocolMock (@protocol (FVPVideoEventListener));
633644 player.eventListener = listener;
634645
@@ -654,7 +665,7 @@ - (StubEventListener *)sanityTestURI:(NSString *)testURI {
654665 FVPVideoPlayer *player =
655666 [[FVPVideoPlayer alloc ] initWithPlayerItem: [self playerItemWithURL: testURL]
656667 avFactory: [[FVPDefaultAVFactory alloc ] init ]
657- viewProvider: [[StubViewProvider alloc ] initWithView: nil ]];
668+ viewProvider: [[StubViewProvider alloc ] init ]];
658669 XCTAssertNotNil (player);
659670
660671 XCTestExpectation *initializedExpectation = [self expectationWithDescription: @" initialized" ];
@@ -850,7 +861,7 @@ - (void)testUpdatePlayingStateShouldNotResetRate {
850861 FVPVideoPlayer *player = [[FVPVideoPlayer alloc ]
851862 initWithPlayerItem: [self playerItemWithURL: self .mp4TestURL]
852863 avFactory: [[StubFVPAVFactory alloc ] initWithPlayer: nil output: nil ]
853- viewProvider: [[StubViewProvider alloc ] initWithView: nil ]];
864+ viewProvider: [[StubViewProvider alloc ] init ]];
854865
855866 XCTestExpectation *initializedExpectation = [self expectationWithDescription: @" initialized" ];
856867 StubEventListener *listener =
@@ -875,7 +886,7 @@ - (void)testPlayerShouldNotDropEverySecondFrame {
875886 FVPVideoPlayerPlugin *videoPlayerPlugin = [[FVPVideoPlayerPlugin alloc ]
876887 initWithAVFactory: [[StubFVPAVFactory alloc ] initWithPlayer: nil output: mockVideoOutput]
877888 displayLinkFactory: stubDisplayLinkFactory
878- viewProvider: [[StubViewProvider alloc ] initWithView: nil ]
889+ viewProvider: [[StubViewProvider alloc ] init ]
879890 registrar: registrar];
880891
881892 FlutterError *error;
@@ -1078,10 +1089,15 @@ - (void)testLoadTracksWithMediaTypeIsCalledOnNewerOS {
10781089 });
10791090
10801091 StubFVPAVFactory *stubAVFactory = [[StubFVPAVFactory alloc ] initWithPlayer: nil output: nil ];
1081- FVPVideoPlayer *player =
1082- [[FVPVideoPlayer alloc ] initWithPlayerItem: mockItem
1083- avFactory: stubAVFactory
1084- viewProvider: [[StubViewProvider alloc ] initWithView: nil ]];
1092+ StubViewProvider *stubViewProvider =
1093+ #if TARGET_OS_OSX
1094+ [[StubViewProvider alloc ] initWithView: nil ];
1095+ #else
1096+ [[StubViewProvider alloc ] initWithViewController: nil ];
1097+ #endif
1098+ FVPVideoPlayer *player = [[FVPVideoPlayer alloc ] initWithPlayerItem: mockItem
1099+ avFactory: stubAVFactory
1100+ viewProvider: stubViewProvider];
10851101 (void )player; // Keep reference
10861102
10871103 [self waitForExpectationsWithTimeout: 5.0 handler: nil ];
0 commit comments