Files
GameTime/watch_app/android/app/build.gradle.kts
Blomios 592796915f feat(watch): fréquence cardiaque live montre/téléphone (ticket #155)
Met en conformité l'implémentation avec le cadrage produit acté
(#155, #144, #142) : diffusion de la FC live depuis la montre vers le
téléphone via le bridge, affichage sur l'écran de séance montre
(watch_session_screen) en plus de l'écran Stats existant.

Validé : bridge fonctionnel bout-en-bout, tests watch_session_screen OK.
Artefact canonique d'installation montre confirmé :
watch_app/build/app/outputs/flutter-apk/app-release.apk
(package com.gametime.app) ; ne pas utiliser l'artefact résiduel
watch_app/build/watch_app/app/outputs/flutter-apk/app-release.apk.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-28 13:03:40 +02:00

84 lines
2.6 KiB
Plaintext

import java.util.Properties
plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
id("dev.flutter.flutter-gradle-plugin")
}
val sharedSigningPropertiesFile =
rootProject.projectDir.parentFile.parentFile.resolve("android/key.properties")
val sharedSigningProperties =
Properties().also { properties ->
check(sharedSigningPropertiesFile.isFile) {
"Shared signing config missing: ${sharedSigningPropertiesFile.absolutePath}"
}
sharedSigningPropertiesFile.inputStream().use(properties::load)
}
fun requiredSharedSigningProperty(name: String): String =
sharedSigningProperties.getProperty(name)?.takeIf { it.isNotBlank() }
?: error("Shared signing property '$name' missing in ${sharedSigningPropertiesFile.absolutePath}")
val sharedSigningStoreFile =
sharedSigningPropertiesFile.parentFile.resolve(requiredSharedSigningProperty("storeFile"))
check(sharedSigningStoreFile.isFile) {
"Shared signing keystore missing: ${sharedSigningStoreFile.absolutePath}"
}
android {
namespace = "com.gametime.watch"
compileSdk = flutter.compileSdkVersion
ndkVersion = flutter.ndkVersion
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
defaultConfig {
// Wear OS Data Layer requires matching package names and signatures
// across phone and watch APKs.
applicationId = "com.gametime.app"
minSdk = 30
targetSdk = flutter.targetSdkVersion
versionCode = flutter.versionCode
versionName = flutter.versionName
}
signingConfigs {
create("sharedLocal") {
storeFile = sharedSigningStoreFile
storePassword = requiredSharedSigningProperty("storePassword")
keyAlias = requiredSharedSigningProperty("keyAlias")
keyPassword = requiredSharedSigningProperty("keyPassword")
}
}
buildTypes {
release {
signingConfig = signingConfigs.getByName("sharedLocal")
}
}
}
kotlin {
compilerOptions {
jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17
}
}
flutter {
source = "../.."
}
dependencies {
implementation("androidx.core:core-ktx:1.13.1")
implementation("androidx.health:health-services-client:1.1.0-rc02")
implementation("androidx.wear:wear:1.4.0")
implementation("androidx.wear:wear-ongoing:1.0.0")
implementation("com.google.guava:guava:33.6.0-android")
implementation("com.google.android.gms:play-services-wearable:19.0.0")
}