bitsy-wallet/app/build.gradle

147 lines
5.9 KiB
Groovy

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-parcelize'
apply plugin: 'kotlin-kapt'
apply plugin: "androidx.navigation.safeargs.kotlin"
apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.google.firebase.crashlytics'
android {
compileSdkVersion 29
defaultConfig {
applicationId "cy.agorise.bitsybitshareswallet"
minSdkVersion 21
targetSdkVersion 29
versionCode 15
versionName "0.17.2-beta"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
javaCompileOptions {
annotationProcessorOptions {
arguments = ["room.schemaLocation":
"$projectDir/schemas".toString()]
}
}
sourceSets {
androidTest.assets.srcDirs += files("$projectDir/schemas".toString())
}
}
buildFeatures {
viewBinding true
}
buildTypes {
debug {
minifyEnabled false
resValue("string", "PORT_NUMBER", "8082")
}
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
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
}
kotlinOptions {
jvmTarget = "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.2.0"
def arch_version = "2.1.0"
def room_version = "2.2.6"
def rx_bindings_version = '3.0.0'
def version_coroutine = '1.4.1'
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation project(':graphenejlib:graphenej')
implementation project(':PDFJet')
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
// AndroidX
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
// Google
implementation 'com.google.zxing:core:3.4.0'
implementation 'com.google.code.gson:gson:2.8.6'
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-viewmodel-ktx:$lifecycle_version" // viewModelScope
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"
// 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.okhttp3:okhttp:4.2.0'
implementation 'com.squareup.retrofit2:retrofit:2.6.1'
implementation 'com.squareup.retrofit2:converter-gson:2.6.1'
implementation 'com.squareup.okhttp3:logging-interceptor:4.2.0'
implementation 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'
//Firebase
implementation 'com.google.firebase:firebase-analytics:18.0.2'
implementation 'com.google.firebase:firebase-crashlytics:17.3.1'
// CSV generation
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.13'
implementation 'com.afollestad.material-dialogs:core:3.1.1'
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.3.0'
androidTestImplementation "androidx.arch.core:core-testing:$arch_version"
androidTestImplementation "androidx.room:room-testing:$room_version"
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.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
}
}
}
}