YTLitePlus/Source/LowContrastMode.xm
Balackburn 61a90d0712 Squashed commit of the following:
commit 2ece340746
Merge: f652976 ca84635
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Tue Aug 20 00:52:28 2024 -0700

    Merge pull request #358 from bhackel/gestures

    Gestures and Loop

commit ca84635cf4
Merge: 5066716 87d7b57
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Tue Aug 20 00:31:16 2024 -0700

    Merge branch 'main' into gestures

commit 5066716f7f
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Mon Aug 19 23:53:21 2024 -0700

    Localizations for Gestures

commit bed87298f6
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Sun Aug 18 22:25:52 2024 -0700

    Update Submodule

commit 87d7b576dd
Author: GitHub Actions <actions@github.com>
Date:   Tue Aug 20 00:53:21 2024 +0000

    updated submodules

commit f652976a53
Author: GitHub Actions <actions@github.com>
Date:   Tue Aug 20 00:44:56 2024 +0000

    updated submodules

commit 44d6ffe781
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Mon Aug 19 14:08:08 2024 -0700

    Create LICENSE

commit 023fafae15
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Sun Aug 18 18:17:32 2024 -0700

    Added YouLoop submodule to Tweaks/ folder

commit 4c5e2ee0e8
Author: GitHub Actions <actions@github.com>
Date:   Sun Aug 18 00:49:27 2024 +0000

    updated submodules

commit de89f7aca8
Author: GitHub Actions <actions@github.com>
Date:   Sat Aug 17 00:43:19 2024 +0000

    updated submodules

commit 36f9da844b
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Fri Aug 16 09:27:09 2024 -0700

    Add disable option

commit e63bc374cf
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Fri Aug 16 01:13:22 2024 -0700

    Fix defaults and text descriptions

commit 067ad5a373
Merge: b081d5b 6e8bbcb
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Fri Aug 16 01:40:45 2024 -0700

    Merge pull request #345 from bhackel/video-player

    Basic Video player

commit 6e8bbcb49e
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Fri Aug 16 01:01:33 2024 -0700

    Add localization

commit e21e026c30
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Fri Aug 16 00:32:22 2024 -0700

    Fix compile

commit 1647358a9e
Merge: feaaa07 2d82e0b
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Fri Aug 16 00:35:06 2024 -0700

    Merge branch 'main' into video-player

commit feaaa07e9e
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Fri Aug 16 00:33:37 2024 -0700

    Revert "Prototype 2"

    This reverts commit 8f578bb741.

commit f434239419
Merge: e626997 2d82e0b
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Fri Aug 16 00:26:24 2024 -0700

    Merge branch 'main' into gestures

commit e62699749d
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Fri Aug 16 00:25:24 2024 -0700

    Sensitivity and Deadzone settings

commit 4602b74e6f
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Thu Aug 15 23:15:18 2024 -0700

    Add deadzone

commit 6854f91c1e
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Thu Aug 15 10:45:27 2024 -0700

    Implement gesture selection

commit b081d5b52e
Author: GitHub Actions <actions@github.com>
Date:   Fri Aug 16 00:44:28 2024 +0000

    updated submodules

commit 8ed3d97d2d
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Wed Aug 14 23:56:27 2024 -0700

    Gesture refactor for settings

commit e92ada8427
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Wed Aug 14 22:20:36 2024 -0700

    Gesture settings

commit 8f578bb741
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Wed Aug 14 18:28:42 2024 -0700

    Prototype 2

commit 2d82e0b532
Author: GitHub Actions <actions@github.com>
Date:   Thu Aug 15 00:43:33 2024 +0000

    updated submodules

commit b963c807bb
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Wed Aug 14 09:15:43 2024 -0700

    Video player prototype

commit 10882e5d61
Merge: 4ed8e94 76f48a2
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Wed Aug 14 09:00:51 2024 -0700

    Merge branch 'main' into gestures

commit 4ed8e94880
Merge: b588b7f 9aa33a6
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Tue Aug 13 23:41:37 2024 -0700

    Merge branch 'main' into gestures

commit b588b7f6d0
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Tue Aug 13 22:02:23 2024 -0700

    Attempt seek gesture

