Merge pull request #216 from bhackel/misc-updates

Misc updates
This commit is contained in:
arichornlover
2024-07-07 04:24:13 -05:00
committed by GitHub
17 changed files with 394 additions and 331 deletions

View File

@@ -6,18 +6,23 @@ name: Build and Release YTLitePlus
on:
workflow_dispatch:
inputs:
sdk_version:
description: "iOS SDK Version"
default: "16.5"
required: true
type: string
decrypted_youtube_url:
description: "The direct URL to the decrypted YouTube ipa"
description: "Direct URL of the decrypted YouTube ipa"
default: ""
required: true
type: string
bundle_id:
description: "Modify the bundle ID. Not recommended"
description: "Modify the bundle ID"
default: "com.google.ios.youtube"
required: true
type: string
app_name:
description: "Modify the name of the app on the Home Screen. Not recommended"
description: "Modify the app name"
default: "YouTube"
required: true
type: string
@@ -26,9 +31,19 @@ on:
default: ""
required: false
type: string
upload_artifact:
description: "Upload ipa as artifact"
default: true
required: false
type: boolean
catbox_upload:
description: "Upload ipa to Catbox.moe"
default: false
required: false
type: boolean
create_release:
description: "Create a draft release"
default: true
default: false
required: false
type: boolean
@@ -62,21 +77,22 @@ jobs:
path: theos
submodules: recursive
- name: Caching
- name: SDK Caching
id: SDK
uses: actions/cache@v4.0.2
env:
cache-name: iOS-16.5-SDK
cache-name: iOS-${{ inputs.sdk_version }}-SDK
with:
path: theos/sdks/
key: ${{ env.cache-name }}
restore-keys: ${{ env.cache-name }}
- name: Download iOS 16.5 SDK
- name: Download iOS SDK
if: steps.SDK.outputs.cache-hit != 'true'
run: |
git clone -n --depth=1 --filter=tree:0 https://github.com/theos/sdks/
cd sdks
git sparse-checkout set --no-cone iPhoneOS16.5.sdk
git sparse-checkout set --no-cone iPhoneOS${{ inputs.sdk_version }}.sdk
git checkout
mv *.sdk $THEOS/sdks
env:
@@ -124,6 +140,7 @@ jobs:
sed -i '' "12s#.*#BUNDLE_ID = ${{ env.BUNDLE_ID }}#g" Makefile
sed -i '' "11s#.*#DISPLAY_NAME = ${{ env.APP_NAME }}#g" Makefile
sed -i '' "s/^PACKAGE_VERSION.*$/PACKAGE_VERSION = ${{ env.YT_VERSION }}-${{ env.YTLITE_VERSION }}/" Makefile
sed -i '' "1s#.*#export TARGET = iphone:clang:${{ inputs.sdk_version }}:15.0#g" Makefile
make package FINALPACKAGE=1
(mv "packages/$(ls -t packages | head -n1)" "packages/YTLitePlus_${{ env.YT_VERSION }}_${{ env.YTLITE_VERSION }}.ipa")
echo "package=$(ls -t packages | head -n1)" >>$GITHUB_OUTPUT
@@ -135,6 +152,7 @@ jobs:
APP_NAME: ${{ inputs.app_name }}
- name: Upload Artifact
if: ${{ inputs.upload_artifact }}
uses: actions/upload-artifact@v4.3.3
with:
name: YTLitePlus_${{ env.YT_VERSION }}_${{ env.YTLITE_VERSION }}
@@ -142,6 +160,7 @@ jobs:
if-no-files-found: error
- name: Upload Artifact to Catbox
if: ${{ inputs.catbox_upload }}
run: |
RESPONSE=$(curl -F "reqtype=fileupload" -F "fileToUpload=@${{ github.workspace }}/main/packages/${{ steps.build_package.outputs.package }}" https://catbox.moe/user/api.php)
CATBOX_URL=$(echo $RESPONSE | grep -o -E 'https://files.catbox.moe/[^"]*')
@@ -150,25 +169,27 @@ jobs:
echo "CATBOX_FILE=$CATBOX_FILE" >> $GITHUB_ENV
- name: Prepare Release Notes
if: ${{ inputs.create_release }}
run: |
export TODAY=$(date '+%Y-%m-%d')
sed "s/%ytliteplus_version%/${{ env.YTLITE_VERSION }}/g; s/%youtube_version%/${{ env.YT_VERSION }}/g; s/%catbox_url%/${{ env.CATBOX_FILE }}/g; s/%date%/$TODAY/g" \
main/.github/RELEASE_TEMPLATE/Release.md > ${{ github.workspace }}/release_notes.md
- name: Create Release
if: ${{ inputs.create_release }}
id: create_release
uses: softprops/action-gh-release@v2.0.6
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
DRAFT: ${{ inputs.create_release }}
with:
tag_name: v${{ env.YT_VERSION }}-${{ env.YTLITE_VERSION }}
name: v${{ env.YT_VERSION }}-${{ env.YTLITE_VERSION }} - YTLitePlus
files: main/packages/*.ipa
draft: ${{ env.DRAFT }}
draft: true
body_path: ${{ github.workspace }}/release_notes.md
- name: Update Altstore Source with latest release
if: ${{ inputs.create_release }}
run: |
curl --location --request POST 'https://api.github.com/repos/Balackburn/YTLitePlusAltstore/dispatches' \
--header 'Authorization: token ${{ secrets.PERSONAL_ACCESS_TOKEN }}' \

View File

@@ -7,6 +7,18 @@
#import "../Tweaks/YouTubeHeader/YTSettingsPickerViewController.h"
// #import "AppIconOptionsController.h"
// Basic switch item
#define BASIC_SWITCH(title, description, key) \
[YTSettingsSectionItemClass switchItemWithTitle:title \
titleDescription:description \
accessibilityIdentifier:nil \
switchOn:IsEnabled(key) \
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) { \
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:key]; \
return YES; \
} \
settingItemId:0]
static BOOL IsEnabled(NSString *key) {
return [[NSUserDefaults standardUserDefaults] boolForKey:key];
}
@@ -19,7 +31,6 @@ static int contrastMode() {
static int appVersionSpoofer() {
return [[NSUserDefaults standardUserDefaults] integerForKey:@"versionSpoofer"];
}
static const NSInteger YTLitePlusSection = 788;
@interface YTSettingsSectionItemManager (YTLitePlus)
- (void)updateYTLitePlusSectionWithEntry:(id)entry;
@@ -27,6 +38,24 @@ static const NSInteger YTLitePlusSection = 788;
extern NSBundle *YTLitePlusBundle();
// Add both YTLite and YTLitePlus to YouGroupSettings
static const NSInteger YTLitePlusSection = 788;
static const NSInteger YTLiteSection = 789;
%hook YTSettingsGroupData
+ (NSMutableArray <NSNumber *> *)tweaks {
NSMutableArray <NSNumber *> *originalTweaks = %orig;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
[originalTweaks addObject:@(YTLitePlusSection)];
[originalTweaks addObject:@(YTLiteSection)];
});
return originalTweaks;
}
%end
// Settings
%hook YTAppSettingsPresentationData
+ (NSArray *)settingsCategoryOrder {
@@ -83,65 +112,13 @@ extern NSBundle *YTLitePlusBundle();
# pragma mark - Video Controls Overlay Options
YTSettingsSectionItem *videoControlOverlayGroup = [YTSettingsSectionItemClass itemWithTitle:LOC(@"VIDEO_CONTROLS_OVERLAY_OPTIONS") accessibilityIdentifier:nil detailTextBlock:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
NSArray <YTSettingsSectionItem *> *rows = @[
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"ENABLE_SHARE_BUTTON")
titleDescription:LOC(@"ENABLE_SHARE_BUTTON_DESC")
accessibilityIdentifier:nil
switchOn:IsEnabled(@"enableShareButton_enabled")
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"enableShareButton_enabled"];
return YES;
}
settingItemId:0],
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"ENABLE_SAVE_TO_PLAYLIST_BUTTON")
titleDescription:LOC(@"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC")
accessibilityIdentifier:nil
switchOn:IsEnabled(@"enableSaveToButton_enabled")
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"enableSaveToButton_enabled"];
return YES;
}
settingItemId:0],
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"HIDE_SHADOW_OVERLAY_BUTTONS")
titleDescription:LOC(@"HIDE_SHADOW_OVERLAY_BUTTONS_DESC")
accessibilityIdentifier:nil
switchOn:IsEnabled(@"hideVideoPlayerShadowOverlayButtons_enabled")
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"hideVideoPlayerShadowOverlayButtons_enabled"];
return YES;
}
settingItemId:0],
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"HIDE_RIGHT_PANEL")
titleDescription:LOC(@"HIDE_RIGHT_PANEL_DESC")
accessibilityIdentifier:nil
switchOn:IsEnabled(@"hideRightPanel_enabled")
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"hideRightPanel_enabled"];
return YES;
}
settingItemId:0],
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"NO_SUGGESTED_VIDEO")
titleDescription:LOC(@"NO_SUGGESTED_VIDEO_DESC")
accessibilityIdentifier:nil
switchOn:IsEnabled(@"noSuggestedVideo_enabled")
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"noSuggestedVideo_enabled"];
return YES;
}
settingItemId:0],
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"HIDE_HEATWAVES")
titleDescription:LOC(@"HIDE_HEATWAVES_DESC")
accessibilityIdentifier:nil
switchOn:IsEnabled(@"hideHeatwaves_enabled")
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"hideHeatwaves_enabled"];
return YES;
}
settingItemId:0]
BASIC_SWITCH(LOC(@"ENABLE_SHARE_BUTTON"), LOC(@"ENABLE_SHARE_BUTTON_DESC"), @"enableShareButton_enabled"),
BASIC_SWITCH(LOC(@"ENABLE_SAVE_TO_PLAYLIST_BUTTON"), LOC(@"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC"), @"enableSaveToButton_enabled"),
BASIC_SWITCH(LOC(@"HIDE_SHADOW_OVERLAY_BUTTONS"), LOC(@"HIDE_SHADOW_OVERLAY_BUTTONS_DESC"), @"hideVideoPlayerShadowOverlayButtons_enabled"),
BASIC_SWITCH(LOC(@"HIDE_RIGHT_PANEL"), LOC(@"HIDE_RIGHT_PANEL_DESC"), @"hideRightPanel_enabled"),
BASIC_SWITCH(LOC(@"NO_SUGGESTED_VIDEO"), LOC(@"NO_SUGGESTED_VIDEO_DESC"), @"noSuggestedVideo_enabled"),
BASIC_SWITCH(LOC(@"HIDE_HEATWAVES"), LOC(@"HIDE_HEATWAVES_DESC"), @"hideHeatwaves_enabled"),
BASIC_SWITCH(LOC(@"SEEK_ANYWHERE"), LOC(@"SEEK_ANYWHERE_DESC"), @"seekAnywhere_enabled")
];
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] initWithNavTitle:LOC(@"VIDEO_CONTROLS_OVERLAY_OPTIONS") pickerSectionTitle:nil rows:rows selectedItemIndex:NSNotFound parentResponder:[self parentResponder]];
[settingsViewController pushViewController:picker];
@@ -152,95 +129,15 @@ extern NSBundle *YTLitePlusBundle();
# pragma mark - App Settings Overlay Options
YTSettingsSectionItem *appSettingsOverlayGroup = [YTSettingsSectionItemClass itemWithTitle:LOC(@"APP_SETTINGS_OVERLAY_OPTIONS") accessibilityIdentifier:nil detailTextBlock:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
NSArray <YTSettingsSectionItem *> *rows = @[
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"HIDE_ACCOUNT_SECTION")
titleDescription:LOC(@"APP_RESTART_DESC")
accessibilityIdentifier:nil
switchOn:IsEnabled(@"disableAccountSection_enabled")
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"disableAccountSection_enabled"];
return YES;
}
settingItemId:0],
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"HIDE_AUTOPLAY_SECTION")
titleDescription:LOC(@"APP_RESTART_DESC")
accessibilityIdentifier:nil
switchOn:IsEnabled(@"disableAutoplaySection_enabled")
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"disableAutoplaySection_enabled"];
return YES;
}
settingItemId:0],
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"HIDE_TRYNEWFEATURES_SECTION")
titleDescription:LOC(@"APP_RESTART_DESC")
accessibilityIdentifier:nil
switchOn:IsEnabled(@"disableTryNewFeaturesSection_enabled")
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"disableTryNewFeaturesSection_enabled"];
return YES;
}
settingItemId:0],
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"HIDE_VIDEOQUALITYPREFERENCES_SECTION")
titleDescription:LOC(@"APP_RESTART_DESC")
accessibilityIdentifier:nil
switchOn:IsEnabled(@"disableVideoQualityPreferencesSection_enabled")
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"disableVideoQualityPreferencesSection_enabled"];
return YES;
}
settingItemId:0],
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"HIDE_NOTIFICATIONS_SECTION")
titleDescription:LOC(@"APP_RESTART_DESC")
accessibilityIdentifier:nil
switchOn:IsEnabled(@"disableNotificationsSection_enabled")
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"disableNotificationsSection_enabled"];
return YES;
}
settingItemId:0],
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"HIDE_MANAGEALLHISTORY_SECTION")
titleDescription:LOC(@"APP_RESTART_DESC")
accessibilityIdentifier:nil
switchOn:IsEnabled(@"disableManageAllHistorySection_enabled")
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"disableManageAllHistorySection_enabled"];
return YES;
}
settingItemId:0],
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"HIDE_YOURDATAINYOUTUBE_SECTION")
titleDescription:LOC(@"APP_RESTART_DESC")
accessibilityIdentifier:nil
switchOn:IsEnabled(@"disableYourDataInYouTubeSection_enabled")
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"disableYourDataInYouTubeSection_enabled"];
return YES;
}
settingItemId:0],
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"HIDE_PRIVACY_SECTION")
titleDescription:LOC(@"APP_RESTART_DESC")
accessibilityIdentifier:nil
switchOn:IsEnabled(@"disablePrivacySection_enabled")
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"disablePrivacySection_enabled"];
return YES;
}
settingItemId:0],
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"HIDE_LIVECHAT_SECTION")
titleDescription:LOC(@"APP_RESTART_DESC")
accessibilityIdentifier:nil
switchOn:IsEnabled(@"disableLiveChatSection_enabled")
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"disableLiveChatSection_enabled"];
return YES;
}
settingItemId:0]
BASIC_SWITCH(LOC(@"HIDE_ACCOUNT_SECTION"), LOC(@"APP_RESTART_DESC"), @"disableAccountSection_enabled"),
BASIC_SWITCH(LOC(@"HIDE_AUTOPLAY_SECTION"), LOC(@"APP_RESTART_DESC"), @"disableAutoplaySection_enabled"),
BASIC_SWITCH(LOC(@"HIDE_TRYNEWFEATURES_SECTION"), LOC(@"APP_RESTART_DESC"), @"disableTryNewFeaturesSection_enabled"),
BASIC_SWITCH(LOC(@"HIDE_VIDEOQUALITYPREFERENCES_SECTION"), LOC(@"APP_RESTART_DESC"), @"disableVideoQualityPreferencesSection_enabled"),
BASIC_SWITCH(LOC(@"HIDE_NOTIFICATIONS_SECTION"), LOC(@"APP_RESTART_DESC"), @"disableNotificationsSection_enabled"),
BASIC_SWITCH(LOC(@"HIDE_MANAGEALLHISTORY_SECTION"), LOC(@"APP_RESTART_DESC"), @"disableManageAllHistorySection_enabled"),
BASIC_SWITCH(LOC(@"HIDE_YOURDATAINYOUTUBE_SECTION"), LOC(@"APP_RESTART_DESC"), @"disableYourDataInYouTubeSection_enabled"),
BASIC_SWITCH(LOC(@"HIDE_PRIVACY_SECTION"), LOC(@"APP_RESTART_DESC"), @"disablePrivacySection_enabled"),
BASIC_SWITCH(LOC(@"HIDE_LIVECHAT_SECTION"), LOC(@"APP_RESTART_DESC"), @"disableLiveChatSection_enabled")
];
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] initWithNavTitle:LOC(@"App Settings Overlay Options") pickerSectionTitle:nil rows:rows selectedItemIndex:NSNotFound parentResponder:[self parentResponder]];
[settingsViewController pushViewController:picker];
@@ -381,184 +278,84 @@ extern NSBundle *YTLitePlusBundle();
[settingsViewController reloadData];
return YES;
}],
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"OLED_KEYBOARD")
titleDescription:LOC(@"OLED_KEYBOARD_DESC")
accessibilityIdentifier:nil
switchOn:IsEnabled(@"oledKeyBoard_enabled")
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"oledKeyBoard_enabled"];
return YES;
}
settingItemId:0],
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"LOW_CONTRAST_MODE")
titleDescription:LOC(@"LOW_CONTRAST_MODE_DESC")
accessibilityIdentifier:nil
switchOn:IsEnabled(@"lowContrastMode_enabled")
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"lowContrastMode_enabled"];
return YES;
}
settingItemId:0], lowContrastModeSection];
BASIC_SWITCH(LOC(@"OLED_KEYBOARD"), LOC(@"OLED_KEYBOARD_DESC"), @"oledKeyBoard_enabled"),
BASIC_SWITCH(LOC(@"LOW_CONTRAST_MODE"), LOC(@"LOW_CONTRAST_MODE_DESC"), @"lowContrastMode_enabled"),
lowContrastModeSection
];
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] initWithNavTitle:LOC(@"THEME_OPTIONS") pickerSectionTitle:nil rows:rows selectedItemIndex:GetSelection(@"appTheme") parentResponder:[self parentResponder]];
[settingsViewController pushViewController:picker];
return YES;
}];
[sectionItems addObject:themeGroup];
# pragma mark - Copy of Playback in feeds section - @bhackel
// This section is hidden in vanilla YouTube when using the new settings UI, so
// we can recreate it here
YTSettingsSectionItem *playbackInFeedsGroup = [YTSettingsSectionItemClass itemWithTitle:LOC(@"PLAYBACK_IN_FEEDS")
accessibilityIdentifier:nil
detailTextBlock:^NSString *() {
switch (GetSelection(@"inline_muted_playback_enabled")) {
case 3:
return LOC(@"PLAYBACK_IN_FEEDS_WIFI_ONLY");
case 1:
return LOC(@"PLAYBACK_IN_FEEDS_OFF");
case 2:
default:
return LOC(@"PLAYBACK_IN_FEEDS_ALWAYS_ON");
}
}
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
NSArray <YTSettingsSectionItem *> *rows = @[
[YTSettingsSectionItemClass checkmarkItemWithTitle:LOC(@"PLAYBACK_IN_FEEDS_OFF") selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
[[NSUserDefaults standardUserDefaults] setInteger:1 forKey:@"inline_muted_playback_enabled"];
[settingsViewController reloadData];
return YES;
}],
[YTSettingsSectionItemClass checkmarkItemWithTitle:LOC(@"PLAYBACK_IN_FEEDS_ALWAYS_ON") selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
[[NSUserDefaults standardUserDefaults] setInteger:2 forKey:@"inline_muted_playback_enabled"];
[settingsViewController reloadData];
return YES;
}],
[YTSettingsSectionItemClass checkmarkItemWithTitle:LOC(@"PLAYBACK_IN_FEEDS_WIFI_ONLY") selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
[[NSUserDefaults standardUserDefaults] setInteger:3 forKey:@"inline_muted_playback_enabled"];
[settingsViewController reloadData];
return YES;
}],
];
// It seems values greater than 3 act the same as Always On (Index 1)
int (^getInlineSelection)() = ^int() {
int selection = GetSelection(@"inline_muted_playback_enabled") - 1;
return selection > 3 ? 1 : selection;
};
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] initWithNavTitle:LOC(@"PLAYBACK_IN_FEEDS") pickerSectionTitle:nil rows:rows selectedItemIndex:getInlineSelection() parentResponder:[self parentResponder]];
[settingsViewController pushViewController:picker];
return YES;
}
];
# pragma mark - Miscellaneous
YTSettingsSectionItem *miscellaneousGroup = [YTSettingsSectionItemClass itemWithTitle:LOC(@"MISCELLANEOUS") accessibilityIdentifier:nil detailTextBlock:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
NSArray <YTSettingsSectionItem *> *rows = @[
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"ENABLE_YT_STARTUP_ANIMATION")
titleDescription:LOC(@"ENABLE_YT_STARTUP_ANIMATION_DESC")
accessibilityIdentifier:nil
switchOn:IsEnabled(@"ytStartupAnimation_enabled")
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"ytStartupAnimation_enabled"];
return YES;
}
settingItemId:0],
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"HIDE_MODERN_INTERFACE")
titleDescription:LOC(@"HIDE_MODERN_INTERFACE_DESC")
accessibilityIdentifier:nil
switchOn:IsEnabled(@"ytNoModernUI_enabled")
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"ytNoModernUI_enabled"];
return YES;
}
settingItemId:0],
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"IPAD_LAYOUT")
titleDescription:LOC(@"IPAD_LAYOUT_DESC")
accessibilityIdentifier:nil
switchOn:IsEnabled(@"iPadLayout_enabled")
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"iPadLayout_enabled"];
return YES;
}
settingItemId:0],
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"IPHONE_LAYOUT")
titleDescription:LOC(@"IPHONE_LAYOUT_DESC")
accessibilityIdentifier:nil
switchOn:IsEnabled(@"iPhoneLayout_enabled")
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"iPhoneLayout_enabled"];
return YES;
}
settingItemId:0],
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"CAST_CONFIRM")
titleDescription:LOC(@"CAST_CONFIRM_DESC")
accessibilityIdentifier:nil
switchOn:IsEnabled(@"castConfirm_enabled")
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"castConfirm_enabled"];
return YES;
}
settingItemId:0],
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"NEW_MINIPLAYER_STYLE")
titleDescription:LOC(@"NEW_MINIPLAYER_STYLE_DESC")
accessibilityIdentifier:nil
switchOn:IsEnabled(@"bigYTMiniPlayer_enabled")
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"bigYTMiniPlayer_enabled"];
return YES;
}
settingItemId:0],
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"STOCK_VOLUME_HUD")
titleDescription:LOC(@"STOCK_VOLUME_HUD_DESC")
accessibilityIdentifier:nil
switchOn:IsEnabled(@"stockVolumeHUD_enabled")
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"stockVolumeHUD_enabled"];
return YES;
}
settingItemId:0],
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"UN_SHORTS")
titleDescription:LOC(@"UN_SHORTS_DESC")
accessibilityIdentifier:nil
switchOn:IsEnabled(@"UnShorts_enabled")
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"UnShorts_enabled"];
return YES ;
}
settingItemId:0],
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"HIDE_COMMUNITY_POSTS")
titleDescription:LOC(@"HIDE_COMMUNITY_POSTS_DESC")
accessibilityIdentifier:nil
switchOn:IsEnabled(@"hideCommunityPosts_enabled")
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"hideCommunityPosts_enabled"];
return YES;
}
settingItemId:0],
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"HIDE_CAST_BUTTON")
titleDescription:LOC(@"HIDE_CAST_BUTTON_DESC")
accessibilityIdentifier:nil
switchOn:IsEnabled(@"hideCastButton_enabled")
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"hideCastButton_enabled"];
return YES;
}
settingItemId:0],
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"HIDE_SPONSORBLOCK_BUTTON")
titleDescription:LOC(@"HIDE_SPONSORBLOCK_BUTTON_DESC")
accessibilityIdentifier:nil
switchOn:IsEnabled(@"hideSponsorBlockButton_enabled")
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"hideSponsorBlockButton_enabled"];
return YES;
}
settingItemId:0],
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"YT_SPEED")
titleDescription:LOC(@"YT_SPEED_DESC")
accessibilityIdentifier:nil
switchOn:IsEnabled(@"ytSpeed_enabled")
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"ytSpeed_enabled"];
return YES;
}
settingItemId:0],
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"HIDE_HOME_TAB")
titleDescription:LOC(@"HIDE_HOME_TAB_DESC")
accessibilityIdentifier:nil
switchOn:IsEnabled(@"hideHomeTab_enabled")
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"hideHomeTab_enabled"];
return YES;
}
settingItemId:0],
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"ENABLE_FLEX")
titleDescription:LOC(@"ENABLE_FLEX_DESC")
accessibilityIdentifier:nil
switchOn:IsEnabled(@"flex_enabled")
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"flex_enabled"];
return YES;
}
settingItemId:0],
[YTSettingsSectionItemClass switchItemWithTitle:LOC(@"APP_VERSION_SPOOFER_LITE")
titleDescription:LOC(@"APP_VERSION_SPOOFER_LITE_DESC")
accessibilityIdentifier:nil
switchOn:IsEnabled(@"enableVersionSpoofer_enabled")
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"enableVersionSpoofer_enabled"];
return YES;
}
settingItemId:0], versionSpooferSection];
playbackInFeedsGroup,
// BASIC_SWITCH(LOC(@"NEW_SETTINGS_UI"), LOC(@"NEW_SETTINGS_UI_DESC"), @"newSettingsUI_enabled"), // disabled because YTLite is probably forcing it to NO
BASIC_SWITCH(LOC(@"ENABLE_YT_STARTUP_ANIMATION"), LOC(@"ENABLE_YT_STARTUP_ANIMATION_DESC"), @"ytStartupAnimation_enabled"),
BASIC_SWITCH(LOC(@"HIDE_MODERN_INTERFACE"), LOC(@"HIDE_MODERN_INTERFACE_DESC"), @"ytNoModernUI_enabled"),
BASIC_SWITCH(LOC(@"IPAD_LAYOUT"), LOC(@"IPAD_LAYOUT_DESC"), @"iPadLayout_enabled"),
BASIC_SWITCH(LOC(@"IPHONE_LAYOUT"), LOC(@"IPHONE_LAYOUT_DESC"), @"iPhoneLayout_enabled"),
BASIC_SWITCH(LOC(@"CAST_CONFIRM"), LOC(@"CAST_CONFIRM_DESC"), @"castConfirm_enabled"),
BASIC_SWITCH(LOC(@"NEW_MINIPLAYER_STYLE"), LOC(@"NEW_MINIPLAYER_STYLE_DESC"), @"bigYTMiniPlayer_enabled"),
BASIC_SWITCH(LOC(@"STOCK_VOLUME_HUD"), LOC(@"STOCK_VOLUME_HUD_DESC"), @"stockVolumeHUD_enabled"),
BASIC_SWITCH(LOC(@"UN_SHORTS"), LOC(@"UN_SHORTS_DESC"), @"UnShorts_enabled"),
BASIC_SWITCH(LOC(@"HIDE_COMMUNITY_POSTS"), LOC(@"HIDE_COMMUNITY_POSTS_DESC"), @"hideCommunityPosts_enabled"),
BASIC_SWITCH(LOC(@"HIDE_CAST_BUTTON"), LOC(@"HIDE_CAST_BUTTON_DESC"), @"hideCastButton_enabled"),
BASIC_SWITCH(LOC(@"HIDE_SPONSORBLOCK_BUTTON"), LOC(@"HIDE_SPONSORBLOCK_BUTTON_DESC"), @"hideSponsorBlockButton_enabled"),
BASIC_SWITCH(LOC(@"YT_SPEED"), LOC(@"YT_SPEED_DESC"), @"ytSpeed_enabled"),
BASIC_SWITCH(LOC(@"HIDE_HOME_TAB"), LOC(@"HIDE_HOME_TAB_DESC"), @"hideHomeTab_enabled"),
BASIC_SWITCH(LOC(@"FIX_CASTING"), LOC(@"FIX_CASTING_DESC"), @"fixCasting_enabled"),
BASIC_SWITCH(LOC(@"ENABLE_FLEX"), LOC(@"ENABLE_FLEX_DESC"), @"flex_enabled"),
BASIC_SWITCH(LOC(@"APP_VERSION_SPOOFER_LITE"), LOC(@"APP_VERSION_SPOOFER_LITE_DESC"), @"enableVersionSpoofer_enabled"),
versionSpooferSection
];
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] initWithNavTitle:LOC(@"MISCELLANEOUS") pickerSectionTitle:nil rows:rows selectedItemIndex:NSNotFound parentResponder:[self parentResponder]];
[settingsViewController pushViewController:picker];
return YES;

View File

@@ -94,6 +94,14 @@
@property (nonatomic, assign, readwrite) BOOL enableSnapToChapter;
@end
// Hide Home Tab - @bhackel
@interface YTPivotBarViewController : UIViewController
@property NSString *selectedPivotIdentifier;
@property YTIPivotBarRenderer *renderer;
- (void)selectItemWithPivotIdentifier:(NSString *)pivotIdentifier;
- (void)resetViewControllersCache;
@end
// SponsorBlock button in Nav bar
@interface MDCButton : UIButton
@end

View File

@@ -171,7 +171,7 @@ static BOOL IsEnabled(NSString *key) {
// Hide Home Tab - @bhackel
%group gHideHomeTab
%hook YTPivotBarViewController
%hook YTPivotBarView
- (void)setRenderer:(YTIPivotBarRenderer *)renderer {
// Iterate over each renderer item
NSUInteger indexToRemove = -1;
@@ -193,6 +193,35 @@ static BOOL IsEnabled(NSString *key) {
%orig;
}
%end
// Fix bug where contents of leftmost tab is replaced by Home tab
BOOL isTabSelected = NO;
%hook YTPivotBarViewController
- (void)viewDidAppear:(BOOL)animated {
%orig;
if (!isTabSelected) {
// Get the identifier of the selected pivot
NSString *selectedPivotIdentifier = self.selectedPivotIdentifier;
// Find any different tab to switch from by looping through the renderer items
YTIPivotBarRenderer *renderer = self.renderer;
NSArray <YTIPivotBarSupportedRenderers *> *itemsArray = renderer.itemsArray;
for (YTIPivotBarSupportedRenderers *item in itemsArray) {
YTIPivotBarItemRenderer *pivotBarItemRenderer = item.pivotBarItemRenderer;
NSString *pivotIdentifier = pivotBarItemRenderer.pivotIdentifier;
if (![pivotIdentifier isEqualToString:selectedPivotIdentifier]) {
// Switch to this tab
[self selectItemWithPivotIdentifier:pivotIdentifier];
break;
}
}
// Clear any cached controllers to delete the broken home tab
[self resetViewControllersCache];
// Switch back to the original tab
[self selectItemWithPivotIdentifier:selectedPivotIdentifier];
// Update flag to not do it again
isTabSelected = YES;
}
}
%end
%end
// YTNoModernUI - @arichornlover
@@ -369,6 +398,18 @@ static BOOL IsEnabled(NSString *key) {
}
%end
// Fix Casting: https://github.com/arichornlover/uYouEnhanced/issues/606#issuecomment-2098289942
%group gFixCasting
%hook YTColdConfig
- (BOOL)cxClientEnableIosLocalNetworkPermissionReliabilityFixes { return YES; }
- (BOOL)cxClientEnableIosLocalNetworkPermissionUsingSockets { return NO; }
- (BOOL)cxClientEnableIosLocalNetworkPermissionWifiFixes { return YES; }
%end
%hook YTHotConfig
- (BOOL)isPromptForLocalNetworkPermissionsEnabled { return YES; }
%end
%end
// YTUnShorts - https://github.com/PoomSmart/YTUnShorts
%hook YTIElementRenderer
@@ -413,6 +454,20 @@ static NSData *cellDividerData = nil;
}
%end
// Seek anywhere gesture - @bhackel
%hook YTColdConfig
- (BOOL)speedMasterArm2FastForwardWithoutSeekBySliding {
return IsEnabled(@"seekAnywhere_enabled") ? NO : %orig;
}
%end
// New Settings UI - @bhackel
%hook YTColdConfig
- (BOOL)mainAppCoreClientEnableCairoSettings {
return IS_ENABLED(@"newSettingsUI_enabled");
}
%end
// BigYTMiniPlayer: https://github.com/Galactic-Dev/BigYTMiniPlayer
%group Main
%hook YTWatchMiniBarView
@@ -614,6 +669,9 @@ static NSData *cellDividerData = nil;
# pragma mark - ctor
%ctor {
%init;
// Access YouGroupSettings methods
dlopen([[NSString stringWithFormat:@"%@/Frameworks/YouGroupSettings.dylib", [[NSBundle mainBundle] bundlePath]] UTF8String], RTLD_LAZY);
if (IsEnabled(@"hideCastButton_enabled")) {
%init(gHideCastButton);
}
@@ -674,7 +732,9 @@ static NSData *cellDividerData = nil;
if (IsEnabled(@"hideHomeTab_enabled")) {
%init(gHideHomeTab);
}
if (IsEnabled(@"fixCasting_enabled")) {
%init(gFixCasting);
}
// Change the default value of some options
NSArray *allKeys = [[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] allKeys];
@@ -684,4 +744,10 @@ static NSData *cellDividerData = nil;
if (![allKeys containsObject:@"YouPiPEnabled"]) {
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"YouPiPEnabled"];
}
if (![allKeys containsObject:@"newSettingsUI_enabled"]) {
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"newSettingsUI_enabled"];
}
if (![allKeys containsObject:@"fixCasting_enabled"]) {
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"fixCasting_enabled"];
}
}

View File

@@ -23,6 +23,9 @@
"HIDE_HEATWAVES" = "إخفاء موجات الحر";
"HIDE_HEATWAVES_DESC" = "يخفي موجات الحر في مشغل الفيديو. مطلوب إعادة تشغيل التطبيق.";
"SEEK_ANYWHERE" = "Seek Anywhere Gesture";
"SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "App Settings Overlay Options";
@@ -61,6 +64,14 @@
// Miscellaneous
"MISCELLANEOUS" = "متنوع";
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
"PLAYBACK_IN_FEEDS_OFF" = "Off";
"NEW_SETTINGS_UI" = "New Settings UI";
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
@@ -98,6 +109,9 @@
"HIDE_HOME_TAB" = "Hide Home Tab";
"HIDE_HOME_TAB_DESC" = "Be careful when hiding all tabs";
"FIX_CASTING" = "Fix Casting";
"FIX_CASTING_DESC" = "Changes some AB flags to fix casting";
"ENABLE_FLEX" = "تمكين FLEX";
"ENABLE_FLEX_DESC" = "تمكين FLEX للتصحيح (غير مستحسن). اترك هذا إلا إذا كنت تعرف ما تفعله";

View File

@@ -23,6 +23,9 @@
"HIDE_HEATWAVES" = "Hitzewellen ausblenden";
"HIDE_HEATWAVES_DESC" = "Versteckt die Hitzewellen im Videoplayer. Ein Neustart der App ist erforderlich.";
"SEEK_ANYWHERE" = "Seek Anywhere Gesture";
"SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "Overlay-Optionen für App-Einstellungen";
@@ -61,6 +64,14 @@
// Miscellaneous
"MISCELLANEOUS" = "Verschiedenes";
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
"PLAYBACK_IN_FEEDS_OFF" = "Off";
"NEW_SETTINGS_UI" = "New Settings UI";
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
"ENABLE_YT_STARTUP_ANIMATION" = "YouTube-Startanimation aktivieren";
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
@@ -98,6 +109,9 @@
"HIDE_HOME_TAB" = "Hide Home Tab";
"HIDE_HOME_TAB_DESC" = "Be careful when hiding all tabs";
"FIX_CASTING" = "Fix Casting";
"FIX_CASTING_DESC" = "Changes some AB flags to fix casting";
"ENABLE_FLEX" = "FLEX aktivieren";
"ENABLE_FLEX_DESC" = "Aktiviere FLEX zum Debuggen (nicht empfohlen). Lass diese Option deaktiviert, es sei denn, du weißt, was du tust.";

View File

@@ -23,6 +23,9 @@
"HIDE_HEATWAVES" = "Hide Heatwaves";
"HIDE_HEATWAVES_DESC" = "Hides the Heatwaves in the video player. App restart is required.";
"SEEK_ANYWHERE" = "Seek Anywhere Gesture";
"SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "App Settings Overlay Options";
@@ -61,6 +64,14 @@
// Miscellaneous
"MISCELLANEOUS" = "Miscellaneous";
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
"PLAYBACK_IN_FEEDS_OFF" = "Off";
"NEW_SETTINGS_UI" = "New Settings UI";
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
@@ -98,6 +109,9 @@
"HIDE_HOME_TAB" = "Hide Home Tab";
"HIDE_HOME_TAB_DESC" = "Be careful when hiding all tabs";
"FIX_CASTING" = "Fix Casting";
"FIX_CASTING_DESC" = "Changes some AB flags to fix casting";
"ENABLE_FLEX" = "Enable FLEX";
"ENABLE_FLEX_DESC" = "Enable FLEX for debugging (not recommended). Leave this off unless you know what you are doing.";

View File

@@ -23,6 +23,9 @@
"HIDE_HEATWAVES" = "Ocultar Heatwaves";
"HIDE_HEATWAVES_DESC" = "Oculta las Heatwaves en el reproductor de vídeo. Es necesario reiniciar la aplicación.";
"SEEK_ANYWHERE" = "Seek Anywhere Gesture";
"SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "Opciones de superposición de los ajustes de la aplicación";
@@ -61,6 +64,14 @@
// Miscellaneous
"MISCELLANEOUS" = "Misceláneos";
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
"PLAYBACK_IN_FEEDS_OFF" = "Off";
"NEW_SETTINGS_UI" = "New Settings UI";
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
"ENABLE_YT_STARTUP_ANIMATION" = "Activar la animación de inicio de YouTube";
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
@@ -98,6 +109,9 @@
"HIDE_HOME_TAB" = "Hide Home Tab";
"HIDE_HOME_TAB_DESC" = "Be careful when hiding all tabs";
"FIX_CASTING" = "Fix Casting";
"FIX_CASTING_DESC" = "Changes some AB flags to fix casting";
"ENABLE_FLEX" = "Habilitar FLEX";
"ENABLE_FLEX_DESC" = "Habilitar FLEX para depuración (no recomendado). Déjelo desactivado a menos que sepa lo que está haciendo";

View File

@@ -23,6 +23,9 @@
"HIDE_HEATWAVES" = "Masquer les Heatwaves";
"HIDE_HEATWAVES_DESC" = "Masque les Heatwaves dans le lecteur vidéo. Le redémarrage de l'application est requis.";
"SEEK_ANYWHERE" = "Seek Anywhere Gesture";
"SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "Paramètres des options d'overlay de l'application";
@@ -64,6 +67,14 @@
// Miscellaneous
"MISCELLANEOUS" = "Divers";
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
"PLAYBACK_IN_FEEDS_OFF" = "Off";
"NEW_SETTINGS_UI" = "New Settings UI";
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
"ENABLE_YT_STARTUP_ANIMATION" = "Activer l'animation de démarrage YouTube";
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
@@ -101,6 +112,9 @@
"HIDE_HOME_TAB" = "Hide Home Tab";
"HIDE_HOME_TAB_DESC" = "Be careful when hiding all tabs";
"FIX_CASTING" = "Fix Casting";
"FIX_CASTING_DESC" = "Changes some AB flags to fix casting";
"ENABLE_FLEX" = "Activer FLEX";
"ENABLE_FLEX_DESC" = "Activez FLEX pour le débogage (non recommandé). Laissez cette option désactivée, sauf si vous savez ce que vous faites.";
@@ -117,4 +131,4 @@
// Other Localization
"APP_RESTART_DESC" = "Un redémarrage de l'application est requis.";
“CHANGE_APP_ICON" = “Changer l'icône de l'application";
“CHANGE_APP_ICON" = “Changer l'icône de l'application";

View File

@@ -23,6 +23,9 @@
"HIDE_HEATWAVES" = "ヒートウェーブを非表示";
"HIDE_HEATWAVES_DESC" = "動画プレーヤーのヒートウェーブを非表示にします。アプリの再起動が必要です。";
"SEEK_ANYWHERE" = "Seek Anywhere Gesture";
"SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "アプリの設定オーバーレイの設定";
@@ -61,6 +64,14 @@
// Miscellaneous
"MISCELLANEOUS" = "その他";
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
"PLAYBACK_IN_FEEDS_OFF" = "Off";
"NEW_SETTINGS_UI" = "New Settings UI";
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
"ENABLE_YT_STARTUP_ANIMATION" = "YouTube起動時のアニメーションを有効化";
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
@@ -98,6 +109,9 @@
"HIDE_HOME_TAB" = "Hide Home Tab";
"HIDE_HOME_TAB_DESC" = "Be careful when hiding all tabs";
"FIX_CASTING" = "Fix Casting";
"FIX_CASTING_DESC" = "Changes some AB flags to fix casting";
"ENABLE_FLEX" = "FLEXを有効化";
"ENABLE_FLEX_DESC" = "デバッグ用のFLEXを有効化します(推奨しません) \n何をやっているのか分からない場合はオフにしてください。";

View File

@@ -23,6 +23,9 @@
"HIDE_HEATWAVES" = "Hide Heatwaves";
"HIDE_HEATWAVES_DESC" = "Hides the Heatwaves in the video player. App restart is required.";
"SEEK_ANYWHERE" = "Seek Anywhere Gesture";
"SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "App Settings Overlay Options";
@@ -61,6 +64,14 @@
// Miscellaneous
"MISCELLANEOUS" = "Miscellaneous";
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
"PLAYBACK_IN_FEEDS_OFF" = "Off";
"NEW_SETTINGS_UI" = "New Settings UI";
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
@@ -98,6 +109,9 @@
"HIDE_HOME_TAB" = "Hide Home Tab";
"HIDE_HOME_TAB_DESC" = "Be careful when hiding all tabs";
"FIX_CASTING" = "Fix Casting";
"FIX_CASTING_DESC" = "Changes some AB flags to fix casting";
"ENABLE_FLEX" = "Enable FLEX";
"ENABLE_FLEX_DESC" = "Enable FLEX for debugging (not recommended). Leave this off unless you know what you are doing.";

View File

@@ -23,6 +23,9 @@
"HIDE_HEATWAVES" = "Ascunde Heatwaves";
"HIDE_HEATWAVES_DESC" = "Ascundere Heatwaves în player-ul video. Este necesară repornirea aplicației.";
"SEEK_ANYWHERE" = "Seek Anywhere Gesture";
"SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "Opțiuni Overlay Setări Aplicație";
@@ -61,6 +64,14 @@
// Miscellaneous
"MISCELLANEOUS" = "Diverse";
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
"PLAYBACK_IN_FEEDS_OFF" = "Off";
"NEW_SETTINGS_UI" = "New Settings UI";
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
"ENABLE_YT_STARTUP_ANIMATION" = "Activare animație de pornire YouTube";
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
@@ -98,6 +109,9 @@
"HIDE_HOME_TAB" = "Hide Home Tab";
"HIDE_HOME_TAB_DESC" = "Be careful when hiding all tabs";
"FIX_CASTING" = "Fix Casting";
"FIX_CASTING_DESC" = "Changes some AB flags to fix casting";
"ENABLE_FLEX" = "Activare FLEX";
"ENABLE_FLEX_DESC" = "Activați FLEX pentru depanare (nerecomandat). Lăsați această opțiune dezactivată dacă nu știți ce faceți.";

View File

@@ -23,6 +23,9 @@
"HIDE_HEATWAVES" = "Hide Heatwaves";
"HIDE_HEATWAVES_DESC" = "Hides the Heatwaves in the video player. App restart is required.";
"SEEK_ANYWHERE" = "Seek Anywhere Gesture";
"SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "App Settings Overlay Options";
@@ -61,6 +64,14 @@
// Miscellaneous
"MISCELLANEOUS" = "Miscellaneous";
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
"PLAYBACK_IN_FEEDS_OFF" = "Off";
"NEW_SETTINGS_UI" = "New Settings UI";
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
@@ -98,6 +109,9 @@
"HIDE_HOME_TAB" = "Hide Home Tab";
"HIDE_HOME_TAB_DESC" = "Be careful when hiding all tabs";
"FIX_CASTING" = "Fix Casting";
"FIX_CASTING_DESC" = "Changes some AB flags to fix casting";
"ENABLE_FLEX" = "Enable FLEX";
"ENABLE_FLEX_DESC" = "Enable FLEX for debugging (not recommended). Leave this off unless you know what you are doing.";

View File

@@ -38,6 +38,9 @@ https://github.com/PoomSmart/Return-YouTube-Dislikes/tree/main/layout/Library/Ap
"HIDE_HEATWAVES" = "Hide Heatwaves";
"HIDE_HEATWAVES_DESC" = "Hides the Heatwaves in the video player. App restart is required.";
"SEEK_ANYWHERE" = "Seek Anywhere Gesture";
"SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "App Settings Overlay Options";
@@ -76,6 +79,14 @@ https://github.com/PoomSmart/Return-YouTube-Dislikes/tree/main/layout/Library/Ap
// Miscellaneous
"MISCELLANEOUS" = "Miscellaneous";
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
"PLAYBACK_IN_FEEDS_OFF" = "Off";
"NEW_SETTINGS_UI" = "New Settings UI";
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
@@ -113,6 +124,9 @@ https://github.com/PoomSmart/Return-YouTube-Dislikes/tree/main/layout/Library/Ap
"HIDE_HOME_TAB" = "Hide Home Tab";
"HIDE_HOME_TAB_DESC" = "Be careful when hiding all tabs";
"FIX_CASTING" = "Fix Casting";
"FIX_CASTING_DESC" = "Changes some AB flags to fix casting";
"ENABLE_FLEX" = "Enable FLEX";
"ENABLE_FLEX_DESC" = "Enable FLEX for debugging (not recommended). Leave this off unless you know what you are doing.";

View File

@@ -23,6 +23,9 @@
"HIDE_HEATWAVES" = "Hide Heatwaves";
"HIDE_HEATWAVES_DESC" = "Hides the Heatwaves in the video player. App restart is required.";
"SEEK_ANYWHERE" = "Seek Anywhere Gesture";
"SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "App Settings Overlay Options";
@@ -61,6 +64,14 @@
// Miscellaneous
"MISCELLANEOUS" = "Miscellaneous";
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
"PLAYBACK_IN_FEEDS_OFF" = "Off";
"NEW_SETTINGS_UI" = "New Settings UI";
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
@@ -98,6 +109,9 @@
"HIDE_HOME_TAB" = "Hide Home Tab";
"HIDE_HOME_TAB_DESC" = "Be careful when hiding all tabs";
"FIX_CASTING" = "Fix Casting";
"FIX_CASTING_DESC" = "Changes some AB flags to fix casting";
"ENABLE_FLEX" = "Enable FLEX";
"ENABLE_FLEX_DESC" = "Enable FLEX for debugging (not recommended). Leave this off unless you know what you are doing.";

View File

@@ -35,6 +35,9 @@
"HIDE_HEATWAVES" = "Ẩn sóng nhiệt";
"HIDE_HEATWAVES_DESC" = "Ẩn Sóng nhiệt trong trình phát video. Khởi động lại ứng dụng là bắt buộc.";
"SEEK_ANYWHERE" = "Seek Anywhere Gesture";
"SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed";
// Shorts controls overlay options
"SHORTS_CONTROLS_OVERLAY_OPTIONS" = "Tùy chọn lớp phủ điều khiển quần short";

View File

@@ -21,6 +21,9 @@
"HIDE_HEATWAVES" = "隱藏熱浪";
"HIDE_HEATWAVES_DESC" = "在播放器中隱藏熱浪";
"SEEK_ANYWHERE" = "Seek Anywhere Gesture";
"SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "應用程式設定隱藏項目";
@@ -59,6 +62,14 @@
// Miscellaneous
"MISCELLANEOUS" = "更多";
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
"PLAYBACK_IN_FEEDS_OFF" = "Off";
"NEW_SETTINGS_UI" = "New Settings UI";
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
"ENABLE_YT_STARTUP_ANIMATION" = "啟用 Youtube 歡迎動畫";
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
@@ -96,6 +107,9 @@
"HIDE_HOME_TAB" = "Hide Home Tab";
"HIDE_HOME_TAB_DESC" = "Be careful when hiding all tabs";
"FIX_CASTING" = "Fix Casting";
"FIX_CASTING_DESC" = "Changes some AB flags to fix casting";
"ENABLE_FLEX" = "啟用 FLEX不建議使用";
"ENABLE_FLEX_DESC" = "如果不知道這是什麼,請勿啟用";