bitsy-wallet/app/build.gradle

145 lines
5.9 KiB
Groovy

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: "androidx.navigation.safeargs.kotlin"
apply plugin: 'io.fabric'
apply plugin: 'com.google.gms.google-services'
// Needed for Kotlin's @Parcelize annotation
androidExtensions {
experimental = true
}
android {
compileSdkVersion 28
defaultConfig {
applicationId "cy.agorise.bitsybitshareswallet"
minSdkVersion 21
targetSdkVersion 28
versionCode 7
versionName "0.12.1-beta"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
javaCompileOptions {
annotationProcessorOptions {
arguments = ["room.schemaLocation":
"$projectDir/schemas".toString()]
}
}
sourceSets {
androidTest.assets.srcDirs += files("$projectDir/schemas".toString())
}
}
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
// enable crashlytics
ext.enableCrashlytics = true
}
debug {
resValue("string", "PORT_NUMBER", "8082")
// disable crashlytics
ext.enableCrashlytics = false
}
}
android.packagingOptions {
exclude 'lib/x86_64/darwin/libscrypt.dylib'
exclude 'lib/x86_64/freebsd/libscrypt.so'
exclude 'lib/x86_64/linux/libscrypt.so'
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
// Gradle automatically adds 'android.test.runner' as a dependency.
useLibrary 'android.test.runner'
useLibrary 'android.test.base'
useLibrary 'android.test.mock'
}
dependencies {
def lifecycle_version = "2.0.0"
def room_version = "2.1.0"
def rx_bindings_version = "3.0.0-alpha2"
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation project(':graphenejlib:graphenej')
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
// AndroidX
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta2'
// Google
implementation 'com.google.zxing:core:3.3.3'
implementation 'com.google.code.gson:gson:2.8.5'
implementation 'com.google.android.material:material:1.1.0-alpha04'
implementation 'com.google.android.gms:play-services-maps:17.0.0'
implementation 'com.google.maps.android:android-maps-utils:0.5'
// AAC Lifecycle
implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"
// AAC Room
implementation "androidx.room:room-runtime:$room_version"
implementation "androidx.room:room-rxjava2:$room_version" // RxJava support for Room
implementation "androidx.room:room-ktx:$room_version" // Coroutines support for Room
kapt "androidx.room:room-compiler:$room_version"
// AAC Navigation
implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
implementation "androidx.navigation:navigation-ui-ktx:$nav_version"
// Kotlin Coroutines
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$version_coroutine"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$version_coroutine"
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0-alpha03"
// RxBindings
implementation "com.jakewharton.rxbinding3:rxbinding:$rx_bindings_version"
implementation "com.jakewharton.rxbinding3:rxbinding-material:$rx_bindings_version" // Material Components widgets
implementation "com.jakewharton.rxbinding3:rxbinding-appcompat:$rx_bindings_version" // AndroidX appcompat widgets
// Retrofit & OkHttp
implementation 'com.squareup.retrofit2:retrofit:2.6.0'
implementation 'com.squareup.retrofit2:converter-gson:2.6.0'
implementation 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'
implementation 'com.squareup.okhttp3:okhttp:3.12.2'
implementation 'com.squareup.okhttp3:logging-interceptor:3.12.2'
//Firebase
implementation 'com.google.firebase:firebase-core:17.1.0'
implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
// PDF and CSV generation
implementation 'com.itextpdf:itextpdf:5.5.13'
implementation 'com.opencsv:opencsv:3.7'
// Others
api 'com.google.guava:guava:27.0.1-android'
implementation 'org.bitcoinj:bitcoinj-core:0.14.3'
implementation 'com.moldedbits.r2d2:r2d2:1.0.1'
implementation 'me.dm7.barcodescanner:zxing:1.9.8'
implementation 'com.afollestad.material-dialogs:core:2.0.0'
implementation 'com.andrognito.patternlockview:patternlockview:1.0.0'
// Android Debug Database
debugImplementation 'com.amitshekhar.android:debug-db:1.0.6'
// Testing libs
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:core:1.2.0'
androidTestImplementation "androidx.arch.core:core-testing:$lifecycle_version"
androidTestImplementation "androidx.room:room-testing:$room_version"
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
androidTestImplementation 'com.jraska.livedata:testing-ktx:1.0.0'
}
// Added to avoid the compilation problem due to a duplicate ListenableFuture library
afterEvaluate {
configurations.all {
def group = 'com.google.guava', name = 'guava', version = '27.0.1-android'
resolutionStrategy.eachDependency { details ->
if (requested.group == group && requested.name == name) {
details.useTarget group: details.requested.group, name: name, version: version
}
}
}
}