Skip to content
Prev Previous commit
Next Next commit
Add health steps permission check and conditional data retrieval
  • Loading branch information
klnfreedom committed Jul 1, 2025
commit 32eb6be8fba565b66c331336ee404553c1669857
Original file line number Diff line number Diff line change
Expand Up @@ -350,20 +350,30 @@ class HealthDataReader(
)
}


// Get steps data
val stepRequest = healthConnectClient.readRecords(
ReadRecordsRequest(
recordType = StepsRecord::class,
timeRangeFilter = TimeRangeFilter.between(
record.startTime,
record.endTime
),
),
)
var totalSteps = 0.0
if (permissionChecker.isHealthStepsPermissionGranted()) {
val stepRequest = healthConnectClient.readRecords(
ReadRecordsRequest(
recordType = StepsRecord::class,
timeRangeFilter = TimeRangeFilter.between(
record.startTime,
record.endTime
),
),
)

for (stepRec in stepRequest.records) {
totalSteps += stepRec.count
}

} else {
Log.i(
"FLUTTER_HEALTH",
"Skipping steps data retrieval for workout due to missing permissions"
)
}

// Add final datapoint
healthConnectData.add(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,12 @@ class HealthPermissionChecker(private val context: Context) {
healthCaloriesPermission
) == PackageManager.PERMISSION_GRANTED
}

fun isHealthStepsPermissionGranted(): Boolean {
val healthStepsPermission = "android.permission.health.READ_STEPS"
return ContextCompat.checkSelfPermission(
context,
healthStepsPermission
) == PackageManager.PERMISSION_GRANTED
}
}