|
|
@@ -21,6 +21,7 @@ final class BaseCalendarManager: CalendarManager, Injectable {
|
|
|
|
|
|
private var coreDataPublisher: AnyPublisher<Set<NSManagedObject>, Never>?
|
|
|
private var subscriptions = Set<AnyCancellable>()
|
|
|
+ private var previousDeterminationId: NSManagedObjectID?
|
|
|
|
|
|
private var glucoseFormatter: NumberFormatter {
|
|
|
let formatter = NumberFormatter()
|
|
|
@@ -211,6 +212,11 @@ final class BaseCalendarManager: CalendarManager, Injectable {
|
|
|
guard settingsManager.settings.useCalendar, let calendar = currentCalendar,
|
|
|
let determinationId = await getLastDetermination() else { return }
|
|
|
|
|
|
+ // Ignore the update if the determinationId is the same as it was at last update
|
|
|
+ if determinationId == previousDeterminationId {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
let glucoseIds = await fetchGlucose()
|
|
|
|
|
|
deleteAllEvents(in: calendar)
|
|
|
@@ -291,6 +297,8 @@ final class BaseCalendarManager: CalendarManager, Injectable {
|
|
|
|
|
|
try eventStore.save(event, span: .thisEvent)
|
|
|
|
|
|
+ previousDeterminationId = determinationId
|
|
|
+
|
|
|
} catch {
|
|
|
debugPrint(
|
|
|
"\(DebuggingIdentifiers.failed) \(#file) \(#function) Failed to create calendar event: \(error.localizedDescription)"
|