From 3ac1911808bfe7c07a3903633c56c42cec7c3c0c Mon Sep 17 00:00:00 2001 From: MrUnknownDE Date: Wed, 13 Aug 2025 16:30:12 +0200 Subject: [PATCH] Frustration won xd --- app/build.gradle.kts | 8 +- app/src/main/AndroidManifest.xml | 6 +- app/src/main/java/com/mrunk/wearhr/Health.kt | 15 +- app/src/main/res/layout/activity_main.xml | 35 +-- gradlew | 251 +++++++++++++++++++ gradlew.bat | 94 +++++++ settings.gradle.kts | 13 +- 7 files changed, 393 insertions(+), 29 deletions(-) create mode 100644 gradlew create mode 100644 gradlew.bat diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 14a68b6..b0bba1b 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -8,12 +8,12 @@ plugins { android { namespace = "com.mrunk.wearhr" - compileSdk = 35 + compileSdk = 34 defaultConfig { applicationId = "com.mrunk.wearhr" - minSdk = 30 // Wear OS 3+ (passt auch für Wear OS 5) - targetSdk = 35 + minSdk = 30 + targetSdk = 34 versionCode = 1 versionName = "0.1.0" } @@ -56,7 +56,7 @@ dependencies { // Wear OS UI helpers (optional, for round screens) implementation("androidx.wear:wear:1.3.0") - // Health Services client (Wear OS) - Version corrected + // Health Services client (Wear OS) implementation("androidx.health:health-services-client:1.1.0-alpha01") // For .await() on ListenableFuture diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2e570ed..3de4b94 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -17,10 +17,14 @@ android:allowBackup="false" android:networkSecurityConfig="@xml/network_security_config"> + + + android:foregroundServiceType="health"> Unit) : ExerciseUpdateListener { private val scope = CoroutineScope(Dispatchers.Default + Job()) @@ -34,14 +33,16 @@ class Health(private val ctx: Context, private val onHr: (Int) -> Unit) : Exerci } suspend fun stop() { - exerciseClient.pauseExerciseAsync().await() - exerciseClient.endExerciseAsync().await() - exerciseClient.clearUpdateListener() + runCatching { exerciseClient.pauseExerciseAsync().await() } + runCatching { exerciseClient.endExerciseAsync().await() } + runCatching { exerciseClient.clearUpdateListener() } } override fun onExerciseUpdateReceived(update: ExerciseUpdate) { - val hr = update.latestMetrics[DataType.HEART_RATE_BPM] - val bpm = hr?.value?.toInt() - if (bpm != null && bpm > 0) onHr(bpm) + val hrDataPoint = update.latestMetrics[DataType.HEART_RATE_BPM] + val bpm = hrDataPoint?.value?.toInt() + if (bpm != null && bpm > 0) { + onHr(bpm) + } } } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 6a33f72..d9e9527 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -42,24 +42,31 @@ app:layout_constraintTop_toBottomOf="@id/inputToken" app:layout_constraintEnd_toEndOf="parent"/> -