//
//  AppDelegate.swift
//  VenusKitto
//
//  Created by Neoa on 2025/8/21.
//

import UIKit
import AnyThinkSDK
import AppTrackingTransparency
import AdSupport

@main
class AppDelegate: UIResponder, UIApplicationDelegate {



    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        
        
        DispatchQueue.main.asyncAfter(deadline: .now() + 2.0) {
            self.requestTrackingPermission()
        }

        self.initAnythinkSDK()

        return true
    }

    // MARK: UISceneSession Lifecycle

    func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
        // Called when a new scene session is being created.
        // Use this method to select a configuration to create the new scene with.
        return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
    }

    func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {
        // Called when the user discards a scene session.
        // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions.
        // Use this method to release any resources that were specific to the discarded scenes, as they will not return.
    }


    func initAnythinkSDK() {
        ATAPI.setLogEnabled(false)
        ATAPI.integrationChecking()
        // 初始化 AnyThink
        do {
            let ok: () = try ATAPI.sharedInstance().start(withAppID: kTakuAppID, appKey: kTakuAppKey)
            print("AnyThink SDK start success: \(ok)")
        } catch {
            print("AnyThink SDK start failed:", error)
        }
    }

    func requestTrackingPermission() {
        if #available(iOS 14, *) {
            ATTrackingManager.requestTrackingAuthorization { status in
                switch status {
                case .authorized:
                    print("Authorized to track.")
                    // Access IDFA (if needed)
                case .denied:
                    print("Denied tracking permission.")
                case .notDetermined:
                    print("Tracking permission not determined.")
                case .restricted:
                    print("Tracking permission restricted.")
                @unknown default:
                    print("Unknown tracking status.")
                }
            }
        } else {
            // Handle older iOS versions if necessary
            print("App Tracking Transparency not available on this iOS version.")
        }
    }

}

