diff --git a/packages/expo-av/CHANGELOG.md b/packages/expo-av/CHANGELOG.md index 694fbda4fb7bc..59ad3a1d98672 100644 --- a/packages/expo-av/CHANGELOG.md +++ b/packages/expo-av/CHANGELOG.md @@ -8,4 +8,5 @@ ### 🐛 Bug fixes +- Fix unable to call presentFullScreenPlayer twice. ([#8343](https://github.com/expo/expo/pull/8343) by [@IjzerenHein](https://github.com/IjzerenHein)) - Fixed `Plaback.loadAsync()` return type. ([#7559](https://github.com/expo/expo/pull/7559) by [@awinograd](https://github.com/awinograd)) diff --git a/packages/expo-av/ios/EXAV/Video/EXVideoView.m b/packages/expo-av/ios/EXAV/Video/EXVideoView.m index a60a7715e7790..0ded09e3a5426 100644 --- a/packages/expo-av/ios/EXAV/Video/EXVideoView.m +++ b/packages/expo-av/ios/EXAV/Video/EXVideoView.m @@ -243,14 +243,14 @@ - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(N CGRect viewBounds = [change[@"new"] CGRectValue]; CGRect screen = [[UIScreen mainScreen] bounds]; - if (viewBounds.size.height != screen.size.height && viewBounds.size.width != screen.size.width && _fullscreenPlayerPresented) { + if (viewBounds.size.height != screen.size.height && viewBounds.size.width != screen.size.width && _fullscreenPlayerPresented && !_fullscreenPlayerViewController) { // Fullscreen player is being dismissed - _fullscreenPlayerPresented = false; + _fullscreenPlayerPresented = NO; [self _callFullscreenCallbackForUpdate:EXVideoFullscreenUpdatePlayerWillDismiss]; [self _callFullscreenCallbackForUpdate:EXVideoFullscreenUpdatePlayerDidDismiss]; } else if (viewBounds.size.height == screen.size.height && viewBounds.size.width == screen.size.width && !_fullscreenPlayerPresented) { // Fullscreen player is being presented - _fullscreenPlayerPresented = true; + _fullscreenPlayerPresented = YES; [self _callFullscreenCallbackForUpdate:EXVideoFullscreenUpdatePlayerWillPresent]; [self _callFullscreenCallbackForUpdate:EXVideoFullscreenUpdatePlayerDidPresent]; } else {