Sort vehicles by update date

This commit is contained in:
Selim Mustafaev 2020-09-27 19:01:51 +03:00
parent 7e0608b52e
commit dde3c91502
2 changed files with 21 additions and 15 deletions

View File

@ -7,28 +7,28 @@
<key>AutoCat.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>1</integer>
<integer>0</integer>
</dict>
<key>Eureka (Playground) 1.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>5</integer>
<integer>9</integer>
</dict>
<key>Eureka (Playground) 2.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>6</integer>
<integer>10</integer>
</dict>
<key>Eureka (Playground).xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>4</integer>
<integer>3</integer>
</dict>
<key>GettingStarted (Playground) 1.xcscheme</key>
<dict>
@ -70,42 +70,42 @@
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>10</integer>
<integer>5</integer>
</dict>
<key>Rx (Playground) 1.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>0</integer>
<integer>2</integer>
</dict>
<key>Rx (Playground) 2.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>3</integer>
<integer>4</integer>
</dict>
<key>Rx (Playground).xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>2</integer>
<integer>1</integer>
</dict>
<key>SwiftDate (Playground) 1.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>8</integer>
<integer>7</integer>
</dict>
<key>SwiftDate (Playground) 2.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>9</integer>
<integer>8</integer>
</dict>
<key>SwiftDate (Playground) 3.xcscheme</key>
<dict>
@ -133,7 +133,7 @@
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>7</integer>
<integer>6</integer>
</dict>
</dict>
</dict>

View File

@ -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 {