summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAndrew Bulhak <andrew.bulhak@mullvad.net>2024-05-28 14:10:12 +0200
committerBug Magnet <marco.nikic@mullvad.net>2024-05-29 13:49:14 +0200
commitc4d789afa27f4e3ed6517e3cab1eb066c4575123 (patch)
tree1459c84e8a0742e1033510f40c6f37b3597bb879
parent1b2be5be0e3570f79e1bc14a78af734eb1d8157f (diff)
downloadmullvadvpn-c4d789afa27f4e3ed6517e3cab1eb066c4575123.tar.xz
mullvadvpn-c4d789afa27f4e3ed6517e3cab1eb066c4575123.zip
Replace ID search with reloading items only if not deleted
-rw-r--r--ios/MullvadVPN/Coordinators/Settings/APIAccess/List/ListAccessMethodViewController.swift13
1 files changed, 7 insertions, 6 deletions
diff --git a/ios/MullvadVPN/Coordinators/Settings/APIAccess/List/ListAccessMethodViewController.swift b/ios/MullvadVPN/Coordinators/Settings/APIAccess/List/ListAccessMethodViewController.swift
index f85807d67a..474baea1f7 100644
--- a/ios/MullvadVPN/Coordinators/Settings/APIAccess/List/ListAccessMethodViewController.swift
+++ b/ios/MullvadVPN/Coordinators/Settings/APIAccess/List/ListAccessMethodViewController.swift
@@ -158,6 +158,7 @@ class ListAccessMethodViewController: UIViewController, UITableViewDelegate {
}
private func updateDataSource(animated: Bool = true) {
+ guard let dataSource else { return }
fetchedItems = interactor.fetch()
var snapshot = NSDiffableDataSourceSnapshot<ListAccessMethodSectionIdentifier, ListAccessMethodItemIdentifier>()
@@ -168,11 +169,13 @@ class ListAccessMethodViewController: UIViewController, UITableViewDelegate {
}
snapshot.appendItems(itemIdentifiers, toSection: .primary)
- for item in fetchedItems {
- snapshot.reloadItems([ListAccessMethodItemIdentifier(id: item.id)])
+ if dataSource.snapshot().numberOfItems == fetchedItems.count {
+ for item in fetchedItems {
+ snapshot.reloadItems([ListAccessMethodItemIdentifier(id: item.id)])
+ }
}
- dataSource?.apply(snapshot, animatingDifferences: animated)
+ dataSource.apply(snapshot, animatingDifferences: animated)
}
private func dequeueCell(
@@ -180,9 +183,7 @@ class ListAccessMethodViewController: UIViewController, UITableViewDelegate {
itemIdentifier: ListAccessMethodItemIdentifier
) -> UITableViewCell {
let cell = tableView.dequeueReusableView(withIdentifier: CellReuseIdentifier.default, for: indexPath)
- guard let item = fetchedItems.first(where: { $0.id == itemIdentifier.id }) else {
- fatalError("Unable to find item in fetchedItems")
- }
+ let item = fetchedItems[indexPath.row]
var contentConfiguration = ListCellContentConfiguration()
contentConfiguration.text = item.name