summaryrefslogtreecommitdiffhomepage
path: root/ios/MullvadVPN
diff options
context:
space:
mode:
authormojganii <mojgan.jelodar@codic.se>2024-09-25 14:33:52 +0200
committermojganii <mojgan.jelodar@codic.se>2024-09-25 14:34:31 +0200
commit56b3d6e5f43bbde09386b79fc176a44b856d7fb6 (patch)
tree7bb3e89e9582f72f7bd3eda28e1fdb5e5df478e4 /ios/MullvadVPN
parent41b7988157d4369e11230e9c7db8b11c41da2dc0 (diff)
downloadmullvadvpn-56b3d6e5f43bbde09386b79fc176a44b856d7fb6.tar.xz
mullvadvpn-56b3d6e5f43bbde09386b79fc176a44b856d7fb6.zip
Add UI for encrypted dns proxy
Diffstat (limited to 'ios/MullvadVPN')
-rw-r--r--ios/MullvadVPN/AppDelegate.swift2
-rw-r--r--ios/MullvadVPN/Coordinators/Settings/APIAccess/Edit/MethodSettings/MethodSettingsDataSourceConfiguration.swift4
-rw-r--r--ios/MullvadVPN/Coordinators/Settings/APIAccess/Edit/MethodSettings/MethodSettingsItemIdentifier.swift2
-rw-r--r--ios/MullvadVPN/Coordinators/Settings/APIAccess/Models/AccessMethodKind.swift11
-rw-r--r--ios/MullvadVPN/Coordinators/Settings/APIAccess/Models/AccessMethodViewModel+Persistent.swift2
5 files changed, 14 insertions, 7 deletions
diff --git a/ios/MullvadVPN/AppDelegate.swift b/ios/MullvadVPN/AppDelegate.swift
index 48314ee2af..55d6153fee 100644
--- a/ios/MullvadVPN/AppDelegate.swift
+++ b/ios/MullvadVPN/AppDelegate.swift
@@ -537,7 +537,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterD
try? SettingsManager.writeSettings(LatestTunnelSettings())
// Default access methods need to be repopulated again after settings wipe.
- self.accessMethodRepository.reloadWithDefaultsAfterDataRemoval()
+ self.accessMethodRepository.addDefaultsMethods()
// At app startup, the relay cache tracker will get populated with a list of overriden IPs.
// The overriden IPs will get wiped, therefore, the cache needs to be pruned as well.
try? self.relayCacheTracker.refreshCachedRelays()
diff --git a/ios/MullvadVPN/Coordinators/Settings/APIAccess/Edit/MethodSettings/MethodSettingsDataSourceConfiguration.swift b/ios/MullvadVPN/Coordinators/Settings/APIAccess/Edit/MethodSettings/MethodSettingsDataSourceConfiguration.swift
index c0f1e750d0..7e88cfc1c5 100644
--- a/ios/MullvadVPN/Coordinators/Settings/APIAccess/Edit/MethodSettings/MethodSettingsDataSourceConfiguration.swift
+++ b/ios/MullvadVPN/Coordinators/Settings/APIAccess/Edit/MethodSettings/MethodSettingsDataSourceConfiguration.swift
@@ -49,7 +49,7 @@ class MethodSettingsDataSourceConfiguration {
}
switch newValue.method {
- case .direct, .bridges:
+ case .direct, .bridges, .encryptedDNS:
break
case .shadowsocks:
@@ -106,7 +106,7 @@ class MethodSettingsDataSourceConfiguration {
}
let itemsToReload: [MethodSettingsItemIdentifier] = switch viewModel.method {
- case .direct, .bridges:
+ case .direct, .bridges, .encryptedDNS:
[]
case .shadowsocks:
MethodSettingsItemIdentifier.allShadowsocksItems
diff --git a/ios/MullvadVPN/Coordinators/Settings/APIAccess/Edit/MethodSettings/MethodSettingsItemIdentifier.swift b/ios/MullvadVPN/Coordinators/Settings/APIAccess/Edit/MethodSettings/MethodSettingsItemIdentifier.swift
index b24b94ad32..87e0e2e45d 100644
--- a/ios/MullvadVPN/Coordinators/Settings/APIAccess/Edit/MethodSettings/MethodSettingsItemIdentifier.swift
+++ b/ios/MullvadVPN/Coordinators/Settings/APIAccess/Edit/MethodSettings/MethodSettingsItemIdentifier.swift
@@ -87,7 +87,7 @@ enum MethodSettingsItemIdentifier: Hashable {
selectedMethod: AccessMethodKind
) -> [MethodSettingsItemIdentifier] {
switch selectedMethod {
- case .direct, .bridges:
+ case .direct, .bridges, .encryptedDNS:
[]
case .shadowsocks:
errors.compactMap { error in
diff --git a/ios/MullvadVPN/Coordinators/Settings/APIAccess/Models/AccessMethodKind.swift b/ios/MullvadVPN/Coordinators/Settings/APIAccess/Models/AccessMethodKind.swift
index 35fe1fd43c..559b3fce04 100644
--- a/ios/MullvadVPN/Coordinators/Settings/APIAccess/Models/AccessMethodKind.swift
+++ b/ios/MullvadVPN/Coordinators/Settings/APIAccess/Models/AccessMethodKind.swift
@@ -20,13 +20,16 @@ enum AccessMethodKind: Equatable, Hashable, CaseIterable {
/// Communication over shadowsocks.
case shadowsocks
+ /// Communication over proxy address from a DNS.
+ case encryptedDNS
+
/// Communication over socks v5 proxy.
case socks5
/// Returns `true` if the method is permanent and cannot be deleted.
var isPermanent: Bool {
switch self {
- case .direct, .bridges:
+ case .direct, .bridges, .encryptedDNS:
true
case .shadowsocks, .socks5:
false
@@ -41,7 +44,7 @@ enum AccessMethodKind: Equatable, Hashable, CaseIterable {
/// Returns localized description describing the access method.
var localizedDescription: String {
switch self {
- case .direct, .bridges:
+ case .direct, .bridges, .encryptedDNS:
""
case .shadowsocks:
NSLocalizedString("SHADOWSOCKS", tableName: "APIAccess", value: "Shadowsocks", comment: "")
@@ -54,7 +57,7 @@ enum AccessMethodKind: Equatable, Hashable, CaseIterable {
/// Methods that aren't configurable do not offer any additional configuration.
var hasProxyConfiguration: Bool {
switch self {
- case .direct, .bridges:
+ case .direct, .bridges, .encryptedDNS:
false
case .shadowsocks, .socks5:
true
@@ -68,6 +71,8 @@ extension PersistentAccessMethod {
switch proxyConfiguration {
case .direct:
.direct
+ case .encryptedDNS:
+ .encryptedDNS
case .bridges:
.bridges
case .shadowsocks:
diff --git a/ios/MullvadVPN/Coordinators/Settings/APIAccess/Models/AccessMethodViewModel+Persistent.swift b/ios/MullvadVPN/Coordinators/Settings/APIAccess/Models/AccessMethodViewModel+Persistent.swift
index 0d8182b5af..4ad1cea25b 100644
--- a/ios/MullvadVPN/Coordinators/Settings/APIAccess/Models/AccessMethodViewModel+Persistent.swift
+++ b/ios/MullvadVPN/Coordinators/Settings/APIAccess/Models/AccessMethodViewModel+Persistent.swift
@@ -58,6 +58,8 @@ extension AccessMethodViewModel {
.direct
case .bridges:
.bridges
+ case .encryptedDNS:
+ .encryptedDNS
case .socks5:
try socks.intoPersistentProxyConfiguration()
case .shadowsocks: