diff --git a/Passepartout-iOS/Global/SwiftGen+Assets.swift b/Passepartout-iOS/Global/SwiftGen+Assets.swift index dc5ead11..5f14a848 100644 --- a/Passepartout-iOS/Global/SwiftGen+Assets.swift +++ b/Passepartout-iOS/Global/SwiftGen+Assets.swift @@ -284,6 +284,7 @@ internal enum Asset { internal static let mullvad = ImageAsset(name: "mullvad") internal static let nordvpn = ImageAsset(name: "nordvpn") internal static let pia = ImageAsset(name: "pia") + internal static let placeholder = ImageAsset(name: "placeholder") internal static let protonvpn = ImageAsset(name: "protonvpn") internal static let tunnelbear = ImageAsset(name: "tunnelbear") internal static let vyprvpn = ImageAsset(name: "vyprvpn") diff --git a/Passepartout-iOS/Global/Theme.swift b/Passepartout-iOS/Global/Theme.swift index 936089cb..bd894edc 100644 --- a/Passepartout-iOS/Global/Theme.swift +++ b/Passepartout-iOS/Global/Theme.swift @@ -191,7 +191,7 @@ extension MFMailComposeViewController { // FIXME: load from index JSON extension Infrastructure.Metadata { - var logo: UIImage? { + var logo: UIImage { return ImageAsset(name: name.lowercased()).image } } diff --git a/Passepartout-iOS/Providers.xcassets/placeholder.imageset/Contents.json b/Passepartout-iOS/Providers.xcassets/placeholder.imageset/Contents.json new file mode 100644 index 00000000..13f500e4 --- /dev/null +++ b/Passepartout-iOS/Providers.xcassets/placeholder.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "placeholder@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "placeholder@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout-iOS/Providers.xcassets/placeholder.imageset/placeholder@2x.png b/Passepartout-iOS/Providers.xcassets/placeholder.imageset/placeholder@2x.png new file mode 100644 index 00000000..3117a662 Binary files /dev/null and b/Passepartout-iOS/Providers.xcassets/placeholder.imageset/placeholder@2x.png differ diff --git a/Passepartout-iOS/Providers.xcassets/placeholder.imageset/placeholder@3x.png b/Passepartout-iOS/Providers.xcassets/placeholder.imageset/placeholder@3x.png new file mode 100644 index 00000000..1dc8aed7 Binary files /dev/null and b/Passepartout-iOS/Providers.xcassets/placeholder.imageset/placeholder@3x.png differ diff --git a/Passepartout-iOS/Scenes/Organizer/OrganizerViewController.swift b/Passepartout-iOS/Scenes/Organizer/OrganizerViewController.swift index f87c65a4..6ed2570a 100644 --- a/Passepartout-iOS/Scenes/Organizer/OrganizerViewController.swift +++ b/Passepartout-iOS/Scenes/Organizer/OrganizerViewController.swift @@ -473,9 +473,14 @@ extension OrganizerViewController { case .profile: let cell = Cells.setting.dequeue(from: tableView, for: indexPath) let rowProfile = profileKey(at: indexPath) - if rowProfile.context == .provider, let metadata = InfrastructureFactory.shared.metadata(forName: rowProfile.id) { - cell.imageView?.image = metadata.logo - cell.leftText = metadata.description + if rowProfile.context == .provider { + if let metadata = InfrastructureFactory.shared.metadata(forName: rowProfile.id) { + cell.imageView?.image = metadata.logo + cell.leftText = metadata.description + } else { + cell.imageView?.image = Asset.Providers.placeholder.image + cell.leftText = rowProfile.id + } } else { cell.imageView?.image = nil cell.leftText = rowProfile.id