| apply plugin: 'com.android.application' |
| 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 "android.support.test.runner.AndroidJUnitRunner" |
| vectorDrawables.useSupportLibrary = 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 |
| } |
| } |
| |
| // 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' |
| } |
| } |
| |
| dependencies { |
| |
| def daggerCompiler = "com.google.dagger:dagger-compiler:$rootProject.daggerVersion" |
| def jUnit = "junit:junit:4.12" |
| def mockito = "org.mockito:mockito-core:$rootProject.mockitoVersion" |
| |
| // Support Dependencies |
| compile "com.android.support:appcompat-v7:$rootProject.supportLibraryVersion" |
| compile "com.android.support:design:$rootProject.supportLibraryVersion" |
| compile "com.android.support:recyclerview-v7:$rootProject.supportLibraryVersion" |
| compile "com.android.support:cardview-v7:$rootProject.supportLibraryVersion" |
| compile "com.android.support.test.espresso:espresso-idling-resource:$rootProject.espressoVersion" |
| compile "com.android.support:support-annotations:$rootProject.supportLibraryVersion" |
| |
| // Rx Dependencies |
| compile "io.reactivex.rxjava2:rxjava:$rootProject.rxjavaVersion" |
| compile "io.reactivex.rxjava2:rxandroid:$rootProject.rxandroidVersion" |
| |
| // Square Dependencies |
| compile "com.squareup.retrofit2:retrofit:$rootProject.retrofitVersion" |
| compile "com.squareup.retrofit2:converter-gson:$rootProject.retrofitVersion" |
| compile "com.squareup.retrofit2:converter-scalars:$rootProject.retrofitVersion" |
| compile "com.squareup.retrofit2:adapter-rxjava2:$rootProject.retrofitVersion" |
| compile "com.squareup.okhttp3:okhttp:$rootProject.okHttp3Version" |
| compile "com.squareup.okhttp3:logging-interceptor:$rootProject.okHttp3Version" |
| |
| //Glide for loading the images |
| compile 'com.github.bumptech.glide:glide:3.7.0' |
| compile 'de.hdodenhof:circleimageview:2.1.0' |
| |
| // Dagger 2 Dependencies |
| compile "com.google.dagger:dagger:$rootProject.daggerVersion" |
| provided 'org.glassfish:javax.annotation:10.0-b28' //Required by Dagger2 |
| annotationProcessor daggerCompiler |
| testAnnotationProcessor daggerCompiler |
| androidTestAnnotationProcessor daggerCompiler |
| |
| // ButterKnife Dependencies |
| compile "com.jakewharton:butterknife:$rootProject.butterKnifeVersion" |
| annotationProcessor "com.jakewharton:butterknife-compiler:$rootProject.butterKnifeVersion" |
| |
| // Fabric Crashlytics Dependencies |
| compile('com.crashlytics.sdk.android:crashlytics:2.6.8@aar') { |
| transitive = true; |
| } |
| |
| //Sticky header RecyclerView |
| compile 'org.zakariya.stickyheaders:stickyheaders:0.7.6' |
| |
| //Material Stepper UI library |
| compile 'com.stepstone.stepper:material-stepper:3.3.0' |
| |
| // Instrumentation test dependencies |
| androidTestCompile jUnit |
| androidTestCompile mockito |
| androidTestCompile "org.mockito:mockito-android:$rootProject.mockitoVersion" |
| androidTestCompile "com.android.support:support-annotations:$rootProject.supportLibraryVersion" |
| androidTestCompile("com.android.support.test.espresso:espresso-contrib:$rootProject.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' |
| } |
| androidTestCompile "com.android.support.test.espresso:espresso-core:$rootProject.espressoVersion" |
| androidTestCompile "com.android.support.test:runner:$rootProject.runnerVersion" |
| androidTestCompile "com.android.support.test:rules:$rootProject.rulesVersion" |
| |
| // Unit tests dependencies |
| testCompile jUnit |
| testCompile mockito |
| testCompile "com.android.support:support-annotations:$rootProject.supportLibraryVersion" |
| testCompile "org.hamcrest:hamcrest-core:$rootProject.hamcrestVersion" |
| testCompile "org.hamcrest:hamcrest-library:$rootProject.hamcrestVersion" |
| testCompile "org.hamcrest:hamcrest-integration:$rootProject.hamcrestVersion" |
| testCompile 'org.robolectric:robolectric:3.1' |
| |
| } |
| |
| // 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()}" |
| } |
| } |