2021-09-25 05:13:14 -07:00
|
|
|
plugins {
|
|
|
|
id("com.android.application")
|
|
|
|
id("zcash.android-build-conventions")
|
2022-01-26 04:27:04 -08:00
|
|
|
id("org.jetbrains.kotlin.android")
|
2021-09-25 05:13:14 -07:00
|
|
|
id("kotlin-parcelize")
|
|
|
|
id("androidx.navigation.safeargs")
|
2022-02-06 06:55:03 -08:00
|
|
|
id("com.osacky.fladle")
|
2021-09-25 05:13:14 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
android {
|
|
|
|
defaultConfig {
|
|
|
|
applicationId = "cash.z.ecc.android.sdk.demoapp"
|
|
|
|
minSdk = 21 // Different from the SDK min
|
|
|
|
versionCode = 1
|
|
|
|
versionName = "1.0"
|
|
|
|
}
|
|
|
|
buildFeatures {
|
|
|
|
viewBinding = true
|
|
|
|
}
|
|
|
|
|
|
|
|
flavorDimensions.add("network")
|
|
|
|
|
|
|
|
productFlavors {
|
|
|
|
// would rather name them "testnet" and "mainnet" but product flavor names cannot start with the word "test"
|
|
|
|
create("zcashtestnet") {
|
|
|
|
dimension = "network"
|
|
|
|
applicationId = "cash.z.ecc.android.sdk.demoapp.testnet"
|
|
|
|
matchingFallbacks.addAll(listOf("zcashtestnet", "debug"))
|
|
|
|
}
|
|
|
|
|
|
|
|
create("zcashmainnet") {
|
|
|
|
dimension = "network"
|
|
|
|
applicationId = "cash.z.ecc.android.sdk.demoapp.mainnet"
|
|
|
|
matchingFallbacks.addAll(listOf("zcashmainnet", "release"))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
buildTypes {
|
|
|
|
getByName("release").apply {
|
2021-11-22 07:14:21 -08:00
|
|
|
isMinifyEnabled = project.property("IS_MINIFY_APP_ENABLED").toString().toBoolean()
|
2021-09-25 05:13:14 -07:00
|
|
|
proguardFiles.addAll(
|
|
|
|
listOf(
|
|
|
|
getDefaultProguardFile("proguard-android-optimize.txt"),
|
|
|
|
File("proguard-project.txt")
|
|
|
|
)
|
|
|
|
)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
kotlinOptions {
|
|
|
|
jvmTarget = libs.versions.java.get()
|
|
|
|
allWarningsAsErrors = project.property("IS_TREAT_WARNINGS_AS_ERRORS").toString().toBoolean()
|
|
|
|
}
|
|
|
|
|
|
|
|
lint {
|
2022-01-26 04:27:04 -08:00
|
|
|
baseline = File("lint-baseline.xml")
|
2021-09-25 05:13:14 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
// SDK
|
|
|
|
implementation(projects.sdkLib)
|
|
|
|
|
|
|
|
// sample mnemonic plugin
|
2021-09-25 06:44:31 -07:00
|
|
|
implementation(libs.zcashwalletplgn)
|
|
|
|
implementation(libs.bip39)
|
2021-09-25 05:13:14 -07:00
|
|
|
|
|
|
|
// Android
|
2021-09-25 06:44:31 -07:00
|
|
|
implementation(libs.androidx.core)
|
|
|
|
implementation(libs.androidx.constraintlayout)
|
|
|
|
implementation(libs.androidx.navigation.fragment)
|
|
|
|
implementation(libs.androidx.navigation.ui)
|
|
|
|
implementation(libs.material)
|
|
|
|
androidTestImplementation(libs.bundles.androidx.test)
|
2021-09-25 05:13:14 -07:00
|
|
|
|
2021-09-25 06:44:31 -07:00
|
|
|
implementation(libs.bundles.grpc)
|
2021-09-25 05:13:14 -07:00
|
|
|
}
|
2022-02-06 06:55:03 -08:00
|
|
|
|
|
|
|
// Firebase Test Lab has min and max values that might differ from our project's
|
|
|
|
// These are determined by `gcloud firebase test android models list`
|
|
|
|
@Suppress("MagicNumber", "PropertyName", "VariableNaming")
|
|
|
|
val FIREBASE_TEST_LAB_MIN_API = 23
|
|
|
|
|
|
|
|
@Suppress("MagicNumber", "PropertyName", "VariableNaming")
|
|
|
|
val FIREBASE_TEST_LAB_MAX_API = 30
|
|
|
|
|
|
|
|
val firebaseTestLabKeyPath = project.properties["ZCASH_FIREBASE_TEST_LAB_API_KEY_PATH"].toString()
|
|
|
|
if (firebaseTestLabKeyPath.isNotBlank()) {
|
|
|
|
val minSdkVersion = run {
|
|
|
|
val buildMinSdk =
|
|
|
|
project.properties["ANDROID_MIN_SDK_VERSION"].toString().toInt()
|
|
|
|
buildMinSdk.coerceAtLeast(FIREBASE_TEST_LAB_MIN_API).toString()
|
|
|
|
}
|
|
|
|
val targetSdkVersion = run {
|
|
|
|
val buildTargetSdk =
|
|
|
|
project.properties["ANDROID_TARGET_SDK_VERSION"].toString().toInt()
|
|
|
|
buildTargetSdk.coerceAtMost(FIREBASE_TEST_LAB_MAX_API).toString()
|
|
|
|
}
|
|
|
|
|
|
|
|
fladle {
|
|
|
|
serviceAccountCredentials.set(File(firebaseTestLabKeyPath))
|
|
|
|
|
|
|
|
configs {
|
|
|
|
create("sanityConfig") {
|
|
|
|
clearPropertiesForSanityRobo()
|
|
|
|
|
|
|
|
debugApk.set(
|
|
|
|
project.provider {
|
|
|
|
"${buildDir}/outputs/apk/zcashmainnet/release/demo-app-zcashmainnet-release.apk"
|
|
|
|
}
|
|
|
|
)
|
|
|
|
|
|
|
|
testTimeout.set("5m")
|
|
|
|
|
|
|
|
devices.addAll(
|
|
|
|
mapOf("model" to "NexusLowRes", "version" to minSdkVersion),
|
|
|
|
mapOf("model" to "NexusLowRes", "version" to targetSdkVersion)
|
|
|
|
)
|
2022-04-05 05:05:32 -07:00
|
|
|
|
|
|
|
flankVersion.set(libs.versions.flank.get())
|
2022-02-06 06:55:03 -08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|