From 5858bece9bec94b31431f083cbb3c6817b093518 Mon Sep 17 00:00:00 2001 From: arichorn <78001398+arichorn@users.noreply.github.com> Date: Sun, 16 Jul 2023 18:07:39 -0500 Subject: [PATCH] Removed duplicated Code MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit YTLite has almost all of this so I did what was best for y’all - arichorn (contributor) --- YTLitePlus.xm | 388 +++----------------------------------------------- 1 file changed, 17 insertions(+), 371 deletions(-) diff --git a/YTLitePlus.xm b/YTLitePlus.xm index 1b23604..6ac5be8 100644 --- a/YTLitePlus.xm +++ b/YTLitePlus.xm @@ -79,21 +79,17 @@ static BOOL IsEnabled(NSString *key) { - (void)layoutSubviews { %orig; - if (IsEnabled(@"hideNotificationButton_enabled")) { - self.notificationButton.hidden = YES; - } if (IsEnabled(@"hideSponsorBlockButton_enabled")) { self.sponsorBlockButton.hidden = YES; } } %end -// Hide Cast Button since Cercube's option is not working +// Hide Video Player Cast Button %group gHideCastButton %hook MDXPlaybackRouteButtonController - (BOOL)isPersistentCastIconEnabled { return NO; } - (void)updateRouteButton:(id)arg1 {} // hide Cast button in video controls overlay -- (void)updateAllRouteButtons {} // hide Cast button in Nav bar %end %hook YTSettings @@ -101,22 +97,21 @@ static BOOL IsEnabled(NSString *key) { %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 -- (void)setClosedCaptionsOrSubtitlesButtonAvailable:(BOOL)arg1 { // hide CC button - return IsEnabled(@"hideCC_enabled") ? %orig(NO) : %orig; +- (void)setShareButtonAvailable:(BOOL)arg1 { // enable Share button + 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 - if (IsEnabled(@"enableShareButton_enabled")) {} - else { return %orig; } -} -- (void)setAddToButtonAvailable:(BOOL)arg2 { // enable Save to Playlist Button - if (IsEnabled(@"enableSaveToButton_enabled")) {} - else { return %orig; } +- (void)setAddToButtonAvailable:(BOOL)arg1 { // enable Save To Playlist button + if (IsEnabled(@"enableSaveToButton_enabled")) { + %orig(YES); + } else { + %orig(NO); + } } %end @@ -127,22 +122,6 @@ static BOOL IsEnabled(NSString *key) { } %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 %hook YTMainAppControlsOverlayView - (void)layoutSubviews { @@ -154,23 +133,12 @@ static BOOL IsEnabled(NSString *key) { MSHookIvar(self, "_playPauseButton").backgroundColor = nil; } %end - -%hook YTPlayBackButton -- (UIColor *)backgroundColor { - return [UIColor colorWithRed: 0.00 green: 0.00 blue: 0.00 alpha: 0.00]; -} -%end %end // A/B flags %hook YTColdConfig - (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)mainAppCoreClientIosTransientVisualGlitchInPivotBarFix { return NO; } // Fix uYou's label glitching - qnblackcat/uYouPlus#552 -%end - -// Disabled App Breaking Dialog Flags - @arichorn -%hook YTColdConfig - (BOOL)commercePlatformClientEnablePopupWebviewInWebviewDialogController { return NO;} %end @@ -182,25 +150,6 @@ static BOOL IsEnabled(NSString *key) { - (BOOL)shouldShowUpgradeDialog { return NO;} %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 %group gDisableWifiRelatedSettings %hook YTSettingsSectionItemManager @@ -217,16 +166,16 @@ static BOOL IsEnabled(NSString *key) { // YTNoModernUI - @arichorn %group gYTNoModernUI %hook YTVersionUtils // YTNoModernUI Version -+ (NSString *)appVersion { return @"16.42.3"; } ++ (NSString *)appVersion { return @"17.11.2"; } %end -%hook YTInlinePlayerBarContainerView // Red Progress Bar - YTNoModernUI +%hook YTInlinePlayerBarContainerView // Red Progress Bar - YTNoModernUI - made by Dayanch96 - (id)quietProgressBarColor { return [UIColor redColor]; } %end -%hook YTSegmentableInlinePlayerBarView // Old Buffer Bar - YTNoModernUI +%hook YTSegmentableInlinePlayerBarView // Gray Buffer Progress - YTNoModernUI - made by Dayanch96 - (void)setBufferedProgressBarColor:(id)arg1 { [UIColor colorWithRed:0.65 green:0.65 blue:0.65 alpha:0.60]; } @@ -299,20 +248,6 @@ static BOOL IsEnabled(NSString *key) { %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/ %group gHideHeatwaves %hook YTInlinePlayerBarContainerView @@ -320,21 +255,6 @@ static BOOL IsEnabled(NSString *key) { %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/ %hook YTPlayerViewController - (void)loadWithPlayerTransition:(id)arg1 playbackConfig:(id)arg2 { @@ -358,25 +278,6 @@ static BOOL IsEnabled(NSString *key) { - (BOOL)isPromptForLocalNetworkPermissionsEnabled { return NO; } %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/ %hook YTVersionUtils + (NSString *)appName { return YT_NAME; } @@ -481,91 +382,6 @@ static BOOL IsEnabled(NSString *key) { } %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 *renderers = [response itemsArray]; - for (YTIGuideResponseSupportedRenderers *guideRenderers in renderers) { - YTIPivotBarRenderer *pivotBarRenderer = [guideRenderers pivotBarRenderer]; - NSMutableArray *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 %group Main %hook YTWatchMiniBarView @@ -591,72 +407,6 @@ static void replaceTab(YTIGuideResponse *response) { %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(self, "_options") = varispeedArray; - - return result; -} -%end - -%hook MLHAMQueuePlayer -- (void)setRate:(float)rate { - MSHookIvar(self, "_rate") = rate; - MSHookIvar(self, "_preferredRate") = rate; - - id player = MSHookIvar(self, "_player"); - [player setRate: rate]; - - id stickySettings = MSHookIvar(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 %group gStockVolumeHUD %hook YTVolumeBarView @@ -672,81 +422,7 @@ static void replaceTab(YTIGuideResponse *response) { %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 -// 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 %hook UIDevice - (long long)userInterfaceIdiom { @@ -812,21 +488,9 @@ static void replaceTab(YTIGuideResponse *response) { if (IsEnabled(@"iPhoneLayout_enabled")) { %init(giPhoneLayout); } - if (IsEnabled(@"reExplore_enabled")) { - %init(gReExplore); - } if (IsEnabled(@"bigYTMiniPlayer_enabled") && (UIDevice.currentDevice.userInterfaceIdiom != UIUserInterfaceIdiomPad)) { %init(Main); } - if (IsEnabled(@"hidePreviousAndNextButton_enabled")) { - %init(gHidePreviousAndNextButton); - } - if (IsEnabled(@"replacePreviousAndNextButton_enabled")) { - %init(gReplacePreviousAndNextButton); - } - if (IsEnabled(@"hideOverlayDarkBackground_enabled")) { - %init(gHideOverlayDarkBackground); - } if (IsEnabled(@"hideVideoPlayerShadowOverlayButtons_enabled")) { %init(gHideVideoPlayerShadowOverlayButtons); } @@ -839,24 +503,6 @@ static void replaceTab(YTIGuideResponse *response) { if (IsEnabled(@"ytNoModernUI_enabled")) { %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")) { %init(gStockVolumeHUD); }