diff --git a/Source/Settings.xm b/Source/Settings.xm index 2c0e14b..f45faef 100644 --- a/Source/Settings.xm +++ b/Source/Settings.xm @@ -216,6 +216,8 @@ static const NSInteger YTLiteSection = 789; return LOC(@"Brightness"); case GestureModeSeek: return LOC(@"Seek"); + case GestureModeDisabled: + return LOC(@"Disabled"); default: return @"Invalid index - Report bug"; } @@ -242,9 +244,10 @@ static const NSInteger YTLiteSection = 789; } selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) { NSArray *rows = @[ - gestureCheckmarkSettingItem(0, sectionKey), - gestureCheckmarkSettingItem(1, sectionKey), - gestureCheckmarkSettingItem(2, sectionKey) + gestureCheckmarkSettingItem(0, sectionKey), // Volume + gestureCheckmarkSettingItem(1, sectionKey), // Brightness + gestureCheckmarkSettingItem(2, sectionKey), // Seek + gestureCheckmarkSettingItem(3, sectionKey) // Disabled ]; // Present picker when selecting this settings item YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] @@ -303,7 +306,6 @@ static const NSInteger YTLiteSection = 789; return YES; } ]; - [sectionItems addObject:deadzonePicker]; // Configuration picker for sensitivity to pick from 0.5 to 2.0 with interval of 0.1 NSMutableArray *sensitivityValues = [NSMutableArray array]; @@ -349,7 +351,6 @@ static const NSInteger YTLiteSection = 789; return YES; } ]; - [sectionItems addObject:sensitivityPicker]; // High level gestures menu YTSettingsSectionItem *playerGesturesGroup = [YTSettingsSectionItemClass itemWithTitle:LOC(@"Player Gestures (Beta)") accessibilityIdentifier:nil detailTextBlock:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) { diff --git a/YTLitePlus.h b/YTLitePlus.h index 52ac085..07f416f 100644 --- a/YTLitePlus.h +++ b/YTLitePlus.h @@ -66,7 +66,7 @@ typedef NS_ENUM(NSUInteger, GestureMode) { GestureModeVolume, GestureModeBrightness, GestureModeSeek, - GestureModeInvalid + GestureModeDisabled }; // Gesture Section Enum typedef NS_ENUM(NSUInteger, GestureSection) { diff --git a/YTLitePlus.xm b/YTLitePlus.xm index fc8e947..61b9935 100644 --- a/YTLitePlus.xm +++ b/YTLitePlus.xm @@ -735,7 +735,11 @@ BOOL isTabSelected = NO; case GestureModeSeek: adjustSeek(translationX, currentTime); break; + case GestureModeDisabled: + // Do nothing if the gesture is disabled + break; default: + // Show an alert if the gesture mode is invalid UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Invalid Gesture Mode" message:@"Please report this bug." preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil]; [alertController addAction:okAction]; @@ -755,10 +759,27 @@ BOOL isTabSelected = NO; // by dividing the view into thirds if (startLocation.y <= viewHeight / 3.0) { gestureSection = GestureSectionTop; + // Cancel the gesture if the mode is disabled + if (GetSelection(@"playerGestureTopSelection") == GestureModeDisabled) { + panGestureRecognizer.state = UIGestureRecognizerStateCancelled; + return; + } } else if (startLocation.y <= 2 * viewHeight / 3.0) { gestureSection = GestureSectionMiddle; + // Cancel the gesture if the mode is disabled + if (GetSelection(@"playerGestureMiddleSelection") == GestureModeDisabled) { + panGestureRecognizer.state = UIGestureRecognizerStateCancelled; + return; + } } else if (startLocation.y <= viewHeight) { gestureSection = GestureSectionBottom; + // Cancel the gesture if the mode is disabled + if (GetSelection(@"playerGestureBottomSelection") == GestureModeDisabled) { + panGestureRecognizer.state = UIGestureRecognizerStateCancelled; + return; + } + } else { + gestureSection = GestureSectionInvalid; } // Deactive the activity flag isValidHorizontalPan = NO; @@ -803,6 +824,9 @@ BOOL isTabSelected = NO; runSelectedGesture(@"playerGestureMiddleSelection", adjustedTranslationX, initialBrightness, initialVolume, currentTime); } else if (gestureSection == GestureSectionBottom) { runSelectedGesture(@"playerGestureBottomSelection", adjustedTranslationX, initialBrightness, initialVolume, currentTime); + } else { + // If the section is invalid, cancel the gesture + panGestureRecognizer.state = UIGestureRecognizerStateCancelled; } } }