apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-kapt' if (!getGradle().getStartParameter().getTaskRequests().toString().contains("Fdroid")) { apply plugin: 'com.google.gms.google-services' apply plugin: 'io.fabric' } def javaVersion = JavaVersion.VERSION_1_8 def aux = [ 'com.crashlytics.sdk.android:crashlytics:2.10.1', 'com.google.firebase:firebase-analytics:17.2.2', ] def lifecycleVersion = '2.2.0-rc03' def roomVersion = '2.2.3' android { compileSdkVersion 29 compileOptions { coreLibraryDesugaringEnabled true sourceCompatibility javaVersion targetCompatibility javaVersion } kotlinOptions.jvmTarget = javaVersion defaultConfig { applicationId "be.mygod.vpnhotspot" minSdkVersion 21 targetSdkVersion 29 resConfigs 'it', 'ru', 'zh-rCN' versionCode 218 versionName '2.6.5' testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" javaCompileOptions.annotationProcessorOptions.arguments = [ "room.incremental": "true", "room.schemaLocation": "$projectDir/schemas".toString(), ] buildConfigField "boolean", "DONATIONS", "true" } buildFeatures { dataBinding = true viewBinding = true } buildTypes { debug { pseudoLocalesEnabled true } release { shrinkResources true minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } flavorDimensions("freedom") packagingOptions.exclude '**/*.kotlin_*' productFlavors { fdroid { dimension "freedom" } freedom { dimension "freedom" isDefault = true } google { dimension "freedom" buildConfigField "boolean", "DONATIONS", "false" } } sourceSets { androidTest.assets.srcDirs += files("$projectDir/schemas".toString()) } } androidExtensions { experimental = true } dependencies { coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.4' kapt "androidx.room:room-compiler:$roomVersion" implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'androidx.browser:browser:1.2.0' implementation 'androidx.core:core-ktx:1.1.0' implementation 'androidx.emoji:emoji:1.0.0' implementation 'androidx.fragment:fragment-ktx:1.2.0-rc05' implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycleVersion" implementation "androidx.lifecycle:lifecycle-extensions:$lifecycleVersion" implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycleVersion" implementation "androidx.lifecycle:lifecycle-runtime-ktx:$lifecycleVersion" implementation 'androidx.preference:preference:1.1.0' implementation "androidx.room:room-ktx:$roomVersion" implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.0.0' implementation 'com.android.billingclient:billing-ktx:2.1.0' implementation 'com.github.topjohnwu.libsu:core:2.5.1' implementation 'com.google.android.material:material:1.1.0-rc02' implementation 'com.google.zxing:core:3.4.0' implementation 'com.jakewharton.timber:timber:4.7.1' implementation 'com.linkedin.dexmaker:dexmaker:2.25.1' implementation 'com.takisoft.preferencex:preferencex-simplemenu:1.1.0' implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion" implementation 'org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.3' for (dep in aux) { freedomImplementation dep googleImplementation dep } testImplementation 'junit:junit:4.13' androidTestImplementation "androidx.room:room-testing:$roomVersion" androidTestImplementation 'androidx.test:runner:1.2.0' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' androidTestImplementation 'androidx.test.ext:junit-ktx:1.1.1' }