apply plugin: 'com.android.library'

buildscript {
    apply from: './manifest.gradle'

    repositories {
        google()
        jcenter()
    }

    dependencies {
        classpath "com.android.tools.build:gradle:$gradleVersion"
    }
}

android {
    compileSdkVersion rootProject.hasProperty('compileSdkVersion') ? rootProject.compileSdkVersion : targetSdk

    defaultConfig {
        minSdkVersion minSdk
        targetSdkVersion rootProject.hasProperty('targetSdkVersion') ? rootProject.targetSdkVersion : targetSdk
        versionCode 1
        versionName computeVersionName()
    }
    lintOptions {
        abortOnError false
    }
}

allprojects {
    repositories {
        maven {
            url 'https://jitpack.io'
        }
    }
}

repositories {
    mavenCentral()
    google()
    jcenter()
    maven {
        url "$rootDir/../../react-native/android"
    }
    maven {
        url 'https://dl.bintray.com/textile/maven'
    }
}

dependencies {
    api project(":textile-pb")
    api project(":textile-mobile")
    api project(":android-textile")
    implementation "com.facebook.react:react-native:+"

    // Support
    implementation "androidx.appcompat:appcompat:$androidxAppcompatVersion"
    api "com.google.protobuf:protobuf-java:3.6.1"
    implementation "androidx.legacy:legacy-support-v4:1.0.0"

    // Lifecycle
    implementation "androidx.lifecycle:lifecycle-common-java8:$androidxLifecycleVersion"
    implementation "androidx.lifecycle:lifecycle-extensions:$androidxLifecycleVersion"
    annotationProcessor "androidx.lifecycle:lifecycle-compiler:$androidxLifecycleVersion"

    // UploadService
    implementation "com.github.textileio:android-upload-service:$uploadServiceVersion"

    // Testing
    testImplementation "junit:junit:$junitVersion"

    // Core library
    // androidTestImplementation "androidx.test:core:$androidxTestCoreVersion"

    // AndroidJUnitRunner and JUnit Rules
    // androidTestImplementation "androidx.test:runner:$androidxTestRunnerVersion"
    // androidTestImplementation "androidx.test:rules:$androidxTestRulesVersion"
    androidTestImplementation "androidx.test.ext:junit:1.1.1"

    // Assertions
    // androidTestImplementation "androidx.test.ext:junit:$androidxTestExtJunitVersion"
    // androidTestImplementation "androidx.test.ext:truth:$androidxTestExtTruthVersion"

    // Utils
    // androidTestImplementation "org.awaitility:awaitility:$awaitilityVersion"
    // androidTestImplementation "commons-io:commons-io:$commonsIOVersion"
}

import groovy.json.JsonSlurper

def computeVersionName() {
    def slurper = new JsonSlurper()
    def json = slurper.parse(file('../package.json'), "utf-8")
    return json.version
}
