buildscript {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.+'
    }
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'

repositories {
    maven { url 'https://maven.fabric.io/public' }
}

def generateGitBuild = { ->

    StringBuilder stringBuilder = new StringBuilder();
    stringBuilder.append('"')
    try {
        def stdout = new ByteArrayOutputStream()
        exec {
            commandLine 'git', 'describe', '--always'
            standardOutput = stdout
        }
        String commitObject = stdout.toString().trim()
        stringBuilder.append(commitObject)
    } catch (ignored) {
        stringBuilder.append('NoGitSystemAvailable')
    }
    stringBuilder.append('-')
    stringBuilder.append((new Date()).format('yyyy.MM.dd'))
    stringBuilder.append('"')
    return stringBuilder.toString()
}

android {
    compileSdkVersion 23
    buildToolsVersion "26.0.2"

    defaultConfig {
        applicationId "info.nightscout.androidaps"
        minSdkVersion 21
        targetSdkVersion 23
        multiDexEnabled true
        versionCode 1500
        version "1.56-combo-csv2-test"
        buildConfigField "String", "VERSION", '"' + version + '"'
        buildConfigField "String", "BUILDVERSION", generateGitBuild()

        ndk {
            moduleName "BleCommandUtil"
        }
    }
    lintOptions {
        disable 'MissingTranslation'
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    productFlavors {
        flavorDimensions "standard"
        full {
            dimension "standard"
            resValue "string", "app_name", "AndroidAPS"
            versionName version
            manifestPlaceholders = [
                    appIcon: "@mipmap/blueowl"
            ]
            buildConfigField "boolean", "APS", "true"
            buildConfigField "boolean", "PUMPDRIVERS", "true"
            buildConfigField "boolean", "NSCLIENTOLNY", "false"
            buildConfigField "boolean", "CLOSEDLOOP", "true"
            buildConfigField "boolean", "G5UPLOADER", "false"
        }
        openloop {
            dimension "standard"
            resValue "string", "app_name", "AndroidAPS"
            versionName version
            manifestPlaceholders = [
                    appIcon: "@mipmap/blueowl"
            ]
            buildConfigField "boolean", "APS", "true"
            buildConfigField "boolean", "PUMPDRIVERS", "true"
            buildConfigField "boolean", "NSCLIENTOLNY", "false"
            buildConfigField "boolean", "CLOSEDLOOP", "false"
            buildConfigField "boolean", "G5UPLOADER", "false"
        }
        pumpcontrol {
            dimension "standard"
            resValue "string", "app_name", "AndroidAPS"
            versionName version
            manifestPlaceholders = [
                    appIcon: "@mipmap/blueowl"
            ]
            buildConfigField "boolean", "APS", "false"
            buildConfigField "boolean", "PUMPDRIVERS", "true"
            buildConfigField "boolean", "NSCLIENTOLNY", "false"
            buildConfigField "boolean", "CLOSEDLOOP", "false"
            buildConfigField "boolean", "G5UPLOADER", "false"
        }
        nsclient {
            dimension "standard"
            resValue "string", "app_name", "NSClient"
            versionName version + "-nsclient"
            manifestPlaceholders = [
                    appIcon: "@mipmap/yellowowl"
            ]
            buildConfigField "boolean", "APS", "false"
            buildConfigField "boolean", "PUMPDRIVERS", "false"
            buildConfigField "boolean", "NSCLIENTOLNY", "true"
            buildConfigField "boolean", "CLOSEDLOOP", "false"
            buildConfigField "boolean", "G5UPLOADER", "false"
        }
        g5uploader {
            dimension "standard"
            resValue "string", "app_name", "NSClient"
            versionName version + "-nsclient"
            manifestPlaceholders = [
                    appIcon: "@mipmap/yellowowl"
            ]
            buildConfigField "boolean", "APS", "false"
            buildConfigField "boolean", "PUMPDRIVERS", "false"
            buildConfigField "boolean", "NSCLIENTOLNY", "false"
            buildConfigField "boolean", "CLOSEDLOOP", "false"
            buildConfigField "boolean", "G5UPLOADER", "true"
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

allprojects {
    repositories {
        jcenter()
        flatDir {
            dirs 'libs'
        }
    }
}

dependencies {
    wearApp project(':wear')

    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile('com.crashlytics.sdk.android:crashlytics:2.6.7@aar') {
        transitive = true;
    }
    compile('com.crashlytics.sdk.android:answers:1.3.12@aar') {
        transitive = true;
    }

    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.android.support:support-v4:23.4.0'
    compile 'com.android.support:cardview-v7:23.4.0'
    compile 'com.android.support:recyclerview-v7:23.4.0'
    compile 'com.android.support:gridlayout-v7:23.4.0'
    compile "com.android.support:design:23.4.0"
    compile "com.android.support:percent:23.4.0"
    compile 'com.wdullaer:materialdatetimepicker:2.3.0'
    compile 'com.squareup:otto:1.3.7'
    compile 'com.j256.ormlite:ormlite-core:4.46'
    compile 'com.j256.ormlite:ormlite-android:4.46'
    compile('com.github.tony19:logback-android-classic:1.1.1-6') {
        exclude group: 'com.google.android', module: 'android'
    }
    compile 'org.apache.commons:commons-lang3:3.6'
    compile 'org.slf4j:slf4j-api:1.7.12'
    compile 'com.jjoe64:graphview:4.0.1'
    compile 'com.joanzapata.iconify:android-iconify-fontawesome:2.1.1'
    compile 'com.google.android.gms:play-services-wearable:7.5.0'
    compile 'junit:junit:4.12'
    testCompile 'org.json:json:20140107'
    testCompile 'org.mockito:mockito-core:2.7.22'
    androidTestCompile 'org.mockito:mockito-core:2.7.22'
    androidTestCompile 'com.google.dexmaker:dexmaker:1.2'
    androidTestCompile 'com.google.dexmaker:dexmaker-mockito:1.2'
    compile(name: 'android-edittext-validator-v1.3.4-mod', ext: 'aar')
    compile('com.google.android:flexbox:0.3.0') {
        exclude group: 'com.android.support'
    }
    compile('io.socket:socket.io-client:0.8.3') {
        // excluding org.json which is provided by Android
        exclude group: 'org.json', module: 'json'
    }
    compile 'com.google.code.gson:gson:2.7'
    compile 'com.google.guava:guava:20.0'
    compile project(path: ':ruffyscripter')
}