From f63957ed01b0d9574bbc1f20d9e2a3373e222bbc Mon Sep 17 00:00:00 2001 From: Bryce Hackel <34104885+bhackel@users.noreply.github.com> Date: Mon, 8 Jul 2024 09:05:20 -0700 Subject: [PATCH] Misc features (#220) * Add YTTapToSeek * Add Disable pull-to-full * Add always remaining time/disable toggle time * Fix headers * Add disable ambient mode --- .gitmodules | 6 +- Source/Settings.xm | 8 +- Tweaks/YouTubeHeader | 2 +- YTLitePlus.h | 21 +++- YTLitePlus.xm | 118 ++++++++++++++---- .../ar.lproj/Localizable.strings | 18 +++ .../de.lproj/Localizable.strings | 18 +++ .../en.lproj/Localizable.strings | 18 +++ .../es.lproj/Localizable.strings | 18 +++ .../fr.lproj/Localizable.strings | 18 +++ .../ja.lproj/Localizable.strings | 18 +++ .../pt.lproj/Localizable.strings | 18 +++ .../ro.lproj/Localizable.strings | 18 +++ .../ru.lproj/Localizable.strings | 18 +++ .../template.lproj/Localizable.strings | 18 +++ .../tr.lproj/Localizable.strings | 18 +++ .../vi.lproj/Localizable.strings | 18 +++ .../zh_TW.lproj/Localizable.strings | 6 + 18 files changed, 347 insertions(+), 30 deletions(-) diff --git a/.gitmodules b/.gitmodules index c42e546..236dae9 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,9 +8,6 @@ path = Tweaks/Return-YouTube-Dislikes url = https://github.com/arichornloverALT/Return-YouTube-Dislikes.git branch = uYouEnhanced -[submodule "Tweaks/YouTubeHeader"] - path = Tweaks/YouTubeHeader - url = https://github.com/arichornloverALT/YouTubeHeader.git [submodule "Tweaks/Alderis"] path = Tweaks/Alderis url = https://github.com/hbang/Alderis.git @@ -50,3 +47,6 @@ [submodule "Tweaks/YouGroupSettings"] path = Tweaks/YouGroupSettings url = https://github.com/arichornloverALT/YouGroupSettings.git +[submodule "Tweaks/YouTubeHeader"] + path = Tweaks/YouTubeHeader + url = https://github.com/PoomSmart/YouTubeHeader.git diff --git a/Source/Settings.xm b/Source/Settings.xm index 556b318..dcd18ab 100644 --- a/Source/Settings.xm +++ b/Source/Settings.xm @@ -117,7 +117,13 @@ static const NSInteger YTLiteSection = 789; 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(@"HIDE_HEATWAVES"), LOC(@"HIDE_HEATWAVES_DESC"), @"hideHeatwaves_enabled"), - BASIC_SWITCH(LOC(@"SEEK_ANYWHERE"), LOC(@"SEEK_ANYWHERE_DESC"), @"seekAnywhere_enabled") + BASIC_SWITCH(LOC(@"DISABLE_AMBIENT_PORTRAIT"), LOC(@"DISABLE_AMBIENT_PORTRAIT_DESC"), @"disableAmbientModePortrait_enabled"), + BASIC_SWITCH(LOC(@"DISABLE_AMBIENT_FULLSCREEN"), LOC(@"DISABLE_AMBIENT_FULLSCREEN_DESC"), @"disableAmbientModeFullscreen_enabled"), + BASIC_SWITCH(LOC(@"SEEK_ANYWHERE"), LOC(@"SEEK_ANYWHERE_DESC"), @"seekAnywhere_enabled"), + BASIC_SWITCH(LOC(@"ENABLE_TAP_TO_SEEK"), LOC(@"ENABLE_TAP_TO_SEEK_DESC"), @"YTTapToSeek_enabled"), + BASIC_SWITCH(LOC(@"DISABLE_PULL_TO_FULLSCREEN_GESTURE"), LOC(@"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC"), @"disablePullToFull_enabled"), + BASIC_SWITCH(LOC(@"ALWAYS_USE_REMAINING_TIME"), LOC(@"ALWAYS_USE_REMAINING_TIME_DESC"), @"alwaysShowRemainingTime_enabled"), + BASIC_SWITCH(LOC(@"DISABLE_TOGGLE_TIME_REMAINING"), LOC(@"DISABLE_TOGGLE_TIME_REMAINING_DESC"), @"disableRemainingTime_enabled"), ]; YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] initWithNavTitle:LOC(@"VIDEO_CONTROLS_OVERLAY_OPTIONS") pickerSectionTitle:nil rows:rows selectedItemIndex:NSNotFound parentResponder:[self parentResponder]]; [settingsViewController pushViewController:picker]; diff --git a/Tweaks/YouTubeHeader b/Tweaks/YouTubeHeader index 2a9bef8..07bb69b 160000 --- a/Tweaks/YouTubeHeader +++ b/Tweaks/YouTubeHeader @@ -1 +1 @@ -Subproject commit 2a9bef8e9dbcd379c860fb1a07f7449076d58c41 +Subproject commit 07bb69b0285863d01c613371cd4f33d8b374f59d diff --git a/YTLitePlus.h b/YTLitePlus.h index 87598b3..04c1af1 100644 --- a/YTLitePlus.h +++ b/YTLitePlus.h @@ -33,6 +33,12 @@ #import "Tweaks/YouTubeHeader/YTVideoWithContextNode.h" #import "Tweaks/YouTubeHeader/ELMCellNode.h" #import "Tweaks/YouTubeHeader/ELMNodeController.h" +#import "Tweaks/YouTubeHeader/YTMainAppVideoPlayerOverlayViewController.h" +#import "Tweaks/YouTubeHeader/YTInlinePlayerBarContainerView.h" +#import "Tweaks/YouTubeHeader/YTWatchViewController.h" +#import "Tweaks/YouTubeHeader/YTWatchPullToFullController.h" +#import "Tweaks/YouTubeHeader/YTPlayerBarController.h" +#import "Tweaks/YouTubeHeader/YTResponder.h" #define LOC(x) [tweakBundle localizedStringForKey:x value:nil table:nil] #define YT_BUNDLE_ID @"com.google.ios.youtube" @@ -72,9 +78,6 @@ - (void)confirmAlertDidPressConfirm; @end -@interface YTMainAppControlsOverlayView: UIView -@end - @interface YTTransportControlsButtonView : UIView @end @@ -101,6 +104,16 @@ - (void)resetViewControllersCache; @end +// Disable ambient mode - @bhackel +@interface YTWatchViewController (YTLitePlus) +@property (nonatomic, assign, readwrite, getter=isFullscreen) BOOL fullscreen; +@end + +@interface YTWatchCinematicContainerController : NSObject +@property id parentResponder; +@end + + // SponsorBlock button in Nav bar @interface MDCButton : UIButton @end @@ -111,7 +124,7 @@ @end // BigYTMiniPlayer -@interface YTMainAppVideoPlayerOverlayView : UIView +@interface YTMainAppVideoPlayerOverlayView (YTLitePlus) - (UIViewController *)_viewControllerForAncestor; @end diff --git a/YTLitePlus.xm b/YTLitePlus.xm index 68295b9..23cb841 100644 --- a/YTLitePlus.xm +++ b/YTLitePlus.xm @@ -326,24 +326,6 @@ BOOL isTabSelected = NO; %end %end -%group gDisableAmbientMode -%hook YTColdConfig -- (BOOL)disableCinematicForLowPowerMode { return NO; } -- (BOOL)enableCinematicContainer { return NO; } -- (BOOL)enableCinematicContainerOnClient { return NO; } -- (BOOL)enableCinematicContainerOnTablet { return NO; } -- (BOOL)enableTurnOffCinematicForFrameWithBlackBars { return YES; } -- (BOOL)enableTurnOffCinematicForVideoWithBlackBars { return YES; } -- (BOOL)iosCinematicContainerClientImprovement { return NO; } -- (BOOL)iosEnableGhostCardInlineTitleCinematicContainerFix { return NO; } -- (BOOL)iosUseFineScrubberMosaicStoreForCinematic { return NO; } -- (BOOL)mainAppCoreClientEnableClientCinematicPlaylists { return NO; } -- (BOOL)mainAppCoreClientEnableClientCinematicPlaylistsPostMvp { return NO; } -- (BOOL)mainAppCoreClientEnableClientCinematicTablets { return NO; } -- (BOOL)iosEnableFullScreenAmbientMode { return NO; } -%end -%end - // Hide YouTube Heatwaves in Video Player (YouTube v17.19.2-present) - @level3tjg - https://www.reddit.com/r/jailbreak/comments/v29yvk/ %group gHideHeatwaves %hook YTInlinePlayerBarContainerView @@ -414,6 +396,97 @@ BOOL isTabSelected = NO; } %end +// YTTapToSeek - https://github.com/bhackel/YTTapToSeek +%group gYTTapToSeek + %hook YTInlinePlayerBarContainerView + - (void)didPressScrubber:(id)arg1 { + %orig; + // Get access to the seekToTime method + YTMainAppVideoPlayerOverlayViewController *mainAppController = [self.delegate valueForKey:@"_delegate"]; + YTPlayerViewController *playerViewController = [mainAppController valueForKey:@"parentViewController"]; + // Get the X position of this tap from arg1 + UIGestureRecognizer *gestureRecognizer = (UIGestureRecognizer *)arg1; + CGPoint location = [gestureRecognizer locationInView:self]; + CGFloat x = location.x; + // Get the associated proportion of time using scrubRangeForScrubX + double timestampFraction = [self scrubRangeForScrubX:x]; + // Get the timestamp from the fraction + double timestamp = [mainAppController totalTime] * timestampFraction; + // Jump to the timestamp + [playerViewController seekToTime:timestamp]; + } + %end +%end + +// Disable pull to enter vertical/portrait fullscreen gesture - @bhackel +// This was introduced in version 19.XX +// This does not apply to portrait videos +%group gDisablePullToFull +%hook YTWatchPullToFullController +- (BOOL)shouldRecognizeOverscrollEventsFromWatchOverscrollController:(id)arg1 { + // Get the current player orientation + YTWatchViewController *watchViewController = (YTWatchViewController *) self.playerViewSource; + NSUInteger allowedFullScreenOrientations = [watchViewController allowedFullScreenOrientations]; + // Check if the current player orientation is portrait + if (allowedFullScreenOrientations == UIInterfaceOrientationMaskAllButUpsideDown + || allowedFullScreenOrientations == UIInterfaceOrientationMaskPortrait + || allowedFullScreenOrientations == UIInterfaceOrientationMaskPortraitUpsideDown) { + return %orig; + } else { + return NO; + } +} +%end +%end + +// Always use remaining time in the video player - @bhackel +%hook YTPlayerBarController +// When a new video is played, enable time remaining flag +- (void)setActiveSingleVideo:(id)arg1 { + %orig; + if (IS_ENABLED(@"alwaysShowRemainingTime_enabled")) { + // Get the player bar view + YTInlinePlayerBarContainerView *playerBar = self.playerBar; + if (playerBar) { + // Enable the time remaining flag + playerBar.shouldDisplayTimeRemaining = YES; + } + } +} +%end + +// Disable toggle time remaining - @bhackel +%hook YTInlinePlayerBarContainerView +- (void)setShouldDisplayTimeRemaining:(BOOL)arg1 { + if (IS_ENABLED(@"disableRemainingTime_enabled")) { + // Set true if alwaysShowRemainingTime + if (IS_ENABLED(@"alwaysShowRemainingTime_enabled")) { + %orig(YES); + } else { + %orig(NO); + } + return; + } + %orig; +} +%end + +// Disable Ambient Mode - @bhackel +%hook YTWatchCinematicContainerController +- (BOOL)isCinematicLightingAvailable { + // Check if we are in fullscreen or not, then decide if ambient is disabled + YTWatchViewController *watchViewController = (YTWatchViewController *) self.parentResponder; + BOOL isFullscreen = watchViewController.fullscreen; + if (IsEnabled(@"disableAmbientModePortrait_enabled") && !isFullscreen) { + return NO; + } + if (IsEnabled(@"disableAmbientModeFullscreen_enabled") && isFullscreen) { + return NO; + } + return %orig; +} +%end + // BigYTMiniPlayer: https://github.com/Galactic-Dev/BigYTMiniPlayer %group Main %hook YTWatchMiniBarView @@ -575,9 +648,6 @@ BOOL isTabSelected = NO; if (IsEnabled(@"ytNoModernUI_enabled")) { %init(gYTNoModernUI); } - if (IsEnabled(@"disableAmbientMode_enabled")) { - %init(gDisableAmbientMode); - } if (IsEnabled(@"disableAccountSection_enabled")) { %init(gDisableAccountSection); } @@ -611,6 +681,12 @@ BOOL isTabSelected = NO; if (IsEnabled(@"fixCasting_enabled")) { %init(gFixCasting); } + if (IsEnabled(@"YTTapToSeek_enabled")) { + %init(gYTTapToSeek); + } + if (IsEnabled(@"disablePullToFull_enabled")) { + %init(gDisablePullToFull); + } // Change the default value of some options NSArray *allKeys = [[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] allKeys]; diff --git a/lang/YTLitePlus.bundle/ar.lproj/Localizable.strings b/lang/YTLitePlus.bundle/ar.lproj/Localizable.strings index 3554836..7d82b1f 100644 --- a/lang/YTLitePlus.bundle/ar.lproj/Localizable.strings +++ b/lang/YTLitePlus.bundle/ar.lproj/Localizable.strings @@ -20,9 +20,27 @@ "HIDE_HEATWAVES" = "إخفاء موجات الحر"; "HIDE_HEATWAVES_DESC" = "يخفي موجات الحر في مشغل الفيديو. مطلوب إعادة تشغيل التطبيق."; +"DISABLE_AMBIENT_PORTRAIT" = "Disable Ambient Mode (Portrait)"; +"DISABLE_AMBIENT_PORTRAIT_DESC" = "Disable lighting surrounding video title"; + +"DISABLE_AMBIENT_FULLSCREEN" = "Disable Ambient Mode (Fullscreen)"; +"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Disable lighting surrouding video player"; + "SEEK_ANYWHERE" = "Seek Anywhere Gesture"; "SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed"; +"ENABLE_TAP_TO_SEEK" = "Enable Tap To Seek"; +"ENABLE_TAP_TO_SEEK_DESC" = "Jump to anywhere in a video by single-tapping the seek bar"; + +"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Disable pull-to-fullscreen gesture"; +"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Disable the drag gesture to enter vertical fullscreen. Only applies to landscape videos."; + +"ALWAYS_USE_REMAINING_TIME" = "Always use remaining time"; +"ALWAYS_USE_REMAINING_TIME_DESC" = "Change the default to show time remaining in the player bar."; + +"DISABLE_TOGGLE_TIME_REMAINING" = "Disable toggle time remaining"; +"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Disables changing time elapsed to time remaining. Use with other setting to always show remaining time."; + // App settings overlay options "APP_SETTINGS_OVERLAY_OPTIONS" = "App Settings Overlay Options"; diff --git a/lang/YTLitePlus.bundle/de.lproj/Localizable.strings b/lang/YTLitePlus.bundle/de.lproj/Localizable.strings index 86a0d6f..ff194d4 100644 --- a/lang/YTLitePlus.bundle/de.lproj/Localizable.strings +++ b/lang/YTLitePlus.bundle/de.lproj/Localizable.strings @@ -20,9 +20,27 @@ "HIDE_HEATWAVES" = "Hitzewellen ausblenden"; "HIDE_HEATWAVES_DESC" = "Versteckt die Hitzewellen im Videoplayer. Ein Neustart der App ist erforderlich."; +"DISABLE_AMBIENT_PORTRAIT" = "Disable Ambient Mode (Portrait)"; +"DISABLE_AMBIENT_PORTRAIT_DESC" = "Disable lighting surrounding video title"; + +"DISABLE_AMBIENT_FULLSCREEN" = "Disable Ambient Mode (Fullscreen)"; +"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Disable lighting surrouding video player"; + "SEEK_ANYWHERE" = "Seek Anywhere Gesture"; "SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed"; +"ENABLE_TAP_TO_SEEK" = "Enable Tap To Seek"; +"ENABLE_TAP_TO_SEEK_DESC" = "Jump to anywhere in a video by single-tapping the seek bar"; + +"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Disable pull-to-fullscreen gesture"; +"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Disable the drag gesture to enter vertical fullscreen. Only applies to landscape videos."; + +"ALWAYS_USE_REMAINING_TIME" = "Always use remaining time"; +"ALWAYS_USE_REMAINING_TIME_DESC" = "Change the default to show time remaining in the player bar."; + +"DISABLE_TOGGLE_TIME_REMAINING" = "Disable toggle time remaining"; +"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Disables changing time elapsed to time remaining. Use with other setting to always show remaining time."; + // App settings overlay options "APP_SETTINGS_OVERLAY_OPTIONS" = "Overlay-Optionen für App-Einstellungen"; diff --git a/lang/YTLitePlus.bundle/en.lproj/Localizable.strings b/lang/YTLitePlus.bundle/en.lproj/Localizable.strings index 53a89d6..d013c05 100644 --- a/lang/YTLitePlus.bundle/en.lproj/Localizable.strings +++ b/lang/YTLitePlus.bundle/en.lproj/Localizable.strings @@ -20,9 +20,27 @@ "HIDE_HEATWAVES" = "Hide Heatwaves"; "HIDE_HEATWAVES_DESC" = "Hides the Heatwaves in the video player. App restart is required."; +"DISABLE_AMBIENT_PORTRAIT" = "Disable Ambient Mode (Portrait)"; +"DISABLE_AMBIENT_PORTRAIT_DESC" = "Disable lighting surrounding video title"; + +"DISABLE_AMBIENT_FULLSCREEN" = "Disable Ambient Mode (Fullscreen)"; +"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Disable lighting surrouding video player"; + "SEEK_ANYWHERE" = "Seek Anywhere Gesture"; "SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed"; +"ENABLE_TAP_TO_SEEK" = "Enable Tap To Seek"; +"ENABLE_TAP_TO_SEEK_DESC" = "Jump to anywhere in a video by single-tapping the seek bar"; + +"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Disable pull-to-fullscreen gesture"; +"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Disable the drag gesture to enter vertical fullscreen. Only applies to landscape videos."; + +"ALWAYS_USE_REMAINING_TIME" = "Always use remaining time"; +"ALWAYS_USE_REMAINING_TIME_DESC" = "Change the default to show time remaining in the player bar."; + +"DISABLE_TOGGLE_TIME_REMAINING" = "Disable toggle time remaining"; +"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Disables changing time elapsed to time remaining. Use with other setting to always show remaining time."; + // App settings overlay options "APP_SETTINGS_OVERLAY_OPTIONS" = "App Settings Overlay Options"; diff --git a/lang/YTLitePlus.bundle/es.lproj/Localizable.strings b/lang/YTLitePlus.bundle/es.lproj/Localizable.strings index 54b7b8e..03c40f9 100644 --- a/lang/YTLitePlus.bundle/es.lproj/Localizable.strings +++ b/lang/YTLitePlus.bundle/es.lproj/Localizable.strings @@ -20,9 +20,27 @@ "HIDE_HEATWAVES" = "Ocultar Heatwaves"; "HIDE_HEATWAVES_DESC" = "Oculta las Heatwaves en el reproductor de vídeo. Es necesario reiniciar la aplicación."; +"DISABLE_AMBIENT_PORTRAIT" = "Disable Ambient Mode (Portrait)"; +"DISABLE_AMBIENT_PORTRAIT_DESC" = "Disable lighting surrounding video title"; + +"DISABLE_AMBIENT_FULLSCREEN" = "Disable Ambient Mode (Fullscreen)"; +"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Disable lighting surrouding video player"; + "SEEK_ANYWHERE" = "Seek Anywhere Gesture"; "SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed"; +"ENABLE_TAP_TO_SEEK" = "Enable Tap To Seek"; +"ENABLE_TAP_TO_SEEK_DESC" = "Jump to anywhere in a video by single-tapping the seek bar"; + +"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Disable pull-to-fullscreen gesture"; +"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Disable the drag gesture to enter vertical fullscreen. Only applies to landscape videos."; + +"ALWAYS_USE_REMAINING_TIME" = "Always use remaining time"; +"ALWAYS_USE_REMAINING_TIME_DESC" = "Change the default to show time remaining in the player bar."; + +"DISABLE_TOGGLE_TIME_REMAINING" = "Disable toggle time remaining"; +"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Disables changing time elapsed to time remaining. Use with other setting to always show remaining time."; + // App settings overlay options "APP_SETTINGS_OVERLAY_OPTIONS" = "Opciones de superposición de los ajustes de la aplicación"; diff --git a/lang/YTLitePlus.bundle/fr.lproj/Localizable.strings b/lang/YTLitePlus.bundle/fr.lproj/Localizable.strings index 359a1c2..f73b5e8 100644 --- a/lang/YTLitePlus.bundle/fr.lproj/Localizable.strings +++ b/lang/YTLitePlus.bundle/fr.lproj/Localizable.strings @@ -20,9 +20,27 @@ "HIDE_HEATWAVES" = "Masquer les Heatwaves"; "HIDE_HEATWAVES_DESC" = "Masque les Heatwaves dans le lecteur vidéo. Le redémarrage de l'application est requis."; +"DISABLE_AMBIENT_PORTRAIT" = "Disable Ambient Mode (Portrait)"; +"DISABLE_AMBIENT_PORTRAIT_DESC" = "Disable lighting surrounding video title"; + +"DISABLE_AMBIENT_FULLSCREEN" = "Disable Ambient Mode (Fullscreen)"; +"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Disable lighting surrouding video player"; + "SEEK_ANYWHERE" = "Seek Anywhere Gesture"; "SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed"; +"ENABLE_TAP_TO_SEEK" = "Enable Tap To Seek"; +"ENABLE_TAP_TO_SEEK_DESC" = "Jump to anywhere in a video by single-tapping the seek bar"; + +"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Disable pull-to-fullscreen gesture"; +"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Disable the drag gesture to enter vertical fullscreen. Only applies to landscape videos."; + +"ALWAYS_USE_REMAINING_TIME" = "Always use remaining time"; +"ALWAYS_USE_REMAINING_TIME_DESC" = "Change the default to show time remaining in the player bar."; + +"DISABLE_TOGGLE_TIME_REMAINING" = "Disable toggle time remaining"; +"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Disables changing time elapsed to time remaining. Use with other setting to always show remaining time."; + // App settings overlay options "APP_SETTINGS_OVERLAY_OPTIONS" = "Paramètres des options d'overlay de l'application"; diff --git a/lang/YTLitePlus.bundle/ja.lproj/Localizable.strings b/lang/YTLitePlus.bundle/ja.lproj/Localizable.strings index 4f43bb6..7bfeff0 100644 --- a/lang/YTLitePlus.bundle/ja.lproj/Localizable.strings +++ b/lang/YTLitePlus.bundle/ja.lproj/Localizable.strings @@ -20,9 +20,27 @@ "HIDE_HEATWAVES" = "ヒートウェーブを非表示"; "HIDE_HEATWAVES_DESC" = "動画プレーヤーのヒートウェーブを非表示にします。アプリの再起動が必要です。"; +"DISABLE_AMBIENT_PORTRAIT" = "Disable Ambient Mode (Portrait)"; +"DISABLE_AMBIENT_PORTRAIT_DESC" = "Disable lighting surrounding video title"; + +"DISABLE_AMBIENT_FULLSCREEN" = "Disable Ambient Mode (Fullscreen)"; +"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Disable lighting surrouding video player"; + "SEEK_ANYWHERE" = "Seek Anywhere Gesture"; "SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed"; +"ENABLE_TAP_TO_SEEK" = "Enable Tap To Seek"; +"ENABLE_TAP_TO_SEEK_DESC" = "Jump to anywhere in a video by single-tapping the seek bar"; + +"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Disable pull-to-fullscreen gesture"; +"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Disable the drag gesture to enter vertical fullscreen. Only applies to landscape videos."; + +"ALWAYS_USE_REMAINING_TIME" = "Always use remaining time"; +"ALWAYS_USE_REMAINING_TIME_DESC" = "Change the default to show time remaining in the player bar."; + +"DISABLE_TOGGLE_TIME_REMAINING" = "Disable toggle time remaining"; +"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Disables changing time elapsed to time remaining. Use with other setting to always show remaining time."; + // App settings overlay options "APP_SETTINGS_OVERLAY_OPTIONS" = "アプリの設定オーバーレイの設定"; diff --git a/lang/YTLitePlus.bundle/pt.lproj/Localizable.strings b/lang/YTLitePlus.bundle/pt.lproj/Localizable.strings index 4be561e..baccc90 100644 --- a/lang/YTLitePlus.bundle/pt.lproj/Localizable.strings +++ b/lang/YTLitePlus.bundle/pt.lproj/Localizable.strings @@ -20,9 +20,27 @@ "HIDE_HEATWAVES" = "Hide Heatwaves"; "HIDE_HEATWAVES_DESC" = "Hides the Heatwaves in the video player. App restart is required."; +"DISABLE_AMBIENT_PORTRAIT" = "Disable Ambient Mode (Portrait)"; +"DISABLE_AMBIENT_PORTRAIT_DESC" = "Disable lighting surrounding video title"; + +"DISABLE_AMBIENT_FULLSCREEN" = "Disable Ambient Mode (Fullscreen)"; +"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Disable lighting surrouding video player"; + "SEEK_ANYWHERE" = "Seek Anywhere Gesture"; "SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed"; +"ENABLE_TAP_TO_SEEK" = "Enable Tap To Seek"; +"ENABLE_TAP_TO_SEEK_DESC" = "Jump to anywhere in a video by single-tapping the seek bar"; + +"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Disable pull-to-fullscreen gesture"; +"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Disable the drag gesture to enter vertical fullscreen. Only applies to landscape videos."; + +"ALWAYS_USE_REMAINING_TIME" = "Always use remaining time"; +"ALWAYS_USE_REMAINING_TIME_DESC" = "Change the default to show time remaining in the player bar."; + +"DISABLE_TOGGLE_TIME_REMAINING" = "Disable toggle time remaining"; +"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Disables changing time elapsed to time remaining. Use with other setting to always show remaining time."; + // App settings overlay options "APP_SETTINGS_OVERLAY_OPTIONS" = "App Settings Overlay Options"; diff --git a/lang/YTLitePlus.bundle/ro.lproj/Localizable.strings b/lang/YTLitePlus.bundle/ro.lproj/Localizable.strings index bbb3df3..9a355be 100644 --- a/lang/YTLitePlus.bundle/ro.lproj/Localizable.strings +++ b/lang/YTLitePlus.bundle/ro.lproj/Localizable.strings @@ -20,9 +20,27 @@ "HIDE_HEATWAVES" = "Ascunde Heatwaves"; "HIDE_HEATWAVES_DESC" = "Ascundere Heatwaves în player-ul video. Este necesară repornirea aplicației."; +"DISABLE_AMBIENT_PORTRAIT" = "Disable Ambient Mode (Portrait)"; +"DISABLE_AMBIENT_PORTRAIT_DESC" = "Disable lighting surrounding video title"; + +"DISABLE_AMBIENT_FULLSCREEN" = "Disable Ambient Mode (Fullscreen)"; +"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Disable lighting surrouding video player"; + "SEEK_ANYWHERE" = "Seek Anywhere Gesture"; "SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed"; +"ENABLE_TAP_TO_SEEK" = "Enable Tap To Seek"; +"ENABLE_TAP_TO_SEEK_DESC" = "Jump to anywhere in a video by single-tapping the seek bar"; + +"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Disable pull-to-fullscreen gesture"; +"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Disable the drag gesture to enter vertical fullscreen. Only applies to landscape videos."; + +"ALWAYS_USE_REMAINING_TIME" = "Always use remaining time"; +"ALWAYS_USE_REMAINING_TIME_DESC" = "Change the default to show time remaining in the player bar."; + +"DISABLE_TOGGLE_TIME_REMAINING" = "Disable toggle time remaining"; +"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Disables changing time elapsed to time remaining. Use with other setting to always show remaining time."; + // App settings overlay options "APP_SETTINGS_OVERLAY_OPTIONS" = "Opțiuni Overlay Setări Aplicație"; diff --git a/lang/YTLitePlus.bundle/ru.lproj/Localizable.strings b/lang/YTLitePlus.bundle/ru.lproj/Localizable.strings index 5afd842..d373468 100644 --- a/lang/YTLitePlus.bundle/ru.lproj/Localizable.strings +++ b/lang/YTLitePlus.bundle/ru.lproj/Localizable.strings @@ -20,9 +20,27 @@ "HIDE_HEATWAVES" = "Hide Heatwaves"; "HIDE_HEATWAVES_DESC" = "Hides the Heatwaves in the video player. App restart is required."; +"DISABLE_AMBIENT_PORTRAIT" = "Disable Ambient Mode (Portrait)"; +"DISABLE_AMBIENT_PORTRAIT_DESC" = "Disable lighting surrounding video title"; + +"DISABLE_AMBIENT_FULLSCREEN" = "Disable Ambient Mode (Fullscreen)"; +"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Disable lighting surrouding video player"; + "SEEK_ANYWHERE" = "Seek Anywhere Gesture"; "SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed"; +"ENABLE_TAP_TO_SEEK" = "Enable Tap To Seek"; +"ENABLE_TAP_TO_SEEK_DESC" = "Jump to anywhere in a video by single-tapping the seek bar"; + +"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Disable pull-to-fullscreen gesture"; +"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Disable the drag gesture to enter vertical fullscreen. Only applies to landscape videos."; + +"ALWAYS_USE_REMAINING_TIME" = "Always use remaining time"; +"ALWAYS_USE_REMAINING_TIME_DESC" = "Change the default to show time remaining in the player bar."; + +"DISABLE_TOGGLE_TIME_REMAINING" = "Disable toggle time remaining"; +"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Disables changing time elapsed to time remaining. Use with other setting to always show remaining time."; + // App settings overlay options "APP_SETTINGS_OVERLAY_OPTIONS" = "App Settings Overlay Options"; diff --git a/lang/YTLitePlus.bundle/template.lproj/Localizable.strings b/lang/YTLitePlus.bundle/template.lproj/Localizable.strings index 74c1c11..5499865 100644 --- a/lang/YTLitePlus.bundle/template.lproj/Localizable.strings +++ b/lang/YTLitePlus.bundle/template.lproj/Localizable.strings @@ -35,9 +35,27 @@ 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."; +"DISABLE_AMBIENT_PORTRAIT" = "Disable Ambient Mode (Portrait)"; +"DISABLE_AMBIENT_PORTRAIT_DESC" = "Disable lighting surrounding video title"; + +"DISABLE_AMBIENT_FULLSCREEN" = "Disable Ambient Mode (Fullscreen)"; +"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Disable lighting surrouding video player"; + "SEEK_ANYWHERE" = "Seek Anywhere Gesture"; "SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed"; +"ENABLE_TAP_TO_SEEK" = "Enable Tap To Seek"; +"ENABLE_TAP_TO_SEEK_DESC" = "Jump to anywhere in a video by single-tapping the seek bar"; + +"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Disable pull-to-fullscreen gesture"; +"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Disable the drag gesture to enter vertical fullscreen. Only applies to landscape videos."; + +"ALWAYS_USE_REMAINING_TIME" = "Always use remaining time"; +"ALWAYS_USE_REMAINING_TIME_DESC" = "Change the default to show time remaining in the player bar."; + +"DISABLE_TOGGLE_TIME_REMAINING" = "Disable toggle time remaining"; +"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Disables changing time elapsed to time remaining. Use with other setting to always show remaining time."; + // App settings overlay options "APP_SETTINGS_OVERLAY_OPTIONS" = "App Settings Overlay Options"; diff --git a/lang/YTLitePlus.bundle/tr.lproj/Localizable.strings b/lang/YTLitePlus.bundle/tr.lproj/Localizable.strings index 0e2cdc7..a6bd5c0 100644 --- a/lang/YTLitePlus.bundle/tr.lproj/Localizable.strings +++ b/lang/YTLitePlus.bundle/tr.lproj/Localizable.strings @@ -20,9 +20,27 @@ "HIDE_HEATWAVES" = "Hide Heatwaves"; "HIDE_HEATWAVES_DESC" = "Hides the Heatwaves in the video player. App restart is required."; +"DISABLE_AMBIENT_PORTRAIT" = "Disable Ambient Mode (Portrait)"; +"DISABLE_AMBIENT_PORTRAIT_DESC" = "Disable lighting surrounding video title"; + +"DISABLE_AMBIENT_FULLSCREEN" = "Disable Ambient Mode (Fullscreen)"; +"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Disable lighting surrouding video player"; + "SEEK_ANYWHERE" = "Seek Anywhere Gesture"; "SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed"; +"ENABLE_TAP_TO_SEEK" = "Enable Tap To Seek"; +"ENABLE_TAP_TO_SEEK_DESC" = "Jump to anywhere in a video by single-tapping the seek bar"; + +"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Disable pull-to-fullscreen gesture"; +"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Disable the drag gesture to enter vertical fullscreen. Only applies to landscape videos."; + +"ALWAYS_USE_REMAINING_TIME" = "Always use remaining time"; +"ALWAYS_USE_REMAINING_TIME_DESC" = "Change the default to show time remaining in the player bar."; + +"DISABLE_TOGGLE_TIME_REMAINING" = "Disable toggle time remaining"; +"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Disables changing time elapsed to time remaining. Use with other setting to always show remaining time."; + // App settings overlay options "APP_SETTINGS_OVERLAY_OPTIONS" = "App Settings Overlay Options"; diff --git a/lang/YTLitePlus.bundle/vi.lproj/Localizable.strings b/lang/YTLitePlus.bundle/vi.lproj/Localizable.strings index 94d2ced..603b0c2 100644 --- a/lang/YTLitePlus.bundle/vi.lproj/Localizable.strings +++ b/lang/YTLitePlus.bundle/vi.lproj/Localizable.strings @@ -29,9 +29,27 @@ "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."; +"DISABLE_AMBIENT_PORTRAIT" = "Disable Ambient Mode (Portrait)"; +"DISABLE_AMBIENT_PORTRAIT_DESC" = "Disable lighting surrounding video title"; + +"DISABLE_AMBIENT_FULLSCREEN" = "Disable Ambient Mode (Fullscreen)"; +"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Disable lighting surrouding video player"; + "SEEK_ANYWHERE" = "Seek Anywhere Gesture"; "SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed"; +"ENABLE_TAP_TO_SEEK" = "Enable Tap To Seek"; +"ENABLE_TAP_TO_SEEK_DESC" = "Jump to anywhere in a video by single-tapping the seek bar"; + +"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Disable pull-to-fullscreen gesture"; +"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Disable the drag gesture to enter vertical fullscreen. Only applies to landscape videos."; + +"ALWAYS_USE_REMAINING_TIME" = "Always use remaining time"; +"ALWAYS_USE_REMAINING_TIME_DESC" = "Change the default to show time remaining in the player bar."; + +"DISABLE_TOGGLE_TIME_REMAINING" = "Disable toggle time remaining"; +"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Disables changing time elapsed to time remaining. Use with other setting to always show remaining time."; + // Shorts controls overlay options "SHORTS_CONTROLS_OVERLAY_OPTIONS" = "Tùy chọn lớp phủ điều khiển quần short"; diff --git a/lang/YTLitePlus.bundle/zh_TW.lproj/Localizable.strings b/lang/YTLitePlus.bundle/zh_TW.lproj/Localizable.strings index 6065158..87642fd 100644 --- a/lang/YTLitePlus.bundle/zh_TW.lproj/Localizable.strings +++ b/lang/YTLitePlus.bundle/zh_TW.lproj/Localizable.strings @@ -21,6 +21,12 @@ "HIDE_HEATWAVES" = "隱藏熱浪"; "HIDE_HEATWAVES_DESC" = "在播放器中隱藏熱浪"; +"DISABLE_AMBIENT_PORTRAIT" = "Disable Ambient Mode (Portrait)"; +"DISABLE_AMBIENT_PORTRAIT_DESC" = "Disable lighting surrounding video title"; + +"DISABLE_AMBIENT_FULLSCREEN" = "Disable Ambient Mode (Fullscreen)"; +"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Disable lighting surrouding video player"; + "SEEK_ANYWHERE" = "Seek Anywhere Gesture"; "SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed";