Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
4289310
Fixed numeral localization in insulin delivery table view
hannkm Apr 13, 2023
d1f6908
Disable missed meal detection if there are user-entered and/or calibr…
novalegra May 1, 2023
4e244c8
Tests for changes
novalegra May 1, 2023
da11ae9
StoredCarbEntry constructor signature change
ps2 Aug 17, 2023
dae9b62
Overwrite profile_expire_date for GitHub built
marionbarker Aug 22, 2023
3a8d2c9
[LOOP-4652] Replace AnyView
Camji55 Aug 22, 2023
c68d2cc
use GITHUB_ACTION to update profile expire date
marionbarker Aug 22, 2023
ed4d1e8
Override warning fix
SwiftlyNoah Aug 23, 2023
ebc821f
Merge pull request #592 from tidepool-org/cameron/LOOP-4652-replace-a…
Camji55 Aug 23, 2023
7e232b0
Merge pull request #2054 from SwiftlyNoah/carb-entry-updates
ps2 Aug 23, 2023
f3dc84f
Merge pull request #1979 from hannkm/dev
ps2 Aug 23, 2023
9996d81
Fix merge conflicts and use updated containsCalibrations() method
ps2 Aug 23, 2023
ea8c5c0
Merge remote-tracking branch 'origin/dev' into functional-loop-algorithm
ps2 Aug 25, 2023
599ba10
Adding test for Loop functional algorithm
ps2 Aug 25, 2023
3367e60
Merge pull request #2056 from LoopKit/novalegra-missed-meal-ignore-ca…
ps2 Aug 25, 2023
2b58a68
Detection of github build, calculate date for testflight expire
bjorkert Aug 27, 2023
78a75cd
TF text adjustments
bjorkert Aug 28, 2023
874c393
Fix for UTC timezone
bjorkert Aug 28, 2023
211a337
fix for modal alert
marionbarker Aug 28, 2023
b292371
test an alternative method for isTestFlightBuild
marionbarker Aug 28, 2023
3909380
Revert changes not needed by isTestFlightBuild function
marionbarker Aug 28, 2023
b6eb08b
Add simulator check for completeness
marionbarker Aug 29, 2023
e91a2a5
Merge branch 'dev' into github-build-expiration-date
marionbarker Aug 30, 2023
156401e
Refactoring and renaming
bjorkert Aug 30, 2023
180eceb
Refactoring and renaming
bjorkert Aug 30, 2023
a6a057f
Tests passing
ps2 Sep 2, 2023
a5f44a2
Cleanup
ps2 Sep 2, 2023
687c055
CarbValue struct update
ps2 Sep 5, 2023
d190fd5
Update live capture test with updated durations of input data, and st…
ps2 Sep 6, 2023
6873e64
Merge pull request #2059 from LoopKit/functional-loop-algorithm
ps2 Sep 6, 2023
cbe34df
Merge remote-tracking branch 'loopkit/dev' into ps2/LOOP-4665/functio…
ps2 Sep 6, 2023
3f6d57d
Fixing tests
ps2 Sep 6, 2023
a12d1f9
Merge remote-tracking branch 'loopkit/dev' into ps2/LOOP-4665/functio…
ps2 Sep 6, 2023
2e16e1e
Revert test optimization; some pump tests that attempt ble comms are …
ps2 Sep 6, 2023
1c88b00
Merge pull request #594 from tidepool-org/ps2/LOOP-4665/functional-al…
ps2 Sep 7, 2023
29471dc
[LOOP-4721] UI Updates for Loop Alert Management
Camji55 Sep 7, 2023
2360edb
Merge pull request #2052 from loopandlearn/github-build-expiration-date
ps2 Sep 8, 2023
cbc2251
Merge tidepool/dev
Sep 8, 2023
6226289
Merge pull request #2063 from LoopKit/tidepool-sync
ps2 Sep 8, 2023
ea66ab2
Add Hindi Intents
billybooth Sep 9, 2023
406ae09
Merge pull request #2064 from billybooth/dev-hi-intents
ps2 Sep 9, 2023
232b21d
Update build destinations
ps2 Sep 10, 2023
ab9f89f
[LOOP-4721] UI Updates for Loop Alert Management
Camji55 Sep 13, 2023
d76c009
[LOOP-4721] UI Updates for Loop Alert Management
Camji55 Sep 13, 2023
2741c8e
[LOOP-4721] UI Updates for Loop Alert Management
Camji55 Sep 13, 2023
b5351cd
Merge pull request #596 from tidepool-org/cameron/LOOP-4721-ui-update…
Camji55 Sep 13, 2023
974574d
[COASTAL-1291] added tidepool security plugin (#593)
nhamming Sep 19, 2023
49b329e
[COASTAL-1291] corrected rawValue key for service restore (#598)
nhamming Sep 21, 2023
bea91f0
Adding CGM Event Store (#2071)
ps2 Sep 22, 2023
eb211c1
Merge tidepool/dev
ps2 Sep 22, 2023
4fd0c5e
Merge pull request #2072 from LoopKit/tidepool-sync
ps2 Sep 22, 2023
c7091c0
Use pluginIdentifier for upload key
ps2 Sep 22, 2023
15f05ac
Revert rawValue key name change for services
ps2 Sep 23, 2023
1922a16
Allow calls to hasNewPumpEvents that do not replace all pending doses
ps2 Sep 23, 2023
2620bfd
Merge pull request #2074 from LoopKit/pump-event-store-update
ps2 Sep 23, 2023
55cf35a
Update tests
ps2 Sep 23, 2023
c75c8c8
Update widgets for build with Xcode 15
Camji55 Sep 29, 2023
b720115
Merge pull request #2078 from Camji55/widgets
ps2 Sep 29, 2023
b76ee03
Cleanup warnings
ps2 Oct 1, 2023
52ea3be
Include pending insulin in dosing decision
ps2 Oct 1, 2023
33b0014
Updated translations from Lokalise on Sun Oct 22 11:55:50 CDT 2023 (#…
ps2 Oct 22, 2023
7c60cac
Enable pump heartbeat if needed when adding a pump (#2058)
ps2 Oct 22, 2023
ea25a86
use LoopConstants instead of hard-coded time intervals (#2050)
marionbarker Oct 28, 2023
b63c492
Probably typo (#2096)
marionbarker Dec 10, 2023
b6610a1
fix logic error, testflight expiration is independent of profile expi…
marionbarker Dec 12, 2023
7179901
Updates to tests for iOS 17 (#2080)
ps2 Feb 18, 2024
d5065b2
make it easier to save a Favorite Food from Carb Entry screen (#2136)
marionbarker Apr 24, 2024
6cf0285
remove shaking phone as trigger for presentDebugMenu (#2149)
marionbarker Apr 24, 2024
1aaee2d
Bump version to 3.5.0 to signify dev branch
ps2 Jul 13, 2024
975b4d5
make favorite food translatable
Joerg-Schoemer Sep 4, 2023
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
6 changes: 3 additions & 3 deletions Common/Models/PumpManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@ import MockKit
import MockKitUI

let staticPumpManagersByIdentifier: [String: PumpManagerUI.Type] = [
MockPumpManager.managerIdentifier : MockPumpManager.self
MockPumpManager.pluginIdentifier : MockPumpManager.self
]

var availableStaticPumpManagers: [PumpManagerDescriptor] {
if FeatureFlags.allowSimulators {
return [
PumpManagerDescriptor(identifier: MockPumpManager.managerIdentifier, localizedTitle: MockPumpManager.localizedTitle)
PumpManagerDescriptor(identifier: MockPumpManager.pluginIdentifier, localizedTitle: MockPumpManager.localizedTitle)
]
} else {
return []
Expand All @@ -31,7 +31,7 @@ extension PumpManager {

var rawValue: RawValue {
return [
"managerIdentifier": self.managerIdentifier,
"managerIdentifier": self.pluginIdentifier,
"state": self.rawState
]
}
Expand Down
24 changes: 24 additions & 0 deletions Common/hi.lproj/Intents.strings
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
"80eo5o" = "Add Carb Entry";

"9KhaIS" = "I've set the preset";

"I4OZy8" = "Enable Override Preset";

"OcNxIj" = "Add Carb Entry";

"XNNmtH" = "Enable preset in Loop";

"ZZ3mtM" = "Enable an override preset in Loop";

"b085BW" = "I wasn't able to set the preset.";

"lYMuWV" = "Override Name";

"nDKAmn" = "What's the name of the override you'd like to set?";

"oLQSsJ" = "Enable '${overrideName}' Override Preset";

"yBzwCL" = "Override Selection";

"yc02Yq" = "Add a carb entry to Loop";

2 changes: 1 addition & 1 deletion Loop Status Extension/it.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
"%1$@ v%2$@" = "%1$@ contro %2$@";

/* Widget label title describing the active carbs */
"Active Carbs" = "Carb Attivi";
"Active Carbs" = "Carboidrati Attivi";

/* Widget label title describing the active insulin */
"Active Insulin" = "Insulina attiva";
Expand Down
20 changes: 20 additions & 0 deletions Loop Widget Extension/Helpers/ContentMargin.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
//
// ContentMargin.swift
// Loop Widget Extension
//
// Created by Cameron Ingham on 9/29/23.
// Copyright © 2023 LoopKit Authors. All rights reserved.
//

import SwiftUI
import WidgetKit

extension WidgetConfiguration {
func contentMarginsDisabledIfAvailable() -> some WidgetConfiguration {
if #available(iOSApplicationExtension 17.0, *) {
return self.contentMarginsDisabled()
} else {
return self
}
}
}
8 changes: 7 additions & 1 deletion Loop Widget Extension/Helpers/WidgetBackground.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,12 @@ import SwiftUI
extension View {
@ViewBuilder
func widgetBackground() -> some View {
self.background { Color("WidgetBackground") }
if #available(iOSApplicationExtension 17.0, *) {
self.containerBackground(for: .widget) {
Color("WidgetBackground")
}
} else {
self.background { Color("WidgetBackground") }
}
}
}
1 change: 1 addition & 0 deletions Loop Widget Extension/Widgets/SystemStatusWidget.swift
Original file line number Diff line number Diff line change
Expand Up @@ -76,5 +76,6 @@ struct SystemStatusWidget: Widget {
.configurationDisplayName("Loop Status Widget")
.description("See your current blood glucose and insulin delivery.")
.supportedFamilies([.systemSmall, .systemMedium])
.contentMarginsDisabledIfAvailable()
}
}
81 changes: 60 additions & 21 deletions Loop.xcodeproj/project.pbxproj

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1430"
LastUpgradeVersion = "1500"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1430"
LastUpgradeVersion = "1500"
wasCreatedForAppExtension = "YES"
version = "2.0">
<BuildAction
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1430"
LastUpgradeVersion = "1500"
wasCreatedForAppExtension = "YES"
version = "2.0">
<BuildAction
Expand Down
2 changes: 1 addition & 1 deletion Loop.xcodeproj/xcshareddata/xcschemes/Loop.xcscheme
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1430"
LastUpgradeVersion = "1500"
version = "1.3">
<BuildAction
parallelizeBuildables = "NO"
Expand Down
2 changes: 1 addition & 1 deletion Loop.xcodeproj/xcshareddata/xcschemes/LoopTests.xcscheme
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1430"
LastUpgradeVersion = "1500"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1430"
LastUpgradeVersion = "1500"
wasCreatedForAppExtension = "YES"
version = "2.0">
<BuildAction
Expand Down
2 changes: 1 addition & 1 deletion Loop.xcodeproj/xcshareddata/xcschemes/WatchApp.xcscheme
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1430"
LastUpgradeVersion = "1500"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
Expand Down
2 changes: 2 additions & 0 deletions Loop/AppDelegate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ final class AppDelegate: UIResponder, UIApplicationDelegate, WindowProvider {

setenv("CFNETWORK_DIAGNOSTICS", "3", 1)

log.default("lastPathComponent = %{public}@", String(describing: Bundle.main.appStoreReceiptURL?.lastPathComponent))

loopAppManager.initialize(windowProvider: self, launchOptions: launchOptions)
loopAppManager.launch()
return loopAppManager.isLaunchComplete
Expand Down
12 changes: 12 additions & 0 deletions Loop/DefaultAssets.xcassets/hardware.imageset/Contents.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "Group 3403.pdf",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Binary file not shown.
12 changes: 12 additions & 0 deletions Loop/DefaultAssets.xcassets/phone.imageset/Contents.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "Group 3405.pdf",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Binary file not shown.
14 changes: 7 additions & 7 deletions Loop/Extensions/DosingDecisionStore+SimulatedCoreData.swift
Original file line number Diff line number Diff line change
Expand Up @@ -103,23 +103,23 @@ fileprivate extension StoredDosingDecision {
historicalGlucose.append(HistoricalGlucoseValue(startDate: date.addingTimeInterval(.minutes(minutes)),
quantity: HKQuantity(unit: .milligramsPerDeciliter, doubleValue: 125 + minutes / 5)))
}
let originalCarbEntry = StoredCarbEntry(uuid: UUID(uuidString: "C86DEB61-68E9-464E-9DD5-96A9CB445FD3")!,
let originalCarbEntry = StoredCarbEntry(startDate: date.addingTimeInterval(-.minutes(15)),
quantity: HKQuantity(unit: .gram(), doubleValue: 15),
uuid: UUID(uuidString: "C86DEB61-68E9-464E-9DD5-96A9CB445FD3")!,
provenanceIdentifier: Bundle.main.bundleIdentifier!,
syncIdentifier: "2B03D96C-6F5D-4140-99CD-80C3E64D6010",
syncVersion: 1,
startDate: date.addingTimeInterval(-.minutes(15)),
quantity: HKQuantity(unit: .gram(), doubleValue: 15),
foodType: "Simulated",
absorptionTime: .hours(3),
createdByCurrentApp: true,
userCreatedDate: date.addingTimeInterval(-.minutes(15)),
userUpdatedDate: date.addingTimeInterval(-.minutes(1)))
let carbEntry = StoredCarbEntry(uuid: UUID(uuidString: "71B699D7-0E8F-4B13-B7A1-E7751EB78E74")!,
let carbEntry = StoredCarbEntry(startDate: date.addingTimeInterval(-.minutes(1)),
quantity: HKQuantity(unit: .gram(), doubleValue: 25),
uuid: UUID(uuidString: "71B699D7-0E8F-4B13-B7A1-E7751EB78E74")!,
provenanceIdentifier: Bundle.main.bundleIdentifier!,
syncIdentifier: "2B03D96C-6F5D-4140-99CD-80C3E64D6010",
syncVersion: 2,
startDate: date.addingTimeInterval(-.minutes(1)),
quantity: HKQuantity(unit: .gram(), doubleValue: 25),
foodType: "Simulated",
absorptionTime: .hours(5),
createdByCurrentApp: true,
Expand Down Expand Up @@ -147,7 +147,7 @@ fileprivate extension StoredDosingDecision {
healthKitEligibleDate: nil)
let carbsOnBoard = CarbValue(startDate: date,
endDate: date.addingTimeInterval(.minutes(5)),
quantity: HKQuantity(unit: .gram(), doubleValue: 45.5))
value: 45.5)
let insulinOnBoard = InsulinValue(startDate: date, value: 1.5)
let glucoseTargetRangeSchedule = GlucoseRangeSchedule(rangeSchedule: DailyQuantitySchedule(unit: .milligramsPerDeciliter,
dailyItems: [RepeatingScheduleValue(startTime: .hours(0), value: DoubleRange(minValue: 100.0, maxValue: 110.0)),
Expand Down
2 changes: 1 addition & 1 deletion Loop/Extensions/EditMode.swift
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import SwiftUI

extension EditMode {
var title: String {
self == .active ? "Done" : "Edit"
self == .active ? NSLocalizedString("Done", comment: "") : NSLocalizedString("Edit", comment: "")
}

mutating func toggle() {
Expand Down
16 changes: 13 additions & 3 deletions Loop/Managers/Alerts/StoredAlert.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,19 @@ import UIKit

extension StoredAlert {

static var encoder = JSONEncoder()
static var decoder = JSONDecoder()

static let encoder: JSONEncoder = {
let encoder = JSONEncoder()
encoder.outputFormatting = [.sortedKeys]
encoder.dateEncodingStrategy = .iso8601
return encoder
}()

static let decoder: JSONDecoder = {
let decoder = JSONDecoder()
decoder.dateDecodingStrategy = .iso8601
return decoder
}()

convenience init(from alert: Alert, context: NSManagedObjectContext, issuedDate: Date = Date(), syncIdentifier: UUID = UUID()) {
do {
/// This code, using the `init(entity:insertInto:)` instead of the `init(context:)` avoids warnings during unit testing that look like this:
Expand Down
2 changes: 1 addition & 1 deletion Loop/Managers/AnalyticsServicesManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ final class AnalyticsServicesManager {
}

func removeService(_ analyticsService: AnalyticsService) {
analyticsServices.removeAll { $0.serviceIdentifier == analyticsService.serviceIdentifier }
analyticsServices.removeAll { $0.pluginIdentifier == analyticsService.pluginIdentifier }
}

private func logEvent(_ name: String, withProperties properties: [AnyHashable: Any]? = nil, outOfSession: Bool = false) {
Expand Down
Loading