diff --git a/AutoCat.xcodeproj/xcuserdata/selim.xcuserdatad/xcschemes/xcschememanagement.plist b/AutoCat.xcodeproj/xcuserdata/selim.xcuserdatad/xcschemes/xcschememanagement.plist index 88fbda5..cc65585 100644 --- a/AutoCat.xcodeproj/xcuserdata/selim.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/AutoCat.xcodeproj/xcuserdata/selim.xcuserdatad/xcschemes/xcschememanagement.plist @@ -7,28 +7,28 @@ AutoCat.xcscheme_^#shared#^_ orderHint - 1 + 0 Eureka (Playground) 1.xcscheme isShown orderHint - 5 + 9 Eureka (Playground) 2.xcscheme isShown orderHint - 6 + 10 Eureka (Playground).xcscheme isShown orderHint - 4 + 3 GettingStarted (Playground) 1.xcscheme @@ -70,42 +70,42 @@ isShown orderHint - 10 + 5 Rx (Playground) 1.xcscheme isShown orderHint - 0 + 2 Rx (Playground) 2.xcscheme isShown orderHint - 3 + 4 Rx (Playground).xcscheme isShown orderHint - 2 + 1 SwiftDate (Playground) 1.xcscheme isShown orderHint - 8 + 7 SwiftDate (Playground) 2.xcscheme isShown orderHint - 9 + 8 SwiftDate (Playground) 3.xcscheme @@ -133,7 +133,7 @@ isShown orderHint - 7 + 6 diff --git a/AutoCat/Extensions/Dated.swift b/AutoCat/Extensions/Dated.swift index 36c333d..9d552cc 100644 --- a/AutoCat/Extensions/Dated.swift +++ b/AutoCat/Extensions/Dated.swift @@ -8,7 +8,12 @@ protocol Dated { extension Vehicle: Dated { var date: Date { - Date(timeIntervalSince1970: self.addedDate/1000) + if let lastEventDate = self.events.max(by: { $0.date < $1.date })?.date { + let ts = max(self.addedDate/1000, lastEventDate) + return Date(timeIntervalSince1970: ts) + } else { + return Date(timeIntervalSince1970: self.addedDate/1000) + } } } @@ -24,9 +29,10 @@ extension RandomAccessCollection where Element: Dated & IdentifiableType & Equat let monthStart = now.dateAtStartOf(.month) var sections: [TimeInterval: [Element]] = [:] for vehicle in self { - var key = vehicle.date.dateAtStartOf(.day).timeIntervalSince1970 - if vehicle.date.isBeforeDate(monthStart, orEqual: false, granularity: .day) { - key = vehicle.date.dateAtStartOf(.month).timeIntervalSince1970 + let date = vehicle.date + var key = date.dateAtStartOf(.day).timeIntervalSince1970 + if date.isBeforeDate(monthStart, orEqual: false, granularity: .day) { + key = date.dateAtStartOf(.month).timeIntervalSince1970 } if sections[key] == nil {