apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'com.getkeepsafe.dexcount'

android {
    compileSdkVersion project.targetSdkVersion
    buildToolsVersion project.buildToolsVersion

    defaultConfig {
        minSdkVersion project.minSdkVersion
        targetSdkVersion project.targetSdkVersion
        versionName project.versionName
        vectorDrawables.useSupportLibrary = true
    }

    sourceSets {
        lightningPlus.setRoot('src/LightningPlus')
        lightningLite.setRoot('src/LightningLite')
    }

    buildTypes {
        debug {
            minifyEnabled false
            shrinkResources false
            proguardFiles 'proguard-project.txt'
        }

        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles 'proguard-project.txt'
        }
    }

    productFlavors {
        lightningPlus {
            buildConfigField "boolean", "FULL_VERSION", "Boolean.parseBoolean(\"true\")"
            applicationId "acr.browser.lightning"
            versionCode project.versionCode_plus
        }

        lightningLite {
            buildConfigField "boolean", "FULL_VERSION", "Boolean.parseBoolean(\"false\")"
            applicationId "acr.browser.barebones"
            versionCode project.versionCode_lite
        }
    }

    lintOptions {
        abortOnError true
    }

    packagingOptions {
        exclude '.readme'
    }
}

dexcount {
    includeClasses = false
    includeFieldCount = false
    format = "tree"
    orderByMethodCount = true
    verbose = false
}

dependencies {
    testCompile 'junit:junit:4.12'

    // support libraries
    def supportLibVersion = '25.4.0'
    compile "com.android.support:palette-v7:$supportLibVersion"
    compile "com.android.support:appcompat-v7:$supportLibVersion"
    compile "com.android.support:design:$supportLibVersion"
    compile "com.android.support:recyclerview-v7:$supportLibVersion"
    compile "com.android.support:support-v4:$supportLibVersion"

    // html parsing for reading mode
    compile 'org.jsoup:jsoup:1.10.2'

    // dependency injection
    def daggerVersion = '2.11'
    compile "com.google.dagger:dagger:$daggerVersion"
    annotationProcessor "com.google.dagger:dagger-compiler:$daggerVersion"
    provided 'javax.annotation:jsr250-api:1.0'

    // view binding
    def butterknifeVersion = '8.6.0'
    compile "com.jakewharton:butterknife:$butterknifeVersion"
    annotationProcessor "com.jakewharton:butterknife-compiler:$butterknifeVersion"

    // permissions
    compile 'com.anthonycr.grant:permissions:1.1.2'

    // proxy support
    compile 'net.i2p.android:client:0.8'

    compile 'com.squareup.okhttp3:okhttp:3.8.0'

    // tor proxy
    def netcipherVersion = '2.0.0-alpha1'
    compile "info.guardianproject.netcipher:netcipher:$netcipherVersion"
    compile "info.guardianproject.netcipher:netcipher-webkit:$netcipherVersion"

    compile 'com.anthonycr.bonsai:bonsai:1.1.0'

    compile 'com.anthonycr.progress:animated-progress:1.0'

    // memory leak analysis
    def leakCanaryVersion = '1.5.1'
    debugCompile "com.squareup.leakcanary:leakcanary-android:$leakCanaryVersion"
    releaseCompile "com.squareup.leakcanary:leakcanary-android-no-op:$leakCanaryVersion"

    // Kotlin
    compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
}
