/*
 * Copyright (c) Ricki Hirner (bitfire web engineering).
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the GNU Public License v3.0
 * which accompanies this distribution, and is available at
 * http://www.gnu.org/licenses/gpl.html
 */

apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion '25.0.2'

    defaultConfig {
        applicationId "com.etesync.syncadapter"

        minSdkVersion 16
        targetSdkVersion 25

        versionCode 10

        buildConfigField "long", "buildTime", System.currentTimeMillis() + "L"
        buildConfigField "boolean", "customCerts", "true"
    }

    productFlavors {
        standard {
            versionName "0.13.0"
        }
    }

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

            /*
             * To override the server's url (for example when developing),
             * create file gradle.properties in ~/.gradle/ with this content:
             *
             * appDebugRemoteUrl="http://localserver:8080/"
             */
            if (project.hasProperty('appDebugRemoteUrl')) {
                 buildConfigField 'String', 'DEBUG_REMOTE_URL', appDebugRemoteUrl
            } else {
                 buildConfigField 'String', 'DEBUG_REMOTE_URL', 'null'
            }
        }
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
            buildConfigField 'String', 'DEBUG_REMOTE_URL', 'null'
        }
    }

    lintOptions {
        disable 'GoogleAppIndexingWarning'      // we don't need Google indexing, thanks
        disable 'GradleDependency'
        disable 'GradleDynamicVersion'
        disable 'IconColors'
        disable 'IconLauncherShape'
        disable 'IconMissingDensityFolder'
        disable 'ImpliedQuantity', 'MissingQuantity'
        disable 'MissingTranslation', 'ExtraTranslation'	// translations from Transifex are not always up to date
        disable 'Recycle'           // doesn't understand Lombok's @Cleanup
        disable 'RtlEnabled'
        disable 'RtlHardcoded'
        disable 'Typos'
        disable "RestrictedApi"		// https://code.google.com/p/android/issues/detail?id=230387
    }

    dexOptions {
        preDexLibraries = true
        // dexInProcess requires much RAM, which is not available on all dev systems
        dexInProcess = false
        javaMaxHeapSize "2g"
    }

    packagingOptions {
        exclude 'LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
    }

    defaultConfig {
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

    /*
     * To sign release build, create file gradle.properties in ~/.gradle/ with this content:
     *
     * signingStoreLocation=/home/key.store
     * signingKeyAlias=alias
     *
     * and set the KSTOREPWD env var to the store and key passwords (should be the same)
     */
    if (project.hasProperty('signingStoreLocation') &&
            project.hasProperty('signingKeyAlias')) {
         println "Found sign properties in gradle.properties! Signing build…"

         signingConfigs {
              release {
                   storeFile file(signingStoreLocation)
                   storePassword System.getenv("KSTOREPWD")
                   keyAlias signingKeyAlias
                   keyPassword System.getenv("KSTOREPWD")

              }
         }
         buildTypes.release.signingConfig = signingConfigs.release
    } else {
         buildTypes.release.signingConfig = null
    }

}

dependencies {
    compile project(':cert4android')
    compile project(':ical4android')
    compile project(':vcard4android')

    compile 'com.android.support:appcompat-v7:25.+'
    compile 'com.android.support:cardview-v7:25.+'
    compile 'com.android.support:design:25.+'
    compile 'com.android.support:preference-v14:25.+'

    compile 'com.github.yukuku:ambilwarna:2.0.1'
    compile ('com.github.worker8:tourguide:1.0.17-SNAPSHOT@aar'){
         transitive=true
    }

    compile 'io.requery:requery:1.3.0'
    compile 'io.requery:requery-android:1.3.0'
    annotationProcessor 'io.requery:requery-processor:1.3.0'

    compile group: 'com.madgag.spongycastle', name: 'core', version: '1.54.0.0'
    compile group: 'com.madgag.spongycastle', name: 'prov', version: '1.54.0.0'
    compile group: 'com.google.code.gson', name: 'gson', version: '1.7.2'
    compile 'com.squareup.okhttp3:logging-interceptor:3.7.0'
    provided 'org.projectlombok:lombok:1.16.16'

    // for tests
    androidTestCompile('com.android.support.test:runner:0.5') {
        exclude group: 'com.android.support', module: 'support-annotations'
    }
    androidTestCompile('com.android.support.test:rules:0.5') {
        exclude group: 'com.android.support', module: 'support-annotations'
    }
    androidTestCompile 'junit:junit:4.12'
    androidTestCompile 'com.squareup.okhttp3:mockwebserver:3.7.0'

    testCompile 'junit:junit:4.12'
    testCompile 'com.squareup.okhttp3:mockwebserver:3.7.0'
}