# Speed up builds.  Keep these flags here for quick debugging of issues.
org.gradle.caching=true
org.gradle.configureondemand=false
org.gradle.jvmargs=-Xmx3g -XX:MaxMetaspaceSize=1024m
org.gradle.parallel=true
org.gradle.vfs.watch=true

android.useAndroidX=true
android.builder.sdkDownload=true

# Publishing
ZCASH_MAVEN_PUBLISH_SNAPSHOT_URL=https://oss.sonatype.org/content/repositories/snapshots/
ZCASH_MAVEN_PUBLISH_RELEASE_URL=https://oss.sonatype.org/service/local/staging/deploy/maven2/

## Configure these with command line arguments (`-PZCASH_MAVEN_PUBLISH_USERNAME=`), environment variables (`ORG_GRADLE_PROJECT_ZCASH_MAVEN_PUBLISH_USERNAME`), or global ~/.gradle/gradle.properties
ZCASH_MAVEN_PUBLISH_USERNAME=
ZCASH_MAVEN_PUBLISH_PASSWORD=
# GPG key is only required if IS_SNAPSHOT is false
# GPG key is ASCII armored without a password, then Base64 encoded to escape the newlines
ZCASH_ASCII_GPG_KEY=

# Configures whether release is an unstable snapshot, therefore published to the snapshot repository.
IS_SNAPSHOT=true

LIBRARY_VERSION=1.13.0-beta01

# Kotlin compiler warnings can be considered errors, failing the build.
ZCASH_IS_TREAT_WARNINGS_AS_ERRORS=true

# Optionally configure code coverage, as historically Jacoco has at times been buggy with respect to new Kotlin versions
IS_ANDROID_INSTRUMENTATION_TEST_COVERAGE_ENABLED=false

# Optionally configure test orchestrator.
# It is disabled by default, because it causes tests to take about 2x longer to run.
IS_USE_TEST_ORCHESTRATOR=false

# Either provide a path to a Firebase Test Lab service key (best for CI)
# OR
# login with `./gradlew flankAuth` and provide the project name (best for local development)
# Note: make sure you have Editor role, at least in the Firebase project, to be able to authenticate successfully.
ZCASH_FIREBASE_TEST_LAB_API_KEY_PATH=
ZCASH_FIREBASE_TEST_LAB_PROJECT=

ZCASH_EMULATOR_WTF_API_KEY=

# Optionally configure minification
# For now, don't minify the SDK but do minify the app. Minifying the app helps us test
# the proguard-consumer rules in the SDK.
IS_MINIFY_SDK_ENABLED=false
IS_MINIFY_APP_ENABLED=true

# Set keystore details to enable build signing.  Typically these
# are overridden via ~/.gradle/gradle.properties to allow secure injection.
# Debug keystore is useful if using Google Maps or Firebase, which require API keys to be linked
# to a signing key. Without a debug keystore, the default Android debug keystore will be used.
# Without a release signing configuration, the release output will not be signed.
ZCASH_DEBUG_KEYSTORE_PATH=
ZCASH_RELEASE_KEYSTORE_PATH=
ZCASH_RELEASE_KEYSTORE_PASSWORD=
ZCASH_RELEASE_KEY_ALIAS=
ZCASH_RELEASE_KEY_ALIAS_PASSWORD=

# Switch this property to true only if you need to sign the release build with a debug key for local development.
IS_SIGN_RELEASE_BUILD_WITH_DEBUG_KEY=false

# Versions
ANDROID_MIN_SDK_VERSION=21
ANDROID_MIN_BENCHMARK_VERSION=24
ANDROID_TARGET_SDK_VERSION=33
ANDROID_COMPILE_SDK_VERSION=33

# TODO[#317]: Update NDK to 24.0.7856742
# TODO[#317]: https://github.com/zcash/zcash-android-wallet-sdk/issues/317
# When changing this, be sure to update .github/actions/setup/action.yml
ANDROID_NDK_VERSION=22.1.7171670

ANDROID_GRADLE_PLUGIN_VERSION=7.4.0
DETEKT_VERSION=1.22.0
DOKKA_VERSION=1.7.20
EMULATOR_WTF_GRADLE_PLUGIN_VERSION=0.0.15
FLANK_VERSION=23.01.0
FULLADLE_VERSION=0.17.4
GRADLE_VERSIONS_PLUGIN_VERSION=0.44.0
KTLINT_VERSION=0.48.0
KSP_VERSION=1.8.0-1.0.8
PROTOBUF_GRADLE_PLUGIN_VERSION=0.8.19
RUST_GRADLE_PLUGIN_VERSION=0.9.3

ANDROIDX_ACTIVITY_VERSION=1.6.1
ANDROIDX_ANNOTATION_VERSION=1.5.0
ANDROIDX_APPCOMPAT_VERSION=1.6.0
ANDROIDX_COMPOSE_COMPILER_VERSION=1.4.0
ANDROIDX_COMPOSE_MATERIAL3_VERSION=1.1.0-alpha04
ANDROIDX_COMPOSE_VERSION=1.3.3
ANDROIDX_COMPOSE_MATERIAL_ICONS_VERSION=1.3.1
ANDROIDX_CONSTRAINT_LAYOUT_VERSION=2.1.4
ANDROIDX_CORE_VERSION=1.9.0
ANDROIDX_DATABASE_VERSION=2.3.0
ANDROIDX_ESPRESSO_VERSION=3.5.1
ANDROIDX_LIFECYCLE_VERSION=2.6.0-alpha04
ANDROIDX_MULTIDEX_VERSION=2.0.1
ANDROIDX_NAVIGATION_VERSION=2.5.3
ANDROIDX_NAVIGATION_COMPOSE_VERSION=2.5.3
ANDROIDX_NAVIGATION_FRAGMENT_VERSION=2.4.2
ANDROIDX_PAGING_VERSION=2.1.2
ANDROIDX_PROFILE_INSTALLER_VERSION=1.3.0-alpha03
ANDROIDX_ROOM_VERSION=2.5.0
ANDROIDX_SECURITY_CRYPTO_VERSION=1.1.0-alpha04
ANDROIDX_TEST_JUNIT_VERSION=1.1.5
ANDROIDX_TEST_MACROBENCHMARK_VERSION=1.2.0-alpha09
ANDROIDX_TEST_ORCHESTRATOR_VERSION=1.4.2
ANDROIDX_TEST_CORE_VERSION=1.5.0
ANDROIDX_TEST_RUNNER_VERSION=1.5.0
ANDROIDX_TRACING_VERSION=1.2.0-alpha01
ANDROIDX_UI_AUTOMATOR_VERSION=2.3.0-alpha02
BIP39_VERSION=1.0.4
COROUTINES_OKHTTP=1.0
GOOGLE_MATERIAL_VERSION=1.7.0
GRPC_KOTLIN_VERSION=1.3.0
GRPC_VERSION=1.52.1
GSON_VERSION=2.9.0
GUAVA_VERSION=31.1-android
JACOCO_VERSION=0.8.8
JAVAX_ANNOTATION_VERSION=1.3.2
JUNIT_VERSION=5.9.1
KOTLINX_COROUTINES_VERSION=1.6.4
KOTLINX_DATETIME_VERSION=0.4.0
KOTLIN_VERSION=1.8.0
MOCKITO_KOTLIN_VERSION=2.2.0
MOCKITO_VERSION=4.9.0
PROTOC_VERSION=3.21.11
ZCASH_WALLET_PLUGINS_VERSION=1.0.1

# This shouldn't be changed, as Android doesn't support targets beyond Java 8
ANDROID_JVM_TARGET=1.8
