Compare commits
9
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e2cd37a8b6 | ||
|
|
e5b9ff21cf | ||
|
|
2e7fd253a8 | ||
|
|
3aa7c57d82 | ||
|
|
11ddcd421d | ||
|
|
6418f3daeb | ||
|
|
4b283110a6 | ||
|
|
2615436031 | ||
|
|
81088fadd3 |
@@ -30,6 +30,13 @@
|
||||
@interface FRPSliderCell : UITableViewCell
|
||||
@end
|
||||
|
||||
@interface boolSettingsVC : UIViewController
|
||||
@end
|
||||
|
||||
@interface PlayerManager : NSObject
|
||||
- (float)progress;
|
||||
@end
|
||||
|
||||
// iOS16 fix
|
||||
@interface OBPrivacyLinkButton : UIButton
|
||||
- (instancetype)initWithCaption:(NSString *)caption
|
||||
|
||||
@@ -13,7 +13,7 @@ BUNDLE_ID = com.google.ios.youtube
|
||||
uYouPlus_INJECT_DYLIBS = Tweaks/uYou/Library/MobileSubstrate/DynamicLibraries/uYou.dylib .theos/obj/libcolorpicker.dylib .theos/obj/iSponsorBlock.dylib .theos/obj/YTUHD.dylib .theos/obj/YouPiP.dylib .theos/obj/YouTubeDislikesReturn.dylib .theos/obj/YoutubeSpeed.dylib
|
||||
uYouPlus_FILES = uYouPlus.xm Settings.xm
|
||||
uYouPlus_IPA = ./tmp/Payload/YouTube.app
|
||||
uYouPlus_FRAMEWORKS = UIKit
|
||||
uYouPlus_FRAMEWORKS = UIKit Security
|
||||
uYouPlus_CFLAGS = -fobjc-arc
|
||||
|
||||
include $(THEOS)/makefiles/common.mk
|
||||
|
||||
@@ -25,6 +25,8 @@
|
||||
|
||||
- [BandarHL](https://twitter.com/bandarhl) for a bunch of improvements.
|
||||
|
||||
- [Julioverne](https://twitter.com/ijulioverne) for the solution to skip Google's safety warning when logging in.
|
||||
|
||||
- [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/).
|
||||
@@ -78,16 +80,16 @@
|
||||
|
||||
- My official AltStore repo: https://qnblackcat.github.io/AltStore/
|
||||
|
||||
- [Open in AltStore (v17.31.4-2.1)](https://tinyurl.com/2p99amjz) - It will take a while to install because AltStore needs to download the IPA.
|
||||
- [Open in AltStore (v17.33.2-2.1)](https://tinyurl.com/33mv77u6) - It will take a while to install because AltStore needs to download the IPA.
|
||||
|
||||
- Version info: _(last update: Aug 12)_
|
||||
- Version info: _(last update: Aug 26)_
|
||||
|
||||
<details>
|
||||
<summary>Expand</summary>
|
||||
|
||||
| **Tweaks/App** | **Developer** | **Version** | **Open source** |
|
||||
| - | - | :-: | :-: |
|
||||
| **YouTube** | Google Inc | 17.31.4 | ✖︎ |
|
||||
| **YouTube** | Google Inc | 17.33.2 | ✖︎ |
|
||||
| [uYou](https://github.com/MiRO92/uYou-for-YouTube) | [MiRO92](https://twitter.com/miro92) | 2.1 | ✖︎ |
|
||||
| [Open in YouTube](https://github.com/CokePokes/YoutubeExtensions) | [CokePokes](https://github.com/CokePokes) | 1.2 | ✖︎ |
|
||||
| **iSponsorBlock** | [Galactic-Dev](https://github.com/Galactic-Dev) | 1.0-15 | [✔︎](https://github.com/Galactic-Dev/iSponsorBlock) |
|
||||
@@ -119,9 +121,7 @@ See [Installation - Wiki](https://github.com/qnblackcat/uYouPlus/wiki/Installati
|
||||
<details>
|
||||
<summary>MiRO92</summary>
|
||||
|
||||
- CashApp: https://cash.app/$MiRO92M
|
||||
|
||||
- Other payment methods are available in uYou's settings.
|
||||
- https://github.com/MiRO92/uYou-for-YouTube#support
|
||||
</details>
|
||||
|
||||
<details>
|
||||
|
||||
+1
-1
Submodule Tweaks/YouPiP updated: a8c4224f7d...77bed4f3fb
+1
-1
Submodule Tweaks/YouTubeHeader updated: 08eeeb7a9c...fa1fb5a993
+85
-48
@@ -12,10 +12,11 @@
|
||||
#import "Tweaks/YouTubeHeader/YTIPivotBarRenderer.h"
|
||||
#import "Tweaks/YouTubeHeader/YTIBrowseRequest.h"
|
||||
#import "Tweaks/YouTubeHeader/YTCommonColorPalette.h"
|
||||
#import "Tweaks/YouTubeHeader/YTColorPalette.h"
|
||||
#import "Tweaks/YouTubeHeader/ASCollectionView.h"
|
||||
#import "Tweaks/YouTubeHeader/YTPlayerOverlay.h"
|
||||
#import "Tweaks/YouTubeHeader/YTPlayerOverlayProvider.h"
|
||||
#import "Tweaks/YouTubeHeader/YTReelWatchPlaybackOverlayView.h"
|
||||
#import "Tweaks/YouTubeHeader/YTReelPlayerBottomButton.h"
|
||||
|
||||
// Tweak's bundle for Localizations support - @PoomSmart - https://github.com/PoomSmart/YouPiP/commit/aea2473f64c75d73cab713e1e2d5d0a77675024f
|
||||
NSBundle *uYouPlusBundle() {
|
||||
@@ -197,16 +198,18 @@ BOOL hidePaidPromotionCard() {
|
||||
}
|
||||
%end
|
||||
|
||||
// Workaround for https://github.com/MiRO92/uYou-for-YouTube/issues/12
|
||||
%hook YTAdsInnerTubeContextDecorator
|
||||
- (void)decorateContext:(id)arg1 { %orig(nil); }
|
||||
// Workaround for MiRO92/uYou-for-YouTube#12, qnblackcat/uYouPlus#263
|
||||
%hook YTDataUtils
|
||||
+ (NSMutableDictionary *)spamSignalsDictionary {
|
||||
return nil;
|
||||
}
|
||||
%end
|
||||
|
||||
// Workaround for https://github.com/MiRO92/uYou-for-YouTube/issues/94
|
||||
%hook YTELMView
|
||||
%hook UIResponder
|
||||
%new
|
||||
- (id)entry {
|
||||
return nil;
|
||||
return nil;
|
||||
}
|
||||
%end
|
||||
|
||||
@@ -214,7 +217,17 @@ BOOL hidePaidPromotionCard() {
|
||||
%hook YTLocalPlaybackController
|
||||
%new
|
||||
- (id)activeVideoController {
|
||||
return [self activeVideo];
|
||||
return [self activeVideo];
|
||||
}
|
||||
%end
|
||||
|
||||
// Workaround for qnblackcat/uYouPlus#10
|
||||
%hook boolSettingsVC
|
||||
- (instancetype)initWithTitle:(NSString *)title sections:(NSArray *)sections footer:(NSString *)footer {
|
||||
if (@available(iOS 15, *))
|
||||
if (![self valueForKey:@"_lastNotifiedTraitCollection"])
|
||||
[self setValue:[UITraitCollection currentTraitCollection] forKey:@"_lastNotifiedTraitCollection"];
|
||||
return %orig;
|
||||
}
|
||||
%end
|
||||
|
||||
@@ -234,7 +247,6 @@ BOOL hidePaidPromotionCard() {
|
||||
// YouRememberCaption: https://poomsmart.github.io/repo/depictions/youremembercaption.html
|
||||
%hook YTColdConfig
|
||||
- (BOOL)respectDeviceCaptionSetting { return NO; }
|
||||
- (BOOL)shouldUseAppThemeSetting { return YES; } // v16.xx
|
||||
%end
|
||||
|
||||
// NOYTPremium - https://github.com/PoomSmart/NoYTPremium/
|
||||
@@ -273,17 +285,68 @@ BOOL hidePaidPromotionCard() {
|
||||
- (void)setUserInteractionEnabled:(BOOL)enabled { %orig(YES); }
|
||||
%end
|
||||
|
||||
%hook YTReelPlayerViewControllerSub // v16.42.3 - @level3tjg: https://reddit.com/r/jailbreak/comments/v29yvk/_/iasl1l0/
|
||||
- (BOOL)shouldEnablePlayerBar { return YES; }
|
||||
%end
|
||||
|
||||
// Workaround for issue #54
|
||||
%hook YTMainAppVideoPlayerOverlayViewController
|
||||
- (void)updateRelatedVideos {
|
||||
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"relatedVideosAtTheEndOfYTVideos"] == NO) {}
|
||||
else { return %orig; }
|
||||
}
|
||||
%end
|
||||
%end
|
||||
|
||||
// Workaround for qnblackcat/uYouPlus#253, qnblackcat/uYouPlus#170
|
||||
%hook YTReelWatchPlaybackOverlayView
|
||||
- (YTQTMButton *)overflowButton {
|
||||
if ([self respondsToSelector:@selector(orderedRightSideButtons)] &&
|
||||
[self orderedRightSideButtons].count != 0)
|
||||
return [self orderedRightSideButtons][0];
|
||||
return %orig;
|
||||
}
|
||||
%end
|
||||
|
||||
%hook NSLayoutConstraint
|
||||
+ (instancetype)constraintWithItem:(UIView *)view1
|
||||
attribute:(NSLayoutAttribute)attr1
|
||||
relatedBy:(NSLayoutRelation)relation
|
||||
toItem:(UIView *)view2
|
||||
attribute:(NSLayoutAttribute)attr2
|
||||
multiplier:(CGFloat)multiplier
|
||||
constant:(CGFloat)c {
|
||||
if (![view1 isKindOfClass:%c(YTReelPlayerBottomButton)] &&
|
||||
![view1.accessibilityIdentifier isEqualToString:@"com.miro.uyou"])
|
||||
return %orig;
|
||||
if (!view2) {
|
||||
view1.hidden = YES;
|
||||
return [NSLayoutConstraint alloc];
|
||||
}
|
||||
YTReelPlayerBottomButton *uYouButton = (YTReelPlayerBottomButton *)view1;
|
||||
YTReelPlayerBottomButton *topButton = (YTReelPlayerBottomButton *)view2;
|
||||
NSString *uYouButtonTitle =
|
||||
[view2.accessibilityIdentifier isEqualToString:@"com.miro.uyou"]
|
||||
? @"uYou"
|
||||
: @"uYouLocal";
|
||||
uYouButton.accessibilityLabel = uYouButtonTitle;
|
||||
uYouButton.uppercaseTitle = NO;
|
||||
[uYouButton setTitle:uYouButtonTitle forState:UIControlStateNormal];
|
||||
[uYouButton
|
||||
setTitleTypeKind:MSHookIvar<NSInteger>(topButton, "_typeKind")
|
||||
typeVariant:MSHookIvar<NSInteger>(topButton, "_typeVariant")];
|
||||
uYouButton.applyRightSideLayoutImageSize = topButton.applyRightSideLayoutImageSize;
|
||||
uYouButton.buttonImageTitlePadding = topButton.buttonImageTitlePadding;
|
||||
uYouButton.buttonLayoutStyle = topButton.buttonLayoutStyle;
|
||||
uYouButton.sizeWithPaddingAndInsets = topButton.sizeWithPaddingAndInsets;
|
||||
uYouButton.verticalContentPadding = topButton.verticalContentPadding;
|
||||
return %orig;
|
||||
}
|
||||
%end
|
||||
|
||||
// Prevent uYou player bar from showing when not playing downloaded media
|
||||
%hook PlayerManager
|
||||
- (void)pause {
|
||||
if (isnan([self progress]))
|
||||
return;
|
||||
%orig;
|
||||
}
|
||||
%end
|
||||
|
||||
// Hide YouTube Shorts banner in Home page? - @MiRO92 - YTNoShorts: https://github.com/MiRO92/YTNoShorts
|
||||
%hook YTAsyncCollectionView
|
||||
@@ -371,6 +434,14 @@ BOOL hidePaidPromotionCard() {
|
||||
}
|
||||
%end
|
||||
|
||||
%hook APMAEU
|
||||
+ (BOOL)isFAS { return YES; }
|
||||
%end
|
||||
|
||||
%hook GULAppEnvironmentUtil
|
||||
+ (BOOL)isFromAppStore { return YES; }
|
||||
%end
|
||||
|
||||
%hook NSBundle
|
||||
- (NSString *)bundleIdentifier {
|
||||
NSArray *address = [NSThread callStackReturnAddresses];
|
||||
@@ -473,39 +544,6 @@ UIColor* raisedColor = [UIColor colorWithRed:0.035 green:0.035 blue:0.035 alpha:
|
||||
}
|
||||
%end
|
||||
|
||||
%hook YTColorPalette // v16.42.3
|
||||
- (UIColor *)brandBackgroundSolid {
|
||||
if (self.pageStyle == 1) {
|
||||
return [UIColor blackColor];
|
||||
}
|
||||
return %orig;
|
||||
}
|
||||
- (UIColor *)brandBackgroundPrimary {
|
||||
if (self.pageStyle == 1) {
|
||||
return [UIColor blackColor];
|
||||
}
|
||||
return %orig;
|
||||
}
|
||||
- (UIColor *)brandBackgroundSecondary {
|
||||
if (self.pageStyle == 1) {
|
||||
return [[UIColor blackColor] colorWithAlphaComponent:0.9];
|
||||
}
|
||||
return %orig;
|
||||
}
|
||||
- (UIColor *)staticBrandBlack {
|
||||
if (self.pageStyle == 1) {
|
||||
return [UIColor blackColor];
|
||||
}
|
||||
return %orig;
|
||||
}
|
||||
- (UIColor *)generalBackgroundA {
|
||||
if (self.pageStyle == 1) {
|
||||
return [UIColor blackColor];
|
||||
}
|
||||
return %orig;
|
||||
}
|
||||
%end
|
||||
|
||||
// Account view controller
|
||||
%hook YTAccountPanelBodyViewController
|
||||
- (UIColor *)backgroundColor:(NSInteger)pageStyle {
|
||||
@@ -531,7 +569,7 @@ UIColor* raisedColor = [UIColor colorWithRed:0.035 green:0.035 blue:0.035 alpha:
|
||||
- (void)didMoveToWindow {
|
||||
%orig;
|
||||
if (isDarkMode() && [self.nextResponder isKindOfClass:%c(_ASDisplayView)]) {
|
||||
self.superview.backgroundColor = [UIColor clearColor];
|
||||
self.superview.backgroundColor = [UIColor blackColor];
|
||||
}
|
||||
}
|
||||
%end
|
||||
@@ -656,7 +694,6 @@ UIColor* raisedColor = [UIColor colorWithRed:0.035 green:0.035 blue:0.035 alpha:
|
||||
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.filter_chip_bar"]) { self.backgroundColor = [UIColor blackColor]; }
|
||||
if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.comment_composer"]) { 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]; }
|
||||
|
||||
Reference in New Issue
Block a user