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:
arichorn
2023-07-16 18:07:39 -05:00
committed by GitHub
parent 0262fee2ac
commit 5858bece9b

View File

@@ -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 - (void)setAddToButtonAvailable:(BOOL)arg1 { // enable Save To Playlist button
if (IsEnabled(@"hideAutoplaySwitch_enabled")) {} if (IsEnabled(@"enableSaveToButton_enabled")) {
else { return %orig; } %orig(YES);
} } else {
- (void)setShareButtonAvailable:(BOOL)arg2 { // enable Share Button %orig(NO);
if (IsEnabled(@"enableShareButton_enabled")) {} }
else { return %orig; }
}
- (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);
} }