Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion Common/Extensions/GlucoseRangeSchedule.swift
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
//

import LoopKit
import LoopAlgorithm


extension GlucoseRangeSchedule {
Expand Down
2 changes: 1 addition & 1 deletion Common/Extensions/HKUnit.swift
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
// Copyright © 2016 LoopKit Authors. All rights reserved.
//

import LoopAlgorithm
import LoopKit
import LoopCore

// Code in this extension is duplicated from:
Expand Down
2 changes: 1 addition & 1 deletion Common/Extensions/NumberFormatter.swift
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
//

import Foundation
import LoopAlgorithm
import LoopKit


extension NumberFormatter {
Expand Down
1 change: 0 additions & 1 deletion Common/Extensions/SampleValue.swift
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
//

import LoopKit
import LoopAlgorithm

extension SampleValue {
/// A glucose value entered by hand, such as a fingerstick or calibration.
Expand Down
34 changes: 34 additions & 0 deletions Common/LoopKitTypeAliases.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
//
// LoopKitTypeAliases.swift
// Loop
//
// Copyright © 2026 LoopKit Authors. All rights reserved.
//

import LoopKit

// LoopKit and LoopAlgorithm define types with the same names. These make the unqualified names
// mean LoopKit's; algorithm types are written LoopAlgorithm.Name.
typealias AbsoluteScheduleValue = LoopKit.AbsoluteScheduleValue
typealias AutomaticDoseRecommendation = LoopKit.AutomaticDoseRecommendation
typealias BolusRecommendationNotice = LoopKit.BolusRecommendationNotice
typealias CarbEntry = LoopKit.CarbEntry
typealias CarbValue = LoopKit.CarbValue
typealias DoseUnit = LoopKit.DoseUnit
typealias ExponentialInsulinModel = LoopKit.ExponentialInsulinModel
typealias ExponentialInsulinModelPreset = LoopKit.ExponentialInsulinModelPreset
typealias GlucoseChange = LoopKit.GlucoseChange
typealias GlucoseCondition = LoopKit.GlucoseCondition
typealias GlucoseEffect = LoopKit.GlucoseEffect
typealias GlucoseEffectVelocity = LoopKit.GlucoseEffectVelocity
typealias GlucoseRangeTimeline = LoopKit.GlucoseRangeTimeline
typealias GlucoseSampleValue = LoopKit.GlucoseSampleValue
typealias GlucoseValue = LoopKit.GlucoseValue
typealias InsulinModel = LoopKit.InsulinModel
typealias InsulinValue = LoopKit.InsulinValue
typealias ManualBolusRecommendation = LoopKit.ManualBolusRecommendation
typealias PredictedGlucoseValue = LoopKit.PredictedGlucoseValue
typealias SampleValue = LoopKit.SampleValue
typealias SimpleGlucoseValue = LoopKit.SimpleGlucoseValue
typealias TempBasalRecommendation = LoopKit.TempBasalRecommendation
typealias TimelineValue = LoopKit.TimelineValue
2 changes: 0 additions & 2 deletions Common/Models/StatusExtensionContext.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,8 @@
// This class allows Loop to pass context data to the Loop Status Extension.

import Foundation
import LoopAlgorithm
import LoopKit
import LoopKitUI
import LoopAlgorithm


struct NetBasalContext {
Expand Down
1 change: 0 additions & 1 deletion Common/Models/WatchHistoricalGlucose.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
import Foundation
import HealthKit
import LoopKit
import LoopAlgorithm

struct WatchHistoricalGlucose {
let samples: [StoredGlucoseSample]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
import ActivityKit
import Charts
import HealthKit
import LoopAlgorithm
import LoopCore
import LoopKit
import SwiftUI
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
import LoopCore
import LoopKit
import WidgetKit
import LoopAlgorithm


struct StatusWidgetTimelimeEntry: TimelineEntry {
Expand Down Expand Up @@ -56,6 +55,6 @@ struct StatusWidgetTimelimeEntry: TimelineEntry {
}
let glucoseAge = date - glucoseDate

return glucoseAge >= LoopAlgorithm.inputDataRecencyInterval
return glucoseAge >= LoopCoreConstants.inputDataRecencyInterval
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import LoopCore
import LoopKit
import OSLog
import WidgetKit
import LoopAlgorithm

class StatusWidgetTimelineProvider: TimelineProvider {
lazy var defaults = UserDefaults.appGroup
Expand Down Expand Up @@ -74,7 +73,7 @@ class StatusWidgetTimelineProvider: TimelineProvider {

// Date glucose staleness changes
if let lastBGTime = newEntry.currentGlucose?.startDate {
let staleBgRefreshTime = lastBGTime.addingTimeInterval(LoopAlgorithm.inputDataRecencyInterval+1)
let staleBgRefreshTime = lastBGTime.addingTimeInterval(LoopCoreConstants.inputDataRecencyInterval+1)
datesToRefreshWidget.append(staleBgRefreshTime)
}

Expand All @@ -97,7 +96,7 @@ class StatusWidgetTimelineProvider: TimelineProvider {

func update(completion: @escaping (StatusWidgetTimelimeEntry) -> Void) {

let startDate = Date(timeIntervalSinceNow: -LoopAlgorithm.inputDataRecencyInterval)
let startDate = Date(timeIntervalSinceNow: -LoopCoreConstants.inputDataRecencyInterval)

Task {

Expand Down
38 changes: 38 additions & 0 deletions Loop.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -717,6 +717,15 @@
FEEDB0000000000000000004 /* Statistics/TimeInRangeBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEEDF0000000000000000004 /* Statistics/TimeInRangeBar.swift */; };
30E4A68B8C914C5E4B245555 /* InsulinDeliveryHistoryTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F69CE2EE3714858772FE7A26 /* InsulinDeliveryHistoryTests.swift */; };
FEEDB0000000000000000005 /* GlucoseStatisticsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEEDF0000000000000000005 /* GlucoseStatisticsTests.swift */; };
17EA66859884C0208DED47CF /* LoopKitTypeAliases.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35FAEFD820F50BFF211AC6D9 /* LoopKitTypeAliases.swift */; };
1C99EE4A3BB181BB23DEF066 /* LoopAlgorithm in Frameworks */ = {isa = PBXBuildFile; productRef = C42F6B8A2B1B9E0142078BF9 /* LoopAlgorithm */; };
BD37CA2F10445DB600A35199 /* TemporaryScheduleOverrideAlgorithmTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C372374D3D3D9C5F8E3AD93 /* TemporaryScheduleOverrideAlgorithmTests.swift */; };
5E77F6516D69B22A57EB850A /* LoopAlgorithm in Frameworks */ = {isa = PBXBuildFile; productRef = 761F6A285BE2833DF06F7E55 /* LoopAlgorithm */; };
613BF2B78104AB9694590C65 /* AlgorithmBridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36421A4B9676EF68CDDC4ECD /* AlgorithmBridge.swift */; };
767B36174D190F3191F2EA73 /* LoopKitTypeAliases.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35FAEFD820F50BFF211AC6D9 /* LoopKitTypeAliases.swift */; };
8DC1CE32F39301122B550325 /* LoopKitTypeAliases.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35FAEFD820F50BFF211AC6D9 /* LoopKitTypeAliases.swift */; };
ABD9218EB98C9216FBB04382 /* LoopKitTypeAliases.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35FAEFD820F50BFF211AC6D9 /* LoopKitTypeAliases.swift */; };
AF79DFAB0F55143D66022668 /* LoopKitTypeAliases.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35FAEFD820F50BFF211AC6D9 /* LoopKitTypeAliases.swift */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
Expand Down Expand Up @@ -1584,6 +1593,9 @@
FEEDF0000000000000000004 /* Statistics/TimeInRangeBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Statistics/TimeInRangeBar.swift; sourceTree = "<group>"; };
F69CE2EE3714858772FE7A26 /* InsulinDeliveryHistoryTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InsulinDeliveryHistoryTests.swift; sourceTree = "<group>"; };
FEEDF0000000000000000005 /* GlucoseStatisticsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GlucoseStatisticsTests.swift; sourceTree = "<group>"; };
35FAEFD820F50BFF211AC6D9 /* LoopKitTypeAliases.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LoopKitTypeAliases.swift; sourceTree = "<group>"; };
36421A4B9676EF68CDDC4ECD /* AlgorithmBridge.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AlgorithmBridge.swift; sourceTree = "<group>"; };
6C372374D3D3D9C5F8E3AD93 /* TemporaryScheduleOverrideAlgorithmTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TemporaryScheduleOverrideAlgorithmTests.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
Expand Down Expand Up @@ -1637,6 +1649,7 @@
files = (
43D9002D21EB225D00AF44BF /* HealthKit.framework in Frameworks */,
C1BE2ADD2FCDE9F700D5A369 /* LoopKit.framework in Frameworks */,
1C99EE4A3BB181BB23DEF066 /* LoopAlgorithm in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand All @@ -1645,6 +1658,7 @@
buildActionMask = 2147483647;
files = (
C1275DDE2E81FD470013B99D /* LoopKit.framework in Frameworks */,
5E77F6516D69B22A57EB850A /* LoopAlgorithm in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down Expand Up @@ -1856,6 +1870,7 @@
C16F511A2B89363A00EFD7A1 /* SimpleInsulinDose.swift */,
C152B9F42C9C7D4A00ACBC06 /* AutomationHistoryEntry.swift */,
84213C882D94941000642E78 /* InsulinDeliveryLogEvent.swift */,
36421A4B9676EF68CDDC4ECD /* AlgorithmBridge.swift */,
);
path = Models;
sourceTree = "<group>";
Expand Down Expand Up @@ -2363,6 +2378,7 @@
43785E9B2120E7060057DED1 /* Intents.intentdefinition */,
89E267FB2292456700A3F2AF /* FeatureFlags.swift */,
7D9BEEF52335CF8D005DCFD6 /* Localizable.strings */,
35FAEFD820F50BFF211AC6D9 /* LoopKitTypeAliases.swift */,
);
path = Common;
sourceTree = "<group>";
Expand Down Expand Up @@ -2807,6 +2823,7 @@
A9BD28E6272226B40071DF15 /* TestLocalizedError.swift */,
A9DFAFB424F048A000950D1E /* WatchHistoricalCarbsTests.swift */,
A9C1719625366F780053BCBD /* WatchHistoricalGlucoseTest.swift */,
6C372374D3D3D9C5F8E3AD93 /* TemporaryScheduleOverrideAlgorithmTests.swift */,
);
path = Models;
sourceTree = "<group>";
Expand Down Expand Up @@ -3092,6 +3109,9 @@
dependencies = (
);
name = "LoopCore-watchOS";
packageProductDependencies = (
C42F6B8A2B1B9E0142078BF9 /* LoopAlgorithm */,
);
productName = LoopCore;
productReference = 43D9002A21EB209400AF44BF /* LoopCore.framework */;
productType = "com.apple.product-type.framework";
Expand All @@ -3110,6 +3130,9 @@
dependencies = (
);
name = LoopCore;
packageProductDependencies = (
761F6A285BE2833DF06F7E55 /* LoopAlgorithm */,
);
productName = LoopCore;
productReference = 43D9FFCF21EAE05D00AF44BF /* LoopCore.framework */;
productType = "com.apple.product-type.framework";
Expand Down Expand Up @@ -3619,6 +3642,7 @@
84AA81DD2A4A2999000B658B /* StatusWidgetTimelineProvider.swift in Sources */,
84D2879F2AC756C8007ED283 /* ContentMargin.swift in Sources */,
8496F7312B5711C4003E672C /* ContentMargin.swift in Sources */,
ABD9218EB98C9216FBB04382 /* LoopKitTypeAliases.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down Expand Up @@ -3893,6 +3917,8 @@
43C2FAE11EB656A500364AFF /* GlucoseEffectVelocity.swift in Sources */,
14C970862C5C358C00E8A01B /* FavoriteFoodInsightsChartsView.swift in Sources */,
5021CA8C264146C9DFF33E9D /* PluginPickerView.swift in Sources */,
17EA66859884C0208DED47CF /* LoopKitTypeAliases.swift in Sources */,
613BF2B78104AB9694590C65 /* AlgorithmBridge.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down Expand Up @@ -3993,6 +4019,7 @@
894F6DD3243BCBDB00CCE676 /* Environment+SizeClass.swift in Sources */,
C17D52042E7F0578001D2AD2 /* LabelValueRow.swift in Sources */,
895788B2242E69A2002CB114 /* CircularAccessoryButtonStyle.swift in Sources */,
8DC1CE32F39301122B550325 /* LoopKitTypeAliases.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down Expand Up @@ -4129,6 +4156,8 @@
E93E86B224DDE21D00FF40C8 /* MockCarbStore.swift in Sources */,
C1DA43592B1A784900CBD33F /* MockDeliveryDelegate.swift in Sources */,
C18859A02AF1612B0010F21F /* PersistenceController.swift in Sources */,
BD37CA2F10445DB600A35199 /* TemporaryScheduleOverrideAlgorithmTests.swift in Sources */,
AF79DFAB0F55143D66022668 /* LoopKitTypeAliases.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down Expand Up @@ -4173,6 +4202,7 @@
B4E96D57248A7B0F002DABAD /* StatusHighlightHUDView.swift in Sources */,
B42C951424A3C76000857C73 /* CGMStatusHUDViewModel.swift in Sources */,
4F75289E1DFE1F6000C322D6 /* LoopCompletionHUDView.swift in Sources */,
767B36174D190F3191F2EA73 /* LoopKitTypeAliases.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down Expand Up @@ -5510,6 +5540,14 @@
package = C1CCF10B2858F4F70035389C /* XCRemoteSwiftPackageReference "SwiftCharts" */;
productName = SwiftCharts;
};
761F6A285BE2833DF06F7E55 /* LoopAlgorithm */ = {
isa = XCSwiftPackageProductDependency;
productName = LoopAlgorithm;
};
C42F6B8A2B1B9E0142078BF9 /* LoopAlgorithm */ = {
isa = XCSwiftPackageProductDependency;
productName = LoopAlgorithm;
};
/* End XCSwiftPackageProductDependency section */

