/*
 * Copyright © 2014-2019 The Android Password Store Authors. All Rights Reserved.
 * SPDX-License-Identifier: GPL-3.0-only
 */
plugins {
    id 'kotlin-android'
    id 'kotlin-kapt'
    id 'kotlin-android-extensions'
}

repositories {
    maven { url 'https://jitpack.io' }
}

android {
    defaultConfig {
        applicationId 'com.zeapo.pwdstore'
    }

    lintOptions {
        abortOnError = true // make sure build fails with lint errors!
        disable 'MissingTranslation', 'PluralsCandidate'
    }

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

    buildTypes {
        release {
            minifyEnabled = true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
        debug {
            applicationIdSuffix = '.debug'
            versionNameSuffix = '-debug'
            minifyEnabled = false
        }
    }

    /*
     * To sign release builds, create the file `gradle.properties` in
     * $HOME/.gradle or in your project directory with this content:
     *
     * mStoreFile=/path/to/key.store
     * mStorePassword=xxx
     * mKeyAlias=alias
     * mKeyPassword=xxx
     */
    if (project.hasProperty('mStoreFile') &&
            project.hasProperty('mStorePassword') &&
            project.hasProperty('mKeyAlias') &&
            project.hasProperty('mKeyPassword')) {
        signingConfigs {
            release {
                storeFile = file(project.properties['mStoreFile'] as String)
                storePassword = project.properties['mStorePassword'] as String
                keyAlias = project.properties['mKeyAlias'] as String
                keyPassword = project.properties['mKeyPassword'] as String
            }
        }
        buildTypes.release.signingConfig = signingConfigs.release
    }
}

dependencies {
    implementation deps.androidx.annotation
    implementation deps.androidx.appcompat
    implementation deps.androidx.biometric
    implementation deps.androidx.cardview
    implementation deps.androidx.core_ktx
    implementation deps.androidx.constraint_layout
    implementation deps.androidx.documentfile
    implementation deps.androidx.preference
    implementation (deps.androidx.recycler_view) {
        force = true
    }
    implementation deps.androidx.material
    implementation deps.third_party.commons_io
    implementation deps.third_party.commons_codec

    implementation(deps.third_party.jgit) {
        exclude group: 'org.apache.httpcomponents', module: 'httpclient'
    }
    implementation deps.third_party.jsch
    implementation deps.third_party.openpgp_ktx
    implementation deps.third_party.ssh_auth

    // Testing-only dependencies
    androidTestImplementation deps.testing.junit
    androidTestImplementation deps.testing.mockito_core
    androidTestImplementation deps.testing.androidx.runner
    androidTestImplementation deps.testing.androidx.rules
    androidTestImplementation deps.testing.androidx.junit
    androidTestImplementation deps.testing.androidx.espresso_core
    androidTestImplementation deps.testing.androidx.espresso_intents
}