Skip to content

Commit 1da0fe1

Browse files
authored
Fix Card Alert + Favorites Bug (#219)
* Fix Card Alert + Favorites Bug * Update Marketing Version
1 parent 479e8ee commit 1da0fe1

17 files changed

Lines changed: 42 additions & 36 deletions

Eatery Blue.xcodeproj/project.pbxproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1493,7 +1493,7 @@
14931493
"$(inherited)",
14941494
"@executable_path/Frameworks",
14951495
);
1496-
MARKETING_VERSION = 3.4;
1496+
MARKETING_VERSION = 3.4.1;
14971497
OTHER_LDFLAGS = "-ObjC";
14981498
PRODUCT_BUNDLE_IDENTIFIER = org.cuappdev.eatery;
14991499
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -1537,7 +1537,7 @@
15371537
"$(inherited)",
15381538
"@executable_path/Frameworks",
15391539
);
1540-
MARKETING_VERSION = 3.4;
1540+
MARKETING_VERSION = 3.4.1;
15411541
OTHER_LDFLAGS = "-ObjC";
15421542
PRODUCT_BUNDLE_IDENTIFIER = org.cuappdev.eatery;
15431543
PRODUCT_NAME = "$(TARGET_NAME)";

Eatery Blue/Model/CoreDataStack.swift

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,13 @@ class CoreDataStack {
3838
}
3939
}
4040

