// Top-level build file where you can add configuration options common to all sub-projects/modules.

def props = new Properties()
def configPath = project.hasProperty('configPath') ?
        new File(project.configPath) : rootProject.file('config.prop')
if (configPath.exists())
    configPath.withInputStream { is -> props.load(is) }

buildscript {

    repositories {
        google()
        jcenter()
        maven { url 'http://storage.googleapis.com/r8-releases/raw' }
        maven { url 'https://kotlin.bintray.com/kotlinx' }
    }
    dependencies {
        classpath 'com.android.tools:r8:1.4.96'
        classpath 'com.android.tools.build:gradle:3.5.0-beta02'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.31"


        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

ext {
    configProps = props
}

subprojects {
    repositories {
        google()
        jcenter()
        maven { url "https://maven.fabric.io/public" }
        maven { url "https://jitpack.io" }
        maven { url "http://oss.sonatype.org/content/repositories/snapshots" }
    }
    afterEvaluate {
        if (getPlugins().hasPlugin('com.android.library') ||
            getPlugins().hasPlugin('com.android.application')) {
            android {
                compileSdkVersion 'android-Q'
                buildToolsVersion '29.0.0-rc3'

                defaultConfig {
                    if (minSdkVersion == null)
                        minSdkVersion 17
                    targetSdkVersion 28
                }

                compileOptions {
                    sourceCompatibility JavaVersion.VERSION_1_8
                    targetCompatibility JavaVersion.VERSION_1_8
                }
            }
        }

        if (it.name == 'app' || it.name == 'stub') {
            android {
                signingConfigs {
                    config {
                        storeFile rootProject.file('release-key.jks')
                        storePassword props['keyStorePass']
                        keyAlias props['keyAlias']
                        keyPassword props['keyPass']
                    }
                }

                buildTypes {
                    debug {
                        // If keystore exists, sign the APK with custom signature
                        if (signingConfigs.config.storeFile.exists())
                            signingConfig signingConfigs.config
                    }
                    release {
                        minifyEnabled true
                        shrinkResources true
                        signingConfig signingConfigs.config
                    }
                }

                lintOptions {
                    disable 'MissingTranslation'
                }
            }
        }
    }
}
