keyring-manager 0.8.2

Cross-platform library for managing passwords
Documentation
plugins {
    id 'com.android.application'
}

android {
    compileSdkVersion 36

    defaultConfig {
        applicationId 'com.keyring_manager.keyring_android_test'
        minSdkVersion 24
        targetSdkVersion 34
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_17
        targetCompatibility JavaVersion.VERSION_17
    }
    ndkVersion = '28.2.13676358'
    namespace = 'com.keyring_manager.keyring_android_test'
}

dependencies {
    implementation 'androidx.appcompat:appcompat:1.7.1'
    implementation 'com.google.android.material:material:1.12.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.2.1'
    implementation 'androidx.security:security-crypto:1.1.0'
}

apply plugin: 'org.mozilla.rust-android-gradle.rust-android'

cargo {
    module  = "../.."
    libname = "keyring_manager"
    targets = ["arm", "arm64", "x86", "x86_64"]
    prebuiltToolchains = true
    profile = gradle.startParameter.taskNames.any{it.toLowerCase().contains("debug")} ? "debug" : "release"
    pythonCommand = "python3"
    features {
        defaultAnd("keyring_manager_android_tests")
    }
}

afterEvaluate {
    // The `cargoBuild` task isn't available until after evaluation.
    android.applicationVariants.configureEach { variant ->
        def productFlavor = ""
        variant.productFlavors.each {
            productFlavor += "${it.name.capitalize()}"
        }
        def buildType = "${variant.buildType.name.capitalize()}"
        tasks["pre${productFlavor}${buildType}Build"].dependsOn(tasks["cargoBuild"])

        task "installRun${variant.name.capitalize()}"(type: Exec, dependsOn: "install${variant.name.capitalize()}", group: "run") {
            commandLine = ["adb", "shell", "monkey", "-v", "-p", variant.applicationId + " 1"]
            doLast {
                println "Launching ${variant.applicationId}"
            }
        }
    }
}