summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--ios/MullvadTypes/Duration.swift2
-rw-r--r--ios/MullvadVPN.xcodeproj/project.pbxproj50
-rw-r--r--ios/MullvadVPN/Coordinators/CustomLists/ListCustomListViewController.swift2
-rw-r--r--ios/MullvadVPN/Coordinators/Settings/APIAccess/Edit/EditAccessMethodViewController.swift4
-rw-r--r--ios/MullvadVPN/Coordinators/Settings/APIAccess/Edit/MethodSettings/MethodSettingsDataSourceConfiguration.swift12
-rw-r--r--ios/MullvadVPN/Extensions/NSDiffableDataSourceSnapshot+Reconfigure.swift21
-rw-r--r--ios/MullvadVPN/View controllers/Login/AccountTextField.swift6
-rw-r--r--ios/MullvadVPN/View controllers/RedeemVoucher/VoucherTextField.swift3
-rw-r--r--ios/MullvadVPN/View controllers/SelectLocation/LocationDiffableDataSourceProtocol.swift2
-rw-r--r--ios/PacketTunnelCore/Actor/Task+Duration.swift4
10 files changed, 40 insertions, 66 deletions
diff --git a/ios/MullvadTypes/Duration.swift b/ios/MullvadTypes/Duration.swift
index a2d30c5249..37bb3126a8 100644
--- a/ios/MullvadTypes/Duration.swift
+++ b/ios/MullvadTypes/Duration.swift
@@ -11,7 +11,7 @@ import Foundation
/// Custom implementation of iOS native `Duration` (available from iOS16). Meant as a
/// drop-in replacement until the app supports iOS16. Ideally this whole file can
/// then be deleted without affecting the rest of the code base.
-@available(iOS, introduced: 14.0, obsoleted: 16.0, message: "Replace with native Duration type.")
+@available(iOS, introduced: 15.0, obsoleted: 16.0, message: "Replace with native Duration type.")
public struct Duration {
private(set) var components: (seconds: Int64, attoseconds: Int64)
diff --git a/ios/MullvadVPN.xcodeproj/project.pbxproj b/ios/MullvadVPN.xcodeproj/project.pbxproj
index 7e4fcbbfc2..1441486f87 100644
--- a/ios/MullvadVPN.xcodeproj/project.pbxproj
+++ b/ios/MullvadVPN.xcodeproj/project.pbxproj
@@ -95,7 +95,6 @@
5827B0BB2B14A28300CCBBA1 /* MethodTestingStatusCellContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5827B0BA2B14A28300CCBBA1 /* MethodTestingStatusCellContentView.swift */; };
5827B0BD2B14AC9200CCBBA1 /* AccessViewModel+TestingStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5827B0BC2B14AC9200CCBBA1 /* AccessViewModel+TestingStatus.swift */; };
5827B0BF2B14B37D00CCBBA1 /* Publisher+PreviousValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5827B0BE2B14B37D00CCBBA1 /* Publisher+PreviousValue.swift */; };
- 5827B0C52B14D3E800CCBBA1 /* NSDiffableDataSourceSnapshot+Reconfigure.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5827B0C42B14D3E800CCBBA1 /* NSDiffableDataSourceSnapshot+Reconfigure.swift */; };
58293FAE2510CA58005D0BB5 /* ProblemReportViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58293FAC2510CA58005D0BB5 /* ProblemReportViewController.swift */; };
58293FB125124117005D0BB5 /* CustomTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58293FB025124117005D0BB5 /* CustomTextField.swift */; };
58293FB3251241B4005D0BB5 /* CustomTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58293FB2251241B3005D0BB5 /* CustomTextView.swift */; };
@@ -1460,7 +1459,6 @@
5827B0BA2B14A28300CCBBA1 /* MethodTestingStatusCellContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MethodTestingStatusCellContentView.swift; sourceTree = "<group>"; };
5827B0BC2B14AC9200CCBBA1 /* AccessViewModel+TestingStatus.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AccessViewModel+TestingStatus.swift"; sourceTree = "<group>"; };
5827B0BE2B14B37D00CCBBA1 /* Publisher+PreviousValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Publisher+PreviousValue.swift"; sourceTree = "<group>"; };
- 5827B0C42B14D3E800CCBBA1 /* NSDiffableDataSourceSnapshot+Reconfigure.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSDiffableDataSourceSnapshot+Reconfigure.swift"; sourceTree = "<group>"; };
58293FAC2510CA58005D0BB5 /* ProblemReportViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProblemReportViewController.swift; sourceTree = "<group>"; };
58293FB025124117005D0BB5 /* CustomTextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomTextField.swift; sourceTree = "<group>"; };
58293FB2251241B3005D0BB5 /* CustomTextView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomTextView.swift; sourceTree = "<group>"; };
@@ -2946,7 +2944,6 @@
7A0C0F622A979C4A0058EFCE /* Coordinator+Router.swift */,
5811DE4F239014550011EB53 /* NEVPNStatus+Debug.swift */,
58DFF7CF2B02560400F864E0 /* NSAttributedString+Extensions.swift */,
- 5827B0C42B14D3E800CCBBA1 /* NSDiffableDataSourceSnapshot+Reconfigure.swift */,
587D9675288989DB00CD8F1C /* NSLayoutConstraint+Helpers.swift */,
7AE90B672C2D726000375A60 /* NSParagraphStyle+Extensions.swift */,
5871FB9F254C26BF0051A0A4 /* NSRegularExpression+IPAddress.swift */,
@@ -5904,7 +5901,6 @@
58ACF64B26553C3F00ACE4B7 /* SettingsSwitchCell.swift in Sources */,
7AF9BE952A40461100DBFEDB /* RelayFilterView.swift in Sources */,
7A09C98129D99215000C2CAC /* String+FuzzyMatch.swift in Sources */,
- 5827B0C52B14D3E800CCBBA1 /* NSDiffableDataSourceSnapshot+Reconfigure.swift in Sources */,
58A8EE5E2976DB00009C0F8D /* StorePaymentManagerError+Display.swift in Sources */,
58A8EE5A2976BFBB009C0F8D /* SKError+Localized.swift in Sources */,
F02F41A12B9723AF00625A4F /* AddLocationsDataSource.swift in Sources */,
@@ -6800,7 +6796,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 14.2;
+ IPHONEOS_DEPLOYMENT_TARGET = 15.0;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
@@ -6859,7 +6855,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 14.2;
+ IPHONEOS_DEPLOYMENT_TARGET = 15.0;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
SDKROOT = iphoneos;
@@ -7337,7 +7333,7 @@
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = CKG9MXH72F;
GENERATE_INFOPLIST_FILE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 14.2;
+ IPHONEOS_DEPLOYMENT_TARGET = 15.0;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = net.mullvad.MullvadVPN.RoutingTests;
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -7362,7 +7358,7 @@
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = CKG9MXH72F;
GENERATE_INFOPLIST_FILE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 14.2;
+ IPHONEOS_DEPLOYMENT_TARGET = 15.0;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = net.mullvad.MullvadVPN.RoutingTests;
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -7398,7 +7394,7 @@
GENERATE_INFOPLIST_FILE = YES;
HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/mullvad-api/include";
INFOPLIST_FILE = MullvadVPNUITests/Info.plist;
- IPHONEOS_DEPLOYMENT_TARGET = 14.2;
+ IPHONEOS_DEPLOYMENT_TARGET = 15.0;
"LIBRARY_SEARCH_PATHS[sdk=iphoneos*][arch=arm64]" = "$(PROJECT_DIR)/../target/aarch64-apple-ios/debug";
"LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*][arch=arm64]" = "$(PROJECT_DIR)/../target/aarch64-apple-ios-sim/debug";
"LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*][arch=x86_64]" = "$(PROJECT_DIR)/../target/x86_64-apple-ios/debug";
@@ -7432,7 +7428,7 @@
GENERATE_INFOPLIST_FILE = YES;
HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/mullvad-api/include";
INFOPLIST_FILE = MullvadVPNUITests/Info.plist;
- IPHONEOS_DEPLOYMENT_TARGET = 14.2;
+ IPHONEOS_DEPLOYMENT_TARGET = 15.0;
"LIBRARY_SEARCH_PATHS[sdk=iphoneos*][arch=arm64]" = "$(PROJECT_DIR)/../target/aarch64-apple-ios/release";
"LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*][arch=arm64]" = "$(PROJECT_DIR)/../target/aarch64-apple-ios-sim/release";
"LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*][arch=x86_64]" = "$(PROJECT_DIR)/../target/x86_64-apple-ios/release";
@@ -7502,7 +7498,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 14.2;
+ IPHONEOS_DEPLOYMENT_TARGET = 15.0;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
@@ -7932,7 +7928,7 @@
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = CKG9MXH72F;
GENERATE_INFOPLIST_FILE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 14.2;
+ IPHONEOS_DEPLOYMENT_TARGET = 15.0;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = net.mullvad.MullvadVPN.RoutingTests;
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -7957,6 +7953,7 @@
GENERATE_INFOPLIST_FILE = YES;
HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/../mullvad-api/include";
INFOPLIST_FILE = MullvadVPNUITests/Info.plist;
+ IPHONEOS_DEPLOYMENT_TARGET = 15.0;
"LIBRARY_SEARCH_PATHS[sdk=iphoneos*][arch=arm64]" = "$(PROJECT_DIR)/../target/aarch64-apple-ios/debug";
"LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*][arch=arm64]" = "$(PROJECT_DIR)/../target/aarch64-apple-ios-sim/debug";
"LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*][arch=x86_64]" = "$(PROJECT_DIR)/../target/x86_64-apple-ios/debug";
@@ -7981,6 +7978,7 @@
GENERATE_INFOPLIST_FILE = YES;
HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/../mullvad-api/include";
INFOPLIST_FILE = MullvadVPNUITests/Info.plist;
+ IPHONEOS_DEPLOYMENT_TARGET = 15.0;
"LIBRARY_SEARCH_PATHS[sdk=iphoneos*][arch=arm64]" = "$(PROJECT_DIR)/../target/aarch64-apple-ios/release";
"LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*][arch=arm64]" = "$(PROJECT_DIR)/../target/aarch64-apple-ios-sim/release";
"LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*][arch=x86_64]" = "$(PROJECT_DIR)/../target/x86_64-apple-ios/release";
@@ -8018,7 +8016,7 @@
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2024 Mullvad VPN AB. All rights reserved.";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
- IPHONEOS_DEPLOYMENT_TARGET = 14.2;
+ IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
@@ -8070,7 +8068,7 @@
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2024 Mullvad VPN AB. All rights reserved.";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
- IPHONEOS_DEPLOYMENT_TARGET = 14.2;
+ IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
@@ -8122,7 +8120,7 @@
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2024 Mullvad VPN AB. All rights reserved.";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
- IPHONEOS_DEPLOYMENT_TARGET = 14.2;
+ IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
@@ -8172,7 +8170,7 @@
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2024 Mullvad VPN AB. All rights reserved.";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
- IPHONEOS_DEPLOYMENT_TARGET = 14.2;
+ IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
@@ -8211,7 +8209,7 @@
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GCC_C_LANGUAGE_STANDARD = gnu17;
GENERATE_INFOPLIST_FILE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 14.2;
+ IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = net.mullvad.MullvadRustRuntimeTests;
@@ -8236,7 +8234,7 @@
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GCC_C_LANGUAGE_STANDARD = gnu17;
GENERATE_INFOPLIST_FILE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 14.2;
+ IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = net.mullvad.MullvadRustRuntimeTests;
@@ -8260,7 +8258,7 @@
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GCC_C_LANGUAGE_STANDARD = gnu17;
GENERATE_INFOPLIST_FILE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 14.2;
+ IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = net.mullvad.MullvadRustRuntimeTests;
@@ -8284,7 +8282,7 @@
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GCC_C_LANGUAGE_STANDARD = gnu17;
GENERATE_INFOPLIST_FILE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 14.2;
+ IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = net.mullvad.MullvadRustRuntimeTests;
@@ -8341,7 +8339,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 14.2;
+ IPHONEOS_DEPLOYMENT_TARGET = 15.0;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
SDKROOT = iphoneos;
@@ -8763,7 +8761,7 @@
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = CKG9MXH72F;
GENERATE_INFOPLIST_FILE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 14.2;
+ IPHONEOS_DEPLOYMENT_TARGET = 15.0;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = net.mullvad.MullvadVPN.RoutingTests;
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -8798,7 +8796,7 @@
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2024 Mullvad VPN AB. All rights reserved.";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
- IPHONEOS_DEPLOYMENT_TARGET = 14.2;
+ IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
@@ -8846,7 +8844,7 @@
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2024 Mullvad VPN AB. All rights reserved.";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
- IPHONEOS_DEPLOYMENT_TARGET = 14.2;
+ IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
@@ -8894,7 +8892,7 @@
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2024 Mullvad VPN AB. All rights reserved.";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
- IPHONEOS_DEPLOYMENT_TARGET = 14.2;
+ IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
@@ -8943,7 +8941,7 @@
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2024 Mullvad VPN AB. All rights reserved.";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
- IPHONEOS_DEPLOYMENT_TARGET = 14.2;
+ IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
diff --git a/ios/MullvadVPN/Coordinators/CustomLists/ListCustomListViewController.swift b/ios/MullvadVPN/Coordinators/CustomLists/ListCustomListViewController.swift
index 3295124592..75a64e2b3c 100644
--- a/ios/MullvadVPN/Coordinators/CustomLists/ListCustomListViewController.swift
+++ b/ios/MullvadVPN/Coordinators/CustomLists/ListCustomListViewController.swift
@@ -68,7 +68,7 @@ class ListCustomListViewController: UIViewController {
if reloadExisting {
for item in fetchedItems {
- snapshot.reconfigureOrReloadItems([ItemIdentifier(id: item.id)])
+ snapshot.reconfigureItems([ItemIdentifier(id: item.id)])
}
}
diff --git a/ios/MullvadVPN/Coordinators/Settings/APIAccess/Edit/EditAccessMethodViewController.swift b/ios/MullvadVPN/Coordinators/Settings/APIAccess/Edit/EditAccessMethodViewController.swift
index 710ea4a403..f5158ebed5 100644
--- a/ios/MullvadVPN/Coordinators/Settings/APIAccess/Edit/EditAccessMethodViewController.swift
+++ b/ios/MullvadVPN/Coordinators/Settings/APIAccess/Edit/EditAccessMethodViewController.swift
@@ -282,7 +282,7 @@ class EditAccessMethodViewController: UITableViewController {
// Reconfigure the test button on status changes.
if let previousValue, previousValue.testingStatus != newValue.testingStatus {
- snapshot.reconfigureOrReloadItems([.testMethod])
+ snapshot.reconfigureItems([.testMethod])
}
snapshot.appendSections([.testingStatus])
@@ -293,7 +293,7 @@ class EditAccessMethodViewController: UITableViewController {
snapshot.appendItems([.testingStatus], toSection: .testingStatus)
if let previousValue, previousValue.testingStatus != newValue.testingStatus {
- snapshot.reconfigureOrReloadItems([.testingStatus])
+ snapshot.reconfigureItems([.testingStatus])
}
// Show cancel test button below test status.
diff --git a/ios/MullvadVPN/Coordinators/Settings/APIAccess/Edit/MethodSettings/MethodSettingsDataSourceConfiguration.swift b/ios/MullvadVPN/Coordinators/Settings/APIAccess/Edit/MethodSettings/MethodSettingsDataSourceConfiguration.swift
index c026f607e8..c0f1e750d0 100644
--- a/ios/MullvadVPN/Coordinators/Settings/APIAccess/Edit/MethodSettings/MethodSettingsDataSourceConfiguration.swift
+++ b/ios/MullvadVPN/Coordinators/Settings/APIAccess/Edit/MethodSettings/MethodSettingsDataSourceConfiguration.swift
@@ -40,7 +40,7 @@ class MethodSettingsDataSourceConfiguration {
snapshot.appendItems([.protocol], toSection: .protocol)
// Reconfigure protocol cell on change.
if let previousValue, previousValue.method != newValue.method {
- snapshot.reconfigureOrReloadItems([.protocol])
+ snapshot.reconfigureItems([.protocol])
}
// Add proxy configuration section if the access method is configurable.
@@ -56,12 +56,12 @@ class MethodSettingsDataSourceConfiguration {
snapshot.appendItems(MethodSettingsItemIdentifier.allShadowsocksItems, toSection: .proxyConfiguration)
// Reconfigure cipher cell on change.
if let previousValue, previousValue.shadowsocks.cipher != newValue.shadowsocks.cipher {
- snapshot.reconfigureOrReloadItems([.proxyConfiguration(.shadowsocks(.cipher))])
+ snapshot.reconfigureItems([.proxyConfiguration(.shadowsocks(.cipher))])
}
// Reconfigure the proxy configuration cell if validation error changed.
if previousValidationError != newValidationError {
- snapshot.reconfigureOrReloadItems(MethodSettingsItemIdentifier.allShadowsocksItems)
+ snapshot.reconfigureItems(MethodSettingsItemIdentifier.allShadowsocksItems)
}
case .socks5:
snapshot.appendItems(
@@ -71,7 +71,7 @@ class MethodSettingsDataSourceConfiguration {
// Reconfigure the proxy configuration cell if validation error changed.
if previousValidationError != newValidationError {
- snapshot.reconfigureOrReloadItems(
+ snapshot.reconfigureItems(
MethodSettingsItemIdentifier.allSocksItems(authenticate: newValue.socks.authenticate)
)
}
@@ -94,7 +94,7 @@ class MethodSettingsDataSourceConfiguration {
}
if let previousValue, previousValue.testingStatus != newValue.testingStatus {
- snapshot.reconfigureOrReloadItems(snapshot.itemIdentifiers)
+ snapshot.reconfigureItems(snapshot.itemIdentifiers)
}
dataSource?.apply(snapshot, animatingDifferences: animated, completion: completion)
@@ -114,7 +114,7 @@ class MethodSettingsDataSourceConfiguration {
MethodSettingsItemIdentifier.allSocksItems(authenticate: viewModel.socks.authenticate)
}
- snapshot.reconfigureOrReloadItems(itemsToReload + [.validationError])
+ snapshot.reconfigureItems(itemsToReload + [.validationError])
dataSource?.apply(snapshot, animatingDifferences: false)
}
}
diff --git a/ios/MullvadVPN/Extensions/NSDiffableDataSourceSnapshot+Reconfigure.swift b/ios/MullvadVPN/Extensions/NSDiffableDataSourceSnapshot+Reconfigure.swift
deleted file mode 100644
index bd0c42f28f..0000000000
--- a/ios/MullvadVPN/Extensions/NSDiffableDataSourceSnapshot+Reconfigure.swift
+++ /dev/null
@@ -1,21 +0,0 @@
-//
-// NSDiffableDataSourceSnapshot+Reconfigure.swift
-// MullvadVPN
-//
-// Created by pronebird on 27/11/2023.
-// Copyright © 2023 Mullvad VPN AB. All rights reserved.
-//
-
-import UIKit
-
-extension NSDiffableDataSourceSnapshot {
- /// Reconfigures cell on iOS 15 or newer, with fallback to reloading cells on earlier iOS.
- /// - Parameter itemIdentifiers: item identifiers to reconfigure when possible, otherwise reload.
- mutating func reconfigureOrReloadItems(_ itemIdentifiers: [ItemIdentifierType]) {
- if #available(iOS 15, *) {
- reconfigureItems(itemIdentifiers)
- } else {
- reloadItems(itemIdentifiers)
- }
- }
-}
diff --git a/ios/MullvadVPN/View controllers/Login/AccountTextField.swift b/ios/MullvadVPN/View controllers/Login/AccountTextField.swift
index 133c1b6b2c..e8b101a2c3 100644
--- a/ios/MullvadVPN/View controllers/Login/AccountTextField.swift
+++ b/ios/MullvadVPN/View controllers/Login/AccountTextField.swift
@@ -84,10 +84,8 @@ class AccountTextField: CustomTextField, UITextFieldDelegate {
}
override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
- if #available(iOS 15.0, *) {
- if action == #selector(captureTextFromCamera(_:)) {
- return false
- }
+ if action == #selector(captureTextFromCamera(_:)) {
+ return false
}
return super.canPerformAction(action, withSender: sender)
}
diff --git a/ios/MullvadVPN/View controllers/RedeemVoucher/VoucherTextField.swift b/ios/MullvadVPN/View controllers/RedeemVoucher/VoucherTextField.swift
index 1475fc9397..fad518a80c 100644
--- a/ios/MullvadVPN/View controllers/RedeemVoucher/VoucherTextField.swift
+++ b/ios/MullvadVPN/View controllers/RedeemVoucher/VoucherTextField.swift
@@ -43,8 +43,7 @@ class VoucherTextField: CustomTextField, UITextFieldDelegate {
}
override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
- if #available(iOS 15.0, *),
- action == #selector(captureTextFromCamera(_:)) { return false }
+ if action == #selector(captureTextFromCamera(_:)) { return false }
return super.canPerformAction(action, withSender: sender)
}
diff --git a/ios/MullvadVPN/View controllers/SelectLocation/LocationDiffableDataSourceProtocol.swift b/ios/MullvadVPN/View controllers/SelectLocation/LocationDiffableDataSourceProtocol.swift
index 0450be0a81..0dce2859e0 100644
--- a/ios/MullvadVPN/View controllers/SelectLocation/LocationDiffableDataSourceProtocol.swift
+++ b/ios/MullvadVPN/View controllers/SelectLocation/LocationDiffableDataSourceProtocol.swift
@@ -77,7 +77,7 @@ extension LocationDiffableDataSourceProtocol {
snapshot.appendItems(items, toSection: section)
if reloadExisting {
- snapshot.reconfigureOrReloadItems(items)
+ snapshot.reconfigureItems(items)
}
}
diff --git a/ios/PacketTunnelCore/Actor/Task+Duration.swift b/ios/PacketTunnelCore/Actor/Task+Duration.swift
index fdbc6be038..46e90bd196 100644
--- a/ios/PacketTunnelCore/Actor/Task+Duration.swift
+++ b/ios/PacketTunnelCore/Actor/Task+Duration.swift
@@ -19,7 +19,7 @@ extension Task where Success == Never, Failure == Never {
- Parameter duration: duration that determines how long the task should be suspended.
*/
- @available(iOS, introduced: 14.0, obsoleted: 16.0, message: "Replace with Task.sleep(for:tolerance:clock:).")
+ @available(iOS, introduced: 15.0, obsoleted: 16.0, message: "Replace with Task.sleep(for:tolerance:clock:).")
static func sleep(duration: Duration) async throws {
let millis = UInt64(max(0, duration.milliseconds))
let nanos = millis.saturatingMultiplication(1_000_000)
@@ -34,7 +34,7 @@ extension Task where Success == Never, Failure == Never {
- Parameter duration: duration that determines how long the task should be suspended.
*/
- @available(iOS, introduced: 14.0, obsoleted: 16.0, message: "Replace with Task.sleep(for:tolerance:clock:).")
+ @available(iOS, introduced: 15.0, obsoleted: 16.0, message: "Replace with Task.sleep(for:tolerance:clock:).")
static func sleepUsingContinuousClock(for duration: Duration) async throws {
let timer = DispatchSource.makeTimerSource()