buildscript {
    repositories {
        google()
        mavenCentral()
        maven { url "https://plugins.gradle.org/m2/" } // jacoco 0.2
    }

    dependencies {
        //classpath 'com.dicedmelon.gradle:jacoco-android:0.1.4'
        classpath 'com.hiya:jacoco-android:0.2'
    }
}
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-allopen'
apply plugin: 'com.hiya.jacoco-android'

apply from: "${project.rootDir}/core/test_dependencies.gradle"
apply from: "${project.rootDir}/core/android_dependencies.gradle"
apply from: "${project.rootDir}/core/jacoco_global.gradle"


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 31

    defaultConfig {
        minSdkVersion 23
        targetSdkVersion 29
        versionCode 2
        versionName "1.0.3"
        buildConfigField "String", "BUILDVERSION", generateGitBuild()
    }

    buildFeatures {
        viewBinding true
    }

    flavorDimensions "standard"
    productFlavors {
        full {
            applicationId "info.nightscout.androidaps"
            dimension "standard"
            versionName version
        }
        pumpcontrol {
            applicationId "info.nightscout.aapspumpcontrol"
            dimension "standard"
            versionName version + "-pumpcontrol"
        }
        nsclient {
            applicationId "info.nightscout.nsclient"
            dimension "standard"
            versionName version + "-nsclient"
        }
        nsclient2 {
            applicationId "info.nightscout.nsclient2"
            dimension "standard"
            versionName version + "-nsclient"
        }
    }
    namespace 'info.nightscout.androidaps'
}

allprojects {
    repositories {
        google()
        mavenCentral()
    }
}


dependencies {
    implementation project(':shared')

    implementation fileTree(include: ['*.jar'], dir: 'libs')

    implementation "androidx.appcompat:appcompat:$appcompat_version"
    implementation "androidx.core:core-ktx:$core_version"
    implementation 'androidx.legacy:legacy-support-v13:1.0.0'
    implementation "androidx.preference:preference-ktx:$preferencektx_version"
    implementation 'androidx.wear:wear:1.2.0'
    implementation "androidx.wear.tiles:tiles:1.0.1"
    implementation 'androidx.constraintlayout:constraintlayout:2.1.4'

    compileOnly "com.google.android.wearable:wearable:$wearable_version"
    implementation "com.google.android.support:wearable:$wearable_version"
    implementation "com.google.android.gms:play-services-wearable:$play_services_wearable_version"
    implementation(files('libs/ustwo-clockwise-debug.aar'))
    implementation(files('libs/wearpreferenceactivity-0.5.0.aar'))
    implementation('com.github.lecho:hellocharts-library:1.5.8@aar')

    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version"
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version"
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-guava:$coroutines_version"
    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-play-services:$coroutines_version"
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"

    // for old fashioned support-app version
    implementation "com.google.dagger:dagger:$dagger_version"
    implementation "com.google.dagger:dagger-android:$dagger_version"
    implementation "com.google.dagger:dagger-android-support:$dagger_version"

    annotationProcessor "com.google.dagger:dagger-compiler:$dagger_version"
    annotationProcessor "com.google.dagger:dagger-android-processor:$dagger_version"
    kapt "com.google.dagger:dagger-android-processor:$dagger_version"
    kapt "com.google.dagger:dagger-compiler:$dagger_version"
}
repositories {
    mavenCentral()
}