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_17 targetCompatibility JavaVersion.VERSION_17 } 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().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" implementation "androidx.room:room-paging:$rootProject.ext.roomVersion" annotationProcessor "androidx.room:room-compiler:$rootProject.ext.roomVersion" implementation "androidx.paging:paging-runtime:$rootProject.ext.pagingVersion" implementation "androidx.preference:preference:$rootProject.ext.preferenceVersion" 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' // WebRTC implementation 'im.conversations.webrtc:webrtc-android:104.0.0' // 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" }