mirror of
https://github.com/SoPat712/YTLitePlus.git
synced 2025-08-21 18:48:45 -04:00
41
.github/workflows/buildapp.yml
vendored
41
.github/workflows/buildapp.yml
vendored
@@ -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 }}' \
|
||||
|
@@ -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;
|
||||
|
@@ -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
|
||||
|
@@ -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"];
|
||||
}
|
||||
}
|
||||
|
@@ -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 للتصحيح (غير مستحسن). اترك هذا إلا إذا كنت تعرف ما تفعله";
|
||||
|
||||
|
@@ -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.";
|
||||
|
||||
|
@@ -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.";
|
||||
|
||||
|
@@ -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";
|
||||
|
||||
|
@@ -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";
|
||||
|
@@ -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何をやっているのか分からない場合はオフにしてください。";
|
||||
|
||||
|
@@ -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.";
|
||||
|
||||
|
@@ -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.";
|
||||
|
||||
|
@@ -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.";
|
||||
|
||||
|
@@ -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.";
|
||||
|
||||
|
@@ -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.";
|
||||
|
||||
|
@@ -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";
|
||||
|
||||
|
@@ -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" = "如果不知道這是什麼,請勿啟用";
|
||||
|
||||
|
Reference in New Issue
Block a user