Path: blob/a-new-beginning/Folium-iOS/Actors/MotionAndFitnessAccess.swift
2 views
//
// MotionAndFitnessAccess.swift
// Folium-iOS
//
// Created by Jarrod Norwell on 12/7/2025.
//
/*
MARK: 29/11/2025
- Cleaned up MotionAndFitnessAccess actor
- Made `checkAuthorisationStatus` async
*/
import CoreMotion
actor MotionAndFitnessAccess {
var authorised: Bool = false
var status: CMAuthorizationStatus = .notDetermined
var pedometer: CMPedometer = .init()
func checkAuthorisationStatus() async {
await withCheckedContinuation { continuation in
status = CMPedometer.authorizationStatus()
authorised = status == .authorized
continuation.resume()
}
}
func authorise() async -> Bool {
#if targetEnvironment(simulator)
return true
#else
await withCheckedContinuation { continuation in
pedometer.queryPedometerData(from: .now, to: .now) { _, error in
continuation.resume(returning: error == nil)
}
}
#endif
}
}