Browse Source

VLCMovieViewController: Fix iPhoneX crash upon interfaceLock

`_tapToSeekRecognizer` is not initialized when using an iPhoneX
which lead to a `NSInvalidArgumentException`

Signed-off-by: Carola Nitz <nitz.carola@googlemail.com>
Soomin Lee 7 years ago
parent
commit
9af5072e06
1 changed files with 23 additions and 19 deletions
  1. 23 19
      Sources/VLCMovieViewController.m

+ 23 - 19
Sources/VLCMovieViewController.m

@@ -618,25 +618,29 @@ typedef NS_ENUM(NSInteger, VLCPanType) {
 
 - (NSArray *)itemsForInterfaceLock
 {
-    return @[_pinchRecognizer,
-             _panRecognizer,
-             _tapToSeekRecognizer,
-             _tapRecognizer,
-             _doneButton,
-             _timeNavigationTitleView.minimizePlaybackButton,
-             _timeNavigationTitleView.positionSlider,
-             _timeNavigationTitleView.aspectRatioButton,
-             _controllerPanel.playbackSpeedButton,
-             _controllerPanel.trackSwitcherButton,
-             _controllerPanel.bwdButton,
-             _controllerPanel.playPauseButton,
-             _controllerPanel.fwdButton,
-             _controllerPanel.videoFilterButton,
-             _multiSelectionView.equalizerButton,
-             _multiSelectionView.chapterSelectorButton,
-             _multiSelectionView.repeatButton,
-             _multiSelectionView.shuffleButton,
-             _controllerPanel.volumeView];
+    NSMutableArray *items = [[NSMutableArray alloc] initWithArray: @[_pinchRecognizer,
+                                                                     _panRecognizer,
+                                                                     _tapRecognizer,
+                                                                     _doneButton,
+                                                                     _timeNavigationTitleView.minimizePlaybackButton,
+                                                                     _timeNavigationTitleView.positionSlider,
+                                                                     _timeNavigationTitleView.aspectRatioButton,
+                                                                     _controllerPanel.playbackSpeedButton,
+                                                                     _controllerPanel.trackSwitcherButton,
+                                                                     _controllerPanel.bwdButton,
+                                                                     _controllerPanel.playPauseButton,
+                                                                     _controllerPanel.fwdButton,
+                                                                     _controllerPanel.videoFilterButton,
+                                                                     _multiSelectionView.equalizerButton,
+                                                                     _multiSelectionView.chapterSelectorButton,
+                                                                     _multiSelectionView.repeatButton,
+                                                                     _multiSelectionView.shuffleButton,
+                                                                     _controllerPanel.volumeView]];
+
+    [[UIDevice currentDevice] isiPhoneX] ? [items addObject:_tapToToggleiPhoneXRatioRecognizer]
+                                         : [items addObject:_tapToSeekRecognizer];
+
+    return [items copy];
 }
 
 - (void)handlePinchGesture:(UIPinchGestureRecognizer *)recognizer