YTLitePlus/Source/Themes.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

838 lines
25 KiB
Text

#import "../YTLitePlus.h"
static BOOL isDarkMode() {
return ([[NSUserDefaults standardUserDefaults] integerForKey:@"page_style"] == 1);
}
static BOOL oldDarkTheme() {
return ([[NSUserDefaults standardUserDefaults] integerForKey:@"appTheme"] == 1);
}
// Themes.xm - Theme Options
// Old dark theme (gray)
%group gOldDarkTheme
UIColor *customColor = [UIColor colorWithRed:0.129 green:0.129 blue:0.129 alpha:1.0];
%hook YTCommonColorPalette
- (UIColor *)background1 {
return self.pageStyle == 1 ? customColor : %orig;
}
- (UIColor *)background2 {
return self.pageStyle == 1 ? customColor : %orig;
}
- (UIColor *)background3 {
return self.pageStyle == 1 ? customColor : %orig;
}
- (UIColor *)brandBackgroundSolid {
return self.pageStyle == 1 ? customColor : %orig;
}
- (UIColor *)brandBackgroundPrimary {
return self.pageStyle == 1 ? customColor : %orig;
}
- (UIColor *)brandBackgroundSecondary {
return self.pageStyle == 1 ? [customColor colorWithAlphaComponent:0.9] : %orig;
}
- (UIColor *)raisedBackground {
return self.pageStyle == 1 ? customColor : %orig;
}
- (UIColor *)staticBrandBlack {
return self.pageStyle == 1 ? customColor : %orig;
}
- (UIColor *)generalBackgroundA {
return self.pageStyle == 1 ? customColor : %orig;
}
- (UIColor *)generalBackgroundB {
return self.pageStyle == 1 ? customColor : %orig;
}
- (UIColor *)baseBackground {
return self.pageStyle == 1 ? customColor : %orig;
}
- (UIColor *)menuBackground {
return self.pageStyle == 1 ? customColor : %orig;
}
%end
%hook SponsorBlockSettingsController
- (void)viewDidLoad {
if (self.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {
%orig;
self.tableView.backgroundColor = customColor;
} else { return %orig; }
}
%end
%hook SponsorBlockViewController
- (void)viewDidLoad {
if (self.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {
%orig;
self.view.backgroundColor = customColor;
} else { return %orig; }
}
%end
%hook YTAsyncCollectionView
- (void)setBackgroundColor:(UIColor *)color {
if ([self.nextResponder isKindOfClass:NSClassFromString(@"YTRelatedVideosCollectionViewController")]) {
color = [UIColor clearColor];
} else if ([self.nextResponder isKindOfClass:NSClassFromString(@"YTFullscreenMetadataHighlightsCollectionViewController")]) {
color = [UIColor clearColor];
} else {
return isDarkMode() ? %orig(customColor) : %orig;
}
%orig;
}
- (UIColor *)darkBackgroundColor {
return isDarkMode() ? customColor : %orig;
}
- (void)setDarkBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
- (void)layoutSubviews {
%orig();
if ([self.nextResponder isKindOfClass:NSClassFromString(@"YTWatchNextResultsViewController")]) {
if (isDarkMode()) {
self.subviews[0].subviews[0].backgroundColor = customColor;
}
}
}
%end
// Hide separators
%hook YTCollectionSeparatorView
- (void)setHidden:(BOOL)arg1 {
%orig(YES);
}
%end
%hook ASScrollView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTPivotBarView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTHeaderView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTSubheaderContainerView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTAppView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTCollectionView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTChannelListSubMenuView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTSettingsCell
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTSlideForActionsView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTPageView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTWatchView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTPlaylistMiniBarView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTEngagementPanelView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTEngagementPanelHeaderView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTPlaylistPanelControlsView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTHorizontalCardListView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTWatchMiniBarView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTCreateCommentAccessoryView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTCreateCommentTextView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTSearchView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTSearchBoxView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTTabTitlesView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTPrivacyTosFooterView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTOfflineStorageUsageView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTInlineSignInView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTFeedChannelFilterHeaderView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YCHLiveChatView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YCHLiveChatActionPanelView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTEmojiTextView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTTopAlignedView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
- (void)layoutSubviews {
%orig();
if (isDarkMode()) {
MSHookIvar<YTTopAlignedView *>(self, "_contentView").backgroundColor = customColor;
}
}
%end
%hook GOODialogView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTNavigationBar
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
- (void)setBarTintColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTChannelMobileHeaderView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTChannelSubMenuView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTWrapperSplitView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTReelShelfCell
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTReelShelfItemView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTReelShelfView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTCommentView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTChannelListSubMenuAvatarView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTSearchBarView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTDialogContainerScrollView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTShareTitleView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTShareBusyView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTELMView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTActionSheetHeaderView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTShareMainView
- (void)layoutSubviews {
%orig();
if (isDarkMode()) {
MSHookIvar<YTQTMButton *>(self, "_cancelButton").backgroundColor = customColor;
MSHookIvar<UIControl *>(self, "_safeArea").backgroundColor = customColor;
}
}
%end
%hook _ASDisplayView
- (void)layoutSubviews {
%orig;
if (isDarkMode()) {
UIResponder *responder = [self nextResponder];
while (responder != nil) {
if ([responder isKindOfClass:NSClassFromString(@"YTActionSheetDialogViewController")]) {
self.backgroundColor = customColor;
}
if ([responder isKindOfClass:NSClassFromString(@"YTPanelLoadingStrategyViewController")]) {
self.backgroundColor = customColor;
}
if ([responder isKindOfClass:NSClassFromString(@"YTTabHeaderElementsViewController")]) {
self.backgroundColor = customColor;
}
if ([responder isKindOfClass:NSClassFromString(@"YTEditSheetControllerElementsContentViewController")]) {
self.backgroundColor = customColor;
}
responder = [responder nextResponder];
}
}
}
- (void)didMoveToWindow {
%orig;
if (isDarkMode()) {
if ([self.nextResponder isKindOfClass:%c(ASScrollView)]) { self.backgroundColor = [UIColor clearColor]; }
if ([self.accessibilityIdentifier isEqualToString:@"eml.cvr"]) { self.backgroundColor = customColor; }
if ([self.accessibilityIdentifier isEqualToString:@"rich_header"]) { self.backgroundColor = customColor; }
if ([self.accessibilityIdentifier isEqualToString:@"id.ui.comment_cell"]) { self.backgroundColor = customColor; }
if ([self.accessibilityIdentifier isEqualToString:@"id.ui.cancel.button"]) { self.superview.backgroundColor = [UIColor clearColor]; }
if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.comment_composer"]) { self.backgroundColor = customColor; }
if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.filter_chip_bar"]) { self.backgroundColor = customColor; }
if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.video_list_entry"]) { self.backgroundColor = customColor; }
if ([self.accessibilityIdentifier isEqualToString:@"id.comment.guidelines_text"]) { self.superview.backgroundColor = customColor; }
if ([self.accessibilityIdentifier isEqualToString:@"id.comment.channel_guidelines_bottom_sheet_container"]) { self.backgroundColor = customColor; }
if ([self.accessibilityIdentifier isEqualToString:@"id.comment.channel_guidelines_entry_banner_container"]) { self.backgroundColor = customColor; }
if ([self.accessibilityIdentifier isEqualToString:@"id.comment.comment_group_detail_container"]) { self.backgroundColor = [UIColor clearColor]; }
}
}
%end
%hook YTCinematicContainerView
- (void)setHidden:(BOOL)arg1 {
%orig(YES);
}
%end
%end
// OLED dark mode by @BandarHL and modified by @arichorn
/*
%group gOLED
%hook YTCommonColorPalette
- (UIColor *)background1 {
return self.pageStyle == 1 ? [UIColor blackColor] : %orig;
}
- (UIColor *)background2 {
return self.pageStyle == 1 ? [UIColor blackColor] : %orig;
}
- (UIColor *)background3 {
return self.pageStyle == 1 ? [UIColor blackColor] : %orig;
}
- (UIColor *)brandBackgroundSolid {
return self.pageStyle == 1 ? [UIColor blackColor] : %orig;
}
- (UIColor *)brandBackgroundPrimary {
return self.pageStyle == 1 ? [UIColor blackColor] : %orig;
}
- (UIColor *)brandBackgroundSecondary {
return self.pageStyle == 1 ? [[UIColor blackColor] colorWithAlphaComponent:0.9] : %orig;
}
- (UIColor *)raisedBackground {
return self.pageStyle == 1 ? [UIColor blackColor] : %orig;
}
- (UIColor *)staticBrandBlack {
return self.pageStyle == 1 ? [UIColor blackColor] : %orig;
}
- (UIColor *)generalBackgroundA {
return self.pageStyle == 1 ? [UIColor blackColor] : %orig;
}
- (UIColor *)generalBackgroundB {
return self.pageStyle == 1 ? [UIColor blackColor] : %orig;
}
- (UIColor *)baseBackground {
return self.pageStyle == 1 ? [UIColor blackColor] : %orig;
}
- (UIColor *)menuBackground {
return self.pageStyle == 1 ? [UIColor blackColor] : %orig;
}
%end
%hook SponsorBlockSettingsController
- (void)viewDidLoad {
if (self.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {
%orig;
self.tableView.backgroundColor = [UIColor blackColor];
} else { return %orig; }
}
%end
%hook SponsorBlockViewController
- (void)viewDidLoad {
if (self.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {
%orig;
self.view.backgroundColor = [UIColor blackColor];
} else { return %orig; }
}
%end
%hook YTAsyncCollectionView
- (void)setBackgroundColor:(UIColor *)color {
if ([self.nextResponder isKindOfClass:NSClassFromString(@"YTRelatedVideosCollectionViewController")]) {
color = [UIColor clearColor];
} else if ([self.nextResponder isKindOfClass:NSClassFromString(@"YTFullscreenMetadataHighlightsCollectionViewController")]) {
color = [UIColor clearColor];
} else {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%orig;
}
- (UIColor *)darkBackgroundColor {
return isDarkMode() ? [UIColor blackColor] : %orig;
}
- (void)setDarkBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
- (void)layoutSubviews {
%orig();
if ([self.nextResponder isKindOfClass:NSClassFromString(@"YTWatchNextResultsViewController")]) {
if (isDarkMode()) {
self.subviews[0].subviews[0].backgroundColor = [UIColor blackColor];
}
}
}
%end
// Hide separators
%hook YTCollectionSeparatorView
- (void)setHidden:(BOOL)arg1 {
%orig(YES);
}
%end
%hook YTPivotBarView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook ASScrollView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTHeaderView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTSubheaderContainerView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTAppView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTCollectionView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTChannelListSubMenuView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTSettingsCell
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTSlideForActionsView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTPageView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTWatchView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTPlaylistMiniBarView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTEngagementPanelView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTEngagementPanelHeaderView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTPlaylistPanelControlsView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTHorizontalCardListView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTWatchMiniBarView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTCreateCommentAccessoryView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTCreateCommentTextView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTSearchView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTSearchBoxView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTTabTitlesView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTPrivacyTosFooterView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTOfflineStorageUsageView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTInlineSignInView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTFeedChannelFilterHeaderView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YCHLiveChatView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YCHLiveChatActionPanelView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTEmojiTextView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTTopAlignedView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
- (void)layoutSubviews {
%orig();
if (isDarkMode()) {
MSHookIvar<YTTopAlignedView *>(self, "_contentView").backgroundColor = [UIColor blackColor];
}
}
%end
%hook GOODialogView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTNavigationBar
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
- (void)setBarTintColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTChannelMobileHeaderView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTChannelSubMenuView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTWrapperSplitView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTReelShelfCell
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTReelShelfItemView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTReelShelfView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTCommentView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTChannelListSubMenuAvatarView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTSearchBarView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTDialogContainerScrollView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTShareTitleView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTShareBusyView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTELMView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTActionSheetHeaderView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTShareMainView
- (void)layoutSubviews {
%orig();
if (isDarkMode()) {
MSHookIvar<YTQTMButton *>(self, "_cancelButton").backgroundColor = [UIColor blackColor];
MSHookIvar<UIControl *>(self, "_safeArea").backgroundColor = [UIColor blackColor];
}
}
%end
%hook _ASDisplayView
- (void)layoutSubviews {
%orig;
if (isDarkMode()) {
UIResponder *responder = [self nextResponder];
while (responder != nil) {
if ([responder isKindOfClass:NSClassFromString(@"YTActionSheetDialogViewController")]) {
self.backgroundColor = [UIColor blackColor];
}
if ([responder isKindOfClass:NSClassFromString(@"YTPanelLoadingStrategyViewController")]) {
self.backgroundColor = [UIColor blackColor];
}
if ([responder isKindOfClass:NSClassFromString(@"YTTabHeaderElementsViewController")]) {
self.backgroundColor = [UIColor blackColor];
}
if ([responder isKindOfClass:NSClassFromString(@"YTEditSheetControllerElementsContentViewController")]) {
self.backgroundColor = [UIColor blackColor];
}
responder = [responder nextResponder];
}
}
}
- (void)didMoveToWindow {
%orig;
if (isDarkMode()) {
if ([self.nextResponder isKindOfClass:%c(ASScrollView)]) { self.backgroundColor = [UIColor clearColor]; }
if ([self.accessibilityIdentifier isEqualToString:@"eml.cvr"]) { self.backgroundColor = [UIColor blackColor]; }
if ([self.accessibilityIdentifier isEqualToString:@"rich_header"]) { self.backgroundColor = [UIColor blackColor]; }
if ([self.accessibilityIdentifier isEqualToString:@"id.ui.comment_cell"]) { self.backgroundColor = [UIColor blackColor]; }
if ([self.accessibilityIdentifier isEqualToString:@"id.ui.cancel.button"]) { self.superview.backgroundColor = [UIColor clearColor]; }
if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.comment_composer"]) { self.backgroundColor = [UIColor blackColor]; }
if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.filter_chip_bar"]) { self.backgroundColor = [UIColor blackColor]; }
if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.video_list_entry"]) { self.backgroundColor = [UIColor blackColor]; }
if ([self.accessibilityIdentifier isEqualToString:@"id.comment.guidelines_text"]) { self.superview.backgroundColor = [UIColor blackColor]; }
if ([self.accessibilityIdentifier isEqualToString:@"id.comment.channel_guidelines_bottom_sheet_container"]) { self.backgroundColor = [UIColor blackColor]; }
if ([self.accessibilityIdentifier isEqualToString:@"id.comment.channel_guidelines_entry_banner_container"]) { self.backgroundColor = [UIColor blackColor]; }
if ([self.accessibilityIdentifier isEqualToString:@"id.comment.comment_group_detail_container"]) { self.backgroundColor = [UIColor clearColor]; }
}
}
%end
%hook YTCinematicContainerView
- (void)setHidden:(BOOL)arg1 {
%orig(YES);
}
%end
%end
*/
// OLED keyboard by @ichitaso <3 - http://gist.github.com/ichitaso/935100fd53a26f18a9060f7195a1be0e
%group gOLEDKB
%hook TUIEmojiSearchView
- (void)didMoveToWindow {
%orig;
self.backgroundColor = [UIColor blackColor];
}
%end
%hook UIPredictionViewController
- (void)loadView {
%orig;
[self.view setBackgroundColor:[UIColor blackColor]];
}
%end
%hook UICandidateViewController
- (void)loadView {
%orig;
[self.view setBackgroundColor:[UIColor blackColor]];
}
%end
%hook UIKeyboardDockView
- (void)didMoveToWindow {
%orig;
self.backgroundColor = [UIColor blackColor];
}
%end
%hook UIKeyboardLayoutStar
- (void)didMoveToWindow {
%orig;
self.backgroundColor = [UIColor blackColor];
}
%end
%hook UIKBRenderConfig // Prediction text color
- (void)setLightKeyboard:(BOOL)arg1 { %orig(NO); }
%end
%end
# pragma mark - ctor
%ctor {
%init;
if (IsEnabled(@"oledKeyBoard_enabled")) {
%init(gOLEDKB);
}
if (oldDarkTheme()) {
%init(gOldDarkTheme);
}
}