diff options
| author | Andrew Bulhak <andrew.bulhak@mullvad.net> | 2025-05-13 16:24:47 +0200 |
|---|---|---|
| committer | Bug Magnet <marco.nikic@mullvad.net> | 2025-05-22 14:35:59 +0200 |
| commit | d86ee5ff389b8a8ecb27c1d98c3bb146f8c8f70f (patch) | |
| tree | 0f64bd42beddaf0f10ac37efc181633e680bd98d /ios | |
| parent | c3f60de4179ea77718931faa07bf18479901f965 (diff) | |
| download | mullvadvpn-d86ee5ff389b8a8ecb27c1d98c3bb146f8c8f70f.tar.xz mullvadvpn-d86ee5ff389b8a8ecb27c1d98c3bb146f8c8f70f.zip | |
Modify Filters view to start in expanded state; also, some refactoring
Diffstat (limited to 'ios')
| -rw-r--r-- | ios/MullvadVPN/View controllers/RelayFilter/RelayFilterDataSource.swift | 17 | ||||
| -rw-r--r-- | ios/MullvadVPN/View controllers/RelayFilter/RelayFilterDataSourceItem.swift | 6 |
2 files changed, 20 insertions, 3 deletions
diff --git a/ios/MullvadVPN/View controllers/RelayFilter/RelayFilterDataSource.swift b/ios/MullvadVPN/View controllers/RelayFilter/RelayFilterDataSource.swift index a6aa13478c..12b7805ee2 100644 --- a/ios/MullvadVPN/View controllers/RelayFilter/RelayFilterDataSource.swift +++ b/ios/MullvadVPN/View controllers/RelayFilter/RelayFilterDataSource.swift @@ -34,6 +34,7 @@ final class RelayFilterDataSource: UITableViewDiffableDataSource< createDataSnapshot() tableView.delegate = self setupBindings() + updateSelection(from: viewModel.relayFilter) } private func registerCells() { @@ -59,9 +60,19 @@ final class RelayFilterDataSource: UITableViewDiffableDataSource< .store(in: &disposeBag) } + private func availableProviders(givenOwnership ownership: RelayFilter.Ownership) -> [RelayFilterDataSourceItem] { + [RelayFilterDataSourceItem.allProviders] + viewModel + .availableProviders(for: ownership) + } + private func createDataSnapshot() { var snapshot = NSDiffableDataSourceSnapshot<Section, RelayFilterDataSourceItem>() snapshot.appendSections(Section.allCases) + snapshot.appendItems(RelayFilterDataSourceItem.ownerships, toSection: .ownership) + snapshot.appendItems( + availableProviders(givenOwnership: viewModel.relayFilter.ownership), + toSection: .providers + ) apply(snapshot, animatingDifferences: false) } @@ -79,7 +90,7 @@ final class RelayFilterDataSource: UITableViewDiffableDataSource< case .providers: if !oldSnapshot.itemIdentifiers(inSection: section).isEmpty { newSnapshot.appendItems( - [RelayFilterDataSourceItem.allProviders] + viewModel.availableProviders(for: filter.ownership), + availableProviders(givenOwnership: filter.ownership), toSection: .providers ) applySnapshot(newSnapshot, animated: false) @@ -161,8 +172,7 @@ final class RelayFilterDataSource: UITableViewDiffableDataSource< newSnapshot.deleteItems(items) } else { newSnapshot.appendItems( - [RelayFilterDataSourceItem.allProviders] + viewModel - .availableProviders(for: viewModel.relayFilter.ownership), + availableProviders(givenOwnership: viewModel.relayFilter.ownership), toSection: .providers ) } @@ -256,6 +266,7 @@ extension RelayFilterDataSource: UITableViewDelegate { title = "Providers" } + view.isExpanded = true view.setAccessibilityIdentifier(accessibilityIdentifier) view.titleLabel.text = NSLocalizedString( "RELAY_FILTER_HEADER_LABEL", diff --git a/ios/MullvadVPN/View controllers/RelayFilter/RelayFilterDataSourceItem.swift b/ios/MullvadVPN/View controllers/RelayFilter/RelayFilterDataSourceItem.swift index 6a74626b5e..8ffd7fd498 100644 --- a/ios/MullvadVPN/View controllers/RelayFilter/RelayFilterDataSourceItem.swift +++ b/ios/MullvadVPN/View controllers/RelayFilter/RelayFilterDataSourceItem.swift @@ -55,3 +55,9 @@ struct RelayFilterDataSourceItem: Hashable, Comparable { return nameComparison == .orderedAscending } } + +extension RelayFilterDataSourceItem.ItemType { + var isSpecificOwnership: Bool { + return self == .ownershipOwned || self == .ownershipRented + } +} |
