import java.util.Properties
import java.io.FileInputStream

plugins {
    id("com.android.application")
    id("kotlin-android")
    id("com.google.gms.google-services") version "4.4.1" // Add the version here
    id("dev.flutter.flutter-gradle-plugin")
    id("com.huawei.agconnect")
    // id("com.mapbox.gradle.application")
    // id("com.mapbox.gradle.plugins.ndk")
}

val keystoreProperties = Properties()
val keystorePropertiesFile = rootProject.file("key.properties")
if (keystorePropertiesFile.exists()) {
    keystoreProperties.load(FileInputStream(keystorePropertiesFile))
}

android {
    namespace = "com.ejada.hmg"
    compileSdk = 36
    ndkVersion = "28.2.13676358"

    defaultConfig {
        applicationId = "com.ejada.hmg"
        // minSdk = 24
        minSdk = 26
        targetSdk = 35
        compileSdk = 35
        // targetSdk = flutter.targetSdkVersion
        versionCode = flutter.versionCode
        versionName = flutter.versionName
        multiDexEnabled = true
    }

    buildFeatures {
        viewBinding = true
        dataBinding = true
    }

    sourceSets {
//        getByName("main") {
//            java.srcDirs += "src/main/kotlin"
//            jniLibs.srcDir("src/main/libs")
//            jni.srcDirs = listOf() // disables automatic ndk-build
//        }
        getByName("main") {
            java.srcDir("src/main/kotlin")
            jniLibs.srcDir("src/main/libs")
            // To disable automatic ndk-build, do not set jni.srcDirs
            // If you need to clear jni.srcDirs:
            // set("jni.srcDirs", emptyList<String>())
        }
    }

    signingConfigs {
        create("release") {
            keyAlias = keystoreProperties.getProperty("keyAlias")
            keyPassword = keystoreProperties.getProperty("keyPassword")
            storeFile = keystoreProperties.getProperty("storeFile")?.let { file(it) }
            storePassword = keystoreProperties.getProperty("storePassword")
        }
    }

    buildTypes {
        getByName("debug") {
            isDebuggable = true
            signingConfig = signingConfigs.getByName("debug")
            isMinifyEnabled = false
            isShrinkResources = false
        }
        getByName("release") {
            isDebuggable = false
            signingConfig = signingConfigs.getByName("release")
            isMinifyEnabled = true
            isShrinkResources = true
            proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
        }
        create("staging") {
            matchingFallbacks += listOf("debug", "qa", "release")
        }
    }

    packagingOptions {
        jniLibs {
            pickFirsts += listOf(
                "lib/x86/libc++_shared.so",
                "lib/x86_64/libc++_shared.so",
                "lib/armeabi-v7a/libc++_shared.so",
                "lib/arm64-v8a/libc++_shared.so",
                "**/*.so"
            )
            useLegacyPackaging = true
        }
        resources {
            excludes += listOf("META-INF/proguard/androidx-annotations.pro")
        }
    }

    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_21
        targetCompatibility = JavaVersion.VERSION_21
        isCoreLibraryDesugaringEnabled = true
    }

    // kotlinOptions {
    //     jvmTarget = "17"
    // }

    lint {
        disable += "MissingTranslation"
        checkReleaseBuilds = false
    }
}

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

dependencies {
    implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.20")
    implementation("com.google.firebase:firebase-messaging:24.1.2")
    implementation("pub.devrel:easypermissions:3.0.0")
    implementation("com.google.guava:guava:33.4.0-android")
    implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar"), "exclude" to listOf("bcprov-jdk16-1.46.jar"))))
    implementation("com.google.code.gson:gson:2.12.0")

    // Zoom SDKs
    implementation("us.zoom.videosdk:zoomvideosdk-core:1.12.10")
    implementation("us.zoom.videosdk:zoomvideosdk-annotation:1.12.10")
    implementation("us.zoom.videosdk:zoomvideosdk-videoeffects:1.12.10")

    // Networking
    implementation("com.squareup.okhttp3:logging-interceptor:5.0.0-alpha.11")
    implementation("com.squareup.okhttp3:okhttp:5.0.0-alpha.11")
    implementation("com.squareup.retrofit2:retrofit:2.11.0")
    implementation("com.squareup.retrofit2:converter-gson:2.11.0")
    implementation("com.squareup.retrofit2:adapter-java8:2.11.0")

    // Google Services
    implementation("com.google.android.gms:play-services-location:21.3.0")
    implementation("com.google.android.gms:play-services-basement:18.7.0")

    implementation("com.android.volley:volley:1.2.1")
    implementation("androidx.constraintlayout:constraintlayout:2.2.1")
    implementation("androidx.navigation:navigation-fragment-ktx:2.9.0")
    implementation("androidx.navigation:navigation-ui-ktx:2.9.0")
    implementation("androidx.activity:activity-ktx:1.10.1")

//    val room_version = "2.6.1"
//    implementation("androidx.room:room-runtime:$room_version")
//    annotationProcessor("androidx.room:room-compiler:$room_version")

    implementation("net.zetetic:android-database-sqlcipher:4.5.4")
    implementation("com.intuit.ssp:ssp-android:1.1.0")
    implementation("com.intuit.sdp:sdp-android:1.1.0")

//    implementation("com.github.bumptech.glide:glide:4.16.0")
//    annotationProcessor("com.github.bumptech.glide:compiler:4.16.0")

    implementation("com.mapbox.maps:android:11.5.0")
    // implementation("com.mapbox.maps:android:11.4.0")

    // AARs
//    implementation(files("libs/PenNavUI.aar"))
//    implementation(files("libs/Penguin.aar"))
//    implementation(files("libs/PenguinRenderer.aar"))

    implementation("com.github.kittinunf.fuel:fuel:2.3.1")
    implementation("com.github.kittinunf.fuel:fuel-android:2.3.1")

//    implementation("com.opentok.android:opentok-android-sdk:2.25.2")

//    implementation("com.facebook.stetho:stetho:1.6.0")
//    implementation("com.facebook.stetho:stetho-urlconnection:1.6.0")

    implementation("androidx.core:core-ktx:1.16.0")
    implementation("androidx.appcompat:appcompat:1.7.1")
    implementation("com.google.android.material:material:1.12.0")

    implementation("pl.droidsonroids.gif:android-gif-drawable:1.2.25")

    androidTestImplementation("androidx.test:core:1.6.1")
    implementation("com.whatsapp.otp:whatsapp-otp-android-sdk:0.1.0")
    coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.5")
    // implementation(project(":vitalSignEngine"))
}