// 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 {
    ext.vKotlin = '1.3.61'

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


        // 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.props = props

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

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

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

        if (module.name == 'app' || module.name == 'stub') {
            android {
                signingConfigs {
                    config {
                        storeFile new File(props['keyStore'])
                        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 {
                        signingConfig signingConfigs.config
                    }
                }

                lintOptions {
                    disable 'MissingTranslation'
                }

                aaptOptions {
                    // Handle resource IDs
                    File resId = project.file('res-ids.txt')
                    if (resId.exists())
                        additionalParameters "--stable-ids", "${resId.absolutePath}"
                    else
                        additionalParameters "--emit-ids", "${resId.absolutePath}"
                }
            }
        }
    }
}
