apply plugin: 'com.android.application'

repositories {
    mavenCentral()
    google()
}

configurations {
    compile.exclude module: 'support-v4'
}

configurations.all {
    exclude group: 'com.google.firebase', module: 'firebase-core'
    exclude group: 'androidx.recyclerview', module: 'recyclerview'
}

dependencies {
    implementation project(':TMessagesProj')
    implementation 'androidx.multidex:multidex:2.0.1'
    coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.5'
    implementation files('../TMessagesProj/libs/libgsaverification-client.aar')
}

android {
    compileSdkVersion 35
    buildToolsVersion '35.0.0'

    defaultConfig.applicationId = APP_PACKAGE

    sourceSets.main.jniLibs.srcDirs = ['../TMessagesProj/jni/']

    lintOptions {
        disable 'MissingTranslation'
        disable 'ExtraTranslation'
        disable 'BlockedPrivateApi'
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8

        coreLibraryDesugaringEnabled true
    }

    signingConfigs {
        debug {
            storeFile file("../TMessagesProj/config/release.keystore")
            storePassword RELEASE_STORE_PASSWORD
            keyAlias RELEASE_KEY_ALIAS
            keyPassword RELEASE_KEY_PASSWORD
        }

        release {
            storeFile file("../TMessagesProj/config/release.keystore")
            storePassword RELEASE_STORE_PASSWORD
            keyAlias RELEASE_KEY_ALIAS
            keyPassword RELEASE_KEY_PASSWORD
        }
    }

    buildTypes {
        debug {
            debuggable true
            jniDebuggable true
            signingConfig signingConfigs.debug
            applicationIdSuffix ".beta"
            minifyEnabled false
            shrinkResources false
            multiDexEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), '../TMessagesProj/proguard-rules.pro', '../TMessagesProj/proguard-rules-beta.pro'
            ndk.debugSymbolLevel = 'FULL'
        }

        standalone {
            debuggable false
            jniDebuggable false
            signingConfig signingConfigs.release
            applicationIdSuffix ".web"
            minifyEnabled true
            shrinkResources false
            multiDexEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), '../TMessagesProj/proguard-rules.pro'
            ndk.debugSymbolLevel = 'FULL'
        }

        release {
            debuggable false
            jniDebuggable false
            signingConfig signingConfigs.release
            minifyEnabled true
            shrinkResources false
            multiDexEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), '../TMessagesProj/proguard-rules.pro'
            ndk.debugSymbolLevel = 'FULL'
        }
    }

    sourceSets.debug {
        manifest.srcFile '../TMessagesProj/config/debug/AndroidManifest.xml'
    }

    sourceSets.standalone {
        manifest.srcFile '../TMessagesProj/config/release/AndroidManifest.xml'
    }

    sourceSets.release {
        manifest.srcFile '../TMessagesProj/config/release/AndroidManifest.xml'
    }

    flavorDimensions "minApi"

    productFlavors {
        bundleAfat {
            ndk {
                abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64"
            }
            ext {
                abiVersionCode = 1
            }
        }
        bundleAfat_SDK23 {
            ndk {
                abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64"
            }
            sourceSets.debug {
                manifest.srcFile '../TMessagesProj/config/debug/AndroidManifest_SDK23.xml'
            }
            sourceSets.release {
                manifest.srcFile '../TMessagesProj/config/release/AndroidManifest_SDK23.xml'
            }
            minSdkVersion 23
            ext {
                abiVersionCode = 2
            }
        }
        afat {
            ndk {
                abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64"
            }
            sourceSets.debug {
                manifest.srcFile '../TMessagesProj/config/debug/AndroidManifest_SDK23.xml'
            }
            sourceSets.release {
                manifest.srcFile '../TMessagesProj/config/release/AndroidManifest_SDK23.xml'
            }
            sourceSets.standalone {
                manifest.srcFile '../TMessagesProj/config/release/AndroidManifest_standalone.xml'
            }
            ext {
                abiVersionCode = 9
            }
        }
    }

    defaultConfig.versionCode = Integer.parseInt(APP_VERSION_CODE)

    applicationVariants.all { variant ->
        variant.outputs.all { output ->
            outputFileName = "app.apk"
            output.versionCodeOverride = defaultConfig.versionCode * 10 + variant.productFlavors.get(0).abiVersionCode
        }
    }

    variantFilter { variant ->
        def names = variant.flavors*.name
        if (variant.buildType.name != "release" && !names.contains("afat")) {
            setIgnore(true)
        }
    }

    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 35
        versionName APP_VERSION_NAME
        ndkVersion "21.4.7075529"

        multiDexEnabled true

        vectorDrawables.generatedDensities = ['mdpi', 'hdpi', 'xhdpi', 'xxhdpi']

        externalNativeBuild {
            cmake {
                version '3.10.2'
                arguments '-DANDROID_STL=c++_static', '-DANDROID_PLATFORM=android-21' // , '-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON'
            }
        }
    }

    buildFeatures {
        buildConfig = true
    }
    namespace 'org.telegram.messenger.regular'

    lintOptions {
        checkReleaseBuilds false
    }
}

apply plugin: 'com.google.gms.google-services'
