BatterySetup.swift 927 B

1234567891011121314151617181920212223242526272829303132
  1. import CoreData
  2. import Foundation
  3. extension Home.StateModel {
  4. @MainActor func setupBatteryController() {
  5. batteryControllerDelegate.onContentChange = { [weak self] in
  6. Task { @MainActor in
  7. self?.updateBatteryFromController()
  8. }
  9. }
  10. do {
  11. try batteryController.performFetch()
  12. updateBatteryFromController()
  13. } catch {
  14. debug(.default, "\(DebuggingIdentifiers.failed) Failed to perform battery fetch: \(error)")
  15. }
  16. }
  17. @MainActor func updateBatteryFromController() {
  18. guard let objects = batteryController.fetchedObjects else { return }
  19. batteryFromPersistence = objects
  20. }
  21. /// Called from the `pumpDisplayState` sink, `settingsDidChange` and `pumpSettingsDidChange`.
  22. func setupBatteryArray() {
  23. Task { @MainActor in
  24. updateBatteryFromController()
  25. }
  26. }
  27. }