//
//  AppDelegate.swift
//  AIRingtone
//
//  Created by 100Years on 2025/2/27.
//

import UIKit

var kAppNewVerison = ""
@main
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?
    var backgroundTaskIdentifier: UIBackgroundTaskIdentifier = .invalid
    
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        window = UIWindow(frame: UIScreen.main.bounds)
        window?.backgroundColor = UIColor.white
        window?.makeKeyAndVisible()
        initPlatform()
        goToLoadVC()
        return true
    }

    func goToLoadVC() {
        let launchVC = TSLaunchVC()
        launchVC.dismissHandler = { [weak self]  in
            guard let self = self else { return }
            JudgmentSkipPage()
        }
        window?.rootViewController = TSBaseNavigationC(rootViewController: launchVC)
    }

    func goToTab(){
        window?.rootViewController = TSTabBarController()
    }
    

    func JudgmentSkipPage() {
        //去掉引导页
        if UserDefaults.standard.string(forKey: "isFirstInstallApp") == nil {
            let bootPageVC  = TSBootPageVC { [weak self]  in
                guard let self = self else { return }
                UserDefaults.standard.set("1", forKey: "isFirstInstallApp")
                UserDefaults.standard.synchronize()
                goToTab()
            }
            let navi = TSBaseNavigationC(rootViewController: bootPageVC)
            window?.rootViewController = navi
        }else{
            goToTab()
        }
    }
    

    func initPlatform() {
        TSColorConfigShared.naviMianTextColor = .white
        checkAppConfig()
    }

}

extension AppDelegate {

    func applicationDidEnterBackground(_ application: UIApplication) {
        
//        // 2. 获取上次弹窗的日期
//        let userDefaults = UserDefaults.standard
//        let lastGreetingDateString = userDefaults.string(forKey: "kEveryDayPopPurchase")
//        userDefaults.set(String(Int(lastGreetingDateString!)!+1), forKey: "kEveryDayPopPurchase")//测试用的

        TSBusinessAudioPlayer.shared.stop()
        beginBackgroundTask()
    }
    
    
    func applicationWillEnterForeground(_ application: UIApplication) {
        handleShowEveryDayPopPurchase()
        checkAppConfig()
    }
    func beginBackgroundTask() {
        backgroundTaskIdentifier = UIApplication.shared.beginBackgroundTask { [weak self] in
            self?.endBackgroundTask()
        }
    }
    
    func endBackgroundTask() {
        if backgroundTaskIdentifier != .invalid {
            UIApplication.shared.endBackgroundTask(backgroundTaskIdentifier)
            backgroundTaskIdentifier = .invalid
        }
    }
    
    func applicationWillTerminate(_ application: UIApplication) {
    
    }
    
}

extension AppDelegate {
    
    func handleShowEveryDayPopPurchase() {
        AppDelegate.showEveryDayPopPurchase { vc in
            if let vc = vc ,let rootvc = self.window?.rootViewController {
                vc.modalPresentationStyle = .fullScreen
                rootvc.present(vc, animated: true)
            }
        }
    }
    
    static func showEveryDayPopPurchase(showVCHandle:@escaping (UIViewController?)->Void) {
        
        if UserDefaults.standard.string(forKey: "isFirstInstallApp") == nil || kPurchaseToolShared.isVip {
            //启动页->引导图->会员购买
            showVCHandle(nil)
            return
        }
        
        //启动页->会员购买
        // 1. 获取当前日期
        let currentDate = Date()
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "yyyyMMdd"
        let currentDateString = dateFormatter.string(from: currentDate)
        
        // 2. 获取上次弹窗的日期
        let userDefaults = UserDefaults.standard
        let lastGreetingDateString = userDefaults.string(forKey: "kEveryDayPopPurchase")
        
        // 3. 检查是否需要显示弹窗 "20250319"
        if lastGreetingDateString != currentDateString {
            
            // 4. 弹窗付费引导
            let vc = TSPurchaseVC()
            vc.closePageBlock = {
                showVCHandle(nil)
            }

            showVCHandle(vc)
            // 5. 更新上次弹窗的日期
            userDefaults.set(currentDateString, forKey: "kEveryDayPopPurchase")
            
//            userDefaults.set(String(Int(currentDateString)!+1), forKey: "kEveryDayPopPurchase")测试用的
        }else{
            showVCHandle(nil)
        }
    }
    
    func checkAppConfig(){
        _ = TSNetworkShared.get(urlType: .config) { data,error in
            
            if let result = kNetWorkResultSuccess(data: data) {
                kAppNewVerison = result.safeString(forKey: "version")
                NotificationCenter.default.post(name: .kRefreshSettingView, object: nil)
            }
        }
    }
    
}
