package com.base.browserwhite.utils

import android.content.Context
import android.text.TextUtils
import android.widget.Toast

object LinkMatchUtils {
    fun handleInput(
        context: Context,
        input: String,
        loadUrl: (url: String) -> Unit,
        performSearch: (search: String) -> Unit
    ) {
        var tempInput = input
        if (TextUtils.isEmpty(input)) {
            Toast.makeText(context, "input something please", Toast.LENGTH_SHORT).show()
            return
        }

        // 去除输入字符串两端的空白字符
        tempInput = input.trim { it <= ' ' }

        // 检查输入是否看起来像是一个网址
        if (isLikelyUrl(tempInput)) {
            // 补齐协议并加载网址
            val formattedUrl = addProtocolIfNeeded(tempInput)
            loadUrl(formattedUrl);
        } else {
            // 作为搜索关键词处理
            performSearch(input);
        }
    }

    /**
     * 检查输入是否可能是一个网址。
     */
    private fun isLikelyUrl(input: String): Boolean {
        // 简单的启发式检查，适用于网址识别
        return input.matches(".*\\..+".toRegex()) && !input.matches(".*\\s.*".toRegex())
    }

    /**
     * 如果输入的字符串没有明确的协议部分，补齐 "http://" 或 "https://"。
     */
    private fun addProtocolIfNeeded(input: String): String {
        // 如果输入以 "http://" 或 "https://" 开头，不做改变
        if (input.startsWith("http://") || input.startsWith("https://")) {
            return input
        } else if (input.startsWith("www.")) {
            return "http://$input"
        } else if (input.contains(".")) {
            return "https://$input"
        }
        // 其他情况，无法确定是网址还是搜索词
        return input
    }
}
