765ed13a6a
- Renamed the MerchantsWebservice to BitsyWebservice because it is now going to serve as a source of information of more than just merchants and tellers, but also the nodes the app is gonna connect to. - Created new NodeRepository which will be in charge of accessing and updating the nodes database table with the information obtained from the webservice. - Bitsy is now going to try to obtain the list of nodes it is going to try to connect to from the dabatase and use a hardcoded list as a fallback. The list of nodes in the database is updated regularly as well as their respective latency, so that in future app's startups it can use those latencies to immediately connect to the best node in the last app session.
144 lines
5.9 KiB
Groovy
144 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.okhttp3:okhttp:3.12.2'
|
|
implementation 'com.squareup.retrofit2:retrofit:2.6.0'
|
|
implementation 'com.squareup.retrofit2:converter-gson:2.6.0'
|
|
implementation 'com.squareup.okhttp3:logging-interceptor:3.12.2'
|
|
implementation 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'
|
|
//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
|
|
}
|
|
}
|
|
}
|
|
}
|