From a4e3978182d204037379d2ea411279f4f53a471c Mon Sep 17 00:00:00 2001 From: arichorn <78001398+arichorn@users.noreply.github.com> Date: Sat, 8 Jul 2023 23:55:06 -0500 Subject: [PATCH] LowContrastMode v1.3.0 --- Source/LowContrastMode.xm | 870 +++++++++++++++++++++++++++++--------- 1 file changed, 672 insertions(+), 198 deletions(-) diff --git a/Source/LowContrastMode.xm b/Source/LowContrastMode.xm index bf8d8c6..51094d4 100644 --- a/Source/LowContrastMode.xm +++ b/Source/LowContrastMode.xm @@ -38,7 +38,7 @@ static BOOL pinkContrastMode() { return IsEnabled(@"lowContrastMode_enabled") && colorContrastMode() == 8; } -%group gLowContrastMode // Low Contrast Mode v1.2.3 (Compatible with only v15.02.1-present) +%group gLowContrastMode // Low Contrast Mode v1.3.0 (Compatible with only YouTube v16.05.7-v17.38.10) %hook UIColor + (UIColor *)whiteColor { // Dark Theme Color return [UIColor colorWithRed: 0.56 green: 0.56 blue: 0.56 alpha: 1.00]; @@ -46,12 +46,17 @@ static BOOL pinkContrastMode() { + (UIColor *)textColor { return [UIColor colorWithRed: 0.56 green: 0.56 blue: 0.56 alpha: 1.00]; } -+ (UIColor *)dynamicLabelColor { - return [UIColor colorWithRed: 0.56 green: 0.56 blue: 0.56 alpha: 1.00]; +%end + +%hook UILabel ++ (void)load { + @autoreleasepool { + [[UILabel appearance] setTextColor:[UIColor whiteColor]]; + } } %end -%hook YTColorPalette // Changes Texts & Icons in YouTube Bottom Bar (Doesn't change Texts & Icons under the video player) +%hook YTColorPalette - (UIColor *)textPrimary { if (self.pageStyle == 1) { return [UIColor whiteColor]; // Dark Theme @@ -66,7 +71,7 @@ static BOOL pinkContrastMode() { } %end -%hook YTCommonColorPalette // Changes Texts & Icons in YouTube Bottom Bar (Doesn't change Texts & Icons under the video player) +%hook YTCommonColorPalette - (UIColor *)textPrimary { if (self.pageStyle == 1) { return [UIColor whiteColor]; // Dark Theme @@ -81,29 +86,82 @@ static BOOL pinkContrastMode() { } %end -%hook YTCollectionView // Changes Live Chat Texts +%hook YTCollectionView - (void)setTintColor:(UIColor *)color { return isDarkMode() ? %orig([UIColor whiteColor]) : %orig; } %end -%hook YTQTMButton // Changes Tweak Icons/Texts/Images -- (UIColor *)whiteColor { - return [UIColor whiteColor]; -} -- (UIColor *)tintColor { - return [UIColor whiteColor]; -} -- (UIColor *)overflowButton { - return [UIColor whiteColor]; +%hook ASTextNode +- (NSAttributedString *)attributedString { + NSAttributedString *originalAttributedString = %orig; + + NSMutableAttributedString *newAttributedString = [originalAttributedString mutableCopy]; + [newAttributedString addAttribute:NSForegroundColorAttributeName value:[UIColor whiteColor] range:NSMakeRange(0, newAttributedString.length)]; + + return newAttributedString; } %end -%hook ELMAnimatedVectorView // Changes the Like Button Animation Color. -- (UIColor *)_ASDisplayView { - return [UIColor whiteColor]; +%hook ASTextFieldNode +- (void)setTextColor:(UIColor *)textColor { + %orig([UIColor whiteColor]); } -- (UIColor *)ELMAnimatedVectorView { +%end + +%hook ASTextView +- (void)setTextColor:(UIColor *)textColor { + %orig([UIColor whiteColor]); +} +%end + +%hook ASButtonNode +- (void)setTextColor:(UIColor *)textColor { + %orig([UIColor whiteColor]); +} +%end + +%hook UIButton +- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state { + %log; + color = [UIColor whiteColor]; + %orig(color, state); +} +%end + +%hook UILabel +- (void)setTextColor:(UIColor *)textColor { + %log; + textColor = [UIColor whiteColor]; + %orig(textColor); +} +%end + +%hook UITextField +- (void)setTextColor:(UIColor *)textColor { + %log; + textColor = [UIColor whiteColor]; + %orig(textColor); +} +%end + +%hook UITextView +- (void)setTextColor:(UIColor *)textColor { + %log; + textColor = [UIColor whiteColor]; + %orig(textColor); +} +%end + +%hook VideoTitleLabel +- (void)setTextColor:(UIColor *)textColor { + textColor = [UIColor whiteColor]; + %orig(textColor); +} +%end + +%hook _ASDisplayView +- (UIColor *)textColor { return [UIColor whiteColor]; } %end @@ -117,12 +175,17 @@ static BOOL pinkContrastMode() { + (UIColor *)textColor { return [UIColor colorWithRed: 1.00 green: 0.31 blue: 0.27 alpha: 1.00]; } -+ (UIColor *)dynamicLabelColor { - return [UIColor colorWithRed: 1.00 green: 0.31 blue: 0.27 alpha: 1.00]; +%end + +%hook UILabel ++ (void)load { + @autoreleasepool { + [[UILabel appearance] setTextColor:[UIColor whiteColor]]; + } } %end -%hook YTColorPalette // Changes Texts & Icons in YouTube Bottom Bar (Doesn't change Texts & Icons under the video player) +%hook YTColorPalette - (UIColor *)textPrimary { if (self.pageStyle == 1) { return [UIColor whiteColor]; // Dark Theme @@ -152,36 +215,83 @@ static BOOL pinkContrastMode() { } %end -%hook YTCollectionView // Changes Live Chat Texts -- (void)setTintColor:(UIColor *)color { - return isDarkMode() ? %orig([UIColor whiteColor]) : %orig; +%hook YTCollectionView + - (void)setTintColor:(UIColor *)color { + return isDarkMode() ? %orig([UIColor whiteColor]) : %orig; } %end -%hook YTQTMButton // Changes Tweak Icons/Texts/Images -- (UIColor *)whiteColor { - return [UIColor whiteColor]; -} -- (UIColor *)tintColor { - return [UIColor whiteColor]; -} -- (UIColor *)overflowButton { - return [UIColor whiteColor]; +%hook ASTextNode +- (NSAttributedString *)attributedString { + NSAttributedString *originalAttributedString = %orig; + + NSMutableAttributedString *newAttributedString = [originalAttributedString mutableCopy]; + [newAttributedString addAttribute:NSForegroundColorAttributeName value:[UIColor whiteColor] range:NSMakeRange(0, newAttributedString.length)]; + + return newAttributedString; } %end -%hook ELMAnimatedVectorView // Changes the Like Button Animation Color. -- (UIColor *)_ASDisplayView { - return [UIColor whiteColor]; +%hook ASTextFieldNode +- (void)setTextColor:(UIColor *)textColor { + %orig([UIColor whiteColor]); +} +%end + +%hook ASTextView +- (void)setTextColor:(UIColor *)textColor { + %orig([UIColor whiteColor]); +} +%end + +%hook ASButtonNode +- (void)setTextColor:(UIColor *)textColor { + %orig([UIColor whiteColor]); +} +%end + +%hook UIButton +- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state { + %log; + color = [UIColor whiteColor]; + %orig(color, state); +} +%end + +%hook UILabel +- (void)setTextColor:(UIColor *)textColor { + %log; + textColor = [UIColor whiteColor]; + %orig(textColor); +} +%end + +%hook UITextField +- (void)setTextColor:(UIColor *)textColor { + %log; + textColor = [UIColor whiteColor]; + %orig(textColor); +} +%end + +%hook UITextView +- (void)setTextColor:(UIColor *)textColor { + %log; + textColor = [UIColor whiteColor]; + %orig(textColor); +} +%end + +%hook VideoTitleLabel +- (void)setTextColor:(UIColor *)textColor { + textColor = [UIColor whiteColor]; + %orig(textColor); } %end %hook _ASDisplayView -- (void)didMoveToWindow { - %orig; - if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.comment_composer"]) { self.tintColor = [UIColor whiteColor]; } - if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.video_list_entry"]) { self.tintColor = [UIColor whiteColor]; } - if ([self.accessibilityIdentifier isEqualToString:@"eml.live_chat_text_message"]) { self.tintColor = [UIColor whiteColor]; } +- (UIColor *)textColor { + return [UIColor whiteColor]; } %end %end @@ -194,8 +304,13 @@ static BOOL pinkContrastMode() { + (UIColor *)textColor { return [UIColor colorWithRed: 0.04 green: 0.47 blue: 0.72 alpha: 1.00]; } -+ (UIColor *)dynamicLabelColor { - return [UIColor colorWithRed: 0.04 green: 0.47 blue: 0.72 alpha: 1.00]; +%end + +%hook UILabel ++ (void)load { + @autoreleasepool { + [[UILabel appearance] setTextColor:[UIColor whiteColor]]; + } } %end @@ -229,36 +344,83 @@ static BOOL pinkContrastMode() { } %end -%hook YTCollectionView // Changes Live Chat Texts -- (void)setTintColor:(UIColor *)color { - return isDarkMode() ? %orig([UIColor whiteColor]) : %orig; +%hook YTCollectionView + - (void)setTintColor:(UIColor *)color { + return isDarkMode() ? %orig([UIColor whiteColor]) : %orig; } %end -%hook YTQTMButton // Changes Tweak Icons/Texts/Images -- (UIColor *)whiteColor { - return [UIColor whiteColor]; -} -- (UIColor *)tintColor { - return [UIColor whiteColor]; -} -- (UIColor *)overflowButton { - return [UIColor whiteColor]; +%hook ASTextNode +- (NSAttributedString *)attributedString { + NSAttributedString *originalAttributedString = %orig; + + NSMutableAttributedString *newAttributedString = [originalAttributedString mutableCopy]; + [newAttributedString addAttribute:NSForegroundColorAttributeName value:[UIColor whiteColor] range:NSMakeRange(0, newAttributedString.length)]; + + return newAttributedString; } %end -%hook ELMAnimatedVectorView // Changes the Like Button Animation Color. -- (UIColor *)_ASDisplayView { - return [UIColor whiteColor]; +%hook ASTextFieldNode +- (void)setTextColor:(UIColor *)textColor { + %orig([UIColor whiteColor]); +} +%end + +%hook ASTextView +- (void)setTextColor:(UIColor *)textColor { + %orig([UIColor whiteColor]); +} +%end + +%hook ASButtonNode +- (void)setTextColor:(UIColor *)textColor { + %orig([UIColor whiteColor]); +} +%end + +%hook UIButton +- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state { + %log; + color = [UIColor whiteColor]; + %orig(color, state); +} +%end + +%hook UILabel +- (void)setTextColor:(UIColor *)textColor { + %log; + textColor = [UIColor whiteColor]; + %orig(textColor); +} +%end + +%hook UITextField +- (void)setTextColor:(UIColor *)textColor { + %log; + textColor = [UIColor whiteColor]; + %orig(textColor); +} +%end + +%hook UITextView +- (void)setTextColor:(UIColor *)textColor { + %log; + textColor = [UIColor whiteColor]; + %orig(textColor); +} +%end + +%hook VideoTitleLabel +- (void)setTextColor:(UIColor *)textColor { + textColor = [UIColor whiteColor]; + %orig(textColor); } %end %hook _ASDisplayView -- (void)didMoveToWindow { - %orig; - if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.comment_composer"]) { self.tintColor = [UIColor whiteColor]; } - if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.video_list_entry"]) { self.tintColor = [UIColor whiteColor]; } - if ([self.accessibilityIdentifier isEqualToString:@"eml.live_chat_text_message"]) { self.tintColor = [UIColor whiteColor]; } +- (UIColor *)textColor { + return [UIColor whiteColor]; } %end %end @@ -271,8 +433,13 @@ static BOOL pinkContrastMode() { + (UIColor *)textColor { return [UIColor colorWithRed: 0.01 green: 0.66 blue: 0.18 alpha: 1.00]; } -+ (UIColor *)dynamicLabelColor { - return [UIColor colorWithRed: 0.01 green: 0.66 blue: 0.18 alpha: 1.00]; +%end + +%hook UILabel ++ (void)load { + @autoreleasepool { + [[UILabel appearance] setTextColor:[UIColor whiteColor]]; + } } %end @@ -306,36 +473,83 @@ static BOOL pinkContrastMode() { } %end -%hook YTCollectionView // Changes Live Chat Texts -- (void)setTintColor:(UIColor *)color { - return isDarkMode() ? %orig([UIColor whiteColor]) : %orig; +%hook YTCollectionView + - (void)setTintColor:(UIColor *)color { + return isDarkMode() ? %orig([UIColor whiteColor]) : %orig; } %end -%hook YTQTMButton // Changes Tweak Icons/Texts/Images -- (UIColor *)whiteColor { - return [UIColor whiteColor]; -} -- (UIColor *)tintColor { - return [UIColor whiteColor]; -} -- (UIColor *)overflowButton { - return [UIColor whiteColor]; +%hook ASTextNode +- (NSAttributedString *)attributedString { + NSAttributedString *originalAttributedString = %orig; + + NSMutableAttributedString *newAttributedString = [originalAttributedString mutableCopy]; + [newAttributedString addAttribute:NSForegroundColorAttributeName value:[UIColor whiteColor] range:NSMakeRange(0, newAttributedString.length)]; + + return newAttributedString; } %end -%hook ELMAnimatedVectorView // Changes the Like Button Animation Color. -- (UIColor *)_ASDisplayView { - return [UIColor whiteColor]; +%hook ASTextFieldNode +- (void)setTextColor:(UIColor *)textColor { + %orig([UIColor whiteColor]); +} +%end + +%hook ASTextView +- (void)setTextColor:(UIColor *)textColor { + %orig([UIColor whiteColor]); +} +%end + +%hook ASButtonNode +- (void)setTextColor:(UIColor *)textColor { + %orig([UIColor whiteColor]); +} +%end + +%hook UIButton +- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state { + %log; + color = [UIColor whiteColor]; + %orig(color, state); +} +%end + +%hook UILabel +- (void)setTextColor:(UIColor *)textColor { + %log; + textColor = [UIColor whiteColor]; + %orig(textColor); +} +%end + +%hook UITextField +- (void)setTextColor:(UIColor *)textColor { + %log; + textColor = [UIColor whiteColor]; + %orig(textColor); +} +%end + +%hook UITextView +- (void)setTextColor:(UIColor *)textColor { + %log; + textColor = [UIColor whiteColor]; + %orig(textColor); +} +%end + +%hook VideoTitleLabel +- (void)setTextColor:(UIColor *)textColor { + textColor = [UIColor whiteColor]; + %orig(textColor); } %end %hook _ASDisplayView -- (void)didMoveToWindow { - %orig; - if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.comment_composer"]) { self.tintColor = [UIColor whiteColor]; } - if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.video_list_entry"]) { self.tintColor = [UIColor whiteColor]; } - if ([self.accessibilityIdentifier isEqualToString:@"eml.live_chat_text_message"]) { self.tintColor = [UIColor whiteColor]; } +- (UIColor *)textColor { + return [UIColor whiteColor]; } %end %end @@ -348,8 +562,13 @@ static BOOL pinkContrastMode() { + (UIColor *)textColor { return [UIColor colorWithRed: 0.89 green: 0.82 blue: 0.20 alpha: 1.00]; } -+ (UIColor *)dynamicLabelColor { - return [UIColor colorWithRed: 0.89 green: 0.82 blue: 0.20 alpha: 1.00]; +%end + +%hook UILabel ++ (void)load { + @autoreleasepool { + [[UILabel appearance] setTextColor:[UIColor whiteColor]]; + } } %end @@ -383,36 +602,83 @@ static BOOL pinkContrastMode() { } %end -%hook YTCollectionView // Changes Live Chat Texts -- (void)setTintColor:(UIColor *)color { - return isDarkMode() ? %orig([UIColor whiteColor]) : %orig; +%hook YTCollectionView + - (void)setTintColor:(UIColor *)color { + return isDarkMode() ? %orig([UIColor whiteColor]) : %orig; } %end -%hook YTQTMButton // Changes Tweak Icons/Texts/Images -- (UIColor *)whiteColor { - return [UIColor whiteColor]; -} -- (UIColor *)tintColor { - return [UIColor whiteColor]; -} -- (UIColor *)overflowButton { - return [UIColor whiteColor]; +%hook ASTextNode +- (NSAttributedString *)attributedString { + NSAttributedString *originalAttributedString = %orig; + + NSMutableAttributedString *newAttributedString = [originalAttributedString mutableCopy]; + [newAttributedString addAttribute:NSForegroundColorAttributeName value:[UIColor whiteColor] range:NSMakeRange(0, newAttributedString.length)]; + + return newAttributedString; } %end -%hook ELMAnimatedVectorView // Changes the Like Button Animation Color. -- (UIColor *)_ASDisplayView { - return [UIColor whiteColor]; +%hook ASTextFieldNode +- (void)setTextColor:(UIColor *)textColor { + %orig([UIColor whiteColor]); +} +%end + +%hook ASTextView +- (void)setTextColor:(UIColor *)textColor { + %orig([UIColor whiteColor]); +} +%end + +%hook ASButtonNode +- (void)setTextColor:(UIColor *)textColor { + %orig([UIColor whiteColor]); +} +%end + +%hook UIButton +- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state { + %log; + color = [UIColor whiteColor]; + %orig(color, state); +} +%end + +%hook UILabel +- (void)setTextColor:(UIColor *)textColor { + %log; + textColor = [UIColor whiteColor]; + %orig(textColor); +} +%end + +%hook UITextField +- (void)setTextColor:(UIColor *)textColor { + %log; + textColor = [UIColor whiteColor]; + %orig(textColor); +} +%end + +%hook UITextView +- (void)setTextColor:(UIColor *)textColor { + %log; + textColor = [UIColor whiteColor]; + %orig(textColor); +} +%end + +%hook VideoTitleLabel +- (void)setTextColor:(UIColor *)textColor { + textColor = [UIColor whiteColor]; + %orig(textColor); } %end %hook _ASDisplayView -- (void)didMoveToWindow { - %orig; - if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.comment_composer"]) { self.tintColor = [UIColor whiteColor]; } - if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.video_list_entry"]) { self.tintColor = [UIColor whiteColor]; } - if ([self.accessibilityIdentifier isEqualToString:@"eml.live_chat_text_message"]) { self.tintColor = [UIColor whiteColor]; } +- (UIColor *)textColor { + return [UIColor whiteColor]; } %end %end @@ -425,8 +691,13 @@ static BOOL pinkContrastMode() { + (UIColor *)textColor { return [UIColor colorWithRed: 0.73 green: 0.45 blue: 0.05 alpha: 1.00]; } -+ (UIColor *)dynamicLabelColor { - return [UIColor colorWithRed: 0.73 green: 0.45 blue: 0.05 alpha: 1.00]; +%end + +%hook UILabel ++ (void)load { + @autoreleasepool { + [[UILabel appearance] setTextColor:[UIColor whiteColor]]; + } } %end @@ -435,13 +706,13 @@ static BOOL pinkContrastMode() { if (self.pageStyle == 1) { return [UIColor whiteColor]; // Dark Theme } - return [UIColor colorWithRed: 0.77 green: 0.71 blue: 0.14 alpha: 1.00]; // Light Theme + return [UIColor colorWithRed: 0.80 green: 0.49 blue: 0.05 alpha: 1.00]; // Light Theme } - (UIColor *)textSecondary { if (self.pageStyle == 1) { return [UIColor whiteColor]; // Dark Theme } - return [UIColor colorWithRed: 0.77 green: 0.71 blue: 0.14 alpha: 1.00]; // Light Theme + return [UIColor colorWithRed: 0.80 green: 0.49 blue: 0.05 alpha: 1.00]; // Light Theme } %end @@ -460,36 +731,83 @@ static BOOL pinkContrastMode() { } %end -%hook YTCollectionView // Changes Live Chat Texts -- (void)setTintColor:(UIColor *)color { - return isDarkMode() ? %orig([UIColor whiteColor]) : %orig; +%hook YTCollectionView + - (void)setTintColor:(UIColor *)color { + return isDarkMode() ? %orig([UIColor whiteColor]) : %orig; } %end -%hook YTQTMButton // Changes Tweak Icons/Texts/Images -- (UIColor *)whiteColor { - return [UIColor whiteColor]; -} -- (UIColor *)tintColor { - return [UIColor whiteColor]; -} -- (UIColor *)overflowButton { - return [UIColor whiteColor]; +%hook ASTextNode +- (NSAttributedString *)attributedString { + NSAttributedString *originalAttributedString = %orig; + + NSMutableAttributedString *newAttributedString = [originalAttributedString mutableCopy]; + [newAttributedString addAttribute:NSForegroundColorAttributeName value:[UIColor whiteColor] range:NSMakeRange(0, newAttributedString.length)]; + + return newAttributedString; } %end -%hook ELMAnimatedVectorView // Changes the Like Button Animation Color. -- (UIColor *)_ASDisplayView { - return [UIColor whiteColor]; +%hook ASTextFieldNode +- (void)setTextColor:(UIColor *)textColor { + %orig([UIColor whiteColor]); +} +%end + +%hook ASTextView +- (void)setTextColor:(UIColor *)textColor { + %orig([UIColor whiteColor]); +} +%end + +%hook ASButtonNode +- (void)setTextColor:(UIColor *)textColor { + %orig([UIColor whiteColor]); +} +%end + +%hook UIButton +- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state { + %log; + color = [UIColor whiteColor]; + %orig(color, state); +} +%end + +%hook UILabel +- (void)setTextColor:(UIColor *)textColor { + %log; + textColor = [UIColor whiteColor]; + %orig(textColor); +} +%end + +%hook UITextField +- (void)setTextColor:(UIColor *)textColor { + %log; + textColor = [UIColor whiteColor]; + %orig(textColor); +} +%end + +%hook UITextView +- (void)setTextColor:(UIColor *)textColor { + %log; + textColor = [UIColor whiteColor]; + %orig(textColor); +} +%end + +%hook VideoTitleLabel +- (void)setTextColor:(UIColor *)textColor { + textColor = [UIColor whiteColor]; + %orig(textColor); } %end %hook _ASDisplayView -- (void)didMoveToWindow { - %orig; - if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.comment_composer"]) { self.tintColor = [UIColor whiteColor]; } - if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.video_list_entry"]) { self.tintColor = [UIColor whiteColor]; } - if ([self.accessibilityIdentifier isEqualToString:@"eml.live_chat_text_message"]) { self.tintColor = [UIColor whiteColor]; } +- (UIColor *)textColor { + return [UIColor whiteColor]; } %end %end @@ -502,8 +820,13 @@ static BOOL pinkContrastMode() { + (UIColor *)textColor { return [UIColor colorWithRed: 0.42 green: 0.18 blue: 0.68 alpha: 1.00]; } -+ (UIColor *)dynamicLabelColor { - return [UIColor colorWithRed: 0.42 green: 0.18 blue: 0.68 alpha: 1.00]; +%end + +%hook UILabel ++ (void)load { + @autoreleasepool { + [[UILabel appearance] setTextColor:[UIColor whiteColor]]; + } } %end @@ -537,36 +860,83 @@ static BOOL pinkContrastMode() { } %end -%hook YTCollectionView // Changes Live Chat Texts -- (void)setTintColor:(UIColor *)color { - return isDarkMode() ? %orig([UIColor whiteColor]) : %orig; +%hook YTCollectionView + - (void)setTintColor:(UIColor *)color { + return isDarkMode() ? %orig([UIColor whiteColor]) : %orig; } %end -%hook YTQTMButton // Changes Tweak Icons/Texts/Images -- (UIColor *)whiteColor { - return [UIColor whiteColor]; -} -- (UIColor *)tintColor { - return [UIColor whiteColor]; -} -- (UIColor *)overflowButton { - return [UIColor whiteColor]; +%hook ASTextNode +- (NSAttributedString *)attributedString { + NSAttributedString *originalAttributedString = %orig; + + NSMutableAttributedString *newAttributedString = [originalAttributedString mutableCopy]; + [newAttributedString addAttribute:NSForegroundColorAttributeName value:[UIColor whiteColor] range:NSMakeRange(0, newAttributedString.length)]; + + return newAttributedString; } %end -%hook ELMAnimatedVectorView // Changes the Like Button Animation Color. -- (UIColor *)_ASDisplayView { - return [UIColor whiteColor]; +%hook ASTextFieldNode +- (void)setTextColor:(UIColor *)textColor { + %orig([UIColor whiteColor]); +} +%end + +%hook ASTextView +- (void)setTextColor:(UIColor *)textColor { + %orig([UIColor whiteColor]); +} +%end + +%hook ASButtonNode +- (void)setTextColor:(UIColor *)textColor { + %orig([UIColor whiteColor]); +} +%end + +%hook UIButton +- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state { + %log; + color = [UIColor whiteColor]; + %orig(color, state); +} +%end + +%hook UILabel +- (void)setTextColor:(UIColor *)textColor { + %log; + textColor = [UIColor whiteColor]; + %orig(textColor); +} +%end + +%hook UITextField +- (void)setTextColor:(UIColor *)textColor { + %log; + textColor = [UIColor whiteColor]; + %orig(textColor); +} +%end + +%hook UITextView +- (void)setTextColor:(UIColor *)textColor { + %log; + textColor = [UIColor whiteColor]; + %orig(textColor); +} +%end + +%hook VideoTitleLabel +- (void)setTextColor:(UIColor *)textColor { + textColor = [UIColor whiteColor]; + %orig(textColor); } %end %hook _ASDisplayView -- (void)didMoveToWindow { - %orig; - if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.comment_composer"]) { self.tintColor = [UIColor whiteColor]; } - if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.video_list_entry"]) { self.tintColor = [UIColor whiteColor]; } - if ([self.accessibilityIdentifier isEqualToString:@"eml.live_chat_text_message"]) { self.tintColor = [UIColor whiteColor]; } +- (UIColor *)textColor { + return [UIColor whiteColor]; } %end %end @@ -579,8 +949,13 @@ static BOOL pinkContrastMode() { + (UIColor *)textColor { return [UIColor colorWithRed: 0.50 green: 0.00 blue: 1.00 alpha: 1.00]; } -+ (UIColor *)dynamicLabelColor { - return [UIColor colorWithRed: 0.50 green: 0.00 blue: 1.00 alpha: 1.00]; +%end + +%hook UILabel ++ (void)load { + @autoreleasepool { + [[UILabel appearance] setTextColor:[UIColor whiteColor]]; + } } %end @@ -614,36 +989,83 @@ static BOOL pinkContrastMode() { } %end -%hook YTCollectionView // Changes Live Chat Texts -- (void)setTintColor:(UIColor *)color { - return isDarkMode() ? %orig([UIColor whiteColor]) : %orig; +%hook YTCollectionView + - (void)setTintColor:(UIColor *)color { + return isDarkMode() ? %orig([UIColor whiteColor]) : %orig; } %end -%hook YTQTMButton // Changes Tweak Icons/Texts/Images -- (UIColor *)whiteColor { - return [UIColor whiteColor]; -} -- (UIColor *)tintColor { - return [UIColor whiteColor]; -} -- (UIColor *)overflowButton { - return [UIColor whiteColor]; +%hook ASTextNode +- (NSAttributedString *)attributedString { + NSAttributedString *originalAttributedString = %orig; + + NSMutableAttributedString *newAttributedString = [originalAttributedString mutableCopy]; + [newAttributedString addAttribute:NSForegroundColorAttributeName value:[UIColor whiteColor] range:NSMakeRange(0, newAttributedString.length)]; + + return newAttributedString; } %end -%hook ELMAnimatedVectorView // Changes the Like Button Animation Color. -- (UIColor *)_ASDisplayView { - return [UIColor whiteColor]; +%hook ASTextFieldNode +- (void)setTextColor:(UIColor *)textColor { + %orig([UIColor whiteColor]); +} +%end + +%hook ASTextView +- (void)setTextColor:(UIColor *)textColor { + %orig([UIColor whiteColor]); +} +%end + +%hook ASButtonNode +- (void)setTextColor:(UIColor *)textColor { + %orig([UIColor whiteColor]); +} +%end + +%hook UIButton +- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state { + %log; + color = [UIColor whiteColor]; + %orig(color, state); +} +%end + +%hook UILabel +- (void)setTextColor:(UIColor *)textColor { + %log; + textColor = [UIColor whiteColor]; + %orig(textColor); +} +%end + +%hook UITextField +- (void)setTextColor:(UIColor *)textColor { + %log; + textColor = [UIColor whiteColor]; + %orig(textColor); +} +%end + +%hook UITextView +- (void)setTextColor:(UIColor *)textColor { + %log; + textColor = [UIColor whiteColor]; + %orig(textColor); +} +%end + +%hook VideoTitleLabel +- (void)setTextColor:(UIColor *)textColor { + textColor = [UIColor whiteColor]; + %orig(textColor); } %end %hook _ASDisplayView -- (void)didMoveToWindow { - %orig; - if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.comment_composer"]) { self.tintColor = [UIColor whiteColor]; } - if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.video_list_entry"]) { self.tintColor = [UIColor whiteColor]; } - if ([self.accessibilityIdentifier isEqualToString:@"eml.live_chat_text_message"]) { self.tintColor = [UIColor whiteColor]; } +- (UIColor *)textColor { + return [UIColor whiteColor]; } %end %end @@ -656,8 +1078,13 @@ static BOOL pinkContrastMode() { + (UIColor *)textColor { return [UIColor colorWithRed: 0.74 green: 0.02 blue: 0.46 alpha: 1.00]; } -+ (UIColor *)dynamicLabelColor { - return [UIColor colorWithRed: 0.74 green: 0.02 blue: 0.46 alpha: 1.00]; +%end + +%hook UILabel ++ (void)load { + @autoreleasepool { + [[UILabel appearance] setTextColor:[UIColor whiteColor]]; + } } %end @@ -691,36 +1118,83 @@ static BOOL pinkContrastMode() { } %end -%hook YTCollectionView // Changes Live Chat Texts -- (void)setTintColor:(UIColor *)color { - return isDarkMode() ? %orig([UIColor whiteColor]) : %orig; +%hook YTCollectionView + - (void)setTintColor:(UIColor *)color { + return isDarkMode() ? %orig([UIColor whiteColor]) : %orig; } %end -%hook YTQTMButton // Changes Tweak Icons/Texts/Images -- (UIColor *)whiteColor { - return [UIColor whiteColor]; -} -- (UIColor *)tintColor { - return [UIColor whiteColor]; -} -- (UIColor *)overflowButton { - return [UIColor whiteColor]; +%hook ASTextNode +- (NSAttributedString *)attributedString { + NSAttributedString *originalAttributedString = %orig; + + NSMutableAttributedString *newAttributedString = [originalAttributedString mutableCopy]; + [newAttributedString addAttribute:NSForegroundColorAttributeName value:[UIColor whiteColor] range:NSMakeRange(0, newAttributedString.length)]; + + return newAttributedString; } %end -%hook ELMAnimatedVectorView // Changes the Like Button Animation Color. -- (UIColor *)_ASDisplayView { - return [UIColor whiteColor]; +%hook ASTextFieldNode +- (void)setTextColor:(UIColor *)textColor { + %orig([UIColor whiteColor]); +} +%end + +%hook ASTextView +- (void)setTextColor:(UIColor *)textColor { + %orig([UIColor whiteColor]); +} +%end + +%hook ASButtonNode +- (void)setTextColor:(UIColor *)textColor { + %orig([UIColor whiteColor]); +} +%end + +%hook UIButton +- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state { + %log; + color = [UIColor whiteColor]; + %orig(color, state); +} +%end + +%hook UILabel +- (void)setTextColor:(UIColor *)textColor { + %log; + textColor = [UIColor whiteColor]; + %orig(textColor); +} +%end + +%hook UITextField +- (void)setTextColor:(UIColor *)textColor { + %log; + textColor = [UIColor whiteColor]; + %orig(textColor); +} +%end + +%hook UITextView +- (void)setTextColor:(UIColor *)textColor { + %log; + textColor = [UIColor whiteColor]; + %orig(textColor); +} +%end + +%hook VideoTitleLabel +- (void)setTextColor:(UIColor *)textColor { + textColor = [UIColor whiteColor]; + %orig(textColor); } %end %hook _ASDisplayView -- (void)didMoveToWindow { - %orig; - if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.comment_composer"]) { self.tintColor = [UIColor whiteColor]; } - if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.video_list_entry"]) { self.tintColor = [UIColor whiteColor]; } - if ([self.accessibilityIdentifier isEqualToString:@"eml.live_chat_text_message"]) { self.tintColor = [UIColor whiteColor]; } +- (UIColor *)textColor { + return [UIColor whiteColor]; } %end %end