From aa247ab8a5b3bd967817f51b73d3433c9ab3bb4e Mon Sep 17 00:00:00 2001 From: stuart Date: Tue, 9 Sep 2025 16:58:14 -0400 Subject: [PATCH] only get the stuff we have permissions for --- .../kotlin/cachet/plugins/health/HealthDataReader.kt | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/health/android/src/main/kotlin/cachet/plugins/health/HealthDataReader.kt b/packages/health/android/src/main/kotlin/cachet/plugins/health/HealthDataReader.kt index cefc28a27..37eab3837 100644 --- a/packages/health/android/src/main/kotlin/cachet/plugins/health/HealthDataReader.kt +++ b/packages/health/android/src/main/kotlin/cachet/plugins/health/HealthDataReader.kt @@ -4,6 +4,7 @@ import android.content.Context import android.os.Handler import android.util.Log import androidx.health.connect.client.HealthConnectClient +import androidx.health.connect.client.permission.HealthPermission import androidx.health.connect.client.records.* import androidx.health.connect.client.request.AggregateGroupByDurationRequest import androidx.health.connect.client.request.AggregateRequest @@ -53,7 +54,14 @@ class HealthDataReader( scope.launch { try { - HealthConstants.mapToType[dataType]?.let { classType -> + val grantedPermissions = healthConnectClient.permissionController.getGrantedPermissions() + + val authorizedTypeMap = HealthConstants.mapToType.filter { (typeKey, classType) -> + val requiredPermission = HealthPermission.getReadPermission(classType) + grantedPermissions.contains(requiredPermission) + } + + authorizedTypeMap[dataType]?.let { classType -> val records = mutableListOf() // Set up the initial request to read health records @@ -106,7 +114,7 @@ class HealthDataReader( "Unable to return $dataType due to the following exception:" ) Log.e("FLUTTER_HEALTH::ERROR", Log.getStackTraceString(e)) - result.success(null) + result.success(emptyList>()) // Return empty list instead of null } } }