commit 9aa33a676d
Author: GitHub Actions <actions@github.com>
Date:   Wed Aug 14 00:53:53 2024 +0000

    updated submodules

commit 76f48a2700
Author: GitHub Actions <actions@github.com>
Date:   Wed Aug 14 00:45:08 2024 +0000

    updated submodules

commit 45b7cd948e
Author: schweppes <schweppes0x@gmail.com>
Date:   Wed Aug 14 01:33:23 2024 +0200

    Bulgarian translations (#332)

    Co-authored-by: tonydalov <t.dalov@dictu.nl>

commit 4c24c0c336
Author: gototheskinny <51786709+gototheskinny@users.noreply.github.com>
Date:   Wed Aug 14 02:33:12 2024 +0300

    Turkish loc updated (#336)

commit dd88efc631
Merge: 6e609d5 e067e8d
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Mon Aug 12 23:05:35 2024 -0700

    Merge pull request #331 from bhackel/fix-oled-live-chat

    Fix OLED live chat

commit e067e8dec5
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Mon Aug 12 21:50:33 2024 -0700

    Fix OLED live chat

commit 6e609d56e7
Merge: 916bcf3 11faee3
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Mon Aug 12 22:43:28 2024 -0700

    Merge pull request #330 from bhackel/remove-speed-popup

    Remove speed popup

commit 11faee3f1e
Merge: 82e4f21 916bcf3
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Mon Aug 12 22:42:56 2024 -0700

    Merge branch 'main' into remove-speed-popup

    I used a translator, hopefully it is fine

commit 82e4f21d24
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Mon Aug 12 21:33:53 2024 -0700

    Add Hide Speed Toast

commit 916bcf33ff
Author: GitHub Actions <actions@github.com>
Date:   Tue Aug 13 00:46:14 2024 +0000

    updated submodules

commit 9d0fb16075
Author: Victor Alves <victoralves05@gmail.com>
Date:   Mon Aug 12 17:12:18 2024 -0300

    Update Portuguese localization (#326)

    * Update Portuguese Localization

commit 21df218f2f
Author: Balackburn <93828569+Balackburn@users.noreply.github.com>
Date:   Mon Aug 12 10:42:23 2024 +0200

    Updated Credits

commit f384a00e04
Author: GitHub Actions <actions@github.com>
Date:   Mon Aug 12 00:46:59 2024 +0000

    updated submodules

commit 10a536880b
Merge: 818005d 08c263f
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Sat Aug 10 05:28:47 2024 -0700

    Merge pull request #320 from bhackel/hud-and-collapse

    Copy Hide HUD and Hide Collapse Button

commit 08c263fdf0
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Sat Aug 10 04:07:47 2024 -0700

    Copy Hide HUD and Hide Collapse Button

commit 818005d73c
Merge: 37582ec 1a97587
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Sat Aug 10 03:48:54 2024 -0700

    Merge pull request #319 from bhackel/misc-features

    Misc features

commit 1a9758770d
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Sat Aug 10 02:34:42 2024 -0700

    Fix bugs

commit f64aab1b58
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Sat Aug 10 02:19:23 2024 -0700

    Fix build error

commit 762cd8f618
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Sat Aug 10 00:47:05 2024 -0700

    Remove YTLitePlus OLED Theme

commit ba13d1b987
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Fri Aug 9 22:44:51 2024 -0700

    Live Chat OLED dark mode

commit 753d690b78
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Fri Aug 9 22:38:19 2024 -0700

    Hide autoplay mini preview

commit c9875ec8b7
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Fri Aug 9 17:26:19 2024 -0700

    Fix localization, fix copy/paste switch

commit 11a3e75b0d
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Fri Aug 9 16:44:59 2024 -0700

    Default disable big mini player

commit 794fb561c9
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Fri Aug 9 16:29:34 2024 -0700

    Fix import export settings localization

commit 4f2b55a897
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Fri Aug 9 16:34:57 2024 -0700

    Hide comment previews by @arichornlover

commit 948ea5ff29
Author: GitHub Actions <actions@github.com>
Date:   Sat Aug 10 00:53:31 2024 +0000

    updated submodules

commit 37582ecbf8
Author: GitHub Actions <actions@github.com>
Date:   Sat Aug 10 00:44:53 2024 +0000

    updated submodules

commit 64c712d630
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Fri Aug 9 16:51:12 2024 -0700

    Attempt brightness and volume gestures

commit 91290efdfe
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Wed Aug 7 13:24:51 2024 -0700

    Allow other gestures

commit f2e7c234eb
Author: GitHub Actions <actions@github.com>
Date:   Fri Aug 9 00:45:23 2024 +0000

    updated submodules

commit e7523dc08d
Author: GitHub Actions <actions@github.com>
Date:   Thu Aug 8 00:44:57 2024 +0000

    updated submodules

commit 09ddc42e32
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Wed Aug 7 12:11:03 2024 -0700

    Add reporting option

commit d4679b8414
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Tue Aug 6 23:49:31 2024 -0700

    Attempt Volume Sliding

commit df3d09e81d
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Tue Aug 6 22:36:59 2024 -0700

    Gesture test using YTHFS code

commit d731dbddec
Author: arichornlover <78001398+arichornlover@users.noreply.github.com>
Date:   Tue Aug 6 21:06:02 2024 -0500

    Fix LowContrastMode description

    also added Version compatibility, LowContrastMode will not work once v17.38.10 is gone in the future.

commit 00bb15a868
Author: GitHub Actions <actions@github.com>
Date:   Wed Aug 7 00:45:08 2024 +0000

    updated submodules

commit 8a717e763a
Author: GitHub Actions <actions@github.com>
Date:   Tue Aug 6 00:44:29 2024 +0000

    updated submodules

commit 47562c543b
Author: ChuDucManh <89825108+manhchuduc@users.noreply.github.com>
Date:   Tue Aug 6 01:52:29 2024 +0700

    Update Localizable.strings (#305)

commit d27150b11d
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Mon Aug 5 03:16:34 2024 -0700

    Fix delete workflows

commit 46d6b163b9
Author: Bryce Hackel <34104885+bhackel@users.noreply.github.com>
Date:   Mon Aug 5 03:09:41 2024 -0700

    Fix YouTube Extensions bug
2024-08-20 10:58:28 +02:00

439 lines
12 KiB
Text

#import "../YTLitePlus.h"
// Low Contrast Mode
static int contrastMode() {
return [[NSUserDefaults standardUserDefaults] integerForKey:@"lcm"];
}
static BOOL lowContrastMode() {
return IsEnabled(@"lowContrastMode_enabled") && contrastMode() == 0;
}
static BOOL customContrastMode() {
return IsEnabled(@"lowContrastMode_enabled") && contrastMode() == 1;
}
UIColor *lcmHexColor;
%group gLowContrastMode // Low Contrast Mode v1.4.3 (Compatible with only YouTube v16.46.5-v17.38.10)
%hook UIColor
+ (UIColor *)whiteColor { // Dark Theme Color
return [UIColor colorWithRed: 0.56 green: 0.56 blue: 0.56 alpha: 1.00];
}
+ (UIColor *)lightTextColor {
return [UIColor colorWithRed: 0.56 green: 0.56 blue: 0.56 alpha: 1.00];
}
+ (UIColor *)placeholderTextColor {
return [UIColor colorWithRed: 0.56 green: 0.56 blue: 0.56 alpha: 1.00];
}
+ (UIColor *)labelColor {
return [UIColor colorWithRed: 0.56 green: 0.56 blue: 0.56 alpha: 1.00];
}
+ (UIColor *)secondaryLabelColor {
return [UIColor colorWithRed: 0.56 green: 0.56 blue: 0.56 alpha: 1.00];
}
+ (UIColor *)tertiaryLabelColor {
return [UIColor colorWithRed: 0.56 green: 0.56 blue: 0.56 alpha: 1.00];
}
+ (UIColor *)quaternaryLabelColor {
return [UIColor colorWithRed: 0.56 green: 0.56 blue: 0.56 alpha: 1.00];
}
%end
%hook YTCommonColorPalette
- (UIColor *)textPrimary {
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
}
- (UIColor *)textSecondary {
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
}
- (UIColor *)overlayTextPrimary {
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
}
- (UIColor *)overlayTextSecondary {
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
}
- (UIColor *)iconActive {
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
}
- (UIColor *)iconActiveOther {
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
}
- (UIColor *)brandIconActive {
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
}
- (UIColor *)staticBrandWhite {
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
}
- (UIColor *)overlayIconActiveOther {
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
}
%end
%hook YTColor
+ (UIColor *)white2 {
return [UIColor whiteColor];
}
+ (UIColor *)white3 {
return [UIColor whiteColor];
}
+ (UIColor *)white4 {
return [UIColor whiteColor];
}
+ (UIColor *)white5 {
return [UIColor whiteColor];
}
%end
%hook QTMColorGroup
- (UIColor *)tint100 {
return [UIColor whiteColor];
}
- (UIColor *)tint300 {
return [UIColor whiteColor];
}
- (UIColor *)bodyTextColor {
return [UIColor whiteColor];
}
- (UIColor *)bodyTextColorOnLighterColor {
return [UIColor whiteColor];
}
- (UIColor *)bodyTextColorOnRegularColor {
return [UIColor whiteColor];
}
- (UIColor *)bodyTextColorOnDarkerColor {
return [UIColor whiteColor];
}
- (UIColor *)bodyTextColorOnAccentColor {
return [UIColor whiteColor];
}
- (UIColor *)bodyTextColorOnOnBrightAccentColor {
return [UIColor whiteColor];
}
- (UIColor *)lightBodyTextColor {
return [UIColor whiteColor];
}
- (UIColor *)buttonBackgroundColor {
return [UIColor whiteColor];
}
%end
%hook YTQTMButton
- (void)setImage:(UIImage *)image {
UIImage *currentImage = [image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
[self setTintColor:[UIColor whiteColor]];
%orig(currentImage);
}
%end
%hook UIExtendedGrayColorSpace
- (void)setTextColor:(UIColor *)textColor {
textColor = [[UIColor whiteColor] colorWithAlphaComponent:1.0];
%orig();
}
%end
%hook VideoTitleLabel
- (void)setTextColor:(UIColor *)textColor {
textColor = [UIColor whiteColor];
%orig(textColor);
}
%end
%hook UILabel
+ (void)load {
@autoreleasepool {
[[UILabel appearance] setTextColor:[UIColor whiteColor]];
}
}
- (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 UISearchBar
- (void)setTextColor:(UIColor *)textColor {
textColor = [UIColor whiteColor];
%orig(textColor);
}
%end
%hook UISegmentedControl
- (void)setTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)state {
NSMutableDictionary *modifiedAttributes = [NSMutableDictionary dictionaryWithDictionary:attributes];
[modifiedAttributes setObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName];
%orig(modifiedAttributes, state);
}
%end
%hook UIButton
- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state {
color = [UIColor whiteColor];
%orig(color, state);
}
%end
%hook UIBarButtonItem
- (void)setTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)state {
NSMutableDictionary *modifiedAttributes = [NSMutableDictionary dictionaryWithDictionary:attributes];
[modifiedAttributes setObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName];
%orig(modifiedAttributes, state);
}
%end
%hook NSAttributedString
- (instancetype)initWithString:(NSString *)str attributes:(NSDictionary<NSAttributedStringKey, id> *)attrs {
NSMutableDictionary *modifiedAttributes = [NSMutableDictionary dictionaryWithDictionary:attrs];
[modifiedAttributes setObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName];
return %orig(str, modifiedAttributes);
}
%end
%hook CATextLayer
- (void)setTextColor:(CGColorRef)textColor {
%orig([UIColor whiteColor].CGColor);
}
%end
%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 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
%end
%group gCustomContrastMode // Custom Contrast Mode (Hex Color)
%hook UIColor
+ (UIColor *)whiteColor {
return lcmHexColor;
}
+ (UIColor *)lightTextColor {
return lcmHexColor;
}
+ (UIColor *)placeholderTextColor {
return lcmHexColor;
}
+ (UIColor *)labelColor {
return lcmHexColor;
}
+ (UIColor *)secondaryLabelColor {
return lcmHexColor;
}
+ (UIColor *)tertiaryLabelColor {
return lcmHexColor;
}
+ (UIColor *)quaternaryLabelColor {
return lcmHexColor;
}
%end
%hook YTCommonColorPalette
- (UIColor *)textPrimary {
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
}
- (UIColor *)textSecondary {
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
}
- (UIColor *)overlayTextPrimary {
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
}
- (UIColor *)overlayTextSecondary {
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
}
- (UIColor *)iconActive {
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
}
- (UIColor *)iconActiveOther {
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
}
- (UIColor *)brandIconActive {
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
}
- (UIColor *)staticBrandWhite {
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
}
- (UIColor *)overlayIconActiveOther {
return self.pageStyle == 1 ? [UIColor whiteColor] : %orig;
}
%end
%hook YTColor
+ (UIColor *)white2 {
return [UIColor whiteColor];
}
+ (UIColor *)white3 {
return [UIColor whiteColor];
}
+ (UIColor *)white4 {
return [UIColor whiteColor];
}
+ (UIColor *)white5 {
return [UIColor whiteColor];
}
%end
%hook QTMColorGroup
- (UIColor *)tint100 {
return [UIColor whiteColor];
}
- (UIColor *)tint300 {
return [UIColor whiteColor];
}
- (UIColor *)bodyTextColor {
return [UIColor whiteColor];
}
- (UIColor *)bodyTextColorOnLighterColor {
return [UIColor whiteColor];
}
- (UIColor *)bodyTextColorOnRegularColor {
return [UIColor whiteColor];
}
- (UIColor *)bodyTextColorOnDarkerColor {
return [UIColor whiteColor];
}
- (UIColor *)bodyTextColorOnAccentColor {
return [UIColor whiteColor];
}
- (UIColor *)bodyTextColorOnOnBrightAccentColor {
return [UIColor whiteColor];
}
- (UIColor *)lightBodyTextColor {
return [UIColor whiteColor];
}
- (UIColor *)buttonBackgroundColor {
return [UIColor whiteColor];
}
%end
%hook YTQTMButton
- (void)setImage:(UIImage *)image {
UIImage *currentImage = [image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
[self setTintColor:[UIColor whiteColor]];
%orig(currentImage);
}
%end
%hook UIExtendedGrayColorSpace
- (void)setTextColor:(UIColor *)textColor {
textColor = [[UIColor whiteColor] colorWithAlphaComponent:1.0];
%orig();
}
%end
%hook VideoTitleLabel
- (void)setTextColor:(UIColor *)textColor {
textColor = [UIColor whiteColor];
%orig(textColor);
}
%end
%hook UILabel
+ (void)load {
@autoreleasepool {
[[UILabel appearance] setTextColor:[UIColor whiteColor]];
}
}
- (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 UISearchBar
- (void)setTextColor:(UIColor *)textColor {
textColor = [UIColor whiteColor];
%orig(textColor);
}
%end
%hook UISegmentedControl
- (void)setTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)state {
NSMutableDictionary *modifiedAttributes = [NSMutableDictionary dictionaryWithDictionary:attributes];
[modifiedAttributes setObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName];
%orig(modifiedAttributes, state);
}
%end
%hook UIButton
- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state {
color = [UIColor whiteColor];
%orig(color, state);
}
%end
%hook UIBarButtonItem
- (void)setTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)state {
NSMutableDictionary *modifiedAttributes = [NSMutableDictionary dictionaryWithDictionary:attributes];
[modifiedAttributes setObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName];
%orig(modifiedAttributes, state);
}
%end
%hook NSAttributedString
- (instancetype)initWithString:(NSString *)str attributes:(NSDictionary<NSAttributedStringKey, id> *)attrs {
NSMutableDictionary *modifiedAttributes = [NSMutableDictionary dictionaryWithDictionary:attrs];
[modifiedAttributes setObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName];
return %orig(str, modifiedAttributes);
}
%end
%hook CATextLayer
- (void)setTextColor:(CGColorRef)textColor {
%orig([UIColor whiteColor].CGColor);
}
%end
%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 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
%end
# pragma mark - ctor
%ctor {
%init;
if (lowContrastMode()) {
%init(gLowContrastMode);
}
if (customContrastMode()) {
%init(gCustomContrastMode);
}
}