apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'

// load properties
//
Properties properties = new Properties()
File localPropertiesFile = project.file('local.properties');
if (localPropertiesFile.exists()) {
    properties.load(localPropertiesFile.newDataInputStream())
}

File projectPropertiesFile = project.file('project.properties');
if (projectPropertiesFile.exists()) {
    properties.load(projectPropertiesFile.newDataInputStream())
}

// read properties
//
def projectName = properties.getProperty('project.name')
def projectGroupId = properties.getProperty('project.groupId')
def projectArtifactId = properties.getProperty('project.artifactId')
def projectVersionName = android.defaultConfig.versionName
def projectPackaging = properties.getProperty('project.packaging')
def projectSiteUrl = properties.getProperty('project.siteUrl')
def projectGitUrl = properties.getProperty('project.gitUrl')
def projectDescription = properties.getProperty('project.description')

def developerId = properties.getProperty('developer.id')
def developerName = properties.getProperty('developer.name')
def developerEmail = properties.getProperty('developer.email')

def bintrayUser = properties.getProperty('bintray.user')
def bintrayApikey = properties.getProperty('bintray.apikey')

def javadocName = properties.getProperty('javadoc.name')

group = projectGroupId


// This generates POM.xml with proper parameters
//
install {
    repositories.mavenInstaller {
        pom {
            project {
                name projectName
                groupId projectGroupId
                artifactId projectArtifactId
                version projectVersionName
                packaging projectPackaging
                url projectSiteUrl
                description

                licenses {
                    license {
                        name 'The Apache Software License, Version 2.0'
                        url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                    }
                }

                developers {
                    developer {
                        id developerId
                        name developerName
                        email developerEmail
                    }
                }

                scm {
                    connection projectGitUrl
                    developerConnection projectGitUrl
                    url projectSiteUrl
                }
            }
        }
    }
}


// This generates sources.jar
//
task sourcesJar(type: Jar) {
    from android.sourceSets.main.java.srcDirs
    classifier = 'sources'
}

task javadoc(type: Javadoc) {
    source = android.sourceSets.main.java.srcDirs
    classpath += project.files(android.getBootClasspath().join(File.pathSeparator))

    exclude '**/BuildConfig.java'
    exclude '**/R.java'
}


// This generates javadoc.jar
//
task javadocJar(type: Jar, dependsOn: javadoc) {
    classifier = 'javadoc'
    from javadoc.destinationDir
}

artifacts {
    archives javadocJar
    archives sourcesJar
}


// javadoc configuration
//
javadoc {
    options {
        encoding 'UTF-8'
        charSet 'UTF-8'
        author true
        version projectVersionName
        links 'http://docs.oracle.com/javase/7/docs/api'
        title javadocName
    }
}


// bintray configuration
//
bintray {
    user = bintrayUser
    key = bintrayApikey
    configurations = ['archives']

    pkg {
        repo = 'maven'
        name = projectName
        websiteUrl = projectSiteUrl
        vcsUrl = projectGitUrl
        licenses = ['Apache-2.0']
        publish = true
        publicDownloadNumbers = true
    }
}
