// Tencent Qian H5 容器 — webview-container Library 模块
//
// 模块定位:
//   - 输出物:Android Library(Phase 1.5 升级时一键 assembleRelease 产出 .aar)
//   - 公开包名:com.tencent.qian.webview
//   - 客户三种集成方式:
//       ① fork 本仓库
//       ② 拷贝整个 webview-container/ 模块 include 到自己工程
//       ③ 拷贝 src/main/kotlin/com/tencent/qian/webview/ 下纯源码

plugins {
    alias(libs.plugins.android.library)
    alias(libs.plugins.kotlin.android)
}

android {
    namespace = "com.tencent.qian.webview"
    compileSdk = libs.versions.compileSdk.get().toInt()

    defaultConfig {
        minSdk = libs.versions.minSdk.get().toInt()

        // SDK 版本号(从 CHANGELOG 自动读取,由 build-android-kotlin.sh 传入)
        // 回退值 1.0.0 仅用于 IDE 直接运行(非脚本构建)的场景
        val sdkVersion = project.findProperty("sdkVersion")?.toString() ?: "1.2.0"
        buildConfigField("String", "SDK_VERSION", "\"${sdkVersion}\"")

        consumerProguardFiles("consumer-rules.pro")

        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
    }

    buildFeatures {
        buildConfig = true
        viewBinding = false // 顶栏布局极简,不引入 ViewBinding 依赖
    }

    buildTypes {
        release {
            isMinifyEnabled = false
            proguardFiles(
                getDefaultProguardFile("proguard-android-optimize.txt"),
                "proguard-rules.pro"
            )
        }
    }

    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }

    kotlinOptions {
        jvmTarget = "1.8"
        // 公开 API 用 explicit api 模式更安全,但会拖慢首次接入心智,本期暂不开
        // freeCompilerArgs += listOf("-Xexplicit-api=strict")
    }

    sourceSets {
        named("main") {
            java.srcDirs("src/main/kotlin")
        }
        named("test") {
            java.srcDirs("src/test/kotlin")
        }
        named("androidTest") {
            java.srcDirs("src/androidTest/kotlin")
        }
    }

    testOptions {
        unitTests {
            isIncludeAndroidResources = true
            isReturnDefaultValues = true
        }
    }
}

dependencies {
    // ────────── 运行时(SDK 主体依赖) ──────────
    implementation(libs.androidx.core.ktx)
    implementation(libs.androidx.appcompat)        // AppCompatActivity 顶栏
    implementation(libs.androidx.activity)         // ActivityResultContracts
    implementation(libs.androidx.fragment)
    implementation(libs.androidx.annotation)
    implementation(libs.androidx.webkit)           // 现代 WebView API
    implementation(libs.google.material)           // Material 顶栏样式

    // ────────── 单测 ──────────
    testImplementation(libs.junit)
    testImplementation(libs.robolectric)           // SignResultParser 单测在 JVM 跑
    testImplementation(libs.androidx.test.ext.junit)

    // ────────── UI/集成测试 ──────────
    androidTestImplementation(libs.androidx.test.ext.junit)
    androidTestImplementation(libs.androidx.test.espresso.core)
}
