apply plugin: 'com.android.application'
apply from: 'variables.gradle'

apply plugin: 'maven-publish'
apply plugin: 'com.google.gms.google-services'
apply plugin: 'kotlin-android'

ext {
    geckoviewChannel = project.ext.firefox_channel
    geckoviewVersion = project.ext.firefox_version
}

repositories {
    maven {
        maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
        url "https://maven.mozilla.org/maven2/"
        mavenLocal()
        mavenCentral()
        google()
        jcenter()
    }
}

android {
    compileSdkVersion project.ext.compileSdkVersion
    ndkVersion "21.4.7075529"

    defaultConfig {
        applicationId project.ext.applicationId
        minSdkVersion project.ext.minSdkVersion
        targetSdkVersion project.ext.targetSdkVersion
        versionCode project.ext.versionCode
        versionName project.ext.versionName
    }
    buildToolsVersion '29.0.3'

    flavorDimensions "abi"

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }


    flavorDimensions project.ext.dimen

    productFlavors {

        arm {
            dimension "abi"
            ndk {
                ndk.abiFilters 'armeabi-v7a','arm64-v8a', 'x86', 'x86_64'
            }
        }
        aarch64 {
            dimension "abi"
            ndk {
                ndk.abiFilters 'armeabi-v7a','arm64-v8a', 'x86', 'x86_64'
            }
        }
        x86 {
            dimension "abi"
            ndk {
                ndk.abiFilters 'armeabi-v7a','arm64-v8a', 'x86', 'x86_64'
            }
        }
        x86_64 {
            dimension "abi"
            ndk {
                ndk.abiFilters 'armeabi-v7a','arm64-v8a', 'x86', 'x86_64'
            }
        }
    }

    sourceSets {
        main {
            res.srcDirs =
                    [
                            'src/main/res/layouts/history',
                            'src/main/res/layouts/help',
                            'src/main/res/layouts/tab',
                            'src/main/res/layouts/language',
                            'src/main/res/layouts/orbot',
                            'src/main/res/layouts/proxyStatus',
                            'src/main/res/layouts/orbotLog',
                            'src/main/res/layouts/setting',
                            'src/main/res/layouts/bridge',
                            'src/main/res/layouts/log',
                            'src/main/res/layouts/landing',
                            'src/main/res/layouts/alert',
                            'src/main/res/layouts/bookmark',
                            'src/main/res/layouts/shared',
                            'src/main/res/layouts/shared/listviews',
                            'src/main/res/layouts/home',
                            'src/main/res/custom-xml/alert',
                            'src/main/res/custom-xml/tab',
                            'src/main/res/custom-xml/images',
                            'src/main/res/custom-xml/bookmark',
                            'src/main/res/custom-xml/generic',
                            'src/main/res/custom-xml/history',
                            'src/main/res/custom-xml/home',
                            'src/main/res/custom-xml/landing',
                            'src/main/res/custom-xml/orbot',
                            'src/main/res/custom-xml/orbot_log',
                            'src/main/res/custom-xml/setting',
                            'src/main/res/layouts',
                            'src/main/res/images',
                            'src/main/res'
                    ]
        }
    }

    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

        }
    }
    lintOptions {
        checkReleaseBuilds false
        // Or, if you prefer, you can continue to check for errors in release builds,
        // but continue the build even when errors are found:
        abortOnError false
    }
}

dependencies {


    // Android Support Repository dependencies
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'androidx.preference:preference:1.1.1'
    implementation 'androidx.preference:preference:1.1.1'
    implementation 'androidx.legacy:legacy-preference-v14:1.0.0'
    implementation 'androidx.recyclerview:recyclerview:1.1.0'
    implementation 'androidx.cardview:cardview:1.0.0'
    implementation 'androidx.coordinatorlayout:coordinatorlayout:1.1.0'
    implementation 'com.google.firebase:firebase-messaging:21.0.1'

    // Testing-only dependencies
    androidTestImplementation('androidx.test.espresso:espresso-core:3.3.0') {
        exclude group: 'com.android.support', module: 'support-annotations'
    }

    /*Default Libraries*/
    implementation 'androidx.constraintlayout:constraintlayout:2.0.2'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.2'
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.2'
    implementation 'com.google.android.material:material:1.3.0-alpha03'
    implementation 'androidx.preference:preference:1.1.1'
    implementation 'com.google.android.material:material:1.2.1'
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation "org.jetbrains.kotlin:kotlin-stdlib:1.4.21"

    /*Firefox ABI Splits*/
    implementation "org.mozilla.components:browser-engine-gecko:$mozilla_components_version"
    implementation "org.mozilla.components:browser-icons:$mozilla_components_icon_version"
    implementation "org.mozilla.geckoview:geckoview:$gecko_nightly_version"

    /*Alert Dialog*/
    implementation 'com.crowdfire.cfalertdialog:cfalertdialog:1.1.0'

    /*Ads Manager*/
    implementation 'com.google.android.gms:play-services-ads:19.5.0'


    /*Crashlytics*/
    implementation 'com.flurry.android:analytics:12.4.0@aar'

    /*View Animator*/
    implementation 'com.daimajia.easing:library:2.4@aar'
    implementation 'com.daimajia.androidanimations:library:2.4@aar'

    /*Orbot Service*/
    implementation project(path: ':orbotservice')
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation 'com.github.apl-devs:appintro:v4.2.2'
    implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.6'

    /*Helper Libraries*/
    implementation 'com.chauthai.overscroll:overscroll-bouncy:0.1.1'
    androidTestImplementation "junit:junit:4.13.1"
    implementation 'jp.wasabeef:recyclerview-animators:2.2.7'
    implementation 'com.android.support:design:24.0.0'
    implementation "org.mozilla.components:browser-icons:9.0.0"
    implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:0.30.1'
    implementation 'com.android.volley:volley:1.1.1'
    implementation 'com.github.gabrielemariotti.recyclerview:recyclerview-animators:0.3.0-SNAPSHOT@aar'
    implementation 'com.github.instacart.truetime-android:library-extension-rx:3.3'


    /*Image Cache Libraries*/
    implementation 'com.github.intelligo-systems:slight:1.1.3'
    implementation "org.mozilla.components:concept-fetch:70.0.5"
    implementation "org.mozilla.components:concept-base:70.0.9"
    implementation 'com.coolerfall:android-http-download-manager:1.6.3'

}

apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'