diff options
| author | Andrew Bulhak <andrew.bulhak@mullvad.net> | 2024-05-28 14:10:12 +0200 |
|---|---|---|
| committer | Bug Magnet <marco.nikic@mullvad.net> | 2024-05-29 13:49:14 +0200 |
| commit | c4d789afa27f4e3ed6517e3cab1eb066c4575123 (patch) | |
| tree | 1459c84e8a0742e1033510f40c6f37b3597bb879 | |
| parent | 1b2be5be0e3570f79e1bc14a78af734eb1d8157f (diff) | |
| download | mullvadvpn-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.swift | 13 |
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 |
