소스 검색

fix dismiss of player view controller when pressing menu button to cancel scrubbing:
disable simultaneous recognition of menu press recognizer of our VC and the one of the presentation controller by explicitly only allowing simultaneous recognition for the pan an siri remote recognizer

Tobias Conradi 9 년 전
부모
커밋
0948628c64
1개의 변경된 파일9개의 추가작업 그리고 2개의 파일을 삭제
  1. 9 2
      Apple-TV/Playback/VLCFullscreenMovieTVViewController.m

+ 9 - 2
Apple-TV/Playback/VLCFullscreenMovieTVViewController.m

@@ -41,6 +41,8 @@ typedef NS_ENUM(NSInteger, VLCPlayerScanState)
 
 @property (nonatomic, readonly, getter=isSeekable) BOOL seekable;
 
+@property (nonatomic) NSSet<UIGestureRecognizer *> *simultaneousGestureRecognizers;
+
 @end
 
 @implementation VLCFullscreenMovieTVViewController
@@ -77,11 +79,13 @@ typedef NS_ENUM(NSInteger, VLCPlayerScanState)
 
     self.bufferingLabel.text = NSLocalizedString(@"PLEASE_WAIT", nil);
 
-    // Panning and Swiping
+    NSMutableSet<UIGestureRecognizer *> *simultaneousGestureRecognizers = [NSMutableSet set];
 
+    // Panning and Swiping
     UIPanGestureRecognizer *panGestureRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panGesture:)];
     panGestureRecognizer.delegate = self;
     [self.view addGestureRecognizer:panGestureRecognizer];
+    [simultaneousGestureRecognizers addObject:panGestureRecognizer];
 
     // Button presses
     UITapGestureRecognizer *playpauseGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(playPausePressed)];
@@ -110,6 +114,9 @@ typedef NS_ENUM(NSInteger, VLCPlayerScanState)
     VLCSiriRemoteGestureRecognizer *siriArrowRecognizer = [[VLCSiriRemoteGestureRecognizer alloc] initWithTarget:self action:@selector(handleSiriRemote:)];
     siriArrowRecognizer.delegate = self;
     [self.view addGestureRecognizer:siriArrowRecognizer];
+    [simultaneousGestureRecognizers addObject:siriArrowRecognizer];
+
+    self.simultaneousGestureRecognizers = simultaneousGestureRecognizers;
 
     self.audioView.hidden = YES;
     self.audioArtworkImageView.animateImageSetting = YES;
@@ -774,7 +781,7 @@ currentMediaHasTrackToChooseFrom:(BOOL)currentMediaHasTrackToChooseFrom
 }
 - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
 {
-    return YES;
+    return [self.simultaneousGestureRecognizers containsObject:gestureRecognizer];
 }
 
 #pragma mark - meta data recipient