mirror of
https://github.com/arichornlover/uYouEnhanced.git
synced 2026-07-27 03:42:21 +00:00
197 lines
8.6 KiB
Text
197 lines
8.6 KiB
Text
// keys migration from uYouEnhanced → YouMod 1.3.0+
|
|
|
|
#import "uYouPlus.h"
|
|
#import <UIKit/UIKit.h>
|
|
|
|
// YouMod 1.3.0 key definitions (https://github.com/Tonwalter888/YouMod/blob/e381a29287a30a005ad258adef0cb1a9a8d504fd/Files/Headers.h)
|
|
#define YouModPrefix @"YouMod"
|
|
|
|
#define DownloadManager @"YouModDownloadManager"
|
|
#define DownloadSaveToPhotos @"YouModDownloadSaveToPhotos"
|
|
#define DownloadPreferDRCAudio @"YouModDownloadPreferDRCAudio"
|
|
#define AutoClearCache @"YouModAutoClearCache"
|
|
|
|
#define OLEDTheme @"YouModEnablesOLEDTheme"
|
|
#define OLEDKeyboard @"YouModEnablesOLEDKeyboard"
|
|
|
|
#define HideYTLogo @"YouModHideYTLogo"
|
|
#define YTPremiumLogo @"YouModYTPremiumLogo"
|
|
#define HideNoti @"YouModHideNotificationButton"
|
|
#define HideSearch @"YouModHideSearchButton"
|
|
#define HideVoiceSearch @"YouModHideVoiceSearchButton"
|
|
#define HideCastButtonNav @"YouModHideCastButtonNavigationBar"
|
|
|
|
#define HideSubbar @"YouModHideSubbar"
|
|
#define HideGenMusicShelf @"YouModHideGenMusicShelf"
|
|
#define HideFeedPost @"YouModHideFeedPost"
|
|
#define HideShortsShelf @"YouModHideShortsShelf"
|
|
#define HideSearchHis @"YouModHideSearchHistoryAndSuggestions"
|
|
#define HideSubButton @"YouModHideSubscribeButton"
|
|
#define HideShoppingButton @"YouModHideShoppingButton"
|
|
#define HideMemberButton @"YouModHideMemberButton"
|
|
|
|
#define HideAutoPlayToggle @"YouModHideAutoPlayToggle"
|
|
#define HideCaptionsButton @"YouModHideCaptionsButton"
|
|
#define HideCastButtonPlayer @"YouModHideCastButtonPlayer"
|
|
#define HidePrevButton @"YouModHidePrevButton"
|
|
#define HideNextButton @"YouModHideNextButton"
|
|
#define ReplacePrevNextButtons @"YouModReplacePrevNextButtons"
|
|
#define RemoveDarkOverlay @"YouModRemoveDarkOverlay"
|
|
#define RemoveAmbiant @"YouModRemoveAmbiantColors"
|
|
#define HideEndScreenCards @"YouModHideEndScreenCards"
|
|
#define HideSuggestedVideo @"YouModHideSuggestedVideoOnFinish"
|
|
#define HidePaidPromoOverlay @"YouModHidePaidPromoOverlay"
|
|
#define HideWaterMark @"YouModHideWaterMark"
|
|
#define GestureControls @"YouModEnableGesturesControls"
|
|
#define GestureActivationArea @"YouModGestureActivationArea"
|
|
#define LeftSideGesture @"YouModLeftSideGesture"
|
|
#define RightSideGesture @"YouModRightSideGesture"
|
|
#define GestureHUD @"YouModGestureHUD"
|
|
#define DisablesDoubleTap @"YouModDisablesDoubleTap"
|
|
#define DisablesLongHold @"YouModDisablesLongHold"
|
|
#define AutoExitFullScreen @"YouModAutoExitFullScreen"
|
|
#define DisablesCaptions @"YouModAutoDisablesCaptions"
|
|
#define DisablesShowRemaining @"YouModDisablesShowRemainingTime"
|
|
#define AlwaysShowRemaining @"YouModAlwaysShowRemainingTime"
|
|
#define ShowExtraTimeRemaining @"YouModShowExtraTimeRemaining"
|
|
#define HideFullAction @"YouModHideFullScreenAction"
|
|
#define HideFullvidTitle @"YouModHideFullscreenVideoTitle"
|
|
#define StopAutoplayVideo @"YouModStopAutoplayVideo"
|
|
#define HideContentWarning @"YouModHideContentWarning"
|
|
#define AutoFullScreen @"YouModAutoFullScreen"
|
|
#define PortFull @"YouModPortraitFullscreen"
|
|
#define OldQualityPicker @"YouModUseOldQualityPicker"
|
|
#define ExtraSpeed @"YouModAddExtraSpeed"
|
|
#define DisableHints @"YouModDisableHints"
|
|
#define ForceMiniPlayer @"YouModForceMiniPlayer"
|
|
#define AlwaysShowSeekbar @"YouModAlwaysShowSeekbar"
|
|
#define HideLikeButton @"YouModHideLikeButton"
|
|
#define HideDisLikeButton @"YouModHideDisLikeButton"
|
|
#define HideShareButton @"YouModHideShareButton"
|
|
#define HideDownloadButton @"YouModHideDownloadButton"
|
|
#define HideClipButton @"YouModHideClipButton"
|
|
#define HideRemixButton @"YouModHideRemixButton"
|
|
#define HideSaveButton @"YouModHideSaveButton"
|
|
|
|
#define HideShortsLikeButton @"YouModHideShortsLikeButton"
|
|
#define HideShortsDisLikeButton @"YouModHideShortsDisLikeButton"
|
|
#define HideShortsCommentButton @"YouModHideShortsCommentButton"
|
|
#define HideShortsShareButton @"YouModHideShortsShareButton"
|
|
#define HideShortsRemixButton @"YouModHideShortsRemixButton"
|
|
#define HideShortsMetaButton @"YouModHideShortsMetaButton"
|
|
#define HideShortsProducts @"YouModHideShortsProducts"
|
|
#define HideShortsRecbar @"YouModHideShortsRecbar"
|
|
#define HideShortsCommit @"YouModHideShortsCommit"
|
|
#define HideShortsSubscriptButton @"YouModHideShortsSubscriptButton"
|
|
#define HideShortsLiveButton @"YouModHideShortsLiveButton"
|
|
#define HideShortsLensButton @"YouModHideShortsLensButton"
|
|
#define HideShortsTrendsButton @"YouModHideShortsTrendsButton"
|
|
#define HideShortsToVideo @"YouModHideShortsToVideo"
|
|
#define EnablesShortsQuality @"YouModEnablesShortsQuality"
|
|
#define ShowShortsSeekbar @"YouModShowShortsSeekbar"
|
|
|
|
#define HideHomeTab @"YouModHideHomeTab"
|
|
#define HideShortsTab @"YouModHideShortsTab"
|
|
#define HideCreateButton @"YouModHideCreateButton"
|
|
#define HideSubscriptTab @"YouModHideSubscriptionsTab"
|
|
|
|
#define BackgroundPlayback @"YouModEnablesBackgroundPlayback"
|
|
#define DisablesShortsPiP @"YouModTrytoDisablesShortsPiP"
|
|
#define BlockUpgradeDialogs @"YouModBlockUpgradeDialogs"
|
|
#define HideAreYouThereDialog @"YouModHideAreYouThereDialog"
|
|
#define FixesSlowMiniPlayer @"YouModFixesSlowMiniPlayer"
|
|
#define DisablesNewMiniPlayer @"YouModDisablesNewMiniPlayer"
|
|
#define DisablesSnackBar @"YouModDisablesSnackBar"
|
|
#define HideStartupAni @"YouModHideStartupAnimations"
|
|
#define HidePlayInNextQueue @"YouModHidePlayInNextQueue"
|
|
#define HideLikeDislikeVotes @"YouModHideLikeDislikeVotes"
|
|
|
|
// =============================================
|
|
|
|
@implementation YouModMigrationManager
|
|
|
|
+ (instancetype)sharedManager {
|
|
static YouModMigrationManager *shared = nil;
|
|
static dispatch_once_t onceToken;
|
|
dispatch_once(&onceToken, ^{
|
|
shared = [[self alloc] init];
|
|
});
|
|
return shared;
|
|
}
|
|
|
|
- (void)migrateToYouModWithReset:(BOOL)shouldReset {
|
|
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
|
|
|
|
NSDictionary *mapping = @{
|
|
kOLEDKeyboard: OLEDKeyboard,
|
|
kAppTheme: OLEDTheme,
|
|
kPortraitFullscreen: PortFull,
|
|
kAlwaysShowRemainingTime: AlwaysShowRemaining,
|
|
kDisableRemainingTime: DisablesShowRemaining,
|
|
kHideAutoplaySwitch: HideAutoPlayToggle,
|
|
kHideCC: HideCaptionsButton,
|
|
kHideVideoTitle: HideFullvidTitle,
|
|
kHidePaidPromotionCard: HidePaidPromoOverlay,
|
|
kHideChannelWatermark: HideWaterMark,
|
|
kHidePreviousAndNextButton: HidePrevButton,
|
|
kHideHoverCards: HideEndScreenCards,
|
|
kHideSuggestedVideo: HideSuggestedVideo,
|
|
kDisableAmbientMode: RemoveAmbiant,
|
|
kHideOverlayDarkBackground: RemoveDarkOverlay,
|
|
kYTMiniPlayer: ForceMiniPlayer,
|
|
kBigYTMiniPlayer: ForceMiniPlayer,
|
|
kDisableHints: DisableHints,
|
|
kYTPremiumLogo: YTPremiumLogo,
|
|
kHideYouTubeLogo: HideYTLogo,
|
|
kHideHomeTab: HideHomeTab,
|
|
kHideShareButton: HideShareButton,
|
|
kHideDownloadButton: HideDownloadButton,
|
|
kHideClipButton: HideClipButton,
|
|
kHideRemixButton: HideRemixButton,
|
|
kHideSaveToPlaylistButton: HideSaveButton,
|
|
kHidePlayNextInQueue: HidePlayInNextQueue,
|
|
kHideBuySuperThanks: HideShortsProducts,
|
|
kHideSubscriptions: HideShortsSubscriptButton,
|
|
};
|
|
|
|
NSInteger migrated = 0;
|
|
|
|
for (NSString *oldKey in mapping) {
|
|
if ([defaults objectForKey:oldKey] != nil) {
|
|
id value = [defaults objectForKey:oldKey];
|
|
NSString *newKey = mapping[oldKey];
|
|
[defaults setObject:value forKey:newKey];
|
|
migrated++;
|
|
}
|
|
}
|
|
|
|
[defaults synchronize];
|
|
|
|
dispatch_async(dispatch_get_main_queue(), ^{
|
|
NSString *msg = [NSString stringWithFormat:
|
|
@"%ld compatible settings were copied to YouMod.\n\n"
|
|
"uYouEnhanced settings were left untouched.\n"
|
|
"Restart YouTube → test YouMod.",
|
|
(long)migrated];
|
|
|
|
if (shouldReset) {
|
|
msg = [msg stringByAppendingString:@"\n\nuYouEnhanced settings have been reset (except submodules)."];
|
|
// Reset uYouEnhanced keys (keep submodule keys)
|
|
NSArray *protectedKeys = @[/* add submodule keys here if needed */];
|
|
for (NSString *key in [defaults dictionaryRepresentation].allKeys) {
|
|
if ([key hasPrefix:@"k"] && ![protectedKeys containsObject:key]) {
|
|
[defaults removeObjectForKey:key];
|
|
}
|
|
}
|
|
[defaults synchronize];
|
|
}
|
|
|
|
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Migration Finished"
|
|
message:msg
|
|
preferredStyle:UIAlertControllerStyleAlert];
|
|
[alert addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil]];
|
|
[[UIApplication sharedApplication].keyWindow.rootViewController presentViewController:alert animated:YES completion:nil];
|
|
});
|
|
}
|
|
|
|
@end
|