fix: issue 3085, onFullscreen call backs are never fired
This commit is contained in:
parent
50b3650e2f
commit
238daf8720
@ -59,6 +59,7 @@ class RCTVideo: UIView, RCTVideoPlayerViewControllerDelegate, RCTPlayerObserverH
|
||||
private var _fullscreenAutorotate:Bool = true
|
||||
private var _fullscreenOrientation:String! = "all"
|
||||
private var _fullscreenPlayerPresented:Bool = false
|
||||
private var _fullscreenUncontrolPlayerPresented:Bool = false // to call events switching full screen mode from player controls
|
||||
private var _filterName:String!
|
||||
private var _filterEnabled:Bool = false
|
||||
private var _presentingViewController:UIViewController?
|
||||
@ -1113,12 +1114,27 @@ class RCTVideo: UIView, RCTVideoPlayerViewControllerDelegate, RCTPlayerObserverH
|
||||
let oldRect = change.oldValue
|
||||
let newRect = change.newValue
|
||||
if !oldRect!.equalTo(newRect!) {
|
||||
// https://github.com/react-native-video/react-native-video/issues/3085#issuecomment-1557293391
|
||||
if newRect!.equalTo(UIScreen.main.bounds) {
|
||||
RCTLog("in fullscreen")
|
||||
if (!_fullscreenUncontrolPlayerPresented) {
|
||||
_fullscreenUncontrolPlayerPresented = true;
|
||||
|
||||
self.reactViewController().view.frame = UIScreen.main.bounds
|
||||
self.reactViewController().view.setNeedsLayout()
|
||||
} else {NSLog("not fullscreen")}
|
||||
self.onVideoFullscreenPlayerWillPresent?(["target": self.reactTag as Any])
|
||||
self.onVideoFullscreenPlayerDidPresent?(["target": self.reactTag as Any])
|
||||
}
|
||||
} else {
|
||||
NSLog("not fullscreen")
|
||||
if (_fullscreenUncontrolPlayerPresented) {
|
||||
_fullscreenUncontrolPlayerPresented = false;
|
||||
|
||||
self.onVideoFullscreenPlayerWillDismiss?(["target": self.reactTag as Any])
|
||||
self.onVideoFullscreenPlayerDidDismiss?(["target": self.reactTag as Any])
|
||||
}
|
||||
}
|
||||
|
||||
self.reactViewController().view.frame = UIScreen.main.bounds
|
||||
self.reactViewController().view.setNeedsLayout()
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user