41-
func metadata(eateryId: Int) -> EateryMetadata {
41+
func metadata(eateryId: Int?) -> EateryMetadata {
42+
guard let eateryId = eateryId else {
43+
let metaData = EateryMetadata(context: context)
44+
metaData.isFavorite = false
45+
return metaData
46+
}
47+
4248
let fetchRequest = NSFetchRequest<EateryMetadata>()
4349
fetchRequest.entity = EateryMetadata.entity()
4450
fetchRequest.predicate = NSPredicate(format: "eateryId == %d", eateryId)

Eatery Blue/UI/Carousel/CarouselView.swift

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ class CarouselView: UIView {
149149

150150
/// Creates and returns the table view data source
151151
private func makeDataSource() -> DataSource {
152-
let dataSource = DataSource(collectionView: collectionView) { [weak self] _, indexPath, row in
152+
return DataSource(collectionView: collectionView) { [weak self] _, indexPath, row in
153153
guard let self else { return UICollectionViewCell() }
154154

155155
switch row {
@@ -169,8 +169,6 @@ class CarouselView: UIView {
169169
return cell
170170
}
171171
}
172-
173-
return dataSource
174172
}
175173

176174
/// Updates the table view data source, and animates if desired
@@ -182,7 +180,7 @@ class CarouselView: UIView {
182180

183181
let eateryCells = eateries.map { Item.eatery(
184182
eatery: $0,
185-
favorited: coreDataStack.metadata(eateryId: $0.id).isFavorite
183+
favorited: coreDataStack.metadata(eateryId: $0.cornellId).isFavorite
186184
) }
187185

188186
if truncateAfter > -1 {

Eatery Blue/UI/CompareMenus/CompareMenusSheetViewController.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ class CompareMenusSheetViewController: SheetViewController {
190190
let coreDataStack = AppDelegate.shared.coreDataStack
191191

192192
nextShown = allEateries.filter { eatery in
193-
predicate.isSatisfied(by: eatery, metadata: coreDataStack.metadata(eateryId: eatery.id))
193+
predicate.isSatisfied(by: eatery, metadata: coreDataStack.metadata(eateryId: eatery.cornellId))
194194
}
195195

196196
if filter.selected {

Eatery Blue/UI/EateryCard/EateryLargeCardView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ class EateryLargeCardView: UICollectionViewCell {
137137

138138
UIView.performWithoutAnimation {
139139
let coreDataStack = AppDelegate.shared.coreDataStack
140-
let metadata = coreDataStack.metadata(eateryId: eatery.id)
140+
let metadata = coreDataStack.metadata(eateryId: eatery.cornellId)
141141
metadata.isFavorite.toggle()
142142
coreDataStack.save()
143143

Eatery Blue/UI/EateryCard/EateryMediumCardView.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ class EateryMediumCardView: UICollectionViewCell {
123123

124124
UIView.performWithoutAnimation {
125125
let coreDataStack = AppDelegate.shared.coreDataStack
126-
let metadata = coreDataStack.metadata(eateryId: eatery.id)
126+
let metadata = coreDataStack.metadata(eateryId: eatery.cornellId)
127127
metadata.isFavorite.toggle()
128128
coreDataStack.save()
129129

@@ -205,7 +205,7 @@ class EateryMediumCardView: UICollectionViewCell {
205205
let now = Date()
206206
switch status {
207207
case let .closingSoon(event):
208-
let minutesUntilClosed = Int(round(event.startTimestamp.timeIntervalSince(now) / 60))
208+
let minutesUntilClosed = Int(round(event.endTimestamp.timeIntervalSince(now) / 60))
209209
alertView.titleLabel.text = "Closing in \(minutesUntilClosed) min"
210210
alertView.isHidden = false
211211

Eatery Blue/UI/EateryCard/EaterySmallCardView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ class EaterySmallCardView: UICollectionViewCell {
108108

109109
UIView.performWithoutAnimation {
110110
let coreDataStack = AppDelegate.shared.coreDataStack
111-
let metadata = coreDataStack.metadata(eateryId: eatery.id)
111+
let metadata = coreDataStack.metadata(eateryId: eatery.cornellId)
112112
metadata.isFavorite.toggle()
113113
coreDataStack.save()
114114

Eatery Blue/UI/EateryScreen/EateryModelController.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ class EateryModelController: EateryViewController {
103103

104104
navigationView.favoriteButton.tap { [self] _ in
105105
let coreDataStack = AppDelegate.shared.coreDataStack
106-
let metadata = coreDataStack.metadata(eateryId: eatery.id)
106+
let metadata = coreDataStack.metadata(eateryId: eatery.cornellId)
107107
metadata.isFavorite.toggle()
108108
coreDataStack.save()
109109

@@ -191,7 +191,7 @@ class EateryModelController: EateryViewController {
191191
return
192192
}
193193

194-
let metadata = AppDelegate.shared.coreDataStack.metadata(eateryId: eatery.id)
194+
let metadata = AppDelegate.shared.coreDataStack.metadata(eateryId: eatery.cornellId)
195195
if metadata.isFavorite {
196196
navigationView.favoriteButton.content.image = UIImage(named: "FavoriteSelected")
197197
} else {

Eatery Blue/UI/Favoriting/FavoritesViewController.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ class FavoritesViewController: UIViewController {
156156
let allEateries = try await Networking.default.loadAllEatery()
157157

158158
let favoriteEateries = allEateries.filter { eatery in
159-
AppDelegate.shared.coreDataStack.metadata(eateryId: eatery.id).isFavorite
159+
AppDelegate.shared.coreDataStack.metadata(eateryId: eatery.cornellId).isFavorite
160160
}.sorted { lhs, rhs in
161161
lhs.name < rhs.name
162162
}

Eatery Blue/UI/HomeScreen/HomeViewController.swift

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ class HomeViewController: UIViewController {
180180
guard let self else { return }
181181

182182
let favoriteEateries = allEateries.filter {
183-
AppDelegate.shared.coreDataStack.metadata(eateryId: $0.id).isFavorite
183+
AppDelegate.shared.coreDataStack.metadata(eateryId: $0.cornellId).isFavorite
184184
}.sorted { lhs, rhs in
185185
if lhs.isOpen == rhs.isOpen {
186186
return lhs.name < rhs.name
@@ -289,7 +289,7 @@ class HomeViewController: UIViewController {
289289
favoritesCarousel.navigationController = navigationController
290290
favoritesCarousel.viewControllerToPush = favoritesViewController
291291
let favoriteEateries = allEateries.filter {
292-
AppDelegate.shared.coreDataStack.metadata(eateryId: $0.id).isFavorite
292+
AppDelegate.shared.coreDataStack.metadata(eateryId: $0.cornellId).isFavorite
293293
}.sorted { lhs, rhs in
294294
if lhs.isOpen == rhs.isOpen {
295295
return lhs.name < rhs.name
@@ -376,7 +376,7 @@ class HomeViewController: UIViewController {
376376

377377
/// Creates and returns the table view data source
378378
private func makeDataSource() -> DataSource {
379-
let dataSource = DataSource(collectionView: collectionView) { [weak self] tableview, indexPath, item in
379+
return DataSource(collectionView: collectionView) { [weak self] tableview, indexPath, item in
380380
guard let self else { return UICollectionViewCell() }
381381

382382
switch item {
@@ -467,8 +467,6 @@ class HomeViewController: UIViewController {
467467
}
468468
return cell
469469
}
470-
471-
return dataSource
472470
}
473471

474472
/// Updates the table view data source, and animates if desired
@@ -524,7 +522,7 @@ class HomeViewController: UIViewController {
524522
} else {
525523
let predicate = filter.predicate(userLocation: LocationManager.shared.userLocation, departureDate: Date())
526524
let filteredEateries = allEateries.filter {
527-
predicate.isSatisfied(by: $0, metadata: coreDataStack.metadata(eateryId: $0.id))
525+
predicate.isSatisfied(by: $0, metadata: coreDataStack.metadata(eateryId: $0.cornellId))
528526
}
529527

530528
currentEateries = filteredEateries
@@ -600,7 +598,7 @@ class HomeViewController: UIViewController {
600598

601599
// favorites
602600
let favoriteEateries = allEateries.filter {
603-
coreDataStack.metadata(eateryId: $0.id).isFavorite
601+
coreDataStack.metadata(eateryId: $0.cornellId).isFavorite
604602
}
605603

606604
let openEateries = currentEateries.filter(\.isOpen)

0 commit comments

Comments
 (0)