plugins {
    id("com.android.application")
    // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
    id("dev.flutter.flutter-gradle-plugin")
}

android {
    namespace = "cn.shengshentech.changlian"
    compileSdk = flutter.compileSdkVersion
    ndkVersion = flutter.ndkVersion

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

    defaultConfig {
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId = "cn.shengshentech.changlian"
        // You can update the following values to match your application needs.
        // For more information, see: https://flutter.dev/to/review-gradle-config.
        minSdk = flutter.minSdkVersion
        targetSdk = flutter.targetSdkVersion
        versionCode = flutter.versionCode
        versionName = flutter.versionName
    }

    // 压缩打包 .so（默认未压缩存储，OpenIM/WebRTC 的 native 库让包多占近一倍体积）；
    // 代价是安装时多解压一次，对内网分发来说体积更关键。
    packaging {
        jniLibs {
            useLegacyPackaging = true
        }
    }

    buildTypes {
        release {
            // OpenIM 插件靠反射按字段名分发方法调用，R8/混淆会把字段改名导致
            // 所有 SDK 调用静默无响应（表现为 initSDK 永久不返回）。
            // 与官方样板工程一致：release 关闭混淆和资源压缩。
            isMinifyEnabled = false
            isShrinkResources = false
            // TODO: Add your own signing config for the release build.
            // Signing with the debug keys for now, so `flutter run --release` works.
            signingConfig = signingConfigs.getByName("debug")
        }
    }
}

kotlin {
    compilerOptions {
        jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17
    }
}

flutter {
    source = "../.."
}

// livekit_client 插件硬编码 compileSdk = 34，但它依赖的 flutter_webrtc 要求消费者 ≥36，
// AAR 元数据校验会因此失败。:app 先于各插件求值（根脚本有 evaluationDependsOn(":app")），
// 所以在插件求值完成后把它的 compileSdk 抬到 36。
rootProject.subprojects {
    if (name == "livekit_client") {
        afterEvaluate {
            extensions.configure<com.android.build.gradle.LibraryExtension> {
                compileSdk = 36
            }
        }
    }
}
