Skip to content

Commit

Permalink
fix of player controller sometimes not reseting
Browse files Browse the repository at this point in the history
  • Loading branch information
chaimPaneth committed Apr 12, 2022
1 parent 0a971c0 commit d7b9d5b
Show file tree
Hide file tree
Showing 7 changed files with 43 additions and 14 deletions.
2 changes: 1 addition & 1 deletion ios/RNJWPlayer.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Pod::Spec.new do |s|
s.platform = :ios, "10.0"
s.source = { :git => "https://github.com/chaimPaneth/react-native-jw-media-player.git", :tag => "v#{s.version}" }
s.source_files = "RNJWPlayer/*.{h,m}"
s.dependency 'JWPlayerKit', '~> 4.5.0'
s.dependency 'JWPlayerKit', '~> 4.5.1'
s.dependency 'google-cast-sdk', '~> 4.7.0'
s.dependency 'React'
# s.static_framework = true
Expand Down
1 change: 1 addition & 0 deletions ios/RNJWPlayer/RNJWPlayerView.h
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@
- (NSArray <JWCastingDevice *>*)availableDevices;

/* Methods */
-(void)setLicense:(id)license;
-(void)toggleUIGroup:(UIView*)view :(NSString*)name :(NSString*)ofSubview :(BOOL)show;

@end
21 changes: 10 additions & 11 deletions ios/RNJWPlayer/RNJWPlayerView.m
Original file line number Diff line number Diff line change
Expand Up @@ -69,14 +69,19 @@ -(BOOL)shouldAutorotate {

#pragma mark - RNJWPlayer props

-(void)setConfig:(NSDictionary*)config
-(void)setLicense:(id)license
{
id license = config[@"license"];
if ((license != nil) && (license != (id)[NSNull null])) {
[JWPlayerKitLicense setLicenseKey:license];
} else {
NSLog(@"JW SDK License key not set.");
}
}

-(void)setConfig:(NSDictionary*)config
{
id license = config[@"license"];
[self setLicense:license];

_backgroundAudioEnabled = config[@"backgroundAudioEnabled"];
_pipEnabled = config[@"pipEnabled"];
Expand Down Expand Up @@ -664,9 +669,10 @@ -(void)setupPlayerViewController:config :(JWPlayerConfiguration*)playerConfig
-(void)dismissPlayerViewController
{
if (_playerViewController != nil) {
[_playerViewController willMoveToParentViewController:nil];
[_playerViewController.player stop];
[_playerViewController.view removeFromSuperview];
[_playerViewController removeFromParentViewController];
[_playerViewController willMoveToParentViewController:nil];
_playerViewController = nil;
}
}
Expand All @@ -689,14 +695,6 @@ -(void)presentPlayerViewController:(JWPlayerConfiguration*)configuration
}

[_playerViewController setDelegates];

// _playerViewController.delegate = self;
// _playerViewController.playerView.delegate = self;
// _playerViewController.player.delegate = self;
// _playerViewController.player.playbackStateDelegate = self;
// _playerViewController.player.adDelegate = self;
// _playerViewController.player.avDelegate = self;
// _playerViewController.player.contentKeyDataSource = self;
}

#pragma mark - JWPlayer View helpers
Expand Down Expand Up @@ -727,6 +725,7 @@ -(void)setupPlayerView:config :(JWPlayerConfiguration*)playerConfig
-(void)removePlayerView
{
if (_playerView != nil) {
[_playerView.player stop];
[_playerView removeFromSuperview];
_playerView = nil;
}
Expand Down
2 changes: 1 addition & 1 deletion ios/RNJWPlayer/RNJWPlayerViewController.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@

@class RNJWPlayerView;

@interface RNJWPlayerViewController : JWPlayerObjCViewController <JWPlayerDelegate, JWPlayerStateDelegate, JWAdDelegate, JWCastDelegate, JWAVDelegate, JWPlayerViewDelegate, JWPlayerViewControllerDelegate, AVPictureInPictureControllerDelegate>
@interface RNJWPlayerViewController : JWPlayerObjCViewController <JWPlayerDelegate, JWPlayerStateDelegate, JWAdDelegate, JWCastDelegate, JWAVDelegate, JWPlayerViewDelegate, JWPlayerViewControllerDelegate, JWDRMContentKeyDataSource, AVPictureInPictureControllerDelegate>

@property(nonatomic, strong)RNJWPlayerView *parentView;

Expand Down
18 changes: 18 additions & 0 deletions ios/RNJWPlayer/RNJWPlayerViewController.m
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,24 @@ -(void)setDelegates
self.player.playbackStateDelegate = self;
self.player.adDelegate = self;
self.player.avDelegate = self;
self.player.contentKeyDataSource = self;
}

- (void)removeFromParentViewController
{
[self reset];
}

- (void)dealloc
{
[self reset];
}

-(void)reset
{
[self.player stop];
[self.view removeFromSuperview];
[self willMoveToParentViewController:nil];
}

#pragma mark - JWPlayer Delegate
Expand Down
11 changes: 11 additions & 0 deletions ios/RNJWPlayer/RNJWPlayerViewManager.m
Original file line number Diff line number Diff line change
Expand Up @@ -506,4 +506,15 @@ - (UIView*)view
}];
}

RCT_EXPORT_METHOD(setLicenseKey: (nonnull NSNumber *)reactTag: (nonnull NSString *)license) {
[self.bridge.uiManager addUIBlock:^(__unused RCTUIManager *uiManager, NSDictionary<NSNumber *, RNJWPlayerView *> *viewRegistry) {
RNJWPlayerView *view = viewRegistry[reactTag];
if (![view isKindOfClass:[RNJWPlayerView class]]) {
RCTLogError(@"Invalid view returned from registry, expecting RNJWPlayerView, got: %@", view);
} else {
[view setLicense:license];
}
}];
}

@end
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "react-native-jw-media-player",
"version": "0.2.12",
"version": "0.2.13",
"description": "React-native Android/iOS plugin for JWPlayer SDK (https://www.jwplayer.com/)",
"main": "index.js",
"types": "./index.d.ts",
Expand Down

0 comments on commit d7b9d5b

Please sign in to comment.