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

import UIKit

class SceneDelegate: UIResponder, UIWindowSceneDelegate {

    var window: UIWindow?
    
    var isShowTipView : Bool = true

    func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
        // 检查是否通过捷径启动 未启动状态
        if connectionOptions.shortcutItem != nil {
            dealWithShortcutItem(connectionOptions.shortcutItem?.type ?? "")
        }
        guard let _ = (scene as? UIWindowScene) else { return }
    }
    
    func windowScene(_ windowScene: UIWindowScene, performActionFor shortcutItem: UIApplicationShortcutItem, completionHandler: @escaping (Bool) -> Void) {
        dealWithShortcutItem(shortcutItem.type)
        completionHandler(true)
    }
    
    func dealWithShortcutItem(_ type: String){
        var scheme = ""
        
        if type == "com.manbu.shouji.feedback"{
            scheme = "location://page/QSLFeedbackVC"
        }else if type == "com.manbu.shouji.trial"{
            scheme = "location://page/QSLVipTrialVC"
            QSEventHandle.eventPush(eventName: QSLGravityConst.unpaid_click_uninstall_popup)
        }else if type == "com.manbu.shouji.member"{
            scheme = "location://page/QSLVipController"
        }else{
            scheme = "location://shortcut/" + type
        }
        if(QSLTools.shared.isOpen){
            //处理urlScheme
            QSLTools.shared.urlScheme = ""
            QSLTools.shared.dealwithScheme(scheme)
            return
        }
        
        QSLTools.shared.urlScheme = scheme
       
    }

    func sceneDidDisconnect(_ scene: UIScene) {
        // Called as the scene is being released by the system.
        // This occurs shortly after the scene enters the background, or when its session is discarded.
        // Release any resources associated with this scene that can be re-created the next time the scene connects.
        // The scene may re-connect later, as its session was not necessarily discarded (see `application:didDiscardSceneSessions` instead).
    }

    func sceneDidBecomeActive(_ scene: UIScene) {
        // Called when the scene has moved from an inactive state to an active state.
        // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive.
        if self.isShowTipView {
            ///判断要不要弹引导用户去评价
            //QSLGuideusersToCommentManager.commentShare.manageWhetherTriggerPopUpWindow(QSLGuideusersToCommentType.nonMember)
        }
        self.isShowTipView = false
    }

    func sceneWillResignActive(_ scene: UIScene) {
        // Called when the scene will move from an active state to an inactive state.
        // This may occur due to temporary interruptions (ex. an incoming phone call).
    }

    func sceneWillEnterForeground(_ scene: UIScene) {
        // Called as the scene transitions from the background to the foreground.
        // Use this method to undo the changes made on entering the background.
    }

    func sceneDidEnterBackground(_ scene: UIScene) {
        self.isShowTipView = true
        // Called as the scene transitions from the foreground to the background.
        // Use this method to save data, release shared resources, and store enough scene-specific state information
        // to restore the scene back to its current state.
    }


}

