# 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

kotlin.mpp.stability.nowarn=true

android.builder.sdkDownload=true
android.nonTransitiveRClass=true
android.suppressUnsupportedCompileSdk=33
android.useAndroidX=true

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

# Optionally configure coverage for Kotlin modules (e.g. with Kover)
IS_KOTLIN_TEST_COVERAGE_ENABLED=true

# Optionally configure Android instumentation test coverage.
# The app module will crash at launch when coverage is enabled, so coverage is only enabled explicitly for tests.
# generation of instrumentation coverage is flaky, particularly when running ui-lib:connectedCheck
# TODO: [#705] Instrumentation coverage generation fails when run locally
# TODO: [#705] https://github.com/zcash/secant-android-wallet/issues/705
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

# Optionally enable crashes for strict mode violations in debug builds.
# It is disabled by default, because it can be annoying when debugging. Gets turned on by CI jobs that need it.
IS_CRASH_ON_STRICT_MODE_VIOLATION=false

IS_ENABLE_COMPOSE_COMPILER_METRICS=true
IS_ENABLE_COMPOSE_COMPILER_REPORTS=true

# 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)
ZCASH_FIREBASE_TEST_LAB_API_KEY_PATH=
ZCASH_FIREBASE_TEST_LAB_PROJECT=

# Optionally disable minification
IS_MINIFY_ENABLED=true

# If ZCASH_GOOGLE_PLAY_SERVICE_KEY_FILE_PATH is set and the deployment task is triggered, then
# VERSION_CODE is effectively ignored VERSION_NAME is suffixed with the version code.
# If not using automated Google Play deployment, then these serve as the actual version numbers.
ZCASH_VERSION_CODE=1
ZCASH_VERSION_NAME=0.1

# Set these fields, as you need them (e.g. with values "Zcash X" and "co.electriccoin.zcash.x")
# to distinguish a different release build that can be installed alongside the official version
# available on Google Play. This is useful for testing, or for a forked version of the app.
ZCASH_RELEASE_APP_NAME=sECCant
ZCASH_RELEASE_PACKAGE_NAME=co.electriccoin.zcash

ZCASH_DEBUG_APP_NAME_SUFFIX=" (D)"

# 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. It can
# be useful, for example, for running benchmark tests against a release build of the app signed with
# the default debug key configuration.
IS_SIGN_RELEASE_BUILD_WITH_DEBUG_KEY=false

# Optionally set the Google Play Service Key path to enable deployment
ZCASH_GOOGLE_PLAY_SERVICE_KEY_FILE_PATH=
# Can be one of {build, deploy}.
# Build can be used to generate a version number for the next release, but does not ultimately create a release on Google Play.
# Deploy commits the build on Google Play, creating a new release
ZCASH_GOOGLE_PLAY_DEPLOY_MODE=build

ZCASH_EMULATOR_WTF_API_KEY=

# Optional absolute path to a Zcash SDK checkout.
# When blank, it pulls the SDK from Maven.
# When set, it uses the path for a Gradle included build.  Path can either be absolute or relative to the root of this app's Gradle project.
SDK_INCLUDED_BUILD_PATH=

# When blank, it pulls the BIP-39 library from Maven.
# When set, it uses the path for a Gradle included build.  Path can either be absolute or relative to the root of this app's Gradle project.
BIP_39_INCLUDED_BUILD_PATH=

# Versions
ANDROID_MIN_SDK_VERSION=27
ANDROID_TARGET_SDK_VERSION=33
ANDROID_COMPILE_SDK_VERSION=33

ANDROID_NDK_VERSION=23.0.7599858

ANDROID_GRADLE_PLUGIN_VERSION=7.4.0
DETEKT_VERSION=1.22.0
EMULATOR_WTF_GRADLE_PLUGIN_VERSION=0.0.15
FIREBASE_CRASHLYTICS_BUILD_TOOLS_VERSION=2.9.2
FLANK_VERSION=23.01.0
FULLADLE_VERSION=0.17.4
GOOGLE_PLAY_SERVICES_GRADLE_PLUGIN_VERSION=4.3.15
GRADLE_VERSIONS_PLUGIN_VERSION=0.42.0
JGIT_VERSION=6.1.0.202203080745-r
KTLINT_VERSION=0.48.2
PLAY_PUBLISHER_PLUGIN_VERSION=3.7.0

ACCOMPANIST_PERMISSIONS_VERSION=0.28.0
ANDROIDX_ACTIVITY_VERSION=1.6.1
ANDROIDX_ANNOTATION_VERSION=1.5.0
ANDROIDX_APPCOMPAT_VERSION=1.6.0
ANDROIDX_CAMERA_VERSION=1.3.0-alpha02
ANDROIDX_COMPOSE_COMPILER_VERSION=1.4.2
ANDROIDX_COMPOSE_MATERIAL3_VERSION=1.1.0-alpha04
ANDROIDX_COMPOSE_MATERIAL_ICONS_VERSION=1.3.1
ANDROIDX_COMPOSE_VERSION=1.3.3
ANDROIDX_CONSTRAINTLAYOUT_VERSION=1.0.1
ANDROIDX_CORE_VERSION=1.9.0
ANDROIDX_ESPRESSO_VERSION=3.5.1
ANDROIDX_LIFECYCLE_VERSION=2.6.0-alpha04
ANDROIDX_NAVIGATION_COMPOSE_VERSION=2.5.3
ANDROIDX_PROFILE_INSTALLER_VERSION=1.3.0-alpha03
ANDROIDX_SECURITY_CRYPTO_VERSION=1.1.0-alpha04
ANDROIDX_SPLASH_SCREEN_VERSION=1.0.0
ANDROIDX_TEST_JUNIT_VERSION=1.1.5
ANDROIDX_TEST_ORCHESTRATOR_VERSION=1.4.2
ANDROIDX_TEST_CORE_VERSION=1.5.0
ANDROIDX_TEST_MACROBENCHMARK_VERSION=1.2.0-alpha09
ANDROIDX_TEST_RUNNER_VERSION=1.5.2
ANDROIDX_STARTUP_VERSION=1.1.1
ANDROIDX_TEST_SERVICE_VERSION=1.4.2
ANDROIDX_UI_AUTOMATOR_VERSION=2.2.0-alpha1
ANDROIDX_WORK_MANAGER_VERSION=2.7.1
CORE_LIBRARY_DESUGARING_VERSION=2.0.0
FIREBASE_BOM_VERSION_MATCHER=31.2.0
JACOCO_VERSION=0.8.8
KOTLIN_VERSION=1.8.10
KOTLINX_COROUTINES_VERSION=1.6.4
KOTLINX_DATETIME_VERSION=0.4.0
KOTLINX_IMMUTABLE_COLLECTIONS_VERSION=0.3.5
KOVER_VERSION=0.6.1
PLAY_APP_UPDATE_VERSION=2.0.1
PLAY_APP_UPDATE_KTX_VERSION=2.0.1
ZCASH_ANDROID_WALLET_PLUGINS_VERSION=1.0.0
ZCASH_BIP39_VERSION=1.0.4
# TODO [#279]: Revert to stable SDK before app release
# TODO [#279]: https://github.com/zcash/secant-android-wallet/issues/279
ZCASH_SDK_VERSION=1.14.0-beta01-SNAPSHOT
ZXING_VERSION=3.5.0


# Toolchain is the Java version used to build the application, which is separate from the
# Java version used to run the application.  Android requires a minimum of 11.
JVM_TOOLCHAIN=17

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