//
//  BaseViewController.m
//  app
//
//  Created by Dordly on 2024/3/14.
//

#import "BaseViewController.h"
#import "EntryEntryAbilityViewController.h"

@interface BaseViewController ()
@property (nonatomic, strong) UIView *mainView;

@end

@implementation BaseViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    CGFloat top = [self getStatusBarHeight];
    self.mainView = [[UIView alloc] initWithFrame:CGRectMake(0, top, self.view.frame.size.width, self.view.frame.size.height - top)];
    [self.view addSubview:self.mainView];
    EntryEntryAbilityViewController *mainView = [[EntryEntryAbilityViewController alloc] initWithInstanceName:self.instanceName];
    mainView.view.frame = CGRectMake(0, 0, self.mainView.frame.size.width, self.mainView.frame.size.height);
    [self.mainView addSubview:mainView.view];
    [self addChildViewController:mainView];
}

/// 顶部安全高度
- (CGFloat)getSafeDistanceTop {
    if (@available(iOS 13.0, *)) {
        NSSet *set = [UIApplication sharedApplication].connectedScenes;
        UIWindowScene *windowScene = [set anyObject];
        UIWindow *window = windowScene.windows.firstObject;
        return window.safeAreaInsets.top;
    }
    if (@available(iOS 11.0, *)) {
        UIWindow *window = [UIApplication sharedApplication].windows.firstObject;
        return window.safeAreaInsets.top;
    }
    return 0;
}

/// 顶部状态栏高度+安全区域
- (CGFloat)getStatusBarHeight {
    if (@available(iOS 13.0, *)) {
        NSSet *set = [UIApplication sharedApplication].connectedScenes;
        UIWindowScene *windowScene = [set anyObject];
        UIStatusBarManager *statusManager = windowScene.statusBarManager;
        return statusManager.statusBarFrame.size.height;
    }
    return [UIApplication sharedApplication].statusBarFrame.size.height;
}

@end