From 0ff1e19849f7df9a8899557c1780c1632b83d20f Mon Sep 17 00:00:00 2001 From: Stuart Breckenridge Date: Fri, 11 Feb 2022 11:35:25 +0800 Subject: [PATCH] Improves performance of notifications view --- iOS/Settings/NotificationsViewController.swift | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/iOS/Settings/NotificationsViewController.swift b/iOS/Settings/NotificationsViewController.swift index 8016a87cb..1c4d78524 100644 --- a/iOS/Settings/NotificationsViewController.swift +++ b/iOS/Settings/NotificationsViewController.swift @@ -77,7 +77,7 @@ class NotificationsViewController: UIViewController { for path in visibleIndexPaths { if let cell = notificationsTableView.cellForRow(at: path) as? NotificationsTableViewCell { if cell.feed! == webFeed { - notificationsTableView.reconfigureRows(at: [path]) + cell.configure(webFeed) return } } @@ -87,8 +87,20 @@ class NotificationsViewController: UIViewController { @objc private func reloadVisibleCells(_ notification: Notification) { - if let visibleIndexPaths = notificationsTableView.indexPathsForVisibleRows { - notificationsTableView.reconfigureRows(at: visibleIndexPaths) + guard let faviconURLString = notification.userInfo?["faviconURL"] as? String, + let faviconHost = URL(string: faviconURLString)?.host else { + return + } + + for cell in notificationsTableView.visibleCells { + if let notificationCell = cell as? NotificationsTableViewCell { + if let feedURLHost = URL(string: notificationCell.feed!.url)?.host { + if faviconHost == feedURLHost { + notificationCell.configure(notificationCell.feed!) + return + } + } + } } }