apply plugin: 'android-sdk-manager'
apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        applicationId "io.v.todos"
        minSdkVersion 21
        multiDexEnabled true
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    productFlavors {
        firebase {
            applicationId "io.v.todos.firebase"
        }
        syncbase {
            applicationId "io.v.todos.syncbase"
        }
        mock {
            applicationId "io.v.todos.mock"
        }
    }
    buildTypes {
        release {
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    lintOptions {
        abortOnError false
    }
    packagingOptions {
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE-FIREBASE.txt'
        exclude 'META-INF/NOTICE'
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'

    // Additional testing libraries (mockito and espresso) for the mock flavor.
    androidTestMockCompile (
            'org.mockito:mockito-core:1.10.19',
            'com.google.dexmaker:dexmaker:1.2',
            'com.google.dexmaker:dexmaker-mockito:1.2'
    )

    androidTestMockCompile ('com.android.support.test.espresso:espresso-intents:2.2') {
            // Necessary to avoid version conflicts
            exclude group: 'com.android.support', module: 'appcompat'
            exclude group: 'com.android.support', module: 'support-v4'
            exclude group: 'com.android.support', module: 'support-annotations'
            exclude module: 'recyclerview-v7'
    }
    androidTestMockCompile('com.android.support.test.espresso:espresso-contrib:2.2') {
            // Necessary to avoid version conflicts
            exclude group: 'com.android.support', module: 'appcompat'
            exclude group: 'com.android.support', module: 'support-v4'
            exclude group: 'com.android.support', module: 'support-annotations'
            exclude module: 'recyclerview-v7'
    }

    compile (
            'com.android.support:appcompat-v7:23.1.1',
            'com.android.support:design:23.1.1',
            'com.android.support:cardview-v7:23.1.1',
            'com.android.support:recyclerview-v7:23.1.1',
            'com.google.guava:guava:19.0'
    )
    firebaseCompile 'com.firebase:firebase-client-android:2.5.2'
    syncbaseCompile 'io.v:vanadium-android:2.0'
}
