174 lines
5.2 KiB
Objective-C
174 lines
5.2 KiB
Objective-C
|
||
|
||
// Created by admin on 2023/3/9.
|
||
|
||
|
||
#import "AppDelegate.h"
|
||
|
||
#import "BaseNavigationController.h"
|
||
#import <AppTrackingTransparency/AppTrackingTransparency.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 {
|
||
[self getAdvertisingTrackingAuthority];
|
||
[[NSNotificationCenter defaultCenter]postNotificationName:@"kAppDidBecomeActive" object:nil];
|
||
}
|
||
|
||
- (void)getAdvertisingTrackingAuthority {
|
||
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
|
||
if (@available(iOS 14, *)) {
|
||
ATTrackingManagerAuthorizationStatus status = ATTrackingManager.trackingAuthorizationStatus;
|
||
switch (status) {
|
||
case ATTrackingManagerAuthorizationStatusDenied:
|
||
break;
|
||
case ATTrackingManagerAuthorizationStatusAuthorized:
|
||
break;
|
||
case ATTrackingManagerAuthorizationStatusNotDetermined: {
|
||
|
||
|
||
[ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
|
||
|
||
}];
|
||
}
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
});
|
||
}
|
||
|
||
@end
|