// Created by admin on 2023/3/9. #import "AppDelegate.h" #import "BaseNavigationController.h" #import "YuMi-swift.h" UIKIT_EXTERN NSString * const kOpenRoomNotification; @interface AppDelegate () @end @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; UIStoryboard *launchStoryboard = [UIStoryboard storyboardWithName:@"Launch Screen" bundle:nil]; UIViewController *launchScreenVC = [launchStoryboard instantiateInitialViewController]; self.window.rootViewController = launchScreenVC; [self.window makeKeyAndVisible]; [self loadMainPage]; if (@available(iOS 15, *)) { [[UITableView appearance] setSectionHeaderTopPadding:0]; } return YES; } // MARK: - Helper Methods - (UIWindow *)getKeyWindow { if (@available(iOS 13.0, *)) { for (UIWindowScene *scene in [UIApplication sharedApplication].connectedScenes) { if (scene.activationState == UISceneActivationStateForegroundActive) { for (UIWindow *window in scene.windows) { if (window.isKeyWindow) { return window; } } return scene.windows.firstObject; } } } #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" return [UIApplication sharedApplication].keyWindow; #pragma clang diagnostic pop } - (void)loadMainPage { AccountModel *accountModel = [[AccountInfoStorage instance] getCurrentAccountInfo]; if (accountModel == nil || accountModel.uid == nil || accountModel.access_token == nil) { [self toLoginPage]; }else{ [self toHomeTabbarPage]; dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.8 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ [self checkAndShowSignatureColorGuide]; }); } } - (void)checkAndShowSignatureColorGuide { UIWindow *keyWindow = [self getKeyWindow]; if (!keyWindow) return; BOOL hasSignatureColor = [EPEmotionColorStorage hasUserSignatureColor]; //#if DEBUG // // NSLog(@"[AppDelegate] Debug 模式:显示专属颜色引导页(已有颜色: %@)", hasSignatureColor ? @"YES" : @"NO"); // // EPSignatureColorGuideView *guideView = [[EPSignatureColorGuideView alloc] init]; // // // guideView.onColorConfirmed = ^(NSString *hexColor) { // [EPEmotionColorStorage saveUserSignatureColor:hexColor]; // NSLog(@"[AppDelegate] 用户选择专属颜色: %@", hexColor); // }; // // // if (hasSignatureColor) { // guideView.onSkipTapped = ^{ // NSLog(@"[AppDelegate] 用户跳过专属颜色选择"); // }; // } // // // [guideView showInWindow:keyWindow showSkipButton:hasSignatureColor]; // //#else if (!hasSignatureColor) { EPSignatureColorGuideView *guideView = [[EPSignatureColorGuideView alloc] init]; guideView.onColorConfirmed = ^(NSString *hexColor) { [EPEmotionColorStorage saveUserSignatureColor:hexColor]; NSLog(@"[AppDelegate] 用户选择专属颜色: %@", hexColor); }; [guideView showInWindow:keyWindow]; } //#endif } - (void)toLoginPage { EPLoginViewController *lvc = [[EPLoginViewController alloc] init]; BaseNavigationController *navigationController = [[BaseNavigationController alloc] initWithRootViewController:lvc]; navigationController.modalPresentationStyle = UIModalPresentationFullScreen; self.window.rootViewController = navigationController; } - (void)toHomeTabbarPage { EPTabBarController *epTabBar = [EPTabBarController create]; [epTabBar refreshTabBarWithIsLogin:YES]; UIWindow *window = [self getKeyWindow]; if (window) { window.rootViewController = epTabBar; [window makeKeyAndVisible]; } } - (void)applicationDidBecomeActive:(UIApplication *)application { [[NSNotificationCenter defaultCenter]postNotificationName:@"kAppDidBecomeActive" object:nil]; } @end