| apply plugin: 'com.android.application' |
| apply plugin: 'kotlin-kapt' |
| apply plugin: 'kotlin-android' |
| apply plugin: 'kotlin-android-extensions' |
| apply plugin: 'io.fabric' |
| apply from: '../config/quality/quality.gradle' |
| |
| android { |
| compileSdkVersion rootProject.ext.compileSdkVersion |
| buildToolsVersion rootProject.ext.buildToolsVersion |
| |
| defaultConfig { |
| applicationId "org.apache.fineract" |
| minSdkVersion rootProject.ext.minSdkVersion |
| targetSdkVersion rootProject.ext.targetSdkVersion |
| versionCode 1 |
| versionName "1.0" |
| testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" |
| vectorDrawables.useSupportLibrary = true |
| multiDexEnabled true |
| } |
| |
| buildTypes { |
| |
| debug { |
| versionNameSuffix " Debug" |
| debuggable true |
| } |
| |
| release { |
| minifyEnabled false |
| proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' |
| } |
| } |
| |
| sourceSets { |
| def commonTestDir = 'src/commonTest/java' |
| androidTest { |
| java.srcDir commonTestDir |
| } |
| test { |
| java.srcDir commonTestDir |
| } |
| main { |
| java.srcDir commonTestDir |
| } |
| } |
| |
| // Always show the result of every unit test, even if it passes. |
| testOptions.unitTests.all { |
| testLogging { |
| events 'passed', 'skipped', 'failed', 'standardOut', 'standardError' |
| } |
| } |
| |
| lintOptions { |
| abortOnError false |
| warning 'InvalidPackage' |
| } |
| |
| packagingOptions { |
| exclude 'META-INF/rxjava.properties' |
| } |
| |
| //for @parcelize extension |
| androidExtensions { |
| experimental = true |
| } |
| |
| compileOptions { |
| sourceCompatibility JavaVersion.VERSION_1_8 |
| targetCompatibility JavaVersion.VERSION_1_8 |
| } |
| kotlinOptions { |
| jvmTarget = JavaVersion.VERSION_1_8 |
| } |
| } |
| |
| dependencies { |
| |
| def daggerCompiler = "com.google.dagger:dagger-compiler:$rootProject.daggerVersion" |
| def jUnit = "junit:junit:$rootProject.junitVersion" |
| def mockito = "org.mockito:mockito-core:$rootProject.mockitoVersion" |
| |
| // Support Dependencies |
| implementation "androidx.appcompat:appcompat:$supportLibraryVersion" |
| implementation "com.google.android.material:material:$supportLibraryVersion" |
| implementation "androidx.recyclerview:recyclerview:$supportLibraryVersion" |
| implementation "androidx.cardview:cardview:$supportLibraryVersion" |
| implementation "androidx.test.espresso:espresso-idling-resource:$espressoVersion" |
| implementation "androidx.annotation:annotation:$supportLibraryVersion" |
| implementation "androidx.lifecycle:lifecycle-extensions:$lifecycleExtension" |
| implementation 'androidx.legacy:legacy-support-v4:1.0.0' |
| kapt "androidx.lifecycle:lifecycle-compiler:$lifecycleExtension" |
| |
| |
| // Kotlin Dependencies |
| implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion" |
| implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlinVersion" |
| |
| //android-job |
| implementation "com.evernote:android-job:$androidJobVersion" |
| |
| implementation "com.github.therajanmaurya:Sweet-Error:$sweetErrorVersion" |
| |
| implementation "androidx.legacy:legacy-support-v4:$supportLibraryVersion" |
| kapt "com.github.Raizlabs.DBFlow:dbflow-processor:$dbflowVersion" |
| implementation "com.github.Raizlabs.DBFlow:dbflow-core:$dbflowVersion" |
| implementation "com.github.Raizlabs.DBFlow:dbflow:$dbflowVersion" |
| implementation "com.github.Raizlabs.DBFlow:dbflow-rx2:$dbflowVersion" |
| |
| // Rx Dependencies |
| implementation "io.reactivex.rxjava2:rxjava:$rxjavaVersion" |
| implementation "io.reactivex.rxjava2:rxandroid:$rxandroidVersion" |
| implementation "io.reactivex.rxjava2:rxkotlin:$rxKotlinVersion" |
| |
| // Square Dependencies |
| implementation "com.squareup.retrofit2:retrofit:$retrofitVersion" |
| implementation "com.squareup.retrofit2:converter-gson:$retrofitVersion" |
| implementation "com.squareup.retrofit2:converter-scalars:$retrofitVersion" |
| implementation "com.squareup.retrofit2:adapter-rxjava2:$retrofitVersion" |
| implementation "com.squareup.okhttp3:okhttp:$okHttp3Version" |
| implementation "com.squareup.okhttp3:logging-interceptor:$okHttp3Version" |
| |
| //Glide for loading the images |
| implementation "com.github.bumptech.glide:glide:$glideVersion" |
| implementation "de.hdodenhof:circleimageview:$circleImageviewVersion" |
| |
| // Dagger 2 Dependencies |
| implementation "com.google.dagger:dagger:$daggerVersion" |
| compileOnly 'org.glassfish:javax.annotation:10.0-b28' //Required by Dagger2 |
| kapt daggerCompiler |
| // testkapt daggerCompiler |
| // androidTestkapt daggerCompiler |
| |
| // ButterKnife Dependencies |
| implementation "com.jakewharton:butterknife:$butterKnifeVersion" |
| kapt "com.jakewharton:butterknife-compiler:$butterKnifeVersion" |
| |
| // Fabric Crashlytics Dependencies |
| implementation('com.crashlytics.sdk.android:crashlytics:2.6.8@aar') { |
| transitive = true |
| } |
| |
| //Sticky header RecyclerView |
| implementation "org.zakariya.stickyheaders:stickyheaders:$sticyHeaderVersion" |
| |
| // Compressor for Image Compression |
| implementation "id.zelory:compressor:$compressorVersion" |
| |
| //Material Stepper UI library |
| implementation "com.stepstone.stepper:material-stepper:$materialStepperVersion" |
| |
| implementation "com.mifos.mobile:mifos-passcode:$mifosPasscodeVersion" |
| |
| //Easy Validation Library |
| implementation "com.wajahatkarim3.easyvalidation:easyvalidation-core:$easyValidationVersion" |
| |
| //Coroutines |
| implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$version_kotlin_coroutines" |
| implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$version_kotlin_coroutines" |
| |
| //couchbase |
| implementation "com.couchbase.lite:couchbase-lite-android:$couchbase" |
| |
| |
| // Instrumentation test dependencies |
| androidTestImplementation jUnit |
| androidTestImplementation mockito |
| androidTestImplementation "org.mockito:mockito-android:$mockitoVersion" |
| androidTestImplementation "androidx.annotation:annotation:$supportLibraryVersion" |
| androidTestImplementation("androidx.test.espresso:espresso-contrib:$espressoVersion") { |
| exclude group: 'com.android.support', module: 'appcompat' |
| exclude group: 'com.android.support', module: 'support-v4' |
| exclude group: 'com.android.support', module: 'recyclerview-v7' |
| exclude group: 'com.android.support', module: 'design' |
| exclude group: 'com.android.support', module: 'support-annotations' |
| } |
| androidTestImplementation "androidx.test.espresso:espresso-core:$espressoVersion" |
| androidTestImplementation "androidx.test:runner:$runnerVersion" |
| androidTestImplementation "androidx.test:rules:$rulesVersion" |
| androidTestImplementation "androidx.test.ext:junit:$extJunit" |
| androidTestImplementation "androidx.test.espresso:espresso-core:$espressoCore" |
| androidTestImplementation "androidx.test.espresso:espresso-contrib: $espressonContribute" |
| |
| // Unit tests dependencies |
| testImplementation jUnit |
| testImplementation mockito |
| testImplementation "androidx.annotation:annotation:$supportLibraryVersion" |
| testImplementation "org.hamcrest:hamcrest-core:$hamcrestVersion" |
| testImplementation "org.hamcrest:hamcrest-library:$hamcrestVersion" |
| testImplementation "org.hamcrest:hamcrest-integration:$hamcrestVersion" |
| testImplementation "org.robolectric:robolectric:$roboElectricVersion" |
| } |
| |
| // Log out test results to console |
| tasks.matching { it instanceof Test }.all { |
| testLogging.events = ["failed", "passed", "skipped"] |
| } |
| |
| /* |
| Resolves dependency versions across test and production APKs, specifically, transitive |
| dependencies. This is required since Espresso internally has a dependency on support-annotations. |
| */ |
| configurations.all { |
| resolutionStrategy { |
| force 'com.android.support:support-annotations:23.1.1' |
| force 'com.google.code.findbugs:jsr305:1.3.9' |
| } |
| } |
| |
| /* |
| All direct/transitive dependencies shared between your test and production APKs need to be |
| excluded from the test APK! This is necessary because both APKs will contain the same classes. Not |
| excluding these dependencies from your test configuration will result in an dex pre-verifier error |
| at runtime. More info in this tools bug: (https://code.google.com/p/android/issues/detail?id=192497) |
| */ |
| configurations.compile.dependencies.each { compileDependency -> |
| println "Excluding compile dependency: ${compileDependency.getName()}" |
| configurations.androidTestCompile.dependencies.each { androidTestCompileDependency -> |
| configurations.androidTestCompile.exclude module: "${compileDependency.getName()}" |
| } |
| } |
| repositories { |
| mavenCentral() |
| } |