Compare commits

...
Author SHA1 Message Date
qnblackcat b7328028aa typo 2022-06-06 11:04:05 +07:00
qnblackcat 79f058f354 v17.22.3-2.1 2022-06-06 10:44:31 +07:00
qnblackcat 26b5912495 improved OLED Darkmode 2022-06-06 10:42:41 +07:00
qnblackcat f029b9a372 update Header.h 2022-06-06 10:41:44 +07:00
qnblackcat ecf3107846 update submodules 2022-06-06 10:25:12 +07:00
qnblackcat 93397e48d7 Enable Shorts scroll bar - credit level3tjg 2022-06-05 10:27:25 +07:00
qnblackcat b83081fd57 v17.21.3-2.1 2022-06-01 22:26:49 +07:00
qnblackcat c74b5203f7 added IAmYouTube (credit: PoomSmart) 2022-06-01 21:52:06 +07:00
qnblackcat 920b7c4882 update description 2022-05-29 10:12:21 +07:00
qnblackcat d469f31270 fixed #179 2022-05-29 10:09:20 +07:00
qnblackcat f910c416ef v17.20.3-2.1 2022-05-25 13:04:32 +07:00
7 changed files with 110 additions and 46 deletions
+14 -3
View File
@@ -1,5 +1,10 @@
#import "Tweaks/YouTubeHeader/YTPlayerViewController.h" #import "Tweaks/YouTubeHeader/YTPlayerViewController.h"
// IAmYouTube
@interface SSOConfiguration : NSObject
@end
// uYouPlus
@interface YTMainAppControlsOverlayView: UIView @interface YTMainAppControlsOverlayView: UIView
@end @end
@@ -7,9 +12,7 @@
@property (nonatomic, strong, readwrite) UIView *downloadsButton; @property (nonatomic, strong, readwrite) UIView *downloadsButton;
@end @end
@interface ASWAppSwitcherCollectionViewCell: UIView // BigYTMiniPlayer
@end
@interface YTMainAppVideoPlayerOverlayView : UIView @interface YTMainAppVideoPlayerOverlayView : UIView
- (UIViewController *)_viewControllerForAncestor; - (UIViewController *)_viewControllerForAncestor;
@end @end
@@ -17,10 +20,15 @@
@interface YTWatchMiniBarView : UIView @interface YTWatchMiniBarView : UIView
@end @end
// YTAutoFullScreen
@interface YTPlayerViewController (YTAFS) @interface YTPlayerViewController (YTAFS)
- (void)autoFullscreen; - (void)autoFullscreen;
@end @end
// OLED Darkmode
@interface ASWAppSwitcherCollectionViewCell: UIView
@end
@interface ASScrollView : UIView @interface ASScrollView : UIView
@end @end
@@ -37,4 +45,7 @@
@end @end
@interface SponsorBlockSettingsController : UITableViewController @interface SponsorBlockSettingsController : UITableViewController
@end
@interface _ASDisplayView : UIView
@end @end
+12 -11
View File
@@ -19,7 +19,7 @@
- [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: [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) - [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/), [IAmYouTube](https://github.com/PoomSmart/IAmYouTube), [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) and [YTMiniplayerEnabler](https://github.com/level3tjg/YTMiniplayerEnabler). - [level3tjg](https://twitter.com/level3tjg) - for [YTNoHoverCards](https://github.com/level3tjg/YTNoHoverCards) and [YTMiniplayerEnabler](https://github.com/level3tjg/YTMiniplayerEnabler).
@@ -78,21 +78,21 @@
- My official AtlStore repo: https://qnblackcat.github.io/AltStore/ - My official AtlStore repo: https://qnblackcat.github.io/AltStore/
- [Open in AltStore (v17.19.3-2.1)](https://tinyurl.com/5n8c64zv) - It will take a while to install because AltStore needs to download the IPA. - [Open in AltStore (v17.22.3-2.1)](https://tinyurl.com/4v5933pu) - It will take a while to install because AltStore needs to download the IPA.
- Version info: _(last update: May 20)_ - Version info: _(last update: June 06)_
<details> <details>
<summary> ▶︎ Expand</summary> <summary>Expand</summary>
| **Tweaks/App** | **Version** | **Open source** | | **Tweaks/App** | **Version** | **Open source** |
| :------------: | :----------:| :-------------: | | :------------: | :----------:| :-------------: |
| **YouTube** | 17.19.3 | ✖︎ | | **YouTube** | 17.22.3 | ✖︎ |
| [uYou](https://github.com/MiRO92/uYou-for-YouTube) | 2.1 | ✖︎ | | [uYou](https://github.com/MiRO92/uYou-for-YouTube) | 2.1 | ✖︎ |
| [Open in YouTube](https://github.com/CokePokes/YoutubeExtensions/) | 1.2 | ✖︎ | | [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.5 | [✔︎](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.2| [✔︎](https://github.com/hbang/Alderis) |
| **NoYTPremium** | 1.0.4 | [✔︎](https://github.com/PoomSmart/NoYTPremium/) | | **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) |
@@ -100,7 +100,8 @@
| **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.7.0 | [✔︎](https://github.com/PoomSmart/YouPiP) | | **YouPiP** | 1.7.1 | [✔︎](https://github.com/PoomSmart/YouPiP) |
| **IAmYouTube** | 1.2.0 | [✔︎](https://github.com/PoomSmart/IAmYouTube) |
| **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) |
@@ -116,7 +117,7 @@ See [Installation - Wiki](https://github.com/qnblackcat/uYouPlus/wiki/Installati
# Support the developers # Support the developers
<details> <details>
<summary>▶︎ MiRO92</summary> <summary>MiRO92</summary>
- CashApp: https://cash.app/$MiRO92M - CashApp: https://cash.app/$MiRO92M
@@ -124,14 +125,14 @@ See [Installation - Wiki](https://github.com/qnblackcat/uYouPlus/wiki/Installati
</details> </details>
<details> <details>
<summary>▶︎ Poomsmart</summary> <summary>Poomsmart</summary>
- Paypal: https://poomsmart.github.io/ - Paypal: https://poomsmart.github.io/
</details> </details>
<details> <details>
<summary>▶︎ Galactic-dev</summary> <summary>Galactic-dev</summary>
- Paypal: https://www.paypal.com/paypalme/DBrett684 - Paypal: https://www.paypal.com/paypalme/DBrett684
+2 -3
View File
@@ -31,14 +31,13 @@ extern BOOL hidePreviousAndNextButton();
[mutableOrder insertObject:@(uYouPlusSection) atIndex:insertIndex + 1]; [mutableOrder insertObject:@(uYouPlusSection) atIndex:insertIndex + 1];
return mutableOrder; return mutableOrder;
} }
%end %end
%hook YTSettingsSectionItemManager %hook YTSettingsSectionItemManager
%new - (void)updateuYouPlusSectionWithEntry:(id)entry { %new - (void)updateuYouPlusSectionWithEntry:(id)entry {
YTSettingsViewController *delegate = [self valueForKey:@"_dataDelegate"]; YTSettingsViewController *delegate = [self valueForKey:@"_dataDelegate"];
YTSettingsSectionItem *hidePreviousAndNextButton = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"Hide Previous and Next button" titleDescription:@""]; YTSettingsSectionItem *hidePreviousAndNextButton = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"Hide Previous and Next button" titleDescription:@"Hide Previous and Next button in video controls overlay."];
hidePreviousAndNextButton.hasSwitch = YES; hidePreviousAndNextButton.hasSwitch = YES;
hidePreviousAndNextButton.switchVisible = YES; hidePreviousAndNextButton.switchVisible = YES;
hidePreviousAndNextButton.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"hidePreviousAndNextButton_enabled"]; hidePreviousAndNextButton.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"hidePreviousAndNextButton_enabled"];
@@ -47,7 +46,7 @@ extern BOOL hidePreviousAndNextButton();
return YES; return YES;
}; };
YTSettingsSectionItem *ytMiniPlayer = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"Enable the Miniplayer for all YouTube videos" titleDescription:@""]; YTSettingsSectionItem *ytMiniPlayer = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"Enable the Miniplayer for all YouTube videos" titleDescription:@"Kid videos for example."];
ytMiniPlayer.hasSwitch = YES; ytMiniPlayer.hasSwitch = YES;
ytMiniPlayer.switchVisible = YES; ytMiniPlayer.switchVisible = YES;
ytMiniPlayer.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"ytMiniPlayer_enabled"]; ytMiniPlayer.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"ytMiniPlayer_enabled"];
+79 -26
View File
@@ -1,6 +1,7 @@
#import <UIKit/UIKit.h> #import <UIKit/UIKit.h>
#import <Foundation/Foundation.h> #import <Foundation/Foundation.h>
#import <objc/runtime.h> #import <objc/runtime.h>
#import <dlfcn.h>
#import "Header.h" #import "Header.h"
#import "Tweaks/YouTubeHeader/YTVideoQualitySwitchOriginalController.h" #import "Tweaks/YouTubeHeader/YTVideoQualitySwitchOriginalController.h"
#import "Tweaks/YouTubeHeader/YTPlayerViewController.h" #import "Tweaks/YouTubeHeader/YTPlayerViewController.h"
@@ -12,6 +13,9 @@
#import "Tweaks/YouTubeHeader/YTIBrowseRequest.h" #import "Tweaks/YouTubeHeader/YTIBrowseRequest.h"
#import "Tweaks/YouTubeHeader/YTCommonColorPalette.h" #import "Tweaks/YouTubeHeader/YTCommonColorPalette.h"
#define YT_BUNDLE_ID @"com.google.ios.youtube"
#define YT_NAME @"YouTube"
BOOL hideHUD() { BOOL hideHUD() {
return [[NSUserDefaults standardUserDefaults] boolForKey:@"hideHUD_enabled"]; return [[NSUserDefaults standardUserDefaults] boolForKey:@"hideHUD_enabled"];
} }
@@ -201,6 +205,11 @@ BOOL ytMiniPlayer() {
- (void)showSurveyWithRenderer:(id)arg1 surveyParentResponder:(id)arg2 {} - (void)showSurveyWithRenderer:(id)arg1 surveyParentResponder:(id)arg2 {}
%end %end
// Enable Shorts scroll bar - level3tjg - https://reddit.com/r/jailbreak/comments/v29yvk/_/iasl1l0/
%hook YTReelPlayerViewControllerSub
- (BOOL)shouldEnablePlayerBar { return YES; }
%end
// Hide the download playlist button of uYou cuz it's broken // Hide the download playlist button of uYou cuz it's broken
%hook YTPlaylistHeaderViewController %hook YTPlaylistHeaderViewController
- (void)viewDidLoad { - (void)viewDidLoad {
@@ -209,14 +218,69 @@ BOOL ytMiniPlayer() {
} }
%end %end
// Workaround for issue #54 // IAmYouTube - https://github.com/PoomSmart/IAmYouTube/
%hook YTMainAppVideoPlayerOverlayViewController %hook YTVersionUtils
- (void)updateRelatedVideos { + (NSString *)appName { return YT_NAME; }
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"relatedVideosAtTheEndOfYTVideos"] == NO) {} + (NSString *)appID { return YT_BUNDLE_ID; }
else { return %orig; } %end
%hook GCKBUtils
+ (NSString *)appIdentifier { return YT_BUNDLE_ID; }
%end
%hook GPCDeviceInfo
+ (NSString *)bundleId { return YT_BUNDLE_ID; }
%end
%hook OGLBundle
+ (NSString *)shortAppName { return YT_NAME; }
%end
%hook GVROverlayView
+ (NSString *)appName { return YT_NAME; }
%end
%hook OGLPhenotypeFlagServiceImpl
- (NSString *)bundleId { return YT_BUNDLE_ID; }
%end
%hook SSOConfiguration
- (id)initWithClientID:(id)clientID supportedAccountServices:(id)supportedAccountServices {
self = %orig;
[self setValue:YT_NAME forKey:@"_shortAppName"];
[self setValue:YT_BUNDLE_ID forKey:@"_applicationIdentifier"];
return self;
} }
%end %end
%hook NSBundle
- (NSString *)bundleIdentifier {
NSArray *address = [NSThread callStackReturnAddresses];
Dl_info info = {0};
if (dladdr((void *)[address[2] longLongValue], &info) == 0)
return %orig;
NSString *path = [NSString stringWithUTF8String:info.dli_fname];
if ([path hasPrefix:NSBundle.mainBundle.bundlePath])
return YT_BUNDLE_ID;
return %orig;
}
- (id)objectForInfoDictionaryKey:(NSString *)key {
if ([key isEqualToString:@"CFBundleIdentifier"])
return YT_BUNDLE_ID;
if ([key isEqualToString:@"CFBundleDisplayName"] || [key isEqualToString:@"CFBundleName"])
return YT_NAME;
return %orig;
}
%end
// Workaround for issue #54
// %hook YTMainAppVideoPlayerOverlayViewController
// - (void)updateRelatedVideos {
// if ([[NSUserDefaults standardUserDefaults] boolForKey:@"relatedVideosAtTheEndOfYTVideos"] == NO) {}
// else { return %orig; }
// }
// %end
// OLED dark mode by BandarHL // OLED dark mode by BandarHL
UIColor* oledColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:1.0]; UIColor* oledColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:1.0];
@@ -330,16 +394,7 @@ UIColor* oledColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:1.0];
} }
%end %end
// uYou & YT player, and downloading view controller // YT player
%hook _LNPopupBarContentView
- (void)setBackgroundColor:(UIColor *)color {
if (isDarkMode()) {
return %orig([UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.9]);
}
return %orig;
}
%end
%hook YTWatchMiniBarView %hook YTWatchMiniBarView
- (void)setBackgroundColor:(UIColor *)color { - (void)setBackgroundColor:(UIColor *)color {
if (isDarkMode()) { if (isDarkMode()) {
@@ -393,6 +448,15 @@ UIColor* oledColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:1.0];
} }
%end %end
%hook _ASDisplayView // comment reply under videos
- (void)didMoveToWindow {
if (isDarkMode() && [self.accessibilityIdentifier isEqualToString:@"id.elements.components.comment_composer"]) {
%orig;
self.backgroundColor = oledColor;
}
}
%end
%hook YTFormattedStringLabel // YT is werid... %hook YTFormattedStringLabel // YT is werid...
- (void)setBackgroundColor:(UIColor *)color { - (void)setBackgroundColor:(UIColor *)color {
if (isDarkMode()) { if (isDarkMode()) {
@@ -453,17 +517,6 @@ UIColor* oledColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:1.0];
} }
} }
%end %end
// this sucks :/
// %hook UIView
// - (void)setBackgroundColor:(UIColor *)color {
// if (isDarkMode()) {
// if ([self.nextResponder isKindOfClass:%c(YTHUDMessageView)]) { color = oledColor; }
// %orig;
// }
// return %orig;
// }
// %end
%end %end
%group gOLEDKB // OLED keyboard by @ichitaso <3 - http://gist.github.com/ichitaso/935100fd53a26f18a9060f7195a1be0e %group gOLEDKB // OLED keyboard by @ichitaso <3 - http://gist.github.com/ichitaso/935100fd53a26f18a9060f7195a1be0e