diff --git a/ios/MullvadVPN.xcodeproj/project.pbxproj b/ios/MullvadVPN.xcodeproj/project.pbxproj index 56aa4423a6a7..c09e1b3e1646 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 */; }; @@ -630,10 +633,10 @@ 7A9CCCC32A96302800DD6A34 /* ApplicationCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A9CCCB12A96302800DD6A34 /* ApplicationCoordinator.swift */; }; 7A9CCCC42A96302800DD6A34 /* TunnelCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A9CCCB22A96302800DD6A34 /* TunnelCoordinator.swift */; }; 7A9F28FC2CA69D0C005F2089 /* DAITASettingsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A9F28FB2CA69D04005F2089 /* DAITASettingsTests.swift */; }; + 7A9F29352CAA8829005F2089 /* AccessMethodsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A9F29342CAA8823005F2089 /* AccessMethodsTests.swift */; }; 7A9F29392CABFAFC005F2089 /* InfoHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A9F29382CABFAEC005F2089 /* InfoHeaderView.swift */; }; 7A9F293B2CAC4443005F2089 /* InfoHeaderConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A9F293A2CAC4420005F2089 /* InfoHeaderConfig.swift */; }; 7A9F293D2CAD2FD5005F2089 /* InfoModalConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A9F293C2CAD2FCF005F2089 /* InfoModalConfig.swift */; }; - 7A9F29352CAA8829005F2089 /* AccessMethodsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A9F29342CAA8823005F2089 /* AccessMethodsTests.swift */; }; 7A9FA1422A2E3306000B728D /* CheckboxView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A9FA1412A2E3306000B728D /* CheckboxView.swift */; }; 7A9FA1442A2E3FE5000B728D /* CheckableSettingsCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A9FA1432A2E3FE5000B728D /* CheckableSettingsCell.swift */; }; 7AA130992CFF365D00640DF9 /* ConnectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AA130982CFF365A00640DF9 /* ConnectionView.swift */; }; @@ -1592,6 +1595,7 @@ 06FAE67B28F83CA50033DD93 /* REST.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = REST.swift; sourceTree = ""; }; 06FAE67D28F83CA50033DD93 /* RESTTransport.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RESTTransport.swift; sourceTree = ""; }; 44075DFA2CDA4F7400F61139 /* UDPOverTCPObfuscationSettingsViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UDPOverTCPObfuscationSettingsViewModel.swift; sourceTree = ""; }; + 440870812D7A00B00038972F /* UIImage+Assets.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImage+Assets.swift"; sourceTree = ""; }; 440E5AAF2CDBD67D00B09614 /* StatefulPreviewWrapper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatefulPreviewWrapper.swift; sourceTree = ""; }; 440E5AB32CDCF24500B09614 /* TunnelObfuscationSettingsWatchingObservableObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TunnelObfuscationSettingsWatchingObservableObject.swift; sourceTree = ""; }; 4419AA8A2D2826E5001B13C9 /* DetailsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailsView.swift; sourceTree = ""; }; @@ -2146,10 +2150,10 @@ 7A9CCCB12A96302800DD6A34 /* ApplicationCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ApplicationCoordinator.swift; sourceTree = ""; }; 7A9CCCB22A96302800DD6A34 /* TunnelCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TunnelCoordinator.swift; sourceTree = ""; }; 7A9F28FB2CA69D04005F2089 /* DAITASettingsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DAITASettingsTests.swift; sourceTree = ""; }; + 7A9F29342CAA8823005F2089 /* AccessMethodsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccessMethodsTests.swift; sourceTree = ""; }; 7A9F29382CABFAEC005F2089 /* InfoHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoHeaderView.swift; sourceTree = ""; }; 7A9F293A2CAC4420005F2089 /* InfoHeaderConfig.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoHeaderConfig.swift; sourceTree = ""; }; 7A9F293C2CAD2FCF005F2089 /* InfoModalConfig.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoModalConfig.swift; sourceTree = ""; }; - 7A9F29342CAA8823005F2089 /* AccessMethodsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccessMethodsTests.swift; sourceTree = ""; }; 7A9FA1412A2E3306000B728D /* CheckboxView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheckboxView.swift; sourceTree = ""; }; 7A9FA1432A2E3FE5000B728D /* CheckableSettingsCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheckableSettingsCell.swift; sourceTree = ""; }; 7AA130982CFF365A00640DF9 /* ConnectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConnectionView.swift; sourceTree = ""; }; @@ -3331,6 +3335,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 */, @@ -5833,6 +5838,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 */, @@ -5924,6 +5930,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 */, @@ -6171,6 +6178,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 3c675c936c89..ee9bd56c0c0a 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 8503b591cf27..5145050f7bee 100644 --- a/ios/MullvadVPN/Containers/Root/HeaderBarView.swift +++ b/ios/MullvadVPN/Containers/Root/HeaderBarView.swift @@ -57,7 +57,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 +71,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", @@ -84,7 +84,14 @@ class HeaderBarView: UIView { return button }() + class func prepareHeaderBarButtonImage(from image: UIImage) -> UIImage { + let resizeRatio = 24.0 / 20.0 + let targetSize = CGSize(width: image.size.width * resizeRatio, height: image.size.height * resizeRatio) + return image // .resizeImage(targetSize: targetSize) + } + class func makeHeaderBarButton(with image: UIImage?) -> IncreasedHitButton { +// let image = image.map { prepareHeaderBarButtonImage(from: $0) } let buttonImage = image?.withTintColor(UIColor.HeaderBar.buttonColor, renderingMode: .alwaysOriginal) let disabledButtonImage = image?.withTintColor( UIColor.HeaderBar.disabledButtonColor, diff --git a/ios/MullvadVPN/Containers/Root/RootContainerViewController.swift b/ios/MullvadVPN/Containers/Root/RootContainerViewController.swift index 61975b01b81e..4abc1dc7da6c 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 078a4c9cffcd..9178b65f2ce5 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 000000000000..a9a71e707afe --- /dev/null +++ b/ios/MullvadVPN/Extensions/UIImage+Assets.swift @@ -0,0 +1,110 @@ +// +// 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 { + // Button images we expect as tightly cropped 24x24 images. The SVGs are 20x20 with a 2px border + static var account: UIImage { + UIImage(named: "IconAccount")! + .resized(to: CGSize(width: 24, height: 24), trimmingBorder: 2) + } + + static var alert: UIImage { + UIImage(named: "IconAlert")! + .resized(to: CGSize(width: 24, height: 24), trimmingBorder: 2) + } + + static var info: UIImage { + UIImage(named: "IconInfo")! + } + + static var settings: UIImage { + UIImage(named: "IconSettings")! + .resized(to: CGSize(width: 24, height: 24), trimmingBorder: 2) + } + + 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 comes we consume in two sizes, both of which come from the same asset. The SVG is 48x48, though with 4 pixels of border + + static var closeSmall: UIImage { + UIImage(named: "IconClose")! + .resized(to: CGSize(width: 16, height: 16), trimmingBorder: 4) + } + + static var closeLarge: UIImage { + UIImage(named: "IconClose")!.resized(to: CGSize(width: 24, height: 24), trimmingBorder: 4) + } + } + + 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")! + .resized(to: CGSize(width: 16, height: 16)) + } + } + + 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")! + .resized(to: CGSize(width: 24, height: 24)) + } +} diff --git a/ios/MullvadVPN/Extensions/UIImage+Helpers.swift b/ios/MullvadVPN/Extensions/UIImage+Helpers.swift index 335e63c1bae1..cacbfb396e69 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 a1b0be8b3e62..9b6e94b80a29 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 42e4cac792a4..59441d899d07 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 f5b8435dbcc2..22a7a09da507 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/Supporting Files/Assets.xcassets/IconAccount.imageset/Contents.json b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconAccount.imageset/Contents.json index 573b102f4216..e804ffef7aac 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 fd1cda97a78b..000000000000 Binary files a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconAccount.imageset/IconAccount.pdf and /dev/null 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 000000000000..58e71e4ead2d --- /dev/null +++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconAccount.imageset/icon-account-circle.svg @@ -0,0 +1,8 @@ + + + + + + + + \ 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 4800727ae2a9..c9558a505131 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 2b350b1b89bb..000000000000 Binary files a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconAlert.imageset/IconAlert.pdf and /dev/null 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 000000000000..4416d6232423 --- /dev/null +++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconAlert.imageset/icon-alert-circle.svg @@ -0,0 +1,8 @@ + + + + + + + + \ 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 5be7d993e85b..3fdd0272f279 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 30613fa0b852..000000000000 Binary files a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconBack.imageset/IconBack.pdf and /dev/null 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 000000000000..4b8f49e5cd9c --- /dev/null +++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconBack.imageset/icon-chevron-left-circle.svg @@ -0,0 +1,8 @@ + + + + + + + + \ 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 54dbef686379..0f9c8bfe26bf 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 5e00c5ce6fcd..000000000000 Binary files a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevron.imageset/IconChevron.pdf and /dev/null differ 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 000000000000..61984c51550a --- /dev/null +++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevron.imageset/icon-chevron-right.svg @@ -0,0 +1,8 @@ + + + + + + + + \ 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 317139624140..74ccdff7bf3c 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 f529e1990888..000000000000 Binary files a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevronDown.imageset/IconChevronDown.pdf and /dev/null differ 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 000000000000..fffed869b0a1 --- /dev/null +++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevronDown.imageset/icon-chevron-down.svg @@ -0,0 +1,8 @@ + + + + + + + + \ 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 1539b29215b0..7817cf8114f5 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 a1ee3410161d..000000000000 Binary files a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevronUp.imageset/IconChevronUp.pdf and /dev/null 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 000000000000..9525597ca7e2 --- /dev/null +++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconChevronUp.imageset/icon-chevron-up.svg @@ -0,0 +1,8 @@ + + + + + + + + \ 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 f5ff7c0c45bf..2c3810a7f3ad 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 fcff861b53cf..000000000000 Binary files a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconClose.imageset/IconClose.pdf and /dev/null 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 000000000000..37698f569096 --- /dev/null +++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconClose.imageset/icon-cross-circle.svg @@ -0,0 +1,8 @@ + + + + + + + + \ 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 dc37d5929956..000000000000 --- 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 9645ccfe8813..000000000000 Binary files a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconCloseSml.imageset/IconCloseSml.pdf and /dev/null 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 761f25634607..c3bbb71217ae 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 45cc203c2335..000000000000 Binary files a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconCopy.imageset/IconCopy.pdf and /dev/null 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 000000000000..dc6f6fd30cc3 --- /dev/null +++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconCopy.imageset/icon-copy.svg @@ -0,0 +1,8 @@ + + + + + + + + \ 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 b95842ff5d40..aad6a70216f1 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 a68cb6bca1d6..000000000000 Binary files a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconExtlink.imageset/IconExtlink.pdf and /dev/null 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 000000000000..8399c901bdc4 --- /dev/null +++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconExtlink.imageset/icon-external.svg @@ -0,0 +1,8 @@ + + + + + + + + \ 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 cb95467b59dd..f3f4332a02da 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 e36941700ad6..000000000000 Binary files a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconFail.imageset/IconFail.pdf and /dev/null 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 000000000000..544d0d4ed73e --- /dev/null +++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconFail.imageset/negative.svg @@ -0,0 +1,8 @@ + + + icon-fail + Mullvad VPN app + + + + \ 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 87bd86d2ec39..ef3a764cba05 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 07f05b149b60..000000000000 Binary files a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconInfo.imageset/IconInfo.pdf and /dev/null differ 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 000000000000..242a66186f88 --- /dev/null +++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconInfo.imageset/icon-info-circle.svg @@ -0,0 +1,8 @@ + + + + + + + + \ 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 e3f7020b5854..38876653b50c 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 8d11004e3e70..000000000000 Binary files a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconObscure.imageset/IconObscure.pdf and /dev/null 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 000000000000..4b429fa96562 --- /dev/null +++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconObscure.imageset/icon-hide.svg @@ -0,0 +1,8 @@ + + + + + + + + \ 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 fc394e1bfbbb..7b4ca873dd49 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 000000000000..cc203ec2c58c --- /dev/null +++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconReload.imageset/icon-reconnect.svg @@ -0,0 +1,8 @@ + + + + + + + + \ 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 6d443ac8b4c0..000000000000 --- a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconReload.imageset/icon-reload.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - 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 82d4cfeb72a4..f38fe946ef62 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 2b2478320483..000000000000 Binary files a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSettings.imageset/IconSettings.pdf and /dev/null 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 000000000000..289bc9e4a027 --- /dev/null +++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSettings.imageset/icon-settings-filled.svg @@ -0,0 +1,8 @@ + + + + + + + + \ 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 6cfa4fdda5c5..d4a87fb733c1 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 1856123f209c..000000000000 Binary files a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSpinner.imageset/IconSpinner.pdf and /dev/null differ 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 000000000000..580d56a3497f --- /dev/null +++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSpinner.imageset/spinner.svg @@ -0,0 +1,17 @@ + + Spinner + Mulvad VPN app + + + + + + + + \ 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 a0b7acfdf30a..db59ecbad222 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 f74a4f6de718..000000000000 Binary files a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSuccess.imageset/IconSuccess.pdf and /dev/null differ 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 000000000000..5a9e94340682 --- /dev/null +++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconSuccess.imageset/positive.svg @@ -0,0 +1,8 @@ + + + icon-success + Mullvad VPN app + + + + \ 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 9dd11aed54a2..a77e9155b076 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 afd775f85f3d..000000000000 Binary files a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconTick.imageset/IconTick.pdf and /dev/null differ 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 000000000000..41602b60f219 --- /dev/null +++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconTick.imageset/icon-checkmark.svg @@ -0,0 +1,8 @@ + + + + + + + + \ 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 10a4cd7580ef..a77e9155b076 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 e1b433b79981..000000000000 Binary files a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconTickSml.imageset/IconTickSml.pdf and /dev/null 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 000000000000..41602b60f219 --- /dev/null +++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconTickSml.imageset/icon-checkmark.svg @@ -0,0 +1,8 @@ + + + + + + + + \ 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 c69f0470049d..6f731b0f2d85 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 ec2d68e3a2cf..000000000000 Binary files a/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconUnobscure.imageset/IconUnobscure.pdf and /dev/null 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 000000000000..a4b2aa591d32 --- /dev/null +++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/IconUnobscure.imageset/icon-show.svg @@ -0,0 +1,8 @@ + + + + + + + + \ 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 5f66d5e4af73..38c215078c07 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 ccfb321cace6..000000000000 Binary files a/ios/MullvadVPN/Supporting Files/Assets.xcassets/LocationMarkerSecure.imageset/LocationMarkerSecure.pdf and /dev/null 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 000000000000..087fe5d0d41e --- /dev/null +++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/LocationMarkerSecure.imageset/location-marker-secure.svg @@ -0,0 +1,19 @@ + + location-marker-secure + Mullvad VPN app + + + + + + + + + + + + + + + + \ 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 c877c5f83cb9..8d9fd6c253eb 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 e407bb352a7e..000000000000 Binary files a/ios/MullvadVPN/Supporting Files/Assets.xcassets/LocationMarkerUnsecure.imageset/LocationMarkerUnsecure.pdf and /dev/null 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 000000000000..c46bdde2d723 --- /dev/null +++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/LocationMarkerUnsecure.imageset/location-marker-unsecure.svg @@ -0,0 +1,19 @@ + + location-marker-unsecure + Mullvad VPN app + + + + + + + + + + + + + + + + \ 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 4199af9556e4..1c02bd45e7fe 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 71201faeb991..000000000000 Binary files a/ios/MullvadVPN/Supporting Files/Assets.xcassets/LogoIcon.imageset/LogoIcon.pdf and /dev/null 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 000000000000..9df70ac22bf1 --- /dev/null +++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/LogoIcon.imageset/logo-icon.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + 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 7582073b99e5..f15c0d8b3508 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 90f2c0a13278..000000000000 Binary files a/ios/MullvadVPN/Supporting Files/Assets.xcassets/LogoText.imageset/LogoText.pdf and /dev/null 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 000000000000..c3296186c229 --- /dev/null +++ b/ios/MullvadVPN/Supporting Files/Assets.xcassets/LogoText.imageset/logo-text.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + diff --git a/ios/MullvadVPN/View controllers/Account/AccountDeviceRow.swift b/ios/MullvadVPN/View controllers/Account/AccountDeviceRow.swift index aa1fbe0502d3..0489ae2dedf0 100644 --- a/ios/MullvadVPN/View controllers/Account/AccountDeviceRow.swift +++ b/ios/MullvadVPN/View controllers/Account/AccountDeviceRow.swift @@ -44,7 +44,7 @@ class AccountDeviceRow: UIView { button.isExclusiveTouch = true 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/Account/AccountNumberRow.swift b/ios/MullvadVPN/View controllers/Account/AccountNumberRow.swift index b7fe8626de5d..c14197f32bdb 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 80cd434f99b2..63efbb8cb5b5 100644 --- a/ios/MullvadVPN/View controllers/Account/RestorePurchasesView.swift +++ b/ios/MullvadVPN/View controllers/Account/RestorePurchasesView.swift @@ -34,7 +34,7 @@ class RestorePurchasesView: UIView { private lazy var infoButton: UIButton = { let button = IncreasedHitButton(type: .custom) button.isExclusiveTouch = true - button.setImage(UIImage(resource: .iconInfo), for: .normal) + button.setImage(UIImage.Buttons.info, for: .normal) button.tintColor = .white button.addTarget(self, action: #selector(didTapInfoButton), for: .touchUpInside) return button diff --git a/ios/MullvadVPN/View controllers/Alert/AlertViewController.swift b/ios/MullvadVPN/View controllers/Alert/AlertViewController.swift index b83286e1eede..33fd20a7f15e 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 a892e15bafc8..35727cf6ceb2 100644 --- a/ios/MullvadVPN/View controllers/CreationAccount/Welcome/WelcomeContentView.swift +++ b/ios/MullvadVPN/View controllers/CreationAccount/Welcome/WelcomeContentView.swift @@ -78,7 +78,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 313ca732aa98..2576044a095f 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.closeLarge .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 f5530b3088f6..d3a2cc142df2 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 6daba0ff3ce3..3e1ddff30f14 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 6480286db87c..1421db97c97a 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 60f31a4aefdf..b458219f7722 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 192ed8484e31..8de8c014e1d3 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 d2351a1d90a7..1db4841b8a90 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 df39f51bee3e..07e547b68eea 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: View where Value: Equatable { // Construct a row with arbitrary content and the correct style private func row(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 0fbdc91652d7..a1edd3d25458 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/SpinnerActivityIndicatorView.swift b/ios/MullvadVPN/Views/SpinnerActivityIndicatorView.swift index 9015ef218522..2098a06b978c 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 a7c74344320a..e7a19fc15cbb 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 } } }