mirror of
				https://github.com/SoPat712/YTLitePlus.git
				synced 2025-10-30 20:34:03 -04:00 
			
		
		
		
	Removed duplicated Code
YTLite has almost all of this so I did what was best for y’all - arichorn (contributor)
This commit is contained in:
		
							
								
								
									
										384
									
								
								YTLitePlus.xm
									
									
									
									
									
								
							
							
						
						
									
										384
									
								
								YTLitePlus.xm
									
									
									
									
									
								
							| @@ -79,21 +79,17 @@ static BOOL IsEnabled(NSString *key) { | |||||||
|  |  | ||||||
| - (void)layoutSubviews { | - (void)layoutSubviews { | ||||||
|     %orig; |     %orig; | ||||||
|     if (IsEnabled(@"hideNotificationButton_enabled")) { |  | ||||||
|         self.notificationButton.hidden = YES; |  | ||||||
|     } |  | ||||||
|     if (IsEnabled(@"hideSponsorBlockButton_enabled")) {  |     if (IsEnabled(@"hideSponsorBlockButton_enabled")) {  | ||||||
|         self.sponsorBlockButton.hidden = YES; |         self.sponsorBlockButton.hidden = YES; | ||||||
|     } |     } | ||||||
| } | } | ||||||
| %end | %end | ||||||
|  |  | ||||||
| // Hide Cast Button since Cercube's option is not working | // Hide Video Player Cast Button | ||||||
| %group gHideCastButton | %group gHideCastButton | ||||||
| %hook MDXPlaybackRouteButtonController | %hook MDXPlaybackRouteButtonController | ||||||
| - (BOOL)isPersistentCastIconEnabled { return NO; } | - (BOOL)isPersistentCastIconEnabled { return NO; } | ||||||
| - (void)updateRouteButton:(id)arg1 {} // hide Cast button in video controls overlay | - (void)updateRouteButton:(id)arg1 {} // hide Cast button in video controls overlay | ||||||
| - (void)updateAllRouteButtons {} // hide Cast button in Nav bar |  | ||||||
| %end | %end | ||||||
|  |  | ||||||
| %hook YTSettings | %hook YTSettings | ||||||
| @@ -101,22 +97,21 @@ static BOOL IsEnabled(NSString *key) { | |||||||
| %end | %end | ||||||
| %end | %end | ||||||
|  |  | ||||||
| // Hide CC / Hide Autoplay switch / Enable Share Button / Enable Save to Playlist Button | // Enable Share Button / Enable Save to Playlist Button | ||||||
| %hook YTMainAppControlsOverlayView | %hook YTMainAppControlsOverlayView | ||||||
| - (void)setClosedCaptionsOrSubtitlesButtonAvailable:(BOOL)arg1 { // hide CC button | - (void)setShareButtonAvailable:(BOOL)arg1 { // enable Share button | ||||||
|     return IsEnabled(@"hideCC_enabled") ? %orig(NO) : %orig; |     if (IsEnabled(@"enableShareButton_enabled")) { | ||||||
|  |         %orig(YES); | ||||||
|  |     } else { | ||||||
|  |         %orig(NO); | ||||||
|     } |     } | ||||||
| - (void)setAutoplaySwitchButtonRenderer:(id)arg1 { // hide Autoplay switch |  | ||||||
|     if (IsEnabled(@"hideAutoplaySwitch_enabled")) {} |  | ||||||
|     else { return %orig; } |  | ||||||
| } | } | ||||||
| - (void)setShareButtonAvailable:(BOOL)arg2 { // enable Share Button | - (void)setAddToButtonAvailable:(BOOL)arg1 { // enable Save To Playlist button | ||||||
|     if (IsEnabled(@"enableShareButton_enabled")) {} |     if (IsEnabled(@"enableSaveToButton_enabled")) { | ||||||
|     else { return %orig; } |         %orig(YES); | ||||||
|  |     } else { | ||||||
|  |         %orig(NO); | ||||||
|     } |     } | ||||||
| - (void)setAddToButtonAvailable:(BOOL)arg2 { // enable Save to Playlist Button |  | ||||||
|     if (IsEnabled(@"enableSaveToButton_enabled")) {} |  | ||||||
|     else { return %orig; } |  | ||||||
| } | } | ||||||
| %end | %end | ||||||
|  |  | ||||||
| @@ -127,22 +122,6 @@ static BOOL IsEnabled(NSString *key) { | |||||||
| } | } | ||||||
| %end | %end | ||||||
|  |  | ||||||
| // Hide Next & Previous button |  | ||||||
| %group gHidePreviousAndNextButton |  | ||||||
| %hook YTColdConfig |  | ||||||
| - (BOOL)removeNextPaddleForSingletonVideos { return YES; } |  | ||||||
| - (BOOL)removePreviousPaddleForSingletonVideos { return YES; } |  | ||||||
| %end |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| %group gHideOverlayDarkBackground |  | ||||||
| %hook YTMainAppVideoPlayerOverlayView |  | ||||||
| - (void)setBackgroundVisible:(BOOL)arg1 { |  | ||||||
|     %orig(NO); |  | ||||||
| } |  | ||||||
| %end |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| %group gHideVideoPlayerShadowOverlayButtons | %group gHideVideoPlayerShadowOverlayButtons | ||||||
| %hook YTMainAppControlsOverlayView | %hook YTMainAppControlsOverlayView | ||||||
| - (void)layoutSubviews { | - (void)layoutSubviews { | ||||||
| @@ -154,23 +133,12 @@ static BOOL IsEnabled(NSString *key) { | |||||||
|     MSHookIvar<YTPlaybackButton *>(self, "_playPauseButton").backgroundColor = nil; |     MSHookIvar<YTPlaybackButton *>(self, "_playPauseButton").backgroundColor = nil; | ||||||
| } | } | ||||||
| %end | %end | ||||||
|  |  | ||||||
| %hook YTPlayBackButton |  | ||||||
| - (UIColor *)backgroundColor { |  | ||||||
|          return [UIColor colorWithRed: 0.00 green: 0.00 blue: 0.00 alpha: 0.00]; |  | ||||||
| } |  | ||||||
| %end |  | ||||||
| %end | %end | ||||||
|  |  | ||||||
| // A/B flags | // A/B flags | ||||||
| %hook YTColdConfig  | %hook YTColdConfig  | ||||||
| - (BOOL)respectDeviceCaptionSetting { return NO; } // YouRememberCaption: https://poomsmart.github.io/repo/depictions/youremembercaption.html | - (BOOL)respectDeviceCaptionSetting { return NO; } // YouRememberCaption: https://poomsmart.github.io/repo/depictions/youremembercaption.html | ||||||
| - (BOOL)isLandscapeEngagementPanelSwipeRightToDismissEnabled { return YES; } // Swipe right to dismiss the right panel in fullscreen mode | - (BOOL)isLandscapeEngagementPanelSwipeRightToDismissEnabled { return YES; } // Swipe right to dismiss the right panel in fullscreen mode | ||||||
| - (BOOL)mainAppCoreClientIosTransientVisualGlitchInPivotBarFix { return NO; } // Fix uYou's label glitching - qnblackcat/uYouPlus#552 |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| // Disabled App Breaking Dialog Flags - @arichorn |  | ||||||
| %hook YTColdConfig |  | ||||||
| - (BOOL)commercePlatformClientEnablePopupWebviewInWebviewDialogController { return NO;} | - (BOOL)commercePlatformClientEnablePopupWebviewInWebviewDialogController { return NO;} | ||||||
| %end | %end | ||||||
|  |  | ||||||
| @@ -182,25 +150,6 @@ static BOOL IsEnabled(NSString *key) { | |||||||
| - (BOOL)shouldShowUpgradeDialog { return NO;} | - (BOOL)shouldShowUpgradeDialog { return NO;} | ||||||
| %end | %end | ||||||
|  |  | ||||||
| // Disable YouTube Ads - @arichorn |  | ||||||
| %group gRemoveAds |  | ||||||
| %hook YTHotConfig |  | ||||||
| - (BOOL)disableAfmaIdfaCollection { return NO; } |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| %hook YTIElementRenderer |  | ||||||
| - (NSData *)elementData { |  | ||||||
|     if (self.hasCompatibilityOptions && self.compatibilityOptions.hasAdLoggingData) |  | ||||||
|         return nil; |  | ||||||
|     NSString *description = [self description]; |  | ||||||
|     // product_carousel.eml product_engagement_panel.eml product_item.eml |  | ||||||
|     if ([description containsString:@"brand_promo"] || [description containsString:@"statement_banner"]) |  | ||||||
|         return [NSData data]; |  | ||||||
|     return %orig; |  | ||||||
| } |  | ||||||
| %end |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| // Disable Wifi Related Settings - @arichorn | // Disable Wifi Related Settings - @arichorn | ||||||
| %group gDisableWifiRelatedSettings | %group gDisableWifiRelatedSettings | ||||||
| %hook YTSettingsSectionItemManager | %hook YTSettingsSectionItemManager | ||||||
| @@ -217,16 +166,16 @@ static BOOL IsEnabled(NSString *key) { | |||||||
| // YTNoModernUI - @arichorn | // YTNoModernUI - @arichorn | ||||||
| %group gYTNoModernUI | %group gYTNoModernUI | ||||||
| %hook YTVersionUtils // YTNoModernUI Version | %hook YTVersionUtils // YTNoModernUI Version | ||||||
| + (NSString *)appVersion { return @"16.42.3"; } | + (NSString *)appVersion { return @"17.11.2"; } | ||||||
| %end | %end | ||||||
|  |  | ||||||
| %hook YTInlinePlayerBarContainerView // Red Progress Bar - YTNoModernUI | %hook YTInlinePlayerBarContainerView // Red Progress Bar - YTNoModernUI - made by Dayanch96 | ||||||
| - (id)quietProgressBarColor { | - (id)quietProgressBarColor { | ||||||
|     return [UIColor redColor]; |     return [UIColor redColor]; | ||||||
| } | } | ||||||
| %end | %end | ||||||
|  |  | ||||||
| %hook YTSegmentableInlinePlayerBarView // Old Buffer Bar - YTNoModernUI | %hook YTSegmentableInlinePlayerBarView // Gray Buffer Progress - YTNoModernUI - made by Dayanch96 | ||||||
| - (void)setBufferedProgressBarColor:(id)arg1 { | - (void)setBufferedProgressBarColor:(id)arg1 { | ||||||
|      [UIColor colorWithRed:0.65 green:0.65 blue:0.65 alpha:0.60]; |      [UIColor colorWithRed:0.65 green:0.65 blue:0.65 alpha:0.60]; | ||||||
| } | } | ||||||
| @@ -299,20 +248,6 @@ static BOOL IsEnabled(NSString *key) { | |||||||
| %end | %end | ||||||
| %end | %end | ||||||
|  |  | ||||||
| // Disable Video Player Zoom - @arichorn |  | ||||||
| %group gDisableVideoPlayerZoom |  | ||||||
| %hook YTColdConfig |  | ||||||
| - (BOOL)enableFreeZoomHaptics { return NO; } |  | ||||||
| - (BOOL)enableFreeZoomInPotraitOrientation { return NO; } |  | ||||||
| - (BOOL)isVideoZoomEnabled { return NO; } |  | ||||||
| - (BOOL)uiSystemsClientGlobalConfigEnableDisplayZoomMenuBugFix { return NO; } |  | ||||||
| - (BOOL)videoZoomFreeZoomEnabledGlobalConfig { return NO; } |  | ||||||
| - (BOOL)videoZoomFreeZoomIndicatorPersistentGlobalConfig { return NO; } |  | ||||||
| - (BOOL)videoZoomFreeZoomIndicatorTopGlobalConfig { return NO; } |  | ||||||
| - (BOOL)deprecateTabletPinchFullscreenGestures { return NO; } // <-- this is an iPad Exclusive Flag |  | ||||||
| %end |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| // Hide YouTube Heatwaves in Video Player (YouTube v17.19.2-present) - @level3tjg - https://www.reddit.com/r/jailbreak/comments/v29yvk/ | // Hide YouTube Heatwaves in Video Player (YouTube v17.19.2-present) - @level3tjg - https://www.reddit.com/r/jailbreak/comments/v29yvk/ | ||||||
| %group gHideHeatwaves | %group gHideHeatwaves | ||||||
| %hook YTInlinePlayerBarContainerView | %hook YTInlinePlayerBarContainerView | ||||||
| @@ -320,21 +255,6 @@ static BOOL IsEnabled(NSString *key) { | |||||||
| %end | %end | ||||||
| %end | %end | ||||||
|  |  | ||||||
| // Replace Next & Previous button with Fast forward & Rewind button |  | ||||||
| %group gReplacePreviousAndNextButton |  | ||||||
| %hook YTColdConfig |  | ||||||
| - (BOOL)replaceNextPaddleWithFastForwardButtonForSingletonVods { return YES; } |  | ||||||
| - (BOOL)replacePreviousPaddleWithRewindButtonForSingletonVods { return YES; } |  | ||||||
| %end |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| // Hide HUD Messages |  | ||||||
| %hook YTHUDMessageView |  | ||||||
| - (id)initWithMessage:(id)arg1 dismissHandler:(id)arg2 { |  | ||||||
|     return IsEnabled(@"hideHUD_enabled") ? nil : %orig; |  | ||||||
| } |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| // YTAutoFullScreen: https://github.com/PoomSmart/YTAutoFullScreen/ | // YTAutoFullScreen: https://github.com/PoomSmart/YTAutoFullScreen/ | ||||||
| %hook YTPlayerViewController | %hook YTPlayerViewController | ||||||
| - (void)loadWithPlayerTransition:(id)arg1 playbackConfig:(id)arg2 { | - (void)loadWithPlayerTransition:(id)arg1 playbackConfig:(id)arg2 { | ||||||
| @@ -358,25 +278,6 @@ static BOOL IsEnabled(NSString *key) { | |||||||
| - (BOOL)isPromptForLocalNetworkPermissionsEnabled { return NO; } | - (BOOL)isPromptForLocalNetworkPermissionsEnabled { return NO; } | ||||||
| %end | %end | ||||||
|  |  | ||||||
| // YTNoPaidPromo: https://github.com/PoomSmart/YTNoPaidPromo |  | ||||||
| %hook YTMainAppVideoPlayerOverlayViewController |  | ||||||
| - (void)setPaidContentWithPlayerData:(id)data { |  | ||||||
|     if (IsEnabled(@"hidePaidPromotionCard_enabled")) {} |  | ||||||
|     else { return %orig; } |  | ||||||
| } |  | ||||||
| - (void)playerOverlayProvider:(YTPlayerOverlayProvider *)provider didInsertPlayerOverlay:(YTPlayerOverlay *)overlay { |  | ||||||
|     if ([[overlay overlayIdentifier] isEqualToString:@"player_overlay_paid_content"] && IsEnabled(@"hidePaidPromotionCard_enabled")) return; |  | ||||||
|     %orig; |  | ||||||
| } |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| %hook YTInlineMutedPlaybackPlayerOverlayViewController |  | ||||||
| - (void)setPaidContentWithPlayerData:(id)data { |  | ||||||
|     if (IsEnabled(@"hidePaidPromotionCard_enabled")) {} |  | ||||||
|     else { return %orig; } |  | ||||||
| } |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| # pragma mark - IAmYouTube - https://github.com/PoomSmart/IAmYouTube/ | # pragma mark - IAmYouTube - https://github.com/PoomSmart/IAmYouTube/ | ||||||
| %hook YTVersionUtils | %hook YTVersionUtils | ||||||
| + (NSString *)appName { return YT_NAME; } | + (NSString *)appName { return YT_NAME; } | ||||||
| @@ -481,91 +382,6 @@ static BOOL IsEnabled(NSString *key) { | |||||||
| } | } | ||||||
| %end | %end | ||||||
|  |  | ||||||
| // Shorts Controls Overlay Options |  | ||||||
| %hook YTReelWatchPlaybackOverlayView |  | ||||||
| - (void)setNativePivotButton:(id)arg1 { |  | ||||||
|     if (IsEnabled(@"hideShortsChannelAvatar_enabled")) {} |  | ||||||
|     else { return %orig; } |  | ||||||
| } |  | ||||||
| - (void)setReelLikeButton:(id)arg1 { |  | ||||||
|     if (IsEnabled(@"hideShortsLikeButton_enabled")) {} |  | ||||||
|     else { return %orig; } |  | ||||||
| } |  | ||||||
| - (void)setReelDislikeButton:(id)arg1 { |  | ||||||
|     if (IsEnabled(@"hideShortsDislikeButton_enabled")) {} |  | ||||||
|     else { return %orig; } |  | ||||||
| } |  | ||||||
| - (void)setViewCommentButton:(id)arg1 { |  | ||||||
|     if (IsEnabled(@"hideShortsCommentButton_enabled")) {} |  | ||||||
|     else { return %orig; } |  | ||||||
| } |  | ||||||
| - (void)setRemixButton:(id)arg1 { |  | ||||||
|     if (IsEnabled(@"hideShortsRemixButton_enabled")) {} |  | ||||||
|     else { return %orig; } |  | ||||||
| } |  | ||||||
| - (void)setShareButton:(id)arg1 { |  | ||||||
|     if (IsEnabled(@"hideShortsShareButton_enabled")) {} |  | ||||||
|     else { return %orig; } |  | ||||||
| } |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| %hook _ASDisplayView |  | ||||||
| - (void)didMoveToWindow { |  | ||||||
|     %orig; |  | ||||||
|     if ((IsEnabled(@"hideBuySuperThanks_enabled")) && ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.suggested_action"])) {  |  | ||||||
|         self.hidden = YES;  |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| %hook YTReelWatchRootViewController |  | ||||||
| - (void)setPausedStateCarouselView { |  | ||||||
|     if (IsEnabled(@"hideSubscriptions_enabled")) {} |  | ||||||
|     else { return %orig; } |  | ||||||
| } |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| %hook YTColdConfig |  | ||||||
| - (BOOL)enableResumeToShorts { |  | ||||||
|     if (IsEnabled(@"disableResumeToShorts")) { return NO; } |  | ||||||
|     else { return %orig; } |  | ||||||
| } |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| // YTReExplore: https://github.com/PoomSmart/YTReExplore/ |  | ||||||
| %group gReExplore |  | ||||||
| static void replaceTab(YTIGuideResponse *response) { |  | ||||||
|     NSMutableArray <YTIGuideResponseSupportedRenderers *> *renderers = [response itemsArray]; |  | ||||||
|     for (YTIGuideResponseSupportedRenderers *guideRenderers in renderers) { |  | ||||||
|         YTIPivotBarRenderer *pivotBarRenderer = [guideRenderers pivotBarRenderer]; |  | ||||||
|         NSMutableArray <YTIPivotBarSupportedRenderers *> *items = [pivotBarRenderer itemsArray]; |  | ||||||
|         NSUInteger shortIndex = [items indexOfObjectPassingTest:^BOOL(YTIPivotBarSupportedRenderers *renderers, NSUInteger idx, BOOL *stop) { |  | ||||||
|             return [[[renderers pivotBarItemRenderer] pivotIdentifier] isEqualToString:@"FEshorts"]; |  | ||||||
|         }]; |  | ||||||
|         if (shortIndex != NSNotFound) { |  | ||||||
|             [items removeObjectAtIndex:shortIndex]; |  | ||||||
|             NSUInteger exploreIndex = [items indexOfObjectPassingTest:^BOOL(YTIPivotBarSupportedRenderers *renderers, NSUInteger idx, BOOL *stop) { |  | ||||||
|                 return [[[renderers pivotBarItemRenderer] pivotIdentifier] isEqualToString:[%c(YTIBrowseRequest) browseIDForExploreTab]]; |  | ||||||
|             }]; |  | ||||||
|             if (exploreIndex == NSNotFound) { |  | ||||||
|                 YTIPivotBarSupportedRenderers *exploreTab = [%c(YTIPivotBarRenderer) pivotSupportedRenderersWithBrowseId:[%c(YTIBrowseRequest) browseIDForExploreTab] title:@"Explore" iconType:292]; |  | ||||||
|                 [items insertObject:exploreTab atIndex:1]; |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| %hook YTGuideServiceCoordinator |  | ||||||
| - (void)handleResponse:(YTIGuideResponse *)response withCompletion:(id)completion { |  | ||||||
|     replaceTab(response); |  | ||||||
|     %orig(response, completion); |  | ||||||
| } |  | ||||||
| - (void)handleResponse:(YTIGuideResponse *)response error:(id)error completion:(id)completion { |  | ||||||
|     replaceTab(response); |  | ||||||
|     %orig(response, error, completion); |  | ||||||
| } |  | ||||||
| %end |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| // BigYTMiniPlayer: https://github.com/Galactic-Dev/BigYTMiniPlayer | // BigYTMiniPlayer: https://github.com/Galactic-Dev/BigYTMiniPlayer | ||||||
| %group Main | %group Main | ||||||
| %hook YTWatchMiniBarView | %hook YTWatchMiniBarView | ||||||
| @@ -591,72 +407,6 @@ static void replaceTab(YTIGuideResponse *response) { | |||||||
| %end | %end | ||||||
| %end | %end | ||||||
|  |  | ||||||
| // YTSpeed - https://github.com/Lyvendia/YTSpeed |  | ||||||
| %group gYTSpeed |  | ||||||
| %hook YTVarispeedSwitchController |  | ||||||
| - (id)init { |  | ||||||
| 	id result = %orig; |  | ||||||
|  |  | ||||||
| 	const int size = 17; |  | ||||||
| 	float speeds[] = {0.25, 0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0, 2.25, 2.5, 2.75, 3.0, 3.25, 3.5, 3.75, 4.0, 5.0}; |  | ||||||
| 	id varispeedSwitchControllerOptions[size]; |  | ||||||
|  |  | ||||||
| 	for (int i = 0; i < size; ++i) { |  | ||||||
| 		id title = [NSString stringWithFormat:@"%.2fx", speeds[i]]; |  | ||||||
| 		varispeedSwitchControllerOptions[i] = [[%c(YTVarispeedSwitchControllerOption) alloc] initWithTitle:title rate:speeds[i]]; |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	NSUInteger count = sizeof(varispeedSwitchControllerOptions) / sizeof(id); |  | ||||||
| 	NSArray *varispeedArray = [NSArray arrayWithObjects:varispeedSwitchControllerOptions count:count]; |  | ||||||
| 	MSHookIvar<NSArray *>(self, "_options") = varispeedArray; |  | ||||||
|  |  | ||||||
| 	return result; |  | ||||||
| } |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| %hook MLHAMQueuePlayer |  | ||||||
| - (void)setRate:(float)rate { |  | ||||||
|     MSHookIvar<float>(self, "_rate") = rate; |  | ||||||
| 	MSHookIvar<float>(self, "_preferredRate") = rate; |  | ||||||
|  |  | ||||||
| 	id player = MSHookIvar<HAMPlayerInternal *>(self, "_player"); |  | ||||||
| 	[player setRate: rate]; |  | ||||||
|  |  | ||||||
| 	id stickySettings = MSHookIvar<MLPlayerStickySettings *>(self, "_stickySettings"); |  | ||||||
| 	[stickySettings setRate: rate]; |  | ||||||
|  |  | ||||||
| 	[self.playerEventCenter broadcastRateChange: rate]; |  | ||||||
|  |  | ||||||
| 	YTSingleVideoController *singleVideoController = self.delegate; |  | ||||||
| 	[singleVideoController playerRateDidChange: rate]; |  | ||||||
| } |  | ||||||
| %end  |  | ||||||
|  |  | ||||||
| %hook YTPlayerViewController |  | ||||||
| %property (nonatomic, assign) float playbackRate; |  | ||||||
| - (void)singleVideo:(id)video playbackRateDidChange:(float)rate { |  | ||||||
| 	%orig; |  | ||||||
| } |  | ||||||
| %end |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| // Disable snap to chapter |  | ||||||
| %hook YTSegmentableInlinePlayerBarView |  | ||||||
| - (void)didMoveToWindow { |  | ||||||
|     %orig; |  | ||||||
|     if (IsEnabled(@"snapToChapter_enabled")) { |  | ||||||
|         self.enableSnapToChapter = NO; |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| // Disable Pinch to zoom |  | ||||||
| %hook YTColdConfig |  | ||||||
| - (BOOL)videoZoomFreeZoomEnabledGlobalConfig { |  | ||||||
|     return IsEnabled(@"pinchToZoom_enabled") ? NO : %orig; |  | ||||||
| } |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| // YTStockVolumeHUD - https://github.com/lilacvibes/YTStockVolumeHUD | // YTStockVolumeHUD - https://github.com/lilacvibes/YTStockVolumeHUD | ||||||
| %group gStockVolumeHUD | %group gStockVolumeHUD | ||||||
| %hook YTVolumeBarView | %hook YTVolumeBarView | ||||||
| @@ -672,81 +422,7 @@ static void replaceTab(YTIGuideResponse *response) { | |||||||
| %end | %end | ||||||
| %end | %end | ||||||
|  |  | ||||||
| // Hide Watermark |  | ||||||
| %hook YTAnnotationsViewController |  | ||||||
| - (void)loadFeaturedChannelWatermark { |  | ||||||
|     if (IsEnabled(@"hideChannelWatermark_enabled")) {} |  | ||||||
|     else { return %orig; } |  | ||||||
| } |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| // Bring back the red progress bar |  | ||||||
| %hook YTInlinePlayerBarContainerView |  | ||||||
| - (id)quietProgressBarColor { |  | ||||||
|     return IsEnabled(@"redProgressBar_enabled") ? [UIColor redColor] : %orig; |  | ||||||
| } |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| // Disable tap to skip |  | ||||||
| %hook YTDoubleTapToSeekController |  | ||||||
|  - (void)enableDoubleTapToSeek:(BOOL)arg1 { |  | ||||||
|      return IsEnabled(@"tapToSkip_disabled") ? %orig(NO) : %orig; |  | ||||||
|  } |  | ||||||
|  %end |  | ||||||
|  |  | ||||||
| // Hide YouTube Logo |  | ||||||
| %group gHideYouTubeLogo |  | ||||||
| %hook YTHeaderLogoController |  | ||||||
| - (YTHeaderLogoController *)init { |  | ||||||
|     return NULL; |  | ||||||
| } |  | ||||||
| %end |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| // Miscellaneous | // Miscellaneous | ||||||
| // Disable hints - https://github.com/LillieH001/YouTube-Reborn/blob/v4/ |  | ||||||
| %group gDisableHints |  | ||||||
| %hook YTSettings |  | ||||||
| - (BOOL)areHintsDisabled { |  | ||||||
| 	return YES; |  | ||||||
| } |  | ||||||
| - (void)setHintsDisabled:(BOOL)arg1 { |  | ||||||
|     %orig(YES); |  | ||||||
| } |  | ||||||
| %end |  | ||||||
| %hook YTUserDefaults |  | ||||||
| - (BOOL)areHintsDisabled { |  | ||||||
| 	return YES; |  | ||||||
| } |  | ||||||
| - (void)setHintsDisabled:(BOOL)arg1 { |  | ||||||
|     %orig(YES); |  | ||||||
| } |  | ||||||
| %end |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| // Hide the Chip Bar (Upper Bar) in Home feed |  | ||||||
| %group gHideChipBar |  | ||||||
| %hook YTMySubsFilterHeaderView  |  | ||||||
| - (void)setChipFilterView:(id)arg1 {} |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| %hook YTHeaderContentComboView |  | ||||||
| - (void)enableSubheaderBarWithView:(id)arg1 {} |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| %hook YTHeaderContentComboView |  | ||||||
| - (void)setFeedHeaderScrollMode:(int)arg1 { %orig(0); } |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| // Hide the chip bar under the video player? |  | ||||||
| // %hook YTChipCloudCell //  |  | ||||||
| // - (void)didMoveToWindow { |  | ||||||
| //     %orig; |  | ||||||
| //     self.hidden = YES; |  | ||||||
| // } |  | ||||||
| // %end |  | ||||||
| %end |  | ||||||
|  |  | ||||||
| %group giPadLayout // https://github.com/LillieH001/YouTube-Reborn | %group giPadLayout // https://github.com/LillieH001/YouTube-Reborn | ||||||
| %hook UIDevice | %hook UIDevice | ||||||
| - (long long)userInterfaceIdiom { | - (long long)userInterfaceIdiom { | ||||||
| @@ -812,21 +488,9 @@ static void replaceTab(YTIGuideResponse *response) { | |||||||
|     if (IsEnabled(@"iPhoneLayout_enabled")) { |     if (IsEnabled(@"iPhoneLayout_enabled")) { | ||||||
|         %init(giPhoneLayout); |         %init(giPhoneLayout); | ||||||
|     } |     } | ||||||
|     if (IsEnabled(@"reExplore_enabled")) { |  | ||||||
|         %init(gReExplore); |  | ||||||
|     } |  | ||||||
|     if (IsEnabled(@"bigYTMiniPlayer_enabled") && (UIDevice.currentDevice.userInterfaceIdiom != UIUserInterfaceIdiomPad)) { |     if (IsEnabled(@"bigYTMiniPlayer_enabled") && (UIDevice.currentDevice.userInterfaceIdiom != UIUserInterfaceIdiomPad)) { | ||||||
|         %init(Main); |         %init(Main); | ||||||
|     } |     } | ||||||
|     if (IsEnabled(@"hidePreviousAndNextButton_enabled")) { |  | ||||||
|         %init(gHidePreviousAndNextButton); |  | ||||||
|     } |  | ||||||
|     if (IsEnabled(@"replacePreviousAndNextButton_enabled")) { |  | ||||||
|        %init(gReplacePreviousAndNextButton); |  | ||||||
|     } |  | ||||||
|     if (IsEnabled(@"hideOverlayDarkBackground_enabled")) { |  | ||||||
|         %init(gHideOverlayDarkBackground); |  | ||||||
|     } |  | ||||||
|     if (IsEnabled(@"hideVideoPlayerShadowOverlayButtons_enabled")) { |     if (IsEnabled(@"hideVideoPlayerShadowOverlayButtons_enabled")) { | ||||||
|         %init(gHideVideoPlayerShadowOverlayButtons); |         %init(gHideVideoPlayerShadowOverlayButtons); | ||||||
|     } |     } | ||||||
| @@ -839,24 +503,6 @@ static void replaceTab(YTIGuideResponse *response) { | |||||||
|     if (IsEnabled(@"ytNoModernUI_enabled")) { |     if (IsEnabled(@"ytNoModernUI_enabled")) { | ||||||
|         %init(gYTNoModernUI); |         %init(gYTNoModernUI); | ||||||
|     } |     } | ||||||
|     if (IsEnabled(@"disableVideoPlayerZoom_enabled")) { |  | ||||||
|         %init(gDisableVideoPlayerZoom); |  | ||||||
|     } |  | ||||||
|     if (IsEnabled(@"hideYouTubeLogo_enabled")) { |  | ||||||
|         %init(gHideYouTubeLogo); |  | ||||||
|     } |  | ||||||
| 	if (IsEnabled(@"disableHints_enabled")) { |  | ||||||
|         %init(gDisableHints); |  | ||||||
|     } |  | ||||||
|     if (IsEnabled(@"hideChipBar_enabled")) { |  | ||||||
|         %init(gHideChipBar); |  | ||||||
|     } |  | ||||||
|     if (IsEnabled(@"ytSpeed_enabled")) { |  | ||||||
|         %init(gYTSpeed); |  | ||||||
|     } |  | ||||||
|     if (IsEnabled(@"removeAds_enabled")) { |  | ||||||
|         %init(gRemoveAds); |  | ||||||
|     } |  | ||||||
|     if (IsEnabled(@"stockVolumeHUD_enabled")) { |     if (IsEnabled(@"stockVolumeHUD_enabled")) { | ||||||
|         %init(gStockVolumeHUD); |         %init(gStockVolumeHUD); | ||||||
|     } |     } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 arichorn
					arichorn