/* Begin XCVersionGroup section */
Expand Down
1 change: 0 additions & 1 deletion Loop/Extensions/BasalDeliveryState.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@

import LoopKit
import LoopCore
import LoopAlgorithm

extension PumpManagerStatus.BasalDeliveryState {
func getNetBasal(basalSchedule: BasalRateSchedule, maximumBasalRatePerHour: Double?) -> NetBasal? {
Expand Down
1 change: 1 addition & 0 deletions Loop/Extensions/BasalRelativeDose.swift
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
//

import Foundation
import LoopKit
import LoopAlgorithm

public extension Array where Element == BasalRelativeDose {
Expand Down
1 change: 0 additions & 1 deletion Loop/Extensions/CarbStore+SimulatedCoreData.swift
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
//

import Foundation
import LoopAlgorithm
import LoopKit

// MARK: - Simulated Core Data
Expand Down
3 changes: 1 addition & 2 deletions Loop/Extensions/CollectionType+Loop.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,9 @@

import Foundation
import LoopKit
import LoopAlgorithm


public extension Sequence where Element: TimelineValue {
public extension Sequence where Element: LoopKit.TimelineValue {
/// Returns the closest element index in the sorted sequence prior to the specified date
///
/// - parameter date: The date to use in the search
Expand Down
1 change: 0 additions & 1 deletion Loop/Extensions/DoseStore+SimulatedCoreData.swift
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
//

import Foundation
import LoopAlgorithm
import LoopKit

// MARK: - Simulated Core Data
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
import Foundation
import HealthKit
import LoopKit
import LoopAlgorithm

// MARK: - Simulated Core Data

Expand Down
1 change: 0 additions & 1 deletion Loop/Extensions/Environment+SettingsManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@

import SwiftUI
import LoopKit
import LoopAlgorithm


@MainActor
Expand Down
1 change: 0 additions & 1 deletion Loop/Extensions/GlucoseStore+SimulatedCoreData.swift
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
//

import Foundation
import LoopAlgorithm
import LoopKit

// MARK: - Simulated Core Data
Expand Down
1 change: 0 additions & 1 deletion Loop/Extensions/SettingsStore+SimulatedCoreData.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
import Foundation
import HealthKit
import LoopKit
import LoopAlgorithm

// MARK: - Simulated Core Data

Expand Down
1 change: 0 additions & 1 deletion Loop/Extensions/TempBasalRecommendation.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@

import Foundation
import LoopKit
import LoopAlgorithm

extension TempBasalRecommendation {
/// Equates the recommended rate with another rate
Expand Down
1 change: 0 additions & 1 deletion Loop/Extensions/UserDefaults+Loop.swift
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@

import Foundation
import LoopKit
import LoopAlgorithm


extension UserDefaults {
Expand Down
1 change: 0 additions & 1 deletion Loop/Managers/Alerts/GlucoseAlertManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@

import Combine
import Foundation
import LoopAlgorithm
import LoopKit
import LoopKitUI
import os.log
Expand Down
1 change: 0 additions & 1 deletion Loop/Managers/AnalyticsServicesManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
import Foundation
import LoopKit
import LoopCore
import LoopAlgorithm

final class AnalyticsServicesManager {

Expand Down
Loading