plugins { id("com.android.application") // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. id("dev.flutter.flutter-gradle-plugin") } android { namespace = "app.halkyon.train" compileSdk = flutter.compileSdkVersion ndkVersion = flutter.ndkVersion compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId = "app.halkyon.train" // You can update the following values to match your application needs. // For more information, see: https://flutter.dev/to/review-gradle-config. // Android 8: Health Connect's client needs it (ADR 0030, D31). minSdk = 26 targetSdk = flutter.targetSdkVersion // Uses the version code from pubspec.yaml. When using split APKs, 1000 * ABI_VERSION // is added automatically by Flutter. (https://developer.android.com/studio/build/configure-apk-splits#configure-APK-versions) // You can force using the value of versionCode by specifying the `-P force-version-code-ignoring-abi=true` // flag during build. versionCode = flutter.versionCode versionName = flutter.versionName } buildTypes { release { // TODO: Add your own signing config for the release build. // Signing with the debug keys for now, so `flutter run --release` works. signingConfig = signingConfigs.getByName("debug") } } } kotlin { compilerOptions { jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17 } } flutter { source = "../.." } dependencies { // NotificationCompat and ServiceCompat for the recording's foreground service, // the version Learn's build uses. implementation("androidx.core:core:1.18.0") // Health Connect (ADR 0030, D30, D31): AndroidX's client, no Play services. implementation("androidx.health.connect:connect-client:1.1.0") // The Polar Loop (ADR 0030, D32, D34): Polar's BLE SDK, under Polar's licence. implementation("com.github.polarofficial:polar-ble-sdk:8.3.0") // The protobuf runtime the SDK brings at run time, at its version, to read // the training sessions it gives as Polar's messages (ADR 0030, D39). compileOnly("com.google.protobuf:protobuf-javalite:3.20.0") testImplementation("com.google.protobuf:protobuf-javalite:3.20.0") // The Loop read every few hours while Train is closed (ADR 0030, D37). implementation("androidx.work:work-runtime-ktx:2.10.1") // Music by cadence in the recording service (ADR 0030, D47, D48): Media3's // ExoPlayer, its speed changed with the pitch kept; pinned by its checksums // in gradle/verification-metadata.xml. implementation("androidx.media3:media3-exoplayer:1.10.1") // The recorder's pure Kotlin parts (auto-pause) tested on the JVM. testImplementation("junit:junit:4.13.2") }