apply plugin: 'com.android.application' apply plugin: 'com.google.protobuf' def getCmdOutput = { cmd -> def stdout = new ByteArrayOutputStream() exec { commandLine cmd standardOutput = stdout } return stdout.toString().trim() } def getGitHash = { -> return getCmdOutput(["git", "rev-parse", "--short", "HEAD"]) } def getGitBranch = { -> return getCmdOutput(["git", "rev-parse", "--abbrev-ref", "HEAD"]) } android { compileSdkVersion 30 defaultConfig { applicationId "com.beemdevelopment.aegis" minSdkVersion 21 targetSdkVersion 30 versionCode 39 versionName "1.3" multiDexEnabled true buildConfigField "String", "GIT_HASH", "\"${getGitHash()}\"" buildConfigField "String", "GIT_BRANCH", "\"${getGitBranch()}\"" testInstrumentationRunner "com.beemdevelopment.aegis.AegisTestRunner" testInstrumentationRunnerArguments clearPackageData: 'true' } lintOptions { abortOnError true disable "MissingTranslation" } testOptions { execution 'ANDROIDX_TEST_ORCHESTRATOR' unitTests.all { useJUnitPlatform() ignoreFailures false testLogging { events "passed", "skipped", "failed", "standardOut", "standardError" } } } buildTypes { debug { applicationIdSuffix ".debug" manifestPlaceholders = [title: "AegisDev", iconName: "ic_launcher_debug"] resValue "bool", "pref_secure_screen_default", "false" postprocessing { removeUnusedCode true removeUnusedResources true obfuscate false optimizeCode false proguardFiles getDefaultProguardFile('proguard-defaults.txt'), 'proguard-rules.pro' } } release { manifestPlaceholders = [title: "Aegis", iconName: "ic_launcher"] resValue "bool", "pref_secure_screen_default", "true" postprocessing { removeUnusedCode true removeUnusedResources true obfuscate false optimizeCode true proguardFiles getDefaultProguardFile('proguard-defaults.txt'), 'proguard-rules.pro' } } } compileOptions { targetCompatibility 1.8 sourceCompatibility 1.8 coreLibraryDesugaringEnabled true } } protobuf { protoc { artifact = 'com.google.protobuf:protoc:3.8.0' } generateProtoTasks { all().each { task -> task.builtins { java { option "lite" } } } } } dependencies { def cameraxVersion = '1.0.0-beta11' def glideVersion = '4.11.0' def guavaVersion = '30.0' def junitVersion = '5.7.0' def libsuVersion = '2.5.1' annotationProcessor 'androidx.annotation:annotation:1.1.0' annotationProcessor "com.github.bumptech.glide:compiler:${glideVersion}" implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'androidx.appcompat:appcompat:1.2.0' implementation "androidx.biometric:biometric:1.0.1" implementation "androidx.camera:camera-camera2:$cameraxVersion" implementation "androidx.camera:camera-lifecycle:$cameraxVersion" implementation "androidx.camera:camera-view:1.0.0-alpha18" implementation 'androidx.cardview:cardview:1.0.0' implementation 'androidx.constraintlayout:constraintlayout:2.0.2' implementation 'androidx.documentfile:documentfile:1.0.1' implementation "androidx.lifecycle:lifecycle-process:2.2.0" implementation 'androidx.preference:preference:1.1.1' implementation 'androidx.recyclerview:recyclerview:1.1.0' implementation "androidx.viewpager2:viewpager2:1.0.0" implementation 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1' implementation 'com.getbase:floatingactionbutton:1.10.1' implementation 'com.github.avito-tech:krop:0.44' implementation "com.github.bumptech.glide:annotations:${glideVersion}" implementation "com.github.bumptech.glide:glide:${glideVersion}" implementation("com.github.bumptech.glide:recyclerview-integration:${glideVersion}") { transitive = false } implementation "com.github.topjohnwu.libsu:core:${libsuVersion}" implementation "com.github.topjohnwu.libsu:io:${libsuVersion}" implementation "com.google.guava:guava:${guavaVersion}-android" implementation 'com.google.android.material:material:1.0.0' implementation 'com.google.protobuf:protobuf-javalite:3.13.0' implementation 'com.google.zxing:core:3.4.1' implementation "com.mikepenz:iconics-core:3.2.5" implementation 'com.mikepenz:material-design-iconic-typeface:2.2.0.5@aar' implementation 'com.nulab-inc:zxcvbn:1.3.0' implementation 'de.hdodenhof:circleimageview:3.1.0' implementation 'de.psdev.licensesdialog:licensesdialog:2.1.0' implementation 'net.lingala.zip4j:zip4j:2.6.4' implementation 'info.guardianproject.trustedintents:trustedintents:0.2' implementation 'org.bouncycastle:bcprov-jdk15on:1.65' androidTestImplementation 'androidx.test:core:1.3.0' androidTestImplementation 'androidx.test:runner:1.3.0' androidTestImplementation 'androidx.test:rules:1.3.0' androidTestImplementation 'androidx.test.ext:junit:1.1.2' androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' androidTestImplementation 'androidx.test.espresso:espresso-contrib:3.3.0' androidTestImplementation 'androidx.test.espresso:espresso-intents:3.3.0' androidTestImplementation 'junit:junit:4.13.1' androidTestUtil 'androidx.test:orchestrator:1.3.0' testImplementation "com.google.guava:guava:${guavaVersion}-jre" testImplementation "org.junit.jupiter:junit-jupiter-api:${junitVersion}" testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:${junitVersion}" coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.10' }