apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt'
apply from: '../config/quality/quality.gradle'

android {
    compileSdkVersion 23
    buildToolsVersion "21.1.2"
    useLibrary 'org.apache.http.legacy'
    lintOptions {
        abortOnError false

    }
    defaultConfig {
        applicationId "mobile.taverna.apache.org.tavernamobile"
        minSdkVersion 16
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}
repositories {
    jcenter()
    mavenCentral()
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.3.0'
    compile 'com.android.support:cardview-v7:23.3.0'
    compile 'com.android.support:recyclerview-v7:23.3.0'
    compile 'com.android.support:support-v4:23.3.0'
    compile files('libs/dropbox-android-sdk-1.6.3.jar')
    compile 'com.android.support:design:23.3.0'

    compile 'com.squareup.retrofit2:retrofit:2.0.2'
    compile "com.squareup.retrofit2:adapter-rxjava:2.0.2"
    compile 'com.squareup.okhttp3:logging-interceptor:3.2.0'

    compile('com.squareup.retrofit2:converter-simplexml:2.0.2') {
        exclude group: 'xpp3', module: 'xpp3'
        exclude group: 'stax', module: 'stax-api'
        exclude group: 'stax', module: 'stax'
    }
    compile 'com.jakewharton:butterknife:8.0.1'
    apt 'com.jakewharton:butterknife-compiler:8.0.1'


    compile 'io.reactivex:rxandroid:1.2.0'
// Because RxAndroid releases are few and far between, it is recommended you also
// explicitly depend on RxJava's latest version for bug fixes and new features.
    compile 'io.reactivex:rxjava:1.1.4'

    compile('org.simpleframework:simple-xml:2.7.+'){
        exclude module: 'stax'
        exclude module: 'stax-api'
        exclude module: 'xpp3'
    }

    compile 'com.github.bumptech.glide:glide:3.6.0'
    compile 'com.caverock:androidsvg:1.2.1'


    apt "com.github.Raizlabs.DBFlow:dbflow-processor:3.0.1"
    compile "com.github.Raizlabs.DBFlow:dbflow-core:3.0.1"
    compile "com.github.Raizlabs.DBFlow:dbflow:3.0.1"

    compile 'com.facebook.stetho:stetho:1.3.1'
    compile 'com.facebook.stetho:stetho-okhttp3:1.3.1'

    compile 'com.github.chrisbanes:PhotoView:1.2.6'
}
