// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        jcenter()
        google()
        maven { url "https://jitpack.io" }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.3.0'
        classpath 'com.google.gms:google-services:4.2.0'
    }
}

allprojects {
    repositories {
        jcenter()
        maven {
            url 'https://maven.google.com'
        }
        maven {
            // All of React Native (JS, Android binaries) is installed from npm
            url "$rootDir/react/node_modules/react-native/android"
        }
        flatDir {
            dirs 'libs'
        }
    }
}

apply plugin: 'com.android.application'

android {
    compileSdkVersion {{ android_api }}
    buildToolsVersion '{{ build_tools_version }}'
     defaultConfig {
        minSdkVersion {{ args.min_sdk_version }}
        targetSdkVersion {{ android_api }}
        versionCode {{ args.numeric_version }}  * 10 + 1
        versionName '{{ args.version }}'
        missingDimensionStrategy 'react-native-camera', 'general'
        multiDexEnabled true

        ndk {
            abiFilters "armeabi-v7a"
        }
    }

    compileOptions {
        sourceCompatibility 1.8
        targetCompatibility 1.8
    }

    dexOptions {
        jumboMode true
    }

    {% if args.sign -%}
    signingConfigs {
        release {
            storeFile file(System.getenv("P4A_RELEASE_KEYSTORE"))
            keyAlias System.getenv("P4A_RELEASE_KEYALIAS")
            storePassword System.getenv("P4A_RELEASE_KEYSTORE_PASSWD")
            keyPassword System.getenv("P4A_RELEASE_KEYALIAS_PASSWD")
        }
    }
    {%- endif %}

    buildTypes {
        debug {
        }
        release {
            {% if args.sign -%}
            signingConfig signingConfigs.release
            {%- endif %}
        }
    }

    sourceSets {
        main {
            jniLibs.srcDir 'libs'
        }
    }
}

ext {
    compileSdkVersion = {{ android_api }}
    buildToolsVersion = '{{ build_tools_version }}'
    minSdkVersion = {{ args.min_sdk_version }}
    targetSdkVersion = {{ android_api }}
    supportLibVersion = '28.0.0'
    googlePlayServicesVersion = '16.1.0'
    googlePlayServicesVisionVersion = '17.0.2'
}

subprojects {
    afterEvaluate {project ->
        if (project.hasProperty("android")) {
            android {
                compileSdkVersion {{ android_api }}
                buildToolsVersion '{{ build_tools_version }}'
            }
        }
    }
}

dependencies {
    compile project(':@react-native-community_async-storage')
    compile project(':react-native-camera')
    compile project(':react-native-exception-handler')
    compile project(':react-native-fast-image')
    compile project(':react-native-fs')
    compile project(':react-native-gesture-handler')
    compile project(':react-native-reanimated')
    compile project(':react-native-video')
    compile project(':rn-fetch-blob')
    {%- for aar in aars %}
    compile(name: '{{ aar }}', ext: 'aar')
    {%- endfor -%}
    {%- if args.depends -%}
    {%- for depend in args.depends %}
    compile '{{ depend }}'
    {%- endfor %}
    {%- endif %}
}

apply plugin: 'com.google.gms.google-services'
com.google.gms.googleservices.GoogleServicesPlugin.config.disableVersionCheck = true
