Skip to content
Snippets Groups Projects
Commit bd7c9735 authored by Raphaël Brulé's avatar Raphaël Brulé
Browse files

Swiftgen: bump to Swift5

Bumps templates swift3 and structured-swift3 to
swift5 and structured-swift5 to work with
swiftgen version 6.2.0.

Change-Id: Ic7e35377e7fdc555dcc8a63cc253f41539cc0dad
parent e7668d03
No related branches found
No related tags found
No related merge requests found
// swiftlint:disable all // swiftlint:disable all
// Generated using SwiftGen — https://github.com/SwiftGen/SwiftGen // Generated using SwiftGen — https://github.com/SwiftGen/SwiftGen
#if os(OSX) #if os(macOS)
import AppKit.NSImage import AppKit
internal typealias AssetColorTypeAlias = NSColor #elseif os(iOS)
internal typealias AssetImageTypeAlias = NSImage import UIKit
#elseif os(iOS) || os(tvOS) || os(watchOS) #elseif os(tvOS) || os(watchOS)
import UIKit.UIImage import UIKit
internal typealias AssetColorTypeAlias = UIColor
internal typealias AssetImageTypeAlias = UIImage
#endif #endif
// swiftlint:disable superfluous_disable_command // Deprecated typealiases
// swiftlint:disable file_length @available(*, deprecated, renamed: "ColorAsset.Color", message: "This typealias will be removed in SwiftGen 7.0")
internal typealias AssetColorTypeAlias = ColorAsset.Color
@available(*, deprecated, renamed: "ImageAsset.Image", message: "This typealias will be removed in SwiftGen 7.0")
internal typealias AssetImageTypeAlias = ImageAsset.Image
// swiftlint:disable superfluous_disable_command file_length implicit_return
// MARK: - Asset Catalogs // MARK: - Asset Catalogs
...@@ -81,83 +84,86 @@ internal enum Asset { ...@@ -81,83 +84,86 @@ internal enum Asset {
// MARK: - Implementation Details // MARK: - Implementation Details
internal struct ColorAsset { internal final class ColorAsset {
internal fileprivate(set) var name: String internal fileprivate(set) var name: String
#if swift(>=3.2) #if os(macOS)
@available(iOS 11.0, tvOS 11.0, watchOS 4.0, OSX 10.13, *) internal typealias Color = NSColor
internal var color: AssetColorTypeAlias { #elseif os(iOS) || os(tvOS) || os(watchOS)
return AssetColorTypeAlias(asset: self) internal typealias Color = UIColor
}
#endif #endif
@available(iOS 11.0, tvOS 11.0, watchOS 4.0, macOS 10.13, *)
internal private(set) lazy var color: Color = {
guard let color = Color(asset: self) else {
fatalError("Unable to load color asset named \(name).")
}
return color
}()
fileprivate init(name: String) {
self.name = name
}
} }
internal extension AssetColorTypeAlias { internal extension ColorAsset.Color {
#if swift(>=3.2) @available(iOS 11.0, tvOS 11.0, watchOS 4.0, macOS 10.13, *)
@available(iOS 11.0, tvOS 11.0, watchOS 4.0, OSX 10.13, *) convenience init?(asset: ColorAsset) {
convenience init!(asset: ColorAsset) { let bundle = BundleToken.bundle
let bundle = Bundle(for: BundleToken.self)
#if os(iOS) || os(tvOS) #if os(iOS) || os(tvOS)
self.init(named: asset.name, in: bundle, compatibleWith: nil) self.init(named: asset.name, in: bundle, compatibleWith: nil)
#elseif os(OSX) #elseif os(macOS)
self.init(named: asset.name, bundle: bundle) self.init(named: NSColor.Name(asset.name), bundle: bundle)
#elseif os(watchOS) #elseif os(watchOS)
self.init(named: asset.name) self.init(named: asset.name)
#endif #endif
} }
#endif
} }
internal struct DataAsset { internal struct ImageAsset {
internal fileprivate(set) var name: String internal fileprivate(set) var name: String
#if (os(iOS) || os(tvOS) || os(OSX)) && swift(>=3.2) #if os(macOS)
@available(iOS 9.0, tvOS 9.0, OSX 10.11, *) internal typealias Image = NSImage
internal var data: NSDataAsset { #elseif os(iOS) || os(tvOS) || os(watchOS)
return NSDataAsset(asset: self) internal typealias Image = UIImage
}
#endif
}
#if (os(iOS) || os(tvOS) || os(OSX)) && swift(>=3.2)
@available(iOS 9.0, tvOS 9.0, OSX 10.11, *)
internal extension NSDataAsset {
convenience init!(asset: DataAsset) {
let bundle = Bundle(for: BundleToken.self)
self.init(name: asset.name, bundle: bundle)
}
}
#endif #endif
internal struct ImageAsset { internal var image: Image {
internal fileprivate(set) var name: String let bundle = BundleToken.bundle
internal var image: AssetImageTypeAlias {
let bundle = Bundle(for: BundleToken.self)
#if os(iOS) || os(tvOS) #if os(iOS) || os(tvOS)
let image = AssetImageTypeAlias(named: name, in: bundle, compatibleWith: nil) let image = Image(named: name, in: bundle, compatibleWith: nil)
#elseif os(OSX) #elseif os(macOS)
let image = bundle.image(forResource: name) let image = bundle.image(forResource: NSImage.Name(name))
#elseif os(watchOS) #elseif os(watchOS)
let image = AssetImageTypeAlias(named: name) let image = Image(named: name)
#endif #endif
guard let result = image else { fatalError("Unable to load image named \(name).") } guard let result = image else {
fatalError("Unable to load image asset named \(name).")
}
return result return result
} }
} }
internal extension AssetImageTypeAlias { internal extension ImageAsset.Image {
@available(iOS 1.0, tvOS 1.0, watchOS 1.0, *) @available(macOS, deprecated,
@available(OSX, deprecated,
message: "This initializer is unsafe on macOS, please use the ImageAsset.image property") message: "This initializer is unsafe on macOS, please use the ImageAsset.image property")
convenience init!(asset: ImageAsset) { convenience init?(asset: ImageAsset) {
#if os(iOS) || os(tvOS) #if os(iOS) || os(tvOS)
let bundle = Bundle(for: BundleToken.self) let bundle = BundleToken.bundle
self.init(named: asset.name, in: bundle, compatibleWith: nil) self.init(named: asset.name, in: bundle, compatibleWith: nil)
#elseif os(OSX) || os(watchOS) #elseif os(macOS)
self.init(named: NSImage.Name(asset.name))
#elseif os(watchOS)
self.init(named: asset.name) self.init(named: asset.name)
#endif #endif
} }
} }
private final class BundleToken {} // swiftlint:disable convenience_type
private final class BundleToken {
static let bundle: Bundle = {
Bundle(for: BundleToken.self)
}()
}
// swiftlint:enable convenience_type
...@@ -3,8 +3,7 @@ ...@@ -3,8 +3,7 @@
import Foundation import Foundation
// swiftlint:disable superfluous_disable_command // swiftlint:disable superfluous_disable_command file_length implicit_return
// swiftlint:disable file_length
// MARK: - Strings // MARK: - Strings
...@@ -563,11 +562,16 @@ internal enum L10n { ...@@ -563,11 +562,16 @@ internal enum L10n {
// MARK: - Implementation Details // MARK: - Implementation Details
extension L10n { extension L10n {
fileprivate static func tr(_ table: String, _ key: String, _ args: CVarArg...) -> String { private static func tr(_ table: String, _ key: String, _ args: CVarArg...) -> String {
// swiftlint:disable:next nslocalizedstring_key let format = BundleToken.bundle.localizedString(forKey: key, value: nil, table: table)
let format = NSLocalizedString(key, tableName: table, bundle: Bundle(for: BundleToken.self), comment: "")
return String(format: format, locale: Locale.current, arguments: args) return String(format: format, locale: Locale.current, arguments: args)
} }
} }
private final class BundleToken {} // swiftlint:disable convenience_type
private final class BundleToken {
static let bundle: Bundle = {
Bundle(for: BundleToken.self)
}()
}
// swiftlint:enable convenience_type
...@@ -65,10 +65,10 @@ final class AccountPickerAdapter: NSObject, UIPickerViewDataSource, UIPickerView ...@@ -65,10 +65,10 @@ final class AccountPickerAdapter: NSObject, UIPickerViewDataSource, UIPickerView
if let photo = accountProfile.photo, if let photo = accountProfile.photo,
let data = NSData(base64Encoded: photo, let data = NSData(base64Encoded: photo,
options: NSData.Base64DecodingOptions.ignoreUnknownCharacters) as Data? { options: NSData.Base64DecodingOptions.ignoreUnknownCharacters) as Data? {
return UIImage(data: data) ?? UIImage(asset: Asset.fallbackAvatar) return UIImage(data: data) ?? UIImage(asset: Asset.fallbackAvatar)!
} }
guard let account = self?.items[row].account else { guard let account = self?.items[row].account else {
return UIImage(asset: Asset.fallbackAvatar) return UIImage(asset: Asset.fallbackAvatar)!
} }
guard let name = accountProfile.alias else { guard let name = accountProfile.alias else {
return UIImage.defaultJamiAvatarFor(profileName: nil, return UIImage.defaultJamiAvatarFor(profileName: nil,
......
...@@ -107,12 +107,12 @@ class SmartlistViewModel: Stateable, ViewModel, FilterConversationDataSource { ...@@ -107,12 +107,12 @@ class SmartlistViewModel: Stateable, ViewModel, FilterConversationDataSource {
let data = NSData(base64Encoded: photo, let data = NSData(base64Encoded: photo,
options: NSData.Base64DecodingOptions.ignoreUnknownCharacters) as Data? { options: NSData.Base64DecodingOptions.ignoreUnknownCharacters) as Data? {
guard let image = UIImage(data: data) else { guard let image = UIImage(data: data) else {
return UIImage(asset: Asset.icContactPicture) return UIImage(asset: Asset.icContactPicture)!
} }
return image return image
} }
guard let account = self.accountsService.currentAccount else { guard let account = self.accountsService.currentAccount else {
return UIImage(asset: Asset.icContactPicture) return UIImage(asset: Asset.icContactPicture)!
} }
guard let name = profile.alias else {return UIImage.defaultJamiAvatarFor(profileName: nil, account: account)} guard let name = profile.alias else {return UIImage.defaultJamiAvatarFor(profileName: nil, account: account)}
let profileName = name.isEmpty ? nil : name let profileName = name.isEmpty ? nil : name
......
...@@ -8,9 +8,9 @@ run_swiftgen() { ...@@ -8,9 +8,9 @@ run_swiftgen() {
TPLDIR=$(dirname $0) TPLDIR=$(dirname $0)
echo "SwiftGen: Generating files..." echo "SwiftGen: Generating files..."
swiftgen storyboards "$SRCDIR" -t swift3 --output "$OUTDIR/Storyboards.swift" swiftgen storyboards "$SRCDIR" -t swift5 --output "$OUTDIR/Storyboards.swift"
swiftgen xcassets "$SRCDIR/Resources/Images.xcassets" -t swift3 --output "$OUTDIR/Images.swift" swiftgen xcassets "$SRCDIR/Resources/Images.xcassets" -t swift5 --output "$OUTDIR/Images.swift"
swiftgen strings -t structured-swift3 "$SRCDIR/Resources/en.lproj/Localizable.strings" --output "$OUTDIR/Strings.swift" swiftgen strings -t structured-swift5 "$SRCDIR/Resources/en.lproj/Localizable.strings" --output "$OUTDIR/Strings.swift"
} }
# Main script to check if SwiftGen is installed, check the version, and run it only if version matches # Main script to check if SwiftGen is installed, check the version, and run it only if version matches
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment