134 lines
4 KiB
Groovy
134 lines
4 KiB
Groovy
apply plugin: "com.android.application"
|
|
apply plugin: "androidx.navigation.safeargs"
|
|
apply plugin: "com.diffplug.spotless"
|
|
|
|
|
|
android {
|
|
namespace 'im.conversations.android'
|
|
compileSdk 33
|
|
|
|
defaultConfig {
|
|
minSdk 23
|
|
targetSdk 33
|
|
versionCode 1
|
|
versionName "3.0.0-alpha"
|
|
|
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
|
|
|
javaCompileOptions {
|
|
annotationProcessorOptions {
|
|
arguments += ["room.schemaLocation": "$projectDir/schemas".toString()]
|
|
}
|
|
}
|
|
}
|
|
|
|
buildTypes {
|
|
release {
|
|
minifyEnabled false
|
|
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
|
}
|
|
}
|
|
compileOptions {
|
|
coreLibraryDesugaringEnabled true
|
|
sourceCompatibility JavaVersion.VERSION_11
|
|
targetCompatibility JavaVersion.VERSION_11
|
|
}
|
|
buildFeatures {
|
|
dataBinding true
|
|
}
|
|
flavorDimensions "product"
|
|
productFlavors {
|
|
quicksy {
|
|
dimension "product"
|
|
applicationId = "im.quicksy.client"
|
|
|
|
def appName = "Quicksy"
|
|
|
|
resValue "string", "applicationId", applicationId
|
|
resValue "string", "app_name", appName
|
|
buildConfigField "String", "APP_NAME", "\"$appName\""
|
|
}
|
|
conversations {
|
|
dimension "product"
|
|
applicationId "im.conversations.android"
|
|
|
|
def appName = "Conversations"
|
|
|
|
resValue "string", "applicationId", applicationId
|
|
resValue "string", "app_name", appName
|
|
buildConfigField "String", "APP_NAME", "\"$appName\""
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
spotless {
|
|
java {
|
|
target '**/*.java'
|
|
googleJavaFormat('1.8').aosp().reflowLongStrings()
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
implementation project(':annotation')
|
|
annotationProcessor project(':annotation-processor')
|
|
|
|
// make Java 8 API available
|
|
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.2'
|
|
|
|
|
|
// Jetpack / AndroidX libraries
|
|
implementation "androidx.appcompat:appcompat:$rootProject.ext.appcompatVersion"
|
|
|
|
implementation "androidx.lifecycle:lifecycle-extensions:$rootProject.ext.lifecycleVersion"
|
|
implementation "androidx.navigation:navigation-fragment:$rootProject.ext.navVersion"
|
|
implementation "androidx.navigation:navigation-ui:$rootProject.ext.navVersion"
|
|
|
|
implementation "androidx.room:room-runtime:$rootProject.ext.roomVersion"
|
|
implementation "androidx.room:room-guava:$rootProject.ext.roomVersion"
|
|
annotationProcessor "androidx.room:room-compiler:$rootProject.ext.roomVersion"
|
|
|
|
implementation "androidx.security:security-crypto:1.0.0"
|
|
|
|
|
|
// Google material design libraries
|
|
implementation "com.google.android.material:material:$rootProject.ext.material"
|
|
|
|
// LeakCanary to detect memory leaks in debug builds
|
|
debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.10'
|
|
|
|
// crypto libraries
|
|
implementation 'org.whispersystems:signal-protocol-java:2.6.2'
|
|
implementation 'org.conscrypt:conscrypt-android:2.5.2'
|
|
implementation 'org.bouncycastle:bcmail-jdk15on:1.64'
|
|
|
|
|
|
// XMPP Address library
|
|
implementation 'org.jxmpp:jxmpp-jid:1.0.3'
|
|
|
|
// Consistent Color Generation
|
|
implementation 'org.hsluv:hsluv:0.2'
|
|
|
|
|
|
// DNS library (XMPP needs to resolve SRV records)
|
|
implementation 'de.measite.minidns:minidns-hla:0.2.4'
|
|
|
|
// Guava
|
|
implementation 'com.google.guava:guava:31.1-android'
|
|
|
|
// HTTP library
|
|
implementation "com.squareup.okhttp3:okhttp:4.10.0"
|
|
|
|
// JSON parser
|
|
implementation 'com.google.code.gson:gson:2.10.1'
|
|
|
|
// logging framework + logging api
|
|
implementation 'org.slf4j:slf4j-api:1.7.36'
|
|
implementation 'com.github.tony19:logback-android:2.0.1'
|
|
|
|
testImplementation 'junit:junit:4.13.2'
|
|
testImplementation 'org.robolectric:robolectric:4.9.2'
|
|
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
|
|
androidTestImplementation "androidx.test.espresso:espresso-core:$rootProject.ext.espressoVersion"
|
|
}
|