diff --git a/WatchApp Extension/Controllers/AddCarbsInterfaceController.swift b/WatchApp Extension/Controllers/AddCarbsInterfaceController.swift index cf4dc3dd8f..e21d0fe8ac 100644 --- a/WatchApp Extension/Controllers/AddCarbsInterfaceController.swift +++ b/WatchApp Extension/Controllers/AddCarbsInterfaceController.swift @@ -163,10 +163,14 @@ final class AddCarbsInterfaceController: WKInterfaceController, IdentifiableClas do { try WCSession.default.sendCarbEntryMessage(entry, replyHandler: { (suggestion) in - WKExtension.shared().rootInterfaceController?.presentController(withName: BolusInterfaceController.className, context: suggestion) + DispatchQueue.main.async { + WKExtension.shared().rootInterfaceController?.presentController(withName: BolusInterfaceController.className, context: suggestion) + } }, errorHandler: { (error) in - ExtensionDelegate.shared().present(error) + DispatchQueue.main.async { + ExtensionDelegate.shared().present(error) + } } ) } catch { diff --git a/WatchApp Extension/Controllers/BolusInterfaceController.swift b/WatchApp Extension/Controllers/BolusInterfaceController.swift index 721100ace6..991d55ce3d 100644 --- a/WatchApp Extension/Controllers/BolusInterfaceController.swift +++ b/WatchApp Extension/Controllers/BolusInterfaceController.swift @@ -137,7 +137,9 @@ final class BolusInterfaceController: WKInterfaceController, IdentifiableClass { do { try WCSession.default.sendBolusMessage(bolus) { (error) in - ExtensionDelegate.shared().present(error) + DispatchQueue.main.async { + ExtensionDelegate.shared().present(error) + } } } catch { presentAlert( diff --git a/WatchApp Extension/Controllers/StatusInterfaceController.swift b/WatchApp Extension/Controllers/StatusInterfaceController.swift index bdf212592d..fafedbe369 100644 --- a/WatchApp Extension/Controllers/StatusInterfaceController.swift +++ b/WatchApp Extension/Controllers/StatusInterfaceController.swift @@ -244,18 +244,22 @@ final class StatusInterfaceController: WKInterfaceController, ContextUpdatable { do { try WCSession.default.sendGlucoseRangeScheduleOverrideMessage(userInfo, replyHandler: { _ in - self.pendingMessageResponses -= 1 - if self.pendingMessageResponses == 0 { - self.updateForOverrideContext(userInfo?.context) + DispatchQueue.main.async { + self.pendingMessageResponses -= 1 + if self.pendingMessageResponses == 0 { + self.updateForOverrideContext(userInfo?.context) + } + self.lastOverrideContext = userInfo?.context } - self.lastOverrideContext = userInfo?.context }, errorHandler: { error in - self.pendingMessageResponses -= 1 - if self.pendingMessageResponses == 0 { - self.updateForOverrideContext(self.lastOverrideContext) + DispatchQueue.main.async { + self.pendingMessageResponses -= 1 + if self.pendingMessageResponses == 0 { + self.updateForOverrideContext(self.lastOverrideContext) + } + ExtensionDelegate.shared().present(error) } - ExtensionDelegate.shared().present(error) } ) } catch { @@ -263,10 +267,11 @@ final class StatusInterfaceController: WKInterfaceController, ContextUpdatable { if pendingMessageResponses == 0 { updateForOverrideContext(lastOverrideContext) } - presentAlert(withTitle: NSLocalizedString("Send Failed", comment: "The title of the alert controller displayed after a glucose range override send attempt fails"), - message: NSLocalizedString("Make sure your iPhone is nearby and try again", comment: "The recovery message displayed after a glucose range override send attempt fails"), - preferredStyle: .alert, - actions: [WKAlertAction.dismissAction()] + presentAlert( + withTitle: NSLocalizedString("Send Failed", comment: "The title of the alert controller displayed after a glucose range override send attempt fails"), + message: NSLocalizedString("Make sure your iPhone is nearby and try again", comment: "The recovery message displayed after a glucose range override send attempt fails"), + preferredStyle: .alert, + actions: [WKAlertAction.dismissAction()] ) } } diff --git a/WatchApp Extension/ExtensionDelegate.swift b/WatchApp Extension/ExtensionDelegate.swift index c77c95a126..2e76860093 100644 --- a/WatchApp Extension/ExtensionDelegate.swift +++ b/WatchApp Extension/ExtensionDelegate.swift @@ -164,7 +164,7 @@ final class ExtensionDelegate: NSObject, WKExtensionDelegate { extension ExtensionDelegate: WCSessionDelegate { func session(_ session: WCSession, activationDidCompleteWith activationState: WCSessionActivationState, error: Error?) { - if activationState == .activated && lastContext == nil { + if activationState == .activated { updateContext(session.receivedApplicationContext) } }