summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJon Petersson <jon.petersson@mullvad.net>2025-03-27 08:35:00 +0100
committerJon Petersson <jon.petersson@mullvad.net>2025-03-27 08:35:00 +0100
commitc39b18b13075ae7ef5d860b4c984a16bb2d932a1 (patch)
tree9754452c5fec7dfa78346c15773eae6e6e2e466f
parentdf5128939e8eaafb6ba0cec7039e8f14f47301f2 (diff)
parent60aad710896d2e1a5ac52666377d1cae60e13cc9 (diff)
downloadmullvadvpn-c39b18b13075ae7ef5d860b4c984a16bb2d932a1.tar.xz
mullvadvpn-c39b18b13075ae7ef5d860b4c984a16bb2d932a1.zip
Merge branch 'ios-1101-replace-ong-with-svg'
-rw-r--r--ios/MullvadVPN.xcodeproj/project.pbxproj8
-rw-r--r--ios/MullvadVPN/Containers/Navigation/UINavigationBar+Appearance.swift4
-rw-r--r--ios/MullvadVPN/Containers/Root/HeaderBarView.swift13
-rw-r--r--ios/MullvadVPN/Containers/Root/RootContainerViewController.swift4
-rw-r--r--ios/MullvadVPN/Coordinators/Settings/SettingsFieldValidationErrorContentView.swift2
-rw-r--r--ios/MullvadVPN/Extensions/UIImage+Assets.swift104
-rw-r--r--ios/MullvadVPN/Extensions/UIImage+Helpers.swift18
-rw-r--r--ios/MullvadVPN/Extensions/UITextField+Appearance.swift2
-rw-r--r--ios/MullvadVPN/Notifications/Notification Providers/LatestChangesNotificationProvider.swift2
-rw-r--r--ios/MullvadVPN/Notifications/Notification Providers/NewDeviceNotificationProvider.swift2
-rw-r--r--ios/MullvadVPN/Notifications/UI/NotificationBannerView.swift5
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconAccount.imageset/Contents.json2
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconAccount.imageset/IconAccount.pdfbin1424 -> 0 bytes
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconAccount.imageset/icon-account-circle.svg8
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconAlert.imageset/Contents.json2
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconAlert.imageset/IconAlert.pdfbin1070 -> 0 bytes
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconAlert.imageset/icon-alert-circle.svg8
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconBack.imageset/Contents.json10
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconBack.imageset/IconBack.pdfbin1125 -> 0 bytes
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconBack.imageset/icon-chevron-left-circle.svg8
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevron.imageset/Contents.json10
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevron.imageset/IconChevron.pdf70
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevron.imageset/icon-chevron-right.svg8
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevronDown.imageset/Contents.json14
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevronDown.imageset/IconChevronDown.pdf69
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevronDown.imageset/icon-chevron-down.svg8
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevronUp.imageset/Contents.json14
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevronUp.imageset/IconChevronUp.pdfbin1061 -> 0 bytes
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevronUp.imageset/icon-chevron-up.svg8
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconClose.imageset/Contents.json2
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconClose.imageset/IconClose.pdfbin1130 -> 0 bytes
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconClose.imageset/icon-cross-circle.svg8
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconCloseSml.imageset/Contents.json15
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconCloseSml.imageset/IconCloseSml.pdfbin1139 -> 0 bytes
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconCopy.imageset/Contents.json2
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconCopy.imageset/IconCopy.pdfbin1176 -> 0 bytes
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconCopy.imageset/icon-copy.svg8
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconExtlink.imageset/Contents.json2
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconExtlink.imageset/IconExtlink.pdfbin1126 -> 0 bytes
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconExtlink.imageset/icon-external.svg8
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconFail.imageset/Contents.json10
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconFail.imageset/IconFail.pdfbin1163 -> 0 bytes
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconFail.imageset/negative.svg8
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconInfo.imageset/Contents.json2
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconInfo.imageset/IconInfo.pdf71
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconInfo.imageset/icon-info-circle.svg8
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconObscure.imageset/Contents.json2
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconObscure.imageset/IconObscure.pdfbin1483 -> 0 bytes
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconObscure.imageset/icon-hide.svg8
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconReload.imageset/Contents.json2
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconReload.imageset/icon-reconnect.svg8
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconReload.imageset/icon-reload.svg10
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSettings.imageset/Contents.json10
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSettings.imageset/IconSettings.pdfbin1401 -> 0 bytes
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSettings.imageset/icon-settings-filled.svg8
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSpinner.imageset/Contents.json10
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSpinner.imageset/IconSpinner.pdf71
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSpinner.imageset/spinner.svg17
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSuccess.imageset/Contents.json10
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSuccess.imageset/IconSuccess.pdf68
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSuccess.imageset/positive.svg8
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconTick.imageset/Contents.json14
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconTick.imageset/IconTick.pdf70
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconTick.imageset/icon-checkmark.svg8
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconTickSml.imageset/Contents.json2
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconTickSml.imageset/IconTickSml.pdfbin1045 -> 0 bytes
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconTickSml.imageset/icon-checkmark.svg8
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconUnobscure.imageset/Contents.json2
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconUnobscure.imageset/IconUnobscure.pdfbin1156 -> 0 bytes
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/IconUnobscure.imageset/icon-show.svg8
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/LocationMarkerSecure.imageset/Contents.json10
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/LocationMarkerSecure.imageset/LocationMarkerSecure.pdfbin2407 -> 0 bytes
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/LocationMarkerSecure.imageset/location-marker-secure.svg19
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/LocationMarkerUnsecure.imageset/Contents.json10
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/LocationMarkerUnsecure.imageset/LocationMarkerUnsecure.pdfbin2405 -> 0 bytes
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/LocationMarkerUnsecure.imageset/location-marker-unsecure.svg19
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/LogoIcon.imageset/Contents.json10
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/LogoIcon.imageset/LogoIcon.pdfbin1974 -> 0 bytes
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/LogoIcon.imageset/logo-icon.svg39
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/LogoText.imageset/Contents.json2
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/LogoText.imageset/LogoText.pdfbin2431 -> 0 bytes
-rw-r--r--ios/MullvadVPN/Supporting Files/Assets.xcassets/LogoText.imageset/logo-text.svg19
-rw-r--r--ios/MullvadVPN/UI appearance/UIMetrics.swift3
-rw-r--r--ios/MullvadVPN/View controllers/Account/AccountDeviceRow.swift4
-rw-r--r--ios/MullvadVPN/View controllers/Account/AccountNumberRow.swift8
-rw-r--r--ios/MullvadVPN/View controllers/Account/RestorePurchasesView.swift4
-rw-r--r--ios/MullvadVPN/View controllers/Alert/AlertViewController.swift8
-rw-r--r--ios/MullvadVPN/View controllers/CreationAccount/Welcome/WelcomeContentView.swift2
-rw-r--r--ios/MullvadVPN/View controllers/DeviceList/DeviceRowView.swift2
-rw-r--r--ios/MullvadVPN/View controllers/Login/AccountInputGroupView.swift4
-rw-r--r--ios/MullvadVPN/View controllers/RelayFilter/ChipViewCell.swift2
-rw-r--r--ios/MullvadVPN/View controllers/SelectLocation/LocationCell.swift6
-rw-r--r--ios/MullvadVPN/View controllers/Settings/SelectableSettingsCell.swift2
-rw-r--r--ios/MullvadVPN/View controllers/Settings/SettingsCell.swift8
-rw-r--r--ios/MullvadVPN/View controllers/Settings/SettingsHeaderView.swift2
-rw-r--r--ios/MullvadVPN/View controllers/Settings/SwiftUI components/SingleChoiceList.swift2
-rw-r--r--ios/MullvadVPN/Views/CheckboxView.swift2
-rw-r--r--ios/MullvadVPN/Views/IncreasedHitButton.swift2
-rw-r--r--ios/MullvadVPN/Views/SpinnerActivityIndicatorView.swift2
-rw-r--r--ios/MullvadVPN/Views/StatusImageView.swift4
100 files changed, 511 insertions, 575 deletions
diff --git a/ios/MullvadVPN.xcodeproj/project.pbxproj b/ios/MullvadVPN.xcodeproj/project.pbxproj
index 5d772f1c99..1e623f8bc0 100644
--- a/ios/MullvadVPN.xcodeproj/project.pbxproj
+++ b/ios/MullvadVPN.xcodeproj/project.pbxproj
@@ -42,6 +42,9 @@
0697D6E728F01513007A9E99 /* TransportMonitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0697D6E628F01513007A9E99 /* TransportMonitor.swift */; };
06AC116228F94C450037AF9A /* ApplicationConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58BFA5CB22A7CE1F00A6173D /* ApplicationConfiguration.swift */; };
44075DFB2CDA4F7400F61139 /* UDPOverTCPObfuscationSettingsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44075DFA2CDA4F7400F61139 /* UDPOverTCPObfuscationSettingsViewModel.swift */; };
+ 440870822D7A00B70038972F /* UIImage+Assets.swift in Sources */ = {isa = PBXBuildFile; fileRef = 440870812D7A00B00038972F /* UIImage+Assets.swift */; };
+ 440870832D809B550038972F /* UIImage+Assets.swift in Sources */ = {isa = PBXBuildFile; fileRef = 440870812D7A00B00038972F /* UIImage+Assets.swift */; };
+ 440870842D809C980038972F /* UIImage+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = F062000B2CB7EB5D002E6DB9 /* UIImage+Helpers.swift */; };
440E5AB02CDBD67D00B09614 /* StatefulPreviewWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 440E5AAF2CDBD67D00B09614 /* StatefulPreviewWrapper.swift */; };
440E5AB42CDCF24500B09614 /* TunnelObfuscationSettingsWatchingObservableObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = 440E5AB32CDCF24500B09614 /* TunnelObfuscationSettingsWatchingObservableObject.swift */; };
4419AA8B2D2826E5001B13C9 /* DetailsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4419AA8A2D2826E5001B13C9 /* DetailsView.swift */; };
@@ -1590,6 +1593,7 @@
06FAE67B28F83CA50033DD93 /* REST.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = REST.swift; sourceTree = "<group>"; };
06FAE67D28F83CA50033DD93 /* RESTTransport.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RESTTransport.swift; sourceTree = "<group>"; };
44075DFA2CDA4F7400F61139 /* UDPOverTCPObfuscationSettingsViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UDPOverTCPObfuscationSettingsViewModel.swift; sourceTree = "<group>"; };
+ 440870812D7A00B00038972F /* UIImage+Assets.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImage+Assets.swift"; sourceTree = "<group>"; };
440E5AAF2CDBD67D00B09614 /* StatefulPreviewWrapper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatefulPreviewWrapper.swift; sourceTree = "<group>"; };
440E5AB32CDCF24500B09614 /* TunnelObfuscationSettingsWatchingObservableObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TunnelObfuscationSettingsWatchingObservableObject.swift; sourceTree = "<group>"; };
4419AA8A2D2826E5001B13C9 /* DetailsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailsView.swift; sourceTree = "<group>"; };
@@ -3335,6 +3339,7 @@
5891BF5025E66B1E006D6FB0 /* UIBarButtonItem+KeyboardNavigation.swift */,
587CBFE222807F530028DED3 /* UIColor+Helpers.swift */,
7ABE318C2A1CDD4500DF4963 /* UIFont+Weight.swift */,
+ 440870812D7A00B00038972F /* UIImage+Assets.swift */,
F062000B2CB7EB5D002E6DB9 /* UIImage+Helpers.swift */,
58CEB2FA2AFD13E600E6E088 /* UIListContentConfiguration+Extensions.swift */,
58CEB2FC2AFD19D300E6E088 /* UITableView+ReuseIdentifier.swift */,
@@ -5853,6 +5858,7 @@
A9A5F9F32ACB05160083449F /* AccountExpirySystemNotificationProvider.swift in Sources */,
A9A5F9F52ACB05160083449F /* NewDeviceNotificationProvider.swift in Sources */,
F09D04B72AE941DA003D4F89 /* OutgoingConnectionProxyTests.swift in Sources */,
+ 440870832D809B550038972F /* UIImage+Assets.swift in Sources */,
F09D04B92AE95111003D4F89 /* OutgoingConnectionProxy.swift in Sources */,
7A6000F92B6273A4001CF0D9 /* AccessMethodViewModel.swift in Sources */,
7ABFB09E2BA316220074A49E /* RelayConstraintsTests.swift in Sources */,
@@ -5947,6 +5953,7 @@
44DD7D242B6CFFD70005F67F /* StartTunnelOperationTests.swift in Sources */,
44BB5F982BE527F4002520EB /* TunnelState+UI.swift in Sources */,
A9A5FA2B2ACB05160083449F /* CustomDateComponentsFormattingTests.swift in Sources */,
+ 440870842D809C980038972F /* UIImage+Helpers.swift in Sources */,
A9A5FA2C2ACB05160083449F /* DeviceCheckOperationTests.swift in Sources */,
A9A5FA2D2ACB05160083449F /* DurationTests.swift in Sources */,
A9A5FA2E2ACB05160083449F /* FileCacheTests.swift in Sources */,
@@ -6194,6 +6201,7 @@
F062000C2CB7EB5D002E6DB9 /* UIImage+Helpers.swift in Sources */,
F910A4012D3FF23A002FF3BB /* View+Modifier.swift in Sources */,
7A6389EB2B7FAD7A008E77E1 /* SettingsFieldValidationErrorContentView.swift in Sources */,
+ 440870822D7A00B70038972F /* UIImage+Assets.swift in Sources */,
7A8A19282CF603EB000BCB5B /* SettingsViewControllerFactory.swift in Sources */,
58B26E2A2943545A00D5980C /* NotificationManagerDelegate.swift in Sources */,
7A8A19072CE4E9D3000BCB5B /* SettingsInfoView.swift in Sources */,
diff --git a/ios/MullvadVPN/Containers/Navigation/UINavigationBar+Appearance.swift b/ios/MullvadVPN/Containers/Navigation/UINavigationBar+Appearance.swift
index 3c675c936c..ee9bd56c0c 100644
--- a/ios/MullvadVPN/Containers/Navigation/UINavigationBar+Appearance.swift
+++ b/ios/MullvadVPN/Containers/Navigation/UINavigationBar+Appearance.swift
@@ -31,11 +31,11 @@ extension UINavigationBar {
}
private func makeNavigationBarAppearance(isTransparent: Bool) -> UINavigationBarAppearance {
- let backIndicatorImage = UIImage(named: "IconBack")?.withTintColor(
+ let backIndicatorImage = UIImage.Buttons.back.withTintColor(
UIColor.NavigationBar.buttonColor,
renderingMode: .alwaysOriginal
)
- let backIndicatorTransitionMask = UIImage(named: "IconBackTransitionMask")
+ let backIndicatorTransitionMask = UIImage.backTransitionMask
let titleTextAttributes: [NSAttributedString.Key: Any] = [
.foregroundColor: UIColor.NavigationBar.titleColor,
diff --git a/ios/MullvadVPN/Containers/Root/HeaderBarView.swift b/ios/MullvadVPN/Containers/Root/HeaderBarView.swift
index 8503b591cf..3ea6fbd041 100644
--- a/ios/MullvadVPN/Containers/Root/HeaderBarView.swift
+++ b/ios/MullvadVPN/Containers/Root/HeaderBarView.swift
@@ -47,6 +47,7 @@ class HeaderBarView: UIView {
private lazy var buttonContainer: UIStackView = {
let stackView = UIStackView(arrangedSubviews: [accountButton, settingsButton])
+ stackView.spacing = 12
return stackView
}()
@@ -57,7 +58,7 @@ class HeaderBarView: UIView {
}()
let accountButton: UIButton = {
- let button = makeHeaderBarButton(with: UIImage(named: "IconAccount"))
+ let button = makeHeaderBarButton(with: UIImage.Buttons.account)
button.setAccessibilityIdentifier(.accountButton)
button.accessibilityLabel = NSLocalizedString(
"HEADER_BAR_ACCOUNT_BUTTON_ACCESSIBILITY_LABEL",
@@ -71,7 +72,7 @@ class HeaderBarView: UIView {
}()
let settingsButton: UIButton = {
- let button = makeHeaderBarButton(with: UIImage(named: "IconSettings"))
+ let button = makeHeaderBarButton(with: UIImage.Buttons.settings)
button.setAccessibilityIdentifier(.settingsButton)
button.accessibilityLabel = NSLocalizedString(
"HEADER_BAR_SETTINGS_BUTTON_ACCESSIBILITY_LABEL",
@@ -86,14 +87,8 @@ class HeaderBarView: UIView {
class func makeHeaderBarButton(with image: UIImage?) -> IncreasedHitButton {
let buttonImage = image?.withTintColor(UIColor.HeaderBar.buttonColor, renderingMode: .alwaysOriginal)
- let disabledButtonImage = image?.withTintColor(
- UIColor.HeaderBar.disabledButtonColor,
- renderingMode: .alwaysOriginal
- )
-
let barButton = IncreasedHitButton(type: .system)
- barButton.setImage(buttonImage, for: .normal)
- barButton.setImage(disabledButtonImage, for: .disabled)
+ barButton.setBackgroundImage(buttonImage, for: .normal)
barButton.configureForAutoLayout()
return barButton
diff --git a/ios/MullvadVPN/Containers/Root/RootContainerViewController.swift b/ios/MullvadVPN/Containers/Root/RootContainerViewController.swift
index 61975b01b8..4abc1dc7da 100644
--- a/ios/MullvadVPN/Containers/Root/RootContainerViewController.swift
+++ b/ios/MullvadVPN/Containers/Root/RootContainerViewController.swift
@@ -383,7 +383,7 @@ class RootContainerViewController: UIViewController {
transitionViewButton.removeFromSuperview()
button = transitionViewButton
} else {
- button = HeaderBarView.makeHeaderBarButton(with: UIImage(named: "IconAccount"))
+ button = HeaderBarView.makeHeaderBarButton(with: UIImage.Buttons.account)
button.addTarget(
self,
action: #selector(handleAccountButtonTap),
@@ -404,7 +404,7 @@ class RootContainerViewController: UIViewController {
transitionViewButton.removeFromSuperview()
button = transitionViewButton
} else {
- button = HeaderBarView.makeHeaderBarButton(with: UIImage(named: "IconSettings"))
+ button = HeaderBarView.makeHeaderBarButton(with: UIImage.Buttons.settings)
button.isEnabled = headerBarView.settingsButton.isEnabled
button.addTarget(
self,
diff --git a/ios/MullvadVPN/Coordinators/Settings/SettingsFieldValidationErrorContentView.swift b/ios/MullvadVPN/Coordinators/Settings/SettingsFieldValidationErrorContentView.swift
index 078a4c9cff..9178b65f2c 100644
--- a/ios/MullvadVPN/Coordinators/Settings/SettingsFieldValidationErrorContentView.swift
+++ b/ios/MullvadVPN/Coordinators/Settings/SettingsFieldValidationErrorContentView.swift
@@ -12,7 +12,7 @@ class SettingsFieldValidationErrorContentView: UIView, UIContentView {
let contentView = UIStackView()
var icon: UIImageView {
- let view = UIImageView(image: UIImage(resource: .iconAlert).withTintColor(.dangerColor))
+ let view = UIImageView(image: UIImage.Buttons.alert.withTintColor(.dangerColor))
view.heightAnchor.constraint(equalToConstant: 14).isActive = true
view.widthAnchor.constraint(equalTo: view.heightAnchor, multiplier: 1).isActive = true
return view
diff --git a/ios/MullvadVPN/Extensions/UIImage+Assets.swift b/ios/MullvadVPN/Extensions/UIImage+Assets.swift
new file mode 100644
index 0000000000..7e543be140
--- /dev/null
+++ b/ios/MullvadVPN/Extensions/UIImage+Assets.swift
@@ -0,0 +1,104 @@
+//
+// UIImage+Assets.swift
+// MullvadVPN
+//
+// Created by Andrew Bulhak on 2025-03-06.
+// Copyright © 2025 Mullvad VPN AB. All rights reserved.
+//
+
+import UIKit
+
+extension UIImage {
+ enum Buttons {
+ static var account: UIImage {
+ UIImage(named: "IconAccount")!
+ }
+
+ static var alert: UIImage {
+ UIImage(named: "IconAlert")!
+ }
+
+ static var info: UIImage {
+ UIImage(named: "IconInfo")!
+ }
+
+ static var settings: UIImage {
+ UIImage(named: "IconSettings")!
+ }
+
+ static var back: UIImage {
+ UIImage(named: "IconBack")!
+ }
+
+ static var copy: UIImage {
+ UIImage(named: "IconCopy")!
+ }
+
+ static var hide: UIImage {
+ UIImage(named: "IconObscure")!
+ }
+
+ static var reload: UIImage {
+ UIImage(named: "IconReload")!
+ }
+
+ static var rightArrow: UIImage {
+ UIImage(named: "IconArrow")!
+ }
+
+ static var show: UIImage {
+ UIImage(named: "IconUnobscure")!
+ }
+
+ // The close button, which we consume in two sizes, both of which come from the same asset.
+
+ static var closeSmall: UIImage {
+ UIImage(named: "IconClose")!
+ .resized(to: CGSize(width: 18, height: 18))
+ }
+
+ static var close: UIImage {
+ UIImage(named: "IconClose")!
+ }
+ }
+
+ enum CellDecoration {
+ static var chevronRight: UIImage {
+ UIImage(named: "IconChevron")!
+ }
+
+ static var chevronDown: UIImage {
+ UIImage(named: "IconChevronDown")!
+ }
+
+ static var chevronUp: UIImage {
+ UIImage(named: "IconChevronUp")!
+ }
+
+ static var externalLink: UIImage {
+ UIImage(named: "IconExtlink")!
+ }
+
+ static var tick: UIImage {
+ UIImage(named: "IconTickSml")!
+ }
+ }
+
+ enum Status {
+ static var failure: UIImage { UIImage(named: "IconFail")! }
+ static var success: UIImage { UIImage(named: "IconSuccess")! }
+ }
+
+ // miscellaneous images
+ static var backTransitionMask: UIImage {
+ UIImage(named: "IconBackTransitionMask")!
+ }
+
+ static var spinner: UIImage {
+ UIImage(named: "IconSpinner")!
+ }
+
+ static var tick: UIImage {
+ UIImage(named: "IconTickSml")!
+ }
+}
diff --git a/ios/MullvadVPN/Extensions/UIImage+Helpers.swift b/ios/MullvadVPN/Extensions/UIImage+Helpers.swift
index 335e63c1ba..cacbfb396e 100644
--- a/ios/MullvadVPN/Extensions/UIImage+Helpers.swift
+++ b/ios/MullvadVPN/Extensions/UIImage+Helpers.swift
@@ -10,18 +10,26 @@ import UIKit
extension UIImage {
// Function to resize image while keeping aspect ratio
- func resizeImage(targetSize: CGSize) -> UIImage {
- let widthRatio = targetSize.width / size.width
- let heightRatio = targetSize.height / size.height
+ // if `trimmingBorder` is specified, that number of pixels will be trimmed off each side before the remaining area is rendered to the new image
+ func resized(to: CGSize, trimmingBorder border: CGFloat = 0) -> UIImage {
+ let sourceSize = CGSize(width: size.width - 2 * border, height: size.height - 2 * border)
+ let widthRatio = to.width / sourceSize.width
+ let heightRatio = to.height / sourceSize.height
let scaleFactor = min(widthRatio, heightRatio)
+ let scaledBorder = border * scaleFactor
// Calculate new size based on the scale factor
- let newSize = CGSize(width: size.width * scaleFactor, height: size.height * scaleFactor)
+ let newSize = CGSize(width: sourceSize.width * scaleFactor, height: sourceSize.height * scaleFactor)
let renderer = UIGraphicsImageRenderer(size: newSize)
// Render the new image
let resizedImage = renderer.image { _ in
- draw(in: CGRect(origin: .zero, size: newSize))
+ draw(
+ in: CGRect(
+ origin: .init(x: -scaledBorder, y: -scaledBorder),
+ size: .init(width: newSize.width + 2 * scaledBorder, height: newSize.height + 2 * scaledBorder)
+ )
+ )
}
return resizedImage.withRenderingMode(renderingMode)
diff --git a/ios/MullvadVPN/Extensions/UITextField+Appearance.swift b/ios/MullvadVPN/Extensions/UITextField+Appearance.swift
index a1b0be8b3e..9b6e94b80a 100644
--- a/ios/MullvadVPN/Extensions/UITextField+Appearance.swift
+++ b/ios/MullvadVPN/Extensions/UITextField+Appearance.swift
@@ -36,7 +36,7 @@ extension UITextField {
func apply(to searchBar: UISearchBar) {
searchBar.setImage(
- UIImage(named: "IconCloseSml")?.withTintColor(leftViewTintColor),
+ UIImage.Buttons.closeSmall.withTintColor(leftViewTintColor),
for: .clear,
state: .normal
)
diff --git a/ios/MullvadVPN/Notifications/Notification Providers/LatestChangesNotificationProvider.swift b/ios/MullvadVPN/Notifications/Notification Providers/LatestChangesNotificationProvider.swift
index 42e4cac792..59441d899d 100644
--- a/ios/MullvadVPN/Notifications/Notification Providers/LatestChangesNotificationProvider.swift
+++ b/ios/MullvadVPN/Notifications/Notification Providers/LatestChangesNotificationProvider.swift
@@ -70,7 +70,7 @@ class LatestChangesNotificationProvider: NotificationProvider, InAppNotification
private func createCloseButtonAction() -> InAppNotificationAction {
InAppNotificationAction(
- image: UIImage(named: "IconCloseSml"),
+ image: UIImage.Buttons.closeSmall,
handler: { [weak self] in
self?.invalidate()
}
diff --git a/ios/MullvadVPN/Notifications/Notification Providers/NewDeviceNotificationProvider.swift b/ios/MullvadVPN/Notifications/Notification Providers/NewDeviceNotificationProvider.swift
index f5b8435dbc..22a7a09da5 100644
--- a/ios/MullvadVPN/Notifications/Notification Providers/NewDeviceNotificationProvider.swift
+++ b/ios/MullvadVPN/Notifications/Notification Providers/NewDeviceNotificationProvider.swift
@@ -58,7 +58,7 @@ final class NewDeviceNotificationProvider: NotificationProvider,
),
body: attributedBody,
button: InAppNotificationAction(
- image: UIImage(named: "IconCloseSml"),
+ image: UIImage.Buttons.closeSmall,
handler: { [weak self] in
guard let self else { return }
isNewDeviceRegistered = false
diff --git a/ios/MullvadVPN/Notifications/UI/NotificationBannerView.swift b/ios/MullvadVPN/Notifications/UI/NotificationBannerView.swift
index 0876d71995..1eff1a5d7e 100644
--- a/ios/MullvadVPN/Notifications/UI/NotificationBannerView.swift
+++ b/ios/MullvadVPN/Notifications/UI/NotificationBannerView.swift
@@ -57,6 +57,7 @@ final class NotificationBannerView: UIView {
private lazy var contentStackView: UIStackView = {
let stackView = UIStackView(arrangedSubviews: [bodyStackView, actionButton])
stackView.spacing = UIStackView.spacingUseSystem
+ stackView.alignment = .center
return stackView
}()
@@ -89,7 +90,9 @@ final class NotificationBannerView: UIView {
let image = action?.image
let showsAction = image != nil
- actionButton.setImage(image, for: .normal)
+ actionButton.setBackgroundImage(image, for: .normal)
+ actionButton.widthAnchor.constraint(equalToConstant: 24).isActive = true
+ actionButton.heightAnchor.constraint(equalTo: actionButton.widthAnchor).isActive = true
actionButton.isHidden = !showsAction
}
}
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconAccount.imageset/Contents.json b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconAccount.imageset/Contents.json
index 573b102f42..e804ffef7a 100644
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconAccount.imageset/Contents.json
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconAccount.imageset/Contents.json
@@ -1,7 +1,7 @@
{
"images" : [
{
- "filename" : "IconAccount.pdf",
+ "filename" : "icon-account-circle.svg",
"idiom" : "universal"
}
],
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconAccount.imageset/IconAccount.pdf b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconAccount.imageset/IconAccount.pdf
deleted file mode 100644
index fd1cda97a7..0000000000
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconAccount.imageset/IconAccount.pdf
+++ /dev/null
Binary files differ
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconAccount.imageset/icon-account-circle.svg b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconAccount.imageset/icon-account-circle.svg
new file mode 100644
index 0000000000..58e71e4ead
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconAccount.imageset/icon-account-circle.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
+ <mask id="mask0_519_2660" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24">
+ <rect width="24" height="24" fill="#D9D9D9"/>
+ </mask>
+ <g mask="url(#mask0_519_2660)">
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22ZM11.9949 11.8129C11.3452 11.8137 10.6978 11.8946 10.0669 12.0536C9.37813 12.2327 8.70677 12.4753 8.06039 12.7785C7.75379 12.9252 7.49057 13.1529 7.29734 13.4384C7.09459 13.7466 6.99107 14.1123 7.0006 14.4843V15.0316C6.99962 15.159 7.02328 15.2853 7.07027 15.4032C7.11726 15.5211 7.18627 15.6283 7.27368 15.7184C7.36109 15.8085 7.46526 15.8798 7.57962 15.9282C7.65126 15.9584 7.72618 15.9793 7.80242 15.9905C7.8481 15.9971 7.89411 16.0003 7.94011 16H16.0602C16.1837 16.0007 16.3063 15.9762 16.4207 15.9277C16.535 15.8793 16.6389 15.808 16.7263 15.718C16.7674 15.6757 16.8045 15.6297 16.837 15.5805C16.8738 15.5251 16.9047 15.4655 16.9297 15.4031C16.9767 15.2852 17.0007 15.1589 16.9997 15.0316V14.4843C17.0066 14.1111 16.8991 13.7452 16.6924 13.4384C16.4953 13.1494 16.2255 12.9213 15.912 12.7785C15.2653 12.4856 14.5969 12.2459 13.9133 12.0619C13.2863 11.8972 12.6419 11.8136 11.9949 11.8129ZM11.9949 6.00227C11.6837 5.98804 11.3728 6.0408 11.0823 6.15707C10.7918 6.27342 10.528 6.45083 10.3078 6.67795C10.0876 6.90515 9.91541 7.17706 9.8027 7.4765C9.68999 7.77593 9.63872 8.09628 9.65285 8.41714C9.63905 8.73792 9.69031 9.05818 9.80303 9.35745C9.91607 9.6568 10.0879 9.92854 10.3081 10.1557C10.5286 10.3827 10.7922 10.56 11.0827 10.6764C11.3728 10.7926 11.6837 10.8455 11.9949 10.8313C12.3061 10.8452 12.6166 10.7923 12.9068 10.6759C13.197 10.5595 13.4608 10.3822 13.681 10.1552C13.9012 9.92812 14.0734 9.65646 14.1861 9.35719C14.2991 9.05801 14.3504 8.73792 14.3369 8.41714C14.3507 8.09637 14.2995 7.7761 14.1867 7.47683C14.0737 7.17757 13.9018 6.90574 13.6813 6.67862C13.4612 6.45159 13.1973 6.27427 12.9071 6.15792C12.6166 6.04165 12.3061 5.98813 11.9949 6.00227Z" fill="white"/>
+ </g>
+</svg> \ No newline at end of file
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconAlert.imageset/Contents.json b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconAlert.imageset/Contents.json
index 4800727ae2..c9558a5051 100644
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconAlert.imageset/Contents.json
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconAlert.imageset/Contents.json
@@ -1,7 +1,7 @@
{
"images" : [
{
- "filename" : "IconAlert.pdf",
+ "filename" : "icon-alert-circle.svg",
"idiom" : "universal"
}
],
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconAlert.imageset/IconAlert.pdf b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconAlert.imageset/IconAlert.pdf
deleted file mode 100644
index 2b350b1b89..0000000000
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconAlert.imageset/IconAlert.pdf
+++ /dev/null
Binary files differ
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconAlert.imageset/icon-alert-circle.svg b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconAlert.imageset/icon-alert-circle.svg
new file mode 100644
index 0000000000..4416d62324
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconAlert.imageset/icon-alert-circle.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
+ <mask id="mask0_114_1782" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24">
+ <path d="M24 0H0V24H24V0Z" fill="#D9D9D9"/>
+ </mask>
+ <g mask="url(#mask0_114_1782)">
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12ZM13 17C13 17.5523 12.5523 18 12 18C11.4477 18 11 17.5523 11 17C11 16.4477 11.4477 16 12 16C12.5523 16 13 16.4477 13 17ZM13 13V7C13 6.44772 12.5523 6 12 6C11.4477 6 11 6.44772 11 7V13C11 13.5523 11.4477 14 12 14C12.5523 14 13 13.5523 13 13Z" fill="white"/>
+ </g>
+</svg> \ No newline at end of file
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconBack.imageset/Contents.json b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconBack.imageset/Contents.json
index 5be7d993e8..3fdd0272f2 100644
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconBack.imageset/Contents.json
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconBack.imageset/Contents.json
@@ -1,15 +1,15 @@
{
"images" : [
{
- "idiom" : "universal",
- "filename" : "IconBack.pdf"
+ "filename" : "icon-chevron-left-circle.svg",
+ "idiom" : "universal"
}
],
"info" : {
- "version" : 1,
- "author" : "xcode"
+ "author" : "xcode",
+ "version" : 1
},
"properties" : {
"preserves-vector-representation" : true
}
-} \ No newline at end of file
+}
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconBack.imageset/IconBack.pdf b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconBack.imageset/IconBack.pdf
deleted file mode 100644
index 30613fa0b8..0000000000
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconBack.imageset/IconBack.pdf
+++ /dev/null
Binary files differ
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconBack.imageset/icon-chevron-left-circle.svg b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconBack.imageset/icon-chevron-left-circle.svg
new file mode 100644
index 0000000000..4b8f49e5cd
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconBack.imageset/icon-chevron-left-circle.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
+ <mask id="mask0_122_2130" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24">
+ <path d="M24 0H0V24H24V0Z" fill="#D9D9D9"/>
+ </mask>
+ <g mask="url(#mask0_122_2130)">
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22ZM12.7929 7.29289C13.1834 6.90237 13.8166 6.90237 14.2071 7.29289C14.5976 7.68342 14.5976 8.31658 14.2071 8.70711L10.9142 12L14.2071 15.2929C14.5976 15.6834 14.5976 16.3166 14.2071 16.7071C13.8166 17.0976 13.1834 17.0976 12.7929 16.7071L8.79289 12.7071C8.40237 12.3166 8.40237 11.6834 8.79289 11.2929L12.7929 7.29289Z" fill="white"/>
+ </g>
+</svg> \ No newline at end of file
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevron.imageset/Contents.json b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevron.imageset/Contents.json
index 54dbef6863..0f9c8bfe26 100644
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevron.imageset/Contents.json
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevron.imageset/Contents.json
@@ -1,15 +1,15 @@
{
"images" : [
{
- "idiom" : "universal",
- "filename" : "IconChevron.pdf"
+ "filename" : "icon-chevron-right.svg",
+ "idiom" : "universal"
}
],
"info" : {
- "version" : 1,
- "author" : "xcode"
+ "author" : "xcode",
+ "version" : 1
},
"properties" : {
"preserves-vector-representation" : true
}
-} \ No newline at end of file
+}
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevron.imageset/IconChevron.pdf b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevron.imageset/IconChevron.pdf
deleted file mode 100644
index 5e00c5ce6f..0000000000
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevron.imageset/IconChevron.pdf
+++ /dev/null
@@ -1,70 +0,0 @@
-%PDF-1.5
-%
-4 0 obj
-<< /Length 5 0 R
- /Filter /FlateDecode
->>
-stream
-xmPA
-! &j<O(BCC*."$0$a { [`uw/G^z'X?0*vC b62=kRP f5(Wdټ-JV UEI +) `8 ˘i;Ǹ} ~=ֿ
-2;TsD
-endstream
-endobj
-5 0 obj
- 181
-endobj
-3 0 obj
-<<
- /ExtGState <<
- /a0 << /CA 1 /ca 1 >>
- >>
->>
-endobj
-2 0 obj
-<< /Type /Page % 1
- /Parent 1 0 R
- /MediaBox [ 0 0 7 12 ]
- /Contents 4 0 R
- /Group <<
- /Type /Group
- /S /Transparency
- /I true
- /CS /DeviceRGB
- >>
- /Resources 3 0 R
->>
-endobj
-1 0 obj
-<< /Type /Pages
- /Kids [ 2 0 R ]
- /Count 1
->>
-endobj
-6 0 obj
-<< /Producer (cairo 1.16.0 (https://cairographics.org))
- /CreationDate (20200729113941+00'00)
->>
-endobj
-7 0 obj
-<< /Type /Catalog
- /Pages 1 0 R
->>
-endobj
-xref
-0 8
-0000000000 65535 f
-0000000582 00000 n
-0000000367 00000 n
-0000000295 00000 n
-0000000015 00000 n
-0000000273 00000 n
-0000000647 00000 n
-0000000761 00000 n
-trailer
-<< /Size 8
- /Root 7 0 R
- /Info 6 0 R
->>
-startxref
-813
-%%EOF
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevron.imageset/icon-chevron-right.svg b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevron.imageset/icon-chevron-right.svg
new file mode 100644
index 0000000000..61984c5155
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevron.imageset/icon-chevron-right.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
+ <mask id="mask0_519_2706" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24">
+ <rect width="24" height="24" fill="#D9D9D9"/>
+ </mask>
+ <g mask="url(#mask0_519_2706)">
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M9.29289 7.29289C8.90237 7.68342 8.90237 8.31658 9.29289 8.70711L12.5858 12L9.29289 15.2929C8.90237 15.6834 8.90237 16.3166 9.29289 16.7071C9.68342 17.0976 10.3166 17.0976 10.7071 16.7071L14.7071 12.7071C15.0976 12.3166 15.0976 11.6834 14.7071 11.2929L10.7071 7.29289C10.3166 6.90237 9.68342 6.90237 9.29289 7.29289Z" fill="white"/>
+ </g>
+</svg> \ No newline at end of file
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevronDown.imageset/Contents.json b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevronDown.imageset/Contents.json
index 3171396241..74ccdff7bf 100644
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevronDown.imageset/Contents.json
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevronDown.imageset/Contents.json
@@ -1,16 +1,16 @@
{
"images" : [
{
- "idiom" : "universal",
- "filename" : "IconChevronDown.pdf"
+ "filename" : "icon-chevron-down.svg",
+ "idiom" : "universal"
}
],
"info" : {
- "version" : 1,
- "author" : "xcode"
+ "author" : "xcode",
+ "version" : 1
},
"properties" : {
- "template-rendering-intent" : "template",
- "preserves-vector-representation" : true
+ "preserves-vector-representation" : true,
+ "template-rendering-intent" : "template"
}
-} \ No newline at end of file
+}
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevronDown.imageset/IconChevronDown.pdf b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevronDown.imageset/IconChevronDown.pdf
deleted file mode 100644
index f529e19908..0000000000
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevronDown.imageset/IconChevronDown.pdf
+++ /dev/null
@@ -1,69 +0,0 @@
-%PDF-1.5
-%
-4 0 obj
-<< /Length 5 0 R
- /Filter /FlateDecode
->>
-stream
-xeA1E= -#I3 m:iB 휨ΰH=W8_#@ HƵCc5(ک
-w̝TPdK@K,6h5;'RCم6b/:w0e"@TI~QF[q&]KynR.-. ~$Kc
-endstream
-endobj
-5 0 obj
- 185
-endobj
-3 0 obj
-<<
- /ExtGState <<
- /a0 << /CA 1 /ca 1 >>
- >>
->>
-endobj
-2 0 obj
-<< /Type /Page % 1
- /Parent 1 0 R
- /MediaBox [ 0 0 24 24 ]
- /Contents 4 0 R
- /Group <<
- /Type /Group
- /S /Transparency
- /I true
- /CS /DeviceRGB
- >>
- /Resources 3 0 R
->>
-endobj
-1 0 obj
-<< /Type /Pages
- /Kids [ 2 0 R ]
- /Count 1
->>
-endobj
-6 0 obj
-<< /Producer (cairo 1.16.0 (https://cairographics.org))
- /CreationDate (20200729113941+00'00)
->>
-endobj
-7 0 obj
-<< /Type /Catalog
- /Pages 1 0 R
->>
-endobj
-xref
-0 8
-0000000000 65535 f
-0000000587 00000 n
-0000000371 00000 n
-0000000299 00000 n
-0000000015 00000 n
-0000000277 00000 n
-0000000652 00000 n
-0000000766 00000 n
-trailer
-<< /Size 8
- /Root 7 0 R
- /Info 6 0 R
->>
-startxref
-818
-%%EOF
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevronDown.imageset/icon-chevron-down.svg b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevronDown.imageset/icon-chevron-down.svg
new file mode 100644
index 0000000000..fffed869b0
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevronDown.imageset/icon-chevron-down.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
+ <mask id="mask0_519_2708" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24">
+ <rect width="24" height="24" fill="#D9D9D9"/>
+ </mask>
+ <g mask="url(#mask0_519_2708)">
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M16.7071 9.29289C16.3166 8.90237 15.6834 8.90237 15.2929 9.29289L12 12.5858L8.70711 9.29289C8.31658 8.90237 7.68342 8.90237 7.29289 9.29289C6.90237 9.68342 6.90237 10.3166 7.29289 10.7071L11.2929 14.7071C11.6834 15.0976 12.3166 15.0976 12.7071 14.7071L16.7071 10.7071C17.0976 10.3166 17.0976 9.68342 16.7071 9.29289Z" fill="white"/>
+ </g>
+</svg> \ No newline at end of file
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevronUp.imageset/Contents.json b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevronUp.imageset/Contents.json
index 1539b29215..7817cf8114 100644
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevronUp.imageset/Contents.json
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevronUp.imageset/Contents.json
@@ -1,16 +1,16 @@
{
"images" : [
{
- "idiom" : "universal",
- "filename" : "IconChevronUp.pdf"
+ "filename" : "icon-chevron-up.svg",
+ "idiom" : "universal"
}
],
"info" : {
- "version" : 1,
- "author" : "xcode"
+ "author" : "xcode",
+ "version" : 1
},
"properties" : {
- "template-rendering-intent" : "template",
- "preserves-vector-representation" : true
+ "preserves-vector-representation" : true,
+ "template-rendering-intent" : "template"
}
-} \ No newline at end of file
+}
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevronUp.imageset/IconChevronUp.pdf b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevronUp.imageset/IconChevronUp.pdf
deleted file mode 100644
index a1ee341016..0000000000
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevronUp.imageset/IconChevronUp.pdf
+++ /dev/null
Binary files differ
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevronUp.imageset/icon-chevron-up.svg b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevronUp.imageset/icon-chevron-up.svg
new file mode 100644
index 0000000000..9525597ca7
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevronUp.imageset/icon-chevron-up.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
+ <mask id="mask0_519_2709" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24">
+ <rect width="24" height="24" fill="#D9D9D9"/>
+ </mask>
+ <g mask="url(#mask0_519_2709)">
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M12.7071 9.29289C12.3166 8.90237 11.6834 8.90237 11.2929 9.29289L7.29289 13.2929C6.90237 13.6834 6.90237 14.3166 7.29289 14.7071C7.68342 15.0976 8.31658 15.0976 8.70711 14.7071L12 11.4142L15.2929 14.7071C15.6834 15.0976 16.3166 15.0976 16.7071 14.7071C17.0976 14.3166 17.0976 13.6834 16.7071 13.2929L12.7071 9.29289Z" fill="white"/>
+ </g>
+</svg> \ No newline at end of file
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconClose.imageset/Contents.json b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconClose.imageset/Contents.json
index f5ff7c0c45..2c3810a7f3 100644
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconClose.imageset/Contents.json
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconClose.imageset/Contents.json
@@ -1,7 +1,7 @@
{
"images" : [
{
- "filename" : "IconClose.pdf",
+ "filename" : "icon-cross-circle.svg",
"idiom" : "universal"
}
],
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconClose.imageset/IconClose.pdf b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconClose.imageset/IconClose.pdf
deleted file mode 100644
index fcff861b53..0000000000
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconClose.imageset/IconClose.pdf
+++ /dev/null
Binary files differ
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconClose.imageset/icon-cross-circle.svg b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconClose.imageset/icon-cross-circle.svg
new file mode 100644
index 0000000000..37698f5690
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconClose.imageset/icon-cross-circle.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 48 48" fill="none">
+ <mask id="mask0_146_119" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="48" height="48">
+ <path d="M48 0H0V48H48V0Z" fill="#D9D9D9"/>
+ </mask>
+ <g mask="url(#mask0_146_119)">
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M44 24C44 35.0457 35.0457 44 24 44C12.9543 44 4 35.0457 4 24C4 12.9543 12.9543 4 24 4C35.0457 4 44 12.9543 44 24ZM16.5858 16.5858C17.3668 15.8047 18.6332 15.8047 19.4142 16.5858L24 21.1716L28.5858 16.5858C29.3668 15.8047 30.6332 15.8047 31.4142 16.5858C32.1953 17.3668 32.1953 18.6332 31.4142 19.4142L26.8284 24L31.4142 28.5858C32.1953 29.3668 32.1953 30.6332 31.4142 31.4142C30.6332 32.1953 29.3668 32.1953 28.5858 31.4142L24 26.8284L19.4142 31.4142C18.6332 32.1953 17.3668 32.1953 16.5858 31.4142C15.8047 30.6332 15.8047 29.3668 16.5858 28.5858L21.1716 24L16.5858 19.4142C15.8047 18.6332 15.8047 17.3668 16.5858 16.5858Z" fill="white"/>
+ </g>
+</svg> \ No newline at end of file
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconCloseSml.imageset/Contents.json b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconCloseSml.imageset/Contents.json
deleted file mode 100644
index dc37d59299..0000000000
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconCloseSml.imageset/Contents.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "images" : [
- {
- "filename" : "IconCloseSml.pdf",
- "idiom" : "universal"
- }
- ],
- "info" : {
- "author" : "xcode",
- "version" : 1
- },
- "properties" : {
- "preserves-vector-representation" : true
- }
-}
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconCloseSml.imageset/IconCloseSml.pdf b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconCloseSml.imageset/IconCloseSml.pdf
deleted file mode 100644
index 9645ccfe88..0000000000
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconCloseSml.imageset/IconCloseSml.pdf
+++ /dev/null
Binary files differ
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconCopy.imageset/Contents.json b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconCopy.imageset/Contents.json
index 761f256346..c3bbb71217 100644
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconCopy.imageset/Contents.json
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconCopy.imageset/Contents.json
@@ -1,7 +1,7 @@
{
"images" : [
{
- "filename" : "IconCopy.pdf",
+ "filename" : "icon-copy.svg",
"idiom" : "universal"
}
],
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconCopy.imageset/IconCopy.pdf b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconCopy.imageset/IconCopy.pdf
deleted file mode 100644
index 45cc203c23..0000000000
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconCopy.imageset/IconCopy.pdf
+++ /dev/null
Binary files differ
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconCopy.imageset/icon-copy.svg b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconCopy.imageset/icon-copy.svg
new file mode 100644
index 0000000000..dc6f6fd30c
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconCopy.imageset/icon-copy.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
+ <mask id="mask0_519_2675" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24">
+ <rect width="24" height="24" fill="#D9D9D9"/>
+ </mask>
+ <g mask="url(#mask0_519_2675)">
+ <path d="M15.789 2H5.684C5.23778 2.00142 4.81021 2.19342 4.49469 2.53405C4.17916 2.87468 4.00132 3.33626 4 3.81799V16.546C4.00121 16.6587 4.02423 16.7699 4.06757 16.8724C4.11091 16.9749 4.17362 17.0665 4.25168 17.1413C4.32973 17.2161 4.42141 17.2725 4.52083 17.3068C4.62025 17.3411 4.72522 17.3526 4.829 17.3406C5.03911 17.3536 5.24569 17.278 5.40519 17.1298C5.56469 16.9816 5.66465 16.7723 5.684 16.546V3.81799H15.789C16.0033 3.80121 16.205 3.7022 16.3576 3.53885C16.5102 3.37549 16.6037 3.15859 16.621 2.92735C16.6095 2.69036 16.5189 2.46588 16.3659 2.29542C16.213 2.12495 16.008 2.02001 15.789 2ZM18.315 5.63597H9.053C8.60643 5.63711 8.17846 5.82913 7.86269 6.17002C7.54692 6.51092 7.36906 6.97294 7.368 7.45504V20.182C7.36932 20.6637 7.54716 21.1253 7.86269 21.466C8.17822 21.8066 8.60578 21.9986 9.052 22H18.315C18.7614 21.9989 19.1892 21.807 19.505 21.4663C19.8207 21.1257 19.9987 20.6639 20 20.182V7.45504C19.9989 6.97313 19.8212 6.51127 19.5057 6.1704C19.1901 5.82954 18.7614 5.6374 18.315 5.63597ZM18.315 20.182H9.053V7.45504H18.316L18.315 20.182Z" fill="white"/>
+ </g>
+</svg> \ No newline at end of file
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconExtlink.imageset/Contents.json b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconExtlink.imageset/Contents.json
index b95842ff5d..aad6a70216 100644
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconExtlink.imageset/Contents.json
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconExtlink.imageset/Contents.json
@@ -1,7 +1,7 @@
{
"images" : [
{
- "filename" : "IconExtlink.pdf",
+ "filename" : "icon-external.svg",
"idiom" : "universal",
"language-direction" : "left-to-right"
}
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconExtlink.imageset/IconExtlink.pdf b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconExtlink.imageset/IconExtlink.pdf
deleted file mode 100644
index a68cb6bca1..0000000000
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconExtlink.imageset/IconExtlink.pdf
+++ /dev/null
Binary files differ
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconExtlink.imageset/icon-external.svg b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconExtlink.imageset/icon-external.svg
new file mode 100644
index 0000000000..8399c901bd
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconExtlink.imageset/icon-external.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
+ <mask id="mask0_1744_3687" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24">
+ <rect width="24" height="24" fill="#D9D9D9"/>
+ </mask>
+ <g mask="url(#mask0_1744_3687)">
+ <path d="M16 20H6C5.73478 20 5.48043 19.8947 5.29289 19.7071C5.10536 19.5196 5 19.2652 5 19V9.00001C5 8.73479 5.10536 8.48044 5.29289 8.2929C5.48043 8.10537 5.73478 8.00001 6 8.00001H13.465L11.465 10H7V18H15V13.536L17 11.536V19C17 19.2652 16.8946 19.5196 16.7071 19.7071C16.5196 19.8947 16.2652 20 16 20ZM11 15C10.802 15.0002 10.6085 14.9416 10.4439 14.8316C10.2792 14.7217 10.151 14.5654 10.0752 14.3825C9.99953 14.1996 9.97981 13.9983 10.0186 13.8042C10.0573 13.6101 10.1528 13.4318 10.293 13.292L17.586 6.00001H13.991C13.7258 5.99882 13.4719 5.89232 13.2852 5.70393C13.0985 5.51555 12.9943 5.26073 12.9955 4.99551C12.9967 4.73029 13.1032 4.47641 13.2916 4.28972C13.48 4.10303 13.7348 3.99882 14 4.00001H20C20.2652 4.00001 20.5196 4.10537 20.7071 4.2929C20.8946 4.48044 21 4.73479 21 5.00001V11C21.0008 11.2652 20.8962 11.5199 20.7092 11.708C20.5223 11.8961 20.2682 12.0022 20.003 12.003C19.7378 12.0038 19.4831 11.8992 19.295 11.7122C19.1069 11.5253 19.0008 11.2712 19 11.006V7.41501L11.707 14.707C11.6144 14.8002 11.5042 14.8741 11.3829 14.9244C11.2615 14.9747 11.1314 15.0004 11 15Z" fill="white"/>
+ </g>
+</svg> \ No newline at end of file
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconFail.imageset/Contents.json b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconFail.imageset/Contents.json
index cb95467b59..f3f4332a02 100644
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconFail.imageset/Contents.json
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconFail.imageset/Contents.json
@@ -1,15 +1,15 @@
{
"images" : [
{
- "idiom" : "universal",
- "filename" : "IconFail.pdf"
+ "filename" : "negative.svg",
+ "idiom" : "universal"
}
],
"info" : {
- "version" : 1,
- "author" : "xcode"
+ "author" : "xcode",
+ "version" : 1
},
"properties" : {
"preserves-vector-representation" : true
}
-} \ No newline at end of file
+}
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconFail.imageset/IconFail.pdf b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconFail.imageset/IconFail.pdf
deleted file mode 100644
index e36941700a..0000000000
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconFail.imageset/IconFail.pdf
+++ /dev/null
Binary files differ
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconFail.imageset/negative.svg b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconFail.imageset/negative.svg
new file mode 100644
index 0000000000..544d0d4ed7
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconFail.imageset/negative.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="60px" height="60px" viewBox="0 0 60 60" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <title>icon-fail</title>
+ <desc>Mullvad VPN app</desc>
+ <defs></defs>
+ <circle id="bg-circle" fill="#FFFFFF" fill-rule="nonzero" cx="30" cy="30" r="22"></circle>
+ <path d="M33.2371523,30 L41.337119,21.9033278 C42.2203329,21.020473 42.223948,19.5681264 41.3300331,18.6745751 C40.429886,17.774794 38.9899682,17.7778525 38.0999667,18.6674921 L30,26.7641643 L21.9000333,18.6674921 C21.0100318,17.7778525 19.570114,17.774794 18.6699669,18.6745751 C17.776052,19.5681264 17.7796671,21.020473 18.662881,21.9033278 L26.7628477,30 L18.662881,38.0966722 C17.7796671,38.979527 17.776052,40.4318736 18.6699669,41.3254249 C19.570114,42.225206 21.0100318,42.2221475 21.9000333,41.3325079 L30,33.2358357 L38.0999667,41.3325079 C38.9899682,42.2221475 40.429886,42.225206 41.3300331,41.3254249 C42.223948,40.4318736 42.2203329,38.979527 41.337119,38.0966722 L33.2371523,30 Z" id="icon" fill="#E34039" fill-rule="nonzero"></path>
+</svg> \ No newline at end of file
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconInfo.imageset/Contents.json b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconInfo.imageset/Contents.json
index 87bd86d2ec..ef3a764cba 100644
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconInfo.imageset/Contents.json
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconInfo.imageset/Contents.json
@@ -1,7 +1,7 @@
{
"images" : [
{
- "filename" : "IconInfo.pdf",
+ "filename" : "icon-info-circle.svg",
"idiom" : "universal"
}
],
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconInfo.imageset/IconInfo.pdf b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconInfo.imageset/IconInfo.pdf
deleted file mode 100644
index 07f05b149b..0000000000
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconInfo.imageset/IconInfo.pdf
+++ /dev/null
@@ -1,71 +0,0 @@
-%PDF-1.5
-%
-4 0 obj
-<< /Length 5 0 R
- /Filter /FlateDecode
->>
-stream
-xUMn0>
-`=B̢2"a焁np<w"d
-fnâzL?A1H]بKQ8FXBGj=2q0rM𹂝b gK(5ly!%F.-W
-V8Pwf2q͖qhVkz"׏_~g 床mDrucY8-W:IMxAXUZݝe- }~V {+/ױzM+ٰze+j S27@>{~b
-endstream
-endobj
-5 0 obj
- 296
-endobj
-3 0 obj
-<<
- /ExtGState <<
- /a0 << /CA 1 /ca 1 >>
- >>
->>
-endobj
-2 0 obj
-<< /Type /Page % 1
- /Parent 1 0 R
- /MediaBox [ 0 0 18 18 ]
- /Contents 4 0 R
- /Group <<
- /Type /Group
- /S /Transparency
- /I true
- /CS /DeviceRGB
- >>
- /Resources 3 0 R
->>
-endobj
-1 0 obj
-<< /Type /Pages
- /Kids [ 2 0 R ]
- /Count 1
->>
-endobj
-6 0 obj
-<< /Producer (cairo 1.16.0 (https://cairographics.org))
- /CreationDate (20200729113941+00'00)
->>
-endobj
-7 0 obj
-<< /Type /Catalog
- /Pages 1 0 R
->>
-endobj
-xref
-0 8
-0000000000 65535 f
-0000000698 00000 n
-0000000482 00000 n
-0000000410 00000 n
-0000000015 00000 n
-0000000388 00000 n
-0000000763 00000 n
-0000000877 00000 n
-trailer
-<< /Size 8
- /Root 7 0 R
- /Info 6 0 R
->>
-startxref
-929
-%%EOF
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconInfo.imageset/icon-info-circle.svg b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconInfo.imageset/icon-info-circle.svg
new file mode 100644
index 0000000000..242a66186f
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconInfo.imageset/icon-info-circle.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
+ <mask id="mask0_116_1925" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24">
+ <path d="M24 0H0V24H24V0Z" fill="#D9D9D9"/>
+ </mask>
+ <g mask="url(#mask0_116_1925)">
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22ZM13 7C13 7.55228 12.5523 8 12 8C11.4477 8 11 7.55228 11 7C11 6.44772 11.4477 6 12 6C12.5523 6 13 6.44772 13 7ZM13 17C13 17.5523 12.5523 18 12 18C11.4477 18 11 17.5523 11 17V11C11 10.4477 11.4477 10 12 10C12.5523 10 13 10.4477 13 11V17Z" fill="white"/>
+ </g>
+</svg> \ No newline at end of file
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconObscure.imageset/Contents.json b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconObscure.imageset/Contents.json
index e3f7020b58..38876653b5 100644
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconObscure.imageset/Contents.json
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconObscure.imageset/Contents.json
@@ -1,7 +1,7 @@
{
"images" : [
{
- "filename" : "IconObscure.pdf",
+ "filename" : "icon-hide.svg",
"idiom" : "universal"
}
],
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconObscure.imageset/IconObscure.pdf b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconObscure.imageset/IconObscure.pdf
deleted file mode 100644
index 8d11004e3e..0000000000
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconObscure.imageset/IconObscure.pdf
+++ /dev/null
Binary files differ
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconObscure.imageset/icon-hide.svg b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconObscure.imageset/icon-hide.svg
new file mode 100644
index 0000000000..4b429fa965
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconObscure.imageset/icon-hide.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
+ <mask id="mask0_519_2677" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24">
+ <rect width="24" height="24" fill="#D9D9D9"/>
+ </mask>
+ <g mask="url(#mask0_519_2677)">
+ <path d="M12 6.98676C13.6716 6.98116 15.3108 7.45108 16.7292 8.34251C18.1476 9.23393 19.2876 10.5107 20.0182 12.0259C19.4909 13.1206 18.745 14.0938 17.8273 14.8845L19.1091 16.1764C20.3856 15.0435 21.3765 13.6208 22 12.0259C20.9982 9.4607 19.0645 7.37638 16.5922 6.1969C14.1198 5.01743 11.2945 4.83137 8.69091 5.67658L10.1909 7.18833C10.7858 7.06097 11.3918 6.99345 12 6.98676ZM11.0273 8.03124L12.9091 9.92781C13.4287 10.1585 13.8438 10.5769 14.0727 11.1006L15.9545 12.9971C16.0343 12.6764 16.0771 12.3474 16.0818 12.0168C16.0827 11.4763 15.9776 10.941 15.7728 10.4415C15.568 9.942 15.2673 9.48816 14.8882 9.10599C14.509 8.72382 14.0586 8.42084 13.563 8.2144C13.0674 8.00796 12.5363 7.90213 12 7.90297C11.6717 7.90384 11.3448 7.94695 11.0273 8.03124ZM2.91818 5.03523L5.35455 7.49068C3.85484 8.67366 2.69659 10.2396 2 12.0259C2.78976 14.0507 4.16597 15.7889 5.94951 17.0145C7.73305 18.2401 9.84134 18.8962 12 18.8975C13.3444 18.8988 14.6769 18.6439 15.9273 18.1462L19.0364 21.2797C19.2103 21.4298 19.434 21.5082 19.6628 21.4993C19.8916 21.4904 20.1086 21.3948 20.2705 21.2316C20.4324 21.0685 20.5273 20.8497 20.5361 20.6191C20.5449 20.3886 20.4671 20.1631 20.3182 19.9878C20 19.6369 4.53727 4.03381 4.2 3.7342C4.02018 3.58289 3.79335 3.5 3.55909 3.5C3.32483 3.5 3.098 3.58289 2.91818 3.7342C2.75557 3.91119 2.66524 4.14351 2.66524 4.38472C2.66524 4.62592 2.75557 4.85824 2.91818 5.03523ZM9.73636 11.9068L12.1091 14.2981C12.0736 14.3087 12.037 14.3149 12 14.3165C11.3972 14.3165 10.8192 14.0751 10.3929 13.6456C9.96672 13.216 9.72727 12.6334 9.72727 12.0259C9.72727 11.9801 9.73636 11.9526 9.73636 11.9068ZM6.64545 8.7917L8.23636 10.3951C8.02082 10.9114 7.90957 11.4658 7.90909 12.0259C7.90982 12.7078 8.07814 13.3788 8.39902 13.9791C8.7199 14.5794 9.18333 15.0902 9.74791 15.4659C10.3125 15.8416 10.9606 16.0705 11.6344 16.1321C12.3082 16.1938 12.9866 16.0862 13.6091 15.8191L14.5 16.7169C13.6858 16.9447 12.845 17.0618 12 17.0651C10.3284 17.0707 8.68921 16.6008 7.2708 15.7094C5.85239 14.8179 4.71238 13.5412 3.98182 12.0259C4.60619 10.7525 5.51856 9.64472 6.64545 8.7917Z" fill="white"/>
+ </g>
+</svg> \ No newline at end of file
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconReload.imageset/Contents.json b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconReload.imageset/Contents.json
index fc394e1bfb..7b4ca873dd 100644
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconReload.imageset/Contents.json
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconReload.imageset/Contents.json
@@ -1,7 +1,7 @@
{
"images" : [
{
- "filename" : "icon-reload.svg",
+ "filename" : "icon-reconnect.svg",
"idiom" : "universal"
}
],
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconReload.imageset/icon-reconnect.svg b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconReload.imageset/icon-reconnect.svg
new file mode 100644
index 0000000000..cc203ec2c5
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconReload.imageset/icon-reconnect.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
+ <mask id="mask0_605_13351" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24">
+ <rect width="24" height="24" fill="#D9D9D9"/>
+ </mask>
+ <g mask="url(#mask0_605_13351)">
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M6 12C6 8.68629 8.68629 6 12 6C13.7762 6 15.3729 6.77144 16.4724 8H15C14.4477 8 14 8.44772 14 9C14 9.55228 14.4477 10 15 10H19C19.5523 10 20 9.55228 20 9V5C20 4.44772 19.5523 4 19 4C18.4477 4 18 4.44772 18 5V6.70853C16.535 5.04867 14.3903 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20C14.13 20 16.0674 19.1663 17.5001 17.8094C17.9011 17.4296 17.9183 16.7967 17.5386 16.3957C17.1588 15.9947 16.5259 15.9775 16.1249 16.3572C15.0487 17.3764 13.5983 18 12 18C8.68629 18 6 15.3137 6 12Z" fill="white"/>
+ </g>
+</svg> \ No newline at end of file
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconReload.imageset/icon-reload.svg b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconReload.imageset/icon-reload.svg
deleted file mode 100644
index 6d443ac8b4..0000000000
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconReload.imageset/icon-reload.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
-<g id="icon">
-<mask id="mask0_774_19809" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24">
-<rect id="box" width="24" height="24" fill="#D9D9D9"/>
-</mask>
-<g mask="url(#mask0_774_19809)">
-<path id="vector" fill-rule="evenodd" clip-rule="evenodd" d="M6 12C6 8.68629 8.68629 6 12 6C13.7762 6 15.3729 6.77144 16.4724 8H15C14.4477 8 14 8.44772 14 9C14 9.55228 14.4477 10 15 10H19C19.5523 10 20 9.55228 20 9V5C20 4.44772 19.5523 4 19 4C18.4477 4 18 4.44772 18 5V6.70853C16.535 5.04867 14.3903 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20C14.13 20 16.0674 19.1663 17.5001 17.8094C17.9011 17.4296 17.9183 16.7967 17.5386 16.3957C17.1588 15.9947 16.5259 15.9775 16.1249 16.3572C15.0487 17.3764 13.5983 18 12 18C8.68629 18 6 15.3137 6 12Z" fill="white"/>
-</g>
-</g>
-</svg>
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSettings.imageset/Contents.json b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSettings.imageset/Contents.json
index 82d4cfeb72..f38fe946ef 100644
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSettings.imageset/Contents.json
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSettings.imageset/Contents.json
@@ -1,15 +1,15 @@
{
"images" : [
{
- "idiom" : "universal",
- "filename" : "IconSettings.pdf"
+ "filename" : "icon-settings-filled.svg",
+ "idiom" : "universal"
}
],
"info" : {
- "version" : 1,
- "author" : "xcode"
+ "author" : "xcode",
+ "version" : 1
},
"properties" : {
"preserves-vector-representation" : true
}
-} \ No newline at end of file
+}
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSettings.imageset/IconSettings.pdf b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSettings.imageset/IconSettings.pdf
deleted file mode 100644
index 2b24783204..0000000000
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSettings.imageset/IconSettings.pdf
+++ /dev/null
Binary files differ
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSettings.imageset/icon-settings-filled.svg b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSettings.imageset/icon-settings-filled.svg
new file mode 100644
index 0000000000..289bc9e4a0
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSettings.imageset/icon-settings-filled.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
+ <mask id="mask0_519_2674" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24">
+ <rect width="24" height="24" fill="#D9D9D9"/>
+ </mask>
+ <g mask="url(#mask0_519_2674)">
+ <path d="M14.0574 22H9.94487C9.82552 22.0017 9.7095 21.9606 9.6178 21.8842C9.52609 21.8078 9.46476 21.7011 9.44487 21.5834L9.05404 18.9326C8.43311 18.683 7.84779 18.3526 7.31321 17.95L4.75321 18.9501C4.69568 18.9705 4.63508 18.9809 4.57404 18.9809C4.48399 18.9826 4.3951 18.9603 4.31647 18.9164C4.23784 18.8725 4.1723 18.8085 4.12654 18.7309L2.07071 15.27C2.0102 15.1665 1.98944 15.0444 2.01228 14.9267C2.03513 14.8089 2.10003 14.7035 2.19487 14.63L4.36154 12.98C4.31687 12.6552 4.29321 12.3279 4.29071 12C4.29343 11.6725 4.31737 11.3454 4.36237 11.0209L2.19571 9.37088C2.0985 9.29903 2.0318 9.19332 2.00881 9.07465C1.98582 8.95598 2.0082 8.833 2.07154 8.73005L4.12654 5.27005C4.17041 5.19235 4.23426 5.12781 4.31149 5.08312C4.38871 5.03842 4.47649 5.01521 4.56571 5.01588C4.62982 5.01602 4.69336 5.02788 4.75321 5.05088L7.31321 6.05088C7.84873 5.65203 8.43252 5.32247 9.05071 5.07005L9.44154 2.41672C9.46142 2.29901 9.52276 2.19231 9.61446 2.11589C9.70617 2.03947 9.82218 1.99838 9.94154 2.00005H14.0574C14.1767 1.99838 14.2927 2.03947 14.3845 2.11589C14.4762 2.19231 14.5375 2.29901 14.5574 2.41672L14.9482 5.06672C15.5691 5.31679 16.1544 5.6474 16.689 6.05005L19.249 5.05005C19.3066 5.02962 19.3672 5.0192 19.4282 5.01922C19.5183 5.01751 19.6071 5.03975 19.6858 5.08368C19.7644 5.12761 19.83 5.19164 19.8757 5.26922L21.9324 8.73005C21.9919 8.83402 22.0121 8.95591 21.9893 9.07352C21.9665 9.19114 21.9022 9.29666 21.8082 9.37088L19.6415 11.0209C19.6857 11.3454 19.7091 11.6725 19.7115 12C19.7086 12.3279 19.6847 12.6552 19.6399 12.98L21.8065 14.63C21.9014 14.7035 21.9663 14.8089 21.9891 14.9267C22.012 15.0444 21.9912 15.1665 21.9307 15.27L19.874 18.7309C19.8301 18.8087 19.7661 18.8733 19.6887 18.918C19.6114 18.9627 19.5234 18.9859 19.434 18.9851C19.3699 18.985 19.3064 18.9731 19.2465 18.9501L16.6865 17.95C16.1512 18.3487 15.5673 18.6777 14.949 18.9292L14.5607 21.5834C14.5407 21.7017 14.4789 21.8088 14.3865 21.8853C14.2941 21.9618 14.1773 22.0025 14.0574 22ZM11.999 7.83338C11.175 7.83338 10.3694 8.07775 9.68416 8.53559C8.99896 8.99343 8.46491 9.64418 8.14954 10.4055C7.83418 11.1669 7.75166 12.0047 7.91244 12.8129C8.07321 13.6212 8.47004 14.3636 9.05276 14.9463C9.63548 15.529 10.3779 15.9259 11.1862 16.0867C11.9944 16.2474 12.8322 16.1649 13.5936 15.8495C14.3549 15.5342 15.0057 15.0001 15.4635 14.3149C15.9213 13.6297 16.1657 12.8241 16.1657 12C16.1646 10.8953 15.7253 9.83615 14.9441 9.05499C14.1629 8.27383 13.1038 7.83449 11.999 7.83338Z" fill="white"/>
+ </g>
+</svg> \ No newline at end of file
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSpinner.imageset/Contents.json b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSpinner.imageset/Contents.json
index 6cfa4fdda5..d4a87fb733 100644
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSpinner.imageset/Contents.json
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSpinner.imageset/Contents.json
@@ -1,15 +1,15 @@
{
"images" : [
{
- "idiom" : "universal",
- "filename" : "IconSpinner.pdf"
+ "filename" : "spinner.svg",
+ "idiom" : "universal"
}
],
"info" : {
- "version" : 1,
- "author" : "xcode"
+ "author" : "xcode",
+ "version" : 1
},
"properties" : {
"preserves-vector-representation" : true
}
-} \ No newline at end of file
+}
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSpinner.imageset/IconSpinner.pdf b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSpinner.imageset/IconSpinner.pdf
deleted file mode 100644
index 1856123f20..0000000000
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSpinner.imageset/IconSpinner.pdf
+++ /dev/null
@@ -1,71 +0,0 @@
-%PDF-1.5
-%
-4 0 obj
-<< /Length 5 0 R
- /Filter /FlateDecode
->>
-stream
-xmRIn$! ?*ɞ3ɑՒUR! bA{Z-BJvn5y>N1I]xIpQk(1ᘲ8d}&\e߽ ?E{>V`X&+6ȄcTt ߦA
-
-*7*q~Э$Fm1u<)Gy}̝UcޔU&!Vks#GlH@hB-!-:bb7)sV(aoP d=6HA˼D#CBlN1X%^u4Lþb$$hre`q(2X ܌+[mu42\X3B;{֑uV} P
-endstream
-endobj
-5 0 obj
- 406
-endobj
-3 0 obj
-<<
- /ExtGState <<
- /a0 << /CA 0.2 /ca 0.2 >>
- /a1 << /CA 1 /ca 1 >>
- >>
->>
-endobj
-2 0 obj
-<< /Type /Page % 1
- /Parent 1 0 R
- /MediaBox [ 0 0 60 60 ]
- /Contents 4 0 R
- /Group <<
- /Type /Group
- /S /Transparency
- /I true
- /CS /DeviceRGB
- >>
- /Resources 3 0 R
->>
-endobj
-1 0 obj
-<< /Type /Pages
- /Kids [ 2 0 R ]
- /Count 1
->>
-endobj
-6 0 obj
-<< /Producer (cairo 1.16.0 (https://cairographics.org))
- /CreationDate (20200729113941+00'00)
->>
-endobj
-7 0 obj
-<< /Type /Catalog
- /Pages 1 0 R
->>
-endobj
-xref
-0 8
-0000000000 65535 f
-0000000840 00000 n
-0000000624 00000 n
-0000000520 00000 n
-0000000015 00000 n
-0000000498 00000 n
-0000000905 00000 n
-0000001019 00000 n
-trailer
-<< /Size 8
- /Root 7 0 R
- /Info 6 0 R
->>
-startxref
-1071
-%%EOF
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSpinner.imageset/spinner.svg b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSpinner.imageset/spinner.svg
new file mode 100644
index 0000000000..580d56a349
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSpinner.imageset/spinner.svg
@@ -0,0 +1,17 @@
+<svg width="60px" height="60px" viewBox="0 0 60 60" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <title>Spinner</title>
+ <desc>Mulvad VPN app</desc>
+ <defs></defs>
+ <g id="container" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+ <path d="M27.6038221,6.11991768 C40.7924274,4.79654517 52.5567098,14.4152168 53.8800823,27.6038221 C55.2034548,40.7924274 45.5847832,52.5567098 32.3961779,53.8800823 C19.2075726,55.2034548 7.4432902,45.5847832 6.11991768,32.3961779 C4.79654517,19.2075726 14.4152168,7.4432902 27.6038221,6.11991768 Z M28.4025481,14.0799451 C19.6101445,14.9621935 13.1976968,22.8050484 14.0799451,31.5974519 C14.9621935,40.3898555 22.8050484,46.8023032 31.5974519,45.9200549 C40.3898555,45.0378065 46.8023032,37.1949516 45.9200549,28.4025481 C45.0378065,19.6101445 37.1949516,13.1976968 28.4025481,14.0799451 Z" id="track" fill-opacity="0.2" fill="#FFFFFF" fill-rule="nonzero"></path>
+ <path d="M25.2028561,6.48431564 C12.2155023,9.13370504 3.83492624,21.80979 6.48431564,34.7971439 C9.13370504,47.7844977 21.80979,56.1650738 34.7971439,53.5156844 C44.2988591,51.577357 51.5941458,44.163762 53.514681,34.8276709 C53.9598043,32.6638409 52.5665172,30.5488664 50.4026872,30.1037431 C48.2388572,29.6586198 46.1238826,31.0519068 45.6787593,33.2157369 C44.3979534,39.441981 39.5342463,44.3845633 33.1980959,45.6771229 C24.53986,47.4433825 16.0891367,41.8563318 14.3228771,33.1980959 C12.5566175,24.53986 18.1436682,16.0891367 26.8019041,14.3228771 C28.9664631,13.8813122 30.3632257,11.7686314 29.9216608,9.60407239 C29.4800959,7.43951342 27.3674151,6.04275074 25.2028561,6.48431564 Z" id="rotator" fill="#FFFFFF" fill-rule="nonzero">
+ <animateTransform attributeType="xml"
+ attributeName="transform"
+ type="rotate"
+ from="0 30 30"
+ to="360 30 30"
+ dur="0.6s"
+ repeatCount="indefinite"/>
+ </path>
+ </g>
+</svg> \ No newline at end of file
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSuccess.imageset/Contents.json b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSuccess.imageset/Contents.json
index a0b7acfdf3..db59ecbad2 100644
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSuccess.imageset/Contents.json
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSuccess.imageset/Contents.json
@@ -1,15 +1,15 @@
{
"images" : [
{
- "idiom" : "universal",
- "filename" : "IconSuccess.pdf"
+ "filename" : "positive.svg",
+ "idiom" : "universal"
}
],
"info" : {
- "version" : 1,
- "author" : "xcode"
+ "author" : "xcode",
+ "version" : 1
},
"properties" : {
"preserves-vector-representation" : true
}
-} \ No newline at end of file
+}
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSuccess.imageset/IconSuccess.pdf b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSuccess.imageset/IconSuccess.pdf
deleted file mode 100644
index f74a4f6de7..0000000000
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSuccess.imageset/IconSuccess.pdf
+++ /dev/null
@@ -1,68 +0,0 @@
-%PDF-1.5
-%
-4 0 obj
-<< /Length 5 0 R
- /Filter /FlateDecode
->>
-stream
-x]P[n0\{*~t?_*'G0 z:/hˆ$>PF⿺c6+f}DE񏟤5Lېo-==N.:xPC۔`YO†e'8$T}v&C'2'jV.m݋ZNihO{^3+i8l$Ɛ';˄`J
-endstream
-endobj
-5 0 obj
- 230
-endobj
-3 0 obj
-<<
- /ExtGState <<
- /a0 << /CA 1 /ca 1 >>
- >>
->>
-endobj
-2 0 obj
-<< /Type /Page % 1
- /Parent 1 0 R
- /MediaBox [ 0 0 60 60 ]
- /Contents 4 0 R
- /Group <<
- /Type /Group
- /S /Transparency
- /I true
- /CS /DeviceRGB
- >>
- /Resources 3 0 R
->>
-endobj
-1 0 obj
-<< /Type /Pages
- /Kids [ 2 0 R ]
- /Count 1
->>
-endobj
-6 0 obj
-<< /Producer (cairo 1.16.0 (https://cairographics.org))
- /CreationDate (20200729113941+00'00)
->>
-endobj
-7 0 obj
-<< /Type /Catalog
- /Pages 1 0 R
->>
-endobj
-xref
-0 8
-0000000000 65535 f
-0000000632 00000 n
-0000000416 00000 n
-0000000344 00000 n
-0000000015 00000 n
-0000000322 00000 n
-0000000697 00000 n
-0000000811 00000 n
-trailer
-<< /Size 8
- /Root 7 0 R
- /Info 6 0 R
->>
-startxref
-863
-%%EOF
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSuccess.imageset/positive.svg b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSuccess.imageset/positive.svg
new file mode 100644
index 0000000000..5a9e943406
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSuccess.imageset/positive.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="60px" height="60px" viewBox="0 0 60 60" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <title>icon-success</title>
+ <desc>Mullvad VPN app</desc>
+ <defs></defs>
+ <circle id="bg-circle" fill="#FFFFFF" fill-rule="nonzero" cx="30" cy="30" r="22"></circle>
+ <path d="M19.4142136,28.5857864 C18.633165,27.8047379 17.366835,27.8047379 16.5857864,28.5857864 C15.8047379,29.366835 15.8047379,30.633165 16.5857864,31.4142136 L24.5857864,39.4142136 C25.366835,40.1952621 26.633165,40.1952621 27.4142136,39.4142136 L43.4142136,23.4142136 C44.1952621,22.633165 44.1952621,21.366835 43.4142136,20.5857864 C42.633165,19.8047379 41.366835,19.8047379 40.5857864,20.5857864 L26,35.1715729 L19.4142136,28.5857864 Z" id="icon-tick" fill="#44AD4D" fill-rule="nonzero"></path>
+</svg> \ No newline at end of file
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconTick.imageset/Contents.json b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconTick.imageset/Contents.json
index 9dd11aed54..a77e9155b0 100644
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconTick.imageset/Contents.json
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconTick.imageset/Contents.json
@@ -1,16 +1,16 @@
{
"images" : [
{
- "idiom" : "universal",
- "filename" : "IconTick.pdf"
+ "filename" : "icon-checkmark.svg",
+ "idiom" : "universal"
}
],
"info" : {
- "version" : 1,
- "author" : "xcode"
+ "author" : "xcode",
+ "version" : 1
},
"properties" : {
- "template-rendering-intent" : "template",
- "preserves-vector-representation" : true
+ "preserves-vector-representation" : true,
+ "template-rendering-intent" : "template"
}
-} \ No newline at end of file
+}
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconTick.imageset/IconTick.pdf b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconTick.imageset/IconTick.pdf
deleted file mode 100644
index afd775f85f..0000000000
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconTick.imageset/IconTick.pdf
+++ /dev/null
@@ -1,70 +0,0 @@
-%PDF-1.5
-%
-4 0 obj
-<< /Length 5 0 R
- /Filter /FlateDecode
->>
-stream
-x]K
-1D9E_I'" ]{hxW9Hu<˫ot<3>E10b=I/(f$ > 2mi
-FDQmLנlRgX5!zĒE5hYT_߬<3YStfy'ײ̎$ 6jƵ]>
-endstream
-endobj
-5 0 obj
- 176
-endobj
-3 0 obj
-<<
- /ExtGState <<
- /a0 << /CA 1 /ca 1 >>
- >>
->>
-endobj
-2 0 obj
-<< /Type /Page % 1
- /Parent 1 0 R
- /MediaBox [ 0 0 24 24 ]
- /Contents 4 0 R
- /Group <<
- /Type /Group
- /S /Transparency
- /I true
- /CS /DeviceRGB
- >>
- /Resources 3 0 R
->>
-endobj
-1 0 obj
-<< /Type /Pages
- /Kids [ 2 0 R ]
- /Count 1
->>
-endobj
-6 0 obj
-<< /Producer (cairo 1.16.0 (https://cairographics.org))
- /CreationDate (20200729113941+00'00)
->>
-endobj
-7 0 obj
-<< /Type /Catalog
- /Pages 1 0 R
->>
-endobj
-xref
-0 8
-0000000000 65535 f
-0000000578 00000 n
-0000000362 00000 n
-0000000290 00000 n
-0000000015 00000 n
-0000000268 00000 n
-0000000643 00000 n
-0000000757 00000 n
-trailer
-<< /Size 8
- /Root 7 0 R
- /Info 6 0 R
->>
-startxref
-809
-%%EOF
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconTick.imageset/icon-checkmark.svg b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconTick.imageset/icon-checkmark.svg
new file mode 100644
index 0000000000..41602b60f2
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconTick.imageset/icon-checkmark.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
+ <mask id="mask0_521_2713" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24">
+ <rect width="24" height="24" fill="#D9D9D9"/>
+ </mask>
+ <g mask="url(#mask0_521_2713)">
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M19.2071 6.29289C19.5976 6.68342 19.5976 7.31658 19.2071 7.70711L10.2071 16.7071C9.83272 17.0815 9.23138 17.0992 8.83565 16.7474L4.33565 12.7474C3.92286 12.3805 3.88568 11.7484 4.2526 11.3356C4.61952 10.9229 5.25159 10.8857 5.66437 11.2526L9.45964 14.6262L17.7929 6.29289C18.1834 5.90237 18.8166 5.90237 19.2071 6.29289Z" fill="white"/>
+ </g>
+</svg> \ No newline at end of file
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconTickSml.imageset/Contents.json b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconTickSml.imageset/Contents.json
index 10a4cd7580..a77e9155b0 100644
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconTickSml.imageset/Contents.json
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconTickSml.imageset/Contents.json
@@ -1,7 +1,7 @@
{
"images" : [
{
- "filename" : "IconTickSml.pdf",
+ "filename" : "icon-checkmark.svg",
"idiom" : "universal"
}
],
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconTickSml.imageset/IconTickSml.pdf b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconTickSml.imageset/IconTickSml.pdf
deleted file mode 100644
index e1b433b799..0000000000
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconTickSml.imageset/IconTickSml.pdf
+++ /dev/null
Binary files differ
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconTickSml.imageset/icon-checkmark.svg b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconTickSml.imageset/icon-checkmark.svg
new file mode 100644
index 0000000000..41602b60f2
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconTickSml.imageset/icon-checkmark.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
+ <mask id="mask0_521_2713" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24">
+ <rect width="24" height="24" fill="#D9D9D9"/>
+ </mask>
+ <g mask="url(#mask0_521_2713)">
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M19.2071 6.29289C19.5976 6.68342 19.5976 7.31658 19.2071 7.70711L10.2071 16.7071C9.83272 17.0815 9.23138 17.0992 8.83565 16.7474L4.33565 12.7474C3.92286 12.3805 3.88568 11.7484 4.2526 11.3356C4.61952 10.9229 5.25159 10.8857 5.66437 11.2526L9.45964 14.6262L17.7929 6.29289C18.1834 5.90237 18.8166 5.90237 19.2071 6.29289Z" fill="white"/>
+ </g>
+</svg> \ No newline at end of file
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconUnobscure.imageset/Contents.json b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconUnobscure.imageset/Contents.json
index c69f047004..6f731b0f2d 100644
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconUnobscure.imageset/Contents.json
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconUnobscure.imageset/Contents.json
@@ -1,7 +1,7 @@
{
"images" : [
{
- "filename" : "IconUnobscure.pdf",
+ "filename" : "icon-show.svg",
"idiom" : "universal"
}
],
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconUnobscure.imageset/IconUnobscure.pdf b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconUnobscure.imageset/IconUnobscure.pdf
deleted file mode 100644
index ec2d68e3a2..0000000000
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconUnobscure.imageset/IconUnobscure.pdf
+++ /dev/null
Binary files differ
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconUnobscure.imageset/icon-show.svg b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconUnobscure.imageset/icon-show.svg
new file mode 100644
index 0000000000..a4b2aa591d
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconUnobscure.imageset/icon-show.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
+ <mask id="mask0_519_2676" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="24" height="24">
+ <rect width="24" height="24" fill="#D9D9D9"/>
+ </mask>
+ <g mask="url(#mask0_519_2676)">
+ <path d="M12 7.2334C13.6716 7.2281 15.3108 7.67263 16.7292 8.51588C18.1476 9.35913 19.2876 10.5669 20.0182 12.0003C19.2832 13.4303 18.1421 14.6351 16.7247 15.4778C15.3073 16.3204 13.6704 16.7671 12 16.7671C10.3296 16.7671 8.69269 16.3204 7.27529 15.4778C5.85789 14.6351 4.71684 13.4303 3.98182 12.0003C4.71238 10.5669 5.85239 9.35913 7.2708 8.51588C8.68921 7.67263 10.3284 7.2281 12 7.2334ZM12 5.5C9.84134 5.50123 7.73305 6.1219 5.94951 7.28125C4.16597 8.4406 2.78976 10.0849 2 12.0003C2.78879 13.9162 4.16477 15.5611 5.94855 16.7205C7.73232 17.8799 9.84112 18.5 12 18.5C14.1589 18.5 16.2677 17.8799 18.0515 16.7205C19.8352 15.5611 21.2112 13.9162 22 12.0003C21.2102 10.0849 19.834 8.4406 18.0505 7.28125C16.2669 6.1219 14.1587 5.50123 12 5.5ZM12 9.8335C12.4495 9.8335 12.8889 9.96058 13.2627 10.1987C13.6364 10.4367 13.9277 10.7751 14.0997 11.1711C14.2717 11.567 14.3168 12.0027 14.2291 12.423C14.1414 12.8433 13.9249 13.2294 13.6071 13.5324C13.2892 13.8354 12.8843 14.0418 12.4434 14.1254C12.0025 14.209 11.5456 14.1661 11.1303 14.0021C10.715 13.8381 10.36 13.5604 10.1103 13.204C9.86057 12.8477 9.72727 12.4288 9.72727 12.0003C9.72727 11.4256 9.96672 10.8745 10.3929 10.4681C10.8192 10.0618 11.3972 9.8335 12 9.8335ZM12 8.1001C11.1909 8.1001 10.4 8.32884 9.72721 8.75739C9.05447 9.18595 8.53012 9.79507 8.22049 10.5077C7.91086 11.2204 7.82985 12.0046 7.9877 12.7611C8.14555 13.5177 8.53517 14.2126 9.10729 14.7581C9.67942 15.3035 10.4083 15.675 11.2019 15.8255C11.9955 15.976 12.818 15.8987 13.5655 15.6035C14.313 15.3083 14.952 14.8084 15.4015 14.1671C15.851 13.5257 16.0909 12.7716 16.0909 12.0003C16.0892 10.9664 15.6577 9.97527 14.8909 9.2442C14.124 8.51313 13.0845 8.10171 12 8.1001Z" fill="white"/>
+ </g>
+</svg> \ No newline at end of file
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/LocationMarkerSecure.imageset/Contents.json b/ios/MullvadVPN/Supporting Files/Assets.xcassets/LocationMarkerSecure.imageset/Contents.json
index 5f66d5e4af..38c215078c 100644
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/LocationMarkerSecure.imageset/Contents.json
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/LocationMarkerSecure.imageset/Contents.json
@@ -1,15 +1,15 @@
{
"images" : [
{
- "idiom" : "universal",
- "filename" : "LocationMarkerSecure.pdf"
+ "filename" : "location-marker-secure.svg",
+ "idiom" : "universal"
}
],
"info" : {
- "version" : 1,
- "author" : "xcode"
+ "author" : "xcode",
+ "version" : 1
},
"properties" : {
"preserves-vector-representation" : true
}
-} \ No newline at end of file
+}
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/LocationMarkerSecure.imageset/LocationMarkerSecure.pdf b/ios/MullvadVPN/Supporting Files/Assets.xcassets/LocationMarkerSecure.imageset/LocationMarkerSecure.pdf
deleted file mode 100644
index ccfb321cac..0000000000
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/LocationMarkerSecure.imageset/LocationMarkerSecure.pdf
+++ /dev/null
Binary files differ
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/LocationMarkerSecure.imageset/location-marker-secure.svg b/ios/MullvadVPN/Supporting Files/Assets.xcassets/LocationMarkerSecure.imageset/location-marker-secure.svg
new file mode 100644
index 0000000000..087fe5d0d4
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/LocationMarkerSecure.imageset/location-marker-secure.svg
@@ -0,0 +1,19 @@
+<svg width="60px" height="60px" viewBox="0 0 60 60" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <title>location-marker-secure</title>
+ <desc>Mullvad VPN app</desc>
+ <defs>
+ <circle id="shadow-path" cx="30" cy="30" r="10"></circle>
+ <filter x="-50%" y="-50%" width="200%" height="200%" filterUnits="objectBoundingBox" id="shadow">
+ <feMorphology radius="1" operator="dilate" in="SourceAlpha" result="shadowSpreadOuter1"></feMorphology>
+ <feOffset dx="0" dy="4" in="shadowSpreadOuter1" result="shadowOffsetOuter1"></feOffset>
+ <feGaussianBlur stdDeviation="4" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
+ <feComposite in="shadowBlurOuter1" in2="SourceAlpha" operator="out" result="shadowBlurOuter1"></feComposite>
+ <feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.5 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
+ </filter>
+ </defs>
+ <circle id="outer-circle" fill-opacity="0.4" fill="#44AD4D" cx="30" cy="30" r="30"></circle>
+ <g id="inner-circle">
+ <use fill="black" fill-opacity="1" filter="url(#shadow)" xlink:href="#shadow-path"></use>
+ <use stroke="#FFFFFF" stroke-width="2" fill="#44AD4D" fill-rule="evenodd" xlink:href="#shadow-path"></use>
+ </g>
+</svg> \ No newline at end of file
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/LocationMarkerUnsecure.imageset/Contents.json b/ios/MullvadVPN/Supporting Files/Assets.xcassets/LocationMarkerUnsecure.imageset/Contents.json
index c877c5f83c..8d9fd6c253 100644
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/LocationMarkerUnsecure.imageset/Contents.json
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/LocationMarkerUnsecure.imageset/Contents.json
@@ -1,15 +1,15 @@
{
"images" : [
{
- "idiom" : "universal",
- "filename" : "LocationMarkerUnsecure.pdf"
+ "filename" : "location-marker-unsecure.svg",
+ "idiom" : "universal"
}
],
"info" : {
- "version" : 1,
- "author" : "xcode"
+ "author" : "xcode",
+ "version" : 1
},
"properties" : {
"preserves-vector-representation" : true
}
-} \ No newline at end of file
+}
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/LocationMarkerUnsecure.imageset/LocationMarkerUnsecure.pdf b/ios/MullvadVPN/Supporting Files/Assets.xcassets/LocationMarkerUnsecure.imageset/LocationMarkerUnsecure.pdf
deleted file mode 100644
index e407bb352a..0000000000
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/LocationMarkerUnsecure.imageset/LocationMarkerUnsecure.pdf
+++ /dev/null
Binary files differ
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/LocationMarkerUnsecure.imageset/location-marker-unsecure.svg b/ios/MullvadVPN/Supporting Files/Assets.xcassets/LocationMarkerUnsecure.imageset/location-marker-unsecure.svg
new file mode 100644
index 0000000000..c46bdde2d7
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/LocationMarkerUnsecure.imageset/location-marker-unsecure.svg
@@ -0,0 +1,19 @@
+<svg width="60px" height="60px" viewBox="0 0 60 60" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <title>location-marker-unsecure</title>
+ <desc>Mullvad VPN app</desc>
+ <defs>
+ <circle id="shadow-path" cx="30" cy="30" r="10"></circle>
+ <filter x="-50%" y="-50%" width="200%" height="200%" filterUnits="objectBoundingBox" id="shadow">
+ <feMorphology radius="1" operator="dilate" in="SourceAlpha" result="shadowSpreadOuter1"></feMorphology>
+ <feOffset dx="0" dy="4" in="shadowSpreadOuter1" result="shadowOffsetOuter1"></feOffset>
+ <feGaussianBlur stdDeviation="4" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
+ <feComposite in="shadowBlurOuter1" in2="SourceAlpha" operator="out" result="shadowBlurOuter1"></feComposite>
+ <feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.5 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
+ </filter>
+ </defs>
+ <circle id="outer-circle" fill-opacity="0.4" fill="#E34039" cx="30" cy="30" r="30"></circle>
+ <g id="inner-circle">
+ <use fill="black" fill-opacity="1" filter="url(#shadow)" xlink:href="#shadow-path"></use>
+ <use stroke="#FFFFFF" stroke-width="2" fill="#E34039" fill-rule="evenodd" xlink:href="#shadow-path"></use>
+ </g>
+</svg> \ No newline at end of file
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/LogoIcon.imageset/Contents.json b/ios/MullvadVPN/Supporting Files/Assets.xcassets/LogoIcon.imageset/Contents.json
index 4199af9556..1c02bd45e7 100644
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/LogoIcon.imageset/Contents.json
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/LogoIcon.imageset/Contents.json
@@ -1,15 +1,15 @@
{
"images" : [
{
- "idiom" : "universal",
- "filename" : "LogoIcon.pdf"
+ "filename" : "logo-icon.svg",
+ "idiom" : "universal"
}
],
"info" : {
- "version" : 1,
- "author" : "xcode"
+ "author" : "xcode",
+ "version" : 1
},
"properties" : {
"preserves-vector-representation" : true
}
-} \ No newline at end of file
+}
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/LogoIcon.imageset/LogoIcon.pdf b/ios/MullvadVPN/Supporting Files/Assets.xcassets/LogoIcon.imageset/LogoIcon.pdf
deleted file mode 100644
index 71201faeb9..0000000000
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/LogoIcon.imageset/LogoIcon.pdf
+++ /dev/null
Binary files differ
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/LogoIcon.imageset/logo-icon.svg b/ios/MullvadVPN/Supporting Files/Assets.xcassets/LogoIcon.imageset/logo-icon.svg
new file mode 100644
index 0000000000..9df70ac22b
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/LogoIcon.imageset/logo-icon.svg
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg version="1.1" id="logo_00000183244726354177486890000003471613280854675596_"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 252 252"
+ style="enable-background:new 0 0 252 252;" xml:space="preserve">
+<style type="text/css">
+ .background{fill-rule:evenodd;clip-rule:evenodd;fill:#192E45;}
+ .fur{fill-rule:evenodd;clip-rule:evenodd;fill:#D2943B;}
+ .nose{fill-rule:evenodd;clip-rule:evenodd;fill:#FFCD86;}
+ .helmet{fill-rule:evenodd;clip-rule:evenodd;fill:#FFD524;}
+ .lamp-light{fill:#FFFFFF;}
+ .lamp-ring{fill:#192E45;}
+</style>
+<g id="mole">
+ <path id="bg" class="background" d="M0,126c0,69.6,56.5,126,126,126s126-56.4,126-126S195.6,0,126,0S0,56.4,0,126L0,126L0,126L0,126z"/>
+ <g id="body">
+ <path id="fur" class="fur" d="M23.9,96.6L16.8,111l9.6-13.4c0,0.1-0.6,19.3-0.6,19.3l2.7-14.5c7.2,13.7,23.1,34.8,45.4,50.5
+ c1.7,1.2,3.9,3.3,4.6,4.1c0,0,21.3,10.8,54.1-14.2c0.3-0.2,0.7-0.4,1-0.6l0.5,0.3l7.2,4.8c-2.5-0.7-7.3-1.9-7.3-1.9
+ c-15.8,18.2-41.5,21.2-55.3,12c-0.6-0.4-4,1-4.6,3c-0.4,1.1,0,2.3,0.5,3.2c2.8,5.2,7,4.7,5,10.8c-1.4,3.3-3.4,6.5-5.6,9.5
+ c-4.6,6.2-11.8,11.7-11.1,15c32.6,40.2,106.1,34.6,134.1-1.3c-0.4-5.2-8.6-7.7-14.3-20.4c1.6,0.5,4,1.2,4,1.1
+ c0-0.1-6.8-11.1-7.1-12.2l4.4,0.3c0,0-5.8-7.2-6-7.9l5.9-0.8c0,0-7.4-8.5-7.5-9.2l7.5,1.2l-8.2-9.9h3.9l-4.6-6.7l-37.3-14.7
+ c-14.3-8.9-27-19.8-36.6-28.2l-19.3-9.4C63.3,79.4,46,79.9,35.4,82l6.8-11.6l-9.9,11.8C31.7,82,31,81.8,31,81.8l0.7-15l-3.3,14
+ L23.9,96.6z"/>
+ <path id="nose" class="nose" d="M28.4,80.8c-4.9-2.3-10.6,1-11.6,5.5c-1.2,4.3,1.8,9.6,7.1,10.3C28.9,93.5,33.2,85.5,28.4,80.8z"/>
+ </g>
+ <g id="helmet">
+ <path id="helmet" class="helmet" d="M101.2,69.9c-1.5-4.1-1.1-9.4,1-14.4c3-6.9,8.7-11.5,14.1-11.5c1.1,0,2.1,0.2,3.1,0.6
+ c3.1-2.8,6.7-5.1,10.7-6.7c22-8.8,54.3,6.9,62.6,28.5c4,10.5,2.8,21.9-0.6,32.4c-2.8,8.6-13,21-9.2,30.3
+ c-1.5-0.4-32.8-11-41.8-15.8c-14.1-8.8-26.7-19.6-36.2-27.9l-0.3-0.3l-32-15.2c-0.4-0.2-0.8-0.4-1.1-0.6
+ C75.9,69.5,93.4,71.6,101.2,69.9"/>
+ <g id="lamp">
+
+ <ellipse id="lamp-light" transform="matrix(0.4007 -0.9162 0.9162 0.4007 12.8553 140.4693)" class="lamp-light" cx="113.8" cy="60.4" rx="13.6" ry="8.1"/>
+ <path id="lamp-ring" class="lamp-ring" d="M120.1,46.1c-5.3-2.3-12.4,2.2-15.9,10.1s-1.9,16.1,3.4,18.5c5.3,2.3,12.4-2.2,15.9-10.1
+ S125.4,48.5,120.1,46.1z M120.6,63.4c-2.8,6.3-8.1,10.1-11.8,8.5c-3.8-1.7-4.6-8.1-1.8-14.5c2.8-6.3,8.1-10.1,11.9-8.5
+ C122.6,50.6,123.4,57.1,120.6,63.4z"/>
+ </g>
+ </g>
+</g>
+</svg>
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/LogoText.imageset/Contents.json b/ios/MullvadVPN/Supporting Files/Assets.xcassets/LogoText.imageset/Contents.json
index 7582073b99..f15c0d8b35 100644
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/LogoText.imageset/Contents.json
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/LogoText.imageset/Contents.json
@@ -1,7 +1,7 @@
{
"images" : [
{
- "filename" : "LogoText.pdf",
+ "filename" : "logo-text.svg",
"idiom" : "universal"
}
],
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/LogoText.imageset/LogoText.pdf b/ios/MullvadVPN/Supporting Files/Assets.xcassets/LogoText.imageset/LogoText.pdf
deleted file mode 100644
index 90f2c0a132..0000000000
--- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/LogoText.imageset/LogoText.pdf
+++ /dev/null
Binary files differ
diff --git a/ios/MullvadVPN/Supporting Files/Assets.xcassets/LogoText.imageset/logo-text.svg b/ios/MullvadVPN/Supporting Files/Assets.xcassets/LogoText.imageset/logo-text.svg
new file mode 100644
index 0000000000..c3296186c2
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/LogoText.imageset/logo-text.svg
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generator: Adobe Illustrator 23.0.6, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<svg id="Mullvad_VPN_Logo_Positive" width="959.5" height="103.7" version="1.1" viewBox="0 0 959.5 103.7" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
+<style type="text/css">
+ .st4{fill:#FFFFFF;}
+</style>
+<g transform="translate(-381.4,-143.1)">
+ <path class="st4" d="m381.4 144.7c0-0.9 0.6-1.5 1.5-1.5h17.8c1.2 0 2 0.4 2.4 1.5l25.8 58.2h0.6l25.3-58.2c0.4-1 1.2-1.5 2.4-1.5h17.5c0.9 0 1.5 0.6 1.5 1.5v99c0 0.9-0.6 1.5-1.5 1.5h-17c-0.9 0-1.5-0.6-1.5-1.5v-57.4h-0.6l-18.9 43c-0.6 1.4-1.5 2-2.8 2h-10.3c-1.3 0-2.2-0.6-2.8-2l-18.9-43h-0.6v57.4c0 0.9-0.6 1.5-1.5 1.5h-16.9c-0.9 0-1.5-0.6-1.5-1.5z"/>
+ <path class="st4" d="m498.4 207.7v-63c0-0.9 0.6-1.5 1.5-1.5h19c0.9 0 1.5 0.6 1.5 1.5v63.6c0 12.1 6.8 19 17.1 19 10.2 0 16.9-6.9 16.9-19v-63.6c0-0.9 0.6-1.5 1.5-1.5h19c0.9 0 1.5 0.6 1.5 1.5v63c0 25.3-16.2 39.1-39 39.1s-39-13.8-39-39.1z"/>
+ <path class="st4" d="m598.6 144.7c0-0.9 0.6-1.5 1.5-1.5h19c0.9 0 1.5 0.6 1.5 1.5v79.9c0 0.6 0.3 0.9 0.9 0.9h45c0.9 0 1.5 0.6 1.5 1.5v16.6c0 0.9-0.6 1.5-1.5 1.5h-66.4c-0.9 0-1.5-0.6-1.5-1.5z"/>
+ <path class="st4" d="m684.1 144.7c0-0.9 0.6-1.5 1.5-1.5h19c0.9 0 1.5 0.6 1.5 1.5v79.9c0 0.6 0.3 0.9 0.9 0.9h45c0.9 0 1.5 0.6 1.5 1.5v16.6c0 0.9-0.6 1.5-1.5 1.5h-66.4c-0.9 0-1.5-0.6-1.5-1.5z"/>
+ <path class="st4" d="m785.1 245.1c-1 0-1.6-0.6-1.9-1.5l-32.4-98.8c-0.3-1.1 0.3-1.6 1.3-1.6h19.5c1 0 1.7 0.4 2 1.5l20.4 66.9h0.4l19.8-66.9c0.3-1 0.9-1.5 1.9-1.5h19.3c0.9 0 1.5 0.6 1.2 1.6l-32.4 98.8c-0.3 0.9-0.9 1.5-1.8 1.5z"/>
+ <path class="st4" d="m872.5 144.7c0.3-0.9 0.9-1.5 2-1.5h18.9c1 0 1.6 0.6 1.9 1.5l34.5 99c0.3 0.9 0 1.5-1 1.5h-19.5c-1 0-1.7-0.5-2-1.5l-5.8-17.8h-35.7l-5.7 17.8c-0.3 1-0.9 1.5-2 1.5h-19.6c-1 0-1.3-0.6-1-1.5zm23 62.4-11.5-35.7h-0.4l-11.5 35.7z"/>
+ <path class="st4" d="m944.7 144.7c0-0.9 0.6-1.5 1.5-1.5h37.9c17.8 0 30.3 7.6 35.2 22.9 1.8 5.7 2.7 11.4 2.7 28s-0.9 22.3-2.7 28c-4.9 15.3-17.4 22.9-35.2 22.9h-37.9c-0.9 0-1.5-0.6-1.5-1.5zm22.9 80.8h11.5c10.2 0 16.3-3 18.9-11.2 1-3 1.7-6.9 1.7-20.1s-0.6-17.1-1.7-20.1c-2.5-8.2-8.7-11.2-18.9-11.2h-11.5c-0.6 0-0.9 0.3-0.9 0.9v60.9c0 0.5 0.3 0.8 0.9 0.8z"/>
+ <path class="st4" d="m1102.5 245.1c-1.1 0-1.7-0.6-2-1.5l-32.4-98.8c-0.3-1.1 0.3-1.6 1.3-1.6h19.5c1 0 1.7 0.4 2 1.5l20.4 66.9h0.4l19.8-66.9c0.3-1 0.9-1.5 1.9-1.5h19.3c0.9 0 1.5 0.6 1.2 1.6l-32.4 98.8c-0.3 0.9-0.9 1.5-1.8 1.5z"/>
+ <path class="st4" d="m1170 245.1c-0.9 0-1.5-0.6-1.5-1.5v-99c0-0.9 0.6-1.5 1.5-1.5h39.6c22.2 0 35.5 13.3 35.5 32.8 0 19.2-13.5 32.7-35.5 32.7h-18.1c-0.6 0-0.9 0.3-0.9 0.9v34c0 0.9-0.6 1.5-1.5 1.5h-19.1zm53.1-69.1c0-8.2-5.5-13.8-14.8-13.8h-16.8c-0.6 0-0.9 0.3-0.9 0.9v25.6c0 0.6 0.3 0.9 0.9 0.9h16.8c9.2 0.1 14.8-5.3 14.8-13.6z"/>
+ <path class="st4" d="m1262.2 144.7c0-0.9 0.6-1.5 1.5-1.5h18c1 0 2 0.4 2.5 1.5l36 64.2h0.8v-64.2c0-0.9 0.6-1.5 1.5-1.5h16.9c0.9 0 1.5 0.6 1.5 1.5v99c0 0.9-0.6 1.5-1.5 1.5h-17.8c-1.2 0-2-0.5-2.5-1.5l-36.1-64h-0.8v64c0 0.9-0.6 1.5-1.5 1.5h-16.9c-0.9 0-1.5-0.6-1.5-1.5v-99z"/>
+</g>
+</svg>
diff --git a/ios/MullvadVPN/UI appearance/UIMetrics.swift b/ios/MullvadVPN/UI appearance/UIMetrics.swift
index 91cc02e9da..813d333080 100644
--- a/ios/MullvadVPN/UI appearance/UIMetrics.swift
+++ b/ios/MullvadVPN/UI appearance/UIMetrics.swift
@@ -68,7 +68,8 @@ enum UIMetrics {
}
enum Button {
- static let barButtonSize: CGFloat = 44
+ static let barButtonSize: CGFloat = 32
+ static let accountInfoSize: CGFloat = 18
static let minimumTappableAreaSize = CGSize(width: 44, height: 44)
}
diff --git a/ios/MullvadVPN/View controllers/Account/AccountDeviceRow.swift b/ios/MullvadVPN/View controllers/Account/AccountDeviceRow.swift
index aa1fbe0502..cb2524c427 100644
--- a/ios/MullvadVPN/View controllers/Account/AccountDeviceRow.swift
+++ b/ios/MullvadVPN/View controllers/Account/AccountDeviceRow.swift
@@ -44,7 +44,9 @@ class AccountDeviceRow: UIView {
button.isExclusiveTouch = true
button.setAccessibilityIdentifier(.infoButton)
button.tintColor = .white
- button.setImage(UIImage(named: "IconInfo"), for: .normal)
+ button.setBackgroundImage(UIImage.Buttons.info, for: .normal)
+ button.heightAnchor.constraint(equalToConstant: UIMetrics.Button.accountInfoSize).isActive = true
+ button.widthAnchor.constraint(equalTo: button.heightAnchor, multiplier: 1).isActive = true
return button
}()
diff --git a/ios/MullvadVPN/View controllers/Account/AccountNumberRow.swift b/ios/MullvadVPN/View controllers/Account/AccountNumberRow.swift
index b7fe8626de..c14197f32b 100644
--- a/ios/MullvadVPN/View controllers/Account/AccountNumberRow.swift
+++ b/ios/MullvadVPN/View controllers/Account/AccountNumberRow.swift
@@ -141,9 +141,9 @@ class AccountNumberRow: UIView {
private var showHideImage: UIImage? {
if isObscured {
- return UIImage(named: "IconUnobscure")
+ return UIImage.Buttons.show
} else {
- return UIImage(named: "IconObscure")
+ return UIImage.Buttons.hide
}
}
@@ -211,12 +211,12 @@ class AccountNumberRow: UIView {
private func showCheckmark(_ showCheckmark: Bool) {
if showCheckmark {
- let tickIcon = UIImage(named: "IconTick")
+ let tickIcon = UIImage.tick
copyButton.setImage(tickIcon, for: .normal)
copyButton.tintColor = .successColor
} else {
- let copyIcon = UIImage(named: "IconCopy")
+ let copyIcon = UIImage.Buttons.copy
copyButton.setImage(copyIcon, for: .normal)
copyButton.tintColor = .white
diff --git a/ios/MullvadVPN/View controllers/Account/RestorePurchasesView.swift b/ios/MullvadVPN/View controllers/Account/RestorePurchasesView.swift
index 80cd434f99..3de7d1376a 100644
--- a/ios/MullvadVPN/View controllers/Account/RestorePurchasesView.swift
+++ b/ios/MullvadVPN/View controllers/Account/RestorePurchasesView.swift
@@ -34,9 +34,11 @@ class RestorePurchasesView: UIView {
private lazy var infoButton: UIButton = {
let button = IncreasedHitButton(type: .custom)
button.isExclusiveTouch = true
- button.setImage(UIImage(resource: .iconInfo), for: .normal)
+ button.setBackgroundImage(UIImage.Buttons.info, for: .normal)
button.tintColor = .white
button.addTarget(self, action: #selector(didTapInfoButton), for: .touchUpInside)
+ button.heightAnchor.constraint(equalToConstant: UIMetrics.Button.accountInfoSize).isActive = true
+ button.widthAnchor.constraint(equalTo: button.heightAnchor, multiplier: 1).isActive = true
return button
}()
diff --git a/ios/MullvadVPN/View controllers/Alert/AlertViewController.swift b/ios/MullvadVPN/View controllers/Alert/AlertViewController.swift
index b83286e1ee..33fd20a7f1 100644
--- a/ios/MullvadVPN/View controllers/Alert/AlertViewController.swift
+++ b/ios/MullvadVPN/View controllers/Alert/AlertViewController.swift
@@ -31,11 +31,11 @@ enum AlertIcon {
fileprivate var image: UIImage? {
switch self {
case .alert:
- return UIImage(named: "IconAlert")?.withTintColor(.dangerColor)
+ return UIImage.Buttons.alert.withTintColor(.dangerColor)
case .warning:
- return UIImage(named: "IconAlert")?.withTintColor(.white)
+ return UIImage.Buttons.alert.withTintColor(.white)
case .info:
- return UIImage(named: "IconInfo")?.withTintColor(.white)
+ return UIImage.Buttons.info.withTintColor(.white)
default:
return nil
}
@@ -284,7 +284,7 @@ class AlertViewController: UIViewController {
imageContainerView.addConstrainedSubviews([imageView]) {
imageView.pinEdges(.init([.top(0), .bottom(0)]), to: imageContainerView)
imageView.centerXAnchor.constraint(equalTo: imageContainerView.centerXAnchor, constant: 0)
- imageView.heightAnchor.constraint(equalToConstant: 44)
+ imageView.heightAnchor.constraint(equalToConstant: 48)
imageView.widthAnchor.constraint(equalTo: imageView.heightAnchor, multiplier: 1)
}
diff --git a/ios/MullvadVPN/View controllers/CreationAccount/Welcome/WelcomeContentView.swift b/ios/MullvadVPN/View controllers/CreationAccount/Welcome/WelcomeContentView.swift
index 5ed49896a0..ec5db174a9 100644
--- a/ios/MullvadVPN/View controllers/CreationAccount/Welcome/WelcomeContentView.swift
+++ b/ios/MullvadVPN/View controllers/CreationAccount/Welcome/WelcomeContentView.swift
@@ -89,7 +89,7 @@ final class WelcomeContentView: UIView, Sendable {
button.setAccessibilityIdentifier(.infoButton)
button.tintColor = .white
button.translatesAutoresizingMaskIntoConstraints = false
- button.setImage(UIImage(named: "IconInfo"), for: .normal)
+ button.setImage(UIImage.Buttons.info, for: .normal)
button.setContentHuggingPriority(.defaultHigh, for: .horizontal)
button.setContentCompressionResistancePriority(.defaultHigh, for: .horizontal)
return button
diff --git a/ios/MullvadVPN/View controllers/DeviceList/DeviceRowView.swift b/ios/MullvadVPN/View controllers/DeviceList/DeviceRowView.swift
index 313ca732aa..b93b6ce5a5 100644
--- a/ios/MullvadVPN/View controllers/DeviceList/DeviceRowView.swift
+++ b/ios/MullvadVPN/View controllers/DeviceList/DeviceRowView.swift
@@ -35,7 +35,7 @@ class DeviceRowView: UIView {
}()
let removeButton: UIButton = {
- let image = UIImage(named: "IconClose")?
+ let image = UIImage.Buttons.close
.withTintColor(
.white.withAlphaComponent(0.4),
renderingMode: .alwaysOriginal
diff --git a/ios/MullvadVPN/View controllers/Login/AccountInputGroupView.swift b/ios/MullvadVPN/View controllers/Login/AccountInputGroupView.swift
index f5530b3088..d3a2cc142d 100644
--- a/ios/MullvadVPN/View controllers/Login/AccountInputGroupView.swift
+++ b/ios/MullvadVPN/View controllers/Login/AccountInputGroupView.swift
@@ -22,7 +22,7 @@ final class AccountInputGroupView: UIView {
let sendButton: UIButton = {
let button = UIButton(type: .custom)
button.translatesAutoresizingMaskIntoConstraints = false
- button.setImage(UIImage(named: "IconArrow"), for: .normal)
+ button.setImage(UIImage.Buttons.rightArrow, for: .normal)
button.setContentCompressionResistancePriority(.defaultHigh, for: .horizontal)
button.setAccessibilityIdentifier(.loginTextFieldButton)
button.accessibilityLabel = NSLocalizedString(
@@ -125,7 +125,7 @@ final class AccountInputGroupView: UIView {
value: "Remove last used account",
comment: ""
)
- button.configuration?.image = UIImage(resource: .iconCloseSml).withTintColor(.primaryColor)
+ button.configuration?.image = UIImage.Buttons.closeSmall.withTintColor(.primaryColor)
button.configuration?.title = " "
return button
}()
diff --git a/ios/MullvadVPN/View controllers/RelayFilter/ChipViewCell.swift b/ios/MullvadVPN/View controllers/RelayFilter/ChipViewCell.swift
index 6daba0ff3c..3e1ddff30f 100644
--- a/ios/MullvadVPN/View controllers/RelayFilter/ChipViewCell.swift
+++ b/ios/MullvadVPN/View controllers/RelayFilter/ChipViewCell.swift
@@ -37,7 +37,7 @@ class ChipViewCell: UIView, UIContentView {
private let closeButton: IncreasedHitButton = {
let button = IncreasedHitButton()
var buttonConfiguration = UIButton.Configuration.plain()
- buttonConfiguration.image = UIImage(resource: .iconCloseSml).withTintColor(.white.withAlphaComponent(0.6))
+ buttonConfiguration.image = UIImage.Buttons.closeSmall.withTintColor(.white.withAlphaComponent(0.6))
buttonConfiguration.contentInsets = .zero
button.setAccessibilityIdentifier(.relayFilterChipCloseButton)
button.configuration = buttonConfiguration
diff --git a/ios/MullvadVPN/View controllers/SelectLocation/LocationCell.swift b/ios/MullvadVPN/View controllers/SelectLocation/LocationCell.swift
index 6480286db8..1421db97c9 100644
--- a/ios/MullvadVPN/View controllers/SelectLocation/LocationCell.swift
+++ b/ios/MullvadVPN/View controllers/SelectLocation/LocationCell.swift
@@ -33,7 +33,7 @@ class LocationCell: UITableViewCell {
}()
private let tickImageView: UIImageView = {
- let imageView = UIImageView(image: UIImage(resource: .iconTick))
+ let imageView = UIImageView(image: UIImage.tick)
imageView.tintColor = .white
return imageView
}()
@@ -67,8 +67,8 @@ class LocationCell: UITableViewCell {
}
private var behavior: LocationCellBehavior = .select
- private let chevronDown = UIImage(resource: .iconChevronDown)
- private let chevronUp = UIImage(resource: .iconChevronUp)
+ private let chevronDown = UIImage.CellDecoration.chevronDown
+ private let chevronUp = UIImage.CellDecoration.chevronUp
var isDisabled = false {
didSet {
diff --git a/ios/MullvadVPN/View controllers/Settings/SelectableSettingsCell.swift b/ios/MullvadVPN/View controllers/Settings/SelectableSettingsCell.swift
index 60f31a4aef..b458219f77 100644
--- a/ios/MullvadVPN/View controllers/Settings/SelectableSettingsCell.swift
+++ b/ios/MullvadVPN/View controllers/Settings/SelectableSettingsCell.swift
@@ -10,7 +10,7 @@ import UIKit
class SelectableSettingsCell: SettingsCell {
let tickImageView: UIImageView = {
- let imageView = UIImageView(image: UIImage(named: "IconTick"))
+ let imageView = UIImageView(image: UIImage.tick)
imageView.contentMode = .center
imageView.tintColor = .white
imageView.alpha = 0
diff --git a/ios/MullvadVPN/View controllers/Settings/SettingsCell.swift b/ios/MullvadVPN/View controllers/Settings/SettingsCell.swift
index 192ed8484e..8de8c014e1 100644
--- a/ios/MullvadVPN/View controllers/Settings/SettingsCell.swift
+++ b/ios/MullvadVPN/View controllers/Settings/SettingsCell.swift
@@ -19,11 +19,11 @@ enum SettingsDisclosureType {
case .none:
nil
case .chevron:
- UIImage(resource: .iconChevron)
+ UIImage.CellDecoration.chevronRight
case .externalLink:
- UIImage(resource: .iconExtlink)
+ UIImage.CellDecoration.externalLink
case .tick:
- UIImage(resource: .iconTickSml)
+ UIImage.CellDecoration.tick
}
}
}
@@ -83,7 +83,7 @@ class SettingsCell: UITableViewCell, CustomCellDisclosureHandling {
let button = UIButton(type: .custom)
button.setAccessibilityIdentifier(.infoButton)
button.tintColor = .white
- button.setImage(UIImage(named: "IconInfo"), for: .normal)
+ button.setImage(UIImage.Buttons.info, for: .normal)
button.isHidden = true
return button
}()
diff --git a/ios/MullvadVPN/View controllers/Settings/SettingsHeaderView.swift b/ios/MullvadVPN/View controllers/Settings/SettingsHeaderView.swift
index d2351a1d90..1db4841b8a 100644
--- a/ios/MullvadVPN/View controllers/Settings/SettingsHeaderView.swift
+++ b/ios/MullvadVPN/View controllers/Settings/SettingsHeaderView.swift
@@ -25,7 +25,7 @@ class SettingsHeaderView: UITableViewHeaderFooterView {
let button = UIButton(type: .custom)
button.setAccessibilityIdentifier(.infoButton)
button.tintColor = .white
- button.setImage(UIImage(named: "IconInfo"), for: .normal)
+ button.setImage(UIImage.Buttons.info, for: .normal)
return button
}()
diff --git a/ios/MullvadVPN/View controllers/Settings/SwiftUI components/SingleChoiceList.swift b/ios/MullvadVPN/View controllers/Settings/SwiftUI components/SingleChoiceList.swift
index df39f51bee..07e547b68e 100644
--- a/ios/MullvadVPN/View controllers/Settings/SwiftUI components/SingleChoiceList.swift
+++ b/ios/MullvadVPN/View controllers/Settings/SwiftUI components/SingleChoiceList.swift
@@ -191,7 +191,7 @@ struct SingleChoiceList<Value>: View where Value: Equatable {
// Construct a row with arbitrary content and the correct style
private func row<V: View>(isSelected: Bool, @ViewBuilder items: () -> V) -> some View {
HStack {
- Image(uiImage: UIImage(resource: .iconTick)).opacity(isSelected ? 1.0 : 0.0)
+ Image(uiImage: UIImage.tick).opacity(isSelected ? 1.0 : 0.0)
Spacer().frame(width: UIMetrics.SettingsCell.selectableSettingsCellLeftViewSpacing)
items()
diff --git a/ios/MullvadVPN/Views/CheckboxView.swift b/ios/MullvadVPN/Views/CheckboxView.swift
index 0fbdc91652..a1edd3d254 100644
--- a/ios/MullvadVPN/Views/CheckboxView.swift
+++ b/ios/MullvadVPN/Views/CheckboxView.swift
@@ -17,7 +17,7 @@ class CheckboxView: UIView {
}()
private let checkmarkView: UIImageView = {
- let imageView = UIImageView(image: UIImage(named: "IconTick"))
+ let imageView = UIImageView(image: UIImage.tick)
imageView.tintColor = .successColor
imageView.contentMode = .scaleAspectFit
imageView.alpha = 0
diff --git a/ios/MullvadVPN/Views/IncreasedHitButton.swift b/ios/MullvadVPN/Views/IncreasedHitButton.swift
index f83eaa1e0e..05944337da 100644
--- a/ios/MullvadVPN/Views/IncreasedHitButton.swift
+++ b/ios/MullvadVPN/Views/IncreasedHitButton.swift
@@ -10,7 +10,7 @@ import SwiftUI
import UIKit
final class IncreasedHitButton: UIButton {
- private let defaultSize = UIMetrics.Button.barButtonSize
+ private let defaultSize = UIMetrics.Button.minimumTappableAreaSize.width
override func point(inside point: CGPoint, with event: UIEvent?) -> Bool {
let width = bounds.width
diff --git a/ios/MullvadVPN/Views/SpinnerActivityIndicatorView.swift b/ios/MullvadVPN/Views/SpinnerActivityIndicatorView.swift
index 9015ef2185..2098a06b97 100644
--- a/ios/MullvadVPN/Views/SpinnerActivityIndicatorView.swift
+++ b/ios/MullvadVPN/Views/SpinnerActivityIndicatorView.swift
@@ -31,7 +31,7 @@ class SpinnerActivityIndicatorView: UIView {
}
}
- private let imageView = UIImageView(image: UIImage(named: "IconSpinner"))
+ private let imageView = UIImageView(image: .spinner)
private(set) var isAnimating = false
private(set) var style = Style.large
diff --git a/ios/MullvadVPN/Views/StatusImageView.swift b/ios/MullvadVPN/Views/StatusImageView.swift
index a7c7434432..e7a19fc15c 100644
--- a/ios/MullvadVPN/Views/StatusImageView.swift
+++ b/ios/MullvadVPN/Views/StatusImageView.swift
@@ -16,9 +16,9 @@ class StatusImageView: UIImageView {
fileprivate var image: UIImage? {
switch self {
case .success:
- return UIImage(named: "IconSuccess")
+ return UIImage.Status.success
case .failure:
- return UIImage(named: "IconFail")
+ return UIImage.Status.failure
}
}
}