VancedManager/app/build.gradle

158 lines
5.1 KiB
Groovy

import java.util.regex.Matcher
import java.util.regex.Pattern
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.google.firebase.firebase-perf'
apply plugin: 'com.google.firebase.crashlytics'
apply plugin: 'androidx.navigation.safeargs.kotlin'
android {
compileSdkVersion 30
defaultConfig {
applicationId "com.vanced.manager"
minSdkVersion 21
targetSdkVersion 30
versionCode 210
versionName "2.1.0 (CyberManager2077)"
vectorDrawables.useSupportLibrary true
buildConfigField "String[]", "MANAGER_LANGUAGES", "{" + surroundWithQuotes(getLanguages()) + "}"
buildConfigField "Boolean", "ENABLE_CROWDIN_AUTH", "false"
buildConfigField "String", "CROWDIN_HASH", "\"${System.getenv('CROWDIN_HASH')}\""
buildConfigField "String", "CROWDIN_CLIENT_ID", "\"${System.getenv('CROWDIN_CLIENT_ID')}\""
buildConfigField "String", "CROWDIN_CLIENT_SECRET", "\"${System.getenv('CROWDIN_CLIENT_SECRET')}\""
}
lintOptions {
disable 'MissingTranslation', 'ExtraTranslation'
}
applicationVariants.all { variant ->
resValue "string", "versionName", versionName
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
buildFeatures {
dataBinding true // ObservableField migrate to flow or liveData
viewBinding true
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude "META-INF/*.kotlin_module"
}
// To inline the bytecode built with JVM target 1.8 into
// bytecode that is being built with JVM target 1.6. (e.g. navArgs)
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
}
def getLanguages() {
List<String> langs = new ArrayList<String>()
langs.add("en")
//Add languages with dialects
langs.add("bn_BD")
langs.add("bn_IN")
langs.add("pt_BR")
langs.add("pt_PT")
langs.add("zh_CN")
langs.add("zh_TW")
List<String> exceptions = ["bn", "pt", "zh"]
Pattern pattern = Pattern.compile("-(\\w+)-")
new File("${projectDir}/src/main/res").eachDir { dir ->
if (dir.name.startsWith("values-") && !dir.name.contains("v23")) {
Matcher matcher = pattern.matcher(dir.name)
if (matcher.find() && !exceptions.any { matcher.group(1) == it } ) {
langs.add(matcher.group(1))
}
}
}
return langs.toArray().toSorted()
}
static def surroundWithQuotes(Object[] arr) {
String[] dummyArr = arr
for (int i = 0; i < arr.length; i++) {
dummyArr[i] = "\"" + arr[i] + "\""
}
return dummyArr.join(", ")
}
dependencies {
implementation project(':core-presentation')
implementation project(":core-ui")
implementation project(':library-network')
// Kotlin
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
// AndroidX
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'androidx.browser:browser:1.3.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation 'androidx.core:core-ktx:1.3.2'
implementation 'androidx.fragment:fragment-ktx:1.2.5'
implementation 'androidx.lifecycle:lifecycle-livedata-core-ktx:2.2.0'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0'
implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0'
implementation 'androidx.navigation:navigation-fragment-ktx:2.3.2'
implementation 'androidx.navigation:navigation-ui-ktx:2.3.2'
implementation 'androidx.preference:preference-ktx:1.1.1'
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
//Appearance
implementation 'com.github.madrapps:pikolo:2.0.1'
implementation 'com.google.android.material:material:1.3.0-beta01'
// JSON parser
implementation 'com.beust:klaxon:5.4'
// Crowdin
implementation 'com.crowdin.platform:mobile-sdk:1.2.0'
// Tips
implementation 'com.github.florent37:viewtooltip:1.2.2'
// HTTP networking
implementation 'com.github.kittinunf.fuel:fuel:2.3.0'
implementation 'com.github.kittinunf.fuel:fuel-coroutines:2.2.3'
implementation 'com.github.kittinunf.fuel:fuel-json:2.2.3'
implementation 'com.squareup.okhttp3:logging-interceptor:4.9.0'
// Root permissions
implementation 'com.github.topjohnwu.libsu:core:3.0.2'
implementation 'com.github.topjohnwu.libsu:io:3.0.2'
// Layout
implementation 'com.google.android:flexbox:2.0.1'
// Firebase
implementation 'com.google.firebase:firebase-analytics-ktx:18.0.0'
implementation 'com.google.firebase:firebase-crashlytics:17.3.0'
implementation 'com.google.firebase:firebase-messaging:21.0.1'
implementation 'com.google.firebase:firebase-perf:19.0.11'
}