Skip to content

Commit 971a7a3

Browse files
committed
Flag TotalCaloriesBurnedRecord permission as optional for Android
1 parent 6765df1 commit 971a7a3

1 file changed

Lines changed: 21 additions & 11 deletions

File tree

packages/health/android/src/main/kotlin/cachet/plugins/health/HealthDataReader.kt

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -404,18 +404,28 @@ class HealthDataReader(
404404
}
405405

406406
// Get energy burned data
407-
val energyBurnedRequest = healthConnectClient.readRecords(
408-
ReadRecordsRequest(
409-
recordType = TotalCaloriesBurnedRecord::class,
410-
timeRangeFilter = TimeRangeFilter.between(
411-
record.startTime,
412-
record.endTime,
413-
),
414-
),
415-
)
416407
var totalEnergyBurned = 0.0
417-
for (energyBurnedRec in energyBurnedRequest.records) {
418-
totalEnergyBurned += energyBurnedRec.energy.inKilocalories
408+
try {
409+
val grantedPermissions = healthConnectClient.permissionController.getGrantedPermissions()
410+
val energyPermission = HealthPermission.getReadPermission(TotalCaloriesBurnedRecord::class)
411+
if (grantedPermissions.contains(energyPermission)) {
412+
val energyBurnedRequest = healthConnectClient.readRecords(
413+
ReadRecordsRequest(
414+
recordType = TotalCaloriesBurnedRecord::class,
415+
timeRangeFilter = TimeRangeFilter.between(
416+
record.startTime,
417+
record.endTime,
418+
),
419+
),
420+
)
421+
for (energyBurnedRec in energyBurnedRequest.records) {
422+
totalEnergyBurned += energyBurnedRec.energy.inKilocalories
423+
}
424+
} else {
425+
Log.i("FLUTTER_HEALTH", "TotalCaloriesBurned permission not granted; skipping energy aggregation")
426+
}
427+
} catch (e: Exception) {
428+
Log.w("FLUTTER_HEALTH", "Skipping TotalCaloriesBurned: ${e.message}")
419429
}
420430

421431
// Get steps data

0 commit comments

Comments
 (0)