apply plugin: 'com.android.application' apply from: '../utils.gradle' repositories { mavenCentral() google() maven { url 'https://www.jitpack.io' content { includeModule 'com.github.UnifiedPush', 'android-connector' } } } configurations { compile.exclude module: 'support-v4' } configurations.all { exclude group: 'androidx.recyclerview', module: 'recyclerview' } dependencies { implementation project(':TMessagesProj') coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.5' } android { compileSdkVersion 35 buildToolsVersion '35.0.0' defaultConfig.applicationId = "org.forkclient.messenger" sourceSets.main.jniLibs.srcDirs = ['../TMessagesProj/jni/'] lintOptions { disable 'MissingTranslation' disable 'ExtraTranslation' disable 'BlockedPrivateApi' } compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 coreLibraryDesugaringEnabled true } def fdroid = Utils['isFdroid']() def appSuffix = fdroid ? "" : ".beta" def flavorsConfig = fdroid ? "release" : "debug" if (fdroid) { defaultConfig.applicationId = "org.forkgram.messenger" } signingConfigs { if (fdroid) { debug { storeFile file("") storePassword "" keyAlias "" keyPassword "" } release { storeFile file("") storePassword "" keyAlias "" keyPassword "" } } else { 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 appSuffix minifyEnabled true shrinkResources false multiDexEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), '../TMessagesProj/proguard-rules.pro' } HA { debuggable false jniDebuggable false signingConfig signingConfigs.debug applicationIdSuffix appSuffix minifyEnabled true multiDexEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), '../TMessagesProj/proguard-rules.pro' } 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' } release { debuggable false jniDebuggable false signingConfig signingConfigs.release applicationIdSuffix appSuffix minifyEnabled true shrinkResources false multiDexEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), '../TMessagesProj/proguard-rules.pro' } } sourceSets.debug { manifest.srcFile '../TMessagesProj/config/debug/AndroidManifest.xml' } sourceSets.HA { manifest.srcFile '../TMessagesProj/config/debug/AndroidManifest.xml' } sourceSets.standalone { manifest.srcFile '../TMessagesProj/config/' + flavorsConfig + '/AndroidManifest.xml' } sourceSets.release { manifest.srcFile '../TMessagesProj/config/' + flavorsConfig + '/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/' + flavorsConfig + '/AndroidManifest_SDK23.xml' } sourceSets.standalone { manifest.srcFile '../TMessagesProj/config/' + flavorsConfig + '/AndroidManifest_standalone.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/' + flavorsConfig + '/AndroidManifest_SDK23.xml' } sourceSets.standalone { manifest.srcFile '../TMessagesProj/config/' + flavorsConfig + '/AndroidManifest_standalone.xml' } ext { abiVersionCode = 9 } } // afatFd_v7a { ndk { abiFilters "armeabi-v7a" } sourceSets.debug { manifest.srcFile '../TMessagesProj/config/debug/AndroidManifest_SDK23.xml' } sourceSets.release { manifest.srcFile '../TMessagesProj/config/' + flavorsConfig + '/AndroidManifest_SDK23.xml' } sourceSets.standalone { manifest.srcFile '../TMessagesProj/config/' + flavorsConfig + '/AndroidManifest_standalone.xml' } ext { abiVersionCode = 7 } } afatFd_v8a { ndk { abiFilters "arm64-v8a" } sourceSets.debug { manifest.srcFile '../TMessagesProj/config/debug/AndroidManifest_SDK23.xml' } sourceSets.release { manifest.srcFile '../TMessagesProj/config/' + flavorsConfig + '/AndroidManifest_SDK23.xml' } sourceSets.standalone { manifest.srcFile '../TMessagesProj/config/' + flavorsConfig + '/AndroidManifest_standalone.xml' } ext { abiVersionCode = 8 } } // } defaultConfig.versionCode = Integer.parseInt(Utils['getVersionCode']()) applicationVariants.all { variant -> variant.outputs.all { output -> if (!fdroid) { outputFileName = "app.apk" } output.versionCodeOverride = defaultConfig.versionCode * 10 + variant.productFlavors.get(0).abiVersionCode } } task wrapper(type: Wrapper) { gradleVersion = '7.0.4' } task prepareKotlinBuildScriptModel { } variantFilter { variant -> def names = variant.flavors*.name if (variant.buildType.name != "release" && !names.contains("afat")) { setIgnore(true) } } defaultConfig { minSdkVersion 21 targetSdkVersion 35 versionName Utils['getVersionName']() ndkVersion "21.4.7075529" multiDexEnabled true 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 } }