Compare commits
14
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5b70271968 | ||
|
|
968dc841ee | ||
|
|
ada2c00338 | ||
|
|
0e2ec9a52e | ||
|
|
274abee25d | ||
|
|
5b920d7353 | ||
|
|
34e34a4fef | ||
|
|
3e4264e3c7 | ||
|
|
e3d779cbf2 | ||
|
|
314efca54b | ||
|
|
feaeb234cc | ||
|
|
4502236d64 | ||
|
|
3154b51cf6 | ||
|
|
4f99b08a63 |
@@ -2,5 +2,6 @@
|
|||||||
.DS_Store
|
.DS_Store
|
||||||
packages
|
packages
|
||||||
obj
|
obj
|
||||||
|
tmp
|
||||||
Tweaks/uYou/*
|
Tweaks/uYou/*
|
||||||
!Tweaks/uYou/.gitkeep
|
!Tweaks/uYou/.gitkeep
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
#import "Tweaks/YouTubeHeader/YTPlayerViewController.h"
|
#import "Tweaks/YouTubeHeader/YTPlayerViewController.h"
|
||||||
|
|
||||||
@interface YTMainAppVideoPlayerOverlayView : UIView
|
@interface YTMainAppVideoPlayerOverlayView : UIView
|
||||||
-(UIViewController *)_viewControllerForAncestor;
|
- (UIViewController *)_viewControllerForAncestor;
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@interface YTWatchMiniBarView : UIView
|
@interface YTWatchMiniBarView : UIView
|
||||||
@@ -20,14 +20,26 @@
|
|||||||
@interface YTLightweightQTMButton : UIView
|
@interface YTLightweightQTMButton : UIView
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@interface YTELMView : UIView
|
|
||||||
@end
|
|
||||||
|
|
||||||
@interface NIAttributedLabel : UIView
|
@interface NIAttributedLabel : UIView
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@interface YTShareMainView : UIView
|
@interface YTShareMainView : UIView
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@interface UICollectionViewControllerWrapperView : UIView
|
@interface ASScrollView : UIView
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface ASCollectionView : UIView
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface UIKeyboardLayoutStar : UIView
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface UIKeyboardDockView : UIView
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface UICandidateViewController : UIViewController
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface UIPredictionViewController : UIViewController
|
||||||
@end
|
@end
|
||||||
@@ -21,12 +21,14 @@
|
|||||||
|
|
||||||
- [HASHBANG Productions](https://github.com/hbang) for [Alderis Color Picker](https://github.com/hbang/Alderis) - a dependency of iSponsorBlock.
|
- [HASHBANG Productions](https://github.com/hbang) for [Alderis Color Picker](https://github.com/hbang/Alderis) - a dependency of iSponsorBlock.
|
||||||
|
|
||||||
- [PoomSmart](https://twitter.com/poomsmart) - the developer of many tweaks used by uYouPlus, include: [YouRememberCaption](https://www.ios-repo-updates.com/repository/poomsmart/package/com.ps.youremembercaption/), [YTClassicVideoQuality](https://poomsmart.github.io/repo/depictions/ytclassicvideoquality.html), [YTNoCheckLocalNetwork](https://poomsmart.github.io/repo/depictions/ytnochecklocalnetwork.html), [YTSystemAppearance](https://poomsmart.github.io/repo/depictions/ytsystemappearance.html), [YTAutoFullScreen](https://github.com/PoomSmart/YTAutoFullScreen/), [YTReExplore](https://github.com/PoomSmart/YTReExplore/), [YTUHD](https://poomsmart.github.io/repo/depictions/ytuhd.html), [YouPiP](https://poomsmart.github.io/repo/depictions/youpip.html), and [Return YouTube Dislike](https://github.com/PoomSmart/Return-YouTube-Dislikes)
|
- [PoomSmart](https://twitter.com/poomsmart) - the developer of many tweaks used by uYouPlus, include: [NoYTPremium](https://github.com/PoomSmart/NoYTPremium/), [YouRememberCaption](https://www.ios-repo-updates.com/repository/poomsmart/package/com.ps.youremembercaption/), [YTClassicVideoQuality](https://poomsmart.github.io/repo/depictions/ytclassicvideoquality.html), [YTNoCheckLocalNetwork](https://poomsmart.github.io/repo/depictions/ytnochecklocalnetwork.html), [YTSystemAppearance](https://poomsmart.github.io/repo/depictions/ytsystemappearance.html), [YTAutoFullScreen](https://github.com/PoomSmart/YTAutoFullScreen/), [YTReExplore](https://github.com/PoomSmart/YTReExplore/), [YTUHD](https://poomsmart.github.io/repo/depictions/ytuhd.html), [YouPiP](https://poomsmart.github.io/repo/depictions/youpip.html), and [Return YouTube Dislike](https://github.com/PoomSmart/Return-YouTube-Dislikes)
|
||||||
|
|
||||||
- [level3tjg](https://twitter.com/level3tjg) - for [YTNoHoverCards](https://github.com/level3tjg/YTNoHoverCards).
|
- [level3tjg](https://twitter.com/level3tjg) - for [YTNoHoverCards](https://github.com/level3tjg/YTNoHoverCards).
|
||||||
|
|
||||||
- [Lyvendia](https://github.com/Lyvendia/) for [YTSpeed](https://github.com/Lyvendia/YTSpeed/)
|
- [Lyvendia](https://github.com/Lyvendia/) for [YTSpeed](https://github.com/Lyvendia/YTSpeed/)
|
||||||
|
|
||||||
|
- [YouTube Extensions](https://github.com/CokePokes/YoutubeExtensions) by [CokePokes](https://github.com/CokePokes/).
|
||||||
|
|
||||||
- [Al4ise](https://github.com/Al4ise) for [Azule](https://github.com/Al4ise/Azule), a tool used to inject jailbreak tweaks into jailed iOS apps.
|
- [Al4ise](https://github.com/Al4ise) for [Azule](https://github.com/Al4ise/Azule), a tool used to inject jailbreak tweaks into jailed iOS apps.
|
||||||
|
|
||||||
- [theos team](https://github.com/theos/theos) for theos & theos-jailed.
|
- [theos team](https://github.com/theos/theos) for theos & theos-jailed.
|
||||||
@@ -57,7 +59,9 @@
|
|||||||
|
|
||||||
10. **YouRememberCaption**: make YouTube remember your video caption setting (if not already).
|
10. **YouRememberCaption**: make YouTube remember your video caption setting (if not already).
|
||||||
|
|
||||||
11. **YTSpeed**: add 2.25, 2.5, 2.75, and 3x playback speed
|
11. **NoYTPremium**: remove YouTube Premium upshells.
|
||||||
|
|
||||||
|
12. **YTSpeed**: add 2.25, 2.5, 2.75, and 3x playback speed
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
@@ -76,27 +80,29 @@
|
|||||||
|
|
||||||
- My official AtlStore repo: https://qnblackcat.github.io/AltStore/
|
- My official AtlStore repo: https://qnblackcat.github.io/AltStore/
|
||||||
|
|
||||||
- [Open in AltStore (v17.16.4-2.1)](https://tinyurl.com/2p8t49r2) - It will take a while to install because AltStore needs to download the IPA.
|
- [Open in AltStore (v17.18.4-2.1)](https://tinyurl.com/bdzxtdrx) - It will take a while to install because AltStore needs to download the IPA.
|
||||||
|
|
||||||
- Version info: _(last update: Apr 25)_
|
- Version info: _(last update: May 09)_
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary> Expand</summary>
|
<summary> ▶︎ Expand</summary>
|
||||||
|
|
||||||
| **Tweaks/App** | **Version** | **Open source** |
|
| **Tweaks/App** | **Version** | **Open source** |
|
||||||
| :------------: | :----------:| :-------------: |
|
| :------------: | :----------:| :-------------: |
|
||||||
| **YouTube** | 17.16.4 | ✖︎ |
|
| **YouTube** | 17.18.4 | ✖︎ |
|
||||||
| **uYou** | 2.1 | ✖︎ |
|
| [uYou](https://github.com/MiRO92/uYou-for-YouTube) | 2.1 | ✖︎ |
|
||||||
|
| [Open in YouTube](https://github.com/CokePokes/YoutubeExtensions/) | 1.2 | ✖︎ |
|
||||||
| **Return YouTube Dislike** | 1.6.4 | [✔︎](https://github.com/PoomSmart/Return-YouTube-Dislikes) |
|
| **Return YouTube Dislike** | 1.6.4 | [✔︎](https://github.com/PoomSmart/Return-YouTube-Dislikes) |
|
||||||
| **iSponsorBlock** | 1.0-14 | [✔︎](https://github.com/Galactic-Dev/iSponsorBlock) |
|
| **iSponsorBlock** | 1.0-14 | [✔︎](https://github.com/Galactic-Dev/iSponsorBlock) |
|
||||||
| **Alderis Color Picker** | 1.1.2| [✔︎](https://github.com/hbang/Alderis) |
|
| **Alderis Color Picker** | 1.1.2| [✔︎](https://github.com/hbang/Alderis) |
|
||||||
|
| **NoYTPremium** | 1.0.4 | [✔︎](https://github.com/PoomSmart/NoYTPremium/) |
|
||||||
| **YouRememberCaption** | 1.0.0 | [✔︎](https://poomsmart.github.io/repo/depictions/youremembercaption.html) |
|
| **YouRememberCaption** | 1.0.0 | [✔︎](https://poomsmart.github.io/repo/depictions/youremembercaption.html) |
|
||||||
| **YTClassicVideoQuality** | 1.0.1 | [✔︎](https://github.com/PoomSmart/YTClassicVideoQuality) |
|
| **YTClassicVideoQuality** | 1.0.1 | [✔︎](https://github.com/PoomSmart/YTClassicVideoQuality) |
|
||||||
| **YTNoCheckLocalNetwork** | 1.0.2 | [✔︎](https://poomsmart.github.io/repo/depictions/ytnochecklocalnetwork.html) |
|
| **YTNoCheckLocalNetwork** | 1.0.2 | [✔︎](https://poomsmart.github.io/repo/depictions/ytnochecklocalnetwork.html) |
|
||||||
| **YTNoHoverCards** | 0.0.3 | [✔︎](https://github.com/level3tjg/YTNoHoverCards) |
|
| **YTNoHoverCards** | 0.0.3 | [✔︎](https://github.com/level3tjg/YTNoHoverCards) |
|
||||||
| **YTSystemAppearance** | 1.0.0 | [✔︎](https://poomsmart.github.io/repo/depictions/ytsystemappearance.html) |
|
| **YTSystemAppearance** | 1.0.0 | [✔︎](https://poomsmart.github.io/repo/depictions/ytsystemappearance.html) |
|
||||||
| **YTUHD** | 1.2.7 | [✔︎](https://github.com/PoomSmart/YTUHD) |
|
| **YTUHD** | 1.2.7 | [✔︎](https://github.com/PoomSmart/YTUHD) |
|
||||||
| **YouPiP** | 1.6.11 | [✔︎](https://github.com/PoomSmart/YouPiP) |
|
| **YouPiP** | 1.7.0 | [✔︎](https://github.com/PoomSmart/YouPiP) |
|
||||||
| **YTSpeed** | 1.0.1 | [✔︎](https://github.com/Lyvendia/YTSpeed) |
|
| **YTSpeed** | 1.0.1 | [✔︎](https://github.com/Lyvendia/YTSpeed) |
|
||||||
| **YTAutoFullScreen** | 1.0.3 | [✔︎](https://github.com/PoomSmart/YTAutoFullScreen/) |
|
| **YTAutoFullScreen** | 1.0.3 | [✔︎](https://github.com/PoomSmart/YTAutoFullScreen/) |
|
||||||
| **YTReExplore** | 1.0.2 | [✔︎](https://github.com/PoomSmart/YTReExplore) |
|
| **YTReExplore** | 1.0.2 | [✔︎](https://github.com/PoomSmart/YTReExplore) |
|
||||||
|
|||||||
+126
-101
@@ -1,7 +1,16 @@
|
|||||||
|
#import "Tweaks/YouTubeHeader/YTSettingsViewController.h"
|
||||||
#import "Tweaks/YouTubeHeader/YTSettingsSectionItem.h"
|
#import "Tweaks/YouTubeHeader/YTSettingsSectionItem.h"
|
||||||
|
#import "Tweaks/YouTubeHeader/YTSettingsSectionItemManager.h"
|
||||||
|
|
||||||
|
@interface YTSettingsSectionItemManager (YouPiP)
|
||||||
|
- (void)updateuYouPlusSectionWithEntry:(id)entry;
|
||||||
|
@end
|
||||||
|
|
||||||
|
static const NSInteger uYouPlusSection = 500;
|
||||||
|
|
||||||
extern BOOL hideHUD();
|
extern BOOL hideHUD();
|
||||||
extern BOOL oled();
|
extern BOOL oled();
|
||||||
|
extern BOOL oledKB();
|
||||||
extern BOOL autoFullScreen();
|
extern BOOL autoFullScreen();
|
||||||
extern BOOL noHoverCard();
|
extern BOOL noHoverCard();
|
||||||
extern BOOL ReExplore();
|
extern BOOL ReExplore();
|
||||||
@@ -11,105 +20,121 @@ extern BOOL hideAutoplaySwitch();
|
|||||||
extern BOOL castConfirm();
|
extern BOOL castConfirm();
|
||||||
|
|
||||||
// Settings
|
// Settings
|
||||||
%hook YTSettingsViewController
|
%hook YTAppSettingsPresentationData
|
||||||
- (void)setSectionItems:(NSMutableArray <YTSettingsSectionItem *>*)sectionItems forCategory:(NSInteger)category title:(NSString *)title titleDescription:(NSString *)titleDescription headerHidden:(BOOL)headerHidden {
|
+ (NSArray *)settingsCategoryOrder {
|
||||||
if (category == 1) {
|
NSArray *order = %orig;
|
||||||
NSUInteger statsForNerdsIndex = [sectionItems indexOfObjectPassingTest:^BOOL (YTSettingsSectionItem *item, NSUInteger idx, BOOL *stop) {
|
NSMutableArray *mutableOrder = [order mutableCopy];
|
||||||
return item.settingItemId == 265;
|
NSUInteger insertIndex = [order indexOfObject:@(1)];
|
||||||
}];
|
if (insertIndex != NSNotFound)
|
||||||
if (statsForNerdsIndex != NSNotFound) {
|
[mutableOrder insertObject:@(uYouPlusSection) atIndex:insertIndex + 1];
|
||||||
//
|
return mutableOrder;
|
||||||
YTSettingsSectionItem *castConfirm = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"Confirm alert before casting (YTCastConfirm)" titleDescription:@"Show a confirm alert before casting to prevent accidentally hijacking TV."];
|
}
|
||||||
castConfirm.hasSwitch = YES;
|
|
||||||
castConfirm.switchVisible = YES;
|
%end
|
||||||
castConfirm.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"castConfirm_enabled"];
|
|
||||||
castConfirm.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
%hook YTSettingsSectionItemManager
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"castConfirm_enabled"];
|
%new - (void)updateuYouPlusSectionWithEntry:(id)entry {
|
||||||
return YES;
|
YTSettingsViewController *delegate = [self valueForKey:@"_dataDelegate"];
|
||||||
};
|
|
||||||
[sectionItems insertObject:castConfirm atIndex:statsForNerdsIndex + 1];
|
YTSettingsSectionItem *castConfirm = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"Confirm alert before casting (YTCastConfirm)" titleDescription:@"Show a confirm alert before casting to prevent accidentally hijacking TV."];
|
||||||
//
|
castConfirm.hasSwitch = YES;
|
||||||
YTSettingsSectionItem *hoverCardItem = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"Show End screens hover cards (YTNoHoverCards)" titleDescription:@"Allows creator End screens (thumbnails) to appear at the end of videos."];
|
castConfirm.switchVisible = YES;
|
||||||
hoverCardItem.hasSwitch = YES;
|
castConfirm.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"castConfirm_enabled"];
|
||||||
hoverCardItem.switchVisible = YES;
|
castConfirm.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
||||||
hoverCardItem.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"hover_cards_enabled"];
|
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"castConfirm_enabled"];
|
||||||
hoverCardItem.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
return YES;
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"hover_cards_enabled"];
|
};
|
||||||
return YES;
|
|
||||||
};
|
YTSettingsSectionItem *hoverCardItem = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"Hide End screens hover cards (YTNoHoverCards)" titleDescription:@"Hide creator End screens (thumbnails) at the end of videos."];
|
||||||
[sectionItems insertObject:hoverCardItem atIndex:statsForNerdsIndex + 1];
|
hoverCardItem.hasSwitch = YES;
|
||||||
//
|
hoverCardItem.switchVisible = YES;
|
||||||
YTSettingsSectionItem *bigYTMiniPlayer = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"New miniplayer bar style (BigYTMiniPlayer)" titleDescription:@"App restart is required."];
|
hoverCardItem.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"hover_cards_enabled"];
|
||||||
bigYTMiniPlayer.hasSwitch = YES;
|
hoverCardItem.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
||||||
bigYTMiniPlayer.switchVisible = YES;
|
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"hover_cards_enabled"];
|
||||||
bigYTMiniPlayer.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"bigYTMiniPlayer_enabled"];
|
return YES;
|
||||||
bigYTMiniPlayer.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
};
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"bigYTMiniPlayer_enabled"];
|
|
||||||
return YES;
|
YTSettingsSectionItem *bigYTMiniPlayer = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"New miniplayer bar style (BigYTMiniPlayer)" titleDescription:@"App restart is required."];
|
||||||
};
|
bigYTMiniPlayer.hasSwitch = YES;
|
||||||
[sectionItems insertObject:bigYTMiniPlayer atIndex:statsForNerdsIndex + 2];
|
bigYTMiniPlayer.switchVisible = YES;
|
||||||
//
|
bigYTMiniPlayer.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"bigYTMiniPlayer_enabled"];
|
||||||
YTSettingsSectionItem *reExplore = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"Replace Shorts tab with Explore tab (YTReExplore)" titleDescription:@"App restart is required."];
|
bigYTMiniPlayer.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
||||||
reExplore.hasSwitch = YES;
|
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"bigYTMiniPlayer_enabled"];
|
||||||
reExplore.switchVisible = YES;
|
return YES;
|
||||||
reExplore.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"reExplore_enabled"];
|
};
|
||||||
reExplore.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"reExplore_enabled"];
|
YTSettingsSectionItem *reExplore = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"Replace Shorts tab with Explore tab (YTReExplore)" titleDescription:@"App restart is required."];
|
||||||
return YES;
|
reExplore.hasSwitch = YES;
|
||||||
};
|
reExplore.switchVisible = YES;
|
||||||
[sectionItems insertObject:reExplore atIndex:statsForNerdsIndex + 2];
|
reExplore.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"reExplore_enabled"];
|
||||||
//
|
reExplore.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
||||||
YTSettingsSectionItem *hideCC = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"Hide Subtitles button" titleDescription:@"Hide the Subtitles button in video controls overlay. "];
|
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"reExplore_enabled"];
|
||||||
hideCC.hasSwitch = YES;
|
return YES;
|
||||||
hideCC.switchVisible = YES;
|
};
|
||||||
hideCC.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"hideCC_enabled"];
|
|
||||||
hideCC.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
YTSettingsSectionItem *hideCC = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"Hide Subtitles button" titleDescription:@"Hide the Subtitles button in video controls overlay. "];
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"hideCC_enabled"];
|
hideCC.hasSwitch = YES;
|
||||||
return YES;
|
hideCC.switchVisible = YES;
|
||||||
};
|
hideCC.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"hideCC_enabled"];
|
||||||
[sectionItems insertObject:hideCC atIndex:statsForNerdsIndex + 1];
|
hideCC.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
||||||
//
|
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"hideCC_enabled"];
|
||||||
YTSettingsSectionItem *hideAutoplaySwitch = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"Hide Autoplay switch" titleDescription:@"Hide the Autoplay switch button in video controls overlay."];
|
return YES;
|
||||||
hideAutoplaySwitch.hasSwitch = YES;
|
};
|
||||||
hideAutoplaySwitch.switchVisible = YES;
|
|
||||||
hideAutoplaySwitch.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"hideAutoplaySwitch_enabled"];
|
YTSettingsSectionItem *hideAutoplaySwitch = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"Hide Autoplay switch" titleDescription:@"Hide the Autoplay switch button in video controls overlay."];
|
||||||
hideAutoplaySwitch.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
hideAutoplaySwitch.hasSwitch = YES;
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"hideAutoplaySwitch_enabled"];
|
hideAutoplaySwitch.switchVisible = YES;
|
||||||
return YES;
|
hideAutoplaySwitch.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"hideAutoplaySwitch_enabled"];
|
||||||
};
|
hideAutoplaySwitch.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
||||||
[sectionItems insertObject:hideAutoplaySwitch atIndex:statsForNerdsIndex + 1];
|
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"hideAutoplaySwitch_enabled"];
|
||||||
//
|
return YES;
|
||||||
YTSettingsSectionItem *autoFUll = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"Auto Full Screen (YTAutoFullScreen)" titleDescription:@"Autoplay videos at full screen."];
|
};
|
||||||
autoFUll.hasSwitch = YES;
|
|
||||||
autoFUll.switchVisible = YES;
|
YTSettingsSectionItem *autoFull = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"Auto Full Screen (YTAutoFullScreen)" titleDescription:@"Autoplay videos at full screen."];
|
||||||
autoFUll.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"autofull_enabled"];
|
autoFull.hasSwitch = YES;
|
||||||
autoFUll.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
autoFull.switchVisible = YES;
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"autofull_enabled"];
|
autoFull.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"autofull_enabled"];
|
||||||
return YES;
|
autoFull.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
||||||
};
|
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"autofull_enabled"];
|
||||||
[sectionItems insertObject:autoFUll atIndex:statsForNerdsIndex + 3];
|
return YES;
|
||||||
//
|
};
|
||||||
YTSettingsSectionItem *hideHUD = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"Hide HUD Messages" titleDescription:@"Example: CC is turned on/off, Video loop is on,..."];
|
|
||||||
hideHUD.hasSwitch = YES;
|
YTSettingsSectionItem *hideHUD = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"Hide HUD Messages" titleDescription:@"Example: CC is turned on/off, Video loop is on,..."];
|
||||||
hideHUD.switchVisible = YES;
|
hideHUD.hasSwitch = YES;
|
||||||
hideHUD.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"hideHUD_enabled"];
|
hideHUD.switchVisible = YES;
|
||||||
hideHUD.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
hideHUD.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"hideHUD_enabled"];
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"hideHUD_enabled"];
|
hideHUD.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
||||||
return YES;
|
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"hideHUD_enabled"];
|
||||||
};
|
return YES;
|
||||||
[sectionItems insertObject:hideHUD atIndex:statsForNerdsIndex + 1];
|
};
|
||||||
//
|
|
||||||
YTSettingsSectionItem *Oleditem = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"OLED Dark mode (Experimental)" titleDescription:@"WARNING: OLED Dark mode only works when YouTube is in Dark theme. App restart is required (In case OLED dark mode doesn't work: just switch between Light/Dark theme, then restart the app)."];
|
YTSettingsSectionItem *oledDarkMode = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"OLED Dark mode (Experimental)" titleDescription:@"WARNING: OLED Dark mode only works when YouTube is in Dark theme. App restart is required (In case OLED dark mode doesn't work: just switch between Light/Dark theme, then restart the app)."];
|
||||||
Oleditem.hasSwitch = YES;
|
oledDarkMode.hasSwitch = YES;
|
||||||
Oleditem.switchVisible = YES;
|
oledDarkMode.switchVisible = YES;
|
||||||
Oleditem.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"oled_enabled"];
|
oledDarkMode.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"oled_enabled"];
|
||||||
Oleditem.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
oledDarkMode.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"oled_enabled"];
|
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"oled_enabled"];
|
||||||
return YES;
|
return YES;
|
||||||
};
|
};
|
||||||
[sectionItems insertObject:Oleditem atIndex:statsForNerdsIndex + 1];
|
|
||||||
}
|
YTSettingsSectionItem *oledKeyBoard = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"OLED Keyboard" titleDescription:@"Might not working properly in some cases . App restart is required."];
|
||||||
}
|
oledKeyBoard.hasSwitch = YES;
|
||||||
%orig;
|
oledKeyBoard.switchVisible = YES;
|
||||||
}
|
oledKeyBoard.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"oledKeyBoard_enabled"];
|
||||||
|
oledKeyBoard.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) {
|
||||||
|
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"oledKeyBoard_enabled"];
|
||||||
|
return YES;
|
||||||
|
};
|
||||||
|
|
||||||
|
NSMutableArray <YTSettingsSectionItem *> *sectionItems = [NSMutableArray arrayWithArray:@[autoFull, castConfirm, hideAutoplaySwitch, hideCC, hideHUD, hoverCardItem, bigYTMiniPlayer, oledKeyBoard, oledDarkMode,reExplore]];
|
||||||
|
[delegate setSectionItems:sectionItems forCategory:uYouPlusSection title:@"uYouPlus" titleDescription:nil headerHidden:NO];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)updateSectionForCategory:(NSUInteger)category withEntry:(id)entry {
|
||||||
|
if (category == uYouPlusSection) {
|
||||||
|
[self updateuYouPlusSectionWithEntry:entry];
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
%orig;
|
||||||
|
}
|
||||||
%end
|
%end
|
||||||
+1
-1
Submodule Tweaks/PSHeader updated: c9355cb136...b83b5daf1c
+1
-1
Submodule Tweaks/YouPiP updated: 7a0a820109...e566dfa92b
+1
-1
Submodule Tweaks/YouTubeHeader updated: 71372d2c48...59b5288d15
+12
-8
@@ -4,26 +4,30 @@
|
|||||||
cd "$(dirname "$0")"
|
cd "$(dirname "$0")"
|
||||||
|
|
||||||
# Check uYou
|
# Check uYou
|
||||||
if [[ ! -f Tweaks/uYou/com.miro.uyou_2.1_iphoneos-arm.deb ]]
|
if [ ! -f Tweaks/uYou/com.miro.uyou_2.1_iphoneos-arm.deb ]
|
||||||
then
|
then
|
||||||
echo -e "==> \033[1muYou v2.1 is not found. Downloading uYou (v2.1)...\033[0m"
|
echo -e "==> \033[1muYou v2.1 is not found. Downloading uYou (v2.1)...\033[0m"
|
||||||
(set -x ; curl https://miro92.com/repo/debs/com.miro.uyou_2.1_iphoneos-arm.deb --output Tweaks/uYou/com.miro.uyou_2.1_iphoneos-arm.deb)
|
(set -x ; curl https://miro92.com/repo/debs/com.miro.uyou_2.1_iphoneos-arm.deb --output Tweaks/uYou/com.miro.uyou_2.1_iphoneos-arm.deb)
|
||||||
else
|
else
|
||||||
echo -e "==> \033[1mFounded uYou (v2.1)!\033[0m"
|
echo -e "==> \033[1mFounded uYou (v2.1)!\033[0m"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Extract uYou
|
# Extract uYou
|
||||||
echo -e "==> \033[1mExtracting uYou...\033[0m"
|
echo -e "==> \033[1mExtracting uYou...\033[0m"
|
||||||
if (cd Tweaks/uYou && tar -xf com.miro.uyou_2.1_iphoneos-arm.deb && tar -xf data.tar.*)
|
if (cd Tweaks/uYou && tar -xf com.miro.uyou_2.1_iphoneos-arm.deb && tar -xf data.tar.*)
|
||||||
then
|
then
|
||||||
echo -e "\033[1m> Extracted uYou!\033[0m"
|
echo -e "\033[1m> Extracted uYou!\033[0m"
|
||||||
else
|
else
|
||||||
echo "> \033[1mCouldn't extract uYou\033[0m"
|
echo "> \033[1mCouldn't extract uYou\033[0m"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Makefile
|
# Makefile
|
||||||
|
if [ -d ./tmp ]
|
||||||
|
then
|
||||||
|
rm -rf ./tmp
|
||||||
|
fi
|
||||||
read -e -p "==> Path to the decrypted YouTube.ipa or YouTube.app: " PATHTOYT
|
read -e -p "==> Path to the decrypted YouTube.ipa or YouTube.app: " PATHTOYT
|
||||||
if [[ $PATHTOYT == *.ipa ]]
|
if [[ $PATHTOYT == *.ipa ]]
|
||||||
then
|
then
|
||||||
unzip -q "$PATHTOYT" -d ./tmp
|
unzip -q "$PATHTOYT" -d ./tmp
|
||||||
rm -rf ./tmp/Payload/YouTube.app/PlugIns/*.appex
|
rm -rf ./tmp/Payload/YouTube.app/PlugIns/*.appex
|
||||||
@@ -31,7 +35,7 @@ then
|
|||||||
make package
|
make package
|
||||||
open ./packages
|
open ./packages
|
||||||
|
|
||||||
elif [[ $PATHTOYT == *.app ]]
|
elif [[ $PATHTOYT == *.app ]]
|
||||||
then
|
then
|
||||||
mkdir -p ./tmp/Payload/
|
mkdir -p ./tmp/Payload/
|
||||||
cp -R "$PATHTOYT" ./tmp/Payload 2>/dev/null
|
cp -R "$PATHTOYT" ./tmp/Payload 2>/dev/null
|
||||||
|
|||||||
+293
-327
@@ -11,7 +11,6 @@
|
|||||||
#import "Tweaks/YouTubeHeader/YTIPivotBarSupportedRenderers.h"
|
#import "Tweaks/YouTubeHeader/YTIPivotBarSupportedRenderers.h"
|
||||||
#import "Tweaks/YouTubeHeader/YTIPivotBarRenderer.h"
|
#import "Tweaks/YouTubeHeader/YTIPivotBarRenderer.h"
|
||||||
#import "Tweaks/YouTubeHeader/YTIBrowseRequest.h"
|
#import "Tweaks/YouTubeHeader/YTIBrowseRequest.h"
|
||||||
#include <RemoteLog.h>
|
|
||||||
|
|
||||||
BOOL hideHUD() {
|
BOOL hideHUD() {
|
||||||
return [[NSUserDefaults standardUserDefaults] boolForKey:@"hideHUD_enabled"];
|
return [[NSUserDefaults standardUserDefaults] boolForKey:@"hideHUD_enabled"];
|
||||||
@@ -19,6 +18,9 @@ BOOL hideHUD() {
|
|||||||
BOOL oled() {
|
BOOL oled() {
|
||||||
return [[NSUserDefaults standardUserDefaults] boolForKey:@"oled_enabled"];
|
return [[NSUserDefaults standardUserDefaults] boolForKey:@"oled_enabled"];
|
||||||
}
|
}
|
||||||
|
BOOL oledKB() {
|
||||||
|
return [[NSUserDefaults standardUserDefaults] boolForKey:@"oledKeyBoard_enabled"];
|
||||||
|
}
|
||||||
BOOL autoFullScreen() {
|
BOOL autoFullScreen() {
|
||||||
return [[NSUserDefaults standardUserDefaults] boolForKey:@"autofull_enabled"];
|
return [[NSUserDefaults standardUserDefaults] boolForKey:@"autofull_enabled"];
|
||||||
}
|
}
|
||||||
@@ -46,32 +48,27 @@ UIColor* oledColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:1.0];
|
|||||||
// Hide CC / Autoplay switch
|
// Hide CC / Autoplay switch
|
||||||
%hook YTMainAppControlsOverlayView
|
%hook YTMainAppControlsOverlayView
|
||||||
- (void)layoutSubviews {
|
- (void)layoutSubviews {
|
||||||
%orig();
|
%orig;
|
||||||
if (hideAutoplaySwitch()) {
|
if (hideAutoplaySwitch())
|
||||||
MSHookIvar<UIView *>(self, "_autonavSwitch").hidden = YES;
|
MSHookIvar<UIView *>(self, "_autonavSwitch").hidden = YES;
|
||||||
}
|
if (hideCC())
|
||||||
if (hideCC()) {
|
MSHookIvar<UIView *>(self, "_closedCaptionsOrSubtitlesButton").hidden = YES;
|
||||||
MSHookIvar<UIView *>(self, "_closedCaptionsOrSubtitlesButton").hidden = YES;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
%end
|
%end
|
||||||
|
|
||||||
// Hide HUD Messages
|
// Hide HUD Messages
|
||||||
%hook YTHUDMessageView
|
%hook YTHUDMessageView
|
||||||
- (id)initWithMessage:(id)arg1 dismissHandler:(id)arg2 {
|
- (id)initWithMessage:(id)arg1 dismissHandler:(id)arg2 {
|
||||||
if (hideHUD()) {
|
return hideHUD() ? nil : %orig;
|
||||||
return NULL;
|
|
||||||
} else { return %orig; }
|
|
||||||
}
|
}
|
||||||
%end
|
%end
|
||||||
|
|
||||||
// YTAutoFullScreen: https://github.com/PoomSmart/YTAutoFullScreen/
|
// YTAutoFullScreen: https://github.com/PoomSmart/YTAutoFullScreen/
|
||||||
%hook YTPlayerViewController
|
%hook YTPlayerViewController
|
||||||
- (void)loadWithPlayerTransition:(id)arg1 playbackConfig:(id)arg2 {
|
- (void)loadWithPlayerTransition:(id)arg1 playbackConfig:(id)arg2 {
|
||||||
if (autoFullScreen()) {
|
|
||||||
%orig;
|
%orig;
|
||||||
[NSTimer scheduledTimerWithTimeInterval:0.75 target:self selector:@selector(autoFullscreen) userInfo:nil repeats:NO];
|
if (autoFullScreen())
|
||||||
} else { return %orig; }
|
[NSTimer scheduledTimerWithTimeInterval:0.75 target:self selector:@selector(autoFullscreen) userInfo:nil repeats:NO];
|
||||||
}
|
}
|
||||||
%new
|
%new
|
||||||
- (void)autoFullscreen {
|
- (void)autoFullscreen {
|
||||||
@@ -83,45 +80,46 @@ UIColor* oledColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:1.0];
|
|||||||
// YTNoHoverCards: https://github.com/level3tjg/YTNoHoverCards
|
// YTNoHoverCards: https://github.com/level3tjg/YTNoHoverCards
|
||||||
%hook YTCreatorEndscreenView
|
%hook YTCreatorEndscreenView
|
||||||
- (void)setHidden:(BOOL)hidden {
|
- (void)setHidden:(BOOL)hidden {
|
||||||
if (!noHoverCard())
|
if (noHoverCard())
|
||||||
hidden = YES;
|
hidden = YES;
|
||||||
%orig;
|
%orig;
|
||||||
}
|
}
|
||||||
%end
|
%end
|
||||||
|
|
||||||
//YTCastConfirm: https://github.com/JamieBerghmans/YTCastConfirm
|
//YTCastConfirm: https://github.com/JamieBerghmans/YTCastConfirm
|
||||||
%hook MDXPlaybackRouteButtonController
|
%hook MDXPlaybackRouteButtonController
|
||||||
-(void)didPressButton:(id)arg1 {
|
- (void)didPressButton:(id)arg1 {
|
||||||
if (castConfirm()) {
|
if (castConfirm()) {
|
||||||
UIAlertController* alertController = [%c(UIAlertController) alertControllerWithTitle:@"Casting"
|
UIAlertController* alertController = [%c(UIAlertController) alertControllerWithTitle:@"Casting"
|
||||||
message:@"Are you sure you want to start casting?"
|
message:@"Are you sure you want to start casting?"
|
||||||
preferredStyle:UIAlertControllerStyleAlert];
|
preferredStyle:UIAlertControllerStyleAlert];
|
||||||
UIAlertAction* defaultAction = [%c(UIAlertAction) actionWithTitle:@"Yes" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {
|
UIAlertAction* defaultAction = [%c(UIAlertAction) actionWithTitle:@"Yes" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {
|
||||||
%orig;
|
%orig;
|
||||||
}];
|
}];
|
||||||
|
|
||||||
UIAlertAction* noButton = [%c(UIAlertAction)
|
UIAlertAction* noButton = [%c(UIAlertAction)
|
||||||
actionWithTitle:@"Cancel"
|
actionWithTitle:@"Cancel"
|
||||||
style:UIAlertActionStyleDefault
|
style:UIAlertActionStyleDefault
|
||||||
handler: ^(UIAlertAction * action) {
|
handler: ^(UIAlertAction * action) {
|
||||||
return;
|
return;
|
||||||
}];
|
}];
|
||||||
|
|
||||||
[alertController addAction:defaultAction];
|
[alertController addAction:defaultAction];
|
||||||
[alertController addAction:noButton];
|
[alertController addAction:noButton];
|
||||||
|
|
||||||
id rootViewController = [%c(UIApplication) sharedApplication].delegate.window.rootViewController;
|
id rootViewController = [%c(UIApplication) sharedApplication].delegate.window.rootViewController;
|
||||||
if([rootViewController isKindOfClass:[%c(UINavigationController) class]]) {
|
if ([rootViewController isKindOfClass:[%c(UINavigationController) class]]) {
|
||||||
rootViewController = ((UINavigationController *)rootViewController).viewControllers.firstObject;
|
rootViewController = ((UINavigationController *)rootViewController).viewControllers.firstObject;
|
||||||
|
}
|
||||||
|
if ([rootViewController isKindOfClass:[%c(UITabBarController) class]]) {
|
||||||
|
rootViewController = ((UITabBarController *)rootViewController).selectedViewController;
|
||||||
|
}
|
||||||
|
if ([rootViewController presentedViewController] != nil) {
|
||||||
|
rootViewController = [rootViewController presentedViewController];
|
||||||
|
}
|
||||||
|
[rootViewController presentViewController:alertController animated:YES completion:nil];
|
||||||
}
|
}
|
||||||
if([rootViewController isKindOfClass:[%c(UITabBarController) class]]) {
|
return %orig;
|
||||||
rootViewController = ((UITabBarController *)rootViewController).selectedViewController;
|
|
||||||
}
|
|
||||||
if ([rootViewController presentedViewController] != nil) {
|
|
||||||
rootViewController = [rootViewController presentedViewController];
|
|
||||||
}
|
|
||||||
[rootViewController presentViewController:alertController animated:YES completion:nil];
|
|
||||||
} else { return %orig; }
|
|
||||||
}
|
}
|
||||||
%end
|
%end
|
||||||
|
|
||||||
@@ -148,6 +146,34 @@ UIColor* oledColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:1.0];
|
|||||||
%hook YTColdConfig
|
%hook YTColdConfig
|
||||||
- (BOOL)shouldUseAppThemeSetting { return YES; }
|
- (BOOL)shouldUseAppThemeSetting { return YES; }
|
||||||
- (BOOL)respectDeviceCaptionSetting { return NO; }
|
- (BOOL)respectDeviceCaptionSetting { return NO; }
|
||||||
|
- (BOOL)isEnhancedSearchBarEnabled { return YES; }
|
||||||
|
%end
|
||||||
|
|
||||||
|
// NOYTPremium - https://github.com/PoomSmart/NoYTPremium/
|
||||||
|
%hook YTCommerceEventGroupHandler
|
||||||
|
- (void)addEventHandlers {}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook YTInterstitialPromoEventGroupHandler
|
||||||
|
- (void)addEventHandlers {}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook YTPromosheetEventGroupHandler
|
||||||
|
- (void)addEventHandlers {}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook YTPromoThrottleController
|
||||||
|
- (BOOL)canShowThrottledPromo { return NO; }
|
||||||
|
- (BOOL)canShowThrottledPromoWithFrequencyCap:(id)arg1 { return NO; }
|
||||||
|
- (BOOL)canShowThrottledPromoWithFrequencyCaps:(id)arg1 { return NO; }
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook YTIShowFullscreenInterstitialCommand
|
||||||
|
- (BOOL)shouldThrottleInterstitial { return YES; }
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook YTSurveyController
|
||||||
|
- (void)showSurveyWithRenderer:(id)arg1 surveyParentResponder:(id)arg2 {}
|
||||||
%end
|
%end
|
||||||
|
|
||||||
// OLED
|
// OLED
|
||||||
@@ -155,76 +181,80 @@ UIColor* oledColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:1.0];
|
|||||||
// Thanks sinfool for his flex patch which brings OLED Dark mode for YouTube - "Color Customizer (YouTube) OLED"
|
// Thanks sinfool for his flex patch which brings OLED Dark mode for YouTube - "Color Customizer (YouTube) OLED"
|
||||||
%group gOLED
|
%group gOLED
|
||||||
%hook UIView
|
%hook UIView
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
- (void)setBackgroundColor:(id)arg1 {
|
||||||
if ([self.nextResponder isKindOfClass:%c(DownloadedVC)]) //uYou
|
if ([self.nextResponder isKindOfClass:%c(YTLinkCell)])
|
||||||
arg1 = oledColor;
|
arg1 = oledColor;
|
||||||
if ([self.nextResponder isKindOfClass:%c(DownloadsPagerVC)]) //uYou
|
if ([self.nextResponder isKindOfClass:%c(YTCommentsHeaderView)])
|
||||||
arg1 = oledColor;
|
arg1 = oledColor;
|
||||||
if ([self.nextResponder isKindOfClass:%c(DownloadingVC)]) //uYou
|
if ([self.nextResponder isKindOfClass:%c(YTSearchView)])
|
||||||
arg1 = oledColor;
|
arg1 = oledColor;
|
||||||
if ([self.nextResponder isKindOfClass:%c(PlayerVC)]) //uYou
|
if ([self.nextResponder isKindOfClass:%c(YTSearchBoxView)])
|
||||||
arg1 = oledColor;
|
arg1 = oledColor;
|
||||||
if ([self.nextResponder isKindOfClass:%c(YTLinkCell)])
|
if ([self.nextResponder isKindOfClass:%c(YTEngagementPanelHeaderView)])
|
||||||
arg1 = oledColor;
|
arg1 = oledColor;
|
||||||
if ([self.nextResponder isKindOfClass:%c(YTCommentsHeaderView)])
|
if ([self.nextResponder isKindOfClass:%c(YTEngagementPanelView)])
|
||||||
arg1 = oledColor;
|
arg1 = oledColor;
|
||||||
if ([self.nextResponder isKindOfClass:%c(YTSearchView)])
|
if ([self.nextResponder isKindOfClass:%c(YTPivotBarView)])
|
||||||
arg1 = oledColor;
|
arg1 = oledColor;
|
||||||
if ([self.nextResponder isKindOfClass:%c(YTSearchBoxView)])
|
if ([self.nextResponder isKindOfClass:%c(YTHUDMessageView)])
|
||||||
arg1 = oledColor;
|
arg1 = oledColor;
|
||||||
if ([self.nextResponder isKindOfClass:%c(YTEngagementPanelHeaderView)])
|
if ([self.nextResponder isKindOfClass:%c(YTChipCloudCell)])
|
||||||
arg1 = oledColor;
|
arg1 = oledColor;
|
||||||
if ([self.nextResponder isKindOfClass:%c(YTEngagementPanelView)])
|
if ([self.nextResponder isKindOfClass:%c(YCHLiveChatTextCell)])
|
||||||
arg1 = oledColor;
|
arg1 = oledColor;
|
||||||
if ([self.nextResponder isKindOfClass:%c(YTPivotBarView)])
|
if ([self.nextResponder isKindOfClass:%c(YCHLiveChatView)])
|
||||||
arg1 = oledColor;
|
arg1 = oledColor;
|
||||||
if ([self.nextResponder isKindOfClass:%c(YTHUDMessageView)])
|
if ([self.nextResponder isKindOfClass:%c(YCHLiveChatViewerEngagementCell)])
|
||||||
arg1 = oledColor;
|
arg1 = oledColor;
|
||||||
if ([self.nextResponder isKindOfClass:%c(YTChipCloudCell)])
|
if ([self.nextResponder isKindOfClass:%c(YTSlideForActionsView)])
|
||||||
arg1 = oledColor;
|
arg1 = oledColor;
|
||||||
if ([self.nextResponder isKindOfClass:%c(YCHLiveChatTextCell)])
|
if ([self.nextResponder isKindOfClass:%c(YTPlaylistHeaderView)])
|
||||||
arg1 = oledColor;
|
arg1 = oledColor;
|
||||||
if ([self.nextResponder isKindOfClass:%c(YCHLiveChatView)])
|
if ([self.nextResponder isKindOfClass:%c(YTAsyncCollectionView)])
|
||||||
arg1 = oledColor;
|
arg1 = oledColor;
|
||||||
if ([self.nextResponder isKindOfClass:%c(YCHLiveChatViewerEngagementCell)])
|
if ([self.nextResponder isKindOfClass:%c(YTFeedHeaderView)])
|
||||||
arg1 = oledColor;
|
arg1 = oledColor;
|
||||||
if ([self.nextResponder isKindOfClass:%c(YTSlideForActionsView)])
|
if ([self.nextResponder isKindOfClass:%c(YTMessageCell)])
|
||||||
arg1 = oledColor;
|
arg1 = oledColor;
|
||||||
if ([self.nextResponder isKindOfClass:%c(YTPlaylistHeaderView)])
|
if ([self.nextResponder isKindOfClass:%c(YTPlaylistPanelProminentThumbnailVideoCell)])
|
||||||
arg1 = oledColor;
|
arg1 = oledColor;
|
||||||
if ([self.nextResponder isKindOfClass:%c(YTAsyncCollectionView)])
|
if ([self.nextResponder isKindOfClass:%c(ASWAppSwitcherCollectionViewCell)])
|
||||||
arg1 = oledColor;
|
arg1 = oledColor;
|
||||||
if ([self.nextResponder isKindOfClass:%c(YTFeedHeaderView)])
|
if ([self.nextResponder isKindOfClass:%c(YTEditSheetControllerHeader)])
|
||||||
arg1 = oledColor;
|
arg1 = oledColor;
|
||||||
if ([self.nextResponder isKindOfClass:%c(YTMessageCell)])
|
if ([self.nextResponder isKindOfClass:%c(YTDialogContainerScrollView)])
|
||||||
arg1 = oledColor;
|
arg1 = oledColor;
|
||||||
if ([self.nextResponder isKindOfClass:%c(YTPlaylistPanelProminentThumbnailVideoCell)])
|
%orig;
|
||||||
arg1 = oledColor;
|
}
|
||||||
if ([self.nextResponder isKindOfClass:%c(ASWAppSwitcherCollectionViewCell)])
|
%end
|
||||||
arg1 = oledColor;
|
|
||||||
if ([self.nextResponder isKindOfClass:%c(YTEditSheetControllerHeader)])
|
%hook YTLightweightQTMButton
|
||||||
arg1 = oledColor;
|
- (void)setBackgroundColor:(id)arg1 {
|
||||||
if ([self.nextResponder isKindOfClass:%c(YTDialogContainerScrollView)])
|
if ([self.nextResponder isKindOfClass:%c(YTShareMainView)])
|
||||||
arg1 = oledColor;
|
arg1 = oledColor;
|
||||||
%orig;
|
%orig;
|
||||||
|
}
|
||||||
|
- (void)setCustomTitleColor:(id)arg1 { %orig([UIColor whiteColor]); }
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook NIAttributedLabel
|
||||||
|
- (void)setBackgroundColor:(id)arg1 {
|
||||||
|
if ([self.nextResponder isKindOfClass:%c(UIScrollView)])
|
||||||
|
arg1 = oledColor;
|
||||||
|
%orig;
|
||||||
}
|
}
|
||||||
//- (void)layoutSubviews {
|
|
||||||
// %orig;
|
|
||||||
// if ([self.nextResponder isKindOfClass:%c(YTALDialog)])
|
|
||||||
// self.backgroundColor = oledColor;
|
|
||||||
//}
|
|
||||||
%end
|
%end
|
||||||
|
|
||||||
%hook UIControl // this sucks I know :/
|
%hook UIControl // this sucks I know :/
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
- (void)setBackgroundColor:(id)arg1 {
|
||||||
if ([self.nextResponder isKindOfClass:%c(YTShareMainView)])
|
if ([self.nextResponder isKindOfClass:%c(YTShareMainView)])
|
||||||
arg1 = oledColor;
|
arg1 = oledColor;
|
||||||
%orig;
|
%orig;
|
||||||
}
|
}
|
||||||
%end
|
%end
|
||||||
|
|
||||||
%hook YTAsyncCollectionView
|
%hook YTAsyncCollectionView
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
- (void)setBackgroundColor:(id)arg1 {
|
||||||
if([self.nextResponder isKindOfClass:%c(YTRelatedVideosCollectionViewController)]) {
|
if([self.nextResponder isKindOfClass:%c(YTRelatedVideosCollectionViewController)]) {
|
||||||
arg1 = [oledColor colorWithAlphaComponent:0.0];
|
arg1 = [oledColor colorWithAlphaComponent:0.0];
|
||||||
} else if([self.nextResponder isKindOfClass:%c(YTFullscreenMetadataHighlightsCollectionViewController)]) {
|
} else if([self.nextResponder isKindOfClass:%c(YTFullscreenMetadataHighlightsCollectionViewController)]) {
|
||||||
@@ -236,346 +266,279 @@ UIColor* oledColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:1.0];
|
|||||||
}
|
}
|
||||||
%end
|
%end
|
||||||
|
|
||||||
%hook YTDialogContainerScrollView
|
%hook YTWatchMiniBarView
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
- (void)setBackgroundColor:(id)arg1 {
|
||||||
arg1 = oledColor;
|
arg1 = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.9];
|
||||||
|
%orig;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook YTPlaylistMiniBarView
|
||||||
|
- (void)setBackgroundColor:(id)arg1 {
|
||||||
|
arg1 = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.9];
|
||||||
|
%orig;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook _LNPopupBarContentView // uYou player
|
||||||
|
- (void)setBackgroundColor:(id)arg1 {
|
||||||
|
arg1 = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.9];
|
||||||
%orig;
|
%orig;
|
||||||
}
|
}
|
||||||
%end
|
%end
|
||||||
|
|
||||||
%hook YTTopAlignedView
|
%hook YTTopAlignedView
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
- (void)setBackgroundColor:(id)arg1 { %orig(oledColor); }
|
||||||
arg1 = oledColor;
|
- (void)didMoveToWindow { // Dune - https://github.com/Skittyblock/Dune/blob/9b1df9790230115b7553cc9dbadf36889018d7f9/Tweak.xm#L70
|
||||||
|
MSHookIvar<UIView *>(self, "_contentView").backgroundColor = oledColor;
|
||||||
|
%orig;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook DownloadedVC
|
||||||
|
- (id)ytBackgroundColor { return oledColor; }
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook DownloadsPagerVC
|
||||||
|
- (id)ytBackgroundColor { return oledColor; }
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook DownloadingVC
|
||||||
|
- (id)ytBackgroundColor { return oledColor; }
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook PlayerVC
|
||||||
|
- (id)ytBackgroundColor { return oledColor; }
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook ASScrollView // Explore
|
||||||
|
- (void)didMoveToWindow {
|
||||||
|
self.backgroundColor = oledColor;
|
||||||
%orig;
|
%orig;
|
||||||
}
|
}
|
||||||
-(void)layoutSubviews { // Dune - https://github.com/Skittyblock/Dune/blob/9b1df9790230115b7553cc9dbadf36889018d7f9/Tweak.xm#L70
|
%end
|
||||||
%orig;
|
|
||||||
MSHookIvar<UIView *>(self, "_contentView").backgroundColor = oledColor;
|
%hook ASCollectionView // your videos
|
||||||
|
- (void)didMoveToWindow {
|
||||||
|
self.backgroundColor = oledColor;
|
||||||
|
%orig;
|
||||||
}
|
}
|
||||||
%end
|
%end
|
||||||
|
|
||||||
|
%hook YTDialogContainerScrollView
|
||||||
|
- (void)setBackgroundColor:(id)arg1 { %orig(oledColor); }
|
||||||
|
%end
|
||||||
|
|
||||||
%hook MDXQueueView // Cast queue
|
%hook MDXQueueView // Cast queue
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
- (void)setBackgroundColor:(id)arg1 { %orig(oledColor); }
|
||||||
arg1 = oledColor;
|
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
%end
|
%end
|
||||||
|
|
||||||
%hook YTChannelProfileEditorView
|
%hook YTChannelProfileEditorView
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
- (void)setBackgroundColor:(id)arg1 { %orig(oledColor); }
|
||||||
arg1 = oledColor;
|
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
%end
|
%end
|
||||||
|
|
||||||
%hook YTChannelSubMenuView //
|
%hook YTChannelSubMenuView //
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
- (void)setBackgroundColor:(id)arg1 { %orig(oledColor); }
|
||||||
arg1 = oledColor;
|
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
%end
|
%end
|
||||||
|
|
||||||
%hook YTChannelListSubMenuView // sub -
|
%hook YTChannelListSubMenuView // sub -
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
- (void)setBackgroundColor:(id)arg1 { %orig(oledColor); }
|
||||||
arg1 = oledColor;
|
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
%end
|
%end
|
||||||
|
|
||||||
%hook YTCommentView
|
%hook YTCommentView
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
- (void)setBackgroundColor:(id)arg1 { %orig(oledColor); }
|
||||||
arg1 = oledColor;
|
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
%end
|
%end
|
||||||
|
|
||||||
%hook YTCreateCommentAccessoryView
|
%hook YTCreateCommentAccessoryView
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
- (void)setBackgroundColor:(id)arg1 { %orig(oledColor); }
|
||||||
arg1 = oledColor;
|
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
%end
|
%end
|
||||||
|
|
||||||
%hook YTCreateCommentTextView
|
%hook YTCreateCommentTextView
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
- (void)setBackgroundColor:(id)arg1 { %orig(oledColor); }
|
||||||
arg1 = oledColor;
|
- (void)setTextColor:(id)arg1 { %orig([UIColor whiteColor]); }
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
%end
|
%end
|
||||||
|
|
||||||
%hook YCHLiveChatActionPanelView
|
%hook YCHLiveChatActionPanelView
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
- (void)setBackgroundColor:(id)arg1 { %orig(oledColor); }
|
||||||
arg1 = oledColor;
|
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
%end
|
%end
|
||||||
|
|
||||||
%hook YTEmojiTextView
|
%hook YTEmojiTextView
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
- (void)setBackgroundColor:(id)arg1 { %orig(oledColor); }
|
||||||
arg1 = oledColor;
|
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
%end
|
%end
|
||||||
|
|
||||||
%hook YTShareTitleView // Share sheet
|
%hook YTShareTitleView // Share sheet
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
- (void)setBackgroundColor:(id)arg1 { %orig(oledColor); }
|
||||||
arg1 = oledColor;
|
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
%end
|
%end
|
||||||
|
|
||||||
%hook YTNavigationBar
|
%hook YTNavigationBar
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
- (void)setBackgroundColor:(id)arg1 { %orig(oledColor); }
|
||||||
arg1 = oledColor;
|
- (void)setBarTintColor:(id)arg1 { %orig(oledColor); }
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
-(void)setBarTintColor:(id)arg1 {
|
|
||||||
arg1 = oledColor;
|
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
%end
|
%end
|
||||||
|
|
||||||
%hook YTPrivacyTosFooterView
|
%hook YTPrivacyTosFooterView
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
- (void)setBackgroundColor:(id)arg1 { %orig(oledColor); }
|
||||||
arg1 = oledColor;
|
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
%hook YTWatchMiniBarView
|
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
|
||||||
arg1 = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.9];
|
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
%hook YTPlaylistMiniBarView
|
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
|
||||||
arg1 = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.9];
|
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
%hook _LNPopupBarContentView // uYou player
|
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
|
||||||
arg1 = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.9];
|
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
%end
|
%end
|
||||||
|
|
||||||
%hook YTEngagementPanelHeaderView
|
%hook YTEngagementPanelHeaderView
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
- (void)setBackgroundColor:(id)arg1 { %orig(oledColor); }
|
||||||
arg1 = oledColor;
|
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
%end
|
%end
|
||||||
|
|
||||||
%hook YTChannelMobileHeaderView
|
%hook YTChannelMobileHeaderView
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
- (void)setBackgroundColor:(id)arg1 { %orig(oledColor); }
|
||||||
arg1 = oledColor;
|
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
%end
|
%end
|
||||||
|
|
||||||
%hook YTInlineSignInView
|
%hook YTInlineSignInView
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
- (void)setBackgroundColor:(id)arg1 { %orig(oledColor); }
|
||||||
arg1 = oledColor;
|
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
%end
|
%end
|
||||||
|
|
||||||
%hook YTHeaderView //Stt bar
|
%hook YTHeaderView //Stt bar
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
- (void)setBackgroundColor:(id)arg1 { %orig(oledColor); }
|
||||||
arg1 = oledColor;
|
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
%end
|
%end
|
||||||
|
|
||||||
%hook YTTabTitlesView // Tab bar - mychannel
|
%hook YTTabTitlesView // Tab bar - mychannel
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
- (void)setBackgroundColor:(id)arg1 { %orig(oledColor); }
|
||||||
arg1 = oledColor;
|
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
%end
|
%end
|
||||||
|
|
||||||
%hook YTSettingsCell // Settings
|
%hook YTSettingsCell // Settings
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
- (void)setBackgroundColor:(id)arg1 { %orig(oledColor); }
|
||||||
arg1 = oledColor;
|
%end
|
||||||
%orig;
|
|
||||||
}
|
%hook YTHorizontalCardListView
|
||||||
|
- (void)setBackgroundColor:(id)arg1 { %orig(oledColor); }
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook YTShortsGalleryHeaderView // upload videos heaer (gallery)
|
||||||
|
- (void)setBackgroundColor:(id)arg1 { %orig(oledColor); }
|
||||||
%end
|
%end
|
||||||
|
|
||||||
%hook GOODialogView // 3 dots menu
|
%hook GOODialogView // 3 dots menu
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
- (void)setBackgroundColor:(id)arg1 { %orig(oledColor); }
|
||||||
arg1 = oledColor;
|
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
%end
|
%end
|
||||||
|
|
||||||
%hook YTCollectionView //sharesheet
|
%hook YTCollectionView //sharesheet
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
- (void)setBackgroundColor:(id)arg1 { %orig(oledColor); }
|
||||||
arg1 = oledColor;
|
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
%end
|
%end
|
||||||
|
|
||||||
%hook ASWAppSwitchingSheetHeaderView
|
%hook ASWAppSwitchingSheetHeaderView
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
- (void)setBackgroundColor:(id)arg1 { %orig(oledColor); }
|
||||||
arg1 = oledColor;
|
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
%end
|
%end
|
||||||
|
|
||||||
%hook ASWAppSwitchingSheetFooterView
|
%hook ASWAppSwitchingSheetFooterView
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
- (void)setBackgroundColor:(id)arg1 { %orig(oledColor); }
|
||||||
arg1 = oledColor;
|
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
%end
|
%end
|
||||||
|
|
||||||
%hook YTCollectionSeparatorView
|
%hook YTCollectionSeparatorView
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
- (void)setBackgroundColor:(id)arg1 { %orig(oledColor); }
|
||||||
arg1 = oledColor;
|
- (void)didMoveToWindow {}
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
- (void)layoutSubviews {}
|
|
||||||
%end
|
|
||||||
|
|
||||||
%hook YTLightweightQTMButton
|
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
|
||||||
if([self.nextResponder isKindOfClass:%c(YTShareMainView)]) {
|
|
||||||
arg1 = oledColor;
|
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-(void)setCustomTitleColor:(id)arg1 {
|
|
||||||
arg1 = [UIColor whiteColor];
|
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
%end
|
%end
|
||||||
|
|
||||||
%hook YTShareBusyView // sharesheet load
|
%hook YTShareBusyView // sharesheet load
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
- (void)setBackgroundColor:(id)arg1 { %orig(oledColor); }
|
||||||
arg1 = oledColor;
|
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
%end
|
%end
|
||||||
|
|
||||||
%hook YTPageView
|
%hook YTPageView
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
- (void)setBackgroundColor:(id)arg1 { %orig(oledColor); }
|
||||||
arg1 = oledColor;
|
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
%end
|
%end
|
||||||
|
|
||||||
%hook YTWatchView
|
%hook YTWatchView
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
- (void)setBackgroundColor:(id)arg1 { %orig(oledColor); }
|
||||||
arg1 = oledColor;
|
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
%end
|
%end
|
||||||
|
|
||||||
%hook YTSearchBarView
|
%hook YTSearchBarView
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
- (void)setBackgroundColor:(id)arg1 { %orig(oledColor); }
|
||||||
arg1 = oledColor;
|
%end
|
||||||
%orig;
|
|
||||||
}
|
%hook YTSearchBoxView
|
||||||
|
- (void)setBackgroundColor:(id)arg1 { %orig(oledColor); }
|
||||||
%end
|
%end
|
||||||
|
|
||||||
%hook YTSearchSuggestionCollectionViewCell
|
%hook YTSearchSuggestionCollectionViewCell
|
||||||
-(void)updateColors {}
|
- (void)updateColors {}
|
||||||
%end
|
%end
|
||||||
|
|
||||||
%hook UISearchBarBackground
|
%hook UISearchBarBackground
|
||||||
-(void)setBarTintColor:(id)arg1 {
|
- (void)setBarTintColor:(id)arg1 { %orig(oledColor); }
|
||||||
arg1 = oledColor;
|
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
%end
|
%end
|
||||||
|
|
||||||
%hook YTELMView // upload videos
|
%hook YTMealBarPromoView // Offline
|
||||||
-(void)layoutSubviews {
|
- (void)setBackgroundColor:(id)arg1 { %orig(oledColor); }
|
||||||
%orig;
|
|
||||||
self.backgroundColor = oledColor;
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
%hook YTMealBarPromoView
|
|
||||||
-(void)setBackgroundColor:(id)arg1 { // Offline
|
|
||||||
arg1 = oledColor;
|
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
%hook NIAttributedLabel
|
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
|
||||||
if ([self.nextResponder isKindOfClass:%c(UIScrollView)])
|
|
||||||
arg1 = oledColor;
|
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
%end
|
%end
|
||||||
|
|
||||||
////
|
////
|
||||||
/*
|
/*
|
||||||
%hook UICollectionView
|
%hook UICollectionView
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
- (void)setBackgroundColor:(id)arg1 {
|
||||||
if ([self.nextResponder isKindOfClass:%c(UICollectionViewControllerWrapperView)])
|
if ([self.nextResponder isKindOfClass:%c(UICollectionViewControllerWrapperView)])
|
||||||
arg1 = oledColor;
|
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
%hook YTShortsGalleryHeaderView // upload videos heaer (gallery)
|
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
|
||||||
arg1 = oledColor;
|
arg1 = oledColor;
|
||||||
%orig;
|
%orig;
|
||||||
}
|
}
|
||||||
%end
|
%end
|
||||||
|
|
||||||
%hook _ASDisplayView // edit your videos
|
%hook _ASDisplayView // edit your videos
|
||||||
-(void)layoutSubviews {
|
- (void)layoutSubviews {
|
||||||
if ([self.nextResponder isKindOfClass:%c(ELMView)])
|
if ([self.nextResponder isKindOfClass:%c(ELMView)])
|
||||||
self.backgroundColor = oledColor;
|
self.backgroundColor = oledColor;
|
||||||
}
|
|
||||||
%end
|
|
||||||
|
|
||||||
%hook ASCollectionView
|
|
||||||
-(void)layoutSubviews {
|
|
||||||
self.backgroundColor = oledColor;
|
|
||||||
%orig;
|
|
||||||
}
|
}
|
||||||
%end
|
%end
|
||||||
|
|
||||||
%hook YTChannelProfileDescriptionEditorView // edit profile Description
|
%hook YTChannelProfileDescriptionEditorView // edit profile Description
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
- (void)setBackgroundColor:(id)arg1 { %orig(oledColor); }
|
||||||
arg1 = oledColor;
|
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
%end
|
%end
|
||||||
|
|
||||||
%hook YTChannelProfileNameEditorView // edit profile Name
|
%hook YTChannelProfileNameEditorView // edit profile Name
|
||||||
-(void)setBackgroundColor:(id)arg1 {
|
- (void)setBackgroundColor:(id)arg1 { %orig(oledColor); }
|
||||||
arg1 = oledColor;
|
|
||||||
%orig;
|
|
||||||
}
|
|
||||||
%end
|
%end
|
||||||
|
|
||||||
hook GOOTextField
|
hook GOOTextField
|
||||||
-(void)setBackgroundColor:(id)arg1 { // edit profile Description
|
- (void)setBackgroundColor:(id)arg1 { // edit profile Description
|
||||||
arg1 = oledColor;
|
arg1 = oledColor;
|
||||||
%orig;
|
%orig;
|
||||||
}
|
}
|
||||||
%end
|
%end
|
||||||
|
|
||||||
%hook GOOMultilineTextField//
|
%hook GOOMultilineTextField//
|
||||||
-(void)setBackgroundColor:(id)arg1 { // edit profile Name
|
- (void)setBackgroundColor:(id)arg1 { // edit profile Name
|
||||||
arg1 = oledColor;
|
arg1 = oledColor;
|
||||||
%orig;
|
%orig;
|
||||||
}
|
}
|
||||||
%end
|
%end
|
||||||
*/
|
*/
|
||||||
%end
|
%end
|
||||||
|
|
||||||
|
%group gOLEDKB // OLED keyboard by @ichitaso <3 - http://gist.github.com/ichitaso/935100fd53a26f18a9060f7195a1be0e
|
||||||
|
%hook UIPredictionViewController
|
||||||
|
- (void)loadView {
|
||||||
|
%orig;
|
||||||
|
[self.view setBackgroundColor:oledColor];
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook UICandidateViewController
|
||||||
|
- (void)loadView {
|
||||||
|
%orig;
|
||||||
|
[self.view setBackgroundColor:oledColor];
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook UIKeyboardDockView
|
||||||
|
- (void)didMoveToWindow {
|
||||||
|
self.backgroundColor = oledColor;
|
||||||
|
%orig;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook UIKeyboardLayoutStar
|
||||||
|
- (void)didMoveToWindow {
|
||||||
|
self.backgroundColor = oledColor;
|
||||||
|
%orig;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook UIKBRenderConfig // Prediction text color
|
||||||
|
- (void)setLightKeyboard:(BOOL)arg1 { %orig(NO); }
|
||||||
|
%end
|
||||||
|
%end
|
||||||
|
|
||||||
// YTReExplore: https://github.com/PoomSmart/YTReExplore/
|
// YTReExplore: https://github.com/PoomSmart/YTReExplore/
|
||||||
%group gReExplore
|
%group gReExplore
|
||||||
static void replaceTab(YTIGuideResponse *response) {
|
static void replaceTab(YTIGuideResponse *response) {
|
||||||
@@ -613,20 +576,20 @@ static void replaceTab(YTIGuideResponse *response) {
|
|||||||
// BigYTMiniPlayer: https://github.com/Galactic-Dev/BigYTMiniPlayer
|
// BigYTMiniPlayer: https://github.com/Galactic-Dev/BigYTMiniPlayer
|
||||||
%group Main
|
%group Main
|
||||||
%hook YTWatchMiniBarView
|
%hook YTWatchMiniBarView
|
||||||
-(void)setWatchMiniPlayerLayout:(int)arg1 {
|
- (void)setWatchMiniPlayerLayout:(int)arg1 {
|
||||||
%orig(1);
|
%orig(1);
|
||||||
}
|
}
|
||||||
-(int)watchMiniPlayerLayout {
|
- (int)watchMiniPlayerLayout {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
-(void)layoutSubviews {
|
- (void)layoutSubviews {
|
||||||
%orig;
|
%orig;
|
||||||
self.frame = CGRectMake(([UIScreen mainScreen].bounds.size.width - self.frame.size.width), self.frame.origin.y, self.frame.size.width, self.frame.size.height);
|
self.frame = CGRectMake(([UIScreen mainScreen].bounds.size.width - self.frame.size.width), self.frame.origin.y, self.frame.size.width, self.frame.size.height);
|
||||||
}
|
}
|
||||||
%end
|
%end
|
||||||
|
|
||||||
%hook YTMainAppVideoPlayerOverlayView
|
%hook YTMainAppVideoPlayerOverlayView
|
||||||
-(BOOL)isUserInteractionEnabled {
|
- (BOOL)isUserInteractionEnabled {
|
||||||
if([[self _viewControllerForAncestor].parentViewController.parentViewController isKindOfClass:%c(YTWatchMiniBarViewController)]) {
|
if([[self _viewControllerForAncestor].parentViewController.parentViewController isKindOfClass:%c(YTWatchMiniBarViewController)]) {
|
||||||
return NO;
|
return NO;
|
||||||
}
|
}
|
||||||
@@ -640,10 +603,13 @@ static void replaceTab(YTIGuideResponse *response) {
|
|||||||
if (oled() && ([[NSUserDefaults standardUserDefaults] integerForKey:@"page_style"] == 1)) {
|
if (oled() && ([[NSUserDefaults standardUserDefaults] integerForKey:@"page_style"] == 1)) {
|
||||||
%init(gOLED);
|
%init(gOLED);
|
||||||
}
|
}
|
||||||
|
if (oledKB()) {
|
||||||
|
%init(gOLEDKB);
|
||||||
|
}
|
||||||
if (ReExplore()) {
|
if (ReExplore()) {
|
||||||
%init(gReExplore)
|
%init(gReExplore);
|
||||||
}
|
}
|
||||||
if (bigYTMiniPlayer() && (UIDevice.currentDevice.userInterfaceIdiom != UIUserInterfaceIdiomPad)) {
|
if (bigYTMiniPlayer() && (UIDevice.currentDevice.userInterfaceIdiom != UIUserInterfaceIdiomPad)) {
|
||||||
%init(Main)
|
%init(Main);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user