diff --git a/Makefile b/Makefile index 25fcf37..1930191 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ 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 -TARGET = iphone:clang:latest:12.0 +TARGET = iphone:clang:latest:13.0 uYouPlus_USE_FLEX = 0 uYouPlus_USE_FISHHOOK = 0 ARCHS = arm64 @@ -26,6 +26,7 @@ before-package:: @cp -R Tweaks/YouPiP/layout/Library/Application\ Support/YouPiP.bundle Resources/ @cp -R Tweaks/iSponsorBlock/layout/Library/Application\ Support/iSponsorBlock.bundle Resources/ @cp -R Tweaks/uYou/Library/Application\ Support/uYouBundle.bundle Resources/ + @cp -R lang/uYouPlus.bundle Resources/ @tput setaf 5 && echo -e "==> \033[1mChanging the installation path of dylibs...\033[0m" @codesign --remove-signature .theos/obj/iSponsorBlock.dylib && install_name_tool -change /usr/lib/libcolorpicker.dylib @rpath/libcolorpicker.dylib .theos/obj/iSponsorBlock.dylib @codesign --remove-signature .theos/obj/libcolorpicker.dylib && install_name_tool -change /Library/Frameworks/Alderis.framework/Alderis @rpath/Alderis.framework/Alderis .theos/obj/libcolorpicker.dylib diff --git a/Settings.xm b/Settings.xm index 94defab..78faec5 100644 --- a/Settings.xm +++ b/Settings.xm @@ -2,18 +2,21 @@ #import "Tweaks/YouTubeHeader/YTSettingsSectionItem.h" #import "Tweaks/YouTubeHeader/YTSettingsSectionItemManager.h" +#define LOC(x) [tweakBundle localizedStringForKey:x value:nil table:nil] + @interface YTSettingsSectionItemManager (YouPiP) - (void)updateuYouPlusSectionWithEntry:(id)entry; @end static const NSInteger uYouPlusSection = 500; +extern NSBundle *uYouPlusBundle(); extern BOOL hideHUD(); extern BOOL oled(); extern BOOL oledKB(); extern BOOL autoFullScreen(); -extern BOOL noHoverCard(); -extern BOOL ReExplore(); +extern BOOL hideHoverCard(); +extern BOOL reExplore(); extern BOOL bigYTMiniPlayer(); extern BOOL hideCC(); extern BOOL hideAutoplaySwitch(); @@ -21,6 +24,8 @@ extern BOOL castConfirm(); extern BOOL ytMiniPlayer(); extern BOOL hidePreviousAndNextButton(); +NSBundle *tweakBundle = uYouPlusBundle(); + // Settings %hook YTAppSettingsPresentationData + (NSArray *)settingsCategoryOrder { @@ -37,7 +42,7 @@ extern BOOL hidePreviousAndNextButton(); %new - (void)updateuYouPlusSectionWithEntry:(id)entry { YTSettingsViewController *delegate = [self valueForKey:@"_dataDelegate"]; - YTSettingsSectionItem *hidePreviousAndNextButton = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"Hide Previous and Next button" titleDescription:@"Hide Previous and Next button in video controls overlay."]; + YTSettingsSectionItem *hidePreviousAndNextButton = [[%c(YTSettingsSectionItem) alloc] initWithTitle:LOC(@"HIDE_PREVIOUS_AND_NEXT_BUTTON") titleDescription:LOC(@"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC")]; hidePreviousAndNextButton.hasSwitch = YES; hidePreviousAndNextButton.switchVisible = YES; hidePreviousAndNextButton.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"hidePreviousAndNextButton_enabled"]; @@ -46,7 +51,7 @@ extern BOOL hidePreviousAndNextButton(); return YES; }; - YTSettingsSectionItem *ytMiniPlayer = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"Enable the Miniplayer for all YouTube videos" titleDescription:@"Kid videos for example."]; + YTSettingsSectionItem *ytMiniPlayer = [[%c(YTSettingsSectionItem) alloc] initWithTitle:LOC(@"YT_MINIPLAYER") titleDescription:LOC(@"YT_MINIPLAYER_DESC")]; ytMiniPlayer.hasSwitch = YES; ytMiniPlayer.switchVisible = YES; ytMiniPlayer.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"ytMiniPlayer_enabled"]; @@ -55,7 +60,7 @@ extern BOOL hidePreviousAndNextButton(); return YES; }; - YTSettingsSectionItem *castConfirm = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"Confirm alert before casting (YTCastConfirm)" titleDescription:@"Show a confirm alert before casting to prevent accidentally hijacking TV."]; + YTSettingsSectionItem *castConfirm = [[%c(YTSettingsSectionItem) alloc] initWithTitle:LOC(@"CAST_CONFIRM") titleDescription:LOC(@"CAST_CONFIRM_DESC")]; castConfirm.hasSwitch = YES; castConfirm.switchVisible = YES; castConfirm.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"castConfirm_enabled"]; @@ -64,16 +69,16 @@ extern BOOL hidePreviousAndNextButton(); 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."]; - hoverCardItem.hasSwitch = YES; - hoverCardItem.switchVisible = YES; - hoverCardItem.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"hover_cards_enabled"]; - hoverCardItem.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) { - [[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"hover_cards_enabled"]; + YTSettingsSectionItem *hideHoverCard = [[%c(YTSettingsSectionItem) alloc] initWithTitle:LOC(@"HIDE_HOVER_CARD") titleDescription:LOC(@"HIDE_HOVER_CARD_DESC")]; + hideHoverCard.hasSwitch = YES; + hideHoverCard.switchVisible = YES; + hideHoverCard.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"hideHoverCards_enabled"]; + hideHoverCard.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) { + [[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"hideHoverCards_enabled"]; return YES; }; - YTSettingsSectionItem *bigYTMiniPlayer = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"New miniplayer bar style (BigYTMiniPlayer)" titleDescription:@"App restart is required."]; + YTSettingsSectionItem *bigYTMiniPlayer = [[%c(YTSettingsSectionItem) alloc] initWithTitle:LOC(@"NEW_MINIPLAYER_STYLE") titleDescription:LOC(@"NEW_MINIPLAYER_STYLE_DESC")]; bigYTMiniPlayer.hasSwitch = YES; bigYTMiniPlayer.switchVisible = YES; bigYTMiniPlayer.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"bigYTMiniPlayer_enabled"]; @@ -82,7 +87,7 @@ extern BOOL hidePreviousAndNextButton(); return YES; }; - YTSettingsSectionItem *reExplore = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"Replace Shorts tab with Explore tab (YTReExplore)" titleDescription:@"App restart is required."]; + YTSettingsSectionItem *reExplore = [[%c(YTSettingsSectionItem) alloc] initWithTitle:LOC(@"YT_RE_EXPLORE") titleDescription:LOC(@"YT_RE_EXPLORE_DESC")]; reExplore.hasSwitch = YES; reExplore.switchVisible = YES; reExplore.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"reExplore_enabled"]; @@ -91,7 +96,7 @@ extern BOOL hidePreviousAndNextButton(); return YES; }; - YTSettingsSectionItem *hideCC = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"Hide Subtitles button" titleDescription:@"Hide the Subtitles button in video controls overlay. "]; + YTSettingsSectionItem *hideCC = [[%c(YTSettingsSectionItem) alloc] initWithTitle:LOC(@"HIDE_SUBTITLES_BUTTON") titleDescription:LOC(@"HIDE_SUBTITLES_BUTTON_DESC")]; hideCC.hasSwitch = YES; hideCC.switchVisible = YES; hideCC.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"hideCC_enabled"]; @@ -100,7 +105,7 @@ extern BOOL hidePreviousAndNextButton(); return YES; }; - YTSettingsSectionItem *hideAutoplaySwitch = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"Hide Autoplay switch" titleDescription:@"Hide the Autoplay switch button in video controls overlay."]; + YTSettingsSectionItem *hideAutoplaySwitch = [[%c(YTSettingsSectionItem) alloc] initWithTitle:LOC(@"HIDE_AUTOPLAY_SWITCH") titleDescription:LOC(@"HIDE_AUTOPLAY_SWITCH_DESC")]; hideAutoplaySwitch.hasSwitch = YES; hideAutoplaySwitch.switchVisible = YES; hideAutoplaySwitch.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"hideAutoplaySwitch_enabled"]; @@ -109,16 +114,16 @@ extern BOOL hidePreviousAndNextButton(); return YES; }; - YTSettingsSectionItem *autoFull = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"Auto Full Screen (YTAutoFullScreen)" titleDescription:@"Autoplay videos at full screen."]; + YTSettingsSectionItem *autoFull = [[%c(YTSettingsSectionItem) alloc] initWithTitle:LOC(@"AUTO_FULLSCREEN") titleDescription:LOC(@"AUTO_FULLSCREEN_DESC")]; autoFull.hasSwitch = YES; autoFull.switchVisible = YES; - autoFull.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"autofull_enabled"]; + autoFull.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"autoFull_enabled"]; autoFull.switchBlock = ^BOOL (YTSettingsCell *cell, BOOL enabled) { - [[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"autofull_enabled"]; + [[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"autoFull_enabled"]; return YES; }; - YTSettingsSectionItem *hideHUD = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"Hide HUD Messages" titleDescription:@"Example: CC is turned on/off, Video loop is on,..."]; + YTSettingsSectionItem *hideHUD = [[%c(YTSettingsSectionItem) alloc] initWithTitle:LOC(@"HIDE_HUD_MESSAGES") titleDescription:LOC(@"HIDE_HUD_MESSAGES_DESC")]; hideHUD.hasSwitch = YES; hideHUD.switchVisible = YES; hideHUD.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"hideHUD_enabled"]; @@ -127,7 +132,7 @@ extern BOOL hidePreviousAndNextButton(); return YES; }; - YTSettingsSectionItem *oledDarkMode = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"OLED Dark mode (Experimental)" titleDescription:@"App restart might be needed after switching between Light/Dark theme to fully apply changes. In case OLED Dark mode doesn't work: just switch between Light/Dark theme, then restart the app."]; + YTSettingsSectionItem *oledDarkMode = [[%c(YTSettingsSectionItem) alloc] initWithTitle:LOC(@"OLED_DARKMODE") titleDescription:LOC(@"OLED_DARKMODE_DESC")]; oledDarkMode.hasSwitch = YES; oledDarkMode.switchVisible = YES; oledDarkMode.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"oled_enabled"]; @@ -136,7 +141,7 @@ extern BOOL hidePreviousAndNextButton(); return YES; }; - YTSettingsSectionItem *oledKeyBoard = [[%c(YTSettingsSectionItem) alloc] initWithTitle:@"OLED Keyboard (Experimental)" titleDescription:@"Might not working properly in some cases. App restart is required."]; + YTSettingsSectionItem *oledKeyBoard = [[%c(YTSettingsSectionItem) alloc] initWithTitle:LOC(@"OLED_KEYBOARD") titleDescription:LOC(@"OLED_KEYBOARD_DESC")]; oledKeyBoard.hasSwitch = YES; oledKeyBoard.switchVisible = YES; oledKeyBoard.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"oledKeyBoard_enabled"]; @@ -145,7 +150,7 @@ extern BOOL hidePreviousAndNextButton(); return YES; }; - NSMutableArray *sectionItems = [NSMutableArray arrayWithArray:@[autoFull, castConfirm, ytMiniPlayer, hideAutoplaySwitch, hideCC, hideHUD, hidePreviousAndNextButton, hoverCardItem, bigYTMiniPlayer, oledKeyBoard, oledDarkMode,reExplore]]; + NSMutableArray *sectionItems = [NSMutableArray arrayWithArray:@[autoFull, castConfirm, ytMiniPlayer, hideAutoplaySwitch, hideCC, hideHUD, hidePreviousAndNextButton, hideHoverCard, bigYTMiniPlayer, oledDarkMode, oledKeyBoard, reExplore]]; [delegate setSectionItems:sectionItems forCategory:uYouPlusSection title:@"uYouPlus" titleDescription:nil headerHidden:NO]; }