diff --git a/.github/workflows/buildapp.yml b/.github/workflows/buildapp.yml index 2a83c70..564c2ff 100644 --- a/.github/workflows/buildapp.yml +++ b/.github/workflows/buildapp.yml @@ -38,7 +38,7 @@ on: type: string create_release: description: "Create a draft release" - default: true + default: false required: false type: boolean upload_artifact: diff --git a/Sources/uYouPlus.h b/Sources/uYouPlus.h index 7bbe66b..6b5687e 100644 --- a/Sources/uYouPlus.h +++ b/Sources/uYouPlus.h @@ -60,6 +60,9 @@ // Hide Double tap to seek Overlay @interface YTInlinePlayerDoubleTapIndicatorView : UIView @property (nonatomic, strong) UIView *scrimOverlay; +@property(nonatomic, strong) CABasicAnimation *uYouEnhancedBlankAlphaAnimation; +@property(nonatomic, strong) CABasicAnimation *uYouEnhancedBlankColorAnimation; +- (CABasicAnimation *)uYouEnhancedGetBlankColorAnimation; @end // Hide Home Tab - @bhackel @@ -81,40 +84,40 @@ // Hide Premium Promo in You tab - @bhackel @interface YTIIconThumbnailRenderer : GPBMessage - @property (nonatomic, strong) YTIIcon *icon; - - (bool)hasIcon; +@property (nonatomic, strong) YTIIcon *icon; +- (BOOL)hasIcon; @end @interface YTICompactListItemThumbnailSupportedRenderers : GPBMessage - @property (nonatomic, strong) YTIIconThumbnailRenderer *iconThumbnailRenderer; - - (bool)hasIconThumbnailRenderer; +@property (nonatomic, strong) YTIIconThumbnailRenderer *iconThumbnailRenderer; +- (BOOL)hasIconThumbnailRenderer; @end @interface YTICompactListItemRenderer : GPBMessage - @property (nonatomic, strong) YTICompactListItemThumbnailSupportedRenderers *thumbnail; - @property (nonatomic, strong) YTIFormattedString *title; - - (bool)hasThumbnail; - - (bool)hasTitle; +@property (nonatomic, strong) YTICompactListItemThumbnailSupportedRenderers *thumbnail; +@property (nonatomic, strong) YTIFormattedString *title; +- (BOOL)hasThumbnail; +- (BOOL)hasTitle; @end @interface YTIIcon (uYouEnhanced) - - (bool)hasIconType; +- (BOOL)hasIconType; @end @interface YTICompactLinkRenderer : GPBMessage - @property (nonatomic, strong) YTIIcon *icon; - @property (nonatomic, strong) YTIFormattedString *title; - @property (nonatomic, strong) YTICompactListItemThumbnailSupportedRenderers *thumbnail; - - (bool)hasIcon; - - (bool)hasThumbnail; +@property (nonatomic, strong) YTIIcon *icon; +@property (nonatomic, strong) YTIFormattedString *title; +@property (nonatomic, strong) YTICompactListItemThumbnailSupportedRenderers *thumbnail; +- (BOOL)hasIcon; +- (BOOL)hasThumbnail; @end @interface YTIItemSectionSupportedRenderers (uYouEnhanced) - @property(readonly, nonatomic) YTICompactLinkRenderer *compactLinkRenderer; - @property(readonly, nonatomic) YTICompactListItemRenderer *compactListItemRenderer; - - (bool)hasCompactLinkRenderer; - - (bool)hasCompactListItemRenderer; +@property(readonly, nonatomic) YTICompactLinkRenderer *compactLinkRenderer; +@property(readonly, nonatomic) YTICompactListItemRenderer *compactListItemRenderer; +- (BOOL)hasCompactLinkRenderer; +- (BOOL)hasCompactListItemRenderer; @end @interface YTAppCollectionViewController : YTInnerTubeCollectionViewController - (void)uYouEnhancedFakePremiumModel:(YTISectionListRenderer *)model; @end @interface YTInnerTubeCollectionViewController (uYouEnhanced) - @property(readonly, nonatomic) YTISectionListRenderer *model; +@property(readonly, nonatomic) YTISectionListRenderer *model; @end // Disable Pull to Full for landscape videos - @bhackel diff --git a/Sources/uYouPlus.xm b/Sources/uYouPlus.xm index b0102a9..0f49d3e 100644 --- a/Sources/uYouPlus.xm +++ b/Sources/uYouPlus.xm @@ -762,15 +762,60 @@ BOOL isAd(YTIElementRenderer *self) { } %end -// Hide double tap to seek overlay - @arichornlover +// Hide double tap to seek overlay - @arichornlover & @bhackel +%group gHideDoubleTapToSeekOverlay %hook YTInlinePlayerDoubleTapIndicatorView +%property(nonatomic, strong) CABasicAnimation *uYouEnhancedBlankAlphaAnimation; +%property(nonatomic, strong) CABasicAnimation *uYouEnhancedBlankColorAnimation; +/** + * @return A clear color animation + */ +%new +- (CABasicAnimation *)uYouEnhancedGetBlankColorAnimation { + if (!self.uYouEnhancedBlankColorAnimation) { + // Create a new basic animation for the color property + self.uYouEnhancedBlankColorAnimation = [CABasicAnimation animationWithKeyPath:@"backgroundColor"]; + // Set values to 0 to prevent visibility + self.uYouEnhancedBlankColorAnimation.fromValue = (id)[UIColor clearColor].CGColor; + self.uYouEnhancedBlankColorAnimation.toValue = (id)[UIColor clearColor].CGColor; + self.uYouEnhancedBlankColorAnimation.duration = 0.0; + self.uYouEnhancedBlankColorAnimation.fillMode = kCAFillModeForwards; + self.uYouEnhancedBlankColorAnimation.removedOnCompletion = NO; + } + return self.uYouEnhancedBlankColorAnimation; +} +// Replace all color animations with a clear one +- (CABasicAnimation *)fillColorAnimation { + return [self uYouEnhancedGetBlankColorAnimation]; +} +- (CABasicAnimation *)earlyBackgroundColorAnimation { + return [self uYouEnhancedGetBlankColorAnimation]; +} +- (CABasicAnimation *)laterBackgroundcolorAnimation { + return [self uYouEnhancedGetBlankColorAnimation]; +} +// Replace the opacity animation with a clear one +- (CABasicAnimation *)alphaAnimation { + if (!self.uYouEnhancedBlankAlphaAnimation) { + // Create a new basic animation for the opacity property + self.uYouEnhancedBlankAlphaAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"]; + // Set values to 0 to prevent visibility + self.uYouEnhancedBlankAlphaAnimation.fromValue = @0.0; + self.uYouEnhancedBlankAlphaAnimation.toValue = @0.0; + self.uYouEnhancedBlankAlphaAnimation.duration = 0.0; + self.uYouEnhancedBlankAlphaAnimation.fillMode = kCAFillModeForwards; + self.uYouEnhancedBlankAlphaAnimation.removedOnCompletion = NO; + } + return self.uYouEnhancedBlankAlphaAnimation; +} +// Remove the screen darkening effect - (void)layoutSubviews { %orig; - if (IS_ENABLED(@"hideDoubleTapToSeekOverlay_enabled")) { - self.frame = CGRectZero; - } + // Set the 0th subview (which darkens the screen) to hidden + self.subviews[0].hidden = YES; } %end +%end // Disable pull to enter vertical/portrait fullscreen gesture - @bhackel // This was introduced in version 19.XX @@ -1525,6 +1570,9 @@ static BOOL findCell(ASNodeController *nodeController, NSArray *ide if (IS_ENABLED(@"hideHomeTab_enabled")) { %init(gHideHomeTab); } + if (IS_ENABLED(@"hideDoubleTapToSeekOverlay_enabled")) { + %init(gHideDoubleTapToSeekOverlay); + } // YTNoModernUI - @arichorn BOOL ytNoModernUIEnabled = IS_ENABLED(@"ytNoModernUI_enabled");