Maybe fix timeline discontinuities

See #174
This commit is contained in:
Shadowfacts 2022-09-15 20:54:28 -04:00
parent ff3681627b
commit 43b4976ed7
3 changed files with 21 additions and 21 deletions

View File

@ -112,12 +112,12 @@ class NotificationsTableViewController: DiffableTimelineLikeTableViewController<
case let .failure(error):
completion(.failure(.client(error)))
case let .success(notifications, _):
case let .success(notifications, pagination):
let groups = NotificationGroup.createGroups(notifications: notifications, only: self.groupTypes)
if !notifications.isEmpty {
self.newer = .after(id: notifications.first!.id, count: nil)
self.older = .before(id: notifications.last!.id, count: nil)
self.newer = pagination?.newer ?? .after(id: notifications.first!.id, count: nil)
self.older = pagination?.older ?? .before(id: notifications.last!.id, count: nil)
}
self.mastodonController.persistentContainer.addAll(notifications: notifications) {
@ -142,9 +142,9 @@ class NotificationsTableViewController: DiffableTimelineLikeTableViewController<
case let .failure(error):
completion(.failure(.client(error)))
case let .success(newNotifications, _):
case let .success(newNotifications, pagination):
if !newNotifications.isEmpty {
self.older = .before(id: newNotifications.last!.id, count: nil)
self.older = pagination?.older ?? .before(id: newNotifications.last!.id, count: nil)
}
let olderGroups = NotificationGroup.createGroups(notifications: newNotifications, only: self.groupTypes)
@ -173,13 +173,13 @@ class NotificationsTableViewController: DiffableTimelineLikeTableViewController<
case let .failure(error):
completion(.failure(.client(error)))
case let .success(newNotifications, _):
case let .success(newNotifications, pagination):
guard !newNotifications.isEmpty else {
completion(.failure(.allCaughtUp))
return
}
self.newer = .after(id: newNotifications.first!.id, count: nil)
self.newer = pagination?.newer ?? .after(id: newNotifications.first!.id, count: nil)
let newerGroups = NotificationGroup.createGroups(notifications: newNotifications, only: self.groupTypes)

View File

@ -88,10 +88,10 @@ class ProfileStatusesViewController: DiffableTimelineLikeTableViewController<Pro
case let .failure(error):
completion(.failure(.client(error)))
case let .success(statuses, _):
case let .success(statuses, pagination):
if !statuses.isEmpty {
self.newer = .after(id: statuses.first!.id, count: nil)
self.older = .before(id: statuses.last!.id, count: nil)
self.newer = pagination?.newer ?? .after(id: statuses.first!.id, count: nil)
self.older = pagination?.older ?? .before(id: statuses.last!.id, count: nil)
}
self.mastodonController.persistentContainer.addAll(statuses: statuses) {
@ -144,13 +144,13 @@ class ProfileStatusesViewController: DiffableTimelineLikeTableViewController<Pro
case let .failure(error):
completion(.failure(.client(error)))
case let .success(statuses, _):
case let .success(statuses, pagination):
guard !statuses.isEmpty else {
completion(.failure(.noOlder))
return
}
self.older = .before(id: statuses.last!.id, count: nil)
self.older = pagination?.older ?? .before(id: statuses.last!.id, count: nil)
self.mastodonController.persistentContainer.addAll(statuses: statuses) {
var snapshot = currentSnapshot()
@ -173,13 +173,13 @@ class ProfileStatusesViewController: DiffableTimelineLikeTableViewController<Pro
case let .failure(error):
completion(.failure(.client(error)))
case let .success(statuses, _):
case let .success(statuses, pagination):
guard !statuses.isEmpty else {
completion(.failure(.allCaughtUp))
return
}
self.newer = .after(id: statuses.first!.id, count: nil)
self.newer = pagination?.newer ?? .after(id: statuses.first!.id, count: nil)
self.mastodonController.persistentContainer.addAll(statuses: statuses) {
var snapshot = currentSnapshot()

View File

@ -142,10 +142,10 @@ class TimelineTableViewController: DiffableTimelineLikeTableViewController<Timel
case let .failure(error):
completion(.failure(.client(error)))
case let .success(statuses, _):
case let .success(statuses, pagination):
if !statuses.isEmpty {
self.newer = .after(id: statuses.first!.id, count: nil)
self.older = .before(id: statuses.last!.id, count: nil)
self.newer = pagination?.newer ?? .after(id: statuses.first!.id, count: nil)
self.older = pagination?.older ?? .before(id: statuses.last!.id, count: nil)
}
self.mastodonController.persistentContainer.addAll(statuses: statuses) {
@ -189,9 +189,9 @@ class TimelineTableViewController: DiffableTimelineLikeTableViewController<Timel
case let .failure(error):
completion(.failure(.client(error)))
case let .success(statuses, _):
case let .success(statuses, pagination):
if !statuses.isEmpty {
self.older = .before(id: statuses.last!.id, count: nil)
self.older = pagination?.older ?? .before(id: statuses.last!.id, count: nil)
}
self.mastodonController.persistentContainer.addAll(statuses: statuses) {
@ -216,13 +216,13 @@ class TimelineTableViewController: DiffableTimelineLikeTableViewController<Timel
case let .failure(error):
completion(.failure(.client(error)))
case let .success(statuses, _):
case let .success(statuses, pagination):
guard !statuses.isEmpty else {
completion(.failure(.allCaughtUp))
return
}
self.newer = .after(id: statuses.first!.id, count: nil)
self.newer = pagination?.newer ?? .after(id: statuses.first!.id, count: nil)
self.mastodonController.persistentContainer.addAll(statuses: statuses) {
var snapshot = currentSnapshot()