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 11 versionName "0.15.0-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 } 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.1.0" def room_version = "2.1.0" def rx_bindings_version = '3.0.0' 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.1.0-beta01' // Not updating to 1.1.0 due to a crash in Android 5.0.2's WebView implementation 'androidx.constraintlayout:constraintlayout:1.1.3' // 2.0.0 beta version has a bug in PINSecurityLockDialog // Google implementation 'com.google.zxing:core:3.4.0' 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-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-core:17.2.0' implementation 'com.crashlytics.sdk.android:crashlytics:2.10.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.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 } } } }