Skip to content

Commit 0ebc9ff

Browse files
committed
Merge branch 'dev' into cameron/LOOP-4884-pulsing-loop-status
2 parents c04b368 + 030035b commit 0ebc9ff

File tree

5 files changed

+22
-16
lines changed

5 files changed

+22
-16
lines changed

Loop/Managers/Store Protocols/CarbStoreProtocol.swift

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import HealthKit
1111

1212
protocol CarbStoreProtocol: AnyObject {
1313

14-
func getCarbEntries(start: Date?, end: Date?) async throws -> [StoredCarbEntry]
14+
func getCarbEntries(start: Date?, end: Date?, dateAscending: Bool, with favoriteFoodID: String?) async throws -> [StoredCarbEntry]
1515

1616
func replaceCarbEntry(_ oldEntry: StoredCarbEntry, withEntry newEntry: NewCarbEntry) async throws -> StoredCarbEntry
1717

@@ -21,4 +21,10 @@ protocol CarbStoreProtocol: AnyObject {
2121

2222
}
2323

24+
extension CarbStoreProtocol {
25+
func getCarbEntries(start: Date?, end: Date?) async throws -> [StoredCarbEntry] {
26+
try await getCarbEntries(start: start, end: end, dateAscending: true, with: nil)
27+
}
28+
}
29+
2430
extension CarbStore: CarbStoreProtocol { }

Loop/View Models/CarbEntryViewModel.swift

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,10 @@ final class CarbEntryViewModel: ObservableObject {
8787

8888
@Published var favoriteFoods = UserDefaults.standard.favoriteFoods
8989
@Published var selectedFavoriteFoodIndex = -1
90+
var selectedFavoriteFood: StoredFavoriteFood? {
91+
let foodExistsForIndex = 0..<favoriteFoods.count ~= selectedFavoriteFoodIndex
92+
return foodExistsForIndex ? favoriteFoods[selectedFavoriteFoodIndex] : nil
93+
}
9094

9195
weak var delegate: CarbEntryViewModelDelegate?
9296
weak var analyticsServicesManager: AnalyticsServicesManager?
@@ -121,6 +125,10 @@ final class CarbEntryViewModel: ObservableObject {
121125
self.usesCustomFoodType = true
122126
self.shouldBeginEditingQuantity = false
123127

128+
if let favoriteFoodIndex = favoriteFoods.firstIndex(where: { $0.id == originalCarbEntry.favoriteFoodID }) {
129+
self.selectedFavoriteFoodIndex = favoriteFoodIndex
130+
}
131+
124132
observeLoopUpdates()
125133
}
126134

@@ -133,12 +141,15 @@ final class CarbEntryViewModel: ObservableObject {
133141
return nil // No changes were made
134142
}
135143

144+
let favoriteFoodID = selectedFavoriteFoodIndex == -1 ? nil : favoriteFoods[selectedFavoriteFoodIndex].id
145+
136146
return NewCarbEntry(
137147
date: date,
138148
quantity: HKQuantity(unit: preferredCarbUnit, doubleValue: quantity),
139149
startDate: time,
140150
foodType: usesCustomFoodType ? foodType : selectedDefaultAbsorptionTimeEmoji,
141-
absorptionTime: absorptionTime
151+
absorptionTime: absorptionTime,
152+
favoriteFoodID: favoriteFoodID
142153
)
143154
}
144155
else {

Loop/Views/BolusEntryView.swift

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -468,15 +468,3 @@ struct LabeledQuantity: View {
468468
return Text(string)
469469
}
470470
}
471-
472-
struct LabelBackground: ViewModifier {
473-
func body(content: Content) -> some View {
474-
content
475-
.padding(.horizontal, 8)
476-
.padding(.vertical, 4)
477-
.background(
478-
RoundedRectangle(cornerRadius: 5, style: .continuous)
479-
.fill(Color(.systemGray6))
480-
)
481-
}
482-
}

Loop/Views/CarbEntryView.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,8 @@ struct CarbEntryView: View, HorizontalSizeClassOverride {
110110

111111
CardSectionDivider()
112112

113-
FoodTypeRow(foodType: $viewModel.foodType, absorptionTime: $viewModel.absorptionTime, selectedDefaultAbsorptionTimeEmoji: $viewModel.selectedDefaultAbsorptionTimeEmoji, usesCustomFoodType: $viewModel.usesCustomFoodType, absorptionTimeWasEdited: $viewModel.absorptionTimeWasEdited, isFocused: foodTypeFocused, defaultAbsorptionTimes: viewModel.defaultAbsorptionTimes)
113+
let selectedFavoriteFoodBinding = Binding(get: { viewModel.selectedFavoriteFood }, set: { _ in })
114+
FoodTypeRow(selectedFavoriteFood: selectedFavoriteFoodBinding, foodType: $viewModel.foodType, absorptionTime: $viewModel.absorptionTime, selectedDefaultAbsorptionTimeEmoji: $viewModel.selectedDefaultAbsorptionTimeEmoji, usesCustomFoodType: $viewModel.usesCustomFoodType, absorptionTimeWasEdited: $viewModel.absorptionTimeWasEdited, isFocused: foodTypeFocused, defaultAbsorptionTimes: viewModel.defaultAbsorptionTimes)
114115

115116
CardSectionDivider()
116117

LoopTests/Mock Stores/MockCarbStore.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class MockCarbStore: CarbStoreProtocol {
1616

1717
var carbHistory: [StoredCarbEntry] = []
1818

19-
func getCarbEntries(start: Date?, end: Date?) async throws -> [StoredCarbEntry] {
19+
func getCarbEntries(start: Date?, end: Date?, dateAscending: Bool, with favoriteFoodID: String?) async throws -> [StoredCarbEntry] {
2020
return carbHistory.filterDateRange(start, end)
2121
}
2222

0 commit comments

Comments
 (0)