buildscript {
    repositories {
        maven {
            url "https://repo1.maven.org/maven2"
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.0.1'
        classpath files('libs/gradle-witness.jar')
    }
}

apply plugin: 'com.android.application'
apply plugin: 'witness'

repositories {
    maven {
        url "https://repo1.maven.org/maven2/"
    }
    maven {
        url "https://raw.github.com/whispersystems/maven/master/preferencefragment/releases/"
    }
    maven {
        url "https://raw.github.com/whispersystems/maven/master/gson/releases/"
    }
    maven {
        url "https://raw.github.com/whispersystems/maven/master/smil/releases/"
    }
    maven {
        url "https://raw.github.com/whispersystems/maven/master/shortcutbadger/releases/"
    }
    jcenter()
}

dependencies {
    compile 'me.leolin:ShortcutBadger:1.0.2-WS2'
    compile 'se.emilsjolander:stickylistheaders:2.2.0'
    compile 'com.google.android.gms:play-services-base:6.5.87'
    compile 'com.astuetz:pagerslidingtabstrip:1.0.1'
    compile 'org.w3c:smil:1.0.0'
    compile 'org.apache.httpcomponents:httpclient-android:4.3.5'
    compile 'com.github.chrisbanes.photoview:library:1.2.3'
    compile 'com.makeramen:roundedimageview:1.5.0'
    compile 'com.afollestad:material-dialogs:0.6.1.5'
    compile 'com.soundcloud.android:android-crop:0.9.10@aar'
    compile 'com.android.support:appcompat-v7:21.0.3'
    compile 'com.melnykov:floatingactionbutton:1.1.0'
    compile 'com.google.zxing:android-integration:3.1.0'
    compile ('com.android.support:support-v4-preferencefragment:1.0.0@aar'){
        exclude module: 'support-v4'
    }
    compile 'com.squareup.dagger:dagger:1.2.2'
    compile ("com.doomonafireball.betterpickers:library:1.5.3") {
        exclude group: 'com.android.support', module: 'support-v4'
    }
    provided 'com.squareup.dagger:dagger-compiler:1.2.2'

    compile 'org.whispersystems:jobmanager:0.10.0'
    compile 'org.whispersystems:libpastelog:1.0.4'

    androidTestCompile 'com.squareup:fest-android:1.0.8'
    androidTestCompile 'com.google.dexmaker:dexmaker:1.1'
    androidTestCompile 'com.google.dexmaker:dexmaker-mockito:1.1'

    compile project(':libtextsecure')
}

dependencyVerification {
    verify = [
            'me.leolin:ShortcutBadger:027977c718035e5997035e04e05152d6c72d94df645e8b7099a274ada722bd14',
            'se.emilsjolander:stickylistheaders:89146b46c96fea0e40200474a2625cda10fe94891e4128f53cdb42375091b9b6',
            'com.google.android.gms:play-services-base:832cb6b3130e871db6a412c4ab585656dbcc5e7948101f190186757785703f75',
            'com.astuetz:pagerslidingtabstrip:f1641396732c7132a7abb837e482e5ee2b0ebb8d10813fc52bbaec2c15c184c2',
            'org.w3c:smil:085dc40f2bb249651578bfa07499fd08b16ad0886dbe2c4078586a408da62f9b',
            'org.apache.httpcomponents:httpclient-android:6f56466a9bd0d42934b90bfbfe9977a8b654c058bf44a12bdc2877c4e1f033f1',
            'com.github.chrisbanes.photoview:library:8b5344e206f125e7ba9d684008f36c4992d03853c57e5814125f88496126e3cc',
            'com.makeramen:roundedimageview:7dda2e78c406760e5c356ccce59b0df46b5b171cf18abb891998594405021548',
            'com.afollestad:material-dialogs:ccb013e6572c86cfcca433855cf0dbfbff9b5e7bb9d1f504b761a6bc6f467b60',
            'com.soundcloud.android:android-crop:ffd4b973cf6e97f7d64118a0dc088df50e9066fd5634fe6911dd0c0c5d346177',
            'com.android.support:appcompat-v7:5dbeb5316d0a6027d646ae552804c3baa5e3bd53f7f33db50904d51505c8a0e5',
            'com.melnykov:floatingactionbutton:0679ad9f7d61eb7aeab91e8dc56358cdedd5b1c1b9c48464499ffa05c40d3985',
            'com.google.zxing:android-integration:89e56aadf1164bd71e57949163c53abf90af368b51669c0d4a47a163335f95c4',
            'com.android.support:support-v4-preferencefragment:5470f5872514a6226fa1fc6f4e000991f38805691c534cf0bd2778911fc773ad',
            'com.squareup.dagger:dagger:789aca24537022e49f91fc6444078d9de8f1dd99e1bfb090f18491b186967883',
            'com.doomonafireball.betterpickers:library:132ecd685c95a99e7377c4e27bfadbb2d7ed0bea995944060cd62d4369fdaf3d',
            'org.whispersystems:jobmanager:01f35586c43aa3806f1c18d3d6a5a972def98103ba1a5a9ca3eec08d15f974b7',
            'org.whispersystems:libpastelog:3ccf00fe1597eb8ca1e5de99b17fc225387a1b80b5bbc00ec1bc4d4f3ea9cdde',
            'com.android.support:recyclerview-v7:ab2390d688601b65e2f3a0718b3d25487e61546c4e20f81eb0b033f30ca15b31',
            'com.nineoldandroids:library:68025a14e3e7673d6ad2f95e4b46d78d7d068343aa99256b686fe59de1b3163a',
            'javax.inject:javax.inject:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff',
            'com.google.protobuf:protobuf-java:e0c1c64575c005601725e7c6a02cebf9e1285e888f756b2a1d73ffa8d725cc74',
            'com.googlecode.libphonenumber:libphonenumber:eba17eae81dd622ea89a00a3a8c025b2f25d342e0d9644c5b62e16f15687c3ab',
            'org.whispersystems:gson:08f4f7498455d1539c9233e5aac18e9b1805815ef29221572996508eb512fe51',
            'org.whispersystems:axolotl-android:7617256d05aaecd7b5475cd55e42773d7079167a22ca48512bcb0f84f8473cc9',
            'com.android.support:support-v4:703572d3015a088cc5604b7e38885af3d307c829d0c5ceaf8654ff41c71cd160',
            'com.android.support:support-annotations:fdee2354787ef66b268e75958de3f7f6c4f8f325510a6dac9f49c929f83a63de',
    ]
}

android {
    compileSdkVersion 21
    buildToolsVersion '21.1.2'

    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 19

        buildConfigField "long", "BUILD_TIMESTAMP", System.currentTimeMillis() + "L"
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }

    signingConfigs {
        release
    }

    buildTypes {
        debug {
            minifyEnabled true
            proguardFiles 'proguard.cfg'
        }
        release {
            minifyEnabled true
            proguardFiles 'proguard.cfg'
            signingConfig signingConfigs.release
        }
    }

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }
        androidTest {
            java.srcDirs = ['androidTest/java']
            resources.srcDirs = ['androidTest/java']
            aidl.srcDirs = ['androidTest/java']
            renderscript.srcDirs = ['androidTest/java']
        }
    }

     lintOptions {
        abortOnError false
    }
}

tasks.whenTaskAdded { task ->
    if (task.name.equals("lint")) {
        task.enabled = false
    }
}

def Properties props = new Properties()
def propFile = new File('signing.properties')

if (propFile.canRead()){
    props.load(new FileInputStream(propFile))

    if (props !=null &&
        props.containsKey('STORE_FILE')     &&
        props.containsKey('STORE_PASSWORD') &&
        props.containsKey('KEY_ALIAS')      &&
        props.containsKey('KEY_PASSWORD'))
    {
        android.signingConfigs.release.storeFile = file(props['STORE_FILE'])
        android.signingConfigs.release.storePassword = props['STORE_PASSWORD']
        android.signingConfigs.release.keyAlias = props['KEY_ALIAS']
        android.signingConfigs.release.keyPassword = props['KEY_PASSWORD']
    } else {
        println 'signing.properties found but some entries are missing'
        android.buildTypes.release.signingConfig = null
    }
}else {
    println 'signing.properties not found'
    android.buildTypes.release.signingConfig = null
}