//
//  QSLConst.swift
//  QuickSearchLocation
//
//  Created by mac on 2024/4/10.
//

import Foundation
import UIKit

struct QSLConst {
    
    // MARK: 1.1、是否是缺口屏幕(刘海屏)或者灵动岛的屏幕
    // 是否是缺口屏幕(刘海屏)或者灵动岛的屏幕
    static var qsl_isIPhoneNotch: Bool {
        if #available(iOS 11.0, *) {
            if let window = UIApplication.keyWindow {
                return window.safeAreaInsets.bottom > 0
            } else {
                return false
            }
        } else {
            return UIApplication.shared.statusBarFrame.height > 20
        }
    }

    // MARK: 2.1、屏幕的宽
    /// 屏幕的宽
    static var qsl_kScreenW: CGFloat { return UIScreen.main.bounds.width }

    // MARK: 2.2、屏幕的高
    /// 屏幕的高
    static var qsl_kScreenH: CGFloat { return UIScreen.main.bounds.height }
    
    // MARK: 2.3、获取statusBar的高度
    /// 获取statusBar的高度
    static var qsl_kStatusBarFrameH: CGFloat {
        if #available(iOS 13.0, *) {
            let window: UIWindow? = UIApplication.shared.windows.first
            let statusBarHeight = (window?.windowScene?.statusBarManager?.statusBarFrame.height) ?? 0
            return statusBarHeight
        } else {
            // 防止界面没有出来获取为0的情况
            return UIApplication.shared.statusBarFrame.height > 0 ? UIApplication.shared.statusBarFrame.height : 44
        }
    }

    // MARK: 2.4、获取导航栏的高度
    /// 获取导航栏的高度
    static var qsl_kNavFrameH: CGFloat { return 44 + qsl_kStatusBarFrameH }
        
    // MARK: 2.5、屏幕底部Tabbar高度
    /// 屏幕底部Tabbar高度
    static var qsl_kTabbarFrameH: CGFloat { return QSLConst.qsl_isIPhoneNotch ? 83 : 49 }

    // MARK: 2.6、屏幕底部刘海高度
    /// 屏幕底部刘海高度
    static var qsl_kTabbarBottom: CGFloat { return QSLConst.qsl_isIPhoneNotch ? 34 : 0 }

    // MARK: 2.7、屏幕比例
    /// 屏幕比例
    static var qsl_kPixel: CGFloat { return  1.0 / UIScreen.main.scale }
    
    static var qsl_kScale: CGFloat { return QSLConst.qsl_kScreenW / CGFloat(375.0) }
}
