From aaddae1ecb43dd558ee5e49ee506522f32125abf Mon Sep 17 00:00:00 2001 From: Shadowfacts Date: Tue, 30 Oct 2018 22:07:54 -0400 Subject: [PATCH] Fix bugs with reblogged statuses Including: Attachments not showing up, 3d touch peek/pop not working, favorite/reblog not working --- Tusker/MastodonCache.swift | 1 + Tusker/Views/Status/StatusTableViewCell.swift | 22 ++++++++++--------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/Tusker/MastodonCache.swift b/Tusker/MastodonCache.swift index 1567e7e7..5a1ba31a 100644 --- a/Tusker/MastodonCache.swift +++ b/Tusker/MastodonCache.swift @@ -27,6 +27,7 @@ class MastodonCache { statuses[id] = status add(account: status.account) if let reblog = status.reblog { + add(status: reblog) add(account: reblog.account) } } diff --git a/Tusker/Views/Status/StatusTableViewCell.swift b/Tusker/Views/Status/StatusTableViewCell.swift index 86e36193..6b74eaad 100644 --- a/Tusker/Views/Status/StatusTableViewCell.swift +++ b/Tusker/Views/Status/StatusTableViewCell.swift @@ -32,6 +32,7 @@ class StatusTableViewCell: UITableViewCell, PreferencesAdaptive { var statusID: String! var accountID: String! + var reblogStatusID: String? var rebloggerID: String? var favorited: Bool = false { @@ -74,21 +75,22 @@ class StatusTableViewCell: UITableViewCell, PreferencesAdaptive { } func updateUI(for statusID: String) { - self.statusID = statusID - guard let status = MastodonCache.status(for: statusID) else { fatalError("Missing cached status \(statusID)") } + guard var status = MastodonCache.status(for: statusID) else { fatalError("Missing cached status \(statusID)") } - let account: Account - if let reblog = status.reblog { - account = reblog.account + if let reblogID = status.reblog?.id, + let reblog = MastodonCache.status(for: reblogID) { + reblogStatusID = statusID rebloggerID = status.account.id + status = reblog reblogLabel.isHidden = false } else { - account = status.account - reblogLabel.isHidden = true + reblogStatusID = nil rebloggerID = nil + reblogLabel.isHidden = true } + let account = status.account self.accountID = account.id - + self.statusID = status.id updateUIForPreferences() @@ -292,7 +294,7 @@ extension StatusTableViewCell: TableViewSwipeActionProvider { } completion(true) MastodonCache.add(status: status) - self.updateUI(for: self.statusID) + self.updateUI(for: self.reblogStatusID ?? self.statusID) } }) } @@ -320,7 +322,7 @@ extension StatusTableViewCell: TableViewSwipeActionProvider { } completion(true) MastodonCache.add(status: status) - self.updateUI(for: self.statusID) + self.updateUI(for: self.reblogStatusID ?? self.statusID) } }) }