//
//  CoreApiImpl.swift
//  Runner
//
//  Created by 胖胖虎 on 2025/9/30.
//
class CoreApiImpl: CoreApi {
    let controller: FlutterViewController

    init(controller: FlutterViewController) {
        self.controller = controller
    }

    // getApps 是异步方法，需要使用 completion handler
    func getApps(completion: @escaping (Result<String?, Error>) -> Void) {
        // TODO: 实现获取应用列表的逻辑
        completion(.success("getApps"))
    }

    func getSystemLocale() throws -> String? {
        // TODO: 实现获取系统语言的逻辑
        return Locale.current.identifier
    }

    func connect(sessionId: String, socksPort: Int64, tunnelConfig: String, configJson: String) throws -> Bool? {
        // TODO: 实现 VPN 连接逻辑
        return true
    }

    func disconnect() throws -> Bool? {
        // TODO: 实现 VPN 断开逻辑
        return true
    }

    func getRemoteIp() throws -> String? {
        // TODO: 实现获取远程 IP 的逻辑
        return nil
    }

    func getAdvertisingId() throws -> String? {
        // TODO: 实现获取广告 ID 的逻辑
        return nil
    }

    func moveTaskToBack() throws -> Bool? {
        // TODO: iOS 不支持此操作，返回 false
        return false
    }

    func isConnected() throws -> Bool? {
        // TODO: 实现检查 VPN 连接状态的逻辑
        return false
    }

    func getSimInfo() throws -> String? {
        // TODO: 实现获取 SIM 卡信息的逻辑
        return nil
    }

    func reconnect() throws -> Bool? {
        // TODO: 实现 VPN 重连逻辑
        return true
    }

    func getChannel() throws -> String? {
        // TODO: 实现获取渠道信息的逻辑
        return nil
    }